亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種對稱型可逆變長碼的編碼方法

文檔序號:7507010閱讀:162來源:國知局
專利名稱:一種對稱型可逆變長碼的編碼方法
技術領域
本發(fā)明屬于通信技術中的編碼技術領域,尤其涉及一種對稱型可逆變長碼(RVLC)的編碼方法。
背景技術
熵編碼是通信技術中基本的信源編碼技術。利用熵編碼能夠將信源從任意符號轉變?yōu)槎M制的形式,以利于通信發(fā)送;同時,熵編碼利用熵的本質(zhì)特性,還能充分消除數(shù)據(jù)中的冗余性,達到壓縮數(shù)據(jù),從而節(jié)省通信需要的時間或者帶寬等資源的目的。在熵編碼中,變長碼是廣泛使用的碼字,在文本、數(shù)據(jù)、語音、圖像和視頻以及其它各種媒體編碼中都有廣泛的應用。例如,在靜止圖像和視頻編碼標準中,編碼系統(tǒng)包括源圖像數(shù)據(jù)輸入、DCT編碼器和壓縮圖像數(shù)據(jù)流的輸出三個部分,其中,DCT編碼器中包括正向DCT變換器、量化器以及熵編碼三部分,還包括量化表以及熵編碼表,通過熵編碼以及熵編碼表實現(xiàn)對源圖像數(shù)據(jù)經(jīng)過運動預測、DCT變換和量化后的結果進行熵編碼,以一方面消除數(shù)據(jù)的冗余性,另一方面將源圖像數(shù)據(jù)轉變?yōu)橐子谕ㄐ艂鬏數(shù)亩M制形式。
在熵編碼技術中,哈夫曼編碼是一種經(jīng)典的熵編碼方法,采用該方法,能夠在平均碼字長度上達到最優(yōu),因此就傳輸效率而言是最高的,從而,在早期的熵編碼應用中,廣泛采用此種哈夫曼編碼方法。但是,隨著變長編碼的發(fā)展,人們逐漸認識到除了編碼傳輸效率之外,還有很多其它因素決定具體應用中變長編碼的優(yōu)劣,其中的一個重要因素是由于變長碼本身的特性,對誤碼非常敏感?;诖它c分析,當變長碼在誤碼率較高的信道上傳輸時,傳輸效率會由于其對誤碼非常敏感而顯著降低,從而不利于實現(xiàn)通信。由于哈夫曼碼自身的抗誤碼性能并不突出,因此,可能會由于自身對誤碼的敏感而降低傳輸效率。
為了不使傳輸效率因為變長碼本身對誤碼的敏感性而顯著降低,當前提出了可逆變長碼。該可逆變長碼具有出色的抗誤碼性能,因此已經(jīng)被近期的視頻標準,如H.263+、MPEG-4等所采納。可逆變長碼指從前向和后向兩個方向都能夠即時解碼的變長編碼;其中,能夠即時解碼指的是一組碼滿足異字頭條件(Prefix-free condition),異字頭條件指的是在一組碼中,沒有任何完整的碼字是其它碼字的前綴,例如一組即時碼C=(0,10,110,111)就是滿足異字頭條件的碼字。由上述分析可以得到可逆變長碼也就是所有碼字同時滿足前向異字頭條件和后向異字頭條件的碼字。根據(jù)碼字自身是否存在對稱性,可逆變長碼還可分為對稱型可逆變長碼和非對稱型可逆變長碼,對稱型可逆變長碼和同步技術結合使用可取得很好的譯碼性能。對于可逆變長碼,其工作原理為在各種需要壓縮的數(shù)據(jù)中,以熵來度量這些數(shù)據(jù)中所含有的不可壓縮部分的信息量;同時,在這些數(shù)據(jù)中,同一個符號按照不同的發(fā)生概率反復出現(xiàn),從而形成了這些壓縮數(shù)據(jù)中的冗余。通過采用可逆變長碼這種熵編碼方式,壓縮掉數(shù)據(jù)中的冗余而保持數(shù)據(jù)的熵不變,通過用構造得到的可逆變長碼替換數(shù)據(jù)中的符號本身,一方面將數(shù)據(jù)中的符號轉變?yōu)檫m合傳輸?shù)亩M制形式,另一方面,達到壓縮數(shù)據(jù)長度的目的;其中,此種壓縮是遵循數(shù)據(jù)本身的統(tǒng)計模型進行的,該統(tǒng)計模型是描述數(shù)據(jù)中各個符號發(fā)生概率分布上所具有特性的模型,常見的有指數(shù)分布、泊松分布等,由于此種壓縮基于這些統(tǒng)計模型進行,因此,在統(tǒng)計意義上能夠達到最優(yōu)。
在現(xiàn)有技術中,為了能夠根據(jù)數(shù)據(jù)中符號的發(fā)生概率來構造可逆變長碼,通常采用如下兩種方式,這兩種方式均采用間接構造的方式,首先根據(jù)數(shù)據(jù)中符號的發(fā)生概率構造得到哈夫曼碼,然后再由哈夫曼碼得到對稱型可逆變長碼
方式一在該種方式中,首先根據(jù)數(shù)據(jù)中符號的發(fā)生概率構造得到哈夫曼碼,得到如圖1所示的哈夫曼碼樹,這里所用的樹,是離散數(shù)學,圖論等理論中定義的一種抽象的圖,或者理解成計算機算法中的數(shù)據(jù)結構,其實是一種倒的“樹”,根節(jié)點在最上面,得到該樹后,利用該哈夫曼碼樹,自樹根起從上而下的將碼字轉變?yōu)閷ΨQ型可逆變長碼,得到圖2所示的對稱型可逆變長碼的碼樹;在從哈夫曼碼樹轉變?yōu)閷ΨQ型可逆變長碼的碼樹的過程中,需要在哈夫曼碼樹的每一層上均進行是否滿足可逆變長碼條件的判斷,而該種方式并沒有定義一種高效率的判斷方式,從而,在考察一個候選碼字時,首先要判斷它是否滿足對稱條件,如果符合,則與已選的碼字進行比較,以確定是否滿足前向和后向異字頭條件,在這些判斷均符合的情況下,方能把該候選碼字確定為可逆變長碼中的碼字;可見,該種方式具有如下缺點(1)由于該種方式并沒有給判斷方式以高效的定義,因此,上述判斷過程十分復雜,會大大體高計算的復雜度,不利于實際應用;(2)由于此種方式中所涉及的算法自身的限制,在對哈夫曼碼樹中一層節(jié)點進行判斷時,不可避免地會造成某些符合可逆變長碼條件的節(jié)點被錯誤地遺漏,從而造成該種方式無法充分利用短碼字,造成短碼字的浪費,其直接后果就是使得平均碼字長度上升,與熵編碼應該優(yōu)先使用短碼獲得最小平均碼字長度這一根本原則相背離;(3)對于具有相同發(fā)生概率的符號,如果構造的哈夫曼碼不同,則得到的對稱型可逆變長碼也不相同,從而會造成編碼效果的不統(tǒng)一;方式二該種方式對方式一進行了一些改進,對于相同發(fā)生概率的符號,即使構造的哈夫曼碼不同,所得到的對稱型可逆變長碼仍然相同,并且,該種方式也可以獲得較小的平均碼字長度;但是,由于此種方式是對于方式一的改進,因此,仍然無法完全避免對于短碼字的不充分使用,從而造成短碼字的浪費,另外,該種方式仍然沒有解決計算復雜度高這一問題。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種對稱型可逆變長碼的編碼方法,該方法直接根據(jù)數(shù)據(jù)中符號的發(fā)生概率構造得到對稱型可逆變長碼,該方法能夠充分利用短碼字,計算復雜度低,同時,該方法能夠實現(xiàn)對于相同概率的符號得到同樣的對稱型可逆變長碼。
為實現(xiàn)上述目的,本發(fā)明提供了一種對稱型可逆變長碼的編碼方法,該方法包括步驟A根據(jù)數(shù)據(jù)中各個符號的發(fā)生概率,計算得到理論上可以獲得的最短平均碼字長度,構造所有具有該最短平均碼字長度的碼字作為當前候選碼字;步驟B判斷當前候選碼字是否滿足對稱條件,將滿足對稱條件的所有候選碼字選擇作為對稱型可逆變長碼碼字,和構造不滿足對稱性條件的所有候選碼字的子碼字作為當前候選碼字;步驟C判斷是否已經(jīng)通過步驟B的選擇過程獲得N個對稱型可逆變長碼碼字,如果是,則結束本流程,否則,返回步驟B,直至獲得N個對稱型可逆變長碼;其中,N為需要進行編碼的數(shù)據(jù)中出現(xiàn)不同符號的種類數(shù),為自然數(shù)。
其中,步驟A所述計算得到理論上可以獲得的最短平均碼字長度包括 其中,p(x)表示要進行編碼的數(shù)據(jù)中各個符號所對應的發(fā)生概率,運算符號 表示不超過被運算數(shù)的最大整數(shù)。
其中,步驟A所述構造所有具有該最短平均碼字長度的碼字作為當前候選碼字包括利用全排列的方法,產(chǎn)生所有長度為所述最短平均碼字長度的0、1序列,以這些序列作為所述當前候選碼字。
其中,步驟B包括步驟B1創(chuàng)建一個隊列,以步驟A所述最短平均碼字長度作為該隊列的起始碼字長度,將所述當前候選碼字放入該隊列;步驟B2對該隊列中的所有當前候選碼字分別判斷是否滿足對稱條件,將滿足對稱條件的所有候選碼字選擇作為對稱型可逆變長碼碼字,并將這些滿足對稱條件的候選碼字從隊列中刪除,構造不滿足對稱條件的候選碼字的子碼字作為當前候選碼字,在清空隊列之后,將這些構造出的當前候選碼字放入隊列中。
其中,所述構造不滿足對稱性條件的所有候選碼字的子碼字包括在所述候選碼字的后面加上0或者1,形成所述候選碼字的子碼字。
可見,本發(fā)明具有如下有益效果(1)該算法最大限度地利用了較短碼長層中的所有的滿足對稱性和雙向異字頭條件的節(jié)點,減小了平均碼字長度,尤其在一些特定的符號發(fā)生概率分布下,該算法得到的平均碼字長度與理論熵非常接近,幾乎相等,比如說指數(shù)分布;(2)該碼字生成時,無需再對其先進行哈夫曼編碼,再構造對稱碼字,從而降低了實現(xiàn)復雜度;(3)大大簡化了碼字選取機制在目前已有的兩種算法,實現(xiàn)起來復雜度很高,而采用本發(fā)明后,我們可以發(fā)現(xiàn)當某一節(jié)點被選為碼字后,其子節(jié)點對應的碼字將不再予以考慮,其余節(jié)點不滿足對稱條件時,將它的子節(jié)點對應的碼字入隊,依次進行判別,也就是說,隊列內(nèi)的所有候選碼字都已經(jīng)自動滿足異字頭條件,我們只需討論其對稱性即可。


