《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于組點(diǎn)跳躍的JPEG2000位平面掃描方案
基于組點(diǎn)跳躍的JPEG2000位平面掃描方案
曾昭貴, 仁福林
摘要: 針對超遙感圖像實(shí)時壓縮的需求,提出了基于組的像素點(diǎn)跳躍(GBPS)EBCOT掃描方案。該方案可以大幅度提高掃描效率。本設(shè)計用VHDL編寫,目標(biāo)器件為Altera Stratix系列的EP1S25F672C6,模塊穩(wěn)定運(yùn)行在120MHz,平均每個時鐘周期可以產(chǎn)生0.95個上下文信息。
Abstract:
Key words :

  摘 要: 針對超遙感圖像實(shí)時壓縮的需求,提出了基于組的像素點(diǎn)跳躍(GBPS)EBCOT" title="EBCOT">EBCOT掃描方案。該方案可以大幅度提高掃描效率。本設(shè)計用VHDL編寫,目標(biāo)器件為Altera Stratix" title="Stratix">Stratix系列的EP1S25F672C6" title="EP1S25F672C6">EP1S25F672C6,模塊穩(wěn)定運(yùn)行在120MHz,平均每個時鐘周期可以產(chǎn)生0.95個上下文信息。
  關(guān)鍵詞: JPEG2000" title="JPEG2000">JPEG2000 EBCOT 編碼塊" title="編碼塊">編碼塊 上下文


  EBCOT位平面掃描是JPEG2000硬件實(shí)現(xiàn)的瓶頸之一。自從聯(lián)合攝影專家組織發(fā)布JPEG2000標(biāo)準(zhǔn)以來,人們一直在尋找一種高效掃描的硬件實(shí)現(xiàn)方案,如Kuan-fu Chen[4]等人提出的GOCS(Group Of Columns Skipping)查詢掃描方案,將位平面上相鄰八列編成一個Group,在對重要傳播通道進(jìn)行完全掃描的同時,建立后兩個掃描過程的編碼必要性信息表,在進(jìn)行幅值細(xì)化通道和清除通道時可以直接跳過不需要編碼的Group;而Zhu Yue-xin[1]等人提出了基于多級查詢表的GOCS改進(jìn)方案,這種優(yōu)化方法進(jìn)一步提高了掃描效率,但是需要額外的存儲單元?;诹?Column-Based)的點(diǎn)跳過(Pixel Skipping)技術(shù)[3]大大減少了掃描冗余,因而被廣泛應(yīng)用 [1~6]。為減少RAM的訪問頻率,提出了多列并行存儲方案[5],但其本質(zhì)是基于列的掃描結(jié)構(gòu)。這種基于列的操作,列與列之間的轉(zhuǎn)移需要消耗時鐘周期。平面內(nèi)三個過程并行處理的方案[7],進(jìn)一步減少了掃描的冗余時間,但這種方法對Tier-2截斷的精度和碼流組織影響比較大。
  筆者提出了基于組的像素點(diǎn)跳躍GBPS(Group-Based Pixel Skipping)的EBCOT位平面掃描方案。以四列為一組,在組內(nèi)使用點(diǎn)跳躍(Pixel Skipping)技術(shù)。本方案配合流水設(shè)計,組之間可實(shí)現(xiàn)無縫轉(zhuǎn)移,極大減少了掃描單元之間轉(zhuǎn)移的冗余時鐘周期,從而提高了掃描效率。同時亦減少了對緩存RAM的訪問頻率,降低了系統(tǒng)功耗。
