張艷艷,陳蘇婷
(南京信息工程大學(xué)電子與信息工程學(xué)院,江蘇 南京 210044)
在現(xiàn)代雷達(dá)系統(tǒng)中,隨著雷達(dá)組網(wǎng)、無人值守雷達(dá)、雷達(dá)視頻記錄分析等應(yīng)用的需要,雷達(dá)視頻實(shí)時壓縮有著廣闊的應(yīng)用前景,同時隨著雷達(dá)視頻分辨力的提高、目標(biāo)復(fù)雜度及分析準(zhǔn)確性的提高,雷達(dá)視頻壓縮面臨著巨大的挑戰(zhàn)。首先,高分辨力帶來了較大的數(shù)據(jù)運(yùn)算量,為滿足處理的實(shí)時性,需要對壓縮算法優(yōu)化改進(jìn),且硬件實(shí)現(xiàn)平臺也許具有較高的處理能力。另外,由于雷達(dá)視頻不同于普通視頻,其目標(biāo)一般在視頻的高頻細(xì)節(jié)部分,而通常的視頻壓縮算法主要保留圖像的低頻部分,高頻部分采用較大的量化步長,導(dǎo)致高頻細(xì)節(jié)的丟失,壓縮后目標(biāo)物丟失。
文獻(xiàn)[1]提出的大容量雷達(dá)視頻數(shù)據(jù)硬件預(yù)壓縮方法一定程度上緩解了壓縮運(yùn)算量大而導(dǎo)致數(shù)據(jù)丟失的現(xiàn)象,但壓縮率較低,運(yùn)算速度較慢,不能滿足目前高分辨力雷達(dá)視頻壓縮的需求。文獻(xiàn)[2]提出了一種FPGA+DSP的雷達(dá)視頻壓縮設(shè)計(jì)方案,這種方案硬件設(shè)計(jì)復(fù)雜,且并未給出壓縮結(jié)果。文獻(xiàn)[3]提出了一種小波多分辨力分解的雷達(dá)視頻壓縮方案,取得了較好的壓縮效果,但是并未給出具體的硬件實(shí)現(xiàn),且運(yùn)用小波進(jìn)行雷達(dá)視頻壓縮硬件實(shí)現(xiàn)時會有較高的運(yùn)算復(fù)雜度,實(shí)現(xiàn)較為復(fù)雜。
由于雷達(dá)視頻數(shù)據(jù)量較大,需要采用快速的硬件實(shí)現(xiàn)方法,目前常用的硬件芯片中,F(xiàn)PGA具有較高的并行處理能力,適合于大數(shù)據(jù)量及對實(shí)時性要求較高的場合。但由于視頻信號處理算法較為復(fù)雜,且有大量浮點(diǎn)、矩陣等高復(fù)雜度計(jì)算,基于FPGA的視頻壓縮方法面臨著大量實(shí)時處理改進(jìn)的問題。
針對以上分析,本文對視頻壓縮算法進(jìn)行改進(jìn)以滿足高分辨力雷達(dá)視頻的實(shí)時壓縮,保留其高頻細(xì)節(jié)部分,實(shí)現(xiàn)基于FPGA的高分辨力雷達(dá)視頻壓縮。
基于人眼對色度信號分辨力較低,視頻源數(shù)據(jù)為了降低數(shù)據(jù)量,色度分量通常采用相對較低的采樣率,在有效降低圖像數(shù)據(jù)量且對人眼感覺影響不大的前提下,4∶2∶0采樣[4]格式視頻被廣泛使用,本設(shè)計(jì)中數(shù)據(jù)源也采用 YUV 4∶2∶0的采樣方式。
該設(shè)計(jì)實(shí)現(xiàn)結(jié)構(gòu)如圖1所示,雷達(dá)視頻源數(shù)據(jù)進(jìn)行數(shù)據(jù)分塊、DCT 變換[4-8]、量化以及熵編碼操作完成壓縮過程。進(jìn)行數(shù)據(jù)分塊的主要目的是便于FPGA處理,并減少DCT變換的數(shù)據(jù)量;DCT變換用于減少數(shù)據(jù)之間的相關(guān)性,量化用于減少編碼數(shù)據(jù)范圍,熵編碼進(jìn)一步去除數(shù)據(jù)相關(guān)性,最終組合生成編碼碼流。數(shù)據(jù)的解壓縮流程與壓縮相反,即熵編碼、反量化、IDCT及數(shù)據(jù)塊組合。
本系統(tǒng)中雷達(dá)視頻的分辨力為1600×1200,數(shù)據(jù)量較大,F(xiàn)PGA內(nèi)部存儲空間無法實(shí)現(xiàn)幀緩沖,另外也為減小后續(xù)的DCT變換的運(yùn)算量,本設(shè)計(jì)將視頻源數(shù)據(jù)進(jìn)行了分塊處理。將視頻分成16×16大小的數(shù)據(jù)塊,也稱之為宏塊(MB),1個宏塊包含4個8×8亮度Y塊,1個8×8色差U塊,1個8×8色差V塊,1個MB是1個壓縮計(jì)算單元。分塊的視頻數(shù)據(jù)采用乒乓(pingpong)緩沖方式存放于FPGA內(nèi)部,每個緩沖區(qū)存儲16行。
本文通過DCT變換對視頻圖像進(jìn)行頻域分析,去除各像素點(diǎn)空間上的相關(guān)性。另外,理論上對所有像素點(diǎn)都進(jìn)行DCT變換可以最大限度地降低各像素點(diǎn)間的相關(guān)性,但由于運(yùn)算量較大,通常將圖像分塊分別計(jì)算。
對壓縮計(jì)算的宏塊進(jìn)一步分解為對4個Y塊、1個U塊及1個V塊分別進(jìn)行8×8 DCT變換。8×8 DCT變換及反變換如式(1)、式(2)所示。
DCT變換有大量乘法和累加處理,具有較高的復(fù)雜度,對于變換后固定的某個點(diǎn)即對某個特定的u,v值,變換公式等價于
下面對此式的各項(xiàng)分別進(jìn)行分析:
1)0.25C(u)C(v)cos(π(2x+1)u/16)cos(π(2y+1)v/16)
該部分是DCT變換最復(fù)雜的部分,對于變換后的固定輸出位置,即u,v固定,該部分結(jié)果隨x,y變化有64種可能性,可預(yù)先計(jì)算出結(jié)果,并存儲為表。由于FPGA適合進(jìn)行定點(diǎn)處理,因此將上述余弦乘法結(jié)果擴(kuò)展為32位整數(shù),即預(yù)先計(jì)算 0.25C(u)C(v)cos(π(2x+1)u/16)cos(π(2y+1)v/16)232并存儲為表,這樣計(jì)算過程中只需要根據(jù)輸入x,y,u,v值查表即可以得到余弦乘積結(jié)果。
2)f(x,y)和余弦項(xiàng)乘累加
f(x,y) 在[0,255]之間變化,范圍較大,無法采用查表方法,必須采用乘法計(jì)算,再累加實(shí)現(xiàn)。
3)DCT變換結(jié)果輸出
由于DCT變換過程中,各點(diǎn)計(jì)算并行處理,即同時計(jì)算出64個點(diǎn)的值,但后續(xù)編碼還需要按順序方式編碼,因此在對DCT變換后數(shù)據(jù)進(jìn)行Z掃描過程中,按掃描順序串行輸出。根據(jù)以上分析,DCT變換實(shí)現(xiàn)方法如圖2所示。
圖2 DCT變換實(shí)現(xiàn)框圖
量化通常是對變換后的離散系數(shù)進(jìn)行多對一映射操作,絕大多數(shù)的量化都會帶來圖像的損失,但是由于利用了人眼對不同頻率區(qū)域圖像敏感性不同的特點(diǎn),選擇適當(dāng)?shù)牧炕瘏?shù)可以做到人眼無法覺察。量化是通過降低DCT系數(shù)精度的方法,去除掉相對不重要的表示圖像細(xì)節(jié)的AC系數(shù),從而減少圖像數(shù)據(jù)量,達(dá)到壓縮目的。量化過程就是每個DCT系數(shù)除以各自的量化步長并按四舍五入取整得到量化系數(shù)。
由于雷達(dá)視頻中大量小目標(biāo)的存在,導(dǎo)致DCT變換后高頻分量較多,如果進(jìn)行常規(guī)的高頻分量處理方法,采用較大的量化系數(shù)將導(dǎo)致高頻數(shù)據(jù)丟失,從而恢復(fù)后視頻可能會丟失目標(biāo)?;谝陨峡紤],本文將低頻分量和高頻分量采用同樣的較小的量化系數(shù)16,即對DCT變換后數(shù)據(jù)統(tǒng)一除以16進(jìn)行量化,這一處理可以保留視頻中高頻細(xì)節(jié)部分的目標(biāo)物,F(xiàn)PGA實(shí)現(xiàn)時采用右移4位實(shí)現(xiàn)。
為進(jìn)一步壓縮數(shù)據(jù),還需要對量化后的數(shù)據(jù)進(jìn)行編碼。熵編碼的基本思想是用較少的碼表示概率較大的信源符號,用較多的碼表示出現(xiàn)概率較小的信源符號。本設(shè)計(jì)采用游程編碼方法,如圖3所示。
圖3 編碼框圖
數(shù)據(jù)順序輸入編碼模塊單元,首先檢測當(dāng)前數(shù)據(jù)是否為直流系數(shù),直流系數(shù)值通常較大,且和交流系數(shù)有較大的區(qū)別,如果是直流系數(shù)則直接進(jìn)行霍夫曼編碼[4,9];如是交流系數(shù),檢測當(dāng)前值是否為0,若為0則游程加1,若不為0則對當(dāng)前游程及數(shù)值進(jìn)行編碼;編碼采用霍夫曼編碼方式,碼表采用和JPEG編碼相同的碼表。編碼后數(shù)據(jù)輸出按照J(rèn)PEG編碼的方法把各標(biāo)記和編碼后的圖像數(shù)據(jù)組成1幀數(shù)據(jù),以便于傳輸、存儲和譯碼器進(jìn)行譯碼。
本文采用的FPGA芯片是Altera公司的StratixⅣGX EP4SGX230KF40C4,該芯片是一款高性能超大規(guī)??删幊踢壿嬈骷?,借助40 nm的優(yōu)勢以及成熟的收發(fā)器和存儲器接口技術(shù),StratixⅣFPGA的系統(tǒng)帶寬達(dá)到了前所未有的水平,并具有優(yōu)異的信號完整性。其內(nèi)部包含182400個Combinational ALUT,13.9 Mbit RAM以及1288個嵌入式乘法器。硬件資源豐富,適合復(fù)雜算法及高速信號處理等對器件性能要求較高的場合。
將經(jīng)過本文算法處理后的視頻圖像與常規(guī)壓縮算法的處理效果進(jìn)行比較,在常規(guī)壓縮算法中,常規(guī)視頻壓縮算法主要保留圖像的低頻部分,高頻部分采用較大的量化步長,本次對比實(shí)驗(yàn)中常規(guī)壓縮算法中低頻量化步長仍采用16,高頻部分的量化步長采用32,處理后的效果如圖4所示,從局部放大圖中可以看出,采用常規(guī)的壓縮算法解壓縮后目標(biāo)物丟失,僅保留圖像中的低頻細(xì)節(jié),而采用本文算法解壓縮后目標(biāo)物保留完好,壓縮比經(jīng)計(jì)算在10倍左右。程序編譯后硬件資源占用如表1所示,可以看出資源占用較少。TimeQuest時序仿真結(jié)果顯示最高流水處理速度可達(dá)150 MHz以上,即對于高分辨力視頻1600×1200處理速度可達(dá)50 f/s(幀/秒)以上,實(shí)現(xiàn)了對高分辨力圖像的實(shí)時處理。
圖4 壓縮前后數(shù)據(jù)對比
表1 FPGA硬件資源
本文針對雷達(dá)視頻壓縮處理過程中數(shù)據(jù)量大、目標(biāo)信息分布在圖像高頻部分的特點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了基于FPGA的高分辨力雷達(dá)視頻實(shí)時壓縮方案,在視頻壓縮時對高頻細(xì)節(jié)分量和低頻細(xì)節(jié)部分采用不同的量化步長進(jìn)行壓縮,在保證壓縮質(zhì)量的同時,較好地保留了雷達(dá)中的目標(biāo)物,且壓縮后圖像質(zhì)量較好,對高分辨力視頻處理速度達(dá)到了50 f/s,可以較好地滿足高分辨力雷達(dá)視頻實(shí)時處理的要求。
[1]董鵬曙,盧浩,李俠.基于工控機(jī)結(jié)構(gòu)的雷達(dá)信號記錄儀的設(shè)計(jì)[J].現(xiàn)代雷達(dá),2003(10):15-17.
[2]韓菲.雷達(dá)視頻壓縮與解壓縮的硬件設(shè)計(jì)[J].艦船電子工程,2008(3):98-100.
[3]陳鵬,郭偉.小波多分辨力分解的雷達(dá)視頻壓縮研究[J].計(jì)算機(jī)工程與應(yīng)用,2005(21):83-85.
[4]韓文俊,任國強(qiáng),吳欽章.低碼率下實(shí)時高清視頻壓縮方案[J].電視技術(shù),2011,35(1):14-17.
[5]韓文俊,任國強(qiáng),吳欽章.基于TI C64x+內(nèi)核DSP的H.264壓縮關(guān)鍵模塊優(yōu)化[J].電視技術(shù),2010,34(3):28-30.
[6]韓文俊,任國強(qiáng),吳欽章.基于雙DSP的實(shí)時高清H.264視頻編碼器實(shí)現(xiàn)[J].電視技術(shù),2010,34(5):33-35.
[7]ISO CD 10918:Digital compression and coding of continuous-tone still images[S].1991.
[8]WATSON A.Image compression using the discrete cosine transform[J].Mathematia Journal,1994,4(1):81-88.
[9]HUFFMAN D A.A method for the construction of minimum-redundancy codes[J]Proc.IRE,1952,40(9):1098-1101.