亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種快速游程長(zhǎng)度編解碼電路的實(shí)現(xiàn)方法

文檔序號(hào):6522761閱讀:296來(lái)源:國(guó)知局
專利名稱:一種快速游程長(zhǎng)度編解碼電路的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明采用一種新穎的硬件架構(gòu),利用較少的硬件資源,實(shí)現(xiàn)了快速游程長(zhǎng)度編解碼(Run length code/Run length decode)硬件電路設(shè)計(jì)。該發(fā)明可直接應(yīng)用于數(shù)字圖形圖像壓縮解壓硬件加速器(如JPEG硬件壓縮解壓、動(dòng)態(tài)視頻圖像壓縮解壓)芯片的設(shè)計(jì),它有效地降低了游程長(zhǎng)度編解碼(RLC/RLD)電路的實(shí)現(xiàn)規(guī)模,同時(shí)提高了游程長(zhǎng)度編解碼的硬件處理速度,從整體上提高了系統(tǒng)的性能。
背景技術(shù)
目前,比較通用的游程長(zhǎng)度編碼(RLC)硬件電路的實(shí)現(xiàn)方法是(1)首先將基于塊處理(Block processing)的量化器(Quantizer)輸出的量化系數(shù)存儲(chǔ)到量化系數(shù)暫存器(quantized coefficients memory)中,每個(gè)塊的大小通常是8×8(如JPEG編碼),也可以是4×4或16×16;(2)在當(dāng)前塊量化完成后,按照掃描順序(水平,垂直或zigzag掃描),掃描量化系數(shù)暫存器,并計(jì)算出0值的游程長(zhǎng)度,得到當(dāng)前塊的游程編碼(Run length code),并將其存儲(chǔ)到相應(yīng)的RLC暫存器中。
(3)將RLC暫存器中的游程長(zhǎng)度編碼(RLC編碼)送至下一級(jí)處理單元,即硬件或軟件霍夫曼(Huffman)編碼。
通用的游程長(zhǎng)度解碼(RLD)的實(shí)現(xiàn)方法是(1)將霍夫曼解碼得到的游程碼寫入RLC暫存器中。
(2)反掃描得恢復(fù)出每個(gè)量化系數(shù),并將其寫至量化系數(shù)暫存器的相應(yīng)位置。
(3)將游程解碼(RLD)得到的量化系數(shù)送至下一級(jí)處理單元,即反量化器(Dequantizer)。
通用的游程長(zhǎng)度編解碼硬件電路在電路功能上沒(méi)有任何問(wèn)題,但電路實(shí)現(xiàn)規(guī)模相對(duì)較大,每個(gè)系數(shù)的掃描都單獨(dú)占用一個(gè)時(shí)鐘周期,在整體性能上,增加了一個(gè)塊處理的流水延遲。