1 JPEG2000標(biāo)準(zhǔn)簡介
  JPEG2000標(biāo)準(zhǔn)提供比JPEG更高的壓縮率和更好的抗誤碼特性,支持單分量或多分量的有損和無損編碼。支持SNR和分辨率的漸進(jìn)傳輸、感興趣(ROI)編碼、碼流隨機(jī)訪問,提供靈活的文件格式,支持用戶信息加載(如水印等)和動態(tài)圖像(Motion JPEG2000),已被廣泛應(yīng)用于各個領(lǐng)域的圖像處理。如圖1所示,JPEG2000 首先對原始圖像進(jìn)行離散小波變換,無失真壓縮采用5/3提升小波變換,有失真壓縮采用9/7提升小波變換。如果是有失真壓縮,還要對小波變換后的系數(shù)進(jìn)行量化。量化后的各個子帶被劃分成大小相等的編碼塊(Code Block)。最后采用率失真優(yōu)化截取的內(nèi)嵌碼塊編碼算法(EBCOT)對這些編碼塊進(jìn)行獨(dú)立編碼。EBCOT分為Tier-1和Tier-2兩部分,Tier-1又分為位平面掃描、算術(shù)自適應(yīng)編碼器MQ和失真計算;Tier-2對MQ編碼輸出的數(shù)據(jù)采用PCRD算法進(jìn)行碼流的截取,得到最終的壓縮數(shù)據(jù)。解碼是編碼的逆過程,首先對碼流進(jìn)行EBCOT解碼,然后對反量化后的數(shù)據(jù)作小波反變換,最后生成重建圖像。


2 JPEG 2000標(biāo)準(zhǔn)定義的EBCOT位平面掃描方法
  如圖2所示,編碼塊中每個有效位平面列方向上每4個相鄰的點(diǎn)稱為一個編碼列(Coding Column),處在同一水平方向上的編碼列構(gòu)成一個帶(stripe),EBCOT位平面掃描時,列內(nèi)對點(diǎn)從上到下, 帶內(nèi)對列從左到右, 編碼塊內(nèi)對帶從上到下進(jìn)行Z字型遍歷掃描。除了最高有效位平面只需進(jìn)行一次清理通道掃描外,其余的有效位平面均要進(jìn)行三次的掃描通道:有效性傳播通道(PASS1 Significance Propagation)、幅度細(xì)化通道(PASS2 Magnitude Propagation)和清除通道(PASS3 Clearup Pass)。編碼塊的所有點(diǎn)都對應(yīng)一個記錄其重要性的標(biāo)志,這個標(biāo)志在編碼塊開始編碼時被初始化為‘0’,表示其不重要,該點(diǎn)變?yōu)橹匾院蟊恢脼?lsquo;1’。如果當(dāng)前掃描點(diǎn)本身不重要,但其八鄰域內(nèi)有重要的,則進(jìn)行有效性傳播通道編碼。如果其本身為重要,則進(jìn)行幅度細(xì)化通道編碼;否則進(jìn)行清除過程編碼。有效性傳播通道使用零編碼(ZC)原語,幅度細(xì)化通道使用幅度細(xì)化編碼(MR)原語,清除通道則使用零編碼(ZC)原語或游程編碼(RLC)原語。這些原語產(chǎn)生上下文(CONTEXT)和判決位送給自適應(yīng)編碼器MQ進(jìn)行編碼。


3 基于組的EBCOT位平面掃描方案
3.1基于組的點(diǎn)跳躍掃描上下文產(chǎn)生器

  據(jù)統(tǒng)計,如果按照J(rèn)PEG 2000協(xié)議給出的通道掃描方法,掃描的冗余時間占總時間的70%以上[2]?;诹械狞c(diǎn)跳躍(Pixel Skipping)方案[3]與基于啟發(fā)式掃描的組跳躍(GOCS)[3]結(jié)合使用的方案將所需時鐘下降到原來的40%左右[2]。但是這種方案需要額外的存儲器,并且必須對三個掃描通道中的一個進(jìn)行完全掃描,所以這種方案有其不理想的地方。同一位平面內(nèi)三個通道并行的方案[6],進(jìn)一步減少了掃描的冗余時間,但對Tier-2的動態(tài)截斷的精度和碼流組織影響比較大。筆者提出了如圖3所示的基于組的點(diǎn)跳躍掃描GBPS(Group-Based Pixel Skipping)方案。將四列16個點(diǎn)(0~F)看成一個單元,稱之為一組(Group)。其左右白色兩列分別為該組的左鄰域列和右鄰域列,其上下兩行淺色分別為該組的上鄰域行和下鄰域行。組和它的上下鄰域的位平面小波系數(shù)均存在位平面小波系數(shù)緩存RAM的同一個單元中。在編碼塊非邊界區(qū)域,它的左鄰域列為前一個組的最右邊一列,右鄰域列為下一組的最左邊一列。左右鄰域分別用一個6位寄存器緩存。當(dāng)掃描編碼塊左邊界時,左鄰域?yàn)榱?,而掃描子塊右邊界時,右鄰域?yàn)榱恪N黄矫鎾呙钑r在16個點(diǎn)中進(jìn)行跳躍掃描,只對當(dāng)前過程N(yùn)BC[2]為1的點(diǎn)進(jìn)行掃描。
