YUV格式

     YCbCr是DVD、摄像机、数字电视等消费类视频产品中,常用的色彩编码方案。YCbCr 有时会称为 YCC.。Y'CbCr 在模拟分量视频(analog component video)中也常被称为 YPbPr。YCbCr不是一种绝对色彩空间,是YUV压缩和偏移的版本。


YCbCr与YUV的区别
  正如几何上用坐标空间来描述坐标集合, 色彩空间用数学方式来描述颜色集合。常见的3 个基本色彩模型是RGB ,CMYKYUV。   YCbCr 则是在世界数字组织视频标准研制过程中作为ITU - R BT1601 建议的一部分, 其实是YUV经过缩放和偏移的翻版。其中Y与YUV 中的Y含义一致, Cb , Cr 同样都指色彩, 只是在表示方法上不同而已。在YUV 家族中, YCbCr 是在计算机系统中应用最多的成员, 其应用领域很广泛,JPEGMPEG均采用此格式。一般人们所讲的YUV大多是指YCbCr。YCbCr 有许多取样格式, 如4∶4∶4 , 4∶2∶2 , 4∶1∶1 和4∶2∶0。
YUV
  视频编解码器功能  视频编码器要求YUV4:2:0格式的视频输入,因此可能根据应用需要进行视频输入的预处理,即对YUV4:2:2隔行扫描(例如从摄像机)到YUV 4:2:0非隔行扫描转换,仅抽取但不过滤UV分。对视频解码器而言,还需要进行后处理,以将解码的YUV 4:2:0数据转换为RGB进行显示,包括:YUV 4:2:0到RGB转换;16位或12位RGB显示格式;0到90度旋转,实现横向或纵向显示。此外,视频编解码器通常还要求具有以下功能和特性:  支持MPEG-4简单类 0、1 与 2 级;  兼容H.263与 MPEG-4 编解码标准;  MPEG-4视频解码器支持的可选项有:AC/DC预测、可逆可变长度编码(RVLC)、再同步标志(RM)、数据分割(DP)、错误隐藏专利技术、支持每个宏块4个运动矢量(4MV)、自由运动补偿、解码VOS层;  MPEG-4视频编码器选项有:RVLC、RM、DP、支持每个宏块4个运动矢量(4MV)、报头扩展码、支持编码期间码率改变、支持编码期间编码帧率改变、插入或不插入可视对象序列起始码;  支持编码期间序列中插入I帧;  支持编码器自适应帧内刷新(AIR);  支持多编解码器,可用相同代码运行多个编解码器实例。
YCbCr
  YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。人的肉眼对视频的Y分量更敏感,因此在通过对色度分量进行子采样来减少色度分量后,肉眼将察觉不到的图像质量的变化。主要的子采样格式有 YCbCr 4:2:0、YCbCr 4:2:2 和 YCbCr 4:4:4。   4:2:0表示每4个像素有4个亮度分量,2个色度分量 (YYYYCbCr),仅采样奇数扫描线,是便携式视频设备(MPEG-4)以及电视会议(H.263)最常用格式;4:2:2表示每4个像素有4个亮度分量,4个色度分量(YYYYCbCrCbCr),是DVD、数字电视、HDTV 以及其它消费类视频设备的最常用格式;4:4:4表示全像素点阵(YYYYCbCrCbCrCbCrCbCr),用于高质量视频应用、演播室以及专业视频产品。
编辑本段YUV主要的采样格式
  主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。其中YCbCr 4:1:1 比较常用,其含义为:每个点保存一个 8bit 的亮度值(也就是Y值), 每 2x2 个点保存一个 Cr 和Cb 值, 图像在肉眼中的感觉不会起太大的变化。所以, 原来用 RGB(R,G,B 都是 8bit unsigned) 模型, 每个点需要 8x3=24 bits(如下图第一个图). 而现在仅需要 8+(8/4)+(8/4)=12bites, 平均每个点占12bites(如下图第二个图)。这样就把图像的数据压缩了一半。  上边仅给出了理论上的示例,在实际数据存储中是有可能是不同的,下面给出几种具体的存储形式:
