Pemanasan audio adalah waktu yang diperlukan sirkuit penguat audio di perangkat Anda untuk mendapatkan daya penuh dan mencapai kondisi operasi normalnya. Kontributor utama waktu pemanasan audio adalah manajemen daya dan logika "de-pop" untuk menstabilkan sirkuit.
Dokumen ini menjelaskan cara mengukur waktu pemanasan audio dan kemungkinan cara untuk mengurangi waktu pemanasan.
Mengukur pemanasan keluaran
Utas FastMixer AudioFlinger secara otomatis mengukur pemanasan keluaran dan melaporkannya sebagai bagian dari keluaran perintah dumpsys media.audio_flinger
. Saat pemanasan, FastMixer memanggil write()
berulang kali hingga waktu antara dua write()
s adalah jumlah yang diharapkan. FastMixer menentukan pemanasan audio dengan melihat berapa lama write()
diperlukan untuk menstabilkan.
Untuk mengukur pemanasan audio, ikuti langkah-langkah berikut untuk speaker internal dan headphone berkabel dan pada waktu yang berbeda setelah booting. Waktu pemanasan biasanya berbeda untuk setiap perangkat keluaran dan tepat setelah perangkat mem-boot:
- Pastikan FastMixer diaktifkan.
- Aktifkan suara sentuhan dengan memilih Pengaturan > Suara > Suara sentuh pada perangkat.
- Pastikan audio telah dimatikan setidaknya selama tiga detik. Lima detik atau lebih lebih baik, karena perangkat keras itu sendiri mungkin memiliki logika daya sendiri di luar tiga detik yang dimiliki AudioFlinger.
- Tekan Beranda, dan Anda akan mendengar bunyi klik.
- Jalankan perintah berikut untuk menerima pemanasan terukur:
adb shell dumpsys media.audio_flinger | grep measuredWarmup
Anda akan melihat output seperti ini:
sampleRate=44100 frameCount=256 measuredWarmup=X ms, warmupCycles=X
measuredWarmup=X
adalah X jumlah milidetik yang diperlukan untuk menyelesaikan set pertama HALwrite()
s.warmupCycles=X
adalah berapa banyak permintaan penulisan HAL yang diperlukan hingga waktu eksekusiwrite()
sesuai dengan yang diharapkan. - Ambil lima pengukuran dan catat semuanya, serta rata-ratanya. Jika tidak semuanya kurang lebih sama, kemungkinan besar pengukurannya salah. Misalnya, jika Anda tidak menunggu cukup lama setelah audio dimatikan, Anda akan melihat waktu pemanasan yang lebih rendah daripada nilai rata-rata.
Mengukur pemanasan masukan
Saat ini tidak ada alat yang disediakan untuk mengukur pemanasan input audio. Namun, waktu pemanasan input dapat diperkirakan dengan mengamati waktu yang diperlukan untuk startRecording() untuk kembali.
Mengurangi waktu pemanasan
Waktu pemanasan biasanya dapat dikurangi dengan kombinasi:
- Desain sirkuit yang bagus
- Penundaan waktu yang akurat dalam driver perangkat kernel
- Melakukan operasi pemanasan independen secara bersamaan daripada berurutan
- Membiarkan sirkuit menyala atau tidak mengkonfigurasi ulang jam (meningkatkan konsumsi daya idle)
- Caching parameter yang dihitung
Namun, waspadalah terhadap optimasi yang berlebihan. Anda mungkin menemukan bahwa Anda perlu menukar antara waktu pemanasan yang rendah versus kurangnya muncul pada transisi daya.