Pemanasan audio

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

Dokumen ini menjelaskan cara mengukur waktu pemanasan audio dan cara yang dapat dilakukan untuk mengurangi waktu pemanasan.

Mengukur pemanasan output

Thread FastMixer AudioFlinger 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 durasi Abstraksi Hardware Lapisan (HAL) yang diperlukan write() untuk menstabilkan.

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 sentuhan dengan memilih Setelan > Suara > Suara sentuh di perangkat.
  3. Pastikan audio sudah nonaktif minimal 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 suara klik.
  5. Jalankan perintah berikut untuk menerima pemanasan yang diukur:
    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 dibutuhkan untuk menyelesaikan write() HAL pertama.

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

  6. Lakukan lima kali pengukuran dan catat semuanya, serta nilai rata-ratanya. Jika mereka tidak semuanya sama, maka kemungkinan pengukurannya 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 untuk startRecording() untuk ditampilkan.

Mengurangi waktu pemanasan

Waktu pemanasan biasanya dapat dikurangi dengan kombinasi:

  • Desain sirkuit yang bagus
  • 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 komputasi ke dalam cache

Namun, berhati-hatilah terhadap pengoptimalan yang berlebihan. Anda mungkin mendapati bahwa Anda perlu kompromi antara waktu pemanasan rendah versus kurangnya pop-up pada transisi daya.