首页 > 范文大全 > 正文

基于VC++的YUV视频格式处理研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于VC++的YUV视频格式处理研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

针对RGB与YUV颜色空间转换的问题,在对现有的RGB颜色空间到YUV颜色空间的转换关系进行分析比较的基础上,提出了颜色空间转换的功能需求,并确定可以实现RGB到YUV颜色空间的转换,探讨了使用C++语言设计实现RGB到YUV颜色空间转换的开发过程,着重分析了它们之间转换的算法等关键开发技术。实验结果显示所设计视频格式处理技术具有明显的优势。

YUVRGB颜色空间VC++

1引言

当今时代,随着计算机多媒体技术的发展,彩色图像提供了更丰富的信息,能表达更多的信息,给人以更为丰富的视觉感受,在视频文件处理的研究中, Sherin Youssef教授等人提出一种基于离散小波变换的彩色和时域信息多的目标跟踪算法。其中YUV的发明在彩色电视与黑白电视的过渡时期。黑白视讯只有Y视讯,也就是灰阶值。到了彩色电视规格0的制定,是以 YUV/YIQ的格式来处理彩色电视图像,把 UV视作表示彩度的 C(Chrominance或Chroma),如果忽略 C信号,那么剩下的 Y(Luma)信号就跟之前的黑白电视信号相同,这样一来便解决彩色电视机与黑白电视机的相容问题。YUV最大的优点在于只需占用极少的带宽。目前研究人员在视频格式转换方面也取得了许多成果。随着高清影音的发展,视频格式转换器多了一层新的意义。通过索尼等高清摄像机录制的MTS高清视频,其分辨率可高达1920*1080,已经达到全高清标准,这种高清视频格式的体积非常巨大,对于普通家庭,它的保存严重增大了当前容量尚不够的硬盘的负荷,通过视频格式转换器,将MTS转RMVB,即可将高达几G的高清视频压缩到几百M甚至一百多M,也能满足一般画质要求。但同时也因信息量大而在传输和储存中给人们带来了新的挑战。由于这些彩色图像采用不同的色彩空间表现而存在一定的冗余,而且不同的色彩空间适合不同的应用场合,如何有效地利用这些丰富多彩的颜色空间成为数字图像处理中的一个新问题。

2颜色空间概述

2.1 YUV颜色空间模型

现实世界中的颜色都需要一个量化的衡量标准,所以可以使用颜色空间模型来描述各种颜色,而且人们对颜色的感知不是很敏感,所以需要使用不同颜色空间模型来描述不同的颜色以满足不同应用领域的不同需求。其中接触最多的颜色空间是RGB颜色空间和YUV颜色空间,RGB颜色空间是按红绿蓝三基色加光系统的原理来描述颜色,而YUV颜色空间则是按亮度和色差的原理来描述颜色。颜色空间模型见如图2.1。

2.2YUV颜色空间

通常在现代彩色电视系统中,通过彩色的CCD摄像机或者三管彩摄像机进行录制,然后将录制的彩色图像信号经过隔离、放大矫正后就得到了RGB,之后经过色彩叠加就得到了Y亮度信号(图像的灰度值)和R-Y(即U)、B-Y(即V)两个色度信号(即描述图像色彩及饱和度的属性),最终将亮度信号和对应的两个色度信号使用同一信道统一发送出去,这就是YUV颜色空间的表示方式。

3 YUV采样格式及存储方式

YUV通常有两大类格式:打包格式和平面格式。其中打包格式是将YUV分量存放在同一数组中由几个相邻的像素组成一个宏像素;而平面格式是将YUV三个分量分别由三个数组分开存放,就像是一个三维平面一样。

3.1 YUV采样格式

YUV中亮度参量和色度参量是分开表示像素格式的,这样做的目的不但可以避免亮度参量和色度参量的相互干扰,还可以降低对色度的采样率并且不会对图像质量有太大影响。由于YUV的色度频道的采样率比Y 频道低,同时不会明显降低视觉质量,所以可以采用AUBUC的表示方法来描述U 、V 与Y 的采样频率比例。其中灯光样例用叉来表示,色度样例则用圈表示。

YUV4U2U0采样是每四个Y共用一组UV分量,主要有两种常见形式,其中一种是在 ITU-R Recommendation BT.601中进行了定义,主要应用与MPEG-1视频中及ITU-T recommendations H.261和 H.263中,另一种形式应用与MPEG-2视频中。图 3.1和3.2分别显示了这两种方案的采样网格。

这两种方案相比较,由于MPEG-2方案更易实现YUV4U2U2格式和YUV4U4U4格式所定义的采样网格的转换,所以,MPEG-2方案在Windows系统中作为4U2U0格式的默认转换方案。

