简化视频去隔行和格式重定处理

大多数普通视频信号在利用视频压缩编解码器进行编码之前都必须进行预处理,这要求数据采用420平面格式(planar format)以获得更高的处理性能。例如,NTSC和PAL等广播标准可能需要将隔行扫描(interlaced)格式转换为逐行扫描(progressive),此外还常常需要对色度和亮度信息进行格式重定。

特别的是,CCD相机的视频是以4:2:2交错式隔行扫描格式被捕获的。但视频压缩标准的特定规格只接受逐行扫描4:2:0格式的输入。在这种情况下,必须去掉隔行扫描伪信号,因为对逐行扫描编码器而言,处理隔行扫描视频内容可能相当困难。

有大量复杂的去隔行(de-interlacing)算法可供工程师选择,但并非所有应用都需要最高级别的视频质量。此外,复杂的算法往往需要大量的计算,而开发人员总是受到数字信号处理器(DSP)的MIPS预算限制。

当应用不需要最高级别的视频质量时,可在硬件中采用缩放算法来实现去隔行。这种技术可以将4:2:2到4:2:0格式的转换工作和去隔行操作卸载给其它硬件,这对于节省珍贵的DSP MIPS资源特别有帮助。令人惊讶的是,当把视频压缩处理考虑进来之后,缩放硬件有时能获得可与高复杂度去隔行算法相媲美的去隔行质量。

本文描述的简单方法可用于视频应用的去隔行处理。当视频数据帧中存在大量动作时,这种技术最为有效,因为静态图像往往会更加突出缺陷。

亮度和色度编码

NTSC将标准清晰度(NTSC SD)的分辨率定义为每行720像素,每列480像素,每秒30帧。每个像素的信息包含三个分量:Y是亮度(luma)信息,Cb(U)是蓝色信息,Cr(V)是红色信息。

过去采用NTSC标准时,工程师在视频流编码方面受到传输带宽和计算能力的限制。由于人眼对于亮度信息更为敏感,而NTSC标准只要求色度信息进行2:1的水平下采样,从而减轻了这一负担。

CCD相机捕获到的每一帧都具有720×480的Y值、360×480的U值和360×480的V值。其中每一个值都是8位(1个字节),范围在[0,255],这样,每一个NTSC SD帧就是(720+360+360)×480=691,200字节。

被捕获帧的Y/U/V分量一般进行隔行扫描,通常采用YUV 4:2:2的格式。有两种方法构成这些数据,但为了简单起见,假设数据是以UYVY 4:2:2隔行扫描格式构成的(图1)。


如前所述,大多数编码器都要求输入视频采用YUV 4:2:0格式。在4:2:2隔行扫描数据和4:2:0平面数据之间存在着两大差异。

在4:2:0格式中,色度信息还需进一步进行2:1的垂直下采样。也就是说,对每一个NTSC SD帧,每个U或V分量都包含360×240字节而不是360×480字节。这样,每个4:2:0格式的NTSC SD帧为518,400字节[(720×480)+(360×240×2)]。为平衡实时性能和合格的图像质量,需要额外的色度下采样。


视频压缩标准的有效实现还常常需要将亮度和色度分量分别存储,因为编码算法可能采用不同的方法来处理它们。图2所示为4:2:0平面格式的NTSC SD视频帧。

隔行扫描伪像

隔行扫描包含对图像的两次扫描,一次扫描捕获偶数行,另一次扫描捕获奇数行。两次捕获以很小时差分隔开,然后再合在一起形成一个完整的帧。

在合并这两部分时,可能会形成隔行扫描伪信号。例如,矩形框的垂直边缘将导致锯齿效应(见图3的最后一帧)。在不同时间捕获一个运动视频目标而产生的这种伪信号被称为隔行伪像。


对于NTSC标准,若以30帧/秒的速度捕获视频帧,两个连续镜头(即顶场及其互补的底场)之间的启动时间是16.67ms。如果在这类帧中捕获视频场景中的快速运动行为,将会产生隔行扫描伪像。

