SVC 分级编码初探

1、简介

分级编码是一种用来兼容不同的终端设备和链路带宽的技术。它的特点是对码流分层,低层码流可以单独解码,高层码流能增强视频的质量。

H.264 SVC (Scalable Video Coding)是以H.264为基础,在语法和工具集上进行了扩展,支持具有分级特性的码流。H.264SVC是H.264标准的附录G,在2007年10月成为正式标准。

2、H.264 SVC 支持三种分级方法:

1)时域分级:将帧分为不同的等级,上层的帧只能参考同层或低层的帧。

 

上图例子示例包含4个嵌套的时域层:T0(基本层),T1,T2和T3。当播放帧率为3.75fps时,只需解码T0层的帧,丢弃所有其他帧;当播放帧率为7.5fps时,解码组成T0和T1层的帧,丢弃T2和T3层的帧;以此类推,解码T0,T1和T2层的帧,码流的播放帧率达到15fps;解码所有帧将恢复30fps的全帧率。

(2)空间分级:低层的帧分辨率比较低,高层的帧分辨率高,可以参考低层帧和同层帧。如下图。

 

扫描二维码关注公众号,回复: 3575860 查看本文章

3)质量分级:低层的帧量化步长比较长,高层的帧采用更小量化步长,对低层帧的错误进行纠正。

以上三种方法可以组合使用。

3、SVC 的优缺点:

优点:

l 根据网络情况,设备能力,解码器可以选择解码不同层级的码流。

l 一次编码,多次解码。无需重复编码或者转码。

抗差错。只需要底层码流就可以解码,高层码流错误/丢失不影响视频流畅性。可以对低层码流和高层码流采用不同强度的抗丢包/抗差错手段。算上前向纠错的开销,SVC整体码流可能更低。

底层码流兼容h264非SVC解码器。

缺点:

对于质量分级和空域分级,同等质量需要大概多10%码率。时域分级的码率有所提高(实际上相当于I,P,B帧的拓展),但是对运动强度比较大的场景,码率有所增加。

l 对于质量分级和空域分级,运算量变大。

l 软硬件编码器比较少。

4、传输

RTP协议支持。见RFC6190。

5、业界应用

SVC在视频会议领域用的公司比较多,比如Vidyo, Polycom,Cisco等。在直播领域的应用还面临解码器兼容性的挑战。

由于应用比较少,相应在市场标准化上难以统一,各家的产品互通性还存在问题[4]

6、编解码软件

编码器:Openh264: https://www.openh264.org/

思科的开源h264编码器。

商业解码器: 视骏:http://www.strongene.com/cn/svc/decoder/keyFeatures.jsp

开源解码器:Open SVC Decoder: https://sourceforge.net/projects/opensvcdecoder/

法国一个大学做的项目。

标准参考代码(编解码):

https://www.hhi.fraunhofer.de/en/departments/vca/research-groups/image-video-coding/research-topics/svc-extension-of-h264avc/jsvm-reference-software.html

关注功能而不是性能。

开源流服务器:

https://sourceforge.net/p/svcstreaming/wiki/Home/

Reference:

百科:

1】 https://baike.baidu.com/item/H.264%20SVC

【2】https://en.wikipedia.org/wiki/Scalable_Video_Coding

博客:

【3】https://zhuanlan.zhihu.com/p/34321415

【4https://zhuanlan.zhihu.com/p/30984326

5】https://xjsxjtu.github.io/2017-06-24/H264-SVC/

6】https://multimediacommunication.blogspot.com/2009/06/open-source-scalable-video-coding-svc.html

猜你喜欢

转载自blog.csdn.net/soulmate_scut/article/details/80938932
今日推荐