(成都理工大學 工程技術(shù)學院,四川 樂山 614000)
在視頻應(yīng)用時,碼率控制占據(jù)重要地位,保障碼率得以約束的前提下,碼率控制以提升編碼圖像的質(zhì)量水平為目的。為得到更優(yōu)質(zhì)的視覺感受,擁有相同的圖像質(zhì)量為視頻編碼期望特性之一[1]。一般情況下,碼率控制算法的優(yōu)化力求幀圖像失真度最小,這堪稱整體意義上對圖像質(zhì)量進行優(yōu)化,也許會造成各幀圖像內(nèi)每個宏塊的信噪比不集中分布的問題,圖像每個部分質(zhì)量波動很大,導致了主觀視覺質(zhì)量水平降低[2]。在目前的視頻壓縮編碼標準中,由于對視頻序列中類型不一樣的幀采用不一樣的編碼方式,與此同時,每個幀圖像的活動性也不一樣,導致每個幀編碼后生成的比特數(shù)有某些差異[3]。
編碼速率控制是為了使編碼器輸出的碼流達到穩(wěn)定,盡可能消除編碼端緩沖器溢出問題,進一步提高重建圖像質(zhì)量。過去利用小波視頻碼率控制方式,該方式可以針對信號執(zhí)行多分辨分析與時頻局部化操作,恢復圖像滿足人眼的主觀需求,借助三維最小度分解原始圖像序列,之后借助修改后的等級樹集合分區(qū)的算法量化效度系數(shù)[4]。即便此方法有很好的控制效果,但因為交換緩沖器的容量不是無限的,視頻碼流的突發(fā)性有形成擁塞的危險,繼而造成丟失緩沖器溢出與信元的后果,傳輸?shù)姆?wù)質(zhì)量會降低。因此,以CPLD芯片為基礎(chǔ)的視頻圖像碼率控制方法研究被提出。
此控制方案利用以CPLD芯片的碼率為基礎(chǔ)的控制方式,借助它的低復雜度、高控制精度達到提高運算速度與控制精度的目的,使當前碼率控制算法的性能占據(jù)較大優(yōu)勢[5]。該控制方案的碼率控制方法主要由CPLD芯片視頻圖像灰度增強、視頻質(zhì)量控制、主動跳幀控制和編碼碼率控制4個模塊組成,如圖1所示。
圖1 基于CPLD芯片的視頻圖像碼率控制框圖
借助視頻解碼芯片,解碼當前的模擬視頻信號,并將模擬視頻信號轉(zhuǎn)化成數(shù)字視頻信號,再采用可編程邏輯器件CPLD,完成灰度線性變換指令,使視頻圖像的灰度進行增強[6]。
1.1.1 視頻解碼
視頻解碼芯片采用9位視頻輸入處理器,其型號為sAA7113,該視頻輸入處理器來自于Philips公司。在系統(tǒng)中這個芯片的主要功能是使復合視頻信號CVBS完成A/D轉(zhuǎn)換指令,并輸出一個數(shù)字視頻信號在YUV 4∶2∶2格式中符合ITU656標準,即取樣頻率的兩倍(13.5 MHz)行參考信號HREF、場參考信號VREF和半像素時鐘信號LLC[7]。由于信號鉗位、對比度控制、飽和度控制、抗混疊濾波、自動增益控制與亮度控制等能夠在視頻解碼芯片內(nèi)部完成,因此,只有在系統(tǒng)上電復位后,依據(jù)I2C總線,才能正確地執(zhí)行視頻解碼芯片內(nèi)部相關(guān)控制寄存器完成初始化設(shè)置,即可獲得高質(zhì)量的數(shù)字視頻信號和時鐘信號,用于同步所有系統(tǒng)[8]。
1.1.2 視頻信號格式統(tǒng)一
圖2是一行像素數(shù)據(jù)的格式。
圖2 視頻信號格式統(tǒng)一
因為數(shù)字視頻信號在YUV4∶2∶2格式中,色差信號取樣率是亮度信號取樣率的一半,所以每兩個像素時鐘周期輸出兩個色差信號Cb,Cr和一個灰度信號Y。在CClR556倡議中,將視頻數(shù)據(jù)中的量化值設(shè)定為255和0,并記為保留值。量化數(shù)據(jù)的串行輸出按此循環(huán),其順序為:Yo、Uo、Y1、vo、Y2、U1、Y3、V1、Y5、U2、Y6、V2[9]。
1.1.3 視頻圖像灰度增強處理
通過灰度線性變換指令,使視頻圖像的灰度進行增強,并利用Verilog HDL敘述CPLD執(zhí)行算法。再運用SAA7113模擬數(shù)字轉(zhuǎn)換,輸入8位數(shù)字視頻信號VPI。在8位灰度映射表中,選擇撥碼開關(guān)、半像素時鐘信號LLCI與行場同步Vref、Href;并將輸入的半像素時鐘LLCO與8位數(shù)字視頻信號VPO發(fā)送到sAA7121H處理器。當每個半像素時鐘信號處于上升沿時,判斷像素是否處于行程狀態(tài)或進程狀態(tài)。如果是,則設(shè)定初始為首個進行上下行參考的信號,將偶數(shù)位的取樣點進行灰度變換,根據(jù)波碼開關(guān)的輸入值選擇相應(yīng)的變換函數(shù)。在進行灰色映射時,使用case分支語句將需要處理的灰色映射表和灰度級進行關(guān)聯(lián)。將奇數(shù)取樣點均設(shè)定為0X80(對應(yīng)的色差信號為0),去除顏色信息的同時,對圖像進行灰度變換。
在視頻編碼中,為了達到碼率約束要求目的,需利用固定的比特率輸出,圖像的量化參數(shù)會持續(xù)變化,圖像質(zhì)量亦會產(chǎn)生波動;為保證質(zhì)量的均勻,一般情況下利用確定的量化參數(shù)圖對圖像執(zhí)行量化處理,但是如此輸出的編碼比特率非恒定不變,在有帶寬限制的應(yīng)用中無法適用。如圖3所示。
圖3 固定編碼比特率與固定圖像質(zhì)量之間關(guān)系
在率失真理論的碼率控制中,優(yōu)化策略以碼率約束滿足為前提,讓全部編碼圖像的失真度為最小值。因為圖像內(nèi)容存在差異,在碼率固定的前提條件下,每個宏塊的量化參數(shù)必然會有波動,造成圖像的不同部分質(zhì)量產(chǎn)生波動,對主觀視覺質(zhì)量造成影響??紤]到以上兩種編碼方法(獲取固定碼率的編碼方法與獲取一致的編碼質(zhì)量的編碼方法的特性),所以,一種碼率控制方法被提出了:碼率約束達到要求后,最小化每個宏塊量化參數(shù)的方差。借助此種優(yōu)化方式,能夠讓宏塊量化參數(shù)分布更為集中,近似于量化參數(shù)固定編碼方式,進而取得均勻相同的圖像質(zhì)量;與此同時,因為帶寬約束得到滿足,固定碼率的編碼方式亦可以應(yīng)用于帶寬受限的應(yīng)用環(huán)境中。確保正確解碼,每個宏塊的量化參數(shù)會被執(zhí)行編碼操作并且向解碼端傳輸。
被提出的碼率控制以CPLD芯片為基礎(chǔ),采用的碼率控制方法先計算目前緩沖區(qū)比特數(shù),
(1)
依據(jù)上述內(nèi)容,編碼幀目標比特數(shù)為:
(2)
式(2)中,λ表示緩沖延遲系數(shù)。
提出的基于CPLD芯片的視頻圖像碼率控制方法需依據(jù)當前渲染到紋理值,統(tǒng)計報文丟失率,結(jié)合CPLD芯片視頻圖像灰度增強處理內(nèi)容,估計報文傳輸所需的比特數(shù),具體控制步驟如下所示:
Step1:跳幀控制
統(tǒng)計緩沖區(qū)大小,重新計入EC編碼,以此作為數(shù)據(jù)開銷;
Step2:信道狀態(tài)估計
統(tǒng)計前兩幀圖像傳輸反饋的數(shù)量,計入糾錯報文之中,由此計算報文出錯率;
Step3:估計需要糾錯時間
設(shè)置緩沖區(qū)圖像幀數(shù)和報文長度,依據(jù)所需發(fā)送的報文總數(shù)糾錯報文出錯率,通過搜索方法計算所需糾錯報文數(shù)目;
Step4:確定采用的編碼幀分配所需的比特數(shù),將Step3中得到的渲染到紋理值帶入其中,并根據(jù)選擇的模式估計糾錯報文所需比特數(shù)。
依據(jù)上述內(nèi)容,完成編碼碼率控制。
在視頻碼率控制中,評價控制算法優(yōu)劣的主要依據(jù)為視頻碼率,但應(yīng)用視頻碼率的同時,還需要對視頻質(zhì)量進行控制,所以需要引入一個質(zhì)量控制模塊。
1.3.1 視頻采集
視頻采集依靠采集程序與計算機內(nèi)置的采集卡完成。檔次高的采集卡對應(yīng)生成高質(zhì)量視頻。某些視頻采集卡可以執(zhí)行硬壓縮,采集速度很快。盡量應(yīng)用高質(zhì)量的采集卡進行視頻的捕捉,保證圖像效果較好。針對某些可以執(zhí)行壓縮的采集卡,采集成AVI格式視頻具有較好效果。進行采集時,可利用隨卡帶的采集程序,亦可運用Premiere的采集程序。借助Premiere的cuptu:命令采集時,需要在模擬信號與DV信號中區(qū)分出視頻信號源,在cupture format采集格式中選取composite(模擬復合)或者是DV(數(shù)字視頻)。條件允許的情況下,首選DV格式采集。
1.3.2 視頻編輯
視頻作品質(zhì)量的提高是視頻媒體編輯的重要過程,借助對采集壓縮后的視頻素材執(zhí)行編輯操作,讓視頻感染力、表現(xiàn)力增強。編輯過程為:將編輯程序打開,新建視頻編輯項目,把數(shù)字化的視頻素材傳輸進此項目窗口,對素材進行選擇,設(shè)置素材在編輯軌上的展開方式,之后調(diào)用編輯軟件供給的各個軟件,比如剪輯、重新排序、銜接素材、添加特效、運動疊加、中英文字幕等。
視頻節(jié)目編輯成功之后,可以直接壓縮成為所需格式,圖像信息的損失有效降低,清晰度提高了。使用素材時,最好保持圖像的原始尺寸與寬高比。視頻片段加入濾鏡效果時,需要進行選擇,原因是某些濾鏡效果會使原視頻劣質(zhì)化,清晰度顯著降低,可以決定少加甚至是不加。此外,不超過視頻的目標任務(wù)的情況下,力求視頻壓縮的比特率得到提高,圖像細節(jié)的損失減少。
對于解碼器,如果在編碼端存在跳幀控制,則解碼端將重復前一幀圖像的內(nèi)容,使解碼后的重構(gòu)視頻序列滿足指定的幀速率。或者可以使用之前編碼幀的重建幀,計算通過幀的峰值信噪比。如果第j幀被跳過(事實上,沒有跳過幀),則使用前一重建幀的第j-1幀。如果峰值信噪很小,則說明跳過當前幀并沒有顯著降低PSNR,即可得到視頻質(zhì)量沒有顯著變化,能夠作為跳幀控制策略。與一般的跳幀相比,即可作為主動跳幀控件。如果該幀滿足主動跳幀的要求,則會生成兩種效果:首先是未對幀進行編碼,保存一些碼字,降低模式判斷和運動估計,并減少計算量;其次,緩沖區(qū)空間被空出,緩沖區(qū)充盈度的減小,將造成控制器無法準確調(diào)整后續(xù)幀的量化參數(shù)。
為了驗證基于CPLD芯片的視頻圖像碼率控制方法的有效性,對標準測試序列(共100幀)進行測試分析,并與小波視頻碼率控制方法相比較。測試序列為QCIF格式,幀頻率為20 f/s,以50 kb/s速率進行編碼,緩沖器容量為3 500 bit。
在視頻圖像細節(jié)簡單情況下,分析不同控制方法下緩沖器所占用量對比分析,結(jié)果如圖4所示。
圖4 不同控制方法下緩沖器所占用量對比分析
由圖4可知,采用小波視頻碼率控制方法在視頻圖像變化時,緩沖器占用量較大,而采用基于CPLD芯片視頻圖像碼率控制方法緩沖器占用量相對較小。
在視頻圖像細節(jié)豐富情況下,需將視覺圖像質(zhì)量一致性以幀內(nèi)失真度均方誤差作為度量準則,該誤差計算公式為:
(3)
式中,M表示視頻圖像數(shù)量;S′表示重建圖像與原圖像之間的均方誤差;S越小,失真度就越集中,視頻圖像也就越清晰。
在miss-am序列、foreman序列、coastguard序列下,將兩種方法的失真度均方誤差進行對比分析,結(jié)果如圖5所示。
圖5 兩種方法的失真度方差對比分析
由圖5可知:在miss-am序列下,采用小波視頻碼率控制方法在幀數(shù)為40~60幀時,均方誤差達到最高為180;而基于CPLD芯片控制方法在該幀數(shù)范圍內(nèi),均方誤差達到最高為270。在foreman序列下,采用小波視頻碼率控制方法在幀數(shù)為60幀時,均方誤差達到最高為520;而基于CPLD芯片控制方法也在60幀時,均方誤差達到最高為510。在coastguard序列下,采用小波視頻碼率控制方法在幀數(shù)為100幀時,均方誤差達到最高為800;而基于CPLD芯片控制方法也在100幀時,均方誤差達到最高為790。由此可知,采用基于CPLD芯片控制方法失真度較小,獲取的視頻圖像更加清晰。
基于上述內(nèi)容,統(tǒng)計實際峰值信噪比PSNR_Y、PSNR_U、PSNR_V和輸出碼率大小,如表1所示。
表1 實際峰值信噪比輸出碼率大小分析
依據(jù)表1所示實際值,分別采用小波視頻碼率控制方法(A)和基于CPLD芯片控制方法(B)對碼率控制精準度進行對比分析,結(jié)果如表2所示。
表2 兩種方法碼率控制精準度對比分析
PSNR_Y/dB峰值信噪比:采用小波視頻碼率控制方法在miss-am序列下與實際值相差2.91,在foreman序列下與實際值相差5.09,在coastguard序列下與實際值相差1.12;采用基于CPLD芯片控制方法在miss-am序列下與實際值相差0.15,在foreman序列下與實際值相差1.51,在coastguard序列下與實際值相差0.27。
PSNR_U/dB峰值信噪比:采用小波視頻碼率控制方法在miss-am序列下與實際值相差2.94,在foreman序列下與實際值相差1.01,在coastguard序列下與實際值相差0.93;采用基于CPLD芯片控制方法在miss-am序列下與實際值相差0.14,在foreman序列下與實際值相差0.06,在coastguard序列下與實際值相差0.33。
PSNR_V/dB峰值信噪比:采用小波視頻碼率控制方法在miss-am序列下與實際值相差5.48,在foreman序列下與實際值相差4.2,在coastguard序列下與實際值相差2;采用基于CPLD芯片控制方法在miss-am序列下與實際值相差0.15,在foreman序列下與實際值相差1.51,在coastguard序列下與實際值相差0.27。
輸出碼率:采用小波視頻碼率控制方法在miss-am序列下與實際值相差5.9,在foreman序列下與實際值相差13.95,在coastguard序列下與實際值相差8.84;采用基于CPLD芯片控制方法在miss-am序列下與實際值相差0.09,在foreman序列下與實際值相差0.11,在coastguard序列下與實際值相差0.07。
綜上所述:以CPLD芯片為基礎(chǔ)的視頻圖像碼率控制策略最小控制誤差為0.07,由此也證實基于CPLD芯片的視頻圖像碼率控制方法的有效性。
文中提出以CPLD芯片為基礎(chǔ)的視頻圖像碼率控制策略,帶寬約束滿足情況下,在一幀圖像范圍內(nèi)對每個宏塊量化參數(shù)的方差進行最小化處理,此準則能夠均勻圖像質(zhì)量。與此同時,節(jié)省編碼碼流中應(yīng)用于表征宏塊量化參數(shù)變化的句法比特數(shù),該方法是優(yōu)化了小波視頻碼率控制方法的一致性,能夠使編碼圖像質(zhì)量均勻性提高,低碼率的視頻應(yīng)用中應(yīng)用性增強。
實驗顯示,此方法滿足了高精度輸出碼率標準,并且同JVT-G012相比重建視頻質(zhì)量更優(yōu),是有效的碼率控制策略之一。然而,針對運動量較大的序列,該文的碼率控制方案同JVT-G012相比較并不具有什么優(yōu)勢,這也成為一個值得今后深入思考,研究的問題之一。