颜色空间和视频编码

来源:互联网 发布:nat穿越java实现 编辑:程序博客网 时间:2024/06/07 01:31

RGB颜色空间

计算机色彩显示器显示色彩的原理与彩色电视机一样,都是采用RGB相加混色的原理,通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩的。这种色彩的表示方法称为RGB色彩空间表示。在多媒体计算机技术中,用的最多的是RGB色彩空间表示。
       根据三基色原理,用基色光单位来表示光的量,则在RGB色彩空间,任意色光F都可以用RGB三色不同分量的相加混合而成:

Fr [ R ] + g [ G ] + b [ B ]

我们可知自然界中任何一种色光都可由RGB三基色按不同的比例相加混合而成,当三基色分量都为0(最弱)时混合为黑色光;当三基色分量都为k(最强)时混合为白色光。任一色彩F是这个立方体坐标中的一点,调整三色系数rgb中的任一系数都会改变F的坐标值,也即改变了F的色值。RGB色彩空间采用物理三基色表示,因而物理意义很清楚,适合彩色显象管工作。然而这一体制并不适应人的视觉特点。因而,产生了其它不同的色彩空间表示法。

RGB(红色、绿色、蓝色)色彩空间定义,运用在显示器系统时,彩色阴极射线管,彩色光栅图形的显示器 都使用RGB数值来驱动RGB电子枪发射电子,并分别激发荧光屏上的RGB三种颜色的荧光粉 发出不同亮度的光线,并通过相加混合产生各种颜色;扫描仪也是通过吸收原稿经反射或透射而发送来 的光线中的RGB成分,并用它来表示原稿的颜色。RGB色彩空间称为与设备相关的色彩空间,因为不同 的扫描仪扫描同一幅图像,会得到不同色彩的图像数据;不同型号的显示器显示同一幅图像,也会有不同 的色彩显示结果。

 

YUV

    YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法(属于PAL)。在现代彩色电视系统中,通常采用三管彩色摄影机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号RY(即U)、BY(即V),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的YUV色彩空间表示。采用YUV色彩空间的重要性是它的亮度信号Y和色度信号UV是分离的。如果只有Y信号分量而没有UV信号分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的相容问题,使黑白电视机也能接收彩色电视信号。

优点作用

YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB要求三个独立的视频信号同时传输)。其中“Y”表示明亮度(LuminanceLuma),也就是灰阶值;而“U”和“V” 表示的则是色度(ChrominanceChroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面─色调与饱和度,分别用CrCB来表示。其中,Cr反映了GB输入信号红色部分与RGB信号亮度值之间的差异。而CB反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。

采用YUV色彩空间的重要性是它的亮度信号Y和色度信号UV是分离的。如果只有Y信号分量而没有UV分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。

YUVRGB相互转换的公式如下(RGB取值范围均为0-255)︰
Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U

 

视频压缩技术:

 

新的国际编码标准

 

    图像编码经历了漫长的近半个世纪的发展,如今进入了广泛应用和深入研究的高速发展时期,特别是应用的需求极大地推动着图像编码向更广、更深的方向发展,例如:静止图像通信、可视电话、视频电视会议、数字图像存储、数字电视和高清晰度电视(HDTV)以及虚拟现实(VR)等都迫切需要性能更佳的图像编码技术。为了满足这些要求,则必须将不同性能优良的图像编码算法进行有机结合。自70年代以来,国际标准化组织(ISO)和国际电信联盟(ITU)在这方面做了大量的工作,制定了一系列国际编码标准和建议,且该项工作还在继续。下面简要介绍近年来已推出和将要推出的一些有代表性的国际编码标准和建议。

 

1.1 ITU的H.263建议

    1995年11月,ITU-T推出了关于低比特率视听多媒体终端H.324建议。作为其核心,H.263建议用于极低比特率的视频编码。由于H.263是在H.261建议的基础上发展起来的,其信源编码算法的核心仍是H.261建议中所采用的DPCM/DCT混合编码方法。与H.261建议相比,H.263建议有如下几个特点:

(1)除定义了公共中间格式(CIF)与QCIF两种图像格式外,还定义了Sub-QCIF(128×96)图像格式等;

(2)QCIF图像有99个宏块,每11个宏块为一个块组(GOB),可以表示QCIF图像的1/9;

(3)由于H.263建议的编码比特率比H.261建议更低,因而字头的比特数就越少越好。在块组的字头定义中,对应于图像的第1个宏块,如块组字头为空,只传送宏块数据。对块组的编码模式、宏块类型、运动矢量数据均采用不同的变长编码(VLC)码表,以减少字头的比特数;

(4)采用半像素精度的运动估计,取值范围为(-16.0,+15.5),提高了预测精度,从而进一步降低了比特率;

(5)H.263建议定义了4种编解码模式:非限制运动矢量模式、高级预测模式、PB帧模式和基于句法的算术编码模式。这是提高H.263编解码器性能的关键。

 

1.2 ISO的MPEG-4标准

    活动图像专家组(MPEG)委员会组建于1988年,MPEG标准主要包括MPEG视频、MPEG音频和MPEG系统3个部分。其中MPEG视频是标准的核心,主要包括帧内编码和帧间编码,以消除图像系列的时域冗余和空域冗余。

    MPEG-1和MPEG-2两标准的制定已获得了巨大的社会效益和经济效益,极大地推动了新一代MPEG标准的研究和制定工作。ISO/MPEG委员会自1993年开始规划MPEG-4标准的宏伟蓝图以来,经过5年的艰苦努力,MPEG-4标准现已基本成型,其草案已于1998年12月正式出台。

    MPEG-4标准是极低比特率(小于64kbit/s)的运动图像及其伴音的压缩标准,主要应用于可视电话、视频电视会议、视频邮件等多媒体通信领域。由于现存视频编码标准(如MPEG-1、MPEG-2、H.261、H.263)都只能在帧级水平处理视频信号,因此不能对视频码流中的单个物体进行独立的编码、解码和操纵等,而MPEG-4却能支持对数字音频、视频数据进行基于内容的通信、访问和操纵,它具有灵活的框架结构,能提供一个开放式的工具箱,以支持其常规功能和高级功能,另外它还具有改进的编码效率,能实现极低比特率的编码,因此在视频编码算法上,MPEG-4标准需采用视频目标平面(VOP)以及图像分割、图像拼接等算法,需融合按目标平面编码、轮廓编码、纹理编码、非矩形区域编码以及波形编码(自然合成)等多种编码技术,把人工智能、模式识别、机器人视觉等多种技术综合在一起。

    MPEG-4标准的主要目标是:

(1)专门用于64kbit/s以下极低比特率的音、视频编码;

(2)不仅适用于移动通信和个人通信,而且也适用于固定公用通信网和电视电话网;

(3)适用于窄带多媒体通信等广泛的应用领域;

(4)实现基于内容的压缩编码,并且具有良好的兼容性、伸缩性和可靠性。

为此,MPEG-4标准可实现如下功能:

(1)改进的编码效率;

(2)基于内容的可伸缩性和可操纵性;

(3)噪声环境下的鲁棒性;

(4)具有多媒体数据访问工具;

(5)既能编码图形,又能编码图像;

(6)具有改进的时域随机存取能力。

 

1.3 ISO的MPEG-7标准

    除上述标准外,MPEG-7标准也在酝酿之中,预计将于2000年11月问世。MPEG-7标准作为MPEG家庭中的一个新成员,正式名称为“多媒体内容描述接口”,其主要目标是为各种类型的多媒体信息规定一种标准化的描述,这种描述与多媒体信息的内容有关,便于用户对其感兴趣的各种材料进行快速有效的检索,也就是说以MPEG-7标准定义的多媒体信息将是可查询的,这些信息不仅包括静止图像和活动图像,而且也包括图形、3D模型和语音等,甚至在某些特殊情况下还包括视频信息中物体的运动。需强调的是,MPEG-7标准对多媒体信息的描述与其本身的压缩存储两者之间并没有什么关系,例如:任何未经压缩的多媒体信息都可以用MPEG-7标准来描述,以MPEG-7标准定义的多媒体信息可选用JPEG、MPEG-1、MPEG-2、MPEG-4中的任何一个标准来压缩。

    由于MPEG-7标准建立在MPEG-4标准的基础之上,因此其应用范围将更加广泛,如教育、旅游、娱乐、电子购物等。

 

视频压缩技术的发展趋势

 

    随着社会的高度信息化,特别是Internet的迅猛发展,各种多媒体传输业务将以爆炸性速度增长。为满足人们对多媒体信息的巨大需求,极低比特率的视频编码是当前多媒体通信领域内亟待解决的关键性问题。

 

2.1 基于图像内容的压缩方法

    现有的国际编码标准如MPEG-1、MPEG-2、H.261、H.263等均采用了基于图像块的编码方式,在高压缩比时,会出现方块效应且物体运动不自然。更有甚者,因编码是一帧一帧地顺序进行的,所以无法实现序列图像中物体的独立编码、解码和操纵,同时也难以实现图像编码的可伸缩性。Gerken、Os-termann、Musmann等人先后提出了基于图像内容的压缩方法,克服了基于块的方法所存在的不足,实现了高质量的极低比特率视频编码,但这些方法仍存在如下问题:

(1)由于准确表示物体形状造成了较大的比特开销;

(2)物体的分割和运动估计计算太复杂。

    目前基于图像内容的压缩方法已成为视频编码的研究热点,其中Talluri等人提出的低计算复杂度的方法较具代表性:采用数学形态学求得帧间物体的运动,并以此确定物体的大致形状,根据运动估计,预测出下帧中的物体。对于物体运动估计失败区,采用离散余弦变换(DCT)或离散小波变换(DWT)的方法进行压缩,该方法已作为MPEG-4的竞选方案提交给MPEG委员会。

 

2.2 基于模型的编码方法

    随着VLSI技术的迅速发展和计算机处理速度的加快,高计算复杂度的模型编码方法越来越受到人们的重视,图1为其通用的编解码框图。在编码端,运用计算机视觉技术,以给定模型对视频序列图像中每一个物体进行分析,产生该物体的大小、位置和运动等参数信息。在解码端,根据所获得的物体模型参数信息,运用计算机图形学,可综合出物体的动画模型。为了获得序列图像中物体的帧间运动,还需采用运动跟踪技术,使物体的动画模型能模仿真实物体的运动。如果对物体的恢复质量要求不高,则物体的动画模型便足以表示原序列图像中的物体,而要想获得高质量的恢复物体,则必须对原物体与其对应的动画模型之间的残差信息进行编码,在解码端用该差值信息对恢复出的动画模型进行补偿。

在一般情况下,模型方法建模的对象为图像中的人脸。根据已知的二维或三维人脸模型,获得简单的动画人脸只需500~1000bit/s的开销,而获得较复杂的动画人脸也只不过需5~10kbit/s的开销,对CIF或QCIF格式的彩色视频头肩序列,获得较高质量恢复序列的比特率一般为16~64kbit/s。正因为模型法能获得如此低的比特率,所以它也已成为MPEG-4标准的关键技术之一。

 

2.3 小波与人脸检测相结合的编码方法

    在可视电话、视频电视会议、人机交互等领域内经常出现的视频信息为人的头肩像,这些视频图像一般具有背景静止、头肩运动相对缓慢等特点,采用小波与人脸检测相结合的编码方法对其压缩,可获得较高的压缩效率。

由人眼的视觉心理特性可知,人眼对图像不同区域的主观感受是不同的,也就是说按照人对图像不同区域感兴趣的程度可以将其分为感兴趣区和不感兴趣区。整幅图像主观质量下降的原因往往在于感兴趣区质量的下降,据此采用的编码策略如下:

(1)帧内编码时,保证人脸区的编码精度,给其它区域分配较少的比特;

(2)帧间编码时,用前一帧的人脸区预测后一帧的人脸区,预测误差用小波方法进行压缩,背景区与肩部区可直接粘贴自第一帧。

该编码方法具有如下几个方面的优点:

(1)充分利用人眼视觉的心理特性,保证人脸区的编码精度,使编码比特分配更为合理;

(2)继承了小波编码方法的所有优点;

(3)对人脸图像的背景复杂度不加任何限制;

(4)可容易地实现基于人脸内容的编码可伸缩性,编码比特流适合于ATM环境下传输;

(5)可实现极低比特率编码。

 

 

YUV取样方法:

 

    主要的采样格式有YCbCr 4:2:0YCbCr 4:2:2YCbCr 4:1:1YCbCr 4:4:4。其中YCbCr 4:1:1比较常用,其含义为:每个点保存一个 8bit的亮度值(也就是Y),2x2个点保存一个 CrCb , 图像在肉眼中的感觉不会起太大的变化。所以,原来用 RGB(R,G,B都是 8bit unsigned)模型, 4个点需要 8x3=24 bites(如下图第一个图).而现在仅需要 8+(8/4)+(8/4)=12bites,平均每个点占12bites(如下图第二个图)。这样就把图像的数据压缩了一半。

上边仅给出了理论上的示例,在实际数据存储中是有可能是不同的,下面给出几种具体的存储形式:

1YUV 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

2YUV 4:2:2

每个色差信道的抽样率是亮度信道的一半,所以水平方向的色度抽样率只是4:4:4的一半。对非压缩的8比特量化的图像来说,每个由两个水平方向相邻的像素组成的宏像素需要占用4字节内存(亮度2个字节,两个色度各1个字节)。。

下面的四个像素为: [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]

   

3YUV 4:1:1

4:1:1的色度抽样,是在水平方向上对色度进行4:1抽样。对于低端用户和消费类产品这仍然是可以接受的。对非压缩的8比特量化的视频来说,每个由4个水平方向相邻的像素组成的宏像素需要占用6字节内存(亮度4个字节,两个色度各1个字节)。

下面的四个像素为: [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]

4YUV4:2:0

4:2:0并不意味着只有Y,Cb而没有Cr分量。它指得是对每行扫描线来说,只有一种色度分量以2:1的抽样率存储。相邻的扫描行存储不同的色度分量, 也就是说,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0...以此类推。对每个色度分量来说,水平方向和竖直方向的抽样率都是2:1,所以可以说色度的抽样率是4:1。对非压缩的8比特量化的视频来说,每个由2x222列相邻的像素组成的宏像素需要占用6字节内存(亮度4个字节,两个色度各1个字节)。

下面八个像素为:[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]

 

 

 

 

音频编码技术:

 

   采样率和采样大小

声音其实是一种能量波,因此也有频率和振幅的特征,频率对应于时间轴线,振幅对应于电平轴线。波是无限光滑的,弦线可以看成由无数点组成,由于存储空间是相对有限的,数字编码过程中,必须对弦线的点进行采样。采样的过程就是抽取某点的频率值,很显然,在一秒中内抽取的点越多,获取得频率信息更丰富,为了复原波形,一次振动中,必须有2个点的采样,人耳能够感觉到的最高频率为20kHz,因此要满足人耳的听觉要求,则需要至少每秒进行40k次采样,用40kHz表达,这个40kHz就是采样率。我们常见的CD,采样率为44.1kHz。光有频率信息是不够的,我们还必须获得该频率的能量值并量化,用于表示信号强度。量化电平数为2的整数次幂,我们常见的CD16bit的采样大小,即216次方。采样大小相对采样率更难理解,因为要显得抽象点,举个简单例子:假设对一个波进行8次采样,采样点分别对应的能量值分别为A1-A8,但我们只使用2bit的采样大小,结果我们只能保留A1-A84个点的值而舍弃另外4个。如果我们进行3bit的采样大小,则刚好记录下8个点的所有信息。采样率和采样大小的值越大,记录的波形更接近原始信号。

有损和无损

根据采样率和采样大小可以得知,相对自然界的信号,音频编码最多只能做到无限接近,至少目前的技术只能这样了,相对自然界的信号,任何数字音频编码方案都是有损的,因为无法完全还原。在计算机应用中,能够达到最高保真水平的就是PCM编码,被广泛用于素材保存及音乐欣赏,CDDVD以及我们常见的WAV文件中均有应用。因此,PCM约定俗成了无损编码,因为PCM代表了数字音频中最佳的保真水准,并不意味着PCM就能够确保信号绝对保真,PCM也只能做到最大程度的无限接近。我们而习惯性的把MP3列入有损音频编码范畴,是相对PCM编码的。强调编码的相对性的有损和无损,是为了告诉大家,要做到真正的无损是困难的,就像用数字去表达圆周率,不管精度多高,也只是无限接近,而不是真正等于圆周率的值。

使用音频压缩技术的原因

要算一个PCM音频流的码率是一件很轻松的事情,采样率×采样大小值×声道数 bps。一个采样率为44.1KHz,采样大小为16bit双声道PCM编码的WAV文件,它的数据速率则为44.1K×16×2 =1411.2 Kbps。我们常说128KMP3,对应的WAV的参数,就是这个1411.2 Kbps,这个参数也被称为数据带宽,它和ADSL中的带宽是一个概念。将码率除以8,就可以得到这个WAV的数据速率,即176.4KB/s。这表示存储一秒钟采样率为44.1KHz,采样大小为16bit,双声道的PCM编码的音频信号,需要176.4KB的空间,1分钟则约为10.34M,这对大部分用户是不可接受的,尤其是喜欢在电脑上听音乐的朋友,要降低磁盘占用,只有2种方法,降低采样指标或者压缩。降低指标是不可取的,因此专家们研发了各种压缩方案。由于用途和针对的目标市场不一样,各种音频压缩编码所达到的音质和压缩比都不一样,在后面的文章中我们都会一一提到。有一点是可以肯定的,他们都压缩过。

频率与采样率的关系

采样率表示了每秒对原始信号采样的次数,我们常见到的音频文件采样率多为44.1KHz,这意味着什么呢?假设我们有2段正弦波信号,分别为20Hz20KHz,长度均为一秒钟,以对应我们能听到的最低频和最高频,分别对这两段信号进行40KHz的采样,我们可以得到一个什么样的结果呢?结果是:20Hz的信号每次振动被采样了40K/20=2000次,而20K的信号每次振动只有2采样。显然,在相同的采样率下,记录低频的信息远比高频的详细。这也是为什么有些音响发烧友指责CD有数码声不够真实的原因,CD44.1KHz采样也无法保证高频信号被较好记录。要较好的记录高频信号,看来需要更高的采样率,于是有些朋友在捕捉CD音轨的时候使用48KHz的采样率,这是不可取的!这其实对音质没有任何好处,对抓轨软件来说,保持和CD提供的44.1KHz一样的采样率才是最佳音质的保证之一,而不是去提高它。较高的采样率只有相对模拟信号的时候才有用,如果被采样的信号是数字的,请不要去尝试提高采样率。

流特征

随着网络的发展,人们对在线收听音乐提出了要求,因此也要求音频文件能够一边读一边播放,而不需要把这个文件全部读出后然后回放,这样就可以做到不用下载就可以实现收听了;也可以做到一边编码一边播放,正是这种特征,可以实现在线的直播,架设自己的数字广播电台成为了现实。

 

 

 

 

 



原创粉丝点击