《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于Q-Coder算術(shù)編碼器的IP核設(shè)計(jì)
基于Q-Coder算術(shù)編碼器的IP核設(shè)計(jì)
摘要: 本文提出的一種實(shí)現(xiàn)算術(shù)編碼的集成電路IP核,經(jīng)過仿真和FPGA驗(yàn)證,能夠符合JPEG2000標(biāo)準(zhǔn),仿真結(jié)果表明,在相同的條件下,該IP核編碼所需時(shí)間僅約為軟件編碼所需時(shí)間的40%,從而大大提高了算術(shù)編碼的效率,使得將來其應(yīng)用于實(shí)時(shí)處理系統(tǒng)成為可能;并且將來可以定制所需的ASIC電路,用于新一代數(shù)字照相機(jī)等具有廣泛市場前景的 項(xiàng)目。
Abstract:
Key words :

  1 概述

  JPEG2000[1,2]是新的靜止圖像壓縮標(biāo)準(zhǔn),它具有的多種特性使得它有著廣泛的應(yīng)用前景。目前為止,JPEG2000的解決方案比較少,并且其中的絕大部分是軟件解決方案:Jasper[3]軟件是經(jīng)IEC JTC1/SC29/WG1小組推薦使用的實(shí)現(xiàn)JPEG2000的為數(shù)不多的軟件之一。

  由于軟件實(shí)現(xiàn)JPEG2000的時(shí)間開銷比較大,因此,JPEG2000編碼系統(tǒng)很難應(yīng)用于實(shí)際系統(tǒng)中;硬件解決方案由于處理速度大大提高,因而用硬件實(shí)現(xiàn)JPEG2000具有廣泛的市場前景。但是,JPEG2000算法復(fù)雜,完全用硬件實(shí)現(xiàn)比較困難;然而使用硬件實(shí)現(xiàn)JPEG2000中的某些模塊,相對(duì)而言就比較容易實(shí)現(xiàn),同時(shí)也能大大提高編碼效率。

  圖1為JPEG2000的幾個(gè)基本模塊。文獻(xiàn)[4]指出,軟件處理中,圖1中的算術(shù)編碼模塊的時(shí)間開銷占據(jù)了整個(gè)軟件時(shí)間開銷的40%左右,若使用硬件實(shí)現(xiàn)算術(shù)編碼模塊必然能大大提高編碼速度,對(duì)于提高JPEG2000的編碼速度有著重要的意義。

JPEG2000的幾個(gè)基本模塊

  2 Q-Coder算術(shù)編碼器原理

  Q-coder算術(shù)編碼是一種特殊的高效自適應(yīng)二進(jìn)制算術(shù)編碼器。其輸入是成對(duì)待編碼數(shù)據(jù)D(DATA)以及上下文CX(CONTEXT),數(shù)據(jù)D和上下文CX是由比特平臺(tái)(bit plane)[1]產(chǎn)生的;輸出則是壓縮數(shù)據(jù)CD(COMPRESSED DATA)。在JPEG2000中,上下文指D周圍8個(gè)相鄰比特的狀態(tài),這些狀態(tài)被特定的規(guī)則劃分為19類,稱為19種上下文。每種上下文都包含兩部分內(nèi)容,一部分選擇了對(duì)數(shù)據(jù)D編碼時(shí)使用的概率估計(jì)值對(duì)應(yīng)的索引,另一部分決定了當(dāng)前大概率符號(hào)所代表的符號(hào),這兩部分內(nèi)容將在編碼后被更新。

  2.1 區(qū)間的遞歸劃分

  概率區(qū)間的遞歸劃分是二進(jìn)制算術(shù)編碼的基礎(chǔ)。每執(zhí)行一次二元判定,當(dāng)前概率區(qū)間就被劃分成為兩個(gè)子區(qū)間,并在必要的時(shí)候修改輸出碼流,使之指向該符號(hào)所在的概率子區(qū)間的下界。

  在區(qū)間劃分時(shí),小概率符號(hào)的子區(qū)間和大概率符號(hào)的子區(qū)間這樣排序:通常取靠近0的區(qū)間作為MPS的子區(qū)間,因此,若編碼的是MPS,則應(yīng)向輸出碼流中加入LPS子區(qū)間的長度。這種約定要求把編碼的符號(hào)區(qū)別為LPS或MPS,而不是0或者1。因此在對(duì)一次二元判定編碼時(shí),必須知道該判定的LPS子區(qū)間的長度和MPS的含義。

  2.2 編碼約定和近似計(jì)算

  Q-coder算術(shù)編碼器設(shè)置兩個(gè)寄存器:一個(gè)是概率區(qū)間寬度寄存器A,用于存放子區(qū)間的寬度,另一個(gè)是碼字寄存器C,用來表示概率區(qū)間的下限。編碼過程使用固定精度的整數(shù)運(yùn)算和小數(shù)的整型表示形式,即X‘8000’代表十進(jìn)制小數(shù)0.75。概率區(qū)間A的范圍是,并且當(dāng)A的整型值小于X‘8000’時(shí),把A翻倍,即把A限制在十進(jìn)制范圍0.75–1.5之間,這個(gè)“翻倍”過程稱為重整化。當(dāng)A進(jìn)行重整化時(shí),C也必須同時(shí)翻倍。為了防止寄存器C發(fā)生上溢,每隔一段時(shí)間,應(yīng)將寄存器C的高位部分移出并送至另外的寄存器中。

  將A限制在十進(jìn)制范圍0.75~1.5之間,概率區(qū)間的劃分可以使用簡單的算術(shù)近似方法。如果LPS當(dāng)前的概率估計(jì)值是,則子區(qū)間的精確計(jì)算如下進(jìn)行:

