วันอาทิตย์ที่ 29 สิงหาคม พ.ศ. 2553

บทสรุป Hi-Definition (MKV,MPEG2)

จะไม่ถึงการเข้ารหัสเสียงนะครับ ไม่งั้นยาวแน่ๆ

ก่อนอื่นเลยนะครับ สำหรับท่านที่ไม่ทราบระบบการถอดรหัส และ การเข้ารหัสสัญญาณวีดีโอนะครับ
แรกเริ่มเดิมทีเราจะได้ยิน และคุ้นเคยกับ VCD DVD Bluray HDDVD DiVX MKV หรืออะไรก็แล้วแต่
แล้วจริงๆ มันคืออะไรกัน มาตรฐานของแต่ละแบบก็จะแตกต่างกันไปนะครับ ถ้าถามว่าทำไมต้องเข้า
รหัส คำตอบก็คือหากเราไม่ทำการเข้ารหัสแล้วไฟล์วีดีโอนั้นก็จะมีขนาดไฟล์ที่ใหญ่มากครับ และ
ยากที่จะนำไปใช้งานต่อได้ครับไฟล์วีดีโอชนิดนี้มักเรียกกันว่า Full Frame Uncompressed ครับ

มาตรฐานแรกที่เรารู้จักกันดีก็คือ. VCD.-
- VCD ชื่อเต็มก็คือ Video Compact Disc นะครับมีการเข้ารหัสไฟล์วีดีโอแบบ MPEG1 ชื่อเต็มๆ
ของ MPEG ก็คือ Moving Picture Experts Group ก็คือภาพเคลื่อนไหวต่อเนื่องนั่นเองนะครับ
แผ่น VCD มีสองประเภทใหญ่ๆ นะครับ ก็คือ NTSC และ PAL ซึ่ง NTSC จะมีขนาดของภาพอยู่
ที่ 352x240 อัตราการเคลื่อนไหวของภาพ (Framerate) 29.97 ภาพต่อวินาที
และ 352x288 ในระบบ PAL อัตราการเคลื่อนไหวของภาพ (Framerate) 25 ภาพต่อวินาที
โดยมีบิทเรตเท่ากันก็คือ 1.15 Mbps ครับ


ต่อมาที่เราไม่ค่อยได้ยินกันก็คือ SVCD.-
- SVCD หรือ Super Video Compact Disc ครับ นะครับมีการเข้ารหัสไฟล์วีดีโอแบบ MPEG2 แบบ
เดียวกับ DVD ครับ แต่ความละเอียดไม่เท่ากัน แผ่น SVCD มีสองประเภทเหมือน VCD นะครับ
ก็คือ NTSC และ PAL ซึ่ง NTSC จะมีขนาดของภาพอยู่
ที่ 480x480 อัตราการเคลื่อนไหวของภาพ (Framerate) 29.97 ภาพต่อวินาที
และ 480x576 ในระบบ PAL อัตราการเคลื่อนไหวของภาพ (Framerate) 25 ภาพต่อวินาที
โดยมีสูงสุดคือ 2.6 Mbps ครับ

- อันสุดท้าย แต่ไม่ท้ายสุดกับ DVD
- ระบบ PAL ความละเอียดสูงสุด 720x576 ที่เฟรมเรต 25
- ระบบ NTSC ความละเอียดสูงสุด 720x480 ที่เฟรมเรต 29.97
นอกจากนี้ DVD ยังสามารถนำไฟล์ VCD มารวมได้โดยไม่ต้องเข้ารหัสใหม่ด้วย
- บิตเรตสูงสุดอยู่ที่ 9.8 Mbps นะครับ

* บางคนเข้าใจว่าขนาด Resolution ของวีดีโอยิ่งใหญ่จะยิ่งชัด นั่นส่วนนึงครับ
* แต่ที่สำคัญที่สุดก็คือบิตเรต ต้องสูงขึ้นไปตามไม่เช่นนั้นภาพจะแตกครับ

ต่อไป เรามารู้จักกับคำว่า DxVA กันดีกว่าครับ

