aspose.info
CS

Co je formát audio souboru QOA? Funkce, architektura a jak jej otevřít

Aktualizováno

Co je formát audio souboru QOA? Funkce, architektura a jak jej otevřít

V digitálním audio inženýrství a vývoji her bylo vždy náročné vyvážit velikost souboru, latenci přehrávání a zatížení CPU. Standardní formáty jako MP3, AAC a Ogg Vorbis nabízejí vysoké kompresní poměry, ale vyžadují složité dekódovací řetězce, těžkou operaci s plovoucí desetinnou čárkou a značnou paměťovou stopu. Na druhé straně spektra poskytuje nekomprimovaný PCM (.wav) přehrávání s nulovou latencí na úkor masivního využití disku a pomalého doručování assetů.

Formát QOA (Quite OK Audio) řeší tuto mezeru. Vytvořil jej Dominic Szablewski (tvůrce široce chváleného formátu obrázků QOI) a QOA je open-source, se ztrátou audio formát navržený pro bleskově rychlé dekódování, minimální složitost a předvídatelnou spotřebu paměti.

Co je soubor QOA?

Soubor s příponou .qoa ukládá komprimovaný digitální zvuk pomocí formátu Quite OK Audio. Pracuje s pulzně kódovanými (PCM) audio daty s 16bitovou hloubkou při vzorkovacích frekvencích od $1\text{ Hz}$ až po $16,777,215\text{ Hz}$ a podporuje až 31 audio kanálů.

Na rozdíl od psychoakustických kodeků, které se spoléhají na transformace ve frekvenční doméně (jako je Modifikovaná diskrétní kosinová transformace nebo MDCT), QOA funguje výhradně v časové doméně. Komprimuje audio na pevný poměr přesně $3.2\text{ bitů na vzorek}$, čímž dosahuje konstantního kompresního poměru $5:1$ nad surovým 16bitovým lineárním PCM.

Pro standardní audio v kvalitě CD (44,1 kHz, stereo) dosahuje QOA stream přesného, konstantního datového toku:

$$\text{Datový tok} = 44,100 \times 2 \times 3.2 = 282,240\text{ bits/s} \approx 278\text{ kbps}$$

Podrobné funkce QOA

1. Minimalistická specifikace a implementace

Tradiční moderní kodeky vyžadují stovky stránek technických specifikací a tisíce řádků kódu pro implementaci. Naproti tomu celá specifikace formátu QOA se vejde do jednostránkového PDF, a oficiální referenční implementace (qoa.h) se skládá z přibližně 400 řádků standardního C kódu.

2. Predikce LMS v časové doméně

QOA se vyhýbá výpočetně náročným transformačním algoritmům. Místo toho využívá adaptivní predikční filtr Least Mean Squares (LMS) se čtyřmi historickými vahami na kanál. Odhadem budoucích hodnot vzorků a zaznamenáváním pouze kvantovaných reziduálních rozdílů poskytuje QOA transparentní percepční kvalitu zvuku bez těžkého zatížení CPU.

3. Extrémně rychlé dekódování

Protože QOA spoléhá výhradně na celočíselnou aritmetiku a lehké operace, dekóduje až $3\times$ rychleji než Ogg Vorbis a výrazně převyšuje standardní dekodéry MP3. Dokonce dekóduje rychleji než Microsoft ADPCM, což ji činí ideální pro nízkopříkonový vestavěný hardware, mikrokontroléry a real‑time herní enginy.

4. Architektura připravená na streamování a chunkování

Soubory QOA jsou rozděleny do samostatných rámců, které obsahují až $5,120$ vzorků na kanál ($256$ segmentů po $20$ vzorcích). Každý rámec nese vlastní váhy LMS filtru a historii, což umožňuje okamžité přetáčení, obnovu bez penalizace po ztrátě paketů a dynamické streamování za běhu bez povinného globálního indexování.

Klíčové charakteristiky QOA

