卢 斌,孙 军,王兴东
(上海交通大学 电子工程系 图像通信与信息处理研究所;上海市数字媒体处理与传输重点实验室,上海 200240)
对于MPEG-2压缩码流来说,传统的台标或字幕插入方法是将码流完整地解码,把视频信号恢复到像素域,然后在像素域上对台标进行α半透明叠加,再将叠加后的码流进行编码[1],形成叠加后的压缩码流,如图1所示。
这种方法的缺点是:1)效率低。对视频中的每帧都做完全解码和编码,运算量大,特别是编码中的运动矢量重新搜索和IDCT,DCT运算是最耗时的两个部分。2)画质下降。在经过反量化与量化的过程后,视频图像的质量会有所下降。而非台标区域的解码和编码过程是不必要的,所以台标区以外绝大部分区域的图像质量下降是不必要的牺牲。
因此,考虑通过其他更高效的算法来实现台标实时插入这一应用需求。
现有的非传统台标插入方法主要分为局部编解码和DCT域处理两大类。
对于局部编解码方法,已有潘健、季学会等人提出相应的算法[2-3],在解码范围的确定和宏块类型处理上,也有较为详细的判断准则和方法,能够对码流进行较完善的处理,但同样存在着计算步骤繁复,在一定程度上影响效率等问题。Yu提出的反向跟踪方法[4],能把解码宏块范围进一步缩小,但针对的是台标完全覆盖的情况。徐砚劼等人提出的改进的反向跟踪法[5],能处理α半透明叠加的问题。但存在一定的时延问题,必须在整个GoP分析后才能处理相应的宏块,在实时性要求较高的场合中不太适用。李植荣等人提出了局部编解码向DCT域处理的转换[6],尝试在局部编解码的框架下引入部分DCT域处理方法,但算法较为复杂,应用不够广泛。
对于DCT域处理这类方法,其优势主要在于无需对宏块解码。但该类方法需将台标信号也做DCT变换,然后进行DCT域叠加。而α半透明叠加是矩阵的点乘运算[7],像素域的点乘在DCT域用卷积来实现[8],该实现较为复杂,但目前已有相应的快速算法[9]。陈亮等人提出了对压缩码流的DCT域处理综合方法[10],叠加台标作为其中的应用之一。林江、程国华等人提出完整的对压缩视频的DCT域字幕叠加算法[11-12],其中对于DCT域运动补偿算法有详细的描述,但仍存在算法复杂度较高的问题。徐章宁等人提出了相应算法在硬件实现上的优化处理[13]。
由于字幕叠加的关键还是在于解码区的范围确定和宏块类型的判断处理上,一般来说台标区范围都不会太大,并且运动矢量也不会太大。针对实时性要求较高的场合,从算法效率和实现难度上综合考虑,笔者采用了改进的局部编解码台标快速实时插入方案,简化算法复杂度,并允许台标区域图像质量的细微下降,以期在图像质量和算法效率上求得最佳的平衡。
假设台标为128×128大小的固定图片,并且叠加位置在画面的左上角。如图2所示,①区域是台标区。由于MPEG-2码流的I,P,B帧结构[14],不同的帧之间存在一定的参考关系,所以对①区域的改动,可能会影响到外围若干宏块的正确解码。例如,②区域中的标记阴影宏块参考到①区域中的标记阴影宏块,则影响到其正确解码。①区域中的宏块所影响到的最大解码区域称为台标相关区,即图中②区域。而图中的③,④区域对台标叠加没有影响,也不受台标叠加的影响,称为无关区。
因此,局部解码的范围便是①区域全部宏块和②区域中的部分宏块。确定解码区域的范围转化为确定②区域的范围。
目前一般的方法是根据MPEG-2编码中运动估计最大搜寻范围,即台标边缘宏块的最大运动矢量所指,来确定②区域的范围[2]。这样做可保证不会有宏块遗漏,但也会造成②区域的范围取得过大。Yu和徐砚劼等人提出的反向跟踪方法[4-5],能够把解码宏块的范围尽可能地缩小,但考虑到该方法必须在对整个GoP进行分析后,再回溯处理每一帧,这对实时性要求较高的场合不太适用,特别是GoP长度太长时更是如此。
在实际应用中,最大运动矢量的绝对值,即运动估计时的搜索窗大小,由4< MPEG-2的解码架构是以slice为单位的[14]。由于宏块采取VLC编码,无法实现字节对齐,所以为完整界定并提取宏块信息,当前宏块信息必须在前面的宏块都解码后才能获得。在判断宏块已经到②区域的边界后,对于③区域的宏块信息,在找到下一个slice头之前都可以写回码流中。而④区域中整个slice都与局部编解码无关,故在判断达到②区域的最后一个slice之后,和找到下一个帧头之前,码流中的所有信息都不予改动,可直接写回。 在3.1节确定了各个区域的范围后,下面讨论不同的帧类型和不同区域的宏块如何进行不同的判断处理。 1)对于I帧,解码①区域和②区域的宏块,然后对①区域的宏块进行台标的ΔS半透明叠加,同时将宏块缓存,供后面的P,B帧参考用。对宏块再进行帧内编码,与无关区的码流拼合,这便完成了I帧的处理。这样一来,后面P,B帧中参考到I帧非台标区的宏块能够保证按原先的运动矢量正确解码,而对于参考到I帧台标区的宏块,其处理方法将在后面详述。 2)对于P帧,同样要对①区域的slice进行解码,对①区域的宏块进行台标的α半透明叠加。由于台标区的图像内容大部分为静止的台标,相似性较大,为提高处理的效率,把P帧台标区的宏块解码后跟I帧台标区的对应宏块(已缓存)相减,得到残差ΔP,并把运动矢量(MV)设为零,前向参考,同时对叠加台标后的台标区宏块缓存。这样虽然比重新搜索运动矢量码率高,但却使得宏块处理变得简单,并且由于台标区一般面积较小,对图像质量的影响并不大,而且码率上升是极有限的。在其后的编码中多数此类的宏块类型变为skipped模式。 为满足实时性的要求,算法的处理应该越简单越好。笔者采用的方法虽使台标区画质有所下降,码率有微小上升,但对人眼的主观视觉影响并不大,而算法的处理效率却能得到较大的提高。 对于非台标区,先仅解码宏块的运动矢量,如果运动矢量指向台标区,说明该宏块的参考宏块已被改动过,如果不加以处理,在后续的播放过程中该宏块将会有台标的“残留”,从而影响画质。处理方法就是对该宏块进一步解码,找出对应的参考宏块(已解码并缓存),相减获得新的残差值Δ′P,运动矢量保持不变,这样就能保证该宏块能正常解码。而对于运动矢量没有指向台标区的②区域宏块,无须解码。 3)对于B帧,与P帧的处理方法相似,可参照图3。台标区同样进行运动矢量置零,前向参考的处理。而对台标相关区,不论宏块的类型是前向参考、后向参考还是双向参考,只要其运动矢量指向了台标区,就应解码,并找出相应的参考宏块(不论I帧还是P帧,都如前所述已缓存),相减得到新的残差Δ′B,运动矢量保持不变。运动矢量没有指向台标区的宏块同样无须解码。 由于B帧不作参考帧,故叠加台标后的台标区宏块无须缓存。I帧和P帧中的缓存数据在所有参考它们的B帧都进行处理后失效,缓存区可重复使用。 采用这种只解运动矢量再进行判断的方法,可以尽量减少宏块的解码耗时,从而避免处理效率的低下,并且能保证一定的视频质量。算法流程伪代码如下: 实验采用stockholm序列,分辨力为720×576(标清画质),设定播放帧率为 25 f/s(帧/秒),码率为 5 Mbit/s。GoP结构为N=12,M=3。实验中,参照组是传统的全解全编算法,比较指标分为算法效率和视频质量: 1)算法效率对比。在经过200帧的测试序列运算后,算法效率对比见表1。 表1 传统方法与本文方法算法效率对比 由表1可见,本文方法比传统方法效率提高约150%。算法效率提高的主要原因在于解码范围的缩小。传统算法对占画面大部分区域的非台标区也进行解码,并重新搜索运动矢量,再编码,效率低下。而本文的算法采用局部编解码来缩小解码范围,虽然包括台标相关区,但总的解码范围相对整个画面来说依然占少部分。再加上宏块类型判断处理过程采用简化处理算法,进一步提高效率,达到实时处理的要求。 2)视频质量对比。在视频质量对比上,采用在同一GoP中的每帧亮度分量作对比,衡量指标是整幅图像的PSNR。图4是本文算法中的一帧亮度分量。图5是两种算法的PSNR对比。 由图5中可见,本文方法比传统的全解全编算法在整体图像质量上有较大的提高。计算得出,传统方法的PSNR平均值为35.046 dB,本文方法的PSNR平均值为35.779 dB,比前者提高0.733 dB。可以看出,在本文的算法中,台标区的视频质量下降是很有限的,而占画面大部分的非台标区域的视频质量比传统方法提高不少,减少了不必要的视频质量下降,故总体画面的PSNR指标有较大的提升。 笔者采用了经过简化改进的局部编解码台标插入技术,主要针对实时性要求高的MPEG-2台标插入场合,从算法的高效性出发,在保证视频质量无明显下降的情况下,提出的方法实现了MPEG-2压缩码流的快速实时台标叠加。经实验证明,新方法同传统的“完全解码-叠加-再编码”的方法相比,在算法效率和视频质量上都有较大的提升。 [1]MESSERSCHMITT D G,NOGUCHI Y,CHANG S F.MPEG video compositing in the compressed domain[C]//Proc.ISCAS 1996.[S.l.]:IEEE Press,1996:596-599. [2]潘建.数字视频编辑及网络传输中若干问题研究[D].上海:上海交通大学,1999. [3]季学会.MEPG-2编解码与非线性编辑[D].杭州:浙江大学,2000. [4]YU B,NAHRSTEDT K.A compressed-domain visual information embedding algorithm for MPEG-2 HDTV streams[J].IEEE Int.Conf.Multimedia and Expo,2002, 1:677-680. [5]徐砚劼.基于MEPG-2的数字电视压缩码流处理技术研究[D].上海:上海交通大学,2009. [6]李植荣.MPEG-2视频台标系统及码率变换的研究与实现[D].上海:上海交通大学,2002. [7]SMITH B C,ROWE L.Algorithms for manipulating compressed images[J].IEEE Computer Graphics and Applications, 1993, 13(5):34-42. [8]SHEN B, SETHI I K,BHASKARAN V.DCT convolution and its application in compressed domain[J].IEEE Trans.Circuits and Systems for Video Technology, 1998,8(8):947-952. [9]JÓNSSON R H.Efficient DCT domain implementation of picture masking and compositing[C]//Proc.International Conference on Image Processing.Santa Barbara, CA, USA:[s.n.],1997:366-369. [10]陈亮.基于压缩域的数字视频处理技术研究[D].上海:上海交通大学,2003. [11]林江.MPEG-2视频流压缩域的字幕迭加及其算法研究[D].上海:上海交通大学,2004. [12]程国华.基于压缩域的视频转码与视频编辑技术的研究[D].上海:上海交通大学,2005. [13]徐章宁.基于DM642平台的数字电视码流字幕叠加技术研究[D].上海:上海交通大学,2010. [14]ISO/IEC 13818-2,Generic coding of moving pictures and associated audio information:video[S].1994.3.2 改进简化后的宏块判断处理方法
4 实验结果和数据对比
5 小结