国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的CCSDS位平面編碼設(shè)計與實現(xiàn)

2017-05-03 11:05王娟胡永剛吳憲祥
微型電腦應(yīng)用 2017年1期
關(guān)鍵詞:碼流復(fù)雜度預(yù)處理

王娟, 胡永剛, 吳憲祥

(1. 西安翻譯學(xué)院 工程技術(shù)學(xué)院, 西安 710105;2. 西安電子科技大學(xué) 空間科學(xué)與技術(shù)學(xué)院ICIE研究所, 西安 710071)

基于FPGA的CCSDS位平面編碼設(shè)計與實現(xiàn)

王娟1,2, 胡永剛2, 吳憲祥2

(1. 西安翻譯學(xué)院 工程技術(shù)學(xué)院, 西安 710105;2. 西安電子科技大學(xué) 空間科學(xué)與技術(shù)學(xué)院ICIE研究所, 西安 710071)

針對已有位平面編碼實現(xiàn)掃描效率低、復(fù)雜度高等缺點,提出了一種CCSDS圖像壓縮位平面編碼技術(shù)的FPGA實現(xiàn)方法。將CCSDS圖像壓縮算法位平面編碼分為預(yù)處理、掃描、熵編碼等幾個關(guān)鍵模塊,采用流水結(jié)構(gòu)對系統(tǒng)進(jìn)行設(shè)計。最后,用Modelsim進(jìn)行仿真測試,經(jīng)檢驗,輸出的編碼結(jié)果正確。實驗表明,提出的實現(xiàn)方案編碼效率高,復(fù)雜度低,有一定的實用價值。

CCSDS; 圖像壓縮; 位平面編碼; FPGA

0 引言

隨著航天技術(shù)的飛速發(fā)展和人們對空間采集圖像的質(zhì)量要求越來越高,圖像的分辨率不斷增加,因此,數(shù)據(jù)的存儲量和傳輸量急劇增長。大數(shù)據(jù)量的圖像會給星載存儲器的存儲容量,通信信道的帶寬,以及計算機的處理速度帶來很大的壓力,為了有效傳輸數(shù)據(jù),圖像的高效壓縮成為必然的解決方法。CCSDS(Consultative Committee for Space Data Systems,空間數(shù)據(jù)咨詢委員會)2005年正式推出了新一代空間圖像壓縮推薦標(biāo)準(zhǔn)CCSDS122.0-B-1[1],現(xiàn)在,該標(biāo)準(zhǔn)已經(jīng)被國際航空界廣泛采用,并成為各參與國制定自身應(yīng)用標(biāo)準(zhǔn)的一個重要參考文件,為實現(xiàn)開放互連的國際空間數(shù)據(jù)奠定了技術(shù)基礎(chǔ)。然而,通常所用的處理器實現(xiàn)CCSDS標(biāo)準(zhǔn),需要高頻的時鐘,較大的緩存等,對CCSDS的應(yīng)用有很大的限制[2]。而FPGA具有內(nèi)部資源多,可并行結(jié)構(gòu)執(zhí)行,具有豐富的內(nèi)部存儲等優(yōu)點,可以很好的解決以上問題。所以,用FPGA實現(xiàn)CCSDS是一種有效的解決圖像壓縮的方法。

本文用FPGA實現(xiàn)CCSDS算法的位平面編碼,將位平面編碼分為預(yù)處理,掃描,熵編碼等關(guān)鍵模塊,對這些關(guān)鍵模塊采用流水的結(jié)構(gòu)設(shè)計,從而提高系統(tǒng)掃描效率,降低系統(tǒng)復(fù)雜度。最后,對模塊進(jìn)行仿真驗證,得出結(jié)論。

1 位平面編碼算法分析

CCSDS算法的基本結(jié)構(gòu)主要分為兩個部分,離散小波變換和位平面編碼[3],如圖1所示。

圖1 CCSDS圖像壓縮算法的基本結(jié)構(gòu)

