專利名稱:數字信號處理中聯合變長編解碼的方法和裝置的制作方法
技術領域:
本發明涉及一種電數字數據處理技術,特別地,涉及一種運用于數字信號處理的聯合變長編解碼的方法和裝置。
背景技術:
在數字信號處理中,常常要將事件轉化成二進制比特串,即碼字,在信道上傳輸。為了使碼字的比特數接近對應事件的熵,通常采用變長編碼的方法,即把短碼字分配給出現概率大的事件,將長碼字分配給小概率事件。所以變長編碼中碼字的分配必須基于對不同事件的概率統計。但是隨著環境和時間的改變,某個事件的出現概率是不斷改變的,如果用單一的碼表將事件映射成碼字,不利于編碼效率。高效的變長編碼方法是根據不同的環境和時間,使用不同的碼表。某一碼表符合特定時間或環境中各事件的概率分布。
在實際中,經常要對一串符號進行編碼。如果這一串符號中n個連續的0(n≥0)和一個非零整數交替出現,可以將某個非零整數的值level和它前面連續的0的個數,即游程run,作為一個聯合事件進行編碼。所以對這樣一串符號進行編碼等價于逐一對多個(level,run)事件進行編碼。比如,在視頻或圖像壓縮領域中,對變換域的系數做掃描以后形成的一維變換系數串就是具有以上特點的符號串,常常對(level,run)事件采用聯合變長編解碼。
在現有的技術中,為了提高編解碼效率,根據環境的不同采用了多張碼表將事件(level,run)映射成碼字,而用level的變化來標識環境的變化,也就是說根據level的不同的碼表之間切換。但是,實驗表明,僅根據level并不能很好的反映當前的環境,進而,僅根據level統計出來的基于某個環境的碼表也不能很好的符合該環境中各個事件的概率分布。不利于編解碼效率的提高。
發明內容
本發明的目的是提供一種運用于數字信號處理的聯合變長編解碼的方法和裝置。本發明根據level和run兩方面的因素來判斷當前的環境,進而選擇碼表。
為了達到上述目的,本發明采用的技術方案如下一種運用于數字信號處理的聯合變長編解碼的方法,至少存在一個level,必須與run結合,才能唯一的確定一個環境,并由所確定的環境決定對(level,run)進行編碼或解碼所采用的碼表。
進一步地,編碼包括以下步驟(1)選定初始碼表;(2)根據選定的初始碼表對初始的(level,run)進行編碼;(3)為待編碼的(level,run)選擇碼表,選擇過程中至少有一次需要同時用到已編碼的level和run的信息;(4)根據選定的碼表對待編碼的(level,run)進行編碼;(5)重復步驟(3)(4),直至(level,run)全部編完。
解碼包括以下步驟(1)選定初始碼表;(2)根據選定的初始碼表對初始的(level,run)進行解碼;(3)為待解碼的(level,run)選擇碼表,選擇過程中至少有一次需要同時用到已解碼的level和run的信息;(4)根據選定的碼表對待解碼的(level,run)進行解碼;(5)重復步驟(3)(4),直至(level,run)全部解完。
本發明的目的還在于提供一種應用上述的聯合變長編解碼的方法的編碼裝置。
該發明目的是通過以下技術方案來實現的,編碼裝置包括一編碼映射裝置,將(level,run)映射成碼字;一編碼碼表選擇裝置,根據已編碼的(level,run)選擇碼表;一延遲裝置,用于延遲編碼碼表選擇裝置的輸入;延遲裝置與編碼碼表選擇裝置相連,編碼碼表選擇裝置與編碼映射裝置相連。
本發明的目的還在于提供一種應用上述的聯合變長編解碼的方法的解碼裝置。
該發明目的是通過以下技術方案來實現的,解碼裝置包括一解碼映射裝置,將碼字映射成(level,run);一解碼碼表選擇裝置,根據已解碼的(level,run)選擇碼表;解碼碼表選擇裝置與解碼映射裝置相連。
本發明與背景技術相比,具有的有益效果它允許根據level和run兩方面的因素來判斷當前的環境,進而選擇碼表。這樣可以更準確的判斷環境,同時使基于某個環境的碼表能更好的符合該環境中各個事件的概率分布,提高編解碼效率。本發明應用于數字信號處理領域,特別是視頻編解碼或圖像編解碼領域。
圖1是目前現有方法的編碼裝置框圖;圖2是目前現有方法的解碼裝置框圖;圖3是本發明的編碼裝置框圖;圖4是本發明的解碼裝置框圖。
具體實施例方式
附圖l示出了現有的聯合變長編解碼的編碼裝置,包括第一映射裝置、第一碼表選擇裝置、延遲裝置。
當前(level,run)輸入第一映射裝置,同時level輸入延遲裝置。延遲裝置的輸出,即先前已編碼的level值輸入第一碼表選擇裝置,選擇碼表。第一碼表選擇裝置與第一映射裝置相連。第一映射裝置根據第一碼表選擇裝置的輸出值來確定所使用的碼表,并根據該碼表將(level,run)映射成碼字。
附圖2示出了現有的聯合變長編解碼的解碼裝置,包括第二映射裝置,第二碼表選擇裝置。
當前碼字輸入第二映射裝置,同時先前已解碼的level輸入第二碼表選擇裝置,選擇碼表。第二碼表選擇裝置與第二映射裝置相連。第二映射裝置根據第二碼表選擇裝置的輸出值來確定所使用的碼表,并根據該碼表將輸入的碼字映射成(level,run)。
現有方法的不足之處是僅根據level的值來切換碼表,不能十分準確,不利于編解碼效率的提高。
下面針對現有方法的不足,并參照附圖3、4詳細說明本發明。
實施例1附圖3示出了本發明的聯合變長編解碼的編碼裝置,包括編碼映射裝置、編碼碼表選擇裝置、延遲裝置。
當前(level,run)輸入編碼映射裝置和延遲裝置。延遲裝置的輸出,即先前已編碼的(level,run)值輸入編碼碼表選擇裝置,選擇碼表。編碼碼表選擇裝置與編碼映射裝置相連。編碼映射裝置根據編碼碼表選擇裝置的輸出值來確定所使用的碼表,并根據該碼表將(level,run)映射成碼字。
在編碼映射裝置中存放7張碼表,碼表的選擇信息由編碼碼表選擇裝置輸入。第一個編碼的(level,run)使用碼表1。從第二個(level,run)開始,如果前一個(level,run)中,level的絕對值等于1且run小于4,當前(level,run)選擇碼表2;如果前一個(level,run)的level的絕對值等于1且run大于等于4,當前(level,run)選擇碼表3;如果前一個(level,run)的level的絕對值等于2,當前(level,run)選擇碼表4;如果前一個(level,run)的level的絕對值等于3,當前(level,run)選擇碼表5;如果前一個(level,run)的level的絕對值等于4或5,當前(level,run)選擇碼表6;否則當前(level,run)選擇碼表7。如果所選擇的碼表的序號大于編碼前一個(level,run)時使用的碼表的序號,則使用所選擇的碼表,編碼碼表選擇裝置將所使用的碼表的序號輸入編碼映射裝置;否則,編碼碼表選擇裝置不向編碼映射裝置輸出信號,或保持原有信號不變。
附圖4示出了本發明的聯合變長編解碼的解碼裝置,包括解碼映射裝置,解碼碼表選擇裝置。
當前碼字輸入解碼映射裝置,同時先前已解碼的(level,run)輸入解碼碼表選擇裝置,選擇碼表。解碼碼表選擇裝置與解碼映射裝置相連。解碼映射裝置根據解碼碼表選擇裝置的輸出值來確定所使用的碼表,并根據該碼表將輸入的碼字映射成(level,run)。
在解碼映射裝置中存放7張碼表,碼表的選擇信息由解碼碼表選擇裝置輸入。第一個解碼的(level,run)使用碼表1。從第二個(level,run)開始,如果前一個(level,run)中,level的絕對值等于1且run小于4,當前(level,run)選擇碼表2;如果前一個(level,run)的level的絕對值等于1且run大于等于4,當前(level,run)選擇碼表3;如果前一個(level,run)的level的絕對值等于2,當前(level,run)選擇碼表4;如果前一個(level,run)的level的絕對值等于3,當前(level,run)選擇碼表5;如果前一個(level,run)的level的絕對值等于4或5,當前(level,run)選擇碼表6;否則當前(level,run)選擇碼表7。如果所選擇的碼表的序號大于解碼前一個(level,run)時使用的碼表的序號,則使用所選擇的碼表,解碼碼表選擇裝置將所使用的碼表的序號輸入解碼映射裝置;否則,解碼碼表選擇裝置不向解碼映射裝置輸出信號,或保持原有信號不變。
實施例2附圖3示出了本發明的聯合變長編碼的編碼裝置,包括編碼映射裝置、編碼碼表選擇裝置、延遲裝置。
當前(level,run)輸入編碼映射裝置和延遲裝置。延遲裝置的輸出,即先前已編碼的(level,run)值輸入編碼碼表選擇裝置,選擇碼表。編碼碼表選擇裝置與編碼映射裝置相連。編碼映射裝置根據編碼碼表選擇裝置的輸出值來確定所使用的碼表,并根據該碼表將(level,run)映射成碼字。
在編碼映射裝置中存放7張碼表,碼表的選擇信息由編碼碼表選擇裝置輸入。第一個編碼的(level,run)使用碼表l。從第二個(level,run)開始,如果前一個(level,run)中,level的絕對值等于1且run小于4,當前(level,run)選擇碼表2;如果前一個(level,run)的level的絕對值等于1且run大于等于4小于7,當前(level,run)選擇碼表3;如果前一個(level,run)的level的絕對值等于1且run大于等于7,當前(level,run)選擇碼表4;如果前一個(level,run)的level的絕對值等于2,當前(level,run)選擇碼表5;如果前一個(level,run)的level的絕對值等于3或4,當前(level,run)選擇碼表6;否則當前(level,run)選擇碼表7。如果所選擇的碼表的序號大于編碼前一個(level,run)時使用的碼表的序號,則使用所選擇的碼表,編碼碼表選擇裝置將所使用的碼表的序號輸入編碼映射裝置;否則,編碼碼表選擇裝置不向編碼映射裝置輸出信號,或保持原有信號不變。
附圖4示出了本發明的聯合變長編解碼的解碼裝置,包括解碼映射裝置,解碼碼表選擇裝置。
當前碼字輸入解碼映射裝置,同時先前已解碼的(level,run)輸入解碼碼表選擇裝置,選擇碼表。解碼碼表選擇裝置與解碼映射裝置相連。解碼映射裝置根據解碼碼表選擇裝置的輸出值來確定所使用的碼表,并根據該碼表將輸入的碼字映射成(level,run)。
在解碼映射裝置中存放7張碼表,碼表的選擇信息由解碼碼表選擇裝置輸入。第一個解碼的(level,run)使用碼表1。從第二個(level,run)開始,如果前一個(level,run)中,level的絕對值等于1且run小于4,當前(level,run)選擇碼表2;如果前一個(level,run)的level的絕對值等于1且run大于等于4小于7,當前(level,run)選擇碼表3;如果前一個(level,run)的level的絕對值等于l且run大于等于7,當前(level,run)選擇碼表4;如果前一個(level,run)的level的絕對值等于2,當前(level,run)選擇碼表5;如果前一個(level,run)的level的絕對值等于3或4,當前(level,run)選擇碼表6;否則當前(level,run)選擇碼表7。如果所選擇的碼表的序號大于解碼前一個(level,run)時使用的碼表的序號,則使用所選擇的碼表,解碼碼表選擇裝置將所使用的碼表的序號輸入解碼映射裝置;否則,解碼碼表選擇裝置不向解碼映射裝置輸出信號,或保持原有信號不變。
上述實施例用來解釋說明本發明,而不是對本發明進行限制,在本發明的精神和權利要求的保護范圍內,對本發明作出的任何修改和改變,都落入本發明的保護范圍。
權利要求
1.一種運用于數字信號處理的聯合變長編解碼的方法,其特征在于至少存在一個level,必須與run結合,才能唯一的確定一個環境,并由所確定的環境決定對(level,run)進行編碼或解碼所采用的碼表。
2.根據權利要求1所述的聯合變長編解碼的方法,其特征在于,編碼包括以下步驟(1)選定初始碼表。(2)根據選定的初始碼表對初始的(level,run)進行編碼。(3)為待編碼的(level,run)選擇碼表,選擇過程中至少有一次需要同時用到已編碼的level和run的信息。(4)根據選定的碼表對待編碼的(level,run)進行編碼。(5)重復步驟(3)(4),直至(level,run)全部編完。
3.根據權利要求1所述的聯合變長編解碼的方法,其特征在于,解碼包括以下步驟(1)選定初始碼表。(2)根據選定的初始碼表對初始的(level,run)進行解碼。(3)為待解碼的(level,run)選擇碼表,選擇過程中至少有一次需要同時用到已解碼的level和run的信息。(4)根據選定的碼表對待解碼的(level,run)進行解碼。(5)重復步驟(3)(4),直至(level,run)全部解完。
4.根據權利要求2或3所述的聯合變長編解碼的方法,其特征在于,所述步驟(3)中,所述level的絕對值等于1時,需要同時用到已編碼或解碼的run的信息為待解碼的(level,run)選擇碼表。
5.一種應用權利要求1所述的聯合變長編解碼的方法的編碼裝置,其特征在于,它包括一編碼映射裝置,將(level,run)映射成碼字;一編碼碼表選擇裝置,根據已編碼的(level,run)選擇碼表;一延遲裝置,用于延遲編碼碼表選擇裝置的輸入;延遲裝置與編碼碼表選擇裝置相連,編碼碼表選擇裝置與編碼映射裝置相連。
6.一種應用權利要求1所述的聯合變長編解碼的方法的解碼裝置,其特征在于,它包括一解碼映射裝置,將碼字映射成(level,run);一解碼碼表選擇裝置,根據已解碼的(level,run)選擇碼表;解碼碼表選擇裝置與解碼映射裝置相連。
全文摘要
本發明公開了一種運用于數字信號處理的聯合變長編解碼的方法和裝置。在對(level,run)聯合編解碼時,本發明根據level和run兩方面的因素來判斷當前的環境,進而選擇碼表。這樣可以更準確的判斷環境,同時使基于某個環境的碼表能更好的符合該環境中各個事件的概率分布,提高碼表的精確性和編解碼效率。本發明應用于數字信號處理領域,特別是視頻編解碼或圖像編解碼領域。
文檔編號H03M7/40GK1658514SQ20051004931
公開日2005年8月24日 申請日期2005年3月9日 優先權日2005年3月9日
發明者虞露, 董潔 申請人:浙江大學