בדף הזה מתוארות שיטות נפוצות למדידת זמן האחזור של קלט ופלט.
מדידת זמן האחזור של הפלט
יש כמה שיטות למדידת זמן האחזור של הפלט, עם רמות שונות של דיוק וקלות הפעלה, כפי שמתואר בהמשך. אפשר גם לעיין במאמר מעגל בדיקה כדי לראות דוגמה לסביבת בדיקה.
בדיקת LED ואוסצילוסקופ
הבדיקה הזו מודדת את זמן האחזור ביחס למחוון ה-LED של המכשיר. אם למכשיר הייצור אין נורית LED, אפשר להתקין את הנורית במכשיר אב טיפוס באותו פורמט. כדי לשפר את הדיוק במכשירי אב טיפוס עם מעגלים חשמליים חשופים, אפשר לחבר את אחד מהסורקים של אוסילוסקופ ישירות לנורית ה-LED כדי לעקוף את זמן האחזור של חיישן האור.
אם אתם לא מצליחים להתקין נורית LED במכשיר הייצור או באב טיפוס, תוכלו לנסות את הפתרונות הבאים:
- אפשר להשתמש באותו מטרה בסיכה של קלט/פלט למטרות כלליות (GPIO).
- משתמשים ב-JTAG או ביציאה אחרת לניפוי באגים.
- להשתמש בתאורה האחורית של המסך. הדבר עלול להיות מסוכן כי לתאורת הרקע עשויה להיות זמן אחזור לא זניח, והיא עלולה לגרום לקריאה לא מדויקת של זמן האחזור.
כדי לבצע את הבדיקה הזו:
- מריצים אפליקציה שמפעילה את ה-LED מדי פעם בזמן שהיא מפיקה אודיו.
הערה: כדי לקבל תוצאות מועילות, חשוב להשתמש בממשקי ה-API הנכונים באפליקציית הבדיקה, כדי שתוכלו להפעיל את נתיב הפלט המהיר של האודיו. מידע נוסף זמין במאמר עיצוב לזמן אחזור קצר יותר.
- מניחים חיישן אור ליד ה-LED.
- מחברים את הגששים של אוסילוסקופ עם שני ערוצים גם לתקע של אוזניות חוטיות (פלט לקו) וגם לחיישן האור.
- משתמשים באוסילוסקופ כדי למדוד את ההפרש בזמן בין האות של פלט הקו לבין האות של חיישן האור.
ההפרש בזמן הוא זמן האחזור המשוער של פלט האודיו, בהנחה שזמן האחזור של ה-LED וזמן האחזור של חיישן האור הם אפס. בדרך כלל, ל-LED ולחיישן האור יש זמן אחזור נמוך יחסית, בסדר גודל של אלפית שנייה או פחות, שהוא נמוך מספיק כדי להתעלם ממנו.
מדידת זמן האחזור הלוך ושוב
זמן האחזור הלוך ושוב הוא הסכום של זמן האחזור של הפלט וזמן האחזור של הקלט.
בדיקת Larsen
אחת מבדיקות זמן האחזור הקלות ביותר היא בדיקת משוב אודיו (אפקט לארסן). כך אפשר לקבל מדידה גסה של זמן האחזור המצטבר של הקלט והפלט על ידי מדידת הזמן של לולאת תגובת הלם. הבדיקה הזו לא שימושית במיוחד לניתוח מפורט בפני עצמה בגלל אופי הבדיקה, אבל היא יכולה לשמש לכיול בדיקות אחרות ולקביעת גבול עליון.
השיטה הזו לא מפרטת את זמני הרכיבים, וזה חשוב כשזמן האחזור של הפלט וזמן האחזור של הקלט הם עצמאיים. לכן לא מומלץ להשתמש בשיטה הזו כדי למדוד ערכי זמן אחזור מדויקים של פלט או קלט בנפרד, אבל היא עשויה להיות שימושית כדי לקבל אומדנים גסים.
זמן האחזור של הפלט לרמקול במכשיר יכול להיות ארוך בהרבה מזמן האחזור של הפלט למחבר של אוזניות. הסיבה לכך היא תיקון והגנה על הרמקול.
כדי לבצע את הבדיקה הזו:
- להפעיל אפליקציה שמצלמת אודיו מהמיקרופון ומשמיעה מיד את הנתונים שתועדו דרך הרמקול.
- ליצור צליל חיצוני, למשל להקיש על עיפרון ליד המיקרופון. הרעש הזה יוצר לולאת משוב. לחלופין, אפשר להחדיר פולס ללולאה באמצעות תוכנה.
- מודדים את הזמן בין הפולסים של המשוב כדי לקבל את הסכום של זמן האחזור של הפלט, זמן האחזור של הקלט והעלות הכוללת של האפליקציה.
ריכזנו כאן כמה מקורות מידע שיעזרו לכם למצוא אפליקציה לבדיקה של Larsen:
- אפליקציית ה-loopback של Dr. Rick O'Rang היא אפליקציה ל-Android לבדיקה של משוב אודיו. אתם יכולים להוריד את האפליקציה מ-Google Play או לקבל את קוד המקור מ-GitHub.
-
פרסמנו גם דוגמה להטמעה ב-slesTestFeedback.cpp.
זוהי אפליקציית שורת פקודה שנוצרה באמצעות סביבת ה-build של הפלטפורמה, אבל קל להשתמש בקוד בסביבות אחרות.
תצטרכו גם את קוד ה-FIFO הלא חוסם שנמצא בספרייה
audio_utils
.
מתאם אודיו ל-loopback
ה-dongle של Dr. Rick O'Rang לאודיו ב-loopback שימושי למדידת זמן האחזור הלוך ושוב דרך מחבר האוזניות. בתמונה הבאה מוצגת התוצאה של הזרקת פולס ללולאה פעם אחת, ולאחר מכן מתן אפשרות ללולאת המשוב לרטוט. מחזור התנודות הוא זמן האחזור הלוך ושוב. המכשיר הספציפי, גרסת התוכנה ותנאי הבדיקה לא צוינו כאן. אין להסיק מסקנות מהתוצאות המוצגות.