輸入圖像經(jīng)過離散小波變換,進(jìn)行頻帶分解,對原始圖像去相關(guān)。然后對變換后的圖像數(shù)據(jù)進(jìn)行掃描以及熵編碼,最后拼接得到所需碼流。

1.1 離散小波變換

離散小波變換主要是去除圖像數(shù)據(jù)間的相關(guān)性,將數(shù)據(jù)間的相關(guān)冗余轉(zhuǎn)換成小波系數(shù)間的統(tǒng)計冗余,從而有利于現(xiàn)有的熵編碼技術(shù)進(jìn)行壓縮編碼。CCSDS推薦了浮點和整數(shù)兩種雙正交小波變換的方法,由于整數(shù)變換節(jié)省資源,運算量小,有利于硬件實現(xiàn),且能實現(xiàn)完全重構(gòu),所以,整數(shù)小波變換具有更大的應(yīng)用優(yōu)勢。小波變換后,將原始圖像進(jìn)行三級的二維分解,得到10個子帶,小波變換系數(shù)分布,如圖2所示。

圖2 小波變換系數(shù)分布

1.2 位平面編碼

位平面編碼主要包括三個部分,段頭編碼,直流系數(shù)和AC Depth編碼,以及交流系數(shù)位平面編碼[4]。段頭所需的信息在預(yù)處理之后都可獲得。直流系數(shù)編碼用rice算法[4],對直流系數(shù)進(jìn)行量化后,按照光柵掃描的順序?qū)懭氪a流中,從最高位開始,直到BitDepthAC位為止。對于直流系數(shù)的低BitDepthAC位,將在交流系數(shù)位平面編碼中的stage0中進(jìn)行編碼。然后,開始交流系數(shù)位平面編碼。交流系數(shù)位平面編碼可以分為5個部分,stage0~stage4.。stage0是對直流系數(shù)編碼中的低BitDepthAC位進(jìn)行編碼,stage1~stage3對交流系數(shù)進(jìn)行編碼,每個stage分別對應(yīng)parent,children和grandchildren中的系數(shù),最后,對滿足條件的系數(shù)放入stage4中編碼。

經(jīng)過三級小波變換后的系數(shù)分布如圖2所示,在不同的頻帶都有每個家族的成員,為了方便對數(shù)據(jù)掃描,減少掃描冗余,位平面編碼模塊中,首先將每個家族的成員聚集在一起,按照頻帶由低到高,由左到右的原則排列,放入緩存中,并在放入的同時獲得最大值集合,即獲得相應(yīng)頻帶的最大值,放入最大值集合緩存中,然后開始掃描。在掃描時,最大值集合和系數(shù)集合串行進(jìn)行,在掃描完最大值集合后,開始掃描系數(shù)集合,雖然這樣掃描的時間延長,但是可以減小實現(xiàn)復(fù)雜度,減小硬件實現(xiàn)的難度。直流系數(shù)和AC Depth按照標(biāo)準(zhǔn)要求,先進(jìn)行量化,量化后進(jìn)行rice編碼,本文采用最優(yōu)化的方法進(jìn)行編碼,即獲得使碼流最少的編碼選項后,進(jìn)行編碼。交流編碼分為位平面掃描和熵編碼兩部分,位平面編碼按照系數(shù)的重要性由高到低依次掃描,得到映射符號,并將這些符號按照5個stage,存儲在緩存中。然后在獲得編碼選項后,進(jìn)行熵編碼,得到碼流。

2 算法的FPGA實現(xiàn)

2.1 算法實現(xiàn)總體框架

