Debayer
Debayer 算法译成中文为解 Bayer 格式。
Bayer 格式指的是大多数彩色图像传感器在每个像素点位置只感应 RGB 三通道中一个通道的颜色,用于节约制造成本。而且由于人眼对绿色较为敏感,50% 的像素点感应 G,25% 的像素点感应 R,25% 的像素点感应 B。
不同型号的图像传感器像素点的 RGB 分布不同,比较典型的分布如下图所示:
由于每个像素点只有 1 个颜色通道的数值,对于其不包含的 2 个颜色通道的数据,由其周边 3 × 3 3\times 3 3×3(G通道使用 5 × 5 5\times 5 5×5)范围内对应颜色通道的均值表示。
在 sysgen 实现时,需要根据当前像素点的行列坐标的奇偶选择对应颜色通道的计算方法。
图像数据首先进入 5 × 5 5\times 5 5×5二维缓冲模块,取出用于计算的全部缓冲数据,及缓冲后的像素点坐标 buf_x 和 buf_y:
用 Slice 模块截取缓冲后像素点坐标的最低位 LSB ,用于判断坐标值的奇偶:
Slice 模块配置如下:
行列坐标的 LSB 用 Concat 模块合并为 2 比特,送入 Mux 模块根据行列坐标奇偶状态在 4 个计算通道中选择:
R 通道计算
位置示意图中心点为当前用于计算的像素点, 5 × 5 5\times 5 5×5 二维缓冲输出并行像素点中,pix22 为当前像素点,对应位置示意图中心点。
将以下 4 种情况的计算结果对齐时序后送入前述的行列奇偶判断 Mux 中进行输出选择。
偶行偶列:周边只有 pix21 和 pix23 为 R 通道,由此 2 值的均值作为当前像素点的R值。
偶行奇列:当前像素点即为 R 通道,直接取用 pix22 的数值。
奇行偶列:周边有 pix11、pix13、pix31、pix33 为 R 通道,由此 4 值的均值作为当前像素点的 R 值。
奇行奇列:周边有 pix12 和 pix32 为 R 通道,由此 2 值的均值作为当前像素点的 R 值。
B 通道计算
送入 Mux 的 4 路计算结果,根据 B 通道的位置进行排序,共用 R 通道部分的计算结果:
- ave12_32 指向 pix12 和 pix32 的均值
- ave11_13_31_33 指向 pix11、pix13、pix31、pix33 的均值
- ave21_23 指向 pix21 和 pix23 的均值
G 通道的计算
G 通道的计算最为特殊,不单纯时周边 G 通道像素点的均值,还需要判断 RB 通道的
偶行偶列与奇行奇列都为 G 通道,直接取 pix22 值:
偶行奇列和奇行偶列的计算原理如下:
偶行奇列:
G ( R ) = { G 1 + G 3 2 ∣ R 1 − R 3 ∣ &