HD2AV_F3A

文档内容:分数倍采样率变换,HD视频与AV视频的像素点个数不同,每行像素点个数比值也不是整数,所以会涉及到分数倍采样率变换

时间节点:2014/12/18~2014/12/19

一、       分数倍采样率变换

    由前面的文档中我们知道高清视频分辨率为1920*1080,时钟频率为74.25MHz。标清视频分辨率为720*576,时钟频率为13.5MHz。所以在将高清视频转至标清视频时需要进行分数倍的采样率变换。

数字信号处理中,进行整数倍的采样率变换时一般都直接通过内插或抽取实现,对于一个分数倍的采样率变换可通过先内插再抽取来实现变换。而对于视频的分辨率转换,这不适用。再加上我们所使用的双三次插值算法需要16个源像素算出一个目的像素,所以不可能像数字信号处理中所使用的对数据进行插值与抽取的操作。下面就视频信号处理中的分数倍采样率变换进行讲述。

二、视频的分数倍采样率变换

    由于使用双三次插值的方法,我们在进行分辨率变换时得到的像素行不是通过简单的15行中取出8个行这样来实现的,而是通过对多个像素行的整合计算,即相当于每行都有一个影响因子,乘上之后得到目标行。

    所以我们需要关注的是目标行处在一个什么位置,并且目标行所需要那几个源像素行,和什么时候需要进行双三次插值操作等。对于高清视频转标清视频的过程中,我们一般先进行行的双三次插值,从1080行变为576行,再通过双三次插值将每行的像素由1920变为720。

    1080/576=15/8,所以在实现过程中,我们可以设定一个计数变量CNT,以8为步进进行相加,当某一次相加之和得到的值大于15时,则说明目标行出现在了本行与上一行之间。相应的示意图如下所示:

 

    由上图可知,目标行的第一行对应HD视频的1.875行,也就是1行与2行之间,这时候CNT还未计数超过15,当计数到16的时候,大于15了,说明目标行落在了身后同时下一个时刻的CNT值为16减去15再加上步进8。AV视频目标行的像素值由HD视频的4个像素行计算而来,如上图中目标行1由HD视频的0、1、2、3行计算而来。而对于AV视频的第0行与第15行,是由HD视频的0、1、2和14、15、16、17行计算而来。

    综上所述,当CNT的值大于15的时候提示目标行在已出现在本行与上一行之间,当CNT等于0或者15时提示目标行与本行重合。

    根据上述的信息就可以得出一个目标行出现的信号,这个信号可用于工程设计中对目标行的计算工作,同时对于AV视频目标行我们也知道其对应HD的行号,这样我们也就知道了目标行与靠其最近的源像素行的间隔△y的值,亦可以带入双三次插值公式去计算目标像素行的像素值,例如AV视频的1行的△y就为0.875。具体的关于该算法如何使用FPGA实现,会在后面的第四章节中讲述。

一切都是最好的安排,感谢生命中所遭遇的一切!
原文地址:https://www.cnblogs.com/sunxuxu/p/4204094.html