原始圖像經(jīng)過小波變換后,變換結(jié)果送入小波系數(shù)緩存。在位平面編碼算法中,首先對小波系數(shù)進(jìn)行預(yù)處理,實現(xiàn)小波樹的抽取,從小波系數(shù)緩存中讀取待編碼的段的系數(shù),組織成適合位平面編碼的結(jié)構(gòu),同時完成系數(shù)按頻帶加權(quán),掃描系數(shù)深度,以及統(tǒng)計Ci,Gi,Hij等各集合系數(shù)的最大值的工作以輔助位平面掃描。將預(yù)處理的結(jié)果送入預(yù)處理緩存,DC系數(shù)緩存,AC Depth緩存。DC系數(shù)編碼和AC Depth編碼的編碼結(jié)構(gòu)相似,都是采用rice算法進(jìn)行編碼。位平面掃描是小波系數(shù)進(jìn)行預(yù)處理后,形成的適合位平面編碼的系數(shù)掃描[5],把掃描結(jié)果放入掃描緩存中,然后對掃描緩存中的數(shù)據(jù)進(jìn)行熵編碼,最后和DC系數(shù)和AC Depth編碼結(jié)果進(jìn)行碼字拼接,形成最后的碼流輸出。由于DC系數(shù)編碼和AC Depth編碼與交流系數(shù)位平面編碼是相互獨立的,將兩部分并行處理,使得壓縮周期減少,提高壓縮效率。算法整體結(jié)構(gòu),如圖3所示。

圖3 算法實現(xiàn)整體框架

2.2 位平面編碼結(jié)構(gòu)

選取定級因素因子體系和確定其權(quán)重是耕地定級關(guān)鍵的一步??紤]到耕地的自然、社會、經(jīng)濟與區(qū)位屬性,需要選取的評價因素因子較多,計算量較大,利用GIS對空間信息強大的采集、存儲、分析、管理能力是耕地定級及對成果進(jìn)行科學(xué)管理的有效途徑[12-16]。

2.2.1 預(yù)處理模塊

小波變換后,系數(shù)是按子帶進(jìn)行存放的,如果直接按子帶進(jìn)行位平面編碼,結(jié)構(gòu)就會變得很復(fù)雜,給設(shè)計帶來很高的難度。因此,首先對小波變換后的系數(shù)進(jìn)行預(yù)處理。預(yù)處理將小波系數(shù)緩存中的系數(shù),進(jìn)行加權(quán)以及家族進(jìn)行聚合,形成適合位平面掃描的結(jié)構(gòu),并將結(jié)果放入預(yù)處理緩存中。同時對小波系數(shù)測量深度,得到DC系數(shù)和AC Depth,將得到的結(jié)果放入DC系數(shù)和AC Depth緩存中。

2.2.2 DC系數(shù)編碼與AC Depth編碼模塊

DC系數(shù)編碼與AC Depth編碼的核心算法思想是rice算法,因此,可以采用相似的編碼結(jié)構(gòu)。同時,由于預(yù)處理后產(chǎn)生的數(shù)據(jù)可以組成段頭,在本文中,將段頭,DC系數(shù)編碼與AC Depth編碼放在這個模塊中實現(xiàn),如圖4所示。

圖4 DC系數(shù)、AC Depth編碼結(jié)構(gòu)

在預(yù)處理結(jié)束后,給DC系數(shù)編碼與AC Depth編碼模塊的start信號有效,開始進(jìn)行編碼。編碼參數(shù)根據(jù)DC系數(shù)與AC Depth確定量化參數(shù)q,量化后DC系數(shù)位深度N等參數(shù)。編碼控制首先控制模塊對DC系數(shù)進(jìn)行編碼,從DC系數(shù)緩存中調(diào)入DC系數(shù),經(jīng)過量化后,得到高BitDepthDC-q位。DC系數(shù)經(jīng)過量化后,送入預(yù)處理,然后將經(jīng)過預(yù)處理后的數(shù)據(jù)送入gaggle buffer中緩存。同時,預(yù)處理在進(jìn)行處理的同時,獲得編碼選項。AC Depth編碼和DC系數(shù)編碼的過程是一樣的。獲得編碼數(shù)據(jù)后,將段頭信息,DC和AC Depth的編碼數(shù)據(jù)送入熵編碼模塊,然后送入碼流拼接模塊,得到碼流。

本文中的編碼器獲得編碼選項采用的是基于遍歷的選優(yōu)法方法。對每個群的數(shù)據(jù)在每個編碼選項下統(tǒng)計編碼后的碼流長度,對比統(tǒng)計結(jié)果,獲得使碼流長度最短的編碼選項k作為該群的編碼選項。

