《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于DSP的數(shù)字圖像采集,、壓縮系統(tǒng)的設(shè)計與實現(xiàn)
基于DSP的數(shù)字圖像采集,、壓縮系統(tǒng)的設(shè)計與實現(xiàn)
李世軍,黃 鋒,,屈喜龍,,郭照南
摘要: 一種基于高速數(shù)字信號處理器TMS320VC5410DSP和CPLD的圖像采集,、壓縮系統(tǒng),分析了系統(tǒng)設(shè)計時的各個關(guān)鍵技術(shù)環(huán)節(jié),,介紹了JPEG圖像編碼算法的DSP的實現(xiàn),,討論了圖像編碼中DCT變換的實現(xiàn)和優(yōu)化,利用DSP的乘法累加指令和雙字加/減法指令快速實現(xiàn)DCT,。
關(guān)鍵詞: DSP JPEG DCT變換
Abstract:
Key words :

  摘 要: 一種基于高速數(shù)字信號處理器TMS320VC5410DSP和CPLD的圖像采集,、壓縮系統(tǒng),分析了系統(tǒng)設(shè)計時的各個關(guān)鍵技術(shù)環(huán)節(jié),,介紹了JPEG圖像編碼算法的DSP的實現(xiàn),,討論了圖像編碼中DCT變換的實現(xiàn)和優(yōu)化,利用DSP的乘法累加指令和雙字加/減法指令快速實現(xiàn)DCT,。
 關(guān)鍵詞: DSP,;JPEG;DCT變換

 

  隨著計算機與圖像處理技術(shù)的日益發(fā)展,,研究圖像采集,、處理的實時實現(xiàn)具有重要的現(xiàn)實意義。而視頻圖像信號數(shù)據(jù)量較大,、信號較為復(fù)雜,,這就要求視頻圖像信號處理系統(tǒng)具有實時采集、大容量存儲和實時處理的特點,。傳統(tǒng)的數(shù)字圖像處理系統(tǒng)多采用計算機加軟件,、單片機或?qū)S肈SP等來實現(xiàn)。這些方法有的處理速度較慢,,無法滿足現(xiàn)代圖像處理系統(tǒng)的實時性要求,;有的專業(yè)性太強,應(yīng)用受限制,?;谝陨细鞣矫娴目紤],本文提出一種基于DSP和CPLD的視頻圖像采集,、壓縮系統(tǒng),。JPEG算法是一種數(shù)字圖像壓縮編碼算法,具有壓縮比例高,、失真小的特點,,并已被確定為國際標(biāo)準(zhǔn)[1]。該標(biāo)準(zhǔn)被廣泛應(yīng)用于數(shù)碼相機,、監(jiān)視系統(tǒng),、手機、可視電話等諸多方面。而實現(xiàn)JPEG算法一般有3種, 即純軟件實現(xiàn)法,、專用集成電路實現(xiàn)法及基于DSP的軟硬件綜合實現(xiàn)法,。純軟件實現(xiàn)法一般依賴PC機的支持,不適應(yīng)嵌入式應(yīng)用需要,;專用集成電路實現(xiàn)法實時性好,,但靈活性以及可擴展性差;用DSP編程實現(xiàn)JPEG,,其算法靈活,滿足嵌入式應(yīng)用需要,具有較好的交互能力,,并且具有很好的可擴展性,、可升級性和易維護性。
1 系統(tǒng)硬件設(shè)計
選用TMS320VC5410DSP芯片作為系統(tǒng)主處理器,,CPLD為協(xié)處理器,。該嵌入式系統(tǒng)能完成視頻圖像信號的采集、處理,、壓縮編碼,、存儲等一系列功能。構(gòu)建的圖像處理系統(tǒng)由主處理器TMS320C5410DSP,、1片256 K×16 bit Flash,、2片4 M×16 bit SDRAM、外部存儲器接口EMIF(External Memory Interface)和其他通用外設(shè)接口,,如RS-232,、音頻接口等組成。另外采集模塊主要由視頻解碼A/D芯片,、采集和顯示時序控制芯片IspLSI2064CPLD等[2]組成,。系統(tǒng)結(jié)構(gòu)原理如圖1所示。

 


