什么是MV-HEVC?
针对3D视频、尤其是多视点拼接3D视频的新特性,JCT-3V标准专家组成立,并在2014年发表了适用于3D多视点视频编码的HEVC编码标准扩展:MV-HEVC。
MV-HEVC的新特性
Layer的引入与参考关系的变化MV-HEVC(MultiView-HEVC)标准中,NALU header中引入了新的语法元素:LayerId。它表示该NALU 封装的帧(或Slice)所归属的视点号。在3D视频中我们通常用LayerId 0表示该帧属于左视点(主视点),LayerId 1则表示属于右视点(辅视点)。我们称同属于一个POC但属于不同LayerId的帧为一个AU(Acess Unit)。主视点图像编码的参考规则沿用基础HEVC,辅视点每一帧图像编码在基础HEVC之上,又多了一个视点间参考帧,即主视点同poc的帧。这样的参考结构提供了视点间参考的可能。
属于不同LayerId的帧可以拥有相同的POC号,但是LayerId更大的帧可以参考相同AU的LayerId更小的帧,如下图所示:
VPS,SPS,PPS等参数集的变化
由于Layer的引入,还需要引入新的语法内容。另外,不同LayerId理论上可以作为一路单独的视频输出,这就意味着它们需要配置属于自己的SPS和PPS。针对这些问题,MV-HEVC对VPS进行了扩展,引入了新的Profile Tier Level,并修改了PPS和SPS的部分语法,考虑到不同视点的大量SPS和PPS的参数内容(帧的宽高,色度采样等)是重复的,MV-HEVC对Layer Id不为0的帧所引用的SPS和PPS语法做了特殊约定,去掉了这些信息冗余。
Inter Layer模式的引入
为消除视点间的信息冗余,MV-HEVC将帧间预测模式扩展到了不同Layer间,称其为Inter Layer模式。
Inter Layer模式的引入带来了新的问题,例如下面这个场景:TMVP(时域运动矢量预测)模式是HEVC的一种帧间预测技术,会选取当前块的同位块的MV,并根据其在空域上的POC距离进行相应的MV缩放,如下图所示:
缩放修正后的MV为:
但是随着inter Layer模式的引入,参考帧与当前帧的POC号可能相同,tb和td都有可能为0,这导致缩放操作可能会出现除0错误,或者缩放为0矢量,失去缩放的意义。
因此MV-HEVC规定,所有的inter Layer模式,其参考类型都标记为长期参考帧,而所有的长期参考都只能作为长期参考的的MVP,而不能作为非长期参考的MVP。通过将inter Layer和非inter Layer预测模式区分开来,避免了上面这种错误的出现。
编码端测试问题
不同于互联网应用的低密度I帧特性,JCT3V标准面向广电应用,一般使用20-30帧I帧间隔来评价工具优化带来的码率节省。由于MV-HEVC标准的layer1中不包含I帧而代之以使用视间预测的P帧、商业编码器使用的参考帧数与参考软件也有明显差别,所以MV-HEVC在参考软件下的压缩率提升将明显大于其在互联网业务上的收益。因此,需要在商业编码器上实现并实测MV-HEVC的收益。
解码端支持现状
目前,Apple Vision Pro搭载的芯片通过固件层优化已经实现了对MV-HEVC码流的硬解支持。业务团队可以对自研HEVC解码器引入MV-HEVC扩展解码能力支持,并将其适配ffmpeg,用户便可通过ffmpeg调用相关解码器解码MV-HEVC 3D视频流。
参考资料:https://mp.weixin.qq.com/s/RZUNiQv76mfc4zYcwJnD1w
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。