เสียง AAC (.aac)
ISO/IEC มาตรฐานAdvanced Audio Coding (AAC) เป็นโคเดกเสียงแบบสูญเสียข้อมูลที่กำหนดมาตรฐานหลัง MP3 ประสิทธิภาพการบีบอัดและคุณภาพที่รับรู้ขึ้นอยู่กับตัวเข้ารหัส บิตเรต และเนื้อหาเสียง
แปลง AAC เป็น MP3
ตัวแปลงจาก AAC เป็น MP3 ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบไฟล์และข้อมูลเมตา
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ AAC โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวระดับไบต์
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ AAC โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
FF F1การแสดงผลรูปแบบ ASCII: ÿñ
มาตรฐาน: ISO/IEC 13818-7 / ISO/IEC 14496-3
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | บิตสตรีม ADTS (Audio Data Transport Stream) หรือคอนเทนเนอร์ MPEG-4 Part 14 |
| การบีบอัด | การแปลงโคไซน์ไม่ต่อเนื่องแบบดัดแปลง (MDCT) พร้อมการปรับรูปร่างสัญญาณรบกวนตามเวลาและแบบจำลองจิตอะคูสติก |
| การจัดลำดับไบต์ | การจัดกรอบบิตสตรีมแบบ Big-Endian |
| พื้นที่สี | ไม่เกี่ยวข้อง (บิตสตรีมเสียง) |
| ช่องสัญญาณและโครงสร้าง | รองรับช่องสัญญาณเสียงแยกกันสูงสุด 48 ช่อง พร้อมการกำหนดตำแหน่งลำโพงได้อย่างอิสระ |
| ขนาดสูงสุด | อัตราสุ่มตั้งแต่ 8 kHz ถึง 96 kHz (จากแหล่ง PCM 16/24 บิต) |
| ความโปร่งใส | การเข้ารหัสแบบสูญเสียข้อมูลตามการรับรู้ โดยคุณภาพที่แทบแยกไม่ออกจากต้นฉบับทำได้ที่ประมาณ 192-256 kbps แบบสเตอริโอ |
| การสตรีมและแบบโปรเกรสซีฟ | คำซิงโครไนซ์เฟรม ADTS ในตัวช่วยให้สตรีมไบต์ต่อเนื่องได้ |
ตารางเปรียบเทียบทางเทคนิค: AAC กับคู่แข่ง
| คุณลักษณะทางเทคนิค | AAC (ปัจจุบัน) | MP3 | OGG | OPUS |
|---|---|---|---|---|
| ประสิทธิภาพการบีบอัด | สูง ให้เสียงสเตอริโอโปร่งใสที่ 128 - 192 kbps | ปานกลาง; ต้องการ 192-256 kbps | สูง ใกล้เคียงกับ AAC ที่ 160 kbps | สูงมาก ให้เสียงโปร่งใสที่ 96 - 128 kbps |
| ช่องสัญญาณสูงสุด | 48 ช่องสัญญาณแยก | 2 ช่องสัญญาณ (สเตอริโอ) / 5.1 ใน MPEG-2 | 255 ช่องสัญญาณแยก | 255 ช่องสัญญาณแยก |
| การเร่งความเร็วด้วยฮาร์ดแวร์ | รองรับอย่างแพร่หลาย 100% บนฮาร์ดแวร์มือถือและเดสก์ท็อปทุกรุ่น | รองรับซิลิคอนรุ่นเก่า 100% | รองรับชิปฮาร์ดแวร์ DSP เฉพาะทางอย่างจำกัด | การรองรับจากเบราว์เซอร์และฮาร์ดแวร์ Android/iOS กำลังเพิ่มขึ้น |
| ความหน่วงของอัลกอริทึม | ปานกลาง (หน่วงเวลาบัฟเฟอร์ประมาณ 100 ms) | สูง (~100 - 150 ms) | ปานกลาง (~100 ms) | ต่ำมาก (5 - 26.5 ms, ปรับแต่งสำหรับ VoIP) |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
เครื่องเล่นสื่อเล่นวนซ้ำหรือสร้างเสียงซ่าดิจิทัลความถี่สูง
สาเหตุหลัก: การสูญเสียการซิงโครไนซ์ของส่วนหัวเฟรม ADTS เนื่องจากแพ็กเก็ตสูญหายหรือซิงค์เวิร์ด 12 บิตหายไป
การกู้คืน: แปลงเสียง AAC ดิบให้อยู่ในคอนเทนเนอร์ MP4/M4A ด้วยคำสั่ง ffmpeg -i broken.aac -c:a copy fixed.m4a เพื่อสร้างดัชนีเฟรมขึ้นใหม่
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
ตัวถอดรหัส AAC ทำงานในลูป DSP เสียงที่มีปริมาณงานสูง ซึ่งความยาวแพ็กเกจที่ผิดรูปอาจทำให้เกิดการล้นของจำนวนเต็ม (integer overflows) ในการใช้งานซอฟต์แวร์
เวกเตอร์การโจมตีที่ทราบ
- การล้นของจำนวนเต็มในฟิลด์ความยาวเฟรม ADTS ทำให้เกิดการอ่านบัฟเฟอร์เกินขอบเขตในตัวถอดรหัส C++ ที่ยังไม่ได้แพตช์
- บิตกำหนดค่าช่องสัญญาณที่จงใจสร้างขึ้นเพื่อกระตุ้นให้เกิดการเขียนหน่วยความจำที่ไม่ถูกต้องระหว่างการลดจำนวนช่องสัญญาณเสียง
- การจัดสรรฮีปนอกขอบเขตระหว่างการแยกวิเคราะห์ตารางสังเคราะห์ SBR (Spectral Band Replication)
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: ถอดรหัสไฟล์ AAC ในพื้นที่หน่วยความจำแบบแซนด์บ็อกซ์โดยใช้ไลบรารี WASM ที่ปลอดภัยต่อหน่วยความจำหรือเฟรมเวิร์กสื่อของระบบปฏิบัติการ
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- ให้เสียงใสกว่า MP3 ที่อัตราบิตเท่ากันและที่อัตราบิตต่ำกว่า (เช่น 128 kbps เทียบกับ 192 kbps)
- รองรับช่องสัญญาณเสียงเต็มแบนด์วิดท์สูงสุด 48 ช่องสำหรับระบบเสียงรอบทิศทางและเวิร์กโฟลว์ Dolby Pro Logic
- รองรับการถอดรหัสด้วยฮาร์ดแวร์โดยตรงบน iOS, Android, macOS, Windows และสมาร์ททีวีทั่วไป
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- การเข้ารหัสแบบสูญเสียข้อมูลเชิงการรับรู้จะตัดความถี่ฮาร์มอนิกที่ไม่ได้ยินออกไป ทำให้ไม่เหมาะสำหรับการมาสเตอร์ริ่งเสียง
- สตรีมข้อมูล ADTS ขาดตารางการค้นหาตำแหน่ง (seeking tables) ที่ฝังอยู่ หากไม่มีการใส่ในคอนเทนเนอร์ MP4 (M4A)
- การอนุญาตสิทธิบัตรพูลที่จัดการโดย Via Licensing Corporation ในอดีตทำให้การพัฒนาตัวเข้ารหัสแบบโอเพนซอร์สช้าลง
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- YouTube ตั้งค่าเริ่มต้นเป็นการเข้ารหัส AAC ที่ 128 kbps สำหรับสตรีมเสียงวิดีโอสเตอริโอมาตรฐาน
- ซิงค์เวิร์ดของ ADTS คือเลขฐานสอง 1 ติดต่อกัน 12 ตัว (0xFFF) ซึ่งช่วยให้จูนเนอร์สามารถล็อกเข้ากับรายการสดกลางคันได้
- Sony นำ AAC มาใช้เป็นมาตรฐานการบีบอัดเริ่มต้นสำหรับเสียงใน PlayStation 3, PlayStation Portable และ Vita
คำถามทางเทคนิคที่พบบ่อย
ทำไม AAC ถึงให้เสียงที่ดีกว่า MP3 ที่บิตเรต 128 kbps?
AAC มีความละเอียดความถี่สูงกว่า (สูงสุด 96 kHz) ใช้ฟิลเตอร์แบงก์ที่อาศัย MDCT โดยตรง มีระบบ temporal noise shaping (TNS) และเครื่องมือทำนายสัญญาณสเตอริโอที่ยืดหยุ่นกว่า จึงช่วยลดเสียงผิดเพี้ยนแบบ pre-echo ซึ่งพบได้บ่อยใน MP3
ระหว่าง raw AAC กับ M4A แตกต่างกันอย่างไร?
AAC แบบดิบใช้การจัดกรอบ ADTS อย่างง่าย โดยไม่มีสารบัญบทหรือดัชนีเมทาดาทา ส่วน M4A ห่อหุ้มเพย์โหลดเสียง AAC เดียวกันไว้ในคอนเทนเนอร์ ISO Base Media (MP4) พร้อมเมทาดาทา ภาพปกอัลบั้ม และตารางค้นหาตำแหน่ง
AAC รองรับการบีบอัดเสียงแบบไม่สูญเสียข้อมูล (lossless) หรือไม่?
ไม่ AAC มาตรฐานเป็นรูปแบบที่บีบอัดเสียงโดยสูญเสียข้อมูลอย่างเคร่งครัด ส่วน Apple พัฒนา Apple Lossless (ALAC) เพื่อบีบอัดเสียงโดยไม่สูญเสียข้อมูลแม้แต่บิตเดียว ภายในคอนเทนเนอร์ M4A เดียวกัน
คู่การแปลงไฟล์ AAC ที่เกี่ยวข้อง
การแปลงไฟล์ Advanced Audio Coding เป็น MPEG-1 Audio Layer III ช่วยให้เพลงและพอดแคสต์ของคุณเล่นบนเครื่องเล่นฮาร์ดแวร์รุ่นเก่าและเครื่องเสียงรถยนต์รุ่นดั้งเดิมได้
การแปลงไฟล์ MP3 เป็นรูปแบบ AAC จะอัปเดตเสียงสูญเสียข้อมูลรุ่นเก่าให้เป็นการเข้ารหัสที่มีประสิทธิภาพสูงและทันสมัย เพื่อเสียงที่ดีกว่าในขนาดไฟล์ที่เล็กกว่า
การแปลงหนังสือเสียง M4B เป็นเสียงบรรยาย AAC จะถอดเครื่องหมายบทและคอนเทนเนอร์ห่อหุ้มออก เพื่อเหลือเพียงสตรีมเสียงมาตรฐานที่สามารถเล่นได้บนเครื่องเล่นสื่อทั่วไปเกือบทุกชนิด