由于这些伪信号被表示为高频噪声,它们有可能会导致逐行视频编码器出现严重问题,其主要原因在于人眼的敏感度以及压缩标准的工作方式。实际上所有的视频压缩标准都是基于两个非常重要的假设:1. 人眼对低频信息更为敏感,这意味着即使去掉原始帧中的部分高频信息,仍然可以保持可接受的视觉质量。2. 编码过程基于像素块进行,这意味着对于视频帧中的每个16×16或8×8的像素块,在相邻帧中都可能存在非常相似的模块。因此,编码的实现通常是在前面的编码帧中寻找一个相似的像素块,并仅对它们之间的delta进行编码。这样可以获得很高的压缩比,而在大多数压缩标准中,运动评估(ME)模块就是专为该目的而定义的。

遗憾的是,几乎所有像素块中都可能出现隔行扫描伪像,这使得ME模块很难在前面的编码帧中找到相似的像素块。结果使得delta更大,并且ME需使用更多的比特来对其进行编码。因此,最好的方法是在将被捕获的帧馈入到逐行视频编码器之前,减少或去除其中的隔行扫描伪信号。

去隔行视频处理

如前所述,可以通过采用大量计算的复杂算法来实现高质量的去隔行处理。此外,还有一种更直接简单的方法,即采用缩放硬件,例如德州仪器的TMS320DM6446数字媒体处理器。采用缩放硬件可完全去除全部场力线,它利用剩余场的信息来产生丢失数据。

去除480i60(480像素、隔行扫描、60帧/秒)视频的所有底场数据,将产生一个240p30(240像素、逐行扫描、30帧/秒)的视频。该数据被垂直缩放,以产生一个480p30的去隔行结果。这种方法的优点是可以100%地消除所有隔行扫描伪信号,但垂直保真度会有明显损失。

当用作逐行压缩之前的预处理步骤时,这种方案能够产生非常棒的效果。这是因为有损视频压缩算法通常都去掉了高频信号(尤其是在低比特率下)。

因此,根据数据源内容的不同,在把压缩处理考虑进来之后,该方案可以达到和复杂算法一样的效果。例如,可以利用复杂度较低的去隔行器来把隔行扫描广播数据转换成低比特率数据以供逐行扫描手机屏显示。

设计实现

TMS320DM6446处理器中的缩放器(resizer)执行和所有缩放器相同的常用功能,但有少许差别。需注意的两个主要特性是,缩放器模块在水平和垂直方向上都能支持1/4x到4x的缩放,且缩放因子与方向无关。

此外,所有滤波器系数都是可编程的。例如,如果使用4:2:2隔行扫描格式(由UYVY格式构成)的输入帧(图1),分辨率为每帧720×480像素(NTSC SD)。

在去隔行处理中,缩放器首先被告知输入帧的宽度为724像素,而非实际的720像素。这是由于为准确实现1:1的缩放,DM6446处理器的水平输入大小必须被调节为720+delta,delta由缩放器中的公式计算求得。

接着,缩放器获知间距是实际间距的两倍宽,这样它就可以把第一组两个水平扫描行当作一个来接收。这使得缩放器可以在偶数行上实现1:1的水平缩放(见图4中的左上角),并将奇数行丢弃(右上角)。输入和输出在垂直方向上尺寸分别被设定为244和480,因此缩放器执行1:2的垂直放大以插入被丢弃的奇数行。

然后缩放器被告知输出帧的宽度是720像素,输出间距是1440[720+(360×2)]字节,从而形成一个输出帧(图4)。


为实现从4:2:2到4:2:0的转换,以便逐行编码器能够利用这些数据,对于每个4:2:2隔行扫描格式的输入帧,缩放器都被调用三次以生成去隔行的4:2:0帧。必须保持三组配置参数分别作为U、Y和V值。因此,需调用缩放器三次。

