4.12. ไปป์ไลน์ ISP

ตัวประมวลผลสัญญาณภาพ (ISP) คือไปป์ไลน์ฮาร์ดแวร์ที่แปลงค่าพิกเซลดิบจากเซนเซอร์ให้เป็นภาพสีที่เสร็จสมบูรณ์ การแก้ไขระดับพิกเซล บนเซนเซอร์ คือขั้นตอนแรกของไปป์ไลน์นั้น หลังจากขั้นตอนเหล่านั้นทำงาน ส่วนที่เหลือของไปป์ไลน์จะทำการประมวลผลสีและการจัดรูปแบบเอาต์พุตตามลำดับที่กำหนดในทุกเฟรม

A vertical pipeline diagram with eight labelled boxes, top to bottom: statistics extraction, auto white balance, debayering, colour matrix correction, gamma correction, image scaling, image cropping, and pixel packing. An arrow at the top is labelled "corrected Bayer pixels" and an arrow at the bottom is labelled "finished frame".

ขั้นตอนการประมวลผลสีและเอาต์พุตของ ISP ไปป์ไลน์จะทำงานแต่ละขั้นตอนกับทุกพิกเซลในเฟรมก่อนที่ขั้นตอนถัดไปจะเริ่ม

4.12.1. ขั้นตอนต่างๆ

แต่ละขั้นตอนจะใช้การแปลงที่กำหนดไว้ชัดเจนหนึ่งอย่างตามลำดับ ลำดับมีความสำคัญ -- ขั้นตอนหลังสมมติว่าขั้นตอนก่อนหน้าได้ทำงานแล้ว และบางขั้นตอนรับข้อมูลจากเอาต์พุตของเฟรม ก่อนหน้า ด้วย

  1. การดึงสถิติ วัดความสว่างเฉลี่ยต่อบริเวณและผลรวมต่อช่องจากเฟรม Bayer ที่แก้ไขแล้ว ตัวเลขเหล่านี้ป้อนเข้าลูปควบคุมการรับแสงอัตโนมัติ ค่าเกนอัตโนมัติ และการปรับสมดุลขาวอัตโนมัติ ซึ่งจะอัปเดตการตั้งค่าของเซนเซอร์สำหรับเฟรม ถัดไป

  2. ค่าเกนการปรับสมดุลขาวอัตโนมัติ จะปรับขนาดแต่ละพิกเซล Bayer ด้วยตัวคูณต่อสี -- พิกเซลแดงด้วยค่าเกน R พิกเซลเขียวด้วยค่าเกน G พิกเซลน้ำเงินด้วยค่าเกน B -- ดันค่าอ้างอิงสีขาวของฉากให้เป็นสีเทากลางๆ เพื่อให้สีที่บันทึกดูเหมือนที่ตามองเห็น ตัวคูณมาจากสถิติ AWB ของเฟรมก่อนหน้า

  3. การดีเบเยอร์ สร้างสองช่องสีที่หายไปใหม่ที่ทุกพิกเซลจาก Bayer mosaic โดยเปลี่ยนข้อมูลดิบหนึ่งช่องต่อพิกเซลให้เป็น RGB สามช่อง (ดู การดีเบเยอร์ริ่ง.) ทุกอย่างหลังจากขั้นตอนนี้จะทำงานบนพิกเซล RGB แทนที่จะเป็น Bayer mosaic

  4. การแก้ไขเมทริกซ์สี (CCM) ใช้การคูณเมทริกซ์ 3x3 กับแต่ละพิกเซล RGB ที่แมปการตอบสนอง red-green-blue ดั้งเดิมของเซนเซอร์ไปยังพื้นที่สีมาตรฐาน ตัวกรองของเซนเซอร์แต่ละตัวมีการตอบสนองเชิงสเปกตรัมของตัวเอง ซึ่งไม่ตรงกับสิ่งที่มาตรฐานใดๆ คาดหวัง เมทริกซ์คือการแปลงที่สอบเทียบต่อเซนเซอร์ที่เปลี่ยน "sensor RGB" เป็น "standard RGB"

  5. การแก้ไขแกมมา ใช้เส้นโค้งที่ไม่เป็นเชิงเส้นกับแต่ละช่องที่บีบสัญญาณเชิงเส้นของเซนเซอร์เป็นการเข้ารหัสที่ตรงกับการรับรู้ ดวงตาสังเกตความแตกต่างระหว่างโทนมืดมากกว่าความแตกต่างระหว่างโทนสว่าง ดังนั้นการเข้ารหัสที่ใช้งบบิตมากกว่าในส่วนมืดจะบันทึกรายละเอียดที่มองเห็นได้มากกว่าที่ความลึกบิตที่กำหนด

  6. การปรับขนาดภาพ จะปรับขนาดเฟรมจากความละเอียดดั้งเดิมของเซนเซอร์เป็นความละเอียดเอาต์พุตเป้าหมาย แอปพลิเคชันส่วนใหญ่ทำงานที่น้อยกว่าจำนวนพิกเซลเต็มของเซนเซอร์ และการย่อขนาดช่วยลดทั้งแบนด์วิดท์และแรงกดดันหน่วยความจำสำหรับทุกอย่างที่ตามมา

  7. การครอบภาพ ตัดสี่เหลี่ยมย่อยของเฟรมที่ปรับขนาดแล้วและทิ้งพิกเซลที่อยู่นอกนั้น ใช้เพื่อจับภาพบริเวณที่สนใจ (ROI) จับคู่อัตราส่วนภาพเฉพาะ หรือตัดขอบที่แอปพลิเคชันไม่ต้องการ

  8. การบรรจุพิกเซล แปลงการแสดงภายในต่อช่อง (โดยทั่วไป 10 หรือ 12 บิตต่อช่อง) เป็นรูปแบบเอาต์พุตที่เลือกและเขียนผลลัพธ์ลงใน RAM

