專利名稱:基于jpeg-ls算法的碼流拼接實現(xiàn)系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于 JPEG-LSCJoint Photographic ExpertGroup-Lossless and near lossless)算法的改進(jìn)數(shù)據(jù)組幀技術(shù),屬于圖像壓縮技術(shù)領(lǐng)域。
背景技術(shù):
JPEG-LS是聯(lián)合圖像專家組制定的一種圖像無損、近無損壓縮的國際標(biāo)準(zhǔn),是當(dāng)今 無損、近無損壓縮領(lǐng)域性能最優(yōu)的算法。將其運(yùn)用到遙感衛(wèi)星圖像的無損、近無損壓縮取得 了良好的效果,無損壓縮比高于一般性能較強(qiáng)的自適應(yīng)算術(shù)編碼算法。JPEG-LS核心算法是 采納自HP(惠普)實驗室提供的LOCO-I壓縮方案,主要使用了預(yù)測、游長長度編碼和預(yù)測 誤差Golomb熵編碼等技術(shù)。由于其結(jié)構(gòu)簡單,復(fù)雜性低,易于硬件實現(xiàn),低倍率壓縮性能優(yōu) 良等特點,而十分適合于星載遙感圖像壓縮。碼流拼接技術(shù)是JPEG-LS壓縮單元的核心功能之一,其作用是將JPEG-LS多模式 壓縮輸出碼流拼接為固定長度的比特單元,并在特定比特單元后面插入比特‘O’,為隨后的 固態(tài)存儲器準(zhǔn)備好數(shù)據(jù),具體原理圖如圖1所示。使用JPEG-LS算法得到的圖像壓縮碼流 是多模式,隨機(jī)長度的比特流。該輸出比特流要統(tǒng)一打包成為以字節(jié)為單位的數(shù)據(jù)包,并完 成特殊字節(jié)檢測和比特插入。JPEG-LS算法是反饋壓縮算法,輸出的比特流是多參數(shù),隨機(jī) 長度的。這使得碼流拼接要消耗大量的存儲單元,并在極端的情況下出現(xiàn)存儲溢出的問題, 增加了設(shè)計的復(fù)雜度。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是克服現(xiàn)有技術(shù)的不足,提供一種不存在端口阻塞傳播 問題、抗突發(fā)、特性化的碼流拼接方法,針對目前星載JPEG-LS壓縮單元的需求,本發(fā)明適 用于JPEG-LS算法突發(fā)碼流拼接。本發(fā)明的技術(shù)解決方案是基于JPEG-LS算法的碼流拼接實現(xiàn)系統(tǒng),其特征在于 包括模式判斷模塊、游長模式處理模塊、游長長度編碼模塊、游長模式結(jié)束處理模塊、碼流 拼接模塊和常規(guī)模式處理模塊,其中碼流拼接模塊包括16比特拼接模塊、第一級FIF0、8比 特拼接模塊和第二級FIFO ;輸入的圖像樣點在模式判斷模塊進(jìn)行模式判斷,滿足游長條件的圖像樣點送入 游長模式處理模塊,不滿足游長條件的圖像樣點數(shù)據(jù)送入常規(guī)模式處理模塊,游長模式處 理模塊對送入的圖像樣點進(jìn)行游長掃描條件的判斷,若滿足游長掃描條件,統(tǒng)計累加輸入 的圖像樣點個數(shù)記為游長長度Runcnt,并將每一次統(tǒng)計的游長長度Rimcnt與游長索引值 2J[runindex]比較,當(dāng)Runcnt≥2JIrlulindex時,將輸出的比特‘1’的個數(shù)one_nUm累加1并計算 Runcnt = RUncnt-2&mindex],若不滿足游長掃描條件,游長模式處理模塊將滿足游長掃描條 件的圖像樣點數(shù)據(jù)送入游長長度編碼模塊,游長長度編碼模塊將統(tǒng)計更新后的Runcnt編 碼輸出比特碼流bit_rimcnt和碼流長度rimcntlen到16比特拼接模塊,游長模式處理模 塊將不滿足游長掃描條件的圖象樣點送入游長模式結(jié)束處理模塊,游長模式結(jié)束處理模塊輸出壓縮碼流壓縮碼流bitcode、碼流長度bitleng和比特‘0’的個數(shù)zerojum到16比 特拼接模塊,常規(guī)模式處理模塊對送入的不滿足游長條件的圖像樣點處理并輸出壓縮碼流 bitcode、碼流長度bitleng和比特‘0’的個數(shù)zerojum到16比特拼接模塊,16比特拼接模 塊對接收到的碼流進(jìn)行拼接,并將拼接產(chǎn)生的數(shù)據(jù)以16比特為單位依次送入第一級FIFO 中,8比特拼接模塊將第一級FIFO中緩存的16比特數(shù)據(jù)讀出,進(jìn)行拼接并將拼接產(chǎn)生的數(shù) 據(jù)以8比特為單位依次送入第二級FIFO中。所述的16比特拼接模塊對接收到的碼流分模式進(jìn)行拼接,當(dāng)接收到的碼流為游 長長度編碼模塊的輸出,16比特拼接模塊先將上次拼接剩余的碼流比特與0ne_nUm個比特 ‘ 1’拼接,然后再與bit_rimcnt的rimcntlen個有效比特位拼接,當(dāng)接收到的碼流為游長模 式結(jié)束處理或者為常規(guī)模式處理模塊的輸出,16比特拼接模塊先將上次拼接剩余的碼流比 特與zer0_num個比特‘0’拼接,然后再與bitcode的bitleng個有效比特位拼接。所述的8比特拼接模塊將緩存在第一級FIFO中的16比特數(shù)據(jù)讀出,分為高8位 和低8位,8比特拼接模塊將上次判定插入數(shù)據(jù)后剩余的比特與高8比特數(shù)據(jù)拼接,并取8 比特,送入二級緩存FIFO中,若該8比特數(shù)據(jù)為“FF”,本次拼接后剩余的比特中插入比特 ‘0’ ;將高8比特數(shù)據(jù)拼接剩余的比特與低8比特數(shù)據(jù)拼接,并取8比特送入二級緩存FIFO 中,若該8比特數(shù)據(jù)為“FF”,本次拼接剩余的比特中插入比特‘0’。第一步,對輸入的圖像樣點進(jìn)行模式判斷,若滿足游長條件,則進(jìn)入第二步,若不 滿足游長條件,則進(jìn)入第七步;第二步,對第一步送入的滿足游長條件的圖像樣點進(jìn)行游長掃描條件的判斷,若 滿足游長掃描條件,則進(jìn)入第三步,若不滿足游長掃描條件,則進(jìn)入第六步;第三步,統(tǒng)計累加輸入的滿足游長掃描條件的圖像樣點個數(shù)記為游長長度 Runcnt ;第四步,將每一次統(tǒng)計的游長長度Rimcnt與游長索引值f 比較,當(dāng) Runcnt彡2J[runindex]時,將輸出的比特‘1,的個數(shù)onejum累加1并計算Runcnt = Runcnt-2J[runindex]更新Runcnt,進(jìn)入第五步,若不滿足Runcnt彡2T[ranindex],則進(jìn)入第三步;第五步,將統(tǒng)計更新后的Runcnt編碼輸出比特碼流b i t_runcnt和碼流長度 runcntlen,進(jìn)入第八步;第六步,若第一步送入的滿足游長條件的圖像樣點不滿足游長掃描條件,輸出壓 縮碼流壓縮碼流bitcode、碼流長度bitleng和比特‘0,的個數(shù)zerojum,進(jìn)入第八步;第七步,對第一步中不滿足游長條件的圖像樣點常規(guī)處理后輸出壓縮碼流 bitcode、碼流長度bitleng和比特‘0,的個數(shù)zer0_num,進(jìn)入第八步;第八步,對接收到的碼流分模式進(jìn)行拼接,并將拼接產(chǎn)生的數(shù)據(jù)以16比特為單位 依次進(jìn)行緩存;第九步,提取緩存的16比特數(shù)據(jù),以8比特為單位再次進(jìn)行拼接,尋找特殊字節(jié) “FF”,在特殊字節(jié)后字節(jié)插入比特“0”,并將拼接產(chǎn)生的數(shù)據(jù)以8比特為單位依次進(jìn)行緩 存;第十步,將以8比特為單位進(jìn)行緩存的數(shù)據(jù)輸出。所述第八步具體拼接過程為,若接收到的碼流是第五步得到的,將上次拼接剩余 的碼流比特與one_num個比特‘1’拼接,然后再與bit_runCnt的runcntlen個有效比特位
5拼接,若接收到的碼流是第六步和第七步得到的,將上次拼接剩余的碼流比特與Zer0_nUm 個比特‘0’拼接,然后再與bitcode的bitleng個有效比特位拼接,將拼接產(chǎn)生的數(shù)據(jù)以16 比特為單位依次進(jìn)行緩存;所述第九步具體拼接過程為,將提取的緩存的16比特數(shù)據(jù),分為高8位和低8位, 將上次判定插入數(shù)據(jù)后剩余的比特與高8比特數(shù)據(jù)拼接,并取8比特,進(jìn)行緩存,若該8比 特數(shù)據(jù)為“FF”,本次拼接后剩余的比特中插入比特‘0’;將高8比特數(shù)據(jù)拼接剩余的比特與 低8比特數(shù)據(jù)拼接,并取8比特,送入二級緩存FIFO中,若該8比特數(shù)據(jù)為“FF”,本次拼接 剩余的比特中插入比特‘0’。本發(fā)明的設(shè)計要點1、在樣點滿足游長條件時,每統(tǒng)計完一個樣點的游長長度Runcnt,就進(jìn)行逐次比 較,避免了 JPEG-LS算法中對最后統(tǒng)計出的Runcnt進(jìn)行循環(huán)比較編碼,易于采用FPGA或 ASIC實現(xiàn)。2、將樣點壓縮產(chǎn)生的比特碼流分為多個部分輸出拼接,減輕了 JPEG-LS算法中 Golomb編碼的壓力,有利于JPEG-LS算法中反饋處理部分的快速實現(xiàn)。根據(jù)不同模式下壓 縮算法的特點,輸出壓縮碼流,可以優(yōu)化JPEG-LS前端壓縮單元的控制。3、使用兩級緩存存儲兩級拼接碼流單元。第一級緩存存儲樣點壓縮產(chǎn)生的各部分 碼流的拼接。該拼接只完成各部分碼流拼接為16比特位寬的數(shù)據(jù)。第二級緩存存儲查找 特殊字節(jié)“FF”后插入比特‘O’后的碼流拼接。使用兩級緩存,將拼接和插零隔離,使原本 比較大的反饋操作分割成兩個比較下的反饋操作,易于采用FPGA或ASIC實現(xiàn)。本發(fā)明與現(xiàn)有技術(shù)相比有益效果為(1)本發(fā)明使用高效的碼流拼接技術(shù),采用逐次比較編碼Rimcnt,完成了游長 模式下游長長度編碼,降低了處理復(fù)雜度,有效利用JPEG-LS算法的處理時隙,優(yōu)化了 JPEG-LS算法實現(xiàn)的速度;(2)本發(fā)明的系統(tǒng)將連續(xù)的比特‘0’和比特‘1’記為統(tǒng)計長度,有效的節(jié)省了處理 數(shù)據(jù)帶寬;(3)本發(fā)明的系統(tǒng)采用的二級緩存技術(shù),硬件實現(xiàn)占用資源少,采用模塊化設(shè)計, 易于采用FPGA或ASIC實現(xiàn);(4)本發(fā)明采用二級緩存技術(shù),對拼接和特殊字符檢驗功能隔離,將大反饋環(huán)路拆 分為兩個小的反饋環(huán)路,有效提高了數(shù)據(jù)處理的效率,緩解了隨機(jī)長度碼流對存儲單元的 需求,不用使用大容量的緩存,克服了大容量緩存溢出的問題,在未來的圖像壓縮中具有廣 闊的應(yīng)用前景;(5)本發(fā)明的方法充分利用壓縮碼流的特性,根據(jù)壓縮碼流中存在的大量的連續(xù) 的‘0’和連續(xù)的‘1,的特性,統(tǒng)計連續(xù)相同比特的個數(shù),計算出10比特圖像每一像素在不 同模式下產(chǎn)生的最大的比特數(shù),完成比特碼流拼接為字流;(6)本發(fā)明方法的反饋拼接結(jié)構(gòu)非常適合于處理多參數(shù),隨機(jī)長度的數(shù)據(jù)比特拼 接打包,并可以有效的避免后續(xù)存儲單元的溢出。
圖1為JPEG-LS算法的原理組成框圖2為本發(fā)明系統(tǒng)框圖;圖3為本發(fā)明處理流程圖;圖4為本發(fā)明游長逐次比較處理流程圖;圖5為本發(fā)明二級緩存處理框圖;圖6為本發(fā)明碼流拼接一級緩存處理流程圖。
具體實施例方式如圖2所示,本發(fā)明基于JPEG-LS算法的高效碼流拼接技術(shù)改進(jìn)了 JPEG-LS算法 中游長長度編碼算法,使用二級緩存技術(shù)實現(xiàn)了碼流拼接?;贘PEG-LS算法的碼流拼接實現(xiàn)系統(tǒng),包括模式判斷模塊、游長模式處理模塊、 游長長度編碼模塊、游長模式結(jié)束處理模塊、碼流拼接模塊和常規(guī)模式處理模塊,其中碼流 拼接模塊如圖5所示,包括16比特拼接模塊、第一級FIF0、8比特拼接模塊和第二級FIFO。模式判斷模塊對輸入的圖像樣點在模式判斷模塊進(jìn)行模式判斷,滿足游長條件的 圖像樣點送入游長模式處理模塊,不滿足游長條件的圖像樣點數(shù)據(jù)送入常規(guī)模式處理模 塊。游長模式處理模塊對送入的圖像樣點進(jìn)行游長掃描條件的判斷,若滿足游長掃 描條件,統(tǒng)計累加輸入的圖像樣點個數(shù)記為游長長度Runcnt,并將每一次統(tǒng)計的游長長度 Runcnt與游長索引值2J[nmindex]比較,當(dāng)Runcnt彡2J[ index]時,將輸出的比特‘1,的個數(shù) one_nUm累加1并計算Rimcnt = Rimcnt-2T[ranindex],若不滿足游長掃描條件,游長模式處理 模塊將滿足游長掃描條件的圖像樣點數(shù)據(jù)送入游長長度編碼模塊。游長長度編碼模塊將統(tǒng)計更新后的Rimcnt編碼輸出比特碼流bit_rimCnt和碼流 長度rimcntlen到16比特拼接模塊。游長模式處理模塊將不滿足游長掃描條件的圖象樣點送入游長模式結(jié)束處理模 塊,游長模式結(jié)束處理模塊輸出壓縮碼流壓縮碼流bitcode、碼流長度bitleng和比特‘0’ 的個數(shù)zero_nUm到16比特拼接模塊。常規(guī)模式處理模塊對送入的不滿足游長條件的圖像樣點處理并輸出壓縮碼流 bitcode、碼流長度bitleng和比特‘0’的個數(shù)zerojum到16比特拼接模塊。16比特拼接模塊對接收到的碼流進(jìn)行拼接,并將拼接產(chǎn)生的數(shù)據(jù)以16比特為單 位依次送入第一級FIFO中。8比特拼接模塊將第一級FIFO中緩存的16比特數(shù)據(jù)讀出,進(jìn) 行拼接并將拼接產(chǎn)生的數(shù)據(jù)以8比特為單位依次送入第二級FIFO中。結(jié)合附圖和具體實例對本發(fā)明方法進(jìn)行說明,本發(fā)明的流程如圖3所示,逐次比較游長長度,游長長度編碼模塊是在判定輸入的10比特像素樣點滿足游 長條件的基礎(chǔ)上,統(tǒng)計像素樣點的個數(shù)記為=Rimcnt,并逐次比較得到游長長度編碼中比特 ‘1,的個數(shù)。如圖4所示,圖像像素樣點輸入后,判定該該樣點是否滿足游長模式。當(dāng)該樣點判 定進(jìn)入游長模式時,判定該像素樣點是否滿足條件I Ix-Runval | ^ Near,其中Ix是像素樣 點的值,Runval是游長估計重建值,Near是壓縮比控制參數(shù)(以上符號的意義在JPEG-LS 算法中都有詳細(xì)的說明)。當(dāng)像素樣點滿足上式的條件,則判定該像素樣點滿足游長掃描條 件,統(tǒng)計出滿足游長掃描條件的樣點的個數(shù)記為RimCnt。此時Rimcnt加一,并判定是否滿足式=Runcnt = 2J[ index]0如果滿足上式Runcnt = 0,編碼輸出比特‘1,的個數(shù)加一,同時 更新游長索引值=Rimindex ;否則判定該樣點是否為一行結(jié)束。如果該樣點是一行結(jié)束的 樣點,樣點判斷Runcnt是否為零,如果不為零,編碼輸出的比特‘1’的個數(shù)加一,否則樣點 處理進(jìn)入下一行。如果判定該樣點不是一行結(jié)束的樣點,繼續(xù)輸入樣點,并完成上述的游長 條件判定的過程。當(dāng)該樣點不滿足游長條件,樣點進(jìn)入游長終止處理模塊,同時判斷游長長 度Runcnt是否為零。如果Runcnt不為零,輸出Runcnt的J[Runindex]位比特,并更新游 長Rimindex。樣點在游長終止處理模塊壓縮產(chǎn)生的數(shù)據(jù)送到二級緩存碼流拼接模塊,作為 該模塊的輸入。如果樣點不滿足游長條件,樣點被送入常規(guī)模式處理模塊,其送出的壓縮碼流送 到二級緩存碼流拼接模塊,作為該模塊的輸入。二級緩存碼流拼接是將游長處理中產(chǎn)生的游長長度Rimcnt編碼輸出比特,游長 終止處理模塊和常規(guī)處理模塊的壓縮碼流輸出比特拼接為8比特為單位的字節(jié)數(shù)據(jù),并判 定該8比特數(shù)據(jù)是否為“FF”。如果該8比特數(shù)據(jù)是“FF”,在該8比特碼流后插入比特‘0’ 并繼續(xù)拼接,否則繼續(xù)拼接。如圖5所示,經(jīng)過壓縮處理后產(chǎn)生的碼流作為二級緩存碼流拼接模塊的輸入。第 一級拼接(16比特拼接)輸出16比特位寬的數(shù)據(jù),緩存輸入到第一級緩存FIFO中。壓縮 輸出石馬流參數(shù)為:one_num, bit_runcnt, runcnt 1 en, bitcode, bitleng 禾口 zero_num,其各部 分的含義one_num為比特‘1’的個數(shù),bit_runCnt為游長長度編碼比特,runcntlen為游長 長度編碼比特的有效長度,bitcode為golomb編碼碼流輸出比特,bitlenggolomb編碼碼流 輸出比特有效長度,Zer0_nUm為golomb編碼輸出的比特‘0’的長度。當(dāng)樣點為游長模式 處理時輸出one_num,bit_runcnt, runcntlen壓縮碼流參數(shù),當(dāng)樣點為常規(guī)模式處理和游 長結(jié)束處理時輸出bitcode,bitleng和zero_num壓縮碼流參數(shù)。當(dāng)接收到one_num,bit_ runcnt, runcntlen壓縮碼流參數(shù)后,計算剩余比特個數(shù)與比特‘1’個數(shù)onejum的和并判 定剩余比特與比特‘1’的拼接是否大于16,輸出大于16時的16比特拼接碼流。拼接剩余 的比特‘1’的個數(shù)是否滿足拼接為16比特的條件,如果滿足拼接條件,輸出16比特‘1’。 同時判定游長長度編碼與本次拼接后剩余比特是否滿足拼接條件,滿足拼接條件則輸出16 比特數(shù)據(jù),否則作為下一次拼接的剩余比特。同理,當(dāng)接收到bitcode,bitleng和zer0_num 壓縮碼流參數(shù)后,數(shù)據(jù)的拼接與上述處理過程類似,詳細(xì)的處理流程可見圖6。二級拼接緩存中的第二級碼流拼接(8比特拼接)完成特殊字節(jié)“FF”的檢測,并 在檢測到的字節(jié)后面插入比特‘0’的操作。經(jīng)第一級緩存后的數(shù)據(jù)送入二級拼接模塊,與 上一次拼接剩余的數(shù)據(jù)合并拼接處新的8比特,同時將拼接完成的該8比特數(shù)據(jù)輸出到第 二級緩存FIFO中。當(dāng)該8比特數(shù)據(jù)為“FF時”,在本次拼接完成后的剩余比特中插入比特 ‘0,。本發(fā)明未具體說明部分屬于本領(lǐng)域公知技術(shù)和JPEG-LS算法(詳見胡棟著的《靜 止圖像編碼的基本方法與國際標(biāo)準(zhǔn)》,北京郵電大學(xué)出版社,第一版,第88-137頁)中的技 術(shù)。本發(fā)明未詳細(xì)說明部分屬本領(lǐng)域技術(shù)人員公知常識。
8
權(quán)利要求
基于JPEG LS算法的碼流拼接實現(xiàn)系統(tǒng),其特征在于包括模式判斷模塊、游長模式處理模塊、游長長度編碼模塊、游長模式結(jié)束處理模塊、碼流拼接模塊和常規(guī)模式處理模塊,其中碼流拼接模塊包括16比特拼接模塊、第一級FIFO、8比特拼接模塊和第二級FIFO;輸入的圖像樣點在模式判斷模塊進(jìn)行模式判斷,滿足游長條件的圖像樣點送入游長模式處理模塊,不滿足游長條件的圖像樣點數(shù)據(jù)送入常規(guī)模式處理模塊,游長模式處理模塊對送入的圖像樣點進(jìn)行游長掃描條件的判斷,若滿足游長掃描條件,統(tǒng)計累加輸入的圖像樣點個數(shù)記為游長長度Runcnt,并將每一次統(tǒng)計的游長長度Runcnt與游長索引值2J[runindex]比較,當(dāng)Runcnt≥2J[runindex]時,將輸出的比特‘1’的個數(shù)one_num累加1并計算Runcnt=Runcnt 2J[runindex],若不滿足游長掃描條件,游長模式處理模塊將滿足游長掃描條件的圖像樣點數(shù)據(jù)送入游長長度編碼模塊,游長長度編碼模塊將統(tǒng)計更新后的Runcnt編碼輸出比特碼流bit_runcnt和碼流長度runcntlen到16比特拼接模塊,游長模式處理模塊將不滿足游長掃描條件的圖象樣點送入游長模式結(jié)束處理模塊,游長模式結(jié)束處理模塊輸出壓縮碼流壓縮碼流bitcode、碼流長度bitleng和比特‘0’的個數(shù)zero_num到16比特拼接模塊,常規(guī)模式處理模塊對送入的不滿足游長條件的圖像樣點處理并輸出壓縮碼流bitcode、碼流長度bitleng和比特‘0’的個數(shù)zero_num到16比特拼接模塊,16比特拼接模塊對接收到的碼流進(jìn)行拼接,并將拼接產(chǎn)生的數(shù)據(jù)以16比特為單位依次送入第一級FIFO中,8比特拼接模塊將第一級FIFO中緩存的16比特數(shù)據(jù)讀出,進(jìn)行拼接并將拼接產(chǎn)生的數(shù)據(jù)以8比特為單位依次送入第二級FIFO中。
2.根據(jù)權(quán)利要求1所述的基于JPEG-LS算法的碼流拼接實現(xiàn)系統(tǒng),其特征在于所述 的16比特拼接模塊對接收到的碼流分模式進(jìn)行拼接,當(dāng)接收到的碼流為游長長度編碼模 塊的輸出,16比特拼接模塊先將上次拼接剩余的碼流比特與onmum個比特‘1’拼接,然 后再與bit_rimcnt的rimcntlen個有效比特位拼接,當(dāng)接收到的碼流為游長模式結(jié)束處理 或者為常規(guī)模式處理模塊的輸出,16比特拼接模塊先將上次拼接剩余的碼流比特與zen num個比特‘0’拼接,然后再與bitcode的bitleng個有效比特位拼接。
3.根據(jù)權(quán)利要求1所述的基于JPEG-LS算法的碼流拼接實現(xiàn)系統(tǒng),其特征在于所述 的8比特拼接模塊將緩存在第一級FIFO中的16比特數(shù)據(jù)讀出,分為高8位和低8位,8比 特拼接模塊將上次判定插入數(shù)據(jù)后剩余的比特與高8比特數(shù)據(jù)拼接,并取8比特,送入二級 緩存FIFO中,若該8比特數(shù)據(jù)為“FF”,本次拼接后剩余的比特中插入比特‘0’ ;將高8比特 數(shù)據(jù)拼接剩余的比特與低8比特數(shù)據(jù)拼接,并取8比特送入二級緩存FIFO中,若該8比特 數(shù)據(jù)為“FF”,本次拼接剩余的比特中插入比特‘0’。
4.基于JPEG-LS算法的碼流拼接實現(xiàn)方法,其特征在于通過以下步驟實現(xiàn)第一步,對輸入的圖像樣點進(jìn)行模式判斷,若滿足游長條件,則進(jìn)入第二步,若不滿足 游長條件,則進(jìn)入第七步;第二步,對第一步送入的滿足游長條件的圖像樣點進(jìn)行游長掃描條件的判斷,若滿足 游長掃描條件,則進(jìn)入第三步,若不滿足游長掃描條件,則進(jìn)入第六步;第三步,統(tǒng)計累加輸入的滿足游長掃描條件的圖像樣點個數(shù)記為游長長度Runcnt ;第四步,將每一次統(tǒng)計的游長長度Runcnt與游長索引值比較,當(dāng) Runcnt≥2J[runindex]時,將輸出的比特‘1,的個數(shù)onejum累加1并計算Runcnt = Runcnt-2J[runindex]更新Runcnt,進(jìn)入第五步,若不滿足Runcnt≥2T[ranindex],則進(jìn)入第三步;第五步,將統(tǒng)計更新后的Runcnt編碼輸出比特碼流bit_rimCnt和碼流長度 runcntlen,進(jìn)入第八步;第六步,若第一步送入的滿足游長條件的圖像樣點不滿足游長掃描條件,輸出壓縮碼 流壓縮碼流bitcode、碼流長度bitleng和比特‘0,的個數(shù)zer0_num,進(jìn)入第八步;第七步,對第一步中不滿足游長條件的圖像樣點常規(guī)處理后輸出壓縮碼流bitcode、碼 流長度bitleng和比特‘0,的個數(shù)zer0_num,進(jìn)入第八步;第八步,對接收到的碼流分模式進(jìn)行拼接,并將拼接產(chǎn)生的數(shù)據(jù)以16比特為單位依次 進(jìn)行緩存;第九步,提取緩存的16比特數(shù)據(jù),以8比特為單位再次進(jìn)行拼接,尋找特殊字節(jié)“FF”, 在特殊字節(jié)后字節(jié)插入比特“0”,并將拼接產(chǎn)生的數(shù)據(jù)以8比特為單位依次進(jìn)行緩存; 第十步,將以8比特為單位進(jìn)行緩存的數(shù)據(jù)輸出。
5.根據(jù)權(quán)利要求4所述的基于JPEG-LS算法的碼流拼接實現(xiàn)方法,其特征在于所述 第八步具體拼接過程為,若接收到的碼流是第五步得到的,將上次拼接剩余的碼流比特與 one_num個比特‘1’拼接,然后再與bit_runCnt的runcntlen個有效比特位拼接,若接收 到的碼流是第六步和第七步得到的,將上次拼接剩余的碼流比特與Zer0_nUm個比特‘0’拼 接,然后再與bitcode的bitleng個有效比特位拼接,將拼接產(chǎn)生的數(shù)據(jù)以16比特為單位 依次進(jìn)行緩存;
6.根據(jù)權(quán)利要求4所述的基于JPEG-LS算法的碼流拼接實現(xiàn)方法,其特征在于所述 第九步具體拼接過程為,將提取的緩存的16比特數(shù)據(jù),分為高8位和低8位,將上次判定插 入數(shù)據(jù)后剩余的比特與高8比特數(shù)據(jù)拼接,并取8比特,進(jìn)行緩存,若該8比特數(shù)據(jù)為“FF”, 本次拼接后剩余的比特中插入比特‘0’ ;將高8比特數(shù)據(jù)拼接剩余的比特與低8比特數(shù)據(jù) 拼接,并取8比特,送入二級緩存FIFO中,若該8比特數(shù)據(jù)為“FF”,本次拼接剩余的比特中 插入比特‘0’。
全文摘要
基于JPEG-LS算法的碼流拼接實現(xiàn)系統(tǒng)及方法,本發(fā)明充分利用JPEG-LS算法的反饋處理間隙,在當(dāng)前像素處理過程中完成上一個像素壓縮碼流的拼接,并通過二級緩存技術(shù),減少了存儲單元的使用。本發(fā)明采用的碼流拼接方法,硬件實現(xiàn)占用資源少,易于采用FPGA或ASIC實現(xiàn)。
文檔編號H04N7/24GK101895760SQ20101024013
公開日2010年11月24日 申請日期2010年7月29日 優(yōu)先權(quán)日2010年7月29日
發(fā)明者候舒維, 張海濤, 蒙紅英 申請人:西安空間無線電技術(shù)研究所