?

一種靈活可配置的JPEG編解碼器軟硬件架構

2014-06-07 05:53李瑞珍張曉旭嚴曉浪
計算機工程 2014年11期
關鍵詞:編解碼色度加速器

李瑞珍,張曉旭,馬 德,黃 凱,嚴曉浪

(1.浙江大學超大規模集成電路設計研究所,杭州310027;2.杭州電子科技大學微電子CAD所,杭州310018)

一種靈活可配置的JPEG編解碼器軟硬件架構

李瑞珍1,張曉旭1,馬 德2,黃 凱1,嚴曉浪1

(1.浙江大學超大規模集成電路設計研究所,杭州310027;2.杭州電子科技大學微電子CAD所,杭州310018)

JPEG壓縮標準由于其壓縮比高和實用性強已被廣泛應用于靜態圖像編解碼中。為滿足更高的實時性與高速率需求,根據JPEG算法抽象出的基本運算,提出一種靈活可配置的JPEG編解碼加速器結構,實現向量加法、向量乘法、向量點乘和移位飽和等基本運算操作,并驅動此加速器完成JPEG解碼的反向離散余弦變換、反量化和色度空間轉換過程,配合軟件代碼處理解碼的其他部分,實現JPEG解碼的軟硬件協同工作。實驗結果表明,在增加0.229 mm2面積的前提下,硬件實現的部分耗時只為優化前的35%左右,JPEG解碼過程總耗時為優化前的60%左右。該方法提高了JPEG編解碼速度,并且加速器的軟件和硬件靈活可配性決定了其適用范圍的廣泛性。

聯合圖像壓縮標準;加速器;離散余弦變換;色度空間轉換;量化;軟硬件協同設計

1 概述

JPEG是聯合圖像專家組(Joint Picture Experts Group)于1991年發布的第一代國際靜態圖像壓縮標準[1],由于其壓縮率高、失真小和實現復雜度低等特點,被公認為是靜態圖像編解碼方面最有效實用的壓縮算法,在數字圖像、數碼相機、網頁圖像等領域均有廣泛應用,特別在嵌入式應用中,要對高質量的圖像進行實時采集、壓縮、存儲和回放,需同時支持JPEG編解碼功能。隨著嵌入式系統實時性、高性能和可擴展性要求的進一步提高,設計出一個高速高效可擴展的JPEG編解碼器已成為重要的研究方向。

目前,JPEG編解碼器在嵌入式領域中的實現方式可分為3種:ASIC圖像專用編解碼芯片[2-3],FPGA實現[4-5]以及基于處理器[6]或 DSP的軟件實現[7]。采用ASIC JPEG圖像專用編解碼芯片的優點是速度快,一旦專用芯片設計成功,其生產成本相對較低,而且方便集成,功耗低,適合大規模生產。然而ASIC編解碼芯片的缺點是可配置擴展性差,一旦設計完成就只能以固定模式進行編解或解碼,而JPEG算法為滿足不同應用領域的需求,提出了3種不同的系統:基本系統,擴展系統和專用無失真功能系統[1]。在ASIC芯片中同時實現3種系統的編解碼會顯著提高芯片面積和功耗,文獻[2]中提出的JPEG解碼IP模塊就需消耗206 000門硬件資源,而只支持一個系統的編碼或者解碼的ASIC芯片應用范圍又受到限制。文獻[6-7]分別提出了一種JPEG解碼算法在多核架構和DSP上的實現方法,這種方式的好處是靈活性高、可擴展性好。但為了實現實時編解碼,需要占用較多的計算資源,必須采用較高性能的DSP和處理器,顯著增加了嵌入式系統的成本和功耗,不適合低端系統的應用。FPGA具有較高的性能和靈活性,升級方便[4-5],但其成本較高,不適合大規模生產。

