Pemanasan audio

Pemanasan audio adalah waktu yang diperlukan agar rangkaian penguat audio di perangkat Anda menyala penuh dan mencapai kondisi pengoperasian normal. 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.

Ukur pemanasan keluaran

Thread FastMixer AudioFlinger secara otomatis mengukur pemanasan output dan melaporkannya sebagai bagian dari output perintah dumpsys media.audio_flinger . Saat pemanasan, FastMixer memanggil write() berulang kali hingga waktu antara dua write() adalah jumlah yang diharapkan. FastMixer menentukan pemanasan audio dengan melihat berapa lama waktu yang dibutuhkan write() Lapisan Abstraksi Perangkat Keras (HAL) 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 segera setelah perangkat melakukan booting:

  1. Pastikan FastMixer diaktifkan.
  2. Aktifkan suara sentuhan dengan memilih Pengaturan > Suara > Suara sentuhan pada perangkat.
  3. Pastikan audio telah dimatikan setidaknya selama tiga detik. Lima detik atau lebih lebih baik, karena perangkat keras itu sendiri mungkin memiliki logika dayanya sendiri melebihi 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 pertama HAL write() s.

    warmupCycles=X adalah berapa banyak permintaan penulisan HAL yang diperlukan hingga waktu eksekusi write() sesuai 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 lebih rendah daripada nilai rata-rata.

Ukur pemanasan masukan

Saat ini tidak ada alat yang disediakan untuk mengukur pemanasan input audio. Namun, waktu pemanasan input dapat diperkirakan dengan mengamati waktu yang dibutuhkan startRecording() untuk kembali.

Kurangi waktu pemanasan

Waktu pemanasan biasanya dapat dikurangi dengan kombinasi:

  • Desain sirkuit yang bagus
  • Penundaan waktu yang akurat pada driver perangkat kernel
  • Melakukan operasi pemanasan independen secara bersamaan, bukan secara berurutan
  • Membiarkan sirkuit menyala atau tidak mengkonfigurasi ulang jam (meningkatkan konsumsi daya idle)
  • Menyimpan parameter yang dihitung dalam cache

Namun hati-hati terhadap optimasi yang berlebihan. Anda mungkin perlu menyeimbangkan antara waktu pemanasan yang rendah dan kurangnya transisi daya.