專利名稱:一種avs游程解碼方法
技術領域:
本發明屬于數字音^L頻編解碼技術領域,具體涉及一種AVS游程解碼方法。
背景技術:
AVS音視頻標準包括編碼和解碼兩個過程, 一個塊的編碼過程中包括變 換、量化、掃描、游程(run-level)編碼和變長編碼等操:作,相應地,解碼 過程包括變長解碼、游程解碼、反掃描、反量化、反變換等處理。由語法元 素經過變長解碼后,生成量化系數幅度(level )數組和量化系數游程(run) 數組。其中level定義為非零量化系數的幅值,run定義為當前非零量化系數 前的連續零的個數。通過對run-level ft組進行游程解碼然后進行反掃描生 成量化系數。
按照定義,level為非零量化系數的幅值,run為相應非零量化系數level 值前的連續零的個數,所以當前的AVS游程解碼方法是先解碼run數組中的 數,然后再對應解碼level數組中的非零量化系數的幅值數。
然而在AVS音^L頻解碼中, 一個塊經過變長解碼輸出的run-level數組 在先后順序上是顛倒的,如果直接游程解碼,得到的量化系數順序是混亂的, 不能進行下一步的逆掃描。因此,當前技術的解決辦法是在變長解碼之后增 加一個寄存器模塊。現有AVS游程解碼方法如圖l所示,X的初始值設為O, 一個像素塊的代碼經過變長解碼生成的run-level數組全部存入寄存器后,X
的值加1 ,然后按先進后出模式分針讀取寄存惑中第X個run值和第X個1 eve 1 值;解碼時,先對第X個run值解碼,解碼后的run值存入量化系數寄存器, 再對level值解碼,解碼后的level值存入量化系數寄存器;然后在對X值 進行判斷,如果X不等于N,則返回至對X值加1的步驟,繼續對run-level 數組中的數解碼,如果X等于N,則量化系數寄存中存入的解碼值形成了一個 像素塊的量化系數,游程解碼方法流程結束。其中N的定義為一個像素塊中 run-level凄史組的數的個數。
現有技術中,存取run-level數組的寄存器從根本上改變了變長解碼生 成的run-level數組在順序上的顛倒的問題,使最后生成的一個像素塊的量 化系數在順序上與編碼之前的量化系數的順序相同。但是,這種設計方法存 在如下弊端(l)需要一個或多個寄存器用來暫存run數組和level數組;(2) 由于寄存器的存取過程,增加了解碼過程的冗余以及滯后(Latency)延遲; (3)解碼過程的功率消耗增加。
發明內容
解決以上所述問題,本發明提供一種從根本上不需要用來對run-level 數組進行存取的寄存器的AVS游程解碼方法。
本發明所公開的一種AVS游程解碼方法,包括以下步驟
(1) 接收變長解碼輸出的游程run值和幅度level值;
(2) 解碼幅度level值;
(3 ) level解碼值存入量化系數寄存器; (4 )解碼相應的游程run值; (5) run解碼值存入量化系數寄存器。 其中, 一個像素塊的run-level數組包含N個run值和level值,重復 執行所述第(1 ) ( 2 ) ( 3 )《4:) ( 3 )歩驟N次,則對一個像素塊的run-level 數組中的run值和level值都進行了解碼,最后,在寄存器中生成一個像素 塊的游程解碼量化系數。其中N小于或等于64。 一個像素塊的游程解碼量化 系數的先后順序與編碼前的量化系數的先后順序正好相反。AVS游程解碼結束 以后,對塊的游程解碼量化系數進行發掃描。
對于一個像素塊第一個level值解碼完成以后,解碼值可以存入量化系 數寄存器的起始地址端,其后解碼的run值和level值依次排隊存入寄存器 中,最后一個解碼出的值存入量化系數寄存器的末端地址端。反掃描時只要 把量化系數寄存器的末端地址作為起始地址,起始地址作為末端地址,既可 輸出正常順序的量化系數。
在又一技術方案中,對于一個像素塊第一個level值解碼完成以后,解 碼值可以存入量化系數寄存器的末端地址端,其后解碼的run值和level值 依次排隊存入寄存器中,最后 一個解碼出的值存入量化系數寄存器的起始地 址端。按照正常的反掃描,即可輸出正常順序的量化系數。
本發明所提供的AVS游程解碼方法中,變長解碼輸出的游程run數組和 幅度level數組不需要存入一個專用的寄存器,而是直接進行解碼。因此, 方法簡單,并可省去對run-level數組存取的寄存器。使用本發明設計的芯 片具有芯片面積小的特點,同時芯片在游程解碼過程中具有速度快、沒有滯 后、功耗低的特點。
圖l為現有技術的AVS游程解碼方法的流程圖2為本發明的AVS游程解碼方法實施例的流程圖。
具體實施例方式
為解決以上所述問題,本發明提供一種從根本上不需要用來對run-level 數組存取的寄存器的AVS游程解碼方法。
圖2為本發明的AVS游程解碼方法實施例的流程圖。如圖2所示,圖中 具體描述了一個像素塊的AVS游程解碼方法, 一個像素塊經變長解碼后輸出 的run-level數組包括N個run值和N個level值,其中,N<64。如圖2所 示, 一個^f象素塊游程解碼的步驟如下
首先,X等于0。
第二步10,對X的值加1,
第三步20,接收變長解碼輸出的第X個游程run值和第X個幅度level
值;
第四步30,對第X個level值解碼;
第五步40,對level解碼值存入量化系數寄存器
第六步50,對第X個run值解碼;
第七步60,對run解碼值存入量化系數寄存器;
第八步70,判斷X是否等于N。如果X不等于N,則轉到第二步10,重 復進行第二步至第八步,直到X等于N。如果X等于N,則一個像素塊的游程 解碼完畢。此時, 一個像素塊的游程解碼量化系數的先后順序與編碼前的量 化系數的先后順序正好相反。
其中當X=l時,對于一個像素塊第一個level值解碼完成以后,解碼值 可以存入量化系數寄存器的起始地址端,其后解碼的run值和level值依次 排隊存入寄存器中,直至最后一個解碼出的run值存入量化系數寄存器的末 端地址端。反掃描時只要把量化系數寄存器的末端地址作為起始地址,起始 地址作為末端地址,既可輸出正常順序的量化系數。
在又一實施例中,其+當X-l'時,對f一+像素塊第一個level值解碼 完成以后,解碼值可以存入量化系數寄存器的末端地址端,其后解碼的run 值和level值依次排隊存入寄存器中,最后一個解碼出的值存入量化系數寄 存器的起始地址端。按照正常的反掃描,即可輸出正常順序的量化系數。
在不偏離本發明的精神和范圍的情況下還可以構成許多有很大差別的 實施例。應當理解,除了如所附的權利要求所限定的,本發明不限于在說明 書中所述的具體實施例。
權利要求
1. 一種AVS游程解碼方法,其特征在于,包括以下步驟:(1)接收變長解碼輸出的游程run值和幅度level值;(2)解碼幅度level值;(3)level解碼值存入量化系數寄存器;(4)解碼相應的游程run值;(5)run解碼值存入量化系數寄存器。
2. 根據權利要求1所述的游程解碼方法,其特征在于, 一個包含N個游程值 的像素塊,需重復執行第(1) ( 2 ) ( 3 ) ( 4 ) ( 5 )步驟N次,生成一個像 素塊的游程解碼量化系數。
3. 根據權利要求2所述的游程解碼方法,所述1《N《64。
4. 根據權利要求1所述的游程解碼方法,其特征在于,在第(3)步驟中, level解碼值存入量化系數寄存器的起始地址。
5. 根據權利要求1所述的游程解碼方法,其特征在于,在第(3)步驟中, level解碼值存入量化系數寄存器的末端地址。
全文摘要
一種AVS游程解碼方法,屬于數字音視頻編解碼技術領域。本發明的主要特征在于對游程數組先解碼幅度level值然后再解碼相應的游程run值。本發明從根本上不需要用來對run-level數組存取的寄存器,省去對run-level數組存取的寄存器。使用本發明設計的芯片具有芯片面積小的特點,同時芯片在游程解碼過程中具有速度快、沒有滯后延遲、功耗低的特點。
文檔編號H04N7/26GK101383965SQ20081004098
公開日2009年3月11日 申請日期2008年7月25日 優先權日2008年7月25日
發明者杜宣明 申請人:上海龍晶微電子有限公司