2. 山东鲁能智能技术有限公司, 济南 250101;
3. 上海大学 通信与信息工程学院, 上海 200444
2. Shandong Luneng Intelligence Technology Company Limited, Jinan Shandong 250101, China;
3. School of Communication and Information Engineering, Shanghai University, Shanghai 200444, China
在数字视频应用中经常需要转码。所谓转码就是把数字视频数据从一种格式转换为另一种格式, 例如从码率50 Mb/s的MPEG-2全I帧转换为码率6 Mb/s的MPEG-2含I/P/B帧的基本流, 或者从MPEG-2格式转换为MPEG-4、H.264以及音视频编解码技术标准(Audio Video coding Standard, AVS)等。尤其是最近新涌现出了多种视频应用, 比如网络直播、虚拟现实等, 这些应用的内容在到达最终用户眼前之前, 往往要经过多次转码, 以适应各种不同的、不断变化的环境。由于视频格式都是有损压缩格式, 所以每次转码都会引起视频信号质量的下降。在设计应用系统时, 需要对最终的节目质量有所控制。但是在转码时往往拿不到原始节目, 也就不能准确计算出转码后的节目相对于原始节目的失真情况, 这个问题会对数字视频应用的发展造成制约。为了解决该问题, 本文提出了一种估计视频多次转码后的总失真的方法。
以前关于转码的研究, 包括不同标准之间的转码和同标准之间的转码。文献[1-2]对视频转码的研究进行了全面的综述, 包括转码过程中遇到的各种技术问题。随着新的视频编码标准的出现, 新老标准之间的转码成为视频转码研究的主要内容, 文献[3-8]都是关于新老标准之间转码的文献。但是, 在众多的转码文献当中, 探讨多次转码后失真的叠加情况的文献非常少, 因此目前还没有可以准确估计视频经过多次转码的总失真的方法。
本文将对转码过程中引起质量下降的过程进行分析, 给出定量估计多次转码后峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)的公式, 并通过初次的估计误差得到修正公式对估计结果进行修正。这种方法能准确高效地估计视频经过多次转码的总失真。值得注意的是本文讨论的是发生在数字压缩格式之间的转码, 不包括视频信号的A/D、D/A转换以及模拟格式之间的转换。
目前常用的数字视频编码格式有MPEG-2、H.264和AVS。另外, 一些新出现的数字视频编码标准例如H.265和AVS2等, 也会逐渐在实际中采用。AVS是我国制定的数字音视频编解码标准, 本文以MPEG-2和AVS之间的转码为例, 实际上相关方法对于其他转码也是适用的。
1 基本概念设视频信号采用YCbCr格式, 本文首先讨论亮度分量的情况, 稍后可以看到, 对亮度的分析同样适用于色度信号。设每帧有N个亮度采样点, 对应的原始采样值为Yi(i=1, 2, …, N), 经过一次压缩解压缩后的值为Yi1, 再经过一次压缩解压缩后的值为Yi2。令
$ {\dot \delta _i}{\rm{ = }}{Y_i} -Y_i^1 $ | (1) |
$ {\ddot \delta _i}{\rm{ = }}Y_i^1 -Y_i^2 $ | (2) |
$ {\delta _i}{\rm{ = }}{Y_i} -Y_i^2 $ | (3) |
则
$ R = 10\;\lg \frac{{{{255}^2} \cdot N}}{{\sum\limits_{i = 1}^N {d_i^2} }} $ | (4) |
其中:di为第i个采样点的失真。由于在转码时得不到原始视频数据, 因此无法精确计算出压缩后的视频序列相对于原始视频序列的失真。本文的目的就是在假定已知转码前的视频序列相对于原始序列的PSNR值的条件下, 给出估计转码后的视频序列相对于原始序列的PSNR值的公式。
2 理论下限根据式(1)~(3), 可得
$ \begin{array}{l} \sum\limits_{i = 1}^N {\delta _i^2} = \sum\limits_{i = 1}^N {({{\dot \delta }_i}} + {{\ddot \delta }_i}{)^2} = \\ \;\;\;\;\;\;\;\;\;\;\;\sum\limits_{i = 1}^N {\dot \delta _i^2 + } \sum\limits_{i = 1}^N {\ddot \delta _i^2 + } 2\sum\limits_{i = 1}^N {{{\dot \delta }_i}{{\ddot \delta }_i}} \end{array} $ |
根据柯西(Cauchy)不等式, 可得
$ \begin{array}{l} \sum\limits_{i = 1}^N {\delta _i^2} \le \sum\limits_{i = 1}^N {\dot \delta _i^2 + } \sum\limits_{i = 1}^N {\ddot \delta _i^2 + } 2\sqrt {\sum\limits_{i = 1}^N {\dot \delta _i^2} } \sqrt {\sum\limits_{i = 1}^N {\ddot \delta _i^2} } = \\ \;\;\;\;\;\;\;\;\;\;\;{\left( {\sqrt {\sum\limits_{i = 1}^N {\dot \delta _i^2} } + \sqrt {\sum\limits_{i = 1}^N {\ddot \delta _i^2} } } \right)^2} \end{array} $ | (5) |
其中:当且仅当存在非0实数k, 使得
$ \begin{array}{*{20}{l}} {\mathit{\Delta } = \sqrt {\sum\limits_{i = 1}^N {\delta _i^2} } }\\ {\mathit{\dot \Delta } = \sqrt {\sum\limits_{i = 1}^N {\dot {\delta _i^2}} } }\\ {\mathit{\ddot \Delta } = \sqrt {\sum\limits_{i = 1}^N {\ddot \delta _i^2} } } \end{array} $ |
依据式(5), 则:
$ \mathit{\Delta } \le {\rm{ }}\mathit{\dot \Delta } + \mathit{\ddot \Delta } $ | (6) |
设第一次压缩的PSNR值为
$ \dot R{\rm{ = }}10\;\lg \frac{{{{255}^2} \cdot N}}{{{{\mathit{\dot \Delta }}^2}}} $ |
$ \mathit{\dot \Delta } = \sqrt {\frac{{{{255}^2} \cdot N}}{{{{10}^{\dot R/10}}}}} $ | (7) |
类似地, 得到:
$ \mathit{\ddot \Delta } = \sqrt {\frac{{{{255}^2} \cdot N}}{{{{10}^{\ddot R/10}}}}} $ | (8) |
$ \mathit{\Delta } = \sqrt {\frac{{{{255}^2} \cdot N}}{{{{10}^{R/10}}}}} $ | (9) |
其中:R是第二次压缩后相对于原始序列的PSNR值。将式(7)~(9) 代入式(6) 并化简后, 得到
$ \frac{1}{{\sqrt {{{10}^{R/10}}} }} \le \frac{1}{{\sqrt {{{10}^{\dot R/10}}} }} + \frac{1}{{\sqrt {{{10}^{\ddot R/10}}} }} $ |
再经过变形, 可得R下限公式:
$ R \ge 10\;\lg {\left( {\frac{1}{{\sqrt {{{10}^{\dot R/10}}} }} + \frac{1}{{\sqrt {{{10}^{\ddot R/10}}} }}} \right)^{ - 2}} $ | (10) |
式(10) 给出了R的下限公式, 但是在实际应用中是不可能达到这个下限的。因为只有当两次压缩在每一个采样点的失真成比例时才能达到这个下限, 由于视频序列采样点数很多, 在每个采样点的失真成比例是极小概率事件。本文更关心的应该是R最可能的取值, 或者R最可能的取值范围。
3 对多次转码后的失真进行估计设视频序列有N个亮度采样点, 亮度的取值范围是0~255, 令Ω={-255, -254, …, 254, 255}, F={A|A是Ω的子集}, P(A)=NA/N, 其中NA是失真值为A中元素的采样点总数, 则(Ω, F, P)构成一个概率空间。每一次有损压缩, 都确定了一个定义在(Ω, F, P)上的随机变量ξ。若依次进行的两次有损压缩确定的随机变量分别为ξ和η, 则两次压缩产生的总失真对应的随机变量ζ等于ξ与η的和, 即
$ \zeta = \xi + \eta $ | (11) |
由第2章的符号, 可得
$ E\left( \xi \right) = {\textstyle{1 \over N}}\sum\limits_{i = 1}^N {{{\dot \delta }_i}} $ | (12) |
$ E\left( \eta \right) = \frac{1}{N}\sum\limits_{i = 1}^N {{{\ddot \delta }_i}} $ | (13) |
$ E\left( {\xi + \eta } \right) = \frac{1}{N}\sum\limits_{i = 1}^N {{\delta _i}} $ | (14) |
由于MPEG-2、H.264和AVS等压缩算法对直流分量的保真度高, 因此直流分量的失真非常小, 一般情况下, 可以认为直流分量的失真为0, 即E(ξ)=E(η)=0。因此可得:
$ D\left( \xi \right) = E\left( {{\xi ^2}} \right) - {\left[{E\left( \xi \right)} \right]^2} = \frac{1}{N}\sum\limits_{i = 1}^N {\dot {\delta _i^2}} = \frac{{{{\mathit{\dot \Delta }}^2}}}{N} $ | (15) |
$ D\left( \eta \right) = E\left( {{\eta ^2}} \right) - {\left[{E\left( \eta \right)} \right]^2} = \frac{1}{N}\sum\limits_{i = 1}^N {\ddot \delta _i^2} = \frac{{{{\mathit{\ddot \Delta }}^2}}}{N} $ | (16) |
$ \begin{array}{l} D(\xi + \eta ) = E[{(\xi + \eta )^2}] - {[E(\xi + \eta )]^2} = \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\frac{1}{N}\sum\limits_{i = 1}^N {\delta _i^2} = \frac{{{\mathit{\Delta }^2}}}{N} \end{array} $ | (17) |
假设ξ和η是相互独立的, 则:
$ D(\xi + \eta ) = D\left( \xi \right) + D\left( \eta \right) $ | (18) |
将式(15)~(17) 代入式(18) 并化简, 得
$ \frac{{{\mathit{\Delta }^2}}}{N} = \frac{{{{\mathit{\ddot \Delta }}^2}}}{N} + \frac{{{{\mathit{\dot \Delta }}^2}}}{N} $ | (19) |
将式(7)~(9) 代入式(19) 并化简, 得
$ \frac{1}{{{{10}^{R/10}}}} = \frac{1}{{{{10}^{\dot R/10}}}} + \frac{1}{{{{10}^{\ddot R/10}}}} $ | (20) |
解得
$ R = 10\;\lg {\left( {\frac{1}{{{{10}^{\dot R/10}}}} + \frac{1}{{{{10}^{\ddot R/10}}}}} \right)^{ - 1}} $ | (21) |
式(21) 给出了两次有损压缩后总的PSNR的估计值。该公式需要知道两次有损压缩的分别的PSNR。
4 实验结果本章对式(21) 进行验证。采用运动较剧烈的通用影像传输格式(Common Intermediate Format, CIF)的Stefan序列作为测试序列。第一次压缩采用MPEG-2, 分别压缩到2 Mb/s、3 Mb/s和4 Mb/s三种不同码率; 第二次压缩采用AVS, 采用固定QP的方式压缩编码, QP取28、32、36三个值。
为描述方便,先定义以下符号:R1是用MPEG2按确定码率压缩原始视频的PSNR;R2是在MPEG2压缩后的视频再用AVS按确定QP压缩的PSNR;R是经过MEPG2和AVS两次压缩后的视频相对于原始视频后的PSNR;R3是根据理论计算得到的PSNR。
从实验数据可以看出, 实际的PSNR比用式(21) 估计的PSNR要高, 也就是说式(21) 比较保守。出现估计误差的原因是两次压缩产生的失真不是完全独立的。由于MPEG2和AVS都是以宏块为基本编码单元, 变换和量化的基本块尺寸都是8×8, 因此在失真上具有相关性。另外, 失真的相关性还来自视频的内容。一般而言, 在纹理较为复杂的区域, 失真较大, 在纹理较为平坦的区域失真较小, 无论是MPEG-2还是AVS, 失真都具有这个特点。
5 对概率论方法估计结果的修正由表 1的数据可得出:两次压缩产生的失真不完全独立,从而使得概率论方法的估计结果存在一定误差; 并且由于视频转码过程涉及的因素较多,难以对该类误差进行理论分析。从表 1可看出, 估计误差R-R3的值基本在1~2 dB内。估计误差的值与两次压缩的PSNR有关, 当两次压缩的PSNR相差比较大时, 估计误差较小, 说明失真的相关性较小; 当两次压缩的PSNR相差比较小时, 估计误差较大, 说明失真的相关性较大。
把估计误差和两次压缩的PSNR之差的绝对值画出来, 得到图 2。
采用最小二乘拟合得到的R~R3和|R1-R2|之间的关系为:
$ Y:y = - 0.11662x + 1.7704 $ | (22) |
$ U:y = - 0.14412x + 2.0312 $ | (23) |
$ V:y = - 0.14915x + 2.0874 $ | (24) |
使用式(22)~(24) 对结果进行修正, 得到表 2~4,其中:R4是经过修正后的结果,Δ是R4相对于原计算结果R3的偏移量,D是R减去R4的差。表中的数据按照|R1-R2|从小到大排列。值得注意的是, 虽然不同的视频序列局部纹理不同导致局部的转码失真也不同, 但是整体的转码失真都是服从正态分布的, 因此式(22)~(24) 并非只适用于本实验中用到的序列, 而是适用于所有序列。
从表 2~4可以看出, 经过修正以后, 对两次编码后总的PSNR的估计已经非常准确了, 尤其是Y分量, 误差小于0.1 dB。
6 结语本文研究了在视频转码过程中的失真叠加问题, 根据理论推导给出了失真叠加后PSNR的下限值和估计值, 而且该方法可以推广到N次转码的情形。
本文首先推导出失真值的初始估计, 实验中该值大于实际失真值。这是因为两次有损压缩的失真具有相关性,而且这种相关性和有损压缩的算法有关, 也和视频的内容有关。
根据实验统计分析, 发现初始估计误差与先后两次编码的PSNR之差的绝对值基本成线性关系。采用最小二乘拟合算法对初始估计值进行修正以后, 获得了良好的效果, Y、U和V三分量的平均估计误差仅0.02 dB, 0.05 dB, 0.06 dB。
在此估计的基础上, 在进行转码时, 可以根据第一次编码的失真(PSNR)和转码后期望的节目质量(PSNR), 倒推得到转码时失真(PSNR), 从而保证最终的节目质量。
[1] | VETRO A, CHRISTOPOULOS C, SUN H. Video transcoding architectures and techniques: an overview[J]. IEEE Signal Processing Magazine, 2003, 20(2): 18-29. DOI:10.1109/MSP.2003.1184336 |
[2] | AHMAD I, WEI X, SUN Y, et al. Video transcoding: an overview of various techniques and research issues[J]. IEEE Transactions on Multimedia, 2005, 7(5): 793-804. DOI:10.1109/TMM.2005.854472 |
[3] | 王国中, 赵海武, 顾君忠. Mpeg-2到AVS视频转码器的实现[J]. 计算机工程, 2005, 31(19): 189-191. (WANG G Z, ZHAO H W, GU J Z. Implementation of efficient transcoding from MPEG-2 to AVS[J]. Computer Engineering, 2005, 31(19): 189-191. DOI:10.3321/j.issn:1002-8331.2005.19.055) |
[4] | WANG G, ZHAO H, TENG G. Usage of MPEG-2 to AVS transcoder in IPTV system[C]//PCM 2007: Proceedings of the 8th Pacific Rim Conference on Multimedia. Berlin: Springer, 2007: 65-70. |
[5] | WANG B, SHI Y, YIN B. Transcoding of H.264 bitstream to AVS bitstream [C]//WiCom 2009: Proceedings of the 5th International Conference on Wireless Communications, Networking and Mobile Computing. Piscataway, NJ: IEEE, 2009: 1-4. |
[6] | LU Z, SIU W, JIA K. Fast block size selection for H.264 video-downsizing transcoding[C]//Proceedings of the 2010 10th International Conference on Information Sciences Signal Processing and their Applications. Piscataway, NJ: IEEE, 2010: 101-104. |
[7] | HUANG S-C, HSU C-T, CHEN M-J. Efficient motion re-estimation for H.264 B-and P-frame transcoding by using maximun likelihood[C]//Proceedings of the 2010 International Conference on Electronics and Information Engineering. Piscataway, NJ: IEEE, 2010, 1: 557-561. |
[8] | FERNANDEZ-ESCRIBANO G, KALVA H, MARTINEZ J L, et al. An MPEG-2 to H.264 video transcoder in the baseline profile[J]. IEEE Transactions on Circuits and Systems for Video Technolog, 2010, 20(5): 763-768. DOI:10.1109/TCSVT.2010.2045914 |
[9] | LUO R, XIE R, ZHANG L. Fast AVS to HEVC transcoding based on ROI detection using visual characteristics [C]//Proceedings of the 2014 IEEE International Symposium on Broadband Multimedia Systems and Broadcasting. Piscataway, NJ: IEEE, 2014: 1-6. |
[10] | DIAZ-HONRUBIA A J, MARTINEZ J L, CUENCA P, et al. Adaptive fast quadtree level decision algorithm for H.264 to HEVC video transcoding[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2016, 26(1): 154-168. DOI:10.1109/TCSVT.2015.2473299 |
[11] | MORA E G, CAGNAZZO M, DUFAUX F. AVC to HEVC transcoder based on quadtree limitation[J]. Multimedia Tools and Applications, 2017, 76(6): 8991-9015. DOI:10.1007/s11042-016-3498-8 |
[12] | XIN J, LIN C-W, SUN M-T. Digital video transcoding[J]. Proceedings of the IEEE, 2005, 93(1): 84-97. DOI:10.1109/JPROC.2004.839620 |