摘 要: 针对电视制式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 视频处理板框图

  2 硬件功能模块。

  2. 1 视频解码

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

图2 TVP5147解码过程

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

表1 TVP5147的I2C寄存器设置

  2. 2 视频存储器

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

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

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

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

  2. 3 FPGA 模块设计

  FPGA 模块设计如图3。

图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 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 色空间转换模块( 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 个时钟的延迟。

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

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

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

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

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

图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 可以实现同时去隔行和帧率转换的场存储器

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

  2. 3. 4 缩放模块

  视频缩放包括放大( up scaling ) 和缩小( downsca ling )两个方面,而进行缩放的基本方法为空间插值。下式为对图像进行插值的一般数学表达式,其中g ( i,j)为缩放图像中待插值点的像素值,f ( k,l)为原始图像中坐标( k,l)处的像素值,h( i- k,j - l)为插值基函数。

  插值基函数的选择可以有很多种,通常有二维的矩形函数、线性函数、三次函数及S inc 函数等,它们分别对应于最近邻插值、线性插值、三次插值以及理想插值(实际中利用S inc函数截断后插值) ,其插值效果为从差到好排列,但实现难度也依次提高。在实际处理中是利用滤波器来实现插值基函数,而且由于这些插值的对称性,可以将其分解为横向和纵向插值两部分分开进行,如二维线性插值函数对应双线性插值( Bilinear Interpo lation),三次函数对应双三次插值( B icub ic Interpo lation) ,对于Sinc 插值函数实际中为多相位插值( Po lyphase Interpo lation)。本文使用多相位插值法实现图像缩放,实际上在4 ? 4领域大小内进行多相位插值和三次插值几乎是一样的,只是对应插值函数值略微不同。多相位插值法是通过对输出点对应原图中的领域进行Lanczos2 函数移相插值来产生输出点的。如图11所示。

图11 Lanczos2 函数

  假设g ( u,v )为经缩放后输出图像中一点,其还原到原图像的最近点为f ( i,j) 且两者在原图中相差( x,y )的坐标,则输出点g ( u,v)的数学表达如下,从其可以看出实际上分为两步实现分别进行垂直滤波和水平滤波。

  其中有关系式: i = ( u ×W in ) /W out,j = ( v ×H in) /H out; x = ( u × W in)% W out,y = ( v ×H in)%H out。W in 和Wout分别为缩放前后的图像宽度,H in和H out分别为缩放前后的图像高度。图12为4 ×4领域水平垂直相位,其中的水平相位值分别为PH 0,PH 1,PH 2,PH 3,垂直相位值分别为PV0,PV1,PV2,PV3。只要根据上述关系式求得x,y 值就能获得8 个相位值,就能实现多相位滤波。

图12 4×4 领域水平垂直相位

  图13为本文设计的图像缩放器中滤波器部分框图,其中的垂直水平查找表里分别存放着4个不同相位的Lanczos2 函数值。

图13 图像缩放器中的滤波器

  2. 4 视频DAC

  视频编码到模拟R、G、B 由视频DAC 芯片ADV7123,它内部有三独立通道10 bit高速DAC,如图14所示为其功能图及其系统作用。

图14 ADV7123系统图

  3 系统电源设计

  电源的可靠性是电子系统设计成败的关键。在设计电源时,在保证电源的可靠性的基础之上需要综合考虑电源电路的效率与体积,此系统需要0. 9 V,1. 2 V,1. 8 V,2. 5 V,3. 3 V,5 V 共6种电源。

  LM2737输出电流最大为5 A,效率高达90%,封装为SO IC,体积小。DDR2的VTT 与VRef的0. 9 V电压由DDR 参考终端电压通用芯片TPS51100 转换而来。

图15 电源设计框图

  4 结束语

  本文采用C yc lone III的EP3C1*84C6器件及相关的视频编解码芯片设计视频格式转换系统,实现了普通电视信号到较为通用的VGA 接口信号的转换,同时通过对视频信号的缩放等处理增大视频分辨率。另外,采用FPGA作为核心视频处理器件,使得系统对视频制式的支持具有很好的灵活性。

基于FPGA的视频格式转换系统设计相关推荐

  1. 基于FPGA的实时图像边缘检测系统设计(上)

    今天给大侠带来基于FPGA的实时图像边缘检测系统设计,由于篇幅较长,分三篇.今天带来第一篇,上篇,话不多说,上货. 导读 随着科学技术的高速发展,FPGA在系统结构上为数字图像处理带来了新的契机.图像 ...

  2. 视频格式转换工具使用

    还记得世界杯期间的那个"神奇教练"米卢吗?在给球员讲解战术.观摩对手比赛的时候,他总是喜欢随身携带一个小巧的摄像机.的确,有些摄像机重量很轻,几乎与普通照相机相仿,拍摄.携带和输出 ...

  3. [开源项目]基于FPGA的视频图像拼接融合

    基于FPGA的视频图像拼接融合 本项目简单来说,就是实时生成视频全景图,该架构经过优化,可以实时视频输出. 算法 下图说明了描述算法每个步骤的系统框图 该系统大致可以分为三个子系统: 预处理 基于 S ...

  4. Ffmpeg,mencoder视频格式转换

    一. Ffmpeg,mencoder视频格式转换 Mencoder 转 flv  mencoder -ffourcc FLV1 -lavfopts i_certify_that_my_video_st ...

  5. linux下视频格式转换与视频合并

    熟悉Windows的朋友应该知道,Windows下的视频格式转换软件与合并视频软件不计其数,刚接触Linux的朋友也许会抱怨Linux下没有强大的视频软件,完成视频播放.转化视频格式.合并视频等功能. ...

  6. ffmpeg 视频格式转换和宽高转换 制作自己想要的数据格式

    ffmpeg 视频格式转换和宽高转换 制作自己想要的数据格式 命令如下: ffmpeg -y -i Titanic.mkv -s 640*480 out.h264 运行效果: 一般的 使用 ffmpe ...

  7. php视频格式转换---------ffmpeg-php扩展与ffmpeg.exe安装与使用

    HP转换视频格式这个问题, 找了一下午的ffmpeg-php扩展的安装与使用方法,都是千篇一律转载的. 下面是我整理的步骤,希望能帮助大家这个问题. 1.下载ffmpeg-php扩展包和ffmpeg. ...

  8. 【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )

    FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 [FFmpeg]FFmpeg 相关术语简介 二 [FFmpe ...

  9. pcm 采样率转换_Cool Audio Video Converter(音视频格式转换工具)V2.18 最新版 - 绿色先锋下载 -...

    Cool Audio Video Converter(音视频格式转换工具)是一款十分优秀好用的音频格式转换助手.如果你需要一款好用的格式转换工具,小编带来的这款Cool Audio Video Con ...

最新文章

  1. CCNP张SIR的视频教程(完全可以下载)
  2. 解决文件上传时,服务器中中文文件名乱码问题
  3. 使用OpenGL Shader实现放大镜效果
  4. 【Flutter】ExpansionTile 可折叠列表
  5. AGG第四课 局限性
  6. c++中,可以用类名直接访问非静态成员函数?
  7. Hadoop入门(二十二)Mapreduce的求平均值程序
  8. SQL Server 2005之PIVOT/UNPIVOT行列转换(转)
  9. R语言ggplot2绘图——柱状图
  10. sql server中数据约束相关的查询
  11. linux major头文件_Linux的字符设备
  12. Python爬虫实战(2) 爬取中国土壤数据库部分数据
  13. 数据库课程设计报告——书店管理系统
  14. 计算机组成原理与汇编语言设计,计算机组成原理与汇编语言网络教学整体设计方案...
  15. 怎么做名片二维码?个人二维码名片在线制作方法
  16. Accer 4752G添加固态硬盘 双系统
  17. SPEC CPU2006测试
  18. QQ商家(QQ在线咨询,QQ推广等)
  19. 无法卸载creative cloud桌面应用程序
  20. “智慧机场3.0”样板工程 北京大兴机场物联网系统有多牛?

热门文章

  1. 谁打败了浏览器之王?浏览器背后需要什么技术 ? (送书活动)
  2. 程序员最值得关注的10个C开源项目
  3. android 静态图片自动切换,Android静态图片人脸识别的完整demo(附完整源码)
  4. 内蒙古二连浩特:边境小城
  5. PNG图片怎么制作gif动画?图片gif动画制作方法
  6. tarjan算法笔记
  7. 行人重识别技术(Re-ID)概述、研究现状以及相关数据集下载
  8. 【强化学习】倒立摆-PPO算法
  9. windows系统怎么实现桌面图标的任意移动和摆放?
  10. iPhone这个功能太逆天了!不到3秒就能将录音转成文字!