www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

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

1 引言

現(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)重要的作用。實(shí)際應(yīng)用中,如何實(shí)現(xiàn)DCT變換的編碼及如何用硬件電路實(shí)現(xiàn)這種編碼變換是使用者關(guān)心的問題[。本文將利用DSP實(shí)現(xiàn)圖像的二維DCT變換并對(duì)其實(shí)行優(yōu)化。

2 DCT 變換

1974年Ahmed和Rao首先給出二維DCT 變換的數(shù)學(xué)表達(dá)式。該表達(dá)式適用于N點(diǎn)的DCT定義,但是,由于MPEG編碼一般是把視頻圖像幀或圖片分為場、片、宏塊的結(jié)構(gòu),一幀圖像一般包括1-2場,每場包括若干片,每片包括若干宏塊,為了方便處理,把每個(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ù)變大或者變小后再相加減,這在DCT變換中為了保證運(yùn)算精度,一般會(huì)移位后相加減,這條指令大大加快了DCT變換的速度。


4 DSP實(shí)現(xiàn)與優(yōu)化

無論是C語言還是匯編語言,程序流程均分為初始化、行變換、列變換和移位輸出四個(gè)步驟。行、列變換具有相似性,如果對(duì)行變換的結(jié)果矩陣轉(zhuǎn)置,則列變換程序跟行變換一樣。對(duì)于匯編而言,初始化部分主要初始化FP指針以指向前一函數(shù)地址,初始化數(shù)據(jù)和指針寄存器以保存返回?cái)?shù)據(jù)等。由于DCT行變和列變換過程相似,且列變換是在行變換操作的基礎(chǔ)上進(jìn)行的。則可利用多種索引尋址寄存器的靈活組合,把行變換結(jié)果直接以轉(zhuǎn)置方式存儲(chǔ)而不增加實(shí)際的存儲(chǔ)時(shí)間,這樣行列變換可使用同一代碼循環(huán)兩次實(shí)現(xiàn),減小了實(shí)際代碼大小。圖2一維 DCT變換的流程圖。

由于DSP的小數(shù)乘法指令是先經(jīng)過乘法運(yùn)算后自動(dòng)調(diào)整的,其運(yùn)算時(shí)間比起整數(shù)運(yùn)算要費(fèi)時(shí)。因此,采用先倍乘CONST_SCALE,然后整數(shù)運(yùn)算的方式來節(jié)省運(yùn)算時(shí)間。運(yùn)算的結(jié)果需要除以系數(shù)CONST_SCALE,這在程序運(yùn)行時(shí)多帶來了兩次乘法,可以使用左右移位來實(shí)現(xiàn)。由于右移位同時(shí)會(huì)帶來移位誤差,因此在程序中使用了可選擇舍入運(yùn)算方式。

為了達(dá)到更好的精度,在行變換時(shí)倍乘后再相加。這可使用Blackfin帶有預(yù)加/減比例的加法指令在一個(gè)指令周期內(nèi)實(shí)現(xiàn)。

程序簡化行列變換的代碼如下:

B0 = R0;

B3 = R1;

B2 = R2; …

LSETUP (DCT_START, DCT_END) LC0 = P0;

DCT_START:…

LSETUP(ROW_START,ROW_END)LC1=P2;

ROW_START: …

ROW_END:…

B1 = B0;

B0 = B2;

DCT_END:B2 = B1;

程序初始時(shí),R0指向輸入矩陣,R2指向中間矩陣,內(nèi)層循環(huán)是行變換過程,該過程結(jié)束時(shí),中間矩陣存儲(chǔ)著行變換結(jié)果的轉(zhuǎn)置。通過B0和B2的指針交換,把中間矩陣當(dāng)作輸入進(jìn)行行變換,這樣,把原輸入矩陣變成了輸出矩陣,并且矩陣中各元素位置不變。

比較式(1)和(3)發(fā)現(xiàn),二維DCT 變換時(shí)結(jié)果為兩次無理數(shù)sqrt(8)相乘,產(chǎn)生了有理項(xiàng),因此,在程序里首先多乘一次sqrt(8),然后在兩次DCT 變換結(jié)束以后,使用右移3位以達(dá)到正常輸出。


圖2 1維行DCT變換流程圖

為了評(píng)估優(yōu)化后的效果,在ADSP—BF533 EZLITE平臺(tái)和VisualDSP4.5環(huán)境下,當(dāng)BF533

工作在核心頻率594MHZ時(shí),對(duì)一源圖像點(diǎn)陣灰度數(shù)據(jù)進(jìn)行DCT處理。該灰度圖像為一個(gè)8×8的數(shù)組A[6],對(duì)A進(jìn)行二維 DCT 調(diào)用,實(shí)際運(yùn)行結(jié)果為:C語言代碼為392 bytes,執(zhí)行時(shí)間為3.806397 μs;匯編語言代碼為248 bytes,執(zhí)行時(shí)間為1.085859μs。顯然,與以C語言為主的二維DCT編碼相比,用匯編語言實(shí)現(xiàn)的二維DCT編碼在代碼大小、代碼執(zhí)行時(shí)間上均得到了很大改善。

5 結(jié)論

本文創(chuàng)新之處在于能根據(jù)ADSP-BF533的結(jié)構(gòu)和指令特點(diǎn)及視頻信號(hào)壓縮的實(shí)時(shí)性要求,使用匯編語言對(duì)視頻信號(hào)進(jìn)行了二維DCT編碼及優(yōu)化。實(shí)驗(yàn)證明:在ADSP-BF533硬件平臺(tái)和VisualDSP4.5環(huán)境下,當(dāng) CPU運(yùn)行在594MHZ時(shí),使用匯編語言實(shí)現(xiàn)的DCT變換比C語言實(shí)現(xiàn)的DCT變換執(zhí)行時(shí)間減小71.4%,代碼空間減小近30%。以標(biāo)準(zhǔn)CIF 測試序列為例,壓縮一張352×288的圖片能減少4.31ms,可見優(yōu)化效果顯著。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