Latensi adalah metrik kinerja sistem yang penting. Meskipun ada banyak jenis metrik latensi audio , satu metrik yang berguna dan dipahami dengan baik adalah latensi bolak-balik , yang didefinisikan sebagai waktu yang diperlukan sinyal audio untuk memasukkan input perangkat seluler, diproses oleh aplikasi yang berjalan di aplikasi prosesor, dan keluar dari output.
Halaman ini menyediakan pengukuran latensi audio bolak-balik untuk perangkat Nexus/Pixel tertentu dan versi platform Android.
Mengapa kami mengukur latensi
Google mengukur dan melaporkan latensi sehingga pengembang aplikasi Android memiliki data yang mereka butuhkan untuk membuat keputusan yang tepat tentang latensi yang tersedia pada perangkat yang sebenarnya. Dengan membagikan nomor latensi untuk perangkat Nexus dan Pixel tertentu, kami berharap dapat mendorong seluruh komunitas Android untuk mengukur, memublikasikan, dan mengurangi latensi di semua perangkat Android. Bergabunglah dengan kami dalam komitmen kami untuk mengurangi latensi audio!
Dampak aplikasi pada latensi
Pemrosesan sinyal dapat menambahkan jenis penundaan berikut ke latensi:
- Algoritma . Penundaan ini melekat dan tidak berbeda dengan CPU. Contohnya adalah penundaan yang ditambahkan oleh filter respons impuls hingga (FIR).
- Komputasi . Penundaan ini terkait dengan jumlah siklus CPU yang diperlukan. Misalnya, pelemahan sinyal biasanya dilakukan dengan operasi perkalian yang membutuhkan jumlah siklus yang bervariasi tergantung pada CPU.
Bagaimana kita mengukur
Kami melakukan pengukuran yang tercantum di halaman ini menggunakan dongle loopback audio Dr. Rick O'Rang dan tes umpan balik audio (efek Larsen) . Pengukuran mengasumsikan pemrosesan sinyal aplikasi menambahkan penundaan algoritmik nol dan penundaan komputasi hampir nol.
Kami mengukur latensi pulang-pergi melalui konektor headset karena beberapa alasan:
- Aplikasi musik penting (seperti gitar dan pemrosesan suara) menggunakan konektor headset.
- Mengukur latensi bolak-balik dari mikrofon dan speaker di perangkat dapat menjadi rumit, karena sulit untuk menjaga loop umpan balik di udara terbuka agar tidak memasuki osilasi yang tidak terkendali.
- Transduser pada perangkat berukuran kecil dan mengorbankan respons frekuensi untuk mencapai ukurannya yang kecil. Untuk mengimbanginya, pemrosesan sinyal digital diterapkan tetapi meningkatkan penundaan algoritmik untuk jalur di perangkat.
Ada kasus di mana latensi mikrofon dan speaker di perangkat memang penting, tetapi biasanya untuk satu arah, bukan bolak-balik. Teknik untuk mengukur latensi searah dijelaskan di Mengukur Latensi Keluaran dan Mengukur Latensi Masukan .
Contoh pengukuran
Pengukuran yang tercantum di bawah ini khusus untuk nomor build . Perangkat terdaftar dalam urutan perkiraan rilis awal dan menurut versi platform; Anda juga dapat melihat latensi dalam bagan . Aplikasi pengujian menggunakan API audio asli Android berdasarkan OpenSL ES.
Model | Platform Versi: kapan | Membangun nomor | Tingkat sampel (Hz) | Ukuran buffer (bingkai) | Ukuran buffer (MS) | Perjalanan pulang pergi latensi (md) ± satu penyangga |
---|---|---|---|---|---|---|
Nexus Satu | 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 |
Piksel | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
Piksel | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |
Piksel | 8.1.0 | OPM1.171019.021 | 48000 | 192 | 4 | 18 |
Piksel XL | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
Piksel XL | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |