当前位置:首页 > EDA > 电子设计自动化
[导读]摘要:文章介绍了YCbCr色彩空间和RGB色彩空间之间的转换的方法,实现了不同规模以及不同数据结构的YCbCr到RGB的快速硬件转换。采用数据重排列和数据分离等方法,不仅支持QCIF到HDTV多种分辨率的视频转换,而且支持YC

摘要:文章介绍了YCbCr色彩空间和RGB色彩空间之间的转换的方法,实现了不同规模以及不同数据结构的YCbCr到RGB的快速硬件转换。采用数据重排列和数据分离等方法,不仅支持QCIF到HDTV多种分辨率的视频转换,而且支持YCbCr444、YCbCr422和YCbCr420等多种打包或平面YCbCr格式。本设计方案已用VerilogHDL语言实现,并在FPGA平台验证通过,转换后的RGB视频可直接输出到显示器显示,并能实现视频控制,存储,回放等功能。

0 引言

色彩空间是通过数值的形式来描述颜色,在数字电视和计算机领域最常用到的为RGB(Red,Green,Blue)色彩空间和YCbCr(Luminance,

Chroma Blue,Chroma Red)色彩空间。RGB是最常见的色彩空间,通过红、绿、蓝三种基色相互叠加从而产生其它颜色。由于其设备的独立性,它被广泛应用于计算机图形、成像系统和彩色电视之中,如现在普遍的计算机显示器用的VGA接口所需要的数据类型就是RGB。YCbCr色彩空间则是灰度和色差的叠加,这种色彩空间因易于压缩和处理,广泛应用于广播、电视系统和图像处理。

由于不同色彩空间在视频设备的使用,使色彩空间的相互转换成为必需。随着计算机、互联网和多媒体技术的飞速发展,对色彩空间转换的要求也越来越高,这更突显出色彩空间转换的重要性。

色彩空间转换的主要目的是令所有的输入数据在进行运算和处理或者显示前都基于相同的色彩空间。对于YCbCr转RGB而言,主要的问题在于两个方面,一个是视频格式的规模,也就是我们所说的分辨率,高的分辨率意味着需要更多的硬件资源和更快速的计算过程;另一个是YCbCr本身具有很多不同的格式,而目前的转换器一般都是基于其中一种固定的格式,对于其他格式的YCbCr数据并不支持,所以为了支持多种YCbCr数据格式,必须把不同的YCbCr数据统一到一种格式来实现转换。

1 YCbCr与RGB色彩空间

1.1 YCbCr色彩空间

在常见的消费类视频产品中,常用的色彩空间是YCbCr。人眼对视频的Y分量更敏感,因此可以在采样时适当减少Cb和Cr分量从而实现视频的压缩,因此YCbCr格式有三种不同格式:4:2:0、4:2:2和4:4:4。这三种格式又分为打包模式和平面模式两大类,区别在于不同像素的Cb和Cr位于Y分量之间还是之后。

移动视频设备是以YCbCr4:2:0的方式记录,随着H.264视频解码标准的推广和良好的压缩比率,YCbCr4:2:0应用越来越多。4:2:0表示每4个像素有4个亮度分量,2个色彩分量,以8个像素点为例,数据格式如下:

4:2:2表示每4个像素有4个亮度分量,4个色彩分量,是数字电视、有线视频传输设备的最常用格式。以8个像素点为例,数据格式如下:

4:4:4是最接近RGB的采用格式,每一个像素都有三个分量,应用于需要高质量视频采集的专业视频产品。以8个像素点为例,数据格式如下:

由这三种数据格式分析可知,他们仅在采样点和采样点分布上有所不同,Y分量是每个像素都需要采样的,而Cr、Cb分量可以根据对数据格式和视频质量要求的不同而自主选择。这三种数据格式因为排列顺序不同又叮分为不同的类型,所以实现可变规模的多格式转换首先要把不同的YCbCr格式转换成一个易于统一的格式,三个数据格式的对比如表1所示。

综上所述,YCbCr的采样格式将直接影响到图像数据存取空间大小,以及读取和存储图像的速率。要实现YCbCr4:2:0,YCbCr4:2:2与YCbCr4:4:4三种格式都能够成功地转换为RGB信号,就必须把这三种格式转换为同一种格式,然后再转换为RGB信号的格式。为最大限度保留各种图像质量,选用YCbCr4:4:4平面格式为统一格式。通过逻辑排列电路把不同格式的YCbCr序列转换成YCbCr4:4:4序列,并把YCbCr信号分别存在三个不同的FIFO中,再由YCbCr—RGB转换模块读取三个并行FIFO中的序列进行转换。实现逻辑结构如图4所示。

1.2 YCrCb到RGB色彩空间变换原理

YCrCb色彩空间与RGB色彩空间的对应关系如下:

人眼能够分辨的颜色数量远小于256,所以一般都使用8bit的位宽来描述颜色,其中R、G、B、Y、Cr、Cb都为0~255的整数。为最大程度减少变换过程产生的误差,转化成公式(2)计算。

R=1.164(Y-16)+1.596(Cr-128)

G=1.164(Y-16)-0.813(Cr-128)-0.392(Cb-128) (2)

B=1.164(Y-16)+2.017(Cr-128)

注意到等式中包含的7个因式,其中有3个是相同的,该因式只需计算1次,送到相应的加法器进行之后的运算。

由于在硬件实现时,计算过程不支持浮点计算,所以要把计算过程进行取整,如式(3)。