發(fā)明內(nèi)容
本發(fā)明采用一種新穎的硬件架構(gòu),利用較少的硬件資源(無(wú)需游程長(zhǎng)度編碼輸出暫存器RLC暫存器),去除了通用游程長(zhǎng)度編解碼(RLC/RLD)硬件實(shí)現(xiàn)時(shí)塊掃描占用的時(shí)鐘周期,在具體硬件實(shí)現(xiàn)時(shí)做到了快速高效地實(shí)現(xiàn)游程長(zhǎng)度編解碼。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案如下總體設(shè)計(jì)思想是在編碼時(shí)將游程長(zhǎng)度編碼(RLC)拆分到量化和霍夫曼編碼兩個(gè)階段完成即在量化輸出的同時(shí)完成非零系數(shù)的標(biāo)記,在霍夫曼編碼時(shí)實(shí)時(shí)完成掃描(Scanning)和游程長(zhǎng)度編碼(RLC)。在解碼時(shí),將游程長(zhǎng)度解碼(RLD)拆分到霍夫曼解碼和反量化兩個(gè)階段完成,即在霍夫曼解碼時(shí)完成反掃描(Inverse Scanning),在反量化時(shí)實(shí)時(shí)完成量化系數(shù)的恢復(fù)。
本發(fā)明的具體方案是(1)游程長(zhǎng)度編碼(RLC)的實(shí)現(xiàn)采用本發(fā)明的實(shí)現(xiàn)方法,需要為每一個(gè)量化系數(shù)設(shè)一個(gè)標(biāo)記位寄存器,標(biāo)記位的缺省值為0,對(duì)于一個(gè)8×8的塊,需要64個(gè)標(biāo)記位寄存器。在量化輸出時(shí),如果當(dāng)前系數(shù)為非0值,則將相應(yīng)標(biāo)記位設(shè)為1,否則仍保持為0。當(dāng)量化完成后,接下來(lái)需要完成的是實(shí)時(shí)RLC編碼,其具體實(shí)現(xiàn)原理是,將非零標(biāo)記位按掃描順序重新排列,即完成了當(dāng)前非零系數(shù)的的掃描,這個(gè)過(guò)程不占用額外的時(shí)鐘周期,標(biāo)記位的重新排列,也僅需很少的組合電路(如果設(shè)計(jì)支持水平、垂直,zigzag三種掃描方式,則每一個(gè)系數(shù)的重新列最多只需一個(gè)三選一的選擇,如果設(shè)計(jì)只支持zigzag掃描方式,則無(wú)須任何硬件資源,只是一個(gè)排列順序的改變)。同時(shí)將對(duì)應(yīng)的非零系數(shù)提前取出,計(jì)算出當(dāng)前系數(shù)之前0的游程長(zhǎng)度(按照掃描順序兩個(gè)相鄰非零量化系數(shù)之間的持續(xù)0的個(gè)數(shù)),完成RLC編碼,存儲(chǔ)到RLC輸出寄存器中。當(dāng)對(duì)當(dāng)前塊進(jìn)行霍夫曼編碼來(lái)讀取RLC編碼時(shí),立即將預(yù)先編好的一個(gè)RLC編碼送出,并同時(shí)完成下一個(gè)非零系數(shù)的RLC編碼,更新到RLC輸出寄存器,這樣可以確?;舴蚵幋a在讀取RLC編碼時(shí),沒(méi)有任何等待周期,當(dāng)當(dāng)前塊的最后一個(gè)RLC編碼被取走,當(dāng)前塊的游程長(zhǎng)度編碼也結(jié)束。
(2)游程長(zhǎng)度解碼(RLD)的實(shí)現(xiàn)游程長(zhǎng)度解碼(RLD)的原理是在霍夫曼解碼階段,當(dāng)解碼電路接收RLC編碼時(shí),在接收每一個(gè)RLC編碼的同一個(gè)時(shí)鐘周期,根據(jù)當(dāng)前RLC編碼中的游程長(zhǎng)度信息得到當(dāng)前量化系數(shù)在當(dāng)前處理塊中的位置(quantized coefficients memory中的對(duì)應(yīng)地址),并將從當(dāng)前RLC編碼中得到的非零系數(shù)寫入到對(duì)應(yīng)的地址中,同時(shí)將對(duì)應(yīng)的系數(shù)標(biāo)記位寄存器置1。在當(dāng)前處理塊的最后一個(gè)RLC編碼接收完的同時(shí),當(dāng)前塊的反掃描也同時(shí)結(jié)束。接下來(lái)啟動(dòng)當(dāng)前塊的反量化操作,對(duì)于8×8的塊反量化時(shí),需要依次讀取從0到63個(gè)量化系數(shù),根據(jù)對(duì)應(yīng)的非零標(biāo)記位狀態(tài),若當(dāng)前讀取的量化系數(shù)為零,則直接將當(dāng)前送到反量化器的系數(shù)強(qiáng)置為0,若當(dāng)前讀取的量化系數(shù)為非零值,則從量化系數(shù)暫存器中讀出相應(yīng)的量化系數(shù),并送到反量化器。當(dāng)最后一個(gè)量化系數(shù)被送出,當(dāng)前塊的游程長(zhǎng)度解碼也即完成。
本發(fā)明的有益效果是(1)以較少的硬件資源實(shí)現(xiàn)游程長(zhǎng)度編解碼;(2)無(wú)需額外的專用時(shí)鐘周期來(lái)完成游程長(zhǎng)度編解碼(RLC/RLD),減少了系統(tǒng)的流水線延遲;(3)在實(shí)現(xiàn)游程長(zhǎng)度編解碼(RLC/RLD)時(shí),只存取非零量化系數(shù),降低了訪問(wèn)量化數(shù)暫存器的功耗。


