馬穎杰,謝偉凱,申瑞民
(上海交通大學 a. 現(xiàn)代遠程教育研究中心;b. 計算機科學與工程系,上海 200 030)
面向視頻播放場景的屏幕編碼碼率控制方法
馬穎杰a,謝偉凱a,申瑞民b
(上海交通大學 a. 現(xiàn)代遠程教育研究中心;b. 計算機科學與工程系,上海 200 030)
針對屏幕中同時出現(xiàn)視頻和文字圖片時現(xiàn)有碼率控制方法的局限性,提出一種新的碼率控制方法。以視頻緩存檢驗器和恒定碼率因子控制模式為基礎(chǔ),通過視頻窗口檢測算法將屏幕內(nèi)容劃分為視頻區(qū)域和非視頻區(qū)域,并對不同的區(qū)域采取不同的碼率控制算法。結(jié)合視頻區(qū)域識別算法,新的碼率控制方法分別對幀層和宏塊層采用如下方法實現(xiàn)優(yōu)化:對于幀層,若當前幀為P幀且在I幀周圍一定范圍內(nèi),則該幀通過采用P_SKIP模式降低非視頻區(qū)域的幀率以補償I幀的整體質(zhì)量,提高屏幕視頻序列的整體視覺效果;對于宏塊層,則根據(jù)當前宏塊所處區(qū)域(視頻區(qū)域或非視頻區(qū)域)對宏塊量化參數(shù)及其波動范圍作一定調(diào)整。實驗結(jié)果表明,與x264原有的VBV+CRF模式相比,新的碼率控制方法獲得的主觀評價評分要高40%。
屏幕編碼;碼率控制;視頻緩存檢驗器;恒定碼率因子;視頻區(qū)域識別算法;P_SKIP模式
信息技術(shù)與教育技術(shù)的飛速發(fā)展使得在線課堂、移動課堂等遠程教育形式越來越普及,這給現(xiàn)代遠程教育帶來了前所未有的機遇。而這樣的教育形式往往需要實時傳輸電腦屏幕內(nèi)容。且因為屏幕內(nèi)容往往同時包含文字、圖片和視頻,所以不能把屏幕圖像序列簡單地等同為一般視頻序列。選擇什么編碼方式編碼這些電腦桌面內(nèi)容并如何高效地將它們傳輸?shù)浇K端成為了研究者們關(guān)注的難題。屏幕編解碼作為一種新興的視頻編解碼技術(shù)越來越被研究者們所重視,它是針對屏幕內(nèi)容特征的一種視頻編解碼技術(shù)。與傳統(tǒng)的視頻編碼技術(shù)相比,屏幕編碼需要能同時兼顧到屏幕內(nèi)容中的視頻部分和文字圖片部分,采用傳統(tǒng)的針對自然運動圖像序列的通用視頻編解碼技術(shù)如MPEG-4的壓縮效果不夠理想。
對視頻通信而言,由于通信信道帶寬有限,需對視頻編碼碼率進行控制,以保證編碼碼流的順利傳輸和信道帶寬的充分利用。碼率控制算法的實質(zhì)是通過動態(tài)調(diào)整編碼器參數(shù),得到目標比特數(shù)。它為視頻序列中的圖像組GOP、圖像或者子圖像分配一定的比特。針對不同的應用場合,學者們提出了多種碼率控制方法。碼率控制方法應用于遠程教育中的屏幕編碼需要考慮到屏幕內(nèi)容的特殊性,如屏幕中含有視頻播放的場景。
屏幕圖像序列中的視頻播放場景是指屏幕中包含有視頻的播放。例如,在遠程教學中老師在屏幕上播放一段視頻來輔助教學。在這樣的場景下,需要同時兼顧視頻播放的連續(xù)性和非視頻區(qū)域文字圖片的清晰度。在帶寬受限的前提下,傳統(tǒng)的碼率控制方式很難滿足上述要求。
針對當前屏幕編碼技術(shù)與傳統(tǒng)編碼技術(shù)在屏幕編碼中存在的缺陷,本文提出一種新的碼率控制算法。
目前在屏幕編碼領(lǐng)域的研究大部分集中于將通用視頻編碼器進行優(yōu)化,以提高其在屏幕場景的率失真表現(xiàn)。文獻[1]提出對于屏幕內(nèi)容,在幀內(nèi)編碼時采用gzip無損編碼和H.264有損編碼相結(jié)合的混合編碼方式,目的是結(jié)合gzip對文字圖形和H.264對視頻編碼的優(yōu)勢。選擇2種編碼方式中代價更小的一種對當前宏塊進行編碼。之后又在此基礎(chǔ)上加入另一種基于PNG濾波器和RLE無損壓縮模式[2]。實驗表明,這種新的編碼方式很好地利用了屏幕圖像的空間相關(guān)性。
文獻[3]在H.264基礎(chǔ)上提出一種基于分段思想的策略,先執(zhí)行一個分段操作將塊劃分為文字邊緣、文字內(nèi)部和背景3個部分,然后根據(jù)人體視覺系統(tǒng)對于不同內(nèi)容的敏感程度分別使用不同的量化步長以保持視覺效果。
此外,針對屏幕編碼的碼率控制,文獻[4]提出了一種自適應量化和碼率控制算法,通過MD5校驗和計算相鄰幀的變化區(qū)域,然后根據(jù)變化區(qū)域信息選取量化步長以達到碼率控制的目的,從實驗結(jié)果上看算法有效地降低了峰值碼率。文獻[5]將屏幕序列分為快速運動場景和慢速運動場景,對不同的場景采用了不同的碼率控制方法。對慢速運動場景采用了FRACQP[6]的碼率控制方法,該方法通過降低幀率大大提高了屏幕中無視頻內(nèi)容時的視覺效果。對快速運動場景則采用了x264的CRF+VBV模式,但是在VBV模式下由于需要控制峰值碼率,會引起關(guān)鍵幀畫面質(zhì)量明顯降低,嚴重影響主觀視覺效果。如何解決關(guān)鍵幀因比特數(shù)分配不足而帶來的問題是本文研究的重點。
本文通過在部分P幀的非視頻區(qū)域采用P_SKIP模式來降低編碼P幀所需的比特數(shù),并將P幀多余的比特數(shù)轉(zhuǎn)移到最近的I幀,再根據(jù)I幀內(nèi)宏塊所處的區(qū)域(視頻區(qū)域或非視頻區(qū)域)將當前宏塊QP的波動范圍限制在一定范圍內(nèi)并微調(diào)QP的值以提升I幀的主觀質(zhì)量。因此,如何識別出屏幕中視頻窗口的位置是本研究的前提。
Mirror Driver[7]是win32平臺下的一種顯示驅(qū)動,系統(tǒng)發(fā)往顯卡的命令同樣發(fā)送給Mirror Driver,所以Mirror Driver可以實時捕獲屏幕圖像數(shù)據(jù)。此外,Mirror Driver還可以提供距離上一次捕獲屏幕的變化區(qū)域。
在這個基礎(chǔ)上,通過檢測連續(xù)5次捕獲的變化區(qū)域情況來檢測視頻窗口所在位置。具體步驟如下:通過Mirror Driver返回的變化區(qū)域坐標,可以得到變化區(qū)域的面積,若這個面積超過屏幕大小的1/16,則記這一幀為視頻幀。然后讀取下一幀,若下一幀仍為視頻幀,則比較這2幀的變化區(qū)域是否相等。直到出現(xiàn)連續(xù)5幀視頻幀且這5幀的變化區(qū)域相等,認為這個變化區(qū)域所對應的窗口正是視頻播放窗口。
在如圖1所示的場景下,把該算法檢測到的視頻區(qū)域涂黑,驗證了該算法的有效性,如圖2所示。
圖1 屏幕中視頻播放場景
圖2 識別算法有效性的檢驗
x264[8]編碼器是目前最優(yōu)秀的H.264開源編碼器之一,選擇x264已經(jīng)實現(xiàn)的碼率控制模式為基礎(chǔ),對其碼率控制模式進行改進以適應屏幕編碼。因為需要將屏幕編碼應用于網(wǎng)絡直播,所以不能采用x264的2-pass模式,而只能選擇1-pass模式進行改進。
x264的1-pass碼率控制主要有CQP(Constant Qua ntization Parameter)、CRF、ABR(Average Bit Rate)和VBV這4種模式。因為CQP會使得碼率不受控制,所以不能將CQP應用于有限信道帶寬的遠程教育場景。CRF和ABR在VBV的搭配下能夠有效地將碼率控制在目標碼率下,但是根據(jù)肉眼的特性,人類對于視頻的連貫性更加敏感。這里選擇VBV+CRF模式[9]進行改進。提出的新的碼率控制方法主要針對幀級和宏塊級進行碼率控制。
4.1 幀級的碼率控制算法
針對幀級的碼率控制算法的基本思想是降低P幀非視頻區(qū)域的幀率來補償I幀整體質(zhì)量。具體流程如圖3所示。
圖3 幀級碼率控制流程
在實現(xiàn)細節(jié)中,關(guān)心的是如何增大I幀的分配比特數(shù)以及如何減少分配給P幀的比特數(shù)。設計算峰值碼率的單位時間為D,最大峰值碼率限制為Rmax,幀率為F,為了將I幀所在的單位時間的峰值碼率控制在最大峰值碼率之內(nèi),需要滿足包含I幀的任意連續(xù)的D×F幀產(chǎn)生的峰值碼率不超過最大峰值碼率。且在保證不超過峰值碼率的前提下,為了使I幀能分配到盡可能多的目標比特數(shù),希望將I幀前D×F–1幀和后D×F–1幀分配到的目標比特數(shù)降低到最小。
在非視頻區(qū)域引入了P_SKIP模式,根據(jù)H.264標準規(guī)定,如果當前的預測向量mvp=(0,0),則可以為當前塊選擇P_SKIP的預測模式,跳過該宏塊的預測。否則,還需要記錄預測向量殘差mvd。經(jīng)實驗證明,將I幀周圍一定數(shù)量P幀的非視頻區(qū)域采用P_SKIP模式對P幀的主觀質(zhì)量影響非常小。所以可以通過采用P_SKIP模式不編碼P幀的非視頻區(qū)域來降低分配給P幀的目標比特數(shù)。對所有處在關(guān)鍵幀前D×F–1幀和后D×F–1幀的P幀的非視頻區(qū)域都使用P_SKIP模式跳過編碼以達到降低P幀的局部幀率的效果。
在遠程教育等應用場景中,這2×D×F–1幀內(nèi),屏幕中視頻區(qū)域和非視頻區(qū)域的復雜度近似為不變。用SATD表示這個復雜度,設關(guān)鍵幀非視頻區(qū)域的SATD值總和為SATDgui,視頻區(qū)域的SATD值總和為SATDvideo。除去P_SKIP跳過的非視頻區(qū)域,在這2×D×F–1幀內(nèi)共有2×D×F–1個視頻區(qū)域和1個非視頻區(qū)域。設RatioI為關(guān)鍵幀在這2×D×F–1幀中的復雜度比重,若用BitI、BitP分別表示I幀分配到的比特數(shù)和P幀分配到的比特數(shù),則這2×D×F–1幀分配到的比特數(shù)分別為:
其中,k1為常數(shù),是因為P幀編碼時采用幀間預測而不是幀內(nèi)預測,所以需要對P幀復雜度乘上一定的調(diào)節(jié)因子k1。
4.2 宏塊級的碼率控制算法
針對宏塊級的碼率控制算法基本思想是根據(jù)當前宏塊所處的區(qū)域?qū)ζ銺P進行微調(diào),并限制QP的波動范圍,以提高I幀整體的視覺效果。宏塊級碼率控制流程如圖4所示。
圖4 宏塊級碼率控制流程
從VBV的實現(xiàn)機制可以知道,VBV會根據(jù)一幀內(nèi)每一行宏塊編碼后產(chǎn)生的實際比特數(shù)更新這一幀的預測比特數(shù),再根據(jù)當前預測的比特數(shù)更新每一行的基準量化系數(shù)。但VBV碼率控制方式會因為預測不準確出現(xiàn)同一幀畫面內(nèi)量化系數(shù)波動劇烈,導致主觀視覺效果很差,所以需要改進VBV的碼率控制方式以防止一幀內(nèi)量化系數(shù)劇烈波動。
設經(jīng)過VBV調(diào)整之后當前宏塊的量化系數(shù)為QP,則需要將QP的取值限定在一定范圍內(nèi),以優(yōu)化因VBV預測不準確提供的QP值。所以針對VBV機制的不足之處,宏塊級的碼率控制方法通過微調(diào)QP和限制QP波動范圍來提高I幀的整體質(zhì)量。
首先算得一個基準范圍QPmin和QPmax。這個基準范圍應該與最大峰值碼率呈負相關(guān),所以得到如下經(jīng)驗公式:
其中,QP_SPEC_MAX為x264最大量化系數(shù)51;Rmax為最大峰值碼率;QP_STEP為QP的步長。
帶頭遵章守紀。牢固樹立執(zhí)紀者帶頭守紀、監(jiān)督者自覺接受監(jiān)督意識,杜絕“燈下黑”,嚴守各項紀律,帶頭遵守駐在單位的規(guī)章制度,不越權(quán)辦事、不干預監(jiān)督單位正常工作秩序,自覺接受各級監(jiān)督,樹立忠誠干凈、勤政務實的形象,贏得監(jiān)督單位的認可。
引入一個修正值QPadjust來求得I幀非視頻區(qū)域和視頻區(qū)域的QP波動范圍(QP_GUImin,QP_GUImax)和(QP_ VIDEOmin,QP_VIDEOmax)。這個修正值與I幀的復雜度比例RatioI有關(guān)。這個QP修正值最大為一個QP的步長,所以得到下式:
其中,lrintf()函數(shù)為取整函數(shù)。則非視頻區(qū)域和視頻區(qū)域的QP波動范圍分別如下:
(1)非視頻區(qū)域
(2)視頻區(qū)域
因為人眼對非視頻區(qū)域的質(zhì)量損失比較敏感,所以可以適當提高視頻區(qū)域的QP值,降低非視頻區(qū)域的QP值,用低敏感度的視頻區(qū)域的質(zhì)量換取高敏感度的非視頻區(qū)域的質(zhì)量,以提高當前幀的主觀質(zhì)量。此時QP和QP的波動范圍為:
通過實驗驗證新的碼率控制方法的有效性。首先,考察新算法編碼產(chǎn)生的碼率曲線是否符合直播要求。其次,考察新算法能否提高含有視頻播放的屏幕圖像序列的主觀質(zhì)量。
5.1 參數(shù)設置
(1)采用圖1所示的屏幕場景,該場景是老師在化學課上播放化學實驗的視頻教程,左邊文字為化學實驗的具體步驟。
(2)屏幕視頻的幀率F為10 f/s,最大峰值碼率Rmax為300 Kb/s,計算峰值碼率的單位時間D為1 s。
(3)編碼采用FRACQP碼率控制方法時,i_qp_constant= 30。設置的峰值碼率為300 Kb/s。
(4)編碼采用VBV+CRF碼率控制方法時,f_rf_constant= 26,i_vbv_max_bitrate=300 Kb/s。
(5)編碼采用新的碼率控制方法時,式(1)中的k1為0.1,式(4)、式(5)中的k2為0.2。f_rf_constant=26,i_vbv_max_ bitrate=300 Kb/s。
5.2 算法的客觀評測
首先獲得編碼后碼率曲線來驗證其在限制碼率方面的有效性。將目標碼率設定為300 Kb/s,對圖1所示場景進行編碼,得到如圖5所示的碼率控制曲線。
圖5 碼率控制曲線
從圖5中可以看到,碼率控制曲線能夠很好地將碼率控制在300 Kb/s之下,完成了碼率控制的基本目標。評估了新算法在峰值信噪比(Peak Signal to Noise R atio, PSNR)上的提高,相比為改進的VBV+CRF模式,PSNR可以平均提高1.1 dB,如圖6所示。
圖6 峰值信噪比評測結(jié)果
分別使用新算法、FRACQP和x264中實現(xiàn)的常用碼率控制算法CRF+VBV模式對圖1所示的場景進行編碼。圖7和圖8分別為x264自帶的CRF+VBV模式與新的碼率控制方式在I幀時的畫面截圖。
圖7 VBV+CRF編碼后的截圖
圖8 新算法編碼后的截圖
從圖7、圖8可以看到,新的算法有效提升了關(guān)鍵幀的整體質(zhì)量。而采用FRACQP雖然使得單幀的畫質(zhì)明顯提高了,但是因為這種方法犧牲幀率來補償單幀畫質(zhì),所以不適用于含有視頻的屏幕內(nèi)容的編碼。在實驗中看到在FRACQP模式中因為掉幀率視頻畫面很不流暢,嚴重影響視頻主觀質(zhì)量。
此外,還設計了主觀評測實驗來考察新算法的編碼性能。邀請15位沒有視頻編碼研究背景的志愿者進行主觀評測實驗,采用單刺激法[10]對一系列用不同碼率控制算法進行編碼后的視頻進行評分,得到如圖9所示的結(jié)果。
圖9 主觀評測結(jié)果
實驗結(jié)果表明,新的碼率控制方法在針對含有視頻播放的屏幕編碼時,所獲得的評分比以往的碼率控制方法高出40%。
本文針對現(xiàn)代遠程教育發(fā)展中遇到的問題提出了一種新的碼率控制方式,該碼率控制方式改進了x264現(xiàn)有的VBV+CRF模式,它能通過降低關(guān)鍵幀周圍P幀的局部幀率有效地降低VBV+CRF模式下因預測不準確而造成的質(zhì)量損失。
首先通過一個視頻窗口識別算法將屏幕中正在播放的視頻識別出來。在這個基礎(chǔ)上,對屏幕中不同區(qū)域采用對應的碼率控制策略。它的優(yōu)勢在于編碼同時包含視頻和文字、圖形的屏幕圖像序列。新的碼率控制方式可應用于教師在線授課時電腦屏幕局部播放視頻的場景。
實驗結(jié)果證明,新的碼率控制方式能夠嚴格地將碼率控制在目標碼率下,并提高編碼屏幕圖像序列時的主觀質(zhì)量。下一步工作是將該算法應用于移動學習直播系統(tǒng)PPclass[11],針對混合場景屏幕圖像序列進行編碼。采用另外一種針對無視頻播放場景編碼的碼率控制方法,如FRACQP方法。今后研究的關(guān)鍵在于如何準確地識別出當前幀所處的場景。
[1] Wang Shuhui, Lin Tao. A Unified LZ and Hybrid Coding for Compound Imag e Partial-lossless Compression[C]//Proc. of the 2nd Intern ational Congres s on Image and Signal Processing. [S. l.]: IEEE Press, 2009: 1-5.
[2] Wang Shuhui, Lin Tao. United Coding for Compound Image Compression[C]//Proc. of the 3rd International Co ngress on Image and Signal Processing. [S. l.]: IEEE Press, 2010: 566-570.
[3] Zaghetto A, de Queiroz R L. Segmentation-driven Compound Document Coding Based on H.264/AVC-INTRA[J]. IEEE Transactions on Image Processing, 2007, 16(7): 1755-1760.
[4] Han Bing, Hu Dapeng, Zhang Huipin. Block-based Method for Real-time Compound V ideo Compression[C]//Proc. of International Society for Optics and Photonics o n Mobile Multimedia/Image Processing, Security, and Applications. Orlando, USA: [s. n.], 2010.
[5] Lin Yi, Xie Weikai, Jin Lei, et al. Content-adaptive H.264 Rate Control for Live Screencasting[C]//Proc. of IEEE Conference on Visual Communications and Image Processing. San Diego, USA: IEEE Press, 2012: 1-6.
[6] 金 磊, 謝偉凱, 林 藝. 基于H.264的屏幕視頻實時編解碼器的優(yōu)化[J]. 計算機工程, 2012, 38(16): 18-22.
[7] Microsoft Corporation. Mirro r Driver[EB/OL]. [2013-03-21]. http://msdn.microsoft.com/en-us/library/ff568315%28VS.85% 29.aspx.
[8] V ideoLAN Organization. X264[EB/OL]. [2013-03-21]. http:// www.videolan.org/developers/x264.html.
[9] Merritt L, Vanam R. Impr oved R ate Control and Motion Estimation for H.264 Encoder[C]//Proc. of IEEE International Conference on Image Processing. San Antonio, USA: I EEE Press, 2007: 309-312.
[10] ITU. ITU-R Recommendat ion B T.1438-2002 Su bjective Assessment of S tereoscopic Television Pictures[S]. Genev a, Switzerland: International Telecommunication Union, 2002.
[11] Xie Weikai, Zhang Zhiqiang, Lu Chenping, et al. PPClass——A Classroom Lecture Broadcast Platform Based on P2P Streaming T echnology[C]//Proc. of the 4th I nternational Conference on Distance Learnin g and Education. San Jua n, USA: IEEE Press, 2010: 199-203.
編輯 顧逸斐
Screen Coding Rate Control Method for Video-playing Scene
MA Ying-jiea, XIE Wei-kaia, SHEN Rui-minb
(a. E-learning Lab; b. Department of Computer Science and Engineering, Shanghai Jiaotong University, Shanghai 200030, China)
With the quick devel opment of moder n distance educat ion, screen coding for encoding s creen content ap pears, a ne w rate control method is proposed for the characteristic of screen content that includes videos, text and pictures. It is based on the Video Buffer Verifier(VBV) and Constant Rate Factor(CRF) mode and divides t he screen content into video area and non-video area using a video recognition algorithm which can recognize the position of the video window on the screen. Combining with the video recognition algorithm, the new rate co ntrol method respectively improves rate control method of the frame layer and the macro block laye r through foll owing method. For frame layer, if the current frame is a P-frame, and the P-frame is within a certain range aro und the I-frame, this frame lowers the frame rate of non-video area by adopting P_SKIP into the non-video area to enhance quality of the nearest I-frame so that improves the overall visual ef fect of the scree n sequence. For macro block la yer, the new rate control method adjusts the val ue of Quantization Parameter(QP) and limits i ts fluctuation range by the location of the current macro block, whether it is in video area or not. Experimental results prove that the new rate control method can score 40% more than the original VBV+CRF mode in the subjective assessment.
screen coding; rate control; V ideo Buffer Verifier(VBV); Constant Rate Factor(CRF); video area recognition algorithm; P_SKIP mode
10.3969/j.issn.1000-3428.2014.05.052
上??莆萍脊リP(guān)計劃基金資助項目(11511503002)。
馬穎杰(1988-),男,碩士研究生,主研方向:屏幕編碼;謝偉凱,高級工程師;申瑞民,教授。
2013-03-05
2013-05-21E-mail:yingjie.horse@gmail.com
1000-3428(2014)05-0252-05
A
TP391