(1)CCD攝像頭用來采集模擬視頻圖像數(shù)據(jù),。
(2)視頻解碼A/D芯片Philips SAA7113將模擬視頻電視信號(本系統(tǒng)PAL制)數(shù)字化,。輸出為符合CCIR.601標(biāo)準(zhǔn)的數(shù)字視頻碼流。
(3)FIFO AL422B作為A/D與VC5416DSP之間的數(shù)據(jù)緩沖,使A/D的轉(zhuǎn)換速度與DSP讀取A/D數(shù)據(jù)的速度匹配,。
(4)TMS320C5410 DSP為主處理器,,實現(xiàn)對視頻數(shù)據(jù)的壓縮編碼處理。在存儲FIFO,、存儲SDRAM和壓縮碼流輸出SDRAM采用DMA方式進行數(shù)據(jù)傳輸,,可以提高數(shù)據(jù)傳輸?shù)乃俾省?br /> (5)CPLD采用Laitiice公司的IspLSI2064VE為系統(tǒng)協(xié)處理器,作為視頻A/D對FIFO進行寫操作,DSP對FIFO進行讀操作的時序控制,。
(6)Flash 采用芯片256 K×16 bit的AM29LV400B,,用于DSP上電或復(fù)位后的程序加載。
(7)SDRAM作為DSP的片外擴展存儲器,用于存儲A/D的圖像數(shù)據(jù),、中間過程的部分?jǐn)?shù)據(jù)以及壓縮后的圖像數(shù)據(jù),。選用了4片ISSI公司的4 M×16 bit SDRAM芯片IS42S16400,構(gòu)成了一個8 M×32 bit的外部存儲器,。
1.1 圖像采集與存儲關(guān)鍵問題與解訣方法
本設(shè)計中解碼CCD攝像頭的模擬視頻信號采用專用的模擬視頻信號解碼器SAA71113,。SAA71113視頻解碼器是雙通道模擬預(yù)處理電路、自動鉗位和增益控制電路,、時鐘產(chǎn)生電路,、數(shù)字多標(biāo)準(zhǔn)解碼器、亮度/對比度/飽和度控制電路,、彩色空間矩陣的組合,,是一款功能完善的視頻處理器。SAA71113只需要單一的3.3 V電源供電,,與DSP的I/O電壓一致,。SAA71113A接收CVBS(復(fù)合視頻)或S-video模擬視頻輸入,可以自動將PAL,、SECAM,、NTSC模式的彩色視頻信號解碼為CCIR-60l/656兼容的彩色數(shù)字分量值,器件功能通過I2C接口控制,。這樣圖像采集過程可以全部在后臺完成,,基本上不需要CPU的干預(yù),可以節(jié)約大量的CPU時間,。但是這樣設(shè)計有一個難點:由模擬視頻信號解碼得出的數(shù)字視頻信號數(shù)據(jù)量非常大,,而且由于是實時視頻信號,所以數(shù)據(jù)輸出速率也非常高,,但是DSP外部存儲器接口的讀出速率卻比較慢,。為了解決這個問題,本設(shè)計采取高速FIFO對數(shù)據(jù)進行暫存以緩解速度上的差異,,即采用FIFO來暫存10行圖像數(shù)據(jù),,視頻解碼器直接向FIFO中寫入圖像數(shù)據(jù)。當(dāng)FIFO中寫入了10行圖像數(shù)據(jù)后,,由CPLD向DSP發(fā)出中斷INT0請求,;同時,DSP接到中斷請求后,,啟動DMA方式將10行圖像數(shù)據(jù)從FIFO中讀入到其外部SDRAM中存放,。這樣在采集的同時,DSP就可以讀取已采集的10行數(shù)據(jù),,而不必等待一幀圖像數(shù)據(jù)采集完成,,從而提高了DSP的處理效率。CPLD主要控制解碼器向FIFO中寫入數(shù)據(jù)以及DSP從FIFO中讀出數(shù)據(jù)。系統(tǒng)可以采集到一幀圖像的尺寸為640(點/行)×480(行),,從SA71113輸出的是4:2:2的YcrCb數(shù)據(jù)格式,,一個像素用2個字節(jié)表示,一個字節(jié)表示Y,,另一個字節(jié)為Cb和Cr,,總的數(shù)據(jù)量為640×480×2=600 KB。對于亮度信號,,每個像素Y占1B,,一行共640 B,用640個存儲單元存儲一行的Y數(shù)據(jù),。對于色度信號Cb,,一行共640點,每兩個像素共用一個色度信號Cb,,占1 B,,共320 B,,用320個字節(jié)單元存放一行的數(shù)據(jù),。對于色度信號Cr,存儲格式與Cb一樣,。這樣一幀圖像數(shù)據(jù)需要的的緩沖區(qū)大小為:640×480+320×480×2=600 KB,。因此系統(tǒng)中對此擴展了8 M×32 bit的SDRAM,而且用了具有3 Mbit緩沖的FIFO[3,,5],。
2 JPEG壓縮編碼流程與優(yōu)化實現(xiàn)
JPEG壓縮編碼主要由圖像數(shù)據(jù)分塊、DCT變換,、量化,、Huffman編碼4個步驟[4]。先將原始YcbCr空間的二維圖像分成8×8的數(shù)據(jù)塊,,然后將各數(shù)據(jù)塊按從左到右,、從上到下的順序分別進行DCT變換、量化,、“之”字型(Zig-Zag)掃描和Huffman編碼(量化和Huffman編碼分別需要量化表和Huffman表的支持),其中DCT變換是JPEG算法的關(guān)鍵部分,。
 DCT變換的快慢決定了整個JPEG算法的速度。8×8數(shù)據(jù)塊的DCT計算有直接計算法和行列法兩大類,,但直接計算法較復(fù)雜,,占用更多的DSP資源,因此一般使用行列法,,將8×8數(shù)據(jù)塊的DCT計算轉(zhuǎn)換為16次一維8點DCT計算,,只要提高一維DCT的運算速度就可以提高二維DCT的運算速度。本文應(yīng)用一種基于DSP乘法累加單元的DCT快速算法,DSP都具有乘法累加/減單元,,能在單周期內(nèi)完成1次乘法運算和1次累加運算[4],。VC5410DSP具有多條乘法累加指令,其中2條雙操作數(shù)乘法累加指令如表1所列,。

 


