4.12. Pipeline ISP

Bộ xử lý tín hiệu ảnh (ISP) là pipeline phần cứng chuyển đổi các giá trị điểm ảnh thô từ cảm biến thành ảnh màu hoàn chỉnh. Các hiệu chỉnh ở cấp điểm ảnh trên cảm biến là các giai đoạn đầu tiên của pipeline đó. Sau khi chạy xong, phần còn lại của pipeline thực hiện xử lý màu sắc và định dạng đầu ra theo thứ tự cố định trên mỗi khung hình.

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".

Các giai đoạn xử lý màu sắc và đầu ra của ISP. Pipeline chạy từng giai đoạn qua mỗi điểm ảnh trong khung hình trước khi giai đoạn tiếp theo bắt đầu.

4.12.1. Các giai đoạn

Mỗi giai đoạn áp dụng một phép biến đổi được định nghĩa rõ ràng theo thứ tự. Thứ tự rất quan trọng -- các giai đoạn sau giả định rằng các giai đoạn trước đã chạy xong, và một vài giai đoạn cũng lấy dữ liệu đầu vào từ đầu ra của khung hình trước đó.

  1. Trích xuất thống kê đo độ sáng trung bình theo vùng và tổng theo kênh từ khung hình Bayer đã hiệu chỉnh. Các con số này cung cấp cho các vòng điều khiển phơi sáng tự động, độ khuếch đại tự động, và cân bằng trắng tự động, sau đó cập nhật các cài đặt của cảm biến cho khung hình tiếp theo.

  2. Độ khuếch đại cân bằng trắng tự động chia tỷ lệ mỗi điểm ảnh Bayer theo hệ số nhân theo từng màu -- điểm ảnh đỏ theo hệ số khuếch đại R, điểm ảnh xanh lá theo hệ số G, điểm ảnh xanh lam theo hệ số B -- đẩy tham chiếu trắng của cảnh về phía xám trung tính để các màu được ghi lại trông giống như mắt người nhìn thấy. Các hệ số nhân lấy từ thống kê AWB của khung hình trước.

  3. Debayering tái tạo hai kênh màu còn thiếu tại mỗi điểm ảnh từ mosaicing Bayer, chuyển đổi dữ liệu thô một kênh mỗi điểm ảnh thành RGB ba kênh. (Xem Debayering.) Tất cả các giai đoạn sau đây đều chạy trên điểm ảnh RGB thay vì trên mosaicing Bayer.

  4. Hiệu chỉnh ma trận màu (CCM) áp dụng phép nhân ma trận 3x3 cho mỗi điểm ảnh RGB để ánh xạ phản ứng đỏ-xanh lá-xanh lam gốc của cảm biến vào không gian màu chuẩn. Bộ lọc của mỗi cảm biến có phản ứng quang phổ riêng, không khớp chính xác với bất kỳ chuẩn nào; ma trận là một phép biến đổi được hiệu chỉnh theo từng cảm biến, chuyển đổi "RGB cảm biến" thành "RGB chuẩn".

  5. Hiệu chỉnh gamma áp dụng một đường cong phi tuyến cho mỗi kênh, nén tín hiệu tuyến tính của cảm biến thành mã hóa phù hợp với nhận thức của mắt người. Mắt người nhận thấy sự khác biệt giữa các tông màu tối nhiều hơn giữa các tông màu sáng, nên mã hóa dành nhiều ngân sách bit hơn cho phần tối sẽ ghi lại nhiều chi tiết có thể nhìn thấy hơn ở cùng độ sâu bit.

  6. Chia tỷ lệ ảnh thay đổi kích thước khung hình từ độ phân giải gốc của cảm biến về độ phân giải đầu ra mục tiêu. Hầu hết các ứng dụng chạy ở độ phân giải thấp hơn số điểm ảnh đầy đủ của cảm biến, và việc giảm tỷ lệ làm giảm cả băng thông lẫn áp lực bộ nhớ cho mọi thứ theo sau.

  7. Cắt ảnh trích xuất một hình chữ nhật con từ khung hình đã chia tỷ lệ và loại bỏ các điểm ảnh nằm ngoài đó. Được dùng để chụp vùng quan tâm (ROI), khớp tỷ lệ khung hình cụ thể, hoặc bỏ đi một viền mà ứng dụng không cần.

  8. Đóng gói điểm ảnh chuyển đổi biểu diễn nội bộ theo từng kênh (thường là 10 hoặc 12 bit mỗi kênh) sang định dạng đầu ra đã chọn và ghi kết quả vào RAM.

4.12.2. Phản hồi vòng điều khiển

Giai đoạn 1 và 2 tạo thành một vòng điều khiển trải dài qua nhiều khung hình. Thống kê trích xuất từ khung hình N cho cảm biến biết độ sáng của cảnh và cân bằng màu của khung hình đó; các bộ điều khiển phơi sáng tự động, độ khuếch đại tự động, và cân bằng trắng tự động sử dụng các con số đó để chọn các giá trị thanh ghi phơi sáng, độ khuếch đại, và cân bằng trắng mới cho khung hình N+1. Các giá trị mới có hiệu lực khi đọc ra khung hình tiếp theo, thống kê của khung hình mới quay lại, và vòng lặp khép kín.

Đối với cảnh không thay đổi, vòng lặp hội tụ trong vài khung hình và giữ ở cài đặt không đổi. Đối với cảnh có độ sáng hoặc màu sắc thay đổi -- ví dụ như camera quét từ trong nhà ra cửa sổ có ánh nắng -- vòng lặp theo dõi sự thay đổi qua nhiều khung hình, và người dùng thấy độ sáng hoặc màu sắc thay đổi ngắn trên đường đến trạng thái ổn định mới.

4.12.3. Nơi ISP chạy

Có hai cách sắp xếp phổ biến.

  • Một ISP trên cảm biến chạy toàn bộ pipeline bên trong chip cảm biến và xuất ra ảnh RGB hoàn chỉnh. MCU chỉ thu thập kết quả.

  • Một ISP ngoài cảm biến nằm trong MCU hoặc SoC chủ. Cảm biến xuất ra Bayer thô; silicon của MCU (hoặc mã driver của nó) chạy pipeline trước khi chuyển khung hình hoàn chỉnh cho mã người dùng.

Sự phân chia này ảnh hưởng đến các định dạng đầu ra mà cảm biến có thể cung cấp trực tiếp cho người dùng. Cảm biến có ISP đầy đủ trên chip cho phép người dùng chọn từ bất kỳ định dạng hoàn chỉnh nào mà chip hỗ trợ. Cảm biến không có ISP chỉ xuất ra Bayer, và việc chuyển đổi định dạng xảy ra trong silicon hoặc phần mềm MCU.