摄像头sensor的数据输出格式。

摄像头成像:外部光线穿过lens后,经过color filter滤波后照射到Sensor面上, Sensor将从lens上传导过来的光线转换为电信号,再通过内部的DA转换为数字信号。如果Sensor没有集成ISP,则传输到baseband(基带=未经处理的电信号),
此时的数据格式是RAW RGB data。

raw RGB的排列方式有两种。根据COLOR FILTER的结构,分为两种:STD Bayer pattern 与Pair pattern,其中STD Bayer pattern的结构是BG/GR的,而Pair Pattern顾名思义是指BGBG/GRGR的结构,即以四行为一个单位,前两行是BG的结构,后两行是GR的结构。对RAW DATA图像的 解码是按默认的结构来 解码的 ,如BG/GR,若不是则无法解码。

RAW RGB格式的图像每一个像素点只有一种颜色为R,G,或B。存储形式可能为8-14位。即每一个像素的值由8位存储。一般是sensor的bayer阵列获取的数据。

sensor输出分为四种,一种是YUV,一种是raw RGB.一种为RGB,一种为JPEG

第一种是RGB:从RAW RGB到RGB格式。RGB格式有

RGB565    每个像素用16位表示,RGB分量分别使用5位、6位、5位(常用也就是上说的RGB)

RGB555    每个像素用16位表示,RGB分量都使用5位(剩下1位不用)

RGB24    每个像素用24位表示,RGB分量各使用8位

RGB32    每个像素用32位表示,RGB分量各使用8位(剩下8位不用)

ARGB32    每个像素用32位表示,RGB分量各使用8位(剩下的8位用于表示Alpha通道值)。

RGB565是通过对RAW RGB中的每一个图像进行插值得到的。根据每一点周围的像素估计它的R,G,B值。RGB565输出格式是R5G3 G3B5会丢掉很多原始信息,可能是因为传输时会丢失信息。而YUV中的Y信号独立分出来很少丢失信息。所以常用。可以直接往屏幕上刷。一般500M以上sensor就只输出RAW数据以保证比较快的输出速度.。

第二种是YUV:从RAW RGB到YUV格式。CCIR601或656的格式。先说一下什么是YUV格式?

YUV三个字母中,其中"Y"表示明亮度(Lumina nce或Luma),也就是灰度值;而"U"和"V"表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。YUV存储格式有两大类:planar和packed。平面和打包格式。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交叉存储的。YUV主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0,如何根据其采样格式来从码流中还原每个像素点的YUV值,因为只有正确地还原了每个像素点的YUV值,才能通过YUV与RGB的转换公式提取出每个像素点的RGB值,然后显示出来。

首先RAW RGB转换为RGB格式。RGB是交叉存储的。每一个像素由24位表示。然后将RGB转换为YUV格式。那么如何存储呢?根据以上可知有两种格式。首先根据不同的采样方式对YUV中数据进行采样,有YUV4:4:4,YUV4:2:2,YUV4:2:0这三种,采样完后再根据存储方式不同而存储。一般都是YUV422格式。首先分析一下:采样格式:

444就是对每一个像素Y,U,V值均取。4个像素每个像素的YUV值都要取。

原来四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3] 

存放的码流为:  [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3] 

还原出像素点为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3] 

422:原来四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]

存放的码流为: Y0 U0 Y1 V0 Y2 U2 Y3 V2

还原出像素点为:[Y0 U0 V0] [Y1 U0 V0] [Y2 U2 V2] [Y3 U2 V2] 

420:原来四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]  经采样后:

存放的码流为: Y0 U0 Y1 Y2 V2 Y3 

还原出像素点为:[Y0 U0 V2] [Y1 U0 V2] [Y2 U0 V2] [Y3 U0 V2] 

关于如何存储的。planar存储:使用三个数组分开存放YUV三个分量。YUV行顺序存储。关于packed存储:使用一个数组存储一个像素的YU或YV数据,彼此交叉。由以上可知由RGB转换为YUV分量时图像是有压缩的,损失了信息。

第三种:JPEG格式。首先转换为RGB格式,RGB再转换为YCBCR格式。YCbCr模型广泛应用在图片和视频的压缩传输中,比如你可以留意一下电视或者DVD后面的接口,就可以发现色差接口。一般人们所讲的YUV大多是指YCbCr。以前的YUV是用来看电视用的。两者的数学转换公式不同。经过离散余弦变换,数据还是可逆的,然后数据量化和霍夫曼编码实现数据压缩。

以上都是数据格式,而不是图像格式,下面还会分析图像格式,视频格式的区别。

YUV格式可经过X264编码为H264格式,然后封装为MP4格式。

你可能感兴趣的:(摄像头sensor的数据输出格式。)