視頻會議264視頻壓縮之—SVC
H.264中還有一個SVC概念(Scalable Video Coding),可分層編碼。先不管其具體的含義,來想象下視頻通信中可能遇到的問題。
1.帶寬問題,IP網絡帶寬是不穩定的,網絡帶寬降低是,視頻流應該自動的降低碼率,以適應當前帶寬。而視頻流碼率的降低,并不意味著視頻通信的結束,只是其幀率和分辨率相應降低。這樣還是能維持基本的視頻通信如幀率可以從60fps降低30fps或者25fps甚至20pfs。分辨率可以從高清降到標清的4cif甚至cif。這樣可以很大程度的降到碼率,但同時保證了視頻通信的基本功能正常進行(用戶還是能看到能夠分辨的圖形和聽到清晰的聲音)。
2.在未來的通信中,參與視頻對話的終端多種多樣,有專用的硬件視頻終端,有桌面軟終端,還有移動終端中的PAD和手機。終端的多樣性對視頻碼流的要求也不一樣。如移動終端一般相對帶寬較小,且屏幕尺寸也較小,屏幕寬高比也不同。每種終端希望拿到最適合自己的視頻碼流,既適合自己的網絡帶寬,又適合自己的硬件能力。如一種設備編碼流出來后,其中既包含了高清到標清不同分辨率,又具有各種幀率。終端只需要發起申請,從其中拿到適合自己的碼流,這是一件多好的事情,避免的轉碼,同時合理的利用的帶寬和終端的硬件能力。
SVC的本意就是如此,能夠實現碼流的可伸縮,也就是說能根據帶寬,終端的要求,自動調整發送給終端視頻流的格式。一次性編碼適應于多種信道和終端。視頻會議中有一種MCU設備,你要是研究MCU的功能,你會發現它多么適合采用SVC技術。SVC技術的應用理論上應該能節省MCU的部分計算資源。但一路SVC碼流實際上市多組碼流構成的,它們是相互獨立的,如果全部傳輸和存儲必然是帶寬和容量的增加。因此這種技術適合使用在中央設備上(如MCU),終端上是不會使用到的。SVC希望做到一次編碼后,按需分配。
目前SVC技術應用得不廣泛,RADVISION宣稱已經支持。目前MCU所做的是要么按最低能力編碼發送,要么按數組能力編碼,數組碼流發送。SVC技術無法做到跨越視頻壓縮標準,也就是所需要都在H,264或者其它莫一個相同的視頻壓縮標準之內,所以收端都支持該標準。如果跨域壓縮標準(如終端中支持的壓縮標準不相同,如只支持MPEG 或者只支持H.263或者只支持H.264),則終端設備還必須做轉碼才能實現互通。
視頻會議壓縮算法之-H.264 High profile
H.264 High Profile
實時視頻還是繼續向更高質量,更低帶寬的方向發展。H.264 High profile技術于2010年率先被polycom應用于視頻會議系統。比h.264 baseline進一步節約了近一半的帶寬。當然我個人心存懷疑,覺得大分辨率圖形帶寬應該能減少40%到50%,如果較小分辨率,碼率比例未必有那么明顯。不過,大分辨率圖形的碼率降低,才是關鍵,z在高清在實時會議中,采用H.264 baseline,帶寬要求還是比較高的。特別是要做1080P 30pfs甚至60pfs時。如果能減少一半帶寬,意味著節省2-4 M帶寬,如果是在MCU側,則帶寬節省就更可觀了。
這里對h.264的幾個profile做個簡單介紹:
AVC/H.264 規定了多種不同的Profile:最低Profile、主要Profile、擴展Profile、高端Profile(這些Profile 本身還要劃分數個等級)。
-最低Profile,也叫做底線Profile(Baseline Profile)支持I/P 幀,只支持無交錯(Progressive)和CAVLC;
-擴展Profile(Extended Profile)支持I/P/B/SP/SI 幀,只支持無交錯(Progressive)和CAVLC;
-主要Profile(Main Profile)提供I/P/B 幀,支持無交錯(Progressive)和交錯(Interlaced),同樣提供對于CAVLC和CABAC 的支持;
-高端Profile(High Profile)在主要Profile 的基礎上增加了8x8 內部預測、自定義量化、無損視頻編碼和更多的YUV 格式;