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