TWI500274B - 熵編碼及解碼裝置與方法、和相關電腦程式 - Google Patents

熵編碼及解碼裝置與方法、和相關電腦程式 Download PDF

Info

Publication number
TWI500274B
TWI500274B TW100132443A TW100132443A TWI500274B TW I500274 B TWI500274 B TW I500274B TW 100132443 A TW100132443 A TW 100132443A TW 100132443 A TW100132443 A TW 100132443A TW I500274 B TWI500274 B TW I500274B
Authority
TW
Taiwan
Prior art keywords
code
alphabetic
sequence
entropy
individual
Prior art date
Application number
TW100132443A
Other languages
English (en)
Other versions
TW201230695A (en
Inventor
Detlev Marpe
Heiko Schwarz
Thomas Wiegand
Tung Nguyen
Original Assignee
Fraunhofer Ges Forschung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Ges Forschung filed Critical Fraunhofer Ges Forschung
Publication of TW201230695A publication Critical patent/TW201230695A/zh
Application granted granted Critical
Publication of TWI500274B publication Critical patent/TWI500274B/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4081Static prefix coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • H03M7/6029Pipelining
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/607Selection between different types of compressors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

熵編碼及解碼裝置與方法、和相關電腦程式 發明領域
本發明係有關於熵編碼及解碼且可應用在諸如視訊及音訊壓縮用途。
一般而言,熵編碼可視為最通俗的無損耗資料壓縮形式。無損耗壓縮針對表示具有比較原先資料表示型態所需位元具有更少位元但無資料損耗的離散資料。離散資料可以文字、圖形、影像、視訊、音訊、語音、傳真、醫療資料、氣象資料、財務資料、或任何其它形式數位資料之形式呈現。
於熵編碼中,潛在離散資料來源的特定高階特性經常被忽略。結果,任何資料來源被視為以來源符碼序列表示,具有給定m元字母表之值,且係以相對應的(離散的)機率分布{p 1 ,...,p m }為其特徵。於此等摘要設定中,以預期碼字組長度表示之任何熵編碼方法下限(以每個符碼之位元為單位)係以熵給定
霍夫曼(Huffman)代碼及算術代碼為可估算熵極限(就某種意義而言)的實際代碼之眾所周知的實例。針對固定機率分布,相當容易組成霍夫曼代碼。霍夫曼代碼之最引人注目的性質為可藉運用可變長度代碼(VLC)表而有效地具體實現。但當處理時間各異的來源統計資料亦即變化中的符碼機率時,就演算法複雜度及就具體實現成本兩方面而言,相當需要調整霍夫曼代碼及其相對應的VLC表。又,於具有pk >0.5優勢字母表值之情況下,相對應的霍夫曼代碼(未使用任何字母表延長,諸如掃描長度編碼)之冗餘可能相當大。霍夫曼代碼之另一項缺點為於處理較高次冪的機率模型化之情況下,可能要求多個VLC表集合。另一方面,算術編碼雖然實質上比VLC複雜,但當因應處理適應性及較高次冪的機率模型化以及因應處理高度扭斜機率分布情況時卻提供更為一致性且更適當的處理。實際上,此項特性基本上係來自於下述事實的結果:算術編碼至少在構思上以或多或少直捷方式提供一種機制來將機率估值之任何給定值對映至結果所得碼字組之一部分。被提供以此種介面,算術編碼允許一方面,機率模型化工作與機率估算工作間俐落地分開,而另一方面,允許實際熵編碼,亦即符碼對映至碼字組。
算術編碼及VLC編碼的替代之道為PIPE編碼。更明確言之,PIPE編碼器中,單元區間係被區劃成為不相連接的機率區間之小集合,用以沿隨機符碼變數之機率估值管線化編碼處理。依據此一區劃,具有任意字母表大小之一輸入離散來源符碼序列可對映至一字母表符碼序列,及各個字母表符碼係分配給一個特定機率區間,該機率區間又轉而藉一特別專用熵編碼方法編碼。各個區間係由一個固定機率表示,機率區間區劃熵(PIPE)編碼方法可基於單純可變對可變長度代碼之設計及應用。機率模型化可以是固定性或適應性。但雖然PIPE編碼器係比算術編碼顯著不複雜,但仍具有比VLC編碼更高的複雜度。
因此有利地係有一種熵編碼方案,其允許一方面編碼複雜度與另一方面壓縮效率間的更佳折衷,即便比較已經組合算術編碼及VLC編碼二者的長度之PIPE編碼時亦復如此。
如此,本發明之目的係提供可滿足前述要求,亦即允許一方面編碼複雜度與另一方面壓縮效率間的更佳折衷的熵編碼構思。
此一目的係藉如申請專利範圍第1或23項之裝置、如申請專利範圍第45或46項之方法、及如申請專利範圍第47項之電腦程式達成。
本發明係基於下述構想,依據PIPE編碼之分類特徵,字母表符碼係依據其機率分布估值而在多個特化熵編/解碼器間分布,除了PIPE編碼之該分類特徵外,藉由提供又一分類階段,可達成一方面編碼複雜度與另一方面壓縮效率間之較佳折衷,依據該又一分類階段,欲編碼之來源符碼係細分成接受VLC編碼之一第一子串流,及接受PIPE編碼之一第二子串流,該第二子串流係以PIPE編碼器之符碼字母表表示,亦即表示為一字母表符碼序列。藉此辦法,具有適當符碼機率分布的來源符碼,亦即適合利用VLC編碼有效地編碼之機率分布而不具有前文於本發明說明書之引言部分摘述的缺點,該來源符碼適合歸類為VLC編碼符碼,而其它符碼可視為PIPE編碼符碼且接受PIPE編碼,PIPE編碼的編碼複雜度係高於VLC編碼,但有較佳壓縮效率依據本發明之一實施例,甚至可能將語法元素分解成個別整數個來源符碼,其中一者係視為VLC編碼符碼處理,而另一者係視為PIPE編碼符碼處理。
本發明之較佳構面為所揭示之申請專利範圍附屬項之主旨。
圖式簡單說明
本發明之較佳實施例將參考附圖說明如下,附圖中第1圖顯示依據一實施例熵編碼裝置之方塊圖;第2圖顯示依據一實施例熵解碼裝置之方塊圖;第3圖顯示可用在第1圖之依據一實施例PIPE編碼器之方塊圖;第4圖顯示可用在第2圖之依據一實施例,適用以解碼藉第3圖之PIPE編碼器所產生之位元串流的PIPE解碼器之方塊圖;第5圖顯示一示意圖,例示說明依據一實施例具多工化部分位元串流之資料封包;第6圖顯示一示意圖,例示說明依據又一實施例具使用固定大小節段之替代分節之資料封包;第7圖顯示運用部分位元串流交插之依據一實施例PIPE編碼器之方塊圖;第8圖顯示一示意圖,例示說明依據一實施例針對在第7圖之編碼器端之一碼字組緩衝器狀態實例;第9圖顯示運用部分位元串流交插之依據一實施例PIPE解碼器之方塊圖;第10圖顯示使用單一碼字組集合之運用部分位元串流交插之依據一實施例PIPE解碼器之方塊圖;第11圖顯示運用定長位元序列交插之依據一實施例PIPE編碼器之方塊圖;第12圖顯示一示意圖,例示說明依據一實施例針對在第11圖之編碼器端之一通用位元緩衝器狀態實例;第13圖顯示運用定長位元序列交插之依據一實施例PIPE解碼器之方塊圖;第14圖顯示一線圖用以例示說明假設於(0,0.5]有均一機率分布,最佳機率區間離散化成為K=4區間;第15圖顯示一示意圖,例示說明針對p=0.38之LPB機率之二元事件樹及藉霍夫曼演算法所得的相關聯之可變長度代碼;第16圖顯示一線圖,給定表分錄之最大數目Lm 針對最佳代碼C,從此線圖可收集得相對位元率增加ρ (p ,C );第17圖顯示一線圖,例示說明針對理想上最佳機率區間區劃成為K=12區間及使用V2V代碼之實際設計,有最大數目Lm =65表分錄之比率增加;第18圖顯示一示意圖,例示說明用以將三元選擇樹轉換成完整二元選擇樹之實例;第19圖顯示依據一實施例包含編碼器(左半)及解碼器(右半)之系統之方塊圖;第20圖顯示依據一實施例熵編碼裝置之方塊圖;第21圖顯示依據一實施例熵解碼裝置之方塊圖;第22圖顯示依據又另一實施例熵編碼裝置之方塊圖;第23圖顯示一示意圖,例示說明依據一實施例針對在第22圖之編碼器端之一通用位元緩衝器狀態實例;第24圖顯示依據本案之又一實施例熵解碼裝置之方塊圖。
後文就圖式說明本案之若干實施例之前,各幅圖間使用相同元件符號來標示此等圖式中相等的或相當的元件,而先前任一圖式所呈示的此等元件之描述將也適用於隨後任一幅圖,只要前文描述與目前圖式之描述不相牴觸即可。
第1圖顯示依據本案之一實施例之熵編碼裝置。該裝置包含細分器100、VLC編碼器102、及PIPE編碼器104。
細分器100係經組配來將一來源符碼序列106細分成來源符碼之第一子序列108及來源符碼之第二子序列110。VLC編碼器102具有其輸入端連結至細分器100之第一輸出端,且係經組配來將第一子序列108之來源符碼逐符碼地轉換成形成第一位元串流112之碼字組。VLC編碼器102可包含詢查表,且個別地使用來源符碼作為指數來依每個來源符碼,在詢查表中詢查一個個別碼字組。VLC編碼器輸出後述碼字組,且以子序列110中隨後的來源符碼進行來輸出一序列碼字組,其中各個碼字組係與子序列110內部的確切一個來源符碼相關聯。碼字組可具不等長度,且可定義使得未形成任何碼字組具有任何其它碼字組前綴。此外,詢查表可以是靜態。
PIPE編碼器104具有其輸入端連結至細分器100之第二輸出端,且係經組配來編碼以字母表符碼序列形式表示的來源符碼之第二子序列110,且包含分配器114,其係經組配來基於該字母表符碼序列之先前字母表符碼內部所含資訊,將個別字母表符碼可假設的可能值中之一個機率分布估值之測量值分配給該字母表符碼序列之各個字母表符碼;多個熵編碼器116,其各自係經組配來將前傳至個別熵編碼器的字母表符碼轉成個別第二位元串流118;及一選擇器120,其係經組配來將第二子序列110之各個字母表符碼前傳至該等多個熵編碼器116中之一選定者,該選擇係取決於前述分配給個別字母表符碼之針對該機率分布估值之測量值。來源符碼與字母表符碼間之關聯性可以是各個字母表符碼係與子序列110的恰一個來源符碼獨特地相關聯,來連同可能彼此緊接的該字母表符碼序列之可能其它字母表符碼而表示此一個來源符碼。
容後詳述,來源符碼序列106可以是可剖析位元串流之一語法元素序列。該可剖析位元串流例如可以可擴充或不可擴充方式表示視訊及/或音訊內容,語法元素表示例如變換係數層級、移動向量、動畫參考指數、定標因數、音訊封包能值等。特定言之,語法元素可以是不同型別,或具相同型別語法元素之不同類別,例如在可剖析位元串流內部具有相同定義但係有關其不同部分,諸如不同圖像、不同巨集區塊、不同頻譜組件等;而不同型別的語法元素可在該位元串流內部具有不同定義,諸如表示移動預測殘差的移動向量與表示變換係數層級之語法元素序列具有不同定義。
細分器100可經組配來依語法元素之型別而執行細分。換言之,細分器100可前傳第一型別組群之語法元素至第一子序列108,及前傳與第一組群不同的第二型別組群之語法元素至第二子序列110。由細分器100所執行的細分可設計成在子序列108內部之語法元素的符碼統計資料係適合用於藉VLC編碼器102作VLC編碼,亦即儘管使用VLC編碼及有關其適合某些符碼統計資料之合宜性限制,如本案說明書引言部分摘述,但前述確實導致幾乎最小值的可能熵。另一方面,細分器100可將全部其它語法元素前傳至第二子序列110,使得具有符碼統計資料不適用於VLC編碼的此等語法元素係藉更為複雜但就壓縮比而言較為有效率的PIPE編碼器104編碼。
由於也是下列各圖更細節描述實施例之情況,PIPE編碼器104可包含符碼化器122,其係經組配來個別地對映第二子序列110之各個語法元素至字母表符碼之一個別部分序列,一起形成前述字母表符碼序列124。換言之,例如若子序列110之來源符碼已經以字母表符碼之個別部分序列表示,則可能不存在符碼化器122。符碼化器122例如用於下列情況為優異,子序列110內部之來源符碼係屬不同字母表,且特別字母表具有不同數目可能的字母表符碼。換言之,於此種情況下,符碼化器122可協調到達子串流110內部的符碼字母表。符碼化器122例如可具體實現為二進制化器,其係經組配來二進制化到達子串流110內部的符碼。
如前述,語法元素可屬不同型別。如此對子串流110內部的語法元素亦為真。然後符碼化器122可經組配來針對不同型別的語法元素,使用不同的符碼化對映方案,諸如二進制方案而執行子串流110之語法元素的個別對映。特定二進制方案係呈現於後文描述,諸如一元二進制方案、順序0或順序1(舉例)之exp-Golomb二進制方案、或截頭二進制方案、截頭及重新排序之exp-Golomb順序0二進制方案、或非系統性二進制方案。
據此,熵編碼器116可經組配來對二元字母表操作。最後,須注意符碼化器122可視為PIPE編碼器104本身的一部分,如第1圖所示。但另外,二進制化器可視為在PIPE編碼器外部。
類似於後述,須注意分配器114雖然顯示為串聯在符碼化器122與選擇器120間,但另外可視為連結在符碼化器124之一輸出端與選擇器120之第一輸入端間,而分配器114之輸出端係連結至選擇器120之另一輸入端,如後文參考第3圖說明。實際上,分配器114將各個字母表符碼結合前述機率分布估值之測量值。
至於考慮第1圖之熵編碼裝置之輸出,係由VLC編碼器102輸出的第一位元串流112及由多個熵編碼器116輸出的多個第二位元串流118組成。容後詳述,全部此等位元串流可並列發送。另外,位元串流可利用交插器128而交插成共用位元串流126。第22至24圖之實施例顯示具有此種位元串流交插的實例。進一步如第1圖所示,PIPE編碼器104本身可包含其本身的交插器130來將多個第二位元串流118交插入共用PIPE編碼位元串流132。此等交插器之可能性係就第5至13圖所述從下列實施例中導出。位元串流132及位元串流112於並列組態可表示第1圖之熵編碼裝置之輸出。另外,另一交插器134可交插二位元串流,於該種情況下,交插器130及134可形成一個二階段式交插器128的兩個階段。
如前文已述,細分器100可執行逐語法元素的細分,亦即細分器100在其上操作的來源符碼可以是整個語法元素,或換言之,細分器100可以語法元素為單位操作。
但依據另一實施例,第1圖之熵編碼裝置可包含分解器136來將在可剖析位元串流138內部之語法元素個別地分解成載入細分器100的來源符碼序列106之來源符碼中之一或多者。更明確言之,分解器136可經組配來藉將各個語法元素個別地分解成個別整數個來源符碼而將語法元素序列138轉成來源符碼序列106。整數可因語法元素而異。更明確言之,部分語法元素甚至可藉分解器136而維持不變,而其它語法元素係分解成恰兩個或至少兩個來源符碼。細分器100可經組配來將此等已分解語法元素中之一個來源符碼前傳至來源符碼之第一子序列108,及將相同已分解語法元素中之另一個來源符碼前傳至來源符碼之第二子序列110。如前述,位元串流138內部之語法元素可屬不同型別,及分解器136可經組配來依語法元素的型別而執行個別分解。分解器136較佳執行語法元素之個別分解使得存在有針對全部語法元素為共通的、稍後用在解碼端的、從整數個來源符碼至個別語法元素之預定獨特的顛倒對映關係。舉例言之,分解器136可經組配來將在可剖析位元串流138的語法元素z分解成兩個來源符碼x及y,使得z=x+y、z=x-y、z=x‧y、或z=x:y。藉此方式,細分器100可將語法元素分解成兩個組分亦即來源符碼序列106之來源符碼,其中之一者係適用於考慮壓縮效率的VLC編碼,諸如x;而其中之另一者係不適合VLC編碼,因此係傳送至第二子序列110而非第一子序列108,諸如y。由分解器136所使用的分解無需為雙射(bijective)。但如前述,應存在有顛倒對映關係,使得在其中對可能分解的語法元素作獨特取回,若該分解非為雙射,則分解器136可能在其中作選擇。
分解器136及符碼化器122可能皆存在。於此種情況下,符碼化器122可以是分解器136之一部分,於該種情況下,第二子序列110之來源符碼轉成已經呈由字母表符碼表示的格式,及熵編碼器116在其上操作的字母表。
業已如前文描述一個熵編碼裝置之實施例後,熵解碼裝置之實施例將參考第2圖描述。第2圖之熵解碼裝置包含VLC解碼器200及PIPE解碼器202。VLC解碼器200係經組配來從第一位元串流206逐碼重構第一子序列204之來源符碼。第一位元串流206係等於第1圖之位元串流112,只要有關第1圖之子序列108之敘述,同等也適應於子序列204。PIPE解碼器202係經組配來重構來源符碼之第二子序列208,係以一字母表符碼序列形式表示,及包含多個熵解碼器210、分配器212、及選擇器214。多個熵解碼器210係經組配來將第二位元串流216中之個別一者轉成該字母表符碼序列之字母表符碼。分配器212係經組配來基於含在該字母表符碼序列之先前已重構的字母表符碼內部之資訊,將個別字母表符碼可假定的可能值中之一機率分布估值之測量值分配給表示欲重構的來源符碼之第二子序列208之該字母表符碼序列之各個字母表符碼。為了達成此項目的,分配器212可串聯在選擇器214之輸出端與其輸入端間,而選擇器214的其它輸入端則有熵解碼器210之輸出端個別連結其上。選擇器214係經組配來從多個熵解碼器210之一擇定者取回該字母表符碼序列之各個字母表符碼,該項選擇係取決於分配給個別字母表符碼之測量值。換言之,選擇器214連同分配器212操作來以藉勘察含在該字母表符碼序列之先前字母表符碼內部之資訊所得的熵解碼器210中之順序而取回藉熵解碼器210所得的字母表符碼。又更換言之,分配器212及選擇器214可從字母表符碼至字母表符碼來重構字母表符碼的原先順序。連同預測下一個字母表符碼,分配器212藉由使用在熵解碼器210中由選擇器214所選擇者來取回此一字母表符碼的實際值,可針對個別字母表符碼決定前述機率分布估值之測量值。又更明確言之,容後詳述,PIPE解碼器202可經組配來回應於針對字母表符碼循序地請求的字母表符碼請求,而重構以字母表符碼序列表示的來源符碼子序列208;及分配器212可經組配來針對表示欲重構的來源符碼之第二子序列(208)之該字母表符碼序列之一字母表符碼的各個請求,分配個別字母表符碼可假設的可能值中之前述機率分布估值之測量值。據此,選擇器214可經組配來針對表示欲重構的來源符碼之第二子序列(208)之該字母表符碼序列之一字母表符碼的各個請求,從該等多個熵解碼器210中之一擇定者中,取回該字母表符碼序列之個別字母表符碼,該項選擇係取決於分配給個別字母表符碼之個別請求的該測量值。一方面在解碼端之請求,及另一方面在編碼端之資料流或編碼將就第4圖以進一步細節摘述。
因來源符碼之第一子序列214及來源符碼之第二子序列208常形成來源符碼之一個共用序列210,選擇性地,第2圖之熵解碼裝置可包含重組器220,其係經組配來重組第一子序列204及第二子序列208來獲得來源符碼之共用序列218。此一來源符碼之共用序列218獲得第1圖序列106之重構。
依據前文就第1圖所示描述,第一子序列204及第二子序列208之來源符碼可以是可剖析位元串流之語法元素。於此種情況下,重組器220可經組配來以由界定語法元素中之順序的某個剖析規則所規定的順序,藉交插透過第一子序列204及第二子序列208而到達的來源符碼來重構語法元素序列218之此一可剖析位元串流。更明確言之,如前述,語法元素可屬不同型別,及重組器220可經組配來透過子串流204從VLC解碼器200取回或請求第一型別組群之語法元素,及透過子串流208從PIPE解碼器202取回或請求第二型別組群之語法元素。據此,每當恰在前述的剖析規則指出在第一群組內部之一型別的語法元素係排在下一列時,重組器202將子序列204之一實際來源符碼插入共用序列218,否則即來自子序列208。
同理,PIPE解碼器202可包含連結在選擇器214之輸出端與重組器220之輸入端間之解符碼化器222。類似前文參考第1圖之描述,解符碼化器222可視為在PIPE解碼器202外部,且另外,甚至可配置在PIPE解碼器202後方,亦即在重組器220之輸出端。解符碼化器222可經組配來以字母表符碼之部分序列為單位,將選擇器214所輸出的字母表符碼序列224對映至來源符碼,亦即子序列208之語法元素。類似重組器220,解符碼化器222知曉有關可能的字母表符碼之部分序列組成。更明確言之,解符碼化器222可分析從選擇器214目前接收的字母表符碼來確定此等晚近接收的字母表符碼是否獲得與個別語法元素之個別值相關聯之有效字母表符碼之部分序列,或確定是否非屬此種情況,及其次遺漏哪個字母表符碼。又更換言之,解符碼化器222隨時知曉是否須從選擇器214接收額外字母表符碼來完成個別語法元素的接收,及據此,知曉由選擇器214所輸出的字母表符碼之個別一者屬於哪個語法元素。為了達成此項目的,解符碼化器222可使用針對不同型別的語法元素為相異的符碼化(解)對映方案。同理,分配器212知曉欲藉選擇器214從任何熵解碼器210取回的目前字母表符碼與該等語法元素之個別一者的關聯性,且可據此,亦即取決於相關聯之語法元素型別,設定此一字母表符碼之前述機率分布估值之測量值。又復,分配器212可在屬於目前字母表符碼之相同部分序列的不同字母表符碼間做區別,且可針對此等字母表符碼差異地設定機率分布估值之測量值。就此方面而言之細節容後詳述。如文中所述,分配器212可經組配來分配脈絡給字母表符碼。分配可取決於語法元素型別及/或目前語法元素立字母表符碼部分序列內部位置。一旦分配器212已經分配一脈絡給欲藉選擇器214從任何熵解碼器210取回的目前字母表符碼,因各個脈絡具有與其相關聯之估值測量值,故字母表符碼特性上可具有與其相關聯之機率分布估值之測量值。又,脈絡及其相關聯之機率分布估值之測量值可依據至目前為止已經從熵解碼器210取回的個別脈絡之字母表符碼的實際統計資料調整。就此方面而言之細節容後詳述。
類似前文第1圖之討論,前述在語法元素中之子序列204及208之來源符碼間的對應關係可能並非一對一對應關係。反而,語法元素已經分解成整數個來源符碼,數目甚至在語法元素間改變,但總而言之針對一個語法元素係大於1。於此種情況下,第2圖之熵解碼裝置可包含組合器224,其係經組配來重做藉第1圖之分解器136所執行的分解。更明確言之,組合器224可經組配來從序列218之來源符碼組合語法元素序列226,或若遺漏重組器220,則藉個別地組合來自一個別整數個來源符碼之各個語法元素可組合子序列204及208,整數個來源符碼之來源符碼中之一者係屬於第一子序列204,而相同語法元素的整數個來源符碼之來源符碼中之另一者係屬於第二子序列208。藉此方式,某些語法元素已在編碼器端分解,因而將適合VLC解碼的組分與必須送至PIPE解碼路徑的其餘成分分開。類似前文討論,語法元素可屬不同型別,及該組合器224係經組配來依據該等語法元素型別而執行個別的組合動作。更明確言之,組合器224可經組配來藉邏輯式或數學式地組合個別語法元素之整數個來源符碼而獲得個別語法元素。舉例言之,組合器224可經組配來針對各個語法元素施加加、減、除或乘至一個語法元素之第一及第二來源符碼。
熵解碼操作器可包含選擇性的組合器224及解符碼化器222。類似前文第1圖之討論,於此種情況下,解符碼化器222可以是組合器224的一部分。
又,也如前文就第1圖之描述,第2圖之熵解碼裝置可經組配來分開地接收第一位元串流206以及多個第二位元串流216,或藉由交插位元串流228而以交插形式接收。於後述情況下,第2圖之熵解碼裝置可包含解交插器230,其係經組配來將交插位元串流228解交插而一方面獲得第一位元串流206,及另一方面獲得第二位元串流216。類似前文第1圖之討論,解交插器230可經細分成兩個階段,亦即用以將交插位元串流228解交插成為二部分,亦即一方面位元串流206及另一方面第二位元串流216之交插形式234的解交插器232;及用以將後述位元串流234解交插來獲得個別位元串流216之解交插器236。
如此,第1及2圖顯示一方面熵編碼裝置及另一方面,用以解碼藉第1圖之熵編碼裝置所得編碼結果之熵解碼裝置。有關第1及2圖所示許多元件細節將參考其它圖式以更多細節說明。據此,於後文說明中將參考此等細節,只要此等細節係可於前述實施例中分開體現,則此等細節應視為也個別地適用於第1及2圖之實施例。在此只就交插器及解交插器132及234作若干額外告示。更明確言之,當位元串流必須多工化成為一個通道來發射時,位元串流112及118之交插可能有利。於此種情況下,可有利地交插一方面VLC位元串流112及另一方面PIPE編碼位元串流118,因而遵守某些須滿足的條件,諸如遵守某些最大解碼延遲。又更換言之,一方面語法元素及來源符碼係在解碼端可取回,而另一方面依據其在可剖析位元串流的位置的時間上相對位移,可能需要兩個時間的相對時間位移係不超過某個最大延遲。解決此一問題之許多替代之道容後詳述。此等可能中之一者涉及熵編碼器116為可變長度編碼器型別,其係經組配來對映字母表符碼序列至碼字組,及熵解碼器210來做逆對映。VLC位元串流112及PIPE位元串流118之碼字組可經但非必要經選擇使得此等位元串流中之任一者的碼字組皆非為其它位元串流中之任一者的任何碼字組的前綴,使得碼字組邊界在解碼器端維持可獨特地決定。總而言之,交插器128可經組配來針對在第一位元串流112及第二位元串流118內部的碼字組,以循序順序保有與緩衝一碼字組分錄序列,該順序係取決於下述順序,藉選擇器120前傳給多個熵編碼器116的字母表符碼序列124之字母表符碼結果導致新字母表符碼序列的起點係對映於在個別熵編碼器116之個別碼字組,而第二位元串流108之新來源符碼係藉VLC編碼器102而予對映。換言之,交插器128係以分別在子串流108及來源符碼串流106內部之順序,將位元串流112之碼字組以從其藉VLC編碼所得的來源符碼順序,插入共用位元串流126。由熵編碼器116所輸出的碼字組係插入共用位元串流126內部,在VLC位元串流112之連續碼字組間。由於藉分配器114及選擇器120對字母表符碼的PIPE編碼分類,熵編碼器116之碼字組各自具有編碼其中的位元串流110之不同來源符碼的字母表符碼。PIPE編碼位元串流118在共用位元串流126內部相對於彼此與相對於位元串流112之VLC碼字組的位置分別係藉在各個碼字組編碼的第一字母表符碼決定,亦即在時間上為最舊者。在字母表符碼串流124中編碼成位元串流118之碼字組的此等一次字母表符碼之順序決定在共用位元串流126內部的位元串流118之碼字組相對於彼此之順序;相對於位元串流112之VLC碼字組之順序;編碼成位元串流118之碼字組的此等一次字母表符碼所屬的來源符碼決定任何位元串流118之個別碼字組係將定位在位元串流112之哪些連續碼字組間。更明確言之,任何位元串流118之個別碼字組將定位在哪些個別碼字組之連續VLC碼字組係為下述碼字組,依據未經細分的來源符碼串流106之原先順序,子串流110之來源符碼欲定位在其間的該等碼字組,該來源符碼為編碼成位元串流118之碼字組的個別一次字母表符碼所屬的來源符碼。交插器128可經組配來以循序順序移開載入前述碼字組分錄的碼字組來獲得交插碼字組之共用位元串流126。如前文已述,熵編碼器116可經組配來將其碼字組循序地載入針對個別熵編碼器116所保留的碼字組分錄,及選擇器120可經組配來以維持其中第一子序列108及第二子串流110的來源符碼在來源符碼序列106內部交插的順序而前傳表示第二子串流110之來源符碼的字母表符碼。
可提供額外措施來因應下述情況,熵編碼器116中之某些者罕見使用因而須耗用長時間才能在該極其罕用的熵編碼器116內部獲得有效碼字組。此等措施之實例以進一步細節描述如下。更明確言之,於此種情況下,交插器128連同熵編碼器116可經組配來分別地清理(flush)至目前為止其所收集的字母表符碼及已經載入前述碼字組分錄的碼字組,而其組配方式使得此種清理程序之時間可在解碼端預測或仿真。
在解碼端,解交插器230可以反向意義動作:依據前述剖析方案,每當欲解碼的下一個來源符碼為VLC編碼符碼時,共用位元串流228內部之目前碼字組被視為VLC碼字組且在位元串流206內部前傳給VLC解碼器200。另一方面,每當屬於子串流208之PIPE編碼符碼中之任一者的任一個字母表符碼為一次字母表符碼,亦即需要位元串流216之個別一者的碼字組藉個別熵解碼器210而對映至個別字母表符碼序列時,共用位元串流228之目前碼字組係被視為PIPE編碼碼字組,及前傳給個別熵解碼器210。下個碼字組邊界的檢測,亦即下個碼字組從該碼字組剛前傳至解碼器200及202中之任一者的該端延長至在輸入交插位元串流228內部的其末端的檢測可被延宕;且係在知曉解碼器200及202乃此一下個碼字組的專用接收方之情況下依據前摘規則進行:基於此一知識,由接收方解碼器所使用的碼簿為已知,且個別碼字組為可檢測。另一方面,若碼簿係設計成碼字組邊界為可檢測而未預先知曉接收方解碼器200及202,則可並列執行碼字組分開。總而言之,由於交插故,來源符碼係在解碼器以熵解碼形式獲得,亦即在合理延遲以來源符碼之正確順序獲得。
業已描述前述針對熵編碼裝置及抑或熵解碼裝置之實施例後,其次將描述針對前述PIPE編碼器及PIPE解碼器之進一步細節實施例。
依據一實施例之PIPE編碼器係例示說明於第3圖。同樣可應作為第1圖之PIPE編碼器。PIPE編碼器無損耗地將來源符碼1之一串流轉成二或多個部分位元串流12之集合各個來源符碼可與一或多個類別或型別之集合中之一類別或型別相關聯。舉個實例,該等類別可載明來源符碼之型別。於混成視訊編碼脈絡中,分開類別可與巨集區塊編碼模式、區塊編碼模式、參考圖像指數、移動向量差、細分旗標、編碼區塊旗標、量化參數、變換係數層級等相關聯。於其它應用領域諸如音訊、語音、文字、文件、或一般資料編碼中,來源符碼的不同分類係屬可能。
一般而言,各個來源符碼可具有有限或可數無限數值集合中之一值,此處針對不同來源符碼類別,可能的來源符碼值集合可不同。為了減低編碼及解碼演算法的複雜度,及針對不同來源符碼及來源符碼類別允許通用編碼及解碼設計,來源符碼1係轉成二元決策的有序集合,此等二元決定然後藉單純二元編碼演算法處理。因此二進制化器2將各個來源符碼1值雙射地對映至一箱(bin)3序列(或串)。箱3序列表示有序二元決策集合。各個箱3或二元決策可具有一集合兩個值中之一個值,例如值0及1中之一者。二進制方案針對不同來源符碼類別可以不同。針對特定來源符碼類別的二進制方案可取決於可能的來源符碼值集合及/或針對該特定類別之來源符碼的其它性質。表1例示說明針對可數無限集合之三個二進制方案實例。針對可數無限集合之二進制方案也可應用於符碼值之有限集合。特別係針對符碼值之大型有限集合,無效率(因未使用的箱序列所致)可忽略,但此種二進制方案的通用性就複雜度及記憶體要求方面提供優勢。針對符碼值之小型有限集合,經常較佳(就編碼效率而言)係調整二進制方案適應可能的符碼值數目。表2例示說明針對8值有限集合之三個二進制方案實例。針對有限集合的二進制方案可從針對可數無限集合之二進制方案導出,導出方式係以箱序列之有限集合表示無冗餘代碼(及可能重新排序箱序列)之方式來修改若干箱序列。舉例言之,表2中之截頭一元二進制方案係藉針對通用一元二進制的來源符碼7修改箱序列而形成(參考表1)。表2中順序0之截頭且經重新排序的Exp-Golomb二進制係藉針對通用Exp-Golomb順序0二進制的來源符碼7修改箱序列而形成(參考表1),及藉重新排序箱序列(針對符碼7之截頭箱序列係指定給符碼1)而形成。至於符碼之有限集合,也可能使用非系統性/非通用二進制方案,如表2末欄之例示說明。
藉二進制化器2所形成的箱序列中之各個箱3係以循序順序饋進參數分配器4。參數分配器將一或多個參數之一集合分配給各個箱3,且輸出該箱與相關聯之參數5集合。在編碼器及解碼器參數集合係以確切相同方式決定。參數集合可由下列參數中之一或多者組成:
-針對目前箱的兩個可能箱值中之一者的機率估值之測量值,
-針對目前箱之較非可能或較大可能箱值的機率估值之測量值,
-載明兩個可能箱值中之哪一者表示針對目前箱之較非可能或較大可能箱值的估值之一識別符,
-相關聯之來源符碼類別
-針對相關聯之來源符碼重要度之測量值,
-針對相關聯之符碼所在位置之測量值(例如於時、空、或體積資料集合中),
-針對箱或相關聯之來源符碼載明通道代碼保護之一識別符,
-針對箱或相關聯之來源符碼載明加密方案之一識別符,
-載明相關聯之符碼類別之一識別符,
-於箱序列中針對相關聯之來源符碼的箱號碼。
於一個實施例中,參數分配器4將各個箱3、5與針對目前箱的兩個可能箱值中之一者的機率估值之測量值相關聯。參數分配器4將各個箱3、5與針對目前箱之較非可能或較大可能箱值的機率估值之測量值、及載明兩個可能箱值中之哪一者表示針對目前箱之較非可能或較大可能箱值的估值之一識別符相關聯。須注意針對目前箱之較非可能或較大可能箱值的機率與載明兩個可能箱值中之哪一者表示針對目前箱之較非可能或較大可能箱值的估值之該識別符針對兩個可能箱值中之一者的機率乃相等測量值。
於又一個實施例中,參數分配器4將各個箱3、5與針對目前箱的兩個可能箱值中之一者的機率估值之測量值及一或多個額外參數(可以是前文列舉參數中之一或多者)相關聯。於又一個實施例中,參數分配器4將各個箱3、5與針對目前箱之較非可能或較大可能箱值的機率估值之測量值、及載明兩個可能箱值中之哪一者表示針對目前箱之較非可能或較大可能箱值的估值之一識別符、及一或多個額外參數(可以是前文列舉參數中之一或多者)相關聯。
於一個實施例中,參數分配器4基於一或多個業已編碼的符碼集合而決定前述機率測量值(針對目前箱的兩個可能箱值中之一者的機率估值之測量值、針對目前箱之較非可能或較大可能箱值的機率估值之測量值、載明兩個可能箱值中之哪一者表示針對目前箱之較非可能或較大可能箱值的估值之一識別符)中之一或多者。用來決定機率測量值之編碼符碼可包括相同符碼類別之一或多個已編碼符碼、相對應於鄰近空間性及/或時間性位置(關係與目前來源符碼相關聯之資料集合)之資料集合(諸如樣本區塊或群組)的相同符碼類別之一或多個已編碼符碼、或相對應於鄰近空間性及/或時間性位置(關係與目前來源符碼相關聯之資料集合)之資料集合的不同符碼類別之一或多個已編碼符碼。
具相關聯之參數5集合(其為參數分配器4之輸出)之各個箱係饋。至箱緩衝器選擇器6。箱緩衝器選擇器6可能基於輸入箱值及相關聯之參數5而修改輸入箱之值5,及與可能的修改值一起將輸出箱7饋至二或多個箱緩衝器8中之一者。輸出箱7發送至其中的箱緩衝器8係基於輸入箱值5及/或相關聯之參數值5決定。
於一個實施例中,箱緩衝器選擇器6並不修改箱值,換言之,輸出箱7經常性具有輸入箱5的相同值。
於又一個實施例中,箱緩衝器選擇器6基於輸入箱值5及相關聯之針對目前箱的兩個可能箱值中之一者的機率估值之測量值而決定輸出箱值7。於一個實施例中,若針對目前箱的兩個可能箱值中之一者的機率估值之測量值係小於(或小於或等於)特定臨界值,則輸出箱值7係設定為等於輸入箱值5;若針對目前箱的兩個可能箱值中之一者的機率估值之測量值係大於或等於(或大於)特定臨界值,則輸出箱值7係經修改(亦即係設定為與輸入箱值相反)。於又一個實施例中,若針對目前箱的兩個可能箱值中之一者的機率估值之測量值係大於(或大於或等於)特定臨界值,則輸出箱值7係設定為等於輸入箱值5;若針對目前箱的兩個可能箱值中之一者的機率估值之測量值係小於或等於(或小於)特定臨界值,則輸出箱值7係經修改(亦即係設定為與輸入箱值相反)。於一個實施例中,針對兩個可能箱值之估算機率,臨界值係相對應於0.5之值。
於又一個實施例中,箱緩衝器選擇器6基於輸入箱值5及相關聯之針對目前箱的兩個可能箱值中之一者的機率估值之測量值而決定輸出箱值7。於一個實施例中,若該識別符載明兩個可能箱值中之第一者表示針對目前箱的較非可能(或較大可能)箱值,則輸出箱值7係設定為等於輸入箱值5;及若該識別符載明兩個可能箱值中之第二者表示針對目前箱的較非可能(或較大可能)箱值,則輸出箱值7係經修改(亦即係設定為與輸入箱值相反)。
箱緩衝器選擇器6可基於相關聯之針對目前箱的兩個可能箱值中之一者的機率估值之測量值而決定輸出箱值7所發送的箱緩衝器8。於一個實施例中,針對兩個可能箱值中之一者的機率估值之測量值的可能數值集合為有限,且箱緩衝器選擇器6含有一表,該表將恰一個箱緩衝器8與針對兩個可能箱值中之一者的機率估值之測量值之各個可能值相關聯,此處針對兩個可能箱值中之一者的機率估值之測量值之不同值可與相同箱緩衝器8相關聯。於又一個實施例中,針對兩個可能箱值中之一者的機率估值之測量值之可能值範圍係區劃成為多個區間,箱緩衝器選擇器6決定針對兩個可能箱值中之一者的機率估值之該目前測量值的區間指數,且箱緩衝器選擇器6含有一表,該表將恰一個箱緩衝器8與區間指數之各個可能值相關聯,此處區間指數之不同值可與相同箱緩衝器8相關聯。於較佳實施例中,具有針對兩個可能箱值中之一者的機率估值之相反測量值(相反測量值係表示機率估值P及1-P)的輸入箱5係饋進相同箱緩衝器8。於又一個實施例中,針對目前箱的兩個可能箱值中之一者的機率估值之測量值與一特定箱緩衝器的聯合係隨時間而調適,例如來確保所形成的部分位元串流具有相似的位元率。
箱緩衝器選擇器6可基於針對目前箱的兩個可能箱值中之一者的機率估值之相關聯測量值決定輸出箱7發送至其上之箱緩衝器8。於較佳實施例中,針對較非可能或較大可能箱值的機率估值之測量值的可能數值集合為有限,且箱緩衝器選擇器6含有一表,該表將恰一個箱緩衝器8與針對較非可能或較大可能箱值的機率估值之測量值之各個可能值相關聯,此處針對較非可能或較大可能箱值的機率估值之測量值之不同值可與相同箱緩衝器8相關聯。於又一個實施例中,針對較非可能或較大可能箱值的機率估值之測量值之可能值範圍係區劃成為多個區間,箱緩衝器選擇器6決定針對較非可能或較大可能箱值的機率估值之該目前測量值的區間指數,且箱緩衝器選擇器6含有一表,該表將恰一個箱緩衝器8與區間指數之各個可能值相關聯,此處區間指數之不同值可與相同箱緩衝器8相關聯。於又一個實施例中,針對較非可能或較大可能箱值的機率估值之測量值與一特定箱緩衝器的聯合係隨時間而調適,例如來確保所形成的部分位元串流具有相似的位元率。
二或多個箱緩衝器8各自係連結恰一個箱編碼器10,及各個箱編碼器係只連結一個箱緩衝器8。各個箱編碼器10從相關聯之箱緩衝器8讀取箱,及將箱序列9轉成碼字組11,其表示一位元序列。箱緩衝器8表示先進先出緩衝器;較晚(以循序順序)饋進箱緩衝器的箱不會在較早(以循序順序)饋進箱緩衝器的箱之前編碼。屬於特定箱編碼器10之輸出的碼字組11係寫至特定部分位元串流12。總編碼演算法將來源符碼1轉成二或多個部分位元串流12,此處部分位元串流數目係等於箱緩衝器及箱編碼器數目。於較佳實施例中,箱編碼器10將可變箱數9轉成可變位元數之碼字組11。前文及後文摘述PIPE編碼實施例的一項優點為箱的編碼可並列進行(例如用於機率測量值之不同群組),其縮短若干具體實現的處理時間。
PIPE編碼之另一項優點為藉箱編碼器10執行的箱編碼可針對不同參數集合5特別設計。更明確言之,針對估算機率之不同群組,箱編碼及編碼可以最佳化(就編碼效率及/或複雜度而言)。就一方面而言,如此允許比較具有相似編碼效率的算術編碼演算法,減低編碼/解碼複雜度。就另一方面而言,如此允許比較具有相似編碼/解碼複雜度的VLC編碼演算法,改良編碼效率。於一個實施例中,針對目前箱的兩個可能箱值5中之一者的機率估值測量值之不同組群,箱編碼器10具體實現不同編碼演算法(亦即箱序列至碼字組的對映)。於又一個實施例中,針對較非可能或較大可能箱值的機率估值測量值之不同組群,箱編碼器10具體實現不同編碼演算法。於又一個實施例中,針對不同通道保護代碼,箱編碼器10具體實現不同編碼演算法。於又一個實施例中,針對不同加密方案,箱編碼器10具體實現不同編碼演算法。於又一個實施例中,針對通道保護代碼與目前箱的兩個可能箱值5中之一者的機率估值測量值組群的不同組合,箱編碼器10具體實現不同編碼演算法。於又一個實施例中,針對通道保護代碼與目前箱的較非可能或較大可能箱值5的機率估值測量值組群的不同組合,箱編碼器10具體實現不同編碼演算法。於又一個實施例中,針對加密方案與目前箱的兩個可能箱值5中之一者的機率估值測量值組群的不同組合,箱編碼器10具體實現不同編碼演算法。於又一個實施例中,針對加密方案與目前箱的較非可能或較大可能箱值5的機率估值測量值組群的不同組合,箱編碼器10具體實現不同編碼演算法。箱編碼器10或箱編碼器中之一或多者可表示二元算術編碼引擎。於又一個實施例中,箱編碼器中之一或多者表示二元算術編碼引擎,其中從一給定箱緩衝器之代表性LPS/LPB機率p LPS 至一相對應的代碼區間寬度R LPS 之對映關係係使用查表而予實現,該相對應的代碼區間寬度R LPS 亦即二元算術編碼引擎的內部狀態之區間細分,其係例如識別代碼區間下限,其係由目前區間寬度R及目前區間偏離值L界定。於又一較佳實施例中,針對與一給定箱緩衝器相關聯之各個以表為基礎之二元算術編碼引擎,K 個代表性區間寬度值(Q 0 ,...,Q K -1 }係用來表示有K個選擇的RLPS ,及該代表性區間寬度值(Q 0 ,...,Q K -1 }係取決於箱緩衝器。針對K >1之選擇,箱的算術編碼可能涉及下列子步驟:將目前區間寬度R對映至具有於(0,...,K -1}之值的量化指數q ;及藉使用q 作為指數,從詢查表存取相對應的部分區間寬度值Q q 而執行區間細分。至於K =1之選擇,亦即針對只有給定一個代表性區間寬度值Q 0 的情況,此值Q 0 可選擇為2的次冪來允許在單一重新正規化週期內部解碼多個載入相對應的箱緩衝器之MPS/MPB值。結果所得各個算術編碼引擎之碼字組可分開地發送、封包化、或儲存,或可交插用於傳送或儲存目的,容後詳述。
換言之,二元算術編碼引擎10可在其箱緩衝器8中於箱之編碼執行下列步驟:
1. 從箱緩衝器接收valLPS箱(注意:此處考慮的個別二元算術編碼引擎10已經選用來接收「箱」,原因在於(或換言之,「箱」係與個別二元算術編碼引擎10相關聯)機率分布估值諸如p_state[bin]係與該二元算術編碼引擎10相關聯)
2. R之量化:
q_index=Qtab[R>>q](或若干其它量化形式)
3. RLPS 及R之決定:
RLPS =Rtab[q_index](注意此處未述及p_state,原因在於針對所考慮的二元算術編碼引擎10其為固定,亦即p_state[encoder],及Rtab其中已經儲存針對p[p_state[encoder]]‧Q[q_index]的預先計算值
R=R-RLPS [換言之,R為初步預經更新彷彿「箱」為MPS]
4. 新部分區間之計算:
若(bin=1-valMPS)則
L←L+R
R←RLPS
5.L及R之重新正規化,寫入位元,其中q_index描述Qtab之讀出量化值之指數,p_state描述目前態(針對二元算術編碼引擎10為固定),RLPS 描述相對應於LPS之區間寬度及valMPS描述相對應於MPS之位元值。
據此,二元算術解碼引擎22可在解碼輸出箱至箱緩衝器20執行下列步驟:
1. 接收針對一箱的請求(注意:此處考慮的個別二元算術解碼引擎22已經選用來解碼「箱」,原因在於(或換言之,「箱」係與個別二元算術解碼引擎22相關聯)機率分布估值諸如p_state[bin]係與該二元算術解碼引擎22相關聯)
2. R之量化:
q_index=Qtab[R>>q](或若干其它量化形式)
3.RLPS 及R之決定:
RLPS =Rtab[q_index](注意此處未述及p_state,原因在於針對所考慮的二元算術解碼引擎22其為固定,亦即p_state[encoder],及Rtab其中已經儲存針對p[p_state[encoder]]‧Q[q_index]的預先計算值
R=R-RLPS [換言之,R為初步預經更新彷彿「箱」為MPS]
4.取決於部分區間位置之箱的決定:
若(VR)則
bin←1-valMPS(箱解碼為LPS;箱緩衝器選擇器18將藉使用此箱資訊及valMPS獲得實際箱值)
V←V-R
R←RLPS
否則
bin←valMPS(箱解碼為mPS;箱緩衝器選擇器18將藉使用此箱資訊及valMPS獲得實際箱值)
5.L及R之重新正規化,讀取出一個位元且更新V,其中q_index描述Qtab之讀出量化值之指數,p_state描述目前態(針對二元算術解碼引擎22為固定),RLPS 描述相對應於LPS之區間寬度及va1MPS描述相對應於MPS之位元值,及V描述得自目前部分區間內部之一值。
箱編碼器10或箱編碼器中之一或多者可表示將輸入箱9序列直接對映至碼字組10之熵編碼器。此種對映關係可有效地具體實現而不要求複雜的算術編碼引擎。碼字組的逆對映至箱序列(如同解碼器中所見)須為獨特來保證輸入序列的完美解碼,但箱序列9對映至碼字組10並非必然為獨特,亦即特定箱序列可對映至多於一個碼字組序列。於一個實施例中,輸入箱9序列之對映至碼字組10為雙射。於又一較佳實施例中,箱編碼器10或箱編碼器中之一或多者表示熵編碼器,該熵編碼器將輸入箱9之可變長度序列對映至可變長度碼字組10。於一個實施例中,輸出碼字組表示無冗餘代碼,諸如一般霍夫曼代碼或典型霍夫曼代碼。
箱序列雙射對映至無冗餘代碼之兩個實例係例示說明於表3。於又一個實施例中,輸出碼字組表示適合錯誤檢測及錯誤復原之冗餘代碼。於又一較佳實施例中,輸出碼字組表示適合加密來源符碼之加密代碼。
於又一個實施例中,箱編碼器10或箱編碼器10中之一或多者表示熵編碼器,該熵編碼器將輸入箱9之可變長度序列對映至固定長度碼字組10。於又一個實施例中,箱編碼器10或箱編碼器10中之一或多者表示熵編碼器,該熵編碼器將輸入箱9之固定長度序列對映至可變長度碼字組10。
依據一實施例PIPE解碼器係例示說明於第4圖。解碼器基本上執行第3圖編碼器之逆操作,故來源符碼27之(先前已編碼)序列係從二或多個部分位元串流24之集合。解碼器包括兩個不同的處理流程:資料請求流程其複製編碼器之資料流程;及資料流程其表示逆向編碼器資料流程。於第4圖之例示說明中,虛線箭頭表示資料請求流程,而實心箭頭表示資料流程。解碼器積木基本上複製編碼器積木,但具體實現逆向操作。
來源符碼之解碼係藉發送給二進制化器14由新解碼來源符碼13所觸發。於一個實施例中,新解碼來源符碼13之各項請求係與一或多個類別集合中之一個類別相關聯。與來源符碼之一請求相關聯之類別係同在編碼期間與相對應的來源符碼之一請求相關聯之類別。
二進制化器14將針對來源符碼13的請求對映至發送給參數分配器16之針對一箱的一或多個請求。至於對由二進制化器14發送給箱請求的最終回應,二進制化器14接收來自箱緩衝器選擇器18的解碼箱26。二進制化器14比較所接收的解碼箱26序列與針對所請求來源符碼之特定二進制方案之箱序列,若所接收的解碼箱26序列匹配來源符碼之二進制化,則二進制化器清空其箱緩衝器,及輸出已解碼來源符碼作為針對新解碼符碼請求的最終回應。若已接收的解碼箱序列不匹配針對所請求來源符碼之二進制方案的箱序列中之任一者,二進制化器發送針對箱的另一項箱請求給參數分配器,直到解碼箱序列匹配所請求來源符碼之二進制方案之箱序列中之一者。針對來源符碼之各項請求,解碼器使用用來編碼相對應的來源符碼之相同二進制方案。該二進制方案可因不同來源符碼類別而異。針對特定來源符碼的二進制方案可取決於可能的來源符碼值集合及/或特定類別來源符碼的其它性質。
參數分配器分配一或多個參數之一集合給針對一箱的各個請求,及發送該一箱的請求與相關聯之參數集合給箱緩衝器選擇器。藉參數分配器分配給請求箱的參數集合係與編碼期間分配給相對應的箱之參數集合相同。參數集合可由編碼器描述中所述參數中之一或多者組成。
參數分配器16可將一箱的各個請求關聯針對目前請求箱的兩個可能箱值中之一者的機率估值之測量值。更明確言之,參數分配器16可將一箱的各個請求關聯針對目前請求箱的較非可能或較大可能箱值中之一者的機率估值之測量值、及載明表示針對目前請求箱的較非可能或較大可能箱值的兩個可能箱值中之哪一者的估值之識別符。
於又一個實施例中,參數分配器16將針對一箱15、17的各項請求與針對目前請求箱的兩個可能箱值中之一者的機率估值之測量值及一或多個其它參數相關聯。於又一較佳實施例中,參數分配器16將針對一箱15、17的各項請求與針對目前請求箱的較非可能或較大可能箱值中之一者的機率估值之測量值、載明表示針對目前請求箱的較非可能或較大可能箱值的兩個可能箱值中之哪一者的估值之識別符、及一或多個額外參數(其可以是前文列舉參數中之一或多者)相關聯。
於一個實施例中,參數分配器16基於一或多個已解碼的符碼,決定前述機率測量值中之一或多者(針對目前請求箱的兩個可能箱值中之一者的機率估值之測量值、針對目前請求箱的較非可能或較大可能箱值中之一者的機率估值之測量值、載明表示針對目前請求箱的較非可能或較大可能箱值的兩個可能箱值中之哪一者的估值之識別符)。針對一特定請求的機率測量值之決定係複製在編碼器針對相對應箱的處理程序。用來決定機率測量值之解碼符碼可包括相同符碼類別中之一或多個已解碼符碼、相對應於鄰近空間性及/或時間性位置(有關與針對來源符碼之目前請求相關聯之資料集合)之資料集合(諸如樣本區塊或群組)的相同符碼類別中之一或多個已解碼符碼、或相對應於相同及/或鄰近空間性及/或時間性位置(有關與針對來源符碼之目前請求相關聯之資料集合)之資料集合(諸如樣本區塊或群組)的相同符碼類別中之一或多個已解碼符碼。
針對一箱之各項請求具有屬於參數分配器16之輸出的相關聯之參數集合17係饋至箱緩衝器選擇器18。基於相關聯之參數集合17,箱緩衝器選擇器18發送針對一箱19之請求給二或多個箱緩衝器20中之一者,及從所擇定的箱緩衝器20接收已解碼箱25。已解碼輸入箱25可能經修改,已解碼輸出箱26帶有可能經修改之值發送給二進制化器14作為對具有相關聯之參數集合17之針對一箱的請求之最終回應。
該針對一箱的請求前傳給箱緩衝器20,該箱緩衝器20係以在編碼器端該箱緩衝器選擇器之輸出箱發送給箱緩衝器之相同方式選擇。
於一個實施例中,箱緩衝器選擇器18基於針對目前請求箱的兩個可能箱值中之一者的機率估值之測量值而決定針對一箱19的請求將發送給箱緩衝器20。於一個實施例中,針對目前請求箱的兩個可能箱值中之一者的機率估值之測量值的可能值集合為有限,箱緩衝器選擇器18含有一表,該表將合一個箱緩衝器20與針對兩個可能箱值中之一者的機率估值的各個可能值相關聯,此處針對目前請求箱的兩個可能箱值中之一者的機率估值之測量值的不同值可與相同箱緩衝器20相關聯。於又一個實施例中,針對兩個可能箱值中之一者的機率估值之測量值的可能值範圍係劃分成多個區間,箱緩衝器選擇器18決定針對兩個可能箱值中之一者的機率估值之目前測量值的區間指數,及箱緩衝器選擇器18含有一表,該表將恰一個箱緩衝器20與針對該區間指數的各個可能值相關聯。具有針對兩個可能箱值中之一者的機率估值之相反測量值(相反測量值表示機率估值P及1-P)的針對箱17之請求可前傳給相同箱緩衝器20。又復,針對目前箱請求的兩個可能箱值中之一者的機率估值之測量值與一特定箱緩衝器間之關聯性可隨著時間之經過而予調整。
箱緩衝器選擇器18可基於針對目前請求箱的較非可能或較大可能箱值的機率估值之測量值而決定針對一箱19的請求將發送給箱緩衝器20。於一個實施例中,針對目前請求箱的較非可能或較大可能箱值的機率估值之測量值的可能值集合為有限,箱緩衝器選擇器18含有一表,該表將合一個箱緩衝器20與針對較非可能或較大可能箱值的機率估值的各個可能值相關聯,此處針對目前請求箱的較非可能或較大可能箱值的機率估值之測量值的不同值可與相同箱緩衝器20相關聯。於一個實施例中,針對較非可能或較大可能箱值的機率估值之測量值的可能值範圍係劃分成多個區間,箱緩衝器選擇器18決定針對較非可能或較大可能箱值的機率估值之目前測量值的區間指數,及箱緩衝器選擇器18含有一表,該表將恰一個箱緩衝器20與針對該區間指數的各個可能值相關聯,此處不同區間指數值可與相同箱緩衝器20相關聯。於又一較佳實施例中,針對目前箱請求的較非可能或較大可能箱值的機率估值之測量值與一特定箱緩衝器間之關聯性可隨著時間之經過而予調整。
於從擇定的箱緩衝器20接收解碼箱25後,箱緩衝器選擇器18潛在修改輸入箱25,及送出具有潛在修改值的輸出箱26給二進制化器14。箱緩衝器選擇器18之輸入/輸出箱對映為在編碼器端箱緩衝器選擇器之輸入/輸出箱對映的顛倒。
箱緩衝器選擇器18可經組配來不修改箱值,亦即輸出箱26經常性具有與輸入箱25相同值。
箱緩衝器選擇器18可基於輸入箱值25及與針對一箱17的請求相關聯之針對目前請求箱的兩個可能箱值中之一者的機率估值之測量值來決定輸出箱值26。於一個實施例中,若針對目前請求箱的兩個可能箱值中之一者的機率估值之測量值係小於(或小於或等於)一特定臨界值,則輸出箱值26係設定為等於輸入箱值25;若針對目前請求箱的兩個可能箱值中之一者的機率估值之測量值係大於或等於(或大於)一特定臨界值,則輸出箱值26係經修改(亦即設定為輸入箱值之相反)。於又一個實施例中,若針對目前請求箱的兩個可能箱值中之一者的機率估值之測量值係大於(或大於或等於)一特定臨界值,則輸出箱值26係設定為等於輸入箱值25;若針對目前請求箱的兩個可能箱值中之一者的機率估值之測量值係小於或等於(或小於)一特定臨界值,則輸出箱值26係經修改(亦即設定為輸入箱值之相反)。於一較佳實施例中,針對兩個可能箱值之估算機率,臨界值係相對應的0.5之值。
於又一實施例中,箱緩衝器選擇器18可基於輸入箱值25及與針對一箱17的請求相關聯之載明針對目前請求箱的兩個可能箱值中之哪一者表示較非可能或較大可能箱值的估值之該識別符來決定輸出箱值26。於較佳實施例中,若識別符載明針對目前請求箱的兩個可能箱值中之第一者表示較非可能(或較大可能)箱值的估值,則輸出箱值26係設定為等於輸入箱值25;而若識別符載明針對目前請求箱的兩個可能箱值中之第二者表示較非可能(或較大可能)箱值的估值,則輸出箱值26係經修改。
如前述,箱緩衝器選擇器發送針對一箱19的請求給二或多個箱緩衝器20。箱緩衝器20表示先進先出緩衝器,其係饋以來自所連結的箱解碼器22之已解碼箱序列21。作為對從箱緩衝器選擇器18發送給箱緩衝器20之針對一箱19的請求之回應,箱緩衝器20移開屬於先饋進箱緩衝器20立身內容箱,且發送給箱緩衝器選擇器18。較早送至箱緩衝器20之箱係較早移開且發送至箱緩衝器選擇器18。
二或多個箱緩衝器20各自係恰與一個箱解碼器22連結,各個箱解碼器係只連結一個箱緩衝器20。各個箱解碼器22從一分開部分位元串流24讀取表示位元序列之碼字組23。箱解碼器將碼字組23轉成一箱序列21,其係發送給所連結的箱緩衝器20。總解碼演算法將二或多個部分位元串流24轉成多個已解碼來源符碼,此處部分位元串流數目係等於箱緩衝器及箱解碼器數目,而來源符碼的解碼係藉新來源符碼之請求而觸發。於一個實施例中,箱解碼器22將具可變數目位元的碼字組23轉成具可變數目位元的箱序列21。前述PIPE實施例之一項優點為來自二或多個部分位元串流之箱解碼可並列進行(例如針對不同機率測量值組群),其縮短若干具體實現之處理時間。
前述PIPE解碼實施例之另一項優點為藉箱解碼器22所進行的箱解碼可針對不同的參數集合17特別設計。更明確言之,箱編碼及解碼可針對不同的估算機率群組加以最佳化(就編碼效率及/或複雜度而言)。一方面,如此允許比較具相似編碼效率的算術編碼演算法減低編碼/解碼複雜度。另一方面,如此允許比較具有相似編碼/解碼複雜度的VLC編碼演算法改良編碼效率。於一個實施例中,箱解碼器22針對目前請求箱的兩個可能箱值17中之一者的機率估值之測量值不同組群具體實現不同解碼演算法(亦即箱序列對映至碼字組)。於又一實施例中,箱解碼器22針對目前請求箱的較非可能或較大可能箱值的機率估值之測量值不同組群具體實現不同解碼演算法。於又一實施例中,箱解碼器22針對不同通道保護代碼具體實現不同解碼演算法。於又一實施例中,箱解碼器22針對不同加密方案具體實現不同解碼演算法。於又一實施例中,箱解碼器22針對通道保護代碼與針對目前請求箱的兩個可能箱值17中之一者的機率估值之測量值群組的不同組合具體實現不同解碼演算法。於又一實施例中,箱解碼器22針對通道保護代碼與針對目前請求箱的較非可能或較大可能箱值17的機率估值之測量值群組的不同組合具體實現不同解碼演算法。於又一實施例中,箱解碼器22針對加密方案與針對目前請求箱的兩個可能箱值17中之一者的機率估值之測量值群組的不同組合具體實現不同解碼演算法。於又一實施例中,箱解碼器22針對加密方案與針對目前請求箱的較非可能或較大可能箱值17的機率估值之測量值群組的不同組合具體實現不同解碼演算法。
箱解碼器22執行相對應的箱編碼器在編碼器端之顛倒對映。
於一個實施例中,箱解碼器22或箱解碼器中之一或多者表示二元算術解碼引擎。
於又一個實施例中,箱解碼器22或箱解碼器中之一或多者表示熵解碼器,該熵解碼器係將碼字組23直接對映至箱序列21。此種對映可有效具體實現而不要求複雜的算術編碼引擎。碼字組對映至箱序列必須為獨一無二。於一個實施例中,碼字組23對映至箱序列21為雙射。於又一個實施例中,箱解碼器10或箱解碼器中之一或多者表示熵解碼器,該熵解碼器係將可變長度碼字組23直接對映至可變長度箱序列21。於一個實施例中,輸入碼字組表示無冗餘代碼,諸如一般霍夫曼代碼或典型霍夫曼代碼。無冗餘代碼雙射對映至箱序列之兩個實例係例示說明於表3。於又一個實施例中,輸入碼字組表示適合錯誤檢測及錯誤復原之冗餘代碼。於又一較佳實施例中,輸入碼字組表示加密代碼。
箱解碼器22或箱解碼器中之一或多者表示熵解碼器,該熵解碼器係將固定長度碼字組23直接對映至可變長度箱序列21。另外,箱解碼器22或箱解碼器中之一或多者表示熵解碼器,該熵解碼器係將可變長度碼字組23直接對映至固定長度箱序列21。
如此,第3及4圖顯示用以編碼一來源符碼1序列之PIPE編碼器及用以重構該序列之PIPE解碼器。換言之,第3圖之PIPE編碼器可用作為第1圖之PIPE編碼器104,具有二進制化器2作為符碼化器122,參數分配器4作為分配器114,箱緩衝器選擇器6作為選擇器120,及成對串聯箱緩衝器8及箱編碼器10作為熵編碼器116中之個別者,其各自係輸出第1圖中相對應於位元串流118的位元串流12。如由第3圖與第1圖之比較變成顯然易明,第1圖之分配器114可具有其輸入端係另外連結至符碼化器122的輸入端而非其輸出端。同理,第4圖之PIPE解碼器可用作為第2圖之PIPE解碼器,具有部分位元串流24相對應於第2圖中之位元串流216,成對串聯箱緩衝器20及箱解碼器22相對應於個別熵解碼器210,箱緩衝器選擇器18作為選擇器214,參數分配器16作為分配器212,及二進制化器14作為解符碼化器222。再度,第2圖與第4圖間之比較得知解符碼化器222、分配器212與選擇器214間之互連可以不同方式組配,因此依據另一實施例第2圖之連結係經修正來對應於第4圖所示連結。
第3圖之PIPE編碼器包含組配來分配多個參數5給字母表符碼序列3之各個字母表符碼之分配器4。分配係基於含在該字母表符碼序列之先前字母表符碼之資訊,諸如該目前字母表符碼的表示型態(諸如二進制化)所屬語法元素1之類別,且該類別依據語法元素1之語法結構為目前預期者,該項預期又轉而可從先前語法元素1及字母表符碼3的歷史推定。又復,編碼器包含多個熵編碼器10,其各自係經組配來將前傳給個別熵編碼器的字母表符碼3轉成個別位元串流12;及一選擇器6,其係經組配來前傳各個字母表符碼3給多個熵編碼器10中之擇定者,該項選擇係取決於分配給個別字母表符碼3之參數5數目。第4圖之PIPE解碼器包含多個熵解碼器22,其各自係經組配來將個別位元串流23轉成字母表符碼21;分配器16,其係經組配來基於含在該字母表符碼序列(參考第4圖之26及27)之先前已重構的字母表符碼之資訊而分配多個參數17給欲重構的一字母表符碼序列之各個字母表符碼15;及一選擇器18,其係經組配來從多個熵解碼器22中之一擇定者取回欲重構的該字母表符碼序列之各個字母表符碼,該項選擇係取決於針對個別字母表符碼界定之參數數目。分配器16可經組配來使得分配給各個字母表符碼的參數數目包含或為個別字母表符碼可能假設的可能字母表符碼值中的機率分布估值之測量值。欲重構的字母表符碼序列可以是二元字母表,分配器16可經組配來使得機率分布估值係由該二元字母表的兩個可能箱值中之較非可能或較大可能箱值之機率估值之測量值及載明兩個可能箱值中之哪一者表示較非可能或較大可能箱值之估值之識別符所組成。分配器16可進一步經組配來基於含在欲重構的該字母表符碼序列之先前已重構字母表符碼中之資訊而各個脈絡具有與其相關聯之個別機率分布估值,來內部分配一脈絡給欲重構的該字母表符碼序列15之各個字母表符碼;以及基於個別脈絡被指派的先前已重構字母表符碼之符碼值,來將各個脈絡之機率分布估值調整適應實際符碼統計資料。該脈絡可考慮該等語法元素所屬的位置之空間關係或鄰近關係,諸如於視訊或圖像編碼,或甚至於財務應用中於表格。然後,基於與分配給個別字母表符碼之脈絡相關聯之的機率分布估值,可決定針對各個字母表符碼之機率分布估值,諸如藉由以個別字母表符碼分配給多個機率分布估值表示型態中之一者,量化與脈絡相關聯之的機率分布估值來獲得機率分布估值之測量值。選擇器可經組配來使得從該等多個機率分布估值表示型態至該等多個熵編碼器定義一滿射(surjective)關聯性,亦即各個熵編碼器具有與其相關聯之至少一個機率分布估值表示型態,但多於一個機率分布估值表示型態可與一個熵編碼器相關聯。依據一實施例,關聯甚至可以是雙射。選擇器18可經組配來隨著時間之經過,取決於該字母表符碼序列之先前已重構字母表符碼,以預定決定性方式來改變從一機率分布估值範圍至該等多個機率分布估值表示型態的量化對映關係。換言之,選擇器18可改變量化步階大小,亦即機率分布區間對映至個別機率指數,而其又可滿射地與個別熵解碼器相關聯。多個熵解碼器22轉而可經組配來回應於量化對映關係的改變,而調適其將字母表符碼轉化成位元串流之方式。舉例言之,各個熵解碼器22針對在個別機率分布估值量化區間內部的某個機率分布估值可經最佳化,亦即可具有最佳壓縮率;且可改變其碼字組/符碼序列對映關係,因而當機率分布估值量化區間改變時,調適在個別機率分布估值量化區間內部的某個機率分布估值之位置來變成最佳化。選擇器可經組配來改變量化對映關係,使得字母表符碼從多個熵解碼器取回之比率變成較非分散性。至於二進制化器14,若語法元素已經是二元,則可免除二進制化器。又復,取決於解碼器22之型別,不需要緩衝器20的存在。又復,緩衝器可整合在解碼器內部。
至目前為止,前文已經參考第3及4圖描述第1及2圖之PIPE編碼器104及PIPE解碼器202之更細節實施例,該等實施例若已經在第1及2圖之裝置具體實現,則將導致並列位元串流輸出,其中VLC及PIPE部分位元串流係並列傳輸。後文中,描述如何組合PIPE部分位元串流,然後連同VLC位元串流並列發送,或連同二次交插二位元串流亦即VLC位元串流與交插PIPE位元串流一起發送的可能性。
有限來源符碼序列之終結
於PIPE編碼器及解碼器之實施例中,編碼及解碼係以來源符碼之有限集合進行。經常編碼某個數量資料,諸如靜像、視訊序列之框或欄位、視訊序列之框或欄位之截割片、或一連續音訊樣本集合。一般而言,針對來源符碼之有限集合,在編碼器端所形成的部分位元串流必須終結,亦即其必須確保全部來源符碼可以從所發射或所儲存的部分位元串流解碼。在最末箱係插入相對應的箱緩衝器8後,箱編碼器10必須確保完整碼字組係寫至部分位元串流12。若箱編碼器10表示二元算術編碼引擎,則算術碼字組必須終結。若箱編碼器10表示具體實現將箱序列直接對映至碼字組的熵編碼器,則在將最末箱寫至箱緩衝器後,儲存在箱緩衝器的箱序列可不表示與碼字組相關聯之箱序列(亦即該箱序列可表示與碼字組相關聯之二或多個箱序列之前綴)。於此種情況下,含有箱序列在箱緩衝器作為前綴的與一箱序列相關聯之該等碼字組中之情況下,任一者必須寫至部分位元串流(箱緩衝器須經清理(flushed))。如此可藉將具有特定值或任意值之箱插入箱緩衝器直到碼字組被寫入為止而予進行。於一較佳實施例中,箱緩衝器選擇具最短長度之碼字組中之一者(除下述性質外:相關聯之箱序列須含有在箱緩衝器的箱序列作為前綴)。在解碼器端,箱解碼器22可解碼比較針對在部分位元串流中的最末個碼字組所需更多箱;此等箱並非箱緩衝器選擇器18所要求,故被捨棄且忽略。有限符碼集合的解碼係由針對已解碼來源符碼之請求控制;若針對定量資料不再請求額外來源符碼,則結束解碼。
部分位元串流之傳輸與多工化
藉PIPE編碼器所形成之部分位元串流12可分開地傳輸,或可多工化成單一位元串流,或部分位元串流之碼字組可交插於單一位元串流。
於一個實施例中,定量資料之各個部分位元串流係寫至一個資料封包。定量資料可以是來源符碼之一任意集合,諸如靜像、視訊序列之框或欄位、靜像之截割片、視訊序列之框或欄位之截割片、或音訊樣本之一框等。
於另一較佳實施例中,針對定量資料之二或多個部分位元串流或針對定量資料之全部部分位元串流係多工化成為一個資料封包。含有多工化部分位元串流之資料封包結構係例示說明於第5圖。換言之,第5圖所示資料封包可以是中間交插串流132及234之一部分。
資料封包300係由標頭及針對各個部分位元串流資料(針對所考慮的資料量)之一個區劃所組成。資料封包之標頭300含有資料封包(之餘數)區劃成為位元串流資料節段302之指示。除了區劃之指示外,標頭可含有額外資訊。於一個實施例中,資料封包區劃之指示為資料節段之起點位置所在,以位元或位元組或位元倍數或位元組倍數為單位。於一個實施例中,資料節段之起點位置係編碼呈絕對值於資料封包之標頭中,該位置係相對於資料封包之起點,或相對於標頭之終點,或相對於前一個資料封包之起點。於又一實施例中,資料節段之起點位置係經差異編碼,亦即只編碼資料節段之實際起點與針對資料節段之起點的預測間之差。預測可基於已知的或已傳輸的資料而導出,諸如資料封包之總體大小、標頭大小、資料封包內之資料節段數目、先前資料節段之起點位置。於一個實施例中,第一資料封包之起點位置係未經編碼,反而係基於資料封包頭標之大小推論。於解碼器端,所傳輸的區劃指示係用來導出資料節段之起點。資料節段然後係用作為部分位元串流,及含在資料節段之資料係以循序順序饋入相對應的箱解碼器。
針對將部分位元串流12多工化成一資料封包有數個替代之道。一個替代之道可減少側邊資訊,特別係針對部分位元串流的大小極為相似的情況,該替代之道係例示說明於第6圖。資料封包之有效負載亦即資料封包310不含其標頭311係以預定方式區劃成為多個節段312。舉個實例,資料封包有效負載可區劃成相等大小的節段。然後各個節段係與一部分位元串流或與部分位元串流313之第一部分相關聯。若部分位元串流係大於相關聯之資料節段,則其餘數314係置於其它資料節段之末端的未使用空間。如此可以位元串流之餘數係以顛倒順序(始於資料節段之末端)插入方式完成,如此減少側邊資訊。部分位元串流之餘數與資料節段之關聯性以及當多於一個餘數係加至資料節段時,餘數中之一或多者的起點必須在位元串流內部例如在資料封包標頭內部傳訊。
可變長度碼字組之交插
針對某些應用用途,在一個資料封包內部分位元串流12(針對定量來源符碼)之前述多工化可有下列缺點:一方面,針對小型資料封包,傳訊區劃所要求的側邊資訊之位元數目相對於部分位元串流中的實際資料可能變顯著,最終減低編碼效率。另一方面,多工化可能並不適合要求低延遲的用途(例如用於視訊會議用途)。使用前述多工化,PIPE編碼器無法在部分位元串流已經完成形成前開始資料封包之傳輸,原因在於區劃的起點位置事先尚未知之故。此外,一般而言,PIPE解碼器必須等候直到其接收到最末資料節段的起點才可開始資料封包之解碼。針對作為視訊會議之應用用途,此等延遲可加總至數幅視訊圖像之系統的額外總體延遲(特別針對接近傳輸位元率之位元率,及針對要求接近兩個圖像之時間區間來編碼/解碼圖像之編碼器/解碼器而言),該項延遲對此等應用用途具有關鍵性。為了克服對某些應用用途之缺點,PIPE編碼器可以碼字組係藉二或多個箱編碼器係交插入單一位元串流而產生之方式加以組配。具已交插碼字組的位元串流可直接送至解碼器(當忽略小型緩衝器延遲時,參見後文)。在PIPE解碼器端,二或多個箱解碼器以解碼順序從該位元串流直接讀取碼字組;解碼可始於第一接收位元。此外,不要求側邊資訊來用以傳訊部分位元串流之多工化(或交插)。
具碼字組交插之PIPE編碼器的基本結構係顯示於第7圖。箱編碼器10並不將碼字組直接寫至部分位元串流,反而係連結單一碼字組緩衝器29,由該緩衝器碼字組係以編碼順序寫至位元串流34。箱編碼器10發送針對一或多個新碼字組緩衝器分錄28的請求給碼字組緩衝器29,及後來發送儲存在保留緩衝器分錄的碼字組30給碼字組緩衝器29。碼字組緩衝器29之(通常為可變長度)碼字組31係由碼字組寫入器32存取,該寫入器將相對應的位元33寫至所產生的位元串流34。碼字組緩衝器29操作為先進先出緩衝器;較早保留的碼字組分錄係較早寫至位元串流。
於額外概論中,多個碼字組緩衝器及部分位元串流12為可能,此處碼字組緩衝器數目係小於箱編碼器數目。箱編碼器10保留一或多個碼字組於碼字組緩衝器29,藉此一或多個保留在碼字組緩衝器係藉在連結的箱緩衝器8中的某些事件觸發。於一個實施例中,碼字組緩衝器29係以PIPE解碼器可瞬間解碼位元串流34之方式操作,位元串流34分別地係相對應於第1圖之132及第2圖之134。碼字組寫至位元串流之編碼順序係與相對應的碼字組保留在碼字組緩衝器的順序相同。於一個實施例中,各個箱編碼器10保留一個碼字組,而保留係藉在連結的箱緩衝器中的某些事件觸發。於另一個實施例中,各個箱編碼器10保留多於一個碼字組,而保留係藉在連結的箱緩衝器中的某些事件觸發。於又一實施例中,箱編碼器10保留不等量碼字組,此處由特定箱編碼器所保留的碼字組量可取決於特定箱編碼器及/或特定箱編碼器/箱緩衝器之其它性質(諸如相關聯之機率測量值、已寫入位元數目等)。
於一個實施例中,碼字組緩衝器係如下操作。若新箱7係送至特定箱緩衝器8,而已儲存在箱緩衝器的箱數目為零,且目前並無任何碼字組保留在針對連結特定箱緩衝器的箱編碼器之碼字組緩衝器內,則連結的箱編碼器10發送一請求給碼字組緩衝器,藉此一或多個碼字組分錄係保留在針對該特定箱編碼器之碼字組緩衝器內。碼字組分錄可具有可變位元數;在緩衝器分錄內的位元數之上限通常係由針對相對應的箱編碼器之最大碼字組大小而給定。下一個碼字組或下一個由箱編碼器所產生的碼字組(針對其碼字組分錄已經被保留)係儲存在該碼字組緩衝器的保留分錄內。若針對一特定箱編碼器的碼字組緩衝器內的全部保留的緩衝器分錄係以碼字組填補,且下一個箱係發送至連結特定箱編碼器的箱緩衝器,則一或多個新碼字組係保留在針對該特定箱編碼器的碼字組緩衝器等內。碼字組緩衝器29係以某個方式表示先進先出緩衝器。緩衝器分錄係以循序順序保留。較早保留的相對應的緩衝器分錄之碼字組係較早寫至位元串流。碼字組寫入器32或連續地或在碼字組30寫至碼字組緩衝器29後檢查碼字組緩衝器29之狀態。若第一緩衝器分錄含有完整碼字組(亦即緩衝器分錄並未保留,反而含括一碼字組),則相對應的碼字組31及相對應的緩衝器分錄係從碼字組緩衝器20移除,及碼字組33位元係寫至該位元串流。此一處理程序重複直至第一緩衝器分錄不含碼字組為止(亦即其為保留或為自由)。在解碼程序結束時,亦即若所考慮的資料量之全部來源符碼皆已處理,則碼字組緩衝器須經清理。用於該清理程序,下列係應用於各個箱緩衝器/箱編碼器作為第一步驟:若箱緩衝器確實含有箱,加入具特定值或任意值的箱直至所得箱序列表示與一碼字組相關聯之一箱序列(如前記,增加箱的一種較佳方式係增加此等箱值使得產生最短可能的碼字組或其中之一者,其係與含箱緩衝器的原先內容作為前綴的一箱序列相關聯),然後碼字組係寫至針對相對應的箱編碼器之下一個保留緩衝器分錄(及相對應的)箱緩衝器係經出空。若多於一個緩衝器分錄已經針對一或多個箱編碼器而保留,則碼字組緩衝器可仍含有保留的碼字組分錄。於該種情況下,此等碼字組分錄係以任意的但針對相對應的箱編碼器為有效的碼字組填補。於一較佳實施例中,最短有效碼字組或最短有效碼字組(若為多數)中之一者係經插入。最後,在碼字組緩衝器的全部其餘碼字組係寫至位元串流。
碼字組緩衝器之狀態的兩個實例係例示說明於第8圖。於實例(a)中,碼字組緩衝器含以碼字組填補之2分錄及5保留分錄。此外,下一個自由緩衝器分錄加註記號。第一分錄係以碼字組填補(亦即箱編碼器2剛寫一碼字組至先前保留的分錄)。於次一步驟中,此一碼字組將從碼字組緩衝器移開且寫至位元串流。然後,針對箱編碼器3之第一保留碼字組為第一緩衝器分錄,但此一分錄無法從碼字組緩衝器移除,原因在於此分錄只是保留,但無任何碼字組已經寫至此分錄。於實例(b)中,碼字組緩衝器含以碼字組填補之3分錄及4保留分錄。第一分錄係加標記為保留,因此碼字組寫入器無法將碼字組寫至位元串流。雖然3碼字組含在碼字組緩衝器,但碼字組寫入器必須等候直到碼字組寫至箱編碼器3之第一保留緩衝器分錄為止。注意碼字組須以其保留的順序寫入來在解碼器端顛倒處理程序(參見後文)。
具碼字組交插的PIPE解碼器之基本結構係顯示於第9圖。箱解碼器10並未從分開部分位元串流直接讀取碼字組,反而係連結至位元緩衝器38,從該位元緩衝器係以編碼順序讀取碼字組37。須注意位元緩衝器38並非必然需要,原因在於碼字組也可直接讀取自位元串流。位元緩衝器38主要係含括於例示說明用以清楚地分開處理鏈的不同構面。具有交插碼字組的位元串流40之位元39如此係相對應於第2圖之位元串流234,係循序地插入位元緩衝器38,該緩衝器表示先進先出緩衝器。若一定特箱解碼器22接收針對一或多個箱序列35之請求,則該箱解碼器22透過針對位元36之請求而從位元緩衝器38讀取一或多個碼字組37。PIPE解碼器可瞬時解碼來源符碼。注意PIPE編碼器(如前文描述)須藉合宜地操作碼字組緩衝器而確保碼字組係以其藉箱解碼器請求的位元串流中的相同順序而寫入。在PIPE解碼器,整個解碼程序係藉針對來源符碼之請求而予觸發。至於藉特定箱編碼器而保留在編碼器端的碼字組數目及藉相對應的箱解碼器讀取的碼字組數目參數必須相同。
於又一概論,多個碼字組緩衝器及部分位元串流為可能,此處位元緩衝器之數目係小於箱解碼器之數目。箱解碼器22於一個時間瞬間從位元緩衝器38讀取一或多個碼字組,藉此從位元緩衝器讀取一或多個碼字組係藉連結的箱緩衝器20中的某些事件觸發。於一個實施例中,解碼器之操作方式使得當針對箱19之請求係發送至一特定箱緩衝器20而該箱緩衝器不含任何箱時,讀取一或多個碼字組。但也可能藉其它事件觸發碼字組的讀取,例如若箱緩衝器內的箱數目係低於預定臨界值。於一個實施例中,各個箱解碼器22讀取一個碼字組,讀取係藉在連結的箱緩衝器中的某個事件觸發。於另一個實施例中,各個箱解碼器22讀取多於一個碼字組,讀取係藉在連結的箱緩衝器中的某個事件觸發。於又一實施例中,箱解碼器22讀取不同量碼字組,此處藉一特定箱解碼器讀取的碼字組量可取決於特定箱解碼器及/或特定箱解碼器/箱緩衝器之其它性質(諸如相關聯之機率測量值、已讀取位元數目等)。
於一個實施例中,從箱緩衝器讀取碼字組係如下述操作。若一新箱請求19係從箱緩衝器選擇器18送至箱緩衝器20且在箱緩衝器中的箱數為零,則連結的箱解碼器22透過位元請求36從位元緩衝器38讀取一或多個碼字組37至位元緩衝器38。箱解碼器22將所讀取的碼字組37轉成箱序列21,及儲存此等箱序列於連結的箱緩衝器20。至於針對箱19之請求的最後回應,第一插入箱係從箱緩衝器20移出及送至箱緩衝器選擇器18。作為對額外箱請求之回應,箱緩衝器內的其餘箱被移出直到箱緩衝器為出空為止。額外箱請求觸發箱解碼器從該箱緩衝器讀取一或多個新碼字組等。位元緩衝器38表示預定大小的先進先出緩衝器,且係以來自位元串流40的位元39連續填補。為了確保碼字組係以其被解碼處理所請求之相同方式寫入位元串流,在編碼器端的碼字組緩衝器可以前述相同方式操作。
如此,多個熵解碼器各自可以是可變長度解碼器,其係經組配來將固定長度碼字組對映至可變長度符碼序列,可提供碼字組分錄諸如碼字組緩衝器43之輸出用以接收交插碼字組之單一串流。多個熵解碼器22可經組配來依據其中欲重構的符碼序列之符碼藉選擇器18從多個熵解碼器取回結果導致在個別熵解碼器從新碼字組欲對映新符碼序列之順序,以循序順序從碼字組分錄取回碼字組。
具低度延遲約束之可變長度碼字組之交插
針對PIPE編碼所述碼字組交插並不要求任何區劃資訊係發送作為側邊資訊。及因碼字組係在位元串流交插,延遲通常為小型。但不保證遵守特定延遲約束(例如由儲存在碼字組緩衝器的最大位元數目載明)。此外,針對碼字組緩衝器要求的緩衝器大小理論上可能變成極大型。當考慮第8(b)圖之實例時,可能並無額外箱係發送至箱緩衝器3,因此箱編碼器3將不發送任何新碼字組至碼字組緩衝器直至施加資料封包終點的清理程序。然後箱編碼器1及2之全部碼字組必須等候直到資料封包之結束,隨後才可寫至位元串流。此一缺點可藉添加額外機制至PIPE編碼程序(及也加至後述PIPE解碼程序)加以克服。該額外機制之構想為若延遲相關測量值或延遲上限(參見下文)超過載明的臨界值,第一保留緩衝器分錄係藉清理相對應的箱緩衝器(使用與資料封包之終點相似的機制)而予填補。藉此種機制,等候中的緩衝器分錄數目減少直到相關聯之延遲測量值係小於載明的臨界值為止。在解碼器端,已經插入在編碼器端來遵守延遲約束的箱須被捨棄。針對箱的捨棄,基本上可使用在編碼器端的相同機制。後文中描述針對此種延遲控制的兩個實施例。
於一個實施例中,延遲之測量值(或延遲上限)為碼字組緩衝器之主動緩衝器分錄數目,此處主動緩衝器分錄數目為保留緩衝器分錄數目加含碼字組的緩衝器分錄數目。注意第一緩衝器分錄經常性為保留緩衝器分錄或自由緩衝器分錄,原因在於若第一緩衝器分錄含有碼字組,此一碼字組係寫至位元串流。例如若最大容許緩衝器延遲(如藉應用用途決定)為D 位元及針對全部箱編碼器之最大碼字組大小為L,可含在碼字組緩衝器而不違反延遲約束的碼字組最大數目的下限可藉N =D /L 計算。以位元為單位的延遲測量值D 並非系統所要求,但碼字組之最大數目N須為編碼器及解碼器二者為已知。於一個實施例中,碼字組緩衝器分錄之最大數目N 係藉應用用途固定。於另一個實施例中,碼字組緩衝器分錄之最大數目N 係在位元串流內部傳訊,例如於資料封包之標頭(或截割片標頭)或於參數集合,其係含於位元串流。若箱編碼器10發送保留一或多個新緩衝器分錄的請求給碼字組緩衝器29,則下述處理程序係在新碼字組緩衝器分錄之前執行(亦即若多個碼字組緩衝器分錄係藉一個請求而予保留,則係執行多次):若目前作用中的緩衝器分錄數目加1(考慮其次將保留的緩衝器分錄)係大於碼字組緩衝器分錄之最大數目N ,則第一緩衝器分錄(其係被保留)係藉後文描述之處理程序清理,直到目前作用中的緩衝器分錄數目加1係小於或等於碼字組緩衝器分錄之最大數目N 為止。保留的緩衝器分錄之清理係類似在資料封包結束時的清理:已經保留相對應的第一緩衝器分錄之箱編碼器10係藉添加具特定值或任意值之箱至連結的箱緩衝器8直到所得箱序列表示與碼字組相關聯之箱序列為止而予清理,碼字組然後寫至保留的緩衝器分錄,及最終加至位元串流(同時排空箱緩衝器,及移除先前保留的緩衝器分錄)。如前述,增加箱至箱緩衝器的一種較佳方式係增加產生最短可能碼字組的該等箱。在解碼器端,執行類似處理程序來捨棄已增加的箱來遵守延遲約束。因此,解碼器維持計數器C ,該計數器計數已經讀取自箱緩衝器的碼字組(此一計數器可維持在位元緩衝器)。此一計數器C 係在資料封包之解碼的起點初始化(例如以零初始化),且在碼字組被讀取後遞增1。此外,各個箱解碼器22含有計數器Cx ,其在最末碼字組藉相對應的箱解碼器22讀取前儲存碼字組計數器C 之值。亦即當特定箱解碼器22讀取新碼字組,其計數器Cx 係設定為等於C 作為第一步驟,及然後碼字組係讀取自位元緩衝器。當針對一箱19的請求係發送至特定箱緩衝器20且總碼字組計數器C 及連結的箱解碼器22之計數器Cx 間之差(C-Cx )係大於碼字組緩衝器分錄之最大數目N 時,目前儲存在特定箱緩衝器20之全部箱皆被捨棄及忽略。除了該額外步驟外,解碼係如前述操作。若針對一箱19的請求係發送至箱緩衝器20而該緩衝器被排空(或因全部箱皆已被移除,或因在箱請求已被接收後的第一步驟低延遲機制確實捨棄全部箱)時,連結的箱解碼器22從位元緩衝器38等讀取一或多個新碼字組。
於另一個實施例中,針對延遲之測量值(或延遲上限)為在碼字組緩衝器內作用中緩衝器分錄之最大碼字組長度之和,此處特定緩衝器分錄之最大碼字組長度係取決於與該緩衝器分錄相關聯之解碼箱。如圖所示,緩衝器分錄之最大碼字組長度在實例中指示於6。再度注意第一緩衝器分錄經常性為保留的緩衝器分錄或自由緩衝器分錄,原因在於若第一緩衝器分錄含有碼字組,則此一碼字組係寫至位元串流。設最大容許緩衝器延遲(如應用用途決定)為D 位元。此一最大緩衝器延遲D 須為編碼器及解碼器二者所已知。於一較佳實施例中,最大緩衝器延遲D 係由用途所固定。於另一較佳實施例中,最大緩衝器延遲D 係在位元串流內部傳訊,例如在含括於位元串流的資料封包之標頭(或截割片標頭)或於參數集合。可以位元、或位元組、或位元倍數、或位元組倍數為單位傳訊。若箱編碼器10發送針對一或多個新緩衝器分錄保留之請求給碼字組緩衝器29,在新碼字組緩衝器分錄保留前執行下述處理(亦即若藉一個請求保留多個碼字組緩衝器分錄,則執行多次)。
若針對全部目前作用中緩衝器分錄之最大碼字組長度加針對將保留之該緩衝器分錄的最大碼字組長度之和係大於最大緩衝器延遲D ,則第一緩衝器分錄(被保留)係藉前述處理程序清理,直到針對全部目前作用中緩衝器分錄之最大碼字組長度加針對將保留之該緩衝器分錄的最大碼字組長度之和係小於或等於最大緩衝器延遲D 為止。舉例言之,考慮第8(b)圖之實例。針對全部目前作用中緩衝器分錄之最大碼字組長度之和為29。假設最大緩衝器延遲D 設定為等於32。若由箱編碼器2保留的下一個緩衝器分錄其最大碼字組長度係設定為3,則第一緩衝器分錄不被清理,原因在於29+3係不大於32。若由箱編碼器1保留的下一個緩衝器分錄其最大碼字組長度係設定為7,則第一緩衝器分錄係被清理,原因在於29+7係大於32。保留的緩衝器分錄之清理係如前述進行(藉將具特定值或任意值之箱加至相對應的箱緩衝器)。
於解碼器端,執行類似處理程序用以捨棄曾經添加來遵守延遲約束之箱。因此,解碼器維持計數器C,該計數器計數已經讀取自箱緩衝器的碼字組(此一計數器可維持在位元緩衝器)的最大碼字組長度。注意與不同箱解碼器相關聯之最大碼字組長度可以不同。該計數器C係在資料封包之解碼的起點初始化(例如以零初始化),且在碼字組被讀取後遞增。此一計數器並非藉讀取碼字組的實際長度遞增,反而係以其最大長度遞增。換言之,若一碼字組係藉特定箱解碼器讀取,而由特定箱解碼器所使用的與碼字組表相關聯之最大碼字組長度為Lx (不同箱解碼器可與不同最大碼字組長度相關聯),計數器C 係增加Lx 。除了總計數器C 外,各個箱解碼器22含有計數器Cx ,其在最末碼字組藉相對應的箱解碼器22讀取前儲存碼字組計數器C 之值。亦即當特定箱解碼器22讀取新碼字組,其計數器Cx 係設定為等於C 作為第一步驟,及然後碼字組係讀取自位元緩衝器。當針對一箱19的請求係發送至特定箱緩衝器20且總碼字組計數器C 及連結的箱解碼器22之計數器Cx 間之差(C-Cx )係大於最大緩衝器延遲D 時,目前儲存在特定箱緩衝器20之全部箱皆被捨棄及忽略。除了該額外步驟外,解碼係如前述操作。若針對一箱19的請求係發送至箱緩衝器20而該緩衝器被排空(或因全部箱皆已被移除,或因在箱請求已被接收後的第一步驟低延遲機制確實捨棄全部箱)時,連結的箱解碼器22從位元緩衝器38等讀取一或多個新碼字組。
如此,多個熵解碼器22及選擇器18可經組配來間歇地捨棄欲重構的符碼序列29。間歇捨棄可於下述事件時執行,此處已經藉個別熵解碼器從碼字組分錄取回的兩個接續碼字組間之多個熵解碼器從碼字組分錄取回的多個碼字組滿足預定標準。多個熵編碼器及碼字組緩衝器轉而可經組配來間歇地延長目前已前傳但尚未對映的符碼,來藉具有目前已前傳但尚未對映的符碼作為前綴的不計符碼而讓符碼序列變有效,將如此延長的符碼序列對映至碼字組,將如此所得之碼字組載入保留的緩衝器分錄,及清理碼字組分錄。間歇地延長、載入、及清理可在可在下述事件時執行,此處多個保留的緩衝器分錄加其中已載入碼字組的多個碼字組分錄滿足預定標準。預定標準可將多個編碼器/解碼器對的碼字組最大長度列入考慮。
針對某些架構,前述針對碼字組交插的較佳實施例就解碼複雜度而言可能導致缺點。如第9圖所示,全部箱解碼器22從單一位元緩衝器38讀取碼字組(通常為可變長度碼字組)。碼字組的讀取無法並列進行,原因在於碼字組須以正確順序讀取。如此表示特定箱解碼器須等候直到其它箱解碼器完成碼字組的讀取。及當可變長度碼字組之讀取複雜度相對於(部分並列化)解碼程序之其餘部分為顯著時,此一可變長度碼字組之存取成為整個解碼程序的瓶頸。所述實施例有若干變化例可採用來減低從單一位元緩衝器之存取複雜度,其中若干者容後詳述。於一個較佳實施例中,存在有單一碼字組集合(表示例如無冗餘前綴代碼),及用於各個箱解碼器22的碼字組集合為單一碼字組集合之一子集。注意不同箱解碼器22可使用單一碼字組集合之不同子集。即使由部分箱解碼器22所使用的碼字組集合為相同,其與箱序列的關聯性針對不同的箱解碼器22為不同。於特定實施例中,同一個碼字組集合係用於全部箱解碼器22。若有個單一碼字組集合其包括針對全部箱解碼器的碼字組集合作為子集,則碼字組的剖析可在箱解碼器外部進行,可減低碼字組存取之複雜度。相對於前述處理程序,PIPE編碼程序未改變。修改的PIPE解碼程序係例示說明於第10圖。單一碼字組讀取器係饋以來自位元串流40之位元46,及剖析通常為可變長度的碼字組。讀取的碼字組44係插入碼字組緩衝器43,其表示先進先出緩衝器。箱解碼器22發送針對一或多個碼字組41之請求給碼字組緩衝器43,及作為此一請求的回應,一或多個碼字組從碼字組緩衝器(以循序順序)移出及送至相對應的箱解碼器22。注意使用此一實施例,潛在複雜的碼字組剖析可在背景程序處理,而無需等候箱解碼器。箱解碼器存取已剖析的碼字組,潛在複雜的碼字組剖析不再是對總緩衝器之請求的一部分。替代已剖析的碼字組發送至箱解碼器,也可以只有碼字組指數發送至箱解碼器之方式體現。
固定長度位元序列之交插
又一種減低PIPE解碼器複雜度之方式可如下達成,此時箱解碼器22不從通用位元緩衝器38讀取可變長度碼字組,反而其經常性地從通用位元緩衝器38讀取固定長度位元序列且將此固定長度位元序列加至本地位元緩衝器,此處各個箱解碼器22係連結一個分開的本地位元緩衝器。然後自本地位元緩衝器讀取可變長度碼字組。此後,可變長度碼字組之剖析可並列進行,唯有固定長度位元序列的存取須以同步方式進行,但此種固定長度位元序列的存取通常極為快速,因此針對某些架構可減低總解碼複雜度。送至特定本地位元緩衝器的固定位元數可針對不同的本地位元緩衝器而異,也可隨時間而異,取決於若干參數作為於箱解碼器、箱緩衝器、或位元緩衝器之事件。但藉特定存取所讀取的位元數目並非取決於特定存取期間所讀取的實際位元,此乃與可變長度碼字組讀取的重大差異。固定長度位元序列的讀取係藉箱解碼器、箱緩衝器、或本地位元緩衝器之某些事件觸發。舉例言之,存在於連結位元緩衝器內的位元數目降至低於預定臨界值時,可讀取新固定長度位元序列,此處不同的臨界值可用於不同位元緩衝器。在編碼器端,必須確保固定長度位元序列係以其在解碼器端讀取自位元串流的相同順序插入位元串流。類似前文解說,也可能組合此固定長度位元序列與低度延遲控制的交插。後文中,描述固定長度位元序列交插之較佳實施例。
第11圖顯示針對二或多個箱編碼器交插固定長度位元序列之實施例的PIPE編碼器結構之例示說明。與第7圖所示實施例相反,箱編碼器10並非連結單一碼字組緩衝器。反而各個箱編碼器10係連結分開的位元緩衝器48,其儲存針對相對應的部分位元串流之位元。全部位元緩衝器48係連結至一通用位元緩衝器51。通用位元緩衝器51係連結至位元寫入器53,其係以編/解碼順序從通用位元緩衝器移除位元52且將所移除的位元54寫至位元串流55。於特定位元緩衝器48或連結的箱編碼器10或箱緩衝器8之某些情況下,位元緩衝器48發送請求49給通用位元緩衝器51,藉此若干位元數係保留在通用位元緩衝器51。針對固定長度位元序列保留之請求49係以循序順序處理。通用位元緩衝器51表示以某種方式的先進先出緩衝器;較早保留的位元係較早寫至位元串流。須注意不同位元緩衝器48可保留不同量位元,也可基於已編碼符碼而隨著時間之經過而異;但當請求送至通用位元緩衝器時由特定請求所保留的位元數為已知。
更明確言之,位元緩衝器48及通用位元緩衝器51係如後述操作。由特定位元緩衝器48所保留的位元量係標示為Nx 。此種位元數目Nx 可因不同位元緩衝器48而異,及也可隨著時間之經過而異。於一較佳實施例中,由特定位元緩衝器48所保留的位元數目Nx 係隨時間為固定。保留固定位元49數目Nx 係基於位元緩衝器48中的位元數目Mx 、針對保留請求之位元數目Nx 、及相關聯之最大碼字組長度Lx 而予觸發。注意各個箱編碼器10可相關聯不同最大碼字組長度Lx 。若一箱7係送至一特定箱緩衝器8,及該特定箱緩衝器8被排空,且不多於一個N x位元序列係保留在連結該特定箱緩衝器(透過箱編碼器)之針對位元緩衝器48的通用位元緩衝器內,及藉連結(透過箱編碼器)特定箱緩衝器8之位元緩衝器48的保留請求所保留的位元數目Nx 與目前存在於此位元緩衝器48的位元數目Mx 間之差Nx -Mx 係小於關聯相對應的箱編碼器10之最大碼字組長度Lx ,則連結的位元緩衝器49發送針對保留Nx 位元之請求49給通用位元緩衝器51。通用位元緩衝器51保留針對特定位元緩衝器48之Nx 位元及遞增其用於下次保留的指標器。Nx 位元已經保留在通用位元緩衝器後,箱7係儲存於箱緩衝器8。若此單一箱確實已經表示與一碼字組相關聯之箱序列,箱編碼器10從箱緩衝器8移開此箱,及將相對應的碼字組47寫至連結的位元緩衝器48。否則(此單一箱並非已經表示與一碼字組相關聯之箱序列)額外箱7係由該特定位元緩衝器48所接收直到箱緩衝器8含有與一碼字組相關聯之箱序列為止。於此種情況下,連結的箱編碼器10從箱緩衝器8移開箱序列9且將相對應的碼字組47寫至連結的位元緩衝器48。若在位元緩衝器48內的結果所得位元數目Mx 係大於或等於保留的位元數目Nx ,則首先寫入位元緩衝器48的Nx 位元係插入通用位元緩衝器51內先前保留的空間。針對發送至特定箱緩衝器8的下一箱7,執行如前文載明之相同處理程序;亦即首先查核新位元數目Nx 是否須保留在通用位元緩衝器(若Nx -Mx 係小於Lx ),及然後該箱係插入箱緩衝器8內等。位元寫入器係以其保留的順序寫入通用位元緩衝器之固定長度位元序列。若通用位元緩衝器51之第一固定長度分錄含有實際上已經插入通用位元緩衝器(亦即不僅只是保留)之一固定長度位元序列,則位元寫入器53從通用位元緩衝器51移出此位元序列52之位元及將位元54寫至位元串流。此一處理程序重複直到通用位元緩衝器的第一定長分錄表示保留分錄或自由分錄為止。若通用位元緩衝器的第一定長分錄表示保留分錄,則位元寫入器53等候直到此一分錄以實際位元填補為止,隨後將額外位元54寫至位元串流55。
在一資料封包結束時,箱緩衝器係如前述清理。此外,位元緩衝器須藉加入具特定值或任意值的位元直到在通用位元緩衝器中的全部保留的緩衝器分錄皆已填補且寫至位元串流而予清理。
於第12圖中,例示說明針對通用位元緩衝器51的可能狀態之二實例。於實例(a)中,例示說明一種情況其中不同位元緩衝器/箱編碼器保留不等數目之位元。通用位元緩衝器含有具實際上寫入之固定長度位元序列之3個分錄及具有保留固定長度位元序列之4個分錄。第一固定長度分錄已含實際位元(須已藉位元緩衝器/箱編碼器2插入);此一分錄(亦即相對應的8位元)可被移開及寫至位元串流。下一個分錄針對箱編碼器3保留10位元,但尚未插入實際位元。此一分錄不可寫至位元串流,須等候直到實際位元被插入為止。於第二實例(b)中,全部位元緩衝器/箱編碼器保留等數位元(8位元)。通用位元緩衝器含有針對4個保留的8位元序列及3個實際上寫入的8位元序列。第一分錄含有針對箱編碼器3的8位元保留。在任何新位元可寫至位元串流前,位元寫入器須等候直到位元緩衝器/箱編碼器3將實際8位元值寫入此一保留分錄寫止。
第13圖顯示針對本發明之實施例交插固定長度位元序列之PIPE解碼器結構之例示說明。與第9圖闡釋之實施例相反,箱解碼器22不連結單一位元緩衝器。反而各個箱解碼器22係連結一個分開位元緩衝器58,該緩衝器儲存來自相對應的部分位元串流之位元。全部位元緩衝器58係連結至通用位元緩衝器61。來自位元串流63之位元62係插入通用位元緩衝器61。當一特定位元緩衝器58或連結的箱解碼器22或箱緩衝器20發生某個事件時,位元緩衝器58發送一請求59給通用位元緩衝器61,藉此固定長度位元序列60係從通用位元緩衝器61移開且插入該特定位元緩衝器58。固定長度位元序列之請求59係以循序順序處理。通用位元緩衝器61表示先進先出緩衝器;較早插入通用位元緩衝器被較早移出。須注意不同的位元緩衝器58可請求不同位元量,也可基於已解碼符碼隨時間而異;但由特定請求所請求的位元數目在請求送至通用位元緩衝器時為已知。須注意通用位元緩衝器61並非必然需要,原因在於碼字組也可直接讀取自位元串流。通用位元緩衝器61主要係含括在處理鏈之俐落分開的不同構面例示說明。
於一個實施例中,位元緩衝器58及通用位元緩衝器61係如後文說明而操作。由一特定位元緩衝器58所請求且所讀取的位元量係標示以NxNx 係等於在編碼器端由相對應的位元緩衝器寫至通用位元緩衝器之位元量。此一位元數目Nx 針對不同位元緩衝器58可以不同且也可隨時間而異。於本發明之一較佳實施例中,由一特定位元緩衝器58所請求的位元數目Nx 係隨時間而固定。固定位元60數目Nx 之讀取係基於位元緩衝器58中的位元數目Mx 及相關聯之最大碼字組長度Lx 而觸發。注意各個箱解碼器22可關聯不同的最大碼字組長度Lx 。若針對一箱19之請求係發送至一特定箱緩衝器20,且該特定箱緩衝器20為空的,及連結(透過箱解碼器)該特定箱緩衝器20的位元緩衝器58中之位元數目Mx 係小於與相對應的箱解碼器22相關聯之最大碼字組長度Lx ,則連結的位元緩衝器58發送針對新Nx 位元序列之請求59給通用位元緩衝器61。作為此一請求的回應,第一Nx 位元係從通用位元緩衝器61移開,及此Nx 位元序列60係送至位元緩衝器58,從該緩衝器送出請求。最後,此Nx 位元序列係加至相對應的位元緩衝器58。然後下個碼字組57係讀取自此位元緩衝器,及連結的箱解碼器22將相關聯之箱序列21插入連結的箱緩衝器20。作為針對箱19之原先請求的最終回應,第一箱係從箱緩衝器20移出,及此解碼箱25係送至箱緩衝器選擇器18。當下一個箱請求19係送至特定箱緩衝器20且箱緩衝器非空時,下個位元係從箱緩衝器20移出。若箱緩衝器為空的,但於連結位元緩衝器58內之位元數目Mx 係大於或等於相關聯之最大碼字組長度Lx ,則下一個碼字組係讀取自位元緩衝器,及新箱序列係插入箱緩衝器,由該箱緩衝器中第一位元被移開及送至箱緩衝器選擇器。若箱緩衝器為空的,但於連結位元緩衝器58內之位元數目Mx 係小於相關聯之最大碼字組長度Lx ,則下一個Nx 位元序列係讀取自通用位元緩衝器61及插入連結的本地位元緩衝器58,下一個碼字組係讀取自位元緩衝器,新箱序列係插入箱緩衝器,及該序列之第一箱被移開及送至箱緩衝器選擇器。此項處理程序重複直至全部來源符碼皆被解碼為止。
於資料封包終點,比較解碼所要求的來源符碼更多的箱及/或位元可插入箱緩衝器及/或位元緩衝器。箱緩衝器內之其餘箱及位元緩衝器內之其餘位元被捨棄及忽略。
具低延遲約束之固定長度位元序列之交插
針對具固定長度位元序列交插之PIPE編碼器及解碼器之所述實施例也可組合前述用以控制編碼器緩衝器延遲之方案。PIPE編碼構想係與前述具延遲控制之實施例相同。若有關延遲或延遲上限(參見後文)之測量值超過規定臨界值,則第一保留緩衝器分錄係經由清理相對應的箱緩衝器填補(使用於資料封包終點之類似機制)及潛在地寫入額外位元用來保留固定長度緩衝器分錄之全部位元填補。藉此機制,等候中的緩衝器分錄數目減少直到相關聯之延遲測量值係低於規定臨界值。於解碼器端,已經插入編碼器端來遵守延遲約束之箱及位元必須捨棄。為此箱及位元之捨棄基本上可使用編碼器端之相同機制。
於一實施例中,延遲(或延遲上限)之測量值為於通用位元緩衝器中作用中的緩衝器分錄內之位元數目,此處作用中的緩衝器分錄之數目為保留固定長度緩衝器分錄數目加含有已寫入位元之固定長度緩衝器分錄數目。注意第一緩衝器分錄經常性為保留固定長度緩衝器分錄或自由緩衝器分錄,原因在於若第一緩衝器分錄含有寫入位元,則此等位元係寫至位元串流。設最大容許緩衝器延遲(如藉應用決定)為D 位元。此一最大緩衝器延遲D 須為編碼器及解碼器二者已知。於本發明之較佳實施例中,最大緩衝器延遲D 係藉應用固定。於本發明之另一較佳實施例中,最大緩衝器延遲D 係於位元串流內部傳訊,例如於資料封包標頭(或截割片標頭)或於含括於位元串流之參數集合傳訊。可以位元或位元組,或位元倍數或位元組倍數傳訊。若箱編碼器10含有針對新固定長度位元序列保留之請求給通用位元緩衝器51,則在新固定長度緩衝器分錄保留前執行下述處理。
若於通用位元緩衝器中作用中的緩衝器分錄內之位元數目加將藉目前保留請求所保留之位元數目係大於最大緩衝器延遲D ,則第一緩衝器分錄(係被保留)係藉後文中描述之程序清理直到於通用位元緩衝器中作用中的緩衝器分錄內之位元數目加將藉目前保留請求所保留之位元數目係小於或等於最大緩衝器延遲D 。保留的固定長度緩衝器分錄之清理係類似於資料封包終點之清理:連結具有保留的相對應第一緩衝器分錄之位元緩衝器48之箱編碼器10係藉加入具有特定值或任意值之箱至連結的箱緩衝器8加以清理直到結果所得箱序列表示與碼字組相關聯之箱序列為止,然後碼字組插入相對應位元緩衝器48。如前述,添加箱至箱緩衝器之一種較佳方式係添加產生最短可能碼字組之該等箱。若於將碼字組寫至連結的位元緩衝器及固定長度位元序列潛在插入通用位元緩衝器後,位元緩衝器內仍然有位元(亦即寫入的碼字組並未完全填補保留的固定長度位元序列),則具有特定值或任意值之額外位元係添加至位元緩衝器直到全部位元皆從位元緩衝器移開及寫至保留的緩衝器分錄為止。最後,於此程序中結束時,完成的緩衝器分錄(通用位元緩衝器內之第一固定長度分錄)係從通用位元緩衝器移出及寫至位元串流。
於解碼器端,針對捨棄已經添加來遵守延遲約束之箱及位元執行類似處理程序。因此,解碼器維持計數器C ,計算已經讀取自通用位元緩衝器之位元(此一計數器可維持於通用位元緩衝器)。計數器C 係於資料封包解碼之起點啟動(例如以零)且遞增直到固定長度位元序列被讀取為止。若固定長度N x 位元序列係讀取自通用位元緩衝器61,則計數器C 增加Nx 。除了總計數器C 之外,各位元緩衝器58含有計數器C x ,在最末固定長度位元序列讀取入相對應位元緩衝器58之前,計數器C x 儲存位元計數器C 之值。當特定位元緩衝器58讀取新固定長度位元序列時,其計數器C x 係設定等於C 作為第一步驟及然後固定長度位元序列係讀取自通用位元緩衝器61。當針對箱19之請求發送至特定箱緩衝器20且總計數器C 與連結位元緩衝器58之計數器C x 間之差(C -C x )係大於最大緩衝器延遲D 時,目前儲存於特定箱緩衝器20之全部箱及儲存於連結位元緩衝器58之全部位元皆被捨棄及忽略。除了額外步驟外,解碼係如前述操作。若箱19之請求發送至的箱緩衝器20為空的(或因全部箱皆已經移除,或因在接收箱請求後低延遲機制確實捨棄第一步驟之全部箱),則連結箱解碼器22嘗試從連結位元緩衝器58讀取新碼字組。若於位元緩衝器58之位元數目係小於最大碼字組長度,則在讀取碼字組等之前,新固定長度位元序列係讀取自通用位元緩衝器61。
剛才已經就第7圖至第13圖所述之實施例係有關達成一方面PIPE編碼器104與另一方面PIPE解碼器202間之交插位元串流路徑的可能性。如前文就第1及2圖所述,熵編碼及解碼裝置可藉二分開通道彼此連結,通道中之一者遞送VLC位元串流112,及通道中之另一者遞送已交插PIPE編碼位元串流。但也可能甚至交插VLC位元串流112及PIPE編碼位元串流118二者,此等可能性將於後文就第20圖至第24圖說明。但於說明之前,提供有關PIPE編碼方案之數學背景及有關最佳地細分機率區間伴以分配所得個別部分區間分別給個別熵編碼器116及熵解碼器210。
如前述,於PIPE編碼中,離散符碼之輸入序列之事件空間係對應至二元機率區間之一小集合。來源符碼之機率模型可以是固定性或適應性,使用該等機率區間之熵編碼維持固定性且與模型化階段解偶。各個機率區間可使用具有霍夫曼代碼之複雜程度之極為簡單的熵代碼而編碼。機率區間區劃熵(PIPE)代碼之過量比率係類似純粹算術編碼之過量比率。
一般而言,熵編碼可視為無損耗資料壓縮的最為一般性形式。無損耗壓縮係針對表示離散資料,具有比原先資料表示型態所需更少位元但無任何資訊損耗。離散資料可以文字、圖形、影像、視訊、音訊、語音、傳真、醫療資料、氣象資料、財務資料、或任何其它數位資料形式給定。於許多編碼應用中,原先來源資料首先對映至所謂的編碼符碼,然後此等編碼符碼經熵編碼。對映至編碼符碼可包括量化,該種情況下,總編碼方案為有損耗。編碼符碼s 可呈M 元(M 2)字母表A ={a 0 ,...,a M -1 }中之任何值。用於編碼符碼s 之目的,字母表係關聯估計的機率質量函數(pmf){p s (a 0 ),...,p s (a M -1 )},於此pmf中不考慮的編碼符碼間之全部相依性被忽略。針對此等摘要設定值,熵
為用以編碼符碼s 其可使用熵編碼技術達成,預期碼字組長度(位元/符碼)之最大下限。數十年來,霍夫曼編碼及算術編碼已經優勢實際熵編碼。其為可近似估計熵極限(就某個意義而言)之眾所周知的實際代碼實例。
針對固定機率分布,相當容易組成霍夫曼代碼。霍夫曼代碼最具吸引力之性質為其具體實現可藉使用可變長度代碼(VLC)表有效實現。但當處理時間變化中之來源統計資料,亦即改變中的符碼機率時,就演算法複雜度以及就具體實現成本兩方面而言,相當要求霍夫曼代碼及其相對應VLC表之調整適應。又,於具有p s (a i )>0.5之優勢字母表值之情況下,相對映霍夫曼代碼(未使用任何字母表延長諸如運行長度編碼)之冗餘可能相當大。霍夫曼代碼之另一項缺點係因下述事實造成,處理較高階機率模型化之情況下,可能要求多個VLC表集合。
另一方面,算術編碼雖然實質上比VLC更複雜,但當處理適應性及較高階機率模型化以及處理較高扭斜機率分布之情況下,算術編碼提供更為一致性且更適當處理之優點。實際上,此項特性基本上係因下述事實所致,算術編碼至少在構思上提供一種機制來以或多或少直接方式將機率估值之任何給定值對映至所得碼字組之一部分。藉由提供此種界面,算術編碼允許一方面機率模型化及機率估算工作與另一方面實際熵編碼,亦即符碼對碼字組之對映關係間之清晰分離。
與剛討論的習知熵編碼方案不同,PIPE編碼使用機率區間區劃,其數學背景容後詳述。
考慮編碼符碼序列{s 0 ,...,s N -1 }。各個符碼係取自字母表s i A i 。字母表A i ={}含有二或多個字母其各自係與一機率估值p s ()相關聯。機率估值p s ()為編碼器及解碼器所已知且可以是固定或可變。假定於編碼器及解碼器同時估計可變機率。字母表A i 可以針對符碼序列為相同,或不同符碼型別與不同字母表相關聯。於後述情況下,假定解碼器已知序列中各個符碼之字母表。當實際來源編解碼器描述含有語法規定符碼及其字母表順序時此項假定為適當。
符碼序列{s0 ,...,sN-1 }轉成二元符碼序列,也稱作為箱。針對各個符碼si ,二進制化
表示字母表字母雙射對映至有序箱集合。二進制化對映關係針對不同符碼s i 或符碼類別可以不同。針對特定符碼s i 之箱序列i 係由一或多個箱組成。於解碼器端,符碼si 可藉給定箱序 b i ,反對映關係s i =()-1 (b i )重新建構。二進制化結果,獲得箱序列{b 0 ,...,b B -1 }其表示來源符碼序列{s 0 ,...,s N -1 }。
全部箱b j 係與相同二元字母表B ={0,1}相關聯,但相對應二元pmf{},=通常為不同。二元pmf{}可藉較低可能箱(LPB)值b j LPB 及其機率p j LPB (p j LPB 0.5)。此種二元機率描述{b j LPB ,p j LPB }可從針對給定二元對映關係之符碼字母表的機率估值p s ()直接導出。也可能(且經常較佳)同時在編碼器端及解碼器端直接估算{b j LPB ,p j LPB }。因此箱可基於語法及先前編碼之符碼或箱而與機率模型(也稱作為脈絡)相關聯。及針對各個機率模型,可基於以機率模型編碼之箱值估算機率描述{b j LPB ,p j LPB }。此種二元機率模型化之實例係就H.264之CABAC描述。
因二元熵函數
H (p )=-p log2 (p )-(1-p )log2 (1-p ) (B3)
p =0.5為中心為對稱,相同二元編碼器可用於編碼相同LPB機率p j LPB 之全部箱,而與b j LPB 之值獨立無關。因此箱序列{b 0 ,...,b B -1 }轉換成編碼箱序列{,...,}。針對各個箱b j ,相對應之雙射對映係載明為
此處⊕表示互斥或運算元。於解碼器端,箱b j 可藉反對映關b j =()-1 ()=b j LPB 而給定編碼箱及相對應LPB值b j LPB 重構。編碼箱=0載明相對應箱值b j 係等於LPB值b i LPB ,及編碼箱=1載明相對應箱值b j 係等於更可能箱(MPB)值1-b j LPB
編碼箱序列{,...,}確實獨特地表示來源符碼序列{s 0 ,...,s N -1 }其可採用於熵編碼之相對應機率估值,係完全藉LPB機率p j LPB (p j LPB 0.5)完全描述。如此,只有於半開放區間(0,0.5]中之機率須考慮來設計用於編碼箱之二元熵編碼器。
用於實際二元熵編碼,編碼箱序列{,...,}係投射至少數機率區間I k 。LPB機率區間(0,0.5]係區劃成K個區間
I k =(p k ,p k +1 ]
K 區間集合係以K -1個區間邊界p k k =1,...,K -1決定特徵。為喪失普及性,發明人假設p k <p k +1 針對k =0,...,K 。外區間邊界為固定且由p 0 =0及p K =0.5給定。針對各個區間I k 設計單純非適應性二元熵編碼器。具有相關聯之LPB機率 I k 之全部編碼箱係分配至區間I k 且係以相對應的固定熵編碼器編碼。
於後文說明中,全部箱表示編碼箱,及全部機率p為LPB機率
為了研究機率區間離散化對編碼效率的影響,發明人假設可設計達成熵極限的針對固定機率之最佳熵編碼器。各個機率區間I k =(p k ,p k +1 ]係與代表性機率 I k 相關聯,及相對應的最佳熵編碼器將針對此種代表性機率達成熵極限。於此種假設下,使用針對區間表示型態之最佳熵編碼器,用以使用機率p 編碼箱之速率藉下式給定
此處H(p)表示二元熵函數3及
為其第一導數。發明人進一步假設於區間(0,0.5]之機率分布係由f (p )給定,。然後,針對具有相對應代表性機率{}之一給定K 區間集合{I k },預期速率(位元/箱)可寫成
就任何代表性機率k =0,...,K -1之第一偏導數係給定為
方程式具有單一解
針對定義域I k 中的代表性機率。針對此解之第二偏導數
經常性係大於零,若
如此,若滿足條件B12,則於方程式B10給定的為針對區間I k 之代表性機率,給定區間邊界p k p k +1 ,其最小化預期總速率R 。否則,並無任何箱投射至區間I k ,及代表性機率 I k 可任意選擇而未對總速率R 造成任何影響;但須避免此種組態,原因在於區間I k 未採用於熵編碼。
為了找出最佳區間邊界的條件,發明人就區間邊界p k k =1,...,K -1研究預期總速率R 之第一導數。若f (p )>0針對全部,方程式具有單一解
針對定義域[)內部之區間邊界p k ,及針對此解之第二偏導數
係經常性大於零,因此為區間邊界,給定區間表示型態,其最小化預期總速率R 。若存在有機率f(p) =0,方程式具有多個解,但如方程式B13給定的仍然為最佳,即便可能存在有其它最佳解亦如此。
給定區間數目K及機率分布f(p) ,區間邊界p k k =1,...,K -1,及區間表示型態k =0,...,K -1,其係最小化預期總速率R ,可藉遵照條件B12針對k =0,...,K -1給定方程式B10及B13藉解出方程組獲得。如此可使用下述迭代重複演算法達成。
演算法1:
1)劃分區間(0,0.5]成K 個任意區間I k =(p k ,p k + 1 ],p 0 =0,p k =0.5,及p k <p k + 1 針對全部k =0,...,K -1,針對全部k =0,...,K -1係遵照條件B12。
2)依據方程式B10,更新表示型態k =0,...,K -1
3)依據方程式B13,更新表示型態p k k =0,...,K -1
4)重複前二步驟直到收斂。
第14圖顯示使用所述演算法之最佳區間離散化實例。用於本實例,發明人假定均一機率分布f(p) =2針對0<p 0.5及將機率區間(0,0.5]劃分成為K =4區間。可知機率區間離散化導致二元熵函數H(p) 之逐塊線性近似A(p) ,針對全部p (0,0.5]具有A(p) H(p)
至於區間離散化對編碼效率影響之測量值,可使用預期總速率相對於熵極限增高
針對第14圖之特例,熵之期望值係等於1/(2ln 2)位元/箱,速率額外資料量ρ係等於1.01%。表4列舉針對均一機率分布之速率額外資料量,及針對選定區間數目K 之線性增加機率分布f(p) =8pp (0,0.5]。
本章節之研究顯示LPB機率區間(0,0.5]離散化成為具有固定機率的少數區間(例如8至10個區間)對編碼效率之影響極小。
前文討論用於機率區間之熵編碼如此允許個別編碼器使用固定機率。
後文中,發明人首先顯示如何針對固定機率設計簡單代碼。給定此等結果,發明人發展出一種演算法,該演算法聯合最佳化代碼設計及LPB機率區間(0,0.5]之劃分。
用於固定機率p =之熵編碼可使用算術編碼或可變長度編碼進行。針對後述情況,下列辦法顯然為簡單且極有效。
發明人考慮二元熵編碼方案,藉此方案可變數目之箱係對映至可變長度碼字組。用於獨特解碼能力,碼字組反對映至箱序列須為獨一無二。以及因發明人想要設計儘可能地趨近於熵極限之代碼,故發明人將考慮約束在雙射對映關係。此種雙射對映關係可以二元樹表示,此處全部葉節點係與碼字組相關聯,如第15圖所示。樹邊緣表示二元事件。於第15圖之實例中,下緣表示LPB箱值,而上緣表示MPB箱值。若二元樹為完整二元樹,亦即若每個節點或為一葉或有二子代,則該二元樹表示用於該箱之一前綴代碼。基於給定LPB機率p ,各個葉節點係與一個機率相關聯。根節點具有p root =1。針對全部其它節點之機率係經由針對LPB子代相對應上代具有p之機率乘以針對MPB子代具有q =1-p 之機率獲得。各個葉節點L l 係藉從根節點至葉節點之LPB緣數目a l 及MPB緣數目b l 決定特徵。針對特定LPB機率p ,葉節點L l ={a l ,b l }之機率pl 係等於
二元樹T 係藉葉節點數目L 及相關聯之成對{a l ,b l },l =0,...,L -1完整決定特徵。
給定完整二元樹T 及LPB機率p ,藉霍夫曼演算法可獲得碼字組最佳分配至葉節點。結果所得可變位元數目至可變長度碼字組(V2V)對映關係C 係以碼字組數目LL 係與葉節點數目相等及針對l =0,...,L -1之三元組{a l ,b l ,l l }決定特徵,此處ll 表示與相對應葉節點L l ={a l ,b l }相關聯之碼字組長度。須注意給定碼字組長度{l l },針對碼字組分配有多種可能,只要碼字組表示可獨一無二解碼的前綴代碼,則實際碼字組分配並不重要。針對給定代碼C及LPB機率p 之預期速率R (p,C ),以位元/箱表示,為每個碼字組之預期碼字組長度及預期箱數目之比
代碼設計經常受最大碼字組數目L 、每個碼字組之最大箱數目、或最大碼字組長度等因素所限,或可受限於特定結構代碼(例如用來允許最佳化剖析)。若發明人假設給定用於特定應用的可用代碼集合S C ,藉最小化預期速率R (p,C )可找到針對特定LPB機率p 之最佳代碼C * S C
至於更快速替代之道,最小化也可於給定二元樹S T 集合或針對各株樹進行,只考慮藉霍夫曼演算法獲得的一個V2V代碼C 。舉個實例,發明人經由考慮全部二元樹T ,葉節點數目L 係小於或等於給定最大值L m ,設計針對各個LPB機率p 之V2V代碼。於第16圖中,相對速率增高p (p ,C *(p ))=R (p ,C *(p ))/H (p )係針對選定的最大表大小L m 相對於LPB機率p 作圖。機率增高ρ(p )通常係藉允許較大表大小而減低。用於較大LPB機率,8至16碼字組的小型表大小L通常足夠維持速率增高ρ(p )合理地小,但用於更小型LPB機率(例如p<0.1),則要求更大型表大小L。
於先前各章節,假設最佳代碼及針對固定LPB機率之代碼設計,發明人考慮最佳機率離散化。但因一般而言,發明人無法以有限表大小之真正V2V代碼達成熵極限,故代碼設計及LPB機率區間(0,0.5]之劃分須聯合考慮來獲得最佳化熵編碼設計。
針對給定區間I k =(p k ,p k +1 ],若針對給定區間最小化期望速率,則於最佳代碼中給定集合S C 之代碼Ck。
用於實際設計,可簡化方程式B19之積分最小化,對編碼效率的影響微小,首先依據方程式B10決定針對區間I k 之最佳代表性機率,及然後依據方程式B18選擇針對代表性機率給定集合S C 之最佳代碼
給定代碼集合C k k =0,...,K -1,最佳區間邊界p k k =1,...,K -1可藉最小化預期總速率而導出
就區間邊界等於零,k =1,...,K -1,設定第一導數獲得
=p k R (p k ,C k -1 )=R (p k ,C k ) (B21)
類似方程式B13,顯示經常性為最佳解,但取決於機率分布f (p ),可能存在有額外最佳解。如此,具有給定相關聯之代碼C k -1C k ,兩個區間I k -1I k 間之最佳區間邊界為函數R (p ,C k -1 )及R (p ,C k )之交叉點。
結果,可使用下述迭代重複演算法來聯合導出機率區間劃分及相關聯之代碼,給定機率區間數目K 、可能代碼集合S C 、及機率分布f (p ),p (0,0.5]。
演算法2:
1)使用章節3之演算法1,導出初始機率區間邊界p k k =0,...,K
2)依據方程式B10導出針對機率區間I k 之表示型態k =0,...,K -1。
3)依據方程式B18導出代碼C k S C 針對區間表示型態k =0,...,K -1。
4)依據方程式B21,更新區間邊界p k k =1,...,K -1。
5)重複先前三個步驟直到收斂
依據方程式B19,基於區間邊界p k k =0,...,K ,演算法2中之步驟2及3也可以代碼C k S C k =0,...,K -1的直接微分替代。又如章節4.1所述,步驟3之最小化也可於給定二元樹集合S T 進行,此處針對各株二元樹T ,只考慮一個藉霍夫曼演算法獲得之V2V代碼C k
舉個實例,發明人使用演算法2聯合導算劃分成K =12機率區間及相對應V2V代碼。此時,於給定二元樹集合ST ,此處針對各株樹T的評估代碼C 係藉霍夫曼演算法獲得,演算法之步驟3中的最小化係以相當最小化置換。發明人考慮具有最大葉節點數目L m =65之樹T ,因此代碼C 具有至多65個表分錄。全部具有16個葉節點之二元樹T 已在最小化中評估;針對具有超過16葉節點之樹,給定針對具有更少葉節點數目之樹的最佳結果,發明人採用次最佳研究。
於第17圖中,針對代碼設計實例相對於熵極限之預期速率增高ΔR(p) =R(p) -H(p) 係於LPB機率p 作圖。作為比較,發明人也作圖針對理論上最佳機率區間離散化之預期速率增高ΔR (如於章節3發展)及具有額外約束=0.5於略圖內之理論上最佳機率離散。可知聯合機率區間離散化及V2V代碼設計結果導致內部邊界的移位(內部邊界pkk =1,...,K -1,係由ΔR (p )之局部最大值給定)。當假設均一機率分布f(p)時,針對具有真正V2V代碼設計實例,相對於熵極限之相對預期總速率增高為=0.24%。針對理論上最佳機率區間離散化及具有額外約束=0.5之理論上最佳機率離散化之相對應相對速率增高分別為=0.12%及=0.13%。
碼字組之終結係如後述進行。當編碼有限符碼序列{s 0 ,...,s N -1 }時,各個K 二元編碼器處理有限編碼箱序列k =0,...,K -1。及針對K 二元編碼器中之各者,已經確定給定碼字組或碼字組序列,可重建序列之全部編碼箱。
當採用算術編碼時,針對編碼箱序列之算術碼字組須以一種方式終結,使得給定碼字組可解碼全部編碼箱。用於前述V2V代碼,於序列終點的箱可能並不表示與碼字組相關聯之箱序列。此種情況下,可寫入含有其餘箱序列作為前綴的任何碼字組。若選定具有最小長度之相對應碼字組(或此等碼字組中之一者),則可最小化額外資料量。於解碼器端,拋棄在箱序列終點的額外讀取箱,給定位元串流語法及二進制化方案可識別該等箱。
單純代碼設計實例表示如下。用於舉例說明目的,發明人考慮來源之單純實例{s },有三個字母及固定相關聯之機率p s (a 0 )=0.7,p s (a 1 )=0.18,及p s (a 2 )=0.12。相對應三元選擇樹可轉成完整二元樹,如第18圖所示。
第18圖之完整二元樹之二進制化係給定於表5。三元符碼pmfp s 係轉成兩個二元pmf=(0.7,0.3)及p b 1 =(0.6,0.4)。針對位元串流中的各個符碼s ,存在箱b 0 。當b 0 等於0時,也存在b 1 。注意表2給定之二進制化係與針對來源s之最佳單字母霍夫曼代碼相同。
來源s之熵為
H (0.7,0.18,0.12)=H (0.7,0.3)+0.3H (0.6,0.4)=1.1726位元/符碼  (B22)
單字母霍夫曼代碼之平均碼字組長度給定為
相對應於ρ HC =0.1274位元1符碼或10.87%預期速率額外資料量之冗餘。
針對具有固定pmf之特定二進制化實例,箱b 0b 1 已表示編碼箱,原因在於二箱的LPB值係等於0。LPB機率之分布f (s )為離散,f (p )=0,p =0.3及p =0.4除外。結果,最佳機率離散化導致K =2區間,具有表示型態=0.3及=0.4。此等區間間之區間邊界p 1 可任意選擇屬於[0.3,0.4)。
用於編碼來源,來源符碼序列係二進制化成為箱序列。箱b 0 係針對每個來源符碼傳輸。箱b 1 只在b 0 =0時傳輸。箱b 0b 1 係以常數LPB機率=0.3及=0.4分別分開編碼。
具固定機率之二元字母表之有效編碼可藉單純V2V對映關係達成。針對LPB機率p LPB =0.3及p LPB =0.4具有小型編碼表之V2V對映關係實例分別係給定於表6及表7。針對p LPB =0.3之V2V對映關係獲得0.0069位元/箱或0.788%之冗餘。針對p LPB =0.4之LPB機率,冗餘為0.0053位元/箱或0.548%。
藉新編碼方法所得總預期速率為
相對於熵極限總冗餘為0.73%,表示比較單字母霍夫曼代碼顯著改良。
藉形成運行長度代碼可獲得類似編碼效率改良可能有爭議。針對前述實例,發明人可經由考慮至多兩個符碼之操作來建構用於最大可能符碼之運行長度代碼。各個事件{a 0 a 0 ,a 0 a 1 ,a 0 a 2 ,a 1 ,a 2 }可與分開碼字組相關聯。此種代碼相對於熵極限獲得1.34%冗餘。實際上,V2V代碼可視為用於二元符碼之運行長度代碼之普及化(表3中V2V代碼確實有效地表示運行長度代碼)。針對具有固定機率之單一符碼字母表,藉由形成代碼,該代碼將可變數目之來源符碼對映至可變長度之碼字組,也可達成與所表示辦法類似的編碼效率。所呈現辦法之主要優點為其用在將具有固定性或適應性機率估值的任意來源符碼序列對映至以固定LPB機率操作之少數單純二元編碼器之彈性。
其次考慮如何達成獨一無二的解碼能力。
使用所呈現的熵編碼方案,來源符碼序列 s ={s 0 ,...,s N -1 }之編碼係由下列三個基本步驟組成:
‧符碼二進制化 b ={b0 ,...,b B -1 }=γ b (s )獲得箱序列 b ={b 0 ,...,b B -1 }
‧箱序列轉成編碼箱序列
‧使用機率區間離散化及K 個固定式二元編碼器進行編碼箱序列之二元熵編碼
若編碼箱序列為可獨特地解碼符碼及對映關係γ b 及γ c 為不可顛倒,則符碼序列 s ={s 0 ,...,s N -1 }可獨一無二地解碼。
設γ e 表示一或多個編碼箱序列之編碼器對映至一或多個碼字組序列 c ( b c)={c0 ,...}
c ( b c )=γ e (b c ) (B25)
給定碼字組序列 c ( b c ),針對編碼箱序列 b c 之獨特解碼能力,編碼器對映關係γ e 須具有獨特碼字組 c ( b c )分配給各個可能編碼箱序列 b c 之性質:
b i c , b j c b ic b j c c ( b i c )≠ c ( b j c ) (B26)
當使用算術代碼或前綴代碼時經常性滿足此一性質。針對章節4.1所述之V2V代碼(包括章節4.3所述之碼字組終結)特別滿足此項性質,原因在於V2V代碼表示可變箱數目之前綴代碼。
但於所呈現之熵編碼辦法中,編碼箱序列b c 被劃分成K 個子序k =,,...,K -1,
{b 0 c ,...,b K-1 c }=γ p (b c ) (B27)
及使用特定編碼器對映關係將一碼字組序列c k (b k c )分配給各個子序列。結果必須延伸獨一無二編碼能力的條件。給定箱對映碼字組c k (b k c ),若編碼箱之各個子序列為可獨特解碼及劃分規則γ p 對解碼器為已知,則給定K個碼字組序列c k (b k c ),k =0,...,K -1,編碼箱序列b c 為可獨一無二解碼。藉LPB機率區間離散化{I k }及LPB機率p j LPB 其係與編碼箱相關聯,j =0,...,B -1,給定劃分規則γ p 。因此在解碼器端LPB機率區間離散化{I k }必須為已知,及針對各個編碼箱j =0,...B -1之LPB機率p j LPB 須在編碼器端及解碼器端以相同方式導出。
針對箱序列之γ c 對映至編碼箱序列c ,各個單一b j j =0,...,B -1,係藉二元對映關係=(b j )=b j b j LPB 轉換。在解碼器端,箱序列可藉二元對映關係導出
j=0,...,B -1。若針對各個箱b j 之LPB值b j LPB 在編碼器端及解碼器端係以相同方式導出,則此等對映關係表示相對應編碼器對映關係的倒數,原因在於
及因此箱序列b 轉換γ b 成為編碼箱序列 b c 為可顛倒。
最後,研究二進制化之顛倒性 b =γ b (s ),藉此各個符碼s i i =0,...,N -1係對映至箱序列 b i =(s i )。若二進制化對映關係將不同箱序列針對符碼s i 分配給字母表A i 的各個字母,則給定相對應箱序列 b i 可獨一無二解碼符碼s i 。但此種條件不足,原因在於箱序列 b ={b 0 ,...,b B -1 }劃分成相對應於符碼s i i =0,...,N -1之箱序列b i 並非解碼器所已知。當針對各個符碼s i ,與相對應字母表A i 之字母相關聯之箱序列形成前綴代碼,且針對各個符碼s i i =0,...,N -1之二進制化對映關係在解碼器端為已知時,充分條件已給定。
所呈示之熵編碼辦法之獨一無二解碼能力之條件摘述如下:
‧二進制化對映關係表示前綴代碼且為解碼器所已知(以符碼編碼順序)
‧針對全部箱b j 之機率模型(,)在編碼器及解碼器端係以相同方式導出
‧LPB機率區間(0,0.5]劃分成K個區間I k k =0,...,K -1為解碼器所已知
‧針對各個機率區間I k k =0,...,K -1對映關係表示可獨一無二解碼之代碼
後文中,發明人描述整體編碼器及解碼器設計實例之更多細節。發明人集中在編碼方案,其中針對箱的機率模型{b LPB ,p LPB }係在編碼器端及解碼器端直接估算,K 個二元編碼器使用前述V2V對映關係。各個來源符碼s 須與符碼類別c s 相關聯,其決定符碼型別包括其數值範圍。符碼順序及相關聯之符碼類別須由語法給定,推定在編碼器端及解碼器端為已知。
PIPE編碼器及PIPE解碼器設計實例之方塊圖顯示於第19圖。於編碼器端,具有相關聯符碼類別c s 之符碼s饋進二進制化器,該二進制化器將各個符碼s轉成箱序列b s =(s )。
使用的二進制化方案係基於符碼類別c s 決定。此外,二進制化器關聯箱序列s 之各個箱b 與機率模型指標c b ,載明該機率模型係用於編碼箱b 。機率模型指標c b 可基於符碼類別c s 、箱序列s 內部之目前箱之箱號碼,及/或已編碼箱及符碼值導出。
機率估計器及分配器維持多個機率模型,係藉成對值{b LPB ,P LPB }決定特徵。從二進制化器接收箱b 及相關聯之機率模型指標c b ,及將指示機率模型之LPB值b LPB 及LPB機率P LPB 分別前傳給編碼箱導算器及機率量化器。隨後使用所接收之箱值b更新相對應機率模型{b LPB ,P LPB }。編碼箱導算器分別從二進制化器及機率估計器及分配器接收箱b 及相關聯之LPB值b LPB ,及發送藉b c =b⊕b LPB 導出的編碼箱b c 給機率量化器。機率量化器前傳各個編碼箱b c K 個二元編碼器中之一者。其含有有關LPB機率區間量化{I k }之資訊。與編碼箱b c 相關聯且接收自機率估計器及分配器之LPB機率p LPB 比較區間邊界{p k }及機率區間指數k ,對此導出p LPB I k 。然後編碼箱b c 前傳給相關聯之二元編碼器。
K 個二元編碼器各自係由箱緩衝器及箱編碼器組成。箱緩衝器從機率量化器接收編碼箱b c 且以編碼順序儲存。箱編碼器具體實現特定V2V對映關係,及比較於箱緩衝器之箱序列與碼字組相關聯之箱序列。若編碼器中之箱序列係等於該等箱序列中之一者,則箱編碼器從箱緩衝器提出箱序列{b c },且將相關聯之碼字組({b c })寫至相對應之碼字組串流。於針對符碼序列編碼程序終點,針對其箱緩衝器並非空的全部二元編碼器,如章節4.3所述寫入終結碼字組。
K 個結果所得碼字組串流可分開傳輸、封包化、或儲存,或可交插(參考章節6.2)用於傳輸或儲存目的。
於解碼器端,K 個二元解碼器由箱解碼器及箱緩衝器組成,各個解碼器接收一個碼字組串流。箱解碼器從碼字組串流讀取碼字組({b c })及以編碼順序將相關聯之箱序列{b c }插入箱緩衝器。
符碼序列之解碼係藉潛在的語法驅使。針對符碼s 之請求連同符碼類別c s 發送給二進制化器。二進制化器將此等符碼請求轉成箱請求。針對箱的請求係與機率模型指標c b 相關聯,該指標係以編碼器中之相同方式導出,及送至機率估計器及分配器。機率估計器及分配器係以類似於編碼器端的對偶部分之類似方式操作。基於機率模型指標c b ,識別機率模型且前傳其LPB值b LPB 及LPB機率p LPB 分別至箱導算器及機率量化器。
機率量化器以二元編碼器於編碼器端決定之相同方式,基於LPB機率p LPB 決定K 個二元解碼器中之一者,以編碼順序從相對應箱緩衝器移出第一編碼箱b c ,及前傳給箱導算器。箱導算器從機率量化器及機率估計器及分配器分別接收編碼箱b c 及相關聯之LPB值b LPB ,及決定箱值b =b c b LPB 。做為對二進制化器送出的箱請求之最終回應,箱導算器發送已解碼箱值b 給二進制化器及機率估計器及分配器。
於機率估計器及分配器中,解碼箱值b 係用來更新機率模型{b LPB ,P LPB },其係藉相關聯值c b 選擇,採用與編碼器端之相同方式。最後,二進制化器將所接收的箱b 加至已經針對符碼請求接收的箱序列 s 且比較此箱序列 s 與藉二進制化方案而與符碼值相關聯之箱序列。若箱序列 s 匹配此等箱序列中之一者,則相對應之解碼符碼s 係輸出作為對符碼請求之最終回應。否則二進制化器發送額外箱請求直到符碼s 被解碼為止。
若不再接收到藉語法驅使的額外符碼請求,結束符碼序列之解碼。拋棄在熵解碼程序終點(由於終結碼字組結果)含在箱緩衝器的編碼箱b c
於已經就第3至13圖描述第1及2圖中PIPE編碼器及PIPE解碼器之若干實施例且已經就第14至19圖,就第20至24圖一般性提供有關PIPE編碼之數學背景,描述用於熵編碼及解碼裝置之更細節實施例。第22至24圖之下列實施例不僅針對PIPE編碼位元串流交插,同時也交插VLC位元串流及PIPE編碼位元串流。比較上,針對PIPE編碼位元串流交插的PIPE編碼器及PIPE解碼器實例,亦及第7至13圖之實施例只提供PIPE編碼位元串流的分開交插。如前文已述,甚至此等實施例可作為下述基礎,諸如藉使用第5及6圖所示位元串流交插,使用另一交插器/解交插器對134及228(參考第1及2圖)達成完全交插的位元串流。但其次說明之實施例使用一階段式交插器/解交插器128及230一次對VLC位元串流及PIPE編碼位元串流二者執行交插。
於描述在位元串流內部交插的VLC及PIPE編碼符碼實施例之進一步細節之前,為了達成複雜度與編碼效率間更佳適當的折衷,就第20及21圖描述基本結構而不使用交插。
第1圖之熵編碼裝置之結構顯示於第20圖。熵編碼裝置將來源符碼串流1a相對應於第1及2圖之VLC編碼及PIPE編碼來源符碼的組合亦即106及218的組合轉成二或多個部分位元串流12、12a之一集合,位元串流12a係相對應於第1及2圖之位元串流112及206。
如前文已述,各個來源符碼1a可相關聯一指示,該指示載明來源符碼是否使用VLC編碼器22a內部的標準VLC代碼編碼,VLC編碼器22a係相對應於第1圖的VLC編碼器102,或載明來源符碼是否欲使用PIPE編碼構思編碼。如前文就第1及2圖所述,本指示可能並未明確傳遞至解碼端。反而相關聯指示可植基於來源符碼本身的型別或類別。
VLC編碼符碼1b係以標準VLC代碼編碼,其又使用VLC編碼器22a依據前述符碼類別或符碼型別決定。相對應碼字組11a寫至分開的部分位元串流12a。如前文就第1圖及第3圖(舉例)所述,非VLC代碼符碼1係使用PIPE編碼而編碼,此時獲得多個部分位元串流12。部分來源符碼1a可能已經以二進制化方式二進制化,係由前文就第1圖所述的兩個部分組成。此等部分中之一者可以PIPE辦法編碼及寫至相對應的部分位元串流12。箱序列之另一部分可以標準VLC代碼編碼及寫至相對應之部分位元串流12a。
匹配第20圖實施例之基本熵解碼裝置係顯示於第21圖。
該解碼器基本上執行第20圖編碼器的顛倒操作,故先前編碼的來源符碼序列27、27a係從二或多個部分位元串流(24、24a)之集合解碼。解碼器包括兩個不同處理流程:針對資料請求之流程,複製編碼器之資料流程,及表示編碼器資料流程之顛倒資料流程。於第21圖之例示說明中,虛線箭頭表示資料請求流程,而實線箭頭表示資料流程。解碼器之積木基本上複製編碼器之積木,但具體實現顛倒操作。
於本發明之較佳實施例中,各個符碼請求係與一指示相關聯,該指示載明來源符碼是否使用標準VLC代碼編碼或使用PIPE編碼構思編碼。如前文就第20圖所述,該指示可植基與剖析規則或來源符碼本身表示的語法元素的語法。舉例言之,參考第1及2圖,已經描述不同語法元素型別可與不同編碼方案亦即VLC編碼或PIPE相關聯。同理可應用於二進制化的不同部分,或更一般而言語法元素之其它符碼化。若符碼為VLC編碼符碼,則請求送至VLC解碼器22a,VCL碼字組23a係讀取自分開的部分位元串流24a。輸出相對應解碼符碼27a。若符碼係以PIPE編碼,則例如如前文就第4圖所述,符碼27係從部分位元串流集合24解碼。
於本發明之另一較佳實施例中,若干來源符碼係以二進制化有兩部分組成之方式二進制化。此等部分中之一者係以PIPE辦法編碼,相對應地從相關聯之部分位元串流24解碼。及箱序列之另一部分係以標準VLC代碼編碼且係以VLC解碼器22a從分開的部分位元串流24a讀取相對應的碼字組23a而解碼。
部分位元串流之傳輸及多工化(VLC編碼及PIPE編碼)由編碼器所形成之部分位元串流12、12a可分開傳輸或可多工化成為單一位元串流,或部分位元串流之碼字組可交插於單一位元串流。
於本發明之較佳實施例中,定量資料之各個部分位元串流係寫至一個資料封包。資料量可以是來源符碼之任意集合,諸如靜像、視訊序列之欄位或框、靜像之截割片、視訊序列之欄位或框之截割片、或音訊樣本之框等。
於本發明之另一較佳實施例中,針對定量資料之部分位元串流中之二或多者12、12a或針對定量資料之全部位元串流係多工化成為一個資料封包。含有多工化部分位元串流之資料封包之結構可例示說明於第5圖。
資料封包300係由標頭及針對各個部分位元串流(針對所考慮之資料量)之一個資料區劃所組成。資料封包之標頭301含有資料封包(其餘部分)劃分成位元串流資料節段302之指示。除了劃分指示外,標頭可含有額外資訊。於本發明之較佳實施例中,資料封包劃分之指示為資料節段起點位置,以位元或位元組或位元倍數或位元組倍數為單位。於本發明之較佳實施例中,資料節段之起點位置係相對於資料封包起點或相對於標頭終點或相對於前一個資料封包起點,以絕對值在資料封包的標頭編碼。於本發明之又一實施例中,資料節段之起點位置係差異編碼,亦即只編碼資料節段實際起點與資料節段起點預測間之差。該預測可基於已知資訊或傳輸資訊導出,該等資訊諸如資料封包的整體大小、標頭大小、資料封包中資料節段數目、前一個資料節段之起點位置。於本發明之較佳實施例中,第一資料封包之起點位置係不編碼,反而係基於資料封包標頭的大小推定。於解碼器端,傳輸的劃分指示用來導出資料節段起點。然後資料節段用作為部分位元串流12、12a及該等資料節段中所含的資料以循序順序饋至相對應箱解碼器及VLC解碼器。
碼字組(VLC及PIPE碼字組)之交插
用於某些應用,前述於一個資料封包之部分位元串流(針對定量來源符碼)之多工化可具有下列缺點:一方面,針對小型資料封包,傳訊劃分所需的用於側邊資訊之位元數目相對於部分位元串流中的實際資料變顯著,最終減低編碼效率。另一方面,多工化可能不適合要求低延遲的應用(例如用於視訊會議用途)。採用所述多工化,在部分位元串流完全形成之前,編碼器無法開始資料封包的傳輸,原因在於事前未知區劃的起點位置。此外,一般而言,解碼器必須等到接收到最末資料節段的起點才開始資料封包的解碼。用於視訊會議系統等用途,此等延遲加總至數幅視訊圖像之額外總系統延遲(特別針對接近傳輸位元率之位元率及針對要求幾乎二圖像間的時間區間用來編碼/解碼圖像的編碼器/解碼器),對此等應用具關鍵重要性。為了克服某些應用之缺點,本發明之較佳實施例之編碼器可以碼字組係有二或多個箱編碼器產生及VLC編碼器係交插成單一位元串流之方式組配。具有交插碼字組之位元串流可直接送到解碼器(當忽略小量緩衝器延遲時,參見後文)。於解碼器端,二或多個箱解碼器及VLC解碼器以解碼順序直接從位元串流讀取碼字組;解碼可始於第一接收之位元。此外,不要求側邊資訊來傳訊部分位元串流之多工化(或交插)。
具有碼字組交插之編碼器的基本結構顯示於第22圖。箱編碼器10及VLC編碼器10a不會將碼字組直接寫至部分位元串流,反而連結單一碼字組緩衝器29,從該碼字組緩衝器碼字組以編碼順序寫至位元串流34。箱編碼器10發送針對一或多個新碼字組緩衝器分錄28之請求給碼字組緩衝器29,及隨後發送碼字組30給碼字組緩衝器29,其係儲存於保留的緩衝器分錄。VLC編碼器10a將VLC碼字組30a直接寫至碼字組緩衝器29。碼字組緩衝器29之(通常為可變長度)碼字組31係藉碼字組寫入器32存取,碼字組寫入器將相對應位元33寫至所產生的位元串流34。碼字組緩衝器29操作為先進先出緩衝器;較早保留的碼字組分錄係較早寫至位元串流。
於本發明之較佳實施例中,碼字組緩衝器係如下述操作。若新箱7係送至特定箱緩衝器8,及已經儲存在箱緩衝器之箱數目為零,且目前並無碼字組保留在針對連結特定箱緩衝器之箱編碼器的碼字組緩衝器內,連結的箱編碼器10發送請求給碼字組緩衝器,藉此一或多個碼字組分錄係保留在針對特定箱編碼器10之碼字組緩衝器29內。碼字組分錄可具有可變位元數目;於緩衝器分錄中的位元數目之上臨界值通常係由針對相對應之箱編碼器的最大碼字組大小給定。藉箱編碼器(已經保留碼字組分錄)產生的下個碼字組或其次多個碼字組係儲存在碼字組緩衝器之保留分錄內。若在針對特定箱編碼器之碼字組緩衝器內的全部保留緩衝器分錄皆以碼字組填補,及下個箱係送至連結特定箱編碼器之箱緩衝器,一或多個新碼字組係保留在該特定箱編碼器之碼字組緩衝器等。VLC編碼器10a直接將VLC碼字組30a寫至碼字組緩衝器29的下個自由分錄,亦即針對該VLC編碼器,碼字組保留及碼字組寫入只進行一次。碼字組緩衝器29以某種方式表示先進先出緩衝器。緩衝器分錄係以循序順序保留。已經較早保留的相對應緩衝器分錄之碼字組係較早寫至位元串流。碼字組寫入器32係連續地或在碼字組30寫至碼字組緩衝器29後檢查碼字組緩衝器29之狀態。若第一緩衝器分錄含有一個完整碼字組(亦即該緩衝器分錄並未保留,反而包括一個碼字組),則相對應碼字組31及相對應緩衝器分錄係從碼字組緩衝器20移出,及碼字組33之位元寫至位元串流。此種處理程序重複直到第一緩衝器分錄不含碼字組(亦即其被保留或為自由)為止。在解碼程序終點,亦即所考慮資料量的全部來源符碼皆已經處理後,碼字組緩衝器須清理。針對該清理程序,後述應用於各個箱緩衝器/箱編碼器作為第一步驟:若箱緩衝器確實含有箱,具特定值或任意值之箱添加直到箱序列表示與碼字組相關聯之箱序列(如前記,增加箱之一種較佳方式係增加產生最短可能碼字組之此等箱值,或其中之一者,該等碼字組係與含有箱緩衝器之原先內容作為前綴之一箱序列相關聯),然後碼字組係寫至針對相對應箱編碼器之下個保留箱分錄(及相對應)箱緩衝器為空白。若多於一個緩衝器分錄已經保留用於一或多個箱編碼器,則碼字組緩衝器仍然含有保留的碼字組分錄。於該種情況下,此等碼字組係以針對相對應箱編碼器的任意的但有效的碼字組填補。於本發明之較佳實施例中,插入最短有效碼字組或最短有效碼字組中之一者(若為多數)。VLC編碼器不要求任何結束。最後,碼字組緩衝器內的全部剩餘碼字組係寫至位元串流。
碼字組緩衝器狀態之二實例係例示說明於第23圖。於實例(a)中,碼字組緩衝器含有4個以碼字組填補的分錄(其中二者為VLC分錄)及3個保留分錄。此外,下個自由緩衝器分錄加註記號。第一分錄係以碼字組填補(亦即該箱編碼器2剛將一個碼字組寫至先前保留分錄)。於次一步驟,此種碼字組將從碼字組緩衝器移開及寫至位元串流。然後針對箱編碼器3之第一保留碼字組為第一緩衝器分錄,但此分錄無法從碼字組緩衝器移開,原因在於該分錄只是保留,但無任何碼字組寫至此一分錄。於實例(b)中,碼字組緩衝器含有4個以碼字組填補的分錄(其中之一者為VLC緩衝器分錄)及4個保留分錄。第一分錄加註為保留,因此碼字組寫入器無法將碼字組寫至位元串流。雖然四個碼字組含在碼字組緩衝器內,但碼字組寫入器必須等候直到碼字組寫至箱編碼器3之第一保留緩衝器分錄。注意碼字組必須以其保留順序寫入來可在解碼器端逆轉處理程序(參見後文)。及進一步注意VLC緩衝器分錄經常性為完成,原因在於碼字組的保留及寫入係一次完成。
具碼字組交插之解碼器的基本結構顯示於第24圖。箱解碼器22及VLC解碼器2a不會直接從分開部分位元串流讀取碼字組,反而係連結位元緩衝器38,從該位元緩衝器以編碼順序讀取碼字組37、37a。須注意並非必然需要位元緩衝器38,原因在於碼字組也可直接從位元串流讀取。位元緩衝器38主要係含括於例示說明中用以明確分開處理鏈的不同構面。具有交插碼字組的位元串流40之位元39係循序插入位元緩衝器38,該緩衝器表示先進先出緩衝器。若特定箱解碼器22接收針對一或多個箱序列35之請求,箱解碼器22透過針對位元36之請求從位元緩衝器38讀取一或多個碼字組37。解碼器可瞬間解碼來源符碼。同理,若VLC解碼器22a接收新符碼之請求19a,則從位元緩衝器38讀取相對應之VLC碼字組37a及送返解碼符碼27a。注意編碼器(如前述)必須藉適當操作碼字組緩衝器來確保碼字組係以由箱解碼器所請求之相同順序寫至位元串流。於解碼器,整個解碼程序係藉針對來源符碼之請求觸發。在編碼器端藉特定箱編碼器保留的碼字組數目與藉相對應箱解碼器讀取的碼字組數目等參數必須相等。
具低延遲約束之可變長度碼字組之交插
所述碼字組交插不要求發送任何劃分資訊作為側邊資訊。及因碼字組係在位元串流交插,故通常延遲小。但並不保證遵守特定延遲約束(例如由儲存在碼字組緩衝器之最大位元數目所規定)。此外,碼字組緩衝器要求的緩衝器大小理論上變成極大。考慮第23(b)圖之實例時,可能並無額外箱發送至箱緩衝器3,因此箱編碼器3將不發送任何新碼字組給碼字組緩衝器直到在資料封包終點施加清理程序為止。則針對箱編碼器1及2之全部碼字組必須等候至資料封包的終點,隨後可寫至位元串流。藉增加額外機制至編碼程序(也添加至後述解碼程序)可克服此項缺點。額外機制之基本構思為若有關延遲或延遲上限之措施(參見後文)超過規定臨界值,則第一保留緩衝器分錄係藉清理相對應箱緩衝器(使用在資料封包終點的相似機制)填補。藉此機制,等候中的緩衝器分錄數目減少至相關聯延遲措施係低於規定的臨界值。於解碼器端,已經在編碼器端插入來遵守延遲約束的箱必須拋棄。用於此等箱的拋棄,基本上可使用如同編碼器端的相同機制。
如此已經描述熵編碼之新穎辦法,已經描述符碼序列對映至位元串流及反向對映。各個符碼載有相關聯之參數,該等參數為編碼器及解碼器同時已知。熵編解碼器含有多個先進先出(FIFO)緩衝器,FIFO緩衝器各自係分配給與符碼相關聯之參數子集。針對一符碼之給定參數,編碼器分配該符碼給相對應FIFO緩衝器。因編碼器分配規則為在解碼器端已知,解碼器從編碼器已經分配符碼之該FIFO緩衝器讀取。
若干語法元素係使用可變長度代碼編碼及寫至特定緩衝器。其它語法元素係使用機率區間劃分熵(PIPE)編碼構思編碼。此時符碼首先經二進制化,所得箱係基於相關聯之機率估值分類。機率估值可從測量值給定或導出,可在編碼器及解碼器同時進行。特定FIFO緩衝器含有具估計機率值落在所選擇的機率子集之符碼,因此可改良熵編碼。藉PIPE構思與VLC的組合所達成的改良可減低複雜度,同時仍然提供高度編碼效率。適合標準VLC代碼之符碼係以簡單低複雜度之VLC辦法編碼,而藉以VLC代碼編碼顯著增高位元率的其它符碼係以較複雜的PIPE構思編碼。
如此,為了進一步減低熵編碼的複雜度,符碼分裂成兩個類別。第一類別符碼可以VLC代碼良好呈現而不要求更複雜的PIPE編碼,而第二類符碼無法以VLC代碼有效表示而PIPE編碼用於此等符碼可顯著減低要求的位元率。
須注意前述實施例只以一個VLC編碼器及解碼器說明,但顯然此種構思可普及化成使用二及多個VLC編碼器及解碼器與PIPE編碼器交插。
雖然已經於裝置脈絡描述某些構面,但顯然此等構面全部皆表示相對應方法之描述,此處一區塊或裝置相對應於一方法步驟或方法步驟之結構。同理,於方法步驟脈絡中描述的構面也表示相對應裝置之相對應區塊或項目或結構的描述。部分或全部方法步驟可藉(或使用)硬體裝置執行,例如微處理器、可規劃電腦或電子電路。於若干實施例中,最重要步驟中之某一者或多者可藉此種裝置執行。
本發明之編碼/壓縮信號可儲存於數位儲存媒體或可在傳輸媒體諸如無線傳輸媒體或有線傳輸媒體諸如網際網路傳輸。
依據某些具體實現要求,本發明之實施例可於硬體或軟體具體實現。具體實現可使用數位儲存媒體進行,例如軟碟、DVD、藍光、CD、ROM、PROM、EPROM、EEPROM或快閃記憶體,該媒體具有可電子讀取控制信號儲存於其上且與可規劃電腦系統協作(或可協作)使得執行個別方法。因此,數位儲存媒體可以是電腦可讀取。依據本發明之若干實施例包含具有電子可讀取控制信號之資料載體,該資料載體可與可規劃電腦系統協作使得執行此處所述方法中之一者。
大致上,本發明之實施例可具體實現為具程式代碼之電腦程式產品,當電腦程式產品在電腦上跑時,程式代碼可操作來執行該等方法中之一者。程式代碼例如可儲存在機器可讀取載體上。
其它實施例包含儲存在機器可讀取載體上用以執行此處所述方法中之一者之電腦程式。
換言之,因此本發明方法之實施例為當電腦程式在電腦上跑時具有程式代碼用來執行此處所述方法中之一者之電腦程式。
本發明方法之又一實施例因而為包含用以執行此處所述方法中之一者之電腦程式記錄於其上之資料載體(或數位儲存媒體或電腦可讀取媒體)。
因此本發明方法之又一實施例為表示用以執行此處所述方法中之一者之該電腦程式之一資料串流或一信號序列。該資料串流或信號序列例如可經組配來透過資料通訊連結例如透過網際網路傳輸。
又一實施例包含組配來或適應來執行此處所述方法中之一者之一種處理構件,例如電腦或可規劃邏輯裝置。
又一實施例包含其上已安裝用來執行此處所述方法中之一者之電腦程式之電腦。
於若干實施例中,可規劃邏輯裝置(例如場可規劃閘陣列)可用來執行此處所述方法之部分或全部功能。於若干實施例中,場可規劃閘陣列可與微處理器協作來執行此處所述方法中之一者。通常該等方法較佳係藉任一種硬體裝置執行。
前述實施例只用以舉例說明本發明之原理。須瞭解此處所述配置及細節之修改及變化為熟諳技藝人士顯然易知。因此,預期本發明範圍只受隨附之申請專利範圍之範圍所限而不受藉由此處實施例之說明及解說所呈示之特定細節所限。
1、1a、1b、7...來源符碼、箱編碼器、非VLC編碼符碼
1b...VLC編碼符碼
2...二進制化器、箱編碼器
2a...VLC解碼器
3、9、15、17...箱、箱緩衝器、箱編碼器
4...參數分配器
5、9...參數、輸入箱、箱
6、18...箱緩衝器選擇器
7...輸出箱、箱
8、20...箱緩衝器
10...箱編碼器、二元算術編碼引擎
10a...VLC編碼器
11、11a、30、31、37、37a、41、44、47、57...碼字組
12、12a...部分位元串流
13、13a...來源符碼、來源符碼之請求
14...二進制化器
16...參數分配器
17...相關聯之參數集合、可能箱值
19、19a...VLC碼字組之請求
21...箱序列
22...二元算術解碼引擎、箱解碼器
22a...VLC編碼器、VLC解碼器
23、23a...碼字組
24、24a...部分位元串流
25、26...解碼箱
27...來源符碼
27a...已解碼來源符碼
28...碼字組緩衝器分錄
29、43...碼字組緩衝器
30a...VLC碼字組
32...碼字組寫入器
33...位元、碼字組
34、40、55...位元串流
35...箱序列
36、39、46、52、62...位元
38、48、58...位元緩衝器
49...保留固定長度位元序列之請求
51、61...通用位元緩衝器
52...位元序列
53...位元寫入器
54...移除的位元
59...固定長度位元序列之請求
60...固定長度位元序列
63...位元串流
100...細分器
102...可變長度代碼(VLC)編碼器
104...機率區間區劃熵(PIPE)編碼器
106...來源符碼序列
108、110...子序列
112...VLC位元串流
114、212...分配器
116...熵編碼器
118...PIPE編碼位元串流
120、214...選擇器
122...符碼化器
124...來源符碼序列
126...共用位元串流
128、130、134...交插器
132...共用PIPE編碼位元串流
136...分解器
138...語法元素序列、可剖析位元串流
200...VLC解碼器
202...PIPE解碼器
204...第一子序列
206...第一位元串流
208...第二子序列
210...熵解碼器
216...第二位元串流
218...共用序列
220...重組器
222...解符碼化器
224...組合器
226...語法元素序列
228...交插位元串流、解交插器
230、232、236...解交插器
234...解交插位元串流
300、310...資料封包
301、311...標頭
302、312...位元串流資料節段
313...部分位元串流之一部分
314...餘數
第1圖顯示依據一實施例熵編碼裝置之方塊圖;
第2圖顯示依據一實施例熵解碼裝置之方塊圖;
第3圖顯示可用在第1圖之依據一實施例PIPE編碼器之方塊圖;
第4圖顯示可用在第2圖之依據一實施例,適用以解碼藉第3圖之PIPE編碼器所產生之位元串流的PIPE解碼器之方塊圖;
第5圖顯示一示意圖,例示說明依據一實施例具多工化部分位元串流之資料封包;
第6圖顯示一示意圖,例示說明依據又一實施例具使用固定大小節段之替代分節之資料封包;
第7圖顯示運用部分位元串流交插之依據一實施例PIPE編碼器之方塊圖;
第8圖顯示一示意圖,例示說明依據一實施例針對在第7圖之編碼器端之一碼字組緩衝器狀態實例;
第9圖顯示運用部分位元串流交插之依據一實施例PIPE解碼器之方塊圖;
第10圖顯示使用單一碼字組集合之運用部分位元串流交插之依據一實施例PIPE解碼器之方塊圖;
第11圖顯示運用定長位元序列交插之依據一實施例PIPE編碼器之方塊圖;
第12圖顯示一示意圖,例示說明依據一實施例針對在第11圖之編碼器端之一通用位元緩衝器狀態實例;
第13圖顯示運用定長位元序列交插之依據一實施例PIPE解碼器之方塊圖;
第14圖顯示一線圖用以例示說明假設於(0,0.5]有均一機率分布,最佳機率區間離散化成為K=4區間;
第15圖顯示一示意圖,例示說明針對p=0.38之LPB機率之二元事件樹及藉霍夫曼演算法所得的相關聯之可變長度代碼;
第16圖顯示一線圖,給定表分錄之最大數目Lm 針對最佳代碼C,從此線圖可收集得相對位元率增加ρ (p ,C );
第17圖顯示一線圖,例示說明針對理想上最佳機率區間區劃成為K=12區間及使用V2V代碼之實際設計,有最大數目Lm =65表分錄之比率增加;
第18圖顯示一示意圖,例示說明用以將三元選擇樹轉換成完整二元選擇樹之實例;
第19圖顯示依據一實施例包含編碼器(左半)及解碼器(右半)之系統之方塊圖;
第20圖顯示依據一實施例熵編碼裝置之方塊圖;
第21圖顯示依據一實施例熵解碼裝置之方塊圖;
第22圖顯示依據又另一實施例熵編碼裝置之方塊圖;
第23圖顯示一示意圖,例示說明依據一實施例針對在第22圖之編碼器端之一通用位元緩衝器狀態實例;
第24圖顯示依據本案之又一實施例熵解碼裝置之方塊圖。
100‧‧‧細分器
102‧‧‧VLC編碼器
104‧‧‧PIPE編碼器
106‧‧‧來源符碼序列
108‧‧‧第一子序列
110‧‧‧第二子序列
112‧‧‧第一位元串流
114‧‧‧分配器
116‧‧‧熵編碼器
118‧‧‧第二位元串流
120‧‧‧選擇器
122‧‧‧符碼化器
124‧‧‧來源符碼序列、符碼化器輸出
126‧‧‧共用位元串流
128、130、134‧‧‧交插器
132‧‧‧共用PIPE編碼位元串流
136‧‧‧分解器
138‧‧‧可剖析位元串流

