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