אודיו AAC (.aac)
ISO/IEC תקןAdvanced Audio Coding (AAC) הוא קודק שמע מאבד נתונים שתוקנן לאחר MP3. יעילות הדחיסה והאיכות הנתפסת תלויות במקודד, בקצב הסיביות ובתוכן השמע.
המר AAC ל-MP3
ממיר חינמי מ-AAC ל-MP3 פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.
בדיקה ומטא-נתונים
מערכות הפעלה ומנתחי קבצים מזהים קבצי AAC על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי AAC על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
FF F1ייצוג ASCII: ÿñ
תקינה: ISO/IEC 13818-7 / ISO/IEC 14496-3
מפרט טכני
| מבנה המכולה | זרם סיביות ADTS (Audio Data Transport Stream) או מכולת MPEG-4 Part 14 |
| דחיסה | התמרת קוסינוס בדידה מותאמת (MDCT) עם עיצוב רעש בזמן ומידול פסיכואקוסטי |
| סדר בתים (Endianness) | מסגור זרם סיביות בסדר Big-Endian |
| מרחבי צבע | לא רלוונטי (זרם סיביות של שמע) |
| ערוצים ומבנה | עד 48 ערוצי שמע נפרדים עם מיפוי רמקולים שרירותי |
| ממדים מרביים | קצבי דגימה מ-8 kHz עד 96 kHz (מקור PCM של 16 או 24 סיביות) |
| שקיפות | קידוד תפיסתי עם אובדן נתונים; איכות שקופה מושגת בסטריאו בקצב של כ-192-256 kbps |
| הזרמה ופרוגרסיביות | מילות הסנכרון המקוריות של מסגרות ADTS מאפשרות הזרמה של זרם בתים בכל אורך |
מטריצת השוואה טכנית: AAC מול מתחרים
| תכונה טכנית | AAC (נוכחי) | MP3 | OGG | OPUS |
|---|---|---|---|---|
| יעילות דחיסה | גבוהה; סטריאו שקוף ב-128-192 קילוביט לשנייה | בינונית; דורשת 192-256 קילוביט לשנייה | גבוהה; דומה ל-AAC ב-160 קילוביט לשנייה | גבוהה במיוחד; שקוף ב-96-128 קילוביט לשנייה |
| מקסימום ערוצים | 48 ערוצים בדידים | 2 ערוצים (סטריאו) / 5.1 ב-MPEG-2 | 255 ערוצים בדידים | 255 ערוצים בדידים |
| האצת חומרה | פענוח חומרה זמין במכשירים רבים; התמיכה תלויה במקודד ובחומרה | תמיכה מלאה בחומרת מדור קודם | שבבי חומרה ייעודיים של DSP מוגבלים | תמיכת חומרה גדלה בדפדפנים וב-Android/iOS |
| שיהוי אלגוריתמי | בינוני (כ-100 מ״ש שיהוי חיץ) | גבוה (כ-100-150 מ״ש) | בינוני (כ-100 מ״ש) | נמוך במיוחד (5-26.5 מ״ש, מותאם ל-VoIP) |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
נגן המדיה מבצע לופ או מייצר פרצי רעש סטטי דיגיטלי בתדר גבוה.
גורם שורש: חוסר סנכרון של כותרות מסגרות ADTS עקב אובדן חבילות או מילות סנכרון של 12 ביט חסרות.
שחזור: לארוז מחדש שמע AAC גולמי לתוך קונטיינר MP4/M4A באמצעות הפקודה ffmpeg -i broken.aac -c:a copy fixed.m4a כדי לבנות מחדש את אינדקס המסגרות.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
מפענחי AAC פועלים בלולאות DSP שמע בעלות תפוקה גבוהה, שבהן אורכי חבילות מעוותים עלולים לעורר גלישות מספר שלם (integer overflows) במימוש התוכנה.
ווקטורי תקיפה ידועים
- גלישת מספר שלם בשדות אורך מסגרת של ADTS הגורמת לקריאת יתר של חיץ במפענחי C++ שלא עברו תיקון.
- סיביות הגדרת ערוצים מעוצבות המפעילות כתיבות זיכרון לא חוקיות במהלך מיקסום מטה (downmixing) של מספר ערוצים.
- הקצאת ערימה (heap) מחוץ לגבולות במהלך ניתוח טבלת סינתזה של SBR (שכפול פס תדרים).
שיטות מומלצות להגנה: פענח קובצי AAC במרחבי זיכרון מבודדים (sandboxed) תוך שימוש בספריות WASM בטוחות לזיכרון או במסגרות עבודה של מדיה במערכת ההפעלה.
היסטוריה ואבני דרך
יתרונות מרכזיים
- שקיפות שמע טובה יותר בהשוואה ל-MP3 בקצבי סיביות זהים או נמוכים יותר (למשל, 128 kbps לעומת 192 kbps).
- תמיכה מובנית בעד 48 ערוצי אודיו ברוחב פס מלא עבור סביבות עבודה של צליל היקפי ו-Dolby Pro Logic.
- פענוח חומרה זמין במכשירים עדכניים רבים; התמיכה תלויה במקודד, במערכת ההפעלה ובחומרה.
מגבלות טכניות וחסרונות
- קידוד הפסדי תפיסתי משליך תדרים הרמוניים שאינם נשמעים, ולכן הוא אינו מתאים למאסטרינג של אודיו.
- בזרמי ביטים מסוג ADTS אין טבלאות חיפוש מוטמעות כשהם אינם עטופים בקונטיינרי MP4 (M4A).
- רישוי מאגר פטנטים המנוהל על ידי Via Licensing Corporation האט היסטורית את החדשנות בקוד פתוח של מקודדים.
עובדות טכניות מעניינות
- יוטיוב קובע כברירת מחדל קידוד AAC ב-128 קילוביט לשנייה עבור זרמי אודיו של סרטוני סטריאו רגילים.
- מילת הסנכרון של ADTS מורכבת מ-12 אחדות בינאריות רצופות (0xFFF), המאפשרות למקלטים להינעל על שידורים חיים באמצע הזרם.
- סוני אימצה את AAC כפורמט הדחיסה המוגדר כברירת מחדל עבור האודיו של PlayStation 3, PlayStation Portable ו-Vita.
שאלות טכניות נפוצות
מדוע פורמט AAC נשמע טוב יותר מ-MP3 בקצב של 128 kbps?
פורמט AAC משלב רזולוציית תדרים גבוהה יותר (עד 96 kHz), מסנני MDCT טהורים, עיצוב רעש זמני (TNS), וכלי חיזוי סטריאו גמישים יותר המבטלים את ארטיפקטים ה-pre-echo הנפוצים ב-MP3.
מה ההבדל בין AAC גולמי (raw AAC) לבין M4A?
AAC גולמי משתמש במסגור ADTS פשוט ללא אינדקסים של פרקים או מטא-דאטה. M4A עוטף את אותו נתון אודיו של AAC בתוך מעטפת ISO Base Media (MP4) הכוללת מטא-דאטה, עטיפת אלבום וטבלאות חיפוש (seek tables).
האם AAC תומך בדחיסת אודיו ללא אובדן איכות (lossless)?
לא. פורמט AAC הרגיל הוא אובדני (lossy) לחלוטין. חברת Apple פיתחה את Apple Lossless (ALAC) עבור אודיו נטול אובדן סיביות בתוך אותה מעטפת M4A.
זוגות המרה קשורים ל-AAC
המרת קובצי Advanced Audio Coding (AAC) ל-MPEG-1 Audio Layer III מאפשרת לנגן מוזיקה ופודקאסטים בנגני שמע ישנים ובמערכות סטריאו ישנות לרכב.
המרת קובצי MP3 ל-AAC מעדכנת שמע ישן בדחיסה מאבדת לקידוד מודרני ויעיל יותר, לקבלת צליל טוב יותר בקבצים קטנים יותר.
המרת קובץ שמע מסוג M4B לקובץ AAC מסירה את נתוני המעטפת המורכבים וסימני הפרקים, ומייצרת זרם שמע גולמי שמתנגן בנגני מדיה בסיסיים.