aspose.info
LV

Kas ir QOA audio faila formāts? Iezīmes, arhitektūra un kā to atvērt

Atjaunināts

Kas ir QOA audio faila formāts? Iezīmes, arhitektūra un kā to atvērt

Digitālajā audio inženierijā un spēļu izstrādē vienmēr ir bijusi izaicinājums līdzsvarot faila lielumu, atskaņošanas latentumu un CPU slogu. Standarta formāti, piemēram, MP3, AAC un Ogg Vorbis, piedāvā augstu saspiešanas koeficientu, bet prasa sarežģītas atkodēšanas caurules, smagu peldošā komata aritmētiku un ievērojamu atmiņas patēriņu. Savukārt, nesaspiests PCM (.wav) nodrošina nulles latentuma atskaņošanu, bet tas prasa milzīgu diska vietas patēriņu un lēnu resursu piegādi.

QOA (Quite OK Audio) formāts aizpilda šo plaisu. To izveidoja Dominic Szablewski (plaši slavētais QOI attēlu formāta radītājs), QOA ir atvērtā koda, ar zudumiem audio formāts, kas ir pielāgots zibens ātrai atkodēšanai, minimālai sarežģītībai un paredzamai atmiņas lietošanai.

Kas ir QOA fails?

Fails ar .qoa paplašinājumu saglabā kompresētu digitālo audio, izmantojot Quite OK Audio formātu. Tas darbojas ar pulsa kodēta modulēta (PCM) audio datiem 16-bitu dziļumā, pār dažādiem paraugu ātrumiem no $1\text{ Hz}$ līdz $16,777,215\text{ Hz}$ un atbalsta līdz 31 audio kanāliem.

Atšķirībā no psihoakustiskajiem kodekiem, kas balstās uz frekvences domēna transformācijām (piemēram, modificētā diskrētā kosinusa transformācija vai MDCT), QOA darbojas pilnīgi laika domēnā. Tas kompresē audio līdz precīzi noteiktam fiksētam attiecībai $3.2\text{ bits per sample}$, sasniedzot konstantu $5:1$ kompresijas attiecību pār neapstrādātu 16-bitu lineāro PCM.

Standarta CD kvalitātes audio (44,1 kHz, stereo) gadījumā QOA straume sasniedz precīzu, konstantu bitreitu:

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

Detalizētas QOA iezīmes

1. Minimalistiska specifikācija un īstenojums

Tradicionāli moderni kodeki prasa simtiem lapu tehnisko specifikāciju un tūkstošiem koda rindu, lai tos īstenotu. Pretstatā tam, visa QOA formāta specifikācija ietilpst vienas lapas PDF, un oficiālā atsauces implementācija (qoa.h) sastāv aptuveni no 400 rindām standarta C koda.

2. Laika domēna LMS prognozēšana

QOA izvairās no skaitļošanas intensīviem pārveidošanas algoritmiem. Tā vietā tas izmanto adaptīvu Mazākā Kvadrāta (LMS) prognozes filtru ar četriem vēsturiskajiem svariem katram kanālam. Novērtējot nākotnes paraugu vērtības un ierakstot tikai kvantizētās atlikumu atšķirības, QOA nodrošina caurspīdīgu perceptīvo audio kvalitāti bez smagas CPU slodzes.

3. Ļoti ātra dekodēšana

Tā kā QOA balstās tikai uz veselu skaitļu aritmētiku un vieglām operācijām, tas atkodē līdz $3\times$ ātrāk nekā Ogg Vorbis un būtiski pārspēj standarta MP3 atkodētājus. Tas pat atkodē ātrāk nekā Microsoft ADPCM, padarot to par ideālu risinājumu zemas jaudas iegultajai aparatūrai, mikrocontrolleriem un reāllaika spēļu dzinējiem.

4. Straumēšanai gatava segmentēta arhitektūra

QOA faili ir sadalīti pašpietiekamos ietvaros, kas satur līdz $5,120$ paraugiem katram kanālam ($256$ segmenti ar $20$ paraugiem). Katrs ietvars nes savus LMS filtra svarus un vēsturi, ļaujot uzreiz meklēt, atgūt no zaudētām pakotnēm bez sodām, un nodrošinot dinamisku tiešraides straumēšanu bez obligāta globālā indeksēšanas.

Galvenās QOA īpašības

ĪpašībaSpecifikācija / Detaļas
Faila paplašinājums.qoa
Maģiskie Baitiqoaf (0x71, 0x6f, 0x61, 0x66)
Izstrādātājs / RadītājsDominic Szablewski (PhobosLab)
Saspiešanas veidsAr zudumiem (laika domēna LMS prognozēšana)
Saspiešanas attiecībaFiksēts $5:1$ attiecībā pret 16-bit PCM
Glabāšana par parauguTieši $3.2\text{ biti par paraugu}$
Bitātrums (44.1 kHz, Stereo)$\approx 278\text{ kbps}$ ($282.24\text{ kbps}$ slodze)
Paraugu frekvences diapazons$1\text{ Hz}$ līdz $16,777,215\text{ Hz}$ ($24\text{-bit}$ bez zīmes)
Atbalstītie kanāli$1$ līdz $31$ audio kanāli (Mono, Stereo, 5.1, 7.1, utt.)
Galvenes pārklājums8 baitu faila galvene, 8 baitu kadra galvene
LicencēšanaMIT (Pirmkods) / CC0 (Specifikācija un logotips)

