当前位置:文档之家› OV6620 OV720摄像头YUV RGB格式说明

OV6620 OV720摄像头YUV RGB格式说明

1视觉颜色的表示方法(RGB YUV HSI YIQ YcbCr YD6Dr CMY CMYK…)在解释OV摄像头的几种格式之前,有必要简单地介绍一下视频或图像的颜色表示方法。

如果要通过上位机图像采集显示图片,必需熟悉图片的数据储存格式。

如BMP格式是由文件头,信息头,调色板,位图数据构成,因此,如果是在VC 环境下采集图像,必须把数据转化为BMP格式进行内存分配和存储。

TIF,JPG 也是一样的。

值得一提的是VB 和MA TLAB在图像显示方面比VC有很大有优势。

如果不用图像的形式显示储存,在VC里利用CDC在GetClientRect的区域上描点显示也不失一种上位面设计方案;在VB里也可以利用lable控件数组用不同的颜色排列组成可视的图片。

1.1RGB格式RGB 在计算机领域有着举足轻重的地位, 由于色彩显示器使用红、绿、蓝3 色来产生需要的颜色, 所以被广泛用于计算机图形和成像之中。

然而, 在处理现实世界的图像时,RGB 并非很有效, 因为它对所有色彩都用等长像素点的R、G、B 3 色加以合成。

这就使得每个像素在R、G、B 3 个成分上拥有相同的像素深度和显示分辨率。

而且, 处理RGB 色彩空间的图像也不是最有效的。

RGB有一个问题是数据量太大,采集里如果每一个相素都是3个BYTE的数据(R G B),是很没有必要的,于是有人就想去了两个相素点共用一种颜色的算法。

这个算法就是著名的bayer算法的初始。

R感应红光,G感应绿光,B感应蓝光。

在Bayer格式的图像中,图像一半的像素分配给G分量,而R和B分量则占图像的另一半像素。

因为G分量是R、B分量的两倍,所以如果G分量采用好的插值方法,不仅可以提高G 分量的质量,还可以提高R和B分量的质量。

Bayer格式示意图:1.2YUV格式人类的眼睛对低频信号比对高频信号具有更高的敏感度。

事实上,人类的眼睛对明视度的改变也比对色彩的改变要敏感的多。

YUV彩色电视信号传输时,将R、G、B改组成亮度信号和色度信号。

PAL制式将R、G、B三色信号改组成Y、U、V信号,其中Y信号表示亮度,U、V信号是色差信号。

对人类而言, Y分量比U分量重要,根据人眼的这一特征,在不使用任何复杂算法的前提下,可以适当地抛弃U和V分量以达到压缩的目的,这就是部分取样。

部分取样的常见方式有YUV444 (无压缩)、YUV422 ( 3313 %压缩)、YUV411 ( 5010 %压缩)、YUV420 (5010%压缩)等,其中的数字表明了Y,U , V 3个分量的取样比例,即各分量水平取样因子与垂直取样因子乘积的比例。

以N ×N 大小的方阵为例,假设:对Y取N ×N个数据单元,即水平取样因子Hy = N ;垂直取样因子Vy = N.对U和V均取M1 ×M2个数据单元(0≤M1 ,M2≤N) ,即:水平取样因子Hu = M1 ,Hv = M1 ;垂直取样因子Vu = M2 , Vv = M2 .则Y、U、V取样比为( N ×N)∶( M1 ×M2 )∶(M1 ×M2 )。

若取N = 2 , M1 = 2 , M2 = 2 ,这就是YUV444的一种取样方式,没有压缩;若取N = 2 , M1 = 2 , M2 = 1 ,这就是YUV422的一种取样方式,压缩比3313 %;若取N = 2 , M1 = 1 , M2 = 1 ,这就是YUV411的一种取样方式,压缩比5010 %;若取N = 2 , M1 = 1 , M2 = 1 ,这就是YUV420的一种取样方式,压缩比5010 %。

注意, 4∶2∶0并非是色差信号采样为0 ,而是和4∶1∶1相比,在水平方向上提高1倍色差采样频率,在垂直方向上以CrPCb间隔的方式减小一半色差采样。

1.3HSI格式HSI模型中,H表示色调(Hue),S表示饱和度(Saturation),I表示亮度(Intensity,对应成像亮度和图像灰度)。

这个模型的建立基于两个重要的事实:①I分量与图像的彩色信息无关;②和S分量与人感受颜色的方式是紧密相联的。

这些特点使得HSI模型非常适合借助人的视觉系统来感知彩色特性的图像处理算法。

上图的色相环描述了色相和饱和度两个参数。

色相由角度表示,它反映了该彩色最接近什么样的光谱波长。

一般假定0°表示的颜色为红色,120°的为绿色,240°的为蓝色。

0°到240°的色相覆盖了所有可见光谱的彩色,在240°到300°之间为人眼可见的非光谱色(紫色)。

饱和度是指一个颜色的鲜明程度,饱和度越高,颜色越深,如深红,深绿。

饱和度参数是色环的原点(圆心)到彩色点的半径的长度。

由色相环可以看出,环的边界上纯的或饱和的颜色,其饱和度值为1。

在中心是中性(灰色)阴影,饱和度为0。

亮度是指光波作用于感受器所发生的效应,其大小由物体反射系数来决定,反射系数越大,物体的亮度愈大,反之愈小。