(1) YUV 4:4:4
  YUV三个信道的抽样率相同,因此在生成的图像里,每个象素的三个分量信息完整(每个分量通常8比特),经过8比特量化之后,未经压缩的每个像素占用3个字节。  下面的四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]   存放的码流为: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
(2) YUV 4:2:2
  每个色差信道的抽样率是亮度信道的一半,所以水平方向的色度抽样率只是4:4:4的一半。对非压缩的8比特量化的图像来说,每个由两个水平方向相邻的像素组成的宏像素需要占用4字节内存。  下面的四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]   存放的码流为: Y0 U0 Y1 V1 Y2 U2 Y3 V3   映射出像素点为:[Y0 U0 V1] [Y1 U0 V1] [Y2 U2 V3] [Y3 U2 V3]
(3) YUV 4:1:1
  4:1:1的色度抽样,是在水平方向上对色度进行4:1抽样。对于低端用户和消费类产品这仍然是可以接受的。对非压缩的8比特量化的视频来说,每个由4个水平方向相邻的像素组成的宏像素需要占用6字节内存  下面的四个像素为: [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]
(4)YUV4:2:0
  4:2:0并不意味着只有Y,Cb而没有Cr分量。它指得是对每行扫描线来说,只有一种色度分量以2:1的抽样率存储。相邻的扫描行存储不同的色度分量,也就是说,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0...以此类推。对每个色度分量来说,水平方向和竖直方向的抽样率都是2:1,所以可以说色度的抽样率是4:1。对非压缩的8比特量化的视频来说,每个由2x2个2行2列相邻的像素组成的宏像素需要占用6字节内存。  下面八个像素为:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]   [Y5 U5 V5] [Y6 U6 V6] [Y7U7 V7] [Y8 U8 V8]   存放的码流为:Y0 U0 Y1 Y2 U2 Y3   Y5 V5 Y6 Y7 V7 Y8   映射出的像素点为:[Y0 U0 V5] [Y1 U0 V5] [Y2 U2 V7] [Y3 U2 V7]   [Y5 U0 V5] [Y6 U0 V5] [Y7U2 V7] [Y8 U2 V7]   YCbCr与RGB的相互转换   Y=0.299R+0.587G+0.114B   Cb=0.564(B-Y)   Cr=0.713(R-Y)   R=Y+1.402Cr   G=Y-0.344Cb-0.714Cr   B=Y+1.772Cb