子區(qū)間的精確計(jì)算

  3 算術(shù)編碼器的實(shí)現(xiàn)

  3.1 算術(shù)編碼流程

  所有的設(shè)計(jì)都是用Verilog硬件描述語言編寫的,由上述描述可知,算術(shù)編碼器的輸出不僅和當(dāng)前狀態(tài)有關(guān),而且和輸入也相關(guān),所以本文選擇Mearly有限狀態(tài)機(jī)[5]來描述復(fù)雜的控制模塊。整個(gè)設(shè)計(jì)的主有限狀態(tài)機(jī)如圖2所示。

圖2 算術(shù)編碼主有限狀態(tài)機(jī)

圖2 算術(shù)編碼主有限狀態(tài)機(jī)

  3.2 模塊設(shè)計(jì)

  duram是雙口sram作為片內(nèi)存儲(chǔ)單元存儲(chǔ)輸入的數(shù)據(jù),當(dāng)采用FPGA進(jìn)行驗(yàn)證時(shí),直接調(diào)用Altera公司的宏功能塊即可;ari_core是實(shí)現(xiàn)算術(shù)編碼的運(yùn)算處理單元,包含一個(gè)存儲(chǔ)概率估值和當(dāng)前MPS符號(hào)的表以及LPS和MPS編碼子程序;模塊control是數(shù)據(jù)流控制單元,用于組織片內(nèi)存儲(chǔ)單元duram和運(yùn)算處理單元ari_core以及片外sram的數(shù)據(jù)交換。模塊control是整個(gè)設(shè)計(jì)的控制單元,負(fù)責(zé)調(diào)度以上各個(gè)模塊,產(chǎn)生控制和聯(lián)絡(luò)信號(hào)以及地址信號(hào)。模塊結(jié)構(gòu)原理如圖3所示。 

圖3 模塊結(jié)構(gòu)原理

   3.3 電路驗(yàn)證

  將布局布線后生成的文件下載到自行設(shè)計(jì)的一塊FPGA的PCI開發(fā)板里進(jìn)行驗(yàn)證,如圖4所示。板上是一片Altera cyclone系列FPGA ep1c12qfp240,該FPGA含有約25萬邏輯門、30KB內(nèi)部RAM。PCI接口控制邏輯也是在FPGA中實(shí)現(xiàn)[6~8],然后編寫PCI驅(qū)動(dòng)程序和應(yīng)用程序,先由Jasper軟件處理,抽取軟件中量化模塊處理后的數(shù)據(jù),輸入FPGA中進(jìn)行處理,再將數(shù)據(jù)返回給軟件中的下一模塊,驗(yàn)證本文設(shè)計(jì)的算術(shù)編碼IP核的正確性,并計(jì)算處理時(shí)間。

 

