視頻會(huì)議壓縮算法
視頻會(huì)議264視頻壓縮之—SVC
H.264中還有一個(gè)SVC概念(Scalable Video Coding),可分層編碼。先不管其具體的含義,來想象下視頻通信中可能遇到的問題。
1.帶寬問題,IP網(wǎng)絡(luò)帶寬是不穩(wěn)定的,網(wǎng)絡(luò)帶寬降低是,視頻流應(yīng)該自動(dòng)的降低碼率,以適應(yīng)當(dāng)前帶寬。而視頻流碼率的降低,并不意味著視頻通信的結(jié)束,只是其幀率和分辨率相應(yīng)降低。這樣還是能維持基本的視頻通信如幀率可以從60fps降低30fps或者25fps甚至20pfs。分辨率可以從高清降到標(biāo)清的4cif甚至cif。這樣可以很大程度的降到碼率,但同時(shí)保證了視頻通信的基本功能正常進(jìn)行(用戶還是能看到能夠分辨的圖形和聽到清晰的聲音)。
2.在未來的通信中,參與視頻對(duì)話的終端多種多樣,有專用的硬件視頻終端,有桌面軟終端,還有移動(dòng)終端中的PAD和手機(jī)。終端的多樣性對(duì)視頻碼流的要求也不一樣。如移動(dòng)終端一般相對(duì)帶寬較小,且屏幕尺寸也較小,屏幕寬高比也不同。每種終端希望拿到最適合自己的視頻碼流,既適合自己的網(wǎng)絡(luò)帶寬,又適合自己的硬件能力。如一種設(shè)備編碼流出來后,其中既包含了高清到標(biāo)清不同分辨率,又具有各種幀率。終端只需要發(fā)起申請(qǐng),從其中拿到適合自己的碼流,這是一件多好的事情,避免的轉(zhuǎn)碼,同時(shí)合理的利用的帶寬和終端的硬件能力。
SVC的本意就是如此,能夠?qū)崿F(xiàn)碼流的可伸縮,也就是說能根據(jù)帶寬,終端的要求,自動(dòng)調(diào)整發(fā)送給終端視頻流的格式。一次性編碼適應(yīng)于多種信道和終端。視頻會(huì)議中有一種MCU設(shè)備,你要是研究MCU的功能,你會(huì)發(fā)現(xiàn)它多么適合采用SVC技術(shù)。SVC技術(shù)的應(yīng)用理論上應(yīng)該能節(jié)省MCU的部分計(jì)算資源。但一路SVC碼流實(shí)際上市多組碼流構(gòu)成的,它們是相互獨(dú)立的,如果全部傳輸和存儲(chǔ)必然是帶寬和容量的增加。因此這種技術(shù)適合使用在中央設(shè)備上(如MCU),終端上是不會(huì)使用到的。SVC希望做到一次編碼后,按需分配。
目前SVC技術(shù)應(yīng)用得不廣泛,RADVISION宣稱已經(jīng)支持。目前MCU所做的是要么按最低能力編碼發(fā)送,要么按數(shù)組能力編碼,數(shù)組碼流發(fā)送。SVC技術(shù)無法做到跨越視頻壓縮標(biāo)準(zhǔn),也就是所需要都在H,264或者其它莫一個(gè)相同的視頻壓縮標(biāo)準(zhǔn)之內(nèi),所以收端都支持該標(biāo)準(zhǔn)。如果跨域壓縮標(biāo)準(zhǔn)(如終端中支持的壓縮標(biāo)準(zhǔn)不相同,如只支持MPEG 或者只支持H.263或者只支持H.264),則終端設(shè)備還必須做轉(zhuǎn)碼才能實(shí)現(xiàn)互通。
視頻會(huì)議壓縮算法之-H.264 High profile
H.264 High Profile
實(shí)時(shí)視頻還是繼續(xù)向更高質(zhì)量,更低帶寬的方向發(fā)展。H.264 High profile技術(shù)于2010年率先被polycom應(yīng)用于視頻會(huì)議系統(tǒng)。比h.264 baseline進(jìn)一步節(jié)約了近一半的帶寬。當(dāng)然我個(gè)人心存懷疑,覺得大分辨率圖形帶寬應(yīng)該能減少40%到50%,如果較小分辨率,碼率比例未必有那么明顯。不過,大分辨率圖形的碼率降低,才是關(guān)鍵,z在高清在實(shí)時(shí)會(huì)議中,采用H.264 baseline,帶寬要求還是比較高的。特別是要做1080P 30pfs甚至60pfs時(shí)。如果能減少一半帶寬,意味著節(jié)省2-4 M帶寬,如果是在MCU側(cè),則帶寬節(jié)省就更可觀了。
這里對(duì)h.264的幾個(gè)profile做個(gè)簡(jiǎn)單介紹:
AVC/H.264 規(guī)定了多種不同的Profile:最低Profile、主要Profile、擴(kuò)展Profile、高端Profile(這些Profile 本身還要?jiǎng)澐謹(jǐn)?shù)個(gè)等級(jí))。
-最低Profile,也叫做底線Profile(Baseline Profile)支持I/P 幀,只支持無交錯(cuò)(Progressive)和CAVLC;
-擴(kuò)展Profile(Extended Profile)支持I/P/B/SP/SI 幀,只支持無交錯(cuò)(Progressive)和CAVLC;
-主要Profile(Main Profile)提供I/P/B 幀,支持無交錯(cuò)(Progressive)和交錯(cuò)(Interlaced),同樣提供對(duì)于CAVLC和CABAC 的支持;
-高端Profile(High Profile)在主要Profile 的基礎(chǔ)上增加了8x8 內(nèi)部預(yù)測(cè)、自定義量化、無損視頻編碼和更多的YUV 格式;
(下面直接引用polycom的一篇掃盲文檔)
為了對(duì)這些功能進(jìn)行有序的整理,H.264 按照遞進(jìn)的復(fù)雜性和性能將這些功能歸成了幾類規(guī)范。圖中 描述了H.264 中的4 個(gè)標(biāo)準(zhǔn)化規(guī)范之間的關(guān)系。
H.264 profiles
今天大多數(shù)視頻通信系統(tǒng)采用的是Baseline Profile。Baseline 是最基本的H.264 profile 和定義。例如,它對(duì)圖片進(jìn)行Z 形掃描,然后采用4:2:0 色度取樣。在Baseline Profile 中,圖片被分割成多個(gè)4x4 像素塊,每塊進(jìn)行單獨(dú)處理。Baseline Profile 另一個(gè)重要因素是采用了統(tǒng)一可變長(zhǎng)編碼(UVLC)和文本自適應(yīng)可變長(zhǎng)編碼(CAVLC)熵編碼技術(shù)。編碼效率對(duì)用于視頻的網(wǎng)絡(luò)帶寬有很大影響,編碼技術(shù)的進(jìn)步有助于提高 High Profile 的效率,超越Baseline Profile, 如下所述。
Extended Profile 和Main Profile 標(biāo)準(zhǔn)包含Baseline Profile 的功能,并增加了對(duì)預(yù)測(cè)算法的改進(jìn)。如果你想達(dá)到1000-2000 倍的壓縮比,那么單獨(dú)傳送每一個(gè)單獨(dú)幀(試想每秒30 幀的高質(zhì)量視頻)顯然是不可行的,而H.264 中大量使用了時(shí)間域和運(yùn)動(dòng)預(yù)測(cè),因此它只允許傳輸與前一幀不同的畫面。以此來獲得驚人的效率,尤其是對(duì)于變化小和運(yùn)動(dòng)少的場(chǎng)景。
High Profile 是H.264 中最強(qiáng)大的標(biāo)準(zhǔn)規(guī)范,它可以實(shí)現(xiàn)最有效的視頻編碼。例如,采用文本自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)進(jìn)行編碼所獲得的編碼增益比Baseline Profile 中采用的UVLC /CAVLC 編碼更有效率。
High Profile 還采用自適應(yīng)變換,自動(dòng)確定是采用4x4 還是8x8 像素塊。例如,4x4 像素塊用于圖像中細(xì)節(jié)密集的部分,而細(xì)節(jié)改變很少的圖像則采用8X8 像素塊。
H.264 還提供了一個(gè)解碼器框圖,但為了簡(jiǎn)練, 我們?cè)诒疚膶⒉蛔鲈敿?xì)介紹,因?yàn)樗c編碼功能有很多重疊內(nèi)容。
High Profile 的主要優(yōu)勢(shì)
能夠保持視頻質(zhì)量并大幅降低所需網(wǎng)絡(luò)帶寬的能力對(duì)視頻網(wǎng)絡(luò)的各個(gè)方面都會(huì)產(chǎn)生影響。因此, High Profile能夠降低新的與現(xiàn)有視頻部署的成本,并加速獲得投資回報(bào)(ROI)。
引用結(jié)束
看上面的圖,和我之前說的一樣,算法壓縮效率高,一般算法復(fù)雜度就越高,要實(shí)現(xiàn)實(shí)時(shí)壓縮,對(duì)芯片的技術(shù)能力要求就越高。所以呢,highprofile技術(shù)的應(yīng)用是芯片或者說半導(dǎo)體技術(shù)發(fā)展的必然。未來也將走向更為復(fù)雜的H.265。
上面一篇文章提到了,視頻壓縮的目的是為了減少視頻存儲(chǔ)的空間或者視頻傳輸帶寬。既是存儲(chǔ)和帶寬相對(duì)廉價(jià)的今天,要實(shí)現(xiàn)視頻的大容量存儲(chǔ)(如視頻監(jiān)控)和實(shí)時(shí)傳輸,沒有視頻壓縮幾乎不可能。
視頻壓縮現(xiàn)狀:
視頻壓縮編碼標(biāo)準(zhǔn)種類繁多,其中ITU下主導(dǎo)的H.26x系列和ISO主導(dǎo)的MPEG系列影響最大,應(yīng)用最為廣泛。早期,ITU下的H.26x主要應(yīng)用于實(shí)時(shí)領(lǐng)域;ISO的MPEG系列(它包括音頻壓縮標(biāo)準(zhǔn))主要應(yīng)用于廣播電視,VCD(MPEG1),DVD(MPEG2)存儲(chǔ)。ITU發(fā)展到H.264后,開始與ISO的MPEG4融合。被納入MPEG-4的第十部分。
目前主流的壓縮標(biāo)準(zhǔn)為H.264/AVC。它在實(shí)時(shí)傳輸和存儲(chǔ)領(lǐng)域已經(jīng)得到廣泛的應(yīng)用。H.264于2003年正式發(fā)布,距今已經(jīng)9年。我認(rèn)為H.264標(biāo)準(zhǔn)未來5年還是視頻應(yīng)用主力。其在IPTV,視頻監(jiān)控,視頻會(huì)議,和光盤存儲(chǔ)中將繼續(xù)占主導(dǎo)地位。
視頻壓縮先進(jìn)性評(píng)價(jià):
評(píng)價(jià)一種視頻壓縮算法是否先進(jìn),就開它與其它壓縮算法相比,在同等視頻質(zhì)量條件下,壓縮倍數(shù)是否更高。
在上一篇博文中我計(jì)算過,1080P 25fps的原始視頻數(shù)據(jù)量 (注:這里我寫的M都是Mb的意思,就是說按網(wǎng)絡(luò)帶寬的意義去計(jì)算,網(wǎng)絡(luò)帶寬就是按每秒多少bit流來計(jì)算的,而存儲(chǔ)容量的最小單位為Byte,也就是字節(jié)(8bit)。存儲(chǔ)容量單位的1M表示1MB,等于網(wǎng)絡(luò)帶寬8Mb)。每秒大概數(shù)據(jù)量為593Mb。如果用戶帶寬為4Mb,想實(shí)現(xiàn)1080P 的實(shí)時(shí)會(huì)議或者監(jiān)控,最少需要將原始視頻壓縮近593/4 = 150倍。
當(dāng)前高清實(shí)時(shí)視頻應(yīng)用的實(shí)現(xiàn)一般都采用H.264算法。因?yàn)樵谕纫曈X效果下,它的壓縮比比其它標(biāo)準(zhǔn)最少提升2倍。如H.264目前能在4M甚至是2M帶寬下實(shí)現(xiàn)1080P實(shí)時(shí)傳輸,而其它算法幾乎是無法實(shí)現(xiàn)的。
視頻壓縮算法發(fā)展的動(dòng)力:
“一切動(dòng)力來自人類的無窮欲望”,視頻技術(shù)的發(fā)展也是如此。在電影電視領(lǐng)域,當(dāng)大家欣賞到高清效果后,再也無法接受過去的標(biāo)清時(shí)代的畫質(zhì)體驗(yàn)。而在3D電影《阿凡達(dá)》推出后,全球又刮起了一陣3D旋風(fēng)。在通信領(lǐng)域,人們希望能隨時(shí)隨地的進(jìn)行面對(duì)面的溝通。這兩年思科等廠商推出的沉浸式網(wǎng)真視頻會(huì)議抄得火熱。監(jiān)控和IPTV也早已步入全高清時(shí)代。未來將發(fā)展到3D時(shí)代。
更高的視覺享受更為細(xì)膩和清晰的畫面質(zhì)量。視頻數(shù)據(jù)量更大。對(duì)傳輸和存儲(chǔ)的壓力也更大。因此對(duì)視頻壓縮算法的要求更高。希望能有更高的壓縮比來減少對(duì)存儲(chǔ)和傳輸視頻信號(hào)的壓力。
視頻業(yè)務(wù)發(fā)展的基礎(chǔ):
視頻壓縮的核心思想就是利用視頻信號(hào)的特點(diǎn),去除視頻信號(hào)的時(shí)間和空間冗余。從H.261到H.264,MPEG1到MPEG4。算法的壓縮比有很大提升。未來還有H.265等更為先進(jìn)的算法出現(xiàn)。算法研究者們不斷推動(dòng)高效高性能算法的出現(xiàn)是視頻業(yè)務(wù)發(fā)展的技術(shù)基礎(chǔ)之一。
算法壓縮比越高,一般而言算法本身的復(fù)雜度也會(huì)相應(yīng)提高。復(fù)雜的算法,需要更強(qiáng)大的計(jì)算能力。特別是實(shí)時(shí)的視頻業(yè)務(wù)。因此芯片計(jì)算發(fā)展,是視頻通信和業(yè)務(wù)能否發(fā)展起來的硬件保障。當(dāng)前DSP芯片處理能力也不斷大幅提升,在一定帶寬條件下實(shí)現(xiàn)實(shí)時(shí)編碼已毫無問題。視頻信號(hào)處理芯片能力的提升,是高效壓縮算法得到實(shí)現(xiàn)的硬件保障。
最后網(wǎng)絡(luò)帶寬的提升也是一個(gè)重要條件,特別是今年來無線視頻業(yè)務(wù)的發(fā)展,得益于無線網(wǎng)路帶寬的提升。
算法本身的發(fā)展,芯片能力,網(wǎng)絡(luò)帶寬。這三者一起推動(dòng)了當(dāng)今高清視頻業(yè)務(wù)的普及,也是未來3D業(yè)務(wù)發(fā)展的技術(shù)基礎(chǔ)。