H.264视频解码芯片中视频控制器的设计
下面分析在视频控制器显示输出子模块中运用到的格式转换算法、图像缩放处理算法以及它们的硬件实现。
显示数据格式转换分析
根据Sil 164 DVI信号编码芯片资料,同时参考H.264视频编码标准中给出的YUV → RGB转换格式,故在设计中采用的固定转换算法如下式所示:
上式经过定点化处理,使用移位和相加的方法实现了转换,如下式所示:
在硬件设计中的YUV、RGB信号都是用8位无符号数表示,中间变量采用12位保证精度。最后要在0~255的范围内对计算出的RGB结果进行剪裁处理,式中的幂指数和除法运算都通过移位来实现。
数字图像缩放的算法分析
对于一幅分辨率为M×N的原始图像,其所有采样点的YUV值可以用M×N阶矩阵表示为:
像素点用f(m,n)表示,其中0≤m≤M,0≤n。对一幅数字图像进行缩放,其实质就是对一幅数字图像进行重采样,假定对原始数字图像高和宽进行缩放的缩放倍数分别为S1和S2,那么根据奈奎斯特采样定律,应该用新的水平与垂直采样周期740)this.width=740" border="undefined"> 对原数字图像进行重采样。得到经过缩放的数字图像f′(m′,n′):
由上式可知,经过缩放的数字图像中的每一个重构像素f′(m′,n′)就是原来数字图像各个像素的加权和。若采用该式直接进行硬件设计,计算量会非常大。为了简化设计难度,节省芯片成本,可以在对图像品质影响不大的基础上对上式进行简化。重构后的图像像素值主要取决于两个抽样函数乘积的值。在实际中只采用的值等于1的点,即满足的点。进一步简化,可以取,表示对数按四舍五入取整,得到简化表达式:f′(m′,n′)=f(m,n)。
数字图像格式转换与缩放的硬件实现
设计本项目的时候,显示设备采用分辨率为1280×720的高清晰度电视机,输出到高清晰度电视机显示时采用图像中心对齐的方式。当把解码好的数字图像数据送到高清晰度电视显示时,如果不经过图像缩放处理,那么显示屏幕中间放解码好的数字图像,其他的地方用黑色填充。在进行缩放处理时,遵循上面的规律。先把视频控制器输出模块前端按照逐行扫描排列好送来的数据进行数据格式转换,再把RGB不为零(即不为黑色)的像素数据按每帧和逐行扫描规律轮流放到两块同样大小的片内缓存RAM中,如图4所示。
其工作方式与前面的DPRAM相同,读取RAM1或RAM2中数据的地址后,可以通过地址译码器得到该点像素值的行列地址,即得到m、n的值。把m、n值送到图像缩放处理单元,通过缩放处理得到新的图像数据和新的图像数据地址,再通过写地址译码器得到在输出RAM3中按照逐行扫描格式输出的地址,该地址用来存放格式转换后的数据。最后,从存储转换数据的RAM3中可以直接输出显示所需要的RGB数据。
结语
设计完成后,此视频控制器模块经综合工具Synplify 7.6综合,可以得到80.3MHz的工作频率。与前端的解码模块一起下载到Xilinx公司的Virtex-II 6000型FPGA中,并将其集成入H.264视频解码验证平台上,工作频率可达34MHz,在高清晰度电视上播放图像时效果较好。
视频 相关文章:
- 数字机顶盒技术综述 (08-08)
- H.264:视频压缩编码的新发展(08-28)
- H.264/AVC视频压缩编码标准的新进展(08-29)
- 数字视频系统中的集成新概念(下)(09-12)
- 数字视频系统设计中的集成新概念(上)(09-12)
- 新的视频压缩标准对测试技术提出挑战(上)(01-02)