汪洋
摘要:針對(duì)實(shí)時(shí)性要求較高的高清視頻應(yīng)用系統(tǒng)中標(biāo)準(zhǔn)視頻編解碼算法時(shí)延大的問(wèn)題,在分析標(biāo)準(zhǔn)視頻編解碼算法的碼流特性以及視頻編解碼系統(tǒng)的時(shí)延模型的基礎(chǔ)上,開(kāi)展了低時(shí)延高清視頻編解碼技術(shù)研究?;跇?biāo)準(zhǔn)視頻編解碼算法提出了無(wú)I幀全P幀的低時(shí)延編解碼算法,并研究了與之相適應(yīng)的碼率控制算法。經(jīng)試驗(yàn)驗(yàn)證,與標(biāo)準(zhǔn)視頻編解碼算法相比,采用新研究算法的高清視頻編解碼系統(tǒng)時(shí)延得到了大大降低,新研究算法可用于H.264/H.265等標(biāo)準(zhǔn)視頻編解碼算法中降低時(shí)延。
關(guān)鍵詞:高清視頻;視頻編解碼;低時(shí)延;碼率控制
中圖分類(lèi)號(hào):TP393文獻(xiàn)標(biāo)志碼:A文章編號(hào):1008-1739(2019)05-63-3
0引言
在實(shí)時(shí)性要求較高的應(yīng)用領(lǐng)域,比如采用4G網(wǎng)絡(luò)對(duì)比賽現(xiàn)場(chǎng)進(jìn)行高清視頻實(shí)況轉(zhuǎn)播,從比賽現(xiàn)場(chǎng)到電視用戶(hù)的低時(shí)延會(huì)提升用戶(hù)的現(xiàn)場(chǎng)感受;通過(guò)無(wú)線信道傳輸高清視頻,“人在回路”控制無(wú)人機(jī)[1]鎖定地面跟蹤目標(biāo),時(shí)延越小操作手更能及時(shí)捕獲目標(biāo)的移動(dòng)。
高清視頻信號(hào)使人們享受高畫(huà)質(zhì)的同時(shí),也帶來(lái)了高碼流、高存儲(chǔ)空間和高傳輸帶寬等問(wèn)題,單純地?cái)U(kuò)大存儲(chǔ)容量空間和提升網(wǎng)絡(luò)傳輸帶寬不能從根本上解決問(wèn)題,進(jìn)行合適的數(shù)字視頻壓縮編解碼是改變現(xiàn)狀的重要途徑。
視頻編解碼一般采用商用國(guó)際標(biāo)準(zhǔn),如H.264[2-3],H.265[4]等,商用視頻編解碼國(guó)際標(biāo)準(zhǔn)主要針對(duì)于消費(fèi)娛樂(lè)、網(wǎng)絡(luò)、會(huì)議電視和影視等應(yīng)用場(chǎng)景,注重恢復(fù)圖像質(zhì)量,不考慮時(shí)效性。一般商用視頻編解碼系統(tǒng)的時(shí)延在500 ms以上,不能滿(mǎn)足比賽實(shí)況高清轉(zhuǎn)播、“人在回路”控制無(wú)人機(jī)的實(shí)時(shí)性要求。本文分析了標(biāo)準(zhǔn)視頻編解碼算法的碼流特性以及視頻編解碼系統(tǒng)的時(shí)延模型,開(kāi)展了低時(shí)延的視頻編解碼技術(shù)[5]以及相對(duì)應(yīng)的碼率控制算法[6-7]研究。
1標(biāo)準(zhǔn)算法碼流特性分析
在標(biāo)準(zhǔn)視頻編碼算法中圖像序列被劃分為I幀、P幀和B幀,如圖1所示,其中I幀只進(jìn)行幀內(nèi)編碼,壓縮比低,數(shù)據(jù)量較大,高質(zhì)量的I幀壓縮能夠提高后續(xù)P幀和B幀的預(yù)測(cè)準(zhǔn)確性。P幀以I幀或P幀為參考幀間預(yù)測(cè)編碼,其數(shù)據(jù)量較小,與I幀圖像相比壓縮性能有了較大提高。B幀以I幀或P幀為參考,因?yàn)殡p向幀間預(yù)測(cè)能夠比單向預(yù)測(cè)更有效地消除時(shí)間冗余信息,因此壓縮比非常高。
對(duì)時(shí)延有要求的實(shí)時(shí)編解碼系統(tǒng)中一般不使用B幀,僅使用I幀和P幀,編碼序列一般為IPP…IPP…。選用一段視頻測(cè)試序列采用商用標(biāo)準(zhǔn)算法進(jìn)行編碼,存儲(chǔ)編碼數(shù)據(jù),用商用軟件Elecard Streameye打開(kāi)編碼數(shù)據(jù),I幀和P幀編碼后數(shù)據(jù)示意圖如圖2所示,紅柱代表I幀編碼后的數(shù)據(jù)比特?cái)?shù),藍(lán)柱代表P幀編碼后的數(shù)據(jù)比特?cái)?shù)。由圖2可知,I幀和P幀的編碼效率不同,在相同的重建圖像質(zhì)量下,I幀和P幀的壓縮比通常是1:4,甚至更加懸殊。
通過(guò)4G網(wǎng)絡(luò)或無(wú)線信道傳輸時(shí),帶寬有限,為了平滑不同編碼方式導(dǎo)致的I幀,P幀圖像編碼后的數(shù)據(jù)量波動(dòng),必須在編碼器設(shè)置較大緩沖區(qū)來(lái)緩存突發(fā)增加的數(shù)據(jù),然后根據(jù)網(wǎng)絡(luò)/信道帶寬發(fā)送,這導(dǎo)致了后續(xù)P幀的編碼數(shù)據(jù)不能及時(shí)傳輸?shù)降孛?。同時(shí)由于I幀的編碼數(shù)據(jù)量較大,解碼器必須在接收到完整的圖像編碼數(shù)據(jù)才能完成解碼,在等待完整I幀數(shù)據(jù)解碼過(guò)程中需要顯示已解壓的P幀圖像數(shù)據(jù),對(duì)已解壓的P幀圖像進(jìn)行緩存用于平滑顯示,導(dǎo)致解壓后的P幀不能及時(shí)顯示。因此,I幀圖像編碼后的數(shù)據(jù)量突發(fā)增大導(dǎo)致了后續(xù)P幀編碼數(shù)據(jù)不能及時(shí)傳輸?shù)降孛?,且地面已解壓的P幀不能及時(shí)顯示,這些都顯著增加了視頻編解碼系統(tǒng)的時(shí)延。
2時(shí)延模型分析
視頻編解碼系統(tǒng)延遲模型如圖3所示。
在標(biāo)準(zhǔn)視頻壓縮算法中,由于I幀,P幀采用不同的編碼技術(shù),其壓縮比一般為1:4,同時(shí)各幀圖像內(nèi)容千差萬(wàn)別,各幀編碼后碼流波動(dòng)較大,碼流波動(dòng)是造成標(biāo)準(zhǔn)算法時(shí)延在500 ms以上的主要原因。
在高清視頻1080P 30幀/s編解碼情況下,按通常I幀,P幀的壓縮比為1:5分析系統(tǒng)時(shí)延,視頻編解碼系統(tǒng)時(shí)延關(guān)系圖如圖4所示。
①1:采集一幀圖像時(shí)間為33 ms;
②2:編碼1幀的平均時(shí)間為20 ms;
③3:為緩存編碼完成沒(méi)有及時(shí)發(fā)送出去數(shù)據(jù)的時(shí)間,由于I幀,P幀編碼后的數(shù)據(jù)量一般為1:4,因此I幀編碼完成后緩存的數(shù)據(jù)需要傳輸4個(gè)P幀編碼數(shù)據(jù)傳輸?shù)臅r(shí)間,為了保證緩沖區(qū)不溢出,一般為200 ms;
④4:解碼緩存20 ms的數(shù)據(jù)后開(kāi)始解碼;
⑤5:解碼一幀時(shí)間大概為20 ms;
⑥6:顯示緩沖,由于等待I幀數(shù)據(jù)接收解碼完成的過(guò)程中,需要顯示以前已解壓的圖像,一般需要緩存3幀圖像才能保證圖像的流暢平順顯示,不發(fā)生跳幀現(xiàn)象,7為99 ms;
⑦8:顯示時(shí)間,顯示一幀圖像的時(shí)間為33 ms,則整個(gè)系統(tǒng)的時(shí)延為:= 1+ 2+ 3+ 4+ 5+ 6+ 7+ 8=33+20+200+20+20+99+33=425 ms。
此外由于編碼器輸出碼流的速率與信道傳輸?shù)乃俾什豢赡芡耆ヅ洌蕦?shí)際的時(shí)延一般會(huì)比上述理論分析值大。
3低時(shí)延視頻編解碼技術(shù)
3.1算法原理
在標(biāo)準(zhǔn)算法中,由于編碼幀類(lèi)型的不同導(dǎo)致了I幀編碼后的數(shù)據(jù)突發(fā)增大,使得整個(gè)視頻編解碼系統(tǒng)的時(shí)延增大。要減少現(xiàn)有編解碼系統(tǒng)的時(shí)延,必須改變其結(jié)構(gòu),同時(shí)對(duì)現(xiàn)有的編解碼算法進(jìn)行優(yōu)化,以適應(yīng)實(shí)時(shí)編解碼的要求。
基于條帶的低時(shí)延編解碼結(jié)構(gòu),如圖5所示。在該結(jié)構(gòu)中,將原有I幀化整為零,每個(gè)圖像幀中都有一個(gè)條帶(I-Slice)采用原有的I幀方式編碼,其余條帶(P-Slice)采用原有P幀編碼方式編碼。這樣,每幀的編碼方式基本相同,編碼后不存在標(biāo)準(zhǔn)算法中I幀和P幀之間的較大碼流差別,每幀圖像編碼后的數(shù)據(jù)量相對(duì)平穩(wěn),機(jī)載編碼器可以設(shè)定較小的發(fā)送緩沖區(qū),編碼后的圖像數(shù)據(jù)能夠及時(shí)發(fā)送到地面。同時(shí),地面解碼器不用緩存幾幀已解壓的圖像數(shù)據(jù)用于顯示平滑,使得整個(gè)編解碼系統(tǒng)的時(shí)延大大降低。
3.2算法流程
步驟1:如果采集的圖像是第一幀圖像,則整幀圖像的slice個(gè)slice都采用幀內(nèi)編碼的方式進(jìn)行編碼,否則轉(zhuǎn)到步驟2。
步驟2:如果采集的圖像是第幀(=2,3,4…),則該幀圖像的第(modslice)個(gè)slice采用幀內(nèi)編碼的方式,該幀的其他slice采用幀間編碼的方式。之所以每幀I-slice的位置不同,是為了保證經(jīng)過(guò)slice幀之后,從第1~slice個(gè)位置的每個(gè)slice都可以采用幀內(nèi)編碼方式編碼一次,從而防止編碼過(guò)程中誤差的擴(kuò)散。
步驟3:編碼完成一個(gè)slice之后,獲取數(shù)據(jù),送往發(fā)送緩沖區(qū),傳輸至接收端。
步驟4:解碼器循環(huán)訪問(wèn)接收緩沖區(qū),如果接收緩沖區(qū)中有一個(gè)完整的slice,則取出該slice,進(jìn)行解碼,解碼完成后送入顯示緩沖區(qū);否則,解碼器等待一段時(shí)間后再次訪問(wèn)接收緩沖區(qū)。
步驟5:如果顯示緩沖區(qū)中的數(shù)據(jù)包含完整的一幀,則送往顯示設(shè)備顯示;否則暫存已有的數(shù)據(jù),并繼續(xù)接收解碼后的數(shù)據(jù)。
3.3基于PID的碼率控制算法研究
碼率控制的目的是在有限帶寬條件下,使得視頻信號(hào)的恢復(fù)質(zhì)量盡可能好。被編碼的視頻信號(hào)通過(guò)一個(gè)緩沖區(qū)發(fā)送出去,有效的緩沖區(qū)控制策略能夠避免較大的緩沖區(qū)延遲和由于跳幀所導(dǎo)致的視頻質(zhì)量波動(dòng)。本系統(tǒng)利用基于反饋的比例積分微分(Proportional Integral Derivative,PID)緩沖區(qū)控制策略,能更準(zhǔn)確地控制輸出位率,在滿(mǎn)足延遲要求和有限資源的條件下,有效降低跳幀頻率,提高視頻輸出的連續(xù)性,獲得較好的圖像恢復(fù)質(zhì)量。
PID控制器以其結(jié)構(gòu)簡(jiǎn)單、穩(wěn)定性好、工作可靠和調(diào)整方便而成為工業(yè)控制的主要技術(shù)之一。當(dāng)被控對(duì)象的結(jié)構(gòu)和參數(shù)不能完全掌握,或得不到精確的數(shù)學(xué)模型,控制理論的其他技術(shù)難以采用時(shí),系統(tǒng)控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗(yàn)和現(xiàn)場(chǎng)調(diào)試來(lái)確定,這時(shí)應(yīng)用PID控制技術(shù)最為方便。PID控制器根據(jù)系統(tǒng)的誤差,利用比例、積分和微分計(jì)算出控制量進(jìn)行控制。
在一個(gè)過(guò)程中能否引入PID控制概念的基本前提和假設(shè)有3點(diǎn):必須能夠明確地確立指標(biāo);必須能夠獲得表示實(shí)際結(jié)果與標(biāo)準(zhǔn)結(jié)果之間偏差的信息;必須有措施來(lái)糾正實(shí)際結(jié)果與標(biāo)準(zhǔn)結(jié)果之間的偏差。經(jīng)分析,碼率控制過(guò)程滿(mǎn)足引入PID理論的前提條件,因此建立以緩沖區(qū)為控制對(duì)象的基于PID的P幀碼率控制模型,如圖6所示。
4試驗(yàn)驗(yàn)證
選用與圖2中測(cè)試相同的視頻測(cè)試序列,采用基于標(biāo)準(zhǔn)算法改進(jìn)后的低時(shí)延編碼算法進(jìn)行測(cè)試,存儲(chǔ)編碼碼流,用商用軟件Elecard Streameye打開(kāi)編碼碼流,每幀編碼后數(shù)據(jù)示意圖如圖7所示,藍(lán)柱代表P幀編碼后的數(shù)據(jù)比特?cái)?shù)。
由圖7可以看出,每幀圖像編碼后的數(shù)據(jù)量波動(dòng)不大,這樣編碼器不用設(shè)置較大的發(fā)送緩沖區(qū),解碼器不用緩存幾幀解壓圖像用于平滑顯示,大大降低了視頻編解碼系統(tǒng)的時(shí)延。
在實(shí)際的高清視頻編解碼系統(tǒng)中進(jìn)行時(shí)延測(cè)試,時(shí)延測(cè)試方法示意圖如圖8所示。
測(cè)試方法描述:用高清攝像頭對(duì)準(zhǔn)秒表,高清視頻1分2,1路直接接視頻監(jiān)視器1,1路送給視頻編碼器,視頻編碼器壓縮數(shù)據(jù)通過(guò)同步數(shù)據(jù)傳輸機(jī)制傳輸?shù)揭曨l解碼器中解壓,最終在視頻監(jiān)視器2上顯示。
采用新研究的編解碼算法以及碼率控制算法,高清視頻編解碼系統(tǒng)的時(shí)延由標(biāo)準(zhǔn)算法的450 ms降低到60 ms左右,時(shí)延得到了大大的降低。
5結(jié)束語(yǔ)
本文分析了標(biāo)準(zhǔn)視頻編解碼算法的碼流特性以及視頻編解碼系統(tǒng)的時(shí)延模型,基于標(biāo)準(zhǔn)視頻編解碼算法提出了無(wú)I幀全P幀的低時(shí)延編解碼算法以及與之相適應(yīng)的碼率控制算法,在實(shí)際高清視頻編解碼系統(tǒng)中對(duì)算法進(jìn)行了驗(yàn)證,結(jié)果表明時(shí)延降低到60 ms左右,與標(biāo)準(zhǔn)算法相比得到了大大的降低,該算法對(duì)實(shí)時(shí)性要求很高的視頻編解碼系統(tǒng)有很大意義,同時(shí)新研究算法適合于當(dāng)前主流的標(biāo)準(zhǔn)視頻視頻編解碼算法:如H.264,H.265等。
參考文獻(xiàn)
[1]周祥生.無(wú)人機(jī)測(cè)控與信息傳輸技術(shù)發(fā)展綜述[J].無(wú)線電工程,2008,38(1):30-33.
[2]畢厚杰,王建.新一代視頻壓縮標(biāo)準(zhǔn)264_AVC[M].北京:人民郵電出版社,2009.
[3] ITU-T Rec.H.264 and ISO/IEC 14496-10 (H.264/AVC).JVT of ISO/IEC MPEG and ITU-T VCEG. Advanced Video Coding for Generic Audiovisual Services[R],2003.
[4] Sullivan G J,Ohm J R,Han W J, et al.Overview of the High Efficiency Video Coding (HEVC) Standard [J].IEEE Trans on Circuits Syst.Video Technol,2012,22(12):1649-1668.
[5]姚春蓮,阮秋琦,姜東,等.一種基于條帶劃分的低延遲幀內(nèi)編碼方法[J].計(jì)算機(jī)科學(xué),2014,41(11):187-191.
[6]費(fèi)偉,朱善安.低延時(shí)無(wú)線視頻傳輸中的H.264碼率控制算法[J].中國(guó)圖象圖形學(xué)報(bào),2008,13(11):2099-2105.
[7] Kwon D K,Shen M Y,Kuo C C J.Rate Control for H.264 Video with Enhanced Rate and Distortion Models[J].Circuits and Systems for Video Technology,IEEE Transactions on, 2007,17(5):517-529.