浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » D S P

二維DCT編碼的DSP實(shí)現(xiàn)與優(yōu)化

發(fā)布時(shí)間:2008/9/23 0:00:00 訪問次數(shù):833

  現(xiàn)今的圖像編碼標(biāo)準(zhǔn),一般采用紋理編碼方式對(duì)圖像進(jìn)行壓縮。這種方式極大的利用了圖像數(shù)據(jù)的空間相關(guān)性,使圖像數(shù)據(jù)的壓縮能夠達(dá)到很高的比率。它主要是利用數(shù)學(xué)變換的方法,使用極少量的離散信號(hào)來表示大量的時(shí)域連續(xù)信號(hào)[1]。常用的數(shù)學(xué)變換有很多種,比如離散傅立葉變換dft、沃爾什變換、哈爾變換、斜變換、離散余弦變換dct、離散正弦變換dst 、k-l變換等。其中,k-l變換為理想狀態(tài)下的最佳變換方法,但是,由于k-l變換沒有快速的變換算法,而dct、dft和dst都具有與k-l變換近似的良好性質(zhì),尤其是當(dāng)一階馬爾可夫過程相鄰元素相關(guān)系數(shù)ρ逼近1時(shí),dct的近似性能遠(yuǎn)遠(yuǎn)優(yōu)于其它兩者,并且dct變換有具體的快速算法。因此,圖像壓縮標(biāo)準(zhǔn)中,使用dct變換來實(shí)現(xiàn)紋理編碼。

  由于dct變換在各種編碼標(biāo)準(zhǔn)中要被反復(fù)調(diào)用,因此,其代碼執(zhí)行效率對(duì)實(shí)時(shí)視頻壓縮起著至關(guān)重要的作用[2]。實(shí)際應(yīng)用中,如何實(shí)現(xiàn)dct變換的編碼及如何用硬件電路實(shí)現(xiàn)這種編碼變換是使用者關(guān)心的問題[3]。本文將利用dsp實(shí)現(xiàn)圖像的二維dct變換并對(duì)其實(shí)行優(yōu)化。

  2 dct 變換

  1974年ahmed和rao首先給出二維dct 變換的數(shù)學(xué)表達(dá)式。該表達(dá)式適用于n點(diǎn)的dct定義,但是,由于mpeg編碼一般是把視頻圖像幀或圖片分為場(chǎng)、片、宏塊的結(jié)構(gòu),一幀圖像一般包括1-2場(chǎng),每場(chǎng)包括若干片,每片包括若干宏塊,為了方便處理,把每個(gè)宏快分成8×8的子塊,即dct處理的基本單元是8×8的子塊。因此,直接定義實(shí)用8點(diǎn)二維dct變換:

  其反變換為:

  其中 ,i,j,u,v=0,1…7.

  在(1)式中,把變換核分離可得兩次一維dct變換:

  因此,可以使用2次一維dct變換來實(shí)現(xiàn)二維dct變換。

  在該定義被提出以后,很多優(yōu)秀的算法也被提了出來。如chen,lee的快速dct算法等,loeffler 在1989年提出的實(shí)用快速dct算法共使用11次乘法和29次加法,該算法比起chen的算法快而且不會(huì)發(fā)生lee算法中的上溢問題,并且該算法被證明已經(jīng)達(dá)到了算法極限,是最優(yōu)秀的算法[4]。該算法如圖1,它把整個(gè)dct過程分成了四級(jí),第一級(jí)只有8次加法,第二級(jí)分為上下兩塊,上面是偶?jí)K,下面是奇塊,偶?jí)K有4次加法,奇塊有6次乘法和6次加法,第三級(jí)上面有5次加法3次乘法,下面有4次加法,第四級(jí)僅奇塊有2次乘法和2次加法。由圖1可見,奇數(shù)部分的第四級(jí)與第二級(jí)的計(jì)算構(gòu)成了連續(xù)的乘法,這種運(yùn)算實(shí)現(xiàn)的時(shí)間將增加實(shí)際的計(jì)算時(shí)間。故loeffler 提出了無乘法串行的并行計(jì)算方法,該方法使用了12次乘法和32次加法,這在具有并行的mac處理器的運(yùn)算中,并不增加實(shí)際的計(jì)算時(shí)間[1]。本文即采用這種dct算法實(shí)現(xiàn)圖像的壓縮與處理。

  3 dsp及其視頻指令

  我們使用adi的adsp-bf533ezlite評(píng)估板作為實(shí)驗(yàn)平臺(tái),該評(píng)估板使用最大內(nèi)部時(shí)鐘600m的bf533處理器。處理器內(nèi)核包括二個(gè)40位的alu,2個(gè)mac,4個(gè)視頻alu 及一個(gè)桶形移位寄存器。這種結(jié)構(gòu)使并行的視頻處理成為可能[5]。實(shí)驗(yàn)的軟件環(huán)境是visualdsp4.5,該環(huán)境集成了高性能c/c++編譯器,并且具有比普通c/c++編譯器更高效的代碼優(yōu)化功能。

  為了進(jìn)一步提高代碼效率,減少程序運(yùn)行時(shí)間和代碼空間,根據(jù)dsp硬件結(jié)構(gòu)及其指令的特點(diǎn),對(duì)代碼進(jìn)行匯編優(yōu)化。本文主要注重以下三方面的優(yōu)化。

  (1)利用高度并行的算術(shù)運(yùn)算單元和功能強(qiáng)大的地址運(yùn)算單元的相結(jié)合的特點(diǎn),使用高密度指令代碼進(jìn)行代碼優(yōu)化。

  blackfin的高度并行結(jié)構(gòu)能在計(jì)算的同時(shí)進(jìn)行數(shù)據(jù)的存儲(chǔ),如r5=r1+r5,r4=r1-r5 ||r1=w[p0+0x4](x);該指令使用兩個(gè)加法器同時(shí)計(jì)算出兩個(gè)32位的值r1+r5和r1-r5并把該結(jié)果分別存入到r5和r4中,此時(shí)占用的是算術(shù)運(yùn)算單元的兩條內(nèi)部總線一個(gè)指令周期時(shí)間,由于外部總線空閑,可以把外部cache中的數(shù)據(jù)送入到r1中。索引尋址和變址尋址相結(jié)合的模式使一個(gè)指令周期內(nèi)對(duì)不同塊的sdram訪問成為了可能,比如上面的指令可以加一條r4=[i2++]仍能正確執(zhí)行,而且不增加指令執(zhí)行時(shí)間,地址運(yùn)算單元dag還包括兩個(gè)用于嵌套零開銷循環(huán)的循環(huán)計(jì)數(shù)器以及支持傳輸過程中飽和的限幅的硬件。這些特性使得blackfin指令操作的效率很高。

 。2)利用有利于dct變換的操作數(shù)位尋址指令來優(yōu)化

  blackfin dsp指令集不僅支持一個(gè)周期最多3條指令的并發(fā)執(zhí)行,而且具有大量的像素操作和向量操作指令可以減少算法時(shí)間復(fù)雜度。位反轉(zhuǎn)指令對(duì)fft、dct、dft等數(shù)學(xué)變換的操作數(shù)尋址提供了方便,在變換之前它把輸入數(shù)組數(shù)據(jù)通過位變換的方式變換到易于處理的排列方式,減少了操作數(shù)尋址的時(shí)間。

  (3)利用ieee 1180 舍入指令來支持dct變換

  blackfin的加法指令支持預(yù)比例加減法,這種指令執(zhí)行的時(shí)間首先通過算術(shù)移位將兩個(gè)操作數(shù)變大或者變小后再

  現(xiàn)今的圖像編碼標(biāo)準(zhǔn),一般采用紋理編碼方式對(duì)圖像進(jìn)行壓縮。這種方式極大的利用了圖像數(shù)據(jù)的空間相關(guān)性,使圖像數(shù)據(jù)的壓縮能夠達(dá)到很高的比率。它主要是利用數(shù)學(xué)變換的方法,使用極少量的離散信號(hào)來表示大量的時(shí)域連續(xù)信號(hào)[1]。常用的數(shù)學(xué)變換有很多種,比如離散傅立葉變換dft、沃爾什變換、哈爾變換、斜變換、離散余弦變換dct、離散正弦變換dst 、k-l變換等。其中,k-l變換為理想狀態(tài)下的最佳變換方法,但是,由于k-l變換沒有快速的變換算法,而dct、dft和dst都具有與k-l變換近似的良好性質(zhì),尤其是當(dāng)一階馬爾可夫過程相鄰元素相關(guān)系數(shù)ρ逼近1時(shí),dct的近似性能遠(yuǎn)遠(yuǎn)優(yōu)于其它兩者,并且dct變換有具體的快速算法。因此,圖像壓縮標(biāo)準(zhǔn)中,使用dct變換來實(shí)現(xiàn)紋理編碼。

  由于dct變換在各種編碼標(biāo)準(zhǔn)中要被反復(fù)調(diào)用,因此,其代碼執(zhí)行效率對(duì)實(shí)時(shí)視頻壓縮起著至關(guān)重要的作用[2]。實(shí)際應(yīng)用中,如何實(shí)現(xiàn)dct變換的編碼及如何用硬件電路實(shí)現(xiàn)這種編碼變換是使用者關(guān)心的問題[3]。本文將利用dsp實(shí)現(xiàn)圖像的二維dct變換并對(duì)其實(shí)行優(yōu)化。

  2 dct 變換

  1974年ahmed和rao首先給出二維dct 變換的數(shù)學(xué)表達(dá)式。該表達(dá)式適用于n點(diǎn)的dct定義,但是,由于mpeg編碼一般是把視頻圖像幀或圖片分為場(chǎng)、片、宏塊的結(jié)構(gòu),一幀圖像一般包括1-2場(chǎng),每場(chǎng)包括若干片,每片包括若干宏塊,為了方便處理,把每個(gè)宏快分成8×8的子塊,即dct處理的基本單元是8×8的子塊。因此,直接定義實(shí)用8點(diǎn)二維dct變換:

  其反變換為:

  其中 ,i,j,u,v=0,1…7.

  在(1)式中,把變換核分離可得兩次一維dct變換:

  因此,可以使用2次一維dct變換來實(shí)現(xiàn)二維dct變換。

  在該定義被提出以后,很多優(yōu)秀的算法也被提了出來。如chen,lee的快速dct算法等,loeffler 在1989年提出的實(shí)用快速dct算法共使用11次乘法和29次加法,該算法比起chen的算法快而且不會(huì)發(fā)生lee算法中的上溢問題,并且該算法被證明已經(jīng)達(dá)到了算法極限,是最優(yōu)秀的算法[4]。該算法如圖1,它把整個(gè)dct過程分成了四級(jí),第一級(jí)只有8次加法,第二級(jí)分為上下兩塊,上面是偶?jí)K,下面是奇塊,偶?jí)K有4次加法,奇塊有6次乘法和6次加法,第三級(jí)上面有5次加法3次乘法,下面有4次加法,第四級(jí)僅奇塊有2次乘法和2次加法。由圖1可見,奇數(shù)部分的第四級(jí)與第二級(jí)的計(jì)算構(gòu)成了連續(xù)的乘法,這種運(yùn)算實(shí)現(xiàn)的時(shí)間將增加實(shí)際的計(jì)算時(shí)間。故loeffler 提出了無乘法串行的并行計(jì)算方法,該方法使用了12次乘法和32次加法,這在具有并行的mac處理器的運(yùn)算中,并不增加實(shí)際的計(jì)算時(shí)間[1]。本文即采用這種dct算法實(shí)現(xiàn)圖像的壓縮與處理。

  3 dsp及其視頻指令

  我們使用adi的adsp-bf533ezlite評(píng)估板作為實(shí)驗(yàn)平臺(tái),該評(píng)估板使用最大內(nèi)部時(shí)鐘600m的bf533處理器。處理器內(nèi)核包括二個(gè)40位的alu,2個(gè)mac,4個(gè)視頻alu 及一個(gè)桶形移位寄存器。這種結(jié)構(gòu)使并行的視頻處理成為可能[5]。實(shí)驗(yàn)的軟件環(huán)境是visualdsp4.5,該環(huán)境集成了高性能c/c++編譯器,并且具有比普通c/c++編譯器更高效的代碼優(yōu)化功能。

  為了進(jìn)一步提高代碼效率,減少程序運(yùn)行時(shí)間和代碼空間,根據(jù)dsp硬件結(jié)構(gòu)及其指令的特點(diǎn),對(duì)代碼進(jìn)行匯編優(yōu)化。本文主要注重以下三方面的優(yōu)化。

  (1)利用高度并行的算術(shù)運(yùn)算單元和功能強(qiáng)大的地址運(yùn)算單元的相結(jié)合的特點(diǎn),使用高密度指令代碼進(jìn)行代碼優(yōu)化。

  blackfin的高度并行結(jié)構(gòu)能在計(jì)算的同時(shí)進(jìn)行數(shù)據(jù)的存儲(chǔ),如r5=r1+r5,r4=r1-r5 ||r1=w[p0+0x4](x);該指令使用兩個(gè)加法器同時(shí)計(jì)算出兩個(gè)32位的值r1+r5和r1-r5并把該結(jié)果分別存入到r5和r4中,此時(shí)占用的是算術(shù)運(yùn)算單元的兩條內(nèi)部總線一個(gè)指令周期時(shí)間,由于外部總線空閑,可以把外部cache中的數(shù)據(jù)送入到r1中。索引尋址和變址尋址相結(jié)合的模式使一個(gè)指令周期內(nèi)對(duì)不同塊的sdram訪問成為了可能,比如上面的指令可以加一條r4=[i2++]仍能正確執(zhí)行,而且不增加指令執(zhí)行時(shí)間,地址運(yùn)算單元dag還包括兩個(gè)用于嵌套零開銷循環(huán)的循環(huán)計(jì)數(shù)器以及支持傳輸過程中飽和的限幅的硬件。這些特性使得blackfin指令操作的效率很高。

 。2)利用有利于dct變換的操作數(shù)位尋址指令來優(yōu)化

  blackfin dsp指令集不僅支持一個(gè)周期最多3條指令的并發(fā)執(zhí)行,而且具有大量的像素操作和向量操作指令可以減少算法時(shí)間復(fù)雜度。位反轉(zhuǎn)指令對(duì)fft、dct、dft等數(shù)學(xué)變換的操作數(shù)尋址提供了方便,在變換之前它把輸入數(shù)組數(shù)據(jù)通過位變換的方式變換到易于處理的排列方式,減少了操作數(shù)尋址的時(shí)間。

  (3)利用ieee 1180 舍入指令來支持dct變換

  blackfin的加法指令支持預(yù)比例加減法,這種指令執(zhí)行的時(shí)間首先通過算術(shù)移位將兩個(gè)操作數(shù)變大或者變小后再

相關(guān)IC型號(hào)

熱門點(diǎn)擊

 

推薦技術(shù)資料

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


 復(fù)制成功!