지연 시간은 중요한 시스템 성능 측정항목입니다. 다양한 유형의 오디오 지연 시간 측정항목 가운데 유용하면서도 널리 이해되는 측정항목은 왕복 지연 시간입니다. 왕복 지연 시간은 오디오 신호가 휴대기기의 입력 장치에 입력되고 애플리케이션 프로세서에서 실행 중인 앱에 의해 처리된 후 출력 장치에서 나가는 데 소요되는 시간으로 정의됩니다.
![기기의 왕복 오디오 지연 시간](https://source.android.com/static/docs/core/audio/images/round_trip_on_device.png?authuser=0000&hl=ko)
그림 1. 기기의 왕복 오디오 지연 시간: T출력 - T입력
이 페이지에서는 특정 Nexus/Pixel 기기 및 Android 플랫폼 버전의 왕복 오디오 지연 시간 측정 방법을 제공합니다.
지연 시간을 측정하는 이유
Google은 Android 애플리케이션 개발자가 실제 기기의 가용한 지연 시간에 관해 정보에 입각한 결정을 내리는 데 필요한 데이터를 얻을 수 있도록 지연 시간을 측정하고 보고합니다. 특정 Nexus 및 Pixel 기기의 지연 시간 수치를 공유함으로써 Google은 Android 커뮤니티 전체에서 모든 Android 기기의 지연 시간을 측정하고 게시하고 단축할 수 있도록 장려하고자 합니다. 오디오 지연 시간 단축을 위한 Google의 노력에 동참해 주세요.
애플리케이션이 지연 시간에 미치는 영향
신호 처리는 다음 유형의 지연을 지연 시간에 더할 수 있습니다.
- 알고리즘. 이 지연은 내재적인 문제이며 CPU에 따라 달라지지 않습니다. FIR(유한 임펄스 응답) 필터에 의해 추가되는 지연 시간을 예로 들 수 있습니다.
- 전산. 이 지연은 필수 CPU 주기의 수와 관련이 있습니다. 예를 들어 신호 감쇠는 보통 CPU에 따라 다양한 주기 수를 취하는 곱셈 연산에 의해 이루어집니다.
측정 방법
Google은 Rick O'Rang 박사의 오디오 루프백 동글과 오디오 확인(Larsen 효과) 테스트를 사용하여 이 페이지에 나열된 측정을 실시했습니다. 측정은 애플리케이션 신호 처리가 0의 알고리즘 지연과 0에 가까운 전산 지연을 더한다는 가정하에 이루어졌습니다.
Google은 헤드셋 커넥터를 통해 왕복 지연 시간을 측정하며, 여기에는 여러 이유가 있습니다.
![헤드셋 커넥터를 통한 왕복 지연 시간](https://source.android.com/static/docs/core/audio/images/round_trip_via_headset_connector.png?authuser=0000&hl=ko)
그림 2. 헤드셋 커넥터를 통한 왕복 지연 시간: T출력 - T입력
- 중요한 음악 애플리케이션(기타 및 음성 처리 등)에서 헤드셋 커넥터를 사용합니다.
- 기기 마이크와 스피커의 왕복 지연 시간을 측정하는 과정은 번거로울 수 있는데, 실외의 피드백 루프가 통제되지 않은 진동에 진입하지 못하도록 막기가 어렵기 때문입니다.
- 기기 트랜스듀서는 크기가 작으며 주파수 응답을 희생하여 작은 크기를 달성합니다. 이를 보상하기 위해 디지털 신호 처리가 적용되지만 기기 경로의 알고리즘 지연은 증가합니다.
기기 마이크와 스피커 지연 시간이 정말로 중요한 경우도 있지만 지연 시간은 대부분 왕복이 아닌 단방향입니다. 단방향 지연 시간 측정 기술은 출력 지연 시간 측정 및 입력 지연 시간 측정을 참조하세요.
측정 예시
아래에 나열된 측정은 빌드 번호와 관련이 있습니다. 기기는 초기 출시의 대략적인 순서의 플랫폼 버전별로 나열됩니다. 차트에서 지연 시간을 확인할 수도 있습니다. 테스트 애플리케이션은 OpenSL ES 기반의 Android 네이티브 오디오 API를 사용합니다.
모델 | 플랫폼 버전 |
빌드 번호 |
샘플링 레이트 (Hz) |
버퍼 크기 (프레임) |
버퍼 크기 (밀리초) |
왕복 지연 시간(밀리초) ± 버퍼 1개 |
---|---|---|---|---|---|---|
Nexus One | 2.3.6 | GRK39F | 44100 | 768 | 17.4 | 345 |
Nexus S | 2.3.6 | GRK39F | 44100 | 1024 | 23.2 | 260 |
Nexus S | 4.0.4 | IMM76D | 44100 | 1024 | 23.2 | 260 |
Nexus S | 4.1.2 | JZO54K | 44100 | 880 | 20 | 210 |
Galaxy Nexus | 4.0.1 | ITL41D | 44100 | 976 | 22.1 | 270 |
Galaxy Nexus | 4.3 | JWR66Y | 44100 | 144 | 3.3 | 130 |
Nexus 4 | 4.2.2 | JDQ39E | 48000 | 240 | 5 | 195 |
Nexus 4 | 5.1 | LMY47O | 48000 | 240 | 5 | 58 |
Nexus 10 | 5.0.2 | LRX22G | 44100 | 256 | 5.8 | 36 |
Nexus 10 | 5.1 | LMY47D | 44100 | 256 | 5.8 | 35 |
Nexus 7 2013 |
4.3 | JSR78D | 48000 | 240 | 5 | 149 |
Nexus 7 2013 |
4.4 | KRT16S | 48000 | 240 | 5 | 85 |
Nexus 7 2013 |
5.0.2 | LRX22G | 48000 | 240 | 5 | 64 |
Nexus 7 2013 |
5.1 | LMY47O | 48000 | 240 | 5 | 55 |
Nexus 7 2013 |
6.0 | MRA58K | 48000 | 240 | 5 | 55 |
Nexus 5 | 4.4.4 | KTU84P | 48000 | 240 | 5 | 95 |
Nexus 5 | 5.0.0 | LRX21O | 48000 | 240 | 5 | 47 |
Nexus 5 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |
Nexus 5 | 6.0 | MRA58K | 48000 | 192 | 4 | 38 |
Nexus 9 | 5.0.0 | LRX21L | 48000 | 256 | 5.3 | 35 |
Nexus 9 | 5.0.1 | LRX22C | 48000 | 256 | 5.3 | 38 |
Nexus 9 | 5.1.1 | LMY47X | 48000 | 256 | 5.3 | 32 |
Nexus 9 | 6.0 | MRA58K | 48000 | 128 | 2.6 | 15 |
Nexus 6 | 5.0.1 | LRX22C | 48000 | 240 | 5 | 65 |
Nexus 6 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |
Nexus 6 | 6.0 | MRA58K | 48000 | 192 | 4 | 33 |
Nexus 5X | 6.0 | MDA89E | 48000 | 192 | 4 | 18 |
Nexus 5X | 8.0.0 | OPR4.170623.020 | 48000 | 192 | 4 | 18 |
Nexus 5X | 8.1.0 | OPM2.171019.029.C1 | 48000 | 192 | 4 | 18 |
Nexus 6P | 6.0 | MDA89D | 48000 | 192 | 4 | 18 |
Nexus 6P | 8.0.0 | OPR5.170623.014 | 48000 | 192 | 4 | 18 |
Nexus 6P | 8.1.0 | OPM5.171019.019 | 48000 | 192 | 4 | 18 |
Pixel | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
Pixel | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |
Pixel | 8.1.0 | OPM1.171019.021 | 48000 | 192 | 4 | 18 |
Pixel XL | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
Pixel XL | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |
그림 3. 왕복 지연 시간