4 BMP位图转换成YUV视频的实现

4.1 BMP文件格式

计算机中数字图像都是以文件的形式进行存储和记录的,通常图像文件主要由文件头、文件体和文件尾三部分组成。位图文件(BMP)格式是由Microsoft公司为其Windows环境设置的图像文件存储格式。BMP位图文件默认的扩展名是BMP或者DIB。BMP图像文件包含位图文件头(BITMAPFILEHEADER)、位图信息头(BITMAPINFOHEADER)、调色板(Palette)、实际的位图数据(Image Data)四部分。

对于真彩色图,图像数据就是实际的R、G、B值。图像的每一扫描行由表示图像像素的连续的字节组成,每一行的字节数取决于图像的颜色数目和用像素表示的图像宽度。规定每一扫描行的字节数必需是4的整倍数,也就是DWORD

对齐的。扫描行是由底向上存储的。如图4.1所示。

4.2 RGB到YUV的转换关系

在处理现实世界的图像时,RGB并非很有效,因为它对所有颜色都用等长像素点的R、G、B三色加以合成,这就使得每个像素在R、G、B三个成分上拥有相同的像素和显示分辨率,而且处理RGB颜色空间的图像也不是最有效的。综上所述,为了满足新的需求很多地方都采用YUV颜色空间,YUV主要是由于U、V分量可以实现高度压缩。

RGB到YUV转换公式为:

Y=INT(16.5+(0.257R+0.504G+0.098B))

Cb=INT(128.5+(-0.148R-0.291G+0.429B))

Cr=INT(128.5+(0.439R-0.368G-0.071B))

由于数字视频在存储时数据量大,因此为了便于传输,需要对其进行压缩后通过播放器才能播放出来。压缩后的视频主要分为两类:一类是面向存储的,另一类是面向流式媒体,经常应用在流媒体电影和显示框转播中。论文中主要采用单帧或多帧RGB格式的视频图像转换成YUV420/YUV422格式的视频文件,并保存成YUV格式的文件。主要使用vc++实现RGB到yuv的转换的算法:

首先使用一个循环语句来控制滚动条的状态的变化,开始时滚动条的状态为空,并且它的值为1,当转换成功后,对应滚动条的状态显示为全彩色,并且它的值为100。再者实现的功能是将BMP位图转换成YUV420采样格式的视频文件。

其中释放内存的操作,释放内存的好处是节省开发空间,提高开发效率,使用时获得不使用时释放。再者实现的功能是进度条的输出。

5软件测试的效果

本软件针对的对象是用户,所以首先从用户角度出发去测试,一方面验证该软件是否能实现转换功能,另一方面验证是颜色空间是否可以实现转换。由于该软件转换后的YUV文件需要使用指定PC的播放器才能播放,下面是BMP图像转换成YUV420/YUV422视频图像转换前后如下图5.1和图5.2。本转换软件经过测试后,可以实现BMP位图到YUV视频格式的转换,主要包括BMP位图到YUV(4U2U2/4U2U0)视频格式和BMP位图到Y、U、V(4U2U2/4U2U0)视频格式的转换,验证了软件中所涉及的算法的正确性和可塑性,能很好的满足用户的需求。

6总结

本软件主要实现将单个或多个连续的BMP位图转换成单帧的YUV视频或者多帧的YUV视频,与其他软件相比,首先本软件作为单独的BMP转YUV视频文件可以嵌套到其他格式的转换软件中使用,而且突破了以往转换软件中只能将单个的BMP位图转换成YUV视频格式文件。软件中转换成的.Y/.U/.V文件并不能使用YUV播放器进行播放,这种文件是将单帧的YUV格式进行隔离后分为三个分量进行存储,可以为转换成不同格式的YUV视频文件做准备。

参考文献:

[1]滕升华,沈怡平.颜色空间在图像彩色化处理中的应用分析[J].计算机科学,2009(10):277-279.

[2]刘云粼,王树东.基于SSE2的YUV与RGB色彩空间转换[J].中国图象图形学报,2010(01):45-49.

[3]张琳,刘曦,李大海,王琼华.一种YUV颜色空间下的多视差图偏色校正方法[J].液晶与显示,2010(02):278-282.

[4]杨Z,朱雷.基于RGB颜色空间的彩色图像分割方法[J].计算机与现代化,2010(08):147-149 +171.

[5]张珍,跃祥.YCgCr与YCgCb颜色空间的肤色检测[J].计算机工程与应用,2010(34):167-170.

[6]冯永超,罗敏,贵明.一种快速YUV-RGB彩色空间变换方法[J].微型机与应用,2002(07):59-60.