במאמר הזה מתוארת המרה של קצב דגימה, שנקראת גם דגימה מחדש, ב-Android. בטרמינולוגיה מוסבר על המונחים הקשורים להמרת קצב דגימה.
המרת תדירות דגימה היא תהליך של שינוי של מקור נתונים של דגימות נפרדות מתדירות דגימה אחת למקור נתונים אחר בתדירות דגימה שונה. ממיר של קצב דגימה, או רסאמר, הוא מודול שמטמיע המרה של קצב דגימה. בנוגע למכשיר הדגימה מחדש, הסטרימינג המקורי נקרא אות המקור, והסטרימינג שעבר דגימה מחדש נקרא אות היעד.
נעשה שימוש ב-Resamplers בכמה מקומות ב-Android. לדוגמה, קובץ MP3 יכול להיות מקודד בתדירות דגימה של 44.1kHz, אבל צריך להפעיל אותו במכשיר Android שתומך פנימית באודיו 48kHz. במקרה כזה, נעשה שימוש ב-resampler כדי להגדיל את תדירות הדגימה של אודיו הפלט בפורמט MP3 מתדירות דגימה של מקור של 44.1 kHz לתדירות דגימה של Sink של 48 kHz שמשמשת במכשיר Android.
אפשר להביע את המאפיינים של ה-resampler באמצעות מדדים, כולל:
- מידת השמירה על האמפליטודה הכוללת של האות
- מידת השמירה על רוחב הפס של התדר של האות, בכפוף למגבלות של קצב הדגימה של בור היציאה
- זמן האחזור הכולל דרך ה-resampler
- עיכוב פאזה ועיכוב קבוצה עקביים ביחס לתדר
- מורכבות חישובית, שמתבטאת במחזורי מעבד או בצריכת חשמל
- היחסים המותרים בין שיעורי הדגימה של המקור לבין שיעורי הדגימה של היעד
- יכולת לשנות באופן דינמי את יחסי קצב הדגימה
- אילו פורמטים של טעימות אודיו דיגיטלי נתמכים
ה-resampler האידיאלי ישמור בדיוק על האמפליטודה ועל רוחב הפס של תדר האות במקור (בכפוף למגבלות של קצב הדגימה של בורר הנתונים), יהיה לו עיכוב מינימלי ועקבי, מורכבות חישובית מינימלית, יחסי המרה שרירותיים ודינמיים ותמיכה בכל הפורמטים הנפוצים של דגימות אודיו דיגיטלי. בפועל, לא קיימים מודלים אידיאליים של מניפולציה של תדרי דגימה, כי מודלים בפועל הם פשרה בין המאפיינים האלה. לדוגמה, יעדים של איכות אידיאלית מתנגשים עם עיכוב קצר ומורכבות נמוכה.
מערכת Android כוללת מגוון של רכיבי 'דגימה מחדש' של אודיו, כך שאפשר להגיע לפשרות מתאימות בהתאם לתרחיש לדוגמה ולעומס של האפליקציה. הסבר על ה-Resamplers הזמינים מופיע בקטע הטמעת Resampler.
הטמעות של כלי לדגימה מחדש
הטמעות הניתוח מחדש הזמינות משתנות לעיתים קרובות, ויכול להיות ש-OEMs ישנו אותן בהתאמה אישית. נגני ה-Resample שמוגדרים כברירת מחדל, בסדר יורד של עיוות האות ועלייה בסדר של המורכבות החישובית, כוללים:
- לינארי
- מעוקבים
- sinc עם המקדמים המקוריים
- sinc עם מקדמים מתוקנים
באופן כללי, ה-resamplers מסוג sinc מתאימים יותר להפעלת מוזיקה באיכות גבוהה יותר, וה-resamplers האחרים מיועדים למקרים שבהם האיכות פחות חשובה (לדוגמה, 'קליקים על מקש' או משהו דומה).
ההטמעה הספציפית של ה-resampler שנבחרה תלויה בתרחיש לדוגמה, בעומס ובערך של מאפיין המערכת af.resampler.quality
. פרטים נוספים זמינים בקוד המקור של ה-resampler של האודיו ב-AudioFlinger.