2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
オーディオ レイテンシの測定
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
レイテンシは重要なシステム パフォーマンス指標です。オーディオ レイテンシの指標にはさまざまな種類がありますが、理解しやすい指標の一つがラウンドトリップ レイテンシです。これは、オーディオ信号がモバイル デバイスの入力に達し、アプリケーション プロセッサで実行されるアプリによって処理され、出力を終了するまでにかかる時間と定義されます。
図 1:デバイスでのラウンドトリップ オーディオ レイテンシ: T出力 - T入力
一部の Nexus/Pixel デバイスと Android プラットフォーム バージョンのラウンドトリップ オーディオ レイテンシの測定値をこのページに記載しています。
レイテンシを測定する理由
実際のデバイスで発生するレイテンシについて、Android アプリのデベロッパーが十分な情報に基づき意思決定を下せるよう、Google はレイテンシを測定し、報告しています。一部の Nexus デバイスと Pixel デバイスのレイテンシ値を共有している目的は、Android コミュニティ全体におけるレイテンシの測定、公開、短縮を促進するためです。オーディオ レイテンシを削減する取り組みにぜひご協力ください。
レイテンシに対するアプリの影響
シグナル処理では、次のようなタイプの遅延がレイテンシに付加されます。
- アルゴリズム的遅延。この遅延は内在するもので、CPU によって差が出るものではありません。例として、有限インパルス応答(FIR)フィルタにより付加される遅延があります。
- 計算的遅延。この遅延は、必要な CPU サイクルの数に関連するものです。たとえば、通常は CPU に応じてサイクル数が変化する乗算演算によって信号の減衰が発生します。
測定方法
このページに記載された測定は、Dr. Rick O'Rang オーディオ ループバック ドングルおよび音声フィードバック(ラーセン効果)テストを用いて実施しています。測定時にはアプリケーションの信号処理によるアルゴリズム的な遅延が発生せず、計算的な遅延がほぼゼロであると仮定しています。
次のような理由により、ヘッドセット コネクタ経由のラウンドトリップ レイテンシを測定しています。
図 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. ラウンドトリップ レイテンシ
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-03-26 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-03-26 UTC。"],[],[],null,["# Audio latency measurements\n\n[Latency](http://en.wikipedia.org/wiki/Latency_%28engineering%29)\nis an important system performance metric. While many kinds of\n[audio latency](/docs/core/audio/latency/latency) metrics exist, one useful and\nwell-understood metric is\n[round-trip latency](/docs/core/audio/latency/measure#measuringRoundTrip),\ndefined as the time it takes for an audio signal to enter the input of a mobile\ndevice, be processed by an app running on the application processor, and exit\nthe output.\n\n**Figure 1.** Round-trip audio latency on\ndevice: T~output~ - T~input~\n\nThis page provides round-trip audio latency measurements for select\nNexus/Pixel devices and Android platform versions.\n\nWhy we measure latency\n----------------------\n\nGoogle measures and reports latency so Android application developers have\nthe data they need to make informed decisions about available latency on actual\ndevices. By sharing latency numbers for select Nexus and Pixel devices, we hope\nto encourage the entire Android community to measure, publish, and reduce\nlatency on *all* Android devices. Please join us in our commitment to\nreducing audio latency!\n\nApp impact on latency\n---------------------\n\nSignal processing can add the following types of delay to latency:\n\n- **Algorithmic** . This delay is inherent and does not vary with the CPU. An example is the delay added by a [finite impulse\n response](http://en.wikipedia.org/wiki/Finite_impulse_response) (FIR) filter.\n- **Computational**. This delay is related to the number of required CPU cycles. For example, attenuation of a signal is usually done by a multiplication operation that takes a varying number of cycles depending on the CPU.\n\nHow we measure\n--------------\n\nWe made the measurements listed on this page using the\n[Dr. Rick O'Rang audio loopback dongle](/docs/core/audio/latency/loopback) and an\n[audio feedback (Larsen effect)\ntest](/docs/core/audio/latency/measure#larsenTest). Measurements assume the application signal processing adds zero\nalgorithmic delay and near-zero computational delay.\n\nWe measure round-trip latency via the headset connector for several reasons:\n\n**Figure 2.** Round-trip latency via headset\nconnector: T~output~ - T~input~\n\n- Important music applications (such as guitar and voice processing) use the headset connector.\n- Measuring round-trip latency of the on-device microphone and speaker can be cumbersome, as it is difficult to keep a feedback loop in open air from entering uncontrolled oscillation.\n- On-device transducers are small and sacrifice frequency response to achieve their small size. To compensate, digital signal processing is applied but increases algorithmic delay for the on-device path.\n\nThere are cases where on-device microphone and speaker latencies *do*\nmatter, but they are usually for one direction, not round-trip. Techniques for\nmeasuring unidirectional latency are described at\n[Measuring Output Latency](/docs/core/audio/latency/measure#measuringOutput)\nand\n[Measuring Input Latency](/docs/core/audio/latency/measure#measuringInput).\n\nExample measurements\n--------------------\n\nThe measurements listed below are specific to a\n[build number](/docs/setup/build-numbers). Devices are listed in\napproximate order of initial release and by platform version; you can also\n[view latencies in a chart](#chart). The test application uses the\nAndroid native audio API based on OpenSL ES.\n\n| Model | Platform version | Build number | Sample rate (Hz) | Buffer size (frames) | Buffer size (ms) | Round-trip latency (ms) ± one buffer |\n|--------------|------------------|--------------------|------------------|----------------------|------------------|--------------------------------------|\n| Nexus One | 2.3.6 | GRK39F | 44100 | 768 | 17.4 | 345 |\n| Nexus S | 2.3.6 | GRK39F | 44100 | 1024 | 23.2 | 260 |\n| Nexus S | 4.0.4 | IMM76D | 44100 | 1024 | 23.2 | 260 |\n| Nexus S | 4.1.2 | JZO54K | 44100 | 880 | 20 | 210 |\n| Galaxy Nexus | 4.0.1 | ITL41D | 44100 | 976 | 22.1 | 270 |\n| Galaxy Nexus | 4.3 | JWR66Y | 44100 | 144 | 3.3 | 130 |\n| Nexus 4 | 4.2.2 | JDQ39E | 48000 | 240 | 5 | 195 |\n| Nexus 4 | 5.1 | LMY47O | 48000 | 240 | 5 | 58 |\n| Nexus 10 | 5.0.2 | LRX22G | 44100 | 256 | 5.8 | 36 |\n| Nexus 10 | 5.1 | LMY47D | 44100 | 256 | 5.8 | 35 |\n| Nexus 7 2013 | 4.3 | JSR78D | 48000 | 240 | 5 | 149 |\n| Nexus 7 2013 | 4.4 | KRT16S | 48000 | 240 | 5 | 85 |\n| Nexus 7 2013 | 5.0.2 | LRX22G | 48000 | 240 | 5 | 64 |\n| Nexus 7 2013 | 5.1 | LMY47O | 48000 | 240 | 5 | 55 |\n| Nexus 7 2013 | 6.0 | MRA58K | 48000 | 240 | 5 | 55 |\n| Nexus 5 | 4.4.4 | KTU84P | 48000 | 240 | 5 | 95 |\n| Nexus 5 | 5.0.0 | LRX21O | 48000 | 240 | 5 | 47 |\n| Nexus 5 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |\n| Nexus 5 | 6.0 | MRA58K | 48000 | 192 | 4 | 38 |\n| Nexus 9 | 5.0.0 | LRX21L | 48000 | 256 | 5.3 | 35 |\n| Nexus 9 | 5.0.1 | LRX22C | 48000 | 256 | 5.3 | 38 |\n| Nexus 9 | 5.1.1 | LMY47X | 48000 | 256 | 5.3 | 32 |\n| Nexus 9 | 6.0 | MRA58K | 48000 | 128 | 2.6 | 15 |\n| Nexus 6 | 5.0.1 | LRX22C | 48000 | 240 | 5 | 65 |\n| Nexus 6 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |\n| Nexus 6 | 6.0 | MRA58K | 48000 | 192 | 4 | 33 |\n| Nexus 5X | 6.0 | MDA89E | 48000 | 192 | 4 | 18 |\n| Nexus 5X | 8.0.0 | OPR4.170623.020 | 48000 | 192 | 4 | 18 |\n| Nexus 5X | 8.1.0 | OPM2.171019.029.C1 | 48000 | 192 | 4 | 18 |\n| Nexus 6P | 6.0 | MDA89D | 48000 | 192 | 4 | 18 |\n| Nexus 6P | 8.0.0 | OPR5.170623.014 | 48000 | 192 | 4 | 18 |\n| Nexus 6P | 8.1.0 | OPM5.171019.019 | 48000 | 192 | 4 | 18 |\n| Pixel | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |\n| Pixel | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |\n| Pixel | 8.1.0 | OPM1.171019.021 | 48000 | 192 | 4 | 18 |\n| Pixel XL | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |\n| Pixel XL | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |\n\n**Figure 3.** Round trip latencies"]]