หลาย ๆ คนที่เคยอ่านข่าวใน Blognone แล้วคงสงสัยว่า ไอ้ 24bit, 96kHz หรือ ค่าอะไรประหลาด ๆ เนี่ยมันคืออะไรกันแน่ วันนี้ก็เลยอยากจะมาแนะนำสักนิดหน่อยเพื่ออรรถรสในการอ่านข่าวนี้
#เสียงถูกบันทึกด้วยคอมพิวเตอร์อย่างไร และเล่นออกมาได้อย่างไร?
เสียงนั้นมีคุณสมบัติเป็นคลื่น โดยเป็นการสั่นสะเทือน คนเรารับรู้เสียงจากการสั่นสะเทือนของตัวกลางอย่างเช่นอากาศ ผ่านไปยังอวัยวะย่อยต่าง ๆ ที่อยู่ภายในหู ซึ่งจะแปลงแรงสั่นสะเทือนให้กลายเป็นสัญญาณไฟฟ้าแล้วส่งไปยังสมองผ่านทางเส้นประสาท
สำหรับคอมพิวเตอร์เองก้ไม่ต่างกันมากนัก กล่าวคือ เสียงจะต้องถูกแปลงให้อยู่ในรูปของสัญญาณไฟฟ้าก่อนโดยใช้ไมโครโฟนเป็นตัวรับเสียงแล้วเปลี่ยนให้อยู่ในรูปของสัญญาณไฟฟ้า แต่เนื่องจากคอมพิวเตอร์นั้นทำงานในเชิงตัวเลขหรือดิจิทัล เราจึงต้องมีวงจรแปลงข้อมูลจากสัญญาณไฟฟ้าแบบอะนาล็อกให้อยู่ในรูปของดิจิตอลก่อน วงจรนี้มีชื่อตรง ๆ ว่า Analog-to-Digital Converter หรือ ADC
เมื่อได้ข้อมูลในรูปแบบดิจิทัลแล้ว การที่จะนำข้อมูลชุดนี้กลับมาสร้างเป็นเสียงอีกจะต้องใช้วงจรอีกชุดหนึ่งที่เปลี่ยนข้อมูลดิจิทัลกลับมาเป็นสัญญาณไฟฟ้าแบบอนาล็อก วงจรชุดนี้เรียกว่า Digital-to-Analog Converter หรือ DAC เมื่อได้สัญญาณเสียงกลับมาแล้วเราสามารถที่จะส่งต่อสัญญาณนี้ไปยังลำโพงเพื่อที่จะเปลี่ยนให้เป็นคลื่นเสียงต่อไป
#ขั้นตอนการแปลงสัญญาณไฟฟ้าให้เป็นข้อมูลดิจิทัล
สัญญาณไฟฟ้านั้นเป็นจะเป็นสัญญาณที่ต่อเนื่องกันเป็นช่วงคลื่นยาว ๆ ที่จริงเราก็พอจะสร้างจำลองคลื่นเสียงด้วยการสร้างสมการสียงได้ แต่ก็เป็นเรื่องยากมากและไม่ค่อยเหมือนสัญญาณจริง ๆ ดังนั้น วิธีที่ใช้ในการแปลงสัญญาณไฟฟ้าให้เป็นข้อมูลดิจิทัลนั้นจึงใช้วิธีการสุ่มตัวอย่าง โดยตัววงจร ADCจะทำการอ่านค่าสัญญาณเสียงตามเวลาที่เรากำหนด เช่น อาจจะทุก ๆ 16 มิลลิวินาที หรือทุก ๆ 13 มิลลิวินาที เราจะเรียกความถี่ในการอ่านค่านี้ว่า Sampling Rate โดยมีหน่วยเป็น Hz ซึ่ง 1Hz หมายถึงอ่านข้อมูล 1 ครั้งในหนึ่งวินาที
เมื่อได้ค่าตัวอย่างมาแล้ว ตัววงจร ADC จะทำการวัดศักย์ไฟฟ้าว่าอยู่ในระดับไหน แล้วเปลี่ยนค่าศักย์ไฟฟ้ามาเก็บเป็นตัวอย่างในรูปของตัวเลข โดยแต่ละตัวอย่างจะมีขนาดคงที่ อาจจะเป็น 8บิท 16บิท หรืออะไรก็แล้วแต่ เราจะเรียกค่าจำนวนบิทตรงนี้ว่า bit-depth ซึ่งยิ่งมี bit-depth มากก็จะมีค่าที่เป็นไปได้มากขึ้น ทำให้สามารถเก็บค่าได้ใกล้เคียงกับข้อมูลเสียงเดิมได้มากขึ้นนั่นเอง
โดยทั่วไปเรามักจะพบการเก็บข้อมูลเสียงด้วยเทคนิคที่เรียกว่า Pulse-Code Modulation หรือ PCM ซึ่งจะเก็บค่าตัวอย่างแต่ละค่าแยกออกจากการโดยไม่เกี่ยวข้องกันเลย เช่น ที่ตัวอย่างที่ 0 ตำแหน่งของสัญญาณเสียงอยู่ที่ -6db ในแดนบวก แต่ในตัวอย่างถัดไปนั้นสัญญาณเสียงอาจจะเป็น -8db ในแดนลบ ทั้งสองค่าไม่เกี่ยวข้องกัน
มีเทคนิคที่เก็บค่าแบบเกี่ยวข้องกันเหมือนกัน อย่างเช่นเทคนิค Delta-Sigma Modulation แต่ไม่ค่อยนิยมสักเท่าไหร่ ตอนนี้มีใช้ในพวกการบันทึกเสียงบน SACD เป็นต้น
เราสามารถที่จะมองข้อมูลเสียงชุดนี้ เทียบเคียงกับการเก็บข้อมูลด้านภาพ โดย bit-depth นั้นมีความหมายตรงกันเลย บนไฟล์ภาพ bit-depth คือจำนวนบิทของขนาดที่ใช้เก็บค่าสีของแต่ละ pixel ส่วน sampling-rate ก็เทียบเคียงได้กับ pixel density นั่นเอง
#ขั้นตอนการแปลงจากข้อมูลดิจิทัลให้เป็นสัญญาณไฟฟ้า
สำหรับการแปลงกลับนั้นก็ทำทุกอย่างตรงข้ามกับการแปลงจากสัญญาณไฟฟ้าเป็นข้อมูลดิจิทัลเลยครับ คือ ตัววงจรจะทำการอ่านข้อมูลด้วยอัตราตามความถี่ sampling rate แล้วเอาค่าที่อ่านได้ไปปรับเปลี่ยนศักย์ไฟฟ้าให้เปลี่ยนไปตามค่าตัวอย่างที่เก็บไว้ เท่านั้นเอง
#คำศัพท์ที่ได้ในคราวนี้
- ADC = Analog-to-Digital Converter วงจรแปลงสัญญาณจาก Analog เป็นช้อมูล Digital
- DAC = Digital-to-
Analog Converter วงจรแปลงข้อมูล Digital เป็นสัญญาณ Analog
3. PCM = Pulse-code modulation เทคนิคการเก็บข้อมูลเสียงในรูปของชุดของตัวเลขตามความถี่
4. sampling-rate = ความถี่ในการสุ่มตัวอย่างข้อมูล
5. bit-depth = ขนาดของตัวอย่างข้อมูล มีหน่วยเป็นบิท
#แถมท้าย
ในปัจจุบันนี้อุปกรณ์บันทึกเสียงแบบโปรนั้นมีวงจร ADC และ DAC ที่มี bit-depth สูงถึง 24 บิท และสุ่มตัวอย่างกันที่ความถี่ (sampling-rate)192kHz (หนึ่งแสนเก้าหมื่นสองพันครั้งต่อวินาที) และอาจจะเก็บตัวอย่างด้วยค่าทศนิยม (floating point) แทนที่จะเป็นจำนวนเต็มด้วย ในขณะที่อุปกรณ์ของผู้ฟังส่วนใหญ่จะทำงานกันที่ 16bit/44KHz ดังนั้นในอนาคตเราอาจจะเห็นอุปกรณ์ที่รองรับค่าที่สูงกว่านี้อีกครับ
หวังว่าจะพอมีประโยชน์บ้างนะครับ อาจจะอ่านไม่ค่อยรู้เรื่องสักหน่อย :P เดี๋ยวถ้าว่าง ๆ จะพูดถึงเรื่องที่เกี่ยวข้องอื่น ๆ ต่อไป (คงเป็น reply)
on
เดาไม่ผิดจริงๆ
PaPaSEK Sat, 28/09/2013 - 08:04
เดาไม่ผิดจริงๆ ว่าคนเขียนต้องเป็นคนนี้
หนึ่งแสนเก้าหมื่นสองพันครั้งต
kswisit Sat, 28/09/2013 - 11:00
ต่อวินาที?
Analog-Digital Converter,
sdh Sat, 28/09/2013 - 12:56
In reply to หนึ่งแสนเก้าหมื่นสองพันครั้งต by kswisit
Analog-Digital Converter, Digital-Analog Converter ควรเขียนว่า Analog-to-Digital Converter, Digital-to-Analog Converter
แก้หมดแล้วครับ
mr_tawan Sun, 29/09/2013 - 23:56
In reply to Analog-Digital Converter, by sdh
แก้หมดแล้วครับ :)
อันนี้เขียนจากในหัวเลย ไม่ได้ตรวจสอบก่อนเลยมีที่ผิดอยู่ประมาณนึง
1Hz หมายถึงอ่านข้อมูล 1
yoohoo Sat, 28/09/2013 - 13:37
1Hz หมายถึงอ่านข้อมูล 1 ครั้งในหนึ่งนาที
ที่ถูกต้องคือ 1Hz = 1 ครั้งในหนึ่ง วินาที ครับ
เขียนอีกบ่อยๆ นะครับ
nowingnoid Sat, 28/09/2013 - 23:44
เขียนอีกบ่อยๆ นะครับ ติดตามอ่านครับ!
ดังนั้นในอนาคตเราอาจจะเห็นอุป
nat3738 Sun, 29/09/2013 - 00:32
ผมไม่เห็นด้วยแฮะ นอกจากเป็น marketing bluff เพราะหูมนูษย์จริงๆ ไม่สามารถแยกเสียงที่เกิน 16bit ได้แล้ว (นอกจากอยู่ที่เงียบมากๆ จริงๆ) ที่สตูดิโอใช้ความละเอียดสูงๆ เพราะเค้าจะต้องเอามาตัดต่อซ้ำ ซึ่งตรงนี้ยิ่งเยอะแน่นอนว่าย่อมทำให้คุณภาพเสียน้อยไปด้วย แต่ในตลอดคอนซูเมอร์ยังไงก็ไม่จำเป็น ยิ่งเดี๋ยวนี้ใช้สตรีมมิ่ง AAC...
ผมเห็นอุปกรณ์ 24bit 96KHz
mr_tawan Sun, 29/09/2013 - 23:57
In reply to ดังนั้นในอนาคตเราอาจจะเห็นอุป by nat3738
ผมเห็นอุปกรณ์ 24bit 96KHz ออกมาเรื่อย ๆ แล้วครับ
ส่วนถามว่าหูมนุษย์แยกออกไหม มีทั้งคนที่แยกออก และแยกไม่ออกครับ คือพอมันเป็นเรื่องเสียงแล้วการแยกแยะว่าอันไหนดีกว่าอันไหนมันค่อนข้าง subjective น่ะนะครับ บางครั้งเราก็เห็นว่าไอ้เสียงที่บันทึกด้วยสเปคต่ำกว่าฟังดูดีกว่าอันที่สเปคสูงกว่าเหมือนกัน ผมเคยเจอคนที่บอกว่า mp3 320kpbs เสียงดีกว่า PCM มาแล้ว
ทั้งนี้ไม่รู้มีคนสังเกตหรือเปล่า ผมพบว่า Bluray บางแผ่นบันทึกมาด้วยความละเอียด (resolution) 24bit 96KHz ครับ ลองหาดูผมก็นึกไม่ออกว่าแผ่นไหนบ้าง (DVD บางแผ่นอัดมาที่ 48KHz เหมือนกัน)
มันก็เหมือนกับว่าทำไมช่วงนี้ถึงมีคนเล่น vinyl เพิ่มขึ้นเยอะมากนั่นล่ะครับ เขาว่าพวกนี้เสียงดีกว่า CD ผมก็ตอบไม่ได้เพราะว่า vinyl ที่มีก็ทิ้งไปหมดตอนย้ายบ้านเลยไม่ได้ลอง 555
24bit 192KHz ผมก็เคยเจอครับ
nat3738 Tue, 01/10/2013 - 23:23
In reply to ผมเห็นอุปกรณ์ 24bit 96KHz by mr_tawan
24bit 192KHz ผมก็เคยเจอครับ (5.1Ch 24.1MBps DTS-HD MA ใหญ่โฮก)
แต่ตามทฤษฎีแล้ว (ย้ำว่าทฤษฎี) มนุษย์ไม่มีทางแยกได้เกิน 16bit คิดว่าเรื่องที่ใช้ 24 บิทเพราะจะได้ไม่ต้องแปลงเวลาอัพลงแผ่นมากกว่า
นึกถึงวิชา Datacom ตอนปี 3 -
Jonathan_Job Sun, 29/09/2013 - 13:42
นึกถึงวิชา Datacom ตอนปี 3 - -"
ผมสมัคร login
waroonh Mon, 30/09/2013 - 18:05
ผมสมัคร login เพื่อมาบอกคุณว่า
Zigma - Delta (SDM) หน่ะ หัวใจของ DAC, ADC ยุคที่ 2 หลังจาก fix bit ทุกตัวบนโลกเลยครับ
เพราะทุกตัว จะทำงานได้ ก็ต่อเมื่อได้ data แบบ bit stream หลังจาก process data แบบ PCM แล้ว
แล้ว Data PCM บนแผ่น CD Audio กับ file .WAV
จริงๆก็เก่ามากแล้วครับ ทุกวันนี้ file เพลงที่ฟังกันโครมๆ ก็เก็บเป็น stream กันหมดแล้ว
ถ้าไม่จงใจ encode แล้วจงใจ ใช้ mode PCM นะครับ
ก็ .... อ่านใหม่ดีๆครับ มาถูกทางแล้ว ใจเย็นๆ ค่อยๆ อ่าน
http://en.wikipedia.org/wiki/Delta-sigma_modulation
ผมพยายามไม่ลงลึกมากเรื่องนี้น
mr_tawan Tue, 01/10/2013 - 02:42
In reply to ผมสมัคร login by waroonh
ผมพยายามไม่ลงลึกมากเรื่องนี้นะครับเนี่ย 555 เพราะว่าศึกษามาแค่ PCM เอง (ตัว Delta-Sigma นี่อ่านมานิดนึง) แต่ทราบอยู่แล้วครับว่า DSM เนี่ยมันก็มีมานานเป็นสิบ ๆ ปี อันที่จริงมันถูกใช้ในเครื่อง Famicom เป็นตัวเล่นเสียงแบบ sample ด้วยซ้ำ (นอกเหนือจากพวก synth ในเครื่องอีก 4 แชนแนลน่ะนะครับ)
ส่วน WAV ส่วนใหญ่ผมยังเชื่อว่าเป็น PCM นะครับ เท่าที่เคยเขียนโปรแกรมอ่านค่ามันออกมาเล่น+เอาเข้า FFT นิดหน่อย (แต่ลืมหมดแล้วน่ะนะครับ) พวก compressed audio format ทั้งหลายพอ uncompress ออกมาก็จะได้เป็นข้อมูลแบบ PCM ส่วนจะยาวขนาดไหนขึ้นอยู่กับขนาดของเฟรมและตัวค่าต่าง ๆ ที่ตั้งไว้
เราอาจจะเห็นไม่ตรงกัน ผมอาจจะมองที่ระดับบน ในขณะที่ในระดับล่างตัว DAC ทั้งหลายอาจจะใช้ DSM ในการแปลงค่ากลับก็ได้ (ซึ่งก็ต้องมีการเปลี่ยนรูปแบบจาก PCM ให้เป็น DSM ก่อน อันนี้ไม่รู้ยังไม่ได้ค้นคว้า)
ผมเองก็นึกถึงวิชา Signal &
ecin Tue, 01/10/2013 - 00:02
ผมเองก็นึกถึงวิชา Signal & System ปี 2 เหมือนกัน (ทั้งภาค 150 ติด F ไปเกือบ 40 คน)
จริงๆไอ้ bit สูงๆอะพอเข้าใจ (น่าจะเพิ่มควอนไตซ์แบบไม่ linear ไปด้วย สมัยนี้คงน่าจะเป็นกันหมดแล้ว)
แต่ผมงงกะ sampling rate จริงๆว่าทำไมต้องสูงขนาดนั้น
เดี๋ยวขอเอาทฤษฎีมาอธิบายดีกว่า เพราะเมื่อก่อนก็เล่นเครื่องเสียงเหมือนกัน แต่พอเรียนลึกๆทำให้เริ่มเห็นอะไรบางอย่าง ปกติหูคนเราฟังเสียงสูงได้มากสุดก็ที่ 20 kHz อันนี้น่าจะรู้กันอยู่แล้ว
ฉะนั้นถ้าเราต้อง sampling เสียงเก็บไว้ ในทางทฤษฎีถ้าจะไม่ให้มีการสูญเสียหรือเกิด aliasing
จะต้องใช้ความถี่ sampling เป็น 2 เท่าของความถี่สูงสุดตามทฤษฎีของไนควิส
เพราะฉะนั้นเราจึงต้องเก็บด้วยความถี่ที่สูงกว่า 40kHz
อีก 4kHz(จริงๆต้อง 4.1kHz) ก็เผื่อ safety factor แค่นั้น
ความเห็นผมคิดว่า ณ ตอนนี้ระบบเก็บอะ คิดว่าน่าจะสมบูรณ์แล้ว ไม่จำเป็นที่จะต้องเพิ่มขนาดต่อไฟล์ไปกว่านี้
แต่จริงๆที่ควรจะพัฒนาน่าจะเป็นส่วน DAC มากกว่า มีอะไรให้เล่นอีกเยอะ ส่วนนี้แหละที่จะทำให้เครื่องเสียงมีราคาแพง
ถ้าสมมติคำนวณ bit dept(หรือการควอนไตซ์) จะสูงแค่ไหนก็ยังเกิด harmonic distortion อยู่ดี
แต่ถ้าคำนวณมาเหมาะๆ แล้วผ่าน low pass filter ยังไงก็ขจัด distortion อยู่แล้ว
สามารถทดลองได้ด้วย oscilloscope ได้เลย
ผมไม่ได้เรียนลึกขนาดนั้นครับ
mr_tawan Tue, 01/10/2013 - 02:52
In reply to ผมเองก็นึกถึงวิชา Signal & by ecin
ผมไม่ได้เรียนลึกขนาดนั้นครับ (น่าจะเป็นพวกภาคเทเลคอมมั้งครับที่ได้เรียน)
เชื่อไหมครับว่า Sampling Rate วิ่งไปเร็วกว่า bit depth อีกนะ bit depth เมื่อก่อนเป็น 8 บิท ขึ้นมา 16 บิท ตอนนี้ที่นิยมกันก็เป็น 24 บิท หรือก็มีพวก single-precision floating point (32บิท) แต่ Sampling Rate เนี่ยมันมาจาก 11kHz, 22kHz แล้วมาเป็น 44kHz ไป 48kHz, 96kHz จนถึง 192kHz จะเห็นว่ามันสูงขึ้นเรื่อย ๆ เป็นเท่าตัว ๆ
ผมก็ไม่รู้รายละเอียดลึก ๆ แต่เป็นไปได้ว่ามันเป็นเรื่องของ
คนที่เขาเป็นซาวนด์เอนจิเนียร์เขาก็บอกนะว่าเขาแยกออก และรู้สึกว่ามันฟังดีกว่า ทั้ง ๆ ที่ความจริงกว่าเสียงมันจะไปถึงลำโพงเนี่ยตัว wavform ก็ผิดเพี้ยนจากต้นฉบับไปเยอะแล้ว (ตั้งแต่ตอน ADC แล้วครับ อันนี้แค่ความเชื่อผมนะ) ยิ่งผ่านแอมป์หลอดก็ยิ่งเพี้ยนเข้าไปใหญ่
ส่วนตัวผมแค่แยกระหว่าง MP3 320kbps กับ Lossless เนี่ยก็แย่แล้วครับ รู้สึกนะว่ามันต่างกันแต่มันน้อยมาก และผมบอกไม่ได้ด้วยว่าอันไหน MP3 อันไหน Lossless