国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      可變長(zhǎng)度碼字序列的解碼方法

      文檔序號(hào):7541253閱讀:736來源:國(guó)知局
      專利名稱:可變長(zhǎng)度碼字序列的解碼方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種對(duì)可變長(zhǎng)度碼字序列進(jìn)行源解碼的方法,所述源解碼是基于一個(gè)相關(guān)的碼字表。本發(fā)明還涉及一種解碼器,所述解碼器利用了所述方法。
      這種方法可以被用在任何使用可變長(zhǎng)度編碼的系統(tǒng)中,比如用在舉例而言視頻或音頻通信系統(tǒng)中。
      背景技術(shù)
      一個(gè)視頻通信系統(tǒng)典型地包括一個(gè)源編碼系統(tǒng)、一個(gè)信道和一個(gè)源解碼系統(tǒng)。所述源編碼系統(tǒng)產(chǎn)生可變長(zhǎng)度的碼字序列,并將它們通過所述信道傳送到所述源解碼系統(tǒng),其中所述源解碼系統(tǒng)利用一個(gè)共享代碼對(duì)它們進(jìn)行解碼。
      由于在所述信道上存在著一些干擾,所以接收到的碼字序列就包括了誤差;因此,就會(huì)出現(xiàn)多個(gè)可能的解碼的碼字序列。
      然后,源解碼器通過基于所有與這些可能的序列有關(guān)聯(lián)的度量之間的最佳度量、來從所述的可能的解碼碼字序列中選擇一個(gè),而擔(dān)當(dāng)所接收到的序列的估計(jì)器。最佳度量的計(jì)算通常被稱為度量導(dǎo)出。這種估計(jì)通常是基于一種Viterbi(維特比)算法或者基于一種堆棧算法,所述堆棧算法在參考文獻(xiàn)“Buttigieg-Variable-length error-correctingcodes-PhD thesis,University of Manchester,United Kingdom,1995(Buttigieg-可變長(zhǎng)度糾錯(cuò)編碼-博士論文,曼徹斯特大學(xué),英國(guó))”中已有描述。
      這種估計(jì)的一個(gè)主要問題是所述估計(jì)需要在每個(gè)解碼步驟中對(duì)關(guān)聯(lián)于每個(gè)碼字的所述度量進(jìn)行計(jì)算。因此,最佳的部分解碼碼字序列由所有的碼字進(jìn)行擴(kuò)展,即對(duì)所有碼字的所有度量進(jìn)行計(jì)算,然后選擇在所考慮的時(shí)間的一個(gè)新的最佳碼字作為其度量的一個(gè)函數(shù),并用所有碼字再次對(duì)其進(jìn)行擴(kuò)展,直至擴(kuò)展的碼字的數(shù)目與接收到的碼字序列的長(zhǎng)度相等。這種計(jì)算使所述Viterbi或堆棧算法中使用的度量導(dǎo)出在中央處理單元(cpu)要求方面成為解碼的最昂貴的部分。
      發(fā)明概述及發(fā)明目的因此,本發(fā)明的一個(gè)目的是要提供一種對(duì)可變長(zhǎng)度碼字序列進(jìn)行源解碼的方法和解碼器,所述源解碼是基于一個(gè)相關(guān)的碼字表的,這種源解碼能夠以合理的CPU成本、時(shí)間和復(fù)雜性來實(shí)現(xiàn)有效的解碼。
      為了實(shí)現(xiàn)該目的,提供一種如在權(quán)利要求1中所定義的可變長(zhǎng)度碼字序列的解碼方法。
      另外,提供一種如在權(quán)利要求12中所定義的對(duì)可變長(zhǎng)度碼字序列進(jìn)行解碼的源解碼器。
      在之后的詳細(xì)描述中我們將看到,這種方法所具有的重要優(yōu)點(diǎn)在于碼字是以其度量值的遞增順序被選擇的。這樣,通過只搜索有用的碼字,來使所提出的方法在CPU成本、復(fù)雜性和時(shí)間方面非常高效,因?yàn)槠渌拇a字不再予以考慮。
      本發(fā)明的另一目的是要進(jìn)一步降低所述解碼的復(fù)雜性和快速性。
      因此,在第一優(yōu)選實(shí)施例中,每個(gè)碼字都具有一個(gè)長(zhǎng)度,并且樹包括與定義在所述碼字表中的最大碼字長(zhǎng)度相等的級(jí)數(shù)。由于所述樹中的級(jí)數(shù)有一個(gè)合理的值,所以可以快速地產(chǎn)生結(jié)果而不必使用太多的計(jì)算。
      在第二優(yōu)選實(shí)施例中,所述的擴(kuò)展子步驟包括一個(gè)停止度量計(jì)算條件測(cè)試,使得如果所述條件被驗(yàn)證,則該擴(kuò)展被停止并且該擴(kuò)展后隨對(duì)路徑重新排序的子步驟,所述的停止度量計(jì)算條件測(cè)試是基于最佳樹形路徑的第一累積度量與最差的已保存路徑的第二累積度量的比較。這樣,所述方案允許只對(duì)有用的最佳樹形路徑進(jìn)行擴(kuò)展,從而只對(duì)有用的相關(guān)碼字進(jìn)行檢查。
      此外,在第三優(yōu)選實(shí)施例中,如果先驗(yàn)條件是基于符號(hào)準(zhǔn)則的,那么所述選擇子步驟適合于只選擇一個(gè)碼字,該碼字具有的長(zhǎng)度與在解碼步驟中所有先前選擇的碼字的長(zhǎng)度不同。這樣我們就避免了對(duì)比那些已經(jīng)被選擇的碼字更差的碼字進(jìn)行檢查。
      在第四優(yōu)選實(shí)施例中,該解碼步驟還包括在測(cè)試所述先驗(yàn)條件之前對(duì)頂端路徑測(cè)試結(jié)束條件的一個(gè)子步驟,使得如果所述頂端路徑驗(yàn)證了結(jié)束條件,就執(zhí)行測(cè)試先驗(yàn)條件的子步驟,否則就執(zhí)行測(cè)試停止解碼條件的一個(gè)子步驟,并且如果所述停止解碼條件沒有被驗(yàn)證,就發(fā)生到擴(kuò)展步驟的返回。這種結(jié)束條件允許測(cè)試我們是否已達(dá)到一個(gè)可能的結(jié)果,該結(jié)果具有與所接收到的序列相當(dāng)?shù)哪承┨卣鳌?br> 在優(yōu)選實(shí)施例中,這些特征是所接收到的碼字序列的長(zhǎng)度,該長(zhǎng)度是所接收到的碼字序列中的位數(shù)。因此,路徑中的相應(yīng)的數(shù)據(jù)還包括位的累積數(shù)目,并且該結(jié)束條件是基于頂端路徑的位的累積數(shù)目與所接收到的碼字序列的長(zhǎng)度的比較。
      在另一優(yōu)選實(shí)施例中,所述的停止解碼條件是基于解碼步驟計(jì)數(shù)器的增量并基于所述計(jì)數(shù)器與一個(gè)設(shè)定閾值的比較,使得如果所述計(jì)數(shù)器超過了所述閾值,就停止該解碼。這樣,避免了花費(fèi)太長(zhǎng)的時(shí)間來為解碼序列尋找一個(gè)結(jié)果,該結(jié)果可能不存在或者需要花費(fèi)過長(zhǎng)的時(shí)間才能找到。
      附圖簡(jiǎn)述本發(fā)明另外的目的、特征和優(yōu)點(diǎn)將通過閱讀以下的詳細(xì)描述并參考附圖而變得顯而易見,其中

      圖1示出了根據(jù)本發(fā)明的包括編碼器和解碼器的通信系統(tǒng)模型,圖2是與圖1的可變長(zhǎng)度碼字序列解碼器有關(guān)的一個(gè)碼字表,圖3是表示與圖2的碼字表有關(guān)的碼樹,圖4是示出了由圖1的可變碼字序列解碼器使用的度量導(dǎo)出計(jì)算的第一狀態(tài)圖,圖5a是示出了由圖1的可變碼字序列解碼器使用的可變編碼序列估計(jì)的第二狀態(tài)圖,圖5b是示出了由圖1的可變碼字序列解碼器使用的可變編碼序列估計(jì)的第二狀態(tài)圖的后繼部分,圖6是示出了圖1中所示的根據(jù)本發(fā)明的方法與其它方法相比的第一性能曲線圖,圖7是示出了圖1中所示的根據(jù)本發(fā)明的方法與其它方法相比的第二性能曲線圖,以及圖8是示出了圖1中所示的根據(jù)本發(fā)明的方法與其它方法相比的第三性能曲線圖,以及圖9是示出了圖1中所示的根據(jù)本發(fā)明的方法與其它方法相比的復(fù)雜性結(jié)果的曲線圖。
      圖10是示出了圖1中所示的根據(jù)本發(fā)明的方法與其它方法相比的快速性結(jié)果的曲線圖。
      發(fā)明詳述在下面的描述中,本領(lǐng)域的技術(shù)人員所公知的功能或結(jié)構(gòu)將不被詳細(xì)描述,這是因?yàn)樗鼈儠?huì)在不必要的細(xì)節(jié)上遮蓋本發(fā)明。
      本發(fā)明涉及一種基于一個(gè)相關(guān)的碼字表的可變長(zhǎng)度碼字序列的源解碼的方法,其中相關(guān)的碼字表通常也被稱做霍夫曼編碼。如圖1所示,所述方法特別被用于一個(gè)視頻通信系統(tǒng)VS中的被稱為VLC解碼器的可變長(zhǎng)度碼解碼器中。此外,所述視頻通信系統(tǒng)VS包括一個(gè)含有VLC編碼器VLC-ENC的源編碼系統(tǒng)S-ENC、一個(gè)信道CH和一個(gè)包含所述的VLC解碼器VLC-DEC的源解碼系統(tǒng)S-DEC。源編碼系統(tǒng)S-ENC通過VLC編碼器將一個(gè)符號(hào)序列編碼為一個(gè)碼字序列SQ,并通過所述信道CH在多個(gè)位時(shí)間期間將其傳輸?shù)剿鲈唇獯a系統(tǒng)S-DEC,該源解碼系統(tǒng)S-DEC通過VLC解碼器VLC-DEC、依靠定義在所述碼字表中的共享代碼C對(duì)其進(jìn)行解碼。所述傳輸是逐位進(jìn)行的。
      一個(gè)碼字序列SQ具有一個(gè)可變長(zhǎng)度L_SQ。這就意味著發(fā)送的碼字序列SQs可能具有不同的長(zhǎng)度;因此,由所述解碼系統(tǒng)S_DEC所接收的接收碼字序列SQr也可能具有不同的長(zhǎng)度。碼字序列SQ包括多個(gè)通過共享代碼C定義的符號(hào)S。值得注意的是一個(gè)符號(hào)S包括至少一個(gè)位。
      碼字表的一個(gè)實(shí)例在圖2中給出。所述共享代碼C如下定義。碼字CWDi與符號(hào)Si相關(guān),這里碼字CWDi具有長(zhǎng)度LTHi。碼字CWDi的值也代表了可由所述相關(guān)的符號(hào)Si所取的值。此外,出現(xiàn)的概率Pi與每個(gè)碼字CWDi有關(guān)。
      這樣,通過這種共享代碼C,發(fā)送碼字序列SQs被如下定義。例如,SQs=100 0 110。該碼字序列包括3個(gè)符號(hào)S3 S1 S4并且包含7位。然后,在該源編碼系統(tǒng)S-ENC中的調(diào)制步驟之后,例如在BPSK調(diào)制之后,所述序列就等于SQs’=1;-1;-1;-1;1;1;-1,其中該調(diào)制步驟對(duì)本領(lǐng)域的技術(shù)人員是公知的。然后,由于所述信道CH上的噪聲,由所述源解碼系統(tǒng)S_DEC所接收到的序列就成為,例如,SQr=0.8-0.9-0.8-1.11.2-1.3。
      從現(xiàn)在起,所接收到的序列SQr必須被解碼以便恢復(fù)所發(fā)送的序列SQs。換言之,我們必須恢復(fù)已經(jīng)在所述發(fā)送序列SQs中發(fā)送的符號(hào)Si。由于導(dǎo)致差錯(cuò)的擾動(dòng),我們注意到可能存在多種可能的解碼碼字序列SQd。該解碼是由所述VLC解碼器VLC_DEC執(zhí)行的,并且是基于對(duì)該發(fā)送的序列SQs的估計(jì)。
      所述VLC解碼器VLC_DEC包括-一個(gè)樹形路徑列表L_PTH,它包括一組樹形路徑T_PTH,每個(gè)樹形路徑包括第一累積度量CM_LPTH和一組節(jié)點(diǎn)NSET,并且該樹形路徑列表包括一個(gè)頂端樹形路徑,該頂端樹形路徑是按照所述的累積度量的最佳樹形路徑,以及-一個(gè)堆棧STCK,它包括一組路徑PTH,每個(gè)路徑包括數(shù)據(jù)和一組符號(hào)Si,所述數(shù)據(jù)包括第二累積度量CM_STCK及位的累積數(shù)目CBITS。
      樹形路徑的第一累積度量CM_LPTH是分支B的分支度量之和,其中分支B構(gòu)成了所述的樹形路徑T_PTH以及在下文中定義的初始化累積度量。
      路徑的第二累積度量CM_STCK是組成所述路徑PTH的符號(hào)Si的度量之和。如上所述,符號(hào)Si關(guān)聯(lián)于碼字CDWi。
      為了找到正確的解碼碼字序列SQd,該解碼方法采用了所考慮的碼字表的樹形表示和度量導(dǎo)出算法。如下文所述,樹由節(jié)點(diǎn)N和分支B組成。考慮到度量能夠關(guān)聯(lián)于樹的每個(gè)分支B,所述解碼方法就在該樹中搜索最大似然樹形路徑,該最大似然樹形路徑可被用于確定在某個(gè)時(shí)間t處具有最小度量的碼字CWDi。我們將看到,所提出的方法的一個(gè)重要優(yōu)點(diǎn)在于碼字是以它們的度量值的遞增順序被選擇的。
      I)度量導(dǎo)出算法該度量導(dǎo)出算法采用一個(gè)逐位分支度量的遞歸公式以及先前所提及的樹形表示。
      逐位分支度量遞歸公式所述度量計(jì)算是依照Massey(梅西)度量(如在參考文獻(xiàn)J.L.Massey“Variable-Length codes and the Fano metric(可變長(zhǎng)度編碼和范諾度量)”IEEE Transactions on Information Theory,IT-18(1)196-198,1972年1月中描述的)來完成的,其中該Massey度量是近似“最大后驗(yàn)”準(zhǔn)則(被稱為MAP準(zhǔn)則),如同本領(lǐng)域的技術(shù)人員所公知的那樣,所述度量計(jì)算等同于計(jì)算部分的接收序列SQr和調(diào)制(假設(shè)存在加性高斯白噪聲)之后的部分發(fā)送序列SQs之間的歐幾里得距離,其后接著是由一個(gè)取決于碼字的出現(xiàn)概率的因子和一個(gè)校正因子logP0(y)對(duì)其加權(quán),其中該校正因子logP0(y)近似所述接收序列y的似然性,這里x是發(fā)送序列。
      所述度量M的公式為M(x,y)=-logP(x|y)=-logP(y|x)-logP(x)+logP0(y)[1]其中P0(y)=&Sigma;i=0nb_bitP(x[t]=0)P(y[t]x[t]=0)+P(x[t]=1)P(y[t]x[t]=1)]]>其中nb_bit是序列SQ中的位數(shù)。
      因此,逐位的分支度量公式可被寫作M(CWDi,y[t:t+LTHi])=&Sigma;k=0LTHi-1m(CWDi[k],y[t+k])---[2]]]>其中m(CWDi[k],y[t+k])=logP(y[t+k]|CWDi[k])-logP(x[t+k]=CWDi[k]|x[tt+k-1])+logP0(y[t+k])是與相應(yīng)于碼字CWDi的樹形路徑的第n個(gè)分支有關(guān)的分支度量。CWDi[k]是碼字CWDi的第k位。
      項(xiàng)logP(y[t+k]|CWDi[k])表示一個(gè)距離,項(xiàng)logP(x[t+k]=CWDi[k]|x[tt+k-1])表示與所述碼字CWDi的第k位有關(guān)的先驗(yàn)概率,而logP0(y[t+k])表示校正因子。
      碼字表的樹形表示這種樹包括多個(gè)-節(jié)點(diǎn)N,其中多個(gè)節(jié)點(diǎn)與一個(gè)可能的碼字CWDi相應(yīng);-分支B,這里一個(gè)度量與一個(gè)分支B相關(guān)聯(lián)。一個(gè)分支B包括兩個(gè)節(jié)點(diǎn)N,也就是,從一個(gè)節(jié)點(diǎn)N可創(chuàng)建一個(gè)或兩個(gè)分支,即一個(gè)“左”分支和一個(gè)“右”分支;分支具有相應(yīng)的位值0或1;-樹形路徑T_PTH,其中一個(gè)樹形路徑T_PTH表示一個(gè)解碼碼字序列SQd。一個(gè)樹形路徑T_PTH包括多個(gè)分支B,并從一個(gè)初始節(jié)點(diǎn)N00擴(kuò)展到一個(gè)可能的符號(hào)Si。
      除此之外,樹具有不同的級(jí),第一級(jí)為0級(jí),并且樹包括初始節(jié)點(diǎn)N00。
      度量的計(jì)算在所述的度量導(dǎo)出算法中,我們從初始節(jié)點(diǎn)N00出發(fā)查驗(yàn)樹中的樹形路徑,并沿著這些路徑一直到一條樹形路徑到達(dá)符號(hào)S。將之前查驗(yàn)過的樹形路徑的列表保存在存儲(chǔ)器中。一個(gè)列表項(xiàng)目包括所查驗(yàn)的樹形路徑的最后一個(gè)節(jié)點(diǎn)以及它的第一累積度量,即組成這個(gè)樹形路徑的分支的分支度量之和。通過計(jì)算樹形路徑的最后一個(gè)節(jié)點(diǎn)的后繼分支(通過構(gòu)建而成的一個(gè)或兩個(gè)分支)的分支度量,然后將其加入所述頂端樹形路徑的第一累積度量來形成后繼者,這樣每個(gè)解碼步驟在該樹形路徑列表中產(chǎn)生了頂端樹形路徑的一個(gè)擴(kuò)展(也就是具有最小累積度量的最佳樹形路徑)。然后將該頂端樹形路徑從所述樹形路徑列表中刪除并將其后繼者插入。當(dāng)該列表中的所述頂端樹形路徑與一個(gè)完整的碼字CWDi相應(yīng)時(shí),就將該碼字加到主要最佳碼字列表CWD_LIST中。重復(fù)這種操作直至驗(yàn)證到停止條件。
      這樣,如圖4中所示,所述度量導(dǎo)出算法執(zhí)行下列步驟。
      在第1步CREAT_TREE)中,我們創(chuàng)建一個(gè)與所述碼字表相關(guān)的樹。我們通過計(jì)算與每個(gè)分支B有關(guān)的先驗(yàn)概率logP(x[t+k]=CWDi[k]|x[tt+k-1]),如參考文獻(xiàn)“L.Guivarch,Carlach,Siohan-Joint Source Channel soft decoding of Huffmancodes with turbo-codes(帶有渦輪碼的霍夫曼編碼的聯(lián)合源信道軟解碼)-In Proceeding of the Data compression Conference DCC’00第83-91頁(yè),Snowbird,Utah,USA,2000年3月”中所描述的,來定義節(jié)點(diǎn)N之間的關(guān)系從而創(chuàng)建該樹。注意到在優(yōu)選實(shí)施例中,樹的級(jí)數(shù)等于在所述碼字表中定義的最大碼字長(zhǎng)度LTHi,即這里為4。
      在第2步INIT_L_PTH)中,我們通過在所述頂端樹形路徑列表L_PTH中將初始節(jié)點(diǎn)N00的度量設(shè)為0來初始化所述樹形路徑L_PTH。
      在第3步EXT_BEST_TPTH)中,我們?cè)谒鰳湫温窂搅斜鞮_PTH中計(jì)算最佳樹形路徑BT_PTH的后繼分支的度量。我們從該樹形路徑列表L_PTH中刪除該最佳樹形路徑BT_PTH,并且將所述擴(kuò)展的樹形路徑T_PTH插入到該樹形路徑列表中。
      在第4步SEL_BEST_TPTH)中,我們選擇新的最佳樹形路徑BT_PTH,也就是具有最小第一累積度量的樹形路徑列表L_PTH的樹形路徑。
      在第5步STOP_METRIC_COND)中,我們測(cè)試某些停止度量計(jì)算條件。如果驗(yàn)證了其中一個(gè)停止條件,我們就停止,否則我們繼續(xù)執(zhí)行第六步。
      可以定義幾個(gè)停止條件。在優(yōu)選實(shí)施例中,下面的停止條件可以被驗(yàn)證。
      -如果每個(gè)節(jié)點(diǎn)N都被檢驗(yàn)過了,我們就停止。
      -如果已選擇了足夠數(shù)量的碼字CWDi,我們就停止。
      -如果相應(yīng)于最佳樹形路徑的第一累積度量CM_LPTH超過了某個(gè)閾值,我們就停止,這里該閾值為最差的第二累積度量CM_STCK。最好使用最后一個(gè)條件。
      在第6步中,我們測(cè)試最佳樹形路徑BT_PTH是否與一個(gè)完整的碼字CWDi相應(yīng)。如果是,我們繼續(xù)第7步。否則我們回到第3步。
      在第7步中,我們將所找出的、相應(yīng)于最佳樹形路徑BT_PTH的碼字CWDi加入該碼字列表CWD_LIST中并回到第4步。
      注意某些找出的碼字CWDi可能沒有被估計(jì)方法所使用,特別是在選擇了等長(zhǎng)(所述碼字中的位數(shù))的幾個(gè)碼字CWDi時(shí),也就是在下面將要描述的、當(dāng)某些先驗(yàn)條件是基于符號(hào)準(zhǔn)則時(shí)。
      II)解碼方法或VLC算法現(xiàn)在我們將要看到所述的解碼方法(也被稱作TREE-VLC-STACK算法)如何通過執(zhí)行下述步驟來使用這種度量導(dǎo)出算法,如圖5a和5b中所示。
      在第1步CREAT_TREE)中,如前所述,我們創(chuàng)建與所述碼字表相關(guān)的樹。該樹如圖3中所示。這里,它的級(jí)數(shù)等于4。
      創(chuàng)建完相關(guān)的樹之后,在第2子步INIT_STCK)中,我們通過將零度量放入所述堆棧STCK的棧頂?shù)捻?xiàng)中以及將無窮大度量放入其它項(xiàng)中來初始化該堆棧STCK。
      在第3子步INIT_LPTH)中,我們通過將所述初始節(jié)點(diǎn)N00設(shè)為初始累積度量來初始化所述樹形路徑列表L_PTH,其中初始累積度量是所述堆棧STCK的頂端路徑的第二累積度量CM_STCK。
      在第4子步EXT_BEST_TPTH)中,我們從所述最佳樹形路徑BT_PTH擴(kuò)展樹形路徑T_PTH,并計(jì)算后繼分支B的第一累積度量CM_LPTH。然后,我們從所述樹形路徑列表L_PTH中刪除最佳樹形路徑,并將該擴(kuò)展后的樹形路徑插入所述樹形列表L_PTH。
      在第5子步SEL_BEST_TPTH)中,我們?cè)谒鰳湫温窂搅斜鞮_PTH中選擇新的最佳樹形路徑BT_PTH,也就是選擇具有最佳第一累積度量,即最小累積度量CM_LPTH的樹形路徑。
      在第6子步SEL_CWD)中,如果從上一次經(jīng)過步驟3起,至少一個(gè)所選的最佳樹形路徑BT_PTH是一個(gè)碼字,那么轉(zhuǎn)到步驟10。如果不是,則轉(zhuǎn)到步驟7。
      在第7子步=CWD)中,我們測(cè)試所述最佳樹形路徑BT_PTH是否與一個(gè)完整的碼字CWDi相應(yīng)。這樣,如果該最佳樹形路徑BT_PTH與一個(gè)完整的碼字相應(yīng),則我們從所述樹形路徑列表L_PTH中刪除該最佳樹形路徑BT_PTH,然后我們轉(zhuǎn)到步驟8,否則我們回到步驟4。
      注意到當(dāng)所述先驗(yàn)條件是基于符號(hào)準(zhǔn)則時(shí),我們最好測(cè)試該相應(yīng)的完整碼字CWDi具有的長(zhǎng)度LTHi是否與從上一次經(jīng)過步驟3起所有的之前所選的碼字長(zhǎng)度不同。
      如果長(zhǎng)度相同,那么我們就從所述樹形路徑列表L_PTH中刪除該最佳樹形路徑BT_PTH,然后我們回到步驟5。這就意味著該碼字CWDi不值得檢驗(yàn),因?yàn)樵摯a字CWDi是在已經(jīng)選擇了另一具有相同長(zhǎng)度的碼字之后被選擇的,所以它比所述的另一碼字更差。因此,這種測(cè)試具有節(jié)省時(shí)間的優(yōu)點(diǎn)。
      如果長(zhǎng)度不同,我們就從所述樹形路徑列表L_PTH中刪除該最佳樹形路徑BT_PTH,然后我們轉(zhuǎn)到步驟8。
      在第8子步DEL_TOPTH_STCK)中,我們從所述堆棧STCK中刪除頂端路徑TOP_PTH。
      在第9子步INS_PTH_STCK)中,我們通過選擇在步驟7中獲得的碼字CWDi,而將從所述最佳擴(kuò)展路徑中形成的新的路徑PTH插入到堆棧STCK中。然后我們回到步驟5。
      在第10子步CM_LPTH>CM_STCK)中,我們測(cè)試所述的停止度量計(jì)算條件。這樣,我們將所述最佳樹形路徑的第一累積度量與最差的已保存路徑的累積度量進(jìn)行比較。因此,如果在所述樹形路徑列表L_PTH中的最佳樹形路徑BT_PTH的第一累積度量CM_LPTH超過了所述堆棧STCK中的最差路徑PTH的第二累積度量CM_STCK,那么我們轉(zhuǎn)到步驟14。這意味著該最佳樹形路徑BT_PTH的第一累積度量比該最差路徑PTH的第二累積度量更差。否則,轉(zhuǎn)到步驟11。
      在第11子步=CWD)中,如果所述樹形路徑列表L_PTH中的所述最佳樹形路徑BT_PTH與一個(gè)完整的碼字CWDi相應(yīng),我們就從該樹形路徑列表L_PTH中刪除所述最佳樹形路徑BT_PTH,然后我們繼續(xù)步驟12。否則,我們回到步驟4,即我們繼續(xù)查找一個(gè)相應(yīng)的碼字CWDi。
      在第12子步DEL_WORSPTH_STCK)中,我們刪除所述堆棧STCK中的最差路徑PTH,也就是,具有最大累積度量的路徑。
      在第13子步INS_PTH_STCK)中,我們通過在步驟11中所獲得的被選中的碼字CWDi,在堆棧STCK中,將從所述擴(kuò)展的最佳路徑中形成的新路徑PTH插入到所述堆棧STCK中,然后我們回到步驟5。
      在第14子步REORD_STCK)中,我們按照所述第二累積度量值CM_STCK,將所述堆棧STCK從最佳到較差進(jìn)行重新排序。
      在第15子步CBITS=L_SQ)中,我們?cè)陧敹寺窂缴蠝y(cè)試結(jié)束條件。這樣,我們將所述頂端路徑的累積位數(shù)與所述的接收碼字序列的長(zhǎng)度進(jìn)行比較。如果,該頂端路徑的累積位數(shù)CBITS等于該接收序列SQr的長(zhǎng)度L_SQ,我們就繼續(xù)執(zhí)行步驟16。否則,我們轉(zhuǎn)到步驟18。
      在第16子步AP_COND)中,我們測(cè)試所述堆棧STCK中的所述頂端路徑TOP_PTH是否驗(yàn)證了關(guān)于發(fā)送序列的先驗(yàn)條件。
      該先驗(yàn)條件最好是符號(hào)Si的數(shù)目或者是一個(gè)序列中的塊數(shù)目。在該實(shí)例中,該先驗(yàn)條件是符號(hào)Si的數(shù)目。如果的確驗(yàn)證了該先驗(yàn)條件,我們就停止,并且我們輸出所述頂端路徑TOP_PTH,其中所述頂端路徑TOP_PTH就是對(duì)所述接收序列SQs的被解碼的解。否則,我們轉(zhuǎn)到步驟17。
      在第17子步DEL_TOPTH_STCK)中,我們從所述堆棧STCK中刪除所述頂端路徑PTH,并將無窮大度量放入該堆棧STCK中的頂端路徑的項(xiàng)中,然后我們轉(zhuǎn)到步驟14。
      在第18子步STOP_COND)中,我們測(cè)試所述的停止解碼條件。這樣,我們?cè)黾右粋€(gè)相應(yīng)于解碼步驟的數(shù)目的計(jì)數(shù)器CPT,并且我們將所述計(jì)數(shù)器CPT與一個(gè)設(shè)定的閾值TH進(jìn)行比較。如果所述計(jì)數(shù)器CPT超出了給定的閾值TH,解碼就被停止。這意味著沒有找到解。例如,將該閾值TH設(shè)置為3*所述發(fā)送序列SQs的位數(shù)。否則我們回到步驟3。
      III)示意性實(shí)例步驟1所述樹的創(chuàng)建這種樹如圖3中所示。在該圖中,與圖2中的碼字表相關(guān)的樹具有6個(gè)符號(hào)S1至S6、11個(gè)節(jié)點(diǎn)N00至N40以及10個(gè)分支。它具有第一節(jié)點(diǎn)N00。例如,它具有一條樹形路徑N00-N11-N20-S3,該樹形路徑包括形成該符號(hào)S3的所述的3個(gè)中間節(jié)點(diǎn)N00-N11-N20,所述節(jié)點(diǎn)等同于3個(gè)分支B1(N00-N11)、B2(N11-N20)、B3(N20-N30)。這3個(gè)分支分別具有相關(guān)的位值“1”、“0”和“0”。
      注意到我們用k=該樹的級(jí)數(shù)作索引來表示節(jié)點(diǎn)Nk1。例如,N20指的是該節(jié)點(diǎn)在樹的第二級(jí)。
      步驟2所述堆棧STCK的初始化。這里,該堆棧具有2個(gè)路徑PTHPTH1和PTH2。

      步驟3所述樹形路徑列表L_PTH的初始化。

      步驟4擴(kuò)展因此,我們具有兩個(gè)擴(kuò)展的樹形路徑T_PTH10和T_PTH11。

      步驟5在該實(shí)例中,所述最佳樹形路徑為樹形路徑BT_PTH=T_PTH11(N00-N11)。
      步驟6之前沒有選擇任何碼字。因此,我們轉(zhuǎn)到步驟7。
      步驟7這里,所述最佳樹形路徑BT_PTH=T_PTH11(N00-N11)不與任何碼字相對(duì)應(yīng),因此我們回到步驟4。
      步驟4此時(shí)我們有兩個(gè)擴(kuò)展的樹形路徑T_PTH20和T_PTH21

      步驟5新的最佳樹形路徑是BT_PTH=T_PTH20。
      步驟6之前沒有選擇任何碼字。因此,我們轉(zhuǎn)到步驟7。
      步驟7這里,所述最佳樹形路徑BT_PTH=T_PTH20(N00-N11-N20)不與任何碼字相對(duì)應(yīng),因此,我們回到步驟4。
      步驟4

      步驟5我們達(dá)到具有第一累積度量M11+M20+M30的一條最佳樹形路徑BT_PTH=T_PTH30。
      步驟6從上一次經(jīng)過步驟3起,所選的最佳樹形路徑BT_PTH都不是一個(gè)碼字,我們轉(zhuǎn)到步驟7。
      步驟7由于所述最佳樹形路徑BT_PTH=T_PTH30與完整的碼字100相對(duì)應(yīng),我們就從所述樹形路徑列表中刪除該最佳樹形路徑BT_PTH=T_PTH30,然后我們轉(zhuǎn)到步驟8。
      步驟8在所述堆棧STCK中刪除頂端路徑TOP_PTH=PTH1。
      步驟9我們通過選擇在步驟7中所獲得的碼字CWDi來插入所述新的路徑PTH。所述碼字CWDi包括3位100,并與符號(hào)S3相應(yīng)。因此,該新的路徑PTH1包括下列數(shù)據(jù)第二累積度量M10+M20+M30、3位的值以及該符號(hào)S3。

      我們回到步驟5。

      步驟5我們選擇新的最佳樹形路徑BT_PTH=T_PTH10。
      步驟6所選的最佳樹形路徑BT_PTH中的至少一個(gè)是一個(gè)碼字,因此轉(zhuǎn)到步驟10。
      步驟10所述最佳樹形路徑T_PTH10的第一累積度量小于所述堆棧中的最差路徑的第二累積度量,這里該第二累積度量為無窮大,然后轉(zhuǎn)到步驟11。
      步驟11所述新的最佳樹形路徑BT_PTH=T_PTH10與新的碼字0以及符號(hào)S1相應(yīng),因此我們從所述樹形路徑列表中刪除該最佳樹形路徑BT_PTH=T_PTH10,然后我們轉(zhuǎn)到步驟12。
      步驟12我們從所述堆棧中刪除最差路徑。
      步驟13我們通過選擇在步驟11中獲得的所述碼字,向所述堆棧STCK中插入新的路徑PTH。這樣,在該堆棧STCK中,我們獲得具有第二累積度量M10、1位和所述符號(hào)S1的所述路徑PTH2,如下文所示。

      我們回到步驟5。我們選擇新的最佳樹形路徑BT_PTH=T_PTH31。
      步驟6、步驟10所述最佳樹形路徑T_PTH31的第一累積度量大于所述堆棧中的最差路徑PTH2的第二累積度量,MP2<M11+M20+M31,因此我們轉(zhuǎn)到步驟14。
      步驟14我們對(duì)所述堆棧重新排序。這里所述路徑PTH1優(yōu)于路徑PTH2。
      步驟15這里,所述頂端路徑的累積位CBITS不等于所述接收序列SQr長(zhǎng)度位。因此我們轉(zhuǎn)到步驟18。
      步驟18CPT=1,回到步驟3。
      步驟3所述樹形路徑列表L_PTH被全部清除。新的頂端樹形路徑T_PTH是具有所述節(jié)點(diǎn)N00的MP1。

      步驟4我們從所述節(jié)點(diǎn)N00開始擴(kuò)展分支。

      步驟5、步驟6和步驟7T_PTH10是最佳樹形路徑BT_PTH,沒有碼字被選擇并且T_PTH10相應(yīng)于所述符號(hào)S1。我們?cè)谒鰳湫温窂搅斜碇袆h除該最佳樹形路徑BT_PTH=T_PTH10。
      步驟8我們?cè)谒龆褩TCK中刪除該頂端路徑PTH1。
      步驟9然后,在所述堆棧STCK中,我們有

      步驟5我們選擇新的最佳樹形路徑BT_PTH=T_PTH11。
      步驟6存在一個(gè)之前選擇的碼字,因此轉(zhuǎn)到步驟10。
      步驟10所述最佳樹形路徑T_PTH11的第一累積度量大于所述堆棧中的最差路徑PTH2的第二累積度量,MP2<MP1+M11,因此我們轉(zhuǎn)到步驟14。
      步驟14我們對(duì)所述堆棧重新排序。這里維持原樣,這意味著該路徑PTH1優(yōu)于所述路徑PTH2。
      步驟15、步驟18CPT=2,我們回到步驟3。
      步驟3所述樹形路徑列表L_PTH被全部清除。新的頂端樹形路徑T_PTH00對(duì)所述節(jié)點(diǎn)N00是MP1。

      步驟4擴(kuò)展。

      步驟5、步驟6然后我們繼續(xù)所述新的最佳樹形路徑BT_PTH=T_PTH11(N00-N11)。
      步驟7該新的最佳樹形路徑不與任何碼字相對(duì)應(yīng)。我們回到步驟4。
      步驟4擴(kuò)展。

      步驟5、步驟6和步驟7T_PTH21(MP1+M11+M21,N00-N11-N21)是不與碼字相應(yīng)的新的最佳樹形路徑BT_PTH。我們回到步驟4。
      擴(kuò)展

      步驟5、步驟6和步驟7T_PTH32(MP1+M11+M21+M32 N00-N11-N21-N32)是相應(yīng)于碼字11O的新的最佳樹形路徑BT_PTH,也就是相應(yīng)于符號(hào)S4。我們?cè)谒鰳湫温窂搅斜鞮_PTH中刪除所述最佳樹形路徑BT_PTH=T_PTH32。
      步驟8、步驟9在所述堆棧STCK中刪除頂端路徑TOP_PTH,然后在該堆棧STCK中,我們可得


      回到步驟5新的最佳樹形路徑是BT_PTH=T_PTH33。
      步驟6、步驟10新的第一累積度量MP1+M11+M21+M33超過了所述堆棧STCK中的最差第二累積度量,這里最差第二累積度量是MP2,因此我們轉(zhuǎn)到步驟14。
      步驟14我們對(duì)所述堆棧重新排序。這里該堆棧保持原樣。

      步驟15所述堆棧STCK中的頂端路徑的累積位CBITS等于所述接收序列L_SQ的長(zhǎng)度,這里為7,于是我們轉(zhuǎn)到步驟16。
      步驟16先驗(yàn)條件符號(hào)S的數(shù)目等于所述發(fā)送序列SQs中的符號(hào)數(shù)目,這里是3。于是,我們停止并輸出所述頂端路徑TOP_PTH=S3,S1,S4,該頂端路徑TOP_PTH就是該接收序列SQr=0.8 -0.9 -0.8 -1.1 1.2 -1.3的解。
      IV)性能圖6、圖7和圖8示出了與其它用于可變長(zhǎng)度碼字序列的源解碼方法相比,根據(jù)本發(fā)明的方法的性能。描述了下面的方法性能-硬VLC解碼“HARD”(以菱形表示),-基于Demir和Sayoud算法的新的符號(hào)trellis(網(wǎng)格)算法“TRELLIS”(以圓圈表示),參考Proceeding Data CompressionConference DCC‘98,139-148頁(yè),Snowbird,Utah,USA,1998年3月30日-4月1日的“Joint Source Channel coding for variable lengthcodes(用于可變長(zhǎng)度編碼的聯(lián)合源信道編碼)”,將公式[1]用于度量計(jì)算,-由Buttigieg提出的VLC堆棧算法“VLC-STACK”(以向上的三角形表示),該算法如在現(xiàn)有技術(shù)部分描述的那樣(參考“variable-lengtherror-correcting codes(可變長(zhǎng)度糾錯(cuò)編碼)”博士論文,Universityof Manchester(曼徹斯特大學(xué)),UK 1995),以及-根據(jù)本發(fā)明的方法“TREE-VLC-STACK”(以向左的三角形表示)。
      該硬VLC方法是一種包括采用VLC編碼的前綴屬性逐位地對(duì)所述的接收序列SQr進(jìn)行解碼的方法。前綴屬性指的是一個(gè)碼字不能作另一個(gè)碼字的開始。
      其它的方法都是軟VLC解碼方法。
      圖6、圖7和圖8的曲線圖都示出了在分組差錯(cuò)率PER相對(duì)信噪比Eb/N0方面的仿真性能,這里分組是相應(yīng)于一個(gè)碼字序列SQ的。應(yīng)當(dāng)指出,所述信噪比的計(jì)算對(duì)本領(lǐng)域的技術(shù)人員來說是公知的。也就是說,我們計(jì)算性能開銷比。所述性能示出了碼字序列是否已被正確地解碼,并且所述開銷示出了為發(fā)送碼字序列SQ的位而消耗了多少功率(能量/噪聲)。然后,取決于我們可以接受的誤差以及/或者我們想要使用的功率,來選擇最佳的解。最優(yōu)方法和硬(hard)方法限制了所有的性能。
      仿真特征如下所示。
      -碼字以100個(gè)分組被傳輸,-按給出的VLC表產(chǎn)生符號(hào)并對(duì)其進(jìn)行VLC解碼,-信道噪聲是加性高斯白噪聲,-用在所述軟解碼方法中的存留路徑的最大數(shù)目,將所述最大數(shù)目設(shè)為10。
      圖6表示以Bauer和Haugenauer介紹的26碼字表進(jìn)行的仿真結(jié)果(參考在Proceeding of third ITG Conference on Source and ChannelCoding CSCC00,第111-116頁(yè),Munich,Germany,2000年1月中的“symbol by symbol MAP decoding of variable length codes(可變長(zhǎng)度編碼的逐個(gè)符號(hào)的MAP解碼)”)。
      圖7表示以MPEG4標(biāo)準(zhǔn)定義的208碼字表進(jìn)行的仿真結(jié)果(參考RobKoenen“Overview of the MEPEG4 Standard(MEPEG4標(biāo)準(zhǔn)總覽)”ISO/IECJTC2/SC29/WG11 N3156,International organization forstandardization,http//drogo.cselt.stet.it/mpeg/standards/mpeg-4/Mpeg-4.htm,2000年3月)。
      圖8表示用與H.26L標(biāo)準(zhǔn)有關(guān)的最大長(zhǎng)度為19的1023碼字UVLC表進(jìn)行的仿真結(jié)果(參考Gisle Bjontegaard “H.26L Test Model Long TermNumber6(H.26L測(cè)試模型長(zhǎng)期號(hào)6)”draft0,ITU,Telecommunicationstandardization Sector Study Group 6,http://standard.pictel.com/ftp/video-site/h26L/tml6d0.doc,2001年3月)。
      這些仿真示出了就PER而言,所有有關(guān)的軟解碼方法都幾乎獲得了相同的性能。因此,選擇的準(zhǔn)則將是解碼的復(fù)雜性、快速性以及所需的存儲(chǔ)器大小。
      圖9示出了在與其它有關(guān)方法相比的復(fù)雜性方面,根據(jù)本發(fā)明的TREE-VLC-STACK方法的性能。Y軸表示操作的數(shù)目除以秒,NBOP/SEC。X軸表示位數(shù)除以分組,NBITS/PACK。
      正如可以看見的那樣,根據(jù)本發(fā)明的方法在解碼復(fù)雜性方面高效得多。
      而且,如圖10中所示,根據(jù)本發(fā)明所提出的TREE-VLC-STACK方法所需的成本約為現(xiàn)有的VLC-STACK方法的六分之一。
      V)應(yīng)用根據(jù)本發(fā)明所提出的VLC解碼方法優(yōu)選地用于解碼有噪聲的MPEG4幀。
      在MPEG-4視頻標(biāo)準(zhǔn)中(參考Rob Koenen“Overview of the MEPEG4Standard”ISO/IEC JTC2/SC29/WG11 N3156,Internationalorganization for standardization,http://drogo.cselt.stet.it/mpeg/standards/mpeg-4/Mpeg-4.htm,2000年3月以及Soares和Pereira“MPEG4a flexible codingstandard for the emerging mobile multimedia applications”Proceeding of IEEE International Symposium on Personal Indoorand Mobile Radio Communication,Boston,USA,1998年9月),圖象場(chǎng)景被構(gòu)建為相關(guān)的對(duì)象的組合。對(duì)每一個(gè)對(duì)象來說,形狀、運(yùn)動(dòng)和紋理數(shù)據(jù)被編碼。與形狀和運(yùn)動(dòng)數(shù)據(jù)相反,對(duì)紋理數(shù)據(jù)進(jìn)行完全的VLC編碼。此外,MPEG-4已經(jīng)定義了一個(gè)數(shù)據(jù)分區(qū)模式,該模式在一個(gè)分組內(nèi)對(duì)所述數(shù)據(jù)進(jìn)行重新排序,并且MPEG-4數(shù)據(jù)通過分組被發(fā)送出去。如此,通過一個(gè)標(biāo)記而將所述形狀和運(yùn)動(dòng)數(shù)據(jù)與所述紋理數(shù)據(jù)分開。然后,所提出的軟解碼技術(shù)能夠在數(shù)據(jù)分區(qū)模式中對(duì)MPEG-4紋理分區(qū)成功地使用。
      紋理編碼是基于塊的使用離散余弦變換(DCT)對(duì)8×8的塊進(jìn)行編碼,通過與EVENT(事件)有關(guān)的游程長(zhǎng)度編碼和可變長(zhǎng)度編碼對(duì)該塊進(jìn)行量化并將其映射到位。一個(gè)EVENT是最后一個(gè)非零系數(shù)指示(如果LAST被置為“0”,則該塊中存在更多的非零系數(shù),如果LAST被置為“1”,則意味著這是該塊中的最后一個(gè)非零系數(shù))、在一個(gè)第一編碼系數(shù)RUN之前的連零數(shù)目以及一個(gè)第二編碼系數(shù)LEVEL的非零值的組合。
      一個(gè)可能的EVENT可由一個(gè)VLC編碼表示。然而,某些可能的EVENT沒有VLC編碼來表示它們。但在統(tǒng)計(jì)上這些EVENT非常罕見。為了編碼這些統(tǒng)計(jì)上非常罕見的組合,就采用一種使用轉(zhuǎn)義模式碼字ESC的轉(zhuǎn)義(Escape)編碼方法,這種轉(zhuǎn)義編碼方法在MPEG-4標(biāo)準(zhǔn)中是公知的。它包括三種類型的轉(zhuǎn)義模式碼字ESC。
      類型1一種之后跟著“0”的轉(zhuǎn)義模式碼字ESC。
      類型2一種之后跟著“10”的轉(zhuǎn)義模式碼字ESC。
      類型3一種之后跟著“11”以及一個(gè)長(zhǎng)度為21的固定長(zhǎng)度編碼的轉(zhuǎn)義模式碼字ESC。
      這三種類型在參考文獻(xiàn)Rob Koenen的“Overview of the MEPEG4Standard”中給出。
      由于所述轉(zhuǎn)義模式碼字,軟解碼算法不能直接被應(yīng)用在所述MPEG-4紋理分區(qū)。然而,對(duì)于轉(zhuǎn)義模式碼字ESC的前兩種類型(類型1和類型2),提出的一種解決方案是我們通過在所述VLC碼字表中分別增加位“0”和“10”而人為地得到這些轉(zhuǎn)義模式碼字ESC。這樣,所述碼字表就包括轉(zhuǎn)義模式碼字ESC,并且然后這些轉(zhuǎn)義模式碼字ESC可以與任何其它的VLC碼字同樣地被使用。
      對(duì)于所述的轉(zhuǎn)義模式碼字ESC的第三類型3,提出的一種解決方案如下所述。在所述第14步REORDER_STCK)中,剛好在對(duì)所述堆棧STCK進(jìn)行重新排序之前,我們考慮類型3的轉(zhuǎn)義模式碼字ESC的問題如下所述,我們計(jì)算類型3的轉(zhuǎn)義模式碼字的度量。我們將該度量增加到我們當(dāng)前正工作的路徑PTH(即所述堆棧中的最佳路徑)的第二累積度量CM_STCK。然后,我們將其與該堆棧STCK中的最差路徑PTH的第二累積度量CM_STCK進(jìn)行比較。如果它優(yōu)于該CM_STCK,我們就用通過所述擴(kuò)展堆棧STCK中的最佳路徑而形成的所述新的路徑PTH來代替該堆棧STCK中的最差路徑PTH,其中擴(kuò)展堆棧STCK中的最佳路徑是通過所述轉(zhuǎn)義模式碼字ESC來擴(kuò)展的,這里轉(zhuǎn)義模式碼字ESC之后跟著11以及21個(gè)后隨的接收位的硬值(hard value)。可以看到,這種擴(kuò)展路徑的特征為上述的累積度量,以及等于所關(guān)心的頂端路徑的位累積數(shù)目CBITS+30的位累積數(shù)目CBITS。
      在任何情況下,我們都轉(zhuǎn)入步驟14。
      在時(shí)間t處,后面跟隨著一個(gè)固定長(zhǎng)度編碼的、類型3的轉(zhuǎn)義模式碼字的度量如下所示。
      M(ESC&prime;&prime;+11&prime;&prime;,y[t:t+8])+&Sigma;i=929(||y[t+i]-sign(y[t+i)]||2-log12+logp0(y[t+i]))]]>對(duì)于用在所提出的VLC解碼算法中的先驗(yàn)條件,軟VLC解碼算法經(jīng)常使用按序列的符號(hào)數(shù)目的所述先驗(yàn)知識(shí)而使得對(duì)所述發(fā)送序列的估計(jì)更準(zhǔn)確。不幸的是,在標(biāo)準(zhǔn)MPEG-4中,包含在每個(gè)紋理分區(qū)中的符號(hào)數(shù)目的知識(shí)并不能從MPEG-4幀中獲得(當(dāng)然除了完整并正確地對(duì)該幀進(jìn)行解碼之外)。然而,通過解碼頭標(biāo)和運(yùn)動(dòng)分區(qū),就可以知道包含在該紋理分區(qū)中的塊數(shù)。
      因此,對(duì)于MPEG-4標(biāo)準(zhǔn),在根據(jù)本發(fā)明所提出的VLC解碼算法中,我們將使用一個(gè)紋理分區(qū)中的塊數(shù)的先驗(yàn)知識(shí)來執(zhí)行這種解碼。
      事實(shí)上,通過對(duì)相應(yīng)于LAST參數(shù)等于1的碼字的數(shù)目進(jìn)行計(jì)數(shù),便很容易地確定出在一個(gè)給定的碼字序列中包含的塊數(shù)。這樣,在其包含了精確的塊數(shù)的意義上,按分區(qū)的塊數(shù)的知識(shí)是可被用作符號(hào)數(shù)來選擇一個(gè)可能序列的一種先驗(yàn)知識(shí)。因此,在所提出的VLC算法的第16步中,我們將所述解碼的序列的塊數(shù)與已知的所述發(fā)送序列SQs的塊數(shù)進(jìn)行比較。
      注意到如果所述先驗(yàn)條件是基于塊準(zhǔn)則的,那么我們不選擇相應(yīng)于同一LAST參數(shù)值的相同長(zhǎng)度的兩個(gè)碼字,從而節(jié)省了時(shí)間。
      應(yīng)當(dāng)理解,本發(fā)明不局限于前述的實(shí)施例,并且可以作出變化和修改而不背離由在所附權(quán)利要求中定義的本發(fā)明的精神和范圍。在此,做出下面的結(jié)論意見。
      應(yīng)當(dāng)理解本發(fā)明不局限于前述的MPEG4應(yīng)用。它也可以被應(yīng)用于任何使用可變長(zhǎng)度編碼以及可支持所述解碼的成本的應(yīng)用。典型地,這例如可被用于視頻、音頻或文本壓縮。
      應(yīng)當(dāng)理解根據(jù)本發(fā)明的方法不局限于任何實(shí)施。
      存在著許多方式來通過硬件項(xiàng)或軟件項(xiàng)或者軟硬項(xiàng)結(jié)合去實(shí)現(xiàn)根據(jù)本發(fā)明的方法的功能,只要單獨(dú)一個(gè)硬件項(xiàng)或軟件項(xiàng)能夠完成幾項(xiàng)功能的話。這不排除硬件項(xiàng)或軟件項(xiàng)或軟硬項(xiàng)結(jié)合的組件來實(shí)現(xiàn)一個(gè)功能。例如,所述樹形路徑擴(kuò)展步驟4)可與選擇新的最佳樹形路徑BT_PTH的步驟5)相結(jié)合,這樣不需要修改根據(jù)本發(fā)明的源解碼方法就可以產(chǎn)生一個(gè)單獨(dú)的功能。
      所述硬件項(xiàng)或軟件項(xiàng)能以幾個(gè)方式來實(shí)現(xiàn),例如通過有線電子電路或通過適當(dāng)?shù)鼐幊痰募呻娐贰T摷呻娐房裳b于一臺(tái)計(jì)算機(jī)或一個(gè)解碼器中。該解碼器包括適用于執(zhí)行所述擴(kuò)展步驟4)的樹形路徑擴(kuò)展裝置,以及適用于執(zhí)行所述選擇步驟5)的選擇裝置,如上所述,所述裝置是前述的硬件項(xiàng)或軟件項(xiàng)。
      所述集成電路包括一組指令。這樣,所述包括在,例如,一個(gè)計(jì)算機(jī)程序存儲(chǔ)器或一個(gè)解碼器存儲(chǔ)器中的指令組可使該計(jì)算機(jī)或該解碼器完成所述VLC解碼方法的不同步驟。
      這組指令可通過讀取一個(gè)數(shù)據(jù)載體,比如,舉例而言一張磁盤,而被加載到所述程序存儲(chǔ)器中。服務(wù)提供商也可以通過通信網(wǎng)絡(luò),例如因特網(wǎng),而使這組指令可得到。
      在后面的權(quán)利要求中的任何標(biāo)記都不構(gòu)成對(duì)該權(quán)利要求的限制。顯而易見地,使用動(dòng)詞“包括”和它的變化形式并不排除也存在有在任意權(quán)利要求中定義的那些之外的步驟或者元素的情況。在一個(gè)元素或步驟之前的冠詞“一個(gè)”或“一種”并不排除存在有多個(gè)這種元素或步驟的情況。
      權(quán)利要求
      1.一種對(duì)可變長(zhǎng)度碼字序列(SQr)進(jìn)行源解碼的方法,所述源解碼是基于一碼字表,其特征在于該方法包括以下步驟-創(chuàng)建一個(gè)與所述碼字表相關(guān)的樹,所述樹包括樹形路徑(T_PTH),一樹形路徑(T_PTH)包括多個(gè)分支(B),-解碼一個(gè)接收到的序列(SQr),所述步驟包括如下子步驟-從所述樹中的一個(gè)節(jié)點(diǎn)(N)擴(kuò)展最佳樹形路徑(BT_PTH),所述擴(kuò)展是通過計(jì)算來自所述節(jié)點(diǎn)(N)的后繼分支(B)的第一累積度量(CM_LPTH)來實(shí)現(xiàn)的,-選擇相應(yīng)于該最佳樹形路徑(BT_PTH)的碼字(CWDi),并保存路徑(PTH)中的相應(yīng)的數(shù)據(jù),所述相應(yīng)的數(shù)據(jù)包括一個(gè)第二累積度量(CM_STCK),-按照所述的已保存路徑(PTH)的第二累積度量(CM_STCK)對(duì)所述的已保存路徑重新排序,-對(duì)頂端路徑(TOP_PTH)測(cè)試先驗(yàn)條件,并且如果該先驗(yàn)條件被驗(yàn)證,則輸出所述頂端路徑(TOP_PTH),否則就返回所述的擴(kuò)展子步驟。
      2.如權(quán)利要求1中的方法,其特征在于每個(gè)碼字(CWDi)具有一個(gè)長(zhǎng)度(LTHi),并且該樹包括與定義在所述碼字表中的最大碼字長(zhǎng)度(LTHi)相等的級(jí)數(shù)。
      3.如權(quán)利要求1中的方法,其特征在于所述擴(kuò)展子步驟包括一個(gè)停止度量計(jì)算條件測(cè)試,使得如果所述條件被驗(yàn)證,則所述擴(kuò)展被停止并后隨所述的對(duì)路徑重新排序的子步驟。
      4.如權(quán)利要求3中的方法,其特征在于所述停止度量計(jì)算條件測(cè)試是基于所述最佳樹形路徑(BT_PTH)的所述第一累積度量(CM_LPTH)與所述的最差的已保存路徑的第二累積度量(CM_STCK)的比較。
      5.如權(quán)利要求1中的方法,其特征在于,如果先驗(yàn)條件是基于符號(hào)準(zhǔn)則的,那么所述選擇子步驟適合于只選擇一個(gè)碼字(CWDi),該碼字具有的長(zhǎng)度(LTHi)與在一個(gè)解碼步驟中所有之前被選擇的碼字長(zhǎng)度不同。
      6.如權(quán)利要求1中的方法,其中該解碼步驟還包括在測(cè)試所述先驗(yàn)條件之前對(duì)該頂端路徑(TOP_PTH)測(cè)試結(jié)束條件的一個(gè)子步驟,使得如果所述頂端路徑(TOP_PTH)驗(yàn)證了結(jié)束條件,就執(zhí)行測(cè)試所述先驗(yàn)條件的子步驟,否則就執(zhí)行對(duì)停止解碼條件進(jìn)行測(cè)試的一個(gè)子步驟,而如果所述停止解碼條件沒有被驗(yàn)證,就發(fā)生對(duì)擴(kuò)展步驟的返回。
      7.如權(quán)利要求6中的方法,其特征在于該停止解碼條件是基于一個(gè)解碼步驟計(jì)數(shù)器(CPT)的增量,并且基于所述計(jì)數(shù)器(CPT)與一個(gè)設(shè)定的閾值(TH)的比較,使得如果所述計(jì)數(shù)器(CPT)超過所述閾值(TH)就停止該解碼。
      8.如權(quán)利要求6中的方法,其特征在于在路徑(PTH)中的所述相應(yīng)的數(shù)據(jù)還包括位的累積數(shù)目(CBITS),并且該結(jié)束條件是基于該頂端路徑的位累積數(shù)目(CBITS)與所述接收到的碼字序列(SQr)的長(zhǎng)度(L_SQ)的比較。
      9.如權(quán)利要求1中的方法,其特征在于該碼字表包括轉(zhuǎn)義模式碼字(ESC)。
      10.一種用于解碼器的計(jì)算機(jī)程序產(chǎn)品,它包括一組指令,其中,當(dāng)這些指令被加載到所述解碼器中時(shí),所述指令使該解碼器執(zhí)行如權(quán)利要求1至9中要求的方法。
      11.一種用于計(jì)算機(jī)的計(jì)算機(jī)程序產(chǎn)品,它包括一組指令,其中,當(dāng)這些指令被加載到所述計(jì)算機(jī)中時(shí),所述指令使該計(jì)算機(jī)執(zhí)行如權(quán)利要求1至9中要求的方法。
      12.一種對(duì)可變長(zhǎng)度碼字序列進(jìn)行源解碼的解碼器,所述源解碼是基于一相關(guān)的碼字表,其特征在于所述解碼器包括-適合于創(chuàng)建一個(gè)與所述碼字表相關(guān)的樹的樹創(chuàng)建裝置,所述樹包括樹形路徑(T_PTH),一樹形路徑(T_PTH)包括多個(gè)分支(B),-適合于對(duì)一個(gè)接收的序列(SQr)進(jìn)行解碼的序列解碼裝置,所述解碼裝置包括-適合于從該樹中的一個(gè)節(jié)點(diǎn)(N)擴(kuò)展最佳樹形路徑(BT_PTH)的最佳樹形路徑擴(kuò)展裝置,所述擴(kuò)展是通過計(jì)算來自所述節(jié)點(diǎn)(N)的后繼分支(B)的第一累積度量(CM_LPTH)來實(shí)現(xiàn)的,-適合于選擇相應(yīng)于該最佳樹形路徑(BT_PTH)的碼字(CWDi)并將保存路徑(PTH)中的相應(yīng)的數(shù)據(jù)的碼字選擇裝置,其中該相應(yīng)的數(shù)據(jù)包括一個(gè)第二累積度量(CM_STCK),-適合于按照所述的已保存路徑(PTH)的第二累積度量(CM_STCK)對(duì)所述已保存路徑重新排序的路徑重新排序裝置,以及-適合于對(duì)頂端路徑(TOP_PTH)測(cè)試先驗(yàn)條件,并且如果所述先驗(yàn)條件被驗(yàn)證,就輸出所述頂端路徑(TOP_PTH)的先驗(yàn)條件測(cè)試裝置。
      全文摘要
      本發(fā)明涉及一種對(duì)一個(gè)可變長(zhǎng)度碼字序列進(jìn)行源解碼的方法,所述解碼是基于一個(gè)相關(guān)的碼字表的。其特征在于該方法包括以下步驟a)創(chuàng)建具有樹形路徑(T_PTH)和分支(B)的一個(gè)樹,b)對(duì)一個(gè)接收的序列(SQr)進(jìn)行解碼,所述步驟還包括以下子步驟1)通過計(jì)算后繼分支(B)的第一累積度量(CM_LPTH)來擴(kuò)展該樹中的最佳樹形路徑(BT_PTH),2)選擇相應(yīng)于該最佳樹形路徑(BT_PTH)的碼字(CWDi),并保存路徑(PTH)中的相應(yīng)的數(shù)據(jù),該相應(yīng)的數(shù)據(jù)包括第二累積度量(CM_STCK),3)按照該已保存路徑的第二累積度量(CM_STCK)對(duì)該已保存路徑進(jìn)行重新排序,4)對(duì)頂端路徑(TOP_PTH)測(cè)試先驗(yàn)條件,并且如果該先驗(yàn)條件被驗(yàn)證,就輸出所述頂端路徑,否則返回所述擴(kuò)展子步驟。
      文檔編號(hào)H03M13/41GK1593013SQ02822413
      公開日2005年3月9日 申請(qǐng)日期2002年11月13日 優(yōu)先權(quán)日2001年11月13日
      發(fā)明者C·拉米, L·梅哈 申請(qǐng)人:皇家飛利浦電子股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1