起始点是采用UYVY 4:2:2格式的输入帧(NTSC SD分辨率)。输出帧被定义用4CIF分辨率(704×480)代替NTSC SD分辨率(720×480)。由于缩放器的32字节输出对齐限制,输入帧的右边16列必须被丢弃。一种替代方法可能是将右边8列和左边8列删减掉。

首次调用是提取输入帧中的Y分量,然后对其进行去隔行处理。通过指示缩放器将输入帧当作一个4:2:0平面格式的图像(图5),去隔行操作应该仅应用于Y分量上。此外,缩放器还被指示执行2:1的水平缩放,间隔提取输入帧中的Y分量,并执行1:2的垂直缩放以在奇数行中插入被丢弃的Y分量。

对缩放器的第二次调用是修改U分量,这需要以2:1的比例进一步垂直下采样。由于下采样需丢弃所有的奇数行,这会自动生成逐行U缓冲器,因此不再需要进行去隔行操作。为实现垂直下调节(downscaling),垂直输入大小被设为484,输出大小被设为240。对V分量的操作类似于U分量。


对于在利用视频压缩编解码器进行编码之前需要去隔行和YUV格式转换的视频,可通过一个缩放引擎来对其进行预处理。由于某些因素(例如视频编解码器往往去除了高频分量)的影响,需对压缩后的视频质量进行考虑。不过,这项技术并不适合于所有应用,而且必须小心确保输出质量是应用可以接受的。

视频格式之间的相互转换

从20世纪初发明的黑白电视到50时年代出现的彩色电视,以及从模拟时代跨入到数字时代,从标清电视过渡到高清电视,伴随着信息高速公路以及国际互联网的飞速发展,广播电视在不同时期不同领域出现了多种格式。这其中有早期彩色电视领域的PAL制,NTSC制,SCREAM制;近期数字电视领域内的DVB欧洲、ATSC美国、 日本的ISDB;以及根据数字电视图像清晰度不同而出现的SDTV和HDTV,这些格式多样化的存在为电视台的系统搭建提出了一个新课题,那就是如何结决电视信号格式间的转换。

    尽管电视信号有多种格式,各种格式有不尽相同,但归结起来相异之处主要在这三个方面:隔行或逐行不同,帧频或场频不同,显示宽高比不同。在数字化普及之前,这些不同制式与格式相互变换所涉及到的时域压缩和扩张实现起来十分困难,但数字领域这些模拟领域棘手的问题已迎刃而解。所以对模拟电视信号进行格式转换,若先进行数字化,在数字域进行将会方便很多。

一 信号的数字化

    对于模拟分量电视信号,应按ITU-R BT.601 标准进行数字化,取样结构为4:2:2,亮度信号Y抽样频率选为525/60和625/50三大制式行频的公倍数2.25MHz的6倍即13.5MHz。接口标准为 SMPTE259M串行数字接口SDI格式(D1格式),输出码率为270MHz(4:3)或360MHz(16:9)。对于模拟复合电视信号,从抽样所形成的样点结构图考虑,抽样频率取彩色副载波的4倍更为合适,量化后输出码率为142MHz(8BIT PAL制)和114MHz(8BIT NTSC制)。对于高清信号,数字化后变换成HDSDI信号,传输率为1.5GMHz(SMPTE292M)。

电视信号经过数字化,从时域的电视图像变换成一个三维的时空取样点结构。对于电视信号,无论是场频的变换,行频的变换,还是隔行扫描与逐行扫描的转换,宽高比的转换等,均可看成三维取样结构的转换。这些取样结构的转换主要借助于数字信号的内插来实现。下面先简单介绍数字内插算法。

二 制式转换的基本原理
    在保持原视频基带信号频谱时,为提高数字信号的取样频率,可对原数字信号进行内插。针对不同的目的,信号内插可分为行内插与场内插,行内插主要针对于不同行频格式之间的变化,场内插主要针对于不同场频格式之间变化。

