H.264可擴展視頻編解碼器(SVC)應(yīng)用詳解
為了實現(xiàn)臨時的可擴展性,H.264 SVC鏈接其參考幀以及預(yù)測幀,這與傳統(tǒng)的H.264 AVC編碼器稍微不同。SVC采用分層預(yù)測結(jié)構(gòu),如圖3所示,而不是傳統(tǒng)的內(nèi)幀(I幀)、雙向幀(B幀)以及預(yù)測幀(P幀)的關(guān)系。
圖3:傳統(tǒng)的I、P和B幀的關(guān)系。
分層結(jié)構(gòu)定義最終視頻流的臨時分層。圖4描述了可能的分層結(jié)構(gòu)。在這個特殊的例子中,各幀僅僅根據(jù)上次出現(xiàn)的各幀進行預(yù)測。這就確保該結(jié)構(gòu)不僅僅展示臨時的可擴展性,而且顯示了低的延遲。
圖4:在SVC中的分層預(yù)測幀。
這個方案具有四個嵌套的臨時層:T0 (基礎(chǔ)層)、T1、T2和T3。由T1和T2各層構(gòu)成的幀僅僅由T0層中的各幀預(yù)測。在T3層中的各幀僅僅由T1或T2各層中的各幀來預(yù)測。
為了以3.75幀每秒的速度播放編碼幀,僅僅構(gòu)成T0的各幀需要被解碼。所有的其它各幀可以被丟棄。為了以7.5fps的速度播放,要對構(gòu)成T0以及T1的各層進行解碼。在T2和T3中的各幀被丟棄。類似地,如果構(gòu)成T0、T1和T2的各幀被解碼,所得到的視頻流將以15fps的速度播放。如果所有幀均被解碼,那么,完全的30fps視頻流被恢復(fù)。
相比之下,在H.264 SVC(對于Baseline Profile來說,僅僅雙向預(yù)測幀被應(yīng)用)中,不管需要的顯示率是什么,所有幀均需被解碼。為了轉(zhuǎn)換至一個低帶寬網(wǎng)絡(luò),整個視頻流均需要被解碼,不需要的幀可以被丟棄,然后,重新編碼。
在H.264 SVC中的空間可擴展性遵循類似的原則。在這一情形下,較低分辨率的各幀被編碼為基礎(chǔ)幀。經(jīng)解碼和上行采樣的基礎(chǔ)幀被用于對較高階各層進行預(yù)測。重構(gòu)原始場景細(xì)節(jié)所需要的附加信息被編碼為一個獨立的增強層。在某些情形下,重用運動信息能夠進一步增加編碼效率。
同時聯(lián)播與SVC
在H.264 SVC中存在于可擴展性相關(guān)的開銷。正如我們在圖3中所看到的那樣,參考幀與預(yù)測幀之間的距離在時間(例如從T0至T1)上比傳統(tǒng)的幀結(jié)構(gòu)要長。在具有高運動圖像的場景中,這能夠?qū)е滦噬缘偷膲嚎s。為了對視頻流各層級結(jié)構(gòu)進行管理,也存在相關(guān)的開銷。
整體而言,跟不具備可擴展性的全分辨率以及全幀速率視頻構(gòu)成的H.264視頻流相比,具有三層臨時可擴展性以及三層空間可擴展性的SVC視頻可能要大20%以上。如果采用H.264 編解碼器對可擴展性進行仿真,就需要多個編碼視頻流,從而導(dǎo)致更高的帶寬要求或貫穿網(wǎng)絡(luò)的昂貴解碼和二次編碼。
SVC的額外好處:
誤碼恢復(fù)
誤碼恢復(fù)的傳統(tǒng)實現(xiàn)方法是把附加的信息添加至視頻流之中,以便監(jiān)測和校正誤碼。SVC的分層方法意味著不需要增加大的開銷,就可以在較小的基本層上執(zhí)行高級別的誤碼監(jiān)測和校正。如果要把相同程度的誤碼監(jiān)測和校正功能應(yīng)用于AVC視頻流中,那就需要把整個視頻流保護起來,從而導(dǎo)致視頻流更大。如果在SVC視頻流中監(jiān)測出誤碼,那么,就可以逐漸讓分辨率和幀速率退化,直至―如果需要的話―只有高度受保護的基礎(chǔ)層才可以使用。按照這一方式,在噪聲條件下的退化要比在H.264 AVC環(huán)境下更讓人可以接受。
存儲管理
評論