91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » D S P

多核處理器構架的高速JPEG解碼算法

發布時間:2008/5/26 0:00:00 訪問次數:907

        

    

    

    作者:電子科技大學 章承科

    

    摘 要:實現基于多核處理器構架的jpeg解碼算法;通過將jpeg算法并行化,在多個處理器核上并行處理,并針對多核處理囂構架進行內存讀取等方面的優化,可極大地提高jpeg解碼算法的解碼速度。實測表明,在4核集成的多核處理器上,jpeg圖像的平均解碼周期為單核處理器上的28%左右。

    

    jpeg(joint photographlc experts group)是一個適用范圍很廣的靜態圖像數據壓縮標準,目前廣泛應用于照相機、打印機等方面的圖像處理。在這些應用中,設計出一個高速高效的jpeg***已經成為一個重要的研究方向。隨著對嵌入式系統實時性、高性能和可擴展性要求的提高,多核(multi—core)嵌入式處理器的應用場合日益增多。

    

    1 jpeg解碼算法原理

    

    jpeg壓縮是一種有損壓縮。它利用人的視角系統特性,使用量化和無損壓縮編碼相結合的方式去掉視角的冗余信息和數據本身的冗余信息來達到壓縮的目的。jpeg算法可分為基本jpeg(baseline system)和擴展jpeg(extended system)。其中baseline system應用尤其廣泛。本文主要討論baseline system的解碼。jpeg解碼算法框圖如圖1所示。

    

    

    (1)顏色空間變換

    

    jpeg算法本身與顏色空間無關,因此“rgb到yuv變換”和“yuv到rgb變換”不包含在jpeg算法中。但由于作為輸出的位圖數據一般要求rgb的表示,所以將顏色空間變換也表示在算法框圖中。

    

    (2)jpeg的編解碼單元

    

    在jpeg中,對于圖像的編解碼是分塊進行的。整個圖像被劃分為若干個8×8的數據塊,稱為最小編碼單元(mcu),每一個塊對應于原圖像的一個8×8的像素陣列; 各行的編解碼順序是從上到下,行內的編解碼順序是從左到右。

    

    值得注意的是,由于一幅圖像的高和寬不一定是mcu尺寸的整數倍,因此需要對圖像的最右邊一列或其最下邊一行進行填充,擴展其高或寬,使得可以將整個圖像劃分為整數個mcu;而在解碼輸出時,這些復制的行列是要被拋棄的。

    

    (3)熵***

    

    在jpeg的熵編碼時,首先利用空間相關性對各塊的直流值采用差分編碼,即對相鄰塊之間的直流差值編碼,以達到壓縮碼長的目的。然后對于交流部分以zigzag方式掃描塊中的元素,對塊內元素采用先游程編碼后哈夫曼編碼的混合編碼方式,得到一維二進制塊碼流。熵編碼過程是由直流部分的差分編碼和交流部分的zigzag掃描、游程編碼、哈夫曼編碼組成。而相應的熵解碼過程是編碼的逆過程,在解碼端接收到的是由變長碼(vlc)和變長整數(vli)組成的數據流。為了從此數據流中恢復編碼前的dct系數,必須根據哈夫曼編碼的原理及其各級碼表生成的細節,生成哈夫曼解碼表,再根據解碼算法來恢復dct的直流和交流系數。

    

    (4)反量化

    

    在jpeg解碼端要利用發送過來的量化表對量化值進行譯碼。jpeg文件里一般含有兩個量化表:一個亮度分量的量化表,一個色度分量的量化表。反量化就是對熵解碼出來的系數矩陣乘上相應的量化矩陣:

    

    

    

    其中,c(u,v)代表熵解碼輸出,q(u,v)代表相應的量化矩陣。

    

    (5)idct。變換

    

    jpeg解碼算法能否滿足實時應用,關鍵在于8×8的二維idct的計算速度。在編碼階段,正向離散余弦變換(fdct)把空間域表示的圖變換成頻率域表示的圖;相應地在解碼階段,逆向離散余弦變換(idct)將頻率域表示的圖變換為空間域表示的圖。

    

    在idct的實現上,目前有多種算法。傳統的方法是行-列法,即先對每行(列)進行一維idct計算,再對每列(行)進行一維idct計算。還有多項式變換法和三角函數公式法,這兩種方法的加法次數與行-列法相當,乘法次數僅為

        

    

    

    作者:電子科技大學 章承科

    

    摘 要:實現基于多核處理器構架的jpeg解碼算法;通過將jpeg算法并行化,在多個處理器核上并行處理,并針對多核處理囂構架進行內存讀取等方面的優化,可極大地提高jpeg解碼算法的解碼速度。實測表明,在4核集成的多核處理器上,jpeg圖像的平均解碼周期為單核處理器上的28%左右。

    

    jpeg(joint photographlc experts group)是一個適用范圍很廣的靜態圖像數據壓縮標準,目前廣泛應用于照相機、打印機等方面的圖像處理。在這些應用中,設計出一個高速高效的jpeg***已經成為一個重要的研究方向。隨著對嵌入式系統實時性、高性能和可擴展性要求的提高,多核(multi—core)嵌入式處理器的應用場合日益增多。

    

    1 jpeg解碼算法原理

    

    jpeg壓縮是一種有損壓縮。它利用人的視角系統特性,使用量化和無損壓縮編碼相結合的方式去掉視角的冗余信息和數據本身的冗余信息來達到壓縮的目的。jpeg算法可分為基本jpeg(baseline system)和擴展jpeg(extended system)。其中baseline system應用尤其廣泛。本文主要討論baseline system的解碼。jpeg解碼算法框圖如圖1所示。

    

    

    (1)顏色空間變換

    

    jpeg算法本身與顏色空間無關,因此“rgb到yuv變換”和“yuv到rgb變換”不包含在jpeg算法中。但由于作為輸出的位圖數據一般要求rgb的表示,所以將顏色空間變換也表示在算法框圖中。

    

    (2)jpeg的編解碼單元

    

    在jpeg中,對于圖像的編解碼是分塊進行的。整個圖像被劃分為若干個8×8的數據塊,稱為最小編碼單元(mcu),每一個塊對應于原圖像的一個8×8的像素陣列; 各行的編解碼順序是從上到下,行內的編解碼順序是從左到右。

    

    值得注意的是,由于一幅圖像的高和寬不一定是mcu尺寸的整數倍,因此需要對圖像的最右邊一列或其最下邊一行進行填充,擴展其高或寬,使得可以將整個圖像劃分為整數個mcu;而在解碼輸出時,這些復制的行列是要被拋棄的。

    

    (3)熵***

    

    在jpeg的熵編碼時,首先利用空間相關性對各塊的直流值采用差分編碼,即對相鄰塊之間的直流差值編碼,以達到壓縮碼長的目的。然后對于交流部分以zigzag方式掃描塊中的元素,對塊內元素采用先游程編碼后哈夫曼編碼的混合編碼方式,得到一維二進制塊碼流。熵編碼過程是由直流部分的差分編碼和交流部分的zigzag掃描、游程編碼、哈夫曼編碼組成。而相應的熵解碼過程是編碼的逆過程,在解碼端接收到的是由變長碼(vlc)和變長整數(vli)組成的數據流。為了從此數據流中恢復編碼前的dct系數,必須根據哈夫曼編碼的原理及其各級碼表生成的細節,生成哈夫曼解碼表,再根據解碼算法來恢復dct的直流和交流系數。

    

    (4)反量化

    

    在jpeg解碼端要利用發送過來的量化表對量化值進行譯碼。jpeg文件里一般含有兩個量化表:一個亮度分量的量化表,一個色度分量的量化表。反量化就是對熵解碼出來的系數矩陣乘上相應的量化矩陣:

    

    

    

    其中,c(u,v)代表熵解碼輸出,q(u,v)代表相應的量化矩陣。

    

    (5)idct。變換

    

    jpeg解碼算法能否滿足實時應用,關鍵在于8×8的二維idct的計算速度。在編碼階段,正向離散余弦變換(fdct)把空間域表示的圖變換成頻率域表示的圖;相應地在解碼階段,逆向離散余弦變換(idct)將頻率域表示的圖變換為空間域表示的圖。

    

    在idct的實現上,目前有多種算法。傳統的方法是行-列法,即先對每行(列)進行一維idct計算,再對每列(行)進行一維idct計算。還有多項式變換法和三角函數公式法,這兩種方法的加法次數與行-列法相當,乘法次數僅為

相關IC型號

熱門點擊

 

推薦技術資料

業余條件下PCM2702
    PGM2702采用SSOP28封裝,引腳小而密,EP3... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
中阳县| 元氏县| 周宁县| 建瓯市| 锡林浩特市| 广昌县| 神木县| 灌阳县| 车致| 高雄县| 田林县| 万山特区| 应城市| 乌兰浩特市| 广灵县| 辽宁省| 淮阳县| 德惠市| 满城县| 南安市| 蒲江县| 安吉县| 周口市| 连平县| 花莲县| 景泰县| 德兴市| 曲松县| 磐安县| 扶风县| 拉孜县| 黄山市| 民县| 忻城县| 德阳市| 天峻县| 双峰县| 安岳县| 舒兰市| 富阳市| 宁远县|