Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Pemanasan Audio

Pemanasan audio adalah waktu yang diperlukan sirkuit penguat audio di perangkat Anda untuk mendapatkan daya penuh dan mencapai status pengoperasian normalnya. Kontributor utama untuk 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

Rangkaian 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() mencapai jumlah yang diharapkan. FastMixer menentukan pemanasan audio dengan melihat berapa lama waktu yang dibutuhkan Hardware Abstraction Layer (HAL) write() untuk stabil.

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 booting:

  1. Pastikan FastMixer diaktifkan.
  2. Aktifkan suara sentuhan dengan memilih Settings> Sound> Touch sounds di perangkat.
  3. 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.
  4. Tekan Beranda, dan Anda akan mendengar bunyi klik.
  5. Jalankan perintah berikut untuk menerima pemanasan terukur:
    adb shell dumpsys media.audio_flinger | grep measuredWarmup
    

    Anda akan melihat keluaran seperti ini:

    sampleRate=44100 frameCount=256 measuredWarmup=X ms, warmupCycles=X
    

    measuredWarmup=X adalah X jumlah milidetik yang diperlukan untuk menyelesaikan set HAL write() .

    warmupCycles=X adalah berapa banyak permintaan tulis HAL yang dibutuhkan hingga waktu eksekusi write() cocok dengan yang diharapkan.

  6. Ambil lima pengukuran dan catat semuanya, serta meannya. 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 input

Saat ini tidak ada alat yang disediakan untuk mengukur pemanasan input audio. Namun, waktu pemanasan input dapat diperkirakan dengan mengamati waktu yang dibutuhkan untuk startRecording () 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, bukan secara berurutan
  • Membiarkan sirkuit dihidupkan atau tidak mengkonfigurasi ulang jam (meningkatkan konsumsi daya idle)
  • Caching parameter yang dihitung

Namun, waspadalah terhadap pengoptimalan yang berlebihan. Anda mungkin menemukan bahwa Anda perlu menukar antara waktu pemanasan yang rendah versus kurangnya popping pada transisi daya.