




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中南民族大學(xué)碩士學(xué)位論文嵌入式塊解碼器研究與硬件設(shè)計(jì)姓名:陳方強(qiáng)申請(qǐng)學(xué)位級(jí)別:碩士專業(yè):通信與信息系統(tǒng)指導(dǎo)教師:熊承義20090607中南民族大學(xué)碩士學(xué)位論文摘要嵌入式優(yōu)化截?cái)鄩K編碼(EmbeddedBlockCoderwithOptimizedTruncation,簡(jiǎn)記為EBCOT算法是由DavidTaubman提出的一種圖像壓縮編碼技術(shù)。EBCOT編碼算法采用了獨(dú)特的兩層編碼結(jié)構(gòu),并引入了多通道位平面編碼以及分層組織比特流的技術(shù),這樣不僅具有更好的壓縮性能,而且使得生成的碼流具有分辨率可伸縮、質(zhì)量可伸縮、隨機(jī)訪問和處理等優(yōu)秀的特性。EBCOT算法被最新的靜止圖像壓縮標(biāo)準(zhǔn)JPEG2000采納為其編解碼引擎。在JPEG2000的諸多應(yīng)用中,如數(shù)碼相機(jī)、高清電視、衛(wèi)星遙感圖像處理,考慮到速度、面積和功耗的需求,研究高性能EBCOT編解碼器的硬件實(shí)現(xiàn)具有十分重要的意義。論文的主要工作包括:首先對(duì)靜態(tài)圖像壓縮標(biāo)準(zhǔn)JPEG2000及其主要架構(gòu)進(jìn)行了簡(jiǎn)要的介紹。然后詳細(xì)介紹了JPEG2000中的EBCOT算法以及整體架構(gòu),并對(duì)位平面解碼BPD算法進(jìn)行了重點(diǎn)介紹。在此基礎(chǔ)上,針對(duì)硬件高速實(shí)現(xiàn),對(duì)其進(jìn)行了優(yōu)化。采用了基于選擇性采樣跳過策略和推測(cè)處理方式的位平面解碼架構(gòu),這樣就可以大大減小關(guān)鍵路徑的延遲。相對(duì)于現(xiàn)有方法的基本BPD架構(gòu),改進(jìn)的算法可以將吞吐量提高50%-100%,同時(shí)只增加25%-30%的硬件消耗。在介紹MQ算術(shù)解碼算法的基礎(chǔ)上,詳細(xì)分析了架構(gòu)中解碼的工作流程及各個(gè)流水級(jí)模塊的設(shè)計(jì)。進(jìn)行相應(yīng)算法優(yōu)化的基礎(chǔ)上,提出了基于4級(jí)流水線的高性能MQ解碼器結(jié)構(gòu)。在QuartusII開發(fā)環(huán)境下對(duì)設(shè)計(jì)進(jìn)行RTL級(jí)描述,用Modelsim進(jìn)行了相應(yīng)的功能仿真;針對(duì)Altera系列FPGACycloneIIEP2C35F484C8進(jìn)行綜合,并完成時(shí)序仿真。實(shí)驗(yàn)結(jié)果表明:該設(shè)計(jì)的最高工作頻率可達(dá)37.64MHz,占資源為557個(gè)LE。在利用有限資源的情況下可以大幅度提高M(jìn)Q算術(shù)解碼器的速度,基本能滿足JPEG2000系統(tǒng)的要求。關(guān)鍵詞:嵌入式優(yōu)化截?cái)鄩K編碼位平面解碼MQ算術(shù)解碼現(xiàn)場(chǎng)可編程門陣列-I-I嵌入式塊解碼器研究與硬件設(shè)計(jì)AbstractEBCOT(EmbeddedBlockCoderwithOptimizedTruncationalgorithmisanimagecompressioncodingtechniquesproposedbyDavidTaubman.EBCOTencodingalgorithmusesauniquetwo-tiercodingstructureandintroducethetheoryofmulti-channelbit-planecodingandthehierarchicalorganizationofbit-stream.Thus,ithasnotonlybettercompressionperformance,butalsomakesthegeneratedcodestreamwithOutstandingcharacteristicsofscalableresolution,scalablequality,andrandomaccess.EBCOTalgorithmisadoptedascodecengineofthelateststillimagecompressionstandardJPEG2000.Inconsiderationofspeed,areaandpower,thestudyonthehardwareimplementationofhighperformanceEBCOTcodecissignificantinmanyrealsystemsusingJPEG2000,suchasdigitalcamera,highdefinitiontelevision,Satelliteremotesensingimageprocessingandsoon.Thecontributionsofthisthesisincludes:Atfist,abriefintroductionofstillimagecompressionstandardJPEG2000anditsmainstructurewasmadeinthispaper.WedescribedtheEBCOTalgorithmindetail,aswellastheoverallframework.Basedonspecialintroductionofbit-planedecoderalgorithm,weoptimizedthedecoderflowforthehigh-speedhardwareimplement.Wehavestudiedanovelselectivesample-skippingstrategyforBPDtoincreasetheoverallblockdecoderthroughput.Thecriticalpathoftheproposedarchitectureisfurtherimprovedbytheuseofspeculativeprocessing.Thethroughputratesoftheusedarchitecturesarehigherby50%-100%,thanthebaselinearchitecturethatisbasedonexistingapproaches.Theincreasedthroughputratesarearchivedwithonlya25%-30%increaseoftheBPDhardwarecost.Then,theMQarithmeticdecodingalgorithmhasbeeninvestigatedindepthinthispaper.AhighperformancearchitectureofMQdecoderwith4-stagepipelinehasbeenproposedbyalgorithmoptimization.ThisdesignhasbeendescribedbyusingRTLHDL,andimplementedwithAltera’sFPGACycloneIIEP2C35F484C8.ThefunctionalsimulationandtimingsimulationarecarriedoutunderQuartusIIsoftware.Experimentalresultsindicatethatthemaximumoperationfrequencyoftheproposeddesigncanreachashighas37.64MHz,using557LE.Byusingonlylimitedresources,thespeedofMQdecodercanbeefficientlyincreased,whichalsomeettherequirementsofJPEG2000system.Keywords:EBCOTBPDMQdecoderFPGAII中南民族大學(xué)學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。作者簽名:日期:年月日學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國(guó)家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)中南民族大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。本學(xué)位論文屬于1、保密□,在______年解密后適用本授權(quán)書。√2、不保密□。(請(qǐng)?jiān)谝陨舷鄳?yīng)方框內(nèi)打“√”作者簽名:日期:年月日導(dǎo)師簽名:日期:年月日中南民族大學(xué)碩士學(xué)位論文第1章緒論1.1課題背景近些年來(lái),隨著多媒體技術(shù)和互聯(lián)網(wǎng)的不斷發(fā)展,圖像壓縮技術(shù)也獲得了空前的進(jìn)步。數(shù)碼相機(jī)、數(shù)碼攝像機(jī)等手持式設(shè)備的普及應(yīng)用,要求圖像壓縮技術(shù)能夠在較高的壓縮比下實(shí)現(xiàn)較好的圖像質(zhì)量,以滿足存儲(chǔ)空間有限條件下的海量數(shù)據(jù)壓縮問題。同時(shí),醫(yī)療,遙感等應(yīng)用領(lǐng)域要求圖像壓縮提供較好的靈活性和延展性。傳統(tǒng)的JPEG標(biāo)準(zhǔn)已無(wú)法滿足人們對(duì)于多媒體圖像處理的要求,由此誕生了新一代靜止圖像壓縮標(biāo)準(zhǔn)JPEG2000[1]。相對(duì)于JPEG來(lái)說(shuō),JPEG2000提供了一套新的標(biāo)準(zhǔn),它所具有的一些特征對(duì)于一些互聯(lián)網(wǎng)和多媒體技術(shù)應(yīng)用是非常重要的。JPEG的四種模式——順序模式、漸進(jìn)模式、無(wú)損模式和分層模式被集成在一個(gè)新的標(biāo)準(zhǔn)之中。在編碼端以最佳的壓縮質(zhì)量(包括無(wú)失真壓縮和最大的圖像分辨率壓縮圖像,在解碼端可以從碼流中以任意的圖像質(zhì)量和分辨率解壓圖像。因而,JPEG2000可以在大多數(shù)圖像領(lǐng)域得到應(yīng)用,如數(shù)碼相機(jī)、互聯(lián)網(wǎng)、彩色傳真、數(shù)字?jǐn)z像、醫(yī)療圖像、移動(dòng)通信、數(shù)字電影等。JPEG2000編碼系統(tǒng)的基本架構(gòu)可以分為預(yù)處理、空間變換、位平面建模和算術(shù)編碼等幾個(gè)部分。其中,空間變換采用DWT[2](DiscreteWaveletTransformation,離散小波變換,在相同的圖像壓縮率下,對(duì)靜止圖像,DWT編碼能夠獲得比DCT編碼高約1dB的峰值信噪比[3]。JPEG2000引入全新的EBCOT(EmbeddedBlockCodingwithOptimizedTruncation算法,它是JPEG2000體系中的關(guān)鍵部分,數(shù)據(jù)壓縮和碼流控制都在這里實(shí)現(xiàn),具有計(jì)算密集,以位處理為主,耗時(shí)較大的特點(diǎn)。EBCOT編碼算法采用了獨(dú)特的兩層編碼結(jié)構(gòu),第一層(Tier-1包括上下文環(huán)境建模[4]和算術(shù)編碼[5]兩部分,進(jìn)行嵌入式塊編碼產(chǎn)生壓縮的碼流。第二層(Tier-2對(duì)生成的壓縮碼流進(jìn)行分層組織,采用了壓縮后率失真優(yōu)化算法和質(zhì)量層技術(shù)。在整個(gè)JPEG2000編解碼系統(tǒng)中,EBCOT編解碼器已經(jīng)成為系統(tǒng)運(yùn)算速度的瓶頸。因此,如何立足于硬件實(shí)現(xiàn),提高EBCOT編解碼效率成為JPEG2000編解碼系統(tǒng)硬件高速實(shí)現(xiàn)需要解決的關(guān)鍵問題之一。因此在本課題中,需要對(duì)JPEG2000中的位平面解碼算法和算術(shù)解碼算法進(jìn)行優(yōu)化,降低其算法復(fù)雜度,并使其適合于硬件實(shí)現(xiàn);同時(shí)設(shè)法提高編解碼效率和降低硬件規(guī)模,使其達(dá)到高速解碼及節(jié)省硬件資源的要求。-1-11.2研究現(xiàn)狀在JPEG2000編解碼系統(tǒng)的實(shí)現(xiàn)上,有基于軟件的實(shí)現(xiàn)方案和基于硬件的實(shí)現(xiàn)方案。其中,Jasper[6],Kakadu,OpenJPEG等都是比較流行的JPEG2000編解碼軟件。與基于軟件的解決方案相比,基于VLSI的硬件解決方案在編解碼效率上更高,更適合實(shí)時(shí)編解碼的要求,但其開發(fā)的復(fù)雜度也更高,調(diào)試更困難。自從JPEG2000標(biāo)準(zhǔn)誕生以來(lái),多家公司和研發(fā)機(jī)構(gòu)發(fā)布了基于JPEG2000標(biāo)準(zhǔn)的硬件解決方案,其中最成功的是ADI公司的ADV202芯片[7]。它是一款單片JPEG2000編解碼芯片,具有實(shí)時(shí)壓縮和解壓縮標(biāo)準(zhǔn)清晰度(SD視頻信號(hào)和高清晰度(HDTV視頻信號(hào)功能,該芯片帶有一個(gè)靈活接口,適用于多種視頻和靜止圖像格式。ADV202有兩種工作模式,一種是編碼模式,另一種是解碼模式。在編碼模式下,視頻數(shù)據(jù)通過VDATA總線輸入ADV202,由小波核對(duì)輸入的數(shù)據(jù)進(jìn)行小波變換,并把所有頻率子帶的小波系數(shù)存入ADV202內(nèi)部的存儲(chǔ)器。每一個(gè)子帶根據(jù)ADV202編碼參數(shù)的設(shè)置進(jìn)一步分成編碼子塊,然后由熵編碼器對(duì)編碼子塊執(zhí)行內(nèi)容建模和算術(shù)編碼,運(yùn)算的結(jié)果存入內(nèi)部存儲(chǔ)器。隨后由內(nèi)部DMA傳輸?shù)紺ODEFIFO,通過HDATA總線把壓縮數(shù)據(jù)流輸出ADV202。在解碼模式下,工作過程是編碼模式的逆過程[8]。然而,由于JPEG2000編解碼算法的復(fù)雜性,直到目前為止,其VLSI實(shí)現(xiàn)的大規(guī)模市場(chǎng)應(yīng)用尚未展開,因此,研究JPEG2000編解碼系統(tǒng)的高性能低資源占用的VLSI實(shí)現(xiàn)仍然是當(dāng)前的一個(gè)研究熱點(diǎn),而其中對(duì)于作為系統(tǒng)速度瓶頸的自適應(yīng)算術(shù)編解碼VLSI實(shí)現(xiàn)的研究尤其具有重要意義。算術(shù)編碼是一種到目前為止最佳的熵編碼方法。但早期的算術(shù)編碼存在無(wú)限精度運(yùn)算的問題,即隨著編碼消息長(zhǎng)度的增加,遞歸運(yùn)算需要的計(jì)算精度隨之增加,表示數(shù)據(jù)所需的位數(shù)也隨之增多,這導(dǎo)致軟硬件實(shí)現(xiàn)的成本太高,阻礙了它的應(yīng)用。直到有人證明編碼過程可以用有限精度處理技術(shù)逼近,算術(shù)編碼才真正開始得到廣泛的應(yīng)用。算術(shù)編碼的另一缺陷是編碼速度太低,這是因?yàn)榫幋a迭代過程中含有整數(shù)乘除運(yùn)算,這些運(yùn)算對(duì)于軟件執(zhí)行和硬件設(shè)計(jì)是十分不利的。IBM公司對(duì)算術(shù)編碼進(jìn)行了大量的研究,提出了一個(gè)用移位和加法實(shí)現(xiàn)二值算術(shù)編碼的方法,從而避免了復(fù)雜的乘除運(yùn)算,并發(fā)表了著名的Q編碼器[9][10],隨后又提出QM編碼器[11](用于JBIG標(biāo)準(zhǔn)和MQ編碼器(用于JBIG2和JPEG2000標(biāo)準(zhǔn)。MQ編碼器在Q編碼器的基礎(chǔ)上,進(jìn)一步改進(jìn)了符號(hào)概率估計(jì)系統(tǒng)。在MQ算術(shù)編解碼器的VLSI實(shí)現(xiàn)方面,國(guó)內(nèi)外的研究人員做了大量的研究,提出了很多有價(jià)值的實(shí)現(xiàn)方案,并采用了很多先進(jìn)的VLSI設(shè)計(jì)技術(shù)。本文對(duì)當(dāng)前國(guó)內(nèi)外在該方向的研究現(xiàn)狀和先進(jìn)技術(shù)進(jìn)行了了解并加以綜合分析,以作為本文的參考和借鑒。1.3本文的主要內(nèi)容和結(jié)構(gòu)論文共分5章,第1章緒論,第2-4章為論文的主體部分,第5章為總結(jié)和展望。論文的詳細(xì)安排如下:第2章為本論文的理論基礎(chǔ)。主要對(duì)靜態(tài)圖像壓縮標(biāo)準(zhǔn)JPEG2000及其主要架構(gòu)進(jìn)行了簡(jiǎn)要的介紹。然后詳細(xì)介紹了JPEG2000中的EBCOT算法以及整體架構(gòu)。第3章對(duì)位平面解碼算法進(jìn)行了重點(diǎn)介紹,并在此基礎(chǔ)上,針對(duì)硬件高速實(shí)現(xiàn),對(duì)其進(jìn)行了優(yōu)化,采用了基于選擇性采樣跳過策略和推測(cè)處理方式的位平面解碼架構(gòu),并做了相應(yīng)的性能分析。第4章在詳細(xì)介紹了MQ解碼算法的基礎(chǔ)上,詳細(xì)分析了架構(gòu)中解碼的工作流程及各個(gè)流水級(jí)模塊的設(shè)計(jì),并進(jìn)行了相應(yīng)的算法優(yōu)化,提出基于4級(jí)流水線的高性能MQ解碼器結(jié)構(gòu)。最后進(jìn)行了性能分析和功能仿真。第5章得出結(jié)論,對(duì)本文的成果進(jìn)行了總結(jié),并對(duì)今后的研究進(jìn)行了展望。第2章JPEG2000標(biāo)準(zhǔn)介紹本章闡述了最新的靜態(tài)圖像壓縮標(biāo)準(zhǔn)——JPEG2000核心編碼技術(shù)的發(fā)展背景,介紹了該標(biāo)準(zhǔn)的應(yīng)用領(lǐng)域及其新特征、編碼系統(tǒng)結(jié)構(gòu)、標(biāo)準(zhǔn)文件格式和相對(duì)JPEG所采用的新技術(shù)。2.1JPEG2000核心編碼技術(shù)的發(fā)展基于小波變換的圖像編碼方法是上個(gè)世紀(jì)90年代左右提出的新方法,它吸收了變換編碼和子帶編碼的優(yōu)點(diǎn),克服了傳統(tǒng)DCT[12]編碼在低比特率時(shí)會(huì)產(chǎn)生方塊效應(yīng)的缺點(diǎn),能夠更好的利用人的視覺特性。另外,由于小波變換具有非常好的能量聚集性能,而且能夠用于圖像變換的小波基非常豐富,因此基于小波變換的圖像編碼成為目前圖像壓縮領(lǐng)域的一個(gè)研究熱點(diǎn)。最新的靜態(tài)圖像壓縮標(biāo)準(zhǔn)——JPEG2000中采用的是一種基于最優(yōu)截?cái)嗟那度胧綁K編碼算法(EBCOT:EmbeddedBlockCodingwithOptimizedTruncation,它是將圖像小波變換后生成的子帶進(jìn)一步分成小的矩形碼塊。每個(gè)碼塊采用基于位平面的方式進(jìn)行獨(dú)立編碼,并采用基于內(nèi)容模型的算術(shù)編碼進(jìn)行壓縮生成壓縮碼流。為了使編碼圖像達(dá)到目標(biāo)比特率,對(duì)每個(gè)碼塊計(jì)算率失真曲線上的幾個(gè)分割點(diǎn),并由此實(shí)現(xiàn)對(duì)每個(gè)碼塊的比特?cái)?shù)進(jìn)行最優(yōu)分配。因此在編碼時(shí),首先對(duì)每個(gè)碼塊用較高的比特率編碼,然后再根據(jù)最優(yōu)比特率分配計(jì)算確定的分割點(diǎn)來(lái)截?cái)嗝總€(gè)塊的比特流。對(duì)應(yīng)于一個(gè)目標(biāo)比特率集合,可以確定其對(duì)應(yīng)的最優(yōu)分割點(diǎn)集。碼塊的比特流一旦被截?cái)鄟?lái)達(dá)到目標(biāo)比特率,就按通常的位平面順序重新組織形成嵌入式比特流。EBCOT編碼算法得到的比特流具有多分辨率和多層次質(zhì)量?jī)?yōu)化的特征,其率失真性能略優(yōu)于SPIHT算法,但復(fù)雜程度也高于SPIHT算法。2.2JPEG2000的應(yīng)用及特征JPEG2000標(biāo)準(zhǔn)提供了一套新的特征,它把JPEG的四種模式(順序模式、漸進(jìn)模式、無(wú)損模式和分層模式集成在一個(gè)標(biāo)準(zhǔn)之中。在編碼端以最大的壓縮質(zhì)量和最大的圖像分辨率壓縮圖像,在解碼端可以從碼流中以任意的圖像質(zhì)量和分辨率解壓圖像,最大可達(dá)到編碼時(shí)的圖像質(zhì)量和分辨率。JPEG2000應(yīng)用的領(lǐng)域包括互聯(lián)網(wǎng)、傳真、打印、掃描、數(shù)字?jǐn)z像、遙感、移動(dòng)通信、醫(yī)療圖像和電子商務(wù)等等。它的最主要的特征如下:(l高壓縮率:由于在離散子波變換算法中,圖像可以轉(zhuǎn)換成一系列更加有效存儲(chǔ)像素模塊的“子波”,因此,JPEG2000格式的圖片壓縮比可在現(xiàn)在的JPEG基礎(chǔ)上再提高10%—30%,而且壓縮后的圖像顯得更加細(xì)膩平滑。(2無(wú)損壓縮和有損壓縮:JPEG2000提供無(wú)損和有損兩種壓縮方式,無(wú)損壓縮在許多領(lǐng)域是必須的,例如醫(yī)學(xué)圖像中有時(shí)有損壓縮是不能忍受的。同時(shí)JPEG2000提供的是嵌入式碼流,允許從有損到無(wú)損的漸進(jìn)解壓。(3漸進(jìn)傳輸:采用JPEG2000格式的圖像支持漸進(jìn)傳輸(ProgressiveTransmission。即先傳輸圖像輪廓數(shù)據(jù),再逐步傳輸其他數(shù)據(jù)來(lái)不斷提高圖像質(zhì)量。(4感興趣區(qū)域壓縮:可以指定圖片上感興趣區(qū)域(RegionofInterest,然后在壓縮時(shí)對(duì)這些區(qū)域指定壓縮質(zhì)量,或在恢復(fù)時(shí)指定某些區(qū)域的解壓縮要求。這是因?yàn)樽硬ㄔ诳臻g和頻率域上具有局域性,要完全恢復(fù)圖像中的某個(gè)局部,并不需要所有編碼都被精確保留,只要對(duì)應(yīng)它的一部分編碼沒有誤差就可以了。(5碼流的隨機(jī)訪問和處理:這一特征允許用戶在圖像中隨機(jī)地定義感興趣區(qū)域,使得這一區(qū)域的圖像質(zhì)量高于其它區(qū)域,碼流的隨機(jī)處理允許用戶進(jìn)行旋轉(zhuǎn)、移動(dòng)、濾波和特征提取等操作。(6容錯(cuò)性:在碼流中提供容錯(cuò)性有時(shí)是必要的,例如在無(wú)線等傳輸誤碼很高的通信信道中傳輸圖像時(shí),沒有容錯(cuò)性是讓人不能接受的。(7開放的框架結(jié)構(gòu):為了在不同的圖像類型和應(yīng)用領(lǐng)域優(yōu)化編碼系統(tǒng),提供一個(gè)開放的框架結(jié)構(gòu)在是必須的,在這種開放的結(jié)構(gòu)中編碼器只實(shí)現(xiàn)核心的工具算法和碼流的解析,如果需要,解碼器可以要求數(shù)據(jù)源發(fā)送未知的工具算法。(8基于內(nèi)容的描述:圖像文檔、圖像索引和搜索在圖像處理中是一個(gè)重要的領(lǐng)域,基于內(nèi)容的描述在JPEG2000中是壓縮系統(tǒng)的特性之一。2.3JPEG2000編碼系統(tǒng)結(jié)構(gòu)國(guó)際標(biāo)準(zhǔn)15444中給出了JPEG2000標(biāo)準(zhǔn)核心處理算法的處理流程。這里給出了詳細(xì)的編碼器結(jié)構(gòu)如圖2.1所示。圖2.1JPEG2000編碼框圖在編碼過程中,首先對(duì)輸入圖像進(jìn)行預(yù)處理和直流變換,分成不同的圖像分量和基本的編碼單元塊(稱為Tile,然后對(duì)每個(gè)Tile進(jìn)行小波變換,變換后的數(shù)據(jù)根據(jù)要求選擇是否進(jìn)行標(biāo)量量化處理。然后將處理后的各個(gè)子帶數(shù)據(jù)分成固定尺寸的碼塊(CodeBlock,每個(gè)碼塊單獨(dú)地進(jìn)行位平面編碼和算術(shù)編碼處理,生成各個(gè)碼塊的嵌入式碼流。然后,按照率失真最優(yōu)理論分層組織,形成不同質(zhì)量的層(Layer對(duì)每一層,按照一定的碼流格式打包,輸出壓縮碼流。解碼過程是編碼過程的逆過程,根據(jù)壓縮碼流中存儲(chǔ)的參數(shù),對(duì)應(yīng)于編碼器各個(gè)部分進(jìn)行逆向操作,首先對(duì)碼流進(jìn)行算術(shù)解碼、位平面解碼,然后解量化和小波反變換,最后生成重建圖像。JPEG2000編碼過程主要分為以下幾個(gè)過程:預(yù)處理、核心處理、碼率控制和位流組織。預(yù)處理部分包括直流變換(DC變換、分量變換和圖像分片。核心處理部分由離散小波變換、量化、位平面編碼和算術(shù)編碼組成。碼流組織部分則包括區(qū)域劃分、碼塊、層和包的組織。2.4JPEG2000的文件格式在ISO-15444Part1規(guī)定基本的文件格式JP2。文件格式JP2提供了如下一種機(jī)制,即可以將應(yīng)用規(guī)范與JPEG2000的碼流數(shù)據(jù)關(guān)聯(lián)起來(lái)。雖然,JPEG2000的碼流是完全自包含的,但是在應(yīng)用的時(shí)候必須對(duì)其進(jìn)行解碼,此外一些與廠商相關(guān)的信息以及版權(quán)信息是無(wú)法在JPEG2000的壓縮數(shù)據(jù)碼流中包含的,而這些應(yīng)用規(guī)范的內(nèi)容可以以包含在JPEG2000的文件格式中。這種文件格式提供了知識(shí)產(chǎn)權(quán)信息和廠商信息,可以做到添加水印以保護(hù)產(chǎn)權(quán)。根據(jù)上面的說(shuō)明,我們相信JPEG2000將會(huì)成為主流的靜態(tài)圖像壓縮標(biāo)準(zhǔn),廣泛得應(yīng)用于因特網(wǎng)、移動(dòng)和便攜設(shè)備、印刷、掃描(出版物預(yù)覽、數(shù)字?jǐn)z影、遙感、傳真(包括彩色和因特網(wǎng)傳真、醫(yī)學(xué)應(yīng)用、數(shù)字圖書館、電子商務(wù)等領(lǐng)域。2.5JPEG2000與JPEG標(biāo)準(zhǔn)比較較之前身JPEG靜態(tài)圖像壓縮標(biāo)準(zhǔn),JPEG2000標(biāo)準(zhǔn)有了很大的發(fā)展。其編解碼器采用了如下的很多新技術(shù):(1用離散二維小波變換(DWT取代離散余弦變換(DCT;(2在應(yīng)用離散小波變換時(shí),分別引入對(duì)數(shù)據(jù)整型到整型(IntegertoInteger的可逆(Reversible變換和實(shí)型到實(shí)型(RealtoReal的不可逆(Irreversible變換,從而實(shí)現(xiàn)對(duì)圖像的無(wú)損(Lossless壓縮和有損(Lossy壓縮兩種不同的編碼處理;(3采用了較以往各種零樹編碼更優(yōu)越的編碼算法——EBCOT算法(基于優(yōu)化截?cái)嗟那度胧綁K編碼算法;(4對(duì)量化后的小波變換系數(shù)采用基于位平面的多通道編碼技術(shù);(5采用基于上下文關(guān)系(Context-Based的自適應(yīng)二進(jìn)制算術(shù)編碼器(MQCoder實(shí)現(xiàn)高效的算術(shù)熵編碼;(6采用兩級(jí)原語(yǔ)表示編碼后的圖像,分別為碼流和文件格式原語(yǔ)。2.6EBCOT算法簡(jiǎn)介嵌入式優(yōu)化截?cái)鄩K編碼EBCOT(EmbeddedBlockCoderwithOptimizedTruncation算法是由DavidTaubman提出的一種最新的圖像壓縮編碼技術(shù)。EBCOT編碼算法采用了獨(dú)特的兩層編碼結(jié)構(gòu),引入了多通道位平面編碼及分層組織位流的思想,因此不僅具有更好的壓縮效果,而且生成的碼流具有分辨率可伸縮性、質(zhì)量可伸縮性、隨機(jī)訪問及處理等優(yōu)良的特性。EBCOT被采納為最新的靜止圖像壓縮標(biāo)準(zhǔn)JPEG2000的編解碼引擎。由EBCOT生成的嵌入碼具有下列優(yōu)秀的特征:1可伸縮性的實(shí)現(xiàn)。通過以代碼塊為單位對(duì)小波變化后的子帶信號(hào)進(jìn)行為平面編碼,可以實(shí)現(xiàn)分辨率、失真(SNR和位置的可伸縮性。還由于對(duì)色彩圖像也增加了分量的可伸縮性,所以,在JPEG2000中可在這些四維度上實(shí)現(xiàn)可伸縮性編碼。2緊密的內(nèi)嵌處理。在通常的位平面編碼中,由于以位平面進(jìn)行壓縮碼的截?cái)?所以,構(gòu)成嵌入碼時(shí)的截?cái)嗑却植凇T贓BCOT中,再以3個(gè)編碼掃描對(duì)一個(gè)位平面進(jìn)行編碼,將各個(gè)掃描結(jié)束時(shí)間點(diǎn)選為代碼截?cái)帱c(diǎn),因此,可實(shí)現(xiàn)更精密的內(nèi)嵌處理。3可并行處理。由于能以代碼塊為單位單獨(dú)進(jìn)行編碼,所以,可通過編碼和解碼的并行處理實(shí)現(xiàn)高速處理。4高容錯(cuò)性。由于碼流被分層為空間位置、質(zhì)量層,使子帶分層化,所以,可使部分碼流里引起的錯(cuò)誤限制在局部區(qū)域。EBCOT算法的兩層編解碼結(jié)構(gòu)如圖2.2所示。第一層(Tier-1包括上下文環(huán)境建模和算術(shù)編碼兩部分,進(jìn)行嵌入式塊編碼產(chǎn)生壓縮的碼流。第二層(Tier-2對(duì)生成的壓縮碼流進(jìn)行分層組織,采用了壓縮后率失真優(yōu)化算法和質(zhì)量層技術(shù)。具體來(lái)說(shuō)第一層編碼由以下幾個(gè)步驟組成:(1將經(jīng)過小波變換和量化后的子帶系數(shù)組織成編碼塊(code-block;(2對(duì)每個(gè)編碼塊進(jìn)行獨(dú)立的多通道位平面編碼(fractionalbit-planecoding,形成相應(yīng)位樣本的上下文環(huán)境和決策數(shù)據(jù)對(duì)(Context-Decisiondatapairs;(3用基于上下文環(huán)境的自適應(yīng)算術(shù)編碼器(MQ-coder對(duì)形成的上下文環(huán)境(Context和數(shù)據(jù)(Data進(jìn)行算術(shù)編碼,產(chǎn)生嵌入式位流(embeddedbit-stream。EBCOT算法的第二層編碼對(duì)壓縮位流進(jìn)行分層組織,即按照率失真最優(yōu)的原則,選取合適的截?cái)帱c(diǎn)截?cái)嗝恳粋€(gè)編碼塊的壓縮位流,在滿足目標(biāo)碼率的要求下,將位流組織成具有分辨率可伸縮性和質(zhì)量可伸縮性的最終碼流。圖2.2EBCOT算法架構(gòu)在EBCOT算法的兩層編碼結(jié)構(gòu)中,其編碼獨(dú)立地實(shí)現(xiàn)于每一個(gè)編碼子塊,基于每個(gè)編碼塊的獨(dú)立編碼使得隨機(jī)存取及分辨率可伸縮性〔resolutionscalable〕成為可能。EBCOT算法中的上下文環(huán)境建模引入多通道分?jǐn)?shù)位平面編碼的思想,由此可得到比單一位平面編碼更多的截?cái)帱c(diǎn)個(gè)數(shù)。越多的截?cái)帱c(diǎn),表明圖像可提供更多的質(zhì)量選擇。EBCOT算法在第二層編碼中通過采用率失真優(yōu)化及質(zhì)量層的技術(shù)保證了壓縮碼流具有質(zhì)量層的可伸縮性(SNRscalable。2.7小結(jié)本章首先介紹了JPEG2000核心編碼技術(shù)的發(fā)展及其應(yīng)用和特征;詳細(xì)說(shuō)明了JPEG2000編碼系統(tǒng)結(jié)構(gòu)中的劃分:其中包括預(yù)處理、核心處理、碼率控制,及這三個(gè)部分的工作原理,JPEG2000的文件格式;然后對(duì)JPEG2000和JPEG標(biāo)準(zhǔn)進(jìn)行了比較,最后介紹了EBCOT算法、特征及其特殊的兩層結(jié)構(gòu)。第3章位平面解碼器的硬件設(shè)計(jì)研究3.1研究現(xiàn)狀為滿足多媒體應(yīng)用和互聯(lián)網(wǎng)產(chǎn)品如數(shù)碼相機(jī),高清電視等的高速實(shí)時(shí)運(yùn)行的要求,位平面編解碼器的硬件實(shí)現(xiàn)成為一種必然,為此高速高性能位平面編解碼器的VLSI實(shí)現(xiàn)已成為國(guó)內(nèi)外有很多機(jī)構(gòu)和學(xué)者研究的熱點(diǎn)。迄今為止,已經(jīng)出現(xiàn)很多新的技術(shù)[13-23]能夠很好的提高位平面解碼器的性能,其中主要包括三類:通道并行編碼,優(yōu)化串行編碼和位平面并行編碼。為提高位平面編解碼器的吞吐量,必須減少掃描冗余時(shí)間,提高處理的并行性;為了降低系統(tǒng)功耗可以考慮減少對(duì)存儲(chǔ)單元的訪問次數(shù);為減小系統(tǒng)VLSI實(shí)現(xiàn)的面積,通常會(huì)盡量減少中間存儲(chǔ)單元的的規(guī)模.在減少冗余掃描時(shí)間方面,Lian等人[24]首先提出了一種基于采樣跳躍(sampleskipping和樣條組跳躍(Group-of-columnskipping的優(yōu)化串行位平面編碼掃描技術(shù),朱悅心等人[25]提出了一種基于多級(jí)查詢表的位平面掃描優(yōu)化方法,它們都可以一定程度上減少冗余掃描時(shí)間.在并行編解碼方面,Chiang等人[26]提出了一種通道并行編碼技術(shù),在提出對(duì)當(dāng)前樣條列的重要性傳播通道,延遲樣條列的幅度細(xì)化通道和清除通道并行處理的基礎(chǔ)上,實(shí)現(xiàn)了3個(gè)編碼通道對(duì)位平面的掃描一次完成.在改進(jìn)存儲(chǔ)單元訪問方面,Fang等人[17]提出了一種基于字級(jí)(位平面并行的編碼算法和結(jié)構(gòu),在文獻(xiàn)[18]中Fang等人又提出用兩次掃描來(lái)完成字級(jí)位平面并行編碼,這種方法需要較多的中間存儲(chǔ)單元.Amit等人[27]提出一種基于選擇性樣本跳過方法的位平面解碼器結(jié)構(gòu),它與Dyer等人[28]提出的低延遲算術(shù)解碼器級(jí)聯(lián)可以減少位平面解碼器在解碼過程中的等待時(shí)間,大大提高了處理速度和吞吐量。3.2位平面編解碼概述上下文建模又稱為位平面編碼(BPC,Bit-PlaneCoding,上下文建模就是將小波變換系數(shù)劃分成固定大小的代碼塊,再將各個(gè)變換系數(shù)作位平面展開,對(duì)碼塊進(jìn)行逐個(gè)位平面的掃描,對(duì)每個(gè)位形成一個(gè)上下文標(biāo)志(CX,ContextLabel和判決位(D,Decision。圖3.1上下文建模掃描方式在上下文建模過程中,編碼過程從最重要的位平面開始依次進(jìn)行掃描編碼,每次編碼一個(gè)系數(shù)位平面;每個(gè)位平面按照規(guī)定的順序進(jìn)行數(shù)據(jù)掃描。掃描過程從位平面的左上面的系數(shù)開始,連續(xù)掃描第一列的第一組4個(gè)系數(shù)后,然后轉(zhuǎn)向掃描第二列的第一組4個(gè)系數(shù),如此一直掃描到最后一列的第一組4個(gè)系數(shù);然后,轉(zhuǎn)向掃描第一列的第二組4個(gè)系數(shù),一直到最后一列的第二組4個(gè)系數(shù);按照這樣的順序依次掃描整個(gè)位平面。這里定義各列4個(gè)系數(shù)組成的數(shù)據(jù)塊為一個(gè)數(shù)據(jù)編碼帶(stripe。圖3.1給出了每個(gè)位平面的掃描方式示意圖。每個(gè)位平面按照上述方式進(jìn)行三次掃描,分別對(duì)應(yīng)著三種編碼過程:重要性傳播編碼過程(SignificancePropagationPass、幅度精煉編碼過程(MagnitudeRefinementPass和清除編碼過程(CleanupPass。這種多次位平面掃描編碼方式的主要優(yōu)點(diǎn)是可以生成最優(yōu)的嵌入式碼流,可以提供多個(gè)率失真截?cái)帱c(diǎn)。在編碼過程中,編碼塊中的每個(gè)系數(shù)對(duì)應(yīng)著一個(gè)狀態(tài)變量,用來(lái)表示編碼過程中對(duì)應(yīng)系數(shù)的狀態(tài)情況,這樣每個(gè)碼塊對(duì)應(yīng)著一個(gè)狀態(tài)變量平面。編碼的初始化時(shí),狀態(tài)變量平面的各個(gè)狀態(tài)初始化為“0”,表示相應(yīng)的系數(shù)為不重要.在編碼過程中,當(dāng)遇到每個(gè)系數(shù)的第一個(gè)比特“1”時(shí),該系數(shù)對(duì)應(yīng)的狀態(tài)變量變?yōu)椤?”,表示該系數(shù)成為重要系數(shù).編碼過程中,每個(gè)位平面的各個(gè)編碼系數(shù)比特對(duì)應(yīng)著一個(gè)內(nèi)容矢量。該內(nèi)容矢量是由編碼的系數(shù)比特周圍的8個(gè)相鄰系數(shù)比特重要性情況組成,如圖3.2中系數(shù)內(nèi)容窗所示。D0V0D1H0XH1D2V1D3圖3.2每個(gè)系數(shù)的8個(gè)相鄰位在EBCOT編碼算法中的上下文環(huán)境建模模塊執(zhí)行對(duì)碼塊的每個(gè)非零位平面進(jìn)行多通道編碼,產(chǎn)生相應(yīng)被編碼樣本的上下文環(huán)境和決策數(shù)據(jù)對(duì)。在對(duì)每個(gè)位平面的編碼包含3個(gè)編碼通道:重要性傳播編碼通道、幅度細(xì)化編碼通道和清除編碼通道。上下文環(huán)境建模包含4個(gè)編碼原語(yǔ):零編碼原語(yǔ)、符號(hào)編碼原語(yǔ)、幅度細(xì)化編碼原語(yǔ)和游程編碼原語(yǔ)。重要性傳播編碼通道執(zhí)行零編碼原語(yǔ),如果被編碼樣本的幅度值為1,緊接著還將執(zhí)行符號(hào)編碼原語(yǔ)完成對(duì)該系數(shù)的符號(hào)編碼。幅度細(xì)化編碼通道執(zhí)行幅度細(xì)化編碼原語(yǔ)。清除編碼通道執(zhí)行零編碼原語(yǔ),如果被編碼樣本的幅度值為1,緊接著也將執(zhí)行符號(hào)編碼原語(yǔ)完成對(duì)該系數(shù)的符號(hào)編碼。在清除編碼通道,如果連續(xù)4個(gè)樣本處在同一條帶列,且4個(gè)樣本的8鄰域重要性貢獻(xiàn)都為0,滿足游程編碼的條件時(shí),將啟動(dòng)游程編碼原語(yǔ)。游程編碼結(jié)束后,將繼續(xù)采用零編碼原語(yǔ)和符號(hào)編碼原語(yǔ)進(jìn)行剩余樣本的上下文環(huán)境建模,直到再次檢測(cè)到游程編碼的條件滿足。3.3位平面解碼過程在一個(gè)編碼子塊中每個(gè)系數(shù)有一個(gè)關(guān)聯(lián)的二進(jìn)制狀態(tài)變量,即稱為系數(shù)的重要性狀態(tài)。重要性狀態(tài)初始化為0,表示系數(shù)不重要,并且可能在對(duì)編碼子塊編碼過程中變?yōu)?,表示系數(shù)重要。一個(gè)給定的當(dāng)前系數(shù)的上下文矢量是一個(gè)由它的8個(gè)最近的鄰點(diǎn)重要性狀態(tài)組成的二進(jìn)制矢量。在對(duì)一個(gè)當(dāng)前系數(shù)的位編碼時(shí),任何處于當(dāng)前系數(shù)的編碼子塊外面的最鄰近點(diǎn)被認(rèn)為是不重要的,即它被當(dāng)作有一個(gè)值為零的重要性狀態(tài)。一般地,當(dāng)前一個(gè)系數(shù)可以有256種可能的上下文矢量。這些矢量根據(jù)以下的上下文信息規(guī)則被分成數(shù)目不多的幾個(gè)組。這里定義了4條上下文信息規(guī)則,每條針對(duì)4種編碼操作之一:重要性編碼,符號(hào)編碼,幅度細(xì)化編碼以及清除編碼。這些編碼操作在每個(gè)位平面上分三個(gè)編碼通道執(zhí)行:重要性和符號(hào)編碼位于重要性傳播通道,幅度細(xì)化編碼位于幅度細(xì)化通道,而清除和符號(hào)編碼位于清除通道。對(duì)于一個(gè)給定的編碼操作,提供給算術(shù)編碼引擎的上下文標(biāo)號(hào)是一個(gè)賦于當(dāng)前系數(shù)的上下文的一個(gè)標(biāo)號(hào)。從最高有效位開始的、不含任何重要系數(shù)(即僅含不重要比特的位平面?zhèn)€數(shù)在數(shù)據(jù)包頭中指明。第一個(gè)帶有一個(gè)非零元素的比特面只有一個(gè)清除通道。剩下的位平面在三個(gè)通道中進(jìn)行編碼。一個(gè)系數(shù)比特在哪一個(gè)通道中編碼取決于該通道的條件。一般地,重要性傳播通道包含那些被預(yù)測(cè)為、或者“極有可能”變?yōu)橹匾南禂?shù),以及他們的符號(hào)。幅度細(xì)化通道包含已經(jīng)成為重要系數(shù)的比特。清除通道則包含所有剩余的系數(shù)。當(dāng)前系數(shù)(如圖3.2的8個(gè)最鄰近的系數(shù)用于產(chǎn)生9個(gè)上下文區(qū)域,依據(jù)是其中有多少個(gè)系數(shù)和哪些系數(shù)為重要系數(shù)。如果一個(gè)系數(shù)是重要的,則在產(chǎn)生上下文時(shí)賦于1,反之為0。上下文的映射也依賴于(在給定小波分解級(jí)上編碼子塊位于哪個(gè)子帶。表3.1為這些上下文。重要性傳播通道僅包含那些不重要系數(shù)(即他們的最高有效比特尚未遇到的比特,但其上下文非零。所有其他系數(shù)被跳過。上下文與比特流一起被傳送到算術(shù)解碼器,解碼系數(shù)比特被返回。如果該比特值為1,則重要性狀態(tài)被設(shè)置為1,而且緊接著的下一個(gè)被解碼比特是該系數(shù)的符號(hào)比特。否則,重要性狀態(tài)保持為0。當(dāng)考慮連續(xù)的系數(shù)和編碼通道的上下文時(shí),系數(shù)最近的重要性狀態(tài)則被使用。表3.1重要性編碼通道和清除通道的上下文LLandLHsubbandHLsubbandHHsubbandContextLableiH∑iV∑iD∑iH∑iV∑iD∑(iiDV+∑iD∑2xxx2xx≥381≥1x≥11x≥12710≥101≥1026100010≥21502x20x11401x10x01300≥200≥2≥202001001101000000正負(fù)符號(hào)位解碼的上下文標(biāo)志使用另外一種鄰點(diǎn)的上下文來(lái)決定。上下文標(biāo)志的計(jì)算可以看作一個(gè)兩步驟的處理。第一步是總結(jié)垂直和水平鄰點(diǎn)的貢獻(xiàn),第二步是把這些貢獻(xiàn)減少到5種上下文標(biāo)號(hào)中的一種。在第一步,兩個(gè)垂直的鄰點(diǎn)被一起考慮。每個(gè)鄰點(diǎn)可能有三種狀態(tài)之一:重要的正數(shù),重要的負(fù)數(shù),或不重要。如果這兩個(gè)垂直鄰點(diǎn)都是重要的,且符號(hào)相同,或者只有一個(gè)是重要的,則垂直方向的貢獻(xiàn)為1(符號(hào)為正或-1(符號(hào)為負(fù)。表3.2垂直(和水平方向鄰點(diǎn)對(duì)符號(hào)上下文的貢獻(xiàn)0V(或0H1V(或1HV(或H的貢獻(xiàn)重要,正重要,正1重要,負(fù)重要,正0不重要重要,正1重要,正重要,負(fù)0重要,負(fù)重要,負(fù)-1不重要重要,負(fù)-1重要,正不重要1重要,負(fù)不重要-1不重要不重要如果兩個(gè)垂直鄰點(diǎn)均為不重要的,或者他們雖然都是重要的但符號(hào)相反,則垂直方向的貢獻(xiàn)為0。水平方向的貢獻(xiàn)也類似計(jì)算。再者,如果鄰點(diǎn)落在編碼子塊的外面,則他們就被認(rèn)為的不重要的。表3.2列出了這些貢獻(xiàn)。第二步將垂直和水平貢獻(xiàn)的9種排列減少到5種上下文標(biāo)號(hào)。表3.3顯示了這些上下文的標(biāo)號(hào)。這些上下文隨著比特流提供給算術(shù)解碼器。解碼器返回的比特再與表3.3中的XORbit進(jìn)行邏輯異或運(yùn)算,由此得到符號(hào)比特。該過程由以下等式表示:(SignbitACcontextlabelXORbit=⊕(3.1式中,Signbit是當(dāng)前系數(shù)的符號(hào)位(1表示系數(shù)為負(fù),0表示系數(shù)為正。(ACcontextlabel是在給定上下文標(biāo)號(hào)和比特流時(shí),算術(shù)解碼器的返回值。當(dāng)前上下文標(biāo)號(hào)對(duì)應(yīng)的XORbit參見表3.3。表3.3垂直和水平方向貢獻(xiàn)產(chǎn)生的符號(hào)上下文水平方向貢獻(xiàn)垂直方向貢獻(xiàn)上下文標(biāo)號(hào)XORbit11130101201-11100110000900-1101-11111-10121-1-1131幅度細(xì)化通道包含已經(jīng)成為重要系數(shù)的比特,但要除去剛好在此之前的那個(gè)重要性傳播通道后才被確定的重要比特。使用的上下文由水平、垂直以及對(duì)角鄰點(diǎn)重要性狀態(tài)之和決定。這些是解碼器當(dāng)前已知的狀態(tài),而不是在重要性解碼通過之前使用的狀態(tài)。而且,上下文依賴于當(dāng)前是否是第一個(gè)細(xì)化比特(即緊接著重要性和符號(hào)比特。表3.4為細(xì)化通道的三種上下文區(qū)域。表3.4幅值細(xì)化的編碼規(guī)則iiiHVD++∑∑∑是當(dāng)前系數(shù)第一次細(xì)化上下文標(biāo)號(hào)任意否16≥1是150是14所有剩余的系數(shù)是不重要的,而且他們的上下文值在重要性傳播通過期間為零。這些系數(shù)的編碼都在清除通道。該通道不僅使用鄰點(diǎn)之間的上下文,例如在重要性傳播通道中表3.1的上下文,而且也使用一個(gè)游程長(zhǎng)度上下文。首先,在此通道的系數(shù)鄰點(diǎn)的上下文由表3.1重新計(jì)算。注意到上下文標(biāo)號(hào)現(xiàn)在可以有任何值,因?yàn)樵谥匾詡鞑ネǖ乐斜话l(fā)現(xiàn)為重要的系數(shù)在清除通道被認(rèn)為是重要的。游程長(zhǎng)度被用唯一的單上下文解碼。如果編碼掃描時(shí)一列中的4個(gè)連續(xù)系數(shù)都在此清除通道編碼,而且所有的上下文標(biāo)號(hào)為0(包括前一個(gè)幅度重要性和清除通道的上下文系數(shù),那么該唯一的游程長(zhǎng)度上下文將與比特流一起供給算術(shù)解碼器。如果符號(hào)0被返回,則該列所有4個(gè)連續(xù)系數(shù)仍然為不重要。此外,如果符號(hào)1被返回,則該列中至少有4個(gè)連續(xù)系數(shù)中的一個(gè)為重要的。接著2比特由UNIFORM上下文返回,他們注明該列中從上到下哪一個(gè)系數(shù)被首先發(fā)現(xiàn)是重要的。這兩個(gè)用UNIFORM上下文解碼的比特先是MSB,然后是LSB。該系數(shù)的符號(hào)位的確定如3.2節(jié)描述。對(duì)所有剩下的系數(shù)的解碼如3.2節(jié)的方式繼續(xù)。如果一列中的4個(gè)連續(xù)系數(shù)不全在清除通道中解碼。注意到這里使用與重要性傳播時(shí)同樣的上下文(狀態(tài)和模型被使用。表3.5為清除通道的邏輯。表3.5清除通道的游程長(zhǎng)度解碼器一列中4個(gè)連續(xù)系數(shù)仍然待解碼,并且各系數(shù)當(dāng)前上下文值為0帶有游程長(zhǎng)度上下文的符號(hào)4個(gè)待解碼的連續(xù)比特為用UNIFORM上下文解碼的符號(hào)待解碼的系數(shù)個(gè)數(shù)是0是無(wú)無(wú)是1否跳至第一個(gè)系數(shù)符號(hào)跳至第一個(gè)系數(shù)符號(hào)跳至第一個(gè)系數(shù)符號(hào)跳至第一個(gè)系數(shù)符號(hào)MSBLSB00011011321否無(wú)任意無(wú)剩下的列如果一個(gè)編碼子塊的剩余行少于4行,則不使用游程長(zhǎng)度編碼。需要重申的是,任何系數(shù)的重要性狀態(tài)在解碼第一個(gè)“1”量值比特后立即改變。表3.6是一個(gè)例子,顯示了在掃描中一個(gè)4個(gè)采樣的列的量化系數(shù)的編碼次序。該例子中假定沒有被包括在表中的所有鄰點(diǎn)同為0,而且指出每個(gè)比特在哪一個(gè)通道被編碼子塊中最早的通道總是一個(gè)清除通道,因?yàn)樗赡軟]有被預(yù)測(cè)成重要的或細(xì)化的比特。在第一次通過后,第一個(gè)系數(shù)的解碼出的“1”比特將引用起第二個(gè)系數(shù)在下一個(gè)比特面的重要性通道中編碼。而在第二次清除通道中的最后一個(gè)系數(shù)的編碼的“1”比特將引起第三個(gè)系數(shù)在下一個(gè)重要性通道中被編碼。表3.6子位平面編碼次序好重要性傳播示例系數(shù)值編碼通道1013-7清除1+00000重要性幅度細(xì)化清除01-01+11重要性幅度細(xì)化清除1+011重要性幅度細(xì)化清除當(dāng)上下文被初始化或重新初始化時(shí),其值設(shè)置為表3.7的值。在每一個(gè)編碼通道結(jié)束時(shí)或者僅在每個(gè)編碼子塊結(jié)束時(shí),上下文被重新初始化。標(biāo)記COD和COC指示上下文被重新初始化的位置。表3.7所有上下文的初始狀態(tài)上下文初始下標(biāo)MPSUNIFORM460游程長(zhǎng)度30全0鄰點(diǎn)40其它所有上下文00表3.8算術(shù)編碼器的終止模式示例編號(hào)通道編碼運(yùn)算僅在最后的通道終止編碼通道在每個(gè)通道終止1清除AC(算術(shù)編碼器AC,終止2重要性傳播ACAC,終止2幅度細(xì)化ACAC,終止2清除ACAC,終止…………最后重要性傳播ACAC,終止最后幅度細(xì)化ACAC,終止最后清除AC,終止AC,終止在正常運(yùn)算時(shí)(即不是選擇性算術(shù)編碼通過,算術(shù)編碼器必須或者終止在每個(gè)編碼通道的結(jié)尾,或者僅僅終止在每個(gè)編碼子塊的結(jié)尾處。表3.8顯示了在一個(gè)編碼子塊中編碼通道的兩個(gè)終止模式的例子。其中用到了COD或COC標(biāo)記,他們指示所用的終止模式。當(dāng)算術(shù)編碼器提供了多重終止時(shí),每個(gè)被終止的字段的長(zhǎng)度在數(shù)據(jù)包頭中指示。對(duì)于解碼器而言,給定字節(jié)的碼流將在算術(shù)編碼器終止之前解碼出給定次數(shù)的編碼通道。在解碼時(shí),數(shù)據(jù)按字節(jié)從碼流連續(xù)取出直到該編碼通道的所有字節(jié)被解碼使用完畢。編碼通道中對(duì)應(yīng)的字節(jié)數(shù)在數(shù)據(jù)包頭規(guī)定。通常編碼通道中有許多符號(hào)待解碼。因此,解碼器必須根據(jù)需要用0xFF字節(jié)把輸入比特流擴(kuò)展到算術(shù)編碼器,直到所有符號(hào)被解碼。實(shí)際添加兩個(gè)以內(nèi)0xFF字節(jié)就足夠了。這將使得算術(shù)編碼器在其輸入有至少一對(duì)連續(xù)的0xFF字節(jié),他們被解釋成一個(gè)碼流結(jié)束標(biāo)記。比特流中實(shí)際上不含一個(gè)終止標(biāo)記。然而,字節(jié)長(zhǎng)度被顯示指示,由此可以為算術(shù)編碼器合成一個(gè)終止標(biāo)記。3.4位平面解碼器的硬件設(shè)計(jì)本節(jié)中我們將介紹BPD的基本架構(gòu),相關(guān)的實(shí)驗(yàn)結(jié)果將用于與本文后面提出的架構(gòu)做比較。該基本架構(gòu)學(xué)習(xí)了一些已有的架構(gòu)[29-32]并做了一些關(guān)鍵修改:(1在文獻(xiàn)[33]中提到的適應(yīng)性JPEG200解碼器中,BPD有正常和因果兩種工作模式。(2該結(jié)構(gòu)是基于改進(jìn)的樣本跳躍算法基礎(chǔ)上的。(3在該結(jié)構(gòu)中每個(gè)位置只需要用到兩個(gè)狀態(tài)位。圖3.3樣條s列c中每個(gè)取樣位置的處理過程以及相應(yīng)上下文窗口這個(gè)架構(gòu)是基于條帶-列處理進(jìn)程的。一個(gè)條帶列的上下文窗口中所有位置的狀態(tài)、數(shù)據(jù)、符號(hào)位信息如圖3.3所示。一個(gè)高有效的啟動(dòng)信號(hào)load會(huì)在每次樣條-列處理進(jìn)程結(jié)束時(shí)產(chǎn)生,以裝載下一個(gè)列。假定樣條s列c為當(dāng)前解碼列,一個(gè)高有效啟動(dòng)信號(hào)load將列c-1寫入存儲(chǔ)器單元。與此同時(shí)對(duì)列寄存器左移三位,將一個(gè)新列從存儲(chǔ)器單元中寫入到列c+1。如圖3.4所示為基本BPD算法的VLSI實(shí)現(xiàn)。在每個(gè)時(shí)鐘周期里,更新位單元(UpdateBit依據(jù)當(dāng)前解碼位置(locp、上下文類型(typec、該樣條-列當(dāng)前產(chǎn)生的上下文總數(shù)(gentcx以及判決位(dbit等信息更新樣條-列c的當(dāng)前數(shù)據(jù)和符號(hào)位。已更新的數(shù)據(jù)位和狀態(tài)位傳遞到通道選擇單元(flagsPGeneration產(chǎn)生通道選擇標(biāo)志flagsP。采樣跳過生成單元(Sample-skippingGeneration負(fù)責(zé)處理flagsP、locp、typec和gentcx信息以產(chǎn)生下一組locp、typec和load信號(hào)。上下文生成單元(ContextGeneration根據(jù)上下文類型、狀態(tài)位、數(shù)據(jù)和符號(hào)位產(chǎn)生上下文。圖3.4基本BPD算法的VLSI實(shí)現(xiàn)采樣跳過算法要求在產(chǎn)生樣條-列最后一個(gè)上下文的同時(shí)產(chǎn)生load信號(hào)。但是在BPD算法中存在一些困難,因?yàn)榕袥Q位dbit只能在兩個(gè)時(shí)鐘周期后到達(dá)(現(xiàn)有算術(shù)解碼器解碼一個(gè)dbit通常需要2~3個(gè)時(shí)鐘周期。為此在BPD算法中我們引入一種改進(jìn)的采樣跳過策略,即在沒有更多的位置需要解碼時(shí)才產(chǎn)生load信號(hào)。舉例說(shuō)明,如圖3所示樣條-列c處于SP通道中,假定位置A和B都已經(jīng)成為重要位。由圖3.5的時(shí)序圖中可知,位置0的1typec在第k個(gè)時(shí)鐘周期產(chǎn)生,在第k+1個(gè)時(shí)鐘周期里BPD處于停止?fàn)顟B(tài),等待AD產(chǎn)生dbit。假設(shè)dbit=0,在第k+2個(gè)時(shí)鐘周期內(nèi)BPD為位置1產(chǎn)生一個(gè)上下文。這個(gè)時(shí)候即便樣條-列c的最后一個(gè)上下文已經(jīng)產(chǎn)生也并不產(chǎn)生load信號(hào)。在下一個(gè)時(shí)鐘周期里(k+3,BPD等待AD產(chǎn)生dbit。在第k+4個(gè)時(shí)鐘周期里,僅當(dāng)dbit為0時(shí)load信號(hào)被置高,否則解碼繼續(xù)。需要說(shuō)明的是該架構(gòu)是與文獻(xiàn)8中提到的AD級(jí)聯(lián),而且假定AD只有一個(gè)解碼延遲周期。01stallstall00110stallstallstall01160stallplocctypeloaddbit圖3.5改進(jìn)的采樣跳過策略時(shí)序圖通過分析位平面解碼算法,我們知道BPD存在兩種可能的狀態(tài):依賴(statep=1和獨(dú)立(statep=0。當(dāng)處于依賴的狀態(tài)時(shí),下一個(gè)上下文的產(chǎn)生取決于當(dāng)前上下文的dbit值。如表3.9所示typec的轉(zhuǎn)換方式取決于已產(chǎn)生的dbit值。對(duì)于1typec和3typec,下一個(gè)typec取決于dbit,當(dāng)dbit=1時(shí),他們分別轉(zhuǎn)換成4typec和6typec;而當(dāng)dbit=0時(shí),對(duì)于3typec則產(chǎn)生load信號(hào),對(duì)于1typec則有兩種可能:如果有更多的位置需要解碼時(shí)下一個(gè)typec為1typec,否則將產(chǎn)生load信號(hào)。當(dāng)處于獨(dú)立的狀態(tài)時(shí)(2,4,5,6時(shí),下一個(gè)typec與相應(yīng)的dbit值無(wú)關(guān)。對(duì)于每個(gè)轉(zhuǎn)換都有一個(gè)對(duì)應(yīng)已知的下一狀態(tài),或者產(chǎn)生load信號(hào)(僅對(duì)于2typec和6typec,且當(dāng)前樣條-列的所有上下文都已經(jīng)產(chǎn)生時(shí)。在基本BPD架構(gòu)中,無(wú)論一個(gè)樣條-列是否處于依賴狀態(tài)都需要一個(gè)額外的時(shí)鐘周期。為了避免這個(gè)額外的時(shí)鐘周期,我們引入一種選擇性采樣跳過算法(SelectiveSample-Skipping。表3.9取決于解碼判決位dbit的上下文類型轉(zhuǎn)換方式State(PstateNextContext-typePresentContext-typedbit=0dbit=1111/load6202/load31load4405506601/load圖3.6用于改進(jìn)算法的4*6位寄存器在選擇性采樣跳過策略中,我們用一個(gè)4*6位寄存器去存儲(chǔ)4列的狀態(tài)、符號(hào)、數(shù)據(jù)位信息。如圖3.6所示這些寄存器用于當(dāng)前樣條-列c(set0以及下一個(gè)樣條-列c+1(set1的上下文窗口的狀態(tài)、符號(hào)和數(shù)據(jù)的存取。我們用dp信號(hào)來(lái)表示BPD當(dāng)前處于依賴狀態(tài)而且可能正在處理當(dāng)前樣條-列的最后一個(gè)上下文(1lastcx=。dp用于當(dāng)前上下文窗口set0到下一個(gè)上下文窗口set1的轉(zhuǎn)換過程中,具體依據(jù)如下:(lastgencpcxtcxt===(4.2(1&dstatelastppcx===(4.3其中cpt表示在當(dāng)前樣條-列中出現(xiàn)的所有上下文總數(shù),并且在解碼過程的每個(gè)時(shí)鐘周期更新。dp將被存儲(chǔ)并用于當(dāng)dbit可用時(shí)在下一個(gè)時(shí)鐘周期推動(dòng)上下文轉(zhuǎn)變。如果dp=1,當(dāng)dbit=1時(shí)BPD選擇set0,否則選擇set1。如果選擇set1,load信號(hào)將在讀入一個(gè)新列c+3時(shí)或樣條-列c在當(dāng)前通道中不在產(chǎn)生上下文時(shí)被觸發(fā)。這種策略可以很有效的避免額外的時(shí)鐘周期需求。在處于獨(dú)立狀態(tài)時(shí)(statep=0,是否改變上下文取決于當(dāng)前typec(表3.9,如果當(dāng)前以產(chǎn)生的上下文為該樣條-列的最后一個(gè)上下文,則load信號(hào)將被觸發(fā)以載入下一個(gè)列。圖3.7基于SelectiveSample-Skipping策略的BPD結(jié)構(gòu)框圖如圖3.7所示為基于SelectiveSample-Skipping策略的BPD結(jié)構(gòu)框圖,更新位單元(UpdateBit根據(jù)load值、上下文窗口的選擇、typec和locp來(lái)接收dbit數(shù)據(jù)和更新樣條-列c-1或者c的數(shù)據(jù)和符號(hào)位。窗口選擇單元(ChooseSet根據(jù)dp和dbit值選擇寄存器組中的一個(gè)窗口并更新set信號(hào)。選擇性采樣跳過生成單元(SelectiveSample-SkippingGeneration負(fù)責(zé)生成新的dp、typec、locp和load信號(hào)以及更新符號(hào)位、數(shù)據(jù)和狀態(tài)值。將該BPD架構(gòu)與文獻(xiàn)[33]中提出的低延遲AD級(jí)聯(lián),則可以避免BPD在解碼過程中處于停止等待狀態(tài)。上節(jié)提到的級(jí)聯(lián)方式有助于避免依賴狀態(tài)下的BPD處于停止?fàn)顟B(tài),與此同時(shí)AD中dbit生成路徑上的延遲也會(huì)增加BPD的關(guān)鍵路徑延遲。為了減小關(guān)鍵路徑延遲我們引入推測(cè)處理方式(speculativeprocess,即根據(jù)dbit的兩種可能值進(jìn)行兩種操作。如圖3.8中所示為基于推測(cè)處理的BPD結(jié)構(gòu)框圖。圖3.8基于SpeculativeProcess的BPD結(jié)構(gòu)框圖通過分析整個(gè)解碼架構(gòu)的關(guān)鍵路徑,我們需要將推測(cè)處理一直進(jìn)行到選擇性采樣跳過生成單元。這樣的推測(cè)方式可以嚴(yán)格控制BPD的關(guān)鍵路徑,使其接近于最小額外消耗下AD的關(guān)鍵路徑。而整個(gè)塊解碼器的關(guān)鍵路徑取決于BPD的模式,這點(diǎn)與前面提到的基于選擇性采樣跳過策略的結(jié)構(gòu)恰恰相反。3.5實(shí)驗(yàn)結(jié)果分析我們采用Altera公司的CyloneII系列FPGA作為硬件實(shí)現(xiàn)平臺(tái),對(duì)基本架構(gòu)和改進(jìn)架構(gòu)下的BPD的硬件消耗和性能做了分析和比較。表3.10中列舉了3種架構(gòu)下的硬件消耗和工作頻率,其中基本架構(gòu)下的BPD工作頻率最高,這是因?yàn)楦倪M(jìn)算法需要為上下文窗口選擇器增加額外的邏輯單元。推測(cè)模式下的BPD相對(duì)與選擇性采樣跳過策略的BPD在工作頻率上有更多優(yōu)勢(shì),這是因?yàn)樗年P(guān)鍵路徑中不包含dbit邏輯。表3.10三種結(jié)構(gòu)的性能比較硬件消耗(ofLogicCells架構(gòu)位平面解碼器(BPD算術(shù)解碼器(AD工作頻率(MHz基本(Baseline654162454.6選擇性跳過(Selective820196032.3推測(cè)方式(Speculative980200446.53.6小結(jié)本節(jié)中我們介紹了位平面解碼器的基本原理,并采用了一種基于選擇性采樣跳過策略的BPD架構(gòu),該結(jié)構(gòu)可以增加整個(gè)塊解碼器的吞吐量。然后又在上述架構(gòu)基礎(chǔ)上引入推測(cè)處理方式,這樣就可以大大減小關(guān)鍵路徑的延遲。相對(duì)于現(xiàn)有方法的基本BPD架構(gòu),改進(jìn)的算法可以將吞吐量提高50%-100%,同時(shí)只增加25%-30%的硬件消耗。第4章MQ算術(shù)解碼器研究與硬件設(shè)計(jì)4.1研究現(xiàn)狀在JPEG2000標(biāo)準(zhǔn)的嵌入式塊編碼模塊部分,采用了一種自適應(yīng)二元算術(shù)編碼算法,MQ編碼器,來(lái)實(shí)現(xiàn)對(duì)原始數(shù)據(jù)的熵編碼。在JPEG2000標(biāo)準(zhǔn),MQ編碼器用來(lái)讀入位于前端的位平面編碼模塊產(chǎn)生的子塊系數(shù)位樣本的上下文環(huán)境標(biāo)簽和數(shù)據(jù)對(duì),經(jīng)過編碼得到每個(gè)獨(dú)立子塊系數(shù)的數(shù)據(jù)壓縮的碼流。MQ算術(shù)編碼具有很好的壓縮性能,但同時(shí)其算法也要復(fù)雜很多,軟件的處理速度己經(jīng)遠(yuǎn)遠(yuǎn)不夠,MQ算術(shù)編解碼器的高速硬件實(shí)現(xiàn)已經(jīng)成為一種必然。在基于FPGA的MQ算術(shù)解碼器的VLSI實(shí)現(xiàn)方面,文獻(xiàn)[34]提出了一種動(dòng)態(tài)流水線結(jié)構(gòu),并使用RAM_I和ROM_Qe來(lái)實(shí)現(xiàn)動(dòng)態(tài)的概率估計(jì);文獻(xiàn)[35]在解碼器部分對(duì)解碼算法進(jìn)行了一些優(yōu)化,并采用資源復(fù)用技術(shù),將編解碼器合并,大大提高了資源利用率;文獻(xiàn)[36]中修改了基于概率估計(jì)的狀態(tài)機(jī)方法,能最大幅度的消減解碼器延遲。本文對(duì)MQ解碼算法進(jìn)行了進(jìn)一步深入研究和總結(jié),并對(duì)優(yōu)化后的算法分模塊實(shí)現(xiàn),最后提出一種基于4級(jí)流水線的MQ算術(shù)解碼器結(jié)構(gòu),該結(jié)構(gòu)在利用有限資源的情況下可以大幅度提高M(jìn)Q算術(shù)解碼器的速度,基本能滿足JPEG2000系統(tǒng)的要求。4.2MQ算術(shù)編解碼原理20世紀(jì)60年代Elias為算術(shù)編碼奠定了理論基礎(chǔ)[37],在Elias編碼中,對(duì)于具有“0”或“1”值的二進(jìn)制符號(hào)序列,以各自概率值比率將當(dāng)前概率區(qū)間劃分成兩個(gè)子區(qū)間,被分配給實(shí)際產(chǎn)生符號(hào)的概率值區(qū)間下限值構(gòu)成代碼串。即代碼串按二進(jìn)制符號(hào)序列的輸入逐次被遞歸地修改下去。算術(shù)編碼將一串輸入碼流編碼成表示概率的小數(shù),輸入碼流越長(zhǎng)越復(fù)雜,概率區(qū)間劃分的越細(xì),輸出也越長(zhǎng),大概率符號(hào)細(xì)化的較慢,小概率符號(hào)細(xì)化得較快,因此大概率符號(hào)越多,壓縮效果越明顯。MQ算術(shù)編碼的基本操作是遞歸劃分當(dāng)前子區(qū)間。當(dāng)編碼器接收到了一個(gè)新的待壓縮碼D及對(duì)應(yīng)的上下文CX,根據(jù)D將當(dāng)前子區(qū)間劃分成更小的2個(gè)子區(qū)間。子區(qū)間的下限值被更新,并且指向由待壓縮碼流所選定的新子區(qū)間的下邊界,子區(qū)間的間隔值也更新為新子區(qū)間的間隔。MQ編碼器用區(qū)間寄存器A來(lái)記錄當(dāng)前子區(qū)間的區(qū)間長(zhǎng)度,用寄存器C來(lái)記錄當(dāng)前子區(qū)間的下限值。MQ編碼過程的當(dāng)前區(qū)間可以表示為[C,C+A]。隨著編碼次數(shù)的增加,這一子區(qū)間的精度會(huì)不斷提高,意味著C和A的有效位數(shù)不斷增加。由于實(shí)際可操作的寄存器位數(shù)是有限的,因此引入?yún)^(qū)間重歸一化的概念,即當(dāng)滿足一定條件時(shí),將C和A進(jìn)行左移操作,同時(shí)將C寄存器不再變化的高位送入存儲(chǔ)區(qū)。在充分考慮進(jìn)位的影響后將該字節(jié)輸出,這就是輸出的壓縮碼流CD。對(duì)于MQ編碼器來(lái)說(shuō),進(jìn)行區(qū)間重整的條件是A<0.75,當(dāng)該條件滿足時(shí),將C和A都乘以2(左移1位,直到0.75≤A<1.5。MQ解碼過程與編碼很類似,根據(jù)輸入的壓縮碼流CD及對(duì)應(yīng)的上下文CX判斷當(dāng)前碼流屬于大概率區(qū)間還是小概率區(qū)間,一邊逐個(gè)地對(duì)二進(jìn)制判決解碼,同時(shí)從編碼器生成的壓縮數(shù)據(jù)中去掉已完成解碼的代碼字節(jié)。其結(jié)構(gòu)圖如圖4.1所示。圖4.1MQ算術(shù)解碼器圖4.2MQ算術(shù)解碼器流程4.3算術(shù)解碼過程圖4.2為MQ編碼的解碼器流程。解碼器的初始化由INTDEC完成。所有的CX和所需的壓縮數(shù)據(jù)字節(jié)被讀入DECODE。DECODE子程序解碼二進(jìn)制判決D,返回一個(gè)0或1的值。概率估計(jì)過程內(nèi)置在DECODE中,它提供了對(duì)每個(gè)上下文概率的自適應(yīng)估計(jì)。當(dāng)所有上下文被讀入處理后(即圖中的“已完成?”判決為真時(shí),壓縮數(shù)據(jù)被解碼完畢。本節(jié)的解碼流程圖所假設(shè)的解碼器寄存器結(jié)構(gòu)如表4.1。Chigh和Clow可以被認(rèn)為是一個(gè)32比特的C寄存器,因?yàn)閷?duì)C重新歸一化將新數(shù)據(jù)的一個(gè)比特從Clow的MSB移位到Chigh的LSB。但是,解碼比較只用Chigh。新數(shù)據(jù)被一次1字節(jié)地插入Clow的“b”比特處。表4.1解碼器寄存器結(jié)構(gòu)MSBLSB寄存器Chighxxxxxxxxxxxxxxxx寄存器Clowbbbbbbbb00000000寄存器Aaaaaaaaaaaaaaaaa對(duì)于帶有填充比特的數(shù)據(jù)處理的詳細(xì)描述將在本節(jié)的后面部分給出。注意到本節(jié)中假定了所示的各種過程中的比較精度大于16比特。用16比特精度可以使用邏輯比較。解碼器一次解碼一個(gè)二進(jìn)制判決。解出該判決后,解碼器從壓縮數(shù)據(jù)中減去由編碼器加入的任何數(shù)值。留在壓縮數(shù)據(jù)中的數(shù)值是從當(dāng)前區(qū)間的基到一個(gè)子區(qū)間的偏移。該子區(qū)間是分配給所有尚未被解碼的二進(jìn)制判決。在DECODE過程(如圖4.2進(jìn)行的第一次檢測(cè)中,Chigh寄存器與LPS子區(qū)間的尺寸進(jìn)行比較。只要不需要進(jìn)行條件交換,這一檢測(cè)決定是否有一個(gè)MPS或LPS被解碼。如果Chigh邏輯上大于或等于存貯在CX的當(dāng)前下標(biāo)I的LPS概率估計(jì)值Qe,那么Chigh將被減去這一數(shù)值。如果A不小于0x8000,存貯在CX的MPS的意義被用于設(shè)置被解碼的判決D。當(dāng)需要一次重新歸一化時(shí),MPS/LPS的條件交換可能發(fā)生。MPS路徑的條件交換過程如圖4.3。只要圖中第一步計(jì)算的MPS子區(qū)間尺寸A邏輯上不小于LPS的概率估計(jì)值Qe(I(CX,則出現(xiàn)一個(gè)MPS,判決可以從MPS(CX設(shè)置。然后,下標(biāo)I(CX從表中的下一個(gè)MPS下標(biāo)欄(NMPS更新。但是如果LPS子區(qū)間較大,條件交換發(fā)生,而且出現(xiàn)一個(gè)LPS。如果SWITCH欄為1,概率刷新切換MPS的意義,并且根據(jù)表4.2中下一個(gè)LPS下標(biāo)欄(NLPS更新下標(biāo)I(CX。注意到解碼器中的概率估計(jì)需要與解碼器中的概率估計(jì)完全相同。圖4.3解碼器MPS路徑的條件交換過程表4.2Qe概率估值表NLPSSWITCHIndexQeNMPS00x560111110x340126020x180139030x0AC1412040x0521529050x05213833060x560176170x5401814080x4801914090x380110140100x300111170110x240112180120x1C0113200130x160129210140x560115141150x540116140160x510117150170x480118160180x380119170190x340120180200x300121190210x280122190220x240123200230x220124210240x1C0125220250x180126230260x160127240270x140128250280x120129260290x110130270300x0AC131280310x09C132290320x08A133300330x052134310340x044135320350x02A136320360x022137340370x014138350380x011139360390x008540370400x004941380410x002542390420x001543400430x000944410440x000545420450x000145430460x560146460解碼器LPS路徑的條件交換過程如圖4.4。同樣的MPS子區(qū)間A和LPS子區(qū)間Qe(I(CX的邏輯比較決定是否發(fā)生了條件交換。在圖中所有兩條路徑上,新的子區(qū)間A被設(shè)置為Qe(I(CX。在左邊和右邊的路徑上,分別對(duì)應(yīng)條件交換發(fā)生時(shí),對(duì)于MPS和LPS的判決和刷新處理。圖4.4解碼器LPS路徑的條件交換過程解碼器中的重新歸一化過程RENORMD如圖4.5。通過一個(gè)計(jì)數(shù)器跟蹤寄存器C的Clow分部的壓縮比特的數(shù)目。當(dāng)CT為零時(shí),一個(gè)新字節(jié)被BYTEIN過程插入Clow。所有子區(qū)間寄存器A和碼字寄存器C被一次1比特移位,直到A不再小于0x8000。圖4.5解碼器中的重新歸一化過程RENORMD調(diào)用的BYTEIN過程如圖4.6。該過程讀入1個(gè)字節(jié)的數(shù)據(jù),同時(shí)補(bǔ)償處理中跟在0xFF后面的任何填充比特。它也檢測(cè)在編碼掃描結(jié)尾處或再同步區(qū)間必須出現(xiàn)的標(biāo)記碼字。本過程中寄存器C是Chigh和Clow寄存器的級(jí)聯(lián)。圖中B為壓縮數(shù)據(jù)緩存指針BP指向的字節(jié)。如果B不為0xFF字節(jié)。BP加1,新的B值插入到Clow的高8位比特。圖4.6解碼器的BYTEIN過程如果B是0xFF字節(jié),那么B1(由BP+1指向的字節(jié)被檢測(cè)。如果B1超過0x8F,則B1必須是一個(gè)標(biāo)記碼字。該碼字被根據(jù)需要解釋,而緩存指針仍然指向該標(biāo)記碼字的0xFF前綴。這個(gè)標(biāo)記碼字停止了算術(shù)壓縮數(shù)據(jù)。之后,若干“1”比特被一只填充到解碼器的解碼結(jié)束。圖中該過程由將寄存器C加0xFF00和設(shè)置比特計(jì)數(shù)器CT為8來(lái)顯示。如果B1不是一個(gè)標(biāo)記碼字,則BP加1,指向包含一個(gè)填充比特的下一個(gè)字節(jié)。B被加到寄存器C,其字節(jié)對(duì)準(zhǔn)的條件是使填充比特(它包含任何進(jìn)位比特被加到Chigh的低位比特。INITDEC過程用于啟動(dòng)算術(shù)解碼器。圖4.7為其基本步驟。壓縮數(shù)據(jù)指針BP初始化為BPST,指向壓縮數(shù)據(jù)的第一個(gè)字節(jié)。壓縮數(shù)據(jù)第一個(gè)字節(jié)被移入Chigh的低位字節(jié),然后再讀入一個(gè)新字節(jié)。寄存器C然后移動(dòng)7位,并將CT減7,使得寄存器C與A的起始值對(duì)齊。區(qū)間寄存器A設(shè)置為與編碼器中的起始值相匹配。圖4.7解碼器初始化解碼中某些時(shí)刻,一些或者所有的算術(shù)編碼統(tǒng)計(jì)參數(shù)被重新設(shè)置。它包括對(duì)某些或所有CX值,把I(CX和MPS(CX設(shè)置為零。在某些情況下,解碼器需要保存或恢復(fù)某些I(CX和MPS(CX的值。4.4MQ解碼器算法優(yōu)化與硬件實(shí)現(xiàn)在JPEG2000中,為達(dá)到更好的壓縮效果,MPS和LPS所對(duì)應(yīng)的概率值是動(dòng)態(tài)更新的,解碼器根據(jù)當(dāng)前CX查索引表I得到I和當(dāng)前MPS,然后再根據(jù)查Qe表得到的NLPS、NMPS和SWITCH,在下一個(gè)時(shí)鐘周期更新索引表I,以實(shí)現(xiàn)概率值動(dòng)態(tài)更新。在硬件實(shí)現(xiàn)上本設(shè)計(jì)采用文獻(xiàn)[34]提出的用RAM來(lái)實(shí)現(xiàn)I表,與此同時(shí),由于Qe表是一個(gè)具有47個(gè)不同狀態(tài)的狀態(tài)機(jī),本設(shè)計(jì)采用有限狀態(tài)機(jī)來(lái)實(shí)現(xiàn),其中索引值I為輸入變量,Qe的47個(gè)狀態(tài)加上一個(gè)Idle狀態(tài)構(gòu)成狀態(tài)表。RAM_I與fsm_Qe相互配合可以在兩個(gè)時(shí)鐘周期內(nèi)實(shí)現(xiàn)讀取I表和讀取Qe表的操作。該模塊的主要功能是實(shí)現(xiàn)MPS或LPS解碼,完成區(qū)間寄存器A和解碼寄存器C的更新。標(biāo)準(zhǔn)算法中的解碼區(qū)間更新分DECODE、MPS_EXCHANGE、LPSEXHCHANGE3個(gè)子流程,算法復(fù)雜,且是串行操作,效率很低;為提高處理速度,本設(shè)計(jì)對(duì)該算法流程進(jìn)行了歸納總結(jié),將該流程分成5種情況并行處理,流程圖如圖4.8所示。圖4.8解碼區(qū)間更新在解碼區(qū)間更新模塊完成一個(gè)D解碼同時(shí)產(chǎn)生一個(gè)更新信號(hào)I_update給RAM_I,配合當(dāng)前NLPS、NMPS和SWITCH,在下一個(gè)時(shí)鐘周期更新索引表I,與此同時(shí)進(jìn)行重新歸一化操作。對(duì)標(biāo)準(zhǔn)算法中重新歸一化進(jìn)行進(jìn)一步分析:每次完成一個(gè)D解碼,A都有兩種更新方式A=A-Qe或A=Qe;當(dāng)A=A-Qe時(shí),由于A≥0.75(0x8000,Qe的最大值是0x5601,則更新后A≥0x2901,要滿足0.75≤A<1.5,則A至多需要左移2位;當(dāng)A=Qe時(shí),由于只有在A<2Qe時(shí)才會(huì)出現(xiàn)這種情況,又因?yàn)锳≥0.75(0x8000,所以Qe≥0x4000,更新后A≥0x4000,則A至多需要左移1位;而無(wú)論當(dāng)前CT為何值A(chǔ)至少要左移一次,總結(jié)得到重新歸一化中對(duì)A的操作只有2種:左移一次或者兩次。根據(jù)文獻(xiàn)[36]所提到的前導(dǎo)零檢測(cè)方法,只需要檢測(cè)A[14]是否為零即可判斷A是左移一位還是兩位,具體流程圖如圖4.9所示。圖4.9重新歸一化字節(jié)讀入模塊在初始化和重新歸一化時(shí)調(diào)用,主要功能是讀入新的待解碼數(shù)據(jù)。為解決不同模塊之間數(shù)據(jù)處理速度不匹配的問題,本設(shè)計(jì)在字節(jié)讀入模塊中引入一個(gè)16*8的同步FIFO作為數(shù)據(jù)緩沖區(qū),并在字節(jié)讀入模塊中設(shè)定兩個(gè)8位寄存器B、B1作為緩存器,每次完成一次自己讀入都會(huì)從FIFO讀入一個(gè)字節(jié)更新B1,用之前的B1更新B。圖4.10字節(jié)輸入本文在歸納標(biāo)準(zhǔn)算法后,將BYTEIN分成3種情況[35],其中情況B=0xff&&B1>0x8f表明緩存器指針指向了終結(jié)算術(shù)解碼標(biāo)記符,即完成該段壓縮數(shù)據(jù)CD的解碼工作。具體流程圖如圖4.10所示。解碼器在開始讀入數(shù)據(jù)解碼之前需要進(jìn)行各個(gè)模塊的初始化,主要包括RAM_I的初始化,Qe表的初始化,解碼區(qū)間的初始化,字節(jié)讀入的初始化,本設(shè)計(jì)中通過引入reset_I,reset_Qe控制完成前面兩個(gè)的初始化,而解碼區(qū)間的初始化是在字節(jié)讀入初始化完成之后產(chǎn)生的A_init,C_init和reset_Interval控制完成的。由于位平面解碼器BPD和MQ解碼器并不能同步解碼,通常是BPD工作時(shí)MQ解碼器處于等待狀態(tài),MQ工作時(shí)BPD等待;另外,各個(gè)算術(shù)解碼階段所用的時(shí)間也不一樣,也有同時(shí)處于等待狀態(tài)的過程,如果有效的將這些等待時(shí)間利用起來(lái),將大大提高解碼速度。當(dāng)BPD傳遞的CX到來(lái)時(shí),首先讀I表和Qe表,再進(jìn)行MPS或LPS解碼,由于此時(shí)解碼數(shù)據(jù)已經(jīng)得到,更新索引表I和重新歸一化可以并行處理,與此同時(shí)BPD可以開始下一次解碼CX,以此來(lái)實(shí)現(xiàn)流水操作,具體實(shí)現(xiàn)圖如圖4.11所示。update_I、圖4.114級(jí)流水線MQ解碼器結(jié)構(gòu)4.5仿真及試驗(yàn)結(jié)果該設(shè)計(jì)采用VerilogHDL對(duì)MQ解碼器進(jìn)行了RTL級(jí)描述,采用Altera公司的CycloneII系列FPGA作為硬件平臺(tái),并在QuartusII平臺(tái)下進(jìn)行了設(shè)計(jì)、綜合,與此同時(shí)還進(jìn)一步在Modelsim平臺(tái)下進(jìn)行功能仿真,實(shí)驗(yàn)結(jié)果與軟件仿真結(jié)果一致,且最高工作頻率可達(dá)37.64MHz。試驗(yàn)結(jié)果表明,該設(shè)計(jì)可以大大提高M(jìn)Q解碼器的運(yùn)行效率,基本可以滿足JPEG2000實(shí)時(shí)解碼系統(tǒng)的需要。功能仿真結(jié)果如圖4.12所示,資源使用情況如表4.3所示。圖4.12功能仿真圖表4.3實(shí)驗(yàn)結(jié)果工作頻率37.64MHz總邏輯單元數(shù)557個(gè)總組合函數(shù)551個(gè)專用邏輯寄存器123個(gè)總寄存器123個(gè)總引腳數(shù)27個(gè)總存儲(chǔ)單元位120位4.6小結(jié)本節(jié)分析了JPEG2000標(biāo)準(zhǔn)中MQ解碼器的算法流程,對(duì)其中幾個(gè)流程進(jìn)行了相應(yīng)的算法優(yōu)化,并提出了一種基于4級(jí)流水線的MQ算術(shù)解碼器結(jié)構(gòu),該結(jié)構(gòu)可以在平均每?jī)蓚€(gè)時(shí)鐘周期解碼一個(gè)D判決,該設(shè)計(jì)選取AlteraCycloneIIEP2C35F484C8系列FPGA進(jìn)行實(shí)現(xiàn),結(jié)果表明所占用的資源只有557LE,最高工作頻率可以達(dá)到37.64MHz,在利用有限資源的情況下可以大幅度提高M(jìn)Q算術(shù)解碼器的速度,基本能滿足JPEG2000系統(tǒng)的要求。第5章總結(jié)與展望5.1.全文總結(jié)本文主要做了以下幾方面的工作:首先介紹了位平面解碼器的基本原理,并采用了一種基于選擇性采樣跳過策略的BPD架構(gòu),該結(jié)構(gòu)可以增加整個(gè)塊解碼器的吞吐量。然后又在上述架構(gòu)基礎(chǔ)上引入推測(cè)處理方式,這樣就可以大大減小關(guān)鍵路徑的延遲。相對(duì)于現(xiàn)有方法的基本BPD架構(gòu),改進(jìn)的算法可以將吞吐量提高50%-100%,同時(shí)只增加25%-30%的硬件消耗。然后分析了JPEG2000標(biāo)準(zhǔn)中MQ解碼器的算法流程,對(duì)其中幾個(gè)流程進(jìn)行了相應(yīng)的算法優(yōu)化,并提出了一種基于4級(jí)流水線的MQ算術(shù)解碼器結(jié)構(gòu),該結(jié)構(gòu)可以在平均每?jī)蓚€(gè)時(shí)鐘周期解碼一個(gè)D判決。在QuartusII開發(fā)環(huán)境下對(duì)設(shè)計(jì)進(jìn)行RTL級(jí)描述,用Modelsim進(jìn)行了相應(yīng)的功能仿真;針對(duì)Altera系列FPGACyclo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 全款轉(zhuǎn)讓房產(chǎn)合同范本
- 加班法務(wù)合同范本
- 公司入股合同范本文檔
- 仔豬購(gòu)銷糾紛合同范本
- 包裝插畫合同范本
- 農(nóng)村協(xié)議買房合同范本
- 2024年金山區(qū)衛(wèi)生健康事業(yè)單位招聘衛(wèi)生專業(yè)技術(shù)人員考試真題
- 2024年南丹縣丹融文化傳媒有限公司招聘筆試真題
- 農(nóng)村修水渠合同范本
- 2024年阜陽(yáng)市皖西北(阜南)糧食產(chǎn)業(yè)園有限公司招聘考試真題
- 二年級(jí)剪窗花
- 分子生物學(xué)在醫(yī)藥中的研究進(jìn)展及應(yīng)用
- 《對(duì)折剪紙》)ppt
- 03SG520-1實(shí)腹式鋼吊車梁(中輕級(jí)工作制A1~A5_Q235鋼_跨度6.0m、7.5m、9.0m)
- 以虛報(bào)注冊(cè)資本、虛假出資、抽逃出資為由對(duì)實(shí)行認(rèn)繳資本登記制的公司進(jìn)行處罰無(wú)法律依據(jù)
- 風(fēng)電場(chǎng)生產(chǎn)運(yùn)營(yíng)準(zhǔn)備大綱11.14
- 人教版八年級(jí)語(yǔ)文下冊(cè)教材研說(shuō)
- 《機(jī)械制造裝備設(shè)計(jì)》ppt課件
- 中學(xué)家訪記錄大全100篇 關(guān)于中學(xué)家訪隨筆
- 全國(guó)防返貧監(jiān)測(cè)信息系統(tǒng)業(yè)務(wù)管理子系統(tǒng)操作手冊(cè)
- 小學(xué)綜合實(shí)踐活動(dòng)_植物的繁殖—扦插
評(píng)論
0/150
提交評(píng)論