針對以上3種實現方式的缺陷,本文提出一種靈活可配置的JPEG編解碼器的軟硬件協同工作架構。通過對JPEG軟件算法的分析研究,評估算法中各主要任務的復雜性,采用自頂向下的設計方法,將JPEG編解碼算法中色度空間轉換、離散余弦變換(Discrete Cosine Transform,DCT)、量化等復雜性高的任務劃分為基本向量操作,設計相應的硬件加速單元。根據JPEG算法應用的特點,由處理器對硬件加速單元進行靈活配置,由此構建由RISC處理器和細粒度硬件加速單元組成的靈活可配JPEG編解碼系統。

2 JPEG編解碼原理與性能分析

2.1 JPEG編解碼原理

JPEG算法利用人的視覺系統特性,使用量化和無損壓縮編碼相結合的方式去掉視覺和圖像本身的冗余信息來達到壓縮的目的。它可以分為基本模式和擴展模式。其中基本模式應用尤為廣泛。本文以基于DCT的基本模式為討論對象進行JPEG性能分析和軟硬件劃分。JPEG的編碼器和解碼器的組成分別如圖1和圖2所示。當JPEG編碼時,圖像數據需先從原來的RGB色度空間轉換到YCrCb色度空間,然后將二維圖像分成 8×8的最小編碼單元(Minimum Code Unit,MCU),各MCU按從左到右、從上到下的順序對于色度和亮度分量依次進行正向離散余弦變換(Forward DCT,FDCT)和量化,得到的結果按照“之”字重新排序后進行熵編碼,即可得到壓縮后的數據。JPEG解碼是相反的過程,包括熵解碼、反zig-zag排序、反量化、反向離散余弦變換(Inverse DCT,IDCT)和YCrCb到RGB的色度空間轉換[8]。

圖1 JPEG壓縮過程

圖2 JPEG解碼過程

2.2 JPEG編解碼復雜度分析

為了對JPEG算法進行軟硬件劃分,本文選用了獨立JPEG小組發布的第9版JPEG自由軟件作為參考模型[1],通 過采用 GNU GCC的 Profiling工具[9]對軟件代碼各函數的執行時間進行統計,從而分析JPEG算法中各模塊的復雜度。對多個 JPEG圖像編解碼的各函數性能評估如圖3所示。

圖3 JPEG編解碼函數性能評估

通過圖3的統計數據得到的JPEG編解碼各模塊的平均復雜度如圖4所示。

圖4 JPEG編解碼函數比例

在圖4中,DCT、量化/反量化、熵編解碼和色度空間轉換4個部分的執行時間占了JPEG編解碼總時間的80%~95%,復雜性的集中度很高,便于分析優化,尤其是DCT和量化/反量化,占用了將近一半的時間。這是由于圖像中每個8×8的MCU都要執行此類操作,重復性高,而且加法和乘法的運算量大,因此提高這些過程的執行效率是提高JPEG編解系統性能的關鍵。JPEG編解碼中的其他時間用于一些初始化工作和預處理等操作,例如分析文件頭、取量化表、將圖像補齊到8×8的整數倍、哈夫曼解碼后的校正等。

這些操作大多是圖像級的,對于整個圖像只執行一次,占用的時間少,特別是對于較大的圖像幾乎可以忽略。所以硬件加速主要集中在色度空間轉換、熵編解碼、DCT和量化/反量化這4個部分。

(1)色度空間轉換

色度空間轉換雖不屬于JPEG標準的組成部分,但圖像一般以RGB格式進行顯示,而JPEG算法以YCrCb格式作為編解碼對象,這使得RGB和YCrCB之間的色度空間轉換成為JPEG編解碼算法不可或缺的一部分。如式(1)所示,完成一個像素點的YCrCb到RGB色度空間轉換需4次浮點乘法和6次加法,對于cif圖像需進行352×288=10 137次色度空間轉換,即10 137×4=405 504次乘法和10 137× 6=608 256次加法,計算復雜性高。圖4的分析結果表明,色度空間轉換在JPEG編解碼軟件算法中占了10~20%的計算時間,因此,采用硬件加速對提升JPEG解碼性能、減少處理器負載具有重要意義。

(2)熵編解碼

