视频控制器
《视频控制器》摘要: 像素点用f(m,n)表示,其中0mM,0n。对一幅数字图像进行缩放,其实质就是对一幅数字图像进行重采样,假定对原始数字图像高和宽进行缩放的缩放倍数分别为S1和S2,那么根据奈奎斯特采样定律,应该…
像素点用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)。
设计中有两点值得注意,首先,时钟域同步电路应放在一个独立的模块中,保证综合工具的优化、时序分析的正确,并方便电路的分析和调试;同时,为了能够使信号的目标时钟域采集到信号变化,设计中传递的控制信号都采用电平信号表征。
时钟域之间要传递的另一种信号是数据信号,由于数据信号数目较多、变化也较快,所以它们的传递通过双口DPRAM实现。双口DPRAM要求读写端口对同一存储地址的操作要满足一定的时间间隔,否则会出现数据传输错误,甚至会破坏硬件电路。因此为了避免DPRAM的读写冲突,设计中采用了“乒乓”缓冲的方法,两块DPRAM交替存取解码后用于显示的亮度或色差数据:当显示部分读取一块DPRAM中的数据时,系统向另一块DPRAM中写接下来要显示的数据,数据读取完毕时,两块DPRAM就进行交换。这部分共用4块DPRAM来实现,2块传递亮度信号,2块传递色差信号。
下面分析在视频控制器显示输出子模块中运用到的格式转换算法、图像缩放处理算法以及它们的硬件实现。
显示数据格式转换分析
数字图像格式转换与缩放的硬件实现
设计本项目的时候,显示设备采用分辨率为1280×720的高清晰度电视机,输出到高清晰度电视机显示时采用图像中心对齐的方式。当把解码好的数字图像数据送到高清晰度电视显示时,如果不经过图像缩放处理,那么显示屏幕中间放解码好的数字图像,其他的地方用黑色填充。在进行缩放处理时,遵循上面的规律。先把视频控制器输出模块前端按照逐行扫描排列好送来的数据进行数据格式转换,再把RGB不为零(即不为黑色)的像素数据按每帧和逐行扫描规律轮流放到两块同样大小的片内缓存RAM中,如图4所示。
其工作方式与前面的DPRAM相同,读取RAM1或RAM2中数据的地址后,可以通过地址译码器得到该点像素值的行列地址,即得到m、n的值。把m、 n值送到图像缩放处理单元,通过缩放处理得到新的图像数据和新的图像数据地址,再通过写地址译码器得到在输出RAM3中按照逐行扫描格式输出的地址,该地址用来存放格式转换后的数据。最后,从存储转换数据的RAM3中可以直接输出显示所需要的RGB数据。
