TW201731224A - 熵編碼及解碼方案 - Google Patents
熵編碼及解碼方案 Download PDFInfo
- Publication number
- TW201731224A TW201731224A TW106101413A TW106101413A TW201731224A TW 201731224 A TW201731224 A TW 201731224A TW 106101413 A TW106101413 A TW 106101413A TW 106101413 A TW106101413 A TW 106101413A TW 201731224 A TW201731224 A TW 201731224A
- Authority
- TW
- Taiwan
- Prior art keywords
- binary
- sequence
- buffer
- codeword
- probability
- Prior art date
Links
- 238000005192 partition Methods 0.000 claims abstract description 175
- 238000000034 method Methods 0.000 claims description 84
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 4
- 239000000203 mixture Substances 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims 1
- 238000007906 compression Methods 0.000 abstract description 14
- 230000006835 compression Effects 0.000 abstract description 14
- 239000000872 buffer Substances 0.000 description 617
- 230000036961 partial effect Effects 0.000 description 76
- 238000009826 distribution Methods 0.000 description 59
- 238000013507 mapping Methods 0.000 description 42
- 238000004422 calculation algorithm Methods 0.000 description 40
- 238000013461 design Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 21
- 230000007246 mechanism Effects 0.000 description 17
- 230000011218 segmentation Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 15
- 230000000717 retained effect Effects 0.000 description 15
- 230000002441 reversible effect Effects 0.000 description 15
- 230000004044 response Effects 0.000 description 13
- 230000003139 buffering effect Effects 0.000 description 12
- 238000000354 decomposition reaction Methods 0.000 description 12
- 230000033001 locomotion Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 230000002829 reductive effect Effects 0.000 description 10
- 230000001960 triggered effect Effects 0.000 description 10
- 230000003044 adaptive effect Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000006978 adaptation Effects 0.000 description 7
- 238000013139 quantization Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000011002 quantification Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 239000012634 fragment Substances 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 101150115425 Slc27a2 gene Proteins 0.000 description 1
- 210000003484 anatomy Anatomy 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003817 vacuum liquid chromatography Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/55—Compression Theory, e.g. compression of random number, repeated compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
由於所使用的編碼方案可更好地適應於語法元素統計學,故將各別語法元素之值範圍分解成n個分區之序列,其中將位於各別分區內的z之分量個別編碼,其中至少一個分量藉由VLC編碼,且其中至少一個分量藉由PIPE或熵編碼,該分解可以適度的編碼額外負擔極大地增加壓縮效率。於是,根據實施例,將語法元素分解成各別數目n之源符號si,其中i=1...n,源符號之各別數目n取決於關於將各別語法元素之值範圍再劃分成n個分區之序列中的哪個分區、各別語法元素之值z屬於n個分區之序列中的哪個分區,使得各別數目之源符號si之值的和產生z,且若n>1,則對於所有i=1...n-1而言,si之值對應於第i個分區之範圍。
Description
本發明係關於熵編碼及解碼,且本發明可用於諸如視訊及音訊壓縮之應用中。
熵編碼一般可視為無損資料壓縮之最一般的形式。無損壓縮目的在於用比原始資料表示所需要的位元更少之位元顯示離散資料,但無任何資訊損失。離散資料可以用本文、圖形、影像、視訊、音訊、語音、傳真、醫療資料、氣象資料、財務資料或任何其他形式之數位資料的形式給出。
在熵編碼中,通常忽略下層離散資料源之特定高階特性。因此,將任何資料源視為作為源符號之序列給出,源符號之該序列用給定的m階字母取值,且源符號之該序列的特徵在於相應的(離散)機率分佈{p 1,...,p m }。在此等抽象設定中,依據每符號位元的預期碼字組長度任何熵編碼方法之下限藉由以下熵來給定:
霍夫曼(Huffman)碼及算術碼為能夠接近熵極限
(在某種意義上)的實用碼之熟知實例。對於固定機率分佈而言,霍夫曼碼相對容易建構。霍夫曼碼之最吸引人的性質為,該等霍夫曼碼之實施可有效率地藉由使用可變長度碼(VLC)表來實現。然而,當處理時變源統計學(亦即,變化的符號機率)時,極其需要調適霍夫曼碼及該霍夫曼碼之相應的VLC表,霍夫曼碼及該霍夫曼碼之相應的VLC表兩者皆依據算法複雜性以及依據實施成本。又,在具有主要字母值,其中p k >0.5的情況下,相應的霍夫曼碼之冗餘度(不使用諸如游程編碼之任何字母延伸)可能為相當實質的。霍夫曼碼之另一缺陷藉由在處理高階機率模型化情況下可能需要多組VLC表的事實給出。另一方面,儘管算術編碼實質上比VLC更複雜,但當應對適應性且高階機率模型化以及應對高度偏斜機率分佈的情況時,該算術編碼提供更一致且更充分處理之優點。實際上,此特性基本上由算術編碼提供將機率估計之任何給定值以差不多直接的方式映射至所得碼字組之部分的至少概念性機制的事實產生。在具備此介面的情況下,算術編碼允許一方面機率模型化及機率估計之任務與另一方面實際的熵編碼亦即將符號映射至碼字組之間的清晰分離。
算術編碼及VLC編碼之替代物為PIPE編碼。更精確而言,在PIPE編碼中,單位區間分割成互斥機率區間之小集合,以沿著隨機符號變數之機率估計處理的編碼設計PIPE。根據此分割,可將具有任意字母大小之離散源符號的輸入序列映射至字母符號之序列,且將該等字母符號中
之每一字母符號分配給一個特定機率區間,該特定機率區間又藉由尤其專用的熵編碼程序來編碼。在該等區間中之每一區間由固定機率表示的情況下,機率區間分割熵(PIPE)編碼程序可基於簡單可變對可變長度碼之設計及應用。機率模型化可為固定的或者適應性的。然而,儘管PIPE編碼顯著地不如算術編碼複雜,但該PIPE編碼仍具有比VLC編碼更高的複雜性。
因此,將有利的是,具有所探討的能夠實現一方面編碼複雜性與另一方面壓縮效率之間的最佳取捨之熵編碼方案,甚至當與PIPE編碼相比較時,該熵編碼方案已組合算術編碼與VLC編碼兩者之優點。
此外,一般而言,將有利的是,具有所探討的能夠以適度的編碼複雜性實現自身最佳壓縮效率之熵編碼方案。
因此,本發明之目標為,提供實現以上經識別的需求亦即能夠實現一方面編碼複雜性與另一方面壓縮效率之間的最佳取捨之熵編碼概念。
此目標藉由如申請專利範圍第1項或第23項之設備、如申請專利範圍第49項或第50項之方法及如申請專利範圍第51項之電腦程式來實現。
本發明係基於以下想法:將各別語法元素之值範圍分解成n個分區之序列,其中將單獨放置於各別分區內的語法元素值z之分量編碼,其中至少一個分量藉由VLC編碼,
且至少一個分量藉由PIPE或算術編碼或任何其他熵編碼方法,該分解可以適度的編碼額外負擔極大地增加壓縮效率,因為所使用的編碼方案可更好地適應於語法元素統計學。相應地,根據本發明之實施例,將語法元素分解成各別數目n之源符號si,其中i=1…n,源符號之各別數目n取決於將各別語法元素之值範圍再劃分成關於n個分區(1401-3)之序列的哪個分區、各別語法元素之值z屬於n個分區(1401-3)之序列的哪個分區,以便各別數目之源符號si之值的和產生z,且若n>1,則對於所有i=1…n-1而言,si之值對應於第i個分區之範圍。
此外,本發明之一些實施例使用除VLC編碼之外的PIPE編碼,該等實施例利用以下事實:若除PIPE編碼之分類特徵之外,提供進一步分類階段,則可實現一方面編碼複雜性與另一方面壓縮效率之間的較佳取捨,根據PIPE編碼之該分類特徵,字母符號分佈於根據該等字母符號之機率分佈估計的多個專門化熵編碼/解碼器之中,根據該進一步分類階段,待編碼之源符號再劃分成經受VLC編碼之第一子串流及經受PIPE編碼亦即用PIPE編碼器之符號字母表示為字母符號之序列的第二子串流。藉由此測度,具有適當的符號機率分佈(亦即,適合於借助於VLC編碼來有效率地編碼而不具有以上本申請案之說明書的導論部分中概括的缺陷之機率分佈)之源符號可分類為諸如較高取值分區之VLC編碼符號,而諸如最低取值分區之其他源符號可視為PIPE編碼符號且經受PIPE編碼,該PIPE編碼之編碼複
雜性比VLC編碼更高,但該PIPE編碼具有更佳的壓縮效率。
根據實施例,有可能將語法元素分解成各別整數數目之源符號,該等源符號中之一個源符號視為VLC編碼符號,該等源符號中之另一個源符號視為PIPE編碼符號。
本發明之較佳態樣為封閉的附屬項之主題。
1、1a、1b‧‧‧源符號
2、8、20、14、22‧‧‧二進制解碼器
3‧‧‧二進制/二進制編碼器
4‧‧‧參數分配器
5‧‧‧二進制
6、18‧‧‧二進制緩衝選擇器
7、26‧‧‧輸出二進制
9‧‧‧二進制之序列
10‧‧‧二進制編碼器
10a、102‧‧‧VLC編碼器
11、23、30、31、37、41、44、47、57‧‧‧碼字組
11a、23a、30a‧‧‧VLC碼字組
12、12a、24a、313‧‧‧部分位元串流
13、13a‧‧‧源符號之請求
15、17、19‧‧‧二進制之請求
16‧‧‧參數分配器
19a‧‧‧VLC碼字組之請求
21‧‧‧經解碼二進制之序列
22a、200、202‧‧‧VLC解碼器
24‧‧‧部分位元串流之集合
25‧‧‧經解碼二進制
27、27a‧‧‧經解碼源符號
28‧‧‧碼字組緩衝項
29‧‧‧碼字組緩衝器
32‧‧‧碼字組寫入器
33、39、54、46、62‧‧‧位元
34、40、55、63、132、228‧‧‧位元串流
35‧‧‧二進制序列
36‧‧‧位元之請求
38、48‧‧‧位元緩衝器
43‧‧‧碼字組緩衝器
49、59‧‧‧請求
51‧‧‧全局位元緩衝器
52‧‧‧位元序列
53‧‧‧位元寫入器
58‧‧‧位元緩衝器
60‧‧‧位元之固定長度序列
61‧‧‧全局位元緩衝器
100‧‧‧再劃分器
104‧‧‧PIPE編碼器
106‧‧‧源符號之序列
108、204‧‧‧第一子序列
110、208‧‧‧第二子序列
112、206‧‧‧第一位元串流
114、212‧‧‧分配器
116‧‧‧熵編碼器
118、216‧‧‧第二位元串流
120、214‧‧‧選擇器
122、124‧‧‧符號化器
126‧‧‧共用位元串流
128‧‧‧兩階段交錯器
130、134‧‧‧交錯器
136‧‧‧分解器
138‧‧‧可剖析位元串流/語法元素之序列/語法元素串流
1401、1402、1403‧‧‧分區
142、144‧‧‧界限
210‧‧‧熵解碼器
218‧‧‧源符號之共用序列
220‧‧‧複合器
222‧‧‧去符號化器
224‧‧‧字母符號之序列
226‧‧‧語法元素之序列/語法元素之串流
230、232、236‧‧‧去交錯器
234‧‧‧交錯形式
300、310‧‧‧資料封包
301、311‧‧‧標頭
302‧‧‧位元串流資料
312‧‧‧區段
314‧‧‧位元串流之剩餘部分
參閱以下圖式描述本發明之較佳實施例,在該等圖式之中第1a圖圖示根據實施例的熵編碼設備之方塊圖;第1b圖圖示說明根據實施例,可能將語法元素分解成源符號之示意圖;第1c圖圖示說明根據實施例,第1a圖之分解器在將語法元素分解成源符號時可能的操作模式之流程圖;第2a圖圖示根據實施例的熵解碼設備之方塊圖;第2b圖圖示說明根據實施例,第2a圖之組合器在自源符號組合語法元素時的可能操作模式之流程圖;第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圖圖示圖形,自該圖形可收集給定最大數目之表項L m 的最佳碼之相對位元率增加ρ(p,C);
第17圖圖示說明理論最佳機率區間分割成K=12區間之速率增加及具有最大數目之L m =65表項的V2V碼的實際設計的圖形;第18圖圖示說明將三元選擇樹轉換成全二元選擇樹的實例之示意圖;第19圖圖示根據實施例的系統之方塊圖,該系統包含編碼器(左部)及解碼器(右部);第20圖圖示根據實施例的熵編碼設備之方塊圖;第21圖圖示根據實施例的熵解碼設備之方塊圖;第22圖圖示根據甚至進一步實施例的熵編碼設備之方塊圖;第23圖圖示說明根據實施例,第22圖之編碼器側的全局位元緩衝器之狀態之實例的示意圖;第24圖圖示根據本申請案之另一實施例的熵解碼設備之方塊圖。
在關於以下圖式中描述本申請案之若干實施例之前,注意到,在整個圖式中使用相同元件符號以表示此等圖式中相同或等效元件,且只要先前描述不與當前圖式之描述衝突,則用先前圖式中之任一圖式提供的此等元件之描述亦應應用於以下圖式中之任一圖式。
第1a圖圖示根據本申請案之實施例的熵編碼設
備。該設備包含再劃分器100、VLC編碼器102及PIPE編碼器104。
再劃分器100經配置以將源符號106之序列再劃分成源符號之第一子序列108及源符號之第二子序列110。VLC編碼器102具有該VLC編碼器102之輸入,該輸入連接至再劃分器100之第一輸出,且VLC編碼器102經配置以將第一子序列108之源符號以符號的方式轉換成形成第一位元串流112之碼字組。VLC編碼器102可包含檢查表且個別地使用作為標示之源符號,以在檢查表中每源符號查找各別碼字組。VLC編碼器輸出後者碼字組,且VLC編碼器在子序列110中繼續進行以下源符號,以輸出碼字組之序列,在碼字組之該序列中每一碼字組與子序列110內源符號中之一個源符號精確地相關聯。碼字組可具有不同長度,且碼字組可經定義以使得無碼字組形成具有其他碼字組中之任一碼字組的前綴。此外,該檢查表可為靜態的。
PIPE編碼器104具有該PIPE編碼器104之輸入,該輸入連接至再劃分器100之第二輸出,且PIPE編碼器104經配置以編碼以字母符號之序列的形式表示的源符號之第二子序列110,且PIPE編碼器104包含分配器114、多個熵編碼器116及選擇器120,該分配器114經配置以基於字母符號之序列的先前字母符號內含有的資訊,將各別字母符號可假定的可能值之中的機率分佈估計的測度分配予字母符號之序列中的每一字母符號,該多個熵編碼器116中之每一熵編碼器116經配置以將轉發至各別熵編碼器的字母符號轉
換成各別第二位元串流118,該選擇器120經配置以將第二子序列110中之每一字母符號轉發至該多個熵編碼器116中之選定的熵編碼器116,該選擇取決於分配予各別字母符號的機率分佈之估計之先前提及的測度。源符號與字母符號之間的關聯可為使得每一字母符號唯一地與子序列110之恰一個源符號相關聯,以與可能緊接於彼此之後的字母符號之序列之可能地另外字母符號一起表示此一個源符號。
如以下更詳細地描述,源符號之序列106可為可剖析位元串流之語法元素之序列。例如,可剖析位元串流可用語法元素以可擴充或非可擴充方式表示視訊及/或音訊內容,該等語法元素表示(例如)變換係數位準、移動向量、電影參考指標、比例因子、音訊包封能量值或類似物。特定言之,語法元素可為具有相同類型之語法元素的不同類型或類別,例如,在可剖析位元串流內但相對於該可剖析位元串流的不同部分(諸如,不同圖像、不同巨集區塊、不同光譜分量或類似物)具有相同意義,而不同類型之語法元素可在位元串流內具有不同意義,諸如,移動向量具有與表示變換係數位準的語法元素不同的意義,該變換係數位準表示移動預測殘留。
再劃分器100可經配置以取決於語法元素之類型而執行再劃分。亦即,再劃分器100可將第一組類型之語法元素轉發至第一子序列108且將不同於第一組的第二組類型之語法元素轉發至第二子序列110。藉由再劃分器100執行的再劃分可設計為使得子序列108內語法元素之符號統
計學適合於藉由VLC編碼器102來VLC編碼,亦即,儘管使用VLC編碼及該VLC編碼關於該VLC編碼對於本申請案之說明書之導論部分中概括的某些符號統計學的適合性之限制,皆產生幾乎可能的最小熵。另一方面,再劃分器100可將所有其他語法元素轉發至第二子序列110上,以便藉由更複雜但更有效率(依據壓縮比)的PIPE編碼器104來編碼具有不適合於VLC編碼之符號統計學之此等語法元素。
亦如以下圖式之更詳細描述的實施例之情況,PIPE編碼器104可包含符號化器122,該符號化器122經配置以將第二子序列110之每一語法元素個別地映射至字母符號之各別部分序列中,從而一起形成先前提及的字母符號之序列124。換言之,例如,若已將子序列110之源符號表示為字母符號之各別部分序列,則可能不提供符號化器122。例如,符號化器122在子序列110內源符號為不同字母且尤其具有不同數目之可能字母符號的字母之情況下是有利的。亦即,在此情況下,符號化器122能夠協調到達子串流110內的符號之字母。例如,符號化器122可實施為二進制編碼器,該二進制編碼器經配置以二進制化到達子序列110中的符號。
如之前所提及,語法元素可為不同類型。此狀況亦可對子串流110內的語法元素成立。符號化器122可隨後經配置以使用符號化映射方案(諸如二進制化方案)執行子序列110之語法元素之個別映射,對於不同類型之語法元素而言,方案有所不同。特定二進制化方案之實例存在於以
下描述中,諸如,一元的二進制化方案、0階或1階(例如,或截斷式一元的二進制化方案)指數哥倫布(exp-Golomb)二進制化方案、截斷式且重新排序的指數哥倫布0階二進制化方案或非系統二進制化方案。
相應地,熵編碼器116可經配置以對二進制字母表操作。最終,應注意,符號化器122可視為第1a圖中所示的PIPE編碼器104本身之部分。然而,或者,二進制編碼器可視為在PIPE編碼器的外部。
類似於後者通知,應注意,儘管分配器114圖示為串行連接於符號化器122與選擇器120之間,但分配器114可替代性地視為連接於符號化器124之輸出與選擇器120之第一輸入之間,其中分配器114之輸出連接至隨後關於第3圖描述的選擇器120之另一輸入。實際上,分配器114用機率分佈之估計之先前提及的測度伴隨每一字母符號。
就第1a圖之熵編碼設備之輸出而言,該輸出由藉由VLC編碼器102輸出的第一位元串流112及藉由該多個熵編碼器116輸出的該多個第二位元串流118組成。如以下進一步描述,可平行傳輸所有此等位元串流。或者,藉由使用交錯器128可將該等位元串流交錯至共用位元串流126中。第22圖至第24圖之實施例圖示具有此位元串流交錯之實例。如第1圖中進一步所示,PIPE編碼器104本身可包含該PIPE編碼器104自身的交錯器130,以將該多個第二位元串流118交錯至共用PIPE編碼位元串流132中。此交錯器130之可能性可源自以下關於第5圖至第13圖描述的實施例。位元串流
132及位元串流112可以平行配置表示第1a圖之熵編碼設備之輸出。或者,另一交錯器134可交錯兩個位元串流,在此情況下交錯器130及134將形成一個兩階段交錯器128之兩個階段。
如以上所述,再劃分器100可執行再劃分語法元素方式,亦即,再劃分器100操作的源符號可為整個語法元素,或者換言之,再劃分器100可以語法元素之單元操作。
然而,根據替代性實施例,第1a圖之熵編碼設備可包含分解器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之源符號,該兩個分量中之一個分量(諸如,x)適合於依據壓縮效率經VLC編碼,且該兩個分量中之另一個分量(諸如,y)不適合於經VLC編碼,因此將該另一個分量傳遞至第二子串流110而非第一子串流108。由分解器136使用的分解不必為雙射的。然而,如之前所提及,應存在逆向映射,該逆向映射實現可能的分解之語法元素之唯一擷取,若分解不是雙射的,則分解器136可在該等可能分解之中選擇。
到現在為止,已針對不同語法元素之處理描述不同可能性。關於是否存在此等語法元素或情況是視需要的。然而,本文所述的以下實施例集中於由分解器136根據以下原理分解的語法元素。
如第1b圖中所示,分解器136經配置以分階段分解可剖析位元串流138中之某些語法元素z。兩個或兩個以上階段可存在。該等階段係針對將語法元素z之值範圍劃分成兩個或兩個以上鄰近子區間或第1c圖中所示的子範圍。語法元素之值範圍可具有兩個無限的端點,僅一個或可能具有確定的端點。在第1c圖中,語法元素之值範圍示例性地再劃分成三個分區1401-3。如第1b圖中所示,若語法元素大於或等於第一分區1401之界限142,亦即,分隔分區1401與1402之上限,則將該語法元素減去第一分區1401之
界限limit1,且關於是否z甚至大於或等於第二分區1402之界限144,亦即,分隔分區1402與1403之上限,來再次檢查z。若z’大於或等於界限144,則將z’減去產生z」的第二分區1402之界限limit2。在z小於limit1的第一情況下,將語法元素z簡單地發送至再劃分器100。在z介於limit1與limit2之間的情況下,將語法元素z作為元組(limit1,z’)發送至再劃分器100,其中z=limit1+z’,且在z超過limit2的情況下,將語法元素z作為三位元組(limit1,limit2-limit1,z’)發送至再劃分器100,其中z=limit1+limit2+z’。第一(或唯一的)分量,亦即,z或limit1形成將藉由再劃分器100編碼的第一源符號,若存在,則第二分量,亦即,z’或limit2-limit1形成將藉由再劃分器100編碼的第二源符號,且若存在,則第三分量,亦即,z」形成將藉由再劃分器100編碼的第三源符號。因此,根據第1b圖及第1c圖之實施例,將語法元素映射至1至3個源符號中之任一個,但對於差不多最大數目之源符號之一般化可易於源自以上描述,且亦將在下文中描述此等替代物。
在任何情況下,所有此等不同分量或所得源符號係根據以下實施例,用該等實施例之中的編碼替代物來編碼。將該等分量或源符號中之至少一個分量或源符號藉由再劃分器轉發至PIPE編碼器104,且最終將該等分量或源符號中之另一個分量或源符號發送至VLC編碼器102。
以下更詳細地概括特定有利的實施例。
在描述以上熵編碼設備之實施例之後,關於第2a
圖描述熵解碼設備之實施例。第2a圖之熵解碼設備包含VLC解碼器200及PIPE解碼器202。VLC解碼器200經配置以用編碼的方式自第一位元串流206之碼字組重建第一子序列204之源符號。第一位元串流206等於第1圖之位元串流112,就第1a圖之子序列108而言,上述情況也適用於子序列204。PIPE解碼器202經配置以重建以字母符號之序列的形式表示的源符號之第二子序列208,且PIPE解碼器202包含多個熵解碼器210、分配器212及選擇器214。該多個熵解碼器210經配置以將第二位元串流216中之各別第二位元串流216轉換成字母符號之序列中的字母符號。分配器212經配置以基於字母符號之序列之先前重建的字母符號內含有的資訊,將各別字母符號可假定的可能值之中的機率分佈之估計測度分配予字母符號之序列中的每一字母符號,字母符號之該序列表示待重建的源符號之第二子序列208。為此,分配器212可串行連接於選擇器214之輸出與選擇器214之輸入之間,而選擇器214之另外的輸入具有熵解碼器210之輸出,熵解碼器210之該等輸出分別連接至選擇器214之該等另外的輸入。選擇器214經配置以自該多個熵解碼器210中之選定的熵解碼器210擷取字母符號之序列中的每一字母符號,該選擇取決於分配予各別字母符號之測度。換言之,選擇器214與分配器212一起經操作以在藉由字母符號之序列中的先前字母符號內含有的測量資訊獲取的熵解碼器210之中依次序擷取藉由熵解碼器210獲取的字母符號。甚至換言之,分配器212及選擇器214能夠重建不同字母符
號之間的字母符號之原有次序。與預測下一個字母符號一起,分配器212能夠決定各別字母符號之機率分佈之估計的先前提及的測度,藉由使用該測度,選擇器214在熵解碼器210之中選擇擷取此字母符號之實際值。如下文將更詳細地描述,為了甚至更精確,PIPE解碼器202可經配置以回應於順序地請求字母符號之字母符號請求,重建以字母符號之序列的形式表示的源符號之子序列208,且分配器212可經配置以將各別字母符號可假定的可能值之中機率分佈之估計的先前提及的測度分配予對於字母符號之序列中的字母符號的每一請求,字母符號之該序列表示待重建的源符號之第二子序列(208)。相應地,選擇器214可經配置以針對對於字母符號之序列中的字母符號的每一請求,字母符號之該序列表示待重建的源符號之第二子序列(208),自該多個熵解碼器210中之選定的熵解碼器210擷取字母符號之序列中的各別字母符號,該選擇取決於分配予對於各別字母符號的各別請求之測度。將關於第4圖更詳細地概括一方面解碼側的請求與另一方面編碼側的資料流或編碼之間的一致性。
因為源符號之第一子序列214及源符號之第二子序列208通常形成源符號之一個共用序列210,所以第2a圖之熵解碼設備可視需要包含複合器220,該複合器220經配置以再組合第一子序列204及第二子序列208,以獲取源符號之共用序列218。源符號之此共用序列208產生第1a圖之序列106之再建。
根據以上關於第1圖提供的描述,第一子序列204及第二子序列208之源符號可為可剖析位元串流之語法元素。在此情況下,複合器220可經配置以藉由以由定義語法元素之中次序的一些剖析規則規定的次序交錯經由第一序列204及第二子序列208到達的源符號,來重建語法元素之序列218之此可剖析位元串流。特定言之,如以上所述,該等語法元素可為不同類型,且複合器220可經配置以自VLC解碼器200經由子串流204擷取或請求第一組類型之語法元素且可經配置以自PIPE解碼器202經由子串流208擷取或請求第二類型之語法元素。相應地,每當剛剛提及的剖析規則指示第一組內類型之語法元素為成直線的下一個時,則複合器202將子序列204之實際源符號插入至共用序列218中,且自另外的子序列208插入。
同樣地,PIPE解碼器202可包含連接於選擇器214之輸出與複合器220之輸入之間的去符號化器222。類似於以上關於第1圖的描述,去符號化器222可視為在PIPE解碼器202的外部,且甚至可將去符號化器222佈置於複合器202之後,亦即,或者在複合器220之輸出側處。去符號化器222可經配置以在字母符號之部分序列之單元中將由選擇器214輸出的字母符號224之序列再映射至源符號亦即子序列208之語法元素中。類似於複合器220,去符號化器222瞭解字母符號之可能的部分序列之構造。特定言之,去符號化器222可分析最近自選擇器214接收的字母符號,以確定關於此等最近接收的字母符號是否產生與各別語法元素之各
別值相關聯的字母符號之有效的部分序列,或關於情況是否並非如此,以及接下來缺失哪個字母符號。甚至換言之,符號化器222在任何時間已知關於是否必須自選擇器214接收另外的字母符號,以完成接收各別語法元素,且相應地,由選擇器214輸出的字母符號中之各別字母符號屬於哪個語法元素。為此,去符號化器222可使用因不同類型之語法元素而不同的符號化(解)映射方案。類似地,分配器212瞭解將由選擇器214自熵解碼器210中的任一熵解碼器210擷取的當前字母符號與語法元素中之各別語法元素的關聯,且分配器212可相應地設定此字母符號之機率分佈之估計的以上提及的測度,亦即,取決於相關聯的語法元素類型。甚至此外,分配器212可在屬於當前字母符號之相同部分序列的不同字母符號之間區分,且分配器212可針對此等字母符號以不同方式設定機率分佈之估計之測度。以下更詳細地描述在此方面的細節。如該處所描述的,分配器212可經配置以將上下文分配予字母符號。該分配可取決於語法元素類型及/或當前語法元素之字母符號之部分序列內的位置。分配器212一將上下文分配予將由選擇器214自熵解碼器210中的任一熵解碼器210擷取的當前字母符號,字母符號就可固有地具有與該上下文相關聯的機率分佈之估計之測度,因為每一上下文具有該上下文之與該上下文相關聯的估計之測度。此外,可根據到現在為止已自熵解碼器210擷取的各別上下文之字母符號之實際的統計學,來調適上下文及該上下文之相關聯的機率分佈之估計的測度。以下
更詳細地呈現此方面的細節。
類似於第1圖之以上論述,有可能語法元素中子序列204及208之先前提及的源符號之間的對應不是一一對應的。相反地,可能已將語法元素分解成整數數目之源符號,其中該數目最終在語法元素之中變化,但在任何情況下,針對一個語法元素至少大於一個。如以上所注意到的,以下實施例集中於處理此等種類之語法元素,且其他種類之語法元素甚至可以不存在。
為處理剛剛提及的語法元素,第2a圖之熵解碼設備可包含組合器224,該組合器224經配置以再進行由第1a圖之分解器136執行的分解。特定言之,組合器224可經配置以藉由自各別整數數目之源符號個別地組合每一語法元素,而自序列218或在複合器220缺失的情況下子序列204及208之源符號組合語法元素之序列226,其中該整數數目之源符號中的源符號中之一個源符號屬於第一子序列204,且相同語法元素之該整數數目之源符號中的源符號中之另一個源符號屬於第二子序列208。藉由此測度,可能已在編碼器側分解某些語法元素,以便將適合於VLC解碼之分量與必須經由PIPE解碼路徑傳遞的剩餘分量分隔。類似於以上論述,語法元素可為不同類型,且組合器224可經配置以取決於語法元素之類型而執行個別組合。特定言之,組合器224可經配置以藉由在邏輯上或數學上組合各別語法元素之整數數目的源符號,來獲取各別語法元素。舉例而言,組合器224可經配置以針對每一語法元素將+、-、:或.應用
於一個語法元素之第一源符號及第二源符號。
然而,如以上所述,以下本文所述的實施例集中於藉由根據第1b圖及第1c圖及關於第1b圖及第1c圖描述的替代性實施例之分解器136分解的語法元素。第2a圖圖示關於組合器224可如何發揮作用以自語法元素之源符號218重建此等語法元素。
如第2b圖中所示,組合器224經配置以分階段自進入的源符號s1至sx組合此等語法元素z,其中x為本實例中1至3中的任一個。兩個或兩個以上階段可存在。如第2b圖中所示,組合器224初步將z設定為第一符號s1且檢查關於z是否等於第一limit1。若情況並非如此,則z已找到。否則,組合器224將源符號串流218之下一個源符號s2添加至z且再次檢查關於此z是否等於limit2。若z不等於limit2,則z已找到。否則,組合器224將源符號串流218之下一個源符號s3添加至z,以獲取呈最終形式之z。對差不多最大數目之源符號的一般化可易於源自以上描述,且亦將在下文中描述此等替代物。
在任何情況下,所有此等不同分量或所得源符號係根據以下實施例,用該等實施例之中的編碼替代物來編碼。將該等分量或源符號中之至少一個分量或源符號藉由再劃分器轉發至PIPE編碼器104,且最終將該等分量或源符號中之另一個分量或源符號發送至VLC編碼器102。
以下更詳細地概括特定有利的實施例。此等細節集中於劃分語法元素之值範圍的有利可能性及可用以編碼
源符號之熵VLC編碼及PIPE編碼方案。
此外,亦如以上關於第1圖所述,第2a圖之熵解碼設備可經配置以用交錯位元串流228之方式單獨地或以交錯形式接收第一位元串流206以及該多個第二位元串流216。在後者情況下,第2a圖之熵解碼設備可包含去交錯器230,該去交錯器230經配置以將交錯位元串流228去交錯,以獲取一方面第一位元串流206及另一方面該多個第二位元串流216。類似於第1圖之以上論述,可將去交錯器230再分成兩個階段,亦即用於將交錯位元串流228去交錯成兩個部分之去交錯器232,及用於將後者位元串流234去交錯以獲取個別位元串流216之去交錯器236,該兩個部分亦即一方面位元串流206及另一方面第二位元串流216之交錯形式234。
因此,第1a圖及第2a圖圖示一方面熵編碼設備及另一方面熵解碼設備,該熵解碼設備適合於解碼藉由第1圖之熵編碼設備獲取的編碼結果。關於另外的圖式更詳細地描述關於第1a圖及第2圖中所示之許多元素的細節。相應地,就此等細節可單獨地實施於以上描述的實施例中而言,在以下描述中參閱此等細節且此等細節亦應視為個別地應用於第1a圖及第2圖之實施例。僅關於交錯器132及去交錯器234,此處進行一些額外的通知。特定言之,位元串流112及118之交錯在必須將位元串流多工成一個通道以便傳輸的情況下可為有利的。在此情況下,可能有利的是,交錯一方面VLC位元串流112及另一方面PIPE編碼位元串流118,
以便遵照某些要滿足的條件,諸如遵照一些最大解碼延遲。甚至換言之,可能有必要的是,一方面在解碼側分別可擷取語法元素及源符號的時間之間的相對時間位移及另一方面根據該等語法元素及源符號在可剖析位元串流中的位置之時間的相對位移不超過某一最大延遲。以下描述用於解決此問題之許多替代性實施例。此等可能性中之一個可能性涉及熵編碼器116及熵解碼器210,該熵編碼器116為可變長度編碼器類型,該可變長度編碼器類型經配置以將字母符號序列映射至碼字組,該熵解碼器210執行逆向映射。VLC位元串流112及PIPE位元串流118之碼字組可(但不必)經選擇以使得沒有此等位元串流中之任一位元串流之碼字組為其他位元串流中之任一位元串流之任何碼字組的前綴,以便保持唯一可在解碼器端決定碼字組界限。在任何情況下,交錯器128可經配置以取決於選擇器120轉發至該多個熵編碼器116的字母符號之序列124中的字母符號產生將在各別熵編碼器116處映射至各別碼字組之新的字母符號序列之開始、且第二子串流108之新的源符號藉由VLC編碼器102映射的一個次序,而按一順序次序分別為第一位元串流112及第二位元串流118內之碼字組保留且緩衝碼字組項之序列。換言之,交錯器128將位元串流112之碼字組按源符號的次序插入至共用位元串流126中,自該共用位元串流126,已藉由VLC編碼分別按該等源符號在子串流108及源符號串流106內的次序獲取該等源符號。將由熵編碼器116輸出的碼字組插入至VLC位元串流112之碼字組中的連續
碼字組之間的共用位元串流126中。由於分別藉由分配器114及選擇器120的字母符號之PIPE編碼分類,熵編碼器116之碼字組中之每一碼字組具有在該處編碼的子串流110之不同源符號之字母符號。分別藉由在每一碼字組中編碼的第一字母符號(亦即,時間上最久的字母符號)決定彼此之中且相對於位元串流112之VLC碼字組的共用位元串流126內PIPE編碼位元串流118之碼字組的位置。編碼成字母符號串流124中位元串流118之碼字組的此等初級字母符號的次序決定彼此之中共用位元串流126內位元串流118的碼字組的次序;相對於位元串流112之VLC碼字組,編碼成位元串流118之碼字組的此等初級字母符號所屬於的源符號決定位元串流118中的任一個位元串流118之各別碼字組將定位於位元串流112之哪些連續的碼字組之間。特定言之,位元串流118中的任一個位元串流118之各別碼字組將定位於其間的連續VLC碼字組為根據未再劃分源符號串流106之原有次序,將子串流110之源符號定位於其間的連續VLC碼字組,編碼成位元串流118之各別碼字組的各別初級字母符號屬於該未再劃分源符號串流106。交錯器128可經配置以按順序的次序移除輸入先前提及的碼字組項中的碼字組,以獲取交錯碼字組之共用位元串流126。如以上已描述的,熵編碼器116可經配置以將該等熵編碼器116之碼字組順序地輸入針對各別熵編碼器116保留的碼字組項中,且選擇器120可經配置以按使第一子串流108及第二子串流110之源符號在源符號之序列106內交錯的次序維持住的一個次序,來轉
發表示第二子串流110之源符號的字母符號。
可提供額外的測度,以應對熵編碼器116中之某些熵編碼器116如此很少地經選擇以致於花費長時間來獲取極少使用的熵編碼器116內有效碼字組的情形。以下更詳細地描述此等測度之實例。特定言之,在此情況下,交錯器128與熵編碼器116一起可經配置以分別以一定方式清除到現在為止收集的該等交錯器128及熵編碼器116之字母符號及已輸入先前提及的碼字組項中的碼字組,該方式使得可在解碼側預測或仿真此清除步驟之時間。
在解碼側,去交錯器230可在相反意義上作用:根據先前提及的剖析方案,每當待解碼之下一個源符號為VLC編碼符號時,共用位元串流228內的當前碼字組視為VLC碼字組且在位元串流206內轉發至VLC解碼器200。另一方面,每當屬於子串流208之PIPE編碼符號中的任一PIPE編碼符號之字母符號中的任一字母符號為初級字母符號,亦即,必須藉由各別熵解碼器210將位元串流216中之各別位元串流216之碼字組重新映射至各別字母符號序列時,將共用位元串流228之當前碼字組視為PIPE編碼碼字組且轉發至各別熵解碼器210。下一個碼字組界限之偵測,亦即,下一個碼字組自剛剛已分別轉發至解碼器200及202中的任一者的碼字組之末端延伸至該下一個碼字組在入埠交錯位元串流228內的末端之偵測可延期且可在解碼器200及202為根據以上概括的規則的此下一個碼字組之專用接收者的知識之下執行:基於此知識,已知由接收者解碼器使用的
密碼本且可偵測各別碼字組。另一方面,若密碼本將經設計以使得碼字組界限將可偵測,而不具有關於200及202之中接收者解碼器的先驗知識,則可平行執行碼字組分隔。在任何情況下,歸因於交錯,可在解碼器處以熵解碼形式(亦即,作為源符號)按該等源符號之正確次序以合理的延遲獲得源符號。
在描述熵編碼設備及各別熵解碼設備之以上實施例之後,接下來描述以上提及的PIPE編碼器及PIPE解碼器之更詳細的實施例。
在第3圖中圖示根據實施例的PIPE編碼器。該PIPE編碼器可用作第1a圖中之PIPE編碼器。PIPE編碼器將源符號1之串流無損地轉換成兩個或兩個以上部分位元串流12之集合。每一源符號1可與一或更多類別或類型之集合中的類別或類型相關聯。例如,類別可指定源符號之類型。在混合視訊編碼之上下文中,單獨的類別可與巨集區塊編碼模式、分塊編碼模式、參閱圖像標示、移動向量差異、再劃分旗標、編碼區塊旗標、量化參數、變換係數位準等相關聯。在諸如音訊、語音、本文、文獻或一般資料編碼之其他應用領域中,源符號之不同分類是可能的。
一般而言,每一源符號可取有限值或值之可數無限集,其中可能源符號值之設定可因不同源符號類別而不同。為降低編碼及解碼算法之複雜性且為允許不同源符號及源符號類別之一般的編碼及解碼設計,將源符號1轉換成二元決策之有次序的集合,且隨後藉由簡單的二進制編碼
算法處理此等二元決策。因此,二進制編碼器2將每一源符號1之值以雙射方式映射至二進制3之序列(或字串)上。二進制3之序列表示有次序的二元決策之集合。每一二進制3或二元決策可取兩個值之集合中的一個值,例如,值0及1中之一者。二進制化方案可因不同源符號類別而不同。特定的源符號類別之二進制化方案可取決於可能的源符號值之集合及/或該特定類別之源符號之其他性質。表1圖示可數無限集合之三個示例性二進制化方案。可數無限集合之二進制化方案亦可應用於符號值之有限集合。特定言之,對於符號值之有限集合而言,低效率(由二進制之未使用的序列產生)可忽略,但此等二進制化方案之普遍性提供依據複雜性及記憶體要求之優點。對於符號值之小的有限集合而言,通常較佳(依據編碼效率)的是使二進制化方案適應可能符號值之數目。表2圖示8個值有限集合之三個示例性二進制化方案。藉由以二進制序列之有限集合表示無冗餘度碼(且可能將二進制序列重新排序)的方式修改二進制之一些序列,有限集合之二進制化方案可源自於可數無限集合之通用的二進制化方案。例如,藉由修改通用一元二進制化(參見表1)之源符號7之二進制序列,來產生表2中之截斷式一元二進制化方案。藉由修改通用的指數哥倫布0階二進制化(參見表1)之源符號7之二進制序列且藉由重新排序該等二進制序列(將符號7之截斷式二進制序列分配予符號1),來產生表2中之截斷式且重新排序的指數哥倫布0階二進制化。對於符號之有限集合而言,亦可能使用非系統/非通用二進
制化方案,如表2之最後一行中所例示的。
將藉由二進制編碼器2產生的二進制之序列之每一二進制3按順序的次序饋送至參數分配器4中。該參數分配器將一或更多參數之集合分配予每一二進制3且輸出具有參數5之相關聯集合的二進制。在編碼器與解碼器處以恰好相同的方式決定參數之集合。參數之集合可由以下參數中之一或更多參數組成:- 針對當前二進制的兩個可能二進制值中的一個二進制值的機率之估計之測度,- 針對當前二進制的更小機率或更大機率的二進制值的機率之估計之測度,- 指定對於兩個可能二進制值中的哪個表示當前二進制之更小機率或更大機率的二進制值的估計之識別符,- 相關聯源符號之類別,- 相關聯源符號之重要性之測度,- 相關聯符號之位置之測度(例如,時間的、空間的或容積
資料集),- 指定二進制或相關聯源符號的通道碼保護之識別符,- 指定二進制或相關聯源符號之加密方案之識別符,- 指定相關聯符號之級別之識別符,- 相關聯源符號之二進制之序列中的二進制數目。
在實施例中,參數分配器4使每一二進制3、5與針對當前二進制之兩個可能二進制值中的一個二進制值的機率之估計的測度相關聯。參數分配器4使每一二進制3、5與針對當前二進制的更小機率或更大機率的二進制值的機率之估計之測度及指定對於兩個可能二進制值中的哪個表示當前二進制之更小機率或更大機率的二進制值的估計之識別符相關聯。應注意,更小機率或更大機率的二進制值之機率及指定兩個可能二進制值中的哪個表示該更小機率或更大機率的二進制值之識別符為該兩個可能二進制值中之一個二進制值之機率的等效測度。
在另一實施例中,參數分配器4使每一二進制3、5與針對當前二進制之兩個可能二進制值中的一個二進制值的機率之估計的測度及一或更多另外的參數(該一或更多另外的參數可為以上列出參數中的一或更多參數)相關聯。在另一實施例中,參數分配器4使每一二進制3、5與針對當前二進制的更小機率或更大機率的二進制值的機率之估計之測度、指定對於兩個可能二進制值中的哪個表示當前二進制之更小機率或更大機率的二進制值的估計之識別符及一或更多另外的參數(該一或更多另外的參數可為以
上列出參數中的一或更多參數)相關聯。
在實施例中,參數分配器4基於一或更多已編碼符號之集合,決定以上提及的機率測度中之一或更多機率測度(針對當前二進制的兩個可能二進制值中的一個二進制值的機率之估計之測度、針對當前二進制的更小機率或更大機率的二進制值的機率之估計之測度、指定對於兩個可能二進制值中的哪個表示當前二進制之更小機率或更大機率的二進制值的估計之識別符)。用於決定機率測度之編碼符號可包括相同符號類別之一或更多已編碼符號、對應於鄰近空間及/或時間位置(相對於與當前源符號相關聯的資料集)之資料集(諸如,取樣之區塊或群組)的相同符號類別之一或更多已編碼符號或對應於相同及/或鄰近空間及/或時間位置(相對於與當前源符號相關聯的資料集)之資料集的不同符號類別之一或更多已編碼符號。
將具有參數5之相關聯集合之每一二進制饋送至二進制緩衝選擇器6中,參數5之該相關聯集合為參數分配器4之輸出。二進制緩衝選擇器6可能基於輸入二進制值及相關聯參數5修改輸入二進制5之值,且二進制緩衝選擇器6將具有可能經修改值的輸出二進制7饋送至兩個或兩個以上二進制緩衝器8中之一個二進制緩衝器8中。基於輸入二進制5之值及/或相關聯參數5之值,決定二進制緩衝器8,輸出二進制7發送至該二進制緩衝器8。
在實施例中,二進制緩衝選擇器6不修改二進制之值,亦即,輸出二進制7具有始終與輸入二進制5相同的
值。
在另一實施例中,二進制緩衝選擇器6基於輸入二進制值5及當前二進制之兩個可能二進制值中的一個二進制值的機率之估計的相關聯測度,決定輸出二進制值7。在實施例中,若當前二進制之兩個可能二進制值中的一個二進制值的機率之測度小於(或小於或等於)特定臨界值,則將輸出二進制值7設定成等於輸入二進制值5;若當前二進制之兩個可能二進制值中的一個二進制值的機率之測度大於或等於(或大於)特定臨界值,則修改輸出二進制值7(亦即,將輸出二進制值7設定成與輸入二進制值相反)。在另一實施例中,若當前二進制之兩個可能二進制值中的一個二進制值的機率之測度大於(或大於或等於)特定臨界值,則將輸出二進制值7設定成等於輸入二進制值5;若當前二進制之兩個可能二進制值中的一個二進制值的機率之測度小於或等於(或小於)特定臨界值,則修改輸出二進制值7(亦即,將輸出二進制值7設定成與輸入二進制值相反)。在實施例中,該臨界值對應於兩個可能二進制值之估計機率之值0.5。
二進制緩衝選擇器6可基於輸入二進制值5及指定對於兩個可能二進制值中的哪個表示當前二進制之更小機率或更大機率的二進制值的估計之相關聯識別符,決定輸出二進制值7。在實施例中,若識別符指定兩個可能二進制值中的第一二進制值表示當前二進制之更小機率(或更大機率)的二進制值,則將輸出二進制值7設定成等於輸入二進制值5,且若識別符指定兩個可能二進制值中的第二二
進制值表示當前二進制之更小機率(或更大機率)的二進制值,則修改輸出二進制值7(亦即,將輸出二進制值7設定成與輸入二進制值相反)。
二進制緩衝選擇器6可基於當前二進制之兩個可能二進制值中的一個二進制值的機率之估計的相關聯測度,決定二進制緩衝器8,輸出二進制7發送至該二進制緩衝器8。在實施例中,兩個可能二進制值中的一個二進制值的機率之估計的測度的可能值之集合為有限的,且二進制緩衝選擇器6含有表,該表恰好使一個二進制緩衝器8與該兩個可能二進制值中的一個二進制值的機率之估計之每一可能值相關聯,其中該兩個可能二進制值中的一個二進制值的機率之估計的測度之不同值可與相同二進制緩衝器8相關聯。在另一實施例中,將兩個可能二進制值中的一個二進制值的機率之估計的測度之可能值範圍分割成若干區間,二進制緩衝選擇器6決定該兩個可能二進制值中的一個二進制值的機率之估計的當前測度之區間標示,且二進制緩衝選擇器6含有表,該表恰好使一個二進制緩衝器8與該區間標示之每一可能值相關聯,其中該區間標示之不同值可與相同二進制緩衝器8相關聯。在較佳實施例中,將具有兩個可能二進制值中的一個二進制值的機率之估計的相反測度(相反測度為表示機率估計P及1-P之相反測度)之輸入二進制5饋送至相同二進制緩衝器8中。在另一較佳實施例中,當前二進制之兩個可能二進制值中的一個二進制值的機率之估計的測度與特定二進制緩衝器的關聯隨時間調適,(例
如)以確保所產生的部分位元串流具有類似位元率。
二進制緩衝選擇器6可基於當前二進制之更小機率或更大機率的二進制值的機率之估計的相關聯測度,決定二進制緩衝器8,輸出二進制7發送至該二進制緩衝器8。在較佳實施例中,更小機率或更大機率的二進制值的機率之估計的測度的可能值之集合為有限的,且二進制緩衝選擇器6含有表,該表恰好使一個二進制緩衝器8與更小機率或更大機率的二進制值的機率之估計之每一可能值相關聯,其中該更小機率或更大機率的二進制值的機率之估計的測度之不同值可與相同二進制緩衝器8相關聯。在另一實施例中,將更小機率或更大機率的二進制值的機率之估計的測度之可能值範圍分割成若干區間,二進制緩衝選擇器6決定該更小機率或更大機率的二進制值的機率之估計的當前測度之區間標示,且二進制緩衝選擇器6含有表,該表恰好使一個二進制緩衝器8與該區間標示之每一可能值相關聯,其中該區間標示之不同值可與相同二進制緩衝器8相關聯。在另一實施例中,當前二進制之更小機率或更大機率的二進制值的機率之估計的測度與特定二進制緩衝器的關聯隨時間調適,(例如)以確保所產生的部分位元串流具有類似位元率。
兩個或兩個以上二進制緩衝器8中之每一二進制緩衝器8恰好與一個二進制編碼器10連接,且每一二進制編碼器僅與一個二進制緩衝器8連接。每一二進制編碼器10自相關聯二進制緩衝器8讀取二進制且將二進制9之序列轉換
成碼字組11,該碼字組11表示位元之序列。二進制緩衝器8表示先進先出緩衝器;隨後(按順序的次序)被饋送至二進制緩衝器8中的二進制並不在較早地(按順序的次序)被饋送至該二進制緩衝器中的二進制之前編碼。將為特定二進制編碼器10之輸出的碼字組11寫入至特定部分位元串流12。整體編碼算法將源符號1轉換成兩個或兩個以上部分位元串流12,其中部分位元串流之數目等於二進制緩衝器及二進制編碼器之數目。在較佳實施例中,二進制編碼器10將可變數目的二進制9轉換成可變數目的位元之碼字組11。以上及以下概括的PIPE編碼實施例之一個優點為,可平行(例如,對於機率測度之不同群組而言)執行二進制之編碼,該優點減少若干實施之處理時間。
PIPE編碼之另一優點為,可針對參數5之不同集合具體設計藉由二進制編碼器10執行的二進制編碼。特定言之,可針對經估計機率之不同群組最佳化(依據編碼效率及/或複雜性)二進制編碼及編碼。一方面,此舉允許降低相對於具有類似編碼效率的算術編碼算法之編碼/解碼複雜性。另一方面,此舉允許改良相對於具有類似編碼/解碼複雜性的VLC編碼算法之編碼效率。在實施例中,二進制編碼器10針對當前二進制之兩個可能二進制值5中的一個二進制值5的機率的估計的測度之不同群組實施不同編碼算法(亦即,將二進制序列映射至碼字組上)。在另一實施例中,二進制編碼器10針對當前二進制之更小機率或更大機率的二進制值的機率之估計的測度之不同群組實施不同編碼算
法。在另一實施例中,二進制編碼器10針對不同通道保護碼實施不同編碼算法。在另一實施例中,二進制編碼器10針對不同加密方案實施不同編碼算法。在另一實施例中,二進制編碼器10針對當前二進制之兩個可能二進制值5中的一個二進制值5的機率的估計的測度的通道保護碼及群組的不同組合實施不同編碼算法。在另一實施例中,二進制編碼器10針對當前二進制之更小機率或更大機率的二進制值5的機率的估計的測度的通道保護碼及群組的不同組合實施不同編碼算法。在另一實施例中,二進制編碼器10針對當前二進制之兩個可能二進制值5中的一個二進制值5的機率的估計的測度的加密方案及群組的不同組合實施不同編碼算法。在另一較佳實施例中,二進制編碼器10針對當前二進制之更小機率或更大機率的二進制值5的機率的估計的測度的加密方案及群組的不同組合實施不同編碼算法。
二進制編碼器10或一或更多二進制編碼器可表示二進制算術編碼引擎。在另一實施例中,一或更多二進制編碼器表示二進制算術編碼引擎,其中藉由使用表查找來實現自給定二進制緩衝器之代表性的LPS/LPB機率pLPS映射至相應的碼區間寬度RLPS,亦即,二進制算術編碼引擎之內部狀態之區間再劃分識別(例如)碼區間之下限,該區間再劃分由當前區間寬度R及當前區間偏差L定義。在另一較佳實施例中,對於與給定二進制緩衝器相關聯的每一基於表之二進制算術編碼引擎而言,K代表的區間寬度值
{Q0,...,QK-1}用於表示具有K之選擇的RLPS及取決於二進制緩衝器的代表性的區間寬度值{Q0,...,QK-1}。對於K>1之選擇而言,二進制之算術編碼可涉及將當前區間寬度R映射至具有對於K=1之選擇而言,在僅給出一個代表性的區間寬度值Q0的情況下,可將此值Q0選作二之冪,以允許解碼在單一再歸一化週期內輸入相應二進制緩衝器的多個MPS/MPB值。可單獨地傳輸、包化或儲存每一算術編碼引擎之所得碼字組,或出於如在下文中描述的傳輸或儲存之目的,可將該等碼字組交錯。
亦即,二進制算術編碼引擎10可執行在該二進制算術編碼引擎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在此處並未提及,因為p_state固定用於所考慮的二進制算術編碼引擎10,亦即p_state[encoder],且Rtab在該處已儲存p[p_state[encoder]].Q[q_index]之預先計算值
R=R-RLPS[亦即,初步預先更新R,似乎「二進制」為MPS]
4. 新的部分區間之計算:若(二進制=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在此處並未提及,
因為p_state固定用於所考慮的二進制算術解碼引擎22,亦即p_state[encoder],且Rtab在該處已儲存p[p_state[encoder]].Q[q_index]之預先計算值R=R-RLPS[亦即,初步預先更新R,似乎「二進制」為MPS]
4. 取決於部分區間之位置的二進制之決定:若(V≧R)則二進制←1-valMPS(將二進制解碼為LPS;二進制緩衝選擇器18將藉由使用此二進制資訊及valMPS來獲取實際的二進制值)V←V-R R←RLPS否則二進制←valMPS(將二進制解碼為MPS;二進制緩衝選擇器18將藉由使用此二進制資訊及valMPS來獲取實際的二進制值)
5. R之再歸一化,讀出一個位元且更新V,其中q_index 描述由Qtab讀取的量化值之標示,p_state 描述當前狀態(固定用於二進制算術解碼引擎22),RLPS 描述對應於LPS之區間寬度,valMPS 描述對應於MPS之位元值,及V 描述來自當前部分區間之內部的值。
二進制編碼器10或一或更多二進制編碼器可表示熵編碼器,該等熵編碼器將輸入二進制9之序列直接映射至碼字組10上。此等映射可有效率地實施且不需要複雜的算術編碼引擎。將碼字組逆映射至二進制之序列上(如在解碼器中執行的)應為唯一的,以保證完美解碼輸入序列,但將二進制序列9映射至碼字組10上未必需要是唯一的,亦即,有可能可將二進制之特定序列映射至碼字組之多於一個序列上。在實施例中,將輸入二進制9之序列映射至碼字組10上為雙射的。在另一較佳實施例中,二進制編碼器10或一或更多二進制編碼器表示熵編碼器,該等熵編碼器將輸入二進制9之可變長度序列直接映射至可變長度碼字組10上。在實施例中,輸出碼字組表示無冗餘度碼,諸如,一般的霍夫曼碼或典型的霍夫曼碼。
將二進制序列雙射映射至無冗餘度碼之兩個實例圖示於表3中。在另一實施例中,輸出碼字組表示適合於錯誤偵測及錯誤恢復的冗餘碼。在另一較佳實施例中,輸出碼字組表示適合於加密源符號之加密碼。
在另一實施例中,二進制編碼器10或一或更多二進制編碼器表示熵編碼器,該等熵編碼器將輸入二進制9之可變長度序列直接映射至固定長度碼字組10上。在另一實施例中,二進制編碼器10或一或更多二進制編碼器表示熵編碼器,該等熵編碼器將輸入二進制9之固定長度序列直接映射至可變長度碼字組10上。
根據實施例之PIPE解碼器圖示於第4圖中。解碼器基本上執行第3圖之編碼器之逆向操作,以便自兩個或兩個以上部分位元串流24之集合解碼源符號27之(先前編碼的)序列。解碼器包括兩個不同處理流程:資料請求流及資料流,該資料請求流複製編碼器之資料流,該資料流表示編碼器資料流之逆向。在第4圖之說明中,虛線箭頭表示資料請求流,而實線箭頭表示資料流。解碼器之構建塊基本上複製編碼器之構建塊,但實施逆向操作。
源符號之解碼藉由請求新的解碼源符號13來觸發,該新的解碼源符號13被發送至二進制編碼器14。在實施例中,對於新的解碼源符號13之每一請求與一或更多類別之集合中的類別相關聯。與對於源符號之請求相關聯的類別同與編碼期間相應的源符號相關聯之類別相同。
二進制編碼器14將對於源符號13之請求映射至對於發送至參數分配器16的二進制之一或更多請求中。作為對於藉由二進制編碼器14發送至參數分配器16的二進制之請求的最終回應,二進制編碼器14自二進制緩衝選擇器18接收經解碼二進制26。二進制編碼器14將所接收的經解碼二進制26之序列與所請求的源符號的特定二進制化方案之二進制序列比較,且若所接收的經解碼二進制26之序列與源符號之二進制化匹配,則二進制編碼器清空該二進制編碼器之二進制緩衝器且輸出解碼源符號作為對新的解碼符號之請求的最終回應。若已接收的經解碼二進制之序列與所請求的源符號的特定二進制化方案之二進制序列中的
任一二進制序列不匹配,則二進制編碼器將對於二進制之另一請求發送至參數分配器,直至經解碼二進制之序列與所請求的源符號的二進制化方案之二進制序列中的一個二進制序列匹配為止。對於源符號之每一請求而言,解碼器使用用於編碼相應的源符號之相同二進制化方案。二進制化方案可因不同源符號類別而不同。特定的源符號類別之二進制化方案可取決於可能的源符號值之集合及/或該特定類別的源符號的其他性質。
參數分配器將一或更多參數之集合分配予對於二進制之每一請求,且參數分配器將對於具有參數之相關聯集合的二進制的請求發送至二進制緩衝選擇器。藉由參數分配器分配予所請求的二進制的參數之集合與在編碼期間分配予相應二進制的參數之集合相同。參數之集合可由在編碼器描述中提及的一或更多參數組成。
參數分配器16可使對於二進制的每一請求與當前所請求的二進制之兩個可能二進制值中的一個二進制值的機率之估計的測度相關聯。特定言之,參數分配器16可使對於二進制的每一請求與針對當前所請求的二進制的更小機率或更大機率的二進制值的機率的估計的測度及指定對於兩個可能二進制值中的哪個表示當前所請求的二進制之更小機率或更大機率的二進制值的估計之識別符相關聯。
在另一實施例中,參數分配器16可使對於二進制15、17的每一請求與當前所請求的二進制之兩個可能二進
制值中的一個二進制值的機率之估計的測度及一或更多另外的參數相關聯。在另一較佳實施例中,參數分配器16使對於二進制15、17的每一請求與針對當前所請求的二進制的更小機率或更大機率的二進制值的機率之估計之測度、指定對於兩個可能二進制值中的哪個表示當前所請求的二進制之更小機率或更大機率的二進制值的估計之識別符及一或更多另外的參數(該一或更多另外的參數可為以上列出參數中的一或更多參數)相關聯。
在實施例中,參數分配器16基於一或更多已解碼符號之集合,決定以上提及的機率測度中之一或更多機率測度(針對當前所請求的二進制的兩個可能二進制值中的一個二進制值的機率之估計之測度、針對當前所請求的二進制的更小機率或更大機率的二進制值的機率之估計之測度、指定對於兩個可能二進制值中的哪個表示當前所請求的二進制之更小機率或更大機率的二進制值的估計之識別符)。對於二進制的特定請求的機率測度之決定複製相應二進制之編碼器處的程序。用於決定機率測度之解碼符號可包括相同符號類別之一或更多已解碼符號、對應於鄰近空間及/或時間位置(相對於與源符號之當前請求相關聯的資料集)之資料集(諸如,取樣之區塊或群組)的相同符號類別之一或更多已解碼符號或對應於相同及/或鄰近空間及/或時間位置(相對於與源符號之當前請求相關聯的資料集)之資料集的不同符號類別之一或更多已解碼符號。
將對於具有參數17之相關聯集合的二進制之每
一請求饋送至二進制緩衝選擇器18中,參數17之該相關聯集合為參數分配器16之輸出。基於參數17之相關聯集合,二進制緩衝選擇器18將對於二進制19之請求發送至兩個或兩個以上二進制緩衝器20中之一個二進制緩衝器,且二進制緩衝選擇器18自選定的二進制緩衝器20接收經解碼二進制25。可能修改解碼輸入二進制25,且將具有可能的修改值之解碼輸出二進制26發送至二進制編碼器14作為對具有參數17之相關聯集合的二進制之請求的最終回應。
以與編碼器側的二進制緩衝選擇器之輸出二進制被發送至的二進制緩衝器相同的方式選擇二進制緩衝器20,對於二進制之請求被轉發至該二進制緩衝器20。
在實施例中,二進制緩衝選擇器18基於當前所請求的二進制之兩個可能二進制值中的一個二進制值的機率之估計的相關聯測度,決定二進制緩衝器20,對於二進制19之請求被發送至該二進制緩衝器20。在實施例中,兩個可能二進制值中的一個二進制值的機率之估計的測度的可能值之集合為有限的,且二進制緩衝選擇器18含有表,該表恰好使一個二進制緩衝器20與該兩個可能二進制值中的一個二進制值的機率之估計之每一可能值相關聯,其中該兩個可能二進制值中的一個二進制值的機率之估計的測度之不同值可與相同二進制緩衝器20相關聯。在另一實施例中,將兩個可能二進制值中的一個二進制值的機率之估計的測度之可能值範圍分割成若干區間,二進制緩衝選擇器18決定該兩個可能二進制值中的一個二進制值的機率之估
計的當前測度之區間標示,且二進制緩衝選擇器18含有表,該表恰好使一個二進制緩衝器20與該區間標示之每一可能值相關聯,其中該區間標示之不同值可與相同二進制緩衝器20相關聯。可將對於具有兩個可能二進制值中的一個二進制值的機率之估計的相反測度(相反測度為表示機率估計P及1-P之相反測度)之二進制17的請求轉發至相同二進制緩衝器20中。此外,當前二進制請求之兩個可能二進制值中的一個二進制值的機率之估計的測度與特定二進制緩衝器的關聯可隨時間調適。
二進制緩衝選擇器18可基於當前所請求的二進制之更小機率或更大機率的二進制值的機率之估計的相關聯測度,決定二進制緩衝器20,對於二進制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設定成與輸入二進制值相反)。在另一實施例中,若當前二進制請求之兩個可能二進制值中的一個二進制值的機率之測度大於(或大於或等於)特定臨界值,則將輸出二進制值26設定成等於輸入二進制值25;若當前二進制請求之兩個
可能二進制值中的一個二進制值的機率之測度小於或等於(或小於)特定臨界值,則修改輸出二進制值26(亦即,將輸出二進制值26設定成與輸入二進制值相反)。在較佳實施例中,該臨界值對應於兩個可能二進制值之估計機率之值0.5。
在另一實施例中,二進制緩衝選擇器18基於輸入二進制值25及指定對於兩個可能二進制值中的哪個表示當前二進制請求之更小機率或更大機率的二進制值的估計之與對於二進制17的請求相關聯的識別符,決定輸出二進制值26。在較佳實施例中,若識別符指定兩個可能二進制值中的第一二進制值表示當前二進制請求之更小機率(或更大機率)的二進制值,則將輸出二進制值26設定成等於輸入二進制值25,且若識別符指定兩個可能二進制值中的第二二進制值表示當前二進制請求之更小機率(或更大機率)的二進制值,則修改輸出二進制值26(亦即,將輸出二進制值26設定成與輸入二進制值相反)。
如以上所述,二進制緩衝選擇器將對於二進制19之請求發送至兩個或兩個以上二進制緩衝器20中之一個二進制緩衝器20。二進制緩衝器20表示先進先出緩衝器,自經連接二進制解碼器22以經解碼二進制21之序列饋送給該等先進先出緩衝器。作為對自二進制緩衝選擇器18發送至二進制緩衝器20的二進制19之請求的回應,二進制緩衝器20移除被首先饋送至二進制緩衝器20中的該二進制緩衝器20之內容之二進制且將該二進制發送至二進制緩衝選擇器
18。較早地移除被較早地發送至二進制緩衝器20之二進制且將該等二進制發送至二進制緩衝選擇器18。
兩個或兩個以上二進制緩衝器20中之每一二進制緩衝器20恰好與一個二進制解碼器22連接,且每一二進制解碼器僅與一個二進制緩衝器20連接。每一二進制解碼器22自單獨的部分位元串流24讀取碼字組23,該等碼字組23表示位元之序列。二進制解碼器將碼字組23轉換成二進制21之序列,二進制21之該序列被發送至經連接的二進制緩衝器20。整體解碼算法將兩個或兩個以上部分位元串流24轉換成若干經解碼源符號,其中部分位元串流之數目等於二進制緩衝器及二進制解碼器之數目,且藉由對於新的源符號之請求來觸發源符號之解碼。在實施例中,二進制解碼器22將可變數目的位元之碼字組23轉換成可變數目的二進制21之序列。以上PIPE實施例之一個優點為,可平行(例如,對於機率測度之不同群組而言)執行來自兩個或兩個以上部分位元串流的二進制之解碼,該優點減少若干實施之處理時間。
以上PIPE解碼實施例之另一優點為,可針對參數17之不同集合具體設計藉由二進制解碼器22執行的二進制解碼。特定言之,可針對經估計機率之不同群組最佳化(依據編碼效率及/或複雜性)二進制編碼及解碼。一方面,此舉允許降低相對於具有類似編碼效率的算術編碼算法之編碼/解碼複雜性。另一方面,此舉允許改良相對於具有類似編碼/解碼複雜性的VLC編碼算法之編碼效率。在實施例中,
二進制解碼器22針對當前二進制請求之兩個可能二進制值17中的一個二進制值17的機率的估計的測度之不同群組實施不同解碼算法(亦即,將二進制序列映射至碼字組上)。在另一實施例中,二進制解碼器22針對當前所請求的二進制之更小機率或更大機率的二進制值的機率之估計的測度之不同群組實施不同解碼算法。在另一實施例中,二進制解碼器22針對不同通道保護碼實施不同解碼算法。在另一實施例中,二進制解碼器22針對不同加密方案實施不同解碼算法。在另一實施例中,二進制解碼器22針對當前所請求的二進制之兩個可能二進制值17中的一個二進制值17的機率的估計的測度的通道保護碼及群組的不同組合實施不同解碼算法。在另一實施例中,二進制解碼器22針對當前所請求的二進制之更小機率或更大機率的二進制值17的機率的估計的測度的通道保護碼及群組的不同組合實施不同解碼算法。在另一實施例中,二進制解碼器22針對當前所請求的二進制之兩個可能二進制值17中的一個二進制值17的機率的估計的測度的加密方案及群組的不同組合實施不同解碼算法。在另一實施例中,二進制解碼器22針對當前所請求的二進制之更小機率或更大機率的二進制值17的機率的估計的測度的加密方案及群組的不同組合實施不同解碼算法。
二進制解碼器22在編碼器側執行相應的二進制編碼器之逆映射。
在實施例中,二進制解碼器22或一或更多二進制
解碼器表示二進制算術解碼引擎。
在另一實施例中,二進制解碼器22或一或更多二進制解碼器表示熵解碼器,該等熵解碼器將碼字組23直接映射至二進制21之序列上。此等映射可有效率地實施且不需要複雜的算術編碼引擎。碼字組映射至二進制之序列上必須是唯一的。在實施例中,碼字組23映射至二進制21之序列上是雙射的。在另一實施例中,二進制解碼器10或一或更多二進制解碼器表示熵解碼器,該等熵解碼器將可變長度碼字組23直接映射至二進制21之可變長度序列中。在實施例中,輸入碼字組表示無冗餘度碼,諸如,一般的霍夫曼碼或典型的霍夫曼碼。將無冗餘度碼雙射映射至二進制序列之兩個實例圖示於表3中。在另一實施例中,輸入碼字組表示適合於錯誤偵測及錯誤恢復的冗餘碼。在另一實施例中,輸入碼字組表示加密碼。
二進制解碼器22或一或更多二進制解碼器可表示熵解碼器,該等熵解碼器將固定長度碼字組23直接映射至二進制21之可變長度序列上。或者二進制解碼器22或一或更多二進制解碼器表示熵解碼器,該等熵解碼器將可變長度碼字組23直接映射至二進制21之固定長度序列上。
因此,第3圖及第4圖圖示用於編碼源符號1之序列的PIPE編碼器及用於重建源符號1之序列的PIPE解碼器的實施例。亦即,第3圖之PIPE編碼器可用作第1a圖中之PIPE編碼器104,其中二進制編碼器2充當符號化器122、參數分配器4充當分配器114、二進制緩衝選擇器6充當選擇器
120,且串行連接的二進制緩衝器8及二進制編碼器10之對充當熵編碼器116中之熵編碼器116,該等熵編碼器116中之每一熵編碼器116輸出對應於第1a圖中位元串流118的位元串流12。如自第3圖與第1圖之比較而變得清晰的,第1a圖之分配器114可使該分配器114之輸入以替代性方式連接至符號化器122之輸入側,而非該符號化器122之輸出側。類似地,第4圖之PIPE解碼器可用作第2a圖中之PIPE解碼器202,其中部分位元串流24對應於第2圖中之位元串流216、串行連接的緩衝器20及二進制解碼器22之對對應於個別的熵解碼器210、二進制緩衝選擇器18充當選擇器214、參數分配器16充當分配器212且二進制編碼器14充當去符號化器222。此外,第2a圖與第4圖之間的比較闡明去符號化器222、分配器212與選擇器214之間的互連可以不同方式配置,以便根據替代性實施例,修正第2a圖之連接以對應於第4圖中所示之連接。
第3圖之PIPE編碼器包含分配器4,該分配器4經配置以將若干參數5分配予字母符號3之序列中的每一字母符號。該分配係基於字母符號之序列的先前字母符號內含有的資訊,諸如,語法元素1之類別,當前字母符號屬於該類別之表示,諸如,二進制化,且根據語法元素1之語法結構,該類別為當前預期的,該種預期又是可自先前語法元素1及字母符號3之歷史推斷的。此外,編碼器包含多個熵編碼器10及選擇器6,該多個熵編碼器10中之每一熵編碼器10經配置以將轉發至各別熵編碼器的字母符號3轉換成各
別位元串流12,該選擇器6經配置以將每一字母符號3轉發至該多個熵編碼器10中之選定的熵編碼器10,該選擇取決於分配予各別字母符號3的參數5之數目。第4圖之PIPE解碼器包含:多個熵解碼器22,該多個熵解碼器22中之每一熵解碼器22經配置以將各別位元串流23轉換成字母符號21;分配器16,該分配器16經配置以基於字母符號之序列的先前重建的字母符號內含有的資訊,將若干參數17分配予待重建的字母符號之序列中的每一字母符號15(參見第4圖中之26及27);以及選擇器18,該選擇器18經配置以自該多個熵解碼器22中之選定的熵解碼器22擷取待重建的字母符號之序列中的每一字母符號,該選擇取決於定義至各別字母符號之參數之數目。分配器16可經配置以使得分配予每一字母符號的參數之數目包含或為各別字母符號可假定的可能字母符號值之中的分佈機率的估計的測度。待重建的字母符號之序列可為二進制字母表,且分配器16可經配置以使得機率分佈之估計由該二進制字母表之兩個可能二進制值的更小機率或更大機率二進制值的機率的估計的測度及指定對於兩個可能二進制值中的哪個表示更小機率或更大機率的二進制值的估計之識別符組成。分配器16可進一步經配置以基於待重建的字母符號之序列的先前重建的字母符號內含有的資訊,在內部將上下文分配予待重建的字母符號15之序列中的每一字母符號,其中每一上下文具有與該上下文相關聯的各別機率分佈估計,且分配器16可進一步經配置以基於先前重建的字母符號之符號值,使每一上
下文之機率分佈估計適應實際符號統計學,各別上下文被分配予該等先前重建的字母符號。該上下文可考慮語法元素(諸如)在視訊或圖像編碼中乃至在財務應用程式情況下的表中所屬於的空間關係或鄰近位置。隨後,可基於與分配予各別字母符號的上下文相關聯的機率分佈估計,諸如藉由對多個機率分佈估計代表中之一個機率分佈估計代表量化與分配予各別字母符號的上下文相關聯的機率分佈估計,以獲取該機率分佈之估計之測度,來決定每一字母符號之機率分佈之估計的測度。選擇器可經配置以使得在該多個熵編碼器與該多個機率分佈估計代表之間定義蓋射關聯,亦即,每一熵編碼器具有與該熵編碼器相關聯之至少一個機率分佈估計代表,但多於一個機率分佈估計代表可與一個熵編碼器相關聯。根據實施例,該關聯甚至可以為雙射的。選擇器18可經配置以取決於字母符號之序列之先前重建的字母符號,以預定的決定性方式隨時間改變自機率分佈估計之範圍至該多個機率分佈估計代表之量化映射。亦即,選擇器18可改變量化階大小,亦即,映射至個別機率標示上的機率分佈之區間,該等個別機率標示又可以蓋射方式與個別熵解碼器相關聯。該多個熵解碼器22又可經配置以回應量化映射之改變,調適該多個熵解碼器22將字母符號轉換成位元串流之方式。舉例而言,可針對各別機率分佈估計量化區間內的某一機率分佈估計來最佳化(亦即,可具有最佳壓縮率)每一熵解碼器22,且每一熵解碼器22可在後者改變之後改變該熵解碼器22之碼字組/符號序
列映射,以便調適各別機率分佈估計量化區間內的此某一機率分佈估計之位置,以進行最佳化。選擇器可經配置以改變量化映射,以使得自該多個熵解碼器擷取字母符號的率變得不太分散。關於二進制編碼器14,注意到若語法元素已為二進制,則可遠離該二進制編碼器14。此外,取決於解碼器22之類型,緩衝器20之存在並非必需的。此外,可在解碼器內整合緩衝器。
到現在為止,以上已關於第3圖及第4圖描述第1a圖及第2圖中之PIPE編碼器104及PIPE解碼器202之更詳細的實施例,若該等PIPE編碼器104及PIPE解碼器202較容易地在第1a圖及第2圖之設備中實施,則該等PIPE編碼器104及PIPE解碼器202產生平行位元串流輸出,在該平行位元串流輸出中平行輸送VLC部分位元串流及PIPE部分位元串流。在下文中,描述如何組合PIPE部分位元串流,以隨後沿著VLC位元串流平行傳輸,或其中二次交錯兩種位元串流(亦即,VLC位元串流及交錯的PIPE位元串流)的可能性。
在PIPE編碼器及解碼器之實施例中,針對源符號之有限集合執行編碼及解碼。通常編碼某一數量之資料,諸如,靜止影像、視訊序列之訊框或欄位、影像之片段、視訊序列之訊框或欄位之片段或連續的音訊取樣之集合等。對於源符號之有限集合而言,大體上,必須終止在編碼器側產生的部分位元串流,亦即,必須確保可自所傳輸或儲存的部分位元串流解碼所有的源符號。在最後的二進制插
入至相應的二進制緩衝器8中之後,二進制編碼器10必須確保完整的碼字組被寫入至部分位元串流12。若二進制編碼器10表示二進制算術編碼引擎,則必須終止算術碼字組。若二進制編碼器10表示熵編碼器,該熵編碼器實施將二進制序列直接映射至碼字組上,則在將最後的二進制寫入至二進制緩衝器之後儲存於二進制緩衝器中的二進制序列可能不表示與碼字組相關聯的二進制序列(亦即,該二進制序列可能表示與碼字組相關聯的兩個或兩個以上二進制序列之前綴)。在此情況下,必須將與二進制序列相關聯的碼字組中之任一碼字組寫入至部分位元串流,該二進制序列在二進制緩衝器中含有作為前綴的二進制序列(必須清除該二進制緩衝器)。藉由將具有特定或任意值之二進制插入至二進制緩衝器中,直至寫入碼字組為止,可執行此舉。在較佳實施例中,二進制編碼器選擇具有最小長度的碼字組中之一個碼字組(除相關聯二進制序列必須在二進制緩衝器中含有作為前綴的二進制序列的性質之外)。在解碼器側,二進制解碼器22可解碼比部分位元串流中最後的碼字組所需要的二進制更多的二進制;並非由二進制緩衝選擇器18請求此等二進制,且廢除並忽略此等二進制。藉由對於經解碼源符號的請求來控制符號之有限集合之解碼;若不針對大量資料請求另外的源符號,則終止解碼。
可單獨傳輸藉由PIPE編碼器產生的部分位元串流12,或可將該等部分位元串流12多工成單一位元串流,
或可將部分位元串流之碼字組交錯於單一位元串流中。
在實施例中,將大量資料之每一部分位元串流寫入至一個資料封包。該大量資料可為源符號之任意集合,諸如,靜止圖像、視訊序列之欄位或訊框、靜止圖像之片段、視訊序列之欄位或訊框之片段或音訊取樣之訊框等。
在另一較佳實施例中,將大量資料之部分位元串流中的兩個或兩個以上部分位元串流或大量資料之所有部分位元串流多工成一個資料封包。含有經多工部分位元串流的資料封包之結構圖示於第5圖中。亦即,第5圖中所示之資料封包可分別為中間交錯串流132及234之部分。
資料封包300由標頭及每一部分位元串流之資料的一個分區組成(對於所考慮量之資料而言)。資料封包之標頭300含有將資料封包(之剩餘部分)分割成位元串流資料302之區段的指示。除對於分割之指示之外,標頭可含有額外的資訊。在實施例中,對於分割資料封包的指示為在位元或位元組的單元或多個位元或多個位元組中資料區段開始的位置。在實施例中,相對於資料封包之開始或相對於標頭之末端或相對於先前的資料封包之開始,將資料區段開始的位置編碼為資料封包之標頭中的絕對值。在另一實施例中,將資料區段開始的位置區別編碼,亦即,僅將資料區段之實際開始與對於資料區段開始的預測之間的差異編碼。基於已知或已傳輸的資訊,諸如,資料封包之總大小、標頭之大小、資料封包中資料區段之數目、居先資料區段開始之位置,可獲得該預測。在一實施例中,不將第
一資料封包開始之位置編碼,而是基於資料封包標頭之大小推斷第一資料封包開始之該位置。在解碼器側,經傳輸的分割指示用於獲得資料區段之開始。資料區段隨後用作部分位元串流,且將該等資料區段中含有的資料按順序的次序饋送至相應的二進制解碼器中。
存在用於將部分位元串流12多工成資料封包的若干替代性實施例。特定言之針對部分位元串流之大小十分相似的情況可減少所需要的邊資訊的一個替代性實施例圖示於第6圖中。將資料封包(亦即,不具有該資料封包310的標頭311之資料封包310)之有效負載以預定義方式分割成區段312。例如,可將資料封包有效負載分割成相同大小之區段。隨後每一區段與部分位元串流相關聯或與部分位元串流313之第一部分相關聯。若部分位元串流大於相關聯資料區段,則將該部分位元串流之剩餘部分314置放至其他資料區段末端處的未使用空間中。可以按逆向次序(自資料區段末端開始)插入位元串流之剩餘部分的方式執行此舉,該方式減少邊資訊。部分位元串流之剩餘部分與資料區段的關聯及當向資料區段添加多於一個剩餘部分時,一或更多剩餘部分之起始點必須在位元串流內部用訊號發出,例如在資料封包標頭中。
對於一些應用而言,一個資料封包中部分位元串流12(針對大量源符號)之以上描述的多工可具有以下缺點:一方面,對於小資料封包而言,發出分割訊號所需要的邊
資訊之位元之數目可相對於部分位元串流中的實際資料而變得顯著,此狀況最終降低編碼效率。另一方面,多工可能不適合於需要低遲延之應用(例如,對於視訊會議應用而言)。由於之前並不知道分區開始之位置,故使用所述多工,PIPE編碼器無法在完全產生部分位元串流之前開始傳輸資料封包。此外,一般而言,PIPE解碼器必須等待,直至該PIPE解碼器在該PIPE解碼器可開始解碼資料封包之前接收最後的資料區段之開始為止。對於作為視訊會議系統的應用而言,此等延遲可合計為若干視訊圖像之系統之額外的總延遲(特定言之針對接近傳輸位元率且針對幾乎需要兩個圖像之間的時間區間以編碼/解碼圖像的編碼器/解碼器),該額外的總延遲對於此等應用而言十分關鍵。為了克服某些應用之缺點,可以將藉由兩個或兩個以上二進制編碼器產生的碼字組交錯至單一位元串流中的方式配置PIPE編碼器。可將具有經交錯碼字組之位元串流直接發送至解碼器(當忽略較小的緩衝延遲時,參見下文)。在PIPE解碼器側,兩個或兩個以上二進制解碼器自位元串流按解碼次序直接讀取碼字組;解碼可以首先接收的位元開始。此外,發出部分位元串流之多工(或交錯)訊號不需要任何邊資訊。
具有碼字組交錯之PIPE編碼器之基本結構圖示於第7圖中。二進制編碼器10不將碼字組直接寫入至部分位元串流,而是二進制編碼器10與單一碼字組緩衝器29連接,自該單一碼字組緩衝器29,將碼字組按編碼次序寫入至位元串流34。二進制編碼器10將對於一或更多新的碼字組緩
衝項28的請求發送至碼字組緩衝器29,且二進制編碼器10隨後將碼字組30發送至碼字組緩衝器29,該等碼字組30儲存於經保留的緩衝項中。碼字組緩衝器29之(一般而言可變長度)碼字組31藉由碼字組寫入器32來存取,該碼字組寫入器32將相應的位元33寫入至所產生的位元串流34。碼字組緩衝器29作為先進先出緩衝器操作;較早保留的碼字組項被較早寫入至位元串流。
在另一一般化中,多個碼字組緩衝器及部分位元串流12是可行的,其中碼字組緩衝器之數目少於二進制編碼器之數目。二進制編碼器10在碼字組緩衝器29中保留一或更多碼字組,藉此一或更多碼字組在碼字組緩衝器中的保留藉由經連接的二進制緩衝器8中之必然事件來觸發。在實施例中,以PIPE解碼器可瞬時解碼位元串流34的方式操作碼字組緩衝器29,該位元串流34分別對應於第1a圖中之132及第2圖中之134。將碼字組寫入至位元串流的編碼次序與將相應的碼字組保留於碼字組緩衝器中的次序相同。在實施例中,每一二進制編碼器10保留一個碼字組,其中該保留藉由經連接的二進制緩衝器中之必然事件來觸發。在另一實施例中,每一二進制編碼器10保留多於一個碼字組,其中該保留藉由經連接的二進制緩衝器中之必然事件來觸發。在另外的實施例中,二進制編碼器10保留不同量之碼字組,其中藉由特定二進制編碼器保留的碼字組之量可取決於特定二進制編碼器及/或特定二進制編碼器/二進制緩衝器之其他性質(諸如,相關聯機率測度、已寫入位元之數
目等)。
在實施例中,如下操作碼字組緩衝器。若將新的二進制7發送至特定二進制緩衝器8,且該二進制緩衝器中已儲存二進制之數目為零,且當前不存在任何碼字組保留於二進制編碼器之碼字組緩衝器中,該二進制編碼器與該特定二進制緩衝器連接,則經連接的二進制編碼器10將請求發送至該碼字組緩衝器,藉由該碼字組緩衝器,一或更多碼字組項保留於該特定二進制編碼器之碼字組緩衝器29中。碼字組項可具有可變數目之位元;通常藉由相應的二進制編碼器之最大碼字組大小給定緩衝項中位元之數目的上臨界。藉由二進制編碼器產生的一或更多接下來的碼字組(針對該一或更多接下來的碼字組已保留一或更多碼字組項)儲存於碼字組緩衝器之經保留的一或更多項中。若特定二進制編碼器之碼字組緩衝器中的所有經保留緩衝項填充有碼字組,且將下一個二進制發送至與該特定二進制編碼器連接的二進制緩衝器,則一或更多新的碼字組保留於該特定二進制編碼器之碼字組緩衝器中等。碼字組緩衝器29以某一方式表示先進先出緩衝器。緩衝項按順序的次序保留。較早保留的相應緩衝項所針對的碼字組被較早地寫入至位元串流。碼字組寫入器32連續地或者在將碼字組30寫入至碼字組緩衝器29之後檢查碼字組緩衝器29之狀態。若第一緩衝項含有完整的碼字組(亦即,該緩衝項未經保留,而是該緩衝項包括碼字組),則自碼字組緩衝器20移除相應的碼字組31及相應的緩衝項,且將碼字組之位元33寫入至
位元串流。重複此程序,直至第一緩衝項不含有碼字組(亦即,該碼字組為經保留或自由的)為止。在解碼程序的末端,亦即,若已處理考慮量之資料之所有源符號,則必須清除碼字組緩衝器。對於彼清除程序而言,針對每一二進制緩衝器/二進制編碼器應用下文作為第一步驟:若二進制緩衝器確實含有二進制,則添加具有特定或任意值之二進制,直至所得二進制序列表示與碼字組相關聯之二進制序列為止(如以上所註解,添加二進制之一個較佳方式為,添加產生與二進制序列相關聯的最短可能碼字組的此等二進制值或該等二進制值中之一個二進制值,該二進制序列含有二進制緩衝器之原有內容作為前綴),隨後將該碼字組寫入至相應的二進制編碼器之下一個經保留的緩衝項且清空(相應的)二進制緩衝器。若針對一或更多二進制編碼器已保留多於一個緩衝項,則碼字組緩衝器可仍含有經保留的碼字組項。在彼狀況下,此等碼字組項填充有相應的二進制編碼器之任意但有效的碼字組。在較佳實施例中,插入最短有效碼字組或該等最短有效碼字組中之一個最短有效碼字組(若存在多個)。最終,將碼字組緩衝器中所有剩餘碼字組寫入至位元串流。
碼字組緩衝器之狀態之兩個實例圖示於第8圖中。在實例(a)中,碼字組緩衝器含有2個項,該2個項填充有碼字組及5個經保留項。此外,標記下一個自由緩衝項。第一項填充有碼字組(亦即,二進制編碼器2剛剛將碼字組寫入至先前保留的項)。在下一個步驟中,將自碼字組緩衝器移
除此碼字組,且將此碼字組寫入至位元串流。由於僅保留第一緩衝項,但無碼字組寫入至此項,故隨後,二進制編碼器3之首先保留的碼字組為第一緩衝項,但無法自碼字組緩衝器移除此項。在實例(b)中,碼字組緩衝器含有3個項,該3個項填充有碼字組及4個經保留項。將第一項標記為經保留,因此碼字組寫入器無法將碼字組寫入至位元串流。儘管在碼字組緩衝器中含有3個碼字組,但碼字組寫入器必須等待,直至將碼字組寫入至二進制編碼器3之首先保留的緩衝項為止。注意到必須按保留碼字組之次序寫入該等碼字組,以能夠使解碼器側的程序逆向(參見下文)。
具有碼字組交錯之PIPE解碼器之基本結構圖示於第9圖中。二進制解碼器10不直接自單獨的部分位元串流讀取碼字組,而是二進制解碼器10連接至位元緩衝器38,自該位元緩衝器38按編碼次序讀取碼字組37。應注意,由於亦可自位元串流直接讀取碼字組,故未必需要位元緩衝器38。位元緩衝器38主要包括於處理鏈之明顯單獨的不同態樣之說明中。將具有經交錯的碼字組之位元串流40之位元39順序地插入至位元緩衝器38中,該位元串流40因此對應於第2圖中之位元串流234,該位元緩衝器38表示先進先出緩衝器。若特定二進制解碼器22接收一或更多二進制序列35之請求,則二進制解碼器22自位元緩衝器38經由位元請求36讀取一或更多碼字組37。PIPE解碼器可瞬時解碼源符號。注意到,PIPE編碼器(如以上所述)必須藉由適當地操作碼字組緩衝器來確保按與藉由二進制解碼器請求碼字組
之次序相同的次序將該等碼字組寫入至位元串流。在PIPE解碼器處,整個解碼程序藉由源符號之請求來觸發。作為藉由特定二進制編碼器保留在編碼器側的碼字組之數目與藉由相應的二進制解碼器讀取的碼字組之數目的參數必須相同。
在另一一般化中,多個碼字組緩衝器及部分位元串流是可行的,其中位元緩衝器之數目少於二進制解碼器之數目。二進制解碼器22自位元緩衝器38一次讀取一或更多碼字組,藉此自該位元緩衝器讀取一或更多碼字組藉由經連接二進制緩衝器20中之必然事件來觸發。在實施例中,當將對於二進制19之請求發送至特定二進制緩衝器20且二進制緩衝器不含有任何二進制時,以讀取一或更多碼字組之方式操作解碼器。但例如,若二進制緩衝器中的二進制之數目低於預定義臨界,則亦可能藉由其他事件來觸發讀取碼字組。在實施例中,每一二進制解碼器22讀取一個碼字組,其中該讀取藉由經連接的二進制緩衝器中之必然事件來觸發。在另一實施例中,每一二進制解碼器22讀取多於一個碼字組,其中該讀取藉由經連接的二進制緩衝器中之必然事件來觸發。在另一實施例中,二進制解碼器22讀取不同量之碼字組,其中藉由特定二進制解碼器讀取的碼字組之量可取決於特定二進制解碼器及/或特定二進制解碼器/二進制緩衝器之其他性質(諸如,相關聯機率測度、已讀取位元之數目等)。
在實施例中,如下操作自位元緩衝器讀取碼字組。
若將新的二進制請求19自二進制緩衝選擇器18發送至特定二進制緩衝器20,且二進制緩衝器中二進制之數目為零,則經連接的二進制解碼器22經由對位元緩衝器38的位元請求36自位元緩衝器38讀取一或更多碼字組37。二進制解碼器22將讀取的碼字組37轉換成二進制21之序列,且二進制解碼器22將此等二進制序列儲存於經連接的二進制緩衝器20中。作為對二進制請求19的最終回應,自二進制緩衝器20移除首先插入的二進制,且將首先插入的該二進制發送至二進制緩衝選擇器18。作為對進一步二進制請求的回應,移除二進制緩衝器中之剩餘二進制,直至清空二進制緩衝器為止。額外的二進制請求觸發二進制解碼器自位元緩衝器讀取一或更多新的碼字組等。位元緩衝器38表示預定義大小之先進先出緩衝器,且位元緩衝器38連續地填充有來自位元串流40之位元39。為了確保以與藉由解碼程序請求碼字組之方式相同的方式將該等碼字組寫入至位元串流,可以以上所述方式操作編碼器側的碼字組緩衝器。
因此,該多個熵解碼器中之每一熵解碼器可為可變長度解碼器,該可變長度解碼器經配置以將固定長度之碼字組映射至可變長度之符號序列,且可提供諸如碼字組緩衝器43之輸出的碼字組項,以接收經交錯碼字組之單一串流。該多個熵解碼器22可經配置以按順序的次序自碼字組項擷取碼字組,該順序的次序取決於藉由選擇器18自該多個熵解碼器擷取的待重建之符號序列中的符號產生自各別熵解碼器處新的碼字組映射的新的符號序列之次序。
PIPE編碼之所描述的碼字組交錯不需要將任何分割資訊作為邊資訊發送。且由於碼字組交錯於位元串流中,故延遲一般較小。然而,並不保證遵照特定延遲限制(例如,由儲存於碼字組緩衝器中的位元之最大數目指定的特定延遲限制)。此外,碼字組緩衝器所需要的緩衝區大小可在理論上變得十分大。在考慮第8(b)圖中之實例時,有可能沒有另外的二進制發送至二進制緩衝器3,因此二進制編碼器3將不將任何新的碼字組發送至碼字組緩衝器,直至應用資料封包末端處的清除程序為止。隨後在可將二進制編碼器1及2之所有碼字組寫入至位元串流之前,二進制編碼器1及2之所有碼字組將必須等待,直至資料封包之末端為止。可藉由向PIPE編碼程序(且亦向隨後描述的PIPE解碼程序)添加另一機制來防止此缺陷。彼額外的機制之基本概念為,若與延遲有關之測度或延遲之上限(參見下文)超過指定臨界,則藉由清除相應的二進制緩衝器(使用與資料封包之末端處之機制相似的機制),來填充首先保留的緩衝項。藉由此機制,減少等待的緩衝項之數目,直至相關聯延遲測度小於指定臨界為止。在解碼器側,必須廢除已在編碼器側插入以遵照延遲限制的二進制。對於二進制之此廢除而言,可使用基本上與編碼器側的機制相同的機制。在下文中描述此延遲控制之兩個實施例。
在一個實施例中,延遲之測度(或延遲之上限)為碼字組緩衝器中有效緩衝項之數目,其中有效緩衝項之數
目為經保留緩衝項之數目加上含有碼字組的緩衝項之數目。注意到由於若第一緩衝項含有碼字組,則將此碼字組寫入至位元串流,故該第一緩衝項始終為經保留緩衝項或自由緩衝項。若例如,最大允許緩衝延遲(由應用決定的)為D位元,且所有二進制編碼器之最大碼字組大小為L,則在不違反延遲限制的情況下在碼字組緩衝器中可含有的碼字組之最大數目之下限可藉由N=D/L來計算。系統不需要以位元計之延遲測度D,但碼字組之最大數目N必須對編碼器與解碼器兩者皆已知。在實施例中,碼字組緩衝項之最大數目N由應用固定。在另一實施例中,碼字組緩衝項之最大數目N在位元串流內部用訊號發出,例如,在資料封包之標頭(或片段標頭)中或在參數集中,該參數集包括於該位元串流中。若二進制編碼器10將保留一或更多新的緩衝項之請求發送至碼字組緩衝器29,則在保留新的碼字組緩衝項之前執行以下程序(亦即,若藉由一個請求保留多個碼字組緩衝項,則多次執行該程序):若當前有效緩衝項之數目加上1(考慮接下來將保留的緩衝項)大於碼字組緩衝項之最大數目N,則藉由下文中描述的程序清除第一緩衝項(該第一緩衝項為保留的),直至當前有效緩衝項之數目加上1小於或等於碼字組緩衝項之最大數目N為止。清除經保留緩衝項類似於資料封包之末端處的清除:藉由向經連接的二進制緩衝器8添加具有特定或任意值之二進制,直至所得二進制序列表示與碼字組相關聯的二進制序列為止,來清除已保留的相應第一緩衝項之二進制編碼器10,隨後將該碼字組寫入至
經保留緩衝項,且最終向位元串流添加該碼字組(同時清空二進制緩衝器且移除先前保留的緩衝項)。如以上所提及,向二進制緩衝器添加二進制之一個較佳方式為,添加產生最短可能碼字組之彼等二進制。在解碼器側,執行用於廢除為遵照延遲限制而添加的二進制之相似程序。因此,解碼器維持計數器C,該計數器C給自位元緩衝器讀取的碼字組計數(可在位元緩衝器中維持此計數器)。在解碼資料封包開始時初始化(例如,具有零)此計數器C,且在讀取碼字組之後此計數器C增加一。此外,每一二進制解碼器22含有計數器Cx,該計數器Cx在相應的二進制解碼器22讀取最後的碼字組之前儲存碼字組計數器C之值。亦即,當特定二進制解碼器22讀取新的碼字組時,將該特定二進制解碼器22之計數器Cx設定成等於C作為第一步驟,且隨後自位元緩衝器讀取碼字組。當將二進制請求19發送至特定二進制緩衝器20,且整體碼字組計數器C與經連接的二進制解碼器22之計數器Cx之間的差值(C-Cx)大於碼字組緩衝項之最大數目N時,廢除且忽略當前儲存於特定二進制緩衝器20中的所有二進制。除彼額外的步驟之外,如以上所述操作解碼。若清空二進制緩衝器20(因為已移除所有二進制,或者因為在接收二進制請求之後,低延遲機制在第一步驟中廢除所有二進制),二進制請求19被發送至該二進制緩衝器20,則經連接的二進制解碼器22自位元緩衝器38等讀取一或更多新的碼字組。
在另一實施例中,延遲之測度(或延遲之上限)為
碼字組緩衝器中有效緩衝項的最大碼字組長度的和,其中特定緩衝項之最大碼字組長度取決於與彼緩衝項相關聯的經解碼二進制。作為說明,在實例中用6指示緩衝項之最大碼字組長度。又注意到由於若第一緩衝項含有碼字組,則將此碼字組寫入至位元串流,故該第一緩衝項始終為經保留緩衝項或自由緩衝項。使最大經允許緩衝延遲(由應用決定的)為D位元。此最大緩衝延遲D必須對編碼器與解碼器兩者皆已知。在較佳實施例中,由應用固定最大緩衝延遲D。在另一較佳實施例中,最大緩衝延遲D在位元串流內部用訊號發出,例如,在資料封包之標頭(或片段標頭)中或在參數集中,該參數集包括於該位元串流中。可在位元或位元組之單元或多個位元或多個位元組中用訊號發出該最大緩衝延遲D。若二進制編碼器10將保留一或更多新的緩衝項之請求發送至碼字組緩衝器29,則在保留新的碼字組緩衝項之前執行以下程序(亦即,若藉由一個請求保留多個碼字組緩衝項,則多次執行該程序)。
若所有當前有效緩衝項之最大碼字組長度的和加上將被保留的緩衝項之最大碼字組長度大於最大緩衝延遲D,則藉由以上所述程序清除該第一緩衝項(該第一緩衝項為經保留的),直至所有有效緩衝項之最大碼字組長度的和加上將被保留的緩衝項之最大碼字組長度小於或等於最大緩衝延遲D為止。例如,考慮第8(b)圖中之實例。所有當前有效緩衝項之最大碼字組長度的和為29。假定將最大緩衝延遲D設定成等於32。由於29+3並不大於32,故若藉由
二進制編碼器2保留的下一個緩衝項之最大碼字組長度等於3,則未清除第一緩衝項。但由於29+7大於32,故若藉由二進制編碼器1保留的下一個緩衝項之最大碼字組長度等於7,則第一緩衝項被清除。如以上所述執行經保留緩衝項之清除(藉由向相應的二進制緩衝器添加具有特定或任意值之二進制)。
在解碼器側,執行用於廢除為遵照延遲限制而添加的二進制之相似程序。因此,解碼器維持計數器C,該計數器C給自位元緩衝器讀取的碼字組之最大碼字組長度計數(可在位元緩衝器中維持此計數器)。注意到,與不同二進制解碼器相關聯的最大碼字組長度可不同。在解碼資料封包開始時初始化(例如,具有零)該計數器C,且在讀取碼字組之後該計數器C增加。此計數器未增加讀取的碼字組之實際長度,而是增加該等讀取的碼字組之最大長度。亦即,若藉由特定二進制解碼器讀取碼字組,且與該特定二進制解碼器使用的碼字組表相關聯之最大碼字組長度為Lx(不同的二進制解碼器可與不同的最大碼字組長度相關聯),則計數器C增加Lx。除整體計數器C之外,每一二進制解碼器22含有計數器Cx,該計數器Cx在相應的二進制解碼器22讀取最後的碼字組之前儲存碼字組計數器C之值。亦即,當特定二進制解碼器22讀取新的碼字組時,將該特定二進制解碼器22之計數器Cx設定成等於C作為第一步驟,且隨後自位元緩衝器讀取碼字組。當將二進制請求19發送至特定二進制緩衝器20,且整體碼字組計數器C與經連接的二進制解
碼器22之計數器Cx之間的差值(C-Cx)大於最大緩衝延遲D時,廢除且忽略當前儲存於特定二進制緩衝器20中的所有二進制。除彼額外的步驟之外,如以上所述操作解碼。若清空二進制緩衝器20(因為已移除所有二進制,或者因為在接收二進制請求之後,低延遲機制在第一步驟中廢除所有二進制),二進制請求19被發送至該二進制緩衝器20,則經連接的二進制解碼器22自位元緩衝器38等讀取一或更多新的碼字組。
因此,該多個熵解碼器22及選擇器18可經配置以間歇廢除符號序列之後綴,以便不參與形成待重建的符號之序列29。可在事件處執行間歇廢除,在該事件處,藉由各別熵解碼器自碼字組項之兩個連續的碼字組擷取之間的多個熵解碼器自碼字組項擷取的若干碼字組滿足預定標準。該多個熵編碼器及碼字組緩衝器可又經配置以藉由具有當前轉發但尚未映射的符號作為前綴之全都符合(don’t-care)的符號將當前轉發但尚未映射的符號間歇地延伸至有效的符號序列;該多個熵編碼器及碼字組緩衝器可又經配置以將如此延伸的符號序列映射至碼字組中,該多個熵編碼器及碼字組緩衝器可又經配置以將因此獲取的碼字組輸入至經保留碼字組項中,且該多個熵編碼器及碼字組緩衝器可又經配置以清除該等碼字組項。該間歇延伸、輸入及清除可發生在若干經保留碼字組項加上具有在該處輸入的碼字組之若干碼字組項滿足一預定標準的若干事件處。此預定標準可考慮該多個編碼器/解碼器對之碼字組最大長度。
對於一些架構而言,碼字組交錯之以上所述較佳實施例可能產生關於解碼複雜性之缺陷。如第9圖中所示,所有二進制解碼器22自單一位元緩衝器38讀取碼字組(在一般情況下,可變長度碼字組)。由於必須按正確次序讀取碼字組,故無法平行執行碼字組之讀取。彼狀況意謂特定二進制解碼器必須等待,直至其他二進制解碼器完成碼字組之讀取為止。且當讀取可變長度碼字組之複雜性相對於(部分平行化)解碼程序之剩餘部分較顯著時,可變長度碼字組之此存取可能為整個解碼程序之瓶頸。存在所述實施例之一些變化,該等變化可用於降低自單一位元緩衝存取之複雜性,將在下文中描述該等變化中之數個變化。在一個較佳實施例中,存在碼字組之單一集合(表示例如無冗餘度前綴碼),且用於每一二進制解碼器22的碼字組之集合為該單一碼字組集合之子集。注意到,不同二進制解碼器22可使用該單一碼字組集合之不同子集。即使二進制解碼器22中之一些二進制解碼器22所使用的碼字組集合相同,該等碼字組集合與二進制序列之關聯因不同的二進制解碼器22而不同。在特定實施例中,碼字組之相同集合用於所有二進制解碼器22。若吾人具有單一碼字組集合,該單一碼字組集合包括所有二進制解碼器之碼字組集合作為子集,則可在二進制解碼器外部執行碼字組之剖析,此舉可降低碼字組存取之複雜性。PIPE編碼程序相對於以上所述程序並未改變。經修改的PIPE解碼程序圖示於第10圖中。用來自位元串流40之位元46饋送給單一碼字組讀取器,且該單一
碼字組讀取器剖析(一般而言可變長度)碼字組。將所讀取的碼字組44插入至碼字組緩衝器43中,該碼字組緩衝器43表示先進先出緩衝器。二進制解碼器22將一或更多碼字組41之請求發送至碼字組緩衝器43,且作為對此請求的回應,自碼字組緩衝器移除一或更多碼字組(按順序的次序)且將該一或更多碼字組發送至相應的二進制解碼器22。注意到,使用此實施例,可在後臺程序中執行可能複雜的碼字組剖析,且該剖析不需要等待二進制解碼器。二進制解碼器存取已剖析碼字組,可能複雜的碼字組剖析不再為對整體緩衝器之請求之部分。實情為,將已剖析碼字組發送至二進制解碼器,亦可以將僅碼字組標示發送至二進制解碼器的方式實施此舉。
可在不自全局位元緩衝器38讀取可變長度碼字組時實現降低PIPE解碼器複雜性之另一方式,但實情為,該等二進制解碼器22始終自全局位元緩衝器38讀取位元之固定長度序列且向局部位元緩衝器添加位元之此等固定長度序列,其中每一二進制解碼器22與單獨的局部位元緩衝器連接。隨後自局部位元緩衝器讀取可變長度碼字組。因此,可平行執行可變長度碼字組之剖析,僅位元之固定長度序列之存取必須以同步方式執行,但位元之固定長度序列之此存取通常十分迅速,以便可針對一些架構降低整體解碼複雜性。取決於作為二進制解碼器、二進制緩衝器或位元緩衝器中之事件的某些參數,發送至特定局部位元緩
衝器的二進制之固定數目可因不同局部位元緩衝器而不同,且該固定數目亦可隨時間變化。然而,藉由特定存取讀取的位元之數目並不取決於在特定存取期間讀取的實際位元,此狀況為與讀取可變長度碼字組的重要區別。讀取位元之固定長度序列藉由二進制緩衝器、二進制解碼器或局部位元緩衝器中之必然事件來觸發。例如,當存在於經連接位元緩衝器中之位元之數目降到預定義臨界以下時,有可能請求讀取位元之新的固定長度序列,其中不同臨界值可用於不同位元緩衝器。在編碼器處,必須保證按相同次序將二進制之固定長度序列插入至位元串流中,按該次序在解碼器側自位元串流讀取二進制之該等固定長度序列。亦可能將固定長度序列之此交錯與類似於以上闡釋的低延遲控制的低延遲控制組合。在下文中,描述位元之固定長度序列之交錯的較佳實施例。
第11圖圖示針對兩個或兩個以上二進制編碼器交錯位元之固定長度序列的實施例之PIPE編碼器結構的說明。與第7圖中所示實施例相反,二進制編碼器10並未與單一碼字組緩衝器連接。實情為,每一二進制編碼器10與單獨的位元緩衝器48連接,該單獨的位元緩衝器48儲存相應的部分位元串流之位元。所有位元緩衝器48連接至全局位元緩衝器51。全局位元緩衝器51連接至位元寫入器53,該位元寫入器53自該全局位元緩衝器按編碼/解碼次序移除位元52且將所移除的位元54寫入至位元串流55。在特定位元緩衝器48或經連接二進制編碼器10或二進制緩衝器8中
的必然事件之後,位元緩衝器48將請求49發送至全局位元緩衝器51,藉由該請求49,將某一數目之位元保留於全局位元緩衝器51中。按順序的次序處理保留固定長度位元序列之請求49。全局位元緩衝器51以某一方式表示先進先出緩衝器;較早被保留的位元被較早地寫入至位元串流。應注意,不同位元緩衝器48可保留不同量之位元,該量亦可基於已編碼符號而隨時間變化;但在將請求發送至全局位元緩衝器時已知藉由特定請求保留的位元之數目。
特定言之,如下文中所述操作位元緩衝器48及全局位元緩衝器51。藉由特定位元緩衝器48保留的位元之量表示為Nx。位元之此數目Nx可因不同位元緩衝器48而不同,且該數目亦可隨時間變化。在較佳實施例中,藉由特定位元緩衝器48保留的位元之數目Nx隨時間固定。基於位元緩衝器48中位元之數目Mx、保留請求之位元之數目Nx及相關聯的最大碼字組長度Lx,來觸發保留固定數目Nx之位元49。注意到,每一二進制編碼器10可與不同最大碼字組長度Lx相關聯。若將二進制7發送至特定二進制緩衝器8,且該特定二進制緩衝器8是清空的,且Nx個位元之不多於一個序列保留於位元緩衝器48之全局位元緩衝器中,該位元緩衝器48與該特定二進制緩衝器連接(經由二進制編碼器),且位元之數目Nx與位元之數目Mx之間的差值Nx-Mx小於與相應的二進制編碼器10相關聯的最大碼字組長度Lx,則經連接位元緩衝器49將保留Nx個位元之請求49發送至全局位元緩衝器51,位元之該數目Nx藉由位元緩衝器48之保留請求來
保留,該位元緩衝器48與該特定二進制緩衝器8(經由二進制編碼器)連接,位元之該數目Mx當前存在於此位元緩衝器48中。全局位元緩衝器51保留特定位元緩衝器48之Nx個位元,且全局位元緩衝器51為下一次保留增加該全局位元緩衝器51之指標。在Nx個位元保留於全局位元緩衝器中之後,將二進制7儲存於二進制緩衝器8中。若此單一二進制確實已表示與碼字組相關聯的二進制序列,則二進制編碼器10自二進制緩衝器8移除此二進制且將相應的碼字組47寫入至經連接位元緩衝器48。否則(此單一二進制確實已表示與碼字組相關聯的二進制序列),藉由特定二進制緩衝器8接受另外的二進制7,直至該二進制緩衝器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之前,該位元寫入器53等待,直至此項填充有實際位元為止。
在資料封包之末端,如以上所述清除二進制緩衝器。此外,必須藉由添加具有特定或任意值之位元,直至全局位元緩衝器中所有經保留緩衝項被填充且寫入至位元串流為止,來清除位元緩衝器。
在第12圖中,圖示全局位元緩衝器51之可能狀態之兩個實例。在實例(a)中,圖示不同位元緩衝器/二進制編碼器保留不同數目之位元的情況。全局位元緩衝器含有具有實際經寫入固定長度位元序列的3個項及具有經保留固定長度位元序列的4個項。第一固定長度項已含有實際位元(該等實際位元一定剛剛藉由位元緩衝器/二進制編碼器2插入);可移除此項(亦即,相應的8個位元),且將此項寫入至位元串流。下一個項保留二進制編碼器3之10個位元,但尚未插入實際位元。無法將此項寫入至位元串流;必須等待此項,直至插入實際位元為止。在第二實例(b)中,所有位元緩衝器/二進制編碼器保留相同數目之位元(8個位元)。全局位元緩衝器含有8個位元序列之4個保留及實際經寫入8個位元序列之3個保留。第一項含有二進制編碼器3之8個位
元之保留。在可將任何新的位元寫入至位元串流之前,位元寫入器必須等待,直至位元緩衝器/二進制編碼器3將8個位元之實際值寫入至此經保留項中。
第13圖圖示交錯位元的固定長度序列的本發明之實施例的PIPE解碼器結構之說明。與第9圖中所示實施例相反,二進制解碼器22並未與單一位元緩衝器連接。實情為,每一二進制解碼器22與單獨的位元緩衝器58連接,該單獨的位元緩衝器58儲存來自相應的部分位元串流之位元。所有位元緩衝器58連接至全局位元緩衝器61。將來自位元串流63之位元62插入至全局位元緩衝器61中。在特定位元緩衝器58或經連接二進制解碼器22或二進制緩衝器20中的必然事件之後,位元緩衝器58將請求59發送至全局位元緩衝器61,藉由該請求59,自全局位元緩衝器61移除位元60之固定長度序列且將位元60之固定長度序列插入至特定位元緩衝器58中。按順序的次序處理固定長度位元序列之請求59。全局位元緩衝器61表示先進先出緩衝器;較早地移除較早被插入至全局位元緩衝器中的位元。應注意,不同位元緩衝器58可請求不同量之位元,該量亦可基於已解碼符號而隨時間變化;但在將請求發送至全局位元緩衝器時已知藉由特定請求所請求的位元之數目。應注意,由於亦可自位元串流直接讀取碼字組,故未必需要全局位元緩衝器61。全局位元緩衝器61主要包括於處理鏈之明顯單獨的不同態樣之說明中。
在實施例中,如下文中所述操作位元緩衝器58
及全局位元緩衝器61。藉由特定位元緩衝器58請求且讀取的位元之量表示為Nx,該量等於藉由編碼器側的相應位元緩衝器寫入至全局位元緩衝器的位元之量。位元之此數目Nx可因不同位元緩衝器58而不同,且該數目亦可隨時間變化。在本發明之較佳實施例中,藉由特定位元緩衝器58請求且讀取的位元之數目Nx隨時間固定。基於位元緩衝器58中位元之數目Mx及相關聯的最大碼字組長度Lx,觸發固定數目Nx之位元60之讀取。注意到,每一二進制解碼器22可與不同最大碼字組長度Lx相關聯。若將二進制請求19發送至特定二進制緩衝器20,且該特定二進制緩衝器20為清空的,且位元緩衝器58中位元之數目Mx小於與相應二進制解碼器22相關聯的最大碼字組長度Lx,則經連接位元緩衝器58將Nx個位元之新的序列之請求59發送至全局位元緩衝器61,該位元緩衝器58與該特定二進制緩衝器20連接(經由二進制解碼器)。作為對此請求的回應,自全局位元緩衝器61移除最初Nx個位元,且將Nx個位元60之此序列發送至位元緩衝器58,自該位元緩衝器58發送該請求。最終,向相應的位元緩衝器58添加Nx個位元之此序列。隨後自此位元緩衝器讀取下一個碼字組57,且經連接二進制解碼器22將相關聯二進制序列21插入至經連接二進制緩衝器20中。作為對二進制原有請求19的最終回應,自二進制緩衝器20移除第一二進制,且將此經解碼二進制25發送至二進制緩衝選擇器18。當將下一個二進制請求19發送至特定二進制緩衝器20且二進制緩衝器不是清空的時,自該二進制緩衝器20
移除下一個位元。若二進制緩衝器為清空的,但經連接位元緩衝器58中位元之數目Mx大於或等於相關聯最大碼字組長度Lx,則自位元緩衝器讀取下一個碼字組,且將新的二進制序列插入二進制緩衝器中,自該二進制緩衝器移除第一位元,且將該第一位元發送至二進制緩衝選擇器。若二進制緩衝器為清空的,且經連接位元緩衝器58中位元之數目Mx小於相關聯最大碼字組長度Lx,則自全局位元緩衝器61讀取Nx個位元之下一個序列,且將Nx個位元之該下一個序列插入至經連接局部位元緩衝器58中,自位元緩衝器讀取下一個碼字組,將新的二進制序列插入二進制緩衝器中,且移除該序列之第一二進制且將序列之該第一二進制發送至二進制緩衝選擇器。重複此程序,直至解碼所有源符號為止。
在資料封包之末端,可能將比解碼經請求源符號所需要的二進制及/或位元更多的二進制及/或位元插入至二進制緩衝器及/或位元緩衝器中。廢除且忽略二進制緩衝器中之剩餘二進制及位元緩衝器中之剩餘位元。
具有固定長度位元序列之交錯的PIPE編碼器及解碼器之所述實施例亦可與以上所述的控制編碼器緩衝延遲之方案組合。PIPE編碼概念與具有以上所述延遲控制的實施例中之PIPE編碼概念相同。若與延遲有關之測度或延遲之上限(參見下文)超過指定臨界,則藉由清除相應的二進制緩衝器(使用與資料封包之末端處之機制相似的機制),且
可能寫入用於填充經保留固定長度緩衝項之所有位元之額外的位元,來填充首先保留的緩衝項。藉由此機制,減少等待的緩衝項之數目,直至相關聯延遲測度小於指定臨界為止。在解碼器側,必須廢除已在編碼器側插入以遵照延遲限制的二進制及位元。對於二進制及位元之此廢除而言,可使用基本上與編碼器側的機制相同的機制。
在實施例中,延遲之測度(或延遲之上限)為全局位元緩衝器中的有效緩衝項中位元之數目,其中有效緩衝項之數目為經保留固定長度緩衝項之數目加上含有已寫入位元的固定長度緩衝項之數目。注意到由於若第一緩衝項含有經寫入位元,則將此等位元寫入至位元串流,故該第一緩衝項始終為經保留固定長度緩衝項或自由緩衝項。使最大經允許緩衝延遲(由應用決定的)為D位元。此最大緩衝延遲D必須對編碼器與解碼器兩者皆已知。在本發明之較佳實施例中,由應用固定最大緩衝延遲D。在本發明之另一較佳實施例中,最大緩衝延遲D在位元串流內部用訊號發出,例如,在資料封包之標頭(或片段標頭)中或在參數集中,該參數集包括於該位元串流中。可在位元或位元組之單元或多個位元或多個位元組中用訊號發出該最大緩衝延遲D。若二進制編碼器10將保留新的固定長度位元序列之請求發送至全局位元緩衝器51,則在保留新的固定長度緩衝項之前執行以下程序。
若全局位元緩衝器中的有效緩衝項中的位元之數目加上將藉由當前保留請求保留的位元之數目大於最大
緩衝延遲D,則藉由下文中所述程序清除第一緩衝項(該第一緩衝項為經保留的),直至全局位元緩衝器中的有效緩衝項中的位元之數目加上將藉由當前保留請求保留的位元之數目小於或等於最大緩衝延遲D為止。清除經保留固定長度緩衝項類似於資料封包之末端處的清除:藉由向經連接的二進制緩衝器8添加具有特定或任意值之二進制,直至所得二進制序列表示與碼字組相關聯的二進制序列為止,來清除與已保留的相應第一緩衝項之位元緩衝器48連接的二進制編碼器10,隨後將該碼字組插入至相應的位元緩衝器48中。如以上所提及,向二進制緩衝器添加二進制之一個較佳方式為,添加產生最短可能碼字組之彼等二進制。若在將碼字組寫入至經連接位元緩衝器且可能將固定長度位元序列插入至全局位元緩衝器中之後,在位元緩衝器中仍存在位元(亦即,經寫入碼字組未完全填充位元之經保留固定長度序列),則向位元緩衝器添加具有特定或任意值之另外的位元,直至自該位元緩衝器移除所有位元且將所有位元寫入至經保留緩衝項為止。最終,在此程序之末端處,自全局位元緩衝器移除完整的緩衝項(全局位元緩衝器中之第一固定長度項)且將該完整的緩衝項寫入至位元串流。
在解碼器側,執行用於廢除為遵照延遲限制而添加的二進制及位元之相似程序。因此,解碼器維持計數器C,該計數器C給自全局位元緩衝器讀取的位元計數(可在全局位元緩衝器中維持此計數器)。在解碼資料封包開始時初始化(例如,具有零)該計數器C,且在讀取固定長度序列之後
該計數器C增加。若自全局位元緩衝器61讀取Nx個位元之固定長度序列,則計數器C增加Nx。除整體計數器C之外,每一位元緩衝器58含有計數器Cx,該計數器Cx在將最後的固定長度位元序列讀取至相應的位元緩衝器58中之前儲存位元計數器C之值。當特定位元緩衝器58讀取新的固定長度位元序列時,將該特定位元緩衝器58之計數器Cx設定成等於C作為第一步驟,且隨後自全局位元緩衝器61讀取該固定長度位元序列。當將二進制請求19發送至特定二進制緩衝器20,且整體計數器C與經連接的位元緩衝器58之計數器Cx之間的差值(C-Cx)大於最大緩衝延遲D時,廢除且忽略當前儲存於特定二進制緩衝器20中的所有二進制及儲存於經連接位元緩衝器58中的所有位元。除彼額外的步驟之外,如以上所述操作解碼。若清空二進制緩衝器20(因為已移除所有二進制,或者因為在接收二進制請求之後,低延遲機制在第一步驟中廢除所有二進制),二進制請求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表,霍夫曼碼及該霍夫曼碼之相應的VLC表兩者皆依據算法複雜性以及依據實施成本。亦,在具有p s (a i )>0.5的主要字母值的情況下,相應的霍夫曼碼之冗餘度(在不使用諸如游程編碼之任何字母延伸的情況下)可為相當實質的。霍夫曼碼之另一缺陷藉由在處理高階機率模型化情況下可能需要多組VLC表的事實給出。
另一方面,儘管算術編碼實質上比VLC更複雜,但當應對適應性且高階機率模型化以及應對高度偏斜機率分佈的情況時,該算術編碼提供更一致且更充分處理之優
點。實際上,此特性基本上由算術編碼提供將機率估計之任何給定值以差不多直接的方式映射至所得碼字組之部分的至少概念性機制的事實產生。在具備此介面的情況下,算術編碼允許一方面機率模型化及機率估計之任務與另一方面實際的熵編碼亦即將符號映射至碼字組之間的清晰分離。
不同於剛剛論述的習知熵編碼方案,PIPE編碼使用機率區間分割,以下更詳細地描述該機率區間分割之數學背景。
考慮編碼符號之序列{s 0,...,s N-1}。自字母表s i A i 抽出每一符號。字母表含有兩個或兩個以上字母,該兩個或兩個以上字母各自與機率估計相關聯。機率估計對編碼器及解碼器已知,且機率估計可為固定或可變的。假定在編碼器及解碼器處同時估計可變機率。字母表A i 可對於符號之序列而言為相同的,或者不同符號類型與不同字母表相關聯。在後者情況下,假定解碼器已知序列中每一符號之字母表。此假定被證明是正確的,因為實用源編解碼器描述含有語法,該語法規定符號之次序及該等符號之字母表。
符號之序列{s 0,...,s N-1}轉換成二進制符號之序列,該等二進制符號亦稱為二進制。對於每一符號s i 而言,二進制化
表示將字母表字母雙射映射至二進制之有次序的集合
上。該二進制化映射可因不同符號s i 或符號類別而不同。特定符號s i 之每一二進制序列i由一或更多二進制組成。在解碼器側,符號s i 可在給定二進制 b i 之序列的情況下,藉由逆映射來重建。作為二進制化的結果,獲取二進制之序列{b 0,...,b B-1}二進制之該序列表示源符號之序列{s 0,...,s N-1}。
所有二進制b j 與相同二進制字母表B={0,1}相關聯,但情況下的相應二進制通常不同。二進制可藉由更小機率二進制(less probable bin;LPB)值及該LPB值之機率(其中0.5)來描述。此二進制機率描述{,}可在給定二進制化映射的情況下自符號字母表之機率估計直接獲得。亦可能(且通常較佳地)同時在編碼器及解碼器側直接估計{,}。因此,二進制可與基於語法及先前經編碼符號或二進制之機率模型(該機率模型亦稱為上下文)相關聯。且對於每一機率模型而言,可基於用機率模型編碼的二進制之值,來估計機率描述{,}。關於H.264之CABAC描述此二進制機率模型化之實例。
由於二進制熵函數H(p)=-p log2(p)-(1-p)log2(1-p) (B3)在p=0.5周圍是對稱的,故相同二進制編碼器可用於編碼與相同LPB機率相關聯的所有二進制,而與之值無關。因此,二進制之序列{b 0,...,b B-1}轉換成編碼二進制之序列{,...,}。對於每一二進制b j 而言,相應的雙射映射由
指定,其中♁表示互斥或運算子。在解碼器側,二進制b j 可在給定編碼二進制及相應的LPB值的情況下藉由逆映射重建。編碼二進制指定相應的二進制b j 之值等於LPB值,且編碼二進制指定相應的二進制之值b j 等於更大機率二進制(more probable bin;MPB)值1-。
編碼二進制之序列{,...,}唯一地表示源符號之序列{s 0,...,s N-1},且可用於熵編碼的相應機率估計完全藉由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。在不失一般性的情況下,吾人針對k=0,...,K假定p k <p k+1。外部區間界限由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 研究預期總率R之一階導數,其中k=1,...,K-1。若針對所有p[,),f(p)>0,則方程式對於定義域[,)內部的區間界限p k 具有單一解,
且此解之二階偏導數
始終大於零,以便為區間界限p k [,),該區間界限最小化在給定區間代表及情況下的預期總率R。若存在機率p [,),其中f(p)=0,則方程式具有多個解,但方程式B13中給定的仍為最佳的,即使進一步最佳解可能存在。
給定區間數目K及機率分佈f(p),可藉由求解經受針對k=0,...,K-1之條件B12的方程式B10及B13給定的方程式體系,來獲取最小化預期總率R之區間界限p k (其中k=1,...,K-1)及區間代表(其中k=0,...,K-1)。可用以下迭代算法實現此舉。
算法1:
1)針對所有k=0,...,K-1,以針對所有k=0,...,K-1遵照條件B12的方式將區間(0,0.5]分割成K個任意區間I k =(p k ,p k+1],其中p 0=0、p K =0.5,且p k <p k+1。
2)根據方程式B10更新代表,其中k=0,...,K-1
3)根據方程式B13更新區間界限p k ,其中k=1,...,K-1
4)重複先前的兩個步驟,直至收斂為止
第14圖圖示使用所述算法的最佳區間離散化之實例。針對此實例,吾人假定對於0<p 0.5的均勻機率分佈f(p)=2且將機率區間(0,0.5]分割成K=4個區間。可看出機率區間離散化產生二進制熵函數H(p)之分段線性近似法A(p),其中對於所有p (0,0.5]而言A(p) H(p)。
作為區間離散化對編碼效率的影響之測度,可使
用相對於熵極限
之預期總率增加。對於第14圖之特定實例而言,熵之期望值等於1/(2 ln 2)每二進制位元且率額外負擔等於1.01%。表4針對區間之選定數目K,分別列出均勻機率分佈之率額外負擔及線性增加機率分佈f(p)=8p之率額外負擔,其中p (0,0.5]。
此節中研究顯示LPB機率區間(0,0.5]離散化成具有固定機率之少量區間(例如,8個至10個區間)對編碼效率具有非常小的影響。
機率區間之以上論述的熵編碼因此使用固定機率實現個別編碼器。
在下文中,吾人首先顯示可如何針對固定機率設計簡單碼。給定此等結果,吾人開發算法,該算法共同地最佳化編碼設計及LPB機率區間(0,0.5]之分割。
可使用算術編碼或可變長度編碼執行固定機率之熵編碼。對於後者情況而言,以下方法似乎簡單且十分有效率。
吾人考慮二進制熵編碼方案,藉由該二進制熵編碼方案,將可變數目之二進制映射至可變長度碼字組上。對於唯一可解碼性而言,將碼字組逆映射至二進制序列必須是唯一的。且由於吾人想要設計儘可能近地接近熵極限之碼,故吾人將吾們的考慮限制於雙射映射。此雙射映射可由二元樹表示,其中所有葉節點與碼字組相關聯,如第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 }之機率p l 等於
二元樹T之特徵完全在於葉節點之數目L及相關聯對{a l ,b l },其中l=0,...,L-1。
給定滿二元樹T及LPB機率p,可藉由霍夫曼算法獲取碼字組至葉節點之最佳分配。所得可變數目之位元至可變長度碼字組(V2V)的映射C的特徵在於碼字組之數目L,碼字組之該數目與葉節點之數目及l=0,...,L-1之元組{a l ,b l ,l l }一致,其中l l 表示與相應葉節點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,針對各種LPB機率p設計V2V碼,該等所有二元樹T之葉節點之數目L小於或等於給定的最大值L m 。在第16圖中,在選定的最大表大小L m之LPB機率p內繪製相對率增加ρ(p,C *(p))=R(p,C *(p))/H(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]而言,若碼C k 最小化該給定區間之預期率,則最佳碼中之給定集合S C 之碼C k
對於實用的設計而言,方程式B19中整數之最小化可藉由首先根據方程式B10針對區間I k 決定最佳代表性機率且隨後根據方程式B18針對代表性機率選擇給定集合S C 之最佳碼來簡化,而對編碼效率具有較小影響。
可藉由最小化預期總率來導出給定碼之集合C k (其中k=0,...,K-1)情況下的最佳區間界限p k (其中k=1,...,K-1)。
針對k=1,...,K-1,相對於區間界限將一階導數設定成等於零,,得到
類似地,關於方程式B13,可以表明始終為最佳解,但取決於機率分佈f(p),另外的最佳解可能存在。因此,在分別給定相關聯碼C k-1及C k 的情況下,兩個區間I k-1及I 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)重複先前的三個步驟,直至收斂為止
算法2中之步驟2及步驟3亦可根據方程式B19,基於區間界限p k ,其中k=0,...,K,由直接導出碼C k S C ,其中k=0,...,K-1替代。此外,如節4.1中所提及的,步驟3中的最小化亦可在二元樹之給定集合S T 內進行,其中對於每一二元樹T而言,考慮藉由霍夫曼算法獲取的僅一個V2V碼C k 。
例如,吾人使用算法2共同導出分割成K=12個機率區間及相應的V2V碼。此後,該算法之步驟3中的最小化以二元樹之給定集合S T 內等效的最小化來替代,其中每一樹T之經評估碼C藉由霍夫曼算法獲取。吾人考慮具有葉節點之最大數目L m =65的樹T,因此考慮具有高達65個表項的碼C。已在最小化中評估具有高達16個葉節點之所有二元樹T;對於具有多於16個葉節點的樹而言,在給定具有更小數目葉節點的樹之更佳結果的情況下,吾人採用次最佳的搜尋。
在第17圖中,在LPB機率p內繪製編碼設計實例之相對於熵極限的預期率增加△R(p)=R(p)-H(p)。作為比較,吾人亦針對理論上最佳的機率區間離散化(如節3中揭示的)及具有圖內部額外限制之理論上最佳的機率離散化,繪製預期率增加△R。可看出共同的機率區間離散化及V2V編碼設計導致區間界限移動(區間界限p k 由△R(p)曲線之局部最大值給定,其中k=1,...,K-1)。當假定均勻機率分佈f(p)時,具有真實的V2V碼之設計實例之相對於熵極限的相對預期總率增加為。理論上最佳的機率區間離散化及具有額外限制之理論上最佳的機率離散化之相應的相對率增加分別為及。
可如下執行碼字組終止。當編碼符號之有限序列{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圖中所示的滿二元樹。
在表5中給出第18圖中之滿二元樹之二進制化。將三進制符號pmf p s 轉換成兩個二進制pmf及。對於位元串流中之每一符號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.1726bit/symbol (B22)
單一字母霍夫曼碼之平均碼字長度給定為對應於ρ HC =0.1274位元/符號之冗餘度或10.87%預期率額外負擔的
對於具有固定pmf的特定二進制化實例而言,由於針對兩個二進制,LPB值等於0,故二進制b 0及b 1已表示編碼二進制。LPB機率之分佈f(s)是離散的,其中除p=0.3及p=0.4之外,f(p)=0。因此,最佳機率離散化產生具有代表及之K=2個區間。可在[0.3,0.4)中任意選擇此等區間之間的區間界限p 1。
為編碼該源,將源符號之序列二進制化成二進制之序列。針對每一源符號傳輸二進制b 0。僅當b 0=0時傳輸二進制b 1。分別用及之恆定的LPB機率單獨編碼二進制b 0及b 1。
可藉由簡單的V2V映射來實現具有固定機率的二進制字母表之高效編碼。分別在表6及表7中給出具有LPB機率p LPB =0.3及p LPB =0.4之較小的編碼表的V2V映射之實例。p LPB =0.3之V2V映射產生0.0069bit/bin或0.788%之冗餘
度。對於p LPB =0.4之LPB機率而言,冗餘度為0.0053bit/bin或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 ={b 0,...,b B-1}產生二進制之序列 b ={b 0,...,b B-1}
˙二進制之序列轉換成編碼二進制之序列 b
˙使用機率區間離散化及K個固定二進制編碼器二進制熵編碼編碼二進制之序列若編碼二進制之序列為唯一可解碼的且映射γ b 及γ c 為可逆的,則符號序列 s ={s 0,...,s N-1}為唯一可解碼的。
讓γ e 通知編碼器將一或更多編碼二進制之序列 b 映射至一或更多碼字組之序列 c ( b c)={c0,...}上。
c ( b c)=γ e (b c ) (B25)
對於給定碼字組之序列 c ( b c)情況下的編碼二進制之序列 b c的唯一可解碼性而言,編碼器映射γ e 必須具有將
唯一碼字組 c ( b c)分配予編碼二進制之每一可能序列 b c的性質:
當使用算術碼或前綴碼時,始終滿足此性質。由於V2V碼表示可變數目之二進制之前綴碼,故對於節4.1中描述的V2V碼(包括節4.3中描述的碼字組終止)而言尤其滿足此性質。
然而,在本熵編碼方法中,將編碼二進制之序列 b c分割成K個子序列,其中k=0,...,K-1,{ b 0 c,..., b K-1 c}=γ p (b c ) (B27)且對於子序列中之每一子序列,使用特定編碼器映射分配碼字組之序列 c k( b k c)。因此,必須延伸唯一可解碼性之條件。若在給定相應碼字組 c k( b k c)的情況下編碼二進制之每一子序列 b k c為唯一可解碼的,且分割規則γ p 對編碼器已知,則在給定碼字組 c k( b k c)之K個序列,其中k=0,...,K-1的情況下,編碼二進制之序列 b c 為唯一可解碼的。分割規則γ p 由LPB機率區間離散化{I k }及與編碼二進制相關聯的LPB機率p j LPB 給定,其中j=0,...,B-1。因此,LPB機率區間離散化{I k }必須在解碼器側已知,且必須在編碼器及解碼器側以相同方式導出每一編碼二進制之LPB機率p j LPB ,其中j=0,...,B-1。
為將二進制之序列映射γ c 至編碼二進制之序列c上,將每一單一b j 藉由二進制映射來轉換,其中j=0,...,B-1。在解碼器側,二進制序列可藉由二
進制映射來導出,
其中j=0,...,B-1。由於
故若在編碼器及解碼器側以相同方式導出每一二進制b j 之LPB值,則此等映射表示相應的編碼器映射之逆向,因此,二進制序列 b 轉換γ b 成編碼二進制之序列 b c是可逆的。
最終,吾人研究二進制化 b =γ b (s)之可逆性,藉由該可逆性將每一符號s i 映射至二進制序列上,其中i=0,...,N-1。若二進制化映射將不同的二進制序列分配予符號s i 之字母表A i 之每一字母,則在給定相應的二進制序列 b i 情況下,可唯一解碼符號s i 。然而,由於將二進制序列 b ={b 0,...,b B-1}分割成對應於符號s i 之二進制序列 b i 對解碼器並非已知,其中i=0,...,N-1,故此條件並不充分。當對於每一符號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 相關聯,該符號類別c s 決定符號之類型,符號之該類型包括該符號之值範圍。符號及相關聯符號類別之次序應藉由語法來給定,假定該語法在編碼器及解碼器側已知。
示例性PIPE編碼器及PIPE解碼器設計之方塊圖圖示於第19圖中。在編碼器側,將具有相關聯符號類別c s 之符號s饋送至二進制編碼器,該二進制編碼器將每一符號s轉換成二進制之序列。
基於符號類別c s ,決定所使用的二進制化方案。此外,二進制編碼器使二進制序列s之每一二進制b與機率模型指示c b 相關聯,該機率模型指示c b 指定用於編碼二進制b之機率模型。可基於符號類別c s 、二進制序列s內部當前二進制之二進制數目,及/或已編碼二進制及符號之值導出機率模型指示c b 。
機率估計器及分配器維持多個機率模型,該多個機率模型之特徵在於值對{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 c 藉由b c =b♁b LPB 導出。機率量化器將每一編碼二進制b c 轉發至K個二進制編碼器中之一個二進制編碼器。機率量化器含有關於LPB機率區間量化{I k }之資訊。將LPB機率p LPB 與區間界限{p k }相比較,該LPB機率p LPB 與編碼二進制b c 相關聯且自機率估計器及分配器接收,且導出機率區間標示k,對於該機率區間標示k,p LPB I k 。隨後,將編碼二進制b c 轉發至相關聯二進制編碼器。
K個二進制編碼器中之每一二進制編碼器由二進制緩衝器及二進制編碼器組成。二進制緩衝器自機率量化器接收編碼二進制b c 且按編碼次序儲存該等編碼二進制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 轉發至二進制導出器。二進制導出器分別自機率量化器及機率估計器及分配器接收編碼二進制
b c 及相關聯LPB值b LPB ,且二進制導出器決定二進制值b=b c ♁b LPB 。作為對二進制編碼器發送的二進制請求之最終回應,二進制導出器將經解碼二進制值b發送至二進制編碼器及機率估計器及分配器。
在機率估計器及分配器中,經解碼二進制值b用以用與編碼器側之方式相同的方式更新機率模型{b LPB ,p LPB },該機率模型{b LPB ,p LPB }藉由相關聯值c b 選定。最終,二進制編碼器向已針對符號請求接收的二進制序列s添加所接收的二進制b,且二進制編碼器藉由二進制化方案將此二進制序列s同與符號值相關聯的二進制序列相比較。若二進制序列s與彼等二進制序列中之一個二進制序列匹配,則輸出相應的經解碼符號s作為對符號請求的最終回應。否則,二進制編碼器發送另外的二進制請求,直至解碼符號為s止。
若未接收藉由語法驅動的另外的符號請求,則終止符號序列之解碼。廢除可能在熵解碼程序之末端處的二進制緩衝器中含有的編碼二進制b c (作為終止碼字組之結果)。
在關於第3圖至第13圖描述第1圖及第2圖中的PIPE編碼器及PIPE解碼器之某些實施例且關於第14圖至第19圖提供大體有關PIPE編碼的數學背景之後,關於第20圖至第24圖,描述熵編碼及解碼設備之更詳細的實施例。第22圖至第24圖之以下實施例不僅交錯彼此之中的經PIPE編碼位元串流,而且總共交錯VLC位元串流及經PIPE編碼的
位元串流。與第22圖至第24圖之實施例相比較,具有經PIPE編碼位元串流之交錯的PIPE編碼器及PIPE解碼器之實施例,亦即第7圖至第13圖之實施例僅提供經PIPE編碼位元串流之單獨交錯。如以上已提及的,藉由分別使用另一交錯器134/去交錯器228對(參見第1圖及第2圖),諸如藉由使用第5圖及第6圖中所示之位元串流交錯,甚至此等實施例可充當實現完全經交錯位元串流之基礎。然而,接下來描述的實施例在VLC位元串流以及經PIPE編碼位元串流兩者之後立刻執行交錯,其中分別使用(換言之)一階段交錯器128/去交錯器230。
在詳細描述經VLC及PIPE編碼符號在位元串流內部交錯之實施例之前,為了實現複雜性與編碼效率之間更適合的取捨,關於第20圖及第21圖描述不具有交錯的實施例之基本結構。
第1a圖之熵編碼設備之結構圖示於第20圖中。熵編碼設備將對應於第1圖及第2圖之經VLC編碼源符號與經PIPE編碼源符號之(亦即106及218)組合的源符號1a之串流分別轉換成兩個或兩個以上部分位元串流12、12a之集合,其中位元串流12a對應於第1圖及第2圖之位元串流112及206。
如以上已註解的,每一源符號1a可具有與該每一源符號1a相關聯之指示,該指示指定是否使用VLC編碼器22a內的標準VLC碼來編碼源符號或關於是否將使用PIPE編碼概念編碼源符號,該VLC編碼器22a對應於第1圖中之
VLC編碼器102。如以上已關於第1圖及第2圖所描述的,可能不將此指示顯性傳輸至解碼側。相反地,該相關聯指示可源自源符號本身之類型或類別。
使用標準VLC碼來編碼經VLC編碼符號1b,該等標準VLC碼又可使用VLC編碼器22a而取決於剛剛提及的符號類別或符號類型。將相應的碼字組11a寫入至不同的部分位元串流12a。使用以上關於第1圖及第3圖所述的PIPE編碼來編碼非經VLC編碼符號1,例如,在此之後獲取多個部分位元串流12。源符號1a中之一些源符號1a可能已經以二進制化由以上已關於第1a圖提及的兩個部分組成的方式二進制化。此等部分中之一個部分可使用PIPE方法來編碼,且可將此等部分中之一個部分寫入至相應的部分位元串流12。二進制序列之另一部分可使用標準VLC碼來編碼,且可將二進制序列之另一部分寫入至相應的部分位元串流12a。
適於第20圖之實施例的基本熵解碼設備圖示於第21圖中。
解碼器基本上執行第20圖之編碼器之逆向操作,以便自兩個或兩個以上部分位元串流之集合(24、24a)解碼源符號27、27a之先前編碼的序列。解碼器包括兩個不同處理流程:資料請求流及資料流,該資料請求流複製編碼器之資料流,該資料流表示編碼器資料流之逆向。在第21圖之說明中,虛線箭頭表示資料請求流,而實線箭頭表示資料流。解碼器之構建塊基本上複製編碼器之構建塊,但實
施逆向操作。
在本發明之較佳實施例中,每一符號請求13a與指示相關聯,該指示指定是使用標準VLC碼還是使用PIPE編碼概念來編碼源符號。如以上已關於第20圖提及的,此指示可源自剖析規則或由源符號本身表示的語法元素之語法。舉例而言,關於第1圖及第2圖,已描述不同語法元素類型可與不同編碼方案相關聯,該等不同編碼方案亦即VLC編碼或PIPE編碼。編碼方案可應用二進制化之不同部分或更大體而言,語法元素之其他符號化。若符號經VLC編碼,則將請求傳遞至VLC解碼器22a,且自不同的部分位元串流24a讀取VCL碼字組23a。輸出相應的解碼符號27a。例如,若使用PIPE來編碼符號,自以上關於第4圖所述的部分位元串流之集合24解碼符號27。
在本發明之另一較佳實施例中,以二進制化由兩個部分組成的方式來二進制化源符號中之一些源符號。使用PIPE方法編碼的此等部分中之一個部分相應地自相關聯部分位元串流24解碼。且二進制序列之另一部分使用標準VLC碼來編碼且使用VLC解碼器22a來解碼,該VLC解碼器22a自不同的部分位元串流24a讀取相應的碼字組23a。
部分位元串流(經VLC編碼及經PIPE編碼)之傳輸及多工
可單獨傳輸藉由PIPE編碼器產生的部分位元串流12、12a,或可將該等部分位元串流12、12a多工成單一位元串流,或可將部分位元串流之碼字組交錯於單一位元
串流中。
在本發明之較佳實施例中,將大量資料之每一部分位元串流寫入至一個資料封包。該大量資料可為源符號之任意集合,諸如,靜止圖像、視訊序列之欄位或訊框、靜止圖像之片段、視訊序列之欄位或訊框之片段或音訊取樣之訊框等。
在本發明之另一較佳實施例中,將大量資料之部分位元串流12、12a中的兩個或兩個以上部分位元串流12、12a或大量資料之所有部分位元串流多工成一個資料封包。含有經多工部分位元串流的資料封包之結構可如第5圖中所示。
資料封包300由標頭及每一部分位元串流之資料的一個分區組成(對於所考慮量之資料而言)。資料封包之標頭301含有將資料封包(之剩餘部分)分割成位元串流資料302之區段的指示。除對於分割之指示之外,標頭可含有額外的資訊。在本發明之較佳實施例中,對於分割資料封包的指示為在位元或位元組的單元或多個位元或多個位元組中資料區段開始的位置。在本發明之較佳實施例中,相對於資料封包之開始或相對於標頭之末端或相對於先前的資料封包之開始,將資料區段開始的位置編碼為資料封包之標頭中的絕對值。在本發明之另一較佳實施例中,將資料區段開始的位置區別編碼,亦即,僅將資料區段之實際開始與對於資料區段開始的預測之間的差異編碼。基於已知或已傳輸的資訊,諸如,資料封包之總大小、標頭之大小、
資料封包中資料區段之數目、居先資料區段開始之位置,可獲得該預測。在本發明之較佳實施例中,不將第一資料封包開始之位置編碼,而是基於資料封包標頭之大小推斷第一資料封包開始之該位置。在解碼器側,經傳輸的分割指示用於獲得資料區段之開始。資料區段隨後用作部分位元串流12、12a,且將該等資料區段中含有的資料按順序的次序饋送至相應的二進制解碼器及VLC解碼器中。
對於一些應用而言,一個資料封包中部分位元串流(針對大量源符號)之以上描述的多工可具有以下缺點:一方面,對於小資料封包而言,發出分割訊號所需要的邊資訊之位元之數目可相對於部分位元串流中的實際資料而變得顯著,此狀況最終降低編碼效率。另一方面,多工可能不適合於需要低遲延之應用(例如,對於視訊會議應用而言)。由於之前並不知道分區開始之位置,故使用所述多工,編碼器無法在完全產生部分位元串流之前開始傳輸資料封包。此外,一般而言,解碼器必須等待,直至該解碼器在該解碼器可開始解碼資料封包之前接收最後的資料區段之開始為止。對於作為視訊會議系統的應用而言,此等延遲可合計為若干視訊圖像之系統之額外的總延遲(特定言之針對接近傳輸位元率且針對幾乎需要兩個圖像之間的時間區間以編碼/解碼圖像的編碼器/解碼器),該額外的總延遲對於此等應用而言十分關鍵。為了克服某些應用之缺點,可以將藉由兩個或兩個以上二進制編碼器及VLC編碼器產生的
碼字組交錯至單一位元串流中的方式配置本發明之較佳實施例之編碼器。可將具有經交錯碼字組之位元串流直接發送至解碼器(當忽略較小的緩衝延遲時,參見下文)。在解碼器側,兩個或兩個以上二進制解碼器及VLC解碼器自位元串流按解碼次序直接讀取碼字組;解碼可以首先接收的位元開始。此外,發出部分位元串流之多工(或交錯)訊號不需要任何邊資訊。
具有碼字組交錯之編碼器之基本結構圖示於第22圖中。二進制編碼器10及VLC編碼器10a不將碼字組直接寫入至部分位元串流,而是二進制編碼器10及VLC編碼器10a與單一碼字組緩衝器29連接,自該單一碼字組緩衝器29,將碼字組按編碼次序寫入至位元串流34。二進制編碼器10將對於一或更多新的碼字組緩衝項28的請求發送至碼字組緩衝器29,且二進制編碼器10隨後將碼字組30發送至碼字組緩衝器29,該等碼字組30儲存於經保留的緩衝項中。VLC編碼器10a將VLC碼字組30a直接寫入至碼字組緩衝器29。碼字組緩衝器29之(一般而言可變長度)碼字組31藉由碼字組寫入器32來存取,該碼字組寫入器32將相應的位元33寫入至所產生的位元串流34。碼字組緩衝器29作為先進先出緩衝器操作;較早保留的碼字組項被較早寫入至位元串流。
在本發明之較佳實施例中,如下操作碼字組緩衝器。若將新的二進制7發送至特定二進制緩衝器8,且該二進制緩衝器中已儲存二進制之數目為零,且當前不存在任
何碼字組保留於二進制編碼器之碼字組緩衝器中,該二進制編碼器與該特定二進制緩衝器連接,則經連接的二進制編碼器10將請求發送至該碼字組緩衝器,藉由該碼字組緩衝器,一或更多碼字組項保留於該特定二進制編碼器10之碼字組緩衝器29中。碼字組項可具有可變數目之位元;通常藉由相應的二進制編碼器之最大碼字組大小給定緩衝項中位元之數目的上臨界。藉由二進制編碼器產生的一或更多接下來的碼字組(針對該一或更多接下來的碼字組已保留一或更多碼字組項)儲存於碼字組緩衝器之經保留的一或更多項中。若特定二進制編碼器之碼字組緩衝器中的所有經保留緩衝項填充有碼字組,且將下一個二進制發送至與該特定二進制編碼器連接的二進制緩衝器,則一或更多新的碼字組保留於該特定二進制編碼器之碼字組緩衝器中等。VLC編碼器10a將VLC碼字組30a直接寫入至碼字組緩衝器29之下一個自由項,亦即,對於VLC編碼器而言,立刻執行碼字組保留及碼字組之寫入。碼字組緩衝器29以某一方式表示先進先出緩衝器。緩衝項按順序的次序保留。較早保留的相應緩衝項所針對的碼字組被較早地寫入至位元串流。碼字組寫入器32連續地或者在將碼字組30寫入至碼字組緩衝器29之後檢查碼字組緩衝器29之狀態。若第一緩衝項含有完整的碼字組(亦即,該緩衝項未經保留,而是該緩衝項包括碼字組),則自碼字組緩衝器20移除相應的碼字組31及相應的緩衝項,且將碼字組之位元33寫入至位元串流。重複此程序,直至第一緩衝項不含有碼字組(亦即,
該碼字組為經保留或自由的)為止。在解碼程序的末端,亦即,若已處理考慮量之資料之所有源符號,則必須清除碼字組緩衝器。對於彼清除程序而言,針對每一二進制緩衝器/二進制編碼器應用下文作為第一步驟:若二進制緩衝器確實含有二進制,則添加具有特定或任意值之二進制,直至所得二進制序列表示與碼字組相關聯之二進制序列為止(如以上所註解,添加二進制之一個較佳方式為,添加產生與二進制序列相關聯的最短可能碼字組的此等二進制值或該等二進制值中之一個二進制值,該二進制序列含有二進制緩衝器之原有內容作為前綴),隨後將該碼字組寫入至相應的二進制編碼器之下一個經保留的緩衝項且清空(相應的)二進制緩衝器。若針對一或更多二進制編碼器已保留多於一個緩衝項,則碼字組緩衝器可仍含有經保留的碼字組項。在彼狀況下,此等碼字組項填充有相應的二進制編碼器之任意但有效的碼字組。在本發明之較佳實施例中,插入最短有效碼字組或該等最短有效碼字組中之一個最短有效碼字組(若存在多個)。VLC編碼器不需要任何終止。最終,將碼字組緩衝器中所有剩餘碼字組寫入至位元串流。
碼字組緩衝器之狀態之兩個實例圖示於第23圖中。在實例(a)中,碼字組緩衝器含有填充有碼字組的4個項(該4個項中之兩個項為VLC項)及3個經保留項。此外,標記下一個自由緩衝項。第一項填充有碼字組(亦即,二進制編碼器2剛剛將碼字組寫入至先前保留的項)。在下一個步驟中,將自碼字組緩衝器移除此碼字組,且將此碼字組寫入
至位元串流。由於僅保留第一緩衝項,但無碼字組寫入至此項,故隨後,二進制編碼器3之首先保留的碼字組為第一緩衝項,但無法自碼字組緩衝器移除此項。在實例(b)中,碼字組緩衝器含有填充有碼字組的4個項(該4個項中之一個項為VLC緩衝項)及4個經保留項。將第一項標記為經保留,因此碼字組寫入器無法將碼字組寫入至位元串流。儘管在碼字組緩衝器中含有4個碼字組,但碼字組寫入器必須等待,直至將碼字組寫入至二進制編碼器3之首先保留的緩衝項為止。注意到必須按保留碼字組之次序寫入該等碼字組,以能夠使解碼器側的程序逆向(參見下文)。且進一步注意到由於立刻執行碼字組之保留及寫入,故VLC緩衝項始終為完整的。
具有碼字組交錯之解碼器之基本結構圖示於第24圖中。二進制解碼器22及VLC解碼器2a不直接自單獨的部分位元串流讀取碼字組,而是二進制解碼器22及VLC解碼器2a連接至位元緩衝器38,自該位元緩衝器38按編碼次序讀取碼字組37、37a。應注意,由於亦可自位元串流直接讀取碼字組,故未必需要位元緩衝器38。位元緩衝器38主要包括於處理鏈之明顯單獨的不同態樣之說明中。將具有經交錯碼字組之位元串流40之位元39順序插入至位元緩衝器38中,該位元緩衝器38表示先進先出緩衝器。若特定二進制解碼器22接收一或更多二進制序列35之請求,則二進制解碼器22自位元緩衝器38經由位元請求36讀取一或更多碼字組37。解碼器可瞬時解碼源符號。類似地,若VLC解
碼器22a接收新的符號之請求19a,則VLC解碼器22a自位元緩衝器38讀取相應的VLC碼字組37a且返回經解碼符號27a。注意到,編碼器(如以上所述)必須藉由適當地操作碼字組緩衝器來確保按與藉由二進制解碼器請求碼字組之次序相同的次序將該等碼字組寫入至位元串流。在解碼器處,整個解碼程序藉由源符號之請求來觸發。作為藉由特定二進制編碼器保留在編碼器側的碼字組之數目與藉由相應的二進制解碼器讀取的碼字組之數目的參數必須相同。
所描述的碼字組交錯不需要將任何分割資訊作為邊資訊發送。且由於碼字組交錯於位元串流中,故延遲一般較小。然而,並不保證遵照特定延遲限制(例如,由儲存於碼字組緩衝器中的位元之最大數目指定的特定延遲限制)。此外,碼字組緩衝器所需要的緩衝區大小可在理論上變得十分大。在考慮第23(b)圖中之實例時,有可能沒有另外的二進制發送至二進制緩衝器3,因此二進制編碼器3將不將任何新的碼字組發送至碼字組緩衝器,直至應用資料封包末端處的清除程序為止。隨後在可將二進制編碼器1及2之所有碼字組寫入至位元串流之前,二進制編碼器1及2之所有碼字組將必須等待,直至資料封包之末端為止。可藉由向編碼程序(且亦向隨後描述的解碼程序)添加另一機制來防止此缺陷。彼額外的機制之基本概念為,若與延遲有關之測度或延遲之上限(參見下文)超過指定臨界,則藉由清除相應的二進制緩衝器(使用與資料封包之末端相似的機
制),來填充首先保留的緩衝項。藉由此機制,減少等待的緩衝項之數目,直至相關聯延遲測度小於指定臨界為止。在解碼器側,必須廢除已在編碼器側插入以遵照延遲限制的二進制。對於二進制之此廢除而言,可使用基本上與編碼器側的機制相同的機制。
在詳細描述交錯VLC及PIPE編碼之位元串流的可能性之後,在下文中,描述再次集中於分解成關於第1b圖、第1c圖及第2b圖提及的源符號之以上已提及的語法元素。出於說明之目的,以下描述假定因此而分解的語法元素為絕對變換係數位準。然而,此描述僅僅為實例,且可同樣地處理其他類型之語法元素。特定言之,在下文中,描述藉由分割且使用基於區塊的影像及視訊編碼器中的不同熵碼之絕對位準之編碼。
舉例而言,通常將視訊序列之圖像分解成區塊。區塊或該等區塊之彩色分量藉由移動補償預測或者內部預測來預測。區塊可具有不同大小且可為方形或者矩形。使用預測參數之相同集合來預測區塊之所有取樣或區塊之彩色分量,該等預測參數諸如,參考指標(識別已編碼圖像集中之參考圖像)、移動參數(指定參考圖像與當前圖像之間的區塊之移動之測度)、指定內插濾波器之參數、內部預測模式等。移動參數可藉由具有水平及垂直分量的位移向量或藉由諸如由6個分量組成的仿射移動參數之較高階移動參數表示。亦有可能預測參數(諸如,參考指標及移動參數)之多於一個集合與單一區塊相關聯。在彼狀況下,對於預
測參數之每一集合而言,產生區塊之單一中間預測訊號或區塊之彩色分量,且藉由中間預測訊號之加權和來構建最終預測訊號。加權參數及亦可能的恆定偏差(向加權和添加該恆定偏差)可固定用於圖像或參考圖像或參考圖像之集合,或者加權參數及亦可能的恆定偏差可包括於相應區塊之預測參數之集合中。類似地,亦通常將靜止影像分解成區塊,且藉由內部預測方法(該內部預測方法可為空間內部預測方法或預測區塊之DC分量的簡單內部預測方法)來預測該等區塊。在轉角情況下,預測訊號亦可為零。
通常變換且量化原有區塊或原有區塊之彩色分量與相應預測訊號之間的差異,該差異亦稱為殘留訊號。將二維變換應用於殘留訊號,且量化所得變換係數。對於此變換編碼而言,區塊或該等區塊之彩色分量可在應用變換之前進一步分裂,已將預測參數之特定集合用於該等區塊或該等區塊之彩色分量。變換區塊可等於或小於用於預測之區塊。亦有可能變換區塊包括用於預測之區塊中的多於一個區塊。視訊序列之靜止影像或圖像中的不同變換區塊可具有不同大小,且該等變換區塊可表示方形或矩形區塊。
所有此等預測及殘留參數可分別形成語法元素之串流138及226。
可隨後使用藉由以上編碼方案中之任一編碼方案的熵編碼來傳輸所得經量化變換係數,該所得經量化變換係數亦稱為變換係數位準。為此,可使用掃描將變換係
數位準之區塊映射至變換系數值之向量(亦即,有序集)上,其中不同掃描可用於不同區塊。通常使用鋸齒形掃描。對於含有僅經交錯訊框之一個欄位之取樣的區塊(此等區塊可為經編碼欄位中之區塊或經編碼訊框中之欄位區塊)而言,使用針對欄位區塊具體設計的不同掃描亦十分常見。用於編碼變換係數之所得有序序列之可能編碼方案為執行位準(run-level)編碼。通常,大量變換係數位準為零,且等於零的連續變換係數位準之集合可藉由編碼等於零(執行)的連續變換係數位準之數目由各別語法元素來有效率地表示。對於剩餘(非零的)變換係數而言,以各別語法元素之形式編碼實際位準。存在執行位準碼之各種替代物。可使用單一語法元素一起編碼非零係數之前的執行及非零變換係數之位準。通常,包括區塊末端之特殊語法元素,在最後的非零變換係數之後發送該區塊末端。或有可能首先編碼非零變換係數位準之數目,且取決於此數目,編碼位準及執行。
稍微不同的方法用於H.264/AVC中高效的CABAC熵編碼中。此處,變換係數位準之編碼分成三個步驟。在第一步驟中,針對每一變換區塊傳輸二進制語法元素coded_block_flag,該二進制語法元素用訊號發出該變換區塊是否含有重要變換係數位準(亦即,非零的變換係數)。若此語法元素指示存在重要變換係數位準,則編碼具有二進制值的影像重要圖,具有二進制值的該影像重要圖指定哪個變換係數位準具有非零值。且隨後按逆向掃描次序編碼非零變換係數位準之值。將影像重要圖編碼成如下語法
元素串流138。針對按掃描次序之每一係數,編碼二進制語法元素significant_coeff_flag,該二進制語法元素significant_coeff_flag指定相應的變換係數位準是否不等於零。若significant_coeff_flag二進制等於一,亦即,若非零變換係數位準存在於此掃描位置處,則編碼另一二進制語法元素last_significant_coeff_flag。此二進制指示當前重要變換係數位準是否為區塊內部之最後的重要變換係數位準或另外的重要變換係數位準是否按掃描次序緊接於之後。若last_significant_coeff_flag指示無另外的重要變換係數緊接於之後,則不編碼用於指定區塊之影像重要圖的另外語法元素。在下一個步驟中,編碼重要變換係數位準之值,該等重要變換係數位準之值在區塊內部的位置已藉由影像重要圖決定。藉由使用以下三個語法元素,按逆向掃描次序編碼重要變換係數位準之值。二進制語法元素coeff_abs_greater_one指示重要變換係數位準之絕對值是否大於一。若二進制語法元素coeff_abs_greater_one指示該絕對值大於一,則發送另一語法元素coeff_abs_level_minus_two,該另一語法元素coeff_abs_level_minus_two指定變換係數位準減去二之絕對值。此為語法元素之種類,在以下實施例中根據第1b圖、第1c圖及第2b圖執行該語法元素之處理。最終,針對每一重要變換係數位準編碼二進制語法元素coeff_sign_flag,該二進制語法元素coeff_sign_flag指定變換系數值之正負號。應再次注意,按掃描次序編碼與影像重要圖有關之語法元
素,而按逆向掃描次序編碼與變換係數位準之實際值有關之語法元素,從而允許使用更適合的上下文模型。亦可能將適應性掃描圖案用於H.265/HEVC之第一測試模型中的影像重要圖。另一概念用於編碼H.265/HEVC之第一測試模型中大於4×4的變換區塊之絕對變換係數位準。在變換區塊大於4×4的情況下,將較大的變換區塊分割成4×4區塊,且按掃描次序編碼該等4×4區塊,而針對每一4×4區塊,使用逆向掃描次序。
在H.264/AVC中的CABAC熵編碼中,使用二進制機率模型化來編碼變換係數位準之所有語法元素。例如,首先二進制化非二進制語法元素coeff_abs_level_minus_two,亦即,將該非二進制語法元素coeff_abs_level_minus_two映射至二元決策(二進制)之序列上,且順序地編碼此等二進制。直接編碼二進制語法元素significant_coeff_flag、last_significant_coeff_flag、coeff_abs_greater_one及coeff_sign_flag。每一經編碼二進制(包括二進制語法元素)與上下文相關聯。上下文表示經編碼二進制之級別之機率模型。基於使用相應上下文已編碼的二進制之值,針對每一上下文估計與兩個可能二進制值中的一個二進制值之機率有關的測度。對於與變換編碼有關之若干二進制而言,基於已傳輸語法元素或基於區塊內部的位置,選擇用於編碼之上下文。
在編碼影像重要圖之後,按逆向掃描次序處理區塊。如之前所提及,另一概念用於H.265/HEVC之第一測試
模型中。將大於4×4之變換區塊分割成4×4區塊,且按掃描次序處理所得4×4區塊,而按逆向掃描次序編碼該等4×4區塊之係數。以下描述對H.265/HEVC及H.264/AVC之第一測試模型中的所有4×4區塊有效且亦對H.264/AVC中8×8區塊有效,且此描述亦可分別應用於語法元素之串流138及226之構造。
若掃描位置十分重要,亦即,係數不同於零,則在串流138內傳輸二進制語法元素coeff_abs_greater_one。最初(在區塊內),相應上下文模型組之第二上下文模型選定用於coeff_abs_greater_one語法元素。若區塊內部的任何coeff_abs_greater_one語法元素之經編碼值等於一(亦即,絕對係數大於2),則上下文模型化反向切換至集合之第一上下文模型且使用此上下文模型直至區塊之末端。否則(區塊內部coeff_abs_greater_one之所有經編碼值為零且相應的絕對係數位準等於一),取決於等於零的coeff_abs_greater_one語法元素之數目而選擇上下文模型,已在所考慮區塊之逆向掃描中處理該等coeff_abs_greater_one語法元素。語法元素coeff_abs_greater_one之上下文模型選擇可藉由以下方程式來概述,其中基於先前的上下文模型標示C t 及先前經編碼語法元素coeff_abs_greater_one之值選擇當前上下文模型標示C t+1,先前經編碼語法元素coeff_abs_greater_one之該值藉由方程式中之bint表示。針對區塊內部的第一語法元素coeff_abs_greater_one,將上下文模型標示設定成等於C 1=1。
當相同掃描位置之coeff_abs_greater_one語法元素等於一時,僅編碼用於編碼絕對變換係數位準之第二語法元素coeff_abs_level_minus_two。將非二進制語法元素coeff_abs_level_minus_two二進制化成二進制之序列,且針對此二進制化之第一二進制,如下文中所描述的選擇上下文模型標示。使用固定上下文編碼二進制化之剩餘二進制。如下選擇二進制化之第一二進制之上下文。針對第一coeff_abs_level_minus_two語法元素,選擇coeff_abs_level_minus_two語法元素之第一二進制的上下文模型之集合的第一上下文模型,將相應上下文模型標示設定成等於C 1=0。針對coeff_abs_level_minus_two語法元素之每一另外的第一二進制,上下文模型化切換至集合中之下一個上下文模型,其中集合中的上下文模型之數目限於5。上下文模型選擇可藉由以下公式表達,其中基於先前的上下文模型標示C t 選擇當前上下文模型標示C t+1。
C t+1(C t )=min(C t +1,4)
如之前所提及,針對區塊內部的第一語法元素coeff_abs_remain_minus_two,將上下文模型標示設定成等於C t =0。注意針對語法元素coeff_abs_greater_one及coeff_abs_remain_minus_two定義上下文模型灣之不同集合。亦注意,對於H.265/HEVC之第一測試模型而言,可將大於4×4之變換區塊分割成4×4區塊。可按掃描次序處理分割的
4×4區塊,且對於每一分割的4×4區塊而言,可基於先前的4×4區塊中之大於一的係數之數目獲得上下文集合。對於大於4×4之變換區塊之第一4×4區塊而言且對於開始的4×4變換區塊而言,可使用單獨的上下文集合。
亦即,當曾經在以下描述中,基於上下文之編碼用於源符號中之任一源符號時,隨後可由例如分配器114及212及VLC編碼器102/解碼器202使用此上下文推導,根據以下實施例coeff_abs_greater_one及coeff_abs_remain_minus_two分解成該等源符號。
為了降低關於藉由CABAC或PIPE處理的二進制之數目與先前技術相比較的複雜性及亦關於計算複雜性或亦為增加編碼效率,以下概括的實施例藉由使用影像及視訊編碼器及解碼器中之不同分區1401至1403之不同可變長度碼,來描述用於編碼絕對位準之方法。然而,以下概括的實施例可應用於影像及視訊編碼器之各種絕對位準,如移動向量差異或適應性迴路濾波器之係數。儘管如以下概括的執行變換係數位準之編碼,但影像重要圖之編碼可保持如H.265/HEVC之第一測試模型中或如以上所述,或亦可如H.264/AVC中執行影像重要圖之編碼或相反。
如以上所述,在多個分區1401-3中執行絕對變換位準之編碼。編碼方案示例性地圖示於具有三個分區1401-3之第1b圖中。方案之界限142及144為可變的,從而產生可變的分區大小。如下執行編碼方案。
第一熵碼用以編碼第一分量或源符號,亦即,在
絕對變換係數位準(z)小於limit1的情況下編碼絕對變換係數位準(z),或在絕對變換係數位準(z)不小於limit1的情況下編碼limit1。若絕對變換係數位準大於或等於第一分區1401之界限limit1,則自絕對變換係數位準減去第一分區(1401)之界限limit1(142),且用第二熵碼編碼所得值z’。若剩餘絕對變換係數位準z’大於或等於第二分區1402之界限limit2-limit1,則再次自絕對變換係數位準z’減去第二分區之界限limit2-limit1,且用第三熵碼編碼所得值。一般而言,當達到分區之界限時,到達界限之下一個分區之熵碼用以編碼由絕對變換係數位準減去相應分區之界限產生的值。
該等熵碼可為如執行長度碼或查找表之簡單可變長度碼(例如,霍夫曼碼)或採用如CABAC或PIPE的機率模型之更複雜熵碼。分區之數目及分區之界限可為可變的或取決於實際語法元素。第1b圖中所示之分割概念具有以下益處。在下文中,例如,吾人使用絕對變換係數,但應理解,該等絕對變換係數可用任何其他語法元素來替代。例如,絕對變換係數位準之機率分佈可近似為幾何分佈。因此,經最佳化用於幾何分佈之熵碼可用於編碼絕對變換係數位準。即使採用上下文模型化及機率模型選擇,但此模型並非始終為局部最佳的。舉例而言,儘管歸因於大數法則,模型可適用於(具有某一準確度)影像或視訊中特定量之區塊,但對於變換區塊而言,若該變換區塊含有相同量之較低及中間範圍變換係數位準,則局部絕對變換係數位準緊接於根本不是幾何學的分佈之後。針對此情況,幾何
分佈不是適合的模型。亦,當考慮具有較大值之絕對變換係數位準時,此等較大值之分佈通常是均勻的。分割概念因不同絕對變換係數位準而允許不同機率模型。儘管對於較大的絕對位準而言,不太複雜的熵碼可用於降低複雜性,但對於較小的絕對值而言,可應用更複雜的熵碼以產生較高效率。
如之前所提及,使用適合於不同分區之熵碼。在本發明之較佳實施例中,採用三個類型之熵碼。第一熵碼使用PIPE。然而,應注意,根據替代性實施例,可替代性地使用如CABAC之熵編碼方法或任何其他算術編碼器。亦即,可經由PIPE編碼路徑來編碼第一符號s1(參見第2b圖)。再劃分器100及複合器220相應地作用。
對於第二類型而言,可使用哥倫布碼及包括子集(例如,Golomb-Rice碼)之一些截斷式變體。亦即,可經由VLC編碼器102/解碼器202中之此等VLC碼來編碼第二符號s2(參見第2b圖)。再劃分器100及複合器220相應地作用。
指數哥倫布碼用作第三類型。亦即,可經由VLC編碼器102/解碼器202中之此等VLC碼來編碼第三符號s3(參見第2b圖)。再劃分器100及複合器220相應地作用。不同的VLC碼及VLC與PIPE或VLC與算術碼之不同組合是可行的。
當第一碼更複雜但產生更佳的壓縮效能時,第二熵碼表示複雜性與效能之間的合理取捨。最後的熵碼(例如,指數哥倫布碼)複雜性較低。在下文中,描述不同分區之編
碼。
若欲使用熵編碼器來熵編碼諸如分區1401之分區(諸如,符號s1),該熵編碼器採用如PIPE編碼器104之機率模型(此外,CABAC或任何其他算術編碼器可用於此處未進一步描述的替代性實施例中),則再劃分器120將該分區導向PIPE編碼器104。首先,可使用二進制化方法在符號化器122中二進制化具有非二進制值的絕對變換係數位準。二進制化將具有非二進制值的絕對變換係數位準映射至二進制之序列。用由分配器114選定的上下文來編碼二進制字串之每一二進制。上下文模型化可針對第一二進制執行且固定用於如H.264/AVC中coeff_abs_level_minus_two的二進制序列之以下二進制,或不同的上下文模型化可用於二進制字串之每一二進制。注意到二進制化可為如哥倫布碼或指數哥倫布碼之可變長度碼或其他可變長度碼。
接下來,此處可在VLC編碼器102中用哥倫布碼來編碼諸如分區1402或符號s2之分區,且該分區分別在VLC解碼器中解碼。哥倫布碼為針對幾何分佈源設計的熵碼之集合。若哥倫布碼之階數為零,則哥倫布碼亦稱為一元碼。一元碼與H.264/AVC中coeff_abs_level_minus_two之二進制化有關。如下建構哥倫布碼。針對特定哥倫布參數k,使用整數除法將值n除以哥倫布參數k,且計算餘數r。
在導出由以上公式指定的參數之後,可用兩個部分編碼值n。亦稱為前綴部分之第一部分為一元碼。所得值p+1指定一之數目及終止零或反之亦然。亦稱為餘數部分且由r表示的餘數值用截斷式二進制碼來表示。根據特定實施例,Golomb-Rice碼用於編碼諸如源符號s2之源符號,該等Golomb-Rice碼為哥倫布碼之子集。亦,當使用含有界限之分區1401-3(諸如,分區1402)之此等熵碼時,各別源符號(諸如,源符號s2)之字母表為有限的,且可修改Golomb-Rice碼,以便可改良編碼效率。Golomb-Rice碼之參數可為固定或可變的。若參數為可變的,則該參數可估計為上下文模型化階段之部分。舉例而言,若源符號s2輸入VLC編碼器102則VLC編碼器102可自s2之上下文決定Golomb-Rice碼之參數。Golomb-Rice碼為具有二的冪之參數之哥倫布碼。因此Golomb-Rice碼係基於除以二及乘以二,因此可使用移動及添加操作將該等Golomb-Rice碼有效率地實施於二進制架構中。Golomb-Rice參數與哥倫布參數之間的關係因此為。在Golomb-Rice碼的情況下,餘數部分恰好為餘數值之二進制表示。對於零之Golomb-Rice參數而言,所得碼與一元碼一致且不具有餘數部分。對於等於一之參數而言,餘數部分由具有兩個輸入符號之一個二進制組成,該兩個輸入符號共享相同的一元前綴。在下文中,圖示選定的Golomb-Rice參數之一些示例性表。
在分區1402及Golomb-Rice碼之參數的情況下給定分區之範圍,諸如,limit2-limit1,可如下執行截斷。Golomb-Rice參數描述表示餘數部分所需要的二進制之數目,且參數值之二次冪描述可用相同前綴表示的值之數目。此等值形成前綴群組。舉例而言,對於參數零而言,僅一個前綴可表示一個比值,而對於參數三而言,八個輸入值共享相同的前綴,因此前綴群組含有參數三之八個值。對於有限的源字母表及給定的Golomb-Rice碼而言,前綴之最後的二進制可針對最後的前綴群組中之值省去,從而產生具有固定長度之前綴碼。
舉例而言,範圍可為九,且Golomb-Rice參數為二。針對此示例性情況,可用相同前綴表示的值之數目為四。最大值為九,該最大值亦指示超過界限且必須使用下一個分區之下一個熵碼。在此示例性情況下,來自0-3之值具有前綴0,來自4-7之值具有前綴10,且來自8-9之值具有前綴110。因為值8-9形成最後的前綴群組,所以該等值8-9之後補零可省去,且該等值8-9可藉由11表示。換言之,設想源符號s2輸入VLC編碼器102,其中s2之可能值之數目為9(=limit2-limit1+1),且彼源符號之Golomb-Rice參數為二。隨後,各別Golomb-Rice碼字組將藉由彼源符號之VLC編碼器102輸出,該各別Golomb-Rice碼字組具有剛剛描述的前綴。針對碼字組之餘數部分,可如下藉由VLC編碼器102導出截斷碼。通常,Golomb-Rice碼之參數指示餘數部分之二進制之數目。在截斷式情況下,並非需要編碼餘數之所有
二進制。針對截斷式情況,計數具有固定前綴(例如,省去前綴之二進制)之所有值。注意到,因為碼為截斷式的,所以計數值始終小於或等於前綴之值之最大數目。若餘數部分之截斷可行,則最後的前綴群組之截斷餘數部分之推導可在以下步驟中繼續進行。首先,導出小於或等於計數數目之二的冪之最大數目l。隨後,在第二步驟中,導出大於計數數目之二的冪之最小數目h。第一值l描述具有h個二進制之餘數的前綴群組中值之數目。此等值之所有餘數以0開始,0之後為餘數之二進制表示,該餘數之二進制表示限於餘數群組中值之數目。針對現視為新前綴群組的最後前綴群組之餘數值,執行除所得值形成第一餘數群組外的相同步驟,該餘數以1開始。執行此步驟,直至導出所有餘數為止。例如,範圍為14,且參數為三。第一前綴群組含有自0-7之值,且第二前綴群組含有自8-13之值。第二前綴群組含有六個值。參數為l=2及h=3。因此,前綴群組之前四個值藉由具有三個二進制的餘數表示(區分四個值的後補零及二進制表示)。針對最後兩個值,再次執行相同步驟。參數為l=1及h=2。最後的兩個值之餘數現可表示為10及11。證明該方法之另一實例為Golomb-Rice參數為四且範圍為十。針對此實例,參數為l=3及h=4。使用此等參數,前八個值之截斷餘數部分藉由四個二進制表示。剩餘兩個值具有與之前的先前實例中之餘數部分相同的餘數部分。若先前實例之範圍為九,則第二執行之參數為l=0及h=1。剩餘的唯一一個值之餘數部分為1。
第三類型之熵碼可為指數哥倫布碼。該等第三類型之熵碼可用於諸如源符號s3之相等機率分佈(例如,具有參數零)。亦即,VLC編碼器/解碼器對可負責該等第三類型之熵碼之編碼。如之前所提及,較大的絕對變換係數位準通常為均勻分佈的。更精確而言,零階指數哥倫布碼可用以編碼最後的分區1403。先前的分區1402之開始因此界限144可為可變的。界限144之位置可藉由依賴於經仔細地編碼/解碼源符號106、108及/或110或語法元素138(或218、204及/或208或語法元素226)之VLC編碼器102/解碼器200來控制。
在較佳實施例中,如第1b圖中所示,分區之數目為三,且界限142及144可為可變的。針對第一分區1401,可如以上論述的採用PIPE編碼。然而,或者亦可使用CABAC。在彼狀況下,PIPE編碼器/解碼器對將由二進制算術編碼編碼器/解碼器對來替代。截斷式Golomb-Rice碼可用於第二分區1402,且零階指數哥倫布碼可用於最後的分區1403。
在另一較佳實施例中,分區1401-3之數目為三,且第一界限142為固定的,而第二界限144為可變的。針對第一分區1401,採用CABAC或PIPE。截斷式Golomb-Rice碼可用於第二分區1402,且零階指數哥倫布碼可用於最後的分區1403。
在另一較佳實施例中,分區之數目等於二。第一分區1401可使用CABAC或PIPE。第二分區可使用諸如1402
之Golomb-Rice碼。
在另一較佳實施例中,分區之數目等於三,而界限142與144兩者皆為可變的。例如,針對第一分區1401,採用CABAC或PIPE,而第二分區1402可使用截斷式Golomb-Rice碼,且第三分區1403使用零階指數哥倫布碼。
在較佳實施例中,使用CABAC或PIPE之第一分區1401之界限142為二,該第一分區1401採用適應性機率模型。在此較佳實施例中,可如針對以上所述的coeff_abs_greater_one描述的執行第一二進制之上下文模型化,且可如針對以上亦所述的H.264/AVC中之coeff_abs_level_minus_two描述的執行第二二進制之上下文模型化。第二二進制之上下文模型化之上下文決定將分別由分配器114及212來決定。在另一較佳實施例中,使用熵編碼之第一分區1401之界限142為二,該第一分區1401採用機率模型(例如,PIPE或CABAC)。對於此較佳實施例而言,可如針對以上所述的H.264/AVC中之coeff_abs_greater_one描述的執行第一二進制與第二二進制兩者之上下文模型化。可針對第二二進制單獨執行針對coeff_abs_greater_one描述的上下文集合評估。
在較佳實施例中,使用熵編碼之第一分區1401之界限142可等於一,該第一分區1401採用機率模型(例如,CABAC或PIPE)。對於各別源符號之二進制字串之唯一二進制(或字母符號)而言,可如針對先前所述H.264/AVC中之coeff_abs_greater_one描述的執行上下文模型化。
在較佳實施例中,使用熵編碼之第一分區1401之界限142可為三,該第一分區1401採用機率模型(例如,CABAC或PIPE)。可如H.264/AVC中的coeff_abs_greater_one執行各別源符號的二進制字串之第一及第二二進制之上下文模型化。可如H.264/AVC中之coeff_abs_level_minus_two執行第三二進制之上下文模型化。可針對第二二進制單獨執行針對coeff_abs_greater_one描述的上下文集合評估。
在較佳實施例中,截斷式Golomb-Rice碼之集合可用作第二分區1402之熵碼。取決於熵碼參數來指定第三分區1403之開始的第二分區之界限144可為可變的。亦在此較佳實施例中,Golomb-Rice參數可限制在三,且可如H.264/AVC中之coeff_abs_level_minus_two之上下文模型化執行參數選擇。範圍limit-limit2可為可變的且可取決於Golomb-Rice參數。若參數為零,則範圍為8。對於參數一而言,範圍為10。在參數二的情況下,範圍為12,且對於參數三而言,範圍等於16。在此較佳實施例中,在變換係數之區塊開始處將Golomb-Rice參數設定成零。對於大於或等於第一界限之區塊中的每一經編碼變換係數位準而言,使用相應的Golomb-Rice碼。在編碼(或解碼)位準之後,進行以下評估來更新用於編碼(或解碼)大於或等於第一界限之下一個位準之Golomb-Rice參數。注意到藉由使用調適之此形式無法減小Golomb-Rice參數。
可如下概述參數調適規則,其中k t+1表示欲用於編碼下一個位準值之Golomb-Rice參數,且value t 表示具有相
應Golomb-Rice參數k t 的先前經編碼的值。
在較佳實施例中,截斷式Golomb-Rice碼之集合可用作第二分區1402之熵碼。取決於熵碼參數來指定第三分區1403之開始的第二分區1402之界限144可為可變的。亦在此較佳實施例中,Golomb-Rice參數可限制在三,且可如H.264/AVC中之coeff_abs_level_minus_two之上下文模型化執行參數選擇。範圍可為可變的且取決於Golomb-Rice參數。若參數為零,則範圍為8。對於參數一而言,範圍為10。在參數二的情況下,範圍為12,且對於參數三而言,範圍等於16。在此較佳實施例中,在區塊開始處將Golomb-Rice參數設定成零。如方程式(QQ)所述執行Golomb-Rice參數調適。注意到藉由使用調適之此形式無法減小參數。
在另一較佳實施例中,截斷式Golomb-Rice碼之集合可用作第二分區1402之熵碼。取決於熵碼參數來指定第三分區1403之開始的第二分區1402之界限144可為固定的。亦在此較佳實施例中,Golomb-Rice參數可限於三,且可如H.264/AVC中之coeff_abs_level_minus_two之上下文模型化執行參數選擇。第二分區1402之範圍可固定於14。在此較佳實施例中,可在區塊開始處將Golomb-Rice參數設定成零。如方程式(QQ)所述執行Golomb-Rice參數調適。注意
到藉由使用調適之此形式無法減小參數。
在另一較佳實施例中,截斷式Golomb-Rice碼之集合可用作第二分區1402之熵碼。取決於熵碼參數來指定第三分區1403之開始的第二分區1402之界限144可為可變的。亦在此較佳實施例中,Golomb-Rice參數可限於三,且可如H.264/AVC中之coeff_abs_level_minus_two之上下文模型化執行參數選擇。範圍可為可變的且取決於Golomb-Rice參數。若參數可為零,則範圍可為8。對於參數一而言,範圍可為10。在參數二的情況下,範圍可為12,且對於參數三而言,範圍可等於16。在此較佳實施例中,可在區塊開始處將Golomb-Rice參數設定成零。如方程式(QQ)所述執行Golomb-Rice參數調適。注意到藉由使用調適之此形式無法減小參數。且亦注意到直接切換(例如,自零至三)是可行的。在此較佳實施例中,採用機率模型用熵碼來編碼Golomb-Rice碼之前綴部分。可關於H.264/AVC中之coeff_abs_level_minus_two執行上下文模型化。
在另一較佳實施例中,固定的Golomb-Rice參數可用以編碼當前變換區塊中之所有變換係數位準。在此實施例中,可計算先前區塊之最佳參數,且可將先前區塊之最佳參數用於當前變換區塊。對於此實施例而言,範圍可固定在14。
在另一較佳實施例中,固定的Golomb-Rice參數可用以編碼當前變換區塊中之所有變換係數位準。在此實施例中,可計算先前區塊之最佳參數,且可將先前區塊之
最佳參數用於當前變換區塊。對於此實施例而言,如之前描述的,範圍可為可變的。
在另一較佳實施例中,若當前掃描標示之已編碼(或解碼)鄰域含有大於先前界限之絕對變換係數位準,則評估該已編碼(或解碼)鄰域。對於此較佳實施例而言,可藉由使用局部因果模板中之鄰域來導出最佳參數。
因此,以上提及的實施例特定描述熵編碼設備,該熵編碼設備包含:分解器136,該分解器136經配置以藉由將語法元素之至少一個子組個別地分解成各別數目n之源符號si,來將語法元素之序列138轉換成源符號106之序列106,其中i=1…n,源符號之各別數目n取決於關於將各別語法元素之值範圍再劃分成n個分區1401-3之序列的哪個分區、各別語法元素之值z屬於n個分區1401-3之序列的哪個分區,以便各別數目之源符號si之值的和產生z,且若n>1,則對於所有i=1…n-1而言,si之值對應於第i個分區之範圍;再劃分器100,該再劃分器100經配置以將源符號之序列106再劃分成源符號之第一子序列108及源符號之第二子序列110,以使得在第一子序列108內含有所有源符號sx,其中x為{1…n}之第一子集之成員,且在第二子序列110內含有所有源符號sy,其中y為與第一子集互斥的{1…n}之第二子集之成員;VLC編碼器102,該VLC編碼器102經配置以用符號的方式編碼第一子序列108之源符號;以及PIPE或算術編碼器104,該PIPE或算術編碼器104經配置以編碼源符號之第二子序列110。
語法元素之子組之值z可為絕對值。第二子集可為{1},其中針對所有p,q{1..n}其中p>q,n可為3,n個分區之序列經排列以使得第p個分區比第q個分區覆蓋值範圍中之較高值。第一子集可為{2,3},其中VLC編碼器(102)經配置以使用Golomb-Rice碼來用符號的方式編碼源符號s2且使用指數哥倫布碼來用符號的方式編碼源符號s3。更大體而言,2可為第一子集之元素,其中VLC編碼器(102)經配置以使用Golomb-Rice碼來用符號的方式編碼源符號s2且經配置以根據先前經編碼源符號調適Golomb-Rice碼之Golomb-Rice參數,亦即,k。分解器可經配置以根據先前經編碼源符號調適分區之間的一或更多極限。可組合兩種調適。亦即,限制第二分區之極限位置可經調適以使得該等位置被彼此間隔開,以使得Golomb-Rice碼之長度,亦即,Golomb-Rice碼的碼字組之數目對應於(或規定)第二分區之寬度的長度。在k之調適可分別經由Golomb-Rice碼的長度及第二分區的寬度定義分隔第二分區與第三分區之極限的位置的情況下,可以另外方式定義分隔第一分區與第二分區之間的極限,諸如,藉由定義固定或根據其他上下文相依性調適。藉由耦合k之調適,以便第二分區之寬度對應於Golomb-Rice碼之長度,來最佳地使用編碼效率。由於諸如指數哥倫布碼之複雜度更低的碼可用於第三分區,故使k適應於語法元素之統計學能夠調適第二分區之寬度,以使得第三分區可覆蓋儘可能多,以降低總的編碼複雜性。此外,第一分區之長度可限於j{1,2,3}可能的語法元素值,諸如,
最低的三個位準。可區別編碼在考慮之中的語法元素,或在考慮之中的語法元素可表示預測殘留,表示預測殘留的以上例示的變換係數位準之情況亦是如此。第一源符號s1可藉由使用截斷式一元碼符號化/去符號化,其中所得j個二進制(該j個二進制之部分或全部)經上下文適應性編碼或並非如以上所提及的編碼。
語法元素之子組可涵蓋圖像之變換區塊的絕對變換係數的絕對變換係數位準,其中各別變換區塊之絕對變換係數位準根據引導穿越各別變換區塊之絕對變換係數的掃描路徑排列於語法元素之序列(138)內,其中分解器可經配置以取決於掃描次序居先的各別變換區塊之絕對變換係數之已編碼絕對變換係數位準,或取決於當前欲按掃描次序分解的絕對變換係數位準之位置,或基於與當前欲分解的絕對變換係數位準的位置在空間上或者按掃描次序相鄰的變換係數之已重建絕對變換係數位準之評估,在分解各別變換區塊之絕對變換係數之絕對變換係數位準期間調適分區之間的一或更多極限。
此外,以上提及的實施例特定描述熵解碼設備,該熵解碼設備包含:VLC解碼器200,該VLC解碼器200經配置以用碼字組的方式自第一位元串流206之碼字組重建源符號第一子序列204之源符號;PIPE或算術解碼器202,該PIPE或算術解碼器202經配置以重建源符號之第二子序列208;組合器224,該組合器224經配置以藉由自各別數目之源符號個別地組合每一語法元素,而自源符號之第一子
序列204及源符號之第二子序列208組合語法元素之序列226,其中該組合器經配置以針對語法元素之至少一個子組,決定源符號si之各別數目n,其中i=1…n取決於關於將各別語法元素之值範圍再劃分成n個分區1401-3之序列中的哪個分區、各別語法元素之值z屬於n個分區1401-3之序列中的哪個分區,而此決定係在只要si之值對應於第i個分區之範圍時,則藉由自1至n合計各別數目之源符號si之值,以獲取語法元素z之值來進行;其中組合器224經配置以自第一子序列(204)擷取所有源符號sx,其中x為{1…n}之第一子集之成員,且組合器224經配置以自第二子序列208擷取所有源符號sy,其中y為與第一子集互斥的{1…n}之第二子集之成員。語法元素之子組之值z可為絕對值。第二子集可為{1},其中針對所有p,q{1..n}其中p>q,n可為3,n個分區之序列經排列以使得第p個分區比第q個分區覆蓋值範圍中之較高值。第一子集可為{2,3},其中VLC解碼器200經配置以使用Golomb-Rice碼來用碼字組的方式重建源符號s2且使用指數哥倫布碼來用碼字組的方式重建源符號s3。更大體而言,2可為第一子集之元素,其中VLC解碼器102經配置以使用Golomb-Rice碼來用碼字組的方式重建源符號s2且經配置以根據先前經重建源符號調適Golomb-Rice碼之Golomb-Rice參數。熵解碼設備可進一步包含複合器220,該複合器220經配置以再結合源符號之第一子序列204及源符號之第二子序列,來獲取源符號之序列218。語法元素可為不同類型,且組合器可經配置以取決於語法元素之類型
而執行個別組合。語法元素之子組可涵蓋圖像之變換區塊的絕對變換係數的絕對變換係數位準,其中各別變換區塊之絕對變換係數位準根據引導穿越各別變換區塊之絕對變換係數的掃描路徑排列於語法元素之序列138內,其中組合器可經配置以取決於掃描次序居先的各別變換區塊之絕對變換係數之已重建絕對變換係數位準,或取決於當前欲按掃描次序組合的絕對變換係數位準之位置,或基於與當前欲組合的絕對變換係數位準的位置在空間上或者按掃描次序相鄰的變換係數之已重建絕對變換係數位準之評估,在位準各別變換區塊之絕對變換係數之絕對變換係數位準期間調適分區之間的一或更多極限。
關於使用根據第1b圖之分解將PIPE編碼與VLC編碼組合的實施例,註解下文,以換言之重複該等實施例之一些態樣。
已描述符號之序列映射至位元串流且描述逆映射。每一符號載有在編碼器及解碼器處同時已知的一或更多相關聯參數。熵編解碼器含有多個先進先出(FIFO)緩衝器,其中將該多個FIFO緩衝器中之每一FIFO緩衝器分配予與符號相關聯的一或更多參數之子集。針對符號之給定的一或更多參數,編碼器將符號分配予相應的FIFO緩衝器。由於編碼器分配規則在解碼器側已知,故解碼器自FIFO緩衝器讀取編碼器分配予該FIFO緩衝器之符號。
使用標準可變長度碼來編碼一些語法元素,且將該等語法元素寫入至特定緩衝器。使用機率區間分割熵
(PIPE)編碼概念來編碼其他語法元素。此舉之後,首先將符號二進制化,且基於相關聯機率估計將所得二進制分類。機率估計可由可在編碼器及解碼器處同時執行的測度給定或獲得。特定FIFO緩衝器含有具有經估計機率值之符號,該等經估計機率值屬於選定的機率之子集,以便可改良熵編碼。藉由將PIPE概念與VLC組合來實現的改良為複雜性降低,同時仍提供較高的編碼效率。用簡單且低複雜性的VLC方法來編碼標準VLC碼所適合的符號,而用更複雜的PIPE概念來編碼其他符號,藉由用VLC碼編碼該等其他符號,該等其他符號之位元率將顯著增加。
因此,為了進一步降低熵編碼之複雜性,將符號分成兩個類別。第一類別之符號可較佳地用VLC碼表示且不需要更複雜的PIPE編碼,而第二類別之符號無法有效率地用VLC碼表示,且此等符號之PIPE編碼顯著地降低所需要的位元率。
應注意,雖然僅用一個VLC編碼器及解碼器描述以上實施例,但顯然此概念可一般化至使用用PIPE編碼器交錯的兩個及兩個以上VLC編碼器及解碼器。
儘管已在設備之上下文中描述一些態樣,但顯然此等態樣亦表示相應方法之描述,其中區塊或裝置對應於方法步驟或方法步驟之特徵結構。類似地,在方法步驟之上下文中描述的態樣亦表示相應區塊或項目或相應設備之特徵結構的描述。該等方法步驟中的一些或全部可藉由(或使用)硬體設備來執行,硬體設備例如,微處理器、可程式
化電腦或電子電路。在一些實施例中,最重要方法步驟中之一些一或更多方法步驟可藉由此設備執行。
本發明之經編碼/經壓縮訊號可在數位儲存媒體上儲存或可在諸如無線傳輸媒體或有線傳輸媒體之傳輸媒體上傳輸,該有線傳輸媒體諸如網際網路。
取決於某些實施要求,可在硬體中或在軟體中實施本發明之實施例。可使用數位儲存媒體(例如,軟碟、DVD、藍光光碟、CD、ROM、PROM、EPROM、EEPROM或快閃記憶體)執行實施,該數位儲存媒體上儲存有電子可讀取的控制訊號,該等電子可讀取的控制訊號與可程式化電腦系統合作(或能夠合作),以使得執行各別方法。因此,數位儲存媒體可為電腦可讀取的。
根據本發明之一些實施例包含資料載體,該資料載體具有電子可讀取控制訊號,該等電子可讀取控制訊號能夠與可程式化電腦系統合作,以使得執行本文所述之方法中之一種方法。
大體而言,本發明之實施例可實施為具有程式碼之電腦程式產品,當電腦程式產品在電腦上執行時,該程式碼經操作用於執行該等方法中之一種方法。例如,程式碼可在機器可讀取載體上儲存。
其他實施例包含在機器可讀取載體上儲存的用於執行本文所述方法中之一種方法的電腦程式。
換言之,本發明方法之實施例因此為電腦程式,該電腦程式具有用於當電腦程式在電腦上執行時,執行本
文所述之方法中之一種方法的程式碼。
本發明方法之另一實施例因此為資料載體(或數位儲存媒體或電腦可讀取媒體),該資料載體包含該資料載體上記錄的用於執行本文所述方法中之一種方法的電腦程式。
本發明方法之另一實施例因此為表示用於執行本文所述方法中之一種方法的電腦程式的資料串流或訊號之序列。例如,資料串流或訊號之序列可經配置以經由資料通訊連接轉移,例如經由網際網路。
另一實施例包含處理手段,例如,電腦或可程式邏輯裝置,該處理手段經配置以或經調適以執行本文所述方法中之一種方法。
另一實施例包含電腦,該電腦上安裝有用於執行本文所述方法中之一種方法的電腦程式。
在一些實施例中,可程式邏輯裝置(例如,現場可程式閘陣列)可用以執行本文所述方法之功能中的一些或全部。在一些實施例中,現場可程式閘陣列可與微處理器合作,以執行本文所述方法中之一種方法。大體而言,方法較佳地藉由任何硬體設備來執行。
以上描述的實施例僅說明本發明之原理。應理解,本文所述的佈置及細節之修改及變化將對其他熟習此項技術者顯而易見。因此,本發明僅受到以下即將描述的專利申請範圍之範疇的限制而不受以本文實施例之描述及闡釋的方式呈現的具體細節的限制。
1401、1402、1403‧‧‧分區
142、144‧‧‧界限
Claims (31)
- 一種用於解碼之方法,包含:由一第一解碼器接收一位元串流的一第一部份;由該第一解碼器自該位元串流的該第一部份之碼字組重建一第一序列源符號中的源符號;由一第二解碼器接收該位元串流的一第二部份;由該第二解碼器自該位元串流的該第二部份之碼字組重建一第二序列源符號中之源符號;由一組合器取得來自該第一序列之源符號以及來自該第二序列之源符號;及由該組合器組合具有一值範圍之一語法元素序列,其係從該第一序列源符號及該第二序列源符號,藉由從一各別數目之源符號組合每一語法元素,而將該語法元素序列次劃分成一分區序列,並且其中之組合每一語法元素係藉由基於該等各別語法元素的一值及該分區序列之一分區,來針對該等語法元素之至少一個子組判定該各別數目的源符號,以及藉由合計該各別數目之源符號之該等值,以獲取該語法元素之該值,其中該組合器係組配來根據先前重建的源符號來調適該等分區之間的一或多個極限。
- 如請求項1之方法,其中該第二序列源符號中之一源符號對應於在分區序列中一排序第一之分區,及其中該分區序列係排列成使得一第一分區相較於 一第二分區覆蓋該值範圍中之較高值。
- 如請求項1之方法,其中來自該第一序列之該等源符號以及來自該第二序列之該等源符號對應於不同的分區。
- 如請求項1之方法,其中在該第二序列源符號中之一源符號對應於在該分區序列中一排序第一之分區;且其中該分區序列係排列成使得一第一分區相較於一第二分區覆蓋該值範圍中之較高值。
- 如請求項1之方法,其中該位元串流的一第三部份代表至少一定標因數。
- 如請求項2之方法,其中該第一序列源符號中之一源符號對應於一排序第二的分區,且其中該第一解碼器係組配來使用一Golomb-Rice碼來解碼該第一序列源符號中的該源符號。
- 如請求項1之方法,進一步包含藉由一再結合器來再結合該第一序列源符號及該第二序列源符號以獲取源符號之一序列。
- 如請求項1之方法,其中藉由該第一解碼器來重建,係藉由自該位元串流之第一部分之碼字組重建該第一序列源符號之該等源符號來進行。
- 如請求項1之方法,其中該組合器係組配來取決於以下至少一者,而在組合一各別變換區塊之絕對變換係數之絕對變換係數位準期間,調適該等分區之間的至少一極限:在一掃描排序中居先的該等各別變換區塊之絕對變 換係數之多個經重建絕對變換係數位準、要按該掃描排序被組合的該絕對變換係數位準之一位置、空間上鄰近要被組合的該絕對變換係數位準的位置的變換係數之該等經重建絕對變換係數位準之一評估、及在該掃描排序上鄰近要被組合的該絕對變換係數位準的位置的變換係數之該等經重建絕對變換係數位準之一評估。
- 如請求項1之方法,其中該語法元素序列以可擴充方式寫碼一視訊。
- 一種用於解碼之設備,包含:一第一解碼器,組配來:接收一位元串流的一第一部份;及自該位元串流的該第一部份之碼字組重建一第一序列源符號中的源符號;一第二解碼器,組配來:接收該位元串流的一第二部份;及自該位元串流的該第二部份之碼字組重建一第二序列源符號;及一組合器,組配來:取得來自該第一序列之源符號以及來自該第二序列之源符號;及組合具有一值範圍之一語法元素序列,其係從該第一序列源符號及該第二序列源符號,藉由從一各別數目之源符號組合每一語法元素,而將該語法元素序列次劃分成一分區序列,並且其中之組合每一語法元 素係藉由基於該等各別語法元素的一值及該分區序列之一分區,來針對該等語法元素之至少一個子組判定該各別數目的源符號,以及藉由合計該各別數目之源符號之該等值,以獲取該語法元素之該值;其中該組合器係組配來根據先前重建的源符號來調適該等分區之間的一或多個極限。
- 如請求項11項之設備,其中該第二序列源符號中之一源符號對應於在分區序列中一排序第一之分區,及其中該分區序列係排列成使得一第一分區相較於一第二分區覆蓋該值範圍中之較高值。
- 如請求項11之設備,其中來自該第一序列之該等源符號以及來自該第二序列之該等源符號對應於不同的分區。
- 如請求項13項之設備,其中該第二序列源符號中之一源符號對應於該分區序列中一排序第一之分區,及其中該分區序列係排列成使得一第一分區相較於一第二分區覆蓋該值範圍中之較高值。
- 如請求項11之設備,其中該等分區的數目等於一、二或三。
- 如請求項11之設備,其中該位元串流的一第三部份代表至少一定標因數。
- 如請求項11之設備,其中該設備係一可程式邏輯裝置、一可程式閘陣列、一微處理器、一電腦或一電子電路之至少一部份。
- 如請求項11之設備,其中該第一解碼器係組配來藉由自該位元串流之該第一部分之碼字組重建該第一序列源符號之該等源符號,來重建該第一序列之該等源符號。
- 如請求項11之設備,其中該組合器係組配來取決於以下至少一者,而在組合一各別變換區塊之絕對變換係數之絕對變換係數位準期間,調適該等分區之間的至少一極限:在一掃描排序中居先的該等各別變換區塊之絕對變換係數之多個經重建絕對變換係數位準、要按該掃描排序被組合的該絕對變換係數位準之一位置、空間上鄰近要被組合的該絕對變換係數位準的位置的變換係數之該等經重建絕對變換係數位準之一評估、及在該掃描排序上鄰近要被組合的該絕對變換係數位準的位置的變換係數之該等經重建絕對變換係數位準之一評估。
- 如請求項11之設備,其中該語法元素序列以可擴充方式寫碼一視訊。
- 一種包括電腦程式之非暫時性電腦可讀媒體,該電腦程式包含有程式碼用以於在一電腦上執行時實行如請求項1之方法。
- 一種用於編碼之設備,包含:一分解器,組配來:接收具有一值範圍的一語法元素序列,其係被次劃分成一分區序列,及 將語法元素之至少一個子組分解成一對應數目之源符號,來將該語法元素序列轉換成一源符號序列,其中係基於該等各別語法元素的一值及該分區序列中之一分區,以便該等源符號之值的一總和導出該各別語法元素的該值;一次劃分器,組配來:接收該源符號序列;及將該源符號序列次劃分成一第一序列源符號及一第二序列源符號;一第一編碼器,組配來:接收該第一序列源符號;及編碼該第一序列中之源符號;及一第二編碼器,組配來:接收該第二序列源符號;及編碼該第二序列中之源符號;其中該分解器係組配來根據先前編碼的源符號來調適該等分區之間的一或多個極限。
- 如請求項22之設備,其中該第二序列源符號中之一源符號對應於在該分區序列中一排序第一之分區,及其中該分區序列係排列成使得一第一分區相較於一第二分區覆蓋該值範圍中之較高值。
- 如請求項22之設備,其中該第一或第二編碼器進一步組配來編碼一定標因數。
- 如請求項22之設備,其中來自該第一序列之該等源 符號以及來自該第二序列之該等源符號對應於不同的分區。
- 如請求項25之設備,其中該第二序列源符號中之一源符號對應於該分區序列中一排序第一之分區,及其中該分區序列係排列成使得一第一分區相較於一第二分區覆蓋該值範圍中之較高值。
- 如請求項22之設備,其中該第一序列源符號中之一源符號對應於一排序第二的分區,且其中該第一編碼器係組配來使用一Golomb-Rice碼順著符號來編碼該第一序列源符號中的該源符號。
- 如請求項22之設備,其中該設備係一可程式邏輯裝置、一可程式閘陣列、一微處理器、一電腦或一電子電路之至少一部份。
- 如請求項22之設備,其中該語法元素序列以可擴充方式寫碼一視訊。
- 一種存有由一方法編碼的資料串流之數位儲存媒體,該方法包含:接收具有一值範圍的語法元素序列,其係被次劃分成一分區序列;及藉由將語法元素之至少一個子組分解成一對應數目之源符號,來將該語法元素序列轉換成一源符號序列,其中係基於各別語法元素的一值及該分區序列之一分區,以便該等源符號之值的一總和導出該各別語法元素的該值; 將該源符號序列次劃分成一第一序列源符號及一第二序列源符號;藉由一第一編碼器來接收該第一序列中之源符號,及編碼該第一序列之該等源符號;及藉由一第二編碼器來接收該第二序列中之源符號,及編碼該第二序列之該等源符號;根據先前編碼的源符號來調適該等分區之間的一或多個極限。
- 如請求項30之數位儲存媒體,其中該語法元素序列以可擴充方式寫碼一視訊。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161432884P | 2011-01-14 | 2011-01-14 | |
US61/432,884 | 2011-01-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201731224A true TW201731224A (zh) | 2017-09-01 |
TWI640169B TWI640169B (zh) | 2018-11-01 |
Family
ID=45491598
Family Applications (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107132297A TWI679878B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
TW108143729A TWI747091B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
TW110140378A TWI789089B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
TW111145784A TWI849597B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
TW104129973A TWI575886B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
TW101101443A TWI505650B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
TW106101413A TWI640169B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
TW109116713A TWI753434B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
Family Applications Before (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107132297A TWI679878B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
TW108143729A TWI747091B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
TW110140378A TWI789089B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
TW111145784A TWI849597B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
TW104129973A TWI575886B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
TW101101443A TWI505650B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109116713A TWI753434B (zh) | 2011-01-14 | 2012-01-13 | 熵編碼及解碼方案 |
Country Status (15)
Country | Link |
---|---|
US (16) | US9083374B2 (zh) |
EP (7) | EP2664070B1 (zh) |
JP (8) | JP5809292B2 (zh) |
KR (12) | KR101955142B1 (zh) |
CN (7) | CN107395212B (zh) |
DK (5) | DK2768145T3 (zh) |
ES (5) | ES2671482T3 (zh) |
HK (4) | HK1201999A1 (zh) |
HU (5) | HUE046377T2 (zh) |
NO (1) | NO2956175T3 (zh) |
PL (5) | PL2664070T3 (zh) |
PT (3) | PT3349360T (zh) |
TR (1) | TR201807771T4 (zh) |
TW (8) | TWI679878B (zh) |
WO (1) | WO2012095488A2 (zh) |
Families Citing this family (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102918564B (zh) * | 2010-03-10 | 2016-10-26 | 汤姆森特许公司 | 具有变换选择的视频编码和解码的约束变换的方法和装置 |
DK2768145T3 (da) * | 2011-01-14 | 2016-04-04 | Ge Video Compression Llc | Entropikodnings- og afkodningssystem |
WO2013002585A2 (ko) * | 2011-06-28 | 2013-01-03 | 삼성전자 주식회사 | 엔트로피 부호화/복호화 방법 및 장치 |
US20130083856A1 (en) * | 2011-06-29 | 2013-04-04 | Qualcomm Incorporated | Contexts for coefficient level coding in video compression |
WO2013039692A1 (en) * | 2011-09-16 | 2013-03-21 | Mediatek Singapore Pte. Ltd. | Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc |
JPWO2013065702A1 (ja) * | 2011-11-04 | 2015-04-02 | シャープ株式会社 | 算術復号装置、画像復号装置、算術符号化装置、画像符号化装置、および、算術復号方法 |
BR112014011150B1 (pt) | 2011-11-08 | 2022-08-09 | Google Technology Holdings LLC | Método de determinação de palavras de código binárias para coeficientes de transformada |
BR112014011155B1 (pt) | 2011-11-08 | 2023-04-04 | Google Technology Holdings LLC | Método de determinação de uma palavra de código binária para um símbolo, codificador de vídeo e meio que pode ser lido em computador |
WO2013106190A1 (en) * | 2012-01-09 | 2013-07-18 | Dolby Laboratories Licensing Corporation | Hybrid reference picture reconstruction method for single and multiple layered video coding systems |
RU2641235C2 (ru) * | 2012-01-20 | 2018-01-16 | ДжиИ Видео Компрешн, ЭлЭлСи | Кодирование коэффициентов преобразования |
WO2013110000A1 (en) * | 2012-01-21 | 2013-07-25 | General Instrument Corporation | Method of determining binary codewords for transform coefficients |
WO2013109993A1 (en) * | 2012-01-21 | 2013-07-25 | General Instrument Corporation | Method of determining binary codewords for transform coefficients |
EP2805497A1 (en) | 2012-01-21 | 2014-11-26 | Motorola Mobility LLC | Method of determining binary codewords for transform coefficients |
US9479780B2 (en) | 2012-02-01 | 2016-10-25 | Google Technology Holdings LLC | Simplification of significance map coding |
CN110602509A (zh) | 2012-02-04 | 2019-12-20 | 谷歌技术控股有限责任公司 | 用于最末重要系数位置编码中的上下文减少的设备和方法 |
US9167245B2 (en) | 2012-02-05 | 2015-10-20 | Google Technology Holdings LLC | Method of determining binary codewords for transform coefficients |
US11039138B1 (en) * | 2012-03-08 | 2021-06-15 | Google Llc | Adaptive coding of prediction modes using probability distributions |
US9654777B2 (en) | 2013-04-05 | 2017-05-16 | Qualcomm Incorporated | Determining palette indices in palette-based video coding |
EP2997732A1 (en) * | 2013-05-15 | 2016-03-23 | VID SCALE, Inc. | Single loop decoding based inter layer prediction |
US9558567B2 (en) * | 2013-07-12 | 2017-01-31 | Qualcomm Incorporated | Palette prediction in palette-based video coding |
US10021419B2 (en) | 2013-07-12 | 2018-07-10 | Qualcomm Incorported | Rice parameter initialization for coefficient level coding in video coding process |
US9648330B2 (en) * | 2013-07-15 | 2017-05-09 | Qualcomm Incorporated | Inter-color component residual prediction |
US9485222B2 (en) * | 2013-08-20 | 2016-11-01 | Hewlett-Packard Development Company, L.P. | Data stream traffic control |
CN105659606B (zh) | 2013-10-14 | 2019-06-18 | 微软技术许可有限责任公司 | 用于视频和图像编码和解码的方法、系统和介质 |
EP3058736B1 (en) | 2013-10-14 | 2019-02-27 | Microsoft Technology Licensing, LLC | Encoder-side options for intra block copy prediction mode for video and image coding |
RU2654129C2 (ru) | 2013-10-14 | 2018-05-16 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Функциональные возможности режима внутреннего предсказания с блочным копированием для кодирования и декодирования видео и изображений |
US10390034B2 (en) | 2014-01-03 | 2019-08-20 | Microsoft Technology Licensing, Llc | Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area |
CN105917650B (zh) | 2014-01-03 | 2019-12-24 | 微软技术许可有限责任公司 | 视频和图像编/解码的方法、计算设备及计算机可读介质 |
US11284103B2 (en) | 2014-01-17 | 2022-03-22 | Microsoft Technology Licensing, Llc | Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning |
US10542274B2 (en) | 2014-02-21 | 2020-01-21 | Microsoft Technology Licensing, Llc | Dictionary encoding and decoding of screen content |
US10142636B2 (en) * | 2014-06-09 | 2018-11-27 | Sony Corporation | Communication system with coding mechanism and method of operation thereof |
KR102311815B1 (ko) | 2014-06-19 | 2021-10-13 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 통합된 인트라 블록 카피 및 인터 예측 모드 |
US10505826B2 (en) * | 2014-09-26 | 2019-12-10 | Oracle International Corporation | Statistical pattern correlation of events in cloud deployments using codebook approach |
KR102330740B1 (ko) | 2014-09-30 | 2021-11-23 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 파면 병렬 프로세싱이 인에이블되는 경우의 인트라 픽쳐 예측 모드에 대한 규칙 |
US10432945B2 (en) * | 2014-11-04 | 2019-10-01 | Samsung Electronics Co., Ltd. | Probability update method for binary arithmetic coding/decoding, and entropy coder/decoder using the same |
US9712848B2 (en) * | 2014-11-10 | 2017-07-18 | Vixs Systems Inc. | Frame buffer compression using separate aggregation of fixed-length and variable-length components of codewords |
US9781424B2 (en) | 2015-01-19 | 2017-10-03 | Google Inc. | Efficient context handling in arithmetic coding |
CA3122322A1 (en) * | 2015-03-10 | 2016-09-15 | Huawei Technologies Co., Ltd. | Picture processing using an affine motion model and a motion vector 2-tuple |
CN106664405B (zh) | 2015-06-09 | 2020-06-09 | 微软技术许可有限责任公司 | 用调色板模式对经逸出编码的像素的稳健编码/解码 |
GB2542707B (en) * | 2015-07-03 | 2020-02-12 | Sisp Tech Ltd | Data processing method and apparatus |
CN108141594B (zh) * | 2015-10-13 | 2021-02-26 | 三星电子株式会社 | 用于对图像进行编码或解码的方法和设备 |
US10098093B2 (en) * | 2015-12-15 | 2018-10-09 | Qualcomm Incorporated | Partitioned control channel techniques for time division duplexing subframe processing |
US10142635B2 (en) * | 2015-12-18 | 2018-11-27 | Blackberry Limited | Adaptive binarizer selection for image and video coding |
US11463113B2 (en) * | 2016-01-29 | 2022-10-04 | Massachusetts Institute Of Technology | Apparatus and method for multi-code distributed storage |
US9792044B2 (en) * | 2016-02-12 | 2017-10-17 | Oracle International Corporation | Decompression history buffer read/write pipelines |
EP3220304B1 (en) * | 2016-02-22 | 2018-11-07 | Eshard | Method of testing the resistance of a circuit to a side channel analysis |
WO2017216711A1 (en) * | 2016-06-13 | 2017-12-21 | KARTUN, Edmund Hilton | An electronic computer device and method for encoding a sequence of characters |
US10536163B2 (en) | 2016-07-04 | 2020-01-14 | Sisp Technologies Ltd. | Data processing method and apparatus |
JP6336524B2 (ja) | 2016-07-25 | 2018-06-06 | 株式会社高速屋 | データ圧縮符号化方法、その装置、及び、そのプログラム |
CN106507111B (zh) * | 2016-11-17 | 2019-11-15 | 上海兆芯集成电路有限公司 | 使用残差补偿的视频编码方法以及使用该方法的装置 |
KR20180089290A (ko) | 2017-01-31 | 2018-08-08 | 세종대학교산학협력단 | 영상의 부호화/복호화 방법 및 장치 |
GB2559200A (en) | 2017-01-31 | 2018-08-01 | Nokia Technologies Oy | Stereo audio signal encoder |
JP6949990B2 (ja) * | 2017-04-13 | 2021-10-13 | エルジー エレクトロニクス インコーポレイティドLg Electronics Inc. | 画像の符号化/復号方法及びそのための装置 |
CN107483059B (zh) * | 2017-07-31 | 2020-06-12 | 广东工业大学 | 一种基于动态霍夫曼树的多路数据编解码方法及装置 |
CN117528070A (zh) * | 2017-08-21 | 2024-02-06 | 韩国电子通信研究院 | 编码/解码视频的方法和设备以及存储比特流的记录介质 |
CN108062779B (zh) * | 2017-12-26 | 2021-11-23 | 杭州健培科技有限公司 | 一种用于胸部断层扫描放射影像的无损压缩方法 |
US10986349B2 (en) | 2017-12-29 | 2021-04-20 | Microsoft Technology Licensing, Llc | Constraints on locations of reference blocks for intra block copy prediction |
US10707996B2 (en) * | 2018-04-06 | 2020-07-07 | International Business Machines Corporation | Error correcting codes with bayes decoder and optimized codebook |
CN108599931A (zh) * | 2018-04-12 | 2018-09-28 | 深圳市易迈数据技术有限公司 | 基于大数据的安全码生成方法及其校验方法 |
US10630990B1 (en) * | 2018-05-01 | 2020-04-21 | Amazon Technologies, Inc. | Encoder output responsive to quality metric information |
WO2019225346A1 (ja) * | 2018-05-22 | 2019-11-28 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法、復号方法及びピクチャ圧縮プログラム |
WO2019235366A1 (ja) * | 2018-06-06 | 2019-12-12 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
US20220109455A1 (en) * | 2018-06-29 | 2022-04-07 | Zenotta Holding Ag | Apparatus and method for providing authentication, non-repudiation, governed access and twin resolution for data utilizing a data control signature |
JP7320927B2 (ja) * | 2018-07-02 | 2023-08-04 | ルネサスエレクトロニクス株式会社 | 半導体装置及び通信システム |
US10877835B2 (en) * | 2018-07-19 | 2020-12-29 | Micron Technology, Inc. | Write buffer management |
WO2020080827A1 (en) | 2018-10-19 | 2020-04-23 | Samsung Electronics Co., Ltd. | Ai encoding apparatus and operation method of the same, and ai decoding apparatus and operation method of the same |
WO2020080765A1 (en) | 2018-10-19 | 2020-04-23 | Samsung Electronics Co., Ltd. | Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image |
US11720997B2 (en) | 2018-10-19 | 2023-08-08 | Samsung Electronics Co.. Ltd. | Artificial intelligence (AI) encoding device and operating method thereof and AI decoding device and operating method thereof |
US11616988B2 (en) | 2018-10-19 | 2023-03-28 | Samsung Electronics Co., Ltd. | Method and device for evaluating subjective quality of video |
WO2020080623A1 (ko) | 2018-10-19 | 2020-04-23 | 삼성전자 주식회사 | 영상의 ai 부호화 및 ai 복호화 방법, 및 장치 |
KR102525578B1 (ko) | 2018-10-19 | 2023-04-26 | 삼성전자주식회사 | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 |
WO2020080873A1 (en) | 2018-10-19 | 2020-04-23 | Samsung Electronics Co., Ltd. | Method and apparatus for streaming data |
WO2020080665A1 (en) | 2018-10-19 | 2020-04-23 | Samsung Electronics Co., Ltd. | Methods and apparatuses for performing artificial intelligence encoding and artificial intelligence decoding on image |
US10728555B1 (en) * | 2019-02-06 | 2020-07-28 | Sony Corporation | Embedded codec (EBC) circuitry for position dependent entropy coding of residual level data |
US10587286B1 (en) * | 2019-03-18 | 2020-03-10 | Blackberry Limited | Methods and devices for handling equiprobable symbols in entropy coding |
US11070229B1 (en) * | 2019-05-19 | 2021-07-20 | Pliops | Codeword generator |
CN110365346B (zh) * | 2019-07-22 | 2021-07-06 | 浙江大华技术股份有限公司 | 一种算术熵编码方法及系统 |
KR102138892B1 (ko) * | 2019-09-24 | 2020-07-28 | 심인보 | 데이터 무손실 압축 장치 및 그 방법 |
US12015779B2 (en) | 2019-10-07 | 2024-06-18 | Lg Electronics Inc. | Method and apparatus for deriving rice parameter in video/image coding system |
WO2021071188A1 (ko) * | 2019-10-07 | 2021-04-15 | 엘지전자 주식회사 | 비디오/영상 코딩 시스템에서 엔트로피 코딩 방법 및 장치 |
KR102436512B1 (ko) | 2019-10-29 | 2022-08-25 | 삼성전자주식회사 | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 |
KR20210056179A (ko) | 2019-11-08 | 2021-05-18 | 삼성전자주식회사 | Ai 부호화 장치 및 그 동작방법, 및 ai 복호화 장치 및 그 동작방법 |
US11095311B2 (en) * | 2019-11-27 | 2021-08-17 | Qualcomm Incorporated | Quantization codeword selection for low cost parity checking |
US11468601B2 (en) | 2020-01-13 | 2022-10-11 | Samsung Display Co., Ltd. | Systems and methods for scalable throughput entropy coder |
TWI741919B (zh) * | 2020-01-15 | 2021-10-01 | 瑞鼎科技股份有限公司 | 串流解壓縮電路 |
KR102287942B1 (ko) | 2020-02-24 | 2021-08-09 | 삼성전자주식회사 | 전처리를 이용한 영상의 ai 부호화 및 ai 복호화 방법, 및 장치 |
CN111787326B (zh) * | 2020-07-31 | 2022-06-28 | 广州市百果园信息技术有限公司 | 一种熵编码及熵解码的方法和装置 |
US11496289B2 (en) | 2020-08-05 | 2022-11-08 | Microsoft Technology Licensing, Llc | Cryptography using varying sized symbol sets |
US20240048703A1 (en) | 2020-12-15 | 2024-02-08 | Nec Corporation | Encoding device, decoding device, encoding method, decoding method, and program |
KR20220090887A (ko) | 2020-12-23 | 2022-06-30 | 삼성전자주식회사 | 이미지 처리 장치 및 이미지 처리 장치의 동작 방법 |
KR20220121747A (ko) * | 2021-02-25 | 2022-09-01 | 주식회사 케이티 | 비디오 신호 부호화/복호화 방법 및 상기 부호화 방법에 의해 생성된 데이터 스트림을 저장하는 기록 매체 |
CN116965028A (zh) * | 2021-03-11 | 2023-10-27 | 创峰科技 | 用于视频编码的剩余等级二值化 |
KR20240140907A (ko) | 2022-01-19 | 2024-09-24 | 더 거버닝 카운실 오브 더 유니버시티 오브 토론토 | 기계 학습 네트워크를 위한 오프칩 데이터 압축 및 압축 해제 시스템 및 방법 |
US20230254493A1 (en) * | 2022-02-08 | 2023-08-10 | Synaptics Incorporated | Lossless compression for low-latency video transmission in resource-constrained encoding environment |
CN117082257A (zh) * | 2022-05-10 | 2023-11-17 | 华为技术有限公司 | 子流交织方法 |
WO2023236128A1 (en) * | 2022-06-09 | 2023-12-14 | Huawei Technologies Co., Ltd. | Apparatus and methods for source coding and channel coding of low entropy signals |
CN114928747B (zh) * | 2022-07-20 | 2022-12-16 | 阿里巴巴(中国)有限公司 | 基于av1熵编码的上下文概率处理电路、方法及相关装置 |
CN115882867B (zh) * | 2023-03-01 | 2023-05-12 | 山东水发紫光大数据有限责任公司 | 一种基于大数据的数据压缩存储方法 |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0799812B2 (ja) * | 1990-03-26 | 1995-10-25 | 株式会社グラフイックス・コミュニケーション・テクノロジーズ | 信号符号化装置および信号復号化装置、並びに信号符号化復号化装置 |
US5717394A (en) * | 1993-02-10 | 1998-02-10 | Ricoh Company Ltd. | Method and apparatus for encoding and decoding data |
KR100287494B1 (ko) | 1993-06-30 | 2001-04-16 | 이데이 노부유끼 | 디지탈신호의부호화방법및장치,복호화방법및장치와부호화시킨신호의기록매체 |
JP3125543B2 (ja) | 1993-11-29 | 2001-01-22 | ソニー株式会社 | 信号符号化方法及び装置、信号復号化方法及び装置、並びに記録媒体 |
FR2722041B1 (fr) | 1994-06-30 | 1998-01-02 | Samsung Electronics Co Ltd | Decodeur de huffman |
CA2156889C (en) * | 1994-09-30 | 1999-11-02 | Edward L. Schwartz | Method and apparatus for encoding and decoding data |
US5473376A (en) | 1994-12-01 | 1995-12-05 | Motorola, Inc. | Method and apparatus for adaptive entropy encoding/decoding of quantized transform coefficients in a video compression system |
DE69629442T2 (de) | 1995-12-06 | 2004-06-09 | Harman Becker Automotive Systems (Xsys Division) Gmbh | Verfahren und Einrichtung zur Kodierung digitaler Videosignale |
KR100196874B1 (ko) | 1995-12-23 | 1999-06-15 | 전주범 | 선택적 윤곽선 근사화 장치 |
JP3346204B2 (ja) * | 1996-12-26 | 2002-11-18 | 富士ゼロックス株式会社 | 可変長符号復号装置 |
CN1103911C (zh) | 1997-10-27 | 2003-03-26 | 刘北英 | 全“位置数和”等分定位装置的组合使用方法 |
US6661839B1 (en) * | 1998-03-24 | 2003-12-09 | Advantest Corporation | Method and device for compressing and expanding data pattern |
US6735249B1 (en) | 1999-08-11 | 2004-05-11 | Nokia Corporation | Apparatus, and associated method, for forming a compressed motion vector field utilizing predictive motion coding |
US20020152436A1 (en) * | 2001-02-05 | 2002-10-17 | O'dea James Orrin | Digital error mapping circuit and method |
US6650784B2 (en) * | 2001-07-02 | 2003-11-18 | Qualcomm, Incorporated | Lossless intraframe encoding using Golomb-Rice |
ES2870967T3 (es) * | 2001-08-31 | 2021-10-28 | Panasonic Ip Corp America | Procedimiento de descodificación de imágenes y dispositivo de descodificación |
JP4125565B2 (ja) * | 2001-08-31 | 2008-07-30 | 松下電器産業株式会社 | 画像符号化方法、画像復号化方法及びその装置 |
US6882685B2 (en) | 2001-09-18 | 2005-04-19 | Microsoft Corporation | Block transform and quantization for image and video coding |
US7436329B2 (en) * | 2003-04-17 | 2008-10-14 | Droplet Technology, Inc. | Multiple technique entropy coding system and method |
US6825782B2 (en) * | 2002-09-20 | 2004-11-30 | Ntt Docomo, Inc. | Method and apparatus for arithmetic coding and termination |
JP4240283B2 (ja) * | 2002-10-10 | 2009-03-18 | ソニー株式会社 | 復号装置及び復号方法 |
CN1209925C (zh) * | 2003-01-10 | 2005-07-06 | 李春林 | 基于信源高阶熵的数据压缩方法 |
JP2005130099A (ja) * | 2003-10-22 | 2005-05-19 | Matsushita Electric Ind Co Ltd | 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置 |
CN101312041B (zh) * | 2004-09-17 | 2011-05-11 | 广州广晟数码技术有限公司 | 多声道数字音频编码设备及其方法 |
DE102004056446A1 (de) * | 2004-11-23 | 2006-06-29 | Siemens Ag | Verfahren zur Transcodierung sowie Transcodiervorrichtung |
KR100636229B1 (ko) * | 2005-01-14 | 2006-10-19 | 학교법인 성균관대학 | 신축형 부호화를 위한 적응적 엔트로피 부호화 및 복호화방법과 그 장치 |
US7599840B2 (en) * | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
US7565018B2 (en) | 2005-08-12 | 2009-07-21 | Microsoft Corporation | Adaptive coding and decoding of wide-range coefficients |
US7221296B2 (en) * | 2005-08-22 | 2007-05-22 | Streaming Networks (Pvt.) Ltd. | Method and system for fast context based adaptive binary arithmetic coding |
JP2007116501A (ja) * | 2005-10-21 | 2007-05-10 | Victor Co Of Japan Ltd | 算術符号復号化装置。 |
KR100873636B1 (ko) * | 2005-11-14 | 2008-12-12 | 삼성전자주식회사 | 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치 |
GB0524983D0 (en) * | 2005-12-07 | 2006-01-18 | Imagination Tech Ltd | Recompression and decompression of a data stream for rate smoothing |
WO2007149444A2 (en) * | 2006-06-16 | 2007-12-27 | Droplet Technology, Inc. | System, method and apparatus of video processing and applications |
CN100596198C (zh) * | 2006-12-05 | 2010-03-24 | 华为技术有限公司 | 一种编码方法及编码器 |
US7573405B2 (en) * | 2006-12-29 | 2009-08-11 | Texas Instruments Incorporated | System updating accumulated statistics coding variable values after multiple encodings |
GB0706240D0 (en) | 2007-03-30 | 2007-05-09 | Concept 2 Manufacture Design O | A valve means for gas control devices |
JP2010527523A (ja) * | 2007-04-18 | 2010-08-12 | ゴットフリート・ヴィルヘルム・ライプニッツ・ウニヴェルジテート・ハノーヴァー | タイムコンシステントな3次元メッシュシーケンスのスケーラブルな圧縮方法 |
JP2008289125A (ja) * | 2007-04-20 | 2008-11-27 | Panasonic Corp | 算術復号化装置及びその方法 |
US8150172B2 (en) * | 2007-05-04 | 2012-04-03 | Qualcomm Incorporated | Video coding mode selection using estimated coding costs |
WO2008142956A1 (ja) * | 2007-05-21 | 2008-11-27 | Nec Corporation | 映像符号化装置、映像符号化方法および映像符号化プログラム |
NO20074463A (no) * | 2007-09-03 | 2009-02-02 | Tandberg Telecom As | Metode for entropikoding av transformasjonskoeffisienter i videokomprimeringssystemer |
US8483282B2 (en) * | 2007-10-12 | 2013-07-09 | Qualcomm, Incorporated | Entropy coding of interleaved sub-blocks of a video block |
US8634457B2 (en) * | 2008-09-26 | 2014-01-21 | Qualcomm Incorporated | Determining availability of video data units |
EP2182732A1 (en) * | 2008-10-28 | 2010-05-05 | Panasonic Corporation | Switching between scans in image coding |
US8892983B2 (en) * | 2008-11-04 | 2014-11-18 | Alcatel Lucent | Method and apparatus for error detection in a communication system |
WO2010052833A1 (ja) * | 2008-11-07 | 2010-05-14 | 三菱電機株式会社 | 画像符号化装置及び画像復号装置 |
JP5180782B2 (ja) * | 2008-11-11 | 2013-04-10 | 日本電信電話株式会社 | 並列分散情報源符号化システム及び並列分散情報源符号化・復号化方法 |
WO2011013192A1 (ja) * | 2009-07-27 | 2011-02-03 | 株式会社東芝 | 画像符号化方法および画像復号方法 |
US8410959B2 (en) * | 2010-04-09 | 2013-04-02 | Qualcomm, Incorporated | Variable length codes for coding of video data |
EP2614592B1 (en) * | 2010-09-09 | 2018-06-27 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Entropy encoding and decoding scheme |
DK2768145T3 (da) * | 2011-01-14 | 2016-04-04 | Ge Video Compression Llc | Entropikodnings- og afkodningssystem |
US9871537B2 (en) * | 2011-10-27 | 2018-01-16 | Qualcomm Incorporated | Mapping states in binary arithmetic coder for video coding |
EP2810371B1 (en) * | 2012-01-30 | 2017-12-20 | Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. | Binary arithmetic coding scheme |
JP2014120615A (ja) * | 2012-12-17 | 2014-06-30 | Fujitsu Semiconductor Ltd | 容量素子、容量アレイおよびa/d変換器 |
WO2015194187A1 (en) * | 2014-06-20 | 2015-12-23 | Sharp Kabushiki Kaisha | Harmonized palette coding |
US10148961B2 (en) * | 2015-05-29 | 2018-12-04 | Qualcomm Incorporated | Arithmetic coder with multiple window sizes |
US10826514B1 (en) * | 2019-10-15 | 2020-11-03 | Ciena Corporation | Noise-shaping enhanced gated ring oscillator based analog-to-digital converters |
-
2012
- 2012-01-12 DK DK14160511.3T patent/DK2768145T3/da active
- 2012-01-12 PT PT181602764T patent/PT3349360T/pt unknown
- 2012-01-12 EP EP12700329.1A patent/EP2664070B1/en active Active
- 2012-01-12 EP EP18160276.4A patent/EP3349360B1/en active Active
- 2012-01-12 DK DK18160276T patent/DK3349360T3/da active
- 2012-01-12 KR KR1020177027820A patent/KR101955142B1/ko active IP Right Grant
- 2012-01-12 PL PL12700329T patent/PL2664070T3/pl unknown
- 2012-01-12 PL PL14160511T patent/PL2768145T3/pl unknown
- 2012-01-12 DK DK14160512.1T patent/DK2760138T3/en active
- 2012-01-12 HU HUE18160276A patent/HUE046377T2/hu unknown
- 2012-01-12 KR KR1020237034117A patent/KR20230145538A/ko not_active Application Discontinuation
- 2012-01-12 KR KR1020157011376A patent/KR101648688B1/ko active IP Right Grant
- 2012-01-12 PL PL14160512T patent/PL2760138T3/pl unknown
- 2012-01-12 PL PL18160276T patent/PL3349360T3/pl unknown
- 2012-01-12 EP EP14160512.1A patent/EP2760138B1/en active Active
- 2012-01-12 ES ES14160512.1T patent/ES2671482T3/es active Active
- 2012-01-12 KR KR1020197005616A patent/KR102095172B1/ko active IP Right Grant
- 2012-01-12 HU HUE14160496A patent/HUE027907T2/en unknown
- 2012-01-12 CN CN201710252499.9A patent/CN107395212B/zh active Active
- 2012-01-12 DK DK14160496.7T patent/DK2768144T3/da active
- 2012-01-12 TR TR2018/07771T patent/TR201807771T4/tr unknown
- 2012-01-12 ES ES14160511.3T patent/ES2566917T3/es active Active
- 2012-01-12 DK DK12700329.1T patent/DK2664070T3/en active
- 2012-01-12 PT PT127003291T patent/PT2664070T/pt unknown
- 2012-01-12 PT PT141605121T patent/PT2760138T/pt unknown
- 2012-01-12 WO PCT/EP2012/050431 patent/WO2012095488A2/en active Application Filing
- 2012-01-12 HU HUE12700329A patent/HUE030952T2/en unknown
- 2012-01-12 EP EP14160496.7A patent/EP2768144B1/en active Active
- 2012-01-12 KR KR1020207031576A patent/KR102393305B1/ko active IP Right Grant
- 2012-01-12 CN CN201710255909.5A patent/CN107342770B/zh active Active
- 2012-01-12 ES ES12700329.1T patent/ES2607982T3/es active Active
- 2012-01-12 KR KR1020217005632A patent/KR102438562B1/ko active IP Right Grant
- 2012-01-12 CN CN201710252475.3A patent/CN107317585B/zh active Active
- 2012-01-12 HU HUE14160512A patent/HUE037749T2/hu unknown
- 2012-01-12 KR KR1020137021228A patent/KR101741296B1/ko active IP Right Grant
- 2012-01-12 KR KR1020207011867A patent/KR102222957B1/ko active IP Right Grant
- 2012-01-12 EP EP19195163.1A patent/EP3644516A1/en active Pending
- 2012-01-12 KR KR1020207008051A patent/KR102175762B1/ko active IP Right Grant
- 2012-01-12 CN CN201710252914.0A patent/CN107196662B/zh active Active
- 2012-01-12 KR KR1020177013696A patent/KR101785898B1/ko active IP Right Grant
- 2012-01-12 JP JP2013548843A patent/JP5809292B2/ja active Active
- 2012-01-12 ES ES18160276T patent/ES2759513T3/es active Active
- 2012-01-12 ES ES14160496.7T patent/ES2566916T3/es active Active
- 2012-01-12 KR KR1020177027822A patent/KR101955143B1/ko active IP Right Grant
- 2012-01-12 CN CN201710252568.6A patent/CN107425855B/zh active Active
- 2012-01-12 CN CN201280011782.8A patent/CN103404035B/zh active Active
- 2012-01-12 EP EP20155689.1A patent/EP3703263A1/en active Pending
- 2012-01-12 KR KR1020227029644A patent/KR102588145B1/ko active IP Right Grant
- 2012-01-12 EP EP14160511.3A patent/EP2768145B1/en active Active
- 2012-01-12 HU HUE14160511A patent/HUE028417T2/en unknown
- 2012-01-12 CN CN201710252559.7A patent/CN107317586B/zh active Active
- 2012-01-12 PL PL14160496T patent/PL2768144T3/pl unknown
- 2012-01-13 TW TW107132297A patent/TWI679878B/zh active
- 2012-01-13 TW TW108143729A patent/TWI747091B/zh active
- 2012-01-13 TW TW110140378A patent/TWI789089B/zh active
- 2012-01-13 TW TW111145784A patent/TWI849597B/zh active
- 2012-01-13 TW TW104129973A patent/TWI575886B/zh active
- 2012-01-13 TW TW101101443A patent/TWI505650B/zh active
- 2012-01-13 TW TW106101413A patent/TWI640169B/zh active
- 2012-01-13 TW TW109116713A patent/TWI753434B/zh active
-
2013
- 2013-07-12 US US13/940,561 patent/US9083374B2/en active Active
-
2014
- 2014-02-14 NO NO14751227A patent/NO2956175T3/no unknown
- 2014-05-16 HK HK15100769.2A patent/HK1201999A1/zh unknown
- 2014-05-16 HK HK15101556.7A patent/HK1202000A1/zh unknown
- 2014-05-16 HK HK15101671.7A patent/HK1201384A1/zh unknown
-
2015
- 2015-06-09 US US14/734,407 patent/US9252806B2/en active Active
- 2015-09-10 JP JP2015178257A patent/JP6077615B2/ja active Active
- 2015-12-28 US US14/980,671 patent/US9473169B2/en active Active
-
2016
- 2016-06-28 US US15/195,696 patent/US9647683B2/en active Active
- 2016-09-06 US US15/257,606 patent/US9698818B2/en active Active
-
2017
- 2017-01-12 JP JP2017002986A patent/JP6479060B2/ja active Active
- 2017-04-05 US US15/479,787 patent/US9806738B2/en active Active
- 2017-09-27 US US15/717,579 patent/US10224953B2/en active Active
- 2017-09-27 US US15/717,427 patent/US10090856B2/en active Active
-
2018
- 2018-08-23 US US16/109,953 patent/US10419017B2/en active Active
- 2018-11-09 JP JP2018210993A patent/JP6676731B2/ja active Active
- 2018-11-21 US US16/198,338 patent/US10404272B2/en active Active
-
2019
- 2019-01-02 HK HK19100031.0A patent/HK1259972A1/zh unknown
- 2019-06-19 US US16/446,228 patent/US10581454B2/en active Active
- 2019-07-11 US US16/508,539 patent/US10644719B2/en active Active
-
2020
- 2020-02-03 US US16/779,851 patent/US10826524B2/en active Active
- 2020-02-10 JP JP2020020306A patent/JP6849835B2/ja active Active
- 2020-03-12 JP JP2020042519A patent/JP6990730B2/ja active Active
- 2020-03-31 US US16/836,191 patent/US10855309B2/en active Active
- 2020-09-30 US US17/039,204 patent/US11405050B2/en active Active
-
2021
- 2021-03-04 JP JP2021034013A patent/JP7247244B2/ja active Active
-
2022
- 2022-06-24 US US17/849,169 patent/US20220416810A1/en not_active Abandoned
-
2023
- 2023-03-15 JP JP2023041285A patent/JP2023063501A/ja active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI575886B (zh) | 熵編碼及解碼方案 | |
JP5676744B2 (ja) | エントロピー符号化 | |
JP6130839B2 (ja) | エントロピー符号化 | |
TWI500274B (zh) | 熵編碼及解碼裝置與方法、和相關電腦程式 |