熵編碼主要利用圖像空間相關性,對每一個MCU的直流分量采用差分編碼,對zig-zag方式排列的交流分量采用游程編碼,最后對各部分進行哈夫曼編碼,熵解碼是其相反的過程。熵編解碼雖在軟件算法占較高的運算,但其主要通過查表、逐位比較判斷[10]等操作完成,且前后數據之間相關性大,計算量小,更加適合處理器實現,本文提出的架構中采用RISC處理器完成JPEG算法的熵編解碼。

(3)量化/反量化

如圖1所示,JPEG編碼過程中對DCT轉換后的MCU進行量化操作。經DCT變換后得到8×8的二維頻率矩陣M,左上角代表圖像低頻部分,右下角代表圖像高頻部分,量化實際上相當于低通濾波器,濾掉高頻部分,因此,量化矩陣Q低頻系數小,高頻系數大。量化得到的像素頻域矩陣F中對應元素F(u,v)=M(u,v)×Q(u,v),每完成一次反量化需要64次乘法,一幅 cif圖像有(352/8)×(288/8)= 1 584個MCU,需要1 584次量化操作,即1 584×64= 101 376次乘法,運算復雜性較高。與量化過程類似,反量化過程也需要大量規律性的乘法操作,因此,用硬件加速單元實現量化/反量化操作將大幅度地優化JPEG編解碼性能。

(4)離散余弦變換

離散余弦變換對圖像信息進行時域與頻域間的轉換,將低頻信息與高頻信息分開,是JPEG算法的重要組成部分。JPEG以8×8塊為DCT的基本單位,公式如下:

3 JPEG編解碼器硬件加速器設計

3.1 自頂向下的硬件加速器設計

由上節對JPEG編解碼關鍵算法的分析可知, JPEG編解碼中計算復雜性高且適合硬件加速的主要操作有色度空間轉換、FDCT/IDCT變換及量化/反量化。為使硬件架構在軟件協同工作下能夠同時支持以上3種操作,必須對算法進行分析,提取三者的相同基本操作,從而設計硬件加速器功能。本文采用自頂向下的設計方法分析三者的基本操作。圖5展示了色度空間轉換的分析過程。首先,如式(1)所示,色度空間轉換包含大量浮點乘法,不適合硬件實現。因此,為簡化硬件加速器設計,把色度空間轉換中的浮點操作替換成定點操作:把各系數轉換為Cij=Coefficient/2N形式。綜合考慮轉換精度與硬件實現的開銷,選擇 N為16。則當系數為1.402時,系數 Coefficient為 91 881,則 91 881/ 65 536=1.401 993,其與浮點實際值的誤差只有0.000 4%,滿足色度空間轉換精度要求,整個替換過程如圖5步驟1所示。經轉換后,色度空間轉換主要包括對原像素的補償(加減)、系數相乘和移位操作。通過觀察可以發現RGB的3種色度的轉換對YCrCb的補償均相同為向量(0,128,128),所以把色度空間轉換過程統一為矩陣的形式,如圖5步驟2所示。最后,為增加硬件加速器配置的靈活性,把色度空間轉換進一步細化為向量加法、向量乘法和向量移位操作[11],如圖5步驟3所示。與色度空間轉換分析類似,DCT變換主要是矩陣乘法,一維FDCT的一次矩陣乘法可以通過64次向量乘法實現,量化和反量化分別是把DCT變換或熵解碼得到的8×8塊與量化表相乘,也可細化為向量點乘操作(本文中符號為※,定義為目標向量中的每個點等于2個源向量中對應的點相乘)。綜合考慮以上分析結果,提出的硬件架構需實現向量加減法、向量點乘、向量乘法(MAC)、向量移位及飽和操作。

圖5 色度空間轉換的細化

3.2 JPEG硬件加速器架構