איור 1. מדידה הלוך ושוב
יכול להיות שתצטרכו להסיר את כבל ה-USB כדי לצמצם את הרעש, ולכוונן את עוצמת הקול כדי לקבל תנודות יציבות.
מדידת זמן האחזור של הקלט
קשה יותר למדוד את זמן האחזור של הקלט בהשוואה לזמן האחזור של הפלט. הבדיקות הבאות יכולות לעזור.
אחת הגישות היא קודם לקבוע את זמן האחזור של הפלט באמצעות השיטה של ה-LED והאוסצילסקופ, ואז להשתמש בבדיקה של משוב האודיו (Larsen) כדי לקבוע את הסכום של זמן האחזור של הפלט וזמן האחזור של הקלט. ההבדל בין שני המדידות האלה הוא זמן האחזור של הקלט.
שיטה נוספת היא להשתמש בסיכה של GPIO במכשיר אב טיפוס. באופן חיצוני, מפעילים פולס בקלט GPIO באותו הזמן שמציגים אות אודיו למכשיר. מריצים אפליקציה שמשוותת את ההבדל בין זמני ההגעה של אות ה-GPIO לבין נתוני האודיו.
הפחתת זמן האחזור
כדי להשיג זמן אחזור קצר של אודיו, חשוב להקפיד במיוחד על תזמון, טיפול בהפרעות, ניהול צריכת החשמל ותכנון של מנהלי ההתקנים במערכת. המטרה היא למנוע מחלק כלשהו בפלטפורמה לחסום שיחת אודיו ב-SCHED_FIFO
למשך יותר ממספר אלפיות השנייה. שימוש בגישה שיטתית כזו מאפשר לצמצם את זמן האחזור של האודיו וליהנות מהיתרון המשני של ביצועים צפויים יותר באופן כללי.
לרוב, אפשר לזהות קיצורי אודיו רק בתנאים מסוימים או רק במעברים. כדאי לנסות להפעיל לחץ על המערכת על ידי הפעלת אפליקציות חדשות וגלילת מהירה במסכים שונים. עם זאת, חשוב לזכור שתנאי בדיקה מסוימים גורמים לעומס גדול כל כך עד שהם חורגים מהיעדים של תכנון המערכת. לדוגמה, יצירת דוח באגים יוצרת עומס עצום על המערכת, ולכן יכול להיות שסביר שיהיו מקרים של זמן ריצה קצר מדי.
כשבודקים אם יש חסר:
- מגדירים את ה-DSP אחרי מעבד האפליקציות כדי להוסיף זמן אחזור מינימלי.
- מריצים בדיקות בתנאים שונים, כמו מסך כבוי או דלוק, חיבור USB מחובר או לא מחובר, Wi-Fi מופעל או מושבת, Bluetooth מופעל או מושבת, טלפוניה ורדיו נתונים מופעלים או מושבתים.
- בוחרים מוזיקה שקטה יחסית שאתם מכירים היטב, ושקל לשמוע בה את הפסקות הקצרות.
- כדאי להשתמש באוזניות חוטיות כדי לשפר את הרגישות.
- כדאי לקחת הפסקות כדי למנוע 'עייפות אוזניים'.
אחרי שתמצאו את הסיבות הבסיסיות לבעיות של מחסור בנתונים, תוכלו לצמצם את מספר המאגרים ואת הגדלים שלהם כדי לנצל את היתרון הזה. הגישה הנחפזת של צמצום מספרי המאגרים והגדלים שלהם לפני ניתוח של מחסור בנתונים ותיקון הגורמים למחסור בנתונים רק מובילה לתסכול.
כלים
systrace
הוא כלי מצוין למטרות כלליות לאבחון תקלות בביצועים ברמת המערכת.
הפלט של dumpsys media.audio_flinger
מכיל גם קטע שימושי שנקרא 'נתונים סטטיסטיים נעים פשוטים'. כאן מוצג סיכום של התנודות בזמנים שחלפו בכל ערבוב אודיו וסיבוב קלט/פלט.
באופן אידיאלי, כל מדידות הזמן צריכות להיות כמעט זהות לזמן המחזור הממוצע או לזמן המחזור המשוער. אם הערך המינימלי נמוך מאוד או שהערך המקסימלי גבוה מאוד, זה סימן לבעיה, כנראה זמן אחזור ארוך לתזמון או זמן השבתה ארוך של ההפרעה. החלק של הזנב בפלט מועיל במיוחד, כי הוא מדגיש את התנודתיות מעבר ל-3 סטיות סטנדרטיות.