מדידת זמן השהיית אודיו

דף זה מתאר שיטות נפוצות למדידת זמן השהיה של קלט ופלט.

מדידת זמן השהיית פלט

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

בדיקת LED ואוסילוסקופ

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

אם אינך יכול להתקין LED במכשיר הייצור או באב הטיפוס שלך, נסה את הדרכים הבאות לעקיפת הבעיה:

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

כדי לבצע בדיקה זו:

  1. הפעל אפליקציה שמפעימה מעת לעת את הנורית באותו זמן שהיא מוציאה אודיו.

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

  2. הנח חיישן אור ליד הנורית.
  3. חבר את הבדיקות של אוסילוסקופ דו-ערוצי גם לשקע האוזניות החוטי (פלט קו) וגם לחיישן האור.
  4. השתמש באוסילוסקופ כדי למדוד את הפרש הזמן בין התבוננות באות הפלט של הקו לעומת אות חיישן האור.

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

מדידת זמן אחזור הלוך ושוב

חביון הלוך ושוב הוא הסכום של חביון פלט והשהיית קלט.

מבחן לארסן

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

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

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

כדי לבצע בדיקה זו:

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

הנה כמה משאבים לקבלת אפליקציה למבחן לארסן:

דונגל לולאת שמע

דונגל הלולאה האודיו של Dr. Rick O'Rang שימושי למדידת חביון הלוך ושוב דרך מחבר האוזניות. התמונה למטה מדגימה את התוצאה של הזרקת דחף ללולאה פעם אחת, ולאחר מכן מתן אפשרות ללולאת המשוב להתנודד. תקופת התנודות היא חביון הלוך ושוב. ההתקן, מהדורת התוכנה ותנאי הבדיקה הספציפיים אינם מצוינים כאן. אין לבצע אקסטרפולציה של התוצאות המוצגות.

מדידה הלוך ושוב

איור 1. מדידה הלוך ושוב

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

מדידת זמן השהיית קלט

קשה יותר למדוד את זמן השהיית הקלט מאשר השהיית הפלט. הבדיקות הבאות עשויות לעזור.

גישה אחת היא לקבוע תחילה את זמן ההשהיה של הפלט באמצעות שיטת ה-LED והאוסצילוסקופ ולאחר מכן להשתמש במבחן משוב האודיו (Larsen) כדי לקבוע את סכום השהיה של הפלט והשהיית הקלט. ההבדל בין שתי המדידות הללו הוא זמן השהיית הקלט.

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

צמצם את זמן האחזור

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

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

בעת בדיקה לאיתור תקלות:

  • הגדר כל DSP אחרי מעבד האפליקציה כך שיוסיף זמן אחזור מינימלי.
  • הפעל בדיקות בתנאים שונים כמו הפעלה או כיבוי של המסך, USB מחובר או מנותק, WiFi מופעל או כיבוי, Bluetooth מופעל או כיבוי, ומכשירי רדיו טלפוניה ונתונים מופעלים או כבויים.
  • בחר מוזיקה שקטה יחסית שאתה מכיר היטב, ואשר קל לשמוע בה תקלות.
  • השתמש באוזניות חוטיות לרגישות נוספת.
  • תן לעצמך הפסקות כדי שלא תחווה "עייפות אוזניים".

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

כלים

systrace הוא כלי מצוין לשימוש כללי לאבחון תקלות בביצועים ברמת המערכת.

הפלט של dumpsys media.audio_flinger מכיל גם קטע שימושי שנקרא "סטטיסטיקה נעה פשוטה". יש לזה סיכום של השונות של הזמנים שחלפו עבור כל מיקס אודיו ומחזור קלט/פלט. באופן אידיאלי, כל מדידות הזמן צריכות להיות בערך שווה לזמן המחזור הממוצע או הנומינלי. אם אתה רואה מינימום או מקסימום נמוך מאוד, זהו אינדיקציה לבעיה, ככל הנראה זמן השהייה גבוה בתזמון או זמן השבתת הפסקה. החלק הזנב של הפלט מועיל במיוחד, מכיוון שהוא מדגיש את השונות מעבר ל-+/- 3 סטיות תקן.