aspose.info
TH

QOA Audio File Format คืออะไร? คุณลักษณะ, สถาปัตยกรรม, และวิธีการเปิดไฟล์

อัปเดตเมื่อ

QOA Audio File Format คืออะไร? คุณลักษณะ, สถาปัตยกรรม, และวิธีการเปิดไฟล์

ในการวิศวกรรมเสียงดิจิทัลและการพัฒนาเกม การสมดุลระหว่างขนาดไฟล์, ความหน่วงเวลาการเล่น, และภาระงานของ CPU มักเป็นเรื่องท้าทายอยู่เสมอ รูปแบบมาตรฐานเช่น MP3, AAC, และ Ogg Vorbis ให้ระดับการบีบอัดสูงแต่ต้องการขั้นตอนการถอดรหัสที่ซับซ้อน, การคำนวณแบบ floating-point ที่หนัก, และการใช้หน่วยความจำจำนวนมาก อีกด้านหนึ่งของสเปกตรัม, PCM ที่ไม่ได้บีบอัด (.wav) ให้การเล่นที่ไม่มีความหน่วงเวลาแต่แลกมาด้วยการใช้พื้นที่ดิสก์มหาศาลและการส่งมอบทรัพยากรที่ช้า.

รูปแบบ QOA (Quite OK Audio) แก้ไขช่องว่างนี้ สร้างโดย Dominic Szablewski (ผู้สร้างรูปแบบภาพ QOI ที่ได้รับการชื่นชมอย่างกว้างขวาง) QOA เป็นรูปแบบออดิโอแบบ lossy แบบโอเพ่นซอร์สที่ออกแบบมาสำหรับการถอดรหัสที่เร็วเหมือนสายฟ้า, ความซับซ้อนต่ำ, และการใช้หน่วยความจำที่คาดการณ์ได้.

ไฟล์ QOA คืออะไร?

ไฟล์ที่มีนามสกุล .qoa จะเก็บเสียงดิจิทัลที่ถูกบีบอัดโดยใช้รูปแบบ Quite OK Audio มันทำงานกับข้อมูลเสียงแบบ pulse-code modulated (PCM) ที่มีความลึก 16 บิตในอัตราการสุ่มตัวอย่างตั้งแต่ $1\text{ Hz}$ ถึง $16,777,215\text{ Hz}$ และรองรับช่องเสียงได้สูงสุด 31 ช่อง

ไม่เหมือนกับโคเดกซ์แบบจิตวิทยาเสียงที่พึ่งพาการแปลงโดเมนความถี่ (เช่น Modified Discrete Cosine Transform หรือ MDCT) QOA ทำงานทั้งหมดใน time domain. มันบีบอัดเสียงให้เหลืออัตราส่วนคงที่ที่เท่ากับ $3.2\text{ bits per sample}$ ทำให้ได้อัตราการบีบอัดคงที่ $5:1$ บน PCM เชิงเส้น 16‑บิตดิบ