Kā izveidot un kodēt QOA failus

Audio kodēšana QOA formātā ir vienkārša, pateicoties iepriekš sagatavotiem izstrādātāju bināriem un kopienas rīkkopām.

Metode 1: Izmantojot oficiālo qoaconv CLI

Primārais kodētājs tiek izplatīts tieši oficiālajā atsauču krātuvē.

  1. Klonējiet repozitoriju un izveidojiet bināro failu:
    git clone https://github.com/phoboslab/qoa.git
    cd qoa
    make
    
  2. Pārvērtiet nekompresētu WAV failu uz QOA:
    ./qoaconv input.wav output.qoa
    
  3. (Pēc izvēles) Ja kompilēts ar HAS_DRLIBS=true, qoaconv var arī tieši pārkodēt no .flac un .mp3 failiem.

Metode 2: Iekodēšana dzinējā (Godot Engine)

Sākot ar Godot 4.3, spēļu izstrādātāji var importēt nekompresētus .wav failus un izvēlēties QOA saspiešanu tieši no Godot Import dokā. Tas rada kompakti spēļu aktīvus, kas tiek dekodēti iebūvēti ar nepamanāmu CPU latentumu intensīvu spēles ainu laikā.

Metode 3: Pārlūkā esošie tīmekļa pārveidotāji

Vairāki tīmekļa balstīti WebAssembly rīki (piemēram, tie, kas izvietoti uz qoaformat.org un saistītās atvērtā koda demonstrācijas) ļauj lietotājiem vilkt un nomest standarta audio failus un lejupielādēt kodētu .qoa aktīvu lokāli, neveicot termināla komandas.

Kā atvērt un atskaņot QOA failus

Tā kā QOA ir viegls formāts, kas galvenokārt izveidots darbības laikā integrācijai, parastie patērētāju multimediju atskaņotāji var prasīt spraudņus vai īpašas versijas.

  • Veltīts CLI atskaņotājs (qoaplay): Oficiālais repozitorijs tiek kompilēts uz qoaplay, kas izmanto iebūvētas audio apakšsistēmas (ALSA uz Linux, CoreAudio uz macOS, WASAPI uz Windows), lai tieši atskaņotu .qoa failus:
    ./qoaplay audio.qoa
    
  • Spēļu ietvari un dzinēji:
    • Raylib: Dabisks atbalsts caur raudio moduli.
    • Godot Engine: Pilns dabisks atskaņošanas atbalsts (Godot 4.3+).
  • Multivides atskaņotāji un spraudņi:
    • Qmmp: Uzlabots multivides atskaņotājs ar iebūvētiem QOA dekodēšanas moduļiem.
    • OpenCubicPlayer: Klasisks sekotājs un audio failu atskaņotājs, kas atbalsta QOA straumes.
    • Audacious / foobar2000: Atbalstīts caur atvērtā koda kopienas ievades spraudņiem.
  • IDE un izstrādātāju rīki:
    • VS Code: QOA Preview paplašinājums ļauj izstrādātājiem priekšskatīt un atskaņot .qoa skaņas klipus tieši to avota struktūrā.

Biežāk uzdotie jautājumi (BUJ)

Ko QOA apzīmē?

QOA apzīmē Quite OK Audio, ātru, vienkāršu, atvērtā koda zaudējumu audio formātu.

Vai QOA audio ir bezzudumu vai ar zudumiem?

QOA ir zaudējumu audio saspiešanas formāts, bet tas saglabā gandrīz caurspīdīgu audio kvalitāti lielākajai daļai praktiskajiem lietojumiem.

Cik daudz saspiešanas nodrošina QOA?

QOA saspiež 16-bit nekompresētu audio ar nemainīgu attiecību $5:1$ (precīzi $3.2\text{ biti uz paraugu}$).

Vai QOA var aizstāt MP3 vai AAC vispārējai mūzikas straumēšanai?

Nē, QOA dod priekšroku ārkārtīgi ātrai, vieglai atkodēšanai, nevis maksimālai joslas platuma ietaupīšanai, padarot to piemērotāku spēlēm, mikrocontrolleriem un zemas latentuma lietojumiem, nevis augstas blīvuma tīmekļa straumēšanai.

Vai QOA ir licences vai patentu maksas?

Nē, QOA ir pilnīgi patentu brīvs un izlaists zem atļaujošas MIT licences, kamēr tā specifikācija un logotips pieder publiskajam domēnam (CC0).

Atsauču URL un oficiālie resursi