חימום אודיו

חימום האודיו הוא הזמן שעובר עד שהמעגל של מגבר האודיו במכשיר מופעל במלואו ויגיע למצב הפעולה הרגיל שלו. הגורמים העיקריים לשינוי ועד לשעת החימום של האודיו, הם מנהלים את צריכת החשמל וכל פעולה של ביטול הפעלה לוגיקה לייצב במעגל.

במסמך הזה נסביר איך למדוד את משך הזמן לחימום האודיו ודרכים שונות לצמצם את משך הזמן הגיע הזמן לחימום.

מדידת החימום של הפלט

ה-thread FastMixer של AudioFlinger מודד באופן אוטומטי חימום פלט ומדווחת עליו כחלק מהפלט של הפקודה dumpsys media.audio_flinger. בזמן החימום, FastMixer מתקשר למספר write() שוב ושוב עד הזמן הצפוי בין שני write() שניות. FastMixer קובע את משך ההפעלה של האודיו באמצעות בדיקת האורך של אבסטרקטיבת חומרה השכבה (HAL) write() לוקחת כדי לייצב.

כדי למדוד את חימום האודיו, יש לפעול לפי השלבים הבאים ברמקול המובנה ובאוזניות החוטיות ובזמנים שונים לאחר האתחול. זמני החימום שונים בדרך כלל בכל מכשיר פלט ומיד לאחר אתחול המכשיר:

  1. מוודאים ש-FastMixer מופעל.
  2. כדי להפעיל את צלילי המגע, בוחרים באפשרות הגדרות > צליל > צלילי מגע במכשיר.
  3. מוודאים שהאודיו מושבת במשך שלוש שניות לפחות. עדיף חמש שניות או יותר, כי לחומרה עצמה יכולה להיות לוגיקת חשמל משלה, מעבר לשלוש השניות שיש ל-AudioFlinger.
  4. לוחצים על לחצן דף הבית, וצריך להישמע צליל של קליקים.
  5. מריצים את הפקודה הבאה כדי לקבל את פעולת החימום שנמדדה:
    adb shell dumpsys media.audio_flinger | grep measuredWarmup
    

    הפלט אמור להיראות כך:

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

    measuredWarmup=X הוא מספר X של אלפיות שנייה נדרשה הקבוצה הראשונה של HAL write().

    הערך warmupCycles=X הוא מספר בקשות הכתיבה ל-HAL שנדרשו עד שזמן הביצוע של write() יתאים למצופה.

  6. עורכים חמש מדידות ומתעדים את כולן, וגם את הממוצע. אם לא כולם בערך אותו דבר, סביר להניח שהמדידה שגויה. לדוגמה, אם לא מחכים מספיק זמן אחרי השבתת האודיו, יופיע זמן חימום נמוך יותר מהערך הממוצע.

מדידת החימום של הקלט

כרגע אין כלים זמינים למדידת חימום של קלט אודיו. עם זאת, כדי להעריך את זמן החימום של הקלט, משך הזמן שנדרש עבור startRecording() כדי לחזור אליה.

קיצור זמן החימום

בדרך כלל אפשר לקצר את זמן החימום בשילוב של:

  • תכנון מעגלים טוב
  • עיכובים מדויקים במנהל התקן הליבה של מכשיר הליבה
  • ביצוע פעולות חימום עצמאיות בו-זמנית, במקום ברצף
  • השארת מעגלים במצב מופעל או אי-הגדרה מחדש של שעונים (הגברת צריכת החשמל במצב חוסר פעילות)
  • שמירת פרמטרים מחושבים במטמון

עם זאת, צריך להיזהר מאופטימיזציה מוגזמת. יכול להיות שתצטרכו להתפשר בין זמן הפעלה ממושך לבין היעדר רעשי פופ במעברי מתח.