圖1為哈夫曼碼樹的示意圖;圖2為對稱型可逆變長碼的碼樹的示意圖;圖3為本發(fā)明的隊列的示意圖;
圖4為實現(xiàn)本發(fā)明的流程圖。
具體實施例方式
本發(fā)明為一種對稱型可逆變長碼的編碼方法,所述的可逆變長碼為對稱型可逆變長碼,本發(fā)明方法直接根據(jù)數(shù)據(jù)中符號的發(fā)生概率構造得到對稱型可逆變長碼,該方法具有確定的選取可逆變長碼的規(guī)則,其計算復雜度低。另外,由于該方法所采用的算法自身特性,因此能夠充分利用短碼字長度,從而符合熵編碼應該優(yōu)先使用短碼字以獲得最小平均碼字長度這一根本原則,另外,對于相同發(fā)生概率的符號,該方法能夠構造得到相同的可逆變長碼。
下面結合附圖對本發(fā)明進行詳細介紹。
在本發(fā)明中,引入隊列這一概念,隊列是數(shù)據(jù)結構中的術語,是一種操作受限的線性表,圖3所示為一個隊列的示意圖,其中,ai是隊列中的一個元素,該隊列只允許在隊尾進行插入(入隊),在對頭進行刪除(出隊)。
本發(fā)明首先根據(jù)數(shù)據(jù)中符號的發(fā)生概率,得到一個碼樹,該碼樹與圖1所示的哈夫曼碼樹的形式類似。
在本發(fā)明構造可逆變長碼之前,首先需要確定要進行編碼的數(shù)據(jù)中所出現(xiàn)的不同符號的種類數(shù)N,其中,N為自然數(shù),然后,通過圖4所示步驟實現(xiàn)構造可逆變長碼步驟400構造一個隊列,計算得到該隊列的起始碼字長度,其中,該隊列用于完成構造可逆變長碼,采用如下方法計算得到該隊列的起始碼字長度由數(shù)據(jù)中各個符號發(fā)生概率的分布,計算得到理論上可以獲得的最短平均碼字長度,然后,以該最短平均碼字長度作為該隊列的起始碼字長度;在本發(fā)明中,采用公式(1)計算最短平均碼字長度公式(1) 運算符號 表示不超過被運算數(shù)的最大整數(shù);該公式是一個簡寫的公式,每個信源符號對應著一個發(fā)生概率,用p(x)表示,x分別代表信源中的各個符號;該公式表示的是信息論中熵編碼可以達到的最短碼長,哈夫曼編碼可以達到這個最優(yōu)下限;任何其它的熵編碼的平均碼長都不會低于這個值。因此對于我們這里的可逆變長碼,其平均碼長一定高于這個值;因此將該值作為起始碼長是合適的;步驟401構造所有具有步驟400所述隊列的起始碼字長度的碼字,然后,將這些構造出的碼字作為當前候選碼字放入隊列;其中,在本發(fā)明實施例中,采用如下方法實現(xiàn)本步驟中所述的構造碼字設隊列的起始碼字長度為LInitial,采用全排列的方法,在碼字長度為LInitial這一條件的限制下,對二進制編碼0和1進行全排列,得到所有長度為LInitial的0、1序列,從而構造得到所述的具有隊列起始碼字長度的碼字;其中,不同的具有隊列起始碼字長度的碼字共有2LInitial個;步驟400~步驟401實現(xiàn)構造隊列以及初始化隊列的過程,從而得到一個以理論上可以獲得的最短平均碼字長度作為該隊列的起始碼字長度的隊列;其中,參見后續(xù)步驟,因為隊列過程是輸出碼字長度增大的過程,也就是說,本發(fā)明中先構造短碼字,后構造長碼字,因此,隊列的初始化過程需要確定最短的碼長度作為起始碼字長度;在本發(fā)明中,將長度為LInitial的所有候選碼字入隊,也就是將根據(jù)數(shù)據(jù)中符號發(fā)生概率所得到的碼樹中的第LInitial。層上的所有節(jié)點均存入隊列中,作為隊列的初始狀態(tài),從而實現(xiàn)隊列的初始化;步驟402~步驟405對該隊列中所有當前候選碼字分別判斷是否滿足對稱條件,將這些候選碼字中所有滿足對稱條件的碼字選擇作為對稱型可逆變長碼字,并且,選擇出這些候選碼字中所有不滿足對稱條件的碼字,構造得到這些不滿足對稱條件的碼字的子碼字,將原隊列清空后,將這些新構造子碼字作為當前候選碼字放入該隊列;
其中,本發(fā)明所要選擇的碼字需要分別滿足對稱條件和異字頭條件,在采用上述隊列操作規(guī)則后,可以發(fā)現(xiàn)入隊的候選碼字都滿足異字頭條件,其原因在于采用該隊列出隊入隊方式,當且僅當一個候選碼字的所有的父節(jié)點碼字都不在隊列中,該候選碼字才能夠被選入隊,因此,該候選碼字的任何前綴都不是隊列中碼字,滿足異字頭條件;因此,對于候選碼字,無需判斷是否滿足異字頭條件,只需要判斷是否對稱即可,從而大大簡化了計算的復雜程度;步驟406判斷是否N種符號都已經(jīng)分配到符合條件的碼字,如果是,則結束本流程,構造得到對稱型可逆變長碼,否則,跳至步驟402,直至對所有符號都已經(jīng)分配到符合條件的碼字。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種對稱型可逆變長碼的編碼方法,其特征在于,該方法包括步驟A根據(jù)需要被壓縮編碼的數(shù)據(jù)中各個符號的發(fā)生概率,計算得到最短平均碼字長度,構造所有具有該最短平均碼字長度的碼字作為當前候選碼字;步驟B判斷當前候選碼字是否滿足對稱條件,將滿足對稱條件的所有候選碼字選擇作為對稱型可逆變長碼碼字,和構造不滿足對稱性條件的所有候選碼字的子碼字作為當前候選碼字;步驟C判斷是否已經(jīng)通過步驟B的選擇過程獲得了N個對稱型可逆變長碼碼字,如果是,則結束本流程,否則,返回步驟B,直至獲得N個對稱型可逆變長碼碼字;其中,N為需要進行編碼的數(shù)據(jù)中出現(xiàn)不同符號的種類數(shù),為自然數(shù)。
2.根據(jù)權利要求1所述的方法,其特征在于,步驟A所述計算得到理論上可以獲得的最短平均碼字長度包括 其中,p(x)表示要進行壓縮編碼的數(shù)據(jù)中各個符號所對應的發(fā)生概率;運算符號 表示不超過被運算數(shù)的最大整數(shù)。
3.根據(jù)權利要求1所述的方法,其特征在于,步驟A所述構造所有具有該最短平均碼字長度的碼字作為當前候選碼字包括利用全排列的方法,產(chǎn)生所有長度為所述最短平均碼字長度的0、1序列,以這些序列作為所述當前候選碼字。
4.根據(jù)權利要求1所述的方法,其特征在于,步驟B包括步驟B1創(chuàng)建一個隊列,以步驟A所述最短平均碼字長度作為該隊列的起始碼字長度,將所述當前候選碼字放入該隊列;步驟B2對該隊列中的所有當前候選碼字分別判斷是否滿足對稱條件,將滿足對稱條件的所有候選碼字選擇作為對稱型可逆變長碼碼字,并將這些滿足對稱條件的候選碼字從隊列中刪除,構造不滿足對稱條件的候選碼字的子碼字作為當前候選碼字,在清空隊列之后,將這些構造出的當前候選碼字放入隊列中。
5.根據(jù)權利要求1或4所述的方法,其特征在于,所述構造不滿足對稱性條件的所有候選碼字的子碼字包括在所述候選碼字的后面加上0或者1,形成所述候選碼字的子碼字。
全文摘要
本發(fā)明為一種對稱型可逆變長碼的編碼方法,該方法包括步驟A根據(jù)數(shù)據(jù)中各個不同符號的發(fā)生概率,計算得到理論上可以獲得的最短平均碼字長度,構造所有具有該最短平均碼字長度的碼字作為當前候選碼字;步驟B判斷當前候選碼字是否滿足對稱條件,將滿足對稱條件的所有候選碼字選擇作為對稱型可逆變長碼碼字,和構造不滿足對稱性條件的所有候選碼字的子碼字作為新的當前候選碼字;步驟C判斷是否已經(jīng)通過步驟B的選擇過程獲得了N個對稱型可逆變長碼碼字,如果是,則結束本流程,否則,返回步驟B,直至生成N個對稱型可逆變長碼碼字;其中,N為需要進行編碼的數(shù)據(jù)中出現(xiàn)不同符號的種類數(shù),為自然數(shù)。
文檔編號H03M7/30GK1747330SQ20041007374
公開日2006年3月15日 申請日期2004年9月9日 優(yōu)先權日2004年9月9日
發(fā)明者羅忠, 王靜, 霍俊彥, 常義林, 馬林華 申請人:華為技術有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1