מהו פורמט קובץ האודיו QOA? תכונות, ארכיטקטורה, וכיצד לפתוח אותו
בהנדסת אודיו דיגיטלי ופיתוח משחקים, איזון בין גודל הקובץ, השהיית השמעה, ועומס ה-CPU תמיד היה מאתגר. פורמטים סטנדרטיים כמו MP3, AAC, ו-Ogg Vorbis מציעים יחס דחיסה גבוה אך דורשים צינוריות פענוח מורכבות, חישובים צפים כבדים, וצריכת זיכרון משמעותית. בקצה השני של הספקטרום, PCM ללא דחיסה (.wav) מספק השמעה ללא השהייה על חשבון שימוש נרחב בדיסק ומשלוח נכסים איטי.
הפורמט QOA (Quite OK Audio) ממלא פער זה. נוצר על ידי דומיניק סזבלבסקי (יוצר פורמט התמונה המוערך QOI), QOA הוא פורמט אודיו קוד פתוח, עם אובדן, המותאם לפענוח מהיר ברק, מורכבות מינימלית, ושימוש בזיכרון צפוי.
מהו קובץ QOA?
קובץ עם סיומת .qoa מאחסן שמע דיגיטלי דחוס באמצעות פורמט Quite OK Audio. הוא פועל על נתוני שמע מודולציית קוד פולס (PCM) בעומק של 16‑ביט בטווחי קצב דגימה מ‑$1\text{ Hz}$ עד $16,777,215\text{ Hz}$ ותומך עד 31 ערוצי שמע.
בשונה מקודקי פסיכואקוסטיקה המתבססים על טרנספורמות בתחום התדירות (כגון ה‑Modified Discrete Cosine Transform או MDCT), QOA פועל באופן מלא בתחום תחום הזמן. הוא דוחס את השמע ליחס קבוע של בדיוק $3.2\text{ bits per sample}$, ומשיג יחס דחיסה קבוע של $5:1$ על פני PCM ליניארי גולמי של 16‑ביט.
לשמע באיכות CD סטנדרטית (44.1 ק״ה, סטריאו), זרם QOA משיג קצב ביט מדויק וקבוע של:
$$\text{Bitrate} = 44,100 \times 2 \times 3.2 = 282,240\text{ bits/s} \approx 278\text{ kbps}$$
תכונות מפורטות של QOA
1. מפרט ויישום מינימליסטיים
קודקים מודרניים מסורתיים דורשים מאות דפים של מפרטים טכניים אלפי שורות קוד ליישום. לעומת זאת, כל מפרט פורמט QOA מתאימה לעמוד PDF בעמוד אחד, והיישום הרפרנס הרשמי (qoa.h) מורכב כ‑כ‑400 שורות של קוד C סטנדרטי.
2. חיזוי LMS בתחום הזמן
QOA נמנע מאלגוריתמים של שינוי שמצריכים חישובים אינטנסיביים. במקום זאת, הוא משתמש במסנן חיזוי אדפטיבי של Least Mean Squares (LMS) עם ארבע משקולות היסטוריות לכל ערוץ. על‑ידי הערכת ערכי הדגימות העתידיות ורק רישום הפרשי השאריות הכמותיים, QOA מספק איכות שמע תפיסתית שקופה ללא עומס כבד על המעבד.
3. פענוח מהיר במיוחד
מאחר ש‑QOA מסתמך באופן בלעדי על חישובים שלמים ופעולות קלות, הוא מפענח עד $3\times$ מהר מ‑Ogg Vorbis ומשיג ביצועים משמעותיים גבוהים יותר ממפענחי MP3 סטנדרטיים. הוא אפילו מפענח מהר יותר מ‑Microsoft ADPCM, מה שהופך אותו לאידיאלי לחומרה משובצת בעלת צריכת חשמל נמוכה, מיקרו‑בקרים ומנועי משחק בזמן אמת.
4. ארכיטקטורה מחולקת מוכנה לשידור
קבצי QOA מחולקים למסגרות עצמאיות המכילות עד $5,120$ דגימות לכל ערוץ ($256$ חלקים של $20$ דגימות). כל מסגרת נושאת את משקולות מסנן ה‑LMS וההיסטוריה שלה, מה שמאפשר קפיצה מיידית, התאוששות ללא קנסות ממנותק חבילות, וזרימה דינמית בזמן אמת ללא צורך באינדקס גלובלי מחייב.
תכונות מפתח של QOA
| מאפיין | מפרט / פרטים |
|---|---|
| סיומת קובץ | .qoa |
| בייטים קסומים | qoaf (0x71, 0x6f, 0x61, 0x66) |
| מפתח / יוצר | Dominic Szablewski (PhobosLab) |
| סוג דחיסה | איבודי (חיזוי LMS בתחום הזמן) |
| יחס דחיסה | קבוע $5:1$ ביחס ל-PCM של 16‑ביט |
| אחסון לכל מדגם | בדיוק $3.2\text{ bits per sample}$ |
| קצב ביטים (44.1 קה״ז, סטריאו) | $\approx 278\text{ kbps}$ ($282.24\text{ kbps}$ מטען) |
| טווח קצב דגימה | $1\text{ Hz}$ עד $16,777,215\text{ Hz}$ ($24\text{-bit}$ ללא סימן) |
| ערוצים נתמכים | $1$ עד $31$ ערוצי שמע (מונו, סטריאו, 5.1, 7.1, וכו') |
| הוצאות כותרת | כותרת קובץ של 8 בתים, כותרת מסגרת של 8 בתים |
| רישוי | MIT (קוד מקור) / CC0 (מפרט ולוגו) |
איך ליצור ולמקודד קבצי QOA
קידוד שמע ל‑QOA הוא פשוט הודות לבינאריות מפתחים מוכנות מראש ולשרשראות כלי קהילה.
שיטה 1: שימוש ב‑CLI הרשמי qoaconv
המקודד הראשי מופץ ישירות בתוך מאגר ההפניות הרשמי.
- שכפל את המאגר ובנה את הקובץ הבינארי:
git clone https://github.com/phoboslab/qoa.git cd qoa make - המר קובץ WAV לא דחוס ל‑QOA:
./qoaconv input.wav output.qoa - (אופציונלי) אם נבנה עם
HAS_DRLIBS=true,qoaconvיכול גם לתרגם ישירות מקבצי.flacו‑.mp3.
שיטה 2: קידוד בתוך המנוע (Godot Engine)
החל מ‑Godot 4.3, מפתחי משחקים יכולים לייבא קבצי .wav לא דחוסים ולבחור דחיסת QOA ישירות ממסך הייבוא של Godot. פעולה זו מייצרת נכסי משחק קומפקטיים שמפענחים באופן מקורי עם השהייה מזערית של המעבד במהלך סצנות משחק אינטנסיביות.
שיטה 3: ממירי אינטרנט בדפדפן
מספר כלי WebAssembly מבוססי אינטרנט (כגון אלו המתארחים ב‑qoaformat.org והדגמות קוד פתוח קשורות) מאפשרים למשתמשים לגרור ולשחרר קבצי שמע סטנדרטיים ולהוריד נכס .qoa מקודד באופן מקומי מבלי להריץ פקודות טרמינל.
איך לפתוח ולנגן קבצי QOA
מאחר ש‑QOA הוא פורמט קל משקל שנבנה בעיקר לשילוב בזמן ריצה, נגני מדיה קונבנציונליים לצרכן עשויים לדרוש תוספים או גרסאות ייעודיות.
- נגן CLI ייעודי (
qoaplay): המאגר הרשמי מתורגם ל‑qoaplay, שמשתמש במערכות שמע מקומיות (ALSA בלינוקס, CoreAudio ב‑macOS, WASAPI ב‑Windows) כדי לנגן קבצי.qoaישירות:./qoaplay audio.qoa - מסגרות משחקים ומנועים:
- Raylib: תמיכה מקומית דרך מודול
raudio. - Godot Engine: תמיכה מלאה בנגינה מקומית (Godot 4.3+).
- Raylib: תמיכה מקומית דרך מודול
- נגני מדיה ותוספים:
- Qmmp: נגן מולטימדיה מתקדם עם מודולי פענוח QOA מקומיים.
- OpenCubicPlayer: עוקב קלאסי ונגן קבצי שמע התומך בזרמי QOA.
- Audacious / foobar2000: נתמך דרך תוספי קלט קהילתיים בקוד פתוח.
- IDE וכלי פיתוח:
- VS Code: ההרחבה QOA Preview מאפשרת למפתחים להציג מראש ולנגן קטעי שמע
.qoaישירות בתוך עץ המקור שלהם.
- VS Code: ההרחבה QOA Preview מאפשרת למפתחים להציג מראש ולנגן קטעי שמע
שאלות נפוצות (FAQ)
מה המשמעות של QOA?
QOA הוא קיצור של Quite OK Audio, פורמט שמע מאבד איכות מהיר, פשוט וקוד פתוח.
האם האודיו של QOA הוא ללא אובדן או עם אובדן?
QOA הוא פורמט דחיסת שמע lossy, אך הוא שומר על איכות שמע כמעט שקופה ברוב מקרי השימוש המעשיים.
כמה דחיסה QOA מספקת?
QOA דוחס שמע בלתי דחוס של 16‑ביט ביחס קבוע של $5:1$ (בדיוק $3.2\text{ bits per sample}$).
האם QOA יכול להחליף MP3 או AAC לשידור מוזיקה כללי?
לא, QOA מעדיף פענוח על‑הקצה מהיר וקלי משקל על פני חיסכון מרבי ברוחב הפס, מה שהופך אותו למתאים יותר למשחקים, מיקרו‑בקרים ויישומים בעלי השהייה נמוכה מאשר הזרמת אינטרנט בצפיפות גבוהה.
האם ל-QOA יש עלויות רישוי או פטנטים?
לא, QOA הוא חופשי משום פטנט ומשוחרר תחת MIT license ההרשאה המאפשרת, בעוד שהמפרט והלוגו שלו שייכים לתחום הציבורי (CC0).
כתובות URL רפרנס ומשאבים רשמיים
- אתר רשמי: https://qoaformat.org/
- מפרט רשמי (PDF): https://qoaformat.org/qoa-specification.pdf
- מאגר GitHub: https://github.com/phoboslab/qoa
- העמקה הטכנית של המחבר: בלוג PhobosLab - הודעת QOA ומדדי ביצועים