สัญญาณวีดีทัศน์

จาก ChulaPedia

การปรับปรุง เมื่อ 09:19, 22 มีนาคม 2554 โดย Pphruet (พูดคุย | เรื่องที่เขียน)
(ต่าง) ←รุ่นก่อนหน้า | รุ่นปัจจุบัน (ต่าง) | รุ่นถัดไป→ (ต่าง)
ข้ามไปที่: นำทาง, สืบค้น

เนื้อหา

การเปลี่ยน Frame rate ของสัญญาณวีดีทัศน์

มาตรฐานของสัญญาณวีดีทัศน์ในปัจจุบันมีหลายแบบทั้งที่เป็นแบบ analog และแบบ digital การเปลี่ยนสัญญาณวีดีทัศน์จากมาตรฐานหนึ่งไปอีกมาตรฐานหนึ่งจะมีการเปลี่ยนแปลงทั้งขนาดภาพ สัดส่วนภาพ (aspect ratio) frame rate และการเข้ารหัส ทั้งนี้ขนาด สัดส่วนของภาพและการเข้ารหัสสามารถเปลี่ยนแปลงได้ง่าย โดยใช้การ interpolation เพื่อเปลี่ยนขนาด การแทนบริเวณที่ไม่มีข้อมูลด้วยสีดำเพื่อเปลี่ยนสัดส่วน และเทคนิคการออกแบบวงจรและการโปรแกรมมิ่งเพื่อเปลี่ยนวิธีเข้ารหัส การเปลี่ยน frame rate ทำได้ยากเนื่องจากต้องมีการสร้างเฟรมใหม่ขึ้นมา


เทคนิคการสร้างเฟรมใหม่แบบง่ายที่สุดคือใช้การ copy เฟรมที่อยู่ใกล้เคียง เทคนิคนี้มีสมมติฐานคือเฟรมที่อยู่ใกล้กัน (ตามแกนเวลา) มีการเปลี่ยนแปลงระหว่างเฟรมต่ำและช่วงเวลาที่แสดงแต่ละเฟรมสั้นมาก ส่งผลให้มนุษย์ไม่สามารถแยกความแตกต่างของแต่ละเฟรมได้อย่างมีประสิทธิภาพ ทว่าเมื่อนำมาใช้งานจริง พบว่าสัญญาณวีดีทัศน์ที่ได้มีลักษณะกระตุก (jitter) เนื่องจากเราสามารถประมาณการเคลื่อนที่ระหว่างเฟรมได้ จึงมีแนวคิดที่จะสร้างเฟรมใหม่โดยอาศัยการ Interpolate การเคลื่อนที่จากเฟรมที่มีอยู่จริงไปสู่เฟรมที่ต้องการสร้างใหม่ ยกตัวอย่างเช่นหากต้องการสร้างเฟรมที่ 1.5 เริ่มต้นจะประมาณการเคลื่อนที่ระหว่างเฟรมที่ 1 และ 2 และ interpolate การเคลื่อนที่นี้เพื่อประมาณเป็นการเคลื่อนที่ระหว่างเฟรมที่ 1 ไปเฟรมที่ 1.5 ท้ายสุด ย้ายเฟรมที่ 1 ไปตามการเคลื่อนที่ที่ interpolate ขึ้นมาเพื่อสร้างเฟรมที่ 1.5


ไฟล์:ผลการอธิบายการเคลื่อนที่โดยอาศัยโมเดลการเคลื่อนที่แบบต่าง ๆ.jpg ไฟล์:การสร้างเฟรมใหม่ด้วยโมเดลแบบต่างๆ0002.jpg ไฟล์:ผลการอธิบายการเคลื่อนที่โดยอาศัยโมเดลการเคลื่อนที่แบบต่าง ๆ 2.jpg


โมเดลที่ใช้แสดงการเคลื่อนที่

1. โมเดล translation ใช้แสดงการเคลื่อนที่ในแนวเส้นตรง

2. โมเดล 2D rigid body ใช้แสดงการเคลื่อนที่ในแนวเส้นตรง การหมุนและการเปลี่ยนขนาด

3. โมเดล affine ใช้แสดงการเคลื่อนที่ในแนวเส้นตรง การหมุน การเปลี่ยนขนาด และการเฉือน (shearing)



โมเดล translation เป็นโมเดลที่นิยมใช้ทั่วไปเนื่องจากง่ายทั้งในแง่การหาพารามิเตอร์และการ Interpolate การใช้โมเดลนี้อยู่ภายใต้สมมติฐานที่การเคลื่อนที่ระหว่างเฟรมมีขนาดเล็กมาก1 และเราสามารถประมาณการเคลื่อนที่เล็กๆ เหล่านี้ด้วยเส้นตรงได้ รูปที่ 1(2) แสดงการนำโมเดล translation มาอธิบายการเคลื่อนที่ระหว่างเฟรม


การเคลื่อนที่ในสัญญาณวีดีทัศน์เกิดจาก

1. การเคลื่อนที่ของวัตถุ

2. การซูมกล้อง (การเปลี่ยนขนาด)

3. การแพนกล้อง (การหมุน การเคลื่อนที่เป็นเส้นตรง)


