大家好,本次分享我将结合芒果TV音视频技术研发团队的实践,对主观感兴趣区域的视频编码技术进行详细解析。内容包括以上四个部分,其中会重点介绍我们在主观感兴趣区域编码工程化中遇到的一些问题与思考。
面对上述挑战,我们最容易想到的方法就是通过压缩效率更高的下一代视频编码标准,如AV1、VVC等,有效降低成本。但就目前情况来看,这些标准其实还不具备大规模商用的生态环境,真正能够支持硬件解码的设备其实非常的少。另一方面,内容感知编码以及拐点参数在国内外各大视频平台已经得到普遍的应用。在这种情况下,我们需要的是挖掘更多的工具或手段,极限压榨编码的码率。
人眼的视觉过程大致为视网膜成像,大脑接收信息并做出初步的分析,产生视觉注意力聚集,并且最后对重点区域做关注。例如,人在开车过程中,前方的道路和车辆就是主观关注和感兴趣区域,周边的区域就是非关注区域。
2.2 主观感兴趣区域数据的提取
使用眼动仪获取ROI大数据要注意这样几点问题:首先使用眼动仪收集数据的成本是比较高的,且为重要的是人力的投入,因为只有具有一定基数的参与量,数据才具有客观意义;其次是数据的可靠性,一个经验并不丰富的测试人员,很可能在测试过程中会给自己某些心理暗示,导致记录的行为并非自然状态下的真实行为,也就是说最后取得的数据很可能是无效的;最后,第三点就是数据清洗。使用眼动仪获取ROI大数据要注意这样几点问题:首先使用眼动仪收集数据的成本比较高,且更为重要的是人力的投入,因为需要有一定基数的参与量,数据才具有客观意义;其次是数据的可靠性,一个经验并不丰富的测试人员,很可能在测试过程中会给自己某些心理暗示,导致记录的行为并非自然状态下的真实行为,也就是说最后取得的数据很可能是无效的;最后,第三点就是数据清洗。
我们在编码的两个阶段做了ROI的处理,分别是视频的前处理以及视频编码的过程。
前处理阶段主要是做ROI区域的增强,即图像层面的增强,同时对非ROI区域图像层面,进行降噪、磨皮等处理。做过视频编码的朋友应该清楚,高频其实对编码是不太友好的,低频则对编码更加友好。非ROI区域进行降噪、磨皮之后,更多的就变成了相对友好的低频区域。那么在同等的PSNR或者客观指标下,码率会有明显的降低。
视频编码阶段,我们主要是通过AQ调整QP值,实现码率分配的修正。也就是说对不同的主观感兴趣区域和非感兴趣区域做不同的QP调整, QP越小,质量越好,码率也会越高;QP越大,宏块得到的码率越小,画质越差。通过这样一个调整,实现ROI的权重调整。
ROI编码并不是一个很新的概念,之前就有中心区域ROI、人脸ROI、字幕ROI等。
中心区域ROI是基于经验的判断,在正常视频的拍摄手法上通常会将最重要的内容放在画面最中间。人脸ROI其实也是基于这样的经验判断,一般来讲人物往往是视频内容中的主角。
字幕ROI是非常重要的一个方面,我们做过一个主观的调研:完全同样的视频画面,分别提供不同清晰度的字幕进行主观盲测。最终结果是:认为“字幕清晰”的视频是“画质更好”视频的,占比明显更高。
基于深度学习的ROI区域识别是当前更有效的手段。
基于深度学习的ROI的识别在技术上分为两类,一个是基于感兴趣区域的热度图检测,另外一个是显著对象分割。通过实践理解,在应用场景上我们认为这两者是有一定差异性的。我们认为感兴趣区域的热度图更适合长视频剧集类型的节目,显著对象分割则更适合真人自拍小视频等场景。基于深度学习的ROI的识别在技术上分为两类,一个是基于感兴趣区域的热度图检测,另外一个是显著对象分割。通过实践理解,在应用场景上我们认为这两者是有一定差异性的。我们认为感兴趣区域的热度图更适合长视频剧集类型的节目,显著对象分割则更适合真人自拍小视频等场景。
显著对象分割为什么会更适合真人直播或者真人自拍小视频?
真人直播或者真人自拍小视频通常来说有这两个特点:第一是前景在画面中面积的占比一般较大;第二是前景和背景相关性比较弱,且前景的内容重要性具有绝对的地位。以此可以也必须对背景做比较多的图像细节丢失和编码压缩,来提升前景显著区域的画面质量。
剧集类长视频节目的特点是画面的整体相关性更强、画面存在多点位ROI区域,因此不能类似于真人小视频一样过度的衰减非ROI区域来补偿ROI区域,需要用较多的非ROI区域来补偿较小的ROI区域,这样非ROI区域的衰减在主观上也不明显。感兴趣热度图符合这个需求特点。
做完第一个版本之后,我们发现,由于这是一个二值ROI,ROI区域和非ROI区域是0和1的区别,导致ROI和非ROI区域的非平滑过渡在衔接处会有一个明显的画质对比跳变(QP值跳变)。第二个问题是我们对非ROI区域的QP调整是交回给x264和x265编码器原生的码率控制,由于我们对ROI区域的QP调整破坏了原生码率控制算法的数学关系,所以部分场景出现非ROI区域的渣感现象。这是两个失败的case。
因为上述两个失败的case,我们进一步提出了一个迭代版本灰阶ROI。灰阶ROI实现的是ROI和非ROI区域之间一个ROI强度的灰度过渡,所以QP会有一个平滑的调整,避免两个区域边缘质量差距过大,形成一个突兀的画质对比。
通过这个迭代版本实现了ROI和非ROI区域画质的平滑过渡,同时非ROI区域渣感明显降低。
这段视频是最终送给编码器指导ROI编码的ROI灰阶图数据的真实示例。为了更加清晰和直观,这个示例中非ROI区域我们做了一个灰度视频显示,ROI区域还是原来的彩色显示。