CharakteristikaSpecifikace / Detail
Přípona souboru.qoa
Magické bajtyqoaf (0x71, 0x6f, 0x61, 0x66)
Vývojář / TvůrceDominic Szablewski (PhobosLab)
Typ kompreseZtrátová (predikce LMS v časové doméně)
Komprimační poměrPevný poměr $5:1$ vzhledem k 16‑bitovému PCM
Úložiště na vzorekPřesně $3.2\text{ bitů na vzorek}$
Datový tok (44,1 kHz, Stereo)$\approx 278\text{ kbps}$ ($282.24\text{ kbps}$ užitečná data)
Rozsah vzorkovací frekvence$1\text{ Hz}$ to $16,777,215\text{ Hz}$ ($24\text{-bit}$ nepodepsaný)
Podporované kanály$1$ to $31$ audio kanálů (Mono, Stereo, 5.1, 7.1, atd.)
Zátěž hlavičky8‑byte souborová hlavička, 8‑byte rámcová hlavička
LicencováníMIT (Zdrojový kód) / CC0 (Specifikace a logo)

Jak vytvořit a zakódovat soubory QOA

Kódování audio do QOA je jednoduché díky předpřipraveným vývojářským binárkám a komunitním nástrojovým řetězcům.

Metoda 1: Použití oficiálního CLI qoaconv

Primární enkodér je distribuován přímo v oficiálním referenčním úložišti.

  1. Naklonujte repozitář a sestavte binární soubor:
    git clone https://github.com/phoboslab/qoa.git
    cd qoa
    make
    
  2. Převést nekomprimovaný soubor WAV na QOA:
    ./qoaconv input.wav output.qoa
    
  3. (Volitelné) Pokud je zkompilováno s HAS_DRLIBS=true, qoaconv může také přímo transkódovat soubory .flac a .mp3.

Metoda 2: Kódování v enginu (Godot Engine)

Od verze Godot 4.3 mohou vývojáři her importovat nekomprimované soubory .wav a přímo v Godot Import docku vybrat kompresi QOA. To vytváří kompaktní herní assety, které se nativně dekódují s neznatelnou latencí CPU během náročných herních scén.

Metoda 3: Webové konvertory v prohlížeči

Několik webových WebAssembly nástrojů (například těch hostovaných na qoaformat.org a souvisejících open-source demách) umožňuje uživatelům přetahovat standardní audio soubory a stáhnout zakódovaný asset .qoa lokálně bez spouštění příkazů v terminálu.

Jak otevřít a přehrát soubory QOA

Protože QOA je lehký formát vytvořený především pro integraci za běhu, běžné spotřebitelské mediální přehrávače mohou vyžadovat pluginy nebo speciální verze.

  • Vyhrazený CLI přehrávač (qoaplay): Oficiální repozitář se kompiluje do qoaplay, který používá nativní audio subsystémy (ALSA na Linuxu, CoreAudio na macOS, WASAPI na Windows) k přímému přehrávání souborů .qoa:
    ./qoaplay audio.qoa
    
  • Herní frameworky a enginy:
    • Raylib: Nativní podpora přes modul raudio.
    • Godot Engine: Plná nativní podpora přehrávání (Godot 4.3+).
  • Přehrávače médií a pluginy:
    • Qmmp: Pokročilý multimediální přehrávač s nativními moduly pro dekódování QOA.
    • OpenCubicPlayer: Klasický tracker a přehrávač audio souborů podporující QOA streamy.
    • Audacious / foobar2000: Podporováno prostřednictvím open-source vstupních pluginů komunity.
  • IDE a vývojářské nástroje:
    • VS Code: Rozšíření QOA Preview umožňuje vývojářům náhled a přehrávání .qoa zvukových klipů přímo ve stromu zdrojových souborů.

Často kladené otázky (FAQ)

Co znamená zkratka QOA?

QOA znamená Quite OK Audio, rychlý, jednoduchý, open-source formát se ztrátovou kompresí zvuku.

Je audio QOA bezeztrátové nebo se ztrátou?

QOA je ztrátový formát pro kompresi zvuku, ale zachovává téměř průhlednou kvalitu zvuku pro většinu praktických případů použití.

Jakou míru komprese QOA poskytuje?

QOA komprimuje 16-bitové nekomprimované audio při konstantním poměru $5:1$ (přesně $3.2\text{ bitů na vzorek}$).

Může QOA nahradit MP3 nebo AAC pro obecné streamování hudby?

Ne, QOA upřednostňuje ultra‑rychlé, lehké dekódování před maximální úsporou šířky pásma, což ji činí vhodnější pro hry, mikrokontroléry a aplikace s nízkou latencí než pro vysokohustotní webové streamování.

Má QOA licenční nebo patentové poplatky?

Ne, QOA je zcela bez patentů a vydána pod permisivní MIT licencí, zatímco její specifikace a logo patří do veřejné domény (CC0).

Referenční URL a oficiální zdroje