หากการอธิบายมีประสิทธิภาพจะได้รูปที่ 1(2) มีลักษณะเหมือนกับรูปต้นฉบับ (รูปที่ 1(1)) จากรูปแสดงให้เห็นว่ารูปที่ 1(1) ผิดเพี้ยนในหลายบริเวณโดยเฉพาะอย่างยิ่งบริเวณตัวอักษรบนปฎิทิน จึงสามารถสรุปได้ว่าโมเดล translation ไม่สามารถอธิบายการเคลื่อนที่ของสัญญาณวีดีทัศน์ได้อย่างมีประสิทธิภาพ เราสามารถประมาณเฟรมในสัญญาณวีดีทัศน์เป็นภาพที่ได้จากกล้องรูเข็ม ซึ่งมีโมเดลอธิบายเป็นโมเดลไม่เป็นเชิงเส้นแบบ projective หากเราพิจารณาให้กล้องรูเข็มตั้งอยู่ที่ตำแหน่งไกลมาก เราสามารถใช้โมเดล affine อธิบายภาพที่เกิดขึ้นได้ รูปที่ 1(3) แสดงการนำโมเดล affine มาอธิบายการเคลื่อนที่แบบเดียวกับรูปที่ 1(2) พบว่าผลที่ได้ผิดเพี้ยนจากรูปที่ 1(1) น้อยกว่ามากแสดงให้เห็นว่าโมเดล affine สามารถอธิบายการเคลื่อนที่ได้อย่างมีประสิทธิภาพ


ปัญหาของการนำโมเดล affine มาสร้างเฟรมใหม่

การ interpolate พารามิเตอร์ในโมเดล affine เป็นการหารากของเมตริกซ์ขนาด 3x3 แทนการใช้วิธี interpolation ทั่วไป (เช่น linear interpolation, cubic interpolation, …) ไม่สามารถเฉลี่ยค่าพารามิเตอร์ในบริเวณใกล้เคียงเพื่อทำให้ผลการประมาณถูกต้องมากขึ้น ฯลฯ 1มนุษย์จะมองเฟรมของสัญญาณวีดีทัศน์เป็นภาพเคลื่อนไหวต่อเนื่อง เมื่อ Frame rate มีค่าไม่น้อยกว่า 24 เฟรมต่อวินาที เพื่อให้การ interpolate พารามิเตอร์ affine มีความรวดเร็ว เราได้ประมาณโมเดล affine ด้วยโมเดล 2D rigid body ที่มีมุมหมุนเทียบกับแกน x และแกน y ไม่เท่ากันดังในรูปที่ 2 รูปที่ 2(1) แสดงรูปสี่เหลี่ยมมุมฉากต้นฉบับ และรูปที่ 2(2) แสดงผลการหมุนสี่เหลี่ยมนี้ด้วยมุม 0.01 rad และ 0.07 rad เทียบกับแกน x และ แกน y ตามลำดับ พบว่ารูปที่ 2(2) มีลักษณะคล้ายกับการเปลี่ยนแปลงด้วยโมเดล affine คือคงความขนานของเส้นตรงแต่ไม่คงมุมระหว่างเส้นไว้

ไฟล์:การประมาณโมเดล affine ด้วยโมเดล 2D rigid body ที่มีมุมหมุนในแกน x และ y ไม่เท่ากัน.jpg

การประมาณโมเดล affine ด้วยโมเดล 2D rigid body ที่มีมุมหมุนในแกน x และ y ไม่เท่ากัน


ในการ interpolate เราจะพิจารณาเพิ่มเติมให้ไม่มีการเปลี่ยนแปลงขนาดระหว่างเฟรม การ interpolate พารามิเตอร์ affine จะถูกประมาณด้วยการ interpolate ระยะการเคลื่อนที่ และมุมหมุนในแกน x และ y ซึ่งวิธี interpolate ทั่วไปสามารถนำมาใช้ในขั้นตอนนี้ได้


ส่วนต่อไปที่ต้องนำมาพิจารณาคือความผิดพลาดที่เกิดจากการประมาณจะส่งผลให้การประมาณการเคลื่อนที่จากเฟรมที่ n ไปเฟรมที่ n+1 ไม่สอดคล้องกับการประมาณการเคลื่อนที่จากเฟรมที่ n+1 ไปเฟรมที่ n และเฟรมที่สร้างจากการเคลื่อนเฟรมที่ n ไปเฟรมที่ n+x (0)


ไฟล์:การสร้างเฟรมใหม่ด้วยโมเดลแบบต่างๆ.jpg ไฟล์:การสร้างเฟรมใหม่ด้วยโมเดลแบบต่างๆ 2.jpg


รูปที่ 3 แสดงตัวอย่างการสร้างเฟรมโดยอาศัยโมเดล translation(รูปที่ 3(1)) และโมเดล affine(รูปที่ 3(2)) บริเวณสีฟ้าในภาพแสดงพิกเซลที่ไม่มีข้อมูลความเข้มแสง พบว่าตัวอักษรบนปฏิทินในรูปที่ 3(1) ผิดเพี้ยนมากกว่ารูปที่ 3(2) และ บริเวณที่ไม่มีข้อมูลในรูปที่ 3(1) มีขนาดใหญ่และเด่นชัดกว่าในรูปที่ 3(2) รูปที่ 3 แสดงให้เห็นว่าโมเดล affine มีประสิทธิภาพในการสร้างเฟรมใหม่มากกว่าโมเดล translation เพื่อให้การสร้างเฟรมใหม่ด้วยโมเดล affine มีประสิทธิภาพ ในปัจจุบันจึงกำลังศึกษาหาวิธีลดผลของความผิดพลาดในการประมาณการเคลื่อนที่ และรวมไปถึงวิธีสร้างเฟรมใหม่ที่มีข้อมูลครบทุกพิกเซล


อาจารย์ผู้ดูแลบทความ อ. ดร.สุพัฒนา เอื้อทวีเกียรติ อาจารย์ประจำภาควิชาวิศวกรรมไฟฟ้า

ผู้รับผิดชอบบทความ ศูนย์การสื่อสารนานาชาติแห่งจุฬาฯ

เครื่องมือส่วนตัว