4.11. การดีเบเยอร์ริ่ง¶
เฟรม Bayer ดิบมีเพียงหนึ่งช่องสีต่อพิกเซล การแปลงให้เป็นภาพ RGB สามช่องปกติหมายถึงการเติมสองช่องที่หายไปในทุกพิกเซลโดยการแทรกค่าจากพิกเซลใกล้เคียงที่มีสีที่ถูกต้อง การแทรกค่านั้นเรียกว่า debayering (หรือที่เรียกว่า demosaicing) มีตระกูลอัลกอริทึมหลักอยู่ไม่กี่กลุ่ม
4.11.1. Super-pixel¶
วิธีที่ถูกที่สุดคือการยุบทุกบล็อก Bayer ขนาด 2x2 -- หนึ่งเซลล์แดง หนึ่งเซลล์น้ำเงิน และสองเซลล์เขียว -- ให้เป็นพิกเซลเอาต์พุตเดียว:
ช่องแดงคือค่าของเซลล์แดง
ช่องน้ำเงินคือค่าของเซลล์น้ำเงิน
ช่องเขียวคือค่าเฉลี่ยของเซลล์เขียวทั้งสอง
บล็อกอินพุตขนาด 2x2 แต่ละบล็อกจะกลายเป็นพิกเซลเอาต์พุตหนึ่งพิกเซล ดังนั้นภาพที่ได้จึงมีความกว้างครึ่งหนึ่งและความสูงครึ่งหนึ่งของเซนเซอร์ โดยมีจำนวนพิกเซลเป็นหนึ่งในสี่ Super-pixel นั้นรวดเร็วและปราศจากสิ่งผิดปกติจากการแทรกค่า แต่ค่าใช้จ่ายด้านความละเอียดทำให้เป็นทางเลือกสุดท้าย -- ไม่ค่อยได้ใช้
4.11.2. Bilinear¶
การแทรกค่าแบบ Bilinear จะเฉลี่ยพิกเซลที่ใกล้ที่สุดที่มีสีที่ถูกต้องแทนที่จะคัดลอกหรือสรุป การเฉลี่ยที่แน่นอนขึ้นอยู่กับว่าพิกเซลตรงกลางบันทึกสีอะไร เนื่องจากทั้งสี่กรณีกระจายช่องที่หายไปรอบๆ บริเวณ 3x3 ต่างกัน
พิกเซลเขียวในแถวแดง-เขียว ค่าแดงที่หายไปจะเฉลี่ยจากเพื่อนบ้านแดงสองตัวทางซ้ายและขวา ค่าน้ำเงินที่หายไปจะเฉลี่ยจากเพื่อนบ้านน้ำเงินสองตัวด้านบนและด้านล่าง
ค่าแดงที่หายไปมาจากเพื่อนบ้านแดงแนวนอน ค่าน้ำเงินที่หายไปมาจากเพื่อนบ้านน้ำเงินแนวตั้ง¶
พิกเซลเขียวในแถวเขียว-น้ำเงิน รูปแบบเดียวกันแต่สลับแดงและน้ำเงิน ค่าแดงที่หายไปจะเฉลี่ยจากเพื่อนบ้านแดงสองตัวด้านบนและด้านล่าง ค่าน้ำเงินที่หายไปจะเฉลี่ยจากเพื่อนบ้านน้ำเงินสองตัวทางซ้ายและขวา
ค่าแดงที่หายไปมาจากเพื่อนบ้านแดงแนวตั้ง ค่าน้ำเงินที่หายไปมาจากเพื่อนบ้านน้ำเงินแนวนอน¶
พิกเซลแดง ค่าเขียวที่หายไปจะเฉลี่ยจากเพื่อนบ้านเขียวสี่ตัวในทิศทางหลัก (บน ล่าง ซ้าย ขวา) ค่าน้ำเงินที่หายไปจะเฉลี่ยจากเพื่อนบ้านน้ำเงินสี่ตัวในแนวทแยงมุม
ค่าเขียวที่หายไปมาจากเพื่อนบ้านเขียวในทิศทางหลักทั้งสี่ ค่าน้ำเงินที่หายไปมาจากเพื่อนบ้านน้ำเงินในแนวทแยงทั้งสี่¶
พิกเซลน้ำเงิน กระจกของกรณีแดง ค่าเขียวที่หายไปจะเฉลี่ยจากเพื่อนบ้านเขียวสี่ตัวในทิศทางหลัก และค่าแดงที่หายไปจะเฉลี่ยจากเพื่อนบ้านแดงสี่ตัวในแนวทแยงมุม
ค่าเขียวที่หายไปมาจากเพื่อนบ้านเขียวในทิศทางหลักทั้งสี่ ค่าแดงที่หายไปมาจากเพื่อนบ้านแดงในแนวทแยงทั้งสี่¶
Bilinear รักษาความละเอียดเต็มของเซนเซอร์และนุ่มนวลเพียงพอสำหรับการใช้งานส่วนใหญ่ แต่ก็ยังแสดงสิ่งผิดปกติที่ขอบ การเปลี่ยนแปลงอย่างชัดเจนระหว่างสองสีข้ามกริดพิกเซลในทิศทางเฉพาะ และการเฉลี่ยข้ามขอบจะทำให้นุ่มลงเล็กน้อย เมื่อขอบสีและขอบความสว่างไม่ตรงกันพอดี จะปรากฏรอยสีจางๆ ในเอาต์พุต
4.11.3. เหนือกว่า Bilinear¶
มีอัลกอริทึมการดีเบเยอร์ที่ดีกว่าหลายตัว บางตัวใช้บริเวณที่ใหญ่กว่าไขว้เล็กของเพื่อนบ้านสีเดียวกันของ Bilinear และถ่วงน้ำหนักตัวอย่างด้วยสัมประสิทธิ์ที่เลือกอย่างระมัดระวังมากขึ้น อีกบางตัวตรวจจับทิศทางของขอบในพื้นที่และปรับเอียงการแทรกค่าตามทิศทางนั้นเพื่อให้ขอบที่วิ่งข้ามกริดพิกเซลยังคมแทนที่จะนุ่มลง แต่ละวิธีช่วยลดรอยสีและการนุ่มของขอบที่ Bilinear ทิ้งไว้ โดยแลกกับการคำนวณต่อพิกเซลมากขึ้นและซิลิคอนมากขึ้น (หรือการประมวลผลมากขึ้นบน MCU)
คุณภาพการดีเบเยอร์ที่มีใน OpenMV Cam แต่ละรุ่นนั้นขึ้นอยู่กับแพลตฟอร์ม -- ขึ้นอยู่กับสิ่งที่เซนเซอร์และ MCU บนกล้องนั้นรองรับ
4.11.4. ตำแหน่งที่ทำการดีเบเยอร์¶
ตัวประมวลผลสัญญาณภาพ (ISP) -- บนชิปเซนเซอร์เองหรือบน MCU -- จะทำการดีเบเยอร์แต่ละเฟรมก่อนที่จะออกจากไปป์ไลน์การสร้างภาพในกรณีส่วนใหญ่ โค้ดของผู้ใช้จะได้รับภาพ RGB สามช่องที่เสร็จสมบูรณ์โดยไม่ต้องสัมผัส raw mosaic เลย
ISP ยังสามารถสั่งให้ส่งเฟรม Bayer ดิบผ่านไปโดยไม่เปลี่ยนแปลง Bayer ดิบใช้หน่วยความจำน้อยกว่าภาพที่ดีเบเยอร์แล้ว -- หนึ่งไบต์ต่อพิกเซลเทียบกับสาม -- ซึ่งทำให้มีประโยชน์เมื่อการจัดเก็บเฟรมเป็นคอขวด เมื่อบันทึกเพื่อประมวลผลออฟไลน์ หรือเมื่อโปรเจกต์ต้องการใช้อัลกอริทึมการดีเบเยอร์แบบกำหนดเองในซอฟต์แวร์