2.2.3 交流系數(shù)位平面編碼模塊

圖5 位平面編碼結(jié)構(gòu)

由于掃描和熵編碼占用了較多的壓縮時間,在這里對掃描和熵編碼采用流水的結(jié)構(gòu),當(dāng)一個位平面掃描完成后,將映射符號放入stage_MEM中,然后熵編碼模塊進(jìn)行編碼,在熵編碼的同時,對下一個位平面進(jìn)行掃描。

在一個段的AC系數(shù)編碼中,stage0~stage4的編碼過程是交叉進(jìn)行的,即采用廣度優(yōu)先的掃描方式獲得每個stage的信息,然而這樣的掃描方式會導(dǎo)致小波系數(shù)的重復(fù)掃描,同時也會重復(fù)掃描最大值參數(shù)(集合最大值存儲器),增加實現(xiàn)的復(fù)雜度與實現(xiàn)難度,因此,本文在這里采取深度優(yōu)先的方式,將stage1~stage3的掃描過程串行執(zhí)行,在獲得stage1~stage3信息的時候,同時獲得stage4的信息,如圖6所示。

3 測試及結(jié)果分析

本文用verilog語言進(jìn)行電路設(shè)計描述,采用256*256像素大小的lena灰度圖像進(jìn)行測試,時鐘頻率為30 MHz,最后利用Modelsim 6.5e仿真,得到測試結(jié)果。

3.1 DC系數(shù)編碼與AC Depth編碼仿真結(jié)果:

直流系數(shù)的編碼,如圖7所示。

圖6 掃描生成編碼信息的順序

圖7 直流系數(shù)編碼

從緩存中讀出直流系數(shù)進(jìn)行量化,同時獲得量化步長,經(jīng)映射后獲得編碼字,對參數(shù)k按照最優(yōu)化方法選取,生成所需碼字,然后進(jìn)行碼流組織,輸出碼流。

3.2 掃描結(jié)果仿真:

從緩存中讀出最大值和塊重要信息,按照算法標(biāo)準(zhǔn)生成stage0~stage4的信息,同時,將stage0~stage4的信息存入stage_0 MEM~stage_4 MEM。當(dāng)數(shù)據(jù)有效時,存儲地址遞加,write_en有效。在存儲的過程中,計算出編碼選項code_option。如圖8所示。

圖8 掃描結(jié)果

3.3 位平面編碼結(jié)果仿真:

當(dāng)一個位平面的的掃描完成時,開始進(jìn)行熵編碼和碼流拼接。從stage_0 MEM~stage_4 MEM中依次讀出數(shù)據(jù),進(jìn)行由symbol到變長編碼字的映射,并且在第一次出現(xiàn)給定長度的參數(shù)碼字之前,插入編碼選項code_option,最后按照8bit長度輸出碼流。將位平面編碼的結(jié)果放入緩存中,如圖9所示。

采用CCSDS官方網(wǎng)站上提供的8bit圖像進(jìn)行測試,圖像格式均為RAW格式,以256*256的Lena圖像為例,本方

圖9 位平面編碼結(jié)果

法可以在50 MHz工作時鐘下零殘差實現(xiàn)圖像的三級小波變換,優(yōu)化前編碼任務(wù)平均消耗時間為21.42 ms,優(yōu)化后編碼任務(wù)平均消耗時間為5.01 ms,是原來未進(jìn)行流水結(jié)構(gòu)優(yōu)化的23.39%,縮短了BPE編碼時間,完全滿足40 ms/幀的實時性要求。

4 總結(jié)

本文針對CCSDS圖像壓縮算法推薦標(biāo)準(zhǔn),為提高掃描效率和降低實現(xiàn)復(fù)雜度,采用流水結(jié)構(gòu)的方法,對位平面編碼中的各個模塊進(jìn)行設(shè)計。Modelsim中仿真結(jié)果表明,系統(tǒng)編碼結(jié)果正確,復(fù)雜度低,能有效的提高編碼效率,在圖像壓縮領(lǐng)域具有較好的應(yīng)用前景。