ก่อนจะมาพูดถึง DxVA เรามารู้จักกับการ์ดจอก่อนดีกว่า ย้อนไปสมัยเมื่อ 6-8 ปีที่แล้ว
ยังจำกันได้ไหมครับ การ์ดจอที่เขียนไว้ว่าเล่นวีซีดีได้ หรือเขียนข้างกล่องว่า
MPEG1 Compatible Acceleration
อะไรทำนองนี้ จริงๆ แล้วก็คือ เนื่องจากสมัยก่อนการถอดรหัส MPEG#1 ต้องใช้
การ์ดจอในการถอดรหัส แต่ถ้าการ์ดจอไม่มี หรือไม่มีตัวชั่วถอดรหัสในการ์ดจอ
ภาระก็จะตกไปอยู่กับ CPU ซึ่ง CPU สมัยก่อนช้าเหลือเกินไม่สามารถที่จะถอดรหัส
ได้ หรือถอดได้ ภาพยนตร์ที่ดูก็กระตุกเหลือเกิน คงจำโปรแกรม XingMPEG Player
กันได้นะครับ สำหรับคนยุคเก่าๆ นั่นก็เป็นโปรแกรมเล่นไฟล์วีดีโอตัวแรกเหมือนกัน
ที่เปิดมาทีไรก็มีแต่คนมากระโดดร่ม
แต่พอเมื่อเปลี่ยนยุค เปลี่ยนสมัย CPU มีความเร็วมากขึ้นก็ทำให้การถอดรหัสไฟล์VCD
หรือ MPEG1 ไม่มีปัญหาอีกต่อไป

จนมาถึงสมัย DVD เข้ามาใหม่ๆ ปัญหาเกิดอีกแล้ว CPU ถอดรหัสไม่ทันอีกภาพเลยกระตุก
หรือไม่ก็แตกก็ต้องไปหาการ์ดจอมาเสริมเพื่อที่จะดู DVD อย่างไม่ติดขัด
และเมื่อถัดมายุคนี้ก็อีกแหละ CPU ก็ถอดรหัส MPEG2 ได้หมดแล้วไม่กระตุกแล้วเพราะความ
เร็วสูงขึ้น จนมาตอนนี้..หนัง Hidef เริ่มเข้ามามีบทบาทแล้ว ปัญหาเดิมก็กลับมาอีกครั้ง...

ในตัว CPU เองตั้งแต่สมัยโบราณแล้วจะมีชุดโปรแกรมช่วยถอดรหัสอยู่ในตัวเช่น MMX
3DNow , SSE ,SSE2-3-4,IA64 เยอะแยะไปหมดหากจะนับกันจริงๆ แต่ชุดคำสั่งด้าน
มัลติมีเดียร์ ด้าน Intel จะมีชุดคำสั่งเยอะกว่าทำให้การเข้ารหัสและการถอดรหัสทำได้
ดีกว่า AMD แต่สำหรับการถอดรหัส ไม่เห็นผลต่างอะไรมากครับ.....

คำว่า DxVA จริงๆ แล้วย่อมาจาก DirectX Video Acceleration พัฒนาเสริมขึ้นมาจาก DirectShow
ก่อนอื่นต้องมาพูดถึง DirectX ก่อน DirectX ก็คือโปรแกรมเสริมที่พัฒนาขึ้นเพื่อให้ Hardware
และ Software ทำงานเข้ากันได้ เป็นมาตรฐานอย่างนึงพัฒนาโดย Microsoft ซึ่ง DirectX แตกย่อย
ออกเป็นหลายส่วน เช่น Direct 3D ไว้เล่นเกมส์ DirectShow ไว้ดูหนัง DirectSound ไว้ฟังเพลง
และอื่นๆ อีกมากมาย รวมทั้ง DxVA นี้ด้วย

DxVA ก็คือชุดคำสั่งที่จะไปเปิดการทำงานของการถอดรหัสวีดีโอ โดยการ์ดจอเรียกอีกอย่างง่ายๆ ว่า
Hardware Acceleration ซึ่งส่วนมากชุดคำสั่งนี้จะรวมอยู่ใน Drivers ของการ์ดจอ โดย
ซอฟท์แวร์ต่างๆ จะเป็นคนเรียกเปิด Functionนี้ หากเราปิดฟังก์ชั่นนี้ ก็จะเป็นการถอดรหัสวีดีโอโดย
CPU..แทน.. ซึ่ง Software ปัจจุบันที่ Support DxVA นี้ก็มีมากมายเหลือเกิน แต่ก็อีกแหละครับ
ต้องย้อนกลับไปดูคุณสมบัติการ์ดจอและชิปเซ็ตด้วยว่า Support การถอดรหัสชนิดไหนบ้าง ซึ่งบาง
ครั้ง Software หรือ Codecs ตัวนั้นจะมีฟังก์ชั่นเปิด DxVA แต่เมื่อกดเปิดอาจไม่เกิดผลอะไรก็เป็นได้
เพราะการ์ดจอบางตัวจะไม่ Support การถอดรหัสบางชนิด ซึ่งตรงจุดนี้ ATI จะได้เปรียบ NVIDIA
ครับ.. แล้วจะมาว่ากันต่อว่าได้เปรียบกันยังไง

มาถึง MKV H.264 x264 VC-1 บ้างครับ

ก่อนที่จะรู้จัก Format เหล่านี้เราไปรู้จักกับ Bluray และ HD-DVD ก่อนนะครับ...

