图像传感器-RAW格式辨析

2024-08-21 11:36:30 浏览数 (2)

图像传感器数据手册里面经常会出现RAW格式,我以前一直在找RAW格式的标准是啥,但是找不到,今天应该算是解惑了。

就是原始数据的量化值,就是比如RGB(A,B,C)十进制,然后把A,B,C用一组二进制数表示,比如8位深度,就是0~255量化一个颜色的通道值。

1600W种颜色,但还是太少了

算算?

每个像素占用 3 字节 = 24位(8位 * 3)。

总像素数 = 400 * 400 = 160,000 像素

图像大小 = 每个像素所占字节数 * 总像素数 图像大小 = 3 字节/像素 * 160,000 像素 = 480,000 字节

将字节转换为常见的单位,可以得到图像大小为 480,000 字节,约为468.75 KB(1 KB = 1024 字节)。

RGB格式、分辨率为400x400的图像的大小为约468.75 KB。

RAW DATA,可以理解为:RAW图像就是CMOS或者CCD图像感应器将捕捉到的光源信号转化为数字信号的原始数据,是无损的,包含了物体原始的颜色信息等。

RAW数据格式一般采用的是Bayer排列方式,通过滤波光片,产生彩色滤波阵列(CFA),鉴于人眼对绿色波段的色彩比较敏感,Bayer数据格式中包含了50%的绿色信息,以及各25%的红色和蓝色信息。

光线经过镜头,被传感器上的为滤镜分解成一个个单色的光,由传感器记录下每个点的光强度数值,这就得到了RAW数据。把RAW的灰度值转换成图像,是这样的:

不经过后期处理的RAW,就只有这样的黑白马赛克

然后把每个地方的像素显示出来是这样,还是不清晰

接下来这步是猜色:

每个滤光点周围有“规律”地分布其他颜色的滤光点,那么就有可能结合它们的值,判断出光线本来的颜色。

以黄光为例,它由红光和绿光混合而成,那么通过滤光层以后,红点和绿点下面的像素都会有值,但是蓝点下面的像素没有值,因此看一个像素周围的颜色分布——有红色和绿色,但是没有蓝色——就可以推测出来这个像素点的本来颜色应该是黄色。

一个颜色点还原过程

会变成这样

1.人眼观察到的图像 2.RAW原始图像 3.Bayer格式输出图像 4.运用插值计算后输出图像

那就是4步走,运算量都不低啊。

说了半天这个Byer长什么样?

这是我能看到的唯一一个实物的样子

二分之一 二分之一 四分之一除以3不就是三分之一

输入的 RAW Bayer 图像数据转换成 RGB 域的数据。在 RAW 域中,每个像素点只包含 RGB 分量中的一个,这也就是为什么RAW格式大的原因。

按照理想情况,每个像素点有3个值,而实际上,R和B各只有1/4,G有1/2,因此,bayer pattern得到的图像中,实际只有1/3的内容是真实的,其他都是根据先验知识插值得到。这也说明了自然图像中具有大量的冗余信息。

然后插值算法就是下面图的意思,把各个通道的未知值算出来,插进去:

我应该是说明白了

线性插值:在这种插值算法中,缺失的颜色像素将使用其邻近像素的值进行插值。

例如,对于 BGGR Bayer 模式图像,缺失的绿色像素可以通过其周围的四个相邻像素的平均值来得到。对于缺失的红色或蓝色像素,可以使用相邻行或相邻列的值计算。

修正的 bilinear 插值:这是一种更精确的插值算法,它对线性插值进行了改进。

在这种算法中,缺失的颜色像素将使用邻近像素和它们的邻近像素来进行插值。这种算法在处理高畸变图像时可以提供更好的效果。额,不就是个双线性插值,兜兜转转的装逼,扣一分。

就是这么多的像素,就为算一个绿B

源图像位置在它附近的2*2区域4个邻近象素的值通过加权平均计算得出的。双线性内插值算法放大后的图像质量较高,不会出现像素值不连续的的情况。然而此算法具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊。

自己搜索

还有gradient-corrected linear interpolation,出自微软研究院,该算法被matlab中的demosaic函数所使用。

该算法的主要原理为:在5*5大小的窗口中,利用中心点像素所属颜色的梯度值对其它颜色的插值结果进行补偿。其中,R和B都考虑了上下左右4个方向的梯度;G除了上下左右4个方向,还考虑了4个对角线方向的梯度,这应该是由于G的像素点个数是R和B的2倍,而且人眼对于绿色的敏感度更强。

效果

这个图就更清晰啦

色彩滤波矩阵(CFA)

更多的上面是科普,我们一般是使用传感器,看一个OV2640的输出格式:

