4.12. ไปป์ไลน์ ISP¶
ตัวประมวลผลสัญญาณภาพ (ISP) คือไปป์ไลน์ฮาร์ดแวร์ที่แปลงค่าพิกเซลดิบจากเซนเซอร์ให้เป็นภาพสีที่เสร็จสมบูรณ์ การแก้ไขระดับพิกเซล บนเซนเซอร์ คือขั้นตอนแรกของไปป์ไลน์นั้น หลังจากขั้นตอนเหล่านั้นทำงาน ส่วนที่เหลือของไปป์ไลน์จะทำการประมวลผลสีและการจัดรูปแบบเอาต์พุตตามลำดับที่กำหนดในทุกเฟรม
ขั้นตอนการประมวลผลสีและเอาต์พุตของ ISP ไปป์ไลน์จะทำงานแต่ละขั้นตอนกับทุกพิกเซลในเฟรมก่อนที่ขั้นตอนถัดไปจะเริ่ม¶
4.12.1. ขั้นตอนต่างๆ¶
แต่ละขั้นตอนจะใช้การแปลงที่กำหนดไว้ชัดเจนหนึ่งอย่างตามลำดับ ลำดับมีความสำคัญ -- ขั้นตอนหลังสมมติว่าขั้นตอนก่อนหน้าได้ทำงานแล้ว และบางขั้นตอนรับข้อมูลจากเอาต์พุตของเฟรม ก่อนหน้า ด้วย
การดึงสถิติ วัดความสว่างเฉลี่ยต่อบริเวณและผลรวมต่อช่องจากเฟรม Bayer ที่แก้ไขแล้ว ตัวเลขเหล่านี้ป้อนเข้าลูปควบคุมการรับแสงอัตโนมัติ ค่าเกนอัตโนมัติ และการปรับสมดุลขาวอัตโนมัติ ซึ่งจะอัปเดตการตั้งค่าของเซนเซอร์สำหรับเฟรม ถัดไป
ค่าเกนการปรับสมดุลขาวอัตโนมัติ จะปรับขนาดแต่ละพิกเซล Bayer ด้วยตัวคูณต่อสี -- พิกเซลแดงด้วยค่าเกน R พิกเซลเขียวด้วยค่าเกน G พิกเซลน้ำเงินด้วยค่าเกน B -- ดันค่าอ้างอิงสีขาวของฉากให้เป็นสีเทากลางๆ เพื่อให้สีที่บันทึกดูเหมือนที่ตามองเห็น ตัวคูณมาจากสถิติ AWB ของเฟรมก่อนหน้า
การดีเบเยอร์ สร้างสองช่องสีที่หายไปใหม่ที่ทุกพิกเซลจาก Bayer mosaic โดยเปลี่ยนข้อมูลดิบหนึ่งช่องต่อพิกเซลให้เป็น RGB สามช่อง (ดู การดีเบเยอร์ริ่ง.) ทุกอย่างหลังจากขั้นตอนนี้จะทำงานบนพิกเซล RGB แทนที่จะเป็น Bayer mosaic
การแก้ไขเมทริกซ์สี (CCM) ใช้การคูณเมทริกซ์ 3x3 กับแต่ละพิกเซล RGB ที่แมปการตอบสนอง red-green-blue ดั้งเดิมของเซนเซอร์ไปยังพื้นที่สีมาตรฐาน ตัวกรองของเซนเซอร์แต่ละตัวมีการตอบสนองเชิงสเปกตรัมของตัวเอง ซึ่งไม่ตรงกับสิ่งที่มาตรฐานใดๆ คาดหวัง เมทริกซ์คือการแปลงที่สอบเทียบต่อเซนเซอร์ที่เปลี่ยน "sensor RGB" เป็น "standard RGB"
การแก้ไขแกมมา ใช้เส้นโค้งที่ไม่เป็นเชิงเส้นกับแต่ละช่องที่บีบสัญญาณเชิงเส้นของเซนเซอร์เป็นการเข้ารหัสที่ตรงกับการรับรู้ ดวงตาสังเกตความแตกต่างระหว่างโทนมืดมากกว่าความแตกต่างระหว่างโทนสว่าง ดังนั้นการเข้ารหัสที่ใช้งบบิตมากกว่าในส่วนมืดจะบันทึกรายละเอียดที่มองเห็นได้มากกว่าที่ความลึกบิตที่กำหนด
การปรับขนาดภาพ จะปรับขนาดเฟรมจากความละเอียดดั้งเดิมของเซนเซอร์เป็นความละเอียดเอาต์พุตเป้าหมาย แอปพลิเคชันส่วนใหญ่ทำงานที่น้อยกว่าจำนวนพิกเซลเต็มของเซนเซอร์ และการย่อขนาดช่วยลดทั้งแบนด์วิดท์และแรงกดดันหน่วยความจำสำหรับทุกอย่างที่ตามมา
การครอบภาพ ตัดสี่เหลี่ยมย่อยของเฟรมที่ปรับขนาดแล้วและทิ้งพิกเซลที่อยู่นอกนั้น ใช้เพื่อจับภาพบริเวณที่สนใจ (ROI) จับคู่อัตราส่วนภาพเฉพาะ หรือตัดขอบที่แอปพลิเคชันไม่ต้องการ
การบรรจุพิกเซล แปลงการแสดงภายในต่อช่อง (โดยทั่วไป 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