您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于FPGA的视频格式转换系统设计 正文
基于FPGA的视频格式转换系统设计

基于FPGA的视频格式转换系统设计

点击数:7349 次   录入时间:03-04 11:45:20   整理:http://www.55dianzi.com   DSP/FPGA技术

  摘 要: 针对电视制式PAL /NTSC 信号输出VGA 显示格式的解决办法,详细讲述了基于FPGA 视频格式转换系统的设计实现。采用Cyclone Ⅲ系列的EP3C1*84C6作为核心处理器件,实现了NTSC /PAL制式视频的解码、色空间转换( CSC)、帧速率转换和隔行逐行转换、缩放、视频DAC 转换,最终实现分量R、G、B的VGA 视频格式的视频输出,分辨率可达1 600 × 1 200@ 100 Hz。

  1 系统设计

  设计使用了ALTERA 的EP3C1*84C6型号FPGA 作为视频处理核心,连接两片DDR2 SDRAM,DDR2芯片型号为M ICron的MT47H 32M16BN _37E,作为系统的数据存储器件,带宽为32 bit,时钟速率为200MHz,数据速率为400 Mbps。视频解码芯片为TVP5147,视频DAC 采用高性能ADV7123。整个系统框架如图1所示。

1.jpg
图1 视频处理板框图

  2 硬件功能模块。

  2. 1 视频解码

  TVP5147的解码过程如图2所示。

2.jpg


图2 TVP5147解码过程

  视频解码芯片TVP5147复位后,通过MCU 向其正确配置I2C寄存器。本文的TVP5147的I2C 寄存器配置的值如表1所示。

表1 TVP5147的I2C寄存器设置

3.jpg



www.55dianzi.com
  2. 2 视频存储器

  在视频处理模块中包括了大量的视频数据存储器模块,主要可分为行存储器、帧存储器以及查找表存储器3类。

  ( 1)行存储器用于存储视频中一行的数据,由于数据量不大,用FPGA 内部RAM 来实现。

  ( 2)帧存储器用于存储一帧视频数据,由于数据量大,用DDR2来实现。

  ( 3)查找表存储器用于产生不规则的输入输出相应,如Sin函数和Gamma矫正曲线。

  2. 3 FPGA 模块设计

  FPGA 模块设计如图3。

4.jpg


图3 FPGA 模块框图

  2. 3. 1 数据串并转换和色度重采样模块

  此模块分为串并转换和色度重采样两个部分。

  串并转换主要是为了把TVP5147 输出的混合数据转换为分量数据。由于采用了BT. 656 10- b it 4:2:2模式,其输出数据时钟为像素时钟( 13. 5 MHz) 的两倍,输出数据依次为Cb0,Y0,C r0,Y1,Cb1,Y2,C r1 等,本模块将其转为4:2:2 的Y‘CbCr 分量数据,RTL 仿真结果如图4所示。

串并转换模块仿真结果

图4 串并转换模块仿真结果

  虽然视频分量传输带来了更好的图像还原度,但同时也带来了数据带宽的加大,因此很多时候人们把视觉上不那么重要的色差信号进行了重采样为4:2:2 (或4:1:1)以降低传输数据带宽。而在视频和显示系统内部基本使用4:4:4 的信号,因此色度重采样也成了视频转换中必不可少的模块。本文实现了4:2:2 到4%4%4和4:4:4 到4:2:2的转换。4:2:2 到4:4:4 的转换方法有直接重复法、一维滤波法以及亮度自适应滤波法。

  考虑硬件成本和处理质量,我们选用一维滤波法,即只考虑色度通道在水平方向的滤波。图5为采用n抽头FIR滤波器进行色度重采样的模块框图。

5.jpg