这里先说这些格式适合用在哪里:

  1. Raw RGB:
    • 适用场景:专业摄影、图像处理和计算机视觉等领域。原始的RGB数据提供了最大的色彩信息和灵活性,在后期处理中可以进行精确的颜色校正、白平衡调整和图像增强等操作。
  2. RGB (RGB565/555):
    • 适用场景:嵌入式系统、显示器驱动和图形处理器等。RGB565和RGB555是对RGB色彩信息的一种压缩表示,适合于有限存储资源或需要高效传输的场景,如嵌入式设备、游戏开发等。
  3. GRB422:
    • 适用场景:视频处理、传输和压缩领域。GRB422格式在视频领域中较为常见,可用于捕获、处理和传输视频数据,同时提供较高的色彩和亮度精度。
  4. YUV (422/420):
    • 适用场景:视频编解码、视频通信和存储等应用。YUV422和YUV420是对彩色图像进行色度抽样的编码格式,能够有效地减少数据量并提供较好的视觉质量,常用于数字视频和图像压缩标准中。
  5. YCbCr (4:2:2):
    • 适用场景:数字视频编码、广播、流媒体和视频会议等。YCbCr 4:2:2是一种常见的视频色彩空间格式,经常用于视频编解码器中,可实现高质量的视频压缩和传输,同时保持较高的图像质量。

Bayer 数据几种常用的类型:

(应该可以这样说,RAW8,10,16,就是专门来传输Bayer图像的编码方式,也不对。。)

RAW8、RAW10和RAW16是用于表示原始图像数据的格式,它们分别表示每个像素的位深度为8位、10位和16位。

一个像素的构成方式有很多种:

  1. RGB格式:
    • 红色通道(R):表示像素的红色分量。
    • 绿色通道(G):表示像素的绿色分量。
    • 蓝色通道(B):表示像素的蓝色分量。
    • 例如,对于RGB888格式的像素,每个分量通常占用8位,总共24位(3字节)。
  2. Bayer格式:
    • 红色滤镜通道(R):表示像素使用红色滤镜的亮度。
    • 绿色滤镜通道(G):表示像素使用绿色滤镜的亮度。
    • 蓝色滤镜通道(B):表示像素使用蓝色滤镜的亮度。
    • 在Bayer格式中,每个像素只包含一个颜色通道的信息。
  3. YUV/YCbCr格式:
    • 亮度(Y):表示像素的亮度。
    • 色度蓝(Cb):表示像素的蓝色色度。
    • 色度红(Cr):表示像素的红色色度。
    • 这些格式通常用于视频编码和传输,其中亮度通道(Y)包含了图像的明亮度信息,而色度通道(Cb和Cr)则包含了颜色信息。
  4. 灰度格式:
    • 只包含一个通道,表示像素的灰度级别或亮度级别。
    • 例如,对于8位灰度图像,每个像素仅包含8位的灰度信息

具体的RAW看来还得再区分。

通常每个颜色通道(红色、绿色、蓝色)都有特定的位深度(例如,RAW8每个通道8位,RAW10每个通道10位)。

原始RGB数据未经处理,直接表示每个颜色通道的强度。

RAW8:

Raw8即是用8bits表示 G/R/B/G 中的一个分量,而不是使用8bits表示 RG/GB 四个分量。

RAW10:

Raw10就是使用10bit 表示上述的一个 G/R/B/G,但是数据中是16bit 的,高6位没用。

咋感觉多出来这么多

RAW12:

Raw12 就是使用12bit 表示上述的一个 G/R/B/G,但是数据中是16bit的,高4位没用。

比较

可以看到最后这个最细腻

RGB(RGB565/555):RGB565和RGB555是颜色编码格式,每个像素用16位表示。RGB565使用5位表示红色,6位表示绿色,5位表示蓝色,而RGB555每个颜色通道使用5位。这些格式通常用于显示,因为它们的表示方式紧凑。

每个像素用16比特位表示,占2个字节,RGB分量分别使用5位、6位、5位。

565

每个像素用16比特位表示,占2个字节,RGB分量都使用5位(最高位不用)。

555

YUV(422/420):YUV422和YUV420是视频压缩和传输中使用的颜色空间格式。

YUV422每个像素有8位用于亮度(Y),以及8位用于色度蓝(U)和色度红(V)。

YUV420使用色度抽样,通常有8位用于亮度(Y),以及8位共享给色度蓝(U)和色度红(V),但比YUV422有更少的色度信息。

在视频录制中,颜色采样有助于减小文件大小,同时保持最小的视觉差异。

书老,但是也可以看看

关于采样的书,180页

CMOS封装

这个也可以,如果我有机会做传感器的话

OVM6946接口分析-AntLinx的由来

拿OV6946内窥砸场子,我终于悟透了

OV6946无损USB采集卡“小窥窥”发布!

OV426硬件设计-CCU(相机控制单元)

使用OVM6946和OV426设计内窥镜吧!

DIY 胶囊内窥镜

这些是以前的文章,可以参考。

代码语言:javascript复制
https://snapshot.canon-asia.com/article/eng/videography-faq-what-do-422-and-420-mean

0 人点赞