3.2 組間流水操作
  基于組的點(diǎn)跳躍主要是為了減少兩相鄰處理單元之間轉(zhuǎn)移所消耗的時鐘周期,故在硬件實(shí)現(xiàn)時組之間采用流水操作。為了實(shí)現(xiàn)流水操作,EBCOT掃描被分解成三個處理任務(wù):當(dāng)前組的上下文掃描編碼、下一組的預(yù)處理、再下一組的數(shù)據(jù)預(yù)讀取。這三個處理任務(wù)是并行執(zhí)行的,所以對于一個組而言,它的預(yù)讀取過程、預(yù)處理過程和上下文的掃描編碼過程是流水操作的。如果相鄰的兩個組均有當(dāng)前掃描通道需要編碼的點(diǎn),組之間的轉(zhuǎn)移不需要冗余的時鐘周期,上下文產(chǎn)生器可以每個時鐘周期向算術(shù)編碼器MQ提供一個數(shù)據(jù)輸出。
  采用GBPS方法的目的,一是跳過當(dāng)前組當(dāng)前過程不需要編碼的點(diǎn),二是減少單元之間轉(zhuǎn)移所花費(fèi)的時間。同時亦減少了對內(nèi)部存儲器的訪問頻率,從而減少系統(tǒng)的功耗。下面將對三個處理任務(wù)進(jìn)行逐一的介紹。
3.2.1 數(shù)據(jù)預(yù)讀取
  在掃描過程中需要對兩種數(shù)據(jù)進(jìn)行預(yù)讀?。何黄矫嫘〔ㄏ禂?shù)和重要性信息(FC表),這兩部分?jǐn)?shù)據(jù)都分別存儲在片內(nèi)RAM中。FC 系數(shù)用于表征當(dāng)前位平面的點(diǎn)是否已變?yōu)橹匾臄?shù)據(jù),其存儲方式與位平面小波系數(shù)的存儲方式相同,如圖3所示。每個編碼塊開始編碼時FC系數(shù)的初始值為零,并在編碼過程中進(jìn)行更新。
  預(yù)讀過程的另一個任務(wù)是在讀取過程中對組的左右鄰域寄存器更新數(shù)據(jù),使得預(yù)處理模塊面對一個帶鄰域的組。


3.2.2 組預(yù)處理
  組預(yù)處理模塊首先根據(jù)組內(nèi)16個點(diǎn)各自的鄰域信息計算出其在當(dāng)前掃描過程中的NBC信息,用一個16位的寄存器進(jìn)行標(biāo)記;然后根據(jù)該寄存器計算出各點(diǎn)的下一個需要編碼點(diǎn)的位置,實(shí)現(xiàn)這一功能需要用到14個四位的位置寄存器np_0~np_D。EBCOT位平面掃描時根據(jù)這14個寄存器的信息進(jìn)行跳躍查詢,例如當(dāng)前處理點(diǎn)為0,若np_0的值為0xE,那么處理完0后,跳到E點(diǎn)進(jìn)行處理。極大地提高了掃描的有效性。
