aspose.info
BG

Какъв е аудио файловият формат QOA? Характеристики, архитектура и как да го отворим

Обновено

Какъв е аудио файловият формат QOA? Характеристики, архитектура и как да го отворим

В дигиталното аудио инженерство и гейм разработката балансирането на размер на файла, латентност при възпроизвеждане и натоварване на процесора винаги е било предизвикателство. Стандартните формати като 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 аудио канала.

За разлика от психоакустичните кодеци, които се базират на трансформации във честотната област (като Модифицираната Дискретна Косинусова Трансформация или MDCT), QOA работи изцяло в времевата област. Той компресира аудиото до фиксирано съотношение точно $3.2\text{ bits per sample}$, постига постоянно съотношение на компресия $5:1$ върху некомпресиран 16‑битов линейен PCM.

За стандартно CD‑качество аудио (44.1 kHz, стерео), QOA поток постига точно, постоянно битрейт от:

$$\text{Битрейт} = 44,100 \times 2 \times 3.2 = 282,240\text{ бит/сек} \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$ спрямо 16-битов PCM
Съхранение на пробаТочно $3.2\text{ бита на проба}$
Битрейт (44.1 kHz, стерео)$\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, и др.)
Натоварване на заглавието8‑байтов файл хедър, 8‑байтов кадър хедър
ЛицензиранеMIT (Изходен код) / CC0 (Спецификация & Лого)

Как да създадем и кодираме QOA файлове

Кодирането на аудио в QOA е лесно благодарение на предварително изградени разработчически бинарни файлове и общностни инструменти за създаване.

Метод 1: Използване на официалния qoaconv CLI

Основният енкодер се разпространява директно в официалното референтно хранилище.

  1. Клонирайте хранилището и компилирайте бинарния файл:
    git clone https://github.com/phoboslab/qoa.git
    cd qoa
    make
    
  2. Конвертирайте некопресиран WAV файл в QOA:
    ./qoaconv input.wav output.qoa
    
  3. (Optional) Ако е компилирано с 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 в Linux, CoreAudio в macOS, WASAPI в Windows), за да възпроизвежда директно .qoa файлове:
    ./qoaplay audio.qoa
    
  • Игрови рамки и енджини:
    • Raylib: Нативна поддръжка чрез модула raudio.
    • Godot Engine: Пълна нативна поддръжка за възпроизвеждане (Godot 4.3+).
  • Медийни плейъри и приставки:
    • Qmmp: Разширен мултимедиен плейър с нативни модули за декодиране на QOA.
    • OpenCubicPlayer: Класически тракер и аудио плейър, поддържащ QOA потоци.
    • Audacious / foobar2000: Поддържано чрез отворени общностни входни приставки.
  • IDE и инструменти за разработчици:
    • VS Code: Разширението QOA Preview позволява на разработчиците да преглеждат и възпроизвеждат .qoa звукови клипове директно в техните изходни файлове.

Често задавани въпроси (FAQ)

Какво означава QOA?

QOA означава Quite OK Audio, бърз, прост, с отворен код формат за аудио с компресия с загуба.

QOA аудио е беззагубно или със загуби?

QOA е формат за аудио компресия с загуба, но запазва почти прозрачно качество на звука за повечето практически случаи.

Колко компресия предоставя QOA?

QOA компресира 16-битово некондензирано аудио с постоянен коефициент $5:1$ (точно $3.2\text{ бита на проба}$).

Може ли QOA да замени MP3 или AAC за общо стриймване на музика?

Не, QOA приоритизира ултра‑бързото, леко декодиране пред максимално спестяване на честотна лента, което я прави по‑подходяща за игри, микроконтролери и приложения с ниска латентност, отколкото за високоплътно уеб стрийминг.

Има ли QOA лицензионни или патентни такси?

Не, QOA е напълно без патенти и е издадена под либералната MIT лиценз, докато спецификацията и логото ѝ принадлежат на публичното пространство (CC0).

Референтни URL адреси и официални ресурси