HD DVD
ใครคิด อันนี้ผมคิดว่าไม่จำเป็นต้องรู้ก็ได้นะครับ ผมก็ขี้เกียจไปค้น อิอิ
เอาเป็นว่าตอนนี้ HD DVD ล่มสลายไปจากตลาด Digital เรียบร้อยแล้วเนื่องจาก
เทคโนโลยี่ และการตลาด สู้ Blu-Ray ของอีกฝั่งไม่ได้ ความจุของ HD DVD อยู่ที่ 15 GB
(single layer) และ 30 GB (dual layer) สำหรับเครื่องเกมส์ที่ใช้แผ่น HD-DVD คงเซ็ง
ไปตามๆ กันนั่นก็คือ XBOX 360 นั่นเอง

Blu-Ray
ชื่อก็บอกอยู่แล้วครับ มาจากคำว่า Blue Ray อันแปลว่า แสงสีน้ำเงิน
แรกเริ่มเดิมที DVD และ CD ที่เราใช้กันอยู่จะใช้เลเซอร์ในการยิงแสง
เป็นแสงสีแดงซึ่งมีขนาดของลำแสงที่ใหญ่กว่าสีน้ำเงินครับ แต่แสงสี
น้ำเงินมีขนาดที่เล็กกว่า จึงทำให้การออกแบบบแผ่นมี Dot Pitch ที่
เล็กลงได้ ทำให้ความจุเพิ่มขึ้นนั่นเองครับ.......ความจุของแผ่นก็อยู่
ที่ 25 GB (single layer) และ 50 GB (dual layer) ครับ

ส่วน รูปแบบของการบีบอัดก็คือ H.264/AVC , VC-1 , MPEG2 นั่นเอง

1. H.264/AVC
เป็นพัฒนาการของ MPEG4 ครับ พูดง่ายๆ ก็คือการบีบอัดวีดีโอแบบ MPEG-4 Part 10
(แถมตอนนี้ยังพัฒนาต่ออีกนะ MPEG-4) ผมเองก็ไม่เข้าใจเหมือนกันว่าทำไมไม่เรียก MPEG5
ไปซะหมดเรื่องฮ่าฮ่า ส่วน AVC จริงๆ แล้ว ชื่อเต็มๆ ก็คือ MPEG-4 Advanced Video Coding
คือการเข้ารหัสแบบเทพนั่นเอง *-* ซึ่งการเข้ารหัสแบบ H.264 มี Software Encoding เข้ารหัส
หลายตัวมากแถมแต่ละตัวคุณสมบัติของภาพไม่เหมือนกันอีก..เช่น Nero Digital , x264 ,
QuickTime , MainConcept , Elecard , ProCoder3 , Avivo

2. VC-1 อันนี้
เป็นพัฒนาการของ WMV ครับ พัฒนาโดยไมโครซอฟท์ครับ เพราะฉะนั้นหากเราเอา
Windows Media Player 11 มาดู ก็จะดูได้สบายเลยครับ

3. x264 อันนี้ชื่อไปซ้ำกะ H.264 จริงๆ แล้วเป็นการเข้ารหัสในรูปแบบของ H.264 นั่นแหละครับ
เพียงแต่ว่า x264 คนใช้กันเยอะเพราะเป็น Free Software Endoding นั่นเอง..


4. MKV หรือ Matroska ไม่ต่างอะไรกับ AVI MP4 ASF ครับ เปรียบเสมือนตู้คอนเทนเนอร์ที่
สามารถเอาอะไรหลายๆ อย่างยัดไปได้ เช่น Subtitle เสียงหลายภาษาเป็นต้น ส่วนมาก
มักใช้คู่กับ x264 ครับ ถามว่าดีกว่า AVI ยังไงก็ตรงที่สามารถฝังซับไตเติ้ลเข้าไปได้โดยตรง
ซึ่ง AVI ทำไม่ได้ครับ จึงเป็นที่นิยมและแพร่หลายมากในปัจจุบัน...


DxVA Support MKV จริงหรือ?
MKV Support DxVA หรือไม่นั้น อันนี้ตอบยากครับเพราะ MKV เป็นแค่ตู้คอนเทนเนอร์ที่ทำหน้าที่
บรรจุเท่านั้น สิ่งสำคัญอยู่ที่ Format ด้านใน เพราะหากเป็น Format แบบ H.264 ที่มีเงื่อนไขสอด
คล้องกับการถอดรหัสของการ์ดจอก็จะทำให้ใช้ DxVA ได้ครับพูดง่ายๆ ก็คือขึ้นอยู่กับโปรแกรม
ที่เข้ารหัสมาครับว่า Support กับ DxVA หรือไม่ครับ...

ที่มา http://www.overclockzone.com/forums/showthread.php?t=306606