a&s专业的自动化&安全生态服务平台
公众号
安全自动化

安全自动化

安防知识网

安防知识网

手机站
手机站

手机站

大安防供需平台
大安防供需平台

大安防供需平台

资讯频道横幅A1
首页 > 资讯 > 正文

数字视频信号解码中的行插值算法及其实现

资讯频道文章B

视频图像采集芯片是一种十分重要的视频信号处理芯片。它处理的视频信号是来源于电视或者录像机的复合视频信号(CVBS)或者S-VIDEO格式数据,也包括变弱的和被扭曲的视频信号。复合视频信号的解码过程如下:首先对模拟的彩色电视信号进行数字化处理,先将其经ADC转换成数字信号;然后用数字化方法分离出亮度信号Y和色度信号C,再从色度信号C中分离出两个色差信号U和V;最后将Y,U,V信号通过一定的采样/插值算法转换为ITU-R BT601 4:2:2的标准视频数据格式,便于与其他视频设备接口。

本文所要解决的问题就是如何将Y,U,V信号转换为ITU-R BT601 4:2:2标准所需的数据流,用行插值校正像素点的方法来实现。

行插值校正像素点及算法
行像素点校正的任务和方法

通常情况下,电视信号所需要的标准有效行像素点为每一行720个,而NTSC制为每行1716个,PAL制为每行1728个。所以行像素点的校正任务就是计算这些信号采样点的中间值。

对于不同的制式来说,在每一行中所需要的采样点数一般是不同的,如ITU601需要的有效像素点是720。所以本文的任务就是将1820个像素点转化为720个像素点。

上述的转化可通过一个多项式 FIR(有限脉冲响应) 校正滤波器实现。其数学表达式如下:
                        (1)
其中
YS(t)是由x[n]构建的离散信号波,而Y(t)是由x[n]构建的连续信号波。FIR滤波器系数可由下述的行内插过程算得。

行插值控制算法
行插值的控制过程其实就是像素码率转换的过程,主要是用来计算出基点s(未插值的行采样像素点)和相关的小数延时芀(s)(基点和需求的插值点之间的延迟时间)。如果需求的插值点是2,那么基点就是采样点3。对于6阶滤波器来说,采样像素点1~6都用来计算插值点2。所以说行插值控制主要是计算基点s和插值点k之间的小数延时芀(s)。芀(s)可通过下式算得:[nextpage]
芀(s)=芐TART+mk/n-s                     (2)

上式中的基点s是每一行的第s个采样像素点,m是视频信号每一整行的采样像素点数,n是经过滤波插值后的有效像素点数(对PAL制,m=1728,n=720)。k是被插值点的序号,芐TART是当前行与上一行的相位差。

行插值控制算法如下:对每一个采样像素点,用公式(2)来计算其芀(s),并且按照下式的条件进行检测:
0 < ΔK(s) < 1                     (3)

当式(3)的条件满足时,该采样像素点s被设置为基点,所计算出来的芀(s)就是其相应的小数延时。然后k增值1。如果式(3)的条件不满足,就计算下一个采样点的芀(s)并按照式(3)的条件检测,直到本行的所有像素点都计算检查过为止。当本行的所有采样像素点都被计算检查完后,s和k被设置为0,准备进行下一行的插值控制计算。

算出所有的基点s和相关的小数延时芀(s)后,就可通过下式计算FIR滤波器系数Ci:
                      (4)
i=-5~5(integer)
上式中的hi就是FIR滤波器系数Ci,它是sinc函数。
公式(4)所示的sinc函数将用来计算滤波器系数。

实现方案和计算结果
面向硬件的滤波器系数产生方法
通过matlab工具进行系统仿真发现在实际设计中采用11阶的sinc函数较为理想,它的11个系数,由coef=sin(pi*(芀(s)+I))/(pi*(芀(s) +I))确定(I是〔-5,5〕的整数)。因为在实际工作中,需要的有效像素点为720个,也就是对应产生720个芀(s),每一个芀(s)产生一组滤波器系数,即有720组11阶系数,这对于硬件的RAM资源要求太高。所以可以在区间[0,1] 进行20等分,这样可划分为20个区间:[0,0.05],[0.05,0.1],……,[0.95,1]。设区间为[a,b],若芀(s)>= (a+b)/2,取芀(s)=b;反之取芀(s)=a。这样将720个芀(s)简化为20个,对应20组滤波器系数,每一组滤波器系数乘以1024(便于下一步的2进制乘法器来处理),做出查找表。查找方法如下:根据上节算得的小数延时芀(s),先确定控制部分的地址值address(即简化后的芀(s) 值);再由address+I,I是〔-5,5〕的整数,得到查找表的地址值,根据查找表的地址值查得对应的滤波器系数。系统框图如图1所示。

算法的模拟验证
因为只是验证算法,为了更清楚地说明问题,做了下列两点简化假设:1.处理的视频信号是余弦函数y=100*cos(x);2. 假设一行视频信号的采样像素点数为13,而需要的有效像素点数为8。进行行插值方法后的结果如图2所示。

从图2可以看出,采用本文算法能很好地实现将13个像素点的信号转化为8个有效像素点信号。

结语
本文提出了一种在数字视频信号解码中的行插值算法及其实现方案。为了验证方法的正确性,用本文方法处理了13个采样点的余弦信号,计算结果表明本算法正确有效。本算法已应用在视频信号解码芯片设计中。

参与评论
回复:
0/300
文明上网理性发言,评论区仅供其表达个人看法,并不表明a&s观点。
0
关于我们

a&s是国际知名展览公司——德国法兰克福展览集团旗下专业的自动化&安全生态服务平台,为智慧安防、智慧生活、智能交通、智能建筑、IT通讯&网络等从业者提供市场分析、技术资讯、方案评估、行业预测等,为读者搭建专业的行业交流平台。

免责声明:本站所使用的字体和图片文字等素材部分来源于互联网共享平台。如使用任何字体和图片文字有冒犯其版权所有方的,皆为无意。如您是字体厂商、图片文字厂商等版权方,且不允许本站使用您的字体和图片文字等素材,请联系我们,本站核实后将立即删除!任何版权方从未通知联系本站管理者停止使用,并索要赔偿或上诉法院的,均视为新型网络碰瓷及敲诈勒索,将不予任何的法律和经济赔偿!敬请谅解!
© 2020 Messe Frankfurt (Shenzhen) Co., Ltd, All rights reserved.
法兰克福展览(深圳)有限公司版权所有 粤ICP备12072668号 粤公网安备 44030402000264号
用户
反馈