פורמטים של נתונים

שימושים אנדרואיד מגוון רחב של אודיו בפורמטים נתונים פנימי, וחושפת תת-קבוצה של אלה APIs הציבור, פורמטים של קבצים , ואת שכבת הפשטת חומרה (HAL).

נכסים

פורמטי נתוני השמע מסווגים לפי מאפייניהם:

דְחִיסָה
דחוס , ללא אובדן דחוס , או lossy דחוס . PCM הוא פורמט השמע הלא דחוס הנפוץ ביותר. FLAC הוא פורמט דחוס ללא הפסד, ואילו MP3 ו- AAC הם פורמטים דחוסים אבודים.
עומק קצת
מספר סיביות משמעותיות לדגימת שמע.
גודל מיכל
מספר הביטים המשמשים לאחסון או להעברה של דוגמה. בדרך כלל זה זהה לעומק הסיביות, אך לפעמים מוקצים סיביות ריפוד נוספות ליישור. לדוגמא, ניתן לכלול דוגמה של 24 סיביות בתוך מילה של 32 סיביות.
יישור
אם גודל המיכל הוא בדיוק שווה מעט עומק, ייצוג נקרא ארז. אחרת הייצוג הוא פרק. החלקים המשמעותיים של המדגם מיושרים בדרך כלל עם החלק השמאלי ביותר (המשמעותי ביותר) או הימני ביותר (הכי פחות משמעותי) של המכולה. מקובל לעשות שימוש במונחים ארוז ולא ארוז רק כאשר עומק ביט אינו כוח של שני .
חתימה
בין אם דוגמאות חתומות ובין אם לא חתומות.
יִצוּג
או נקודה קבועה או נקודה צפה; ראה למטה.

ייצוג נקודתי קבוע

נקודת קבוע הוא הייצוג הנפוץ ביותר לנתוני שמע PCM לא דחוס, במיוחד ממשקי חומרה.

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

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

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

|largest negative value| = |largest positive value| + 1

סימון Q ו- U

ישנם שונים סימונים עבור ייצוג קבוע טעם שלם. אנו משתמשים בסימון Q : Q מטר. n אמצעים מ ביטים שלמים n ביטי שבר. ה- "Q" נחשב לסיבית אחת, אם כי הערך מתבטא בהשלמה של שתיים. המספר הכולל של ביטים הוא m + n + 1.

U מ '. n הוא מספרי חתום: ביטים שלמים m ו- n ביטי שבר, ואת הספירה "U" כמו אפס ביטים. המספר הכולל של ביטים הוא m + n.

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

ייצוג נקודה צפה

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

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

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

פורמטים של Android לאודיו

הפורמטים העיקריים של Android לאודיו מופיעים בטבלה שלהלן:

סִמוּן
תכונה ש Q.15 Q0.7 1 שאלה 0.23 ש '0.31 לָצוּף
מְכוֹלָה
ביטים
16 8 24 או 32 2 32 32
חתיכות משמעותיות
כולל שלט
16 8 24 24 או 32 2 25 3
חדר ראשי
ב- dB
0 0 0 0 126 4
טווח דינמי
ב- dB
90 42 138 138 עד 186 900 5

לכל הפורמטים של הנקודה הקבועה לעיל יש טווח סמלי של -1.0 עד +1.0 פחות LSB אחד. יש ערך שלילי אחד יותר מאשר ערך חיובי בשל ייצוג המשלים של השניים.

