4.11. Debayering¶
Bingkai Bayer mentah hanya membawa satu saluran warna per piksel. Mengubahnya menjadi citra RGB tiga saluran yang normal berarti mengisi dua saluran yang hilang di setiap piksel dengan melakukan interpolasi dari piksel-piksel terdekat yang berwarna tepat. Interpolasi tersebut disebut debayering (juga dikenal sebagai demosaicing). Beberapa keluarga algoritma mendominasi bidang ini.
4.11.1. Super-pixel¶
Pendekatan paling murah adalah menggabungkan setiap tile Bayer 2x2 -- satu sel merah, satu sel biru, dan dua sel hijau -- menjadi satu piksel keluaran:
saluran merah adalah nilai sel merah;
saluran biru adalah nilai sel biru;
saluran hijau adalah rata-rata dari dua sel hijau.
Setiap tile masukan 2x2 menjadi satu piksel keluaran, sehingga citra yang dihasilkan memiliki lebar setengah dan tinggi setengah dari sensor, dengan seperempat jumlah piksel. Super-pixel cepat dan bebas dari artefak interpolasi, tetapi biaya resolusinya menjadikannya pilihan terakhir -- jarang digunakan.
4.11.2. Bilinear¶
Interpolasi bilinear merata-ratakan piksel-piksel terdekat yang berwarna tepat alih-alih menyalin atau merangkumnya. Rata-rata yang tepat bergantung pada warna yang direkam oleh piksel pusat, karena empat kasus tersebut mendistribusikan saluran yang hilang di sekitar lingkungan 3x3 secara berbeda.
Piksel hijau di baris merah-hijau. Nilai merah yang hilang adalah rata-rata dari dua tetangga merah di kiri dan kanan; biru yang hilang adalah rata-rata dari dua tetangga biru di atas dan bawah.
Warna merah yang hilang berasal dari tetangga merah horizontal; warna biru yang hilang dari tetangga biru vertikal.¶
Piksel hijau di baris hijau-biru. Bentuk yang sama dengan merah dan biru ditukar. Nilai merah yang hilang adalah rata-rata dari dua tetangga merah di atas dan bawah; biru yang hilang adalah rata-rata dari dua tetangga biru di kiri dan kanan.
Warna merah yang hilang berasal dari tetangga merah vertikal; warna biru yang hilang dari tetangga biru horizontal.¶
Piksel merah. Nilai hijau yang hilang adalah rata-rata dari empat tetangga hijau kardinal (atas, bawah, kiri, kanan). Warna biru yang hilang adalah rata-rata dari empat tetangga biru diagonal.
Warna hijau yang hilang berasal dari empat tetangga hijau kardinal; warna biru yang hilang dari empat tetangga biru diagonal.¶
Piksel biru. Cermin dari kasus merah. Warna hijau yang hilang adalah rata-rata dari empat tetangga hijau kardinal, dan warna merah yang hilang adalah rata-rata dari empat tetangga merah diagonal.
Warna hijau yang hilang berasal dari empat tetangga hijau kardinal; warna merah yang hilang dari empat tetangga merah diagonal.¶
Bilinear mempertahankan resolusi penuh sensor dan cukup halus untuk sebagian besar penggunaan, tetapi masih menunjukkan artefak di tepi. Transisi tajam antara dua warna melintasi grid piksel dalam orientasi tertentu, dan rata-rata di sepanjang tepi sedikit melembutkannya. Di mana tepi warna dan luminansi tidak sejajar persis, pinggiran berwarna samar muncul pada keluaran.
4.11.3. Melampaui bilinear¶
Ada berbagai algoritma debayer yang lebih baik. Beberapa menggunakan lingkungan yang lebih besar dari silang kecil tetangga warna yang sama milik bilinear dan menimbang sampel dengan koefisien yang dipilih lebih cermat; yang lain mendeteksi arah tepi lokal dan membiaskan interpolasi ke arah tersebut sehingga tepi yang melintasi grid piksel tetap tajam alih-alih melunak. Kedua pendekatan mengurangi pinggiran warna dan pelunakan tepi yang ditinggalkan bilinear, dengan biaya aritmetika lebih banyak per piksel dan lebih banyak silikon (atau lebih banyak komputasi di sisi MCU).
Kualitas debayer yang tersedia pada OpenMV Cam tertentu bersifat spesifik-platform -- bergantung pada apa yang disediakan oleh sensor dan MCU pada kamera tersebut.
4.11.4. Tempat debayering berjalan¶
Prosesor sinyal citra (ISP) -- pada chip sensor itu sendiri atau di sisi MCU -- melakukan debayering pada setiap bingkai sebelum meninggalkan pipeline pencitraan dalam sebagian besar kasus. Kode pengguna menerima citra RGB tiga saluran yang sudah selesai tanpa pernah menyentuh mosaik mentah.
ISP juga dapat diperintahkan untuk meneruskan bingkai Bayer mentah tanpa perubahan. Bayer mentah menggunakan lebih sedikit memori dibandingkan citra yang telah di-debayer -- satu byte per piksel versus tiga -- yang membuatnya berguna ketika penyimpanan bingkai menjadi hambatan, saat menangkap untuk pemrosesan luring, atau ketika proyek ingin menerapkan algoritma debayer khusus dalam perangkat lunak.