1 行内插

    所谓行内插是指在原数字取样点之间插入新的取样值,它可以是相邻两值的平均值,也可以是零值,也可以用多项式内插方法得到。由于内插必然会引起垂直分辨率的变化,不管是增加还是减少,本来连续的两条扫描行之间多出一行或少掉一行,都会引起原图像的不连续,出现锯齿失真,如果采用非运动内插的简单重复或简单删减某些行数据的方法,这种数据将会很明显。如下图:

    通常所说的行内插都是指运动行内插,即行内插的数据不是靠简单重复某些

    行内插可分为场内行内插和场间行内插。用同一场的相邻行通过内插系数的运算得到内插行图像数据的方法就是场内行内插。参与一次内插运算的相邻行可以是2行、4行,只要硬件运算量足够大,相邻行可以更多(这里有个性价比的关系)。场内行内插利用了同场相邻行的相关性,对于运动图像的内插效果要比静止图像的内插效果要好。

    如果将前一场的图像数据存储起来,留待下一场作行内插时用场间相邻两行依据内插系数得到内插行的图像数据,这就是场间行内插。它认为场间相邻两行数据的相关性大于同一场内相邻两行的相关性。这种行内插方式使得行内插数据在很大程度上由前一场对应行决定,因此对于静止图像的内插效果要比运动图像的内插效果要好。

    为了判别出何种情况用场内行内插或场间行内插,只须对图像进行运动检测,根据待处理图像的运动情况,即图像帧差信号(如亮度Y信号幅值的差别)的大小选择使用场内行内插或场间行内插,这就是自适应场内和场间的行内插方法。根据图像运动检测电路的判断,待处理图像相对于前一场而言是静止图像还是运动图像,运动图像采用带数字滤波器的场内行内插,静止图像采用场间行内插。数字滤波器的作用在于滤除图像的高频成分,避免高频分量在行内插后产生失真。这样可以同时减少两者做内插处理所带来的清晰度劣化。

2 场内插

    对于场频的变换,例如从PAL到NTSC;不仅要实现525行到625行的变换,还要实现场频从50Hz到60Hz的变换,如果简单的采用每6场舍弃1场,针对静止图像还可以,但对于运动图像,必然会造成图像信息的丢失,会出现运动图像的不连续性和跳跃型。因此,如何通过采用各种不同的运动场内插方法,尽可能减少内插处理后对图像连续性的影响,就成为一个相当重要的课题。

相邻两场参与内插运算的的场内插不仅不能完全消除运动图像的不连续性,而且还会产生不连续动作的爬行现象,但这种不连续动作的幅度显然比简单重复某些场数据时的运动不连续性幅度要小。

    为了进一步减小这种不连续性,可以采用运动估算和运动补偿技术对场内插数据进行校正,运动估算通过检测运动图象在时域的变化幅度来计算图像的运动,精确的算出图像中运动单元的运动方向和速度,决定内插数据和运动补偿时的时间─空间方向;在实际中,由于运动检测得到的移动矢量值有时并不能真正反映相邻两场内图像运动变化后的实际矢量数据,毕竟它只是一个估值,为了减少这种由于估值所带来的图像内插失真,可采用运动补偿技术在运动估算的基础上进一步减少图像失真。见图:

    两种不同格式的电视信号相互转换,首先要进行数字化,由于格式不同其数字化时的抽样频率也不尽相同,利用两者抽样频率求出最小公倍频率,作为内插的抽样频率,可以顺利实现两种不同格式之间的相互转换。例如两种不同格式的电视信号的抽样率为:F1=3f? F2=4f, 最小公倍频率为12f,先以3f抽样率对F1进行抽样,然或通过内插变换形成总数为12f的抽样频率,再进行3选1的抽选取样,就可把 F1格式转换为F2格式。这里的抽选是指根据要求对取样频率进行N选一的选取,取样频率为f/N,f为最小公倍频率。按奈奎斯特抽样定律,为使抽选后的信号不产生混迭失真,必须在抽选之前经过一个数字滤波器,限制视频信号的最高频率。抽选与内插相结合可转换不同格式。

