 |
ทำภาพตัวอย่างจำลองการเกิด loss ในการส่งสัญญาณ digital ผ่านสาย hdmi มาให้ดูครับ{แตกประเด็นจาก X8765912}
|
|
บอกเล่าสำหรับผู้ที่ไม่รู้.. digital มีสถานะแค่ 2 แบบคือ 0 หรือ 1 ไม่มี 0.5 ไม่มี 1.7 มีแต่ 0 กับ 1 เท่านั้น (แค่ 0 กับ 1 มีหรือไม่มี เปิดหรือปิด จินตนาการถึงเหรียญบาท หัวหรือก้อย)
ค่าสถานะ 0 หรือ 1 ตัวเดียวเขาเรียกว่า bit โดย 1 bit มีค่าได้ 2 แบบคือ 0 หรือ 1 (พูดซ้ำซาก) หากมี bit 2 ตัว จะสามารถมีสถานะได้ 4 แบบคือ 00, 01, 10, 11 หากมี bit 3 ตัว จะสามารถมีสถานะได้ 8 แบบ 001, 010, 011, 100, 101, 110, 111 และหากเอา bit มาเรียงกัน 8 ตัวจะสามารถมีสถานะได้ 256 แบบ เริ่มตั้งแต่ 00000000 จนถึง 11111111 bit 8 ตัวรวมกัน เรียกว่าข้อมูล 1 byte (ตัวอักษร 0-9 A-Z a-z ก-ฮ มีไม่เกิน 1 byte สมัยก่อนจึงเรียกว่าข้อมูล 1 ตัวอักษร)
ภาพที่เราเห็นด้วยระบบ digital ประกอบขึ้นมาด้วย pixel ตามความละเอียดของจอ ยิ่งจอละเอียด pixel ยิ่งมาก ภาพก็ยิ่งดูเนียน ใน 1 pixel จะประกอบด้วยข้อมูล 3 byte โดยแต่ละ byte เก็บค่าความสว่างของแม่แสง 3 สี แดงเขียวน้ำเงิน โดย 3 byte = 24 bit สามารถมีสถานะข้อมูลสีได้ 16,777,216 สี (ตามนุษย์ไม่สามารถแยกสีได้ถึงขนาดนี้จึงไม่มีการพัฒนาขยายการเก็บข้อมูลสีมากกว่า 3 byte นอกจาก...)
ถามว่าการส่งสัญญาณ digital ผิดพลาดได้ไหม ได้ครับโดยหากสายส่งสัญญาณไม่ดี ก็จะเกิดความผิดพลาดเป็น bit ไป เช่นอ่านจะผิดจาก 0 เป็น 1 หรือ 1 เป็น 0 ซึ่ง bit ที่ผิดพลาด ไม่ได้ทำให้สีของ pixel จางลง แต่อาจเปลี่ยนสีของพ pixel นั่นไปเลย เช่น สีแดง เป็นสีฟ้า สีเขียว เป็นสีม่วง เช่นสีแดงสด 255,0,0 (111111110000000000000000) ถ้าเกิด bit ที่ 8 จากทางขวาเกิดผิดพลาดจาก 0 กลายเป็น 1 กลายเป็น 111111110000000010000000 ค่าของมันจะเปลี่ยนเป็น 255,0,128 = สีม่วงบานเย็นไปทันที
มันจะต่างจากระบบ analog ที่ไม่มีค่าที่แน่นอน อาศัยจากความแรงของสัญญาณ ซึ่งจะทำให้สี แดงสด กลายเป็นสีแดงเข้มลงได้ ยังมีหลายคนที่ยังติดอยู่กับภาพของ analog ทำให้คิดไปว่า ถ้าสายส่งสัญญาณไม่ดี ภาพก็เบลอ ถ้าสายแพง ภาพก็จะคมชัดสดใส แต่ในความเป็นจริง มันไม่ได้เป็นแบบนั้น ความแรงของสัญญาณ กับ สถานะ 0-1 มันไม่ใช่แบบเดียวกัน
ผมจึงทดลองทำโปรแกรมสุ่มเปลี่ยน bit ในภาพ เพื่อให้มองเห็นว่า หากสายสัญญาณไม่ดี bit ผิดเพี้ยน ภาพมันจะเป็นเช่นไร โดยโปรแกรมนี้จะคัดลอกภาพจากต้นฉบับไปสร้างภาพใหม่ขึ้น โดยทำการสุ่มเปลี่ยน bit หลายๆระดับ เริ่มตั้งแต่ 1 ใน 1,000,000 bit เรื่อยไป 10, 100, 1000 (หมายถึงทุก 1 การส่งสัญญาณผิดพลาด 1/ล้าน 10/ล้าน ไปเรื่อยๆ)
จากคุณ |
:
(-_-")
|
เขียนเมื่อ |
:
16 ม.ค. 53 14:38:47
|
|
|
|  |