适合硬件实现的解决色度上采样错误的算法实现
2014-09-17郑戟明
袁 野,郑戟明
(上海对外贸易学院商务信息学院,上海 201620)
适合硬件实现的解决色度上采样错误的算法实现
袁 野,郑戟明
(上海对外贸易学院商务信息学院,上海 201620)
为了适应视频后处理芯片低成本的需求,提出一种每场仅需用两行缓存、适合硬件实现的解决色度上采样错误的算法。首先,检测出现色度上采样错误的地方;然后,对上采样错误的地方进行处理。具体表现为,检测出有上采样错误的地方,用帧处理方法来进行修复;否则用传统的场处理方法来处理。实验结果表明该算法在较少的资源下,仍然可以有效检测到出现CUE现象的像素点,较好地解决了该错误,并且便于硬件实现,可应用于低成本的数字视频后处理芯片中。
CUE;色度上采样;缓存
1 色度上采样算法
在数字电视SOC芯片中,需要一种色度上采样算法[1]。这是因为MPEG视频帧中,为了节约存储空间,通常采用4∶2∶0隔行扫描,拥有480条扫描线的4∶2∶0隔行扫描帧的色度采样扫描线在垂直方向上只有240条,单个色度场仅仅有120条色度采样扫描线。而视频后处理的去隔行模块则需要4∶2∶2的隔行视频,因此从解码器出来,进入视频后处理模块之前,需要色度上采样算法将4∶2∶0转为4∶2∶2[2]。
图1a为4∶2∶0逐行扫描视频格式的亮度和色度采样点,可见色度采样点个数是亮度采样点的水平方向和垂直方向各二分之一。图1b为4∶2∶0隔行扫描视频格式的亮度和色度采样点,可见隔行扫描视频格式与图1a垂直方向不同,第一行的色度采样点不是来自Line1和Line2的平均,而是来自Line1的75%和Line3的25%。因此在色度上采样时,需要对逐行、隔行扫描视频格式区别对待。
图1 逐行与隔行视频采样点亮度色度的布局
然而为了让芯片设计更为简单,一般的MPEG解码器无论是隔行场视频还是逐行帧视频,统统仅使用隔行上采样算法。而且上采样算法通常采用简单的行复制算法或者是场内多行数据的插值算法,这不利于逐行扫描图像,本来色度上采样应该插值出Line1和Line2的色度采样,实际上因为使用隔行扫描算法来上采样,却插值出了Line1和Line3的色度采样。当将场合并成帧时,如果正好Line2和Line3的色度有很大差异,就会导致颜色的错位,形成一条条的拉丝现象,这就是所谓的色度上采样错误现象(Chroma Upsampling Error,CUE)[3]。随着高清电视的普及,一经放大这种错误将变得十分明显,因此找到一个适合硬件实现的解决色度上采样错误的算法已成为必要。
为了克服上述的色度上采样错误,多个专利提出了多种解决方法[4-9],如文献[4]公开的一种检测和修复MPEG-2色度上采样伪像的方法,采用每场4行以上的数据,可以解决CUE问题,但是却耗费较多硬件资源。并且传统的上采样算法通常是只产生一行新的色度数据,采用原始的420数据作为另一行,但是从图1的位置关系看,原始的420数据实际上是上下两行数据的综合,与正确位置相比有1/4行的误差。
本文提出了一种检测和修复色度上采样的CUE现象的方法,根据正确的位置关系,生成两行新的色度数据。首先检测色度上采样存在CUE问题的地方,然后对这些检测出存在问题的地方进行处理。即如有色度上采样错误现象,则用帧处理方法来进行修复;如不符,则用传统的场处理方法来处理。应用此算法,能够在较少的硬件资源下,进行检测和修复色度上采样错误现象。实验结果表明该算法在较少的硬件资源下,可以有效检测出CUE现象,得到较好的上采样效果,并且便于硬件实现。
2 解决色度上采样错误的算法的实现
2.1 步骤1:场处理滤波法
如图2所示,以奇场在上偶场在下为例,按照位置关系,场处理滤波使用了垂直插值滤波器,即
式中:yuv422_field_odd1代表奇场奇行的场处理滤波;
yuv422_field_odd2代表奇场偶行的场处理滤波;
yuv422_frame_even1代表偶场奇行的场处理滤波;
yuv422_frame_even2代表偶场偶行的场处理滤波。
图2 场处理滤波示意图
2.2 步骤2:帧处理滤波法
如图3所示,以奇场在上偶场在下为例子,按照位置关系,帧处理滤波法使用了垂直低通滤波器,即
式中:yuv422_frame_odd1代表奇场奇行的帧处理滤波;
yuv422_frame_odd2代表奇场偶行的帧处理滤波;
yuv422_frame_even1代表偶场奇行的帧处理滤波;
yuv422_frame_even2代表偶场偶行的帧处理滤波。
图3 帧处理滤波示意图
可以看出,经帧处理滤波法后的上采样,如果是在逐行扫描视频色度变化的边界处,色度上采样错误现象会从根本上消失。所以只要有效检测出色度上采样错误的地方进行帧处理滤波即可。
2.3 步骤3:检测色度上采样错误部位
在场内哪些是属于帧处理,哪些是属于场处理的像素点,这需要进行检测。只要检测出逐行扫描格式中有颜色跳变的部分进行帧处理滤波即可。
如图4所示,按原有的位置关系,需要重新生成2行色度,所以当A(奇场)、B(偶场)、C(奇场)、D(偶场)四场鱼贯进入时,能得到X',Y这两个色度插入点的色度。当B(偶场)、C(奇场)、D(偶场)、E(奇场)四场鱼贯进入时,能得到Y',Z这两个色度插入点的色度。所以每生成2行色度时,只需要奇场2行和偶场2行的数据。
图4 色度上采样的位置关系
判断前象素点是属于色度上采样错误现象的方法如下。
如果以下条件符合,则认为属于CUE现象。
1)如果插入点所在帧中的共4行色度有1行是有跳变并且帧内数据是渐变过渡的,有可能出现上采样错误现象。
结合图4来理解,对于插入点X'来说,只要A,B,C,D有1行有跳变且是渐变过渡的,则设Flageven=1;对于插入点Y来说,只要A,B,C,D有1行有跳变且是渐变过渡的,则设为Flagodd=1。
这里,Flagodd代表奇场的渐变跳变标志,Flageven代表偶场的渐变跳变标志。
2)排除两场中至少有一场场数据差很接近的情况。
(1)分别求取本场内和本帧内的上下两行的差值
式中:sad_field_even代表偶场内的当前行与上行的差值的绝对值;sad_field_odd代表奇场内的当前行与上行的差值的绝对值;sad_frame代表两场对应行差值的和的绝对值。
(2)如至少有一场上下两行的差值很接近,则认为是运动的两个不同的场,不属于色度上采样错误情况,需要排除。该某场一致标志求取如下
其中:single_odd代表奇场的某场一致标志;single_even代表偶场的某场一致标志;T_small为最小阈值,小于它认为属于一种色度。
3)合并以上信息,获得up_error_Flag。
用以上4点来标识有色度上采样CUE问题的像素点:up_error_Flag_odd为1,表示奇场是符合帧的色度上采样错误情况;up_error_Flag_even为1,表示偶场符合帧的色度上采样错误情况,可以进行下一步的处理。
2.4 步骤4:色度上采样错误处理方法
如果上述up_error_Flag_odd或up_error_Flag_even为1,说明此象素点是出现色度上采样错误的地方,可采用式(2)的帧处理方法yuv422_frame,即相邻异极性场的低通处理方法,否则采用式(1)的场处理方法yuv422_field,即通用的相邻同极性场的低通处理方法。
3 算法的仿真结果及其分析
采用Verilog语言设计本文算法的仿真验证,视频处理平台采用系列型号为Virtex-5的FPGA芯片,图5是系统仿真的结果。选择视频后处理测试专用碟片进行测试,对静止的帧测试图(如图5a所示),分别采用简单的上采样复制法(如图5b所示)、线性插值上采样算法(如图5c所示),以及本文提出的算法(如图5d所示),对图像效果进行比较。从图5可以看出,图5b的色度变化边缘出现明显的拉丝现象,即同一场的色度被另一场的色度分离,非常明显;图5c对几行数据进行线性插值,较图5b平滑些,但仍有拉丝现象;图5d应用本文算法,则能够较好地消除拉丝现象。为防止帧处理方法会带来副作用,影响到场图像,使得一个运动场里面包含另一场的色度,而出现运动图像色度的错误,对动态旋转的色度条测试视频进行实验。如图6所示,图6a和图6b为应用了该色度上采样算法连续的两场,从图中可以看出,没有色度串场现象,说明每场数据没有其他场的色度引入。将场数据通过通用的去隔行模块转成隔行数据,在电视机上播放,在旋转边缘处看不到其他场的色度影子。实验结果说明应用本文提出的改善色度上采样算法,可以很好地解决CUE色度上采样问题,并且对运动的图像没有产生色度串场的现象,有较好的实验效果。
图5 静止图像的色度上采样算法比较
4 结束语
图6 应用于运动色度条的本文算法
本文提出一种检测和修复色度上采样的CUE现象的方法,通过判断原始帧内数据在垂直方向是否有渐变过渡和色度的跳变,根据本场内和本帧内的上下两行的差值的特点,排除两场中至少有一场场数据差很接近的情况,可以检测出色度上采样出现CUE现象的地方。如有色度上采样错误现象,则取逐帧处理方法来进行修复;如没有,则取场处理方法的低通滤波值。实验结果表明,在每场各2行这样较少的硬件资源下,可以有效地检测和修复色度上采样错误现象。
:
[1]王飞飞.视频中色度重采样算法的ASIC设计[D].天津:天津大学,2007.
[2]明军,倪志荣.隔行色度信号及其应用研究[J].数字电视,1995,19(10):62-64.
[3]MUNSIL D,SPEARS S.DVD benchmark-The chroma upsampling errorandThe 4:2:0 Interlaced Chroma Problem[EB/OL].[2013-01-01].http://www.hometheaterhifi.com/volume_7_4/dvd-benchmark-The Chroma Upsampling ErrorandThe 4:2:0 Interlaced Chroma Problem-1-2003.html.
[4]DALE R,SAN J.Detection and repair of MPEG-2 chroma upconversion artifacts:USA,US7408992 [EB/OL].[2013-01-11].http://www.google.com/patents/US7408992.
[5]NAVEEN T,TABATABAI A.Chrominance resampling for color images:USA,US5712687[EB/OL].[2013-01-11].http://www.google.com.hk/patents/US5712687.
[6]JIANG H.Edge-adaptive chroma up-conversion:USA,US6297801[EB/OL].[2013-01-11].http://www.google.co.jp/patents/US6297801.
[7]ARTURO A,RODRIGUEZ C.Conversion optimization:USA,US7136417[EB/OL].[2013-01-11].http://www.google.com/patents/US7136417?hl=zh-CN&dq=richard+swier+wireless.
[8]HENRY D.Method and system for MPEG chroma de-interlacing:USA,US7006147[EB/OL].[2013-01-11].http://www.google.com/patents/US7006147?hl=zh-CN&dq=5661645.
[9]LEONE P,CHOW W ,GILL A.Chroma upsampling method and apparatus therefor:USA,US7474355.[EB/OL].[2013-01-16].http://www.google.com.hk/patents/US7474355?hl=zh-CN&dq=7,958,388.
Implementation Method of Solving Chroma Upsampling Error
YUAN Ye,ZHENG Jiming
(School of Business Information Management,Shanghai Institute of Foreign Trade,Shanghai 201620,China)
In order to meet the need of low-cost digital video processing chip,a new algorithm to solve the Chroma Up-sampling Error using only two line buffers is presented.Firstly,Chroma Up-sampling Error pixels are detected.Next,frame interpolation method is used in these pixels.Then,traditional field interpolation method is used in other pixels.Experimental results demonstrate that the algorithm can not only detect the Chroma Up-sampling Error pixels,but also removes the error.It can be used in the chip of low-cost digital video processing.
CUE;chroma up-sampling;line buffer
TN911.73;TP302.1
A
【本文献信息】袁野,郑戟明.适合硬件实现的解决色度上采样错误的算法实现[J].电视技术,2014,38(3).
国家科技重大专项(2009ZX01033-001-004)
袁 野(1972— ),女,副教授,博士后,主要研究方向为数字电视视频后处理;
郑戟明(1968— ),副教授,主要研究方向为数字图像处理。
责任编辑:时 雯
2013-03-12