綜合考慮上節的眾多因素,提出如圖6所示的4路并行硬件加速器架構。該架構中操作數讀取和結果回寫采用獨立接口:2個AHB[12]主接口用于操作數的讀取,一個AHB主接口用于結果的回寫。在系統中通過合理安排存儲器架構可以使讀寫同時進行,有效提高加速器的吞吐量。加速器計算核心是多路向量運算單元,支持向量加減、向量乘法和向量點乘等基本操作,對于計算結果可進一步進行移位和飽和運算,向量維數通過軟件靈活可配。由于JPEG編解碼中像素位寬通常為8 bit而片上系統(System on Chip, SoC)的總線帶寬多為32 bit,為有效利用系統帶寬,加速器最多支持4路向量操作并行;同時考慮到像素值的取值范圍通常為0~255,而DCT或者色度空間轉換以后的值可能超出這個界限,在硬件中增加對向量運算結果的飽和運算,這使硬件加速器既具有通用性,又有利于JPEG的編解碼。

由于總線帶寬限制,硬件加速器一個時鐘周期內通常只能讀回2個32 bit數據,而JPEG應用中往往有大量數據需要同時處理,例如每次IDCT變換中往往針對8×8的矩陣進行,因此需要連續進行多次操作。而且一次向量操作所需的數據本身也很難一次取回,所以硬件加速器需要并行讀取數據和計算。針對JPEG編解碼應用以上特點,本文采用4級流水線架構實現硬件加速器,如圖7所示。

圖6 加速器硬件架構

圖7 硬件加速器流水線架構

各級流水線功能分別介紹如下:

第1級:AG級(Address Generation)。圖像處理往往以宏塊為單位進行,例如在 JPEG中 FDCT/ IDCT變換均以8×8的MCU為單位。如圖8所示,一個宏塊的數據在存儲器中往往不是按順序保存的,對于一個8×8的MCU,同一行像素點的保存地址是按像素點位寬增加的,而進行下一行像素處理時,地址需要跳轉一行像素點的大小。為了滿足圖像處理中像素讀取的這個特點,本文提出的地址生成級(AG級)支持2層嵌套循環工作模式,2層循環支持不同的尋址模式。例如對于8×8塊的DCT變換,內層循環進行一行向量的乘法,地址逐像素增加;而外層循環控制對哪一行像素進行變換,地址按行增加。通過這種模式,可以顯著減少軟件對硬件的配置時間。

圖8 地址的跳變

第2級:DF級(Data Fetch級)。讀取相應的數據,并對數據進行預處理。AG級向總線發起數據讀取請求,DF級根據總線的狀態對數據進行采樣,若總線未及時返回數據則將導致流水線停頓。采樣完成數據以后,根據操作類型和配置對數據進行預處理,例如如果是4路向量減法,則對其中一個操作數按8 bit為單位進行取反處理。為了使硬件加速器具有通用性,還支持操作數的移位和取絕對值操作,這些操作在音視頻應用中會頻繁使用。

第3級:CAL級(Calculation級)。根據配置的數據位寬和并行路數,對操作數進行乘法、加法或者乘累加操作。對于乘累加操作,WB級的結果被返回到CAL級與當前的相乘結果相加。

第4級:WB級(Write Back級)。WB級主要負責對計算結果作移位取飽和等后處理,同時根據計算狀態決定是否有數據要回寫到存儲器并產生相應的地址。例如對于2個8維的向量相乘,需要進行8次乘累加操作,所以WB級把前7次的結果都返回到CAL級,只有在得到第8次的結果后才向總線發起數據寫操作。

4 JPEG編解碼軟硬件協同工作

JPEG編解碼軟硬件協同工作如圖9所示,以處理器為控制核心,對加速器進行配置實現向量加減、向量乘法、向量點乘、移位和飽和等原子操作。根據JPEG編解碼性能的需求,硬件層可以實例化多個加速器,使得多個向量操作可以被同時調用,提高處理的并行性。然后,以原子操作為基本單位開發JPEG編解碼驅動函數,如量化/反量化、FDCT/IDCT、色度空間轉換,同時以純軟件方式實現熵編解碼函數。最后,調用驅動函數實現JPEG編解碼應用函數。

圖9 JPEG編解碼軟件映射整體流程

