Quantization
ตัวอย่างการ quantization แบบ 3-bit มีความละเอียด 8 ระดับ วาดในรูปแบบกราฟขั้นบันได เพื่อให้ง่ายในการสังเกตระดับขั้น ที่มา: Wikipedia
หลังจากที่เราได้ตัวอย่างของสัญญาณ (sample) จากการสุ่มตัวอย่างมาแล้ว ตัวอย่างจะยังมีค่าของแอมพลิจูดตามสัญญาณแอนะล็อกที่ไปสุ่มมาอยู่ ซึ่งเราจะต้องนับมาแบ่งนับเพื่อนำ sample ไปจัดเก็บในรูปแบบเลขฐานสองที่มีจำนวนหลักตามที่กำหนดไว้
ซึ่งการกำหนดจำนวนหลักของเลขฐานสอง (bit) จะเป็นตัวกำหนดความละเอียดของระดับขั้นที่ใช้ในการ quantization ของค่าแอมพลิจูดตั้งแต่ -∞ (เบาสุด) ไปจนถึง 0 dBFS (ดังที่สุด) ของสัญญาณเสียงซึ่งสามารถคำนวณได้ง่าย ๆ ด้วยการนำ 2 ไปยกกำลังจำนวน bit
กราฟแสดงการแบ่งระดับไม่เชิงเส้นของอัลกอริทิม μ-law และ A-law ที่ใช้เข้ารหัสเสียงในงานโทรคมนาคม ที่มา: Wikipedia
ส่วนการแบ่งระดับขั้นเองนั้น ก็ยังมีอีก 2 แบบ คือแบ่งระดับแบบเชิงเส้น ที่แต่ละระดับขั้นจะมีค่าเท่ากัน และแบบไม่เชิงเส้น ซึ่งมีการปรับระดับขั้นในการแบ่งนับที่ไม่คงที่ เพื่อลด dynamic range ของสัญญาณลง ซึ่งส่งผลให้การเข้ารหัสนั้นมีประสิทธิภาพมากขึ้น
สำหรับสัญญาณ PCM ที่ใช้การแบ่งนับตามระดับขั้นแบบเชิงเส้น จะถูกเรียกว่า Linear pulse-code modulation (LPCM) นั่นเองครับ
ที่มา: Wikipedia
อย่างไรก็ตาม ในสัญญาณแอนะล็อกที่ทำการสุ่มสัญญาณมา จะมี sample ที่มีค่าแอมพลิจูดไม่ตรงกับระดับขั้นที่กำหนดเอาไว้ ทำให้ต้องมีการปัดเศษ (round) และตัดปลาย (truncate) ค่าดังกล่าว เพื่อให้สามารถจัด sample นั้นให้อยู่ในระดับขั้นที่ใกล้เคียงได้ การกระทำดังกล่าวนั้น ทำให้เกิดสัญญาณรบกวน quantization noise ขึ้น
Quantization noise นั้นส่งผลต่อค่าอัตราส่วนสัญญาณต่อสัญญาณรบกวน (Signal to Noise Ratio – SNR) ที่ใช้ระบุคุณภาพของสัญญาณ และ dynamic range ที่กำหนดช่วงความดังที่น้อยที่สุดและมากที่สุดของสัญญาณนั้น ๆ ให้น้อยลง แต่ก็สามารถแก้ไขได้ ด้วยการเพิ่มจำนวนบิตที่มากขึ้น ซึ่ง 1 บิตที่เพิ่มจะมีค่า SNR เพิ่มขึ้นประมาณ 6 dB หรือใช้การแบ่งระดับไม่เชิงเส้น เพื่อลดสัญญาณรบกวนดังกล่าวให้น้อยลง
ตัวอย่างจำนวนบิตที่นิยมใช้งานกัน เช่น
- 16-bit ใช้ในมาตรฐาน CD Audio มีความละเอียด 65,536 ระดับ (−32,768 to +32,767) มี SNR 96.33 dB
- 20-bit ใช้ในเสียงของแผ่น Blu-ray มีความละเอียด 1,048,576 ระดับ (−524,288 to +524,287) มี SNR 120.41 dB
- 24-bit ใช้ในมาตรฐาน DVD-Audio และเสียงในแผ่น Blu-ray มีความละเอียด 16,777,216 ระดับ (−8,388,608 to +8,388,607 ) มี SNR 144.49 dB
- 32-bit ใช้ในมาตรฐาน DXD มีความละเอียด 4,294,967,296 ระดับ (−2,147,483,648 to +2,147,483,647 ) มี SNR 192.66 dB
อย่างไรก็ตาม เนื่องจากข้อจำกัดของการออกแบบชิ้นส่วนและวงจรในปัจจุบัน ทำให้ค่า SNR เมื่อใช้งานจริงในปัจจุบันจะอยู่ที่ประมาณ 124 dB หรือประมาณ 21 บิตครับ
ในการใช้งานจริง การวัดความดังของเสียงจะมีการกำหนด Alignment level เพื่อเป็นระดับอ้างอิงให้กับอุปกรณ์ทุกตัวในระบบ ในตัวอย่างจะกำหนดค่าอ้างอิงที่ 100 dB SPL ที่มา: Wikipedia
ข้อดีสำหรับการใช้จำนวนบิตมาก ๆ คือ การมีหัวเสียง (headroom) มากกว่า คือสัญญาณเสียง PCM หากมีค่าความดังของเสียงเกิน 0 dBFS จะมีอาการเสียงแตก (clipping) เกิดขึ้น ซึ่งตำแหน่ง 0 dBFS ที่ว่าก็คือค่า SNR สูงสุดนั่นเอง ด้วยเหตุนี้ทำให้ในงานบันทึกและผสมเสียงจึงเลือกทำงานกันที่ 24 bit เพราะมีหัวเสียงมากกว่า เพื่อป้องกันการ clipping นั่นเอง
ที่มา: Wikipedia
ปัจจุบัน ในการประมวลผลเสียงของโปรแกรมตัดต่อเสียง อุปกรณ์สำหรับมืออาชีพ หรือตัวบีบอัดข้อมูล เช่น iTunes Plus จะนิยมใช้รูปแบบบิตแบบ 32-bit floating point คือการแทนเลขทศนิยมด้วยบิต แทนที่จะใช้จำนวนเต็ม (integer) ตามปกติ
32 bit floating point จะมีความละเอียดเท่ากับเสียงที่ 24 bit แต่การะบุค่าจะได้ได้ละเอียดขึ้นจากบิตสำหรับยกกำลังที่เพิ่มเข้ามา และระดับขั้นสูงสุดที่กำหนดมักจะอยู่ที่ -1 dBFS ถึง 1 dBFS ซึ่งจะยอมให้สัญญาณดังกว่า 0 dBFS ได้บ้าง ช่วยป้องกันการเกิด clipping ได้ดีกว่า
อย่างไรก็ตามการใช้จำนวนบิตมาก ๆ ก็มีข้อเสีย คือข้อมูลจะมีขนาดใหญ่กว่า ทำให้ต้องการพื้นที่ในการจัดเก็บข้อมูลมาก จึงไม่เหมาะเป็นรูปแบบสำหรับใช้แจกจ่ายไฟล์ไปยังผู้บริโภค
Coding
ที่มา: Wikipedia
หลังจากที่เรานำ sample ไปแบ่งนับตามระดับขั้นที่กำหนดเอาไว้แล้ว เราก็จะนำข้อมูลมาแทนด้วยบิตที่กำหนดไว้ในแต่ละระดับขั้น แต่เนื่องจากระบบคอมพิวเตอร์จะเก็บข้อมูลในลักษณะ byte หรือ 8-bit ซึ่งจะต้องการกำหนดว่าจะให้เรียงข้อมูล (endianness) อย่างไรตามระบบคอมพิวเตอร์ที่ใช้งาน
การเรียงข้อมูลจะมีอยู่ 2 แบบคือ Big-endian ที่จะนำข้อมูลในหลักแรกสุดมาเรียงก่อน และ Little-endian ที่นำข้อมูลหลักสุดท้ายมาเรียงก่อน ซึ่งไฟล์ WAVE ของ Microsoft จะใช้การเรียงข้อมูลแบบ Little-endian ตามระบบคอมพิวเตอร์ของ Intel ส่วนไฟล์ AIFF ของ Apple จะใช้การเรียงข้อมูลแบบ Big-endian ตามระบบคอมพิวเตอร์ Motorola ในอดีต
ตัวอย่างการเข้ารหัสและจัดเรียงข้อมูลในไฟล์ WAVE ที่มา: ccrma.stanford.edu
ในกรณีที่เราเก็บสัญญาณเสียงแบบสเตอริโอ sample ของเสียงข้างซ้ายจะถูกวางสลับกับ sample ของเสียงข้างขวา แบบนี้ไปเรื่อย ๆ จุดสุดท้ายเราก็จะได้ก้อนของข้อมูลเสียงที่จะนำไปใช้งาน หรือนำไปใส่ไว้ใน container format อื่น ๆ เช่น RIFF เพื่อทำให้เป็นไฟล์ WAVE เป็นต้นครับ
Conclusion
จากขั้นตอนการแปลงสัญญาณแอนะล็อกเป็นดิจิทัลแบบ PCM ทำให้เรารู้ความหมายของค่าต่าง ๆ ที่ผู้ผลิตระบุมาในสเปกของสินค้าได้ดังนี้ครับ
- Hz บอกถึง sample rate ของอุปกรณ์ มีความสัมพันธ์กับการตอบสนองความถี่ของอุปกรณ์ตัวนั้น ซึ่งหาได้จากการเอา sample rate มาหาร 2
- Bit บอกถึงความละเอียดบิตในการ quantization ของอุปกรณ์ มีความสัมพันธ์กับ SNR และ Dynamic range ของอุปกรณ์ตัวนั้น ซึ่งจริง ๆ แล้วมีสูตรคำนวณอยู่ แต่เอาให้ง่ายก็สามารถดูค่าที่คำนวนแล้วจากด้านบน
แต่อย่างไรก็ตาม ด้วยข้อจำกัดของการออกแบบและชิ้นส่วนต่าง ๆ ในวงจร ก็อาจจะทำให้ค่าที่ได้น้อยกว่าค่าตามทฏษฏี ซึ่งผู้ผลิตหลาย ๆ เจ้าก็เลือกที่จะไม่ระบุค่าที่ได้จากการวัดอุปกรณ์จริง ๆ แต่ระบุค่าจากสเปกของชิป DAC ที่ตนนำมาใส่ในอุปกรณ์ครับ
อาจจะเป็นบทความที่ยาวและซับซ้อนอยู่พอสมควรนะครับ ผมเองก็พยายามเขียนให้คนที่ไม่ได้เรียนมาทางด้านนี้ให้อ่านเข้าใจง่ายที่สุดแล้ว หากใครสงสัยอะไร ก็สามารถคอมเมนต์เข้ามาสอบถามได้นะครับ
ผมเรียนสายสุขภาพ อ่านจบ ก็งงดี แต่ก็จะเข้าใจบ้าง
Pingback: สัมภาษณ์คุณ Nageno Koji วิศวกรผู้อยู่เบื้องหลังหูฟังของ Sony
Pingback: มารู้จัก มาตรฐาน High Resolution Audio กันเถอะ
Pingback: มาทำความรู้จัก รูปแบบสัญญาณเสียง Direct Stream Digital (DSD) กันเถอะ | RE.V –>
Pingback: พาชมเครื่องเสียงพกพา Signature Series และหูฟังรุ่นใหม่ ๆ ของ Sony ประจำปี 2016 | RE.V –>
Pingback: ลองฟังเครื่องเล่นเพลง DMP-Z1 และหูฟัง IER-Z1R สมาชิกใหม่ Sony Signature Series | RE.V –>
ขอบคุณมากๆเลยครับ กำลังศึกษาแต่อ่านของภาษาอังกฤษแล้วงงมากครับ ต้องขอบคุณมากๆจากใจอีกครั้งครับ