表1中2條指令都能在單周期內(nèi)完成讀出2個操作數(shù),、2個操作數(shù)相乘及乘法運算結(jié)果,與源累加器相加后送給目的累加器不同的是,,第二條指令能將加法結(jié)果四舍五入后再送給目的累加器,,可見這2條指令的功能非常強大。引入DCT計算,,將大大簡化程序的復(fù)雜度,,并減少DCT的時間。
(1)二維DCT正變換
二維DCT正變換的公式如下(8×8):
 

  將以上二維變換分解為一系列一維變換(行,,列)進行計算,。即:

  從上述表達(dá)式可以看出,Y0~Y7都是乘法累加運算,,而S0~S7可由x0~x7經(jīng)過蝶形運算得到,。因此將DCT算法分成兩級運算,即第一級蝶形運算,,第二級乘法累加運算,,減少了運算級數(shù),也就減少了中間數(shù)據(jù)的存,、取時間,。這樣利用DSP的專用指令乘累加運算大大優(yōu)化了DCT算法[4,5],。
(2)8點DCT的DSP實現(xiàn)
第一級運算包括4個蝶形運算,,每個蝶形運算包括1次加法運算和1次減法運算,可以采用DSP的雙字加減法指令,。例如計算(x0+x7),、(x0-x7)、(x1+x6)及(x1-x6)的程序段,,需要如下5條指令:
    DLD      *AR2+0,,B      ;取x0,、x1
    DADD     *AR3,,B,A     ,;計算(x0+x7),、(x1+x6)
    DSTA,,   *AR4+          ;存儲(x0+x7),、(x1+x6)
    DSUB     *AR3-0,,B,A   ,;計算(x0-x7),、(x1-x6)
    DSTA,   *AR5-          ,;存儲(x0-x7),、(x1-x6)