圖4 算術(shù)編碼硬件電路的PCI驗(yàn)證系統(tǒng)

  4 實(shí)驗(yàn)結(jié)果與分析

  (1)將Verilog源程序在QuartusⅡ軟件中綜合后,得到的參數(shù)如下:

1)器件名稱:EP20K200efc484-2x;
2)FPGA時(shí)鐘最高頻率:45.18MHz;
3)Total logic elements:3660/8320 (44%)。

  (2)功能驗(yàn)證。目前,只有JBIG[8]標(biāo)準(zhǔn)中有驗(yàn)證算術(shù)編碼器編碼正確性的測試向量,因此該測試向量被用以測試本文設(shè)計(jì)IP核的正確性。需要說明的是:JBIG標(biāo)準(zhǔn)中的算術(shù)編碼器會(huì)產(chǎn)生“FF AC”標(biāo)志位[8],而JPEG2000中的MQ-Coder算術(shù)編碼器并不產(chǎn)生該標(biāo)志位[1]。

  將JBIG中的測試向量作為輸入,經(jīng)過本文設(shè)計(jì)的算術(shù)編碼IP核處理后的結(jié)果如圖5所示,由圖5可知本文設(shè)計(jì)的算術(shù)編碼IP核完全正確。

  圖5 JBIG測試向量輸出結(jié)果

  (3)由概述可知,Jasper軟件具有一定的權(quán)威性,因此在實(shí)驗(yàn)中被使用。表1列出了對(duì)于同一個(gè)圖像文件,Jasper軟件中算術(shù)編碼模塊執(zhí)行所需的時(shí)間和本文設(shè)計(jì)的算術(shù)編碼IP核執(zhí)行所需的時(shí)間以及兩者時(shí)間之比。

表1算術(shù)編碼執(zhí)行時(shí)間比較

  5 結(jié)論

  本文提出的一種實(shí)現(xiàn)算術(shù)編碼的集成電路IP核,經(jīng)過仿真和FPGA驗(yàn)證,能夠符合JPEG2000標(biāo)準(zhǔn),仿真結(jié)果表明,在相同的條件下,該IP核編碼所需時(shí)間僅約為軟件編碼所需時(shí)間的40%,從而大大提高了算術(shù)編碼的效率,使得將來其應(yīng)用于實(shí)時(shí)處理系統(tǒng)成為可能;并且將來可以定制所需的ASIC電路,用于新一代數(shù)字照相機(jī)等具有廣泛市場前景的 項(xiàng)目。

  參考文獻(xiàn)

1 Boliek M, Christopoulos C, Majani E. ISO/IEC JTC1/SC29/WG1 N1646R-2000 JPEG2000 PartI Final Committee Draft (Version 1.0)[S]. 2000. 
2 張曉娣, 劉貴忠, 曾召華等. JPEG2000圖像壓縮編碼系統(tǒng)及其關(guān)鍵技術(shù)[J]. 數(shù)字電視與數(shù)字視頻, 2001, (8).
3 Jasper Project Home Page[Z]. http://www.ece.ubc.ca/~mdadams/jas per.
4 Adams M D, Kossentini F. JasPer: A Software-based JPEG-2000 Codec Implementation[C]. Proc. of Int’l Conf. on Image Processing, 2000: 53-56.
5 陳雪松, 藤立中. VHDL入門與應(yīng)用[M]. 北京: 人民郵電出版社, 2000.
6 陳文正, 曹  明. PCI總線協(xié)議的FPGA實(shí)現(xiàn)及驅(qū)動(dòng)設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用, 2003, 29(7): 15-17.
7 胡和平, 田宜波. 基于FPGA的PCI接口設(shè)計(jì)[J]. 計(jì)算機(jī)工程, 2003, 29(8): 156-157.
8 劉海平, 朱仲英. 基于FPGA的PCI總線接口設(shè)計(jì)[J]. 微型電腦應(yīng)用, 2003, 19(9): 49-51.
9 JBIG Committee. ISO/IEC JTC 1/SC 29/WG 1 N1359-1999 14492 FCD[S]. 1999-07.

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