因為JPEG編解碼應用主要通過調用驅動函數實現,硬件加速器對其完全透明,所以即使在硬件加速器結構調整的情況,應用層也無需作任何修改。本文中軟硬件協同工作的核心在于驅動函數與原子操作之間的映射,以YCrCb到RGB的色度空間轉換過程為例說明驅動函數到原子操作的映射優化過程。色度空間通常是在編碼之前或者解碼之后,以整幅圖像為對象進行操作,但為保證像素地址連續性同時減少向量操作的次數,本文以一行所有像素點的同一種操作作為一次向量運算。由圖5可知,矩陣乘法中多個系數為0,所以可以對矩陣操作進行優化,從而減少向量操作的維數,如圖10步驟1和步驟2所示,每個點的計算過程轉換成圖中操作5和操作6這2個向量加法,其中的相關變量如圖中虛線框中間變量所示。由于浮點系數與結果的移位操作在向量運算中同時進行,故圖10中沒有給出,只列出核心操作過程。

圖10 色度空間轉換的映射過程

對于一幅cif圖像(352×288)的一行操作如表1所示,只需按照圖10中操作1~操作6進行6次加速器向量運算。整個cif圖像的轉換則需按照表1進行288次加速器調用。

表1 YCrCb到RGB的映射過程

5 實驗結果與分析

本文實驗通過構建一個簡單的片上系統(SoC)平臺用于評估JPEG解碼器軟硬件協同工作的性能。該平臺主要包含高性能RISC處理器CK610、時鐘發生器(CLOCK GEN)、復位器(RESET GEN)、AHB總線、片上SRAM(SMS)、片外SDRAM、JPEG加速器模塊、顯示器(LCD)和一些輔助IP,架構如圖11所示。系統采用48 MHz時鐘頻率,處理器指令存放在片上SRAM中,圖像數據保存在片外SDRAM,CPU使用了8 Kb的指令cache和8 Kb的數據cache。實驗結果在FPGA板上通過LCD顯示器顯示出來。

圖11 SoC架構

實驗中選取大小不同的5幅JPEG壓縮圖像作為測試激勵,在FPGA開發板分別采用純軟件和基于硬件加速器的軟硬件協同工作方式進行解碼,實驗結果如表2所示。實驗結果表明,基于硬件加速器的反量化和IDCT過程時間優化了64%~72%,色度空間轉換過程優化了57%~72%,整個JPEG解碼過程優化了35%~41%,與純軟件方式相比性能有顯著提高。在TSMC13工藝下CPU的面積是2.25 mm2,而硬件加速器的面積只有0.229 mm2,與純軟件方式相比,在不足10%的面積開銷下使得JPEG解碼性能提高了近40%。

表2 純軟件與硬件加速結果對照

6 結束語

本文通過分析JPEG的編解碼過程,提出了一種靈活可配的硬件加速器。并基于此加速器,將解碼過程中的IDCT、反量化和色度空間轉換部分映射到加速器上,實現了JPEG解碼的軟硬件協同設計,在只增加10%面積的代價下,與純軟件相比,將JPEG的解碼速度提高了40%左右。另外,此加速器單元的高靈活性和可配性使得其可用于基于向量運算的其他算法,在同一個SoC中多個子模塊都可以使用加速器,系統性能將大幅提高。

[1] JPEG.JPEG Homepage[EB/OL].(2013-01-06).http:// www.jpeg.org/jpeg/index.html.

[2] 張奇惠.JPEG靜止圖像壓縮技術的ASIC實現[D].鄭州:河南大學,2007.

[3] Xie Xiang,Li Guolin,Chen Xinkai,et al.A Low Complexity Near-lossless Image Compression Method and Its ASIC Design for Wireless Endoscopy System[C]//Proceedings of the 6th International Conference on ASIC.[S.l.]:IEEE Press,2005:37-40.

[4] Shan Junming,Wang Duyao,Yang Eyan.High Performance JPEG Decoder Based on FPGA[C]//Proceedings of Asia Pacific Conference on Postgraduate Research in Microelectronics and Electronics.[S.l.]:IEEE Press,2011:57-60.