YCbCr的模拟分量部分YPbPr

  YCbCr 有时会称为YCC. Y'CbCr 在模拟分量视频(analog component video)中也常被称为YPbPr。   Y'CbCr讯号(prior to scaling and offsets to place the signals into digital form)被称为YPbPr ,而且产生时必须合乎gamma-adjusted RGB source有二个不同的常数Kb和Kr如下: YPbPr (analog version of Y'CbCr) from R'G'B' YPbPr (analog version of Y'CbCr) from R'G'B' ==================================================== ================================================== ==   Y' = Kr * R' + (1 - Kr - Kb) * G' + Kb * B'   Pb = 0.5 * (B' - Y') / (1 - Kb) Pb = 0.5 * (B' - Y') / (1 - Kb)   Pr = 0.5 * (R' - Y') / (1 - Kr) Pr = 0.5 * (R' - Y') / (1 - Kr)   .................................................... .................................................. ..   R', G', B' in [0; 1] R', G', B' in [0; 1]   Y' in [0; 1] Y' in [0; 1]   Pb in [-0.5; 0.5] Pb in [-0.5; 0.5]   Pr in [-0.5; 0.5] Pr in [-0.5; 0.5]


--------------------------------

在YUV中,“Y”代表明亮度(Luminance或Luma),也就是灰阶值; 而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述图像色彩及饱和度,用于指定像素的颜色。“亮度”是通过RGB输入信号来创建的,方法是将RGB信号的特定部分叠加到一起。色度则定义了颜色的两个方面——色调与饱和度,分别用Cr和Cb来表示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异,而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异,此即所谓的色差信号,也就是我们常说的分量信号(Y、R-Y、B-Y)。 色差分为逐行和隔行显示,一般来说分量接口上面都会有几个字母来表示逐行和隔行的。用Y/Cb/Cr表示的是隔行,用Y/Pb/Pr表示则是逐行,如果电视只有Y/Cb/Cr分量端子的话,则说明电视不能支持逐行分量,而用Y/Pb/Pr分量端子的话,便说明支持逐行和隔行2种分量了。 分量色差传送的视频有多种方式,例如将三原色直接传送的RGB方式,将所有的颜色作同等处理,拥有最高的画质,在专业的彩色监视器及电脑显示器上均以此种方式。但由于RGB方式对传输带宽和存储空间消耗太大,为节省传输带宽,还使用分量色差方式,从RGB转换为亮度(Y)与色差(Cb/Cr或Pb/Pr,分别代表隔行扫描逐行扫描)。分量/色差端子采用三个同轴端子,对应的端子分别标记为绿色(亮度)、红色(色调)和蓝色(饱和度),这也成为目前消费级视频器材上的主流方式。



--------------------------------------

图文详解YUV420数据格式

YUV格式有两大类:planar和packed。
对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。
对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。

 

YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

    与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV方式传送占用极少的频宽。

YUV码流的存储格式其实与其采样的方式密切相关,主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0,关于其详细原理,可以通过网上其它文章了解,这里我想强调的是如何根据其采样格式来从码流中还原每个像素点的YUV值,因为只有正确地还原了每个像素点的YUV值,才能通过YUV与RGB的转换公式提取出每个像素点的RGB值,然后显示出来。

    用三个图来直观地表示采集的方式吧,以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量。

 

先记住下面这段话,以后提取每个像素的YUV分量会用到。

  1. YUV 4:4:4采样,每一个Y对应一组UV分量。
  2. YUV 4:2:2采样,每两个Y共用一组UV分量。 
  3. YUV 4:2:0采样,每四个Y共用一组UV分量。 

2.  存储方式

    下面我用图的形式给出常见的YUV码流的存储方式,并在存储方式后面附有取样每个像素点的YUV数据的方法,其中,Cb、Cr的含义等同于U、V。

(1) YUVY 格式 (属于YUV422)

 
YUYV为YUV422采样的存储格式中的一种,相邻的两个Y共用其相邻的两个Cb、Cr,分析,对于像素点Y'00、Y'01 而言,其Cb、Cr的值均为 Cb00、Cr00,其他的像素点的YUV取值依次类推。(2) UYVY 格式 (属于YUV422)
UYVY格式也是YUV422采样的存储格式中的一种,只不过与YUYV不同的是UV的排列顺序不一样而已,还原其每个像素点的YUV值的方法与上面一样。
 
(3) YUV422P(属于YUV422)
YUV422P也属于YUV422的一种,它是一种Plane模式,即平面模式,并不是将YUV数据交错存储,而是先存放所有的Y分量,然后存储所有的U(Cb)分量,最后存储所有的V(Cr)分量,如上图所示。其每一个像素点的YUV值提取方法也是遵循YUV422格式的最基本提取方法,即两个Y共用一个UV。比如,对于像素点Y'00、Y'01 而言,其Cb、Cr的值均为 Cb00、Cr00。
(4)YV12,YU12格式(属于YUV420)

YU12和YV12属于YUV420格式,也是一种Plane模式,将Y、U、V分量分别打包,依次存储。其每一个像素点的YUV数据提取遵循YUV420格式的提取方式,即4个Y分量共用一组UV。注意,上图中,Y'00、Y'01、Y'10、Y'11共用Cr00、Cb00,其他依次类推。

(5)NV12、NV21(属于YUV420)

NV12和NV21属于YUV420格式,是一种two-plane模式,即Y和UV分为两个Plane,但是UV(CbCr)为交错存储,而不是分为三个plane。其提取方式与上一种类似,即Y'00、Y'01、Y'10、Y'11共用Cr00、Cb00

YUV420 planar数据, 以720×488大小图象YUV420 planar为例,

其存储格式是: 共大小为(720×480×3>>1)字节,

分为三个部分:Y,U和V

Y分量:    (720×480)个字节  

U(Cb)分量:(720×480>>2)个字节

V(Cr)分量:(720×480>>2)个字节

三个部分内部均是行优先存储,三个部分之间是Y,U,V 顺序存储。

即YUV数据的0--720×480字节是Y分量值,         

720×480--720×480×5/4字节是U分量    

720×480×5/4 --720×480×3/2字节是V分量。

4 :2: 2 和4:2:0 转换:

最简单的方式:

YUV4:2:2 ---> YUV4:2:0  Y不变,将U和V信号值在行(垂直方向)在进行一次隔行抽样。 YUV4:2:0 ---> YUV4:2:2  Y不变,将U和V信号值的每一行分别拷贝一份形成连续两行数据。

在YUV420中,一个像素点对应一个Y,一个4X4的小方块对应一个U和V。对于所有YUV420图像,它们的Y值排列是完全相同的,因为只有Y的图像就是灰度图像。YUV420sp与YUV420p的数据格式它们的UV排列在原理上是完全不同的。420p它是先把U存放完后,再存放V,也就是说UV它们是连续的。而420sp它是UV、UV这样交替存放的。(见下图) 有了上面的理论,我就可以准确的计算出一个YUV420在内存中存放的大小。 width * hight =Y(总和) U = Y / 4   V = Y / 4

 

所以YUV420 数据在内存中的长度是 width * hight * 3 / 2,

假设一个分辨率为8X4的YUV图像,它们的格式如下图:

                      YUV420sp格式如下图                                                          

 

             

                        YUV420p数据格式如下图

           

 

旋转90度的算法:

public static void rotateYUV240SP(byte[] src,byte[] des,int width,int height)
 {
   
  int wh = width * height;
  //旋转Y
  int k = 0;
  for(int i=0;i<width;i++) {
   for(int j=0;j<height;j++)
   {
               des[k] = src[width*j + i];   
         k++;
   }
  }
  
  for(int i=0;i<width;i+=2) {
   for(int j=0;j<height/2;j++)
   { 
               des[k] = src[wh+ width*j + i]; 
               des[k+1]=src[wh + width*j + i+1];
         k+=2;
   }
  }
  
  
 }

 

YV12和I420的区别        一般来说,直接采集到的视频数据是RGB24的格式,RGB24一帧的大小size=width×heigth×3 Bit,RGB32的size=width×heigth×4,如果是I420(即YUV标准格式4:2:0)的数据量是 size=width×heigth×1.5 Bit。       在采集到RGB24数据后,需要对这个格式的数据进行第一次压缩。即将图像的颜色空间由RGB2YUV。因为,X264在进行编码的时候需要标准的YUV(4:2:0)。但是这里需要注意的是,虽然YV12也是(4:2:0),但是YV12和I420的却是不同的,在存储空间上面有些区别。如下: YV12 : 亮度(行×列) + U(行×列/4) + V(行×列/4)

I420 : 亮度(行×列) + V(行×列/4) + U(行×列/4)

可以看出,YV12和I420基本上是一样的,就是UV的顺序不同。

继续我们的话题,经过第一次数据压缩后RGB24->YUV(I420)。这样,数据量将减少一半,为什么呢?呵呵,这个就太基础了,我就不多写了。同样,如果是RGB24->YUV(YV12),也是减少一半。但是,虽然都是一半,如果是YV12的话效果就有很大损失。然后,经过X264编码后,数据量将大大减少。将编码后的数据打包,通过RTP实时传送。到达目的地后,将数据取出,进行解码。完成解码后,数据仍然是YUV格式的,所以,还需要一次转换,这样windows的驱动才可以处理,就是YUV2RGB24。

YUY2  是 4:2:2  [Y0 U0 Y1 V0]

 

yuv420p 和 YUV420的区别 在存储格式上有区别
yuv420p:yyyyyyyy uuuuuuuu vvvvv yuv420: yuv yuv yuv

     YUV420P,Y,U,V三个分量都是平面格式,分为I420和YV12。I420格式和YV12格式的不同处在U平面和V平面的位置不同。在I420格式中,U平面紧跟在Y平面之后,然后才是V平面(即:YUV);但YV12则是相反(即:YVU)。
YUV420SP, Y分量平面格式,UV打包格式, 即NV12。 NV12与NV21类似,U 和 V 交错排列,不同在于UV顺序。
I420: YYYYYYYY UU VV    =>YUV420P
YV12: YYYYYYYY VV UU    =>YUV420P
NV12: YYYYYYYY UVUV     =>YUV420SP
NV21: YYYYYYYY VUVU     =>YUV420SP

----------------------------------------------

从技术上角度区分,颜色空间可考虑分成如下三类: 
    RGB 型颜色空间/计算机图形颜色空间:这类模型主要用于电视机和计算机的颜色显示系统。例如,RGB,HSI, HSL和HSV等颜色空间。 
    XYZ 型颜色空间/CIE颜色空间:这类颜色空间是由国际照明委员会定义的颜色空间,通常作为国际性的颜色空间标准,用作颜色的基本度量方法。例如,CIE 1931 XYZ,L*a*b,L*u*v和LCH等颜色空间就可作为过渡性的转换空间。 
 YUV型颜色空间/电视系统颜色空间:由广播电视需求的推动而开发的颜色空间,主要目的是通过压缩色度信息以有效地播送彩色电视图像。例 如,YUV,YIQ,ITU-R BT.601 Y'CbCr, ITU-R BT.709 Y'CbCr和SMPTE-240M Y'PbPr等颜色空间。 4  颜色空间的转换 
不同颜色可以通过一定的数学关系相互转换: 
       有些颜色空间之间可以直接变换。例如,RGB和HSL,RGB和 HSB,RGB和R'G'B', R'G'B'
和Y'CrCb,CIE XYZ和CIE L*a*b*等。 
        有些颜色空间之间不能直接变换。例如,RGB 和CIE La*b*, CIE XYZ和HSL,HSL
和Y'CbCr等,它们之间的变换需要借助其他颜色空间进行过渡。  R'G'B'和Y'CbCr两个彩色空间之间的转换关系用 下式表示:  Y = 0.299R + 0.587G + 0.114B 
Cr = (0.500R - 0.4187G - 0.0813B) + 128  Cb = (-0.1687R - 0.3313G + 0.500B) + 128 二、彩色电视的制式及其颜色空间 
1、彩色电视制式 
目前世界上现行的彩色电视制式有三种:NTSC 制、PAL制和SECAM制。这里不包括高清晰度彩色电视HDTV (High-Definition television)。 
NTSC(National Television Systems Committee)彩色电视制是1952年美国国家电视标准委员会定义的彩色电视广播标准,称为正交平衡调幅制。美国、 加拿大等大部分西半球国家,以及日本、韩国、菲律宾等国和中国的台湾采用这种制式。 
NTSC彩色电视制的主要特性是:
  (1) 525行/帧, 30帧/秒(29.97 fps, 33.37 ms/frame)
  (2) 高宽比:电视画面的长宽比(电视为4:3;电影为3:2;高清晰度电视为16:9)   (3) 隔行扫描,一帧分成2场(field),262.5线/场
  (4) 在每场的开始部分保留20扫描线作为控制信息,因此只有485条线的可视数据。Laser disc约~420线,S-VHS约~320线
  (5) 每行63.5微秒,水平回扫时间10微秒(包含5微秒的水平同步脉冲),所以显示时间是






53.5微秒。
  (6) 颜色模型:YIQ
  一帧图像的总行数为525行,分两场扫描。行扫描频率为15 750 Hz, 周期为63.5μs;场扫描频率是60 Hz,周期为16.67 ms;帧频是30 Hz,周期33.33 ms。每一场的扫描行数为525/2=262.5行。除了两场的场回扫外,实际传送图像的行数为480行。 
由于NTSC制存在相位敏感造成彩色失真的缺 点,因此德国(当时的西德)于1962年制定了PAL(Phase-Alternative Line)制彩色电视广播标准,称为逐行倒相正交平衡 调幅制。德国、英国等一些西欧国家,以及中国、朝鲜等国家采用这种制式。 
PAL电视制的主要扫描特性是:
  (1) 625行(扫描线)/帧,25帧/秒(40 ms/帧)   (2) 长宽比(aspect ratio):4:3   (3) 隔行扫描,2场/帧,312.5行/场   (4) 颜色模型:YUV
法国制定了SECAM (法文:Sequential Coleur Avec Memoire)彩色电视广播标准,称为顺序传送 彩色与存储制。法国、苏联及东欧国家采用这种制式。世界上约有65个地区和国家试验这种制式。 
这种制式与PAL制类似,其差别是SECAM 中的色度信号是频率调制(FM),而且它的两个色差信号:红色差(R'-Y')和蓝色差(B'-Y')信号是按行的顺序传输的。法国、俄罗斯、东欧和中东 等约有65个地区和国家使用这种制式,图像格式为4:3,625线,50 Hz,6 MHz电视信号带宽,总带宽8 MHz。  2、彩色电视的颜色空间 
在彩色电视中,用Y、C1, C2彩色表示法分别表示亮度信号和两个色差信号,C1,C2的含义与具体的应用有关。在NTSC彩色电视制中,C1,C2分别表示I、Q两个色差信号;在 PAL彩色电视制中,C1,C2分别表示U、V两个色差信号;在CCIR 601数字电视标准中,C1,C2分别表示Cr,Cb两个色差信号。所谓色差是指基色信号中的三个分量信号(即R、G、B)与亮度信号之差。 
NTSC的YIQ颜色空间与RGB颜色空间的转换关系如 下:  Y=0.30R+0.59G+0.11B 
I=0.74(R-Y)-0.27(B-Y) =  0.60R+0.28G+0.32B  Q=0.48(R-Y)-0.27(B-Y) =  0.21R+0.52G+0.31B  PAL的YUV颜色空间与RGB颜色空间的转换关系如下:  Y=0.30R+0.59G+0.11B 
U=0.493(B-Y) = -0.15R-0.29G+0.44B 






Q=0.877(R-Y) =  0.62R-0.52G-0.10B  三、视频图像采样 
模拟视频的数字化包括不少技术问题,如电视信号具有不同的制式而且采用复合的YUV信号方式,而计算机工作在RGB空间;电视机是隔行扫描,计算机显示器大多逐行扫描;电视图像的分辨率与显示器的分辨率 也不尽相同等等。因此,模拟视频的数字化主要包括色彩空间的转换、光栅扫描的转换以及分辨率的统一。 
模拟视频一般采用分量数字化方式,先把复合视频信号中的亮度和色度分离,得到YUV或YIQ分量,然后用三个模/数转换器对三个分量分别采样并进行数字化,最后再转换成RGB空间。 
1、图像子采样 
对彩色电视图像进行采样时,可以采用两种采样方法。一种是使用相同的采样频率对图像的 亮度信号(Y)和色差信号(Cr,Cb)进行采样,另一种是对亮度信号和色差信号分别采用不同的采样频率进行采 样。如果对色差信号使用的采样频率比对亮度信号使用的采样频率低,这种采样就称为图像子采样(subsampling)。由于人的视觉对亮度信号的敏感度 高于对色差的敏感度,这样做利用人的视觉特性来节省信号的带宽和功率,通过选择合适的颜色模型,可以使两个色差信号所占的带宽明显低于Y的带宽,而又不明 显影响重显彩色图像的观看。 
目前使用的子采样格式有如下几种:
  (1) 4:4:4 这种采样格式不是子采样格式,它是指在每条扫描线上每4个连续的采样点取4个亮度Y样本、4个红色差Cr样本和4个蓝色差Cb样本,这就相当于每个像素用 3个样本表示。   (2) 4:2:2 这种子采样格式是指在每条扫描线上每4个连续的采样点取4个亮度Y样本、2个红色差Cr样本和2个蓝色差Cb样本,平均每个像素用2个样本表示。
  (3) 4:1:1 这种子采样格式是指在每条扫描线上每4个连续的采样点取4个亮度Y样本、1个红色差Cr样本和1个蓝色差Cb样本,平均每个像素用1.5个样本表示。
  (4) 4:2:0 这种子采样格式是指在水平和垂直方 向上每2个连续的采样点上取2个亮度Y样本、1个红色差Cr样本和1个蓝色差Cb样本,平均每个像素用1.5个样 本表示。 
2、CIF、QCIF和SQCIF格式 
为了既可用625行的电视图像又可用525行 的电视图像,CCITT规定了称为公用中分辨率格式CIF(Common Intermediate Format),1/4公用中分辨率格式(Quarter-CIF,QCIF)和(Sub-Quarter Common Intermediate Format,SQCIF)格式对电视图像进行采样。 
CIF格式具有如下特性: 
(1)                  电视图像的空间分辨率为家用录像 系统(Video Home System,VHS)的分辨
率,即352×288。 
(2)                  使用非隔行扫描(non-interlaced scan)。 
(3)                  使用NTSC帧速率,电视图像的最大帧速率为30 000/1001≈29.97幅/秒。  (4)                  使用1/2的PAL水平分辨率,即288线。 
(5)                  对亮度和两个色差信号(Y、Cb和Cr)分量分别进行编码,它们的取值范围同
ITU-R BT.601。即黑色=16,白色=235,色差的最大值等于240,最小值等于16。 






下面为5种 CIF 图 像格式的参数说明。参数次序为“图象格式 亮度取样的象素个数(dx) 亮度取样的行数 (dy) 色度取样的象素个数(dx/2) 色度取样的行数(dy/2)”。 
sub-QCIF 128      96     64     48  QCIF        176   144     88     72  CIF           352   288   176   144  4CIF         704   576   352   288 16CIF    1408  1152  704   576 
 
H.263数字视频压缩 
一、视频压缩编码的基本概念 
视频压缩的目标是在尽可能保证视觉效果的前提下减少视频数据率。视频压缩比一般指压缩后的数据量与压缩前的数据量之比。 
在视频压缩中常需用到以下的一些基本概念: 
1 有损和无损压缩:在视频压缩中有损(Lossy )和无损(Lossless)的概念与静态图像中基本类似。 无损压缩也即压缩前和解压缩后的数据完全一致。有损压缩意味着解压缩后的数据与压缩前的数据不一致。在压缩的过程中要丢失一些人眼和人耳所不敏感的图像或 音频信息,而且丢失的信息不可恢复。丢失的数据率与压缩比有关,压缩比越小,丢失的数据越多,解压缩后的效果一般越差。此外,某些有损压缩算法采用多次重 复压缩的方式,这样还会引起额外的数据丢失。
2 帧内和帧间压缩:帧内(Intraframe)压缩也称为空间压缩(Spatial compression)。当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似。帧内压缩一般 达不到很高的压缩。 
    采用帧间(Interframe)压缩是基于许多视频或动画的连 续前后两帧具有很大的相关性,或者说前后两帧信息变化很小的特点。也即连续的视频其相邻帧之间具有冗余信息,根据这一特性,压缩相邻帧之间的冗余量就可以 进一步提高压缩量,减小压缩比。帧间压缩也称为时间压缩(Temporal compression),它通过比较时间轴上不同帧之间的数据进行压缩。帧间压缩一般是无损 的。 
    3 对称和不对称编码:对称性(symmetric)是压缩编码的一个关键特征。对称意味着压缩和解压缩占用相同的计算处理能力和时间, 对称算法适合于实时压缩和传送视频,如视频会议应用就以采用对称的压缩编码算法为好。不对称或非对称意味着压缩时需要花费大量的处理能力






和时间,而解压缩 时则能较好地实时回放,也即以不同的速度进行压缩和解压缩。一般地说,压缩一段视频的时间比回放(解压缩)该视频的时间要多得多。 二、H.263压缩编码格式  1 H.263压缩编码格式
        H.263 视频编码标准是专为中高质量运动 图像压缩所设计的低码率图像压缩标准。H.263 采用运动视频编码中常见的编码方法,将编码过程分为帧内编码和帧间编码两个部分。I帧内用改进的DCT 变换并量化,在帧间采用1/2 象素运动矢量预测补偿技术,使运动 补偿更加精确,量化后适用改进的变长编码表(VLC)地量化数据进行熵编码,得到最终的编码系数。
 



posted @ 2013-05-16 20:52  zhiweiyouzhishenghuo  阅读(432)  评论(0编辑  收藏  举报