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

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


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


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


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

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


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

 


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


參考文獻
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)載。