故4個蝶形運算共需要10條指令。
計算一個DCT系數(shù)需要4次乘法累加運算和1次存儲操作,,共5條指令,,被乘數(shù)是蝶形運算結(jié)果,乘數(shù)是已知常數(shù)(事先計算好系數(shù)并存放在DSP的內(nèi)部存儲器中),。乘法累加運算的程序段如下:
MAC     *AR4+,,*AR5+0%,B,,A  ,;乘法累加
    MAC     *AR4+,*AR5+0%,,A     ,;乘法累加
    MAC     *AR4+,,*AR5+0%,,A     ;乘法累加
    MACR    *AR4+,,*AR5+0%,,A     ;乘法累加
    STHA,,  *AR2-0                ,;存儲結(jié)果
    其中,AR4,、AR5分別指向被乘數(shù)和乘數(shù),,累加器B事先被清零,因此,,第二級運算共需要40條指令,,計算一個8點DCT要50條指令,實際編程時還要加幾條輔助指令,,最后以54條指令和非常簡潔的程序結(jié)構(gòu)實現(xiàn)了8點DCT[4-7],。
本文以上述算法和流程為基礎(chǔ),,設(shè)計了基于DSP實現(xiàn)JPEG的編碼算法,并進行了優(yōu)化,。與基于ASIC的方法相比,,本方案具有通用性強、靈活高效的特點,。圖2(CCS界面顯示)為采集的640×480×16 bit的本人彩色視頻頭像進行JPEG標(biāo)準(zhǔn)壓縮后復(fù)原的圖像,,相應(yīng)的壓縮編碼指標(biāo)在表2中列出。

 


  從上面的結(jié)果可以看出,,整個壓縮系統(tǒng)基本上可以實現(xiàn)對視頻圖像壓縮編碼,。對本算法進行適當(dāng)修改,可以應(yīng)用到數(shù)碼相機,、手機等多種嵌入式系統(tǒng)中,。同時,該壓縮系統(tǒng)可以通過PCI總線控制,,將壓縮后的碼流通過JPEG文件的形式傳輸給PC機,。另外,該壓縮系統(tǒng)可以成為一個通用的視頻圖像采集壓縮處理平臺,,在該平臺上可以實現(xiàn)JPEG2000,、H.264、MPEG-4等多種視頻壓縮,。


參考文獻
[1] PENNEBAKER W B,,MITCH1L J L.JPEG still image data compression standard.VNR 115 fifth Avenue,New York,,NY 10003,,1993.
[2] 劉政,葉漢民.CPLD在DSP多分辯率圖像采集系統(tǒng)中的應(yīng)用[J].微計算機信息,,2007(29).
[3] 馮琪,,裴海龍.視頻采集與實時傳輸系統(tǒng)的軟件實現(xiàn)方法研究[J].計算機應(yīng)用研究,2005(7).
[4] 齊美彬.基于DSP的視頻圖象壓縮系統(tǒng)的研究.合肥工業(yè)大學(xué)碩士學(xué)位論文,,2001.
[5] 王元中,,胡瑞繁.整數(shù)DCT變換中變換基的通用生成算法[J].中國圖像圖形學(xué)報,2008(6).
[6] 魯昌華,,石洪源.基于FPGA+DSP的實時圖像處理平臺的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,,2007(12).
[7] 須文波,陳玉萍.基于DSP圖像壓縮系統(tǒng)設(shè)計與算法研究[J].計算機工程與應(yīng)用,,2007(43).

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。