قالب فایل صوتی QOA چیست؟ ویژگیها، معماری و نحوه باز کردن آن
در مهندسی صوت دیجیتال و توسعه بازیها، تعادل بین حجم فایل، تأخیر پخش و بار پردازشی CPU همیشه چالشی بوده است. فرمتهای استانداردی مانند MP3، AAC و Ogg Vorbis نسبت فشردهسازی بالایی ارائه میدهند اما نیاز به خطوط لوله رمزگشایی پیچیده، محاسبات شناور سنگین و مصرف حافظه قابلتوجهی دارند. در سوی دیگر، PCM بدون فشردهسازی (.wav) پخش بدون تأخیر را فراهم میکند، اما به هزینه استفاده زیاد از فضای دیسک و تحویل کند داراییها منجر میشود.
فرمت QOA (Quite OK Audio) این خلا را پر میکند. این فرمت توسط Dominic Szablewski (خالق فرمت تصویر بسیار تحسینشده QOI) ایجاد شده است و QOA یک فرمت صوتی منبع باز و باضایعات است که برای رمزگشایی فوقالعاده سریع، پیچیدگی کم و استفاده پیشبینیپذیر از حافظه طراحی شده است.
فایل QOA چیست؟
فایلی با پسوند .qoa صداهای دیجیتال فشرده را با استفاده از فرمت Quite OK Audio ذخیره میکند. این فرمت بر روی دادههای صوتی مدولهپالسکد (PCM) با عمق ۱۶ بیت در نرخهای نمونهبرداری از $1\text{ Hz}$ تا $16,777,215\text{ Hz}$ کار میکند و از حداکثر ۳۱ کانال صوتی پشتیبانی میکند.
بر خلاف کدکهای روانصوتی که به تبدیلهای حوزه فرکانس (مانند تبدیل کسینوس گسسته اصلاحشده یا MDCT) وابستهاند، QOA بهطور کامل در دامنه زمان کار میکند. این فرمت صدا را به نسبت ثابت دقیقاً $3.2\text{ bits per sample}$ فشرده میکند و نسبت فشردهسازی ثابت $5:1$ را بر روی PCM خطی ۱۶ بیتی خام به دست میآورد.
برای صوت با کیفیت استاندارد سیدی (44.1 kHz, استریو)، یک جریان 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) حدود ۴۰۰ خط کد استاندارد C دارد.
2. پیشبینی LMS در حوزه زمان
QOA از الگوریتمهای تبدیل محاسباتی سنگین اجتناب میکند. در عوض، از یک فیلتر پیشبینی تطبیقی Least Mean Squares (LMS) با چهار وزن تاریخی برای هر کانال استفاده میکند. با برآورد مقادیر نمونههای آینده و فقط ثبت اختلافات باقیمانده کوانتیزهشده، QOA کیفیت صوتی ادراکی شفاف را بدون مصرف زیاد CPU ارائه میدهد.
۳. رمزگشایی فوقالعاده سریع
به دلیل اینکه QOA بهطور کامل بر روی حساب صحیح و عملیات سبک تکیه دارد، میتواند تا $3\times$ سریعتر از Ogg Vorbis رمزگشایی کند و بهطور قابلتوجهی از رمزگشایهای استاندارد MP3 پیشی میگیرد. حتی سریعتر از Microsoft ADPCM رمزگشایی میشود، که آن را برای سختافزارهای نهفته کممصرف، میکروکنترلرها و موتورهای بازی زمان واقعی ایدهآل میسازد.
۴. معماری بخشبندی شده آماده برای پخش استریم
فایلهای 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$ کانال صوتی (Mono, Stereo, 5.1, 7.1, etc.) |
| سربار هدر | هدر فایل 8 بایتی، هدر فریم 8 بایتی |
| مجوزدهی | MIT (کد منبع) / CC0 (مشخصات و لوگو) |
نحوه ایجاد و رمزگذاری فایلهای QOA
رمزگذاری صدا به QOA ساده است به لطف باینریهای پیشساخته برای توسعهدهندگان و زنجیرههای ابزار جامعه.
روش ۱: استفاده از 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نیز تبدیل کند.
روش ۲: رمزگذاری درونموتور (موتور Godot)
از نسخه Godot 4.3 به بعد، توسعهدهندگان بازی میتوانند فایلهای .wav بدون فشردهسازی را وارد کرده و فشردهسازی QOA را مستقیماً از پنل واردات Godot انتخاب کنند. این کار داراییهای بازی فشردهای تولید میکند که بهصورت بومی با تأخیر CPU ناچیزی در صحنههای سنگین بازی رمزگشایی میشوند.
روش ۳: مبدلهای وب در مرورگر
چندین ابزار وبمحور مبتنی بر WebAssembly (مانند آنهایی که در qoaformat.org میزبانی میشوند و دموی منبع باز مرتبط) به کاربران امکان میدهند فایلهای صوتی استاندارد را کشیده و رها کنند و یک دارایی .qoa رمزگذاریشده را بهصورت محلی دانلود کنند بدون اینکه نیاز به اجرای دستورات ترمینال باشد.
نحوه باز کردن و پخش فایلهای QOA
از آنجا که QOA یک فرمت سبک است که عمدتاً برای ادغام در زمان اجرا ساخته شده، پخشکنندگان رسانهای معمولی ممکن است به افزونهها یا ساختهای اختصاصی نیاز داشته باشند.
- پخشکننده CLI اختصاصی (
qoaplay): مخزن رسمی بهqoaplayکامپایل میشود که از زیرسیستمهای صوتی بومی (ALSA در لینوکس، CoreAudio در macOS، WASAPI در ویندوز) برای پخش مستقیم فایلهای.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 آزاد منتشر شده است، در حالی که مشخصات و لوگوی آن به حوزه عمومی (CC0) تعلق دارد.
آدرسهای مرجع و منابع رسمی
- وبسایت رسمی: https://qoaformat.org/
- مشخصات رسمی (PDF): https://qoaformat.org/qoa-specification.pdf
- مخزن گیتهاب: https://github.com/phoboslab/qoa
- تحلیل فنی نویسنده: وبلاگ PhobosLab - اعلامیه QOA و معیارها