HSI模型的三个属性定义了一个三维柱形空间,如上图,柱形彩色空间所示。

灰度阴影沿着轴线从底部的黑变到顶部的白,具有最高亮度。

最大饱和度的颜色位于圆柱上顶面的圆周上。

1.4YcbCr格式YCbCr则是在世界数字组织视频标准研制过程中作为ITU - R BT1601建议的一部分,其实是YUV经过缩放和偏移的翻版。

其中Y与YUV中的Y含义一致, Cb , Cr同样都指色彩,只是在表示方法上不同而已。

在YUV家族中, YCbCr 是在计算机系统中应用最多的成员,其应用领域很广泛,JPEG、MPEG均采用此格式。

一般人们所讲的YUV大多是指YCbCr。

YCbCr有许多取样格式,如4∶4∶4 , 4∶2∶2 , 4∶1∶1和4∶2∶0。

意义和YUV一样。

1.5YD6Dr格式YD6Dr被用作SECAM复合色彩系统视频的标准。

同样Y指颜色的透明度即灰度,而Db、Dr表示颜色信息。

因为它主要用于模拟信号,在表示方法上与YUV稍有不同,所以自成一家。

1.6CMY格式CMY (Cyan、Magenta、Yellow)色彩空间也是一种常用的表示颜色的方式。

计算机屏幕的显示通常用RGB色彩空间。

它是通过颜色的相加来产生其他颜色,这种方法通常称为加色合成法(Addit2ive Color Synthesis)。

而在印刷工业上则通常用CMY色彩系统(一般所称的四色印刷CMYK则是再加上黑色) ,它是通过颜色相减来产生其他颜色的,所以我们称这种方式为减色合成。

CMYK模式的原色为青色(Cyan)、品红色(Magenta)、黄色(Yellow)和黑色(Black)。

在处理图像时,一般不用CMYK模式,主要是因为这种模式的文件大,占用的磁盘空间和内存大。

这种模式一般在印刷时使用。

1.7YIQ格式YIQ色彩空间是从YUV色彩空间衍生出来的,被北美电视系统所采用,被NTSC选作为符合色彩视频标准。

Y也是指颜色的透明度,即灰度。

而I代表In2Phase (同相) , Q代表Quadrature (积分) ,它们表示了一种传输色彩信息的调制方法,实际上也指色调,只是与YUV略有不同。

2OV6620/OV7620的格式详述2.1U V RGB 8bit 16bit中的8bit 16bit是何意?我们不防看一下DS上如何描述的:对于RGB的16bit/8bit:The OV6620/OV6120 image sensor can also be programmed to provide video output in RGBRaw Data 16-bit/8-bit/4-bit format. The output sequence is matched tothe OV6620 Color FilterPattern (See Section Figure 4.)Pixel Data Bus (RGB Output), below):– Y channel output sequence is G R G R– UV channel output sequence is B G B GFor 8-bit RGB Raw Data video output appears on the Ychannel (with an output sequence of BG R G) and theUV channel is disabled.对于YUV的16bit/8bit:the UV channel output format for 16-bit configurations becomes:– V U V U...etc.and for 8-bit configurations becomes:– V Y U Y ...etc.无论是RGB还是YUV格式,无论是8BIT还是16BIT,摄像头的数据输出都用了压缩算法,在RGB时,用了BAYER表示,在YUV格式时,用了4:2:2的压缩。

8bit模式时,TCLK比16bit时要快1倍,为什么呢?8bit模式下:UV管脚被禁用了,输出为三态。

只有Y管脚输出数字信号。

16bit 模式下,Y和UV管脚都有输出。

在8bit模式下,要输出16bit的数据,即通过Y 管脚把UV管脚的数据也一起输出来。

那么当然输出的速度要快一倍了。

2.2RGB格式下Y管脚和UV管脚的信号解析它们的信号输出如何解析呢?下面以RGB模式下的16BIT和8BIT输出作分析。

我们不防先看一下6620输出的图像原始矩阵(即bayer矩阵)。

一定要建立这个观念:在RGB模式下,6620输出的不是图像,是一个BAYER矩阵,必须通过算法把BAYER还原成图像。

无论是8BIT还是16BIT,输入的数字必须填满下面的的BAYER矩阵。

现在的问题是,如何把Y 和UV(8bit模式下没有)的输出数字填入下面的矩阵就是信号输出的解析内容。

上面的是典型的bayer矩阵,通过双线性差值法可以找到292*356个点的R G B各自的相素值大小。

为什么可以这样呢?因为相邻的两个点的RGB相差不会太远,可以差值法近似用旁边的相素点的RGB值表示该点的RGB值(具体算法思路可看《Bayer转化RGB格式》)。

如何把Y和UV的输入数字填入BAYER表中呢?还是分两种情况,16bit情况和8bit情况:(1)16bit情况:-1st HREF Y channel output unstable data UV output B11 G12 B13 G14 ....-2nd HREF Y channel output G21 R22UV output B11 G12 B13 G14 ...G23 R24 ...-3rd HREF Y channel output G21 R22 G23UV output B31 G32 B33 G34 ....R24 ...,-4th HREF Y channel output G41 R42 G43UV output B31 G32 B33 G34 ....R44 ...从数据解析图来看,的确,U和V的数量只有Y的一半。

相关主题