SVC 分級編碼初探

ccwwff發表於2019-01-17

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)空間分級:低層的幀解析度比較低,高層的幀解析度高,可以參考低層幀和同層幀。如下圖。

 

 

(3)質量分級:低層的幀量化步長比較長,高層的幀採用更小量化步長,對低層幀的錯誤進行糾正。

以上三種方法可以組合使用。

 

3、SVC 的優缺點:

優點:

l 根據網路情況,裝置能力,解碼器可以選擇解碼不同層級的碼流。

l 一次編碼,多次解碼。無需重複編碼或者轉碼。

l 抗差錯。只需要底層碼流就可以解碼,高層碼流錯誤/丟失不影響視訊流暢性。可以對低層碼流和高層碼流採用不同強度的抗丟包/抗差錯手段。算上前向糾錯的開銷,SVC整體碼流可能更低。

l 底層碼流相容h264非SVC解碼器。

缺點:

l 對於質量分級和空域分級,同等質量需要大概多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

【4】https://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

 

FROM: https://blog.csdn.net/soulmate_scut/article/details/80938932

相關文章