音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

DM642已實現(xiàn)使用5/3提升小波來進行優(yōu)化

出處:電子應用技術 發(fā)布于:2011-06-13 11:25:31

  與傳統(tǒng)小波相比較而言,提升小波變換不僅具有多分辨率的優(yōu)點,而且簡化了運算,便于硬件實現(xiàn),因此在數(shù)字圖像編碼領域中得到了廣泛的應用。在新的圖像壓縮標準JPEG2000中(J0int Photographic Experts Group,它是一個在國際標準組織(ISO)下從事靜態(tài)圖像壓縮標準制定的委員會),采用9/7、5/3提升小波變換作為編碼算法,其中5/3小波變換是一種可逆的整數(shù)變換,可以實現(xiàn)無損或有損的圖像壓縮。在通用的DSP芯片上實現(xiàn)該算法具有很好的可擴展性、可升級性與易維護性。用這種方式靈活性強,并且完滿足各種處理需求。

  1 提升算法

  提升算法[1]是由Sweldens等在Mallat算法的基礎上提出的,也稱為第二代小波變換。與Mallat算法相比,提升算法不依賴傅立葉變換,降低了計算量和復雜度,運行效率相應提高。由于具有整數(shù)變換及耗費存儲單元少的特點,提升算法很適合于在定點DSP上實現(xiàn)。提升算法的主要特征是把高通和低通小波濾波器分解成一列小型濾波器,進而轉化為一列上下三角矩陣。

  小波提升算法的基本思想是通過基本小波逐步構建出一個具有更加良好性質的新小波,其分為三個主要階段:分解(split)、預測(predict)和更新(update)。

  首先按照對原信號進行對稱延拓得到新的x(n)。

  分解是將數(shù)據(jù)列分成為兩個小的子集,按照數(shù)據(jù)的奇偶序號分為為偶數(shù)序列x(2n)和奇數(shù)序列x(2n+1)二個部分,奇偶分量被認為是惰性小波,因為這個過程沒有去掉數(shù)據(jù)的相關性;

  在預測階段,主要是消除步分解留下的冗余,給出更緊湊的數(shù)據(jù)表示,保持偶數(shù)序列不變,利用偶數(shù)序列來預測奇數(shù)序列,得到的預測誤差為變換的高頻分量:H(n)=x(2n+1)-{[x(2n)+x(2n+2)]》1};

  更新是由預測誤差更新偶數(shù)序列,得到變換的低頻分量: L(n)=x(2n)+{[H(n)+H(n-1)+2]》2},更新的目的在于保持信號的某些全局特性不變,如均值。

  計算過程如圖1所示。

  2 基于DM642的優(yōu)化策略

  2.1 DM642的兩級CACHE結構

  DM642是一款專門面向多媒體處理領域應用的處理器,是構建多媒體通信系統(tǒng)的良好平臺,已被國內外視頻應用從業(yè)者廣泛接受和采用。它采用C64xDSP內核,片內RAM采用兩級CACHE結構[4][5],分為L1P、L1D和L2。L1距離DSP核近,數(shù)據(jù)訪問速度快,只能作為不能尋址的CACHE被CPU訪問,由相互獨立的LIP和LID組成,LIPCache大小為16kB,直接映射,每行大小為32B;LID Cache大小16kB,2路映射,每行大小為64B,訪問周期與CPU周期一致;L2可作為SRAM映射到存儲空間使用,也可整體作為第二級Cache,或是作為二者按比例的一種組合混合使用。L2作為SRAM使用時,即是DM642的片內內存,從整個系統(tǒng)地址空間的起始地址0x00000000開始編址,當作為Cache使用時,4路映射,每行大小為128B,容量在32-56kB 之間。

  DM642有256kbit/s的片內內存,對于直接處理圖像數(shù)據(jù)還是很有限的。如MPEG-4算法一般至少要存儲當前待編碼幀數(shù)據(jù)和上一幀的重建幀數(shù)據(jù),一幀YUV4∶2∶0格式CIF圖像的數(shù)據(jù)約有150kB,256kB,內存對于CIF 圖像就不夠了。對于DM642,數(shù)據(jù)如果放在板卡上的片外內存中, 數(shù)據(jù)的處理速度會大大降低,這是因為DSP對于片外數(shù)據(jù)的運算要慢得多。我們一般采取的方案是對圖像以宏塊為單位處理,只將運算時該宏塊需要的數(shù)據(jù)導入片內, 其他數(shù)據(jù)留在片外,這樣的數(shù)據(jù)量就足夠放在片內了。

  2.2 改進的算法結構

  傳統(tǒng)的小波變換都是對整幅圖像作變換,首先對每一行作變換,然后再對每一列作變換。若采用這種方式在DSP上實現(xiàn)該算法時效率是很低的。這是因為DSP的L1D很小,只有16KB,并不能完整的緩存整幅圖像,因此原始圖像數(shù)據(jù)通常保存在速度較低的外部存儲器上。這樣CPU從L1D每讀取一行數(shù)據(jù)時將必然會產(chǎn)生缺失,而大量缺失則會嚴重阻塞CPU的運行速度,從而延長程序的執(zhí)行時間。為了解決這一難題,減少缺失的發(fā)生,我們必須改進傳統(tǒng)的變換方式。將原來對整幅圖像的變換改為分塊的變換,即每次從圖像中取出一小塊,先后進行行、列變換后再按照一定的規(guī)則保存到系數(shù)緩存中,如圖2所示。

  在這種方法中,SDRAM中的一個數(shù)據(jù)塊首先傳輸?shù)絃2中,然后取到L1D中進行水平方向的提升,再對該塊進行垂直方向的提升。這樣,由于垂直提升所需的數(shù)據(jù)都在L1D中,因此避免了此處數(shù)據(jù)緩存缺失的產(chǎn)生,從而使總的缺失數(shù)大大降低。

  2.3 數(shù)據(jù)傳輸

 ?。?)SDRAM與L2間的數(shù)據(jù)傳輸

  由于EDMA[6][7]數(shù)據(jù)傳輸與CPU運行相互獨立,因此在L2中開辟兩塊緩存:EDMA在CPU處理InBuffA的同時將下一塊數(shù)據(jù)傳輸?shù)絀nBuffB,解決了CPU讀取低速設備SDRAM引起的時延,如圖3所示。

 ?。?)L2與L1D間的數(shù)據(jù)傳輸

  CPU首先訪問級CACHE中的程序和數(shù)據(jù),如果沒有命中則訪問第二級CACHE(如果配置L2的一部分為CACHE),若還沒有命中就要訪問外部存儲空間。在這個過程中,CPU一直處于阻塞狀態(tài),直至讀取的數(shù)據(jù)有效。所以,在對L2中的數(shù)據(jù)塊進行水平提升時,CPU讀取每一行都會產(chǎn)生缺失。針對這種情況,TMS320C64x系列DSP為L1D提供了一種高速緩存缺失處理的流水處理機制。若連續(xù)多次未命中,CPU等待時間就會重疊,總體上減少了平均缺失造成的CPU阻塞時間。

  因此,在CPU對數(shù)據(jù)進行水平提升前,利用缺失流水技術,將當前數(shù)據(jù)塊全部讀取到L1D中,隨后再對該數(shù)據(jù)塊進行水平提升,則不會再發(fā)生缺失,并可提高運算速度。

  CPU和程序高速緩存L1P、數(shù)據(jù)高速緩存L1D直接相連,第二級緩存由程序空間和數(shù)據(jù)空間共享,可以設置成L2 Cache和片內SRAM。EDMA控制器負責片內L2存儲器與外設之間的數(shù)據(jù)傳輸,可以提供超過2GB/s的數(shù)據(jù)傳輸寬帶。兩級緩存結構和EDMA基本決定了H264視頻編碼器內圖像數(shù)據(jù)傳輸?shù)募軜嫛?/FONT>

 ?。?)圖像數(shù)據(jù)傳輸流程

  兩級Cache結構顯著提高了DSP的基本性能,解決了低速片外數(shù)據(jù)存取和高速CPU數(shù)據(jù)處理之間的矛盾。當CPU中編碼程序要訪問圖像數(shù)據(jù)時,查看片內內存L1D和L2;若片內內存沒有緩存該數(shù)據(jù),則通過EDMA訪問外部SDRAM,把數(shù)據(jù)從外部SDRAM拷貝到L2緩存區(qū),再從L2緩存區(qū)拷貝到L1D,由CPU取得。

  如果CPU當前訪問的圖像數(shù)據(jù)位于低速SDRAM,則EDMA把其后面地址的幾個相鄰數(shù)據(jù)也一并取到Cache中。當CPU接著訪問相鄰數(shù)據(jù)時,可直接從Cache中讀取,而不需再次訪問片外SDRAM,從而提高Cache的命中率。

  大量的圖像數(shù)據(jù)傳輸和復雜的算法處理一直是實時視頻編碼系統(tǒng)的速度瓶頸問題。結合DM642處理器的Cache結構和EDMA功能,有效設置和利用EDMA控制器,可以解決H.264視頻編碼器中存儲器和外設之間的圖像數(shù)據(jù)純屬速度問題,從而能夠大大減輕CPU的負擔,并提高H.264編碼系統(tǒng)的實時性。實驗證明,靈活使用EDMA不僅能夠提高圖像數(shù)據(jù)傳輸效率,而且可以充分發(fā)揮DM642的高速性能。

  2.4 L1P與L1D性能優(yōu)化

  L1D是兩路成組相關,每組容量大小8KB,總容量大小為16KB。CPU處理的數(shù)據(jù)容量大小不應超過8KB,并且所有的原始數(shù)據(jù)都是連續(xù)存儲在同一CACHE組中的;程序的中間過程數(shù)據(jù)保留在預分配的另一個CACHE組中。

  數(shù)據(jù)讀取到L1D之后,首先由8位擴展成16位,然后對這些數(shù)據(jù)進行水平提升,只要這些數(shù)據(jù)能保留在L1D中,隨后進行的垂直提升就可以完全避免缺失。因此,數(shù)據(jù)塊的大小是由中間過程數(shù)據(jù)決定的,所有中間過程數(shù)據(jù)加起來不能超過8KB,選取數(shù)據(jù)塊是32×32。

  當多個函數(shù)映射到L1P的同一個CACHE行時就會引起沖突缺失,所以必須合理的放置這些函數(shù)。由上面我們得知實現(xiàn)提升的全部函數(shù)加起來總容量大小不超過16KB,因此,如果能將這些函數(shù)安排在一個連續(xù)的存儲空間內,就可以完全的避免由于沖突而引起的L1P缺失。我們可以在cmd[8]文件的SECTIONS中添加一個GROUP,然后將頻繁調用的函數(shù)全部放到GROUP中(以下為代碼示例):

  SECTIONS

  {

  GROUP > ISRAM

  {

  .text:_horz

  .text:_vert

  .text:_IMG_pix_pand

  …

  }…}

  2.5 程序優(yōu)化

  由前面的分析可知,對圖像進行提升小波變換時,需要對其四個邊界進行延拓。延拓方式采用圖1所示的對稱延拓(對稱延拓有兩種方式,方式1是令在支撐區(qū)以外,以邊界點為中心對稱重復,方式2是令在支撐區(qū)以外,以邊界為中心對稱重復),其中左邊與上邊需要多延拓一個點。而對圖像中的一個塊進行提升變換時,其延拓的應該是與該塊相鄰的四個塊數(shù)據(jù)的邊界數(shù)據(jù),如圖4所示。

  邊界延拓的主要用途是計算高頻系數(shù)。數(shù)據(jù)分析發(fā)現(xiàn),水平提升時,當前數(shù)據(jù)庫塊每一行的一個高頻系數(shù)與下一塊在該行的個高頻系數(shù)是相同的,所以只要把當前塊的這些系數(shù)全部保存起來,在對下一塊進行水平提升時個高頻系數(shù)就不需要再進行計算,因此也就不需要再對其左邊界進行延拓了。實驗證明,垂直提升也是同樣的。在程序設計中添加兩個數(shù)組,一個數(shù)組存放當前塊的每一行的一個高頻系數(shù),另一個數(shù)組存放當前塊的每一列的一個高頻系數(shù)。采用這種方法就可以大大的降低程序的復雜度,從而提高程序執(zhí)行效率,進一步的減少缺失的發(fā)生。

  像素擴展函數(shù)pix_pand[9]是采用TI的IMGLIB算法庫。水平提升與垂直提升函數(shù)均由作者用線性匯編語言編寫,充分利用64x系列DSP的半字處理指令,并采用半字打包技術,限度地提高程序的執(zhí)行效率。

  水平提升時,將每行的數(shù)據(jù)重新排序,變成如圖5所示的結構。

  使用C64x的ADD2、SHR2和SUB2等半字處理指令,將如下的兩個運算并行執(zhí)行:

  H(1)=B-[(A+C)》1]

  H(2)=D-[(C+E)》1]

  垂直提升時則可以安排多列的計算并行執(zhí)行,如圖6所示。

  H1(1)=B1-[(A1+C1)》1]

  H2(1)=B2-[(A2+C2)》1]

  3 仿真結果

  表1列出了CPU讀取L1D時所產(chǎn)生的缺失數(shù)。其中,水平方向的缺失不可避免。由于要對數(shù)據(jù)塊的右側和底部進行邊界延拓,所以在水平方向的缺失數(shù)比傳統(tǒng)方法略高;而在垂直方向上,該算法完全避免了缺失的發(fā)生。

  表2列出了幾種方法的性能計算。由于本文采用了多種優(yōu)化技術,運算速度因此而提高了4~10倍。

  本文介紹了5/3提升小波變換及其在DM642上的實現(xiàn)。為了提高其性能而提出了多項優(yōu)化技術,試驗證明優(yōu)化方法比常規(guī)方法有著更高的效率。

 


  
關鍵詞:DM642已實現(xiàn)使用5/3提升小波來進行優(yōu)化

版權與免責聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關法律責任。

本網(wǎng)轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網(wǎng)聯(lián)系,否則視為放棄相關權利。

OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網(wǎng)站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!