הערות שוליים:

  1. כל הפורמטים שלמעלה מבטאים ערכי דוגמה חתומים. הפורמט 8 סיביות נקרא בדרך כלל "חתום", אבל הוא למעשה ערך חתמה עם הטיה של 0.10000000 .
  2. Q0.23 עשוי להיות ארוז ב -24 סיביות (שלושה בתים של 8 סיביות, מעט אנדיאן), או ניתן לארוז אותו ב -32 סיביות. אם נפרקים, החלקים המשמעותיים מוצדקים ימינה כלפי ה- LSB עם ריפוד הארכת סימנים לכיוון ה- MSB (Q8.23), או שמצדקת שמאלה כלפי ה- MSB עם אפס מילוי לכיוון ה- LSB (Q0.31). תיאורטית Q0.31 מאפשר עד 32 סיביות משמעותיות, אך ממשקי חומרה המקבלים Q0.31 לעיתים רחוקות משתמשים בכל הסיביות.
  3. נקודה צפה של דיוק יחיד כוללת 23 ביטים מפורשים בתוספת ביט מוסתר וסיבית אחת, וכתוצאה מכך 25 סיביות משמעותיות. מספרי Denormal יש פחות ביטים משמעותיים.
  4. נקודה צפה עם דיוק יחיד יכולה לבטא ערכים של עד ± 1.7e + 38, מה שמסביר את מרווח הראש הגדול.
  5. הטווח הדינמי המוצג מיועד לנורמליות עד לערך המרבי הנקוב ± 1.0. שים לב כמה מימושים נקודים צפו אדריכלות ספציפית כגון ניאון איננו תומכים denormals.

המרות

סעיף זה דן מרות נתונים בין ייצוגים שונים.

המרות נקודה צפה

כדי להמיר ערך מתוך Q מטר. n לפרמט כדי נקודה צפה:

  1. המירו את הערך לנקודה צפה כאילו היה מספר שלם (על ידי התעלמות מהנקודה).
  2. כפל על ידי 2 - n.

לדוגמה, כדי להמיר ערך פנימי של Q4.27 לנקודה צפה, השתמש ב:

float = integer * (2 ^ -27)

המרות מנקודה צפה לנקודה קבועה פועלות לפי הכללים הבאים:

  • נקודה צפה של דיוק יחיד כוללת טווח נומינלי של ± 1.0, אך הטווח המלא עבור ערכי ביניים הוא ± 1.7e + 38. המרה בין נקודה צפה לנקודה קבועה לייצוג חיצוני (כגון פלט להתקני שמע) תשקול רק את הטווח הנומינלי, עם הידוק לערכים העולים על טווח זה. בפרט, כאשר +1.0 מומר לפורמט נקודה קבועה, הוא מהדק ל- + 1.0 פחות LSB אחד.
  • ניתן להשתמש בייצוגים נורמליים (תת-נורמלים) ושניהם +/- 0.0, אך ניתן להמיר אותם בשקט ל -0.0 במהלך העיבוד.
  • אינסוף יעבור דרך פעולות או יוגבל קשה בשקט ל +/- 1.0. בדרך כלל האחרון מיועד להמרה לפורמט של נקודה קבועה.
  • התנהגות NaN אינה מוגדרת: NaN עשוי להתפשט כ- NaN זהה, או עשוי להיות מומר ל- NaN ברירת מחדל, עשוי להיות קשה בשקט מוגבל ל- +/- 1.0, או להמיר בשקט ל 0.0, או לגרום לשגיאה.

המרות נקודה קבועה

מרות בין m Q השונים. n פורמטים לפי הכללים האלה:

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

לדוגמא, כדי להמיר ערך Q4.27 ל- Q0.15 (ללא דיטר או עיגול), הזז ימינה את ערך Q4.27 ב- 12 סיביות, והדק את כל התוצאות העולות על טווח החתימה של 16 סיביות. זה מיישר את נקודת הייצוג Q.

להמיר Q7.24 כדי Q7.23, לעשות פרד בחתימה 2, או באופן שקול להוסיף קצת הסימן לכמות השלמה Q7.24, ולאחר מכן חתם משמרת תקינה ידי 1. שים לב כי פשוט חתם משמרת נכונה הוא לא שווה חלוקה חתומה ב -2.

המרות אובדות וחסרות אבדן

מרה היא lossless אם היא ניתנת להיפוך : מרה מ כדי A B ל C תוצאות A = C . אחרת ההמרה היא lossy .

המרות Lossless לאפשר המרה לפורמט הלוך ושוב .

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