作者:Yuwen He
1. 概述
近年来,网络基础设施的升级、智能手机普及、视频技术的不断发展,使得用户可以享受更高质量的视频服务。图1显示了视频质量发展趋势。一个方向是提高图像分辨率,从标清(SD),高清(HD)向超高清(UHD 4K/8K)发展,分辨率提高可以扩大观看视野,从而用户主观感受得到改善。另外一个方向是提高像素的质量,包括位宽(Bit Depth)、颜色动态范围(Wide Color Gamut, WCG)和高对比度 (High Dynamic Range, HDR),这些像素质量方面的改进都有效地提高了用户在纹理细节、亮度和颜色丰富程度上的感知效果,从而提高了主观质量。而且超高清和高对比度和颜色动态范围结合后(BT.2020),进一步提高了用户主观感受。360视频在这基础上进一步提供360度的全向视角,用户通过头盔式显示设备可以得到一种身临其境的沉浸式观看感受;另一方面用户可以根据自己的兴趣,通过头盔式显示设备或者智能手机方便地切换观看视角。如图2所示,由于智能手机本身有3D姿态传感器,用户通过改变智能手机的朝向可以非常方便地切换观看视角。这种视频浏览方式改变了传统视频固定视角的观看模式,增加了用户对视频内容的兴趣。目前360视频可以先用多视点(如2个或者6个方向)的同步广角相机拍摄多视点视频,然后再通过拼接(stitch)技术合成360视频。360视频的这些新特点比较适合虚拟现实(VR)、增强现实(AR)方面的应用,而且随着360视频拍摄和显示设备的普及,它在娱乐、教学、社交媒体、工业设计、互动游戏、线上购物、远程医疗、虚拟旅游等领域都有一些好的示范应用。随着5G网络和具有更强视频拍摄和图形处理能力的智能手机推广,360视频应用的质量将得到很大改进,而且低延迟的实时交互式360视频应用服务成为可能。
图1. 视频质量发展趋势
图2. 用户观看360视频时切换视角
2. 360视频编码挑战
由于360视频的视野要比UHD/HD视频大很多,要达到普通HD分辨率一样的清晰度,360视频本身就需要16K以上分辨率。这就要求360视频压缩要非常高效,对360视频的编码和传输技术都提出了新挑战。ITU-T和ISO/IEC联合视频专家组(JVET)在2020年制定了新的视频压缩标准H.266/VVC(Versatile Video Coding),它对SDR、HDR、和360视频都有针对性的优化,以适应现在和将来不同视频应用的需求。JVET对360视频做了比较全面的研究,包括360视频到2D平面的投影方法、编码帧封装方法、360视频质量评价方法、和360视频编码优化方法方面都有比较多的探索和测试,形成了一套有效的360视频处理、编码、质量评估体系 [2][3][4]。图3显示了360视频包括拍摄、合成、2D平面投影、编码,解码、给定视角下显示区域提取的处理流程。
图3. 360视频处理流程
JVET 指定了用于测试的14种360视频2D平面投影格式 [3]:Equirectangular projection(ERP),(图4),Adjusted equal-area projection(AEP),Cubemap projection (CMP)(图5),Adjusted cubemap projection (ACP), Equi-angular cubemap (EAC), Hybrid equi-angular cubemap(HEC), Generalized cubemap projection(GCMP),Segmented sphere projection(SSP), Rotated sphere projection(RSP), Fisheye,Octahedron projection (OHP), Icosahedron projection(ISP),Truncated square pyramid (TSP), Equatorial cylindrical projection(ECP)。360视频可以包含整个球面范围(经度方向 [-180, 180], 维度方向 [-90, 90]),有些应用只有面向用户的前面半球(经度方向 [-90, 90], 纬度方向 [-90, 90])。 360Lib参考软件 [4] 支持这些投影格式转换,各种质量评价指标的计算,和根据用户指定浏览轨迹提取用于观看的显示视频以支持360视频的主观质量评价。这个360视频处理参考软件可以和 H.266/VVC 参考软件合起来以支持360视频投影格式转换、编码帧封装和编码的整个过程。
图4. ERP投影
图5. CMP投影,灰色区域是填充区域
360视频编码和普通视频编码相比,主要挑战有以下三个方面:(1)360视频合成时的2D平面投影格式和编码用的2D平面投影格式可能会不一致,比如合成360视频时一般使用的是ERP格式,而编码时考虑到编码效率可能采用其它投影格式进行编码;(2)编码图像的每个像素对应在360度球面上的采样率是不均匀的:比如ERP(如图4所示)北极和南极区域图像都被拉伸变形严重;CMP(如图5所示)每个面内部对应在球面的采样率也是不一样的——离面中心越远采样率越高,这就导致物体在面边缘处被拉伸变形;(3)如果用户观看的视野跨了360视频2D平面投影格式中的多个面,就会有不连续的接缝现象(seam artifact),如图6中红色箭头所示,这是编码过程中没有考虑这些面之间的边界造成的。
ERP格式编码 & CMP格式编码
图6. ERP和CMP投影编码后显示时观察到的接缝现象
3. 360视频编码技术
针对360视频编码中的这些挑战,H.266/VVC里定义了一些专门针对360视频的编码技术。下面逐一介绍。
(1)环绕运动补偿(Wrap-around Motion Compensation)
因为360视频是定义在球面上的视频,2D平面投影封装成编码帧后,帧边界外面其实是有像素的,只是这些像素被摆放在别的位置了。比如图4所示封装后的ERP图,实际上这个图的左边界和右边界在球面上对应着同一个边界,所以左边界外面的像素其实是位于右边界里面的(也可以说右边界外面像素其实是位于左边界里面的)。基于这个特点,H.266/VVC定义了水平方向的环绕运动补偿技术。如图7所示,如果当前帧的当前编码块的预测参考块超出了图像边界,那么超出部分(图7左边虚线阴影区域)可以通过向右平移“ERP width”这个距离,找到图像内的对应块(图7中Reference block(wrapped-around)),这样就不需要用传统编码里面的重复填充来填补那些图像外的像素了,而是用和球面上对应的连续区域来填充,这样预测准确性可以提高。H.266/VVC只定义了水平方向的环绕运动补偿,这个环绕运动补偿的位移量(wrap-around offset)是在图像参数集(PPS)中定义的(见表1),通过编码的图像宽度和环绕运动补偿参数(表1中pps_pic_width_minus_wraparound_offset)可以计算得出环绕运动补偿水平方向上平移的亮度信号整像素个数。这个技术因为提高了图像跨边界的预测准确性,所以对运动视频,尤其是在物体运动超出图像边界时,可以有效减少上面提到的接缝现象。
图7. Padded ERP中的环绕运动补偿
表1. Wrap-around offset在PPS中指示:
(2)虚拟边界(Virtual Boundary)
360视频投影格式中可能包含多个面(如CMP),当通过平移、旋转、翻转、缩放、填充(padding)等操作把这些面摆放到编码帧结构中时,在编码图像帧内部有可能造成不连续的边界。图8显示了一个例子,如果把CMP六个面按照两行三列方式摆放:右面、前面、左面三个面摆放在第一行,下面、后面、上面三个面摆放在第二行,那么在第一行和第二行之间的那个边界(图8中黄线指示)两侧的内容就不连续。在这种情况下,如果环内滤波(in-loop filtering,包括deblocking,sample adaptive offset (SAO), adaptive loop filtering(ALF))在边界附近两边滤波时引用了另外一侧的像素,就会在360视频正常显示时产生接缝现象(如图9所示 [7])。为了避免这些接缝现象,H.266/VVC定义了虚拟边界的语法,用户可以在图像内部定义一些虚拟边界,这些虚拟边界的位置信息可以在序列参数集(SPS)(见表2)或者图像头(PH)中进行编码,环路滤波在这些定义的虚拟边界处不能参考跨边界另外一侧像素。sps_virtual_boundaries_enabled_flag表示开启或者关闭这个虚拟边界定义。在图8的例子中,只要定义一条水平方向的和图8中黄线位置相同的虚拟边界就可以解决这里的环路滤波问题。
图8. CMP(3x2 布局)图像内部中不连续边界
图9. 环路滤波在不连续边界处滤波时参考了边界另外一侧像素后产生的接缝现象
表2. Virutal boundaries 在SPS中指示:
(3)子图(Subpicture)编码
如果将全视角360视频一次性地传输到用户端,那么码率要求会非常高。为了便于传输,H.266/VVC中定义了子图(subpicture)编码这个工具 [1][8],编码器可以选择让每个子图都可以独立解码。用户可以将360视频的不同方位的信息根据其重要性决定这个方位对应的图像分辨率。比如因为用户经常观看前面视点周围的图像,所以前方区域分辨率可以高一些,而左边和右边次之,分辨率稍低,而上面下面和后面可以采用更低的分辨率。如图10所示,可以将360视频编码帧分为4个区域:front viewport区域(红色虚线框指示),left viewport区域(黄色虚线框指示),right viewport区域(蓝色虚线框指示),top/bottom/back viewport区域(绿色虚线框指示),这4个区域可以组合在一帧图像中进行编码。每个区域都是由多个子图组成,这样这4个区域既可以一起传输,也可以按照多个子图组合来传输。这样就为360视频传输提供了有很好的灵活性,360视频应用可以根据带宽和用户观看区域进行有选择性地传输,比如提取front viewport区域中用户观看的视窗(由子图组成)进行传输。
图10. 和360视频视角对应的由子图组成区域划分
(4)ERP和GCMP的指示信息
为了360视频的正确显示,H.266/VVC标准中定义了ERP和GCMP两种360视频2D平面投影格式的SEI (Supplemental Enhancement Information )信息 [6],接收端可以利用这些SEI信息进行解码后的一些后处理和正确显示视频。表3定义了ERP的SEI信息,其中 erp_left_guard_band_width 和erp_right_guard_band_width 分别指示了ERP图像左右边界向外填充的像素个数。这些像素是和ERP图像一起编码的,解码后它们可以用来对图像边界做混合滤波 [10],提高边界处连续性避免接缝现象产生。表4定义了GCMP的SEI信息。GCMP可以通过定义每个立方体面上的采样函数( gcmp_mapping_function_type)来表示普通的CMP和定制的CMP。gcmp_packing_type指定不同的编码帧封装格式。gcmp_guard_band_type指定不连续边界外面填充像素的填充方法,而gcmp_guard_band_samples_minus1指定了不连续边界外面填充像素的个数。JVET 参考软件360Lib [4] 支持这些SEI信息指定360视频投影格式编码和解码时SEI信息的输出 [9],用户可以用这些解码视频和输出的SEI信息对视频进行正确格式转换和显示。
表3. ERP SEI信息 [6]:
表4. GCMP SEI信息 [6]:
4. 360视频质量评价
因为360视频编码是在2D投影空间进行的,这些像素对应到球面时采样率并不一样,而用户看到的是球面视频效果,所以360视频的质量评价不能只是用传统方法对解码视频像素计算各种质量评价指标(比如 PSNR)。JVET经过测试给出了端到端360视频质量评价方法,如图11所示,它综合考虑三方面对编码性能的影响:一个是预处理包括2D平面投影格式(包含下采样)和编码帧封装(frame packing)方法;第二个是编解码系统本身;第三个是后处理,包括像素混合(blending)和投影格式转换(包含上采样)。360原始视频的分辨率都比较高(比如6K或8K),而编码时的分辨率会低一些,一般都是4K(UHD)或者2K(HD),所以360视频编码前下采样是必要的。编码帧封装是将投影格式下的360视频通过对各个面进行平移、旋转、翻转(flip)、缩放、填充等操作将它们填到一个普通编码帧中,这样便于用传统视频编码器(H.266/H.265/H.264)编码。后处理一个是将编码的填充像素和360视频包含的像素进行用基于距离的加权平均,减少第二部分中提到的接缝现象。后处理另外一个任务就是进行上采样将编码分辨率转换到原来视频源的分辨率,便于质量比较。
图11. 端到端的质量评价方法[2]
计算端到端PSNR时,JVET采用了下面基于球面采样率加权的WS-PSNR (Weighted-to-spherically-uniform PSNR)**[5]**。WS-PSNR用加权MSE(Mean Squared Error)作为失真,计算公式如下,其中权重w(i, j)是像素(i, j)在球面采样率的倒数。y(i, j) 是原始像素值,y'(i, j) 是解码后处理后重构的像素值。然后用这个加权后的MSE来计算PSNR值。图12显示了ERP和CMP两种格式计算WS-PSNR用的权重。对ERP来说,赤道权重最大,两极权重最小,同一纬度的权重相同。对CMP来说,立方体每个面中心权重最大,面的边缘权重最小,每个面距离中心点距离相同的像素位置权重相同。
(a)ERP格式计算SSE时权重w(i, j)
(b)CMP格式计算SSE时权重w(i, j)
图12. WS-PSNR计算失真时用的权重
根据JVET规定的360视频测试条件 [11] 分别用HM-16.16、VTM-12.0和360Lib-12.0参考软件对ERP和GCMP两种投影格式进行了测试,表5列出了测试结果,质量评价使用了前面介绍的端到端的WS-PSNR。其中ERP和GCMP在编码图像帧封装时使用了填充方法,而解码后处理中都使用了混合滤波方法。表5(a)是在ERP投影格式下VTM相对于HM的性能;(b)是在GCMP投影格式下VTM相对于HM的性能;(c)是在VTM下GCMP相对于ERP的性能。
表5. VTM和HM对360视频两种投影格式的测试结果比较:
参考文献
[1] B. Bross, J. Chen, S. Liu, Y.-K. Wang, “Versatile Video Coding,” JVET-S2001, 19th Meeting, 22 June – 1 July 2020.
[2] P. Hanhart, Y. He, Y. Ye, J. Boyce, Z. Deng, L. Xu, “360-degree Video Quality Evaluation”, PCS 2018.
[3] Y. Ye, J. Boyce, “Algorithm descriptions of projection format conversion and video quality metrics in 360Lib”, JVET-Q2004, March 2020.
[4] 360Lib software, jvet.hhi.fraunhofer.de/svn/svn_360…
[5] Y. Sun, A. Lu, L. Yu, “AHG8: WS-PSNR for 360 video objective quality evaluation,” Joint Video Exploration Team of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JVET-D0040, Oct. 2016, Chengdu, China.
[6] J. Boyce, V. Drugeon, G. J. Sullivan, Y.-K. Wang, "Supplemental enhancement information messages for coded video bitstreams (Draft 5)," JVET-S2007, June 2020.
[7] S.-Y. Lin, L. Liu, J.-L. Lin, Y.-C. Chang, C.-C. Ju, P. Hanhart, Y. He, “AHG 12: Loop filter disabled across virtual boundaries”, JVET-N0438, Mar. 2019.
[8] Y.-K. Wang, etc., “AHG12: Text for subpicture agreements integration”, JVET-O1143, July 2019.
[9] Y. Wang, Y. He, L. Zhang, " SW Support of 360 SEI Messages", JVET-S0257, July 2020.
[10] L. Lee, J.-L. Lin, Y. Wang, Y. He, L. Zhang, "AHG6: Blending with padded samples for GCMP", JVET-T0118, Oct. 2020.
[11] Y. He, J. Boyce, K. Choi, J.-L. Lin, “JVET common test conditions and evaluation procedures for 360° video”, JVET-U2012, Jan. 2021.
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!