สำหรับเสียงคุณภาพ CD มาตรฐาน (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 ทั้งหมดสามารถใส่ใน single-page PDF ได้เพียงหน้าเดียว และการอิมพลีเมนต์อ้างอิงอย่างเป็นทางการ (qoa.h) มีประมาณ 400 บรรทัดของโค้ด C มาตรฐาน

2. การทำนาย LMS ในโดเมนเวลา

QOA หลีกเลี่ยงอัลกอริทึมการแปลงที่ต้องใช้การคำนวณหนัก แทนที่จะใช้ มันใช้ตัวกรองการทำนายแบบ Least Mean Squares (LMS) ที่ปรับตัวได้พร้อมน้ำหนักประวัติสี่ค่าต่อช่องสัญญาณ โดยการประมาณค่าตัวอย่างในอนาคตและบันทึกความแตกต่างของส่วนเหลือที่ถูกควอนไทซ์เท่านั้น QOA ให้คุณภาพเสียงที่รับรู้ได้อย่างโปร่งใสโดยไม่ต้องใช้ CPU มาก

3. การถอดรหัสที่เร็วมาก

เนื่องจาก QOA พึ่งพาการคำนวณแบบจำนวนเต็มและการดำเนินการที่เบา มันสามารถถอดรหัสได้เร็วขึ้นถึง $3\times$ เท่าจาก Ogg Vorbis และทำงานได้ดีกว่าตัวถอดรหัส MP3 มาตรฐานอย่างมีนัยสำคัญ มันยังถอดรหัสได้เร็วกว่า Microsoft ADPCM ทำให้เหมาะสำหรับฮาร์ดแวร์ฝังตัวที่ใช้พลังงานต่ำ, ไมโครคอนโทรลเลอร์, และเอนจิ้นเกมแบบเรียลไทม์

4. สถาปัตยกรรมแบบแบ่งส่วนพร้อมสตรีมมิ่ง

ไฟล์ QOA แบ่งเป็นเฟรมที่เป็นอิสระซึ่งเก็บได้สูงสุด $5,120$ ตัวอย่างต่อช่องสัญญาณ ($256$ ชิ้นส่วนของ $20$ ตัวอย่าง) แต่ละเฟรมมีน้ำหนักและประวัติของตัวกรอง LMS ของตนเอง ทำให้สามารถค้นหาได้ทันที, ฟื้นฟูโดยไม่มีค่าเสียหายจากแพ็กเก็ตที่สูญหาย, และสตรีมแบบไดนามิกแบบเรียลไทม์โดยไม่ต้องมีการทำดัชนีทั่วโลกที่บังคับใช้

ลักษณะสำคัญของ QOA

ลักษณะสเปค / รายละเอียด
นามสกุลไฟล์.qoa
Magic Bytesqoaf (0x71, 0x6f, 0x61, 0x66)
ผู้พัฒนา / ผู้สร้างDominic Szablewski (PhobosLab)
ประเภทการบีบอัดแบบสูญเสีย (การทำนาย LMS ในโดเมนเวลา)
อัตราการบีบอัดคงที่ $5:1$ เทียบกับ PCM 16 บิต
การจัดเก็บต่อตัวอย่างเท่ากับ $3.2\text{ bits per sample}$
อัตราบิต (44.1 kHz, สเตอริโอ)$\approx 278\text{ kbps}$ ($282.24\text{ kbps}$ ข้อมูลบรรจุ)
ช่วงอัตราการสุ่มตัวอย่าง$1\text{ Hz}$ ถึง $16,777,215\text{ Hz}$ ($24\text{-bit}$ แบบไม่มีเครื่องหมาย)
ช่องสัญญาณที่รองรับ$1$ ถึง $31$ ช่องสัญญาณเสียง (โมโน, สเตอริโอ, 5.1, 7.1, เป็นต้น)
ค่าใช้จ่ายส่วนหัวส่วนหัวไฟล์ 8 ไบต์, ส่วนหัวเฟรม 8 ไบต์
การให้สิทธิ์MIT (ซอร์สโค้ด) / CC0 (สเปคและโลโก้)

วิธีสร้างและเข้ารหัสไฟล์ QOA

การเข้ารหัสเสียงเป็น QOA ทำได้ง่ายดายเนื่องจากมีไบนารีสำหรับนักพัฒนาที่สร้างไว้ล่วงหน้าและเครื่องมือของชุมชน

วิธีที่ 1: ใช้ CLI qoaconv อย่างเป็นทางการ

ตัวเข้ารหัสหลักจะถูกแจกจ่ายโดยตรงในคลังอ้างอิงอย่างเป็นทางการ

  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 โดยตรงจากแผงนำเข้า (Import dock) ของ Godot ได้ ซึ่งจะสร้างสินทรัพย์เกมที่กะทัดรัดและถอดรหัสโดยเนทีฟด้วยความหน่วงของ CPU ที่น้อยมากในฉากเกมที่หนัก.

วิธีที่ 3: ตัวแปลงเว็บในเบราว์เซอร์

ยูทิลิตี้ WebAssembly บนเว็บหลายตัว (เช่นที่โฮสต์บน qoaformat.org และเดโมโอเพ่นซอร์สที่เกี่ยวข้อง) ให้ผู้ใช้ลากและวางไฟล์เสียงมาตรฐานและดาวน์โหลดสินทรัพย์ .qoa ที่เข้ารหัสไว้ในเครื่องโดยไม่ต้องใช้คำสั่งเทอร์มินัล.

วิธีเปิดและเล่นไฟล์ QOA

เนื่องจาก QOA เป็นรูปแบบที่มีน้ำหนักเบาและสร้างขึ้นเพื่อการรวมในเวลารันไทม์เป็นหลัก ตัวเล่นสื่อทั่วไปอาจต้องการปลั๊กอินหรือการสร้างเฉพาะ.

  • Dedicated CLI Player (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, เป็นรูปแบบเสียง lossy ที่เร็ว, เรียบง่าย, และเป็นโอเพ่นซอร์ส.

QOA เป็นออดิโอแบบ lossless หรือ lossy?

QOA เป็นรูปแบบการบีบอัดเสียง lossy แต่ยังคงคุณภาพเสียงใกล้เคียงกับความโปร่งใสสำหรับการใช้งานเชิงปฏิบัติจำนวนมาก.

QOA ให้การบีบอัดมากแค่ไหน?

QOA บีบอัดเสียงที่ไม่ได้บีบอัด 16-bit ด้วยอัตราส่วนคงที่ $5:1$ (เท่ากับ $3.2\text{ bits per sample}$).

QOA สามารถแทนที่ MP3 หรือ AAC สำหรับการสตรีมเพลงทั่วไปได้หรือไม่?

ไม่, QOA ให้ความสำคัญกับการถอดรหัสที่เร็วมากและมีน้ำหนักเบากว่าการประหยัดแบนด์วิดท์สูงสุด, ทำให้เหมาะกับเกม, ไมโครคอนโทรลเลอร์, และแอปพลิเคชันที่ต้องการความหน่วงต่ำมากกว่า high-density web streaming.

QOA มีค่าใบอนุญาตหรือค่าลิขสิทธิ์หรือไม่?

ไม่, QOA ปราศจากสิทธิบัตรทั้งหมดและเผยแพร่ภายใต้ MIT license ที่อนุญาต, ในขณะที่สเปคและโลโก้ของมันเป็นสาธารณะ (CC0).

URL อ้างอิง & แหล่งข้อมูลอย่างเป็นทางการ