4.12.2. การตอบรับของลูปควบคุม

ขั้นตอนที่ 1 และ 2 สร้างลูปควบคุมที่ครอบคลุมหลายเฟรม สถิติที่ดึงจากเฟรม N บอกเซนเซอร์ว่าฉากสว่างแค่ไหนและสมดุลสีอยู่ที่ไหนในเฟรมนั้น ตัวควบคุมการรับแสงอัตโนมัติ ค่าเกนอัตโนมัติ และการปรับสมดุลขาวอัตโนมัติ ใช้ตัวเลขเหล่านั้นเพื่อเลือกค่ารีจิสเตอร์การรับแสง ค่าเกน และสมดุลขาวใหม่สำหรับเฟรม N+1 ค่าใหม่จะมีผลในการอ่านเฟรมถัดไป สถิติของเฟรมใหม่จะกลับมา และลูปจะปิด

สำหรับฉากที่ไม่เปลี่ยนแปลง ลูปจะลู่เข้าภายในไม่กี่เฟรมและอยู่ที่การตั้งค่าคงที่ สำหรับฉากที่ความสว่างหรือโทนสีเปลี่ยนแปลง -- เช่น กล้องหันจากในร่มไปยังหน้าต่างที่มีแสงแดด -- ลูปจะติดตามการเปลี่ยนแปลงในหลายเฟรม และผู้ใช้จะเห็นความสว่างหรือสีเปลี่ยนไปชั่วขณะก่อนถึงสถานะคงที่ใหม่

4.12.3. ตำแหน่งที่ ISP ทำงาน

มีการจัดเรียงทั่วไปสองแบบ

  • ISP บนเซนเซอร์ ทำงานไปป์ไลน์ทั้งหมดภายในชิปเซนเซอร์และส่งออกภาพ RGB ที่เสร็จสมบูรณ์ MCU เพียงแค่เก็บผลลัพธ์

  • ISP นอกเซนเซอร์ อยู่ใน MCU หรือ SoC ของโฮสต์ เซนเซอร์ส่งออก Bayer ดิบ และซิลิคอน (หรือโค้ดไดรเวอร์) ของ MCU จะทำงานไปป์ไลน์ก่อนส่งเฟรมที่เสร็จสมบูรณ์ให้กับโค้ดผู้ใช้

การแบ่งนี้ส่งผลต่อรูปแบบเอาต์พุตที่เซนเซอร์สามารถส่งให้ผู้ใช้โดยตรง เซนเซอร์ที่มี ISP บนชิปครบถ้วนช่วยให้ผู้ใช้เลือกจากรูปแบบที่เสร็จสมบูรณ์ใดๆ ที่ชิปรองรับ เซนเซอร์ที่ไม่มีจะส่งออก Bayer เท่านั้น และการแปลงรูปแบบจะเกิดขึ้นในซิลิคอนหรือซอฟต์แวร์ของ MCU