圖18×8塊處理(Block Processing)時(shí)64位非零標(biāo)記位寄存器向量的置位流程圖。QC[i]指當(dāng)前量化系數(shù),NZF[i]是其對(duì)應(yīng)的非零標(biāo)記寄存器。
圖28×8塊處理(Block Processing)時(shí)游程長(zhǎng)度編碼實(shí)時(shí)RLC編碼流程圖。Rrlc是RLC編碼輸出寄存器,Aprenz是指前一個(gè)非零系數(shù)的掃描坐標(biāo)值,Acurnz指當(dāng)前非零系數(shù)的掃描坐標(biāo)值,NZF[63:0]指當(dāng)前塊的原始非零標(biāo)記寄存器向量,NZFs[63:0]指掃描順序轉(zhuǎn)置后的非零標(biāo)記向量,R指實(shí)時(shí)計(jì)算出的當(dāng)前非零系數(shù)的0值游程長(zhǎng)度,RLC[Acurnz]指當(dāng)前非零系數(shù)的RLC編碼。
圖3RLD解碼時(shí)的反掃描流程圖。Aprenz是指前一個(gè)非零系數(shù)的反掃描坐標(biāo)值,Acurnz指當(dāng)前非零系數(shù)的反掃描坐標(biāo)值,NZF[63:0]指當(dāng)前塊的原始非零標(biāo)記寄存器向量,QCrlc是指當(dāng)前RLD解碼得到的當(dāng)前非零系數(shù)值,QCmem[Acurnz]指當(dāng)前非零系數(shù)對(duì)應(yīng)在量化系數(shù)暫存器的的存儲(chǔ)單元圖4RLD解碼時(shí)的量化系數(shù)實(shí)時(shí)恢復(fù)流程圖。NZF[i]指當(dāng)前塊的原始非零標(biāo)記寄存器向量,QC[i]指送到反量化器的量化系數(shù),QCmem[i]指量化系數(shù)暫存器中的第i個(gè)存儲(chǔ)單元。
具體實(shí)施例方式
圖1是8×8塊處理(Block Processing)時(shí)64位非零標(biāo)記位寄存器向量的置位流程圖。在當(dāng)前塊量化開始之前,NZF[63:0]初值為0。在量化開始后,一旦硬件電路檢測(cè)到當(dāng)前量化系數(shù)QC[i]不為零,則將相應(yīng)的非零標(biāo)記寄存器位置1,當(dāng)量化器輸出當(dāng)前塊的最后一個(gè)量化系數(shù)NZF[63]同時(shí),當(dāng)前塊的非零標(biāo)記完成。
圖2是8×8塊處理(Block Processing)時(shí)游程長(zhǎng)度編碼實(shí)時(shí)RLC編碼流程圖。實(shí)際電路工作時(shí)分兩個(gè)時(shí)鐘周期完成一個(gè)非零系數(shù)的RLC編碼。第一個(gè)周期為預(yù)取編碼周期,第二個(gè)周期為RLC編碼讀出周期,但同時(shí)也是下一個(gè)非零系數(shù)的預(yù)取編碼周期,從而實(shí)現(xiàn)了預(yù)取編碼和RLC編碼讀出的流水線操作,一個(gè)8×8的塊最少的RLC編碼時(shí)鐘周期數(shù)為第一個(gè)預(yù)取周期加上當(dāng)前塊的RLC編碼個(gè)數(shù)。預(yù)取編碼的工作原理如下首先,將當(dāng)前塊的非零標(biāo)記寄存器向量NZF[63:0]轉(zhuǎn)置為按掃描順序排列的非零零標(biāo)記向量NZFs[63:0]。設(shè)掃描排列順序?yàn)閧b0,b1,b2,…b62,b63},則NZFs012345678······15········································5657····6263··=NZFb0b1b2b3b4b5b6b7b8······b15········································b56b57····b62b63]]>
轉(zhuǎn)置過(guò)程完成了對(duì)當(dāng)前非零系數(shù)的掃描。
然后,對(duì)NZFs進(jìn)行優(yōu)先權(quán)編碼,得到當(dāng)前非零系數(shù)的掃描坐標(biāo)值A(chǔ)curnz。NZFs
優(yōu)先權(quán)最高,NZFs[63]優(yōu)先權(quán)最低。NZFs
為1時(shí),Acurnz=0,當(dāng)只有NZFs[63]為1時(shí),Acurnz=63。Acurnz在下一個(gè)時(shí)鐘被送至Aprenz寄存器。當(dāng)前非零系數(shù)的掃描坐標(biāo)值A(chǔ)curnz減去上一個(gè)非零系數(shù)的掃描坐標(biāo)Aprenz即得到了當(dāng)前非零系數(shù)的游程長(zhǎng)度R,它和當(dāng)前系數(shù)的值被編碼得到當(dāng)前系數(shù)的RLC編碼RLC[Acurnz]并鎖存至RLC輸出寄存器Rrlc,在RLC讀出周期被送出。當(dāng)當(dāng)前非零系數(shù)在預(yù)取周期完成編碼后,其對(duì)應(yīng)的非零標(biāo)記寄存器在讀出周期被清0,釋放出優(yōu)先編碼權(quán),開始了下一個(gè)非零系數(shù)的預(yù)取編碼。當(dāng)最后一個(gè)非零系數(shù)的RLC編碼被讀出,當(dāng)前塊的RLC編碼結(jié)束。
圖3是RLD解碼時(shí)的反掃描流程圖。當(dāng)RLD解碼電路接收到霍夫曼解碼得到的RLC編碼時(shí),立即從的RLC碼中的游程長(zhǎng)度信息解出當(dāng)前非零系數(shù)的反掃描坐標(biāo)值,將相應(yīng)的非零標(biāo)記寄存器置1,同時(shí)將從RLC碼中解出的系數(shù)寫入到量化系數(shù)暫存器中。當(dāng)當(dāng)前塊的最后一個(gè)RLC碼被接收,當(dāng)前塊的RLD解碼反掃描也即結(jié)束。
圖4是RLD解碼時(shí)的量化系數(shù)實(shí)時(shí)恢復(fù)流程圖。RLD解碼電路實(shí)現(xiàn)實(shí)時(shí)量化系數(shù)恢復(fù)時(shí),首先判斷反量化器送出的讀信號(hào)是否有效,當(dāng)有效時(shí),若當(dāng)前系數(shù)的非零標(biāo)記為1,則從量化系數(shù)暫存器中讀出該非零系數(shù)并送到反量化器,若當(dāng)前系數(shù)的非零標(biāo)記為0,則不讀取量化系數(shù)暫存器,而直接將送到反量化器的量化系數(shù)強(qiáng)制為0。同時(shí),量化系數(shù)暫存器的地址計(jì)數(shù)中加1,等待反量化器來(lái)讀取下一個(gè)量化系數(shù)值,當(dāng)最后一個(gè)量化系數(shù)被讀出,當(dāng)前塊的反量化也結(jié)束。
權(quán)利要求
1.一種數(shù)字圖形圖像壓縮解壓硬件加速器中快速游程長(zhǎng)度編解碼電路的實(shí)現(xiàn)方法。具有電路實(shí)現(xiàn)規(guī)模小,游程編解碼速度快和功耗低的特點(diǎn)。
2.根據(jù)權(quán)利要求1所述,利用此方法實(shí)現(xiàn)游程長(zhǎng)度編解碼時(shí),僅需為每個(gè)系數(shù)設(shè)立一個(gè)1bit的非零標(biāo)記寄存器位,無(wú)須RLC暫存器(RLC暫存器用來(lái)存儲(chǔ)整個(gè)塊的RLC編碼,每個(gè)量化系數(shù)的RLC編碼占用一個(gè)多bit位寬的存儲(chǔ)單元,如MPEG4壓縮解壓時(shí)每個(gè)RLC編碼位寬為19bit),電路實(shí)現(xiàn)規(guī)模小。
3.根據(jù)權(quán)利要求1所述,利用此方法實(shí)現(xiàn)游程長(zhǎng)度編解碼時(shí),在游程長(zhǎng)度編碼(RLC)時(shí),在量化的同時(shí)完成非零系數(shù)的標(biāo)記,在系統(tǒng)做霍夫曼編碼時(shí)實(shí)時(shí)掃描完成RLC編碼。在游程長(zhǎng)度解碼(RLD)時(shí),它在得到RLC編碼的同時(shí)完成了反掃描,在反量化時(shí)實(shí)時(shí)完成量化系數(shù)的恢復(fù)。每個(gè)塊的游程長(zhǎng)度編解碼不占用額外的處理時(shí)鐘周期,從而達(dá)到了快速的目的。其中編碼關(guān)鍵技術(shù)有以下幾點(diǎn)(1)在量化輸出的同時(shí)將非零系數(shù)的標(biāo)記位置1;(2)RLC編碼時(shí)的預(yù)取機(jī)制;(3)直接將標(biāo)記位寄存器按掃描順序轉(zhuǎn)置完成當(dāng)前非零系數(shù)的掃描,利用當(dāng)前塊非零標(biāo)記寄存器的優(yōu)先權(quán)編碼,實(shí)時(shí)計(jì)算出當(dāng)前非零值的游程長(zhǎng)度,直接從量化系數(shù)暫存器中讀出該系數(shù),得到RLC編碼。其中解碼關(guān)鍵技術(shù)有以下2點(diǎn)(1)在得到RLC編碼的同時(shí),立即根據(jù)RLC碼中流程長(zhǎng)度信息,解出當(dāng)前系數(shù)在掃描序列中的位置,將其作反掃描,可立即得到當(dāng)前非零系數(shù)在量化系數(shù)暫存器中的地址,將相應(yīng)的非零標(biāo)記位置1,同時(shí)將從RLC碼中解碼得到的量化系數(shù)寫入該地址;(2)在解碼做反量化時(shí),實(shí)時(shí)恢復(fù)出量化系數(shù)矩陣根據(jù)當(dāng)前塊系數(shù)的非零標(biāo)記,只從量化系數(shù)存儲(chǔ)器中讀取非零系數(shù)值,對(duì)于0值量化系數(shù),無(wú)須讀量化系數(shù)暫存器,而直接將0值送至反量化器。
4.根據(jù)權(quán)利要求1、2、3所述,利用此方法實(shí)現(xiàn)游程長(zhǎng)度編解碼時(shí),電路規(guī)模小,在掃描/反掃描時(shí)只須讀出/寫入非零系數(shù)值,減少了量化系數(shù)暫存器的存儲(chǔ)次數(shù)。這些優(yōu)點(diǎn),都降低了實(shí)際電路實(shí)現(xiàn)時(shí)的功耗。
全文摘要
一種基于塊處理數(shù)字圖形圖像壓縮解壓硬件加速器中快速游程長(zhǎng)度編解碼(RLC/RLD)電路的實(shí)現(xiàn)方法。具有電路實(shí)現(xiàn)規(guī)模小,快速編解碼,功耗低的優(yōu)點(diǎn)。在游程長(zhǎng)度編碼(RLC)時(shí),在量化的同時(shí)標(biāo)記非零系數(shù),在系統(tǒng)做霍夫曼編碼時(shí)實(shí)時(shí)掃描完成RLC編碼。在游程長(zhǎng)度解碼(RLD)時(shí),它在得到RLC編碼的同時(shí)完成反掃描,在反量化時(shí)實(shí)時(shí)完成量化系數(shù)的恢復(fù)。
文檔編號(hào)G06T9/00GK1779716SQ200510026218
公開日2006年5月31日 申請(qǐng)日期2005年5月26日 優(yōu)先權(quán)日2005年5月26日
發(fā)明者唐宏斌 申請(qǐng)人:智多微電子(上海)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1