您的位置:網(wǎng)站首頁(yè) > 優(yōu)秀論文 > 正文
基于DSP的JPEG圖像壓縮的設(shè)計(jì)與實(shí)現(xiàn)
作者:陳婷來(lái)源:原創(chuàng)日期:2012-07-04人氣:1087
JPEG算法是一種數(shù)字圖像壓縮編碼算法,具有壓縮比例高、失真小的特點(diǎn),并已被確定為國(guó)際標(biāo)準(zhǔn)[1]。該標(biāo)準(zhǔn)被廣泛應(yīng)用于數(shù)碼相機(jī)、監(jiān)視系統(tǒng)、手機(jī)、可視電話等等諸多方面。它的應(yīng)用與實(shí)現(xiàn)不僅限于PC機(jī),更多的則是基于嵌入式系統(tǒng)。嵌入式系統(tǒng)有其體積小、成本低、可靠性高、速度快、環(huán)境適應(yīng)性強(qiáng)等優(yōu)點(diǎn)。嵌入式編碼實(shí)現(xiàn)方式也比較多,有的采用專用集成芯片,有的基于FPGA,有的基于DSP,ARM。采用專用芯片的方式實(shí)現(xiàn)簡(jiǎn)單,技術(shù)成熟可靠,但靈活性以及可擴(kuò)展性差?;贔PGA的方式,壓縮算法純硬件實(shí)現(xiàn),并行處理速度高,可實(shí)現(xiàn)高速處理,但由于JPEG壓縮算法比較復(fù)雜,開發(fā)難度大些,費(fèi)時(shí)費(fèi)力?;谕ㄓ肈SP實(shí)現(xiàn)方式優(yōu)點(diǎn)是:靈活性強(qiáng),能滿足特殊處理需求,具有很好的可擴(kuò)展性、可升級(jí)性和易維護(hù)性。
二、系統(tǒng)硬件設(shè)計(jì)
考慮到系統(tǒng)的二次開發(fā)性本系統(tǒng)采用DSP開發(fā)方案,選用TMS320C6713芯片作為系統(tǒng)主處理器,該嵌入式系統(tǒng)能完成視頻圖像信號(hào)的采集、處理、壓縮、編碼、顯示、存儲(chǔ)等一系列功能。
本圖像處理系統(tǒng)由底板與子板兩部分組成,底板主要由DSP處理器TMS320C6713、一片256K×16bitFlash,四片4M×16bitSDRAM、外部存儲(chǔ)器接口EMIF(ExternalMemoryInterface)和其他通用外設(shè)接口如RS-232,音頻接口等組成。子板是在底板的EMIF上擴(kuò)展出來(lái)的,主要由視頻解碼A/D芯片、采集和顯示時(shí)序控制芯片CPLD等。整個(gè)系統(tǒng)的結(jié)構(gòu)原理如圖1所示。
(一)CCD攝像頭用來(lái)采集模擬視頻圖像數(shù)據(jù)。
(二)視頻解碼A/D芯片PhilipsSAA7113將模擬視頻電視信號(hào)(本系統(tǒng)PAL制)數(shù)字化。輸出為符合CCIR.601標(biāo)準(zhǔn)的數(shù)字視頻碼流。
(三)FIFOAL422B作為A/D與C6713DSP之間的數(shù)據(jù)緩沖,使A/D的轉(zhuǎn)換速度與DSP讀取A/D數(shù)據(jù)的速度匹配。
(四)TMS320C6713DSP為主處理器,實(shí)現(xiàn)對(duì)視頻數(shù)據(jù)的壓縮編碼處理。在存儲(chǔ)FIFO,存儲(chǔ)SDRAM和壓縮碼流輸出SDRAM采用DMA方式進(jìn)行數(shù)據(jù)傳輸,可以提高數(shù)據(jù)傳輸?shù)乃俾省?br />(五)SDRAM作為DSP的片外擴(kuò)展存儲(chǔ)器,用于存儲(chǔ)A/D的圖像數(shù)據(jù),中間過程的部分?jǐn)?shù)據(jù)以及壓縮后的圖像數(shù)據(jù)。選用了4片ISSI公司的4M×16bitSDRAM芯片IS42S16400,構(gòu)成了一個(gè)8M×32bit的外部存儲(chǔ)器。映射到DSP的CE0存儲(chǔ)空間。
(六)Flash采用芯片256K×16bit的AM29LV400B,用于DSP上電或復(fù)位后的程序加載。
(七)CPLD采用Laitiice公司的LC4821V,作為視頻A/D對(duì)FIFO進(jìn)行寫操作,DSP對(duì)FIFO進(jìn)行讀操作的時(shí)序控制。
圖像采集與存儲(chǔ)關(guān)鍵問題與解決方法:
本設(shè)計(jì)中解碼CCD攝像頭的模擬視頻信號(hào)是采用專用的模擬視頻信號(hào)解碼器SAA71113,SAA71l13視頻解碼器是雙通道模擬預(yù)處理電路、自動(dòng)鉗位和增益控制電路、時(shí)鐘產(chǎn)生電路、數(shù)字多標(biāo)準(zhǔn)解碼器、亮度/對(duì)比度/飽和度控制電路、彩色空間矩陣的組合,是一款功能完善的視頻處理器。SAA711l3只需要單一的3.3V電源供電,與C6713的I/O電壓一致。
SAA7113A接收CVBS(復(fù)合視頻)或S-video模擬視頻輸入,可以自動(dòng)將PAL、SECAM、NTSC模式的彩色視頻信號(hào)解碼為CCIR-60l/656兼容的彩色數(shù)字分量值,器件功能通過I2C接口控制。圖像采集過程可以全部在后臺(tái)完成,基本上不需要CPU的干預(yù),可以節(jié)約大量的CPU時(shí)間。但是這樣設(shè)計(jì)有一個(gè)難點(diǎn):由模擬視頻信號(hào)解碼得出的數(shù)字視頻信號(hào)數(shù)據(jù)量非常大,而且由于是實(shí)時(shí)視頻信號(hào),所以數(shù)據(jù)輸出速率也非常高;但是相反,DSP外部存儲(chǔ)器接口的讀出速率卻比較慢。為了解決這個(gè)問題,本設(shè)計(jì)采取是高速FIFO,對(duì)數(shù)據(jù)進(jìn)行暫存以緩解速度上的差異,即采用FIFO來(lái)暫存10行圖像數(shù)據(jù),視頻解碼器直接向FIF0中寫入圖像數(shù)據(jù)。當(dāng)FIFO中寫入了10行圖像數(shù)據(jù)后,由CPLD向DSP發(fā)出中斷INT4請(qǐng)求;同時(shí),DSP接到中斷請(qǐng)求后,啟動(dòng)DMA方式將10行圖像數(shù)據(jù)從FIFO中讀入到其外部RAM中存放。這樣在采集的同時(shí),DSP就可以讀取已采集的10行數(shù)據(jù),而不必等待一幀圖像數(shù)據(jù)采集完成。這樣提高DSP的處理效率。CPLD主要控制解碼器向FIFO中寫入數(shù)據(jù)以及DSP從FIFO中讀出數(shù)據(jù)。
系統(tǒng)可以采集到一幀圖像的尺寸為320點(diǎn)/行*240行,從SA71113輸出的是4:2:2的YcrCb數(shù)據(jù)格式,一個(gè)像素用2個(gè)字節(jié)表示,一個(gè)字節(jié)表示Y,另一個(gè)字節(jié)為Cb和Cr,那么總的數(shù)據(jù)量為320×240×2=150KB。對(duì)于亮度信號(hào),每個(gè)像素Y占一個(gè)字節(jié),一行共320個(gè)字節(jié),用320個(gè)存儲(chǔ)單元存儲(chǔ)一行的Y數(shù)據(jù),對(duì)于色度信號(hào)Cb,一行共320點(diǎn),每?jī)蓚€(gè)像素共用一個(gè)色度信號(hào)Cb,占一個(gè)字節(jié),共160個(gè)字節(jié),用160個(gè)字節(jié)單元存放一行的數(shù)據(jù),對(duì)于色度信號(hào)Cr,存儲(chǔ)格式與Cb一樣。這樣一幀圖像數(shù)據(jù)需要的緩沖區(qū)大小為:320×240+160×240×2=150KB。對(duì)此選用了8M×32bit的SDRAM,而且選取用了具有3Mbit緩沖的FIFO。
三、JPEG壓縮編碼算法原理與實(shí)現(xiàn)
如圖2所示,JPEG壓縮編碼主要由預(yù)處理、DCT變換、量化、Huffman編碼等流程構(gòu)成。
JPEG壓縮編碼時(shí),需先將原始YcbCr空間的二維圖像分成8×8的數(shù)據(jù)塊,然后將各數(shù)據(jù)塊按從左到右,從上到下的順序分別進(jìn)行DCT變換、量化、“之”字型(Zig-Zag)掃描和Huffman編碼(量化和Huffman編碼分別需要量化表和Huffman表的支持)。
DCT優(yōu)化的實(shí)現(xiàn)
DCT變換的快慢決定了整個(gè)JPEG算法的速度。因此,采用了行列法來(lái)減少計(jì)算量。將8×8數(shù)據(jù)塊的DCT轉(zhuǎn)換為16次一維8點(diǎn)DCT變換,只要提高一維DCT的速度就可以提高二維DCT的速度。
二維DCT正變換的公式如下(8×8):
從上述表達(dá)式可以看出,Y0~Y7都是乘法累加運(yùn)算,而S0~S7可由x0~x7經(jīng)過蝶形運(yùn)算得到,因此將DCT算法分成兩級(jí)運(yùn)算,即第一級(jí)蝶形運(yùn)算,第二級(jí)乘法累加運(yùn)算,減少了運(yùn)算級(jí)數(shù),這樣利用DSP的專用指令乘累加運(yùn)算大大優(yōu)化了DCT算法。
四、結(jié)束語(yǔ)
本文以上述算法和流程為基礎(chǔ),設(shè)計(jì)以DSP的開發(fā)環(huán)境,實(shí)現(xiàn)JPEG的編碼算法,并進(jìn)行了優(yōu)化。與基于ASIC的方法相比,具有通用性強(qiáng)、靈活高效的特點(diǎn)。圖3為在dsp的CCS調(diào)試環(huán)境下,采用C和匯編混合編程,對(duì)采集的320*240*8位的灰度視頻圖像進(jìn)行JPEG標(biāo)準(zhǔn)壓縮后復(fù)原的圖像,相應(yīng)的壓縮編碼指標(biāo)在表1中列出。
從上面的結(jié)果可以看出,整個(gè)壓縮系統(tǒng)基本上可以實(shí)現(xiàn)對(duì)視頻圖像壓縮編碼。對(duì)本算法進(jìn)行適當(dāng)修改,可以應(yīng)用到數(shù)碼相機(jī),手機(jī)等多種嵌入式系統(tǒng)中。同時(shí),該壓縮系統(tǒng)可以通過PCI總線控制,將壓縮后的碼流通過JPEG文件的形式傳輸給PC機(jī)。另外,該壓縮系統(tǒng)可以成為一個(gè)通用的視頻圖像采集壓縮平臺(tái),在該平臺(tái)上可以實(shí)現(xiàn)JPEG2000,H.263,MPEG-2等多種多媒體壓縮標(biāo)準(zhǔn)。
二、系統(tǒng)硬件設(shè)計(jì)
考慮到系統(tǒng)的二次開發(fā)性本系統(tǒng)采用DSP開發(fā)方案,選用TMS320C6713芯片作為系統(tǒng)主處理器,該嵌入式系統(tǒng)能完成視頻圖像信號(hào)的采集、處理、壓縮、編碼、顯示、存儲(chǔ)等一系列功能。
本圖像處理系統(tǒng)由底板與子板兩部分組成,底板主要由DSP處理器TMS320C6713、一片256K×16bitFlash,四片4M×16bitSDRAM、外部存儲(chǔ)器接口EMIF(ExternalMemoryInterface)和其他通用外設(shè)接口如RS-232,音頻接口等組成。子板是在底板的EMIF上擴(kuò)展出來(lái)的,主要由視頻解碼A/D芯片、采集和顯示時(shí)序控制芯片CPLD等。整個(gè)系統(tǒng)的結(jié)構(gòu)原理如圖1所示。
(一)CCD攝像頭用來(lái)采集模擬視頻圖像數(shù)據(jù)。
(二)視頻解碼A/D芯片PhilipsSAA7113將模擬視頻電視信號(hào)(本系統(tǒng)PAL制)數(shù)字化。輸出為符合CCIR.601標(biāo)準(zhǔn)的數(shù)字視頻碼流。
(三)FIFOAL422B作為A/D與C6713DSP之間的數(shù)據(jù)緩沖,使A/D的轉(zhuǎn)換速度與DSP讀取A/D數(shù)據(jù)的速度匹配。
(四)TMS320C6713DSP為主處理器,實(shí)現(xiàn)對(duì)視頻數(shù)據(jù)的壓縮編碼處理。在存儲(chǔ)FIFO,存儲(chǔ)SDRAM和壓縮碼流輸出SDRAM采用DMA方式進(jìn)行數(shù)據(jù)傳輸,可以提高數(shù)據(jù)傳輸?shù)乃俾省?br />(五)SDRAM作為DSP的片外擴(kuò)展存儲(chǔ)器,用于存儲(chǔ)A/D的圖像數(shù)據(jù),中間過程的部分?jǐn)?shù)據(jù)以及壓縮后的圖像數(shù)據(jù)。選用了4片ISSI公司的4M×16bitSDRAM芯片IS42S16400,構(gòu)成了一個(gè)8M×32bit的外部存儲(chǔ)器。映射到DSP的CE0存儲(chǔ)空間。
(六)Flash采用芯片256K×16bit的AM29LV400B,用于DSP上電或復(fù)位后的程序加載。
(七)CPLD采用Laitiice公司的LC4821V,作為視頻A/D對(duì)FIFO進(jìn)行寫操作,DSP對(duì)FIFO進(jìn)行讀操作的時(shí)序控制。
圖像采集與存儲(chǔ)關(guān)鍵問題與解決方法:
本設(shè)計(jì)中解碼CCD攝像頭的模擬視頻信號(hào)是采用專用的模擬視頻信號(hào)解碼器SAA71113,SAA71l13視頻解碼器是雙通道模擬預(yù)處理電路、自動(dòng)鉗位和增益控制電路、時(shí)鐘產(chǎn)生電路、數(shù)字多標(biāo)準(zhǔn)解碼器、亮度/對(duì)比度/飽和度控制電路、彩色空間矩陣的組合,是一款功能完善的視頻處理器。SAA711l3只需要單一的3.3V電源供電,與C6713的I/O電壓一致。
SAA7113A接收CVBS(復(fù)合視頻)或S-video模擬視頻輸入,可以自動(dòng)將PAL、SECAM、NTSC模式的彩色視頻信號(hào)解碼為CCIR-60l/656兼容的彩色數(shù)字分量值,器件功能通過I2C接口控制。圖像采集過程可以全部在后臺(tái)完成,基本上不需要CPU的干預(yù),可以節(jié)約大量的CPU時(shí)間。但是這樣設(shè)計(jì)有一個(gè)難點(diǎn):由模擬視頻信號(hào)解碼得出的數(shù)字視頻信號(hào)數(shù)據(jù)量非常大,而且由于是實(shí)時(shí)視頻信號(hào),所以數(shù)據(jù)輸出速率也非常高;但是相反,DSP外部存儲(chǔ)器接口的讀出速率卻比較慢。為了解決這個(gè)問題,本設(shè)計(jì)采取是高速FIFO,對(duì)數(shù)據(jù)進(jìn)行暫存以緩解速度上的差異,即采用FIFO來(lái)暫存10行圖像數(shù)據(jù),視頻解碼器直接向FIF0中寫入圖像數(shù)據(jù)。當(dāng)FIFO中寫入了10行圖像數(shù)據(jù)后,由CPLD向DSP發(fā)出中斷INT4請(qǐng)求;同時(shí),DSP接到中斷請(qǐng)求后,啟動(dòng)DMA方式將10行圖像數(shù)據(jù)從FIFO中讀入到其外部RAM中存放。這樣在采集的同時(shí),DSP就可以讀取已采集的10行數(shù)據(jù),而不必等待一幀圖像數(shù)據(jù)采集完成。這樣提高DSP的處理效率。CPLD主要控制解碼器向FIFO中寫入數(shù)據(jù)以及DSP從FIFO中讀出數(shù)據(jù)。
系統(tǒng)可以采集到一幀圖像的尺寸為320點(diǎn)/行*240行,從SA71113輸出的是4:2:2的YcrCb數(shù)據(jù)格式,一個(gè)像素用2個(gè)字節(jié)表示,一個(gè)字節(jié)表示Y,另一個(gè)字節(jié)為Cb和Cr,那么總的數(shù)據(jù)量為320×240×2=150KB。對(duì)于亮度信號(hào),每個(gè)像素Y占一個(gè)字節(jié),一行共320個(gè)字節(jié),用320個(gè)存儲(chǔ)單元存儲(chǔ)一行的Y數(shù)據(jù),對(duì)于色度信號(hào)Cb,一行共320點(diǎn),每?jī)蓚€(gè)像素共用一個(gè)色度信號(hào)Cb,占一個(gè)字節(jié),共160個(gè)字節(jié),用160個(gè)字節(jié)單元存放一行的數(shù)據(jù),對(duì)于色度信號(hào)Cr,存儲(chǔ)格式與Cb一樣。這樣一幀圖像數(shù)據(jù)需要的緩沖區(qū)大小為:320×240+160×240×2=150KB。對(duì)此選用了8M×32bit的SDRAM,而且選取用了具有3Mbit緩沖的FIFO。
三、JPEG壓縮編碼算法原理與實(shí)現(xiàn)
如圖2所示,JPEG壓縮編碼主要由預(yù)處理、DCT變換、量化、Huffman編碼等流程構(gòu)成。
JPEG壓縮編碼時(shí),需先將原始YcbCr空間的二維圖像分成8×8的數(shù)據(jù)塊,然后將各數(shù)據(jù)塊按從左到右,從上到下的順序分別進(jìn)行DCT變換、量化、“之”字型(Zig-Zag)掃描和Huffman編碼(量化和Huffman編碼分別需要量化表和Huffman表的支持)。
DCT優(yōu)化的實(shí)現(xiàn)
DCT變換的快慢決定了整個(gè)JPEG算法的速度。因此,采用了行列法來(lái)減少計(jì)算量。將8×8數(shù)據(jù)塊的DCT轉(zhuǎn)換為16次一維8點(diǎn)DCT變換,只要提高一維DCT的速度就可以提高二維DCT的速度。
二維DCT正變換的公式如下(8×8):
從上述表達(dá)式可以看出,Y0~Y7都是乘法累加運(yùn)算,而S0~S7可由x0~x7經(jīng)過蝶形運(yùn)算得到,因此將DCT算法分成兩級(jí)運(yùn)算,即第一級(jí)蝶形運(yùn)算,第二級(jí)乘法累加運(yùn)算,減少了運(yùn)算級(jí)數(shù),這樣利用DSP的專用指令乘累加運(yùn)算大大優(yōu)化了DCT算法。
四、結(jié)束語(yǔ)
本文以上述算法和流程為基礎(chǔ),設(shè)計(jì)以DSP的開發(fā)環(huán)境,實(shí)現(xiàn)JPEG的編碼算法,并進(jìn)行了優(yōu)化。與基于ASIC的方法相比,具有通用性強(qiáng)、靈活高效的特點(diǎn)。圖3為在dsp的CCS調(diào)試環(huán)境下,采用C和匯編混合編程,對(duì)采集的320*240*8位的灰度視頻圖像進(jìn)行JPEG標(biāo)準(zhǔn)壓縮后復(fù)原的圖像,相應(yīng)的壓縮編碼指標(biāo)在表1中列出。
從上面的結(jié)果可以看出,整個(gè)壓縮系統(tǒng)基本上可以實(shí)現(xiàn)對(duì)視頻圖像壓縮編碼。對(duì)本算法進(jìn)行適當(dāng)修改,可以應(yīng)用到數(shù)碼相機(jī),手機(jī)等多種嵌入式系統(tǒng)中。同時(shí),該壓縮系統(tǒng)可以通過PCI總線控制,將壓縮后的碼流通過JPEG文件的形式傳輸給PC機(jī)。另外,該壓縮系統(tǒng)可以成為一個(gè)通用的視頻圖像采集壓縮平臺(tái),在該平臺(tái)上可以實(shí)現(xiàn)JPEG2000,H.263,MPEG-2等多種多媒體壓縮標(biāo)準(zhǔn)。
欄目分類
熱門排行
推薦信息
- 光伏制氫摻入天然氣燃燒可行性研究
- 纖維素基摩擦納米發(fā)電機(jī)的制備及其在人機(jī)交互與能源收集中的應(yīng)用研究
- 工業(yè)機(jī)器人技術(shù)在自動(dòng)化控制領(lǐng)域中的應(yīng)用
- 創(chuàng)造低碳舒適家居的追光導(dǎo)光儲(chǔ)能系統(tǒng)研究
- 靜電紡絲法制備納米復(fù)合纖維研究進(jìn)展
- 基于數(shù)字信號(hào)處理的無(wú)線傳輸系統(tǒng)優(yōu)化與技術(shù)突破
- 電氣工程推動(dòng)的未來(lái)技術(shù)革命
- 機(jī)床精度提升技術(shù)在機(jī)械工程中的應(yīng)用
- 5G通信技術(shù)在智能交通系統(tǒng)中的應(yīng)用研究
- 再論AI對(duì)人的異化
期刊知識(shí)
- 2025年中科院分區(qū)表已公布!Scientific Reports降至三區(qū)
- 官方認(rèn)定!CSSCI南大核心首批191家“青年學(xué)者友好期刊名單”
- 2023JCR影響因子正式公布!
- 國(guó)內(nèi)核心期刊分級(jí)情況概覽及說(shuō)明!本篇適用人群:需要發(fā)南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的學(xué)者
- 我用了一個(gè)很復(fù)雜的圖,幫你們解釋下“23版最新北大核心目錄有效期問題”。
- 重磅!CSSCI來(lái)源期刊(2023-2024版)最新期刊目錄看點(diǎn)分析!全網(wǎng)首發(fā)!
- CSSCI官方早就公布了最新南核目錄,有心的人已經(jīng)拿到并且投入使用!附南核目錄新增期刊!
- 北大核心期刊目錄換屆,我們應(yīng)該熟知的10個(gè)知識(shí)點(diǎn)。
- 注意,最新期刊論文格式標(biāo)準(zhǔn)已發(fā)布,論文寫作規(guī)則發(fā)生重大變化!文字版GB/T 7713.2—2022 學(xué)術(shù)論文編寫規(guī)則
- 盤點(diǎn)那些評(píng)職稱超管用的資源,1,3和5已經(jīng)“絕種”了