三 下面讨论几种具体的格式转换。
1. 去隔行技术

    去隔行技术实际上就是把隔行扫描转换成逐行扫描,去隔行时可以先对隔行信号的每一场进行2倍的行内插,原奇数行内插偶数行,原偶数行内插奇数行。内插可采用行复制,行平均或非线性内插。简单的行复制,就是将奇偶场合并实现,即该场需要内插行的地方由前一场相同位置的行信号复制而来,对于静止图像这种方法效果较好,但对于运动图像会产生锯齿边缘失真。行平均算法,是指在该场需要内插行的地方由本场相邻上下位置的行信号复制而来,运算限制在本场内,这种算法虽会减少简单行复制所引起的锯齿边缘失真,却要付出图像细节模糊的代价,往往利用改进的自适应空间场间插入法,减少细节模糊。 
为了使去隔行技术在静止与运动图像时都能达到较好的效果,可以采用场间自适应内插方法,在静止图像时采用场间复制,在运动图像时采用场内复制,并用运动检测函数来控制切换点,对于快速运动物体时,须采用运动估算与运动补偿相结合的方法求出内插像素点的运动轨迹,运动轨迹的精度是决定内插效果的关键因素。

2. 变频技术

    在对电视信号的帧频或场频进行相互变换时,涉及到变频技术。
    我们以常见的50Hz场频向60Hz场频转换为例,结合场内插技术简单描述变换过程。见下图

变换前的视频信号,水平像素,垂直像素都没有增加,也无法增加,有可能视频信号带宽有所增加倍,却是由于存储器高速读出所至,对图像清晰度不可能有根本改善。不能期望SDTV转换到HDTV,对图像质量有好的改变。

3. 不同行频之间的转换

    把一种隔行扫描信号转换成另一种行频不同的隔行扫描信号时,一般先对隔行扫描信号作去隔行处理,将之转换成相对应的逐行扫描信号,然后再运用内插技术完成逐行扫描至逐行扫描的变换, 最后进行隔行处理,变换成所需的隔行扫描格式。

四 具体的格式转换

1 HDTV下行变换至SDTV

    从HDTV转换到SDTV时典型的下变换,下行变换使取样频率降低,为防止混迭失真,再转换前必须进行反混迭滤波,但反混迭滤波会使原信号中的高频分量永久丢失,这些高频信息在以后的转换中不可能恢复。

2 SDTV上行变换至HDTV

    以576i/50上变换至1080i/50为例。当输入信号经过适当的降噪处理后,转换的质量就取决于内插算法的质量和再取样算法的质量。其第一步(也是最复杂的一步)就是将隔行扫描的画面转换成逐行扫描(576p/50)。然后,对每两行进行N=14的内插,再进行8选1的抽样,得到每场1080号的图像,最后下变换隔行处理形成 1080i/50格式。

3 PAL与NTSC之间的转换

4 24帧/秒电影格式与电视格式转换

    因为高清标准中有一款格式为1080p/24,它是专门为电影/高清互换而开发,由于采用了与电影扫描频率24帧完全相同的扫描方式,互换后每帧电视画面与电影的每一幅画面完全相同,所以无论是从高清转换到电影还是从电影转换到高清,都不会产生由于转换带来的图像质量损失。还可再通过下拉变换适用于1080i/50格式。

五 显示画面宽高比之间转换

    4:3信号在16:9屏幕上显示,一般有三种方式:(1)垂直充满,左右两边出现黑边;(2)水平充满,而垂直方向上图像上下被裁减;(3)完全填充,在16:9的屏幕上完全看到4:3的图像,水平方向被拉长。

    16:9信号在4:3屏幕上显示,有三种常规的下变换方式:切边模式(垂直方向充满,左右两边一部分信息被去掉);信箱模式(水平方向充满,上下部分会出现黑边);压缩模式(垂直方向充满,水平方向压缩后充满,使物体变高)。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值