4.11. Debayering¶
Khung hình Bayer thô chỉ mang một kênh màu sắc cho mỗi điểm ảnh. Để chuyển đổi thành ảnh RGB ba kênh thông thường, cần lấp đầy hai kênh còn thiếu tại mỗi điểm ảnh bằng cách nội suy từ các điểm ảnh lân cận có màu sắc phù hợp. Quá trình nội suy đó được gọi là debayering (còn gọi là demosaicing). Một số nhóm thuật toán chủ yếu thường được sử dụng.
4.11.1. Super-pixel¶
Phương pháp đơn giản nhất là gộp mỗi ô Bayer 2x2 -- gồm một ô đỏ, một ô xanh lam, và hai ô xanh lá -- thành một điểm ảnh đầu ra duy nhất:
kênh đỏ là giá trị của ô đỏ;
kênh xanh lam là giá trị của ô xanh lam;
kênh xanh lá là trung bình của hai ô xanh lá.
Mỗi ô đầu vào 2x2 trở thành một điểm ảnh đầu ra, nên ảnh hoàn chỉnh có chiều rộng và chiều cao bằng một nửa cảm biến, với một phần tư số điểm ảnh. Super-pixel nhanh và không có hiện tượng méo ảnh từ nội suy, nhưng chi phí về độ phân giải khiến nó thường là phương án cuối cùng -- hiếm khi được dùng.
4.11.2. Bilinear¶
Nội suy bilinear lấy trung bình các điểm ảnh gần nhất có màu phù hợp thay vì sao chép hay tổng hợp. Cách tính trung bình phụ thuộc vào màu sắc mà điểm ảnh trung tâm ghi nhận, vì bốn trường hợp phân bố các kênh còn thiếu xung quanh vùng lân cận 3x3 theo cách khác nhau.
Điểm ảnh xanh lá trong hàng đỏ-xanh lá. Giá trị đỏ còn thiếu lấy trung bình của hai điểm ảnh đỏ ở trái và phải; giá trị xanh lam còn thiếu lấy trung bình của hai điểm ảnh xanh lam ở trên và dưới.
Màu đỏ còn thiếu lấy từ các điểm ảnh đỏ nằm ngang; màu xanh lam còn thiếu lấy từ các điểm ảnh xanh lam dọc.¶
Điểm ảnh xanh lá trong hàng xanh lá-xanh lam. Cùng cấu trúc nhưng đỏ và xanh lam hoán đổi cho nhau. Giá trị đỏ còn thiếu lấy trung bình của hai điểm ảnh đỏ ở trên và dưới; giá trị xanh lam còn thiếu lấy trung bình của hai điểm ảnh xanh lam ở trái và phải.
Màu đỏ còn thiếu lấy từ các điểm ảnh đỏ dọc; màu xanh lam còn thiếu lấy từ các điểm ảnh xanh lam nằm ngang.¶
Điểm ảnh đỏ. Giá trị xanh lá còn thiếu lấy trung bình của bốn điểm ảnh xanh lá theo các hướng chính (trên, dưới, trái, phải). Giá trị xanh lam còn thiếu lấy trung bình của bốn điểm ảnh xanh lam theo đường chéo.
Màu xanh lá còn thiếu lấy từ bốn điểm ảnh xanh lá theo hướng chính; màu xanh lam còn thiếu lấy từ bốn điểm ảnh xanh lam theo đường chéo.¶
Điểm ảnh xanh lam. Đối xứng với trường hợp đỏ. Giá trị xanh lá còn thiếu lấy trung bình của bốn điểm ảnh xanh lá theo hướng chính, và giá trị đỏ còn thiếu lấy trung bình của bốn điểm ảnh đỏ theo đường chéo.
Màu xanh lá còn thiếu lấy từ bốn điểm ảnh xanh lá theo hướng chính; màu đỏ còn thiếu lấy từ bốn điểm ảnh đỏ theo đường chéo.¶
Bilinear giữ được độ phân giải đầy đủ của cảm biến và đủ mịn cho hầu hết các ứng dụng, nhưng vẫn xuất hiện hiện tượng méo ảnh tại các cạnh. Sự chuyển tiếp sắc nét giữa hai màu sắc đi qua lưới điểm ảnh theo một hướng nhất định, và việc lấy trung bình qua cạnh sẽ làm mờ nó đi một chút. Khi cạnh màu sắc và cạnh độ sáng không hoàn toàn khớp nhau, các viền màu mờ sẽ xuất hiện trong ảnh đầu ra.
4.11.3. Vượt ra ngoài bilinear¶
Có nhiều thuật toán debayer tốt hơn. Một số sử dụng vùng lân cận rộng hơn so với ô chữ thập nhỏ của các điểm ảnh cùng màu trong bilinear và cân nhắc các mẫu với hệ số được chọn cẩn thận hơn; các thuật toán khác phát hiện hướng của cạnh cục bộ và làm lệch hướng nội suy theo hướng đó để cạnh đi ngang qua lưới điểm ảnh vẫn sắc nét thay vì bị làm mờ. Cả hai cách tiếp cận đều giảm viền màu và hiện tượng làm mờ cạnh mà bilinear để lại, nhưng với chi phí là nhiều phép tính hơn mỗi điểm ảnh và nhiều silicon hơn (hoặc nhiều tính toán hơn ở phía MCU).
Chất lượng debayering có sẵn trên bất kỳ OpenMV Cam nào là tùy theo nền tảng -- nó phụ thuộc vào những gì cảm biến và MCU trên camera đó cung cấp.
4.11.4. Nơi thực hiện debayering¶
Bộ xử lý tín hiệu ảnh (ISP) -- trên chip cảm biến hoặc ở phía MCU -- thực hiện debayering mỗi khung hình trước khi nó rời khỏi pipeline xử lý ảnh trong hầu hết các trường hợp. Mã người dùng nhận được ảnh RGB ba kênh hoàn chỉnh mà không cần xử lý mosaicing thô.
ISP cũng có thể được yêu cầu truyền khung hình Bayer thô qua mà không thay đổi. Bayer thô chiếm ít bộ nhớ hơn ảnh đã được debayer -- một byte mỗi điểm ảnh so với ba -- điều này hữu ích khi bộ lưu trữ khung hình là nút cổ chai, khi chụp để xử lý ngoại tuyến, hoặc khi dự án muốn áp dụng thuật toán debayer tùy chỉnh trong phần mềm.