[5] 趙 輝,孫紅星.基于DSP_FPGA的視頻壓縮系統的設計[C]//2009年中國控制與決策會議論文集.桂林:[出版者不詳],2009:1985-1990.

[6] 朱夢宇,楊裕亮.基于硬件加速的無損醫學圖像壓縮研究[EB/OL].(2010-12-01).http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZNXX201012013075.htm.

[7] 耿 倩,王耀南,余 浩.基于DSP的JPEG靜態圖像壓縮編碼設計與實現[J].計算機工程與應用,2006, 42(23):82-84.

[8] 劉瑞祥,趙 珊,鮑 泓.基于DCT壓縮的JPEG圖像檢索算法[J].計算機工程,2010,36(5):225-227.

[9] Free Software Foundation Inc..GNU gprof[EB/OL].(2011-04-13).http://www.cs.utah.edu/dept/old/ texinfo/as/gprof.html.

[10] 劉 洋,陳 杰.JPEG解碼器的軟硬件協同設計[J].微電子學與計算機,2005,22(3):23-27.

[11] Chouliaras V A,Nunez J L,Mulvaney D J,et al.A Multi-standard Video Accelerator Based on a Vector Architecture[J].IEEE Transactionson Consumer Electronics,2005,51(1):160-167.

[12] Synopsys.AMBA Specification[EB/OL].(2012-12-23).http://www.synopsys.com/IP/SoCInfrastructureIP/Design Ware/AMBA/Pages/default.aspx.

編輯 顧逸斐

A Flexible and Configurable Architecture of Software and Hardware for JPEG Codec

LI Ruizhen1,ZHANG Xiaoxu1,MA De2,HUANG Kai1,YAN Xiaolang1
(1.Institute of Very Large Scale Integrated Circuits Design,Zhejiang University,Hangzhou 310027,China;
2.Institution of Microelectronics CAD,Hangzhou Dianzi University,Hangzhou 310018,China)

Joint Picture Experts Group(JPEG)compression standard is widely used in static image codec for its high compression ratio and strong practicality,while it requires better performance in feature of real-time and compression speed.According to the basic vector arithmetic extracted from JPEG process,a flexible and configurable accelerator for JPEG codec is proposed to achieve the vector addition,multiplication,dot multiplication,shifting and saturation operations.Software and hardware cooperation is used in driving the accelerator to finish the Inverse Discrete Cosine Transform(IDCT),inverses quantization and color space conversion,while doing the other part in JPEG decoding with software.In the condition of increasing 0.229 mm2area,the process doing with accelerator costs 35%of the time costs in software,and the JPEG decoding costs only 60% of the time.This method improves the JPEG codec speed and can be used widely according to its flexibility and configurability.

Joint Picture Experts Group(JPEG);accelerator;Discrete Cosine Transform(DCT);color space conversion;quantization;software and hardware co-design

1000-3428(2014)11-0266-07

A

TP391.41

10.3969/j.issn.1000-3428.2014.11.053

李瑞珍(1989-),女,碩士,主研方向:SoC設計與驗證;張曉旭,博士;馬 德,講師;黃 凱,副教授;嚴曉浪,教授。

2013-10-31

2013-12-31E-mail:made@hdu.edu.cn

中文引用格式:李瑞珍,張曉旭,馬 德,等.一種靈活可配置的JPEG編解碼器軟硬件架構[J].計算機工程,2014, 40(11):266-272.

英文引用格式:Li Ruizhen,Zhang Xiaoxu,Ma De,et al.A Flexible and Configurable Architecture of Software and Hardware for JPEG Codec[J].Computer Engineering,2014,40(11):266-272.

猜你喜歡
編解碼色度加速器
莫比斯加速器眾創辦公空間
知識快餐店 科學加速器
全民小康路上的“加速器”
1553B總線控制器編解碼設計
大型民機試飛遙測視頻編解碼方法研究
基于改進色度模型的非接觸式心率檢測與估計
景德鎮早期青白瓷的器型與色度
如何提高蘋果的著色度
在線色度分析儀的設計應用
2G/3G網絡IP化語音編解碼協商策略部署研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合