Gecikme önemli bir sistem performansı ölçüsüdür. Pek çok türde ses gecikmesi ölçümü mevcut olsa da kullanışlı ve iyi anlaşılan bir ölçüm, bir ses sinyalinin bir mobil cihazın girişine girmesi ve uygulamada çalışan bir uygulama tarafından işlenmesi için geçen süre olarak tanımlanan gidiş-dönüş gecikmesidir. işlemciyi seçin ve çıktıdan çıkın.
![Cihazda gidiş-dönüş ses gecikmesi](https://source.android.com/static/docs/core/audio/images/round_trip_on_device.png?authuser=0000&hl=tr)
Şekil 1. Cihazdaki gidiş-dönüş ses gecikmesi: T çıkışı - T girişi
Bu sayfada, belirli Nexus/Pixel cihazları ve Android platformu sürümleri için gidiş-dönüş ses gecikmesi ölçümleri sağlanır.
Gecikmeyi neden ölçüyoruz?
Google, Android uygulama geliştiricilerinin gerçek cihazlardaki mevcut gecikme hakkında bilinçli kararlar vermek için ihtiyaç duydukları verilere sahip olması için gecikmeyi ölçer ve raporlar. Belirli Nexus ve Pixel cihazlar için gecikme sayılarını paylaşarak, tüm Android topluluğunun tüm Android cihazlarda gecikmeyi ölçmesini, yayınlamasını ve azaltmasını teşvik etmeyi umuyoruz. Lütfen ses gecikmesini azaltma konusundaki kararlılığımıza katılın!
Uygulamanın gecikme üzerindeki etkisi
Sinyal işleme, gecikmeye aşağıdaki gecikme türlerini ekleyebilir:
- Algoritmik . Bu gecikme doğaldır ve CPU'ya göre değişmez. Bir örnek, sonlu dürtü yanıtı (FIR) filtresi tarafından eklenen gecikmedir.
- Hesaplamalı . Bu gecikme gerekli CPU çevrimi sayısıyla ilgilidir. Örneğin, bir sinyalin zayıflatılması genellikle CPU'ya bağlı olarak değişen sayıda döngü alan bir çarpma işlemiyle yapılır.
Nasıl ölçüyoruz?
Bu sayfada listelenen ölçümleri Dr. Rick O'Rang ses geridöngü donanım kilidini ve bir ses geri bildirimi (Larsen etkisi) testini kullanarak yaptık. Ölçümler, uygulama sinyali işlemenin sıfır algoritmik gecikme ve sıfıra yakın hesaplama gecikmesi eklediğini varsaymaktadır.
Gidiş-dönüş gecikmesini çeşitli nedenlerden dolayı kulaklık konektörü aracılığıyla ölçüyoruz:
![Kulaklık konektörü aracılığıyla gidiş-dönüş gecikmesi](https://source.android.com/static/docs/core/audio/images/round_trip_via_headset_connector.png?authuser=0000&hl=tr)
Şekil 2. Kulaklık konektörü aracılığıyla gidiş-dönüş gecikmesi: T çıkışı - T girişi
- Önemli müzik uygulamaları (gitar ve ses işleme gibi) kulaklık konnektörünü kullanır.
- Açık havada bir geri bildirim döngüsünün kontrolsüz salınım girmesini önlemek zor olduğundan, cihaz üzerindeki mikrofon ve hoparlörün gidiş-dönüş gecikmesini ölçmek zahmetli olabilir.
- Cihaz üzeri dönüştürücüler küçüktür ve küçük boyutlarına ulaşmak için frekans tepkisinden fedakarlık ederler. Telafi etmek için dijital sinyal işleme uygulanır ancak cihaz üzerindeki yol için algoritmik gecikmeyi artırır.
Cihazdaki mikrofon ve hoparlör gecikmelerinin önemli olduğu durumlar vardır, ancak bunlar genellikle gidiş-dönüş için değil, tek yön içindir. Tek yönlü gecikmeyi ölçme teknikleri , Çıkış Gecikmesini Ölçme ve Giriş Gecikmesini Ölçme bölümünde açıklanmaktadır.
Örnek ölçümler
Aşağıda listelenen ölçümler yapı numarasına özeldir. Cihazlar yaklaşık olarak ilk piyasaya sürülme sırasına ve platform sürümüne göre listelenir; gecikmeleri bir grafikte de görüntüleyebilirsiniz . Test uygulaması, OpenSL ES'yi temel alan Android yerel ses API'sini kullanır.
Modeli | platformu versiyon | İnşa etmek sayı | Aynı oran (Hz) | Arabellek boyutu (çerçeveler) | Arabellek boyutu (Hanım) | Gidiş gecikme (ms) ± bir tampon |
---|---|---|---|---|---|---|
Nexus Bir | 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 |
Galaksi Bağlantı Noktası | 4.0.1 | ITL41D | 44100 | 976 | 22.1 | 270 |
Galaksi Bağlantı Noktası | 4.3 | JWR66Y | 44100 | 144 | 3.3 | 130 |
Nexus4 | 4.2.2 | JDQ39E | 48000 | 240 | 5 | 195 |
Nexus4 | 5.1 | LMY47O | 48000 | 240 | 5 | 58 |
Nexus10 | 5.0.2 | LRX22G | 44100 | 256 | 5.8 | 36 |
Nexus10 | 5.1 | LMY47D | 44100 | 256 | 5.8 | 35 |
Nexus7 2013 | 4.3 | JSR78D | 48000 | 240 | 5 | 149 |
Nexus7 2013 | 4.4 | KRT16S | 48000 | 240 | 5 | 85 |
Nexus7 2013 | 5.0.2 | LRX22G | 48000 | 240 | 5 | 64 |
Nexus7 2013 | 5.1 | LMY47O | 48000 | 240 | 5 | 55 |
Nexus7 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 |
Nexus5X | 6.0 | MDA89E | 48000 | 192 | 4 | 18 |
Nexus5X | 8.0.0 | OPR4.170623.020 | 48000 | 192 | 4 | 18 |
Nexus5X | 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 |
Şekil 3. Gidiş dönüş gecikmeleri