A New Video Compression Encoding Algorithm Combining Frame Rate Conversion With HEVC Standard
-
摘要: 相比于之前主流的H.264视频压缩编码标准,HEVC在保证重建视频质量相同的前提下,可以将码率降低近50%,节省了传输所需的带宽.即便如此,由于一些特定的网络带宽限制,为继续改善HEVC视频编码性能,进一步提升对视频的压缩效率仍然是当前研究的热点.本文提出一种HEVC标准编码与帧率变换方法相结合的新型的视频压缩编码算法,首先在编码端,提出一种自适应抽帧方法,降低原视频帧率,减少所需传输数据量,对低帧率视频进行编解码;在解码端,结合从HEVC传输码流中提取的运动信息以及针对HEVC编码特定的视频帧的分块模式信息等,对丢失帧运动信息进行估计;最后,通过本文提出的改进基于块覆盖双向运动补偿插帧方法对视频进行恢复重建.实验结果证实了本文所提算法的有效性.Abstract: Compared to the video coding standard H.264, the bit rate of HEVC can be reduced nearly by 50% with the same quality of reconstructed video. So HEVC can greatly save the bandwidth used for transmission. Even so, the transmission of video is still subject to the bandwidth of some special network. In order to further enhance the performance of HEVC, the work of further enhancing the video compression ratio is a hot issue. This paper proposes a new algorithm for video coding that combines HEVC with the technique of frame rate conversion. First, on the encoding side, the paper puts forward an adaptive frame-skip scheme to reduce the original video frame rate, so that the requirement for transmitting data is reduced. Then, the low frame rate video is encoded. On the decoding side, the algorithm uses the information of motion vector and special pattern of block for encoded video frames, which are extracted from the HEVC transmission stream, to reconstruct the video. Moreover, this algorithm can estimate the motion vector of the missing frames. Finally, the algorithm reconstructs the video using the proposed method based on block cover bidirectional motion compensation interpolation. Experimental results confirm the effectiveness of the proposed algorithm.
-
Key words:
- Frame rate conversion /
- HEVC /
- adaptive frame-skip /
- block coverage /
- motion compensation interpolation
-
随着高清数字电视(High definition television, HDTV)和高端多媒体系统的普及和发展, 人们对于视频的主观享受需求也越来越高, 这就对视频节目源的质量提出了更高的要求.节目源的质量越高, 视频的数据量越大, 传输所需的带宽也就越大, 因为视频节目源的质量提高主要依赖视频的空间分辨率和时间分辨率两个方面.视频的空间分辨率指的是视频的横向行和纵向列的像素点的个数; 视频的时间分辨率是单位时间内播放的视频的帧数, 即视频的帧速率(Frame rate)二者的值越大则视频中的信息表达的越清晰, 人们的观影效果也就越好.但传输的数据量也就越大.例如, 一个视频序列每秒25帧, 尺寸为720 p ($1\, 280 \times 720$最低要求的高清晰度信号), 在不压缩的情况下需要552.96 Mbit/s.目前已经出现了4 K ($3\, 840 \times 2\, 160$)的电视信号以及8 K ($8\, 192$ $\times$ $4\, 320$)的超高清视频, 这种视频源带来更好观影感受的同时, 带来的是更大的数据量.
新一代高效视频压缩标准(HEVC)与以前的H.264编码标准相比, 在同等重建视频质量的前提下, 已经节省了将近50 %的码率, 对于节省带宽资源做出了很大贡献.但是, 实际的视频传输应用需求中, 受到一些特殊的传输带宽限制, 为了进一步提高视频压缩编码的效率和性能, 本文提出一种结合帧率变换的视频压缩方法.
帧率变换方法作为提高压缩率的技术, 与HEVC标准编码相结合, 在编码端降低视频的帧率, 以减少编码帧数降低传输码流数据, 然后在解码端插帧恢复成原帧率的视频[1].视频帧率转换(Frame rate conversion)技术分为帧率下采(Frame rate down conversion)和帧率上采(Frame rate up-conversion)[2].帧率下采技术指降低原视频的帧率, 即减少每秒播放的帧数, 降低数据量, 达到节约传输带宽的目的.传统的帧率上采技术分为:非运动补偿插帧和运动补偿插帧两种.非运动补偿插帧恢复过程中不考虑原视频中物体的运动信息, 只是通过待插帧和当前帧两参考帧对应位置的像素值来恢复待插帧像素值, 例如帧重复法和帧平均法.运动补偿插帧[3]则是考虑了场景中物体的运动过程, 通过结合运动矢量信息和参考帧中像素值信息重建待插帧, 该方法可以有效地降低帧重复法引入的抖动和帧平均法引入的模糊现象.由于这种运动补偿插帧技术已经被广泛应用于电视广播, 所以也被称为基于运动补偿的帧率提升方法(Motion compensation-frame rate up conversion, MC-FRUC)[4]. Choi等专门提出了用于帧率上转换技术的双向运动补偿内插(Bidirectional motion compensated interpolation, BMCI)[5-6], 根据插帧过程中使用的运动矢量信息的来源不同, 运动补偿插帧分为两种, 一类是基于像素域, 即对解码后的视频重新进行运动估计, 再用获得的运动矢量信息进行插帧重建, 例如Kang等[7]提出将基于扩展块的运动估计算法用于帧率上转换技术, 另外还提出一种多重运动估计算法[8], Hu等[9]提出的一种块大小可变的运动估计算法, Inseo等[10], 通过一种自适应运动估计方法获取的运动矢量用于运动补偿插帧, Xu等[11]提出的则是一种结合运动分割及边缘细化的运动估计方法, Cao等[12]提出一种基于多参考帧及软决策的运动估计算法, 还有一些文章中使用快速光流运动估计方法来代替基于块匹配的运动估计方法[13-14], 也取得了一定的效果, 另外孙琰玥等[15]提出了一种适用于视频超分辨率重建的基于小波变换的改进的自适应十字模式搜索算法.第二类是基于压缩域的, 该种方法通过从编码后的码流中提取相邻帧的运动矢量信息, 用于运动补偿插帧.例如Kim等[16]提出了一种低计算复杂度的帧率提升算法, 引入了基于预测的运动矢量平滑以及基于局部平均的运动补偿方法, 鲁志红等[17]提出一种基于加权运动估计和运动矢量分割的内插方法, 其中加权运动估计可以改善运动矢量的准确度.与前者相比, 第二种方法省去了对编码后视频重新运动估计以获取运动矢量的过程, 大大减少了计算量, 提高了时间效率.
尽管运动补偿插帧方法效果明显优于非运动补偿插帧, 但是, 传统的运动补偿插帧方法插帧重建后的视频会有空洞和块效应, 为解决上述问题, 改善视频压缩编码的性能, 本文提出一种结合帧率变换与HEVC标准的新型视频压缩编码算法.
1. 结合帧率变换与HEVC标准的新型视频压缩编码算法
视频由一系列记录运动物体变化过程的图像组成, 自然界中大部分物体的运动都是连续的, 只是在不同的场景中, 物体的运动方式有所不同, 有的运动剧烈, 有的运动缓慢.对于运动缓慢或者运动规律可循的物体, 容易预测它的运动轨迹下一时刻的位置; 相反, 如果场景中物体的运动很剧烈, 或存在场景变化等不规则运动, 那么对于运动轨迹预测就会艰难.由此可见, 视频压缩过程中运动信息对于视频重建至关重要.因此, 本文对于运动信息的获取以及运动信息后处理提出了一种新方法.
在标准的HEVC编码方法中, 尽管采用了有损压缩[18]方法来提高压缩率, 但为适应特殊带宽, 往往通过抽帧方法来进一步提升压缩率.另一方面, 由于HEVC没有对丢失帧部分的信息恢复作深入的研究, 因此找到一种高效的视频插帧恢复方法对于提高压缩效率有很大的意义.因而, 本文提出了一种结合帧率变换技术和HEVC标准的新型视频压缩编码算法.
1.1 编码端自适应抽帧方法
视频中物体的运动基本分为两类, 一种是线性可预测的, 例如水平或垂直平移滑动; 另一种是不可预测的, 例如场景中物体的消失或突现.由此可见, 如果对不同的视频进行帧率下采时都采取相同的抽帧策略, 则有可能对于视频的重建质量有影响, 例如对于运动轨迹可预测的视频帧, 其相邻的多帧都有类似的运动矢量信息, 如果只是隔帧抽取则会造成传输带宽浪费; 对于有场景跳变或物体运动规律不规则的视频, 抽帧后会造成运动不可预测.由此可见, 抽帧的方法与视频的重建质量紧密相关, 为解决上述问题, 提升帧率下采性能, 本文提出一种自适应抽帧方法.对于视频中运动缓慢或序列场景没有发生跳变的帧, 增大抽取的帧数, 以达到进一步降低编码帧数, 减少编码后传输数据量的目的, 相反, 对于运动剧烈或者存在场景跳变的视频序列, 则不抽帧, 这样可以保证视频插帧重建的质量.判断一帧是否为场景跳变帧, 采用相邻帧的平均绝对误差(MSAD[19])和相对变化率($R$)作为判断依据.
$ MSAD_i=\frac{\sum\limits_{i=0}^{m-1}\sum\limits_{j=0}^{n-1}|f_i(i, j)-f_{i-1}(i, j)|}{m\times n} $
(1) $ R=\frac{|MSAD_{i+1}-MSAD_i|}{|MSAD_{i+2}-MSAD_{i+1}|} $
(2) 其中, $f_{i-1}(i, j)$表示前参考帧在位置$(i, j)$处的像素值, $f_{i}(i, j)$表示当前参考帧在位置$(i, j)$处的像素值, $m$和$n$分别表示视频的宽度和高度, $MSAD_i$表示相邻两帧对应位置像素绝对误差的均值, $R$表示相邻帧场景的相对变化率.
自适应抽帧具体方法为:当$MSAD_i$和$R$的值均大于给定的阈值, 则判断第$i$帧为场景跳变帧, 则对该帧进行保留, 不进行抽帧处理; 反之, 则将该帧视为可抽弃帧, 判断完一帧后, 继续判断相邻下一帧是否为可抽弃帧, 这样就存在一个问题, 若连续的几帧都为可抽弃帧, 则会造成抽弃帧数过多, 对视频进行重建时, 在获取的运动信息准确性有较大影响, 导致视频重建质量不佳, 因此, 为了保证插帧重建视频的质量, 本文对于相邻参考帧之间的最大抽帧数设置了一个阈值.通过实验比较, 当设定相邻两参考帧间最大连续抽帧数阈值为2, $MSAD_i$阈值为35, $R$阈值为3时, 效果较好.具体抽帧结果如图 1所示.
1.2 丢失帧运动估计
在HEVC编解码标准中, 运动估计是尤为重要的环节之一[20].由于相邻视频帧间存在时域相关性, 将一帧图像分割成不同的块, 再从相邻帧中找到每个块的对应位置的过程称为运动估计[21].在HEVC中运动估计过程如图 2, 假设时刻$t$为当前时刻帧, 时刻$t-\Delta t$为后向参考帧, 时刻$t+\Delta t$为前向参考帧, 将当前帧中的块分别在参考帧中找到最佳匹配块, 对应的运动估计过程分别为前向运动估计和后向运动估计, 从而获得相应的运动矢量.
在传统的帧率上采技术中, 通过对低帧率视频的解码视频重新进行运动估计来获得运动矢量, 用于帧率上采中的原帧率视频的重建, 由于在HEVC编解码的过程中运动估计占用了大部分的时间, 如果对解码后的视频重新进行运动估计, 又会再次耗费大量的时间, 这将达不到实时视频通信的要求.为了解决这一问题, 本文中自适应抽帧后的视频经过HEVC编码, 从编码后的传输码流中提取参考帧运动矢量信息, 初步估算丢失帧的运动信息, 用于双向运动补偿插帧, 提高插帧恢复后视频的质量, 这样可以节省用于重新运动估计的时间.
由上所述, HEVC对低帧率视频进行编码的过程中, 在帧间编码(INTER)模式下, 通过运动估计获得相邻两编码帧的运动矢量(MV), 即待插帧的前后两参考帧的相对运动矢量信息.本文在获取低帧率视频编码时相邻帧的运动矢量信息的过程中, 例如图 2中$t$时刻帧相对于$t-\Delta t$时刻帧的运动矢量信息, 由于HEVC标准帧间编码模式下运动矢量信息是以预测块单元(PU)的方式存储的, 而PU块是在编码块单元(CU)的基础上分割出来的, HEVC中CU块最大尺寸为$64\times 64$, 因此在提取相邻帧运动矢量信息时, 以$64\times 64$最大CU块为单位, 分别提取出一帧中所有最大CU块的运动矢量信息, 且本文对获取的最大CU块中的运动矢量以$4\times 4$块为最小单位, 即在每个$64\times 64$块中分别有16行和16列的运动矢量, 其中每个运动矢量表示该$4\times 4$块内16个像素点的运动矢量值, 为了后续处理方便再将运动矢量分别对应到每个像素点, 至此, $t$时刻帧中的每个像素位置就有了相对于$t-\Delta t$时刻帧的运动矢量信息$(V_x, V_y)$, 对于丢失帧而言, 也就获得了前一参考帧对于后一参考帧的运动矢量, 然后, 将该运动矢量信息用于丢失帧运动信息的估计, 丢失帧初始运动矢量估计及传统的双向运动补偿插帧[22]计算方法如下:
$ \overline{V}_x= \pm\frac{1}{2}V_x, \quad \overline{V}_y=\pm\frac{1}{2}V_y $
(3) $ \begin{align} F_t(x, y)=&\ \frac{1}{2}(F_{t-1}(x+\overline{V}_x, y+\overline{V}_y)\, + \\ &\ F_{t+1}(x-\overline{V}_x, y-\overline{V}_y)) \end{align} $
(4) 其中, $F_t(x, y)$代表待插帧在位置$(x, y)$处的重建值, $F_{t-1}$和$F_{t+1}$分表表示前一帧和当前帧参考帧, $(V_x, V_y)$为码流中获得的待插帧的前参考帧(即前一时刻帧)相对于后参考帧(即后一时刻帧)的运动矢量, $(\overline{V}_x, \overline{V}_y)$表示由参考帧运动矢量信息计算得到的待插帧相对于前后两参考帧的初始运动矢量.传统的双向运动补偿插帧如图 3, 图中MV表示从HEVC传输码流中获取的当前帧相对于前一帧的运动矢量, 则待插帧初始运动信息由MV的一半代替, 但由于这种方法简单, 插帧后视频帧中会存在一些空洞和块效应, 针对这个问题, 本文提出一种基于帧内块运动信息填充的块覆盖双向运动补偿插帧方法.
1.3 基于帧内块运动信息填充的块覆盖双向运动补偿插帧方法
由HEVC编码过程中特殊的分块模式, 运动矢量信息以PU块的方式存储在码流信息中, 即同一个PU块中的像素位置具有相同的运动矢量.对于低帧率视频编码过程, 在IPPP帧间配置编码模式下, 编码器会同时进行帧内预测和帧间预测来获取残差信息, 尽管大部分编码块的预测模式为帧间预测, 但若帧间预测获取的残差信息不够准确时, 编码器将自动使用帧内预测获得的残差用于编码, 如图 4所示, 在一参考帧编码图像中帧内块的分布情况, 其中标记为白色标记的即为帧内编码块.
从图 4可以看出, 虽然该参考帧中帧内编码块数量较少, 但大多集中在纹理较复杂的区域, 且在HEVC标准编码中若从码流信息中提取的参考帧块信息对应的是帧内编码块, 则该块运动矢量为0, 用于插帧的话就会引起空洞或块效应[23], 所以, 在进行插帧恢复之前, 本文首先对参考帧中的这些帧内块运动信息进行估计.识别参考帧中的编码块是否为帧内块的具体方法如下:在HEVC编码过程中会记录下每一编码帧中的分块方式并传输到解码端用于解码, 本文为获取参考帧中帧内块位置, 判定哪些块是帧内编码块, 在编码码流中提取参考帧运动信息的同时, 也提取出每一参考帧的分块模式信息, 从而确定了帧内块的位置, 若当前编码块为帧间块则直接使用码流中提取的运动矢量对丢失帧进行运动估计, 若为帧内块则首先对该帧内块运动矢量进行填充, 再用于丢失帧相应块运动矢量估计, 具体参考帧中帧内块运动矢量填充方式为
$ \begin{align} &MV_{\rm intra}= \nonumber\\&\, \dfrac{ w_1M\!V_1\!+\!w_2M\!V_2\!+\!\cdots\!+\!w_nM\!V_n\!+\!M\!V_{\rm prev}\!+\!M\!V_{\rm back}}{w_1+w_2+\cdots+w_n+2}, \nonumber\\ &\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\ \ \, n>0 \end{align} $
(5) 其中, $MV_{\rm intra}$表示帧内块运动矢量估计值, $MV_{\rm prev}$表示待插帧的当前参考帧与前一参考帧中该帧内块相同位置处的运动矢量, $MV_{\rm back}$表示当前参考帧的后一参考帧中该帧内块相同位置处的运动矢量值, $MV_i$表示与该帧内块相邻的块运动矢量, $w_i$表示补偿权重, $n$为相邻块的个数.
对于补偿权重$w_i$的设定规则是:通过从码流信息中提取的编码过程中每一参考帧的帧分块模式, 得到参考帧中该帧内块相邻编码块的大小, 若相邻块的大小与该帧内块相同则权重为1, 否则, 按照相邻块与帧内块的在HEVC中的划分深度的差值来确定, 相差1, 则权重为0.5, 相差2, 则权重为0.25, 以此类推.如果相邻块中存在帧内块则不算在内, 若周围全是帧内块, 则该帧内块运动矢量设为0.
通过上面的修正, 使得参考帧中的每个帧内块有了运动矢量信息, 继续对用于基于块覆盖的运动补偿插帧的运动矢量进行优化, 在对待插帧中每个$4$ $\times$ $4$块进行插值恢复之前, 对其运动矢量进行如图 5的平滑处理.
具体计算方法为
$ MV=\frac{\sum\limits_{k=1}^N MV_k}{N} $
(6) 如图 5所示, 取该块的八个相邻块与自己本身运动矢量的平均值作为插帧恢复过程中的运动矢量, 如果待插值的块位于边界区域, 则取其边界内参考块的运动矢量进行参考, 例如若此时需要插值图像右下角的块, 则在参考帧中取其对应位置块, 其左边块、上边块以及左上方三个块进行参考.其他角落的边界块插值以此类推.经过如上处理得到丢失帧的最终运动矢量.
帧率变换技术是基于视频帧的时域相关性, 因此可以如式(3)由相邻两参考帧的运动矢量估算出待插帧的运动信息, 除此之外, 视频序列中的每一帧内部还存在空域相关性, 又由于HEVC中的大部分信息如运动矢量信息都是以不同PU块的格式存储和传输的, 在丢失帧的重建过程中也是以块的像素值重建的方式完成的, 在插帧的过程中按照待插帧中每行中的$4\times 4$块的方式进行插值, 这样就存在一个问题:待插帧中的某个块可能会同时使用到参考帧中不同的参考块的信息, 由图 4中的参考帧分块信息可知, 一帧中存在许多不同大小的块, 且每个块有不同的MV, 但对于丢失帧的插值块位置有可能覆盖了参考帧中的几个不同的编码块, 这样就会造成插值块可能同时参考几个不同的运动矢量信息来进行插值重建, 这就造成了重建帧中的块效应, 为解决这个问题, 根据从码流信息中提取的参考帧中不同的块分布, 借用待插块在参考帧中相同位置空域相邻块的运动信息和像素值来共同重建待插块, 所以在双向插帧的基础上, 充分考虑视频帧中空域上的相关性, 对待插值块分区域进行插值, 对不同区域内的像素块覆盖位置采用不同的方法进行插值, 即基于块覆盖的双向运动补偿插帧, 可有效减少插帧过程中带来的块效应.本文提出的基于块覆盖运动补偿插值方法如图 6所示.
以图 6中间实线所标注区域的待插块为例, 可见待插块在参考帧中的相同位置的范围覆盖了参考帧编码图像中的4个编码块(图 6中以虚线分割的块), 以图 6中$A$, $B$, $C$三个不同覆盖区域块来说明具体插帧过程. $A$块由于覆盖相邻的四个具有不同运动信息的块, 所以空域上要受到这四个块运动矢量的影响, 因此本文对$A$块插帧方法为分别使用参考帧中所覆盖四个块的运动矢量信息$(\overline{V}_{ix}, \overline{V}_{iy})$及像素值来重建待插帧, 再取平均, 为最终$A$块的重建值.改进式(4)中的传统双向运动补偿插帧方法, 对其进行重建如下:
$ \begin{align} F_A(x, y)=&\ \frac{1}{8}\sum\limits_{i=1}^4[F_{t-1}(x+\overline{V}_{ix}, y+\overline{V}_{iy})\, + \nonumber\\ &\ F_{t+1}(x-\overline{V}_{ix}, y-\overline{V}_{iy})] \end{align} $
(7) 其中, $F_A(x, y)$表示$A$块的重建值, $(\pm \overline{V}_{ix}, \pm \overline{V}_{iy})$表示待插值$A$块相对于前后两个参考帧最终的运动矢量信息, 因为$A$块覆盖了四个编码块, 空域上受到这四个块的影响, 所以$i$取值1 $\sim$ 4分别对应于这四个相关块重建$A$块, 最后取平均值就是重建出的$A$块像素值.同理$B$块受到两个相邻编码块运动信息的影响, $C$块只受一个块的运动信息的约束, 对这两块的插值恢复过程如下:
$ \begin{align} F_B(x, y)=&\ \frac{1}{4}\sum\limits_{i=1}^2(F_{t-1}(x+\overline{V}_{ix}, y+\overline{V}_{iy})\, + \nonumber\\ &\ F_{t+1}(x-\overline{V}_{ix}, y-\overline{V}_{iy})) \end{align} $
(8) $ \begin{align} F_C(x, y)=&\ \frac{1}{2}(F_{t-1}(x+\overline{V}_x, y+\overline{V}_y)\, + \nonumber\\ &\ F_{t+1}(x-\overline{V}_x, y-\overline{V}_y)) \end{align} $
(9) 1.4 插值重建视频帧滤波处理
尽管视频中相邻帧间存在很高的时域相关性, 但实际上相邻两帧中相同位置的像素值也不可能完全一样, 帧率上采技术中插值恢复的帧和原始帧相比肯定存在失真, 因此, 对插帧恢复后的像素值进行滤波显得尤为重要.
通过对插值恢复的视频帧进行滤波可以有效地降低处理过程中引入的噪声, 并且可以对重建帧中存在的空洞和块效应起到平滑的作用.在一视频帧中, 引入的噪声大多集中在代表图像细节纹理信息的高频部分, 因此, 选用的滤波方法应该在有效滤除掉噪声的同时, 也要保留图像中的轮廓及边缘等重要信息; 而一帧图像中大部分能量集中在低频部分, 即图像的背景部分, 往往插值重建帧中的空洞或者块效应也集中在这一部分, 通过平滑滤波可以解决这一问题.一般的滤波方法包括均值滤波, 中值滤波, 双边滤波等, 其中的均值滤以及高斯滤波可以对视频帧进行平滑, 均值滤波具体的平滑方法如图 7, 其中$(m, n)$表示一帧中的像素位置, 本文中使用了$[1, 1, 1; 1, 8, 1; 1, 1, 1]$的$3\times3$模板作为插值恢复帧平滑滤波器, 模板如图 8.经实验比较, 相比于其他$[1, 2, 1; 1, 4, 1; 1, 2, 1]$和$[1, 1, 1; 1, 1, 1; 1, 1, 1]$两个模板, 第一个模板取得了更好的滤波效果.
1.5 本文算法具体流程
综上所述, 本文算法的主要思想是结合帧率变换技术的HEVC编码改进算法, 在编码端进行自适应抽帧, 在解码端, 改进了基于块覆盖的双向运动补偿插帧方法, 进行插帧恢复, 并通过滤波方法来提高插值重建帧质量.流程图如图 9所示, 具体算法实现过程如下:
步骤 1. 在编码端将待编码视频序列进行自适应抽帧;
步骤 2. 编码抽帧后的序列, 传到解码端, 并在解码端接收到的码流信息中提取运动信息和帧内分块信息;
步骤 3. 通过码流信息得到的运动矢量信息初步确定丢失帧的运动信息;
步骤 4. 通过获取的分块信息, 对参考帧图像中的帧内编码块进行运动矢量估计, 保证每一个块都有合适自己的运动矢量;
步骤 5. 运动矢量平滑处理, 使用基于块覆盖的双向运动补偿插帧方法对待插帧进行插值恢复;
步骤 6. 对重建帧进行滤波处理, 以减少插帧中出现空洞和块效应.
2. 实验结果及分析
为了验证上文所提算法的有效性, 实验部分将本文提出的算法和标准的HEVC编解码过程实验结果进行对比.实验平台采用CPU为Intel Core i5 3470 3.2 GHz及内存为4 GB的PC.本文在对低帧率视频和原视频的HEVC编码过程中, 标准HEVC视频编解码器版本为HM16.0, 配置文件都使用了encoder_low delay_P_main, 选取了不同分辨率的视频序列的前100帧, 在量化参数QP分别选取了22, 27, 32, 37, 42的情况下进行测试.由于视频序列的多样性, 如本文算法实验结果显示, 虽然对于所选用类型的测试序列均有正向效果, 但不代表本文算法适用于所有标准视频.具体实验结果如下:
由于本文提出的是一种结合帧率变换和HEVC标准的新型视频压缩编码算法, 最终目的是在视频编码标准HEVC的基础上降低码率, 因此实验首先给出的对比结果为本文算法与HEVC标准的对比, 进一步证明算法有效性. 表 1是5个不同分辨率的标准YUV视频序列在不同量化参数下, 经过HEVC标准和本文中结合帧率变换的编码方法编码码率和重建视频峰值信噪比(Peak signal to noise ratio, PSNR)的对比.
表 1 本文算法与标准HM16.0码率及PSNR对比Table 1 The comparison of bitrate and PSNR about proposed method and HM16.0序列名称 QP HM16.0编码方法 本文算法 码率(Kbps) PSNR (dB) 码率(Kbps) PSNR (dB) Mobisode2_416 $\times$ 240 22 153.889 46.1768 116.31 44.284 27 102.877 44.5633 77.76 43.249 32 55.993 42.0227 42.115 41.339 37 32.224 39.5469 23.534 39.143 42 20.647 37.3411 14.99 37 PartyScene_832 $\times$ 480 22 5 498.261 34.1461 3 575.072 31.5 27 3 432.89 32.0024 2 287.624 30.084 32 1 527.853 28.6774 1 060.824 27.703 37 666.784 25.6876 475.32 25.263 42 303.951 23.5107 222.064 23.321 FourPeople_1280 $\times$ 720 22 2 787.105 42.447 2 007.235 41.766 27 1 488.774 41.1869 1 165.056 40.699 32 715.817 38.8563 595.181 38.57 37 387.899 36.0701 329.453 35.924 42 216.284 33.02 183.034 32.927 ParkScene_1920 $\times$ 1 080 22 5 332.273 38.1731 3 736.08 36.742 27 2 266.56 35.4312 1 613.404 34.566 32 700.955 31.8568 512.072 31.449 37 291.668 29.5234 215.176 29.296 42 134.253 27.8972 98.776 27.757 PeopleOnStreet_2 560 $\times$ 1 600 22 9 743.635 34.3938 6 512.658 31.08 27 5 535.946 31.5666 3 768.415 29.343 32 3 166.589 28.7697 2 181.695 27.431 37 1 934.102 26.4274 1 343.4 25.644 42 1 126.626 24.0122 785.935 23.687 由表 1结果可见, 对于不同分辨率的视频序列, 相比于HEVC标准视频编码方法, 在不同量化参数下, 本文算法可以节省一定的码率, 并且随着QP的逐渐增大, PSNR的差距也在逐渐减小, 为了更好地表明本文方法的有效性, 验证其与视频编码标准HEVC性能的优劣, 根据表 1中的数据做出其中几个序列的率失真曲线图, 如图 10所示.
从图 10可以看出, 本文算法在中低码率段重建视频的率失真曲线位于标准HEVC的上方, 证明性能要优于标准HEVC编解码方法, 即在中低码率段, 相同的码率情况下, 本文方法重建视频比HEVC标准视频编码的重建视频有更高的峰值信噪比.为进一步表明本文算法在节省传输带宽方面的优势, 根据上述实验数据计算得到每个序列的BD-rate值来表明在重建视频PSNR相同的前提下, 码率节省的百分比, 如表 2所示.
表 2 本文算法与标准HEVC码率节省对比Table 2 The comparison of rate saving for proposed method and HEVC序列名称 Mobisode2 PartyScene FourPeople ParkScene PeopleOnStreet 平均值 BD-rate (%) $-$14.8264 $-$12.3977 $-$11.5055 $-$15.1996 $-$12.0341 $-$13.1927 表 2中的数据表示本文结合帧率变换的视频编码方法与标准HEVC编码相比, 在保证重建视频质量一致的前提下, 节省的码率百分比, 若值为负则表示节省了相应的传输带宽.例如对于ParkScene序列, 在重建视频PSNR值一致的前提下, 节省近15 %的传输码率, 针对不同的测试序列本文算法也平均可以节省近13 %传输带宽, 从而证明了本文算法的有效性.
为表明本文算法与相关技术方法的优势, 进一步将本文结合帧率变换的视频压缩编码方法同时与传统的双向运动补偿插帧方法以及文献[9]提出的基于软决策的运动估计帧率提升算法实验结果进行比较, 取不同测试序列, 在不同的QP下, 重建视频PSNR值的平均值比较如表 3所示.
表 3 不同算法重建视频平均PSNR (dB)Table 3 The average PSNR (dB) value of video reconstructed with different methods序列名称 传统双向运动补偿插帧 文献[9] 本文算法 FourPeople 37.0147 37.3283 37.9772 ParkScene 31.125 31.4167 31.962 Mobile 26.7794 28.3065 28.6146 Tennis 30.1366 30.4844 30.7237 从表 3可以看出, 本文算法重建视频的PSNR值不仅优于传统的双向运动补偿插帧方法, 与文献[9]提出的帧率提升算法相比, 也具有更高的重建视频PSNR.以上实验结果均为重建视频的客观评价结果对比, 为表明本文算法的重建视频主观效果与文献中所提算法的对比, 图 11给出了实验部分的主观对比效果图.
图 11 (a)为序列ParkScene原始视频中的第14帧, 图 11 (b)为使用传统运动补偿插帧方法重建生成的第14帧, 图 11 (c)和图 11 (d)分别是文献[9]和本文所提算法重建视频的第14帧, 由主观效果对比图可以看出, 在文中白色方框圈起的范围内, 通过本文算法重建出的视频主观质量要优于传统的双向运动补偿插帧方法和文献[9]使用的方法, 在同等传输码率的前提下, 本文算法重建视频有更好的主观质量.
由于本文算法在开始对原视频进行了自适应抽帧, 减少了待编码视频的帧数, 并且省去了对于丢失帧运动信息重新运动估计的过程, 因此大大降低了编码复杂度, 节省了运算时间, 为表明本文算法时效性的提升, 表 4给出了两种方法在时间效率方面的对比结果.本文算法与标准编解码时间之差相对于标准编码时间的百分比$\Delta T$为
$ \Delta T=\frac{T_{{\text{改进}}}-T_{\text{标准}}} {T_{\text{标准}}}\times 100 % $
(10) 表 4 编码时间效率对比Table 4 The comparison of coding time序列名称 QP (dB) 标准HM16.0编码时间(s) 本文算法时间(s) $\Delta T$ (%) PartyScene_832 $\times$ 480 22 10717.161 5 892.436 $-$45.02 27 7 868.587 4 714.987 $-$40.08 32 5 986.152 3 403.753 $-$43.14 37 4 875.39 2 784.821 $-$42.88 42 4 057.444 2 211.079 $-$45.51 FourPeople_1 280 $\times$ 720 22 9 724.638 5 338.595 $-$45.1 27 7 885.048 4 838.479 $-$38.64 32 7 171.39 3 917.959 $-$45.37 37 6 850.932 3 673.508 $-$46.38 42 6 492.365 3 571.843 $-$44.98 ParkScene_1 920 $\times$ 1 080 22 36 263.066 19 216.03 $-$47.01 27 25 401.101 15 042.524 $-$40.78 32 20 704.785 11 547.355 $-$44.23 37 18 175.229 9 847.318 $-$45.82 42 16 256.87 8 745.239 $-$46.21 PeopleOnStreet_2 560 $\times$ 1 600 22 51 921.735 28 433.679 $-$45.24 27 39 493.22 23 313.14 $-$40.97 32 32 649.236 17 791.625 $-$45.51 37 28 675.298 15 602.986 $-$45.59 42 24 987.769 13 700.208 $-$45.17 平均 $-$44.1815 其中, $T_{\text{改进}}$和$T_{\text{标准}}$分别表示本文算法和HEVC标准视频编码方法对视频的编解码时间.
由时间对比可知, 本文改进算法与标准HM16.0相比, 在时间效率方面节省了将近40 %的时间, 证明了本文方法在时间效率方面优于传统编码标准.
3. 总结与展望
本文的结合帧率变换和HEVC标准的新型视频压缩编码算法, 充分利用了视频编码过程中提取的参考帧运动矢量信息和帧内分块信息, 省去对于丢失帧的运动信息重新运动估计的过程, 提高了编码的效率, 同时由于编码前对视频进行了自适应抽帧减少了编码帧数, 从而减少了传输的数据量, 节省了传输的带宽, 通过相关实验和结果表明, 使用本文算法的重建视频有较好的主客观质量, 性能也在中低码率段优于HEVC标准的编解码方法.
然而, 本文提出的算法仍然存在进一步提升性能的地方, 由于该方法在编码端对原视频进行自适应抽帧, 由参考帧运动矢量信息结合帧内分块信息对丢失帧进行运动矢量估计, 因此对于运动不规则的视频估计结果不够准确, 为进一步提升该方法对运动剧烈序列的有效性, 可结合图像中的纹理信息进行进一步的研究和探索.
-
表 1 本文算法与标准HM16.0码率及PSNR对比
Table 1 The comparison of bitrate and PSNR about proposed method and HM16.0
序列名称 QP HM16.0编码方法 本文算法 码率(Kbps) PSNR (dB) 码率(Kbps) PSNR (dB) Mobisode2_416 $\times$ 240 22 153.889 46.1768 116.31 44.284 27 102.877 44.5633 77.76 43.249 32 55.993 42.0227 42.115 41.339 37 32.224 39.5469 23.534 39.143 42 20.647 37.3411 14.99 37 PartyScene_832 $\times$ 480 22 5 498.261 34.1461 3 575.072 31.5 27 3 432.89 32.0024 2 287.624 30.084 32 1 527.853 28.6774 1 060.824 27.703 37 666.784 25.6876 475.32 25.263 42 303.951 23.5107 222.064 23.321 FourPeople_1280 $\times$ 720 22 2 787.105 42.447 2 007.235 41.766 27 1 488.774 41.1869 1 165.056 40.699 32 715.817 38.8563 595.181 38.57 37 387.899 36.0701 329.453 35.924 42 216.284 33.02 183.034 32.927 ParkScene_1920 $\times$ 1 080 22 5 332.273 38.1731 3 736.08 36.742 27 2 266.56 35.4312 1 613.404 34.566 32 700.955 31.8568 512.072 31.449 37 291.668 29.5234 215.176 29.296 42 134.253 27.8972 98.776 27.757 PeopleOnStreet_2 560 $\times$ 1 600 22 9 743.635 34.3938 6 512.658 31.08 27 5 535.946 31.5666 3 768.415 29.343 32 3 166.589 28.7697 2 181.695 27.431 37 1 934.102 26.4274 1 343.4 25.644 42 1 126.626 24.0122 785.935 23.687 表 2 本文算法与标准HEVC码率节省对比
Table 2 The comparison of rate saving for proposed method and HEVC
序列名称 Mobisode2 PartyScene FourPeople ParkScene PeopleOnStreet 平均值 BD-rate (%) $-$14.8264 $-$12.3977 $-$11.5055 $-$15.1996 $-$12.0341 $-$13.1927 表 3 不同算法重建视频平均PSNR (dB)
Table 3 The average PSNR (dB) value of video reconstructed with different methods
序列名称 传统双向运动补偿插帧 文献[9] 本文算法 FourPeople 37.0147 37.3283 37.9772 ParkScene 31.125 31.4167 31.962 Mobile 26.7794 28.3065 28.6146 Tennis 30.1366 30.4844 30.7237 表 4 编码时间效率对比
Table 4 The comparison of coding time
序列名称 QP (dB) 标准HM16.0编码时间(s) 本文算法时间(s) $\Delta T$ (%) PartyScene_832 $\times$ 480 22 10717.161 5 892.436 $-$45.02 27 7 868.587 4 714.987 $-$40.08 32 5 986.152 3 403.753 $-$43.14 37 4 875.39 2 784.821 $-$42.88 42 4 057.444 2 211.079 $-$45.51 FourPeople_1 280 $\times$ 720 22 9 724.638 5 338.595 $-$45.1 27 7 885.048 4 838.479 $-$38.64 32 7 171.39 3 917.959 $-$45.37 37 6 850.932 3 673.508 $-$46.38 42 6 492.365 3 571.843 $-$44.98 ParkScene_1 920 $\times$ 1 080 22 36 263.066 19 216.03 $-$47.01 27 25 401.101 15 042.524 $-$40.78 32 20 704.785 11 547.355 $-$44.23 37 18 175.229 9 847.318 $-$45.82 42 16 256.87 8 745.239 $-$46.21 PeopleOnStreet_2 560 $\times$ 1 600 22 51 921.735 28 433.679 $-$45.24 27 39 493.22 23 313.14 $-$40.97 32 32 649.236 17 791.625 $-$45.51 37 28 675.298 15 602.986 $-$45.59 42 24 987.769 13 700.208 $-$45.17 平均 $-$44.1815 -
[1] Lee S H, Shin Y C, Yang S, Moon H H, Park R H. Adaptive motion-compensated interpolation for frame rate up-conversion. IEEE Transactions on Consumer Electronics, 2002, 48 (3):444-450 doi: 10.1109/TCE.2002.1037026 [2] Hilman K, Park H W, Kim Y M. Using motion-compensated frame-rate conversion for the correction of 3:2 pulldown artifacts in video sequences. IEEE Transactions on Circuits and Systems for Video Technology, 2000, 10 (6):869-877 doi: 10.1109/76.867925 [3] Kim D, Park H. An efficient motion-compensated frame interpolation method using temporal information for high-resolution videos. Journal of Display Technology, 2015, 11 (7):580-588 doi: 10.1109/JDT.2015.2417313 [4] Tsai T H, Shi A T, Huang K T. Accurate frame rate up-conversion for advanced visual quality. IEEE Transactions on Broadcasting, 2016, 62 (2):426-435 doi: 10.1109/TBC.2016.2550764 [5] Choi B T, Lee S H, Ko S J. New frame rate up-conversion using bi-directional motion estimation. IEEE Transactions on Consumer Electronics, 2000, 46 (3):603-609 doi: 10.1109/30.883418 [6] Choi B D, Han J W, Kim C S, Ko S J. Motion-compensated frame interpolation using bilateral motion estimation and adaptive overlapped block motion compensation. IEEE Transactions on Circuits and Systems for Video Technology, 2007, 17 (4):407-416 doi: 10.1109/TCSVT.2007.893835 [7] Kang S J, Cho K R, Kim Y H. Motion compensated frame rate up-conversion using extended bilateral motion estimation. IEEE Transactions on Consumer Electronics, 2007, 53 (4):1759-1767 doi: 10.1109/TCE.2007.4429281 [8] Kang S J, Yoo S J, Kim Y H. Dual motion estimation for frame rate up-conversion. IEEE Transactions on Circuits and Systems for Video Technology, 2010, 20 (12):1909-1914 doi: 10.1109/TCSVT.2010.2087832 [9] Hu H P, Liu G Y. A novel method for frame rate up-conversion. In: Proceedings of the 2011 International Conference on Image Analysis and Signal Processing (IASP). Wuhan, China: IEEE, 2011. 6-9 [10] Inseo H, Ho S J, Myung H S. A new motion compensated frame interpolation algorithm using adaptive motion estimation. Journal of the Institute of Electronics and Information Engineers, 2015, 52 (6):62-69 doi: 10.5573/ieie.2015.52.6.062 [11] Xu C, Chen Y Q, Gao Z Y, Ye Y Z, Shan T. Frame rate up-conversion with true motion estimation and adaptive motion vector refinement. In: Proceedings of the 4th International Congress on Image and Signal Processing (CISP). Shanghai, China: IEEE, 2011. 353-356 [12] Cao Y Z H, He X H, Teng Q Z, Wu W. Motion compensated frame rate up-conversion using soft-decision motion estimation and adaptive-weighted motion compensated interpolation. Journal of Computational Information Systems, 2013, 9 (14):5789-5797 [13] Kaviani H R, Shirani S. Frame rate upconversion using optical flow and patch-based reconstruction. IEEE Transactions on Circuits and Systems for Video Technology, 2016, 26 (9):1581-1594 doi: 10.1109/TCSVT.2015.2469120 [14] Lee W H, Choi K, Ra J B. Frame rate up conversion based on variational image fusion. IEEE Transactions on Image Processing, 2014, 23 (1):399-412 doi: 10.1109/TIP.2013.2288139 [15] 孙琰玥, 何小海, 宋海英, 陈为龙.一种用于视频超分辨率重建的块匹配图像配准方法.自动化学报, 2011, 37(1):37-43 http://www.aas.net.cn/CN/abstract/abstract17404.shtmlSun Yan-Yue, He Xiao-Hai, Song Hai-Ying, Chen Wei-Long. A block-matching image registration algorithm for video super-resolution reconstruction. Acta Automatica Sinica, 2011, 37 (1):37-43 http://www.aas.net.cn/CN/abstract/abstract17404.shtml [16] Kim U S, Sunwoo M H. New frame rate up-conversion algorithms with low computational complexity. IEEE Transactions on Circuits and Systems for Video Technology, 2014, 24 (3):384-393 doi: 10.1109/TCSVT.2013.2278142 [17] 鲁志红, 郭丹, 汪萌.基于加权运动估计和矢量分割的运动补偿内插算法.自动化学报, 2015, 41 (5):1034-1041 http://www.aas.net.cn/CN/abstract/abstract18677.shtmlLu Zhi-Hong, Guo Dan, Wang Meng. Motion-compensated frame interpolation based on weighted motion estimation and vector segmentation. Acta Automatica Sinica, 2015, 41 (5):1034-1041 http://www.aas.net.cn/CN/abstract/abstract18677.shtml [18] 马名浪, 何小海, 滕奇志, 陈洪刚, 卿粼波.基于自适应稀疏变换的指纹图像压缩.自动化学报, 2016, 42 (8):1274-1284 http://www.aas.net.cn/CN/abstract/abstract18916.shtmlMa Ming-Lang, He Xiao-Hai, Teng Qi-Zhi, Chen Hong-Gang, Qing Lin-Bo. Fingerprint image compression algorithm via adaptive sparse transformation. Acta Automatica Sinica, 2016, 42 (8):1274-1284 http://www.aas.net.cn/CN/abstract/abstract18916.shtml [19] Hong B, Eom M, Choe Y. Scene change detection using edge direction based on intra prediction mode in H.264/AVC compression domain. In: Proceedings of the 2006 IEEE Region 10 Conference. Hong Kong, China: IEEE, 2006. 1-4 [20] Yan C G, Zhang Y D, Xu J Z, Dai F, Zhang J, Dai Q H, Wu F. Efficient parallel framework for HEVC motion estimation on many-core processors. IEEE Transactions on Circuits and Systems for Video Technology, 2014, 24 (12):2077-2089 doi: 10.1109/TCSVT.2014.2335852 [21] Heithausen C, Vorwerk J H. Motion compensation with higher order motion models for HEVC. In: Proceedings of the 2015 IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP). South Brisbane, QLD, Australia: IEEE, 2015. 1438-1442 [22] Lee S H, Kwon O, Park R H. Weighted-adaptive motion-compensated frame rate up-conversion. IEEE Transactions on Consumer Electronics, 2003, 49 (3):485-492 doi: 10.1109/TCE.2003.1233759 [23] Song H B, Men A D, Shi G J. A method for halo artifact reduction in MEMC. In: Proceedings of the 2009 Digest of Technical Papers International Conference on Consumer Electronics. Las Vegas, NV, USA: IEEE, 2009. 1-2 期刊类型引用(6)
1. 常会丽,周金莲. 基于MVC架构的多维数据压缩存储方法研究. 计算机仿真. 2022(04): 279-283 . 百度学术
2. 曹海燕,张大维. 基于卷积神经网络的激光视频压缩研究. 激光杂志. 2021(07): 114-117 . 百度学术
3. 刘森. 基于DaVinci技术的视频压缩传输系统设计. 电子设计工程. 2021(19): 184-188 . 百度学术
4. 蔡于涵,熊淑华,孙伟恒,Karn Pradeep,何小海. 基于运动矢量细化的帧率上变换与HEVC结合的视频压缩算法. 计算机科学. 2020(02): 76-82 . 百度学术
5. 黄晨. 基于DaVinci平台的四通道视频编码器系统设计. 电子设计工程. 2020(20): 39-43 . 百度学术
6. 赵雪彤. 多媒体网络中差异化视频信息分类传递技术. 计算机仿真. 2020(11): 189-193 . 百度学术
其他类型引用(3)
-