图5 4:2:2 到4:4:4色度重采样模块

  2. 3. 2 色空间转换模块( CSC )

  由于不同视频标准采用了不同的色彩空间,而且有些视频处理需要在特定色空间里处理,因此色空间转换是十分必要的。色空间转换实际上是一个三输入经线性矩阵变换后得到新的三输出,其基本的转换公式如下:



  上式中的Ax,Bx,Cx,Sx 分别代表不同空间之间的转换系数。一般视频系统中涉及的色空间包括电脑的R' G ' B ' 空间,NTSC 和PAL的Y'UV 空间,以及Y’CbCr空间。图6为转换模块框图,其中的转换系数可任意配置,即标准不限定。上节中的10 b it Y'CrCb可以通过这个色空间转换器,用标清到高清的转换系数转为8 b it的BT. 709标准Y'CrC 数据。

6.jpg
图6 色空间转换模块( Rx 为round ing 值)

  输入8 bit的R'G' B'信号,先经R' G' B' 到Y'CbC r转换成10 b it的Y‘ CbC r信号,然后再转成8 bit的R' G'B ' 信号。其中色空间转换采用的是高清标准,采用小数部分为16 b it的定点小数来处理转换系数。图中上部分为8 bit的R'G'B'数据输入,中间为10 b it的Y'CrCb数据,下部分为8 b it的R'G'B'数据输出。由于做了流水线处理,输出有3 个时钟的延迟。

8 b its R’G‘B’转10 bits Y‘ CbC r再转回8 b its R’G‘B’仿真结果

图7  8 b its R’G‘B’转10 bits Y‘ CbC r再转回8 b its R’G‘B’仿真结果

www.55dianzi.com

  2. 3. 3 帧率转换和隔行逐行转换模块

  隔行转逐行的方法可以分为空域和时域两个方面。空域算法简单,易于硬件实现,常见有直接重复行和在垂直方向上进行插值得到缺失的行。时域方法涉及到相邻场之间的运算,常见方法有场混合、运动自适应去隔行算法以及复杂度最高的运动补偿去隔行算法。本文折衷考虑使用场混合方法,即将场数据相邻场两两合成为逐行的帧数据,如图8所示。

场混合法实现隔行逐行变换

图8 场混合法实现隔行逐行变换

  PAL和SECAM 制式的场频为50 Hz,而NTSC 为60H z,当需要进行不同场频信号的叠加就需要进行场频转换。大多视频设备使用的帧频为60 H z,因此本文只涉及50~ 60 H z的帧率转换。常用方法有场重复、场插值、运动补偿法,其中场插值算法如图9所示。

9.jpg
图9 50 Hz转60 Hz的场插值方法

  对于PAL制式从上面两图可知,只要能同时读取3行场数据即可以实现隔行逐行变换和帧率转换一次完成。如输出的第1帧由输入的第1,2 场数据决定,而输出的第2 帧由输入的第1,2,3场数据决定,而输出的第3帧由输入的第2,3,4 场数据决定,依次类推。

  系统使用位宽为48的DDR2存储器作为场存储器,而在FPGA 内部DDR2控制器端数据宽度为96。如产生第2 帧输出的处理过程为,在第1场存入时,把高64bit屏蔽掉不写入,而低32 b it写入场数据(实际只利用30 b it)。在第2场存入时,把高32 位和低32 b it屏蔽掉不写入,而中间32 bit写入场数据。在第3 场存入时,把低64 b it屏蔽掉不写入,而高32 bit写入场数据。这样在数据读取的时候可以顺序同时读出3场数据,然后进行上述的组合插值运算,即可得到输出。场存储器数据内格式如图10所示。

10.jpg
  

图10 可以实现同时去隔行和帧率转换的场存储器

  注意新的输入场数据不能覆盖掉相邻的数据,因此在数据存入时屏蔽位是在不断跳动的,并以5 场为一个周期。虽然这样降低了写入的效率,但由于所有数据读写都是顺序操作,因此从整体上来说仍然提高了DDR2 的存取效率,并且使操作变得简单。对于NTSC 制式,由于帧率转换部分可不用考虑,可以将只使用低64位部分进行两场存储。

[1] [2]  下一页


本文关键字:格式转换  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术