QOA Ses Dosyası Formatı Nedir? Özellikler, Mimari ve Nasıl Açılır
Dijital ses mühendisliği ve oyun geliştirmede, dosya boyutu, oynatma gecikmesi ve CPU yükü dengesini sağlamak her zaman zorlu olmuştur. MP3, AAC ve Ogg Vorbis gibi standart formatlar yüksek sıkıştırma oranları sunar ancak karmaşık kod çözme hatları, yoğun kayan nokta aritmetiği ve büyük bellek ayak izleri gerektirir. Spektrumun diğer ucunda, sıkıştırılmamış PCM (.wav) devasa disk kullanımı ve yavaş varlık teslimatı pahasına sıfır gecikmeli oynatma sağlar.
QOA (Quite OK Audio) formatı bu boşluğu doldurur. Yaygın övgü alan QOI görüntü formatının yaratıcısı Dominic Szablewski tarafından oluşturulan QOA, açık kaynaklı, kayıplı bir ses formatıdır ve ışık hızıyla kod çözme, minimal karmaşıklık ve öngörülebilir bellek kullanımı için tasarlanmıştır.
QOA Dosyası Nedir?
.qoa uzantılı bir dosya, Quite OK Audio formatını kullanarak sıkıştırılmış dijital ses depolar. 16-bit derinlikte pulse-code modulated (PCM) ses verileri üzerinde, $1\text{ Hz}$ ile $16,777,215\text{ Hz}$ arasındaki örnekleme hızlarında çalışır ve en fazla 31 ses kanalını destekler.
Frekans alanı dönüşümlerine (örneğin Değiştirilmiş Ayrık Kosinüs Dönüşümü veya MDCT) dayanan psikoakustik kodeklerin aksine, QOA tamamen zaman alanında çalışır. Sesleri tam olarak $3.2\text{ bits per sample}$ sabit bir oranla sıkıştırır ve ham 16-bit lineer PCM üzerinde sabit $5:1$ sıkıştırma oranı elde eder.
Standart CD kalitesindeki ses (44.1 kHz, stereo) için, bir QOA akışı tam ve sabit bir bit hızına ulaşır:
$$\text{Bit Hızı} = 44,100 \times 2 \times 3.2 = 282,240\text{ bits/s} \approx 278\text{ kbps}$$
QOA’nın Ayrıntılı Özellikleri
1. Minimalist Şartname ve Uygulama
Geleneksel modern kodekler, uygulanması için yüzlerce sayfa teknik spesifikasyon ve binlerce satır kod gerektirir. Buna karşılık, tüm QOA formatı spesifikasyonu tek sayfalık bir PDF‘ye sığar ve resmi referans uygulaması (qoa.h) yaklaşık 400 satır standart C kodundan oluşur.
2. Zaman Alanı LMS Tahmini
QOA, hesaplama açısından yoğun dönüşüm algoritmalarından kaçınır. Bunun yerine, kanal başına dört tarihsel ağırlık kullanan uyarlanabilir En Küçük Kareler (LMS) tahmin filtresi kullanır. Gelecek örnek değerlerini tahmin ederek ve yalnızca nicemlenmiş artık farkları kaydederek, QOA ağır CPU kullanımı olmadan şeffaf algısal ses kalitesi sunar.
3. Son Derece Hızlı Dekodlama
QOA, yalnızca tam sayı aritmetiği ve hafif işlemlere dayandığı için, $3\times$ Ogg Vorbis’ten daha hızlı çözer ve standart MP3 çözücülerine göre önemli ölçüde daha iyi performans gösterir. Hatta Microsoft ADPCM’den bile daha hızlı çözer, bu da onu düşük güçlü gömülü donanım, mikrodenetleyiciler ve gerçek zamanlı oyun motorları için ideal kılar.
4. Akışa Hazır Parçalı Mimari
QOA dosyaları, kanal başına $5,120$ örnek (her biri $20$ örnekten oluşan $256$ dilim) tutabilen kendi kendine yeten çerçevelere bölünür. Her çerçeve kendi LMS filtre ağırlıklarını ve geçmişini taşır, bu da anında arama, düşen paketlerden sıfır ceza ile kurtarma ve zorunlu global indeksleme olmadan dinamik anlık akış sağlamayı mümkün kılar.
QOA’nın Temel Özellikleri
| Özellik | Spesifikasyon / Detay |
|---|---|
| Dosya Uzantısı | .qoa |
| Sihirli Baytlar | qoaf (0x71, 0x6f, 0x61, 0x66) |
| Geliştirici / Yaratıcı | Dominic Szablewski (PhobosLab) |
| Sıkıştırma Türü | Kayıplı (Zaman alanı LMS tahmini) |
| Sıkıştırma Oranı | Sabit $5:1$ 16-bit PCM’ye göre |
| Örnek Başına Depolama | Tam olarak $3.2\text{ bits per sample}$ |
| Bit Hızı (44.1 kHz, Stereo) | $\approx 278\text{ kbps}$ ($282.24\text{ kbps}$ yük) |
| Örnekleme Hızı Aralığı | $1\text{ Hz}$ to $16,777,215\text{ Hz}$ ($24\text{-bit}$ işaretsiz) |
| Desteklenen Kanallar | $1$ to $31$ ses kanalı (Mono, Stereo, 5.1, 7.1, vb.) |
| Başlık Ek Yükü | 8 baytlık dosya başlığı, 8 baytlık çerçeve başlığı |
| Lisanslama | MIT (Kaynak Kodu) / CC0 (Şartname ve Logo) |
QOA Dosyaları Nasıl Oluşturulur ve Kodlanır
Sesin QOA’ya kodlanması, önceden derlenmiş geliştirici ikili dosyaları ve topluluk araç zincirleri sayesinde oldukça basittir.
Yöntem 1: Resmi qoaconv CLI’yi Kullanarak
Ana kodlayıcı, resmi referans deposu içinde doğrudan dağıtılmaktadır.
- Depoyu klonlayın ve ikili dosyayı derleyin:
git clone https://github.com/phoboslab/qoa.git cd qoa make - Sıkıştırılmamış bir WAV dosyasını QOA’ya dönüştürün:
./qoaconv input.wav output.qoa - (Opsiyonel)
HAS_DRLIBS=trueile derlenmişse,qoaconv.flacve.mp3dosyalarından da doğrudan kodlayabilir.
Yöntem 2: Motor İçinde Kodlama (Godot Engine)
Godot 4.3’ten itibaren, oyun geliştiricileri sıkıştırılmamış .wav dosyalarını içe aktarabilir ve Godot İçe Aktarma panelinden doğrudan QOA sıkıştırmasını seçebilir. Bu, yoğun oyun sahnelerinde neredeyse ihmal edilebilir CPU gecikmesiyle yerel olarak çözülen kompakt oyun varlıkları üretir.
Yöntem 3: Tarayıcıda Web Dönüştürücüler
Çeşitli web tabanlı WebAssembly araçları (örneğin qoaformat.org‘da barındırılan ve ilgili açık kaynak demolar) kullanıcıların standart ses dosyalarını sürükleyip bırakmasına ve terminal komutları çalıştırmadan yerel olarak kodlanmış bir .qoa varlığı indirmesine olanak tanır.
QOA Dosyaları Nasıl Açılır ve Çalınır
QOA, öncelikle çalışma zamanı entegrasyonu için tasarlanmış hafif bir format olduğundan, geleneksel tüketici medya oynatıcıları eklentiler veya özel derlemeler gerektirebilir.
- Özel CLI Oynatıcı (
qoaplay): Resmi depoqoaplayolarak derlenir ve bu,.qoadosyalarını doğrudan oynatmak için yerel ses alt sistemlerini (Linux’ta ALSA, macOS’ta CoreAudio, Windows’ta WASAPI) kullanır:./qoaplay audio.qoa - Oyun Çerçeveleri ve Motorları:
- Raylib:
raudiomodülü aracılığıyla yerel destek. - Godot Engine: Tam yerel oynatma desteği (Godot 4.3+).
- Raylib:
- Medya Oynatıcılar ve Eklentiler:
- Qmmp: Yerel QOA kod çözme modüllerine sahip gelişmiş çoklu ortam oynatıcı.
- OpenCubicPlayer: QOA akışlarını destekleyen klasik bir izleyici ve ses dosyası oynatıcı.
- Audacious / foobar2000: Açık kaynak topluluk giriş eklentileri aracılığıyla desteklenir.
- IDE ve Geliştirici Araçları:
- VS Code: QOA Preview uzantısı, geliştiricilerin
.qoases kliplerini doğrudan kaynak ağacında önizlemelerine ve çalmalarına olanak tanır.
- VS Code: QOA Preview uzantısı, geliştiricilerin
Sıkça Sorulan Sorular (SSS)
QOA neyin kısaltmasıdır?
QOA, Quite OK Audio anlamına gelir, hızlı, basit, açık kaynaklı kayıplı ses formatıdır.
QOA ses kayıpsız mı yoksa kayıplı mı?
QOA, lossy bir ses sıkıştırma formatıdır, ancak çoğu pratik kullanım senaryosu için neredeyse şeffaf ses kalitesini korur.
QOA ne kadar sıkıştırma sağlar?
QOA, 16-bit sıkıştırılmamış sesi sabit $5:1$ oranında (tam olarak $3.2\text{ bits per sample}$) sıkıştırır.
QOA, genel müzik akışı için MP3 veya AAC yerine kullanılabilir mi?
Hayır, QOA, maksimum bant genişliği tasarrufu yerine ultra hızlı, hafif çözümlenmeyi önceliklendirir; bu da onu yüksek yoğunluklu web akışından ziyade oyunlar, mikrodenetleyiciler ve düşük gecikmeli uygulamalar için daha uygun kılar.
QOA’nın lisans veya patent ücretleri var mı?
Hayır, QOA tamamen patentten uzaktır ve izin verici MIT license altında yayınlanmıştır; ayrıca spesifikasyonu ve logosu kamu alanına (CC0) aittir.
Referans URL’leri ve Resmi Kaynaklar
- Resmi Web Sitesi: https://qoaformat.org/
- Resmi Şartname (PDF): https://qoaformat.org/qoa-specification.pdf
- GitHub Deposu: https://github.com/phoboslab/qoa
- Yazarın Teknik Derin Dalışı: PhobosLab Blog - QOA Duyurusu ve Kıyaslamalar