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)空間分級:低層的幀解析度比較低,高層的幀解析度高,可以參考低層幀和同層幀。如下圖。
(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://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
相關文章
- svc包
- 初探webpack之編寫loaderWeb
- VAE變分自編碼器
- k8s-svcK8S
- Redux原始碼初探Redux原始碼
- 變分自編碼器VAE(上)
- 線上富文字編輯器初探
- Quill編輯器實現原理初探UI
- 變分貝葉斯自編碼器
- [svc]linux檔案許可權Linux
- 五款頂級Python程式碼編輯器!Python
- 編碼最佳實踐——介面分離原則
- 快速瞭解 變分自編碼器 VAE
- Linux之rsync同步分發指令碼編寫.Linux指令碼
- iOS 初探程式碼混淆(OC)iOS
- 初探驗證碼識別
- Locust 任務指令碼初探指令碼
- 6.使用Calico打通Svc網路
- 如何使用 Laravel Collections 類編寫神級程式碼Laravel
- 漫談概率 PCA 和變分自編碼器PCA
- 機器學習--分類變數編碼方法機器學習變數
- Vue 2升級 Vue 3初探小細節Vue
- .NET初探原始碼生成(Source Generators)原始碼
- 技術分享| 影片傳輸Simulcast與SvcAST
- 開啟was和w3svc服務
- Android反編譯和微信機器人初探Android編譯機器人
- 編碼風格:Mvc模式下SSM環境,程式碼分層管理MVC模式SSM
- 【總結】五款頂級Python程式碼編輯器!Python
- 變分自編碼器(五):VAE + BN = 更好的VAE
- 多級編號
- Babylon-AST初探-程式碼生成(Create)AST
- SVC(Scalable Video Coding) for H.264資源整理IDE
- 【scikit-learn基礎】--『預處理』之 分類編碼
- IDEA如何設定編碼格式,字元編碼,全域性編碼和專案編碼格式Idea字元
- Linux學習之路(三)Shell指令碼初探Linux指令碼
- Mybatis原始碼初探——優雅精良的骨架MyBatis原始碼
- SAP HUM事務程式碼 HUMAT 之初探
- Spring原始碼學習之路---IOC初探(二)Spring原始碼