虚拟现实屏幕内容视频的编码处理
2020-01-16徐媛媛朱艳丽
文/徐媛媛 朱艳丽
1 引言
虚拟现实技术(Virtual Reality, 简称VR)通过使用具有交互性的软件和硬件来模拟生成一个具有真实感和沉浸感的三维环境,使得用户有身临其境的体验。基于此,VR技术在游戏、电影、教育、医疗等众多领域有着广泛的应用,例如可以通过VR实现虚拟购物、就医、以及观看演唱会等。由于价格及便利性的优势,面向普通消费者的主要是头戴式虚拟现实设备.用户可以通过头戴式显示器(Head Mounted Display, 简称HMD),透过光学镜片在距离很近的屏幕上观看虚拟场景。
随着VR用户的增加,VR应用内容逐渐丰富。同时,伴随云技术的兴起,设备之间进行屏幕内容分享的需求也在急剧增加,并相应的产生了如云游戏、无线屏幕显示、镜像屏幕、以及屏幕虚拟化等应用。在这些应用中,屏幕分享通常需要以屏幕内容视频的形式在VR设备之间进行实时地传输,并引发了相关屏幕内容视频编码的研究。
关于屏幕内容编码的研究得到了学术界和工业界的广泛关注,尤其是在提高编码效率上。高效视频编码(HEVC)中的屏幕内容编码扩展标准文献[1,2]提出几项新的编码工具,例如帧内块复制、调色板模式、自适应色彩变换、自适应运动矢量精度等。在文献[3]中,作者将屏幕内容分成色彩和结构两分量而不使用变换来提高压缩性能。根据屏幕内容含有较少种类颜色的特性,文献[4]使用了一种基于色彩表和色彩索引图的编码方式。在[5]中,研究者根据混合屏幕内容的特点,提出了同时采用色度采样编码器和全色度编码器的编码方式,取得了较好的编码效果。文献[6]设计了与全色度HEVC结合的误差限自适应的有损字典编码方案。除了有损屏幕内容编码,文献[7,8]为无损屏幕内容帧内编码提出了一个模板匹配预测的编码方法,达到了很好的压缩效果。
虽然已有的屏幕内容编码方法在提高压缩性能已经取得了很大进展。然而,上述屏幕内容编码方法并未考虑虚拟现实的屏幕内容特性。为此,本文提出了有效区域和无效区域的划分方法,并进一步提出了对无效区域像素进行处理的方法,来提高头戴式虚拟现实屏幕内容视频的帧内编码压缩性能。实验结果验证了该方法的有效性。
2 虚拟现实屏幕内容视频介绍
在内容分布上,VR HMD屏幕内容视频与普通屏幕内容视频有不同的特点。如图1(a)和图1(b)所示,首先普通屏幕内容视频通常是单视图的,而HMD屏幕内容视频中具有左眼和右眼两个视图。为了得到立体感,VR HMD会为左、右眼提供同一场景不同视角的两幅图像。大脑将融合这两幅图像感知深度信息,从而得到一个立体的图像。其次,VR HMD的屏幕有效区域呈桶型,屏幕除去桶型有效区域的剩余部分则为无效区域,而普通屏幕内容视频通常不存在无效区域。
编码过程中,有效区域边界处的图像块包括实际有效区域像素和无效区域像素。与均匀的块相比,这些非均匀块在离散余弦变换(DCT)和量化后产生更多DCT高频分量,从而导致比特率增加。通常的编码方案是为高频分量较少或高频分量幅值较小这种情况设计的(例如Z字形扫描、DCT变换系数),高频分量的量化亦会导致解码恢复的图像在区域边缘有振铃效应。因此,笔者要对无效区域的处理方法进行研究来提高虚拟现实屏幕内容视频的编码效率。
3 无效区域与有效区域划分算法
根据屏幕内容中左右眼视图对称的特性,先将屏幕内容区域一分为二,只对其中一个区域进行有效性区域划分,然后镜像映射到另外一个区域中。VR HMD为了纠正光学镜片的枕型失真将有效区域预先处理为桶型。视场越大、观测范围越大,有效区域的桶型失真越严重。可以看出,未经处理的无效区域的像素值统一编码处理成了固定像素。基于这个观察,笔者提出采用基于阈值的图像分割法进行无效区域与有效区域的划分。如果将无效区域记为C0,有效区域记为C1,用x(i,j)表示位于位置(i,j)的原始像素值用x(i,j)表示位于位置(i,j)的原始像素值,用f表示无效区域的像素值,那么区域划分算法可以用如下公式表示:
图1:不同类别的视频序列举例
图2:无效区域划分和编码处理方法
如果像素值与无效区域像素值比较接近,那么该像素属于无效区域,否则属于有效区域。笔者无需对所有像素值进行比较。如图2所示,对于每一行的所有像素来说,笔者只需要分别从图像帧的最左边、最中间的像素分别向右、向左搜索获得边界点A和B。类似的,从图像帧的最中间、最右边的像素分别向右、向左搜索获得边界点C和D。对于图像上方和下方的某些行的所有像素都属于无效区域,这个时候就不用记录边界点。
表 1:编码处理前后的编码效率对比
图3:编码处理前后的视频序列
4 对于无效区域的编码处理方法
编码过程中,有效区域边界处的图像块包括实际有效区域像素和无效区域像素。与均匀的块相比,这些非均匀块在离散余弦变换(DCT)和量化后产生更多DCT高频分量,从而导致比特率增加。通常的编码方案是为高频分量较少或高频分量幅值较小这种情况设计的(例如Z字形扫描、DCT变换系数),高频分量的量化亦会导致解码恢复的图像在区域边缘有振铃效应。
另外,由于双视图中无效区域像素值均为固定值,导致在有效区域桶型边缘使用帧内块复制模式进行块预测效率不高。由于左右眼视图存在视差,已经编码重建的左眼视图含有不规则有效区域,使得左眼视图的参考块或右眼视图的待编码块处于桶型边缘时含有部分无效区域的样本值。待编码的图像块与参考图像块之间的这种不匹配导致额外的预测误差,降低了编码效率。
本文采用改变无效区域的样本值的方案来提高不规则编码块的编码效率。笔者发现,如果编码单元内部的相关性较大,说明该编码单元具备了高效压缩的可能,从而编码比特率也就越低。因此,笔者提出了一种利用有效区域边缘的像素值对无效区域进行编码处理的方法。本文提出的编码处理方法是按行进行的。如图2所示,以图像的边界、图像的中线以及4个边界点,可以将每一行无效区域的像素按照位置分为四段。从左至右,这四段区域的无效区域像素值分别可以用边界点A右边、边界点B左边、边界点C右边、以及边界点D左边的像素值进行编码处理。通过这种编码处理方式,可以让无效区域其像素值与其余区域内容更为相关来减少DCT高频分量。
5 实验结果
笔者通过录制VR应用得到了测试VR HMD的测试序列。首先按照文中提出的区域划分算法对测试序列进行无效区域与有效区域划分,然后使用提出的无效区域处理方法对无效区域像素值进行改变。图3(a)和(b)分别显示了编码处理前后的视频序列。编码处理后的视频已经观察不到桶型的边界了。
本文使用HEVC屏幕内容编码的参考软件模型HM-16.9+SCM-8.0对编码处理前后的视频序列进行编码来验证编码处理算法的有效性。在编码时,量化参数QP的取值分别为22,27,32,37,使用了全帧内编码模式。测试结果如表1所示。从表中可以看出,经过编码处理以后,视频的码率会发生下降,而有效区域的重建质量却得到了提升。在QP取值为37的情况下,编码处理后码率节约了6.2%,而有效区域的PSNR却提高了多达2.77dB。这些说明了本文提出的编码处理算法能有效地提升虚拟现实屏幕内容视频编码的压缩性能。
5 结论
与普通的屏幕内容视频不同,头戴式虚拟现实设备的屏幕内容画面分为桶性有效区域和不规则无效区域,视频压缩性能会受到区域间的不规则边界的影响。为了提高头戴式虚拟现实屏幕内容视频的帧内编码压缩性能,本文提出了有效区域和无效区域的划分方法,并进一步提出了对无效区域像素进行处理的方法。实验结果验证了编码处理后该类视频的编码效率有所提高。