多核處理器構(gòu)架的高速JPEG解碼算法
發(fā)布時間:2008/5/26 0:00:00 訪問次數(shù):922
    
    
    作者:電子科技大學(xué) 章承科
    
    摘 要:實現(xiàn)基于多核處理器構(gòu)架的jpeg解碼算法;通過將jpeg算法并行化,在多個處理器核上并行處理,并針對多核處理囂構(gòu)架進(jìn)行內(nèi)存讀取等方面的優(yōu)化,可極大地提高jpeg解碼算法的解碼速度。實測表明,在4核集成的多核處理器上,jpeg圖像的平均解碼周期為單核處理器上的28%左右。
    
    jpeg(joint photographlc experts group)是一個適用范圍很廣的靜態(tài)圖像數(shù)據(jù)壓縮標(biāo)準(zhǔn),目前廣泛應(yīng)用于照相機、打印機等方面的圖像處理。在這些應(yīng)用中,設(shè)計出一個高速高效的jpeg***已經(jīng)成為一個重要的研究方向。隨著對嵌入式系統(tǒng)實時性、高性能和可擴展性要求的提高,多核(multi—core)嵌入式處理器的應(yīng)用場合日益增多。
    
    1 jpeg解碼算法原理
    
    jpeg壓縮是一種有損壓縮。它利用人的視角系統(tǒng)特性,使用量化和無損壓縮編碼相結(jié)合的方式去掉視角的冗余信息和數(shù)據(jù)本身的冗余信息來達(dá)到壓縮的目的。jpeg算法可分為基本jpeg(baseline system)和擴展jpeg(extended system)。其中baseline system應(yīng)用尤其廣泛。本文主要討論baseline system的解碼。jpeg解碼算法框圖如圖1所示。
    
    
    (1)顏色空間變換
    
    jpeg算法本身與顏色空間無關(guān),因此“rgb到y(tǒng)uv變換”和“yuv到rgb變換”不包含在jpeg算法中。但由于作為輸出的位圖數(shù)據(jù)一般要求rgb的表示,所以將顏色空間變換也表示在算法框圖中。
    
    (2)jpeg的編解碼單元
    
    在jpeg中,對于圖像的編解碼是分塊進(jìn)行的。整個圖像被劃分為若干個8×8的數(shù)據(jù)塊,稱為最小編碼單元(mcu),每一個塊對應(yīng)于原圖像的一個8×8的像素陣列; 各行的編解碼順序是從上到下,行內(nèi)的編解碼順序是從左到右。
    
    值得注意的是,由于一幅圖像的高和寬不一定是mcu尺寸的整數(shù)倍,因此需要對圖像的最右邊一列或其最下邊一行進(jìn)行填充,擴展其高或?qū),使得可以將整個圖像劃分為整數(shù)個mcu;而在解碼輸出時,這些復(fù)制的行列是要被拋棄的。
    
    (3)熵***
    
    在jpeg的熵編碼時,首先利用空間相關(guān)性對各塊的直流值采用差分編碼,即對相鄰塊之間的直流差值編碼,以達(dá)到壓縮碼長的目的。然后對于交流部分以zigzag方式掃描塊中的元素,對塊內(nèi)元素采用先游程編碼后哈夫曼編碼的混合編碼方式,得到一維二進(jìn)制塊碼流。熵編碼過程是由直流部分的差分編碼和交流部分的zigzag掃描、游程編碼、哈夫曼編碼組成。而相應(yīng)的熵解碼過程是編碼的逆過程,在解碼端接收到的是由變長碼(vlc)和變長整數(shù)(vli)組成的數(shù)據(jù)流。為了從此數(shù)據(jù)流中恢復(fù)編碼前的dct系數(shù),必須根據(jù)哈夫曼編碼的原理及其各級碼表生成的細(xì)節(jié),生成哈夫曼解碼表,再根據(jù)解碼算法來恢復(fù)dct的直流和交流系數(shù)。
    
    (4)反量化
    
    在jpeg解碼端要利用發(fā)送過來的量化表對量化值進(jìn)行譯碼。jpeg文件里一般含有兩個量化表:一個亮度分量的量化表,一個色度分量的量化表。反量化就是對熵解碼出來的系數(shù)矩陣乘上相應(yīng)的量化矩陣:
    
    
    
    其中,c(u,v)代表熵解碼輸出,q(u,v)代表相應(yīng)的量化矩陣。
    
    (5)idct。變換
    
    jpeg解碼算法能否滿足實時應(yīng)用,關(guān)鍵在于8×8的二維idct的計算速度。在編碼階段,正向離散余弦變換(fdct)把空間域表示的圖變換成頻率域表示的圖;相應(yīng)地在解碼階段,逆向離散余弦變換(idct)將頻率域表示的圖變換為空間域表示的圖。
    
    在idct的實現(xiàn)上,目前有多種算法。傳統(tǒng)的方法是行-列法,即先對每行(列)進(jìn)行一維idct計算,再對每列(行)進(jìn)行一維idct計算。還有多項式變換法和三角函數(shù)公式法,這兩種方法的加法次數(shù)與行-列法相當(dāng),乘法次數(shù)僅為
    
    
    作者:電子科技大學(xué) 章承科
    
    摘 要:實現(xiàn)基于多核處理器構(gòu)架的jpeg解碼算法;通過將jpeg算法并行化,在多個處理器核上并行處理,并針對多核處理囂構(gòu)架進(jìn)行內(nèi)存讀取等方面的優(yōu)化,可極大地提高jpeg解碼算法的解碼速度。實測表明,在4核集成的多核處理器上,jpeg圖像的平均解碼周期為單核處理器上的28%左右。
    
    jpeg(joint photographlc experts group)是一個適用范圍很廣的靜態(tài)圖像數(shù)據(jù)壓縮標(biāo)準(zhǔn),目前廣泛應(yīng)用于照相機、打印機等方面的圖像處理。在這些應(yīng)用中,設(shè)計出一個高速高效的jpeg***已經(jīng)成為一個重要的研究方向。隨著對嵌入式系統(tǒng)實時性、高性能和可擴展性要求的提高,多核(multi—core)嵌入式處理器的應(yīng)用場合日益增多。
    
    1 jpeg解碼算法原理
    
    jpeg壓縮是一種有損壓縮。它利用人的視角系統(tǒng)特性,使用量化和無損壓縮編碼相結(jié)合的方式去掉視角的冗余信息和數(shù)據(jù)本身的冗余信息來達(dá)到壓縮的目的。jpeg算法可分為基本jpeg(baseline system)和擴展jpeg(extended system)。其中baseline system應(yīng)用尤其廣泛。本文主要討論baseline system的解碼。jpeg解碼算法框圖如圖1所示。
    
    
    (1)顏色空間變換
    
    jpeg算法本身與顏色空間無關(guān),因此“rgb到y(tǒng)uv變換”和“yuv到rgb變換”不包含在jpeg算法中。但由于作為輸出的位圖數(shù)據(jù)一般要求rgb的表示,所以將顏色空間變換也表示在算法框圖中。
    
    (2)jpeg的編解碼單元
    
    在jpeg中,對于圖像的編解碼是分塊進(jìn)行的。整個圖像被劃分為若干個8×8的數(shù)據(jù)塊,稱為最小編碼單元(mcu),每一個塊對應(yīng)于原圖像的一個8×8的像素陣列; 各行的編解碼順序是從上到下,行內(nèi)的編解碼順序是從左到右。
    
    值得注意的是,由于一幅圖像的高和寬不一定是mcu尺寸的整數(shù)倍,因此需要對圖像的最右邊一列或其最下邊一行進(jìn)行填充,擴展其高或?qū),使得可以將整個圖像劃分為整數(shù)個mcu;而在解碼輸出時,這些復(fù)制的行列是要被拋棄的。
    
    (3)熵***
    
    在jpeg的熵編碼時,首先利用空間相關(guān)性對各塊的直流值采用差分編碼,即對相鄰塊之間的直流差值編碼,以達(dá)到壓縮碼長的目的。然后對于交流部分以zigzag方式掃描塊中的元素,對塊內(nèi)元素采用先游程編碼后哈夫曼編碼的混合編碼方式,得到一維二進(jìn)制塊碼流。熵編碼過程是由直流部分的差分編碼和交流部分的zigzag掃描、游程編碼、哈夫曼編碼組成。而相應(yīng)的熵解碼過程是編碼的逆過程,在解碼端接收到的是由變長碼(vlc)和變長整數(shù)(vli)組成的數(shù)據(jù)流。為了從此數(shù)據(jù)流中恢復(fù)編碼前的dct系數(shù),必須根據(jù)哈夫曼編碼的原理及其各級碼表生成的細(xì)節(jié),生成哈夫曼解碼表,再根據(jù)解碼算法來恢復(fù)dct的直流和交流系數(shù)。
    
    (4)反量化
    
    在jpeg解碼端要利用發(fā)送過來的量化表對量化值進(jìn)行譯碼。jpeg文件里一般含有兩個量化表:一個亮度分量的量化表,一個色度分量的量化表。反量化就是對熵解碼出來的系數(shù)矩陣乘上相應(yīng)的量化矩陣:
    
    
    
    其中,c(u,v)代表熵解碼輸出,q(u,v)代表相應(yīng)的量化矩陣。
    
    (5)idct。變換
    
    jpeg解碼算法能否滿足實時應(yīng)用,關(guān)鍵在于8×8的二維idct的計算速度。在編碼階段,正向離散余弦變換(fdct)把空間域表示的圖變換成頻率域表示的圖;相應(yīng)地在解碼階段,逆向離散余弦變換(idct)將頻率域表示的圖變換為空間域表示的圖。
    
    在idct的實現(xiàn)上,目前有多種算法。傳統(tǒng)的方法是行-列法,即先對每行(列)進(jìn)行一維idct計算,再對每列(行)進(jìn)行一維idct計算。還有多項式變換法和三角函數(shù)公式法,這兩種方法的加法次數(shù)與行-列法相當(dāng),乘法次數(shù)僅為
熱門點擊
- 外掛Flash的TMS320VC5409引導(dǎo)
- TMS320C54xDSP在線燒寫FLASH
- TI公司DSP產(chǎn)品相關(guān)FAQ整理
- ADSPTigerSHARC中利用查找表快速
- UPS逆變器控制方法比較分析
- 熱敏打印機與高速數(shù)字處理器DSP的接口應(yīng)用
- 基于Mumford-Shah模型的運動目標(biāo)檢
- Xilinx多媒體應(yīng)用高性能DSP方案
- 基于ADV202的JPEG2000圖像壓縮與
- TMS320F2812型數(shù)字信號處理器與PC
推薦技術(shù)資料
- 業(yè)余條件下PCM2702
- PGM2702采用SSOP28封裝,引腳小而密,EP3... [詳細(xì)]
- AMOLED顯示驅(qū)動芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計
- GB300 超級芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究