[1] Image Data Compression: recommendation for space data systems standards, CCSDS122,0-B-1, blue book[M]. Washington, DC: CCSDS, 2005.

[2] 濮建福, 裴加軍,張寧等.基于CCSDS的高光譜壓縮空譜聯(lián)合FPGA設(shè)計與實現(xiàn)[J]. 上海航天, 2015, 32(6): 53-57.

[3] Lossless data compression: recommendation for space data systems standards, CCSDS121. 0-B-2, blue book[M]. 2nd Ed. Washington DC: CCSDS, 2012.

[4] Pen S Y, Philipper A, Aaron Kiely, et al. The New CCSDS Image Compression Recommendation[C]∥ IEEE Aerospace Conference, 2005. Piscataway, NJ, 2005: 4138-4145.

[5] GU Xiaodong, WANG Huaichao, ZHANG Xuequan. Design and Implementation of Image Compression Core Based on CCSDS Algorithm[C]∥4th International Conference on Computer Science & Education(ICCSE 2009), 2009. Piscataway,NJ, 2009: 1873-1876.

[6] 毛峽, 湛杰. CCSDS中位平面編碼的FPGA優(yōu)化實現(xiàn)[J]. 電視技術(shù), 2011, 35(7): 52-55.

Design and Implementation of Bit-Plane Encoding for CCSDS Based on FPGA

Wang Juan1,2,Hu Yonggang2,Wu Xianxiang2

(1. School of Technology and Engineering,Xi’an Fanyi University,Xi’an 710105,China;2. ICIE Institute,School of Aerospace Science and Technology,Xidian University,Xi’an 710071, China)

Aiming at overcoming the shortcomings of low scan efficiency and high complexity that exist in bit-plane coding, a bit-plane coding module in CCSDS image compression is proposed and implemented on FPGA. Bit-plane coding in CCSDS image compression is composed of several key modules including pretreatment, scan, entropy coding etc. Besides, the architecture in pipeline is adopted to design the system. Finally, the simulation test is carried out on Modelsim and the encoding result is turned out to be correct. The experimental results show that the implementation scheme proposed in this paper has high encoding efficiency, low complexity, thus it has great practical value.

CCSDS; image compression; bit plane encoding; FPGA

國家自然科學(xué)基金項目(61105066);中央高?;究蒲袠I(yè)務(wù)費專項資金資助項目(JB141305)

王娟(1980-), 女, 山東沂水人, 講師, 碩士, 主要研究領(lǐng)域為圖像處理、模式識別, E-mail: hiwangjuan@163.com; 胡永剛(1985-),男,陜西榆林人,碩士,主要研究領(lǐng)域為FPGA設(shè)計應(yīng)用、圖像處理。 吳憲祥(1980-),男,山東沂水人,博士,碩士生導(dǎo)師,主要研究領(lǐng)域為進(jìn)化計算、圖像處理; 吳憲祥(1980-),男,沂水人,博士,博士生導(dǎo)師,研究方向:進(jìn)化計算、圖像處理,西安 710071。

1007-757X(2017)01-0005-04

TP751.1

A

2016.05.05)

猜你喜歡
碼流復(fù)雜度預(yù)處理
求解奇異線性系統(tǒng)的右預(yù)處理MINRES 方法
數(shù)字電視TS碼流協(xié)議簡要分析
高COD二噻烷生產(chǎn)廢水預(yù)處理研究
高清網(wǎng)絡(luò)攝像機圖像延遲分析及解決方案
一種低復(fù)雜度的慣性/GNSS矢量深組合方法
基于預(yù)處理MUSIC算法的分布式陣列DOA估計
求圖上廣探樹的時間復(fù)雜度
某雷達(dá)導(dǎo)51 頭中心控制軟件圈復(fù)雜度分析與改進(jìn)
出口技術(shù)復(fù)雜度研究回顧與評述
基于膜過濾的反滲透海水淡化預(yù)處理