原文文檔: webrtcH4cKs: Chrome's webrtc vp9 svc layer
很明顯的分層特征
svc編碼的層可以刪除其中不被選中的層, 且不破壞其他流的可讀性.
單一流中可以被拆分出多種碼流大小的流, 有利于sfu做帶寬范圍可選的碼流分發(fā).
優(yōu)點(diǎn): 適應(yīng)更多的下行網(wǎng)絡(luò)場景, 大大減輕sfu的壓力和復(fù)雜度, 對比simulcast分層技術(shù), 不需要額外的上行冗余和cpu消耗.
缺點(diǎn): 對編碼器增加多余的消耗
svc分類:
Temporal 時(shí)域分層- 幀率拆分
Spatial 空域分層- 分辨率拆分
Quality 質(zhì)量分層- 編碼質(zhì)量拆分
VP9 svc技術(shù)的特點(diǎn):
空域分層技術(shù)可以不降分辨率從而降質(zhì)量, 對于vp9來說, svc可以把空域分層和質(zhì)量分層統(tǒng)一說明為空域分層
可以同時(shí)進(jìn)行時(shí)域分層和空域分層編碼(如果不能動(dòng)態(tài)控制空域?qū)拥恼急? 碼率冗余會(huì)變得非常大) TODO: 理想的分層編碼, 最大質(zhì)量是可以利用所有層的, 不像simulcast技術(shù), 分辨率拆分后不能相互疊加質(zhì)量

-
參考方式 image
待需要解決的問題:
決定合適數(shù)量的s(分辨率)數(shù)量和t(時(shí)域?qū)訑?shù))數(shù)量, 或者提供api去進(jìn)行配置
提供一個(gè)方式去開啟或者關(guān)閉svc, 當(dāng)一對一的時(shí)候, 就不需要開啟svc了
去噪??
cpu使用會(huì)很高, 可以添加接口獲取cpu使用量, 然后按照cpu使用動(dòng)態(tài)調(diào)節(jié)輸出的編碼質(zhì)量. 或者降低分辨率
測試結(jié)果:
從結(jié)果看來, 碼控并不很穩(wěn)定....波動(dòng)還是比較大的...

總結(jié):
整體來說, 這篇文章介紹了vp9里面svc的相關(guān)實(shí)現(xiàn)和原理, 及測試結(jié)果, 從結(jié)果來看效果是非常好的, 直接就一路流做到了之前兩路simulcast + svc才能做到的事情, 很棒, 很有借鑒價(jià)值.
缺少些什么:
文中的二維svc和simulcast的對比
二維svc對比一維svc增加了多少性能消耗
編碼出來的圖像質(zhì)量對比啊之類的
是否可以替代傳統(tǒng)的simulcast, 以及還差哪些
超級幀的大小比傳統(tǒng)的關(guān)鍵幀大了多少啊之類的
gop間隔可以設(shè)置到多少啊之類的
是否支持碼率控制,以及控制的類型啊之類的, 比如 cbr, abr, crf之類的碼控方式