R=1.164Y+1.596Cr-223

G=1.164Y-0.813Cr-0.392Cb-173 (3)

B=1.164Y+2.017Cb-277

硬件实现框图如图5所示。

2 YCrCb到RGB变换的FPGA实现

2.1 硬件实现方法和优化

根据视频格式转换的特点和需求,本文采用FPGA硬件系统来实现多种视频格式的YCbCr格式转换和RGB显示。在FPGA设计中由色彩空间YCrCb到RGB的转换有三种方法。第一种是利用嵌入式处理器,采用软件的办法实现转换,这样做一来硬件消耗大,另一方面在FPGA上处理器的运算速度达不到大数据实时显示的要求。第二种是用Verilog代码来表达转换公式,这种方法需用到5个乘法器,而且YCbCr到RGB的转化均是通过大量的浮点运算来实现的,每个像素点都要进行一次计算,所以如果是高清视频,用100MHz时钟每帧图像的转换将为此耗费近54ms的时间,而如果要达到30f/m的显示要求,这个时间不能超过33ms。第三种方法是利用查找表法,把乘法结果用查找表的形式取得。这种方法不仅减小了浮点运算的误差,也使得计算速度比前两种方法快了一个数量级,并且YCbCr的值都在0~255之间,所以每个查找表项目都只有256项,并不会过多地占用硬件资源。

查找表中预存的数值是各个因式的值,为提高的內部计算精度,又不占用过多的RAM资源,综合考虑可将各个因式数值扩大2倍进行存储,RAM的数据宽度可设定为9位。由查找表读出的数值经过加减运算后再右移一位的简单运算就可以把数值缩小到原先的位数,再经过钳位运算限制在0~255之间,计算公式如下:

R=(2.328Y+3.192Cr-446)>>1

G=(2.328Y-1.626Cr-0.784Cb+346)>>1 (4)

B=(2.328Y+4.034Cr-554)>>1

用查表法实现转换中的乘法计算,在硬件实现YCbCr转RGB的实时视频显示有着重要的意义,表2是YCbCr转RGB不同方法的实验数据,本文用于验证该模块的器件是Altera公司的Cvclone2-EP2C70F896C6。占用的综合工具为Design Compiler,通过时序约束最快时钟频率可以达到102MHZ。

浮点乘法是影响转换效率的关键,而使用查找表法避免了浮点乘法的运算,使转换效率提高了1个数量级。要支持高清格式30f/s实时转换,转换时间要低于33ms,加之数据存储的延时,用查找表构造转换模块是必要的。用查找表法实现的模块结构如图6所示。

通过构造RAM1~RAM5五个查找表映射单元,把输入的信号分别按式(4)的方式计算出RGB相应的结果,直接送给显示缓存寄存器。本文用的测试平台是Altera DE2-70开发板,系统结构如图7所示,内部主要分为数据重组模块、查找表模块、控制模块和显示模块。数据重组模块能通过设置不同的分辨率和YCbCr格式把YCbCr数据分别提取储存在三个FIFO中,查找表模块负责通过FIFO中Y、Cr、Cb的值输出浮点乘法的运算结果,再加减运算后输出转换后RGB24位的值。控制模块负责控制码流的播放、暂停和存储回放等扩展功能。显示模块负责驱动码流到VGA显示。

2.2 系统验证

2.2.1 数据验证

系统验证包含两个部分,首先要验证不同格式的YCbCr转换为YCbCr444的码流是正确的,这部分可以先用ModelSim把转换逻辑进行仿真,分别把Y、Cb、Cr三个数据按顺序存在对应的三个FIFO中。

之后通过MATLAB的数据比较命令strcmp,将FIFO中的YCbCr444数据与MATLAB转换的数据进行比较。分别使用QCIF、CIF、HDTV三种分辨率进行随机一帧码流的验证,返回值都为1,证明转换系统可靠。

系统整体通过ModelSim仿真结果如图8所示。

在图8中,adr_y、adr_u、adr_v,为数据重组后的YCbCr地址,y_in、Cb_in、cr_in分别为待转换的数据,R_out、G_out、B_out为转换后的输出结果。ena_in和ena_out为输入使能和输出使能信号,这两个信号可以控制视频转换的启动和停止,在2个时钟周期之后就可以有显示结果出现,这仅仅需要6 μs,人眼根本感觉不到延迟,可以用在对转换速度要求较高的系统上。像素计数器为cn,在一帧图像完全转换后帧计数器counter会计数一次,通过这个可以提取完整的一帧图像进行检验。

2.2.2 FPGA系统验证

将整个系统烧录到FPGA中进行硬件验证,输入的视频编码通过SD卡读入系统,进行YCbCr格式的重组,这里选用了三种格式三种分辨率的视频编码,如图9所示分别为YCbCr420格式OCIF分辨率、YCbCr422格式CIF分辨率和YCbCr444采样格式HDTV分辨率通过YCbCr-RGB转换后某一帧图像的显示结果。显示结果表明该方法可以正确实现30f/s的不同规模和不同格式的YCbCr-RGB实时转换。

3 结语

本文基于FPGA构建硬件平台,实现不同分辨率和不同格式的YCbCr视频数据的存储、处理和VGA输出,具有结构紧凑、功能完善、配置灵活、系统稳定的特点。视频格式转换方法适用于大部分视频图像处理的通用平台,满足视频图像高精度快速实吋转换和显示的要求。可应用于多种制式视频采样数据与输出接口数据格式不匹配的场合,具有一定的应用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