基于小波變換的視頻圖像壓縮算法研究
l 引 言
隨著網(wǎng)絡(luò)和多媒體技術(shù)的迅速發(fā)展,特別是3G技術(shù)的逐漸普及,多媒體信息特別是視頻圖像信息將越來越豐富。對數(shù)據(jù)量龐大的視頻圖像信息進行壓縮是非常必要的,因此視頻圖像的壓縮也一直吸引著廣大研究者進行不斷深入的探索。
小波變換具有良好的時、頻局域性,并且由于其在非平穩(wěn)圖像信號分析方面的靈活性和適應(yīng)人眼視覺特性的能力,已經(jīng)成為圖像編碼的有力工具。應(yīng)用三維小波變換進行視頻壓縮編碼,需考慮選用時、空域2組小波濾波器組。時域選用階數(shù)較低的濾波器組,而空域的濾波器組的選擇與靜止圖像變換編碼相似,常用的是雙正交D 9/7濾波器組,但是它的計算量較大,因此采用提升方法來實現(xiàn),并且對提升格式的參數(shù)進行調(diào)整,可進一步減少運算量。
2 基于提升格式的三維小波變換的視頻編碼系統(tǒng)
本文采用的視頻編碼系統(tǒng)主要是由三維小波變換、量化、熵編碼和碼流組裝4個部分組成,如圖1所示。設(shè)圖像序列有M×N×L個像素,M,N分別為圖像的列、行數(shù),L為一組中的幀數(shù)。首先,對輸入的L幀圖像進行三維提升型小波變換。然后用基于HVS的視覺閾值曲線對各個子帶的小波系數(shù)進行量化,且把每個子帶進一步分成固定大小的塊。之后對每個子塊進行位平面熵編碼,并得到各塊的率失真曲線。最后,在碼流組裝過程中進行碼流分配。該系統(tǒng)的解碼過程就是其逆過程。
3 算法實現(xiàn)
(1)小波分解:本文采用提升型小波變換對視頻信號進行3級的三維小波分解得到垂直、水平和幀方向的三維小波子帶。得到一個低頻分辨率的圖像逼近LLL3和代表不同分辨率、不同方向上的視頻序列細(xì)節(jié)信息的高頻三維小波子帶(LHHm,LHLm,LLHm,HLHm,HHLmHHHm,HLLm,其中m表示級數(shù),即m=1,2,3)。低頻子帶LLLm代表視頻序列時間軸方向的上下文信息,包含圖像大部分的能量,需重點保護。對于時間軸上的高頻子帶采用本文的閾值量化法進行量化。時間軸低頻子帶的能量要高于高頻子帶,當(dāng)運動劇烈時,經(jīng)小波分解后的時間軸高頻子帶內(nèi)的系數(shù)會急劇增大,會影響算法的整體壓縮效果,而時間軸低頻子帶其積聚了圖像信息的大部分能量,所以不能引入太大的失真。
(2)基于HVS的閾值量化:本文采用的量化方法是利用視覺門限曲線與小波系數(shù)的關(guān)系來構(gòu)造單位小波變換系數(shù)的量化矩陣??臻g變換小波是雙正交D 9/7濾波器組,文獻(xiàn)中給出圖像壓縮中最佳小波基D 9/7閾值量化因子矩陣,以該矩陣為基礎(chǔ)推斷三維小波變換系數(shù)的量化矩陣。當(dāng)視頻圖像序列中物體的運動變化很快時,在三維小波變換系數(shù)時間軸上的高頻子帶中會產(chǎn)生較大的系數(shù)值,其量化后的數(shù)值依然很大,所以采用如下量化方法。在量化中設(shè)立一個閾值T,以小波分解系數(shù)的均方誤差作為判斷準(zhǔn)則,設(shè)量化矩陣為Q,對系數(shù)按照下式量化:
其中R為量化步長。具體過程為:設(shè)PD是1個比特位,當(dāng)M≤TPD=1時,輸出碼流中輸出一位PD=0,則解碼器以量化矩陣Q對輸入碼流進行反量化;當(dāng)M>T時,輸出碼流中輸出PD=1,然后輸出量化步長R,用2個字節(jié)來表示,則解碼器以量化矩陣Q(1+R)對輸入碼流進行反量化。
(3)熵編碼:量化后的每個子帶被進一步分成固定大小的塊,并對每個子塊采用位平面技術(shù)分別進行熵編碼。嵌入式位平面編碼器按照位平面從最高有效位N一1~0降序地進行編碼,因此在截取壓縮碼流時,先保證所有系數(shù)的最高有效位平面的優(yōu)先傳輸,保證碼流的解碼質(zhì)量。在每個編碼之后都同時記錄當(dāng)前編碼的碼率R和對應(yīng)的失真D,得到的率失真曲線將用于后面的碼流組裝。
(4)碼流組裝:在所有的系數(shù)塊完成編碼后,根據(jù)最小化全局失真的原則用碼流組裝對各個塊的碼流進行碼率分配。原始的碼率控制方法采用全局最優(yōu)的碼率控制,會導(dǎo)致幀方向上質(zhì)量的顫抖。本文結(jié)合率失真優(yōu)化和幀方向上質(zhì)量平穩(wěn)2方面的要求,沿幀方向上采用新的碼率分配方法,同時在沿水平和垂直方向上保持了率失真優(yōu)化的方法。即對于同一時間軸小波子帶的分塊都采用同一斜率來選取截斷點;對于不同時間軸小波子帶的分塊,按照不同的斜率來截斷以調(diào)整時間軸方向的穩(wěn)定性??梢愿鶕?jù)式(2)的失真比例條件來調(diào)整截斷點的斜率。
在中高碼率環(huán)境下,各時間軸子帶的衰減系數(shù)βn近似相等,因此可以簡單的依照下等式通過控制各時間軸子帶的率失真斜率來控制失真的比例。
此處δi為等式(2)給出的理論失真值,m為時間軸的小波子帶個數(shù)。
前面的熵編碼過程中已經(jīng)計算并保存了每個塊的率失真曲線。為了使先傳輸?shù)拇a率對信息失真度的降低最快,需要保證率失真的凸性,因此按照文獻(xiàn)中方法對每個塊的率失真曲線采取凸包絡(luò)處理。每個塊的失真根據(jù)所處的小波子帶乘上一個能量權(quán)重,以利用小波域的失真估計圖像空域的失真:
此處w表示提升型小波合成濾波器帶來的能量增益。對于雙正交D9/7濾波器,低通增益wL=1.299,高通增益為wH=0.787。在三維方向上共經(jīng)過n個低通和m個高通提升型濾波器的小波子帶,能量增益為各層增益的乘積叫=wnLwmH。
對所有的塊的率失真曲線,找出聯(lián)合最優(yōu)的率失真斜率點,并將碼流在該點截斷,然后將所有塊中在同一斜率切點截斷得到的碼流片斷組合成最終的壓縮碼流。最優(yōu)斜率能夠得出最接近目標(biāo)碼率的公共斜率,每個系數(shù)塊的截斷碼率長度也作為頭信息記錄在壓縮碼流中,作為對壓縮碼流隨機解碼時的索引。
4 實驗結(jié)果
本文利用上述的視頻編碼方法對QCIF格式的標(biāo)準(zhǔn)視頻序列Foreman和Akiyo序列進行壓縮編碼,每幀176×144的像素,全長300幀,幀率為每秒30幀。在編解碼過程中,取L=6幀為一組進行三維小波變換。可將Foreman和Akiyo序列分別壓縮到0.4 bpp和O.1 bpp。根據(jù)式(2)可計算出時間軸平穩(wěn)條件下各級D 9/7濾波器的理論時間軸R—D斜率比例,來控制時間軸率失真截斷斜率。
比較該編碼算法和MPEG一4的VM 16.O版本的性能。對于Foreman,其優(yōu)于采用“IPP…”GOP結(jié)構(gòu)的MPEG一4平均O.3 dB;其平均壓縮質(zhì)量Akiyo與相近。如圖2所示,其中“一”代表本文中算法,“▲”代表“IPP…”GOP結(jié)構(gòu)的MPEG一4。Foreman序列與Akiyo序列如圖2所示。
由圖2可以看出,新的視頻圖像編碼方法對于像Foreman這樣圖像背景比較復(fù)雜,且場景中的物體運動較大的圖像,該方法仍能在較大的壓縮比下得到重建質(zhì)量良好的視頻圖像,對于這種大部分區(qū)域的運動很少,時間軸上的顫抖不是很明顯,可以保持三維小波變換編碼的特點,在高的壓縮比之下重建圖像仍然能夠得到較高的圖像質(zhì)量。這說明本文所提出的方法是有所改進的,特別是對于運動變化較快的圖像。
根據(jù)文獻(xiàn)提出的視頻序列質(zhì)量的評價方法,對Foreman和Akiyo這2段視頻序列圖像分別采用本文中的算法和MPEG一4的VM 16.O“IPP…”GOP結(jié)構(gòu)重建后的圖像序列進行評價。下面分別給出視頻清晰度和流暢度評價結(jié)果。
(1)根據(jù)1段視頻清晰度的評價公式,可得新算法和GOP結(jié)構(gòu)對Foreman重建后的視頻清晰度分別為27.37和28.64;Akiyo的視頻清晰度分別為32.44和29.61。從視覺效果來看,新算法重建后的視頻序列的清晰度還是較好,且Akiyo的清晰度更好。
(2)根據(jù)一段視頻流暢性指標(biāo)的評價公式,可得新算法和GOP結(jié)構(gòu)對視頻序列Foreman的流暢度10.56和12.13;Akiyo的原始和重建后的視頻流暢度8.87和9.11。從視覺效果來看,新算法重建后的視頻序列具有很好的流暢性,特別是對于Foreman序列。
5 結(jié) 語
本文利用視覺特性曲線對三維小波變換后的系數(shù)進行量化,采用具有時間軸穩(wěn)定性的碼率控制方法,通過控制各小波時間軸子帶的失真比例來分配碼率,均衡控制解碼后時間軸信號的失真。實驗結(jié)果表明,該方法的運算復(fù)雜度低,有效降低存儲空間并提高運算速度。而且該編碼器壓縮的視頻具有良好的時間軸平穩(wěn)性,因而更加適合用戶的視覺要求。同時,對于以往小波編碼中質(zhì)量較差的一些幀,壓縮質(zhì)量有所提高。