当前位置: 编码机 >> 编码机优势 >> AI算法在视频可分级编码中的应用
主要包括五部分内容:三种常用的可分级视频编码的特点;WebRTC采用的编码器及其应用方式;可分级编码在WebRTC中的应用现状;基于可分级编码的目标检测和码率分配方式;AI和可分级编码结合的应用前景和研究方向。
三种常用可分级视频编码的特点
视频图像经过数字化之后数据量非常大,现有的网络和存储设备无法直接存储原始的视频图像,必须对视频和图像进行压缩,现有的主流压缩视频算法为H.,VP8,VP9,HEVC,VVC等。一方面,从H.到VVC,编码复杂度越来越高,压缩效率也越来越高;另一方面,传输的网络带宽大小不一,且随时变化,单一的码流无法适应多种不同接收端的网络和设备环境。比如4G网络和5G网络传输带宽不一样,若在4G和5G网络中传输同一套码流,有可能会导致5G网络带宽没有充分利用,最终影响视频的观看效果。
现在视频应用的环境存在多个不同的接收端,解决这个问题可以采用以下两种技术:联播(Simulcast)和可分级视频编码(SVC)。
如图1所示,联播Simulcast即同时传输多路码流,不同的码流具有不同的码率,用以传输在不同带宽下的码流。当终端设备处于高带宽的网络环境中,可以传输高码率的视频,以便获得更好的视频观看体验;当终端设备处于低带宽的网络环境中,可以传输低码率的视频,以便减少视频播放卡顿的现象。但是Simulcast支持的码率种类是有限的,难以适应复杂的网络环境。针对这个问题,研究人员提出了可分级视频编码SVC,视频数据只压缩一次,却能以多个帧率、空间分辨率或视频质量进行解码。比如采用三层空域可分级和两层时域可分级,可以组合的模式达到六种,和Simulcast方式相比,系统的适应性得到很大提升。
(图1联播可分级)
常用的可分级编码有三种,分别是:空域可分级(SpatialScalability)、质量可分级(QualityScalability)和时域可分级(TemporalScalability)。
(图2可分级编码常用的三种方式)
空域可分级编码(图3),即对视频中的每帧图像产生多个不同空间分辨率的图像,解码基本层码流得到的低分辨率图像,如果加入增强层码流到解码器,得到的是高分辨率图像。
(图3空域可分级)
质量可分级(图4),一个可行的做法是,基本层码流编码这一路对原始图像DCT变换后进行一次粗糙量化,熵编码后形成基本层码流。粗糙量化后的数据经反量化后形成基本层系数,与原始图像DCT变换系数相减形成差值信号,再对此差值信号再进行一次细量化和熵编码生成增强层码流。
(图4质量可分级)
时域可分级(图5),即把视频序列不重叠地分割成多层,对基本层的帧进行普通的视频编码,提供具有基本时间分辨率的基本层码流;对增强层则是利用基本层数据对增强层的帧间预测编码,生成增强层数据。
(图5时域可分级)
WebRTC采用的编码器及其应用方式
WebRTC支持的编码器包括VP8,VP9和H.。在用户感受层面,VP8和H.两种编码器的效果基本上是类似的。VP9作为VP8的下一代编码器,在高清视频压缩方面,比VP8和H.效果要好。
如图6,综合编码器性能和浏览器编码器的支持情况,可以得出如下结论:VP8和H.编码效果基本一致,一般情况下两者皆可;VP9主要用在Google公司自己的各种视频产品中,其中需要特别指出的是,VP9支持多种SVC;HEVC目前只能在苹果系统中使用,无法推广,不建议使用;AV1同样太新了,仅仅在Google公司的产品中才能很好地支持,暂时不推荐。
(图6编码器在浏览器中的支持情况)
可分级编码在WebRTC中的应用现状
在介绍可分级编码在WebRTC中的应用情况之前,先简要介绍下WebRTC的通信和组网流程。
如图7,客户端A和客户端B通信,可以采用直连的模式,也可以采用服务器的模式,在大规模的网络中,都会采用基于服务器的模式进行转发、信号处理等。
(图7WebRTC简单的流程)
针对多种应用场景具有多个接收端的特点,WebRTC提供了三种解决方案:Mesh,MCU,SFU。
Mesh方案(图8),即多个终端之间两两进行连接,形成一个网状结构。比如A、B、C三个终端进行多对多通信,当A想要共享媒体(如音频、视频)时,它需要分别向B和C发送数据。同样的道理,B想要共享媒体,就需要分别向A、C发送数据,依此类推。这种方案对各终端的带宽要求比较高。
(图8Mesh方案)
MCU(MultipointConferencingUnit)方案(图9),该方案由一个服务器和多个终端组成一个星形结构。各终端将自己要共享的音视频流发送给服务器,服务器端会将在同一个房间中的所有终端的音视频流进行混合,最终生成一个混合后的音视频流再发给各个终端,这样各终端就可以看到/听到其他终端的音视频了。实际上服务器端就是一个音视频混合器,这种方案服务器的压力会非常大。
(图9MCU方案)
SFU(SelectiveForwardingUnit)方案(图10),该方案也是由一个服务器和多个终端组成,但与MCU不同的是,SFU不对音视频进行混流,收到某个终端共享的音视频流后,就直接将该音视频流转发给房间内的其他终端。
(图10SFU方案)
三种网络不同的带宽如图11所示。可以看出,SFU的带宽最大达到了25mbps,MCU最小10mbps。
(图11三种不同网络的带宽)
在特点方面,Mesh方案的灵活性比较差;MCU方案需要对码流进行类似转码、合流、分流等操作;SFU方案服务器的压力小,灵活性更好,受到广泛欢迎。
如图12为Simulcast模式和SVC模式转发方式示意图。从上下两个图可以看出,采用基于SVC的码流分配方式,对于PC端而言,具有更大的可修改性。无论采用哪种组网方式,采用SVC的方式,都会比采用Simulcast的方式具有更好的健壮性。
(图12Simulcast和SVC模式转发方式)
支持情况如图13所示。从图中可以看出,H.仅支持Simulcast,VP8支持时域可分级,VP9则全方位支持SVC编码。VP9是Google公司在主推的编解码器,但是在H.编解码器优化方面的推进力度不大,一定程度上限制了WebRTC的应用,比如苹果公司最新出品的iPhone13手机自带H.的硬件加速功能,如果采用AV1编码器,虽然可以获得SVC的优点,但是无法进行硬件解码。在WebRTC中,Simulcast是默认通过多线程技术,同时启动多个OpenH编码器,SVC则是可以调用OpenH进行时域和空域可分级编码。
(图13可分级编码在WebRTC的支持情况)
基于可分级编码的目标检测和码率分配方案
对于N路的SFU而言,SFU必须考虑剩余N-1个终端码率总和。对于大多数视频会议而言,在给定的时域和空域层条件下的码率和总码率比例基本恒定。如图14所示。
(图14不同层码流分布图)
根据图14的现象,将视频运动作为一个主要是衡量指标,对码流进行分配。相关论文具体的方案框架如图15所示。
(图15SVC编码器码率分配)
该方案存在两个改进空间:第一个是运动量度的方法采用的当前帧和前一帧的差,难以准确地反映出视频运动变化的情况。第二个是增加除了运动特征以外的其他特征,以便更好地反映图像视频的变化。拟采用的解决方案如图16所示。
(图16拟采用的解决方案)
在WebRTC中,H.的编码器采用思科公司开源的OpenH编码器,OpenH可分级编码配置文件展示如下。这个配置文件设置了时域分级层两层。
(图17OpenH可分级编码配置文件)
SVC码流的特点是一套码流具有多层结构,在实际使用中,需要对码流进行提取操作。对于时域可分级而言,通过分析每个NAL中的TemporalID对码流进行提取;对于空域可分级而言,通过分析每个NAL中的SpatialID对码流进行提取;对于质量可分级而言,通过分析每个NAL中的QualityID对码流进行提取。
从图18中可以看出,OpenH的基本层的码流可以直接采用AVC解码器解码,基本层的SVC_extension_flag等于1。
(图18可分级编码基本层解码图)
SVC增强层码流的NAL包含SVC的语法,需要对SVC的码流进行转码,可分级编码的参考软件JSVM中有专门的转码模块,图19为转码过程,可以发现多个NAL单元被重写成AVC的格式。
(图19可分级编码增强层NAL层转码)
图20为用JSVM转换之后的码流解码效果,可以用标准的AVC解码器解码。
(图20NAL层转码后的解码图)
AI和可分级编码结合的应用前景和研究方向
可分级编码中最频繁使用的方法是空域可分级技术,但是不同分辨率在转换时,质量下降比较明显。ICME会议上,有学者提出了用于视频编码的超分辨模型,该模型通过提取不同时刻的图像进行特征融合来重建出高分辨率图像。实验结果表明,超分效果有提升。
(图21视频超分辨率结构图)
将该模型用于可分级编码器中,可以有效地改善不同分辨率码流切换的时候,给人带来的不适感。
MPEG5提出了LowComplexityEnhancementVideoCoding(LCEVC),该编码方式和H.相比,在相同的PSNR下,压缩效率更高。编码器如图22所示。其中基本的编码器BaseEncoder可以选用任意一种现成的编码器,比如H.,VP8,VP9等。
WebRTC和LCEVC相互结合,是未来的一个发展方向。作为一个新的视频编码标准,其具有几个特征:提升了基本层编码的压缩能力,具有低编码和解码复杂度,提供了一个额外的特征增强平台等。
从图22可以看出,编码复杂度主要在取决于BaseEncoder,在WebRTC中广泛使用的H.如果采用LCEVC的方式进行增强,在复杂度增加的情况下,编码效果会有明显地提升。一般而言采用H.编码的P高帧率的实时体育视频流需要8Mbps的最高码率,而采用LCEVC仅仅需要4.8Mbps。
(图22LCEVC编码器)
鉴于LCEVC编码的效果,可以判断,LCEVC和WebRTC结合,将是一个重要的研究和应用方向。