3.2.3 上下文編碼掃描模塊
  有效性傳播通道、幅度細(xì)化通道和清除通道三個上下文掃描通道產(chǎn)生上下文的復(fù)雜度是不一樣的,后兩個只要進(jìn)行簡單判斷就可以得出上下文,這兩個過程采用非流水設(shè)計,以節(jié)省資源。而有效性傳播過程則比較復(fù)雜,有必要采用流水操作,分解成鄰域信息提取、重要性上下文產(chǎn)生、符號位上下文產(chǎn)生和發(fā)送四個過程。如果某點(diǎn)進(jìn)行重要性編碼只要一個周期,若要進(jìn)行符號位編碼則需兩個周期。
  在掃描過程中點(diǎn)0和點(diǎn)F是必掃的兩個點(diǎn),因?yàn)轭A(yù)讀取隔組數(shù)據(jù)和預(yù)處理下一組數(shù)據(jù)需要兩個時鐘周期,這是本設(shè)計唯一會產(chǎn)生冗余時鐘周期的地方。1到E點(diǎn)則根據(jù)位置寄存器np_0~np_D的值進(jìn)行跳躍掃描。對于一個有效位平面中的一點(diǎn),必然被三個掃描通道中的一個掃描(清除通道的RLC有可能是一個掃描列一起掃描),故一個有效位平面每個組的冗余時鐘周期小于4。
4 硬件設(shè)計
  這是一個專門針對超大幅圖像實(shí)時壓縮的設(shè)計,采用了四路編碼塊并行處理的方案。為了驗(yàn)證系統(tǒng)的性能筆者采用標(biāo)準(zhǔn)的測試圖像進(jìn)行測試。通過C++對MODELSIM仿真輸出數(shù)據(jù)統(tǒng)計,各圖像掃描花費(fèi)的時鐘周期數(shù)如表1所示。這里除了“本文系統(tǒng)”以外的數(shù)據(jù)均來自參考文獻(xiàn)[2]。
  上下文掃描模塊資源如表2所示,其中LE和本工程其它模塊一起約束綜合時會有稍許增加。所用的芯片為ALTERA公司Stratix系列的EP1S25F672C6。它有25660個LE、224個M512 RAM、 138個M4K RAM和80個乘法器,以及豐富的時鐘資源。

 


  本文以超大幅圖像的實(shí)時壓縮為應(yīng)用背景,并根據(jù)FPGA目標(biāo)芯片資源架構(gòu)的狀況,提出了一種新的EBCOT位平面掃描方案——基于組的點(diǎn)跳躍(GBPS)。這個方案所花的時鐘周期不到表1中最快方案的三分之一。大量流水操作的應(yīng)用也使本系統(tǒng)邏輯層次降低,因此獲得良好的時序性能,本模塊具備每秒處理6幅4096×4096的8位灰度遙感圖像的能力。


參考文獻(xiàn)
1 朱悅心.基于多級查詢表的JPEG2000位平面掃描優(yōu)化方法.電子學(xué)報, 2004;(5)
2 Gangadhar, M.,Bhatia, D.FPGA based EBCOT architecture for JPEG 2000. Field-Programmable Technology (FPT),2003. Proceedings. 2003 IEEE International Conference, 2003;(12):15~17
3 Kuan-Fu Chen. Analysis and architecture design of EBCOT for JPEG-2000.Circuits and Systems, 2001. ISCAS 2001.The 2001 IEEE International Symposium on, 2001;(5)
4 Yun Long. A high-performance parallel mode EBCOT en-coder architecture design for JPEG2000.SOC Conference, 2004. Proceedings. IEEE International,2004;(9):12~15
5 Tien-Wei Hsieh, Youn-Long Lin. A hardware accelerator IP for EBCOT Tier-1 coding in JPEG2000 Standard.Embedded Systems for Real-Time Multimedia, 2004. ESTImedia 2004. 2nd Workshop on,2004;(9):6~7
6 Yijun Li, Aly, R.E,Bayoumi, M.A., Mashali, S.A.Parallel high-speed architecture for EBCOT in JPEG2000.Acoustics, Speech, and Signal Processing, 2003. Proceedings. (ICASSP ’03). 2003 IEEE International Conference on, 2003;(4)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。