Pemanasan audio

Pemanasan audio adalah waktu yang diperlukan sirkuit amplifier audio di perangkat Anda agar sepenuhnya menyala dan mencapai status operasi normalnya. Kontributor utama untuk waktu pemanasan audio adalah pengelolaan daya dan logika "de-pop" apa pun untuk menstabilkan sirkuit.

Dokumen ini menjelaskan cara mengukur waktu pemanasan audio dan kemungkinan cara untuk mengurangi waktu pemanasan.

Mengukur pemanasan output

Thread FastMixer AudioFlinger secara otomatis mengukur pemanasan output dan melaporkannya sebagai bagian dari output perintah dumpsys media.audio_flinger. Pada 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 diperlukan write() Hardware Abstraction Layer (HAL) untuk stabil.

Untuk mengukur pemanasan audio, ikuti langkah-langkah berikut untuk speaker bawaan dan headphone berkabel dan pada waktu yang berbeda setelah booting. Waktu pemanasan biasanya berbeda untuk setiap perangkat output dan tepat setelah mem-booting perangkat:

  1. Pastikan FastMixer diaktifkan.
  2. Aktifkan suara sentuh dengan memilih Setelan > Suara > Suara sentuh di perangkat.
  3. Pastikan audio telah dinonaktifkan selama minimal tiga detik. Lima detik atau lebih lebih baik, karena hardware itu sendiri mungkin memiliki logika daya sendiri di luar tiga detik yang dimiliki AudioFlinger.
  4. Tekan tombol Beranda, dan Anda akan mendengar suara klik.
  5. 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 jumlah milidetik X yang diperlukan untuk menyelesaikan kumpulan pertama write() HAL.

    warmupCycles=X adalah jumlah permintaan tulis HAL yang diperlukan hingga waktu eksekusi write() cocok dengan yang diharapkan.

  6. Lakukan lima pengukuran dan catat semuanya, serta rata-ratanya. Jika tidak semuanya kira-kira sama, kemungkinan pengukuran salah. Misalnya, jika Anda tidak menunggu cukup lama setelah audio dinonaktifkan, 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 diperlukan agar startRecording() ditampilkan.

Mengurangi waktu pemanasan

Waktu pemanasan biasanya dapat dikurangi dengan kombinasi dari:

  • Desain sirkuit yang baik
  • Penundaan waktu yang akurat di driver perangkat kernel
  • Melakukan operasi pemanasan independen secara serentak, bukan secara berurutan
  • Membiarkan sirkuit tetap menyala atau tidak mengonfigurasi ulang clock (meningkatkan konsumsi daya saat tidak ada aktivitas)
  • Menyimpan parameter yang dihitung ke dalam cache

Namun, waspadai pengoptimalan yang berlebihan. Anda mungkin mendapati bahwa Anda perlu melakukan trade-off antara waktu pemanasan yang rendah dengan kurangnya pop-up pada transisi daya.