Claims (46)

  1. 一種熵編碼裝置,其係包含:一細分器,其係組配來將來源符碼之一序列細分為來源符碼之一第一子序列及來源符碼之一第二子序列;一可變長度代碼(VLC)編碼器,其係組配來將該第一子序列之來源符碼逐符碼地轉換成形成一第一位元串流之碼字組;及一機率區間區劃熵(PIPE)編碼器,其係組配來以字母表符碼之一序列形式表示而編碼該來源符碼之第二子序列,該PIPE編碼器包含:一分配器,其係組配來基於含在該字母表符碼序列之前字母表符碼內的資訊,從該等個別字母表符碼可推定的可能值中,將針對一機率分布估值之一測量值分配給該字母表符碼序列之各個字母表符碼;多個熵編碼器,其各自係組配來將前傳給個別熵編碼器之該等字母表符碼轉成一個別第二位元串流;及一選擇器,其係組配來前傳各個字母表符碼給該等多個熵編碼器中之一選定者,該項選擇係取決於分配給個別字母表符碼之測量值,一分解器,其係組配來將一語法元素序列轉換成該來源符碼序列,該轉換方式係藉由個別地分解至少一小組語法元素成為個別整數個來源符碼,使得針對該小組 共用的一數學函數施加於該個別語法元素之該整數個來源符碼上,獲得該個別語法元素,及該細分器係組配來使得該等個別語法元素之該等整數個來源符碼之該等來源符碼中之一者係屬於該來源符碼之第一子序列,而該等個別語法元素之該等整數個來源符碼之該等來源符碼中之另一者係屬於該來源符碼之第二子序列。
  2. 如申請專利範圍第1項之熵編碼裝置,其中該字母表符碼序列為一可剖析位元串流之一語法元素序列。
  3. 如申請專利範圍第2項之熵編碼裝置,其中該等語法元素係屬不同型別及該細分器係組配來依據該等語法元素之型別而執行該細分。
  4. 如申請專利範圍第2項之熵編碼裝置,其係進一步包含一符碼化器,其係組配來將該第二子序列之各個語法元素個別地對映至字母表符碼之一個別部分序列,該等部分序列可一起共同形成該字母表符碼序列。
  5. 如申請專利範圍第2項之熵編碼裝置,其中該等語法元素係屬不同型別,及該符碼化器係組配來運用針對不同型別的語法元素為不同之一符碼化對映方案而執行該第二子序列之該等語法元素的個別對映。
  6. 如申請專利範圍第1項之熵編碼裝置,其中該等語法元素係屬不同型別,及該分解器係組配來依據該等語法元素之型別而執行個別分解。
  7. 如申請專利範圍第1項之熵編碼裝置,其中該分解器係組配來使得該數學函數為加、減、除或乘。
  8. 如申請專利範圍第1項之熵編碼裝置,其係進一步包含一符碼化器,其係組配來將該第二子序列之各個來源符碼個別地對映至字母表符碼之一個別部分序列,該等部分序列可一起共同形成該字母表符碼序列。
  9. 如申請專利範圍第8項之熵編碼裝置,其中該符碼化器及該PIPE編碼器係組配來使得該等字母表符碼為二進制符碼。
  10. 如申請專利範圍第1項之熵編碼裝置,其中該字母表符碼序列係屬二進制符碼,及該分配器係組配來使得該機率分布之估值係由針對較低可能或較高可能箱值之機率估值之一測量值及載明一估值之一識別符所組成,針對該兩個可能箱值之估值表示該較低可能或較高可能箱值。
  11. 如申請專利範圍第1項之熵編碼裝置,其中該分配器係組配來基於含在該字母表符碼序列之先前字母表符碼內部之資訊而分配一脈絡給該字母表符碼序列之各個字母表符碼,各個脈絡具有與其相關聯之一個別機率分布估值,及組配來基於被分配個別脈絡之先前字母表符碼之符碼值而使各個脈絡之機率分布估值適於一實際符碼統計資料,並組配來基於與分配給該個別字母表符碼之脈絡相關聯之機率分布估值而決定針對各個字母表符碼之機率分布估值之測量值。
  12. 如申請專利範圍第11項之熵編碼裝置,其中該分配器係組配來於針對各個字母表符碼決定機率分布估值之測 量值中,將與分配給個別字母表符碼之該脈絡相關聯之機率分布估值量化成多個機率分布估值表示型態中之一者,以獲得針對該機率分布估值之測量值,及其中該選擇器係組配來使得從該等多個機率分布估值表示型態至該等多個熵編碼器定義一滿射(surjective)關聯性。
  13. 如申請專利範圍第12項之熵編碼裝置,其中該選擇器係組配來隨著時間,取決於該字母表符碼序列之先前字母表符碼,以預定的決定性方式改變從一機率分布估值範圍至該等多個機率分布估值表示型態之一量化對映表。
  14. 如申請專利範圍第13項之熵編碼裝置,其中該等多個熵編碼器係組配來回應於該量化對映表之一變化,調適其將字母表符碼轉成第二位元串流之方式。
  15. 如申請專利範圍第1項之熵編碼裝置,其中該等多個熵編碼器中之至少一者具有與其相關聯之一符碼輸入緩衝器,其中該選擇器係組配來透過該相關聯之符碼輸入緩衝器而將該等字母表符碼前傳至該至少一個熵編碼器。
  16. 如申請專利範圍第1項之熵編碼裝置,其中該等多個熵編碼器為組配來將字母表符碼序列對映至碼字組的可變長度編碼器。
  17. 如申請專利範圍第1項之熵編碼裝置,其中該等多個熵編碼器各自為經組配來將可變長度之字母表符碼序列對映至固定長度之碼字組的一可變長度編碼器。
  18. 一種熵編碼裝置,其係包含: 一細分器,其係組配來將來源符碼之一序列細分為來源符碼之一第一子序列及來源符碼之一第二子序列;一可變長度代碼(VLC)編碼器,其係組配來將該第一子序列之來源符碼逐符碼地轉換成形成一第一位元串流之碼字組;及一機率區間區劃熵(PIPE)編碼器,其係組配來以字母表符碼之一序列形式表示而編碼該來源符碼之第二子序列,該PIPE編碼器包含:一分配器,其係組配來基於含在該字母表符碼序列之前字母表符碼內的資訊,從該等個別字母表符碼可推定的可能值中,將針對一機率分布估值之一測量值分配給該字母表符碼序列之各個字母表符碼;多個熵編碼器,其各自係組配來將前傳給個別熵編碼器之該等字母表符碼轉成一個別第二位元串流;及一選擇器,其係組配來前傳各個字母表符碼給該等多個熵編碼器中之一選定者,該項選擇係取決於分配給個別字母表符碼之測量值,其中該分配器係組配來基於含在該字母表符碼序列之先前字母表符碼內部之資訊而分配一脈絡給該字母表符碼序列之各個字母表符碼,各個脈絡具有與其相關聯之一個別機率分布估值,且組配來基於被分配個別脈絡之先前字母表符碼之符碼值而使各個脈絡之機率 分布估值適於一實際符碼統計資料,並組配來基於與分配給該個別字母表符碼之脈絡相關聯之機率分布估值而決定針對各個字母表符碼之機率分布估值之測量值,其中該分配器係組配來於針對各個字母表符碼決定機率分布估值之測量值中,將與分配給個別字母表符碼之該脈絡相關聯之機率分布估值量化成多個機率分布估值表示型態中之一者,以獲得針對該機率分布估值之測量值,及其中該選擇器係組配來使得從該等多個機率分布估值表示型態至該等多個熵編碼器定義一滿射(surjective)關聯性,其中該選擇器係組配來隨著時間,取決於該字母表符碼序列之先前字母表符碼,以預定的決定性方式改變從一機率分布估值範圍至該等多個機率分布估值表示型態之一量化對映表,其中該選擇器係組配來改變該量化對映表使得該等熵編碼器將該等字母表符碼轉換成的該等第二位元串流之位元率變成較低分散性。
  19. 一種熵編碼裝置,其係包含:一細分器,其係組配來將來源符碼之一序列細分為來源符碼之一第一子序列及來源符碼之一第二子序列;一可變長度代碼(VLC)編碼器,其係組配來將該第一子序列之來源符碼逐符碼地轉換成形成一第一位元串流之碼字組;及一機率區間區劃熵(PIPE)編碼器,其係組配來以字 母表符碼之一序列形式表示而編碼該來源符碼之第二子序列,該PIPE編碼器包含:一分配器,其係組配來基於含在該字母表符碼序列之前字母表符碼內的資訊,從該等個別字母表符碼可推定的可能值中,將針對一機率分布估值之一測量值分配給該字母表符碼序列之各個字母表符碼;多個熵編碼器,其各自係組配來將前傳給個別熵編碼器之該等字母表符碼轉成一個別第二位元串流;及一選擇器,其係組配來前傳各個字母表符碼給該等多個熵編碼器中之一選定者,該項選擇係取決於分配給個別字母表符碼之測量值,其中該等多個熵編碼器為組配來將字母表符碼序列對映至碼字組的可變長度編碼器;其係進一步包含一交插器,其係組配來以一循序順序在該第一位元串流及第二位元串流內部保留針對該等碼字組之一碼字組分錄序列,該循序順序係取決於下述順序,其中由該選擇器前傳該字母表符碼序列之字母表符碼給該等多個熵編碼器結果分別地導致一新字母表符碼序列起點係對映至在該個別熵編碼器之一碼字組,及該第二子串流之一新來源符碼係由該VLC編碼器所對映,及組配來分別地從該第一位元串流及第二位元串流移除以循序順序載入該等碼字組分錄的碼字組以 獲得交插碼字組之一單一串流,其中各個熵編碼器係組配來循序地將其碼字組載入針對該個別熵編碼器所保留的該等碼字組分錄,及該選擇器係組配來以維持下述順序其中該第一子串流及第二子串流之來源符碼係散布在該來源符碼序列內部之順序而前傳表示該第二子串流之來源符碼的該等字母表符碼。
  20. 如申請專利範圍第19項之熵編碼裝置,其中該等多個熵編碼器及該交插器係組配來藉具有目前已前傳但尚未對映的字母表符碼作為前綴之不計(don’t-care)字母表符碼而將目前已前傳但尚未對映的符碼間歇地延長至有效字母表符碼序列,將如此延長的字母表符碼序列對映至碼字組,將如此所得碼字組載入保留的碼字組分錄,及清理(flush)該等碼字組分錄。
  21. 如申請專利範圍第20項之熵編碼裝置,其中該等多個熵編碼器及該交插器係組配來於保留的碼字組分錄數目加上具有碼字組載入其中的碼字組分錄數目係滿足一預定標準之情況下,執行該間歇延長、載入、及清理。
  22. 一種熵解碼裝置,其係包含:一可變長度代碼(VLC)解碼器,該VLC解碼器係組配來從一第一位元串流之碼字組逐一碼字組地重新建構來源符碼之一第一子序列之來源符碼;一機率區間區劃熵(PIPE)解碼器,該PIPE解碼器係組配來重新建構以一字母表符碼序列形式表示的來源符碼之一第二子序列,且回應於循序地針對該等字母表 符碼請求的字母表符碼請求,該PIPE解碼器包含:多個熵解碼器,其各自係組配來將一個別第二位元串流轉成該字母表符碼序列之字母表符碼;一分配器,該分配器係組配來基於含在該字母表符碼序列之先前已重構的字母表符碼中之資訊,針對表示欲重構的來源符碼之第二子序列之該字母表符碼序列之一字母表符碼的各個請求,從該個別字母表符碼可推定的多個可能值中,分配機率分布估值之一測量值;及一選擇器,該選擇器係組配來針對表示欲重構的來源符碼之第二子序列之該字母表符碼序列之一字母表符碼的各個請求,從該等多個熵解碼器中之一擇定者中,取回該字母表符碼序列之個別字母表符碼,該項選擇係取決於分配給個別字母表符碼之個別請求的該測量值,其中該來源符碼之第一子序列及來源符碼之第二子序列係共通地形成一來源符碼序列,該熵解碼裝置係進一步包含一組合器,其係組配來藉由從個別整數個來源符碼個別地組合各個語法元素而從該來源符碼序列組合一語法元素序列,其中該至少一個語法元素之整數係大於1,且該組合器係組配來使得該至少一個語法元素之整數個來源符碼的該等來源符碼中之一者屬於該來源符碼之第一子序列,及該至少一個語法元素之整數個來源符碼的該等來源符碼中之 另一者屬於該來源符碼之第二子序列。
  23. 如申請專利範圍第22項之熵解碼裝置,其係進一步包含一重組器,其係組配來重組該來源符碼之第一子序列及來源符碼之第二子序列而獲得該來源符碼序列。
  24. 如申請專利範圍第22項之熵解碼裝置,其中該來源符碼序列為一可剖析位元串流之語法元素序列。
  25. 如申請專利範圍第24項之熵解碼裝置,其中該等語法元素係屬不同型別,及該第一位元串流與該等第二位元串流係彼此交插成一交插位元串流,該熵解碼裝置係組配來取決於該等語法元素型別而分開該第一位元串流與該等第二位元串流。
  26. 如申請專利範圍第23項之熵解碼裝置,其係進一步包含一解符碼化器,其係組配來以字母表符碼之部分序列為單位,將該字母表符碼序列重新對映至該等語法元素。
  27. 如申請專利範圍第26項之熵解碼裝置,其中該等語法元素係屬不同型別,及該解符碼化器係組配來使用針對不同型別的語法元素為不同之一符碼化對映方案而執行該重新對映。
  28. 如申請專利範圍第22項之熵解碼裝置,其中該等語法元素係屬不同型別,及該組合器係組配來依據該等語法元素型別而執行個別的組合動作。
  29. 如申請專利範圍第22項之熵解碼裝置,其中該組合器係組配來從個別整數個來源符碼組合該等語法元素之至少一個小組,使得針對該小組共用之一數學函數施加在 該個別語法元素之整數個來源符碼上時獲得該個別語法元素。
  30. 如申請專利範圍第22項之熵解碼裝置,其中該組合器係組配來使得該數學函數為加、減、除或乘。
  31. 如申請專利範圍第22項之熵解碼裝置,其係進一步包含一解符碼化器,其係組配來以字母表符碼之部分序列為單位,將該字母表符碼序列個別地重新對映至該第二子序列之該等來源符碼。
  32. 如申請專利範圍第31項之熵解碼裝置,其中該解符碼化器及PIPE解碼器係組配來使得該等字母表符碼為二進制符碼。
  33. 如申請專利範圍第22項之熵解碼裝置,其中該字母表符碼序列係屬二進制字母表,及該分配器係組配來使得該機率分布之估值係由針對該二進制字母表之兩個可能箱值中之一較低可能或較高可能箱值之機率估值之一測量值及載明一估值之一識別符所組成,針對兩個可能箱值之估值表示該較低可能或較高可能箱值。
  34. 如申請專利範圍第22項之熵解碼裝置,其中該分配器係組配來基於含在該字母表符碼子序列之先前重構的字母表符碼內部之資訊而內部分配一脈絡給針對該字母表符碼子序列之一字母表符碼之各個請求,各個脈絡具有與其相關聯之一個別機率分布估值,及組配來基於被分配個別脈絡之先前重構的字母表符碼之符碼值而使各個脈絡之機率分布估值適於一實際符碼統計資料,及 組配來基於與分配給該個別字母表符碼之脈絡相關聯之該機率分布估值,針對該字母表符碼子序列之一字母表符碼的各個請求來決定針對該字母表符碼子序列之個別字母表符碼之機率分布估值之測量值。
  35. 如申請專利範圍第34項之熵解碼裝置,其中該分配器係組配來於針對一字母表符碼之各個請求決定機率分布估值之測量值中,將與分配給個別字母表符碼之該脈絡相關聯之機率分布估值量化成多個機率分布估值表示型態中之一者而獲得針對該機率分布估值之測量值,及其中該選擇器係組配來使得從該等多個機率分布估值表示型態至該等多個熵解碼器定義一滿射關聯性。
  36. 如申請專利範圍第35項之熵解碼裝置,其中該選擇器係組配來隨著時間,取決於該字母表符碼序列之先前重構字母表符碼,以預定的決定性方式改變從一機率分布估值範圍至該等多個機率分布估值表示型態之一量化對映表。
  37. 如申請專利範圍第36項之熵解碼裝置,其中該等多個熵解碼器係組配來調適其回應於量化對映表之一變化而將個別第二位元串流轉成字母表符碼之方式。
  38. 如申請專利範圍第22項之熵解碼裝置,其中至少一個熵解碼器具有與其相關聯之一符碼輸出緩衝器,其中該選擇器係組配來透過該相關聯之符碼輸出緩衝器而從該至少一個熵解碼器取回該等字母表符碼。
  39. 如申請專利範圍第22項之熵解碼裝置,其中該等熵解碼 器為組配來將碼字組對映至字母表符碼序列之可變長度解碼器。
  40. 如申請專利範圍第39項之熵解碼裝置,其係進一步包含一解交插器,其係組配來以由在該來源符碼序列內部之該第一子序列及第二子序列之來源符碼的順序所界定之一順序而藉解交插單一位元串流內部之碼字組而產生該第一及第二位元串流。
  41. 如申請專利範圍第40項之熵解碼裝置,其中該解交插器係組配來,每當目前在線上之該來源符碼序列內部之一來源符碼係屬於該第一子序列,則將在單一位元串流內部之一目前碼字組視為該第一位元串流之一碼字組,及每當目前在線上之該來源符碼序列內部之一來源符碼係屬於該第二子序列,則將在單一位元串流內部之一目前碼字組視為該第二位元串流中之個別一者之一碼字組,若屬於該目前來源符碼的字母表符碼中之任一者需要藉所選熵解碼器取決於分配給個別字母表符碼之請求的測量值的該個別第二位元串流之一碼字組對映至一個別字母表符碼之一新對映關係,若此等字母表符碼中之若干者存在係屬目前來源符碼,則使用此等字母表符碼中之一順序,該順序係取決於在該字母表符碼序列內部之該字母表符碼順序。
  42. 一種熵解碼裝置,其係包含:一可變長度代碼(VLC)解碼器,該VLC解碼器係組 配來從一第一位元串流之碼字組逐一碼字組地重新建構來源符碼之一第一子序列之來源符碼;一機率區間區劃熵(PIPE)解碼器,該PIPE解碼器係組配來重新建構以一字母表符碼序列形式表示的來源符碼之一第二子序列,且回應於循序地針對該等字母表符碼請求的字母表符碼請求,該PIPE解碼器包含:多個熵解碼器,其各自係組配來將一個別第二位元串流轉成該字母表符碼序列之字母表符碼;一分配器,該分配器係組配來基於含在該字母表符碼序列之先前已重構的字母表符碼中之資訊,針對表示欲重構的來源符碼之第二子序列之該字母表符碼序列之一字母表符碼的各個請求,從該個別字母表符碼可推定的多個可能值中,分配機率分布估值之一測量值;及一選擇器,該選擇器係組配來針對表示欲重構的來源符碼之第二子序列之該字母表符碼序列之一字母表符碼的各個請求,從該等多個熵解碼器中之一擇定者中,取回該字母表符碼序列之個別字母表符碼,該項選擇係取決於分配給個別字母表符碼之個別請求的該測量值,其中該來源符碼之第一子序列及來源符碼之第二子序列係共通地形成一來源符碼序列,其中該分配器係組配來基於含在該字母表符碼子序列之先前重構的字母表符碼內部之資訊而內部分配 一脈絡給針對該字母表符碼子序列之一字母表符碼之各個請求,各個脈絡具有與其相關聯之一個別機率分布估值,及組配來基於被分配個別脈絡之先前重構的字母表符碼之符碼值而使各個脈絡之機率分布估值適於一實際符碼統計資料,及組配來基於與分配給該個別字母表符碼之脈絡相關聯之該機率分布估值,針對該字母表符碼子序列之一字母表符碼的各個請求來決定針對該字母表符碼子序列之個別字母表符碼之機率分布估值之測量值,其中該分配器係組配來於針對一字母表符碼之各個請求決定機率分布估值之測量值中,將與分配給個別字母表符碼之該脈絡相關聯之機率分布估值量化成多個機率分布估值表示型態中之一者而獲得針對該機率分布估值之測量值,及其中該選擇器係組配來使得從該等多個機率分布估值表示型態至該等多個熵解碼器定義一滿射關聯性,其中該選擇器係組配來隨著時間,取決於該字母表符碼序列之先前重構字母表符碼,以預定的決定性方式改變從一機率分布估值範圍至該等多個機率分布估值表示型態之一量化對映表,其中該選擇器係組配來改變量化對映表使得該等字母表符碼從該等多個熵解碼器取回之比率係變成較低分散性。
  43. 一種熵解碼裝置,其係包含: 一可變長度代碼(VLC)解碼器,該VLC解碼器係組配來從一第一位元串流之碼字組逐一碼字組地重新建構來源符碼之一第一子序列之來源符碼;一機率區間區劃熵(PIPE)解碼器,該PIPE解碼器係組配來重新建構以一字母表符碼序列形式表示的來源符碼之一第二子序列,且回應於循序地針對該等字母表符碼請求的字母表符碼請求,該PIPE解碼器包含:多個熵解碼器,其各自係組配來將一個別第二位元串流轉成該字母表符碼序列之字母表符碼;一分配器,該分配器係組配來基於含在該字母表符碼序列之先前已重構的字母表符碼中之資訊,針對表示欲重構的來源符碼之第二子序列之該字母表符碼序列之一字母表符碼的各個請求,從該個別字母表符碼可推定的多個可能值中,分配機率分布估值之一測量值;及一選擇器,該選擇器係組配來針對表示欲重構的來源符碼之第二子序列之該字母表符碼序列之一字母表符碼的各個請求,從該等多個熵解碼器中之一擇定者中,取回該字母表符碼序列之個別字母表符碼,該項選擇係取決於分配給個別字母表符碼之個別請求的該測量值,其中該來源符碼之第一子序列及來源符碼之第二子序列係共通地形成一來源符碼序列,其中該等熵解碼器為組配來將碼字組對映至字母 表符碼序列之可變長度解碼器;該熵解碼裝置進一步包含一解交插器,其係組配來以由在該來源符碼序列內部之該第一子序列及第二子序列之來源符碼的順序所界定之一順序而藉解交插單一位元串流內部之碼字組而產生該第一及第二位元串流。
  44. 一種熵編碼方法,其係包含下列步驟:將一語法元素序列轉換成該來源符碼序列,該轉換方式係藉由個別地分解至少一小組語法元素成為個別整數個來源符碼,使得針對該小組共用的一數學函數施加於該個別語法元素之該整數個來源符碼上,獲得該個別語法元素;細分該來源符碼序列成為來源符碼之一第一子序列及來源符碼之一第二子序列,使得該等個別語法元素之該等整數個來源符碼之該等來源符碼中之一者係屬於該來源符碼之第一子序列,而該等個別語法元素之該等整數個來源符碼之該等來源符碼中之另一者係屬於該來源符碼之第二子序列;將該第一子序列之來源符碼逐符碼地轉換成形成一第一位元串流之碼字組;編碼以一字母表符碼序列形式表示的該來源符碼之第二子序列,其包含下列步驟:基於該字母表符碼序列之先前字母表符碼內部所含資訊,將該等個別字母表符碼可推定的可能 值中之一機率分布估值之一測量值分配給該字母表符碼序列之各個字母表符碼;及前傳各個字母表符碼給多個熵編碼器中之一擇定者,其各自係組配來將前傳給個別熵編碼器之該等字母表符碼轉換成一個別第二位元串流,該項選擇係取決於分配給個別字母表符碼之測量值。
  45. 一種熵解碼方法,其係包含下列步驟:從一第一位元串流之碼字組逐碼字組地重構來源符碼之一第一子序列之來源符碼;回應於循序地請求字母表符碼之字母表符碼請求,重構以一字母表符碼序列形式表示的來源符碼之一第二子序列,及使用多個熵解碼器,其各自係組配來將一個別第二位元串流轉換成該字母表符碼序列之字母表符碼,其包含下列步驟:基於該字母表符碼序列之先前已重構字母表符碼內部所含資訊,將該等個別字母表符碼可推定的可能值中之一機率分布估值之一測量值分配給表示欲重構的來源符碼之第二子序列之該字母表符碼序列之一字母表符碼的各個請求;及針對表示欲重構的來源符碼之第二子序列之該字母表符碼序列之一字母表符碼的各個請求,從該等多個熵解碼器中之一擇定者取回該字母表符碼序列之個別字母表符碼,該項選擇係取決於分配給針對個別字母表符碼之請求的測量值, 其中該來源符碼之第一子序列及該來源符碼之第二子序列共通地形成一來源符碼序列,其中該熵解碼方法進一步包含藉由從個別整數個來源符碼個別地組合各個語法元素而從該來源符碼序列組合一語法元素序列,其中該至少一個語法元素之整數係大於1,且該組合器係組配成使得該至少一個語法元素之整數個來源符碼的該等來源符碼中之一者屬於該來源符碼之第一子序列,及該至少一個語法元素之整數個來源符碼的該等來源符碼中之另一者屬於該來源符碼之第二子序列。
  46. 一種具有程式碼之電腦程式,該程式碼用以於在一電腦上運行時執行如申請專利範圍第44或45項之方法。
TW100132443A 2010-09-09 2011-09-08 熵編碼及解碼裝置與方法、和相關電腦程式 TWI500274B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2010/063249 WO2012031628A1 (en) 2010-09-09 2010-09-09 Entropy encoding and decoding scheme

Publications (2)

Publication Number Publication Date
TW201230695A TW201230695A (en) 2012-07-16
TWI500274B true TWI500274B (zh) 2015-09-11

Family

ID=42953811

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100132443A TWI500274B (zh) 2010-09-09 2011-09-08 熵編碼及解碼裝置與方法、和相關電腦程式

Country Status (5)

Country Link
US (1) US9130585B2 (zh)
EP (1) EP2614592B1 (zh)
HU (1) HUE039299T2 (zh)
TW (1) TWI500274B (zh)
WO (1) WO2012031628A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120052882A (ko) * 2010-11-15 2012-05-24 한국전자통신연구원 병렬 엔트로피 부호화/복호화 방법 및 장치
EP2664070B1 (en) 2011-01-14 2016-11-02 GE Video Compression, LLC Entropy encoding and decoding scheme
FR2972588A1 (fr) 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR2977111A1 (fr) 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US10003817B2 (en) 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
EP2803190B1 (en) * 2012-01-09 2017-10-25 Dolby Laboratories Licensing Corporation Hybrid reference picture reconstruction method for multiple layered video coding systems
US11039138B1 (en) * 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
DE102012211031B3 (de) * 2012-06-27 2013-11-28 Siemens Aktiengesellschaft Verfahren zur Codierung eines Datenstroms
US9313500B2 (en) 2012-09-30 2016-04-12 Microsoft Technology Licensing, Llc Conditional signalling of reference picture list modification information
KR20140114516A (ko) * 2013-03-15 2014-09-29 삼성전자주식회사 메모리 컨트롤러 및 이의 동작 방법
US10277909B2 (en) * 2013-05-15 2019-04-30 Vid Scale, Inc. Single loop decoding based interlayer prediction
US9337862B2 (en) * 2014-06-09 2016-05-10 Tidal Systems, Inc. VLSI efficient Huffman encoding apparatus and method
US9654145B1 (en) * 2014-11-24 2017-05-16 Seagate Technology Llc Interleaving code-words
US10368072B2 (en) * 2015-05-29 2019-07-30 Qualcomm Incorporated Advanced arithmetic coder
KR102469145B1 (ko) * 2015-10-13 2022-11-21 삼성전자주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
CN108432170B (zh) * 2016-01-29 2021-08-17 麻省理工学院 用于多码分布式存储的装置和方法
US10554988B2 (en) * 2017-03-22 2020-02-04 Qualcomm Incorporated Binary arithmetic coding with parameterized probability estimation finite state machines
EP3763128A4 (en) * 2018-03-14 2022-04-06 Mediatek Inc. METHOD AND APPARATUS PROVIDING AN OPTIMIZED DIVISION STRUCTURE FOR VIDEO CODING
WO2020164753A1 (en) * 2019-02-13 2020-08-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decoder and decoding method selecting an error concealment mode, and encoder and encoding method
WO2020165263A2 (en) * 2019-02-13 2020-08-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decoder and decoding method selecting an error concealment mode, and encoder and encoding method
US10587286B1 (en) * 2019-03-18 2020-03-10 Blackberry Limited Methods and devices for handling equiprobable symbols in entropy coding
CN117676146A (zh) * 2022-09-08 2024-03-08 华为技术有限公司 一种编解码方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6661839B1 (en) * 1998-03-24 2003-12-09 Advantest Corporation Method and device for compressing and expanding data pattern

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
JP4240283B2 (ja) * 2002-10-10 2009-03-18 ソニー株式会社 復号装置及び復号方法
US10334288B2 (en) * 2010-06-15 2019-06-25 Avago Technologies International Sales Pte. Limited Method and system for zero overhead parallel entropy decoding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6661839B1 (en) * 1998-03-24 2003-12-09 Advantest Corporation Method and device for compressing and expanding data pattern

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
M. Winken et al., "Description of video coding technology proposal by Fraunhofer HHI" (20100403)全文 Grzegorz Pastuszak, "A High-Performance Architecture of the Double-Mode Binary Coder for H.264.AVC" IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 18, NO. 7, JULY 2008. *

Also Published As

Publication number Publication date
WO2012031628A1 (en) 2012-03-15
HUE039299T2 (hu) 2018-12-28
US9130585B2 (en) 2015-09-08
EP2614592A1 (en) 2013-07-17
EP2614592B1 (en) 2018-06-27
TW201230695A (en) 2012-07-16
US20130187798A1 (en) 2013-07-25

Similar Documents

Publication Publication Date Title
TWI500274B (zh) 熵編碼及解碼裝置與方法、和相關電腦程式
JP6479060B2 (ja) エントロピー符号化および復号化スキーム