可分層視頻編碼(SVC)是一種獨(dú)特的視頻壓縮技術(shù),在實(shí)際操作中帶來了許多重要的優(yōu)勢。目前已經(jīng)有兩大視頻廠商——Vidyo和Radvision開始提供這項(xiàng)技術(shù),另外,還有幾家廠商獲得了這項(xiàng)技術(shù)的許可。希望在未來幾年間能看到更多廠商使用這項(xiàng)技術(shù)。
可分層視頻編碼技術(shù)到底有什么獨(dú)特之處呢?可分層視頻編碼是專為解決當(dāng)前視頻會議的廣泛部署所面臨的三大問題設(shè)計(jì)的:
1. 網(wǎng)絡(luò)并不總能提供高質(zhì)視頻所需的低丟包和抖動。
2. 網(wǎng)絡(luò)并不能為所有用戶提供持續(xù)的可用帶寬。
3. 由于MCU對連接帶寬和CPU資源的需求比較高,因此,對當(dāng)前所用的多點(diǎn)會議單元(MCU和橋)分層較為困難,而且成本相當(dāng)高。
這里有一個比較大的爭議。首先我們來看一下可分層視頻編碼技術(shù)的原理,作為一名工程師,我通常都會想先了解一些這個技術(shù)的原理,然后才會去體悟它的優(yōu)勢。而如果你剛好是做市場推廣的,那么這里你可能不得不遷就我一下了,關(guān)于分層視頻編碼技術(shù)的優(yōu)勢我們會在日后再進(jìn)行討論。
何為可分層視頻編碼?
SVC對傳輸在IP網(wǎng)絡(luò)上的一系列視頻幀采取了一種特有的打包方式?,F(xiàn)在的編碼器(非分層的)通常以連接建立的帶寬大小為基準(zhǔn),在給出的可用帶寬下自動分配分辨率和幀頻,以獲得最佳的編碼效果。帶寬越高,編碼器所交付的高清晰移動圖像的質(zhì)量也就越高。
如果帶寬非常高,并且足以提供每秒30、乃至60幀的全高清視頻,那么這時(shí)就不會有任何的取舍問題。不過在現(xiàn)實(shí)的帶寬還不能達(dá)到那么高的情況下,編碼器就要在分辨率的優(yōu)化和幀頻的優(yōu)化間有所偏重,而這個結(jié)果主要取決于視頻中移動圖像的數(shù)量和編碼器的設(shè)置。
現(xiàn)在的大部分編碼器還包含動態(tài)帶寬算法,這種算法的目的在于在網(wǎng)絡(luò)發(fā)生數(shù)據(jù)包丟失時(shí)減少帶寬的使用量。動態(tài)帶寬算法的原理是,先假定發(fā)生了數(shù)據(jù)包的丟失,這就代表網(wǎng)絡(luò)已經(jīng)出現(xiàn)了擁堵,而降低帶寬就能緩解擁堵,這樣就能獲得一個更好的連接。
SVC的工作原理就不同于傳統(tǒng)的編碼器,它利用多個不同的流對視頻圖像進(jìn)行壓縮,每個流處理高質(zhì)視頻圖像的不同組成部分。第一個視頻流用最低的帶寬來處理清晰度低的圖像,附加流則對包含更高分辨率、幀頻和質(zhì)量水平的信息進(jìn)行編碼,以獲得更高清晰度和更優(yōu)質(zhì)的移動圖像。不過這些附加流并不是對第一個流中包含信息的重復(fù),而是對它的補(bǔ)充。
試想一個接收編碼器能獲取這個視頻會議系統(tǒng)全部的數(shù)據(jù)流,這個解碼器就能把這些數(shù)據(jù)流全部整合,還原成出具備原清晰度的全動態(tài)圖像。而如果第二個編碼器的連接速度很慢,帶寬只夠接收低分辨率的圖像,那原本的編碼器還是能查看到同一個終端獲得的相同視頻源,不過卻只能接收到基層的流。解碼器的解碼性能可能會受到帶寬、可用CPU資源的影響,也可能獲得的圖像只要在筆記本這么大的窗口中就能顯示出來了,而不需要更高分辨率的顯示屏。
有些人認(rèn)為,“我們現(xiàn)在的多點(diǎn)橋(MCU)就是在做這些”。這一點(diǎn)毋庸置疑,MCU確實(shí)能把一個端點(diǎn)的高清圖像的代碼轉(zhuǎn)換成可用于另一個端點(diǎn)的標(biāo)清圖像。不過要具備這個能力,MCU需要具備大量的CPU周期,或是專業(yè)的信號處理器。而在SVC環(huán)境中的CPU僅需確定SVC流的哪些部分需要發(fā)送,哪些不需要就可以了。如果一個端點(diǎn)只要基層信息,那么也就只要把基層的流發(fā)送出去;而如果端點(diǎn)要求原清晰度的圖像,那么就要把所有的流都發(fā)送出去;而如果端點(diǎn)對清晰度的要求居中,則需要發(fā)送這些SVC流的部分組合。由于這種操作比用一個計(jì)算點(diǎn)的方式更方便,所以我們相信SVC橋會便宜得多,并且能夠處理更多同步的端點(diǎn)。不過這些將涉及到分層視頻的部署——這將在我們之后的文章中討論。