TWI514779B - 熵編碼技術 - Google Patents

熵編碼技術 Download PDF

Info

Publication number
TWI514779B
TWI514779B TW100112642A TW100112642A TWI514779B TW I514779 B TWI514779 B TW I514779B TW 100112642 A TW100112642 A TW 100112642A TW 100112642 A TW100112642 A TW 100112642A TW I514779 B TWI514779 B TW I514779B
Authority
TW
Taiwan
Prior art keywords
code
macroblock
predetermined
bit
bin
Prior art date
Application number
TW100112642A
Other languages
English (en)
Other versions
TW201143307A (en
Inventor
Heiko Schwarz
Detlev Marpe
Thomas Wiegand
Heiner Kirchhoffer
Anastasia Henkel
Christian Bartnik
Mischa Siekmann
Jan Stegemann
Original Assignee
Fraunhofer Ges Forschung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Ges Forschung filed Critical Fraunhofer Ges Forschung
Publication of TW201143307A publication Critical patent/TW201143307A/zh
Application granted granted Critical
Publication of TWI514779B publication Critical patent/TWI514779B/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Description

熵編碼技術
本發明係有關熵編碼及可用於諸如視訊及音訊壓縮等應用。
本發明描述一種用於離散式資料之熵編碼及解碼之新穎方法及裝置。籠統言之,熵編碼可視為無損耗資料壓縮之最通用形式。無損耗壓縮係表示具有比針對原先資料表示型態所需更少的位元但無任何資訊損耗之離散式資料。離散式資料可以文字、圖形、影像、視訊、音訊、語音、傳真、醫療資料、氣象資料、經濟資料、或任何其它數位資料形式給定。
於熵編碼中,經常忽略不計潛在離散式資料源的特定高階特性。結果,任何資料源皆被視為給定為一來源符碼序列,其具有於給定m元字母表之值,及其特徵在於相對應的(離散式)機率分布{p1 ,...,pm }。於此等摘要設定值中,以每個符碼之預期碼字組長度(以位元為單位)表示之任何熵編碼方法之下限係以熵給定
霍夫曼碼及算術碼為可近似估算熵極限(就某個意義而言)之實用碼之眾所周知的實例。針對固定式機率分布,霍夫曼碼相當容易組成。霍夫曼碼之最具吸引力的性質為其具體實現容易使用可變長度碼(VLC)表有效地實現。但當處理時間變化來源統計數字,亦即改變中的符碼機率時,包括就演繹法則複雜度以及就具體實現成本二者而言,霍夫曼碼之調適性及其相對應VLC表相當有要求。又,於具有優勢字母表值而pk >0.5之情況下,相對應之冗餘(而未使用任何字母表延長諸如回合長度編碼)可能相當大。霍夫曼碼之另一項缺點如下,在處理較高次冪機率模型化之情況下,可能要求多個VLC表集合。另一方面,算術編碼雖然實質上比VLC更複雜,但當因應適應性及較高次冪機率模型以及高度扭斜機率分布情況時,提供更為一致性且可適當處理之優點。實際上,此項特性基本上係導源於算術編碼至少在構想上提供一機制來以或多或少直捷方式將任何給定的機率估值之任何值對映至結果所得碼字組部分。提供此種介面,一方面,算術編碼允許機率模型化與機率估算工作間有清晰分開,而另一方面,允許實際熵編碼,亦即符碼之對映至碼字組。
為求簡明清晰,發明人將於後文闡釋二元字母表之情況,但構想上,本發明之根本方法也適用於m元字母表的普及情況,而m>2。具有二元字母表數值之符碼之機率分布可以單一參數p=pLPS 描述,此處在所謂的較低可能符碼(LPS)而機率估值pLPS 0.5與較高可能符碼(MPS)而pMPS =1-pLPS 間做出有用區別。如此,於通用情況下發明人有0<pLPS 0.5,而於實際情況下,機率估值經常有下限最小機率值pmin ,使得pmin pLPS
發明概要
依據本發明之一實施例用以編碼一符碼序列之編碼器包含一分配器其係經組配來基於該符碼序列之先前符碼內部所含資訊而分配多個參數給該符碼序列之各個符碼;多個熵編碼器其各自係經組配來將前傳給個別熵編碼器之符碼轉換成一個別位元串流;及一選擇器其係經組配來前傳各個符碼給該等多個熵編碼器中之一選定者,該項選擇係取決於分配給該個別符碼之參數數目。
依據本發明之一實施例用以重建一符碼序列之解碼器包含多個熵解碼器其各自係經組配來將一個別位元串流轉換成符碼;一分配器其係經組配來基於該符碼序列之先前已重建符碼內部所含資訊而分配多個參數給欲重建之一符碼序列之各個符碼;及一選擇器其係經組配來從該等多個熵解碼器中之一選定者取回欲重建之該符碼序列之各個符碼,該項選擇係取決於針對個別符碼所界定之參數數目。
描述熵編碼演繹法則實施例,其中一序列任意來源符碼係對映至二或多個部分位元串流,及一解碼演繹法則,其中原先來源符碼係從二或多個空間位元串流解碼。於編碼器端,來源符碼首先經二進制化(若其尚未表示二元符碼),及二進制之各個倉(bin)係與一參數集合相關聯。然後相關聯之參數對映至指數之一個小集合,且與一特定指數相關聯之全部倉皆係以特定二元熵編碼器編碼,及相對應之碼字組係被寫至一特定部分位元串流。於解碼器端,來源符碼係藉針對來源符碼之請求而解碼。如同針對編碼器之相同二進制化方案係用來將此等針對來源符碼之請求轉換成針對倉之請求,及針對倉之請求係與在編碼器端相對應倉的相同參數集合相關聯。相關聯之參數再度係對映至一個指數小集合,此處該對映係與編碼器端相同。及與目特定指數相關聯之全部倉請求係藉特定二元熵解碼器解碼,該熵解碼器係從相對應部分位元串流讀取一碼字組或多碼字組。編碼器及解碼器之組配方式為不同的二元熵編碼器及熵解碼器使用不同的編碼演繹法則(亦即倉序列與碼字組間之不同對映關係)。
於本發明之較佳實施例中,相關聯之參數集合表示針對一特定倉(或一相當量測值集合)的兩個倉值中之一者的機率量測值。機率量測值例如可表示機率態,其可以N值之一集合值表示。機率估算係與倉之實際編碼解耦。然後,機率量測值對映至機率指數,藉此,一倉之編碼及解碼係指派給一特定二元熵編碼器及熵解碼器。機率量測值對機率指數之對映關係(及如此簇集成多組機率量測值)也可隨著時間之經過而改變,例如依據已傳輸之符碼而改變。舉例言之,指派可調整適應於已經以某個機率量測值或機率指數編碼的倉數,來確保所形成的部分位元串流具有相似的位元率。於本發明之較佳實施例中,二元熵編碼器及熵解碼器之數目係小於針對機率量測值可能的數值數目。允許準確估算相關聯之機率的大量可能的機率量測值係對映至少數機率指數,此處各個機率量測值係與一特定二元熵編碼器及熵解碼器相關聯。少數二元熵編碼器及熵解碼器提供下述優點,用以傳輸部分位元串流之額外管理資料量可維持為小量,及屬於編碼及解碼系統之同步化額外管理資料量可維持為小量。當使用機率量測值作為將倉指派給特定二元熵編碼器及熵解碼器的基礎時,二元熵編碼器及熵解碼器針對該群組機率量測值可特別地最佳化,允許獲得高編碼效率(類似最佳已知熵編碼方案)。此外,可由倉序列對碼字組及反之亦然的簡單對映關係所組成之簡單編碼及解碼演繹法則可針對機率量測值群組之表示型態而設計。如此減低編碼及解碼系統之複雜度但仍然提供高編碼效率。此時,須注意針對倉機率之準確估算,要求高粒度之機率量測值;任何不準確皆可能對編碼效率造成負面影響。但用於編碼倉,相對少數(顯著少於用於機率估算的可能機率量測值數目)的機率群組即足,原因在於藉由使用設計用於與該特定機率不同但極為接近的機率之一熵編碼演繹法則,來以一特定相關聯之機率量測值編碼一倉所導致的速率增高為極小。以及使用少數二元熵編碼器及熵解碼器提供前述優點。於本發明之其它實施例中,與一倉相關聯之參數集合係由針對兩個倉值中之一者的機率量測值及一或多個額外參數所組成。
後文中,將參考圖式以進一步細節描述本發明之較佳實施例,強調就若干設計構面而提供優點之多個本發明之較佳實施例。附圖中,第1圖顯示依據一實施例編碼器之方塊圖;第2圖顯示依據一實施例,適合用以解碼由第1圖之編碼器所產生的位元串流之解碼器之方塊圖;第3圖顯示一示意圖,例示說明依據一實施例具有多工化部分位元串流之資料封包;第4圖顯示一示意圖,例示說明依據一實施例具有使用固定大小節段之另一種分段之資料封包;第5圖顯示使用部分位元串流交插,依據一實施例編碼器之方塊圖;第6圖顯示一示意圖,例示說明依據一實施例在第5圖之編碼器端之碼字組緩衝器之態;第7圖顯示使用部分位元串流交插,依據一實施例解碼器之方塊圖;第8圖顯示使用一單一碼字組集合使用碼字組交插,依據一實施例解碼器之方塊圖;第9圖顯示使用固定長度位元序列之交插,依據一實施例編碼器之方塊圖;第10圖顯示一示意圖,例示說明依據一實施例在第9圖之編碼器端之通用位元緩衝器之態;第11圖顯示使用固定長度位元序列之交插,依據一實施例解碼器之方塊圖;第12圖顯示一線圖用以例示說明假設以(0,0.5]之一致機率分布,最佳機率區間離散化成為K=4區間;第13圖顯示一示意圖,例示說明針對p=0.38之LPB機率及藉霍夫曼演繹法則所得相關聯之可變長度碼之二元事件樹;第14圖顯示一線圖,由此可收集給定最大表分錄Lm 數目,針對最佳碼C之相對位元率增高ρ(p ,C );第15圖顯示一線圖例示說明針對理論上最佳機率區間分割成K=12區間(cp. Sec. 3)之位元率增高及具有最大數目Lm =65表分錄之使用VNB2VLC碼之實際設計;第16圖顯示一示意圖,例示說明三元選擇樹轉換成完整二元選擇樹之實例;第17圖顯示依據一實施例包含編碼器(左部分)及解碼器(右部分)之系統之方塊圖;第18圖為使用依據第1至17圖之任一實施例之熵編碼,依據一實施例編碼變換係數之基本原理之例示說明;第19圖顯示用以編碼顯著性對映關係之兩個實例(標示符碼未移轉);第20圖顯示變換係數(ABS)之幅值之二進制化;第21圖顯示針對H.264/AVC標準之方塊類型及其分類;第22圖顯示1-位元符碼CBP4之脈絡模型化;及第23圖顯示用以編碼有效變換係數之幅值之脈絡模型化實例;第24圖顯示依據一應用例一種熵編碼器配置之方塊圖;第25圖顯示得自第24圖之初始化器之細節圖;第26圖顯示用以計算一參考指數來參考一初始化(initialization)機率資訊表之步驟序列,該表包括針對最小可能符碼(LPS)之機率資訊及相對應最大可能符碼(MPS)值作為初始化機率資訊;第27圖顯示依據一應用例一種熵解碼器配置之示意方塊圖;第28圖顯示編碼環境之高階方塊圖;第29圖顯示針對第28圖之編碼環境之熵編碼部分之方塊圖;第30圖顯示一示意圖,例示說明一圖像或視訊圖框之部分細分成巨集區塊對;第31a圖顯示一示意圖,例示說明依據本發明之一實施例之圖框模式;第31b圖顯示一示意圖,例示說明依據本發明之一實施例之欄位模式;第32圖顯示一流程圖,例示說明依據本發明之一實施例之語法元素之編碼,而脈絡分配係基於鄰近語法元素;第33圖顯示一流程圖,例示說明依據本發明之一實施例基於分配給該語法元素之脈絡模型,語法元素之二元熵編碼;第34圖顯示一示意圖,例示說明依據本發明之一實施例巨集區塊之定址方案;第35圖顯示一表,例示說明如何獲得巨集區塊位址mbAddrN,指示該巨集區塊含有相對於目前巨集區塊左上樣本,具有座標xN及yN之一樣本;及額外地,取決於樣本排列超出該目前巨集區塊之頂或左邊界,針對在巨mbAddrN樣本之y座標yM;針對該樣本,目前巨集區塊為圖框編碼或欄位編碼,及該目前巨集區塊為目前巨集區塊對之頂或底巨集區塊,及最後,巨集區塊mbAddrA為圖框編碼或欄位編碼,及其中樣本所在之行具有奇或偶行數yN;第36圖顯示一示意圖,例示說明巨集區塊分割、次-巨集區塊分割、巨集區塊分割掃描、及次-巨集區塊分割掃描;第37圖顯示其中採用本發明之解碼環境之高階方塊圖;第38圖顯示一流程圖,例示說明得自編碼位元串流之如第32及33圖所示編碼之語法元素的解碼;第39圖顯示一流程圖,例示說明第3圖之熵解碼處理程序及解碼處理程序;第40圖顯示針對一巨集區塊用於該合併H.264/AVC視訊編碼器之基本編碼結構;第41圖例示說明由在該目前語法元素C之左側及頂上之二鄰近語法元素A及B所組成之一脈絡樣板;第42圖顯示一圖像細分成多個截割片之例示說明;第43圖顯示圖左,針對使用樣本A_Q之區塊樣本a-p所進行之內_4x4預測,及圖右,用於內_4x4預測之預測方向。
第44圖顯示與第46圖之二進制化方案有關之二進制編碼樹之一部分;第45圖為示意圖,例示說明絕對資料值之二進制化;第46圖一表顯示一絕對值所二進制化而成之倉離散式資料;第47圖一表顯示一絕對值所二進制化而成之倉離散式資料;第48圖顯示用以執行二進制化之一虛擬-C碼;第49圖顯示一示意圖,例示說明熵編碼的位元串流之解碼成一資料值;第50圖顯示一示意圖,例示說明從一資料值之二進制化而復原該資料值;第51圖顯示一示意圖,例示說明在第50圖之處理程序中有關後綴部分之抽取;第52圖顯示一流程圖,例示說明語法元素mb_field_decoding_flag之編碼;第53圖為流程圖,例示說明一種將脈絡模型分配給mb_field_decoding_flag之方法;第54圖顯示一流程圖,例示說明得自藉第52圖之編碼方案所導算出之編碼位元串流的語法元素mb_field_decoding_flag之解碼;第55圖顯示一示意流程圖,例示說明一視訊圖框或圖像之編碼;第56圖例示說明用於欄位編碼巨集區塊及圖框編碼巨集區塊之不同掃描樣式;第57圖顯示一表,例示說明從所選擇之變換係數層次實例所得之一顯著性對映表;第58圖顯示一流程圖,例示說明依據本發明之一實施例語法元素last_significant_coeff_flag及significant_coeff_flag之編碼;第59圖顯示一虛擬C-碼,例示說明在解碼器端之剖析處理程序;第60圖顯示一流程圖,例示說明得自如藉第58圖之編碼方案所導算出之編碼位元串流,語法元素significant_coeff_flag及last_significant_coeff_flag之解碼;第61a、b圖示意地顯示依據一實施例針對一熵編碼器/解碼器對解碼一回合MPS之處理程序;及第62圖示意地顯示依據一實施例一種用於區間寬度之量化之實例。
須注意於圖式之描述期間,出現在此等圖式之數幅圖中的元件係以相同元件符號在各圖中指示,而就考慮功能而言避免此等元件之重複描述來避免不必要的重複。雖言如此,除非有明確的相反指示,否則就一幅圖所提供之功能性及描述將也適用於其它圖式。
依據本發明之一實施例一種編碼器係例示說明於第1圖。該編碼器將一串來源符碼1無損耗地轉換成二或多個部分位元串流12之集合。於本發明之較佳實施例中,各個來源符碼1係與一或多個類別之集合中之一類別相關聯。舉個實例,該等類別可載明來源符碼之類型。於混成視訊編碼之脈絡中,一分開類別可與巨集區塊編碼模式、區塊編碼模式、參考圖像指數、運動向量差、細分旗標、編碼區塊旗標、量化參數、變換係數層次等相關聯。於其它應用領域諸如音訊、語音、文字、文件、或通用資料編碼,不同來源符碼的歸類係屬可能。
一般而言,各個來源符碼1可具有有限數值集合或可數的無限數值集合中之一值,此處可能的來源符碼值集合針對不同來源符碼類別可彼此相異。為了減低編碼及解碼演繹法則之複雜度且為了允許用於不同來源符碼及來源符碼類別之通用編碼及解碼設計,來源符碼1被轉換成二元決策之有序集合,然後此等二元決策藉單純二元編碼演繹法則處理。因此,二進制化器2將各個來源符碼1值雙射對映至一序列(或一串)倉3。該序列倉3表示有序二元決策之集合。各個倉3或二元決策可呈二值之一集合中之一值,例如數值0及1中之一者。二進制化方案針對不同來源符碼類別可有不同。針對一特定來源符碼類別之二進制化方案可取決於可能的來源符碼值之集合及/或針對該特定類別之來源符碼的其它性質。表1例示說明針對可數無限集合之二進制化方案之三個實例。可數無限集合之二進制化方案也可應用於有限符碼值集合。特別針對大型有限符碼值集合,無效率(由於未使用的倉序列所導致)可以忽略不計,但此種二進制化方案之通用性就複雜度及記憶體需求方面提供優勢。用於小型有限符碼值集合,經常較佳(就編碼效率而言)係將二進制化方案調整適應於可能的符碼值數目。表2例示說明針對8值有限集合之二進制化方案之三個實例。以有限倉序列集合表示不含冗餘碼(及可能的重新排序倉序列)之方式,藉修改若干倉序列,可從可數無限集合之通用二進制化方案而導算出有限集合之二進制化方案。舉個實例,表2中之截頭一元二進制化方案係藉修改針對通用一元二進制(參考表1)之來源符碼7之倉序列而形成。表2中順序0之經截頭且經重新排序之Exp-Golomb二進制係藉修改針對Exp-Golomb順序0二進制之來源符碼7之倉序列及藉重新排序倉序列(針對符碼7之截頭倉序列係分配給符碼1)而形成。針對有限符碼集合,可能使用非系統性/非通用性二進制化方案,如表2末欄舉例說明。
表1:可數無限集合(或大型有限集合)之二進制實例。
表2:有限集合之二進制實例。
藉二進制化器2所形成之該倉序列之各個倉3係以循序順序而饋進參數分配器4。參數分配器將一或多個參數之一集合分配給各個倉3,及輸出具有相關聯之參數集合之倉5。參數集合在編碼器及解碼器係恰以相同方式決定。參數集合可由下列參數中之一者或多者組成:
-針對該目前倉之兩個可能倉值中之一者之機率估值之量測,
-針對該目前倉之表示較少可能或較多可能倉值之機率估值之量測,
-載明針對該目前倉表示較少可能或較多可能倉值之兩個可能倉值之機率之一識別符,
-相關聯之來源符碼之類別,
-相關聯之來源符碼之重要性量測,
-相關聯之符碼(例如於時間、空間、或體積資料集合中)之位置之量測,
-載明針對該倉或相關聯之來源符碼之通道碼保護之一識別符,
-載明針對該倉或相關聯之來源符碼之加密方案之一識別符,
-載明針對該相關聯之符碼之類別之一識別符,
-針對該相關聯之來源符碼於倉序列中之倉號碼。
於本發明之較佳實施例中,參數分配器4係與具有針對目前倉之兩個可能倉值中之一者之機率估值之量測值的各個倉3、5相關聯。於本發明之又一較佳實施例中,參數分配器4係與各個倉3、5相關聯,各倉具有針對目前倉之較低可能或較高可能倉值之機率估值之量測值,及一識別符載明針對兩個可能倉值中之哪一者表示該目前倉之較低可能或較高可能倉值之估值。須注意針對該較低可能或較高可能倉值之機率及載明兩個可能倉值中之哪一者表示較低可能或較高可能倉值之識別符為針對兩個可能倉值中之一者之機率的相等量測值。
於本發明之又一較佳實施例中,參數分配器4係與各個倉3、5相關聯,各倉具有針對目前倉之兩個可能倉值中之一者之機率估值之量測值,及一或多個額外參數(其可以是前文列舉之參數中之一者或多者)。於本發明之又一較佳實施例中,參數分配器4係與各個倉3、5相關聯,各倉具有針對目前倉之較低可能或較高可能倉值之機率估值之量測值,一識別符載明針對兩個可能倉值中之哪一者表示該目前倉之較低可能或較高可能倉值之估值,及一或多個額外參數(其可以是前文列舉之參數中之一者或多者)。
於本發明之較佳實施例中,參數分配器4基於一或多個已經編碼之符碼集合,決定前述機率量測值(目前倉之兩個可能倉值中之一者之機率估值之量測值、目前倉之較低可能或較高可能倉值之機率估值之量測值、識別符載明針對兩個可能倉值中之哪一者表示該目前倉之較低可能或較高可能倉值之估值)中之一或多者。用以測定機率量測值之編碼符碼可包括相同符碼類別之一或多個已編碼符碼、與鄰近空間及/或時間位置(與目前來源符碼相關聯之資料集合有關)之資料集合(諸如樣本區塊或群組)相對應之相同符碼類別之一或多個已編碼符碼、或與鄰近空間及/或時間位置(與目前來源符碼相關聯之資料集合有關)之資料集合相對應之不同符碼類別之一或多個已編碼符碼。
屬於參數分配器4之輸出的具相關聯之參數集合之各倉5係饋入倉緩衝器選擇器6。倉緩衝器選擇器6可能基於輸入倉值及相關聯之參數5而修改輸入倉之值5,及將輸出倉7帶有可能經修改之倉值饋入二或多個倉緩衝器8中之一者。輸出倉7被發送至其中之倉緩衝器8係基於輸入倉值5及/或相關聯之參數值5而決定。
於本發明之較佳實施例中,倉緩衝器選擇器6並未修改倉值,亦即輸出倉7經常性具有與輸入倉5相同值。
於本發明之較佳實施例中,倉緩衝器選擇器6基於輸入倉值5及針對目前倉之兩個可能倉值中之一者之相關聯之機率估值量測值。於本發明之較佳實施例中,若針對目前倉之兩個可能倉值中之一者的機率量測值係小於(或小於或等於)一特定臨界值,則輸出倉值7係設定為等於輸入倉值5;若針對目前倉之兩個可能倉值中之一者的機率量測值係大於或等於(或大於)一特定臨界值,則輸出倉值7係經修改(亦即其係設定為輸入倉值5之相反值)。於本發明之又一較佳實施例中,若針對目前倉之兩個可能倉值中之一者的機率量測值係大於(或大於或等於)一特定臨界值,則輸出倉值7係設定為等於輸入倉值5;若針對目前倉之兩個可能倉值中之一者的機率量測值係小於或等於(或小於)一特定臨界值,則輸出倉值7係經修改(亦即其係設定為輸入倉值5之顛倒值)。於本發明之較佳實施例中,臨界值係對應於針對兩個可能倉值之估算機率值0.5。
於本發明之又一較佳實施例中,倉緩衝器選擇器6係基於輸入倉值5及相關聯之識別符載明針對兩個可能倉值中之哪一者表示該目前倉之較低可能或較高可能倉值之估值而測定輸出倉值7。於本發明之較佳實施例中,若識別符載明針對兩個可能倉值中之第一者表示該目前倉之較低可能(或較高可能)倉值,則輸出倉值7係設定為等於輸入倉值5;及若識別符載明針對兩個可能倉值中之第二者表示該目前倉之較低可能(或較高可能)倉值,則輸出倉值7係經修改(亦即其係設定為輸入倉值5之顛倒值)。
於本發明之較佳實施例中,倉緩衝器選擇器6係基於針對目前倉之兩個可能倉值中之一者的機率估值量測值而決定輸出倉7被發送之該倉緩衝器8。於本發明之較佳實施例中,針對兩個可能倉值中之一者的機率估值量測值的可能值之集合為有限,及倉緩衝器選擇器6含有一表,該表係將恰一個倉緩衝器8與兩個可能倉值中之一者的機率估值的各個可能值相關聯,此處針對兩個可能倉值中之一者的機率估值量測值之不同值可與同一個倉緩衝器8相關聯。於本發明之又一較佳實施例中,針對兩個可能倉值中之一者的機率估值量測值之可能值範圍係被分割成多個區間,倉緩衝器選擇器6決定針對兩個可能倉值中之一者的機率估值量測值之區間指數,及倉緩衝器選擇器6含有一表,該表係將恰一個倉緩衝器8與針對該區間指數的各個可能值相關聯,此處該區間指數之不同值可與同一個倉緩衝器8相關聯。於本發明之較佳實施例中,具有兩個可能倉值中之一者的機率估值之相反量測值(相反量測值為表示機率估值P及1-P)之輸入倉5係饋至同一個倉緩衝器8。於本發明之又一較佳實施例中,針對該目前倉之兩個可能倉值中之一者的機率量測值與一特定倉緩衝器之關聯性係隨著時間之經過而調適,例如來確保所形成之部分位元串流具有相似的位元率。
於本發明之又一較佳實施例中,倉緩衝器選擇器6係基於針對目前倉之較低可能或較高可能倉值的機率估值量測值而決定輸出倉7被發送之該倉緩衝器8。於本發明之較佳實施例中,針對較低可能或較高可能倉值的機率估值量測值的可能值之集合為有限,及倉緩衝器選擇器6含有一表,該表係將恰一個倉緩衝器8與較低可能或較高可能倉值的機率估值的各個可能值相關聯,此處針對較低可能或較高可能倉值的機率估值量測值之不同值可與同一個倉緩衝器8相關聯。於本發明之又一較佳實施例中,針對較低可能或較高可能倉值的機率估值量測值之可能值範圍係被分割成多個區間,倉緩衝器選擇器6決定針對較低可能或較高可能倉值的機率估值量測值之區間指數,及倉緩衝器選擇器6含有一表,該表係將恰一個倉緩衝器8與針對該區間指數的各個可能值相關聯,此處該區間指數之不同值可與同一個倉緩衝器8相關聯。於本發明之又一較佳實施例中,針對該目前倉之較低可能或較高可能倉值的機率量測值與一特定倉緩衝器之關聯性係隨著時間之經過而調適,例如來確保所形成之部分位元串流具有相似的位元率。
二或多個倉緩衝器8各自係與恰一個倉編碼器10連結,而各個倉編碼器係只與一個倉緩衝器8連結。各倉編碼器10從相關聯之倉緩衝器8讀取倉,及將一序列倉9轉換成表示一序列位元之一碼字組11。該倉緩衝器8表示先進先出緩衝器;較遲(於循序順序中)被饋至一倉緩衝器8之倉係不會在較早(於循序順序中)被饋至該倉緩衝器之前編碼。屬於一特定倉編碼器10之輸出的碼字組11被寫至一特定位元串流12。總編碼演繹法則將來源符碼1轉換成二或多個位元串流12,此處該部分位元串流數目係等於倉緩衝器或倉編碼器數目。於本發明之較佳實施例中,倉編碼器10將可變倉數9轉換成可變倉數之碼字組11。前文-及後文-摘述之本發明實施例之一項優點為倉編碼可並列進行(例如針對不同機率量測值群組),其縮短若干具體實現之處理時間。
本發明實施例之另一項優點為藉倉編碼器10所進行之倉編碼可針對不同參數集合5特別設計。特別倉編碼及編碼可針對不同機率量測值群組而最佳化(就編碼效率及/或複雜度而言)。一方面,如此允許相對於最先進熵編碼演繹法則減少編/解碼複雜度且具有相似的編碼效率。另一方面,如此允許相對於最先進熵編碼演繹法則改良編碼效率但具有相似的編/解碼複雜度。於本發明之較佳實施例中,倉編碼器10針對目前倉之兩個可能倉值5中之一者的機率估值量測值之不同群組,具體實現不同編碼演繹法則(亦即倉序列對映至碼字組)。於本發明之又一較佳實施例中,倉編碼器10針對目前倉之較低可能或較高可能倉值的機率估值量測值之不同群組,具體實現不同編碼演繹法則。於又一較佳實施例中,倉編碼器10針對不同通道保護碼具體實現不同編碼演繹法則。於又一較佳實施例中,倉編碼器10針對不同加密方案具體實現不同編碼演繹法則。於又一較佳實施例中,倉編碼器10針對通道保護碼與目前倉之兩個可能倉值5中之一者的機率估值量測值之群組的不同組合,具體實現不同編碼演繹法則。於又一較佳實施例中,倉編碼器10針對通道保護碼與目前倉之較低可能或較高可能倉值5的機率估值量測值之群組的不同組合,具體實現不同編碼演繹法則。於又一較佳實施例中,倉編碼器10針對加密方案與目前倉之兩個可能倉值5中之一者的機率估值量測值之群組的不同組合,具體實現不同編碼演繹法則。於又一較佳實施例中,倉編碼器10針對加密方案與目前倉之較低可能或較高可能倉值5的機率估值量測值之群組的不同組合,具體實現不同編碼演繹法則。
於本發明之較佳實施例中,倉編碼器10或倉編碼器中之一或多者表示二元算術編碼引擎。於本發明之又一較佳實施例中,倉編碼器中之一或多者表示二元算術編碼引擎,其中從一給定倉緩衝器之代表性LPS/LPB機率pLPS 至相對應碼區間寬度RLPS 亦即該二元算術編碼引擎內部態之區間細分之對映關係,係由目前區間寬度R及目前區間偏位L所界定,識別例如碼區間之下限係使用詢查表實現。於又一較佳實施例中,針對與一給定倉緩衝器相關聯之各個基於表的二元算術編碼引擎,K個代表性區間寬度值{Q 0 ,...,Q K -1 }係用來表示RLPS 而有K之選擇及代表性區間寬度值{Q 0 ,...,Q K -1 }係取決於倉緩衝器。針對K>1之選擇,倉之算術編碼可能涉及下述子步驟,將目前區間寬度R對映至具有值在{0,...,k-1}之量化指數q;以及使用q作為指數,藉從一詢查表存取相對應部分區間寬度值Qq 而進行區間細分。針對K=1之選擇,亦即針對只給定一個代表性區間寬度值Q0 之情況,此值Q0 可選擇為2之次冪來允許在單一重新標準化循環中載入相對應倉緩衝器的多個MPS/MPB之解碼。結果所得各個算術編碼引擎之碼字組可分開地傳輸、封包化、或儲存,或其可經交插用於傳輸或儲存目的,容後詳述。
換言之,二元算術編碼引擎10可在其編碼倉緩衝器8內之倉執行下列步驟:
1. 從倉緩衝器接收valLPS倉(憶起:此處考慮個別二元算術編碼引擎10係經選擇來接收「倉」,原因在於(或換言之,「倉」係與個別二元算術編碼引擎10相關聯)機率分布估值諸如p_state[bin]係與該二元算術編碼引擎10相關聯)
2. R之量化:
q_index=Qtab[R>>q](或若干其它量化形式)
3. RLPS 及R之測定:
RLPS =Rtab[q_index](注意此處未述及p_state,原因在於針對所考慮的二元算術編碼引擎10其為固定,亦即p_state[encoder],及Rtab已經於其中儲存針對p[p_state[encoder]].Q[q_index]之前計算值
R=R-RLPS [亦即,彷彿「倉」為MPS般R係初步經預更新]
4. 新部分區間之計算:
若(bin=1-valMPS)則
L←L+R
R←RLPS
5. L及R之重新標準化,寫入位元,
其中
q_index 描述量化值讀取Qtab之指數,
p_state 描述目前態(針對二元算術編碼引擎10為固定),
RLPS  描述相對應於LPS之區間寬度及
valMPS 描述相對應於MPS之位元值。
據此,二元算術解碼引擎22可在解碼輸出至倉緩衝器20之倉執行下列步驟:
1.接收針對一倉之請求(憶起:此處考慮個別二元算術解碼引擎22係經選擇來解碼「倉」,原因在於(或換言之,「倉」係與個別二元算術解碼引擎22相關聯)機率分布估值諸如p_state[bin]係與該二元算術解碼引擎22相關聯)
2.R之量化:
q_index=Qtab[R>>q](或若干其它量化形式)
3.RLPS 及R之測定:
RLPS =Rtab[q_index](注意此處未述及p_state,原因在於針對所考慮的二元算術解碼引擎22其為固定,亦即p_state[encoder],及Rtab已經於其中儲存針對p[p_state[encoder]]‧Q[q_index]之前計算值
R=R-RLPS [亦即,彷彿「倉」為MPS般R係初步經預更新]
4. 依據部分區間之位置而測定倉:
if(VR)then
bin←1-valMPS(倉係解碼為LPS;倉緩衝器選擇器18將藉使用此種倉資訊及valMPS而獲得實際倉值)
L←L-R
R←RLPS
else
bin←valMPS(倉係解碼為LPS;倉緩衝器選擇器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。於本發明之又一較佳實施例中,輸出碼字組表示適合用於錯誤檢測及錯誤復原之冗餘碼。於本發明之又一較佳實施例中,輸出碼字組表示適合用於加密來源符碼之加密碼。
表3:倉序列與碼字組間之對映實例。
於本發明之又一較佳實施例中,倉編碼器10或倉編碼器中之一或多者表示將可變長度之輸入倉序列9直接對映至固定長度碼字組10上之熵編碼器。於本發明之又一較佳實施例中,倉編碼器10或倉編碼器中之一或多者表示將固定長度之輸入倉序列9直接對映至可變長度碼字組10上之熵編碼器。
依據本發明之一實施例解碼器係例示說明於第2圖。解碼器基本上執行編碼器之反向操作,故(先前已編碼)來源符碼27序列係從二或多個部分位元串流24之集合解碼。解碼器包括二不同處理流:一流用於資料請求,其複雜編碼器之資料流;及一資料流表示編碼器之資料流之顛倒。於第2圖之例示說明中,虛線箭頭表示請求資料流,而實線箭頭表示資料流。解碼器積木基本上複製編碼器積木,但具體實現顛倒操作。
來源符碼之解碼係藉發送給二進制化器14之新已解碼來源符碼的請求13而觸發。於本發明之較佳實施例中,新已解碼來源符碼的各項請求13係與一或多個類別集合中之一類別相關聯。來源符碼的請求13相關聯之類別係與在編碼期間相對應來源符碼相關聯之類別相同。二進制化器14將來源符碼的請求13對映至發送給參數分配器16之一倉的一或多個請求。作為藉二進制化器14發送給參數分配器16之一倉的請求之最後回應,二進制化器14接收來自倉緩衝器選擇器18之已解碼倉26。二進制化器14比較所接收之已解碼倉26之序列與針對所請求之來源符碼之特定二進制化方案之倉序列,及若所接收的已解碼倉26序列匹配來源符碼之二進制化,則二進制化器排空其倉緩衝器及輸出已解碼之來源符碼作為對新已解碼來源符碼的請求之最終回應。若已接收的已解碼倉序列匹配針對所請求之來源符碼之特定二進制化方案之倉序列,則二進制化器發送另一項倉請求給參數分配器,直到已解碼倉序列匹配針對所請求之來源符碼之特定二進制化方案之倉序列中之一者為止。針對一來源符碼之各項請求,解碼器使用用來編碼相對應來源符碼之相同二進制化方案。針對不同來源符碼類別的二進制化方案可能不同。針對特定來源符碼類別的二進制化方案可取決於可能的來源符碼值集合及/或特定類別來源符碼之其它性質。
參數分配器分配一或多個參數集合給針對一倉的各個請求,及發送帶有相關聯之參數集合之請求給倉緩衝器選擇器。藉參數分配器而分配給一請求倉之參數集合係與在編碼期間,分配給相對應倉之參數集合相同。參數集合可由在編碼器描述中述及的參數中之一或多者組成。
於本發明之較佳實施例中,參數分配器16將針對一倉之各項請求與針對目前請求倉的兩個可能倉值中之一者的機率估值量測值相關聯。於本發明之又一較佳實施例中,參數分配器16將針對一倉之各項請求與針對目前請求倉的較低可能或較高可能倉值的機率估值量測值,及一識別符載明針對兩個可能倉值中之哪一者表示針對目前請求倉的較低可能或較高可能倉值之估值相關聯。
於本發明之又一較佳實施例中,參數分配器16將針對一倉15、17之請求與針對目前請求倉的較低可能或較高可能倉值的機率估值量測值、及一或多個額外參數相關聯。參數分配器16將針對一倉15、17之請求與針對目前倉之較低可能或較高可能倉值之機率估值之量測值,一識別符載明針對兩個可能倉值中之哪一者表示該目前倉之較低可能或較高可能倉值之估值,及一或多個額外參數(其可以是前文列舉之參數中之一者或多者)相關聯。
於本發明之較佳實施例中,參數分配器16基於一或多個已解碼符碼之集合而決定前述機率量測值中之一或多者(針對目前請求倉的兩個可能倉值中之一者的機率估值量測值、針對目前倉之較低可能或較高可能倉值之機率估值之量測值、識別符載明針對兩個可能倉值中之哪一者表示該目前倉之較低可能或較高可能倉值之估值)。針對一倉之特定請求的機率量測值之測定複製針對相對應倉在編碼器之處理程序。用來測定機率量測值之已解碼符碼可包括相同符碼類別之一或多個已解碼符碼、相同符碼類別之一或多個已解碼符碼其係對應於鄰近空間及/或時間位置之資料集合(諸如樣本區塊或群組)(關係針對一來源符碼之目前請求相關聯之資料集合)、或不同符碼類別之一或多個已解碼符碼其係對應於鄰近空間及/或時間位置之資料集合(關係針對一來源符碼之目前請求相關聯之資料集合)。
針對具有與參數分配器16之輸出相關聯之參數集合17之一倉的各項請求係饋至一倉緩衝器選擇器18。基於相關聯之參數集合17,倉緩衝器選擇器18發送針對一倉19之請求給二或多個倉緩衝器20中之一者,及從所選倉緩衝器20而接收一解碼倉25。解碼輸入倉25可能經修改,而具有可能修改值之解碼輸出倉26係發送給二進制化器14,作為針對具有相關聯之參數集合17之一倉的請求之最終回應。
針對一倉的請求前傳給倉緩衝器20係以與在編碼器端發送倉緩衝器選擇器之輸出倉的倉緩衝器之相同方式擇定。
於本發明之較佳實施例中,倉緩衝器選擇器18基於針對目前請求倉之兩個可能倉值中之一者的機率估值量測值,決定請求一倉19發送給倉緩衝器20。於本發明之較佳實施例中,針對兩個可能倉值中之一者的機率估值量測值之可能值集合為有限,及倉緩衝器選擇器18含有一表,該表係將恰一個倉緩衝器20與針對兩個可能倉值中之一者的機率估值之各個可能值相關聯,此處針對兩個可能倉值中之一者的機率估值量測值之不同值可與同一個倉緩衝器20相關聯。於本發明之又一較佳實施例中,針對兩個可能倉值中之一者的機率估值量測值之可能值範圍係被分割成多個區間,倉緩衝器選擇器18測定針對兩個可能倉值中之一者的機率估值之目前量測值之區間指數,及倉緩衝器選擇器18含有一表,該表係將恰一個倉緩衝器20與區間指數之各個可能值相關聯,此處區間指數之不同值可與同一個倉緩衝器20相關聯。於本發明之較佳實施例中,針對具有兩個可能倉值中之一者的機率估值之相反量測值(相反量測值係表示機率估值P及1-P之該等量測值)之倉17的請求係前傳給同一個倉緩衝器20。於本發明之又一較佳實施例中,針對目前倉請求之兩個可能倉值中之一者的機率估值量測值與一特定倉緩衝器之關聯性係隨著時間之經過而調適。
於本發明之較佳實施例中,倉緩衝器選擇器18基於針對目前請求倉之較低可能或較高可能倉值的機率估值量測值,決定請求一倉19給倉緩衝器20。於本發明之較佳實施例中,針對較低可能或較高可能倉值的機率估值量測值之可能值集合為有限,及倉緩衝器選擇器18含有一表,該表係將恰一個倉緩衝器20與針對較低可能或較高可能倉值的機率估值之各個可能值相關聯,此處針對較低可能或較高可能倉值的機率估值量測值之不同值可與同一個倉緩衝器20相關聯。於本發明之又一較佳實施例中,針對較低可能或較高可能倉值的機率估值量測值之可能值範圍係被分割成多個區間,倉緩衝器選擇器18測定針對較低可能或較高可能倉值的機率估值之目前量測值之區間指數,及倉緩衝器選擇器18含有一表,該表係將恰一個倉緩衝器20與區間指數之各個可能值相關聯,此處區間指數之不同值可與同一個倉緩衝器20相關聯。於本發明之又一較佳實施例中,針對目前倉請求之較低可能或較高可能倉值的機率估值量測值與一特定倉緩衝器之關聯性係隨著時間之經過而調適。
於從該所選倉緩衝器20接收一已解碼倉25後,倉緩衝器選擇器18可能修改該輸入倉25且發送帶有可能修改值之輸出倉26給二進制化器14。倉緩衝器選擇器18之輸入/輸出倉對映關係為該倉緩衝器選擇器在編碼器端之輸入/輸出倉對映關係之顛倒。
於本發明之較佳實施例中,倉緩衝器選擇器18並未修改倉值,亦即輸出倉26經常性具有與輸入倉25之相同值。
於本發明之較佳實施例中,倉緩衝器選擇器18基於輸入倉值25及與請求一倉27相關聯之針對目前請求倉之兩個可能倉值中之一者的機率估值量測值而決定輸出倉值26。於本發明之較佳實施例中,若針對目前請求倉之兩個可能倉值中之一者的機率量測值係小於(或小於或等於)一特定臨界值,則輸出倉值26係設定為等於輸入倉值25;若針對目前請求倉之兩個可能倉值中之一者的機率量測值係大於或等於(或大於)一特定臨界值,則輸出倉值26係經修改(亦即設定為輸入倉值之顛倒)。於本發明之又一較佳實施例中,若針對目前請求倉之兩個可能倉值中之一者的機率量測值係大於(或大於或等於)一特定臨界值,則輸出倉值26係設定為等於輸入倉值25;若針對目前請求倉之兩個可能倉值中之一者的機率量測值係小於或等於(或小於)一特定臨界值,則輸出倉值26係經修改(亦即設定為輸入倉值之顛倒)。於本發明之較佳實施例中,臨界值係與針對兩個可能倉值之估算機率之0.5值相對應。
於本發明之又一較佳實施例中,倉緩衝器選擇器18基於輸入倉值25及與針對一倉的請求17之識別符,該識別符載明針對兩個可能倉值中之哪一者表示較低可能或較高可能倉值之估值,而決定輸出倉值26。於本發明之較佳實施例中,若該識別符載明針對目前請求倉之兩個可能倉值中之第一者表示較低可能(或較高可能)倉值,則輸出倉值26係設定為等於輸入倉值25;而若該識別符載明針對目前請求倉之兩個可能倉值中之第二者表示較低可能(或較高可能)倉值,則輸出倉值26係經修改(亦即設定為輸入倉值之顛倒)。
如前文描述,倉緩衝器選擇器發送針對一倉的請求19給二或多個倉緩衝器20中之一者。倉緩衝器20表示先進先出緩衝器,其被饋以來自連結的倉解碼器22之已解碼倉序列21。回應於從倉緩衝器選擇器18發送給倉緩衝器20之針對一倉的請求19,倉緩衝器20去除先饋進倉緩衝器20之內容之該倉,且發送給倉緩衝器選擇器18。較早發送給倉緩衝器20之倉係較早被移除及發送給倉緩衝器選擇器18。
二或多個倉緩衝器20中之各者係連結恰一個倉解碼器22,而各個倉解碼器只連結一個倉緩衝器20。各個倉解碼器22係從分開部分位元串流24而讀取表示位元序列之碼字組23。倉解碼器將一碼字組23轉換成一倉序列21,其係發送給連結的倉緩衝器20。總體解碼演繹法則將二或多個部分位元串流24轉換成多個已解碼來源符碼,此處,部分位元串流數目係等於倉緩衝器及倉解碼器數目,而來源符碼之解碼係藉針對新來源符碼之請求而觸發。於本發明之較佳實施例中,倉解碼器22係將具有可變位元數目之碼字組23轉換成為具有可變倉數之一序列21。本發明之實施例之一項優點為從二或多個部分位元串流之倉解碼可並列(例如針對機率量測值之不同群組)進行,其縮短若干具體實現之處理時間。
本發明之實施例之另一項優點為藉倉解碼器22進行的倉解碼可針對不同參數集合17而特別設計。更明確言之,倉編碼及解碼可針對不同估算得的機率群組而最佳化(就編碼效率及/或複雜度而言)。一方面,如此允許相對於最先進熵編碼演繹法則減少編/解碼複雜度且具有相似的編碼效率。另一方面,如此允許相對於最先進熵編碼演繹法則改良編碼效率但具有相似的編/解碼複雜度。於本發明之較佳實施例中,倉解碼器22針對目前倉請求之兩個可能倉值17中之一者的機率估值量測值之不同群組,具體實現不同解碼演繹法則(亦即倉序列對映至碼字組)。於本發明之又一較佳實施例中,倉解碼器22針對目前請求倉之較低可能或較高可能倉值的機率估值量測值之不同群組,具體實現不同解碼演繹法則。於又一較佳實施例中,倉解碼器22針對不同通道保護碼具體實現不同解碼演繹法則。於又一較佳實施例中,倉解碼器22針對不同加密方案具體實現不同解碼演繹法則。於又一較佳實施例中,倉解碼器22針對通道保護碼與目前請求倉之兩個可能倉值17中之一者的機率估值量測值之群組的不同組合,具體實現不同解碼演繹法則。於又一較佳實施例中,倉解碼器22針對通道保護碼與目前請求倉之較低可能或較高可能倉值17的機率估值量測值之群組的不同組合,具體實現不同解碼演繹法則。於又一較佳實施例中,倉解碼器22針對加密方案與目前請求倉之兩個可能倉值17中之一者的機率估值量測值之群組的不同組合,具體實現不同解碼演繹法則。於又一較佳實施例中,倉解碼器22針對加密方案與目前請求倉之較低可能或較高可能倉值17的機率估值量測值之群組的不同組合,具體實現不同解碼演繹法則。
倉解碼器22進行在編碼器端之相對應倉編碼器的反相對映。
於本發明之較佳實施例中,倉解碼器22或倉解碼器中之一或多者表示二元算術解碼引擎。
於本發明之又一較佳實施例中,倉解碼器22或倉解碼器中之一或多者表示熵解碼器,其係將碼字組23直接對映至倉序列21。此種對映關係可有效地具體實現而不要求複雜的算術編碼引擎。碼字組對映至倉序列之對映關係須為獨特。於本發明之較佳實施例中,碼字組23對映至倉序列21之對映為雙射。於本發明之又一較佳實施例中,倉解碼器10或倉解碼器中之一或多者表示熵解碼器,其係將可變長度碼字組23直接對映至可變長度倉序列21。於本發明之較佳實施例中,輸出碼字組表示不含冗餘碼,諸如通俗霍夫曼碼或典範霍夫曼碼。倉序列之雙射對映至不含冗餘碼之二實例係例示說明於表3。於本發明之又一較佳實施例中,輸出碼字組表示適合用於錯誤檢測及錯誤復原之冗餘碼。於本發明之又一較佳實施例中,輸出碼字組表示加密碼。
於本發明之又一較佳實施例中,倉解碼器22或倉解碼器中之一或多者表示熵解碼器,其係將固定長度碼字組23直接對映至可變長度倉序列21。於本發明之又一較佳實施例中,倉解碼器22或倉解碼器中之一或多者表示熵解碼器,其係將可變長度碼字組23直接對映至固定長度倉序列21。
如此,第1及2圖顯示用以編碼一符碼序列3之編碼器及用以重建之解碼器之一實施例。編碼器包含一分配器4,其係經組配來將多個參數5分配給該符碼序列之各個符碼。分配係基於含在該符碼序列之前一個符碼之資訊,諸如語法元素1之類別而分配給目前符碼所屬表示型態諸如二進制化,及依據語法元素1之語法結構為目前預期之表示型態,該預期又可從先前語法元素1及符碼3之過去史推定。又,編碼器包含多個熵編碼器10,其各自係經組配來將前傳給個別熵編碼器轉換成個別位元串流12,及一選擇器6係經組配來將各個符碼3前傳至多個熵編碼器10中之選定者,該選擇係取決於分配給個別符碼3之參數5數目。用以重建一符碼序列之解碼器包含多個熵解碼器22,其各自係經組配來將個別位元串流23轉換成符碼21;一分配器16其係經組配來將多個參數17基於含在該符碼序列之先前重建的符碼(參考第2圖之26及27)分配給欲重建的一序列符碼的各個符碼15;及一選擇器18,其係經組配來從該等多個熵解碼器22中之一選擇定取回欲重建的一序列符碼的各個符碼,該項選擇係取決於界定給個別符碼之參數數目。分配器16可經組配來使得分配給各符碼之參數數目包含或為個別符碼可推定的多個可能符碼值中之機率分布估值之量測值。欲重建的符碼序列可以是二元字母表,及分配器16可經組配來使得機率分布估值係由該二元字母表之兩個可能倉值之一較低可能或較高可能倉值之一機率估值之量測值及一識別符載明針對兩個可能倉值中之哪一者表示較低可能或較高可能倉值之估值所組成。分配器16更可經組配來基於欲重建之該符碼序列之先前已重建符碼內部資訊而內部分配一脈絡給該符碼序列15之各個符碼,而各脈絡具有與其相關聯之個別機率分布估值;以及基於分配先前脈絡給先前已重建符碼之符碼值,而調整適應各個脈絡之機率分布估值成為實際符碼統計數字。該脈絡可考慮語法元素所屬位置諸如於視訊或圖像編碼,或甚至於財務應用之情況,表中之空間關係或鄰近關係。然後,基於與分配給個別符碼之脈絡相關聯之機率分布估值,諸如藉由量化與分配的脈絡相關聯之機率分布估值成為多個機率分布估值表示型態中之一者,來獲得機率分布估值之量測值,可測定針對各符碼之機率分布估值之量測值。選擇器可經組配來使得在多個熵編碼器與多個機率分布估值表示型態間界定雙射關聯性。選擇器18可經組配來依據該符碼序列之先前已重建符碼,以預定決定性方式,隨著時間之經過而改變從一機率分布估值範圍至多個機率分布估值表示型態之量化對映關係。換言之,選擇器18可改變量化階大小,亦即對映至與個別熵解碼器雙射地相關聯之個別機率指數之機率分布區間。多個熵解碼器22又轉成可經組配來調適其回應於量化對映關係之改變而將符碼轉換成位元串流之方式。舉例言之,各個熵解碼器22可針對在個別機率分布估值量化區間內部的某個機率分布估值而予最佳化,亦即具有最佳壓縮率;且可改變其碼字組/符碼序列對映關係,因而當個別機率分布估值量化區間改變時,調適此種某個機率分布估值在該區間內部之位置而變成最佳化。選擇器可經組配來改變量化對映關係,使得符碼從多個熵解碼器被取圖之率變成較不分散式。至於二進制化器14,須注意若語法元素已經為二元則可保留。又復,取決於熵解碼器22類型,緩衝器20之存在並不必要。又,緩衝器可整合在解碼器內部。
有限來源符碼序列之結束
於本發明之較佳實施例中,編碼及解碼係針對來源符碼之有限集合而進行。經常某個量之資料諸如靜像、視訊序列之圖框或欄位、影像之截割片、視訊序列之圖框或欄位之截割片、或連續音訊樣本集合等係經編碼。通常,針對來源符碼之有限集合,在編碼器端所形成之部分位元串流須經結束,亦即須確保全部來源符碼可從該所傳輸的或所儲存的部分位元串流解碼。在最末倉插入相對應倉緩衝器8後,倉編碼器10須確保一完整碼字組被寫至部分位元串流12。若倉編碼器10表示二元算術編碼引擎,則算術碼字組必須經終結。若倉編碼器10表示具體實現倉序列直接對映至碼字組之一熵編碼器,則在將最末倉寫至倉緩衝器後,儲存在倉緩衝器的倉序列可能並未表示與碼字組相關聯之一倉序列(亦即其可能表示與碼字組相關聯之二或多個倉序列之前綴)。於此種情況下,含有倉序列在倉緩衝器作為前綴之與一倉序列相關聯之任何碼字組須被寫至部分位元串流(倉緩衝器須經滌淨(flushed))。可藉以具有一特定值或一任意值之倉插入倉緩衝器內直至碼字組被寫入為止進行。於本發明之較佳實施例中,倉編碼器選擇具有最小長度(除了相關聯之倉序列須含有在倉緩衝器之倉序列作為前綴之性質之外)之碼字組中之一者。在解碼器端,倉解碼器22可比較針對一部分位元串流的最末碼字組所需而解碼更多倉;此等倉並未由倉緩衝器選擇器18所請求且被捨棄與忽略。有限符碼集合之解碼係藉針對解碼來源符碼之請求加以控制;若不再請求來源符碼某個資料量,則結束解碼。
部分位元串流之傳輸及多工化
由編碼器所形成之部分位元串流12可分開地傳輸,或可多工化成為單一位元串流,或部分位元串流之碼字組可交插於單一位元串流。
於本發明之較佳實施例中,針對定量資料之各部分位元串流係被寫成一個資料封包。該資料量可以是來源符碼之任意集合,諸如靜像、視訊序列之圖框或欄位、影像之截割片、視訊序列之圖框或欄位之截割片、或一框音訊樣本等。
於本發明之另一較佳實施例中,針對定量資料之部分位元串流中之二或多者或針對定量資料之全部部分位元串流係被多工化成一個資料封包。含有已多工化部分位元串流之一資料封包之結構係例示說明於第3圖。
資料封包100係由一標頭及針對各部分位元串流(針對所考慮的資料量)之資料的一個分割所組成。資料封包之標頭100含有將資料封包(之其餘部分)分割成多個位元串流資料節段102的指標。除了分割指標外,標頭可含有額外資訊。於本發明之較佳實施例中,資料封包之分割指標為資料節段起點之位置,以位元或位元組或多個位元或多個位元組為單位。於本發明之較佳實施例中,資料節段起點之位置係以相對於資料封包起點、或相對於標頭終點、或相對於前一個資料封包起點之資料封包標頭的絕對值編碼。於本發明之又一較佳實施例中,資料節段起點之位置係差異地編碼,亦即只編碼資料節段之實際起點與資料節段起點之預測間之差。預測可基於已知資訊或已傳輸資訊,諸如資料封包之總體大小、標頭大小、資料封包內的資料節段數目、前一個資料節段起點之位置而導算出。於本發明之較佳實施例中,第一資料封包起點之位置係未經編碼,但係基於資料封包標頭大小而推定。在解碼器端,所傳輸的分割指標係用來導算出資料節段起點。然後,資料節段係用作為部分位元串流,及含在資料節段之資料係以循序順序而饋進相對應倉解碼器。
針對將部分位元串流多工化成一資料封包有若干替代之道。特別針對其中部分位元串流的大小極為相似的情況,可減少所要求的側邊資訊之一個替代之道係例示說明於第4圖。資料封包之有效負載亦即資料封包110而不含其標頭111係以預定方式而被分割成多個節段112。舉個實例,資料封包之有效負載可被分割成為具有相同大小的節段。然後各節段係與部分位元串流或與部分位元串流113之第一部分相關聯。若部分位元串流係大於相關聯之資料節段,則其其餘部分114係被置放在其它資料節段末端的未用空間。如此可以位元串流之其餘部分係以相反順序(始於資料節段末端)而被插入之方式進行,因而減少側邊資訊。部分位元串流之其餘部分與資料節段相關聯,以及當多於一個其餘部分係被加至一資料節段時,其餘部分中之一或多者之起點必須在位元串流內部例如在資料封包標頭傳訊。
可變長度碼字組之交插
用於若干應用,在一個資料封包之部分位元串流(針對定量來源符碼)之前述多工化可具有下列缺點:一方面,針對小型資料封包,用以傳訊分割所要求的側邊資訊之位元數目相對於在部分位元串流之實際資料可能變顯著,最終減低編碼效率。另一方面,多工化可能不適合要求低度延遲的應用(例如用於視訊會議應用)。使用前述多工化,在部分位元串流已經完全形成前,編碼器無法開始資料封包的傳輸,原因在於分割起點位置並非先前為已知。此外,一般而言,解碼器必須等候直到其接收到最末資料節段起點,隨後才可開始資料封包的解碼。用於視訊會議系統應用,此等延遲更增加系統若干視訊圖像之總體延遲(特別針對接近傳輸位元率之位元率,及針對在編/解碼一圖像要求在二圖像間之時間區間的編碼器/解碼器),其對此種應用具有關鍵重要性。為了克服某些應用之缺點,本發明之較佳實施例之編碼器可以下述方式組配,藉二或多個倉編碼器所產生之碼字組被交插成單一位元串流。帶有交插碼字組之位元串流可直接發送至解碼器(當忽略小量緩衝延遲時,參見後文)。在解碼器端,二或多個倉解碼器係以解碼順序而直接從位元串流讀取碼字組;解碼可始於第一所接收的位元。此外,不要求側邊資訊來傳訊該等部分位元串流之多工化(或交插)。
具有碼字組交插之編碼器的基本結構係顯示於第5圖。倉編碼器10並未將碼字組直接寫至部分位元串流,反而係連結單一碼字組緩衝器29,從該碼字組緩衝器29碼字組係以編碼順序而被寫至位元串流34。倉編碼器10發送一或多個新碼字組緩衝器分錄28之請求給碼字組緩衝器29,及後來發送碼字組30給碼字組緩衝器29,其係儲存在所保留的緩衝器分錄。碼字組緩衝器29之(通常為可變長度)碼字組31係藉碼字組寫入器32存取,其係將相對應位元33寫至所產生的位元串流34。碼字組緩衝器29操作為先進先出緩衝器;較早保留的碼字組分錄係較早被寫至位元串流。
於又更普及性,多個碼字組緩衝器及部分位元串流為可能,此處碼字組緩衝器數目係少於倉編碼器數目。倉編碼器10在碼字組緩衝器29保留一或多個碼字組,藉此在碼字組緩衝器保留一或多個碼字組係藉在連結的倉緩衝器8內的某個事件觸發。於本發明之較佳實施例中,碼字組緩衝器29係以解碼器可瞬時地解碼位元串流之方式操作。其中碼字組被寫至位元串流之編碼順序係與相對應碼字組被保留在碼字組緩衝器的順序相同。於本發明之較佳實施例中,各個倉編碼器10保留一個碼字組,而保留係藉在連結的倉緩衝器內的某個事件觸發。於本發明之另一較佳實施例中,各個倉編碼器10保留多於一個碼字組,而保留係藉在連結的倉緩衝器內的某個事件觸發。於本發明之又一較佳實施例中,倉編碼器10保留不等量碼字組,此處由特定倉編碼器所保留的碼字組量可取決於特定倉編碼器及/或特定倉編碼器/倉緩衝器之其它性質(諸如相關聯之機率量測值、已寫位元數目等)。
於本發明之較佳實施例中,碼字組緩衝器係如下操作。若新倉7發送給特定倉緩衝器8,而已儲存在倉緩衝器之倉數目為零,且針對連結該特定倉緩衝器之倉編碼器,目前並無任何碼字組保留在碼字組緩衝器,連結的倉編碼器10發送請求給碼字組緩衝器,藉此,一或多個碼字組分錄係被保留在針對該特定倉編碼器之碼字組緩衝器29。碼字組分錄可具有可變位元數目;在一碼字組分錄中的位元數目之上限臨界值通常係由針對該相對應倉編碼器之最大碼字組大小所給定。由倉編碼器所製造的下一個碼字組或其次多個碼字組(對此已保留碼字組分錄)係保留在碼字組緩衝器之所保留的分錄內。若針對一特定倉編碼器在該碼字組緩衝器內的全部所保留的緩衝器分錄係以碼字組填補,下一倉係發送至連結該特定倉編碼器之倉緩衝器,一或多個新碼字組保留在針對該特定倉編碼器之碼字組緩衝器等。碼字組緩衝器29表示以某種方式之先進先出緩衝器。緩衝器分錄係以循序順序保留。針對相對應緩衝器分錄較早被保留的碼字組係較早被寫至位元串流。連續地或在碼字組30被寫至碼字組緩衝器29後,碼字組寫入器32檢查碼字組緩衝器29之態。若第一緩衝器分錄含有完整碼字組(亦即該緩衝器分錄未被保留,反而含括一碼字組),則相對應碼字組31及相對應緩衝器分錄係從碼字組緩衝器20移開,及碼字組33之位元係寫至位元串流。此一處理程序重複韓到第一緩衝器分錄不含碼字組為止(亦即其為保留或為不含)。解碼處理程序結束時,亦即若相當大量資料之全部來源符碼已經處理時,碼字組緩衝器須經滌淨。用於該滌淨處理程序,後述適用於各個倉緩衝器/倉編碼器作為第一步驟:若該倉緩衝器確實含有倉,則增加具有一特定值或任意值之一倉,直到所得倉序列表示與一碼字組相關聯之倉序列為止(如前記,增加倉之較佳方式係增加產生最短可能碼字組或其中之一者的此等倉值,其係與含有倉緩衝器之原先內容作為前綴之倉序列相關聯),然後碼字組寫至針對相對應倉編碼器(及相對應)倉緩衝器被排空之下一個保留緩衝器分錄。若針對一或多個倉編碼器已經保留多於一個緩衝器分錄,碼字組緩衝器仍然含有保留的碼字組分錄。於該種情況下,此等碼字組分錄係以針對相對應倉編碼器之任意但有效的碼字組填補。於本發明之較佳實施例中,插入最短有效碼字組或最短有效碼字組(若有多者)中之一者。最後,在碼字組緩衝器中的全部其餘碼字組係寫至位元串流。
碼字組緩衝器態之兩個實例係例示說明於第6圖。於實例(a)中,碼字組緩衝器含有以一碼字組填補的2分錄及5保留分錄。此外,下一個自由緩衝器分錄加標示。第一分錄係以碼字組填補(亦即倉編碼器2只寫一個碼字組至先前保留的分錄)。於次一步驟,此一碼字組將從碼字組緩衝器移開及寫至位元串流。然後,針對倉編碼器3之第一保留碼字組為第一緩衝器分錄,但此分錄無法從碼字組緩衝器移開,原因在於其只保留,但無任何碼字組已寫至此一分錄。於實例(b)中,碼字組緩衝器含有以一碼字組填補的3分錄及4保留分錄。第一分錄係標示為保留,如此碼字組寫入器無法將碼字組寫至位元串流。雖然碼字組緩衝器含有3碼字組,但碼字組寫入器必須等候直到碼字組被寫至針對倉編碼器3之第一保留緩衝器分錄。注意碼字組須以其保留順序寫入來顛倒在解碼器端之處理程序(參見後父)。
具有碼字組交插之解碼器的基本結構係顯示於第7圖。倉解碼器10並未從分開部分位元串流直接讀取碼字組,反而連結至一位元緩衝器38,由此處碼字組37係以編碼順序讀取。須注意並非必然要求位元緩衝器38,原因在於碼字組也可從位元串流直接讀取。位元緩衝器38主要係含括在針對處理連鎖之明確分開不同構面之例示說明中。具有交插碼字組之位元串流40之位元39係循序地插入位元緩衝器38,其表示先進先出緩衝器。若一特定倉解碼器22接收到請求一或多個倉序列35,倉解碼器22透過針對倉36的請求而從位元緩衝器38讀取一或多個碼字組37。解碼器可瞬時解碼來源符碼。注意編碼器(如前述)須藉由適當地操作碼字組緩衝器而確保碼字組係以其被倉解碼器所請求的相同順序而寫入位元串流。在解碼器,整個解碼處理程序係藉針對來源符碼之請求而觸發。藉特定倉編碼器保留在編碼器端之碼字組數目及由相對應倉編碼器讀取的碼字組數目等參數須相同。
更一般而言,多個碼字組緩衝器及部分位元串流為可能,此處倉緩衝器數目須小於倉解碼器數目。倉解碼器22在一個時間瞬間從位元緩衝器38讀取一或多個碼字組,從該倉緩衝器讀取一或多個碼字組係藉在連結的倉緩衝器20內的某些事件觸發。於本發明之較佳實施例中,解碼器係以下述方式操作,當針對一倉19之請求係發送給特定倉緩衝器20且倉緩衝器不含任何倉時,讀取一或多個碼字組。但也可能藉其它事件觸發碼字組的讀取,例如,倉緩衝器的倉數係低於預定臨界值時。於本發明之較佳實施例中,各個倉解碼器22讀取一個碼字組,而讀取係藉在連結的倉緩衝器20內的某些事件觸發。於本發明之另一較佳實施例中,各個倉解碼器22讀取多於一個碼字組,而讀取係藉在連結的倉緩衝器內的某個事件觸發。於本發明之又一較佳實施例中,倉解碼器22讀取不等量碼字組,此處藉一特定倉解碼器讀取的碼字組量可取決於特定倉解碼器及/或該特定倉解碼器/倉緩衝器之其它性質(諸如相關聯之機率量測值、已讀取之位元數目等)。
於本發明之較佳實施例中,從倉緩衝器讀取碼字組係如下述操作。若新倉請求19係從倉緩衝器選擇器18發送給一特定倉緩衝器20,且該倉緩衝器內的倉數目為零,則連結的倉解碼器22從位元緩衝器38讀取一或多個碼字組37,透過位元請求36而送至位元緩衝器38。倉解碼器22將所讀取的碼字組37轉換成倉序列21及將此等倉序列儲存在連結的倉緩衝器20。作為針對倉請求19之最後回應,第一插入倉係從倉緩衝器20移開,及發送至倉緩衝器選擇器18。作為額外倉請求之回應,在倉緩衝器內的剩餘倉被移開直至倉緩衝器排空為止。額外倉請求觸發倉解碼器從倉緩衝器等而讀取一或多個新碼字組。位元緩衝器38表示具有預定大小之先進先出緩衝器,且係以來自位元串流40之位元39連續地填補。為了確保碼字組係以其被解碼處理程序所要求的相同方式而寫至位元串流,在編碼器端之碼字組緩衝器可以前述方式操作。
如此,多個熵解碼器各自可以是可變長度解碼器,其係經組配來將固定長度之碼字組對映至可變長度之符碼序列,及一碼字組分錄諸如碼字組緩衝器43之輸出可提供來接收交插碼字組之單一串流。多個倉解碼器22可經組配來取決於其中欲重建的符碼序列中之符碼係藉選擇器18而從多個熵解碼器取回之順序,而以循序順序從碼字組分錄取回碼字組,結果導致在個別熵解碼器欲從新碼字組對映至一新符碼序列。
具有低延遲約束之可變長度碼字組之交插
所述碼字組交插並不要求發送任何分割資訊作為側邊資訊。及因碼字組係在位元串流內交插,故延遲通常為小量。但不保證遵守特定延遲約束(例如藉儲存在碼字組緩衝器之最大位元數目載明)。此外,針對碼字組緩衝器要求的緩衝器大小理論上變成極大。當考慮第6(b)圖之實例時,可能無需發送額外倉給倉緩衝器3,如此倉編碼器3將不發送任何新碼字組給碼字組緩衝器直到在資料封包結束施加滌淨過程為止。然後倉編碼器1及2之全部碼字組在其可寫至位元串流前,須等候直到資料封包結束。此項缺點可藉增加額外機制至編碼程序(及亦加至解碼程序,容後詳述)加以克服。額外機制的基本構想為若與延遲或延遲上限相關之量測值(參見下文)超過規定臨界值,則第一保留緩衝器分錄係藉滌淨相對應倉緩衝器(使用與資料封包結束時相似的機制)而填補。藉此機制,等候中的緩衝器分錄數目減少直至相關聯之延遲量測值係小於規定的臨界值。在解碼器端,已經在編碼器插入的倉須被捨棄來遵守延遲約束。針對此種倉之捨棄,基本上可使用在編碼器端的相同機制。後父將描述針對此種延遲控制的兩個較佳實施例。
於本發明之一個較佳實施例中,延遲(或延遲上限)之量測值為在碼字組緩衝器的作用中緩衝器分錄數目,此處作用中緩衝器分錄數目為保留緩衝器分錄數目加含有碼字組之緩衝器分錄數目。注意第一緩衝器分錄經常性為保留緩衝器分錄或自由緩衝器分錄,原因在於若第一緩衝器分錄含有一碼字組,則此碼字組被寫至位元串流。舉例言之,若最大容許緩衝器延遲(由應用用途決定)為D位元,及針對全部倉編碼器之最大碼字組大小為L,則可含在碼字組緩衝器而未違反延遲約束的最大碼字組數目下限可以N=D/L求出。以位元表示之延遲量測值D並非系統所要求,但碼字組之最大數目N須為編碼器及解碼器二者所已知。於本發明之較佳實施例中,碼字組緩衝器分錄之最大數目N係由應用用途固定。於本發明之另一較佳實施例中,碼字組緩衝器分錄之最大數目N係在位元串流內部傳訊,例如在資料封包標頭(或截割片標頭)或在含括於位元串流之參數集中傳訊。若倉編碼器10發送保留一或多個新碼字組緩衝器分錄之請求給碼字組緩衝器29,則在保留新碼字組緩衝器分錄之前執行下述處理程序(亦即,若藉一項請求而保留多個碼字組緩衝器分錄,則執行多次):若目前作用中緩衝器分錄數目加1(考慮其次將保留的緩衝器分錄)係大於碼字組緩衝器分錄之最大數目N,則第一緩衝器分錄(其係被保留者)係藉後父描述之處理程序滌淨,直至目前作用中緩衝器分錄數目加1係小於或等於碼字組緩衝器分錄之最大數目N為止。保留的緩衝器分錄之滌淨係類似在資料封包結束時的滌淨:具有保留相對應第一緩衝器分錄之倉編碼器10係藉將有特定值或任意值之倉加至連結的倉緩衝器8直至所得倉序列表示與一碼字組相關聯之倉序列而滌淨;然後碼字組寫至所保留的緩衝器分錄,及其最終加至位元串流(同時排空倉緩衝器及去除先前所保留的緩衝器分錄)。如前述,將倉加至倉緩衝器之一種較佳方式係添加產生最短可能碼字組之該等倉。在解碼器端,執行類似處理程序來捨棄已添加之倉而遵守延遲約束。因此,解碼器維持計數器C,其計數已經讀取自倉緩衝器之碼字組(此一計數器可維持在倉緩衝器)。此一計數器C係在資料封包解碼之起點初始化(例如使用零),而在一碼字組讀取後遞增1。此外,各個倉解碼器22含有一計數器Cx,其係儲存在最末一個碼字組被相對應倉解碼器22讀取前之碼字組計數器C之值。換言之,當一特定倉解碼器22讀取一新碼字組時,其計數器Cx係設定為等於C作為第一步驟,及然後從倉緩衝器讀取碼字組。當針對一倉之請求19係發送給一特定倉緩衝器20且總碼字組計數器C與連結的倉解碼器22之計數器Cx間之差(C-Cx)係大於碼字組緩衝器分錄之最大數目N時,目前儲存在特定倉緩衝器20之全部倉皆被捨棄及忽略。除了該添加步驟之外,解碼係如前述操作。當針對一倉之請求19發送給的倉緩衝器20被排空時(或因全部倉皆已經被移除,或因在接收到倉請求後的第一步驟低延遲機制確實捨棄全部倉),連結的倉解碼器22從位元緩衝器38等讀取一或多個新碼字組。
於本發明之另一較佳實施例中,延遲之量測值(或延遲上限)為在碼字組緩衝器的作用中緩衝器分錄之最大碼字組長度之和,此處一特定緩衝器分錄之最大碼字組長度係取決於與該緩衝器分錄相關聯之解碼倉。如圖例示說明,緩衝器分錄之最大碼字組長度於實例中係以6指示。再度須注意第一緩衝器分錄經常性為保留緩衝器分錄或自由緩衝器分錄,原因在於若第一緩衝器分錄含有一碼字組,則此碼字組被寫至位元串流。設最大容許緩衝器延遲(藉應用用途測定)為D位元。此種最大緩衝器延遲D須為編碼器及解碼器二者所已知。於本發明之較佳實施例中,最大緩衝器延遲D係由應用所固定。於本發明之另一較佳實施例中,最大緩衝器延遲D係在位元串流內部傳訊,例如在含括於位元串流之資料封包標頭(或截割片標頭)或在參數集合傳訊。可以位元、或位元組、或多個位元、或多個位元組為單位傳訊。若倉編碼器10發送保留一或多個新緩衝器分錄之請求給碼字組緩衝器29,則在保留一新碼字組緩衝器分錄前執行接續的處理程序(亦即若多個碼字組緩衝器分錄係藉一項請求而保留時,此項處理係被執行多次)。
若針對全部目前作用中緩衝器分錄之最大碼字組長度加將被保留的該緩衝器分錄之最大碼字組長度之和係大於最大緩衝器延遲D,則第一緩衝器分錄(其係被保留)係藉前述處理程序滌淨,直到針對全部作用中緩衝器分錄之最大碼字組長度加將該緩衝器分錄之最大碼字組長度之和係小於或等於最大緩衝器延遲D。舉例言之,考慮第6(b)圖之實例。針對全部目前作用中緩衝器分錄之最大碼字組長度之和為29。假設最大緩衝器延遲D係設定為等於32。若由倉編碼器2所保留的下一個緩衝器分錄之最大碼字組長度係等於3,則第一緩衝器分錄未經滌淨,原因在於29+3係不大於32。但若由倉編碼器1所保留的下一個緩衝器分錄之最大碼字組長度係等於7,則第一緩衝器分錄未經滌淨,原因在於29+7係大於32。保留的緩衝器分錄之滌淨係如前述進行(藉將具有特定值或任意值之倉加至相對應倉緩衝器)。
在解碼器端,執行類似處理程序來捨棄已經被添加之倉而遵守延遲約束。因此,解碼器維持一計數器C,該計數器C針對已經讀取自倉緩衝器之碼字組而計數最大碼字組長度(此一計數器C可維持在倉緩衝器)。注意與不同倉解碼器相關聯之最大碼字組長度可有不同。計數器C係在一資料封包解碼的起點被初始化(例如以零),而在碼字組被讀取後捨棄。此一計數器不被所讀取的碼字組之實際長度遞增,反而係藉其最大長度遞增。換言之,若一碼字組係藉一特定倉解碼器讀取,及與由該特定倉解碼器所使用的碼字組表相關聯之最大碼字組長度為Lx(不同倉解碼器可與不同最大碼字組長度相關聯),計數器C係以Lx遞增。除了總計數器C外,各個倉解碼器22含有計數器Cx,其係儲存在最後一個碼字組藉相對應倉解碼器22讀取前的碼字組計數器C值。亦即,當一特定倉解碼器22讀取一新碼字組時,其計數器Cx係設定為等於C作為第一步驟,及然後從倉緩衝器讀取碼字組。當針對一倉之請求19係發送給一特定倉緩衝器20且總計數器C與連結的倉解碼器22之計數器Cx間之差(C-Cx)係大於最大緩衝器延遲D時,目前儲存在特定倉緩衝器20之全部倉皆被捨棄及忽略。除了該添加步驟之外,解碼係如前述操作。當針對一倉之請求19發送給的倉緩衝器20為排空時(或因全部倉皆已經被移除,或因在接收到倉請求後的第一步驟低延遲機制確實捨棄全部倉),連結的倉解碼器22從位元緩衝器38等讀取一或多個新碼字組。
如此,多個倉解碼器22及選擇器18可經組配來間歇地捨棄符碼序列之後綴,因而不參與欲重建的符碼序列29之形成。間歇捨棄可在下述情況下執行,在一個別熵解碼器從碼字組分錄的連續兩次碼字組取回間,藉多個熵解碼器已經從碼字組分錄取回的多個碼字組滿足預定標準。該等多個熵編碼器及碼字組緩衝器又轉而可經組配來藉具有目前已前傳的但尚未對映的符碼作為前綴之隨意(don’t-care)符碼,間歇地延長目前已前傳的但尚未對映的符碼成為有效符碼序列;將如此已延長之符碼序列對映至碼字組;將如此所得碼字組載入保留的碼字組分錄;及滌淨碼字組分錄。間歇地延長、載入及滌淨可於保留的碼字組分錄數目加具有碼字組載入其中之碼字組分錄數目滿足預定標準之情況下進行。該預定標準可考慮多對編碼器/解碼器對之最大碼字組長度。
針對若干架構,前述碼字組交插之較佳實施例可能導致解碼複雜度之缺點。如第7圖例示說明,全部倉解碼器22係從單一位元緩衝器38讀取碼字組(一般情況下,可變長度碼字組)。碼字組的讀取無法並列進行,原因在於碼字組須以正確順序讀取。表示一特定倉解碼器須等候直到其它倉解碼器完成碼字組的讀取。以及當可變長度碼字組之讀取複雜度相較於(部分並列)解碼處理程序之其餘部分為顯著時,此種可變長度碼字組之存取可能成為整個解碼處理程序的瓶頸。可採用來減低從單一倉緩衝器存取複雜度之所述本發明實施例有若干變化,其中數者將敘述如下。於一個本發明之較佳實施例中,存在有單一碼字組集合(例如表示不含冗餘前綴碼),用於各個倉解碼器22之碼字組集合為該單一碼字組集合之一子集。注意不同倉解碼器22可使用該單一碼字組集合之不同子集。即便由若干倉解碼器22所使用的碼字組集合為相同,但其與倉序列之關聯性針對不同倉解碼器22為不同。於本發明之一特定實施例中,同一個碼字組集合係用於全部倉解碼器22。若發明人有單一碼字組集合其包括針對全部倉解碼器之碼字組集合作為子集,則碼字組之剖析可在倉解碼器外側進行,其可減低碼字組存取之複雜度。就前述處理程序而言編碼程序不變。修改的解碼處理程序係例示說明於第8圖。單一碼字組讀取器被饋以來自位元串流40之位元46,及剖析通常為可變長度碼字組。所讀取的碼字組44插入碼字組緩衝器43,其表示先進先出緩衝器。倉解碼器22發送針對一或多個碼字組41之請求給碼字組緩衝器43,及作為對此項請求之回應,一或多個碼字組從碼字組緩衝器(以循序順序)移開,及發送給相對應倉解碼器22。注意使用本發明之此一實施例,可能複雜的碼字組剖析可在背景處理程序進行,而無需等候倉解碼器。倉解碼器存取已經剖析的碼字組,可能複雜的碼字組剖析不再成為總緩衝器請求之一部分。取而代之,已經剖析的碼字組係發送給倉解碼器,其也可以只有碼字組指數係發送給倉解碼器之方式具體實現。
固定長度位元序列之交插
下述情況時可達成減低解碼器複雜度之又一方式,倉解碼器22並未從通用位元緩衝器38讀取可變長度碼字組,反而係經常性地從通用位元緩衝器38讀取固定長度位元序列,且將此等固定長度位元序列添加至本地位元緩衝器,此處各個倉解碼器22係與一分開本地位元緩衝器連結。然後從該本地位元緩衝器讀取可變長度碼字組。如此,可變長度碼字組之剖析可並列進行,唯有固定長度位元序列之存取必須以同步化方式進行,但此種固定長度位元序列的存取通常極為快速,故針對某些架構可減低總體解碼複雜度。發送給一特定本地位元緩衝器之固定倉數可因不同本地位元緩衝器而異,也可隨著時間之經過而異,取決於在倉解碼器、倉緩衝器、或位元緩衝器之某些參數。但藉特定存取而讀取的位元數目並未取決於在特定存取期間所讀取的實際位元,此乃與可變長度碼字組讀取的重要差異。固定長度位元序列之讀取係藉在位元緩衝器、位元解碼器、或本地位元緩衝器的某些事件而觸發。舉個實例,當存在於所連結的位元緩衝器之位元數目降至低於預定臨界值時,可請求讀取新固定長度位元序列,此處不同臨界值可用在不同位元緩衝器。在編碼器,必須確定固定長度位元序列係以相同順序插入位元串流,其中其係在解碼器端從位元串流讀取。類似前文解說,也可將此固定長度位元序列之交插與低延遲控制組合。後文中描述用於固定長度位元序列之交插的較佳實施例。
第9圖顯示針對本發明之實施例之基本編碼器結構之例示說明,其係針對二或多個倉編碼器而交插固定長度位元序列。與第5圖闡釋之實施例相反,倉編碼器10並未連結單一碼字組緩衝器。反而各個倉編碼器10係連結一分開位元緩衝器48,其係儲存針對相對應部分位元串流之位元。全部位元緩衝器48係連結至一通用位元緩衝器51。通用位元緩衝器51係連結至一位元寫入器53,其係以編碼/解碼順序而從通用位元緩衝器移除倉52,及將所移除的倉54寫至位元串流55。於某些情況下,在一特定位元緩衝器48或連結的倉編碼器10或倉緩衝器8中,位元緩衝器48發送一請求49給通用位元緩衝器51,藉此請求而某些位元數目被保留在通用位元緩衝器51。針對保留固定長度位元序列之請求49係以循序順序處理。通用位元緩衝器51以某種方式表示先進先出緩衝器;較早保留的位元被較早寫至位元串流。須注意不同位元緩衝器48可保留不等量位元,也可依據已編碼符碼而隨著時間之經過改變;但藉一特定請求所保留的位元數目在該請求被發送至通用位元緩衝器時為已知。
於本發明之特定實施例中,位元緩衝器48及通用位元緩衝器51之操作容後詳述。由一特定位元緩衝器48所保留的位元量標示以Nx。此一位元數目Nx可因不同位元緩衝器48而異且可隨著時間之經過而改變。於本發明之較佳實施例中,由該定特位元緩衝器48所保留的位元數目Nx可隨著時間之經過而固定。保留固定位元數目Nx 49係基於在位元緩衝器48之位元數目Mx、針對保留請求之位元數目Nx、及相關聯之最大碼字組長度Lx而觸發。注意各個倉編碼器10可與不同最大碼字組長度Lx相關聯。若一倉7係發送給一特定倉緩衝器8且該特定倉緩衝器8為空白,及針對連結特定倉緩衝器(透過倉編碼器)之位元緩衝器48保留在通用位元緩衝器51之不多於一個Nx位元序列,及由與特定倉緩衝器8連結(透過倉編碼器)的位元緩衝器48之保留請求所保留的位元數目Nx與目前存在於此位元緩衝器48之位元數目Mx間之差Nx-Mx係小於與該相對應倉編碼器10相關聯之最大碼字組長度Lx,則連結的位元緩衝器49發送針對保留Nx位元之請求49給通用位元緩衝器51。通用位元緩衝器51針對該特定位元緩衝器48保留Nx位元,及針對下次保留而遞增其指標。在Nx位元已經保留在通用位元緩衝器後,倉7係儲存在倉緩衝器8。若此單一倉確實已經表示與一碼字組相關聯之倉序列,則倉編碼器10從倉緩衝器8移開此倉,且將相對應碼字組47寫至連結的位元緩衝器48。否則(此單一倉確實已經表示與一碼字組相關聯之倉序列),額外倉7係由特定倉緩衝器8接受直到倉緩衝器8含有與一碼字組相關聯之倉序列。於此種情況下,所連結的倉編碼器10從倉緩衝器8移除倉序列9且將相對應碼字組47寫至連結的位元緩衝器48。若所得在位元緩衝器48之位元數目Mx係大於或等於保留的位元數目Nx,則先寫至位元緩衝器48之Nx位元係插入在通用位元緩衝器51中先前保留的空間。針對發送給該特定位元緩衝器48之下一倉7,執行前文載明之相同處理程序;亦即,首先檢查新位元數目Nx是否須保留在該通用位元緩衝器(若Nx-Mx係小於Lx),然後該倉係插入倉緩衝器8等。位元寫入器以保留的順序而寫入通用位元緩衝器之固定長度位元序列。若在通用位元緩衝器51之第一固定長度分錄含有固定長度位元序列,其已經實際上插入通用位元緩衝器(亦即非僅保留),位元寫入器53從通用位元緩衝器51移出此一位元序列52之位元,及將位元54寫至位元串流。此一處理程序重複直到在通用位元緩衝器之第一固定長度分錄表示一保留或自由分錄。若在通用位元緩衝器之第一固定長度分錄表示一保留分錄,則位元寫入器53等候此一分錄係以實際位元填補,隨後才將額外位元54寫至位元串流55。
於一資料封包終點,倉緩衝器係如前述滌淨。此外,倉緩衝器須藉添加具有特定值或任意值之位元而滌淨,直到在通用位元緩衝器之全部保留緩衝器分錄係被填補及寫至位元串流。
第10圖中,通用位元緩衝器51之可能態之兩個實例係經例示說明。於實例(a)中,例示說明一種情況,其中不同倉緩衝器/倉編碼器保留不同位元數。通用位元緩衝器含有3分錄具有實際寫入固定長度位元序列及4分錄具有保留固定長度位元序列。第一固定長度分錄已含有實際位元(須剛藉倉緩衝器/倉編碼器2插入);此分錄(亦即相對應8位元)可被移開及寫至位元串流。下個分錄保留10位元用於倉編碼器3,但實際位元尚未插入。此分錄無法寫至位元串流;其須等候直到插入實際位元為止。於第二實例(b)中,全部倉緩衝器/倉編碼器保留等數位元(8位元)。通用位元緩衝器含有針對8-位元序列之4保留及3實際寫入的8-位元序列。第一分錄含有8-位元之保留用於倉編碼器3。在任何新位元可被寫至位元串流前,位元寫入器須等候直到倉緩衝器/倉編碼器3將8-位元實際值寫入此一保留分錄為止。
第11圖顯示針對本發明之實施例之基本解碼器結構之例示說明,其係交插固定長度位元序列。與第7圖闡釋之實施例相反,倉解碼器22並未連結單一位元緩衝器。反而各倉解碼器22係連結一分開位元緩衝器58,其係儲存得自相對應部分位元串流之位元。全部位元緩衝器58係連結至一通用位元緩衝器61。得自位元串流63之位元62係插入通用位元緩衝器61。於某些情況下,在一特定位元緩衝器58或連結的倉解碼器22或倉緩衝器20中,位元緩衝器58發送一請求59給通用位元緩衝器61,藉此請求而固定長度位元序列60從通用位元緩衝器61中移除及插入特定位元緩衝器58。針對固定長度位元序列之請求59係以循序順序處理。通用位元緩衝器61表示先進先出緩衝器;較早插入的位元被較早移除。須注意不同位元緩衝器58可請求不等量位元,也可依據已解碼符碼而隨著時間之經過改變;但藉一特定請求所請求的位元數目在該請求被發送至通用位元緩衝器時為已知。須注意通用位元緩衝器61並非必然需要,原因在於碼字組也可讀取自位元串流。為求清晰分開處理連鎖之不同構面,主要含括通用位元緩衝器61於例示說明。
於本發明之特定實施例中,位元緩衝器58及通用位元緩衝器61之操作容後詳述。由一特定位元緩衝器58所請求且讀取的位元量標示以Nx,其係等於在編碼器端藉相對應位元緩衝器所寫至通用位元緩衝器61之位元量。此一位元數目Nx可因不同位元緩衝器58而異且可隨著時間之經過而改變。於本發明之較佳實施例中,由該定特位元緩衝器58所請求與讀取的位元數目Nx可隨著時間之經過而固定。讀取固定位元數目Nx60係基於在位元緩衝器58之位元數目Mx、及相關聯之最大碼字組長度Lx而觸發。注意各個倉解碼器22可與不同最大碼字組長度Lx相關聯。若針對一倉之請求19係發送給一特定倉緩衝器20且該特定倉緩衝器20為空白,及針對連結(透過倉解碼器)特定倉緩衝器20之位元緩衝器58之位元數目Mx係小於與相對應倉解碼器22相關聯之最大碼字組長度Lx,所連結的位元緩衝器58發送針對新Nx位元序列之請求59給通用位元緩衝器61。回應於此項請求,頭Nx位元係從通用位元緩衝器61移出,而此Nx位元序列60係發送給位元緩衝器58,從位元緩衝器58而發送請求。最後,此Nx位元序列係添加至相對應位元緩衝器58。然後下一個碼字組57係讀取自此位元緩衝器,及連結的倉解碼器22將相關聯之倉序列21插入連結的倉緩衝器20。作為對針對一倉之請求19之最終回應,第一倉係從倉緩衝器20移開,而此解碼倉25係發送給倉緩衝器選擇器18。當一個倉請求19係發送給特定倉緩衝器20而倉緩衝器非為空白時,一個位元係從倉緩衝器20移開。若倉緩衝器為空白但連結的位元緩衝器58內之位元數目Mx係大於或等於相關聯之最大碼字組長度Lx,則下一個碼字組係讀取自位元緩衝器,及新倉序列係插入倉緩衝器,從其中移開第一位元及發送給倉緩衝器選擇器。若倉緩衝器為空白且連結的位元緩衝器58內之位元數目Mx係小於相關聯之最大碼字組長度Lx,則下一個Nx位元序列係讀取自通用位元緩衝器61,及插入連結的本地位元緩衝器58,從該位元緩衝器讀取下一個碼字組,新倉序列插入倉緩衝器,及第一序列倉被移出及發送至倉緩衝器選擇器。此項處理程序重複直到全部來源符碼皆已解碼為止。
於一資料封包終點,比較用以解碼所請求之來源符碼所需更多倉及/或位元可插入倉緩衝器及/或位元緩衝器。在倉緩衝器之其餘倉及在位元緩衝器之其餘位元係被捨棄及忽略。
具有低延遲約束之固定長度位元序列之交插
針對具有固定長度位元序列交插之熵編碼器及熵解碼器之所述實施例也可組合用以控制編碼器緩衝器延遲之方案,敘述如前。基本構想係與具有前述延遲控制之實施例相同。若與延遲或延遲上限相關之量測值(參見下文)超過一規定臨界值,藉滌淨相對應倉緩衝器(使用在資料封包絡點相似的機制)及可能地寫入額外位元用來填補所保留的固定長度緩衝器分錄而填補第一保留緩衝器分錄。藉此機制,等候中的緩衝器分錄數目減少直至相關聯之延遲量測值係小於所載明之臨界值。在解碼器端,已經在編碼器端插入來遵守延遲約束之倉及位元須被捨棄。用於此種倉及位元之捨棄,基本上可採用與編碼器端之相同機制。
於本發明之較佳實施例中,延遲(或延遲上限)之量測為在通用位元緩衝器的作用中緩衝器分錄之位元數目,此處作用中緩衝器分錄之數目為保留的固定長度緩衝器分錄數目加含有已寫入位元之固定長度緩衝器分錄數目。注意第一緩衝器分錄經常性地為保留固定長度緩衝器分錄或自由緩衝器分錄,原因在於若第一緩衝器分錄含有寫入位元,則此等位元係寫至位元串流。設最大容許緩衝器延遲(藉應用用途決定)為D位元。此種最大緩衝器延遲D須為編碼器及解碼器二者所已知。於本發明之較佳實施例中,最大緩衝器延遲D係由應用固定。於本發明之另一較佳實施例中,最大緩衝器延遲D係在位元串流內部傳訊,例如在資料封包標頭(或截割片標頭)或在含括於該位元串流之參數集合。可以位元、或位元組、或多個位元、或多個位元組為單位傳訊。若倉編碼器10發送保留新固定長度位元序列之請求給通用位元緩衝器51,則在新固定長度緩衝器分錄保留之前執行下列處理程序。
若在通用位元緩衝器之作用中緩衝器分錄之位元數目加目前保留請求將保留的位元數目係大於最大緩衝器延遲D,則第一緩衝器分錄(其係經保留)係藉下文描述之處理程序滌淨直至在通用位元緩衝器之作用中緩衝器分錄之位元數目加目前保留請求將保留的位元數目係小於或等於最大緩衝器延遲D。保留的固定長度緩衝器分錄之滌淨係類似資料封包終點之滌淨:連結具有保留相對應之第一緩衝器分錄的位元緩衝器48之倉編碼器10係藉添加具有特定值或任意值之倉至連結的倉緩衝器8直至所得倉序列表示與一碼字組相關聯之倉序列而滌淨;然後該碼字組插入相對應位元緩衝器48。如前述,添加倉至倉緩衝器之一個較佳方式係添加可產生最短可能碼字組之該等倉。在碼字組寫至連結的位元緩衝器及固定長度位元序列可能插入通用位元緩衝器後,若仍有位元在位元緩衝器(亦即所寫碼字組並未完全填補保留的固定長度位元序列),則具有特定值或任意值之位元係添加至位元緩衝器,直至全部位元皆從位元緩衝器移出及寫至保留的緩衝器分錄為止。最後,在此處結束時,已完成的緩衝器分錄(在通用位元緩衝器之第一固定長度分錄)係從通用位元緩衝器移出及寫至位元串流。
在解碼器端,執行類似處理程序來捨棄已經添加來遵守延遲約束之倉及位元。因此,解碼器維持計數器C,其計數已經從通用位元緩衝器讀取的位元(此一計數器可維持在通用位元緩衝器)。計數器C係在一資料封包解碼起點被初始化(例如使用零),及在已讀取固定長度序列後遞增。若固定長度Nx位元序列係讀取自通用位元緩衝器61,則計數器C係遞增Nx。除了總計數器C外,各個位元緩衝器58含有一計數器Cx,其係儲存在最末固定長度位元序列被讀進相對應位元緩衝器58前之計數器C值。當一特定位元緩衝器58讀取新固定長度位元序列時,其計數器Cx係設定為等於C作為第一步驟,及然後從通用位元緩衝器61讀取固定長度位元序列。當針對一倉之請求19係發送給特定倉緩衝器20,及總計數器C與連結的位元緩衝器58之計數器Cx間之差(C-Cx)係大於最大緩衝器延遲D時,目前儲存在該特定倉緩衝器20之全部位元及儲存在連結的位元緩衝器58之全部位元皆被捨棄及忽略。除了該額外步驟外,解碼係如前述操作。若發送針對一倉之請求19給倉緩衝器20係被排空(或因全部倉皆已經被移除,或因低延遲機制確實在已經接收到倉請求後的第一步驟中捨棄全部倉),連結的倉解碼器22試圖從連結的位元緩衝器58讀取一新碼字組。若位元緩衝器58的位元數目係小於最大碼字組長度,則在該碼字組讀取前等,從通用位元緩衝器61讀取一新固定長度位元序列。
如此,前述實施例各自表示熵編碼之新穎辦法,其提供在霍夫曼編碼之複雜度層面之算術編碼的有效且簡單的模型化能力。離散式符碼之輸入序列之事件空間係對映至二元機率區間之一小集合。來源符碼之機率模型可以是固定性或適應性,而使用機率區間之熵編碼維持為固定且係與模型化階段解耦。機率區間各自係使用具有霍夫曼碼之複雜度層面之極為簡單的熵碼編碼。事件空間投射熵碼(ESPEC)之超過比率係類似算術編碼。
如此,前述實施例允許提高熵編碼效率之可能方式。一般而言,熵編碼可視為無損耗資料壓縮的最通俗形式。無損耗壓縮係指表示具有比較原先資料表示型態所需更少位元之離散式資料,但不會造成資訊之任何損耗。離散式資料可以文字、圖形、影像、視訊、音訊、語音、傳真、醫療資料、氣象資料、財務資料、或任何其它數位資料形式給定。於許多編碼應用上,原先來源資料係首先對映至所謂的編碼符碼,然後此等編碼符碼經熵編碼。對映至編碼符碼可包括量化,該種情況下,總編碼方案為有損耗。編碼符碼s可具有M-元(M2)字母表A={a0 ,...,aM-1 }之任何值。用於編碼符碼s之目的,字母表係與估算得之機率質量函數(pmf){ps (a0 ),...,ps (aM-1 )}相關聯,及在此pmf未考慮的編碼符碼間之全部相依性皆被忽略。針對此等摘要設定值,熵
為以熵編碼技術所能達成之針對編碼符碼s之預期碼字組長度下限,以每個符碼之位元為單位。數十年來,霍夫曼編碼及算術編碼掌控實際熵編碼。其乃可近似熵極限(就某些意義而言)之實用碼實例。
針對固定機率分布,霍夫曼碼相當容易組成。霍夫曼碼最令人關注的性質為其具體實現可藉使用可變長度碼(VLC)表而有效地實現。但當處理時間變化來源統計數字,亦即改變中的符碼機率時,就演繹法則複雜度及就具體實現成本二者而言,相當要求霍夫曼碼及其相對應VLC表之調適。又,於具有ps (ai )>0.5的優勢字母表值之情況下,相對應霍夫曼碼(未使用任何字母表延長,諸如執行長度編碼)之冗餘可能相當大。霍夫曼碼之另一項缺點為下述事實,當處理更高階機率模型化時,可能要求多個VLC表集合。
另一方面,雖然算術編碼實質上比VLC更複雜,但當因應適應性及更高階機率模型化以及因應高度扭斜機率分布時,提供更為一致性及充分操控的優點。實際上,此項特性基本上係來自於算術編碼提供一項機制,至少在構想上將任何給定機率估值以或多或少直接方式對映至部分所得碼字組。藉由提供此種介面,算術編碼一方面允許機率模型化與機率估算工作間清晰地分開,另一方面,允許實際熵編碼,亦即符碼對映至碼字組。
與剛討論之習知熵編碼方案不同,前述本發明之實施例部分使用一種描述數學背景之事件空間投射,容後詳述。
考慮編碼符碼序列{s0 ,...,sN-1 }。各個符碼係從字母表s i A i 抽出。字母表A i ={}含有二或多個字母其各自係與機率估值p s ()相對應。機率估值p s ()為編碼器及解碼器所已知且可以是固定或可變。假設在編碼器及解碼器同時估算可變機率。字母表Ai 針對符碼序列可為相同,或不同符碼類型係與不同字母表相關聯。後述情況下,假設解碼器知曉在該序列中各個符碼之字母表。此項假設係判定為實際來源編解碼器描述,含有語法規定符碼及其字母表之順序。
符碼序列{s0 ,...,sN-1 }係轉換成二元符碼序列,其亦稱作倉(bin)。針對各個符碼si ,二進制化
表示字母表字母雙射對映至倉的有序集合。二進制對映針對不同符碼si 或符碼類別可有不同。針對一特定符碼si 之各個倉序列i係由一或多個倉組成。在解碼器端,符碼si 可藉反對映s i =()-1 (b i )重建,給定倉序列bi 。由於二進制化結果,獲得倉序列{b0 ,...,bB-1 }其表示來源符碼序列{s0 ,...,sN-1 }。
全部倉bj 皆係與同一個二元字母表B={0,1}相關聯,但相對應二元pmf{}而通常為相異。二元pmf{}可藉較低可能倉(LPB)值及其機率(而0.5)描述。此種二元機率描述{}可針對符碼字母表而從機率估值p s ()直接導算出,給定二進制對映關係。也可能(且經常為較佳)在編碼器及解碼器端同時直接估算{}。因此,基於語法及先前編碼符碼或倉,倉可與機率模型(也稱作為脈絡)相關聯。以及針對各個機率模型,機率描述{}可基於使用機率模型編碼之倉值估算。此種二元機率模型之實例係就H.264之CABAC描述。
因二元熵函數
H (p )=-p Iog2 (p )-(1-p )log2 (1-p ) (B3)
係環繞p=0.5為對稱性,相同二元編碼器可用來編碼與相同LPB機率相關聯之全部倉,而與值獨立無關。因此,倉序列{b0 ,...,bB-1 }被轉換成編碼倉序列{}。針對各個倉bj ,相對應雙射對映係藉下式規定
此處⊕表示排它或運算元。在解碼器端,藉反對映給定編碼倉及相對應LPB值,可重建倉bj 。編碼倉=0載明相對應倉值bj 係等於LPB值;而編碼倉=1載明相對應倉值bj 係等於較高可能倉(MPB)值1-
編碼倉序列{b0 ,...,bB-1 }確實獨特地表示來源符碼序列{s0 ,...,sN-1 },及可採用於熵編碼之相對應機率估值係藉LPB機率(而0.5)完整描述。如此,只有在半開放區間(0,0.5]的機率才需考慮用於針對編碼倉之二元熵編碼器之設計。
用於實際二元熵編碼,編碼倉序列{}係投射至少數機率區間Ik 。LPB機率區間(0,0.5]係分割成K個區間I k =(p k ,p k +1 ]
K區間集合係以K-1區間邊界pk 而k=1,...,K-1為其特徵。未喪失其一般性,發明人假設pk <pk+1 對k=0,...,K。外區間邊界為固定且係由p0 =0及pk =0.5給定。單純非適應性二元熵編碼器係設計用於各區間Ik 。全部具有相關聯之LPB機率 I k 係設計給區間Ik 且係以相關聯之固定熵編碼器編碼。
後文說明中,全部倉表示編碼倉,及全部機率p為LPB機率
為了研究機率區間離散對編碼效率的影響,發明人假設可針對固定機率設計一種最佳熵編碼器,其達成熵極限。各機率區間I k =(p k ,p k +1 ]係與代表性機率相關聯,而相對應最佳熵編碼器將達成針對此種代表性機率 I k 之熵極限。於此等假設下,針對區間表示型態,使用最佳熵編碼器以機率p來編碼一倉之率係藉下式給定
此處H(p)表示二元熵函數3及
為其第一導數。發明人進一步假設在區間之機率分布係以f(p)給定,而 f (p )dp =1。然後,針對具有相對應代表性機率{}之一給定K區間{Ik }集合,以每倉之位元表示,預期位元率可寫成
就任何代表性機率而k=0,...,K-1而言第一偏導數係如下求出
方程式有單一解
針對在定義域Ik 內部之代表性機率p lk 。此一解之第二偏導數
經常性係大於零,若
如此,若滿足條件B12,則在方程式B10中給定值為最小化期望總率R之區間Ik 之代表性機率,給定區間邊界pk 及pk+1 。否則並無任何倉係投射至區間Ik ,代表性機率可任何選定而未對總率R造成任何影響;但須避免此種組態,原因在於區間Ik 未採用於熵編碼故。
為了找出針對最佳區間邊界之條件,發明人研究就區間邊界pk 而k=1,...,K-1而言之期望總率R之第一導數。若針對全部,f(p)>0,則針對在界定域[)內部的區間邊界pk ,方程式 R =0具有單一解
及此一解的第二偏導數
經常係大於零,因此給定區間代表值為可最小化期望總率R之區間邊界p k 。若存在有機率p k 而f(p)=0,則方程式具有多解。即便可能存在有其它最佳解,但方程式B13中給定的仍然為最佳。
給定區間數目K及機率分布f(p),區間邊界pk 而k=1,...,K-1及區間代表值而k=0,...K-1可藉由解出方程式B10及B13所形成的方程組,獲得最小化期望總率R,針對k=0,...,K-1給定條件B12。
演繹法則1:
1) 以針對全部k=0,...,K-1遵照條件B12之方式,針對全部k=0,...,K-1,將區間(0,0.5]劃分成K個任意區間I k =(p k ,p k +1 ]而p0 =0,pk =0.5,及pk <pk+1
2) 依據方程式B10更新代表值而k=0,...,K-1。
3) 依據方程式B13更新區間邊界pk 而k=0,...,K-1。
4) 重複先前二步驟直至收歛。
第12圖顯示使用所述演繹法則之最佳區間離散之實例。針對本實例,發明人假設針對0<p0.5之一致機率分布f(p)=2,且將機率區間(0,0.5]劃分成K=4區間。可知針對全部p (0,0.5],機率區間離散結果導致二元熵函數H(p)而A(p)H(p)之逐塊線性近似值A(p)。
至於區間離散對編碼效率之影響的量測值,可使用相對於熵極限,期望總率增高
。針對第12圖之特例,熵之期望值係等於1/2(ln2)位元/倉,及率額外管理資料量係等於1.01%。表4列舉針對選定區間數目K,針對一致機率分布及線性增高機率分布f(p)=8p而p (0,0.5]之率額外管理資料量
表4:針對一致且線性增加之機率分布,率額外管理資料量相對於機率區間數目
本章節之研究顯示LPB機率區間(0,0.5]之離散成具有固定機率的少數區間(例如8至10區間)對編碼效率有極小影響。
前文針對機率區間討論的熵編碼如此允許個別編碼器使用固定機率。
後文中,發明人首先顯示簡單碼如何設計用於固定機率。給定此等結果,發明人發展出下述演繹法則,其聯合地最佳化碼設計及LPB機率區間(0,0.5]之劃分。
使用算術編碼或可變長度編碼,可欽行固定機率p=之熵編碼。針對後述情況,下述辦法顯然簡單且極有效。
發明人考慮二元熵編碼方案,藉此可變之倉數目係對映至可變長度碼字組。針對獨特解碼能力,碼字組對倉序列之反對映須為獨特。及因發明人期望設計一種碼,其儘可能地趨近熵極限,發明人將考量限制在雙射對映。此種雙射對映可以二元樹表示,此處全部葉節點係與碼字組相關聯,如第13圖所示。樹緣表示二元事件。於第13圖之實例中,下緣表示LPB倉值,而上緣表示MPB倉值。若二元樹為完全二元樹,亦即若每個節點為葉或有兩個子代,則二元樹表示倉之一前綴碼。基於給定LPB機率p,各個葉節點係與機率相關聯。根節點具有機率proot =1。全部其它節點之機率係藉由相對應先輩之機率乘以LPB子代之p及MPB子代之q=1-p獲得。各個葉節點L1 係以從根節點至葉節點的LPB緣數目a1 及MPB緣數目b1 為其特徵。針對一特定LPB機率p,葉節點L l ={a l ,b l }之機率p1 係等於
二元樹T全然係以葉節點L數目及相關聯之對{a1 ,b1 }而1=0,...,L-1為其特徵。
給定一完整二元樹T及LPB機率p,藉霍夫曼演繹法則可獲得碼字組分配給葉節點之最佳分配。結果所得可變位元數目對可變長度碼字組(VNB2VLC)係以碼字組L之數目為其特徵,其係與葉節點數目相同;及針對1=0,...,L-1之三聯字組{a1 ,b1 ,l1 },此處l1 表示與相對應葉節點L1 ={a1 ,b1 }相關聯之碼字組長度。須注意給定碼字組長度{l1 },碼字組分配有多項可能,實際碼字組分配不重要,只要碼字組表示獨特可解碼前綴碼即可。對一給定碼C及LPB機率p,以位元/倉表示之期望率R(p,C)為期望碼字組長度比每個碼字組之期望倉數目之比。
碼設計經常受多項因素所限,諸如最大碼字組數目L、每個碼字組之最大倉數、或最大碼字組長度,或係受限於特定結構之碼(例如用以允許最佳化語法剖析)。若假設針對一特定應用,給定尋常碼集合SC ,針對一特定LPB機率p,最佳碼C * S C 可藉最小化預期率R(p,c)得知。
至於更快速替代之道,最小化也在對一給定二元樹ST 集合上進行,針對各樹,只考慮藉霍夫曼演繹法則所得的一個VNB2VLC碼C。舉個實例,發明人藉由考量全部二元樹T,對此葉節點L之數目係小於或等於一給定最大值Lm ,針對各個LPB機率p設計VNB2VLC碼。第14圖中,針對選定的最大表尺寸Lm ,相對率增高ρ(p ,C *(p ))=R (p ,C *(p ))/H (p )係對LPB機率p作圖。率增高ρ(p )通常可藉由允許更大型表大小而予減小。針對更大的LPB機率,8至16W的小型表大小L通常即足夠將率增高ρ(p )維持合理地小,但針對更小型LPB機率(例如p<0.1),要求更大型表尺寸L。
先前章節中,發明人考慮最佳機率離散,假設最佳碼及針對固定LPB機率之碼設計。但因通常發明人無法以有限表尺寸的實際VNB2VLC碼達成熵極限,故碼設計及LPB機率區間(0,0.5]之劃分須聯合考慮來獲得最佳化熵編碼設計。
針對一給定區間I k =(p k ,p k +1 ],若最小化針對該給定區間之期望率,則為給定集合SC 之碼Ck 的最佳碼
用於實際設計,可簡化方程式B19中整數的最小化,而對編碼效率極少有影響,其係經由首先依據方程式B10測定針對區間Ik 之最佳代表性機率,及其次依據方程式B18選擇用於代表性機率的給定集合SC 之最佳碼
給定碼Ck 集合而k=0,...,K-1,藉由最小化期望總率,可導算出最佳區間邊界pk 而k=0,...,K-1。
針對k=0,...,K-1設定就區間邊界而言之第一導數等於零,,獲得
類似方程式B13,可顯示經常性為最佳解,但取決於機率分布f(p),可能存在有其它最佳解。如此,帶有給定相關聯之碼Ck-1 及Ck 的二區間Ik-1 及Ik 間之最佳區間邊界係為函數R(p,Ck-1 )與R(p,Ck )之交叉點。
結果,給定機率區間數目K、可能碼集合SC 、及機率分布f(p)而p (0,0.5],下述迭代重複演繹法則可用來聯合地導算出機率區間劃分及相關聯之碼。
演繹法則2:
1) 用章節3載明之演繹法則1而導算出初始機率區間邊界pk ,而k=0,...,K。
2) 據方程式B10,針對機率區間Ik 而k=0,...,K-1導算出代表值
3) 據方程式B18,針對機率區間代表值而k=0,...,K-1導算出碼C k S C
4) 據方程式B21,更新區間邊界pk 而k=0,...,K-1。
5) 複先前三個步驟直至收歛。
演繹法則2中之步驟2及3也可藉依據方程式B19,基於區間邊界pk 而k=0,...,K藉碼C k S C 而k=0,...,K-1的直接導算所置換。及如於章節4.1所述,步驟3之最小化也可在一給定二元樹集合ST 進行,此處針對各個二元樹T,只考慮藉霍夫曼演繹法則所得的一個VNB2VLC碼Ck
舉個實例,發明人使用演繹法則2聯合地將劃分導算成K=12機率區間及相對應VNB2VLC碼。此時,演繹法則步驟3之最小化係以給定二元樹集合ST 之相當最小化置換,此處針對各樹T之評估碼C係藉霍夫曼演繹法則獲得。發明人考慮有最大數目Lm =65葉節點之樹T,因而碼C有高達65樹分錄。全部有高達16葉節點之二元樹T係於最小化評估;針對有多於16葉節點之樹,給定針對有較少葉節點數目之樹之最佳結果,發明人採用次最佳搜尋。
第15圖中,針對碼設計實例,相對於熵極限ΔR (p )=R (p )-H (p )之期望率增高係對LPB機率p作圖。至於比較,發明人也在略圖中作圖針對理論上最佳機率區間離散(如章節3發展出)及理論上最佳機率離散而有額外限制=0.5之期望率增高AR。可知機率區間離散及VNB2VLC碼設計聯合導致區間邊界的移位(區間邊界pk而k=1,...,K-1係由AR(p)曲線之局部最大值給定)。針對帶有實際VNB2VLC碼之設計實例,當假設一致機率分布f(p),相對於熵極限之相對期望總率為=0.24%。針對理論上最佳機率區間離散及理論上最佳機率離散而有額外限制=0.5之相對應相對率增高分別為=0.12%及=0.13%。
碼字組結束可如下進行。當編碼符碼之一有限序列{s 0 ,...,s N -1 }時,K個二元編碼器各自處理編碼倉之一有限序列,而k =0,...,K -1。且已經確定針對K個二元編碼器中之各者,給定碼字組或碼字組序列,可重建序列之全部編碼倉。
當採用算術編碼時,編碼倉序列之算術碼字組須以一種方式結束,給定碼字組,全部編碼倉可經解碼。針對前述VNB2VLC碼,在序列尾端的倉可能不表示與一碼字組相關聯之倉序列。於此種情況下,可寫入含其餘倉序列作為前綴的任何碼字組。若選用有最小長度之相對應碼字組(或此等碼字組中之一者),則額外管理資料量可最小化。在解碼器端,給定位元串流語法及二進制化方案可經識別的在倉序列尾端之額外讀取倉經捨棄。
簡單碼設計實例呈現如下。用於例示說明目的,發明人考量有三字母及ps (a0 )=0.7,ps (a1 )=0.18,及ps (a2 )=0.12固定式相關聯機率的來源{s}之簡單實例。相對應三元選擇樹可轉換成完整二元樹,如第15圖所示。
第15圖之完整二元樹之二進制化係給定於表5。三元符碼pmf ps 轉換成兩個二元pmf=(0.7,0.3)及=(0.6,0.4)。針對位元串流的各符碼s,存在有倉b0 。當b0 等於0時,也存在有b1 。注意表2給定的二進制化係與來源s之最佳單字母霍夫曼碼相同。
表5:三字母來源之二進制化。針對第一倉LPB機率pLPB 為0.3及針對第二倉為0.4
來源s之熵為
H (0.7,0.18,0.12)=H (0.7,0.3)+0.3H (0.6,0.4)=1.1726位元/符碼 (B22)
單字母霍夫曼碼之平均碼字組給定為
相對應ρHC 於=0.1274位元/符碼或10.87%期望率額外管理資料量。
針對有固定pmf之特定二進制實例,因針對二倉,LPB值係等於0,故倉b0 及b1 已表示編碼倉。LPB機率之分布f(s)為離散,而f(p)=0但p=0.3及p=0.4除外。結果,最佳機率離散導致K=2區間,具有代表值=0.3及=0.4。此等區間間之區間邊界可任意地選於[0.3,0.4)。
為了編碼來源,來源符碼序列係二進制化成一倉序列。倉b0 係針對每個來源符碼傳輸。倉b1 只在b0 =0時傳輸。倉b0 及b1 係分開編碼,而常數LPB機率分別為=0.3及=0.4。
具固定機率之二元字母表之有效編碼可藉簡單VNB2VLC對映達成。針對LPB機率pLPB =0.3及pLPB =0.4,有小型編碼表之VNB2VLC對映實例係分別地給定於表6及表7。針對pLPB =0.3之VNB2VLC對映,獲得0.0069位元/倉或0.788%之冗餘。針對pLPB =0.3之VNB2VLC對映,冗餘為0.0053位元/倉或0.548%。
表6:針對LPB機率pLPB =0.3之倉樹及碼。此碼之冗餘為0.788%
表7:針對LPB機率pLPB =0.4之倉樹及碼。此碼之冗餘為0.548%
藉新編碼方法所得總期望率為
相對於熵極限之總冗餘為0.73%,表示比較單字母霍夫曼碼之顯著改良。
藉形成回合長度碼,可獲得相似編碼效率的改良可能有爭議。針對前述實例,發明人藉由考慮至多二符碼之回合,可建構最大可能符碼之一回合長度碼。事件{a 0 a 0 ,a 0 a 1 ,a 0 a 2 ,a 1 ,a 2 }各自可與一分開符碼相關聯。此種碼獲得相對於熵極限之冗餘為1.34%。實際上,VNB2VLC碼可視為二元符碼之回合長度碼的一般化(表3之VNB2VLC碼確實有效地表示一回合長度碼)。針對有固定機率之單一符碼字母表,藉由形成一碼,其將可變數目之來源符碼對映至可變長度碼字組,也可達成類似所呈示辦法之編碼效率。所呈示辦法之主要優點為將帶有固定或適應性機率估值之任意來源符碼序列對映至以固定LPB機率運算之少數簡單二元編碼器有彈性。
其次考量如何達成獨特的決定性。
採用所呈示的熵編碼方案,一來源符碼序列 s ={s 0 ,...,s N -1 }之編碼包含以下三個基本步驟:
●符碼二進制化b={b0 ,...,bB-1 }=γb (s)獲得倉序列bc ={}
●倉序列轉換成編碼倉序列bc ={}=γc (b)
●使用機率區間離散及K個固定二元編碼器,編碼倉序列bc ={}之二元熵編碼
若編碼倉序列 b c ={}為可獨特地解碼及對映γb 及γc 為可顛倒,則符碼序列 s ={s 0 ,...,s N -1 }為可獨特地解碼。
設γe 表示一或多個編碼倉序列 b c ={}對映至一或多個碼字組序列 c ( b c )={c0 ,...}
c ( b c )=γ e (b c ) (B25)
給定碼字組序列c(bc ),為了獲得一編碼倉序列bc 之獨特解碼能力,編碼器對映γe 須具有獨特碼字組c(bc )分配給各個可能編碼倉序列bc 之性質:
b i c , b j c   b i c b j c c ( b i c )≠ c ( b j c ) (B26)
當使用算術碼或前綴碼時經常性地滿足此項性質。特別係滿足章節4.1所述VNB2VLC碼(包括章節4.3所述碼字組結束),原因在於VNB2VLC碼表示可變數目倉之前綴碼。
但於所呈示的熵編碼辦法中,編碼倉序列bc 係劃分成K個子序列,而k=0,...,K-1,
{ b 0 c ,..., b K-1 c }=γ p (b c ) (B27)
及針對各個子序列,使用一特定編碼器對映而分配一碼字組序列ck (bk c )。結果,針對獨特解碼能力的條件必須延伸。若給定相對應碼字組ck (bk c )各個編碼倉子序列bk c 為可獨特地解碼,且劃分規則γp 為解碼器所已知,則給定K個碼字組ck (bk c )序列而k=0,...,K-1,一編碼倉序列bc 係可獨特地解碼。劃分規則γp 係由LPB機率區間離散{Ik }及與編碼倉而j=0,...,B-1相關聯之LPB機率給定。如此,LPB機率區間離散{Ik }須在解碼器端知曉,及針對各個編碼倉而j=0,...,B-1之LPB機率須以相同方式在編碼器及解碼器端導算出。
針對一倉序列之對映γc 至一編碼倉序列c ,各個單一b j 而j=0,...,B-1係藉二元對映轉換。在解碼器端,倉序列可藉二元對映而導算出
而j=0,...,B-1。若針對各倉bj ,LPB值係以相同方式在編碼器及解碼器端導算出,則此等對映()-1 表示相對應編碼器對映之顛倒,因
及因此,一倉b序列轉換γb 成為一編碼倉bc 序列為可顛倒。
最後,發明人研究二進制化b=γb (s)之可逆性,藉此各符碼si 而i=0,...,N-1係對映至一倉序列b i =(s i )。若針對符碼si 二進制化對映分配不同倉序列給字母表Ai 的各個字母,則給定相對應倉序列bi ,符碼si 可獨特地解碼。但此種條件不充分,原因在於倉序列b={b0 ,...bB-1 }的劃分成為相對應於符碼si 之倉序列b1 而i=0,...,N-1為解碼器所未知。當針對各個符碼si ,與字母表Ai 的各個字母相關聯之倉序列形成一前綴碼,及針對各符碼si 而i=0,...,N-1的二進制化對映在解碼器端為已知時,給定充分條件。
所呈現的熵編碼辦法之獨特解碼能力條件摘述如下:
● 二進制化對映表示前綴碼且為解碼器所已知(以符碼編碼順序)
● 在編碼器及解碼器端以相同方式導算出針對全部倉bj 之機率模型()
● LPB機率區間(0,0.5]之劃分成K個區間Ik 而k=0,...K-1為解碼器所已知
● 針對各個區間Ik 而k=0,...K-1之對映表示獨特可解碼之代碼
後文中,發明人以進一步細節描述編碼器及解碼器之總體設計。發明人的關注集中在編碼方案,其中針對倉之機率模型{bLPB ,pLPB }係在編碼器及解碼器端直接估算,及K個二元編碼器使用章節4.1描述之VNB2VLC對映。各來源符碼s係與一符碼類別cs 相關聯,其決定符碼類別包括其數值範圍。符碼順序及相關聯之符碼類別須藉語法給定,推定於編碼器及解碼器端為已知。
編碼器及解碼器設計實例之方塊圖係例示說明於第17圖。在編碼器端,符碼s係與相關聯之符碼類別cs 饋至二進制化器,其係將各符碼s轉換成倉序列b s =(s )。
所使用的二進制方案係基於符碼類別cs 測定。此外,二進制化器關聯一倉序列s 之各倉b與機率模型指示cb ,其載明用以編碼倉b之機率模型。機率模型指示cb 可基於符碼類別cs 、倉序列s 內部的目前倉之倉數目、及/或已編碼倉及符碼值而導算出。
機率估算器及分配器維持多個機率模型,其係以成對值{bLPB ,pLPB }為其特徵。其從二進制化器接收倉b及相關聯之機率模型指示cb ,及分別地前傳指示的機率模型之LPB值bLPB 及LPB機率pLPB 給編碼倉導算器及機率量化器。隨後相對應機率模型{bLPB ,pLPB }係使用所接收的倉b之值更新。
編碼倉導算器分別地從二進制化器及機率估算器及分配器接收倉b及相關聯之LPB值bLPB ,及發送編碼倉bc ,其係藉b c =bb LPB 而導算出給機率量化器。該機率量化器前傳各個編碼倉bc 至K個二元編碼器中之一者。其含有有關LPB機率區間量化{Ik }之資訊。與一編碼倉bc 相關聯且係接收自機率估算器及分配器的LPB機率pLPB 係與區間邊界{pk }作比較,及導算出機率區間指數k,對此p LPB I k 。然後,編碼倉bc 係前傳至相關聯之二元編碼器。
K個二元編碼器各自係由一倉緩衝器及一倉編碼器組成。倉緩衝器從機率量化器接收編碼倉bc ,及以編碼順序儲存。倉編碼器具特定VNB2VLC對映,且比較倉緩衝器內之倉序列與碼字組相關聯之倉序列。若倉緩衝器內之倉序列係等於該等倉序列中之一者,則倉編碼器從倉緩衝器移出該倉序列{bc }及將相關聯之碼字組({bc })寫至相對應碼字組串流。針對倉緩衝器為非空白的全部二元編碼器,在一符碼序列之編碼程序結束時,結束碼字組係如章節4.3所述寫入。
K個所得碼字組串流可分開地傳輸、封包化、或儲存,或者可交插(參考章節6.2)用於傳輸或儲存目的。
在解碼器端,由一倉解碼器及一倉緩衝器所組成之K個二元解碼器各自接收一個碼字組串流。倉解碼器從碼字組串流讀取碼字組({bc }),且將相關聯之倉序列{bc }以編碼順序插入倉緩衝器。
符碼序列之解碼係由潛在語法所驅策。請求一符碼s係連同符碼類別cs 發送至二進制化器。二進制化器將此等符碼請求轉換成倉之請求。請求一倉係與機率模型指示cb 相關聯,其係與編碼器之相同方式導算出,及發送至機率估算器及分配器。機率估算器及分配器係以類似其在編碼器端的對應部分般操作。基於機率模型指示cb ,其識別機率模型,及分別地前傳其LPB值bLPB 及LPB機率pLPB 給編碼倉導算器及機率量化器。
以二元編碼器在編碼器端測定之相同方式,機率量化器基於LPB機率pLPB 而測定K個二元解碼器中之一者,從相對應倉緩衝器以編碼順序移出第一編碼倉bc ,及前傳至倉導算器。倉導算器從機率量化器及機率估算器及分配器分別地接收編碼倉bc 及相關聯之LPB值bLPB ,及測定倉值b =b c b LPB 。至於對二進制化器發送之倉請求的最後回應,倉導算器發送解碼倉值b至二進制化器及機率估算器及分配器。
於機率估算器及分配器中,解碼倉b值係用來以編碼器端之相同方式更新機率模型{bLPB ,pLPB },其係藉相關聯之值cb 擇定。最後,二進制化器將所接收的倉b加至已經針對符碼請求而接收之倉序列s ,及比較此一倉序列s 與藉二進制化方案而與符碼值相關聯之倉序列。若該倉序列s 匹配該等倉序列中之一者,則相對應解碼符碼s係輸出作為對符碼請求的最終回應。否則,二進制化器發送額外倉請求直至符碼s解碼為止。
若未接收到由語法所驅策的額外符碼請求,則結束符碼序列之解碼。在熵解碼程序結束時可能含在倉緩衝器的編碼倉bc (由於結束碼字組結果)被捨棄。
摘述前述實施例,同樣表示熵編碼之新穎辦法。描述一符碼序列對映至一位元串流及反對映。各個符碼攜帶同時在編碼器及解碼器知曉的相關聯之參數。熵編解碼器含有多個先進先出(FIFO)緩衝器,其各自係分配給與符碼相關聯之參數子集。針對給定之符碼參數,編碼器分配符碼給相對應FIFO緩衝器。因編碼器分配規則係在解碼器端已知,故解碼器係從編碼器已經分配符碼的FIFO緩衝器讀取。
參數分配給一符碼之一個實例為其機率之估值。機率估值可以是給定者或在編碼器及解碼器同時進行而從一量測值導算出。一特定FIFO緩衝器含有符碼具估算得之機率值落入選用的機率子集,故可改良熵編碼。改良可能關係位元率減少、複雜度減低、延遲減少或誤差彈性。
參數分配給符碼之另一個實例為符碼機率估值及另一參數包括下列中之一者或多者:符碼之語義、其重要性、其位置(時間、空間、體積等)、其通道碼保護。一特定FIFO緩衝器含有與選用之機率子集相關之符碼,故可改良熵編碼,及達成有關其它參數之效果。
已經就壓縮資料而相同籠統地描述若干實施例後,描述實施例,據此,前述編碼係用於壓縮視訊資料,亦即採用於視訊及/或圖像編碼。
實例1
第一實施例係有關於圖像及視訊編碼器及解碼器的編碼變換係數,及描述可特別地採用作為在視訊編碼領域用以編碼係數之新穎有效方法,例如置換CABAC在H.264/AVC之相對應部分。
在視訊編碼之較早基於混成區塊標準,諸如MPEG-2、H.263及MPEG-4,量化變換係數(層級)之區塊係藉已界定之掃描處理程序而對映至一向量,其係藉使用回合長度編碼及隨後之對映而經編碼成為具有可變長度之碼字組。
於MPEG-2,具有可變長度之碼字組係與二維事件(RUN、LEVEL)相關聯,其中LEVEL表示未經量化成為零之(顯著)變換係數之量化值;回合長度RUN指示量化成為零之接續(非有效)變換係數之數目,其在變換係數向量中係緊接在本有效變換係數前方。此外,針對二特別事件EOB及ESCAPE定義具可變長度之碼字組。雖然EOB事件指示區塊中不再有有效變換係數,但ESCAPE事件傳訊既有事件(RUN、LEVEL)無法藉具有可變長度之經界定的碼字組之字母表表示。於此種情況下,符碼RUN及LEVEL係藉固定長度碼字組編碼。
於較新的編碼標準H.263及MPEG-4,具有可變長度之碼字組之關聯性係基於三維事件(LAST、RUN、LEVEL)進行,其中二元符碼LAST指示本有效變換係數是否為在區塊內部的最末有效係數,或是否有其它有效變換係數接在其。藉由使用此等三維事件,無需額外EOB事件;EXCAPE事件係以類似MPEG之方式使用,其中除RUN及LEVEL外,二元符碼LAST係經編碼。
在MPEG-2、H.263及MPEG-4實現的變換係數編碼具有下列缺點:
-針對各個編碼事件,只有一個具整數長度之碼字組與該編碼事件相關聯,無法進行具有機率大於0.5之有效事件編碼。
-針對在一區塊的全部變換係數,使用固定表來將編碼事件變換至具有可變長度之碼字組並未考慮與位置或頻率相關之符碼統計數字。
-調整適應於實際上存在的符碼統計數字為不可能。
-未使用存在的跨符碼冗餘。
H.263之Annex E標準載明選擇性非適應性算術編碼,其中使用不同預定模型機率分布,
-針對第一、第二及第三事件各有一個(LAST、RUN、LEVEL)/ESCAPE各有一者,
-針對一區塊變換係數之全部接續事件(LAST、RUN、LEVEL)/ESCAPE有另一者,
-以及針對符碼LAST、RUN及LEVEL各有一者,其係在ESCAPE事件後編碼。
由於下述理由故,藉此選擇性算術編碼,編碼效率並無可察覺地增加:
-具有跨整數長度之碼字組可與編碼事件相關聯之算術編碼的優點幾乎不會對藉由使用形式(LAST、RUN、LEVEL)之組合事件之編碼效率造成任何影響。
-使用不同機率分布之優點被下述事實所消弭:調整適應於實際存在的符碼統計數字為不可能。
於H.264/AVC,基於具有針對編碼變換係數之可變長度的碼字組,脈絡適應性方法係載明為熵編碼之標準方法。此處,一變換係數區塊之編碼係由下列特性決定:
-在一區塊內部之有效係數數目及在變換係數向量結束時接續其後係數量化成為1之數目二者係由符碼COEFF_TOKEN決定。依據區塊類型及針對鄰近區塊已經編碼/解碼之符碼COEFF_TOKEN,選擇五個經界定的碼字組表中之一者用於編碼。
-雖然針對在係數向量結束時量化成為1之變換係數,只有單一位元係經移轉來載明符號,但其餘有效變換係數之值(層級)之編碼係利用組合型前綴後綴碼字組而以反掃描順序進行。
-若有效變換係數數目係小於相對應區塊之變換係數數目,則符碼TOTAL_ZERO將被編碼,其指示變換係數量化成為零之數目,其於係數向量中係在最末有效係數前方。為此,載明18碼字組表其係依據有效係數數目及區塊類型而切換。
-在有效係數前方量化成為零(非有效)係數之回合長度(RUN)係以反掃描順序針對各個有效變換係數編碼,只要RUN之已編碼和係小於TOTAL_ZEROS即可。取決於TOTAL_ZEROS及已編碼/解碼之RUN,可在七個碼字組表間進行切換。
雖然藉由基於脈絡切換碼字組表之此種所謂的CAVLC方法(CAVLC:脈絡-適應性可變長度編碼),允許比較於MPEG-2、H.263及MPEG-4載明之方法,顯著更有效的變換係數編碼,基本上有下列缺點:
-不同碼字組表間切換係依據已編/解碼之符碼進行,但碼字組表無法調整成為實際符碼統計學。
-藉由使用具有可變長度之碼字組具有大於0.5之符碼機率之事件無法有效地編碼。此項限制特別妨礙具有較小值範圍之編碼符碼,藉此適當脈絡之組成可能用在不同模型機率分布間之切換。
避免針對基於區塊之圖像及視訊編碼器的編碼變換係數之眾所周知方法的缺點之一項可能的解決之道乃適應性熵編碼與使用跨符碼冗餘之適當脈絡產生之組合。
與前述編碼方案作比較,其次敘述之應用例表示用以在編碼圖像及/或視訊編碼器及解碼器中編碼變換係數之方案,該方案去除前述缺點,及特別,將編碼所需計算量維持為小。藉由將此種編碼組合就第1至17圖之實施例所述熵編碼方案,獲得極為有效的編碼效率結果。
依據第一構面,下述編碼方案提供一種用以在編碼圖像及/或視訊編碼器及解碼器中編碼變換係數之方法,其中對含有效變換係數之(視訊)圖像之區塊,針對各區塊,變換係數之編碼係以下述方式進行使得,
-於掃描過程中,區塊中的有效變換係數之位置及隨後,
-於反掃描順序亦即始於在該區塊內的最末有效變換係數,有效變換係數之值(層級)係經測定及編碼。
一個較佳實施例之特徵在於除了該區塊之最末變換係數外,該區塊之各個有效變換係數係以1-位元符碼為其特徵。
針對各個有效變換係數之符號係以1-位元符碼(SIGN)指示及幅值係以二元編碼符碼(ABS)指示時也優異。
於一個較佳實施例中,含有效變換係數之區塊係以1-位元符碼CBP4連結其它語法元素諸如CBP或巨集區塊模式為其特徵。
該方法特別優異之處在於藉由針對一區塊之各係數移轉1-位元符碼SIG,及針對一區塊之各個有效係數移轉1-位元符碼LAST,編碼顯著性對映,其中移轉係以掃描順序進行,SIG用以識別有效係數,及LAST指示在該區塊是否有額外有效變換係數。
於另一個較佳實施例中,針對1-位元符碼CBP4、針對顯著性對映及/或針對係數幅值之模型化係以脈絡相依性方式進行。如此,具有可相媲美統計數字之變換係數區塊類型係摘述為區塊類別。
也有優點在本發明方法之特定實施例中,針對一區塊之最末掃描位置並未移轉顯著性資訊(SIG、LAST)。
於一較佳實施例中,幅值(ABS)係以一元二進制之符碼指示或藉具有前綴部分及後綴部分之符碼指示,其中該前綴部分係由1所組成,及後綴部分係以第0次冪exp-golomb碼編碼。
依據第二構面,本實施例提供一種配置形成至少一個處理器及/或晶片使得可執行用以在圖像及/或視訊編碼器及解碼器中編碼變換係數之方法,其中針對含有效變換係數之(視訊)圖像區塊,變換係數之編碼係以前述方式進行。
依據第三構面,本應用例提供一種電腦程式,在已經載入電腦之記憶體後,允許電腦執行用以在圖像及/或視訊編碼器及解碼器中編碼變換係數之方法,其中針對含有效變換係數之(視訊)圖像區塊,變換係數之編碼係以前述方式進行。
此等電腦程式例如(收費或無償、可自由存取或藉通行碼保護)可於資料或通訊網路提供用以下載。藉此方式提供的電腦程式然後可由一種方法運用,其中如申請專利範圍第11項之電腦程式係從網路下載用以例如從網際網路轉移給連結至該網路之資料處理設備。
依據第四構面,本實施例提供一種其上儲存一程式之電腦可讀取儲存媒體,該程式在已經載入電腦之記憶體後,允許電腦執行用以在圖像及/或視訊編碼器及解碼器中編碼變換係數之方法,其中針對含有效變換係數之(視訊)圖像區塊,變換係數之編碼係以前述方式進行。
用以編碼變換係數之方法特別係以下列特性為其特徵:
-二維變換係數區塊係藉掃描程序而對映至一維向量。
-在眾所周知之方法使用的EOB符碼、LAST符碼或係數計數器(有效係數數目)以及RUN(呈掃描順序之非有效係數數目)係由1-位元符碼CBP4及顯著性對映所置換。
-層級(有效係數幅值)係以反掃描順序編碼。
-脈絡模型化係以新穎方式進行。
第18圖例示說明編碼方法。針對各區塊變換係數,除非更高順位語法元素(CBP或巨集區塊模式)已指示所考慮之區塊不含任何有效變換係數,否則首先轉移1-位元符碼CBP4。若在該區塊內無有效係數,則CBP4符碼將為零。如為1,則將編碼載明顯位置(於掃描順序)之顯著性對映。隨後,以反掃描順序轉移有效係數之幅值及符號。編碼處理程序之詳細說明將示於如下1。隨後,二元熵編碼之脈絡模型將描述於2,倉之熵編碼係以前文摘述用於熵編碼之任何實施例進行。
1. 變換係數之編碼說明 1.1 掃描變換係數
各區塊之變換係數係利用掃描程序而對映至向量(諸如鋸齒形掃描)。
1.2 CBP4符碼
CBP4為1-位元符碼,指示區塊內是否有有效變換係數(變換係數不等於零)。若CBP4符碼為零,則針對相對應區塊不再有資訊移轉。
1.3 顯著性對映
若CBP4符碼指示相對應區塊含有有效係數,則將編碼顯著性對映。此係以掃描順序針對各係數移轉1-位元符碼(SIG)進行。若相對應之顯著性符碼為1(有效係數),則將移轉另一個1-位元符碼(LAST)。此一符碼指示無論本有效係數是否為一區塊的最末有效係數或是否接續額外有效係數。第19圖顯示針對有效係數編碼所述方法之二實例。顯著性資訊(SIG、LAST)未曾移轉給一區塊之最末掃描位置。若顯著性對映之移轉尚未藉1之LAST符碼結束,則顯然在最末掃描位置之係數為顯著(參考第19圖之黃色標記位置)。
1.4 層級資訊
在一區塊內部之有效變換係數位置係由顯著性對映所清晰載明。係數(層級)之精準值編碼係藉二編碼符碼進行:ABS(係數幅值)及SIGN(係數符號)。雖然SIGN表示1-位元符碼,但依據第20圖之二進制化係用於編碼係數幅值(ABS)。針對在區間[1;14]之係數幅值,此種二進制化係對應於一元二進制化。大於14之係數幅值的二進制化係由14個1之前綴部分及表示符碼之第0次冪exp-golomb碼之後綴部分組成。二進制化並不包括傳訊0之係數幅值(ABS)之表示型態,原因在於有效係數(不等於零之係數)經常性具有大於或等於1之幅值(ABS)。
針對大於14之係數幅值,由一前綴部分及第0次冪exp-golomb碼之後綴部分所形成的二進制化具有優點為:具有符碼機率0.5之特別非適應性脈絡可使用而未犧牲針對後綴部分之二元決策之編碼效率,藉此可減少編碼及解碼之計算量。
層級係以反掃描順序編碼,始於區塊內部最末有效係數;如此允許形成適合用於二元熵編碼之脈絡。
2. 脈絡模型化
前述顯著性對映及數值二進制化結果導致符碼序列其係藉前述任一實施例所解/編碼,其中分配器係基於與脈絡相關聯之機率而選擇部分位元串流之參數,而脈絡又係如下摘述而決定。
一般而言,當考慮一圖像及/或視訊編碼系統時,不同型變換係數區塊係經區別。如此,例如有12型變換係數區塊,其具有在H.264/AVC標準之本最終稿本國際標準之不同統計數字(第21圖之表左欄)。針對大部分圖像序列及編碼狀況,部分統計數字極其類似。為了維持使用的脈絡數目少,如此確保快速調適欲編碼之圖像序列統計數字,在H.264/AVC標準中的區塊類型例如可歸類為五大類(參考第21圖之表右欄)。類似的分類可能用於其它圖像及/或視訊編碼系統。於H.264/AVC標準之情況下,五類個別脈絡量係用於符碼CBP4、SIG、LAST及ABS。
2.1 針對CBP4符碼之脈絡模型化
用於編碼1-位元符碼CBP4,四個不同脈絡用於個別變換區塊類別(參考第21圖)。欲編碼之區塊C之脈絡數目係藉下式測定
ctx_number_cbp4(C)=CBP4(A)+2xCBP4(B)
其中考慮為與相同區塊類型相關聯之區塊C之該等鄰近區塊(左及上)標示以A及B。有關H.264/AVC標準,針對此條件區分如下6型區塊:亮度-DC、亮度-AC、彩度-U-DC、彩度-U-AC、彩度-V-DC、及彩度-V-AC。若變換係數之相關區塊X(A或B)不存在於鄰近巨集區塊(換言之,例如若本區塊係以INTRA16x16模式編碼,但鄰近區塊已經以INTER模式移轉),針對鄰近區塊X,CBP4(X)係設定為零。若鄰近區塊X(A或B)係在圖像區外側,或屬另一截割片,則相對應值CBP4(X)係由內設值所置換。內設值1係用於INTRA-編碼區塊,而內設值0用於INTER-編碼區塊。
2.2 用以編碼顯著性對映之脈絡模型化
用於編碼顯著性對映,依據區塊類別各自使用max_koeff-1不同脈絡(參考第21圖)用以編碼符碼SIG及LAST。max_koeff如此標示針對相對應區塊類別(用於H.264/AVC,參考第21圖)之變換係數數目。脈絡數目經常性地由所考慮的係數之相對應掃描位置指示。已經掃描作為第i係數之係數koeff[i]之脈絡數目如此導致:
ctx_number_sig(koeff[i])=ctx_number_last(koeff[i])=i.
2*max_koeff-2脈絡係針對區塊類型之各類別而用以編碼顯著性對映。
2.3 用以編碼係數幅值之脈絡模型化
第20圖例示說明之二進制化係用以編碼有效變換係數之幅值。二不同脈絡量係用於每個區塊類別,亦即一者用於編碼第一二元決策倉=1(第20圖中標為橙色),而另一者用於編碼二元決策倉=2.14圖中標為綠色)。如此相關聯之脈絡數目如下:
ctx_number_abs_lbin=(koeff with ABS>1 coded?4:max(3,number of coded coefficients with ABS=1)),
ctx_number_abs_rbins=max(4,number of coded coefficients with ABS>1)).
變換係數幅值係以反掃描順序移轉。第一二元決策之脈絡係藉具有ABS=1之幅值的已移轉(以反掃描順序)之係數數目決定。若多於三個具有幅值ABS=1之係數已經移轉,則將經常性選用脈絡值3。一旦具有幅值ABS>1之係數已經移轉,則脈絡4將用於區塊內部全部其餘有效係數。
全部具有倉=2.14之二元決策係使用一個且同一個脈絡編碼。如此,脈絡值係由具有幅值ABS>1之已編碼(以反掃描順序)係數決定,其中最大脈絡數目限於4。用於舉例說明,當編碼有效變換係數之幅值ABS時,脈絡選擇之二實例係例示說明於第23圖。針對係數幅低及針對符號SIGN用以編碼二元決策倉>14,使用個別非適應性脈絡,而符碼機率P0 =P1 =0.5。
如此,就第18至23圖所述應用實施例係有關在圖像及/或視訊編碼器及解碼器中編碼變換係數,其中針對含有效變換係數之(視訊)圖像區塊,變換係數之編碼係以下述方式進行使得針對各區塊,於掃描過程中,在區塊之有效變換係數位置及隨後,以反掃描順序,亦即始於區塊內部最末有效變換係數,有效變換係數之值(層級)經測定及編碼。除了區塊之最末有效變換係數外,區塊之有效變換係數係以1-位元符碼為其特徵。又,針對各個有效變換係數,符號可由1-位元符碼(SIGN)指示,及幅值係由二元編碼符碼(ABS)指示。幅值可由呈一元二進制的符碼(ABS)指示,或由具有前綴部分及後綴部分之符碼(ABS)指示,其中前綴部分係由1所組成,而後綴部分係以第0次冪exp-golomb碼編碼。含有效變換係數之區塊可以1-位元符碼連結額外語法元素諸如CBP或巨集區塊模式為其特徵。又,藉由針對一區塊之各係數移轉1-位元符碼(SIG)及針對一區塊之各有效係數移轉1-位元符碼(LAST),可編碼顯著性對映,其中移轉係以掃描順序進行,(SIG)用來識別有效係數,及(LAST)指示區塊中是否有額外有效變換係數。針對1-位元符碼CBP4、針對編碼顯著性對映及/或針對編碼係數幅度的模型化可以脈絡相依性方式進行。並無任何顯著性資訊(SIG、LAST)可針對一區塊的最末掃描位置移轉。具有可相媲美之統計數字的變換係數之區塊類型可摘述成區塊類別。
以另一方式陳述,變換係數層級之編碼可分裂成三個步驟。第一步驟中,針對各變換區塊傳輸二元語法元素coded_block_flag,其傳訊該變換區塊是否含有有效變換係數層級(亦即非為零之變換係數)。若此語法元素指示有效變換係數層級為存在,則二元值顯著性對映經編碼,其載明哪一個變換係數層級具有非零值。及然後,於反掃描順序中,非零變換係數層級經編碼。顯著性對映編碼如下。針對呈掃描順序之各個係數,二元語法元素significant_coeff_flag經編碼,其載明相對應變換係數層級是否不等於零。若significant_coeff_flag倉係等於1,亦即若非零變換係數層級存在於此掃描位置,則編碼額外二元語法元素last_significant_coeff_flag。此倉指示該目前有效變換係數層級是否為該區塊內部的最末有效變換係數,或在掃描順序中是否有額外有效變換係數層級。若last_significant_coeff_flag指示並無其它有效變換係數接在其後,則無額外語法元素係經編碼用以載明區塊之顯著性對映。次一步驟中,有效變換係數層級值係經編碼,其在區塊內部位置已經由顯著性對映決定。有效變換係數層級值係藉使用如下三個語法元素而以反掃描順序編碼。二元語法元素coeff_abs_greater_one指示有效變換係數層級之絕對值是否大於1。若二元語法元素coeff_abs_greater_one指示絕對值係大於1,則發送額外語法元素coeff_abs_level_minus_one,其係載明有效變換係數層級之絕對值減1。最後,針對各個有效變換係數層級,編碼載明變換係數值符號的二元語法元素coeff_sign_flag。再度須注意與顯著性對映相關之語法元素係以掃描順序編碼,而與變換係數層級之實際值相關之語法元素係以反掃描順序編碼,而允許使用更適當的脈絡模型。
於H.264之CABAC熵編碼中,針對變換係數層級之全部語法元素係使用二元機率模型編碼。非二元語法元素coeff_abs_level_minus_one首先經二進制化,亦即其被對映至一二元決策(倉)序列,而此等倉係循序編碼。二元語法元素significant_coeff_flag、last_significant_coeff_flag、coeff_abs_greater_one、及coeff_sign_flag係經直接編碼。各個編碼倉(包括二元語法元素)係與脈絡相關聯。一脈絡表示一類編碼倉之機率模型。針對兩個可能倉值中之一者,與機率相關之量測值係基於已經以相對應脈絡編碼之倉值,而針對各脈絡估算。針對與變換編碼相關之若干倉,用以編碼之脈絡係基於已傳輸之語法元素或基於在一區塊內部位置而選擇。
顯著性對映載明有關掃描位置之顯著性(變換係數層級係非為零)之資訊。於H.264之CABAC熵編碼中,針對4x4之區塊大小,分開脈絡係用於針對編碼二元語法元素significant_coeff_flag及last_significant_coeff_flag之各掃描位置,此處針對一掃描位置之significant_coeff_flag及last_significant_coeff_flag係使用不同脈絡。針對8x8區塊,相同脈絡模型用於四個接續掃描位置,結果導致針對significant_coeff_flag之16脈絡模型及針對last_significant_coeff_flag之額外16脈絡模型。
於編碼顯著性對映後,區塊係以反掃描順序處理。若一掃描位置為顯著,亦即該係數係異於零,則傳輸二元語法元素coeff_abs_greater_one。最初,針對coeff_abs_greater-one語法元素選擇相對應脈絡模型集合中之第二脈絡模型。若在區塊內部之任何coeff_abs_greater_one語法元素之編碼值係等於1(亦即絕對係數係大於2),脈絡模型化切換返回集合之第一脈絡模型。否則(在區塊內部之全部coeff_abs_greater_one編碼值為零,及相對應絕對係數層級係等於1),脈絡模型係依據已經在所考慮區塊之反掃描中編碼/解碼之等於零的coeff_abs_greater_one語法元素數目而擇定。針對語法元素coeff_abs_greater_one之脈絡模型的選擇可以下式摘述,此處目前脈絡模型指數Ct+1 係基於前一個脈絡模型指數Ct 及先前已編碼語法元素coeff_abs_greater_one值(其在式中係以bint 表示)而擇定。針對區塊內的第一語法元素coeff_abs_greater_one,脈絡模型指數係設定為等於Ct =1。
用以編碼絕對變換係數層級之第二語法元素coeff_abs_level_minus_one係唯有在針對相同掃描位置的coeff_abs_greater_one語法元素係等於1時才編碼。非二元語法元素coeff_abs_level_minus_one係二進制化成為一倉序列,及針對此二進制化之第一倉,脈絡模型指數之選擇容後詳述。二進制化之其餘倉係以固定脈絡編碼。二進制化之第一倉之脈絡選擇如下。針對第一coeff_abs_level_minus_one語法元素,針對coeff_abs-level_minus_one語法元素之第一倉的脈絡模型集合之第一脈絡模型係經擇定,相對應脈絡模型指數係設定為等於Ct =0。針對coeff_abs_level_minus_one語法元素之各個額外第一倉,脈絡模型化切換成集合中的下一個脈絡模型,此處集合中的脈絡模型數目限於5。脈絡模型之選擇可藉下式表示,此處目前脈絡模型指數Ct+1 係基於前一個脈絡模型指數Ct 而擇定。如前述,針對在一區塊內部的第一語法元素coeff_abs_level_minus_one,脈絡模型指數係設定為等於Ct =0。注意,用於語法元素coeff_abs_greater_one及coeff_abs_level_minus_one之脈絡模型集合為不同。
C t +1 (C t )=min(C t +1,4)
當組合剛才描述之應用實施例與稍早敘述的熵編碼實施例時,在已經將機率量化成為機率部分位元串流之較小集合後,分配給個別脈絡之機率例如可用作為或參數中之至少一者用於諸如如前述,用以從多個部分位元串流路徑中選擇熵編碼器/熵解碼器。換言之,循序定義顯著性對映之符碼序列的重建與隨後不等於零之變換係數值的編碼可使用依據前述實施例中之任一者之解碼器執行。
實例2
依據針對前文摘述之熵編碼實施例之應用實例2,可達成有較高壓縮效率之改良式熵編碼設計。
一種用於熵編碼一資訊符碼之符碼序列來獲得經熵編碼之資訊符碼之裝置,該符碼序列具有一起始符碼,包含:一熵編碼器,其係用以基於該符碼序列之一符碼(該符碼為一符碼集合之一部分)之機率資訊而熵編碼該符碼來產生經熵編碼之資訊符碼;一脈絡模型化器,其係用以基於一符碼脈絡而針對該符碼導算出機率資訊,該脈絡包括在處理符碼前藉熵編碼器處理之一或多個脈絡符碼,該脈絡模型化器包括一初始化器,其係用以藉決定及提供初始化機率資訊給熵編碼器而初始化該脈絡模型化器,該初始化機率資訊欲由熵編碼器用來處理起始符碼,其中該初始化器可操作來基於與起始符碼相關之符碼統計數字估值而測定初始化機率資訊,使得初始化機率分布係與針對符碼集合之全部符碼的等-可能性分布不同。熵編碼器可依據前述任一實施例而實施。
一種用以熵解碼經熵編碼之資訊符碼之解碼器,該經熵編碼之資訊符碼係基於該符碼之機率資訊而藉熵編碼該符碼序列之一符碼而產生,該符碼係屬一符碼集合之一部分,其中該符碼之機率資訊係基於符碼脈絡而導算出,該脈絡包括一或多個稍早處理的脈絡符碼,及其中針對熵編碼該起始符碼,使用初始化機率資訊,初始化機率資訊係基於與一起始符碼相關之符碼統計數字之估算,且係經測定使得初始化機率分布係與針對符碼集合之全部符碼的等-可能性分布不同,該解碼器包含:一熵解碼器,其係用以將經熵編碼之資訊符碼進行熵解碼來獲得具有起始符碼之該等資訊符碼之符碼序列;及一脈絡模型化器,其係用以獲得熵編碼資訊符碼序列時所使用的機率資訊,該脈絡模型化器包括一初始化器,其係用以獲得熵編碼起始符碼時所使用的初始化機率資訊。熵解碼器可依據前述任一實施例而實施。
藉由初始化脈絡模型化器,使得初始化機率分布係與針對符碼集合之全部符碼的等-可能性分布不同,可獲得改良壓縮效率。特別初始化器可操作來基於與起始符碼相關之符碼統計數字之估算而決定至少用在符碼序列之起始符碼的初始化機率資訊,使得該初始化機率資訊係與針對符碼集合之全部符碼的等-可能性分布不同。
特別,此種「智慧型」初始化可優異地用以編碼視訊材料而有來自不同視訊來源之寬廣多變內容。於本發明之較佳實施例中,發現初始化機率資訊可基於用來量化欲編碼資訊之量化參數而導算出。於視訊編碼應用,及特別於關聯H.264/AVC視訊壓縮標準之視訊編碼應用中,欲熵編碼之資訊符碼之符碼序列係從變換殘差值導算出,其例如係藉時間/空間跨/內圖框預測模式獲得。
此外,智慧型初始化可優異地基於針對視訊來源材料之先前知識。特別,淦現藉由界定若干初始化值集合可加強壓縮效率。針對所謂I-或SI-截割片,例如單一初始化值集合即足。針對時間上預測編碼之截割片,諸如所謂P-、SP-或B-截割片,可定義多於一個且較佳三個不同初始化值集合針對此等截割片,所選初始化值集合係欲藉在編碼器輸出位元串流中之某個語法元素載明,使得處理編碼輸出位元串流的解碼器可正確地初始化其本身。較佳,此一語法元素係傳輸作為截割片標頭之一部分。現在,編碼器具有針對各個截割片之符碼統計數字為最適合的初始化值集合之選擇自由度。
較佳,藉由檢測欲藉熵編碼器處理的符碼序列係屬哪一資料型或次資料型而初始化值進一步分集。此種某一型係藉脈絡索引變數而指示。此一脈絡索引變數較佳係設計成其可傳訊(由此可導算出相對應數目之初始化機率資訊的)399不同模型中之一者,使得針對大量不同符碼序列,其各自具有一起始符碼,可決定最佳適應性初始化。
發現欲熵編碼之符碼具有歸屬的不同脈絡模型。較佳,數個符碼或位元欲使用多個脈絡模型中之一個脈絡模型編碼。此等數個符碼或位元形成符碼序列,其中該符碼序列之第一個欲編碼符碼為起始符碼,該符碼序列具有歸屬的不同脈絡模型。脈絡模型可包括一個或甚至多於一個機率模型。於一脈絡模型具有多於一個機率模型之情況下,針對機率模型之各項改變,將進行新的初始化。
後文中,參考第24圖用以例示說明熵編碼裝置及熵編碼方法之結構及功能。更明確言之,第24圖顯示一種用以熵編碼資訊符碼之符碼序列來獲得經熵編碼之資訊符碼之裝置,其中該符碼序列具有一起始符碼。符碼序列係輸入熵編碼器1112之符碼序列輸入端。經熵編碼之資訊符碼係在熵編碼器輸出端1114輸出,其係連結至熵編碼器1112。熵編碼器可操作用以基於符碼之機率資訊而熵編碼該符碼序列之一符碼。機率資訊係透過機率資訊輸入端16而輸入熵編碼器1112。因符碼係屬特定符碼集合之一部分,於二元情況下,只包括兩個不同符碼,亦即二元「0」及二元「1」,其係足夠只對該符碼集合之一個符碼提供機率資訊。依據本發明,較佳係提供最小可能符碼(LPS)之機率資訊,原因在於此一數目當然係小於最大可能符碼之機率。此外,透過機率資訊輸入端16而提供給熵編碼器1112之機率資訊包括最大可能符碼,由此易導算得最小可能符碼值,及反之亦然。
編碼器進一步包括用以基於符碼脈絡而導算出符碼之機率資訊之脈絡模型化器1118,該脈絡包括藉脈絡輸入端1120將一或多個脈絡符碼輸入脈絡模型化器,該脈絡符碼在處理實際符碼前已經藉熵編碼器1112處理。
脈絡模型化器1118包括一初始化器1120用來當初始化機率資訊由熵編碼器1112用來處理起始符碼(亦即符碼序列之符碼,對此不存在有脈絡符碼,亦即在起始符碼之前,藉熵編碼器1112已經處理的符碼)時,藉由測定及提供初始化機率資訊給熵編碼器1112而初始化脈絡模型化器。如此表示因熵編碼器方案為串列方案,故起始符碼為符碼序列之第一符碼。
初始化器可操作來基於與起始符碼相關之符碼統計數字之估算而決定初始化機率資訊,使得針對起始符碼所屬該符碼集合的全部符碼,初始化機率係異於等-可能分布。
因脈絡模型化器及因此,熵編碼器係基於針對欲藉熵編碼器所編碼之符碼序列預期符碼統計數字之估算,而以智慧型方式初始化,故熵編碼裝置顯示改良式起始效能。換言之,熵編碼裝置針對起始符碼之表現類似該起始符碼並非一序列的第一符碼,反而為一序列之中間符碼。因此,初始化結果導致熵編碼裝置針對起始符碼的預調適。與直捷辦法相反,其中初始化機率資訊係設定為等-可能分布,該熵編碼器係即刻經脈絡-預調適。於直捷情況下,脈絡調適需要數個步驟,對應於形成該等脈絡符碼之先前預編碼符碼之數目。
業已發現本發明之脈絡模型化器及熵編碼器的初始化未經任何額外動作,結果導致單純藉由提供智慧型初始化機率資訊,比較直捷等-可能分布等-可能分布,高達3%之位元率節省。
第25圖顯示第24圖之初始化器1020之較佳實施例。初始化器1120包括用以從截割片標頭取回符碼序列之量化參數之一取回器。此外,截割片標頭也輸入檢測器用以檢測截割片資料之資料類型。此外,提供一種用以檢測截割片資料之亞資料類型之一檢測器1204。容後詳述,存取不同初始化表一方面係利用脈絡索引控制,另一方面,係藉穌初始化索引控制。依據截割片資料只存在有一個初始化表帶有針對I-及SI-截割片之某些脈絡索引。針對P-及B-截割片,存在有至少二且較佳3初始化表,其再度係藉脈絡索引定址,其中實際使用之至少二表中之該表係藉初始化索引定址。
一方面連結至取回器1200,而另一方面,係連結至檢測器1204者為計算器1206,其可操作來基於初始化機率計算資訊,該初始化機率可以是實際初始化機率,或依據較佳實施例可以是機率態索引,亦即述及包括針對最小可能符碼之機率資訊之初始化機率資訊。本發明人發現用以量化截割片資料之量化參數所得初始化機率之線性相依性,結果導致改良之壓縮效率,亦即導致近最佳初始化。因此,第25圖之計算器1206係操作來施加線性計算,其中參數m指示線性相依性梯度,而另一初始化參數亦即n指示y軸偏位。第25圖中藉計算器1206處理的基本方程式於方塊206指示為
m x QP+n,
其中QP為量化參數,而m及n為取自藉某個脈絡索引定址之不同初始化表之初始化參數。
於一較佳實施例中,第25圖之計算器1206執行如第26圖指示之步驟序列。於第一步驟中,計算方程式m x截割片QP+n。此處須注意於第26圖之較佳實施例中,m x截割片QP之值F朝右移位4位數。此處須注意當然全部值皆為二元字串。移位4位數係有關在2-互補表示型態中積m x截割片QP之表示型態。然後,移位後之結果加至另一初始化參數n。然後擇定一方面此結果之最小化,另一方面整數值1126。當此種最小化係大於1時,此種最小化係經擇定及分配給輔助變數preCtxState。然後做決定此一輔助變數是否低於或等於63。若此決策獲得是答案,則機率態索引變數pStateIdx係計算為63與輔助變數間之差。此外,判定最高可能符碼(valMPS)值係等於零。但於其它情況下,亦即其中輔助變數係大於63之情況下,機率態索引pStateIdx係計算為一方面輔助變數與64值間之差。此外,最高可能符碼值係設定為1。
須注意機率態索引為參考初始化機率資訊表包括針對最小可能符碼之機率資訊。機率態索引值可定走在機率資訊表中之64個不同機率資訊值。首先計算機率態索引及然後使用該機率態索引定址一表的理由係在於實際熵編碼器核心之改良式設計。當然,藉由適當對映,第26圖所示步驟序列也可直接計算初始化機率資訊。
量化參數SliceQP係用來測定變換係數之量化。參數可呈52值。此等值可排列使量化參數遞增1表示量化階大小增加約12%(增加6表示量化階大小恰增加2之因數)。須注意階大小改變約12%也粗略表示位元率縮減達約12%。
下文中,將參考第27圖顯示本發明之熵解碼器。如熵編/解碼技藝界所已知,熵解碼器需要由編碼器用於個別編碼階所使用的相同機率分布來將所傳輸之區間(自然以二元形式表示)解析成解碼位元,亦即具有起始符碼之資訊符碼序列。為了達成此項目的,本發明之熵解碼器包括一熵解碼器1160及一脈絡模型化器1162,其也包括一初始化器1164。此處可知第27圖所示解碼器之組成係類似第24圖之編碼器。再度,脈絡模型化器1162提供機率資訊,或當考慮該序列之起始符碼時,提供初始化機率資訊。此項資訊係以就第24圖所述相同方式產生,亦即當熵解碼器可操作來處理起始符碼時,藉由決定個別截割片量化參數,藉由決定某個脈絡索引,及藉由決定用以計算初始化機率資訊之相對應初始化參數m、n。此處須注意熵編碼/解碼連鎖乃一種先進先出管線,原因在於在編碼器之符碼序列之起始符碼為欲編碼的第一符碼也且是欲解碼的第一符碼故。因此,可使用第27圖所示熵解碼器之相同初始化程序,已經就第24圖所示熵編碼器做說明。
有關規則脈絡適應模式,脈絡模型化器也執行如就第24圖所述之相同操作步驟。
第24及27圖中,熵編/解碼器可如先前第1至17圖中任一者之指示具體實現。
實例3
於實例3中,敘述前述實施例之若干延伸。
當在欲編碼或解碼下方的機率估算係與使用索引p_state之機率態Pn 相關聯時特別優異。
舉例言之,有N個不同的代表性機率態。對此可給定變遷規則,其中該變遷規則指示基於針對欲編碼或解碼的下一個符碼的目前已編碼或已解碼符碼,使用哪一個新態。若除了目前給定機率態Pn 之指數n之外,出現最小可能符碼(LPS),則當形成一表Next_State_LPS其含有新機率態Pm 之指數m時,若除了目前給定機率態Pn 之指數n之外,出現最高可能符碼(MPS),則當形成一表Next_State_MPS其含有新機率態Pm 之指數m時具有優點。
編碼之一項特別具體實現包括下列步驟:
1. LPS之測定
2. 量化
p=quantize[p_state]
3. 編/解碼
使用p作為部分位元串流選擇參數之編/解碼
4. p_state之調適:
bit 欲解碼/編碼之目前位元
p_state 描述分配給位元之脈絡之目前機率態
valMPS 描述對應於MPS之位元值
又更轉而於機率模型之初始化係依據量化參數SliceQP及預設模型參數m及n執行時為優異,其中SliceQP描述在截割片起點預設的量化參數,及m及n描述模型參數。
當機率模型之初始化包括下列步驟時其亦屬優異:
其中valMPS描述與MPS相對應之位元件,SliceQP描述在截割片起點預設的量化參數,及m及n描述模型參數。
將解釋理論背景之進一步細節:
表協助機率估算
如前文已述,欲編碼之符碼出現機率之估算須儘可能地良好。為了確保適應非靜態來源統計數字,此一估算須在編碼過程中更新。一般而言,尋常方法係用於使用編碼結果之定標頻率計數器操作。若CLPS 及CMPS 標示針對LPS及MPS發生頻率之計數器,則使用此等計數器,可進行估算
及然後熵編/解碼可使用此項機率進行。用於實用目的,方程式(C1)所要求之分割有其缺點。但經常地方使及要求在超過超過總該數器CTotal =CMPS +CLPS 之預定臨界值Cmax 時執行計數器讀數的重新定標。藉適當選擇Cmax ,可列表CTotal 之往復值,故於方程式(C1)要求的分割可藉表存取及藉乘法與移位運算置換。為了也防止此等算術運算,於本發明中,完整表輔助方法係用於機率估算。
為了達成此項目的,在訓練期預選定代表性機率態{P K |0 k <N max },其中態的選擇一方面係取決於欲編碼資料之統計數字,及另一方面,係取決於態之內設最大數目Nmax 之側邊狀況。此外,定義變遷規則,其指示基於目前編碼之符碼,哪一個新態係欲用於欲編碼之下一個符碼。此等變遷規則係以二表形式提供:{Next _State _LPS K |0 k <N max }及{Next _State _MPS K |0 k <N max },其中該等表係針對目前給定機率態之指數n在發生LPS或MPS時,提供新機率態Pm 之指數m。此處須注意針對分別在熵編碼器或解碼器之機率估算,無需要求機率態之明確表列。反而該等態只使用其個別的索引而暗示地定址,如下章節描述。除了變遷規則外,須載明LPS及MPS值在哪個機率態需被顏換。一般而言,只有一個此種優異態可使用其索引p_State識別。
其次,描述取決於編碼位元值,如何執行機率態p_state之更新:
變遷表Next-State_LPS及Next-State_MPS之使用已如前文於章節「表輔助機率估算」中述及。
以一致機率分布編碼
於其中例如欲編碼有符號值之應用中,其機率分布係環繞零而對稱性排列,為了編碼符號資訊,通常假設相等分布。因此項資訊一方面欲嵌在熵編碼位元串流內,而另一方面,對使用表輔助機率估算的相對緊密裝置及針對機率p 0.5之情況的區間分隔不敏感,針對此種特例,提示選擇性地使用特定編碼器/解碼器程序,例示說明如下。
於此特殊情況下,倉之熵編碼係使用機率分布進行,據此全部符碼值皆同等可能。
定址及初始化機率模型
每個機率模型當使用時係以二參數指示:1)索引p_state特徵化LPS之機率態,及2)MPS之值valMPS。二變數各自分別需在完整編碼單元(於環繞一截割片之視訊編碼應用)在編碼或解碼開始時初始化。藉此初始化值可從控制資訊導算出,例如類似(截割片之)量化參數,如下舉例說明:
正向控制初始化程序
模型起始分布之調適的另一可能性係藉下述方法提供。為了保證模型之初始化的更佳調適,於編碼器中,可提供模型之預定起始值之選擇。此等模型可組合成起始分布群組,且可使用索引定址,故在編碼器中,進行一組起始值之適應性選擇,且以索引形式傳輸給解碼器作為頁面資訊。此一方法係稱作為正向控制初始化程序。
實例4
下個實例係有關視訊圖框編碼,及特別係有關基於鄰近語法元素使用脈絡分配之編碼方案。下列應用例提供使用前述實施例之視訊編碼方案,其允許獲得較高壓縮效率。
此項優點係藉編碼表示至少一個視訊圖框之視訊信號達成,至少一個視訊圖框係由圖像樣本組成,圖像樣本係屬在不同時間瞬間拍攝的第一欄位或第二欄位,視訊圖框係經空間劃分成巨集區塊對區,各個巨集區塊對區係與一頂及底巨集區塊相關聯,編碼包含下列步驟:針對各巨集區塊對區之決定其是否屬第一或第二分布型;針對各巨集區塊對區,依據個別巨集區塊對區之分布型,將在個別巨集區塊對區之各個像素樣本分配給個別巨集區塊對區之頂及底巨集區塊中之個別者;及將該視訊信號預編碼成預編碼視訊信號,該預編碼包含預編碼與巨集區塊對區之一目前巨集區塊對區相關聯之頂及底巨集區塊之一目前巨集區塊來獲得目前語法元素之子步驟。隨後,針對目前語法元素,至少基於目前巨集區塊對區係屬第一或第二分布型而決定一鄰近巨集區塊。基於鄰近巨集區塊之預定屬性,將至少二脈絡模型中之一者分配給目前語法元素,其中各脈絡模型係與不同機率估算相關聯。最後,一符碼序列之編碼係依據前述任一實施例進行,而至少一個符碼係有關於語法元素之表示型態。分配器係經組配來基於與分配給個別符碼之脈絡相關聯之機率分布估值,針對個別符碼,決定機率分布估值之量測值。選擇器係據此而選擇個別熵編碼器及個別部分位元串流。
也描述從一編碼位元串流解碼一語法元素。編碼位元串流為預編碼視訊信號之熵編碼版本,該預編碼視訊信號為視訊信號之預編碼版本,視訊信號表示由圖像樣本組成之至少一個視訊圖框,該等圖像樣本屬於在一不同時間瞬間被拍攝之一第一欄位或一第二欄位,該視訊圖框係在空間上被劃分成巨集區塊對區,各個巨集區塊對區係與一頂及一底巨集區塊相關聯,各個巨集區塊對區係為一第一或一第二分布型,其中針對各個巨集區塊對區,在該個別巨集區塊對區內之像素樣本各自係依據該個別巨集區塊對區之分布型而被分配給該個別巨集區塊對區之頂及底巨集區塊中之一個別者,其中該預定語法元素係與該個別巨集區塊對區中之一預定巨集區塊對區之頂及底巨集區塊中之一預定巨集區塊相關聯。該方法包含針對該目前語法元素,至少基於該預定巨集區塊對區係為一第一或一第二分布型而判定一鄰近巨集區塊;基於該鄰近巨集區塊之一預定屬性,分配至少二脈絡模型中之一者給該目前語法元素,其中各脈絡模型係與一不同機率估算相對應;及依據前述任一實施例,重建一符碼序列,其中至少一個符碼係與語法元素之一表示型態有關。分配器係經組配來基於與分配給個別符碼之脈絡相關聯之機率分布估值而測定針對個別符碼之機率分布估值。選擇器係分別地據此而選擇個別熵解碼器及個別部分位元串流。
後文摘述之應用例探討當由於任何理由諸如具有非移動區及移動區之編碼視訊圖框之較佳效率時,第一及第二分布型巨集區塊對區,亦即欄位及圖框編碼巨集區塊對同時用在視訊圖框,亦即使用MBAFF編碼,連續像素樣本區塊間之鄰近關係必須以與考慮各巨集區塊對作為圖框巨集區塊對用於脈絡模型化目的不同方式定義;及當考慮各巨集區塊對為一圖框巨集區塊對時,由一鄰近區塊及一目前區塊所覆蓋區域距離可極大。如此轉而可能降級編碼效率,原因在於選擇非排列接近目前區塊的鄰近區塊,影響條件式機率模型之調適。
又,如下摘述之應用例探討為了更佳定義圖像樣本區塊間之鄰近關係,亦即欲編碼或解碼之語法元素有關目前區塊,基於其屬性而進行脈絡模型之分配;及鄰近區塊位置超出含目前區塊的目前巨集區塊邊界或周邊時,重要地須依據含目前區塊之非前巨集區塊對區係屬第一或第二分布型,亦即圖框或欄位編碼而決定含鄰近區塊之巨集區塊。
區塊可以是巨集區塊或其若干子部分。兩種情況下,鄰近區塊之決定包含至少決定鄰近巨集區塊,只要鄰近區塊之位置超出目前巨集區塊之邊界即可。
第28圖顯示本發明適用之視訊編碼器環境之概略視圖。視訊圖框之圖像2010係饋至視訊預編碼器2012。視訊預編碼器係以所謂巨集區塊10a為單位處理圖像2010。各巨集區塊含有若個圖像2010之圖像樣本。於各巨集區塊上,變換成變換係數之進行隨後接著量化成變換係數層級。此外,內-圖框預測或移動補償係用來不直接在像素資料反而在其與預測像素值間之差異上執行前述步驟,藉此達成更易壓縮的小值。
預編碼器2012輸出結果,亦即預編碼視訊信號。預編碼視訊信號中與變換係數編碼有關的全部殘差資料元素,諸如變換係數層級或指示變換係數層級跳位之顯著性對映,係稱作殘差資料語法元素。除了此等殘差資料語法元素外,藉預編碼器2012輸出的預編碼視訊信號含有含有關各巨集區塊如何編碼與如何解碼控制資訊之控制資訊語法元素。換言之,語法元素可劃分成兩大類。第一大類中,控制資訊語法元素含有例如與巨集區塊類型、子-巨集區塊類型、及預測模式資訊包括空間型及時間型,以及基於截割片及基於巨集區塊之控制資訊相關的元素。第二大類中,全部殘差資料元素諸如指示在一量化變換係數區塊內部之全部有效係數位置之顯著性對映,及以與量化階相對應之層級為單位組合,亦即殘差資料語法元素。
圖像2010劃分成的巨集區塊被分組成數個截割片。換言之,圖像2010再細分成截割片。此種細分之實例顯示於第43圖,其中各區塊或各矩形表示一個巨集區塊。針對各截割片,由預編碼器2012產生多個語法元素,其形成個別截割片之巨集區塊的編碼版本。
預編碼器2012將語法元素移轉至終編碼器階段2014,其係包含依據前文就第1至17圖中任一圖所述且就第29圖說明其細節之熵編碼器。終編碼器階段2014產生針對各截割片之一碼字組串流。當產生一截割片之碼字組串流時,終編碼器階段2014探討下述事實,各語法元素為在送至熵編碼器2014的視訊信號位元串流中有某個定義之資料值。熵編碼器2014輸出包含針對圖像2010之截割片之碼字組的終壓縮編碼視訊位元串流。
第29圖顯示用以將語法元素編碼成終碼位元串流之配置,該配置通常係以元件符號2100指示。編碼配置2100被劃分成三個階段2100a、2100b及2100c。
第一階段2100a為二進制化階段及包含二進制化器2102。二進制化器2102之輸入端係透過開關2106而連結至階段2100a之輸入端2104。同時,輸入端2104形成編碼配置2100之輸入端。二進制化器二進制化器2102之輸出端係連結至階段2100a之輸出端2108,其同時形成階段2100b之輸入端。開關2106可繞道到達二進制化器2102或二進制階段輸出端2108之輸入端2104,藉此繞道二進制化器2102。
若語法元素已經係在期望的二進制形式,則開關2106之功能係直接繞道在二進制階段輸出端二進制階段輸出端2108之輸入端2104的實際語法元素。非屬正確二進制形式之語法元素實例,稱作非二元值語法元素為移動向量差及變換係數層級。由於已是二元值而無需經二進制化之語法元素實例包含MBAFF(MBAFF=巨集區塊適應性圖框/欄位)編碼模式旗標或mb_field_decoding_flag、mb_skip_flag、及coded_block_flag,容後詳述。因其非為二元值而心須經二進制化之語法元素實例包含語法元素mb_type、coded_block_pattern、ref_idx_10、ref_idx_11、mvd_10、mvd_11及intro_chroma_pred_mode。
不同的二進制化方案用於欲二進制化之語法元素。舉例言之,藉由使用語法元素值之L-位元無符號整數倉串,組成固定長度二進制化處理程序,此處L係等於四捨五入至大於或等於該和值的最接近整數,而cMax為語法元素之最大可能值。fl二進制化倉之檢索使得零之倉指數係有關最小顯著倉,而倉指數值朝向最大顯著倉遞增。另一個二進制化方案為截頭一元二進制化方案,此處小於最大可能值cMax之語法元素值C係對映至長度C+1之位元或倉串,而具有小於C之倉指數之倉係等於1,而具有C之倉指數之倉係等於0,而針對等於最大可能值cMax之語法元素,相對應倉串為長度cMax之位元串,具有全部位元係等於1而未接著零。另一項二進制化方案為第k次冪指數Golomb二進制化方案,此處一語法元素係對映至由前綴位元串及最終後綴位元串所組成之一倉串。
非二元件語法元素係透過開關2106而送至二進制化器2102。二進制化器2102將非二元值語法元素對映至一碼字組,或所謂的倉串,故其現在係呈二元形式。「倉」一詞表示當從該一編碼樹之路由節點變遷至與該編碼樹欲二進制化的非二元語法元素之非二元值相對應之葉時,在該編碼樹界定非二元值之二進制化對映至一位元串或碼字組的一節點,必須做的二元決策。如此,倉串為一序列倉或二元決策,且係對應於具有等數位元之碼字組,各位元為二元決策的結果。
由二進制化器2102輸出之倉串可能並非直接送至二進制階段輸出端108,反而係藉配置在二進制化器2102之輸出端與輸出端2108間之裝置2110上方倉回路而控制式地送至輸出端2108,來將藉二進制化器2102輸出的倉串及藉繞道二進制化器2102之已經二元值語法元素,在二進制階段輸出端2108合併成單一位元串流。
如此,二進制階段2108係用來將語法元素移轉成適當二進制化表示型態。在二進制化器2102之二進制化處理程序,較佳係獲得二進制化表示型態,其係調適於語法元素之機率分布,因而允許極為有效的二元熵編碼。
階段2100b為脈絡模型化階段,及包含一脈絡模型化器2112及一開關2113。脈絡模型化器2112包含一輸入端、一輸出端、及一選擇性回授輸入端。脈絡模型化器2112之輸入端係透過開關2113而連結至二進制階段輸出端2108。脈絡模型化器2112之輸出端係連結至階段2100c之常規編碼輸入終端2114。開關2113之功能係繞道在二進制階段輸出端2108之倉序列之位元或倉,至脈絡模型化器2112,或至階段2100c之旁路編碼輸入終端2116,藉此繞道脈絡模型化器2112。
開關2113之目標係使於階段100c進行的接續二元熵編碼變容易。更精確言之,由二進制化器2102輸出的倉串中的部分倉啟發式地顯示接近等-可能分布。如此表示相對應位元具有近50%機率為1,及具有近50%機率為0,或換言之,在一倉串中此倉相對應倉具有50/50機會為1或0。此等倉係饋至旁路編碼輸入終端2116,且係藉使用等-可能機率估值進行二元熵編碼,其為常數,因此燐需適應或更新額外管理資料量。針對全部其它倉,業已啟發式地測定此等倉之機率分布係取決於階段2100a作為輸出的其它倉,因此值得適應或更新用於個別倉之二元熵編碼的機率估算,容後文就語法元素實例詳加說明。後述倉如此藉開關2113而饋至脈絡模型化器2112之輸入終端。
脈絡模型化器2112管理一脈絡模型集合。針對各脈絡模型,脈絡模型化器2112已經儲存實際位元或倉值機率分布估算。針對到達脈絡模型化器2112輸入端之各倉,脈絡模型化器2112選擇脈絡模型集合中之一者。換言之,脈絡模型化器2112分配倉給脈絡模型集合中之一者。將倉分配給脈絡模型使得屬於同一個脈絡模型之倉的實際機率分布顯示相同的或相似的表現,使得針對某個脈絡模型儲存在脈絡模型化器2112之實際位元或倉值機率分布估算乃針對分配給此一脈絡模型的全部倉的實際機率分布之良好近似值。依據本發明之分配處理程序探討鄰近區塊之語法元素間的空間關係。此種分配處理程序容後詳述。
當已經將脈絡模型分配給一輸入倉時,脈絡模型化器2112將倉連同倉所被分配的該脈絡模型之機率分布估算一起進一步送至熵編碼階段2100c。藉此方式,脈絡模型化器2112依據如脈絡模型化器2112所指示切換位元值機率分布估值,而產生一位元序列作為藉脈絡模型化器2112在脈絡模型化器2112之倉輸入的編碼表示型態。
此外,脈絡模型化器2112針對各脈絡模型,連續更新機率分布估值來將針對各脈絡模型之機率分布估值調整適應語法元素及倉由其中所導算出之圖像或視訊圖框之性質或屬性。估算適應或估算更新係基於脈絡模型化器2112透過回授線路2117而在回授輸入所接收的或可暫時儲存的過去或先前位元或倉值。如此,換言之,脈絡模型化器2112回應於送至熵編碼階段2100c之倉值而更新機率估值。更明確言之,脈絡模型化器2112使用分配給某個脈絡模型之一倉值僅只用於與此倉值之脈絡模型相關聯之機率估值之適應與更新。
當在從階段2100a送出的倉內同一倉或相同語法元素出現數次時,每次出現時,若干語法元素可分配給脈絡模型之不同者,取決於先前輸入的或先前熵編碼倉,及/或取決於其它狀況諸如鄰近區塊之先前編碼語法元素,如後文就語法元素實例描述其進一步細節。
由前文說明顯然易知,用於二元熵編碼之機率估算首先決定碼及其效率,及首要重要地有適當模型其探討語法元素及倉的統計相依性至較大程度,使得機率估算經常性地極有效地近似編碼期間的實際機率分布。
編碼配置100之第三階段2100c為熵編碼階段。其包含一常規編碼引擎2118、一旁路編碼引擎2120、及一開關2122。常規編碼引擎2118包含一輸入及一輸出絡端。常規編碼引擎2118之輸入終端係連結至常規編碼輸入終端2114。常規編碼引擎2118藉使用從脈絡模型化器2112送出的脈絡模型而二元熵編碼也從脈絡模型化器2112送出的倉值,及輸出編碼位元。又,常規編碼引擎2118將用於脈絡模型更新的倉值透過回授線路2117送至脈絡模型化器2112之回授輸入。常規編碼引擎相對應於第1至17圖之前述任一實施例,而考慮個別倉之脈絡設定及相對應機率指數,前述實施例之分配器係部分地整合在脈絡模型化器內部。在前傳如此所得參數給選擇器18之前,分配器可量化機率指數,而選擇器又選定個別熵編碼器。
脈絡模型化器2112也具有一輸入及一輸出終端,該輸入終端係連結至旁路編碼輸入終端2116。旁路編碼引擎2120係藉使用靜態預定機率分布估算,用以二元熵編碼透過開關2113而從二進制階段輸出端2108直接送出的倉值,及也輸出已編碼位元。旁路編碼引擎可以任何符碼數目為單位而使用1:1對映關係。
從常規編碼引擎2118及旁路編碼引擎2120輸出的編碼位元係在編碼配置2100之輸出端2124,藉開關2122而合併成單一位元串流,該位元串流表示語法元素之一二元熵編碼位元串流作為在輸入終端2104之輸入。如此,常規編碼引擎2118及旁路編碼引擎2120協力合作,基於適應性或靜態機率分布模型而逐位元執行熵編碼。
已經相當一般性地就第28及29圖描述編碼配置2100之操作後,後文中,將依據實施例,基於使用的鄰近區塊之語法元素,就脈絡分配處理程序之語法元素實例處理,而描述其功能之進一步細節。為了達成此項目的,有關第30至31b圖,描述MBAFF編碼定義來更明白瞭解在MBAFF情況下,考慮目前區塊,一脈絡模型分配給一語法元素期間所使用的一目前區塊與一鄰近區塊間之鄰近關係定義。
第30圖顯示一圖像或解碼視訊圖框2010。視訊圖框2010係空間上劃分成巨集區塊對10b。巨集區塊對配置成列2200及行2202矩陣。各巨集區塊對係由二巨集區塊2010a所組成。
為了定址各巨集區塊10a,就巨集區塊2010a定義一序列。為了達成此項目的,於各巨集區塊對,一個巨集區塊標示為頂巨集區塊,而該巨集區塊對之另一個巨集區塊標示為底,頂及底巨集區塊之定義係取決於一巨集區塊對藉預編碼器2012(第28圖)編碼模式將於後文就第31a及31b圖敘述。如此,各巨集區塊對列2200係由二巨集區塊列組成,亦即頂巨集區塊列2200a係由在巨集區塊對行2200之該等巨集區塊對中之頂巨集區塊組成,而底巨集區塊列200b係包含巨集區塊對中之底巨集區塊。
依據本實例,左上巨集區塊對之頂巨集區塊係駐在位址零。下個位址係分配給左上巨集區塊對之底巨集區塊。在同一亦即頂巨集區塊列2200a之巨集區塊對之頂巨集區塊位址為2,4,...,2i-2,位址係從左升高至右,而i表示圖像寬度,以巨集區塊或巨集區塊對為單位。位址1,3,...,2i-1係分配給在頂巨集區塊對行2200之該等巨集區塊對中之底巨集區塊,位址係從左升高至右。從2i至4i-1的其次2i-位址係從頂分配給在下一巨集區塊對列中之巨集區塊對的巨集區塊等等,如第30圖以數目書寫入表示巨集區塊2010a之框及以拱形列例示說明。
第30圖強調確實顯示圖像2010之空間細分,以巨集區塊對為單位,而非以巨集區塊為單位。各巨集區塊對2010b表示圖像之一空間矩形區。位在一特定巨集區塊對2010b之一空間矩形區的圖像2010之全部圖像樣本或像素(圖中未顯示)係屬此巨集區塊對。一特定像素或圖像樣本是否屬於一巨集區塊對之頂或底巨集區塊係取決於預編碼器2012就此編碼巨集區塊對中之巨集區塊的模式,容後詳述。
第31a圖左方顯示屬於一巨集區塊對2010b之像素或圖像樣本之配置。如圖可知,像素係以列及行陣列配置。所示各像素係以數目指示來方便如下第31a圖之說明。如第31a圖可知,若干像素係標示以「x」,而其它像素係標示以「γ」。標示以「x」之全部像素係屬圖像之一第一欄位,而標示以「γ」之全部像素係屬圖像之一第二欄位。屬於同一欄位的像素係以圖像之交錯列配置。圖像或視訊圖框可考慮為含有兩個交插欄位,亦即一頂及一底欄位。頂欄位包含標示以「γ」之像素,含有偶編碼列2n+2、2n+4、2n+6、...而2n為一個圖像或視訊圖框之列數,及n為大於或等於0之整數。底欄位含有奇編碼列,始於圖框之第二行。
假設巨集區塊對2010b所屬的視訊圖框為交插圖框,此處二欄位係於不同時間瞬間拍攝例如頂欄位係在底欄位之前。現在一巨集區塊對之像素或圖像樣本係差異分配給巨集區塊對之頂或底巨集區塊,取決於個別巨集區塊對係藉預編碼器2012預編碼模式(第28圖)。其理由如下。
如前文就第28圖所述,一巨集區塊之圖像樣本,可以是發光度或亮度及色度或彩度樣本,可藉預編碼器2012空間地或時間地預測,所得預測殘差係使用變換編碼而編碼來獲得殘差資料語法元素。現在於交插圖框(及假設本視訊圖框為交插圖框),有移動中之物件區或相機移動區,比較前進視訊圖框其中二欄位係在同一時間瞬間拍攝,兩相鄰像素列傾向於顯示減低的統計相依性。如此,於此種移動中之物件區或相機移動區之情況下,當一巨集區塊對係空間上細分成表示該巨集區塊對之頂半區之一頂巨集區塊及表示該巨集區塊對之底半區之一底巨集區塊時,如前述在巨集區塊上操作,藉預編碼器2012執行預編碼可達成僅只減低的壓縮效率,原因在於於此種情況下,二巨集區塊亦即頂及底巨包含頂欄位及底欄位像素。於此種情況下,預編碼器2012可更有效地分開編碼各欄位,亦即分配頂欄位像素給頂巨集區塊,及分配底欄位像素給底巨集區塊。
為了例示說明如何將一巨集區塊對之像素分配給頂及底巨集區塊,第31a及31b圖在右側分別顯示依據圖框及欄位模式所得頂及底巨集區塊。
第31a圖表示圖框模式,亦即此處各巨集區塊對係空間細分成頂半及底半巨集區塊。第31a圖顯示以圖框模式編碼時,如所定義在2250之頂巨集區塊,及在2252之底巨集區塊,圖框模式係以雙箭頭2254表示。如圖可知,頂巨集區塊250包含巨集區塊對2010b之像素樣本之半,而其它像素樣本係分配給底巨集區塊2252。更明確言之,編碼2n+1至2n+6之上半各列圖像樣本屬於頂巨集區塊2250;而組成巨集區塊對10b之列2n+7至2n+12的下半圖像樣本91至96、01至06、11至16係屬底巨集區塊2252。如此,當以圖框模式編碼時,巨集區塊2250及2252二者包含下互二者,亦即標示以「x」之第一欄位且在第一時間瞬間拍攝的圖像元素,及標示以「γ」之第二欄位且在第二時間瞬間拍攝的圖像樣本。
在欄位模式,當像素藉相機等輸出時分配給頂或底巨集區塊略有不同。當在欄位模式編碼時,如第31b圖之雙箭頭2256指示,巨集區塊對2010b之頂巨集區塊2252含有標示以「x」之頂欄位的全部像素樣本,而底巨集區塊2254含有標示以「γ」之底欄位的全部像素樣本。如此,當依據欄位模式2256編碼時,在巨集區塊對中的各巨集區塊確實只含有頂欄位之圖像樣本或底欄位之圖像樣本而非頂及底欄位之混合圖像樣本。
現在,在已經描述一圖像之空間細分成巨集區塊對且分配巨集區塊對中之圖像樣本給該巨集區塊對之頂或底巨集區塊,分配係取決於該巨集區塊對或對巨集區塊對之巨集區塊藉預編碼器2012編碼模式,再度參考第28圖來解說含在由預編碼器2012所輸出之預編碼視訊信號中的語法元素mb_field_decoding_flag之功能及定義,且同時來解說MBAFF編碼圖框優於只有欄位或圖框編碼圖框之優點。
當預編碼器2012接收到表示一交插視訊圖框之視訊信號時,預編碼器預編碼器2012於編碼視訊圖框2010時可自由做下列決策:
-可將二欄位一起組合來編碼成一個單一編碼圖框,故各巨集區塊對及各巨集區塊可以圖框模式編碼。
-另外,可組合二欄位,及編碼成分開編碼欄位,使各巨集區塊對及各巨集區塊可以欄位模式編碼。
-至於最末選項,可將二欄位組合及壓縮成為單一圖框,但當編碼符碼時,巨集區塊對在編碼前,分裂成二欄位巨集區塊對或二圖框巨集區塊對。
可針對序列中之各圖框適應性做出三個選項間之選擇。首二選項間之選擇係稱作為圖像適應性圖框/欄位(PAFF)編碼。當一圖框係編碼成二欄位時各欄位被劃分成巨集區塊,且以係極為類似圖框之方式編碼。
若一圖框係由混合區組成,此處某些區為移動,而其它區則否,典型地可更有效以圖框模式編碼非移動區,及以欄位模式編碼移動區。因此,針對在一圖框的各垂直巨集區塊對可獨立地做圖框/欄位編碼決策。此乃前文列舉之選項中之第三編碼選項。此一編碼選項係稱作巨集區塊適應性圖框/欄位(MBAFF)編碼。後文中,假設預編碼器2012決定只使用此一選項。如前述,MBAFF編碼允許預編碼器編碼模式類型(欄位或圖框模式)更佳地調適個別場景區。舉例言之,預編碼器2012以圖框模式編碼在一視訊場景之靜態區的巨集區塊對,而以欄位模式編碼在一場景之顯示快速移動區的巨集區塊對。
如前述,針對在圖框模式編碼之一巨集區塊對,各巨集區塊含有圖框行。針對在欄位模式編碼之一巨集區塊對,頂巨集區塊含有頂欄位行,及底巨集區塊含有底欄位行。針對各巨集區塊對之圖框/欄位決策係在巨集區塊層級藉預編碼器2012做出,亦即頂巨集區塊為欄位編碼,同樣適用於在同一巨集區塊對內部之底巨集區塊。藉此手段,基本巨集區塊處理結構係維持完好,及移動補償區係允許與巨集區塊的大小一般大。
一欄位巨集區塊對之各巨集區塊係在PAFF編碼欄位內部極其類似巨集區塊般處理。但因欄位及圖框混合巨集區塊對可出現在MBAFF圖框內部,在預編碼器2012之預編碼程序的某些階段,諸如移動向量之預測、內-預測模式之預測、內-圖框樣本預測、於熵編碼中之解區塊濾波及脈絡模型化、及變換係數之鋸齒掃描比較PAFF編碼時係經修改來考慮此項混合。
摘要言之,由預編碼器2012輸出之預編碼視訊信號係取決於已決定使用的編碼預編碼器2012類型。於MBAFF編碼之情況下,如此處假設,預編碼視訊信號含有針對各個非跳過巨集區塊對之旗標mb_field_decoding_flag。旗標mb_field_decoding_flag針對其所屬各巨集區塊對,指示相對應巨集區塊是否以圖框或欄位編碼模式編碼。於解碼器端,需要此一旗標來正確地解碼預編碼視訊信號。若一巨集區塊之巨集區塊係以圖框模式編碼,則旗標mb_field_decoding_flag為零,而另一情況之旗標為1。
現在,雖然第29圖之原先解碼器配置之一般操作模式已經描述而未指稱一特別倉,但就第32圖,現在將有關使用鄰近區塊之語法元素間之空間關係的語法元素實例之倉串的二元熵編碼,同時MBAFF編碼模式為作用中,描述此一配置之功能。
第32圖所示處理程序始於一語法元素之一倉值到達脈絡模型化器2112之輸入端。換言之,最終若有所需,語法元素須在二進制化器2102二進制化,亦即除非語法元素已經為二元值。於第一步驟2300,脈絡模型化器2112基於鄰近語法元素,亦即在鄰近區塊之語法元素,判定輸入倉是否為專用於一脈絡分配。須記住第32圖之描述係假設MBAFF編碼為可作用。若於步驟2300之決策導致基於鄰近語法元素,輸入倉非專用於脈絡分配,在步驟2304執行另一語法元素處理。於第二情況下,脈絡模型化器2112決定輸入倉之語法元素相關的目前區塊之一鄰近區塊。步驟2306之決策程序係分別就語法元素實例及其倉說明其進一步細節如下。總而言之,於步驟2306之決策係取決於目前倉之語法元素相關的目前巨集區塊係為圖框或欄位編碼,只要關注的鄰近區塊係在含目前區塊之該巨集區塊外側即可。
其次,於步驟2308,脈絡模型化器2112基於測得之鄰近區塊屬性而分配脈絡模型給倉。分配步驟2308結果導致脈絡索引ctsIdx指向在一表中,分配各個脈絡索引給一機率模型之個別分錄,來用於目前語法元素之目前倉之二元熵編碼。
於ctsIdx測定後,脈絡模型化器2112將變數ctsIdx或ctsIdx所檢索的機率估算態連同目前倉本身送至常規編碼引擎2118。基於此等輸入,藉由使用如ctsIdx所檢索之脈絡模型的目前機率態,於步驟2322,常規編碼引擎2118熵編碼該倉。特別例如該索引係用來選擇個別部分位元串流2012。
隨後,常規編碼引擎2118透過路徑2117將倉值送回脈絡模型化器2112,此時於步驟2324,脈絡模型化器2112就其機率估算態,調適由ctsIdx所檢索的脈絡模型。隨後,在輸出端2124將語法元素編碼成位元串流之處理程序結束於2326。
強調在步驟2310之前,語法元素可二進制化而成之倉串可由下述二項組成,在步驟2322,倉係經編碼,亦即分配給個別部分位元串流2012,及隨後使用脈絡模型ctsIdx之目前機率態編碼;及倉在旁路編碼引擎2120使用等-可能機率估算編碼,但未顯示於第32圖。反而,第32圖單純係有關語法元素之一個倉的編碼實例。
第32圖中虛線2327涵括之步驟2322及2324將就第33圖以進一步細節解說如下。
第33圖左方顯示處理程序2327之流程圖。第33圖右側顯示一記憶體2328,脈絡模型化器2112及常規編碼引擎2118二者接取該記憶體來載入、寫入、及更新特定變數。此等變數包含R及L,其定義二元熵編碼器2100C之目前態或目前機率區間。
記憶體2328含有一表2329,其係關聯ctsIdx之各個可能值,例如0-2398、一對機率態指數σ、及MPS值ω,二者定義由個別脈絡索引ctsIdx所檢索之個別脈絡模型之目前機率估算態。機率態σ為一指數,其獨特地識別可能機率值pσ 集合中之一者。機率值pσ 為最小可能符碼(LPS)之該脈絡模型的正一倉之機率估值。LPS表示哪一個可能倉值亦即零或1係由MPS值ω指示。若ω為1,則LPS為0,及反之亦然。如此,態指數及MPS一起獨特地界定個別脈絡模型之實際機率態或機率估值。
於步驟2334,實際倉值係發送至常規編碼引擎2118。
於步驟2336,常規編碼引擎2118檢查實際倉值亦即,已屬二元語法元素或得自目前語法元素之一倉串之一個倉,是否等於ωi 指示的最大可能符碼或否。若目前倉為MPS,則脈絡模型化器2112藉更新σi 而更新目前脈絡模型之機率估算態。更明確言之,脈絡模型化器2112使用一表2340,其於實際符碼或倉為最大可能符碼之情況下,亦即σ變成transIdxMPS(σi ),將各機率態指數σ與更新的機率態指數相關聯。
在步驟2338後,處理結束在2340,於該處送至常規編碼引擎2118之倉係藉其選擇器而前傳至個別部分位元串流編碼器。
若於步驟2336判定目前倉為最小可能符碼LPS,則於步驟2344判定σi 是否等於0,亦即機率態指數是否指示針對二者亦即1及0之機率相等。然後,值MPS係藉運算ωi =1-ωi 而更新。隨後,於步驟2346,機率態指數藉使用表2340而實際化,於實際倉值為最小可能符碼之情況下,亦即修正σi 變成transIdxLPS(σi ),也將各目前機率態指數與更新機率態指數相關聯。在步驟2344及2346機率態指數σi 及ωi 已經調適後,處理進入步驟2340,如前文已述。
在已經針對脈絡模型分配藉由探討鄰近區塊之語法元素間之空間關係而描述語法元素之編碼處理程序後,脈絡模型分配及目前區塊與鄰近區塊間之鄰近關係定義係就含在預編碼器2012之輸出的預編碼視訊信號內之下列語法元素容後詳述。此等語法元素列舉如下。
如可由上表收集,部分此等語法元素係有關於一目前巨集區塊全體,而其它語法元素係有關於一目前巨集區塊之子部分,亦即子-巨集區塊或其劃分。同理,脈絡模型分配給此等語法元素係取決於鄰近巨集區塊、鄰近子-巨集區塊或其鄰近劃分之語法元素。第36圖例示說明巨集區塊(上列)及子-巨集區塊(下列)之劃分。如第36圖所示,劃分係經掃描用於跨-預測。第36圖之外矩形係指分別在巨集區塊或子-巨集區塊內之樣本。內矩形係指劃分。各個內矩形的數字載明反巨集區塊劃分掃描或反子-巨集區塊劃分掃描之指數。
在就第34圖詳細描述脈絡模型分配與鄰近區塊之語法元素的相依性之前,描述如何運算該巨集區塊對之左上目前巨集區塊對之頂巨集區塊之位址,原因在於此等為可能的候選者,其包含在區塊中含有欲編碼之目前語法元素之左上目前區塊之語法元素。為了例示說明空間關係,第34圖中,顯示一視訊圖框之六巨集區塊對之一部分,其中第34圖之各矩形區係對應於一個巨集區塊,及各行中第一及第二兩個垂直相鄰巨集區塊形成一巨集區塊對。
第34圖中,CurrMbAddr表示目前巨集區塊對中該目前語法元素相關聯之或相關之頂巨集區塊之巨集區塊位址。目前巨集區塊對係以粗線框出。換言之,其形成一巨集區塊對之邊界。mbAddrA及mbAddrB分別表示巨集區塊對之左及上目前巨集區塊對之頂巨集區塊位址。
為了運算鄰近巨集區塊對之左上目前巨集區塊對之頂巨集區塊位址,脈絡模型化器2112運算
MbAddrA=2‧(CurrMbAddr/2-1)
MbAddrB=2‧(CurrMbAddr/2-PicWidthInMbs)
此處PicWidthInMbs載明巨集區塊單元內部圖像。藉由注視第30圖將可瞭解上示方程式。第30圖中發現巨集區塊單元中之圖像寬度標示為i。進一步發現當目前巨集區塊位址CurrMbAddr係與目前巨集區塊對之底巨集區塊之奇編號巨集區塊位址亦即CurrMbAddr+1互換時上式亦為真,原因在於如上方程式中,「/」表示結果朝向零異動處理之整數分割。例如,7/4及-7/-4被截頭為1,而-7/4及7/-1係截頭為-1。
現在,已經描述如何運算目前巨集區塊後,簡短憶起各巨集區塊含16x16亮度樣本。此等亮度樣本被分割成四個8x8亮度區塊。此等亮度區塊再細分為4x4亮度區塊。此外,用於後文描述,各巨集區塊進一步包含8x8亮度樣本,亦即彩度樣本之像素寬度比較亮度樣本為其兩倍。一巨集區塊之此等8x8彩度區塊再細分為四個4x4亮度區塊。一巨集區塊之區塊經編號。據此,四個8x8亮度區塊個自具有區塊位址,獨特地指示在巨集區塊內的各個8x8區塊。其次,在一巨集區塊之各個像素樣本屬於一位置(x,y),其中(x,y)表示相對於該巨集區塊之左上亮度或彩度樣本,目前區塊之左上樣本的亮度或彩度位置。舉例言之,有關亮度樣本,第31b圖在頂巨集區塊2252之像素2023具有像素位置(2,1),亦即第三行、第二列。
如此敘述之後,描述上表中列舉的針對至少部分倉的語法元素ctxIdx之導算程序。
至於語法元素mb_skip_flag,脈絡模型化器分配取決於與鄰近巨集區塊相關的語法元素。如此,為了決定脈絡指數ctxIdx,位址mbAddrA及mbAddrB係如前述測定、然後,設變數condTermN(N為A或B)設定如下:
若mbAddrN非可取得或若針對巨集區塊mbAddrN之mb_skip_flag係等於1,則condTermN設定為0
-否則,condTermN設定為1。
ctxIdx係基於脈絡指數遞增器ctxIdxInc=condTermA+condTermB而導算出。
針對語法元素mb_field_decoding_flag,ctxIdx係測定如下:
設變數condTermN(N為A或B)設定如下。
-若有下列任何條件為真,則condTermN係設定為0,
-mbAddrN非可取得
-巨集區塊mbAddrN為圖框巨集區塊。
-否則condTermN係設定為1。
ctxIdx係基於脈絡指數遞增器ctxIdxInc=condTermA+condTermB而導算出
其中若
(((CurrMbAddr/2)%(PicWidthInMbs))==0).
則mbAddrN非可取得。
針對語法元素Mb_type,ctxIdx係取決於mbAddrN(N為A或B)及此鄰近巨集區塊之語法元素Mb_type的利用性。
至於上表列舉的其它語法元素,脈絡模型化器分配之相依性係據此定義,其中針對語法元素,其係關小於一巨集區塊的區塊,分配也係取決於與此等比巨集區塊更小的區塊相關聯之語法元素。舉例言之,針對語法元素coded_block_pattern,脈絡模型分配係不僅取決於巨集區塊MbAddrN之利用性及巨集區塊MbAddrN之語法元素Mb_type,同時也取決於鄰近區塊之語法元素Coded_block_pattern。又更值得注意者為上列語法元素全部皆係與鄰近區塊之個別語法元素具有相依性。不同於此,語法元素mvd_10、mvd_11、ref_idx_10及ref_idx_11之脈絡模型分配係與鄰近區塊之個別語法元素不具相依性。intra_chroma_pred_mode之脈絡模型化器分配係與mbAddrN之利用性、巨集區塊mbAddrN係以跨-預測模式編碼與否、針對巨集區塊mbAddrN之Mb_type、及針對巨集區塊mbAddrN之語法元素intra_chroma_pred_mode不具相依性。語法元素coded_block_flag脈絡模型分配係與mbAddrN之利用性、巨集區塊mbAddrN係以跨-預測模式編碼與否、針對巨集區塊mbAddrN之Mb_type、及針對巨集區塊mbAddrN之語法元素intra_chroma_pred_mode具有相依性。
後父中將描述如何測定鄰近區塊。特定言之,如此涉及運算mbAddrN及指示巨集區塊MbAddrN之子部分的區塊指數,此一子部分為目前區塊之鄰近區塊。
依據本發明之實施例,後父中描述的使用巨集區塊適應性圖框/欄位編碼之截割片鄰近關係係以後述方式界定,該方式保證在MBAFF-圖框內側在脈絡適應性二元熵編碼中由用於脈絡模型化的鄰近區塊所涵蓋區係毗鄰於由目前區塊所涵蓋區。比較如本說明書引言部分所述,考慮各個巨集區塊對為圖框巨集區塊對用以脈絡模型化目的,如此處關聯MBAFF-截割片編碼使用,如此通常改良脈絡適應性熵編碼方案之編碼效率,原因在於在編碼程序中估算的條件式機率更加可靠。
界定目前區塊與參考區塊間之鄰近關係的一般構想係描述於如下章節1.1。於章節1.2中,詳細說明部分載明左上目前區塊、巨集區塊、或劃分之鄰近區塊、巨集區塊、或劃分係如何獲得用於脈絡適應性二元熵編碼中的脈絡模型化目的。
1.1. 一般構想鄰近關係定義
設(x,y)表示關係圖像CurrPic之左上亮度或彩度樣本之目前區塊左上樣本之亮度或彩度位置。變數CurrPic載明目前圖框,若目前區塊為在圖框模式中編碼的巨集區塊對之一部分(mb_field_decoding_flag係等於0),則該變數係藉由交插頂及底欄位獲得。若目前區塊為或係屬頂欄位巨集區塊的一部分,則CurrPic載明目前圖框之頂欄位;而若目前區塊為或係屬底欄位巨集區塊的一部分,則CurrPic載明目前圖框之底欄位。
設(xA,yA)及(xB,yB)分別表示在圖像CurrPic內側之左上位置(x,y)的亮度或彩度位置。(xA,yA)及(xB,yB)載明為
(xA,yA)=(x-1,y)
(xB,yB)=(x,y-1)
目前區塊之左側區塊係定義為相對於圖像CurrPic之左上亮度或彩度樣本,含有位在位置(xA,yA)的亮度或彩度樣本之該區塊;目前區塊之上方區塊係定義為相對於圖像CurrPic之左上亮度或彩度樣本,含有位在位置(xB,yB)的亮度或彩度樣本之該區塊。若(xA,yA)或(xB,yB)載明在目前截割片以外位置,則相對應區塊係標示為無法取得。
1.2. 鄰近關係定義之詳細說明
章節1.2.1敘述之演繹法則載明MBAFF-截割片之一般構想,其描述關聯目前巨集區塊之左上亮度樣本所表示之亮度樣本位置係如何對映至一巨集區塊位址,其載明涵蓋相對應亮度樣本之巨集區塊,及關聯該巨集區塊之左上亮度樣本所表示之亮度樣本位置。此一構想係運用在下列章節1.2.2至1.2.6。
章節1.2.2至1.2.6描述如何載明鄰近巨集區塊、8x8亮度區塊、4x4亮度區塊、4x4彩度區塊、及目前巨集區塊之左上劃分、8x8亮度區塊、4x4亮度區塊、4x4彩度區塊、或劃分。此等鄰近巨集區塊、區塊、或劃分為針對下列語法元素之CABAC脈絡模型化所需:mb_skip_flag、mb_type、coded_block_pattern、intra_chroma_pred_mode、coded_block_flag、ref_idx_10、ref_idx_11、mvd_10、mvd_11。
1.2.1 鄰近樣本位置之規定
設(xN,yN)表示關聯具有巨集區塊位址CurrMbAddr之目前巨集區塊之左上亮度樣本所表示之亮度樣本位置。憶起依據本發明各巨集區塊包含16x16亮度樣本。xN及yN係在-1...16以內。設mbAddrN為含(xN,yN)之巨集區塊位址,及設(xW,yW)為關聯巨集區塊CurrMbAddr之左上亮度樣本(而非相對於目前巨集區塊之左上亮度樣本)所表示之位置(xN,yN)。
設mbAddrA及mbAddrB分別係載明目前巨集區塊對左側之該巨集區塊對的頂巨集區塊之及目前巨集區塊對上方之該巨集區塊對的頂巨集區塊之巨集區塊位址。設PicWidthInMbs為以巨集區塊為單位載明圖像寬度之變數。mbAddrA及mbAddrB分別係載明如下。
‧ mbAddrA=2*(CurrMbAddr/2-1)
若mbAddrA係小於0,或若(CurrMbAddr/2)%PicWidthInMbs係等於0,或若具有位址mbAddrA之巨集區塊係屬與目前截割片不同的截割片,則mbAddrA標記為無法利用。
‧ mbAddrB=2*(CurrMbAddr/2-PicWidthInMbs)若mbAddrB係小於0,或若具有位址mbAddrB之巨集區塊係屬與目前截割片不同的截割片,則mbAddrB標記為無法利用。
第35圖之表載明於如下兩個有序步驟中之巨集區塊位址則mbAddrN及變數yM:
1. 巨集區塊位址mbAddrX(第五行)規格係取決於(xN,yN)(第一及第二行)及下列變數:
-若具有位址CurrMbAddr之目前巨集區塊為圖框巨集區塊對之一部分,則變數currMbFrameFlag(第三行)係設定為1;否則係設定為0。
-若CurrMbAddr%2係等於0,則變數mblsTopMbFlag(第四行)係設定為1;否則係設定為0。
2. 取決於mbAddrX(第五行)之利用性,適用後述者:
-若mbAddrX(可以是mbAddrA或mbAddrB)標記為無法利用,則mbAddrB標記為無法利用。
-否則(mbAddrX為可資利用),mbAddrN係標示為可資利用,及表1載明mbAddrN及yM係取決於(xN,yN)第一及第二行)、currMbFrameFlag(第三行)、mblsTopMbFlag(第四行)、及mbAddrXFrameFlag(第六行),其係導算如下:
-若巨集區塊mbAddrX為圖框巨集區塊,則mbAddrXFrameFlag係設定為1;否則係設定為0。
表1中如上旗標之未經載明值係指示相對應旗標之值係非關目前表列。
要言之:前四行中,載入輸入值Xn、Yn、currMbFrameFlag及mblsTopMbFlag。更明確言之,參數xN及yN之可能的輸入值為-1至16(含)。此等參數決定第五行列舉的mbAddrX,亦即含期望亮度樣本之巨集區塊對。需要其次二行亦即第六及第七行來獲得終輸出mbAddrN及yN。此等額外輸入參數為mbAddrXFrameFlag,指示由mbAddrX所指示的巨集區塊對是否為圖框編碼或欄位編碼,而考慮的若干額外條件是有關yN是否為偶或奇編號,或是否大於或等於8。
如圖可知,當XN及yN皆為正或零時,亦即期望的像素樣本係位在相對於xN及yN所界定的目前巨集區塊內部時,輸出巨集區塊位址不變,亦即其係等於CurrMbAddr。此外,yM係等於yM。當輸入XM及yM指示在目前巨集區塊外側之一像素樣本時,如此改變成左側(xN<0)全部變成目前巨集區塊頂上(yN<0)。
從第35圖之結果出發,相對於巨集區塊mbAddrN之左上亮度樣本的鄰近亮度位置(xW,yW)係載明為
xW=(xN+16)%16
yW=(yM+16)%16.
強調前述考量只係有關亮度樣本用於舉例說明目的。當考慮彩度樣本時,因一巨集區塊只含8x8彩度樣本,故考量略有不同。
1.2.2 鄰近巨集區塊之規格
目前巨集區塊左上鄰近巨集區塊之規格係用於下列語法元素之CABAC脈絡模型化:mb_skip_flag、mb_type、coded_block_pattern、intra_chroma_prediction_mode、及coded_block_flag。
設mbAddrA為目前巨集區塊左側巨集區塊之巨集區塊位址,而mbAddrB為目前巨集區塊上方巨集區塊之巨集區塊位址。
mbAddrA、mbAddrB、及其利用性態獲得如下:
●給定亮度位址(xN,yN)=(1,0),mbAddrA及其利用性態係如章節1.2.1所述獲得
●給定亮度位址(xN,yN)=(0,-1),mbAddrB及其利用性態係如章節1.2.1所述獲得
1.2.3 鄰近8x8亮度區塊之規格
目前8x8亮度區塊之左上的鄰近8x8亮度區塊之規格係用於語法元素coded_block_pattern之CABAC之脈絡模型化。
設luma8x8BlkIdx為在目前巨集區塊CurrMbAddr內部之目前8x8亮度區塊之指數。亮度指數luma8x8BlkIdx分配給在一巨集區塊內部的個別區塊之實施例係顯示於第9圖(右上角)。
設mbAddrA為含目前8x8亮度區塊左側8x8亮度區塊之該巨集區塊之巨集區塊位址,及設mbAddrB為含目前8x8亮度區塊上方8x8亮度區塊之該巨集區塊之巨集區塊位址。又復,設luma8x8BlkIdxA為目前8x8亮度區塊左側之8x8亮度區塊之該8x8亮度區塊指數(在巨集區塊mbAddrA內部),及設luma8x8BlkIdxB為目前8x8亮度區塊上方之8x8亮度區塊之該8x8亮度區塊指數(在巨集區塊mbAddrB內部)。
mbAddrA、mbAddrB、luma8x8BlkIdxA、luma8x8BlkIdxB及其利用性態獲得如下:
●設(xC,yC)為相對於目前巨集區塊之左上亮度樣本之目前8x8亮度區塊之左上樣本的亮度位置。
●mbAddrA、其利用性態、及亮度位置(xW,yW)係如章節1.2.1所述獲得,給定亮度位置(xN,yN)=(xC-1,yC)。若mbAddrA為可利用,則luma8x8BlkIdxA之設定使得其指稱在巨集區塊mbAddrA內側涵蓋亮度位置(xW,yW)之8x8亮度區塊;否則,luma8x8BlkIdxA係標示為無法利用。
●mbAddrB、其利用性態、及亮度位置(xW,yW)係如章節1.2.1所述獲得,給定亮度位置(xN,yN)=(xC,yC-1)。若mbAddrB為可利用,則luma8x8BlkIdxB之設定使得其指稱在巨集區塊mbAddrB內側涵蓋亮度位置(xW,yW)之8x8亮度區塊;否則,luma8x8BlkIdxB係標示為無法利用。
1.2.4 鄰近4x4亮度區塊之規格
目前4x4亮度區塊之左上的鄰近4x4亮度區塊之規格係用於語法元素coded_block_flag之CABAC之脈絡模型化。
設luma4x4BlkIdx為在目前巨集區塊CurrMbAddr內部之目前4x4亮度區塊之指數(以解碼順序)。舉例言之,luma4x4BlkIdx可定義為含4x4區塊乘以4加劃分數目之8x8區塊之luma8x8BlkIdx,如第9圖右下角所示。
設mbAddrA為含目前4x4亮度區塊左側4x4亮度區塊之該巨集區塊之巨集區塊位址,及設mbAddrB為含目前4x4亮度區塊上方4x4亮度區塊之該巨集區塊之巨集區塊位址。又復,設luma4x4BlkIdxA為目前4x4亮度區塊左側之4x4亮度區塊之該4x4亮度區塊指數(在巨集區塊mbAddrA內部),及設luma4x4BlkIdxB為目前4x4亮度區塊上方之4x4亮度區塊之該4x4亮度區塊指數(在巨集區塊mbAddrB內部)。
mbAddrA、mbAddrB、luma4x4BlkIdxA、luma4x4BlkIdxB及其利用性態獲得如下:
● 設(xC,yC)為相對於目前巨集區塊之左上亮度樣本之目前4x4亮度區塊之左上樣本的亮度位置。
● mbAddrA、其利用性態、及亮度位置(xW,yW)係如章節1.2.1所述獲得,給定亮度位置(xN,yN)=(xC-1,yC)。若mbAddrA為可利用,則luma4x4BlkIdxA之設定使得其指稱在巨集區塊mbAddrA內側涵蓋亮度位置(xW,yW)之4x4亮度區塊;否則,luma4x4BlkIdxA係標示為無法利用。
● mbAddrB、其利用性態、及亮度位置(xW,yW)係如章節1.2.1所述獲得,給定亮度位置(xN,yN)=(xC,yC-1)。若mbAddrB為可利用,則luma4x4BlkIdxB之設定使得其指稱在巨集區塊mbAddrB內側涵蓋亮度位置(xW,yW)之4x4亮度區塊;否則,luma4x4BlkIdxB係標示為無法利用。
1.2.5 鄰近4X4彩度區塊之規格
目前4x4亮度區塊之左上的鄰近4x4彩度區塊之規格係用於語法元素coded_block_flag之CABAC之脈絡模型化。
設chroma4x4BlkIdx為在目前巨集區塊CurrMbAddr內部之目前4x4彩度區塊之指數(以解碼順序)。
設mbAddrA為含目前4x4彩度區塊左側之4x4彩度區塊之該巨集區塊之巨集區塊位址,及設mbAddrB為含目前4x4彩度區塊上方之4x4彩度區塊之該巨集區塊之巨集區塊位址。又復,設chroma4x4BlkIdxA為目前4x4彩度區塊左側之4x4彩度區塊之4x4彩度區塊指數(巨集區塊mbAddrA內部);及設chroma4x4BlkIdxB為目前4x4彩度區塊上方之4x4彩度區塊之4x4彩度區塊指數(巨集區塊mbAddrB內部)。
mbAddrA、mbAddrB、chroma4x4BlkIdxA、chroma4x4BlkIdxB及其利用性態獲得如下:
●給定luma8x8BlkIdx=chroma4x4BlkIdx,變數mbAddrA、mbAddrB、luma8x8BlkIdxA、luma8x8BlkIdxB及其利用性態係如章節1.2.3獲得。
●若luma8x8BlkIdxA為可資利用,則chroma4x4BlkIdxA設定為等於luma8x8BlkIdxA;否則chroma4x4BlkIdxA係標示為無法利用。
●若luma8x8BlkIdxB為可資利用,則chroma4x4BlkIdxB設定為等於luma8x8BlkIdxB;否則chroma4x4BlkIdxB係標示為無法利用。
1.2.6 鄰近劃分之規格
目前劃分之左上鄰近劃分之規格係用於下列語法元素之CABAC脈絡模型化:ref_idx_10、ref_idx_11、mvd_10、mvd_11。
設mbPartIdx及subMbPartIdx為載明目前巨集區塊CurrMbAddr內部之目前劃分的巨集區塊劃分指數及子-巨集區塊劃分指數。子劃分指數之實例係顯示於第36圖。
設mbAddrA為含目前劃分左側劃分之該巨集區塊的巨集區塊位址,及設mbAddrB為含目前劃分上方劃分之該巨集區塊的巨集區塊位址。又復,設mbPartIdxA及subMbPartIdxA為目前劃分左側劃分之巨集區塊劃分指數及子-巨集區塊劃分指數(巨集區塊mbAddrA內部),及設mbPartIdxB及subMbPartIdxB為目前劃分上方劃分之巨集區塊劃分指數及子-巨集區塊劃分指數(巨集區塊mbAddrB內部)。
mbAddrA、mbAddrB、mbPartIdxA、subMbPartIdxA、mbPartIdxB、subMbPartIdxB及其利用性態獲得如下:
●設(xC,yC)為相對於目前巨集區塊之左上亮度樣本之由mbPartIdx及subMbPartIdx所給定的目前劃分之左上樣本的亮度位置。
●mbAddrA、其利用性態、及亮度位置(xW,yW)係如章節1.2.1所述獲得,給定亮度位置(xN,yN)=(xC-1,yC)。若 mbAddrA為無法利用,則mbPartIdxA及subMbPartIdxA標示為無法利用;否則mbPartIdxA之設定使得其指稱在巨集區塊mbAddrA內側涵蓋亮度位置(xW,yW)之巨集區塊劃分;及subMbPartIdxA之設定使得其指稱在巨集區塊mbPartIdxA內側(在巨集區塊mbAddrA內側)涵蓋亮度位置(xW,yW)之子-巨集區塊劃分。
● mbAddrB、其利用性態、及亮度位置(xW,yW)係如章節1.2.1所述獲得,給定亮度位置(xN,yN)=(xC,yC-1)。若mbAddrB為無法利用,則mbPartIdxB及subMbPartIdxB標示為無法利用;否則mbPartIdxB之設定使得其指稱在巨集區塊mbAddrB內側涵蓋亮度位置(xW,yW)之巨集區塊劃分;及subMbPartIdxB之設定使得其指稱在巨集區塊mbPartIdxB內側(在巨集區塊mbAddrB內側)涵蓋亮度位置(xW,yW)之子-巨集區塊劃分。
已經敘述如何將前述語法元素或倉串或其倉部分編碼成熵編碼位元串流後,該位元串流之解碼及倉之取回係就第37至39圖作說明。
第37圖顯示本發明適用之視訊解碼器環境之概略視圖。熵解碼器400接收如前述熵編碼位元串流,且處理為如同後文參考第38至39圖詳細說明。更明確言之,熵解碼器2400藉二元熵解碼而解碼熵編碼位元串流來獲得預編碼視訊信號,及更特別獲得其中所含語法元素及送至預編碼解碼器2402。預編碼解碼器2402運用語法元素諸如移動向量成分及旗標,諸如如上列舉語法元素來逐一巨集區塊及然後逐一截割片,取回視訊圖框2010之像素之圖像樣本。
第38圖現在顯示每次倉欲解碼時,藉熵解碼器2400執行的解碼處理程序。哪一個倉欲解碼係取決於藉熵解碼器2400目前預期的語法元素。此項知識係由個別語法剖析規定所得。
解碼處理程序中,首先於步驟2500,熵解碼器2400基於鄰近語法元素,檢查下一個欲解碼倉是否為具有與脈絡模型分配相對應的該型語法元素之倉。若情況並非如此,則熵解碼器2400前進至步驟2504的另一項語法元素處理。但若於步驟2500之檢查結果為陽性,則熵解碼器2400於步驟2506及2508進行欲解碼之目前倉所屬目前區塊之鄰近區塊的測定,及基於於步驟2506所測定之鄰近區塊的預定屬性而脈絡模型分配給該倉,其中步驟2506及2508係於第32圖之編碼處理程序之步驟2306及2308相對應。此等步驟之結果為脈絡指數ctxIdx。據此,在步驟2506及2508之ctxIdx的測定係以第32圖於步驟2306及2308之編碼處理程序之相同方式進行,來決定欲用在隨後熵解碼之脈絡模型。
然後,於步驟2522,藉由使用如於步驟2510至2520所得的ctxIdx檢索之脈絡模型的實際機率態,熵解碼器2400從熵編碼位元串流熵解碼實際倉。換言之,熵解碼器2400包含一常規解碼引擎,其係與內部有多個熵解碼器(各自係與個別部分位元串流相關聯)的前述熵解碼器中之任一者相對應。於步驟2522,請求倉,由機率指數所檢索的部分位元串流係與其具有或至少具有相依性。此一步驟結果為實際倉之值。
隨後,於步驟2524,ctxIdx機率態如同步驟2224之情況而被調適或更新。隨後,處理程序結束在步驟2526。
當然,藉第38圖所示處理程序獲得的個別倉,於語法元素屬二元型之情況下,僅表示語法元素值。否則,對應於二進制化之步驟須以顛倒方式進行來從倉串獲得語法元素之實際值。
第39圖顯示由虛線2527在左側圍繞的步驟2522及2524之進一步細節。在右側,以2564指示,第38圖顯示熵解碼器2400已經接取來載入、儲存與更新變數之記憶體及其內容。如圖可知,熵解碼器操控或管理與熵編碼器2014相同變數,原因在於熵解碼器2400模擬編碼程序,容後詳述。
於第一步驟2566,熵解碼器2400從部分位元串流獲得由與個別脈絡相關聯之機率指數檢索的目前倉值。
但該值係就MPS及LPS值以相對術語指示。因此,於步驟2570,熵解碼器2400檢查在熵編碼位元串流中的熵編碼碼字組之值是否為ωI 指示的最大可能符碼,該種情況下,解碼器2400於步驟2572據此設定倉值為ωi 值。於其它情況下,解碼器2400於步驟2574設定符碼為1-ωi 值。
於步驟2572後,於步驟2576,解碼器2400如同就第36圖步驟2338之描述,藉由變遷機率態指數ωi 而調適或更新如由ωi 及ωi 界定的目前脈絡模型i之機率態。隨後處理2527結束在步驟2578。
於步驟2574後,若ωi 係等於0,則解碼器2400在步驟2582藉運算ωi =1-ωi ,及以如就第36圖步驟2346所述相同方式,將機率態指數ωi 變遷為新機率態指數而在步驟2582及2584調適或更新機率態。隨後處理結束在步驟2578。
在已經描述特定實施例後,注意同樣非囿限於此等實施例。更明確言之,依據步驟2308及2408之分配無需與鄰近區塊之語法元素,亦即由預編碼器2012輸出的預編碼視訊信號所含語法元素具有相依性。反而,分配可與鄰近區塊之其它屬性具相依性。此外,就第35圖之表所描述的鄰近區塊間之鄰近關係定義可改變。又復,二交錯欄位之像素樣本係以前述以外之方式配置。
此外,4x4區塊以外的區塊大小也可用作為變換基礎,雖然如上實施例中,變換係應用至圖像樣本之預測差,但變換也可應用至圖像樣本本身而未進行預測。此外,變換類型並無特殊限制。DCT及FFT或子波變換皆可使用。此外,摘述的實例並未限於二元熵編碼/解碼。反而同樣也適用於多符碼熵編碼。此外,視訊圖框之細分成截割片、巨集區塊對、巨集區塊、圖像元素等僅供舉例說明之用而非囿限實例之範圍。
後文中,參考第40圖,以比第28圖更進一步細節顯示如第40圖於方塊2800所示含熵編碼器之視訊編碼器引擎的完整設置,其中使用藉使用基於鄰近語法元素之脈絡分配的前述語法元素之熵編碼。更明確言之,第40圖顯示針對用於巨集區塊之正在萌出H.264/AVC標準之基本編碼結構。輸入視訊信號分裂成多個巨集區塊,各巨集區塊具有16x16亮度像素。然後,選定巨集區塊與截割片群及截割片間之關聯性,及然後,各截割片之巨集區塊係藉第40圖之操作區塊網絡處理。此處須注意當圖像有多個截割片時,巨集區塊的有效並列處理為可能。巨集區塊與截割片群及截割片間之關聯性係利用第40圖之稱作編碼器控制裝置2802的區塊執行。存在有數個截割片,定義如下:
●I截割片:一截割片其中該截割片的全部巨集區塊皆使用內-預測編碼。
●P截割片:除了I截割片編碼型之外,P截割片之若干巨集區塊也使用跨-預測編碼,而每個預測區塊至多只有一個移動補償預測信號。
●B截割片:除了P截割片編碼型之外,B截割片之若干巨集區塊也使用跨-預測編碼,而每個預測區塊有兩個移動補償預測信號。
如上三型編碼極為類似先前標準,但參考圖像之使用除外,容後詳述。以下兩型針對截割片之編碼型為新穎:
●SP截割片:所謂切換P截割片,其係經編碼使得不同預編碼圖像間之有效切換變成可能。
●SI截割片:所謂切換I截割片,其係允許在SP截割片中巨集區塊的確切匹配來用於隨機存取及錯誤回復目的。
截割片為一序列巨集區塊,當未使用彈性巨集區塊排序(FMO)時,其係以光柵掃描順序處理。如第42圖所示,圖像可分裂成一個或數個截割片。因此一圖像為一或多個截割片之集合。截割片為自容式,表示給定作用中的序列及圖像參數集合,其語法元素可從位元串流剖析,在截割片表示之圖像區的樣本值可正確地解碼而未使用得自其它截割片之資料,但先決要件為在編碼器及解碼器利用的參考圖像為相同。得自其它截割片之若干資訊可能需要施加跨截割片邊界之解塊濾波器。
FMO利用截割片群組構想而修改圖像如何劃分成截割片及巨集區塊之方式。各截割片群組為由巨集區塊至截割片群組對映所界定之一巨集區塊集合,其係由圖像參數集合內容及得自截割片標頭之若干資訊所載明。巨集區塊至截割片群組對映係由圖像中各個巨集區塊之截割片群組識別號碼組成,載明相關聯之巨集區塊所屬哪一個截割片群組。各個截割片群組可被劃分為一或多個截割片,使得一截割片乃在一特定截割片群組之巨集區塊集合內部以光柵掃描順序處理的相同截割片群組內部之一序列巨集區塊(未使用FMO時的情況可視為其中整個圖像係由單一截割片群組所組成的FMO之簡單特例)。
使用FMO,一圖像可分裂成多個巨集區塊掃描樣式,諸如交插截割片、分散式巨集區塊配置、一或多個「前景」截割片群組及一「遺留」截割片群組,或棋盤型對映關係。
各巨集區塊可以若干編碼型中之一者傳輸,取決於截割片編碼型。在全部截割片編碼型中,支援下列內-編碼型,標示為Intra_4x4或Intra_16x16連同彩度預測模式及I_PCM預測模式。
Intra_4x4模式係基於分開預測各個4x4亮度區塊,極為適合用以編碼具顯著細節之一圖像部分。另一方面,Intra_16x16模式從事整個16x16亮度區塊之預測,更適合用以編碼一圖像之極為平順區。
除了此等二型亮度預測外,進行分開彩度預測。作為Intra_4x4及Intra_16x16之替代之道,I_PCM編碼型允許編碼器單純繞過預測與變換編碼處理程序,取而代之,直接發送編碼樣本值。I_PCM模式用於下列目的:
1. 允許編碼器精確地表示樣本值
2. 提供準確地表示異常圖像內容值之方式而無顯著資料放大
3. 針對一巨集區塊,允許對一解碼器須處理的位元數目加諸硬極限而未有損編碼效率。
與若干先前視訊編碼標準(亦即H.263+及MPEG-4視覺)相反,此處內-預測已經於變換域進行,藉由參考在欲預測區塊之左上的先前編碼區塊之鄰近樣本倉,於H.264/AVC之內-預測經常性地在空間域進行。如此可能在有因移動裝償而傳播入跨-編碼巨集區塊的傳輸錯誤環境下遭致錯誤傳播。因此,可傳訊經約束的內-編碼模式,其允許只從內-編碼鄰近巨集區塊預測。
當使用Intra_4x4模式時,各個4x4區塊係如第43圖左側之例示說明而從空間上鄰近的樣本預測。標示以a-p的4x4區塊之16個樣本係使用標示以A-Q之在相鄰區塊的先前解碼樣本預測。針對各4x4區塊,可運用九個預測模式中之一者。除「DC」預測(此處一個值係用來預測整個4x4區塊)外,如第41圖右側例示說明,載明八個方向性預測模式。該等模式係適合預測圖像中的方向性結構,諸如各個角之緣。
除了內-巨集區塊編碼型之外,各個預測或移動補償編碼型係載明為P巨集區塊型。各個P巨集區塊型相對應於巨集區塊特定劃分成用在移動補償預測之區塊形狀。劃分而有16x16、16x8、8x16及8x8樣本的亮度區塊大小係由語法支援。當選擇有8x8樣本之劃分時,針對各8x8劃分傳輸一個額外語法元素。此一語法元素載明相對應的8x8劃分是否進一步分割成為8x4、4x8或4x4亮度樣本及相對應之彩度樣本劃分。
各個預測編碼MxN亮度區塊之預測信號係藉置換相對應參考圖像之一區獲得,其係藉平移移動向量及圖像參考指數載明。如此,若巨集區塊係使用四個8x8劃分編碼,而各個8x8劃分又係分裂成四個4x4劃分,則針對單一P巨集區塊可傳輸至多16移動向量。
量化參數SliceQP係用來在H.264/AVC決定變換係數之量化。參數可有52值。此等值之排列使得量化參數遞增1表示量化階大小增加約12%(遞增6表示量化階大小恰增加2之因數)。注意階大小改變約12%也粗略表示位元率減低約12%。
一區塊的量化變換係數通常係以鋸齒形樣式掃描,及使用熵編碼法傳輸。彩度成分之2x2 DC係數係以光柵掃描順序掃描。在於H.264/AVC的全部反變換運算可只使用16-位元整數值之加法及位元移位運算而具體實現。同理,為了在編碼器獲得正向變換及量化程序的良好具體實現,只需16-位元記憶體存取。
第40圖之熵編碼器2800係遵照前文就第29圖所述編碼配置。脈絡模型化器將脈絡模型亦即機率資訊饋至熵編碼器,其又稱常規編碼引擎。欲編碼位元亦即倉係從脈絡模型化器前傳至常規編碼引擎。此一倉值也回授至脈絡模型化器,故可獲得脈絡模型更新。提供旁路分支,其包括熵編碼器,又稱旁路編碼引擎。旁路編碼引擎係運作來將輸入倉值熵編碼。與常規編碼引擎相反,旁路編碼引擎並非適應性編碼引擎,反而係以固定式機率模型工作未作任何脈絡適應。利用開關可獲得二分支的選擇。二進制化裝置係操作來將非二元值語法元素加以二進制化來獲得倉串,亦即二元值串。蕇語法元素已是二元值語法元素,則繞道二進制化器。
在所謂常規編碼模式中,在實際熵編碼處理程序之前,後文中將稱作為倉的給定二元決策進入脈絡模型化階段,此處選擇機率模型,使得相對應選擇可取決於先前編碼語法元素或倉。然後,在脈絡模型分配後,倉值連同其相關聯之模型送至常規編碼引擎,於該處進行熵編碼最末階段連同隨後模型更新(參考第29圖)。
另外,針對選定的倉選用旁路編碼模型來利用簡化編碼引擎而加速整個編碼(及解碼)處理程序,而未使用明確分配的模型。此一模型在考慮移動向量與變換係數位準間之差成分而編碼該等語法元素之一次後綴之倉時特別有效。
後文中,三個主要功能積木亦即第40圖編碼器的二進制化、脈絡模型化、及二元熵編碼連同其
實例5
本實例中,實例4及第34、35、46至49圖進一步延伸。依據本實例,藉由將資料值及預定截止值(cut-off value)中之最小值二進制化,依據第一二進制化方案而執行資料值之二進制化來獲得一元後綴;及若資料值係大於截止值,依據第二二進制化方案將資料值減預定截止值之差二進制化來獲得二元後綴,第一二進制化方案係與第二二進制化方案不同,且將一次後綴附接至一次前綴。
一資料值係從該資料值之二進制化表示型態回復,該資料值之二進制化表示型態為具有一次前綴的碼字組,該一次前綴為資料值及預定截止值中之最小值依據第一二進制化方案而二進制化,及若該資料值係大於預定截止值,一次後綴係附接至一次前綴,該一次後綴為資料值減預定截止值之差依據第二二進制化方案而二進制化,該方法包含從一次前綴抽取最小值;而若該最小值係等於截止值,則從該一次後綴抽取資料值減預定截止值之差。然後,預定截止值加至該差來獲得資料值;及若該最小值係小於截止值,則最小值視為資料值。
資料值之編碼成編碼位元串流包含依據第一二進制化方案而二進制化資料值及預定截止值中之最小值來獲得一次前綴;而若該資料值係大於截止值,則依據第二二進制化方案而二進制化料值減預定截止值之差而獲得二元後綴,該第一二進制化方案係與第二二進制化方案不同,及將一次後綴附接至一次前綴。然後,針對碼字組內的各位元,若碼字位之位元為一次前綴之一部分,則依據前述任一實施例具有機率估算相依性部分位元串流選擇,利用適應性改變位元值機率估算而執行二元熵編碼位元;或若碼字組之位元為一次後綴之一部分,則利用靜態位元值機率估算執行位元之二元編碼,藉此獲得編碼位元串流。
描述解碼一編碼位元串流,其表示該資料值之二進制化表示型態,該資料值之二進制化表示型態為具有一次前綴之一碼字組,該一次前綴為資料值及預定截止值中之最小值依據第一二進制化方案而二進制化,及若該資料值係大於預定截止值,一次後綴係附接至一次前綴,該一次後綴為資料值減預定截止值之差依據第二二進制化方案而二進制化,該方法包含針對碼字組內的各個位元,若該碼字組之位元乃一次前綴之一部分,則利用適應性變更位元值機率估算,亦即藉由透過與機率估算相關聯之部分位元串流取回位元,而藉二元熵解碼該編碼位元串流而測定該位元;及若該碼字組之位元乃一次後綴之一部分,則利用青態位元值機率估算,而藉二元解碼該位元而測定該位元,因而獲得碼字組。然後從一次前綴抽取最小值。若該最小值係等於截止值,則從該一次後綴抽取資料值減預定截止值之差,及預定截止值加至該差來獲得資料值。若該最小值係小於截止值,則最小值視為資料值。
資料值及特別為形成視訊信號的語法元素之移動向量差成分或變換係數位準值成分的極為有效壓縮係藉下述方式達成:使用二進制化方案來準備語法元素用於熵編碼器,該二進制化方案實質上為兩個不同二進制化方案之組合;及藉由使用二元熵編碼替代m-元熵編碼來編碼二進制化語法元素。
使用二元熵編碼引擎替代m-元熵編碼器在原先m-元來源字母表上操作之優點為機率估算的複雜度減低,原因在於兩個可能位元值之機率測定可只藉一個機率估算值而界定。針對m>2,適應性m-元熵編碼通常為運算複雜操作,要求大量相當複雜的操作來執行機率估算之更新。
依據特定實施例,使用截頭一元二進制化方案與第k次冪指數Golomb二進制化方案之級聯(concatenation)。此種級聯方案係稱作為一元/第k次冪Exp-Golomb(UEGk)二進制化方案,係應用至移動向量差及變換係數位準之絕對值。此等級聯二進制化方案之設計係藉下列觀察激勵。首先,就具體實現成本而言,一元碼為最簡單的無前綴碼。其次,其允許在隨後脈絡模型化階段個別符碼機率之快速調適,原因在於在相對應樹之節點配置典型地使得:隨著內部節點距根節點距離的增加,相對應二元機率較少扭斜。此等觀察針對移動向量差及變換係數位準之絕對值中之小值為正確。針對較大值,不太使用適應性模型化,結果導致級聯經調適的截頭一元樹作為前綴及靜態指數Golomb碼樹作為後綴之構想。典型地,針對較大值,EGk後綴部分表示相當良好匹配觀察得之機率分布,如前文已述。
為了例示說明一方面「位元」或二進制化器2102對映語法元素之碼字組之倉與另一方面「倉」間之關係,第44圖顯示與二進制化方案相對應之二元碼樹,後文就第46圖所述。碼樹大致上以元件符號3150指示,包含一根節點3152及數個內部節點3154,根節點3152及內部節點3154係以Ci 標示,指數i為與相對應節點相關聯之整數。此等節點各自界定一條件式分支或二元決策稱作為「倉」,左分支係對應於倉值0,而右分支係對應於倉值1。
樹3150也包括終端節點3156。第44圖中分配給終端節點3156之號碼係對應於語法元素之資料值,依據第46圖之二進制化方案,該號碼係與當遵循從根節點3152至個別終端節點3156的路徑時從位元或倉值所得碼字組或位元串相對應。舉例言之,如第46圖所示,倉值17係對應於碼字組位元串1111111111111101。路徑包含根節點3152及3154 C2 至C17 。各個節點3152或3154可視為二元決策稱作「倉」。從根節點3152至個別終端節點3156橫過樹3150之二元決策的級聯表示相對應符碼值或語法元素值之「倉串」。
各個二元決策具有一實際機率分布,指示機率有關該決策是否獲得二元0(第44圖之左分支)及二元1(第44圖之右分支)。換言之,二元決策之實際機率分布界定在此二元決策中語法元素路徑採用0或1分支之機率。據此,語法元素獲得某個資料值之實際機率係等於沿著從根節點3152至個別終端節點3156之路徑排列的節點之個別機率。
針對二元熵編碼,樹3150之各個二元決策或節點3152、3154亦即各倉係與倉值機率估算或脈絡模型亦即Ci 相關聯。容後詳述,並非全部節點或倉係與適應性機率估算模型相關聯,但可與靜態機率估算相關聯,藉此減少脈絡模型額外管理資料量,亦即依據過去倉用來調適估算之管理來提高壓縮比。
其次,參考第45圖,描述依據本發明之實施例二進制化方案之一實施例。第45圖示意地顯示二進制化器3102在非二元值語法元素上執行的步驟。更明確言之,第45圖為將變換係數位準之絕對值二進制化之實施例,亦即在定標用於變換係數值之運算前,在解碼處理程序中,表示與特定二維頻率指數相關聯值之數量。
第45圖之二進制化方案為一方面截頭一元二進制化方案與另一方面第k次冪Exp-Golomb二進制化方案之級聯。截頭一元二進制化方案係基於一元二進制化方案。基於一元二進制化方案,針對大於或等於0之各個無符號的整數值符碼x,x所對映的一元碼字組係由x個「1」位元加一個結束「0」位元組成。與一元二進制化方案不同,截頭一元(TU)碼只針對x而0xS定義,此處針對x<S,碼係以一元碼給定;而針對x=S,結束「0」位元被忽略,使得x=S之截頭一元碼係只藉由x個「1」位元所組成的碼字組給定,亦即不含結束「0」位元。依據指數Golomb二進制化方案,通常資料值x係對映至前綴及後綴組成的碼字組。更精確言之,依據第k次冪Exp-Golomb二進制化方案,資料值係對映至具有至少一前綴及取決於資料值,具有一後綴之碼字組。EGk碼字組之前綴部分係由對應於值1(x)之一元碼組成,而1(x )=log2 (x /2 k +1,k指示碼之次冪,及 r 為小於或等於實數值r之最大整數。EGk後綴部分係使用k+1(x)有效位元,運算為x+2k (1-21(x) )之二元表示型態。
如由第45圖可知,欲二進制化之絕對資料值x係在3200與截止值S作比較而判定x及S間之最小者。S為截止值界定欲排它地使用截頭一元碼之絕對資料值x,亦即未使用針對殘差之Golomb二進制化方案。換言之,針對小於截止值S之全部絕對資料值x,排它地使用截頭一元二進制化來將絕對資料值x對映至一碼字組,據此該碼字組僅由一次前綴組成。若絕對資料值x係大於或等於S,一次後綴係附接至一次前綴,則一次後綴係從x-S依據零次冪Exp-Golomb二進制化方案形成,容後詳述。
x及S間之最小者係在3202依據截頭一元二進制化方案而被二進制化。結果為一次前綴204,其形成x所對映之最終碼字組3206之至少一部分。如此一次前綴係由Min(S,Abs(x))值之一元二進制化組成,此處Min(a,b)表示a與b間之最小值,及此處Abs(x)表示x之絕對值。換言之,若x係大於或等於S則一次前綴係由S組成,若x係小於S則由x個前導1接著一個結束零組成。
於3208,絕對資料值x比較截止值S。若比較獲得x係小於S,則二進制化在3210結束,則絕對資料值x依據第45圖之二進制化方案所對映至的碼字組3206只由一次前綴3204組成。否則,換言之,若x係等於或大於S,則在3212,截止值S係從絕對資料值x扣除。所得x減S之差(偶爾稱作殘差)係在3214,依據第k次冪Exp-Golomb二進制化方案處理,k係等於零。後父將就第48圖敘述第k次冪Exp-Golomb二進制化方案之進一步細節。
差值「x-S」之二進制化3214結果係隨接至一次前綴3204作為一次後綴3208。因此,若絕對資料值x係大於或等於截止值S,則所得碼字組206係由一次前綴3204接著一次後綴3208所組成,其中一次後綴3208為x-S之第k次冪Exp-Golomb二進制化。容後詳述,一次後綴3208本身係由前綴與後綴組成,後文稱作二次前綴3218及二次後綴3220。
實驗研究顯示針對變換係數位準之絕對值,當將此等二進制變換係數位準值送至二元熵編碼器時,S=14及k=0獲得相當良好壓縮比,即便只有構成一次前綴之一部分的碼字組3206位元係使用適應性機率模型作熵編碼亦如此,藉此減低編碼額外管理資料量。
第46圖顯示一表,其中S=14及k=0,列舉左行3215之變換係數位準之絕對值,而在第45圖依據二進制化之相對應碼字組列舉在右3252。注意二進制化及隨後編碼程序係適應至語法元素「變換係數位準值減1」,原因在於零值亦即無意義的變換係數位準係使用前述顯著性對映表編碼。因此,參考第45圖,第46圖之表中在3250列舉x加1之值。第46圖之表顯示針對S=14及k=0之值第45圖之二進制化方案結果。
如圖可知,絕對值所對應的碼字組或倉串包含至少一個截頭一元(TU)前綴,碼字組或倉串之截頭一元(TU)前綴於第46圖係強調在3254。如圖可知,如3256所示,低於15(=x+1)之絕對值不具有EG0後綴。又,如虛線3258所示,各EG0後綴3256包含在虛線3258左側之二次前綴;及屬於絕對值15之碼字組的後綴除外,全部EG0後綴3256包含配置在虛線3258右側之二次後綴。
以第46圖之相同方式,第47圖顯示依據第45圖之二進制化方案,而k=3及S=9所得絕對值及倉串之成對之一表。等於第46圖之表元素的第47圖之表元素係以第46圖之相同元件符號指示,而刪除其重複描述。符號位元未顯示於第47圖之表。
當應用至移動向量差之絕對值時,依據第47圖根據二進制化方案之k及S值業已顯示良好壓縮效率。針對移動向量差,第47圖所示UEGk二進制係如下組成。假設給定移動向量成分值mvd。針對UEGk倉串之前綴部分,TU二進制化(第45圖之3202)係使用mvd絕對值帶有S=9截止值激發。若mvd等於零,則倉串只由前綴碼字組「0」270組成。若維持條件|mvd |9(第45圖之3208),則針對|mvd |-9之值組成後綴(第45圖之3214)成為EG3碼字組,針對負mvd使用符號位元「1」(圖中未顯示)附上mvd符號,否則即使用符號位元「0」(圖中未顯示)。針對mvd值,而0<|mvd |<9,後綴只由符號位元組成。
假設移動向量差之成分表示在四分之一樣本準確度之預測誤差,前綴部分經常性相對應於+/-2樣本之最大誤差成分。選擇指數-Golomb參數k=3,給定後綴碼字組,使得以2樣本為單位之預測誤差之幾何增高係藉相對應後綴碼字組長度之線性增加所擷取。
已經參考第45至47圖,以相當粗糙方式描述第29圖之二進制化器3102之功能後,就第48圖以進一步細節描述第45圖之第k次冪Exp-Golomb二進制化3214可能的具體實現。第48圖顯示假C碼,例示說明依據第45圖之二進制方案,組成表示絕對資料值x之二進制化的碼字組之一次後綴部分之處理程序。首先,於3300,輔助參數k係初始化至所使用的Exp-Golomb二進制化之次冪。於移動向量差之成分之二進制化情況下,例如k係在步驟3300初始化至值3。
若於行3302在移動向量差(mvd)之絕對值與截止值(此處為9)間之比較,顯示mvd之絕對值係大於或等於9,於步驟3304,截止值S=9係從mvd絕對值扣除而獲得sufS。此外,參數stopLoop係在步驟3306被初始化至零值。其次於3308,如同於行310檢查,執行條件式if-運算,只要stopLoop參數尚未改變其值為大於0之正值即可。若條件式if-運算顯示sufS係大於或等於2之第k次冪(312d),於3312輸出具有位元值1之一位元(3312a),2之第k次冪從sufS扣除(3312b))及遞增k(3312c)。否則,若sufS係小於2之第k次冪(3312e),輸出具有零位元值之一位元(3312f),使用位元數目等於k實際值之sufS二元表示型態(3312g)係輸出(3312h),及參數stopLoop係設定為1之值(3312e),藉此導致if-運算之迭代重複執行3308的停止。
若於步驟3302之比較執行的全部步驟3304至3312顯示mvd之絕對值係大於或等於9。與3302之比較獨立無關地,於3314,若mvd係大於零即輸出零之符號位元,而若mvd係小於零即輸出1之符號位元,該符號位元末顯示於第47圖。
由第48圖之假-C碼顯然易知,於第三次冪Exp-Golomb二進制化方案之情況下,後綴部分至少包含4位元,1位元為3312f之零位元,而另外三者為3312h之二元表示型態輸出位元,也於第47圖為可知,忽略各碼字組終端的符號位元。
依據本發明之實施例,已經描述在編碼器端的二進制化及熵編碼後,第49圖顯示本發明之實施例,在解碼器端執行步驟來解碼熵編碼位元串流。
首先,於步驟3400,解碼器接收熵編碼位元串流,判定欲從該編碼位元串流決定之下一個倉或位元是否為一次前綴位元或為一次後綴位元。解碼器從熵編碼位元串流之預定語法方式,判定預期的下一倉或位元是否為二進制化語法元素之一次前綴或一次後綴之位元。
於步驟3400,若判定預期位元為一次前綴位元,則解碼器藉熵編碼解碼,基於適應性變化機率估算或脈絡模型,判定此一位元之位元值。換言之,解碼器使用個別機率估算用以選擇而選定前述個別部分位元串流。解碼器基於由個別脈絡模型類別所指示的過去解碼倉而更新此適應性改變中的機率估算。
若該位元為一次後綴位元,於3404,藉由基於靜態機率模型,執行熵解碼而測定下一位元或倉值。如此涉及包括實際位元之碼字組對倉之1:1對映。
於3408,若有位元留下來達成整個碼字組之位元值,則解碼器重複步驟3400至3404。。若於步驟3408未留下位元,則解碼程序結束於步驟3410。於語法元素為絕對變換係數位準減1之情況下,從接續的個別二進制碼樹,諸如第44圖所示碼樹,解碼器知曉何時一語法元素之二元表示型態結束,亦即該解碼位元為實際語法元素的最末位元。
第50圖顯示藉第49圖方法所得碼字組,從其中回復已經二進制化成為碼字組之資料值之處理程序。藉第49圖方法所得位元值形成位元串流3450。如前述,解碼器知曉何時新碼字組係在位元串流3450上,亦即由信號3452指示之新碼字組情況。
於最小值抽取步驟3454中,藉由計數在碼字組之一次前綴中的領先1,而從二元碼字組抽取值m,計數等於m。若於步驟3456檢查m係等於S(因解碼器知曉哪一個語法元素係藉哪一個二進制化方案編碼,故S值為解碼器所知曉),於差抽取步驟3458中,接收來自位元串流3450在一次前綴位元隨後的位元,其形成碼字組之一次前綴部分。於差抽取步驟3458中,欲回復之資料值x與截止值S間之差係從在位元串流3450的碼字組之一次前綴回復。
於步驟3460,S加至於步驟3358回復的差x-S來獲得x值,亦即實際編碼語法元素值。
假-C碼例示說明最小值抽取步驟454之一實例為:
藉差抽取步驟3458中執行的子步驟係顯示於第51圖。於步驟3500中,差抽取器計數一次後綴中的領先位元而獲得m值。其次,k係於步驟3502與零比較,k針對移動向量差為3而針對變換係數位準值為0。若於步驟3504,k係等於零,則步驟步3504,m係與零比較。若比較獲得m=0,則於步驟3506推定資料值x係等於截止值S,該S值於移動向量差之情況為9,而於變換係數位準之情況為14。
若k不等於零及/或m不等於零,則於步驟3508,則從位元串流3450讀取其次k加m個隨後位元,亦即二次前綴之結束位元後方位元。藉此,達成A=x-S+2k (1-2m )之二元(k+m)位元長度表示型態。容易收集形成此一方程式A=x-S if m=0。
當於步驟3510,m與0比較顯示m=0時,從二元表示型態A扣除值2k (1-2m )而獲得x-S值。
實例6
本實例中,進一步延伸實例4,也適用第34、35、36、37a、b、39、45、46至49圖。本實例中,提供在預編碼視訊信號所含語法元素之編碼方案,其允許更高壓縮效果。
描述一種用以將含在預編碼視訊信號中之語法元素編碼成一編碼位元串流之方法,該預編碼視訊信號表示至少一個視訊圖框,該語法元素係與該視訊圖框之預定部分相關聯,及指示該視訊圖框之預定部分是否以第一或第二方式預編碼成預編碼視訊信號,該方法包含調查該預定部分鄰近的該視訊圖框之鄰近部分是否以第一或第二方式預編碼來獲得二元值;基於二元值,分配至少兩個脈絡模型中之一者給該視訊圖框之預定部分,其中各脈絡模型係與不同機率估算相關聯;最後,依據前述實施例中之任一者進行一符碼序列之編碼,至少一個符碼係關語法元素之表示型態。分配器係經組配來基於與分配給個別符碼之脈絡相關聯之機率分布估值而測定針對個別符碼之機率分布估值之量測值。選擇器據此而選擇個別熵編碼器。
依據本發明之第二構面,此一構面係藉由一種用以從一編碼位元串流解碼語法元素之方法而達成,該語法元素係含於一預編碼視訊信號,預編碼視訊信號表示至少一個視訊圖框,該語法元素係與該視訊圖框之預定部分相關聯,且係指示該視訊圖框之預定部分是否係以第一或第二方式預編碼成預編碼視訊信號,該方法包含調查該預定部分鄰近的該視訊圖框之鄰近部分是否以第一或第二方式預編碼來獲得二元值;基於二元值,分配至少兩個脈絡模型中之一者給該視訊圖框之預定部分,其中各脈絡模型係與不同機率估算相關聯;及依據前述實施例中之任一者重建一符碼序列,其中至少一個符碼係關語法元素之表示型態。分配器係經組配來基於與分配給個別符碼之脈絡相關聯之機率分布估值而測定針對個別符碼之機率分布估值之量測值。選擇器據此而選擇個別熵編碼器。
本實例係基於發現下述情況下,預編碼視訊信號之編碼可變得更為壓縮,與視訊圖框或圖像之預定部分相關聯之或指示視訊圖框之預定部分是否以第一或第二方式預編碼之一語法元素,亦即控制資訊語法元素係分配給至少二脈絡模型中之一者,該項分配係取決於該視訊圖框之鄰近部分是否以第一或第二方式預編碼。然後語法元素可基於一個脈絡模型相關聯之機率估算而熵編碼成編碼位元串流。藉此辦法,探討該語法元素之實際或真正機率分布對語法元素之相依性係屬同型,但係關聯該視訊圖框之鄰近部分,實際機率分布可更準確地求取近似值。
如此,本發明之優點為由於更準確的可調式機率估算,可加強編碼位元串流對預編碼視訊信號之壓縮比。
換言之,依據本發明之一實施例,特定一型語法元素每次出現在預編碼視訊信號時,可分配給至少兩個脈絡模型中之不同者。每次出現語法元素時執行脈絡模型之選擇,且係取決於該視訊圖框之鄰近部分是否以第一或第二方式預編碼。實際上,出現在預編碼視訊信號的全部此型語法元素係分組成數個脈絡模型群組,各個語法元素係屬一個脈絡模型群組,各個脈絡模型群組係分配給脈絡模型之不同者,及各個脈絡模型係與不同機率估算相關聯。因此,各群組係基於不同機率估算,換言之,屬於其所被分配的脈絡模型之機率估算而熵編碼。
依據本發明之另一實施例,各個脈絡模型之機率估算係調整適應於先前編碼語法元素,調適係針對各個脈絡模型分開進行。換言之,剛才已經熵編碼之各個語法元素係用來調整適應於該語法元素被分配的脈絡模型之機率估算。如此,接續的同型且分配給相同脈絡模型之語法元素利用適應性機率估算而熵編碼。藉此方式,因脈絡模型係彼此獨立無關地調適或管理,調適獲得更佳近似於實際或真正機率估算,因而導致更佳壓縮比。
依據本發明之一特定實施例,空間相依性脈絡模型之選擇係用來編碼在預編碼視訊信號中的圖框/欄位編碼模式旗標。圖框/欄位編碼模式旗標指示個別視訊圖框部分是否以圖框或欄位編碼模式編碼。更精確言之,依據此一實施例,視訊圖框為交錯圖框,此處部分圖像樣本係在一個時間瞬間拍攝,而其它圖像樣本係在不同時間瞬間拍攝,第一圖像樣本稱作第一欄位,而第二圖像樣本稱作第二欄位。此外,視訊圖框在空間上細分成一巨集區塊對陣列,各巨集區塊對係由二巨集區塊組成。當以欄位模式編碼時,巨集區塊對中之一個巨集區塊僅包含在該巨集區塊對內部之第一欄位之圖像樣本或第二欄位之圖像樣本,而該巨集區塊對中之另一個巨集區塊含有表該巨集區塊對內部之其它欄位之圖像樣本。當以圖框模式編碼時,巨集區塊含有第一及第二欄位圖像樣本,更明確言之,在一巨集區塊對內部之空間上頂或底樣本,而同一巨集區塊對之另一巨集區塊含有該巨集區塊對內部之其它圖像樣本。
將於後文就語法元素mb_field_decoding_flag以進一步細節說明,當同一倉或同一語法元素係在通過階段2100a之該等倉出現數次時,可分配給脈絡模型中之不同者,取決於前先輸入的或先前熵編碼倉。
已經描述編碼配置2100之操作後,後父將將依據本發明之實施例,就語法元素mb_field_decoding_flag之處理描述其功能之進一步細節。為了達成此項目的,首先,參考第30至31b圖解釋本旗標之意義。
現在,取決於巨集區塊對或巨集區塊對立多個巨集區塊由預編碼器2012編碼之模式進行分配,再度參考第28圖來解釋含在預編碼器4012所輸出的預編碼視訊信號中之語法元素mb_field_decoding_flag之功能及定義。
-當預編碼器4012接收表示一交錯視訊圖框之一視訊信號時,當編碼視訊圖框4010時,預編碼器4012可自由做出下列決策:
-可將二欄位一起組合成為一個單一編碼圖框,使各巨集區塊對及各巨集區塊將以圖框模式編碼。
-另外,可組合二欄位及編碼成為分開的編碼欄位,使各巨集區塊對及各巨集區塊將以欄位模式編碼。
至於最末選項,將組合二欄位及作為單一圖框壓縮,但當編碼圖框時,在編碼之前,將巨集區塊對分裂成成對的二欄位巨集區塊或成對的二圖框巨集區塊。
針對一序列之各圖框,可適應性地做出三個選項間之選擇。首二選項間之選擇係稱作為圖像適應性圖框/欄位(PAFF)編碼。當一圖框係編碼為二欄位時,各欄位係劃分成巨集區塊,且係以極為類似圖框之方式編碼。
若一圖框係由混合型區組成,此處若干區為移動性,而其它區則否,典型地更為有效地以圖框模式編碼非移動區,而以欄位模式編碼移動區。因此,針對在一圖框的各垂直巨集區塊對,可獨立地做出圖框/欄位編碼決策。此乃前文列舉選項中之第三編碼選項。此一編碼選項係稱作為巨集區塊適應性圖框/欄位(MBAFF)編碼。後文中假設預編碼器4012決定只使用此一選項。如前述,MBAFF編碼允許預編碼器將編碼模式型(欄位或圖框模式)更加地調整適應場景之個別區。舉例言之,預編碼器預編碼器4012以圖框模式編碼在一視訊場景之靜態區的巨集區塊對,而以欄位模式編碼在一視訊場景顯示快速移動區的巨集區塊對。
如前述,針對以欄位模式編碼之一巨集區塊對,各巨集區塊含有圖框行。針對以欄位模式編碼之一巨集區塊對,頂巨集區塊含有頂欄位行,及底巨集區塊含有底欄位行。針對各巨集區塊對之圖框/欄位決策係藉預編碼器4012而在巨集區塊對層面做出,亦即若頂巨集區塊屬欄位編碼,則同樣適用於同一巨集區塊對內部的底巨集區塊。藉此方式,基本巨集區塊處理結構維持完好,及移動補償區之大小允許與巨集區塊大小一般大。
一欄位巨集區塊對之各巨集區塊係以PAFF編碼,極為類似一欄位內部之巨集區塊處理。但因欄位與圖框巨集區塊對之混合物可能出現在MBAFF圖框內部,比較PAFF編碼,在預編碼器4012預編碼程序之某些階段,諸如移動向量之預測、內-預測模式之預測、內-圖框樣本預測、在熵編碼之解塊濾波及脈絡模型化、及變換係數之鋸齒形掃描係經修改來考慮此一混合物。
要言之,由預編碼器4012輸出之預編碼視訊信號係取決於預編碼器4012已經決定使用的編碼型。以MBAFF編碼為例,如此處假設,針對各個非跳過巨集區塊對,預編碼視訊信號含有旗標mb_field_decoding_flag。旗標mb_field_decoding_flag針對其所屬的各巨集區塊對指示相對應巨集區塊是否以圖框或欄位編碼模式編碼。在解碼器端,需要此一旗標來正確解碼預編碼視訊信號。於一巨集區塊對之多個巨集區塊係以圖框模式編碼時,旗標mb_field_decoding_flag為零;而另一情況下該旗標為1。
現在,雖然已經描述第29圖原先解碼器配置之操作的一般模式而未述及一特定倉,但參考第52圖,現在將就旗標mb_field_decoding_flag之二元熵編碼描述此一配置功能。
第52圖所示處理程序始於下述時間,此處旗標mb-field_decoding_flag到達脈絡模型化器4112之輸入端。於第一步驟4300,脈絡模型化器4112判定輸入的語法元素或倉是否為mb_field_decoding_flag。若否,則在步驟302,脈絡模型化器4112切換成另一語法元素處理程序或常式。若輸入倉為mb_field_decoding_flag,則在步驟304,脈絡模型化器4112判定旗標係屬哪一個脈絡模型。
第53圖顯示步驟4304之進一步細節。當判定脈絡模型對應於目前mb-field_decoding_flag時,於步驟4306,脈絡模型化器4112首先運算目前巨集區塊對左上巨集區塊對之頂巨集區塊位址。
於其次步驟4308及4309,脈絡模型化器4112分別地判定目前巨集區塊對左上巨集區塊對之頂巨集區塊之利用性。於步驟4308,當mbAddrA係小於0時,左側鄰近巨集區塊A標示為可資利用。同等適用於步驟4309有關mbAddrB。如此,於巨集區塊對確實真正存取之情況下,MbAddrN而N為A或B乃個別鄰近巨集區塊對之頂巨集區塊位址,且同時標示個別鄰近巨集區塊對A及B之利用性態。
另一實施例中,唯有除了前述條件外,下述亦為真時,巨集區塊A或B才標示為可資利用:具有位址mbAddrN之巨集區塊屬於目前截割片之相同截割片。
於步驟4308/4309判定巨集區塊N標示為可資利用,而N為A或B時,於步驟4310及步驟4311,分別判定巨集區塊N(N係等於A或B)為以欄位模式編碼之巨集區塊或以圖框模式編碼之巨集區塊。於巨集區塊A係以欄位模式編碼之情況下,於步驟4312,旗標condTermflagA係設定為1。同樣適用於巨集區塊B,故若巨集區塊B係以欄位模式編碼,於步驟4313,condTermflagB係設定為1。於全部其它情況下,亦即當mbAddrA係小於0(4308)或巨集區塊A係以圖框模式編碼(4310),於步驟4314,旗標condTermflagA係設定為0。據此,當mbAddrB係小於0(4309)或巨集區塊B係以圖框模式編碼(4311),於步驟4315,旗標condTermflagB係設定為0。
在步驟4316,condTermflagA及condTermflagB係由脈絡模型化器4112用來運算脈絡指數ctxIdxMbField指示欲用於mb_field_decoding_flag之二元熵編碼的機率模型。更明確言之,脈絡模型化器運算
ctxIdxMbField=condTermflagA+condTermflagB,
結果為{0,1,2}之數目。
回頭參考第52圖,於步驟4304之決策後,脈絡模型化器4112將變數ctxIdxMbField(脈絡指數巨集區塊欄位)或以ctxIdxMbField連同mb_field_decoding_flag檢索的機率估算態送至常規編碼引擎4118,其又轉而依據前述任一實施例組構而成。換言之,前述實施例之分配器透過測定之脈絡,依據所測定之機率而設定用以選擇部分位元串流之參數,轉而於步驟4304,選擇器發送ctxIdxMbField倉給個別部分位元串流路徑。於步驟4318,旗標mb_field_is則依據藉ctxIdxMbField檢索的脈絡模型之目前機率態而編碼成所選個別位元串流。
隨後,常規編碼引擎4118透過路徑4117將mb_field_decoding_flag倉值送回脈絡模型化器4112,此時於步驟4320,脈絡模型化器4112就其機率估算態而調整適應藉ctxIdxMbField檢索的脈絡模型。其後,在輸出端4124,旗標mb_field_decoding_flag編碼成為位元串流之處理程序結束在4322。
第54圖顯示藉熵解碼器4400執行的解碼處理程序之進一步細節。首先,於步驟4500,熵解碼器4400檢查下一個欲解碼倉是否為mb_field_decoding_flag。若情況並非如此,則於步驟4502,熵解碼器4400切換至另一倉處理程序(圖中未顯示)。若為是,則於步驟4504,熵解碼器4400判定旗標所屬的脈絡模型。步驟4504係以編碼程序步驟4304之相同方式進行或如第53圖所示。
然後,於步驟4506,藉由使用如在步驟4504所得的藉ctxIdxMbField檢索之脈絡模型之實際機率態檢索,而實際倉亦即mb_field_decoding_flag係得自個別部分位元串流熵解碼器。此一步驟結果為mb_field_decoding_flag值。隨後於步驟4508,如同步驟4320之情況,ctxIdxMbField機率態係經調適或更新。隨後,處理程序結束在步驟4510。
於步驟4504之測定獲得相同指數ctxIdxMbField,原因在於巨集區塊係以適當順序通過預編碼視訊信號,保證巨集區塊A及B(第22圖)之旗標mb_field_decoding_flag先前已經預編碼。如此,如同編碼器端之情況,基於鄰近巨集區塊之先前解碼旗標mb_field_decoding_flag,在步驟4504可推定脈絡模型。
注意前述實例並非囿限於指示一巨集區塊或巨集區塊對之圖框/欄位模式編碼的旗標。反而前文說明也適用於其它語法元素。
至於步驟4310,注意下述者。通常,巨集區塊係編碼成預編碼視訊信號。雖言如此,可能一巨集區塊未經編碼或未被跳過,原因在於此一巨集區塊的相對應變換係數位準全部皆小於某個量化臨界值。如此,針對某些巨集區塊,無法取得mb_field_decoding_flag。如此,若鄰近巨集區塊為被跳過者,可能無法藉單純調查個別鄰近巨集區塊之mb_field_decoding_flag而執行步驟4310。當針對鄰近巨集區塊對(含有第22圖之A或B)之任一巨集區塊不存在有mb_field_decoding_flag時(當底巨集區塊有一mb_field_decoding_flag時,此一者係選擇為A或B的mb_field_decoding_flag),適用下述者(假設含A之巨集區塊對被遺漏):
●若在同一截割片中有左側鄰近巨集區塊對(A),則mb_field_decoding_flag值(A)須推論為等於目前巨集區塊對之左側鄰近巨集區塊(含A)之mb_field_decoding_flag值,
●若在同一截割片中並無左側鄰近巨集區塊對(A),且在同一截割片中有上方鄰近巨集區塊對(A),則mb_field_decoding-flag值(A)須推論為等於目前巨集區塊對之上方鄰近巨集區塊(含A)之mb_field_decoding_flag值,
●否則,若在目前巨集區塊對並無左側或上方鄰近巨集區塊(含A),則(A之)mb_field_decoding_flag值須推定為等於零。
當然,單純藉由切換A成為B,前述步驟也適用於頂巨集區塊B。
此外,就第22及34圖所述其它鄰近關係可用檢測定熵編碼mb_field_decoding_flag之脈絡模型。
又復,如前文已述,前述實施例也適用於其它控制語法元素或其它倉。此外,本發明非僅囿限於二元熵編碼,反而也適用於其它符碼熵編碼。此外,視訊圖框之細分成截割片、巨集區塊對、巨集區塊圖像元素等僅供舉例說明之用,而非將本發明之範圍囿限於此特例。
實例7
本實例中,進一步延伸實例4,也適用第34、35、36、37a、b、39、45、46至49圖。依據實例7,一種編碼視訊圖框或圖像之方法包含劃分視訊圖框或圖像成為第一型部分及第二型部分,其中第一型部分係與第一掃描樣式相關聯,而第二型部分係與異於第一掃描樣式的第二掃描樣式相關聯;將該視訊圖框或圖像之各部分中之一預定部分相對應資料變換成二維變換係數陣列,其中在變換係數中的掃描順序係藉預定部分之掃描樣式界定,掃描順序對各個變換係數分配一個獨特掃描位置;預編碼該等變換係數中之一預定者來獲得變換資料單元;選擇第一及第二脈絡模型集合中之一者,取決於該預定部分為與第一或第二掃描樣式相關聯之類型部分,第一與第二集合彼此有別;基於分配給預定變換係數之掃描位置,而分配第一及第二脈絡模型集合中之選定一者的一個脈絡模型給變換資料單元其中各個脈絡模型係與不同機率估算相關聯;以及使用前述實施例中之任一者,基於所分配的脈絡模型所相關聯之機率估算,而將該變換資料單元或其子單元編碼成編碼位元串流。
依據實例7,描述從編碼位元串流而解碼一變換資料單元或其子單元,該變換資料單元為與一視訊圖框或圖像之多個部分之一預定部分相對應的資料變換結果所得多個變換係數中之一預定變換係數之預編碼版本,該等部分係為與第一掃描樣式相關聯之第一型之一部分或與第二掃描樣式相關聯之第二型之一部分,該方法包含選擇第一及第二脈絡模型集合中之一者,取決於該預定部分為與第一或第二掃描樣式相關聯之類型部分,第一與第二集合彼此有別;基於分配給預定變換係數之掃描位置,而分配第一及第二脈絡模型集合中之選定一者的一個脈絡模型給變換資料單元其中各個脈絡模型係與不同機率估算相關聯;以及使用前述實施例中之任一者,基於所分配的脈絡模型所相關聯之機率估算,而將該變換資料單元或其子單元編碼成編碼位元串流。
該項發現係探討當比較與不同掃描樣式相關聯之視訊圖框或圖像部分有關的變換資料單元或其子單元,使用不同脈絡模型集合來編碼與第一掃描樣式相關聯之視訊圖框或圖像部分有關的變換資料單元或其子單元時,得自視訊圖框或圖像之變換資料單元或其子單元可以更加壓縮方式編碼。藉此方式,脈絡模型可更加精準地調整適應實際符碼統計數字,由於不同掃描樣式,在屬於同一個掃描位置的不同變換資料單元間可能不同。由於可更加精準地近似實際機率分布,故可提高編碼位元串流之壓縮比。此外,因不同脈絡模型用於與不同掃描樣式相關聯之圖像部分有關的變換資料單元,故有助於該脈絡模型之機率估算的更新之變換資料單元顯示更加一致的實際機率分布,便更新後的機率估算確實更精準地近似實際機率分布。同理,提供不同脈絡模型集合,使得相對於實際機率分布,更精準地初始化脈絡模型之機率估算。如此,又更提供編碼位元串流之壓縮比。
已經描述巨集區塊適應性圖框/欄位編碼後,參考第55圖敘述依據本發明之一實施例在編碼方案期間圖框及欄位巨集區塊之一般性處理。第55圖顯示藉第28圖之預編碼器2012及熵編碼器2014執行編碼圖框及欄位巨集區塊之步驟。
第55圖顯示編碼視訊圖框或圖像5010之處理程序,該等視訊圖框或圖像5010已經如第34圖所述分割為巨集區塊對5010b1及5010b2。第55圖中只顯示兩個巨集區塊對5010b1及5010b2為例。假設巨集區塊對5010b1為欄位編碼,而巨集區塊對5010b2為圖框編碼。屬於巨集區塊對5010b1及5010b2之像素樣本係送至預編碼器5012,於該處於步驟5270處理。步驟5270包含從巨集區塊對5010b1及5010b2之圖像樣本扣除預測像素樣本,及將差值從空間域變換至譜域。步驟5220之結果為針對各個巨集區塊對5010b1及5010b2之數個二維變換係數陣列,各個二維變換係數陣列屬於巨集區塊對5010b1及5010b2中之一巨集區塊的子部分,諸如4x4像素樣本或像素樣本差之一子部分。第55圖之實例顯示5272指示的從巨集區塊5010b1導算出之此種個二維變換係數陣列,及從巨集區塊5010b2導算出之另一個二維變換係數陣列5274。例如陣列5272及5274為4x4陣列。其可藉施加DCT至巨集區塊對5010b1及5010b2中之一個巨集區塊上的4x4預測殘差區塊獲得。舉例言之,巨集區塊大小為16x16樣本。針對各巨集區塊,16個4x4預測殘差區塊可變換成16個4x4變換係數陣列。DCT可以是4x4離散餘弦變換或具有相似性質的分離式整數變換。藉由界定變換矩陣使得反變換係由確切整數運算所界定,而避免在解碼器端的反變換不匹配。
現在,後文中,假設4x4像素樣本區塊導致變換係數陣列5272相對應於巨集區塊2252中之像素區塊1至4、21至24、41至44及61至64;及陣列5274有關的4x4像素樣本區塊包含巨集區塊2250之像素樣本1至4、11至14、21至24及31至34,如第31a圖所示。
如圖可知,對其施加步驟5270變換的4x4區塊內之像素間之空間關係,該關係於欄位巨集區塊與圖框巨集區塊不同。更明確言之,沿該等行之像素間距於圖框巨集區塊比欄位巨集區塊加倍。因此,假設在陣列5272及5274相同陣列位置的兩個變換係數係有關不同頻率。因此之故,如前述,使用不同掃描樣式來在陣列5272及5274中的變換係數間界定掃描順序。其理由為較低頻變換係數較為可能為零。如此,不徟掃描順序用來依據其相關頻率而「分類」變換係數。
第56圖顯示用於圖框及欄位巨集區塊之掃描樣式之實例。於5274,如所例示說明,從一圖框巨集區塊獲得二維變換係數陣列。在各陣列位置,寫入0至15之數字,數字指示個別變換係數之掃描位置。箭頭5276表示掃描樣式。如圖可知,掃描樣式5276用來界定與一圖框編碼巨集區塊有關的變換係數間之掃描順序,係始於陣列5274的一角,以鋸齒形掃描,而對角線前進至起始角呈對角線相對角。第56圖假設陣列5274左上角具有掃描位置0的變換係數,表示於行及列方向之DC組件;而於對角線方向相對配置的具有掃描位置5015之變換係數表示於行及列方向之最高頻部分。
於第56圖右側,如圖所示變換係數陣列5272之掃描樣式係關欄位巨集區塊。再度,4X4變換係數陣列5272之各個陣列位置係以其掃描位置號碼標示。於欄位巨集區塊情況下之掃描樣式係以箭頭5278例示說明。如圖可知,欄位編碼巨集區塊之掃描樣式5278係與圖框編碼巨集區塊之掃描樣式5276不同。二掃描樣式5276及5278界定變換係數0至15間之掃描順序。
回頭參考第55圖,預編碼器5012於步驟5280前進,將陣列5272及5274之變換係數預編碼成變換資料單元序列5282及5284。該步驟將就第57圖以進一步細節描述,顯示一表有四列。於第一列中,列舉從0至8之掃描位置。於第二列中,針對掃描位置0至8給定可能的變換係數位準實例。假設在大於8之掃描位置的變換係數位準全部皆為0。
現在,當執行預編碼5280時,預編碼器5012係以掃描順序始於掃描位置0通過變換係數,且對各個變換係數執行下列步驟:
1. 若變換係數非為零,亦即變換係數為有效,預編碼器5012將此掃描位置之significant_coeff_flag設定為1。否則預編碼器5012將significant_coeff_flag設定為0。如圖可知,在掃描位置0之第一變換係數位準為9,使得如第57圖第三列可知,此一掃描位置之significant_coeff_flag為1。
2. 針對有效變換係數,證實此一變換係數是否為掃描順序中變換係數間的最末有效變換係數。若情況如此,則針對目前掃描位置之last_significant_coeff_flag經形成且設定為1。否則,針對目前掃描位置之last_significant_coeff_flag設定為0。如於第57圖末列可知,本實例中,最後一個有效的變換係數位準為在掃描位置8之變換係數。因此,針對此變換係數之last_significant_coeff_flag係設定為1,而針對在掃描位置0、2、3及6之其它有效變換係數之last_significant_coeff_flag係設定為0。
3. 針對全部有效變換係數,預編碼器5012形成載明此等變換係數之語法元素。
要言之,若個別變換係數為非有效,則預編碼器5012針對從第一掃描位置至最末有效變換係數的掃描位置之各個變換係數形成由任一significant_coeff_flag組成的變換資料單元;而於變換係數為有效之情況下,形成由significant_coeff_flag、last_significant_coeff_flag及載明個別變換係數值之資料所組成的變換資料單元。如此所得全部語法元素significant_coeff_flag及last_significant_coeff_flag形成有效對映表,指示有效的變換係數之掃描位置。
預編碼器5012將序列5282及5284摻入語法元素之線性串流,亦即預編碼視訊信號5286。語法元素之順序如下:
一般而言,首先,傳輸與有效對映表相對應之語法元素,接著為數值指示於反掃描順序之有效變換係數。更明確言之,序列5282及5284之第一語法元素為掃描位置0之significant_coeff_flag。若掃描位置0之變換係數為有效,則掃描位置0之significant_coeff_flag接著為該掃描位置之last_significant_coeff_flag。隨後,傳輸接續掃描位置亦即掃描位置0之1之significant_coeff_flag等等。已經傳輸具有非零變換係數的最末掃描位置之last_significant_coeff_flag後,非零變換係數之非二元值係以反掃描順序傳輸。於第57圖之實例中,於語法元素串流286中之語法元素為(始於第一語法元素):1、0、0、1、0、1、0、0、0、1、0、0、1、1、1、-1、-3、-5、9。
另三個語法元素5286饋至熵編碼器5014,其係逐一元素處理語法元素。後文敘述現在集中焦點在significant_coeff_flag及last_significant_coeff_flag的處理。當此種旗標到達熵編碼器5014時,基於後述掃描樣式而在步驟5288選擇兩個脈絡模型集合5290及5292中之一者,該掃描樣式係用來將二維變換係數矩陣對映至目前語法元素last_significant_coeff_flag或significant_coeff_flag所屬序列變換資料單元。為了進行步驟5288,熵編碼器5014檢視目前語法元素所屬前述目前巨集區塊之mb_field_decoding_flag,此一旗標指示目前巨集區塊是否以欄位模式編碼,該種情況下使用掃描樣式5278,或目前巨集區塊是否以圖框模式編碼,該種情況下使用掃描樣式5276。
下個步驟中,熵編碼器5014基於其掃描位置而分配脈絡模型集合5290及5292中之選定者的一個脈絡模型給欲編碼之目前語法元素。藉此方式,例如屬於序列5282掃描位置2的語法元素significant_coeff_flag結果導致脈絡模型集合5290之脈絡模型,該脈絡模型係與分配給序列5284掃描位置2的語法元素significant_coeff_flag之脈絡模型不同。如此解釋由於用來界定序列5282及5284的掃描位置的掃描樣式不同,故在此等掃描位置用於語法元素significant_coeff_flag之機率分布不同。
最後,於步驟5296,目前語法元素係使用從所選脈絡模型集合分配的脈絡模型進行二元熵編碼。此點係如前述實施例進行,亦即藉由使用所選脈絡之機率估值來選擇個別部分位元串流。
後文中參考第58圖,解釋藉得自第55圖之熵編碼器5014進行步驟5288、5294及5296之進一步細節。
第58圖所示處理程序始於語法元素到達脈絡模型化器5112之輸入端。於第一步驟5300,脈絡模型化器5112判定輸入的語法元素或倉是否為last_significant_coeff_flag。若否,則脈絡模型化器5112在步驟5302判定輸入的語法元素或倉是否為significant_coeff_flag。若非為此種情況,則脈絡模型化器5112在步驟5304切換成另一個語法元素處理程序或次常式。若目前語法元素為last_significant_coeff_flag,則在步驟5306檢查此一旗標是否屬圖框編碼巨集區塊或欄位編碼巨集區塊。步驟5306係等於檢查last_significant_coeff_flag所屬變換係數的掃描位置係藉掃描樣式5276或掃描樣式5278判定。若在步驟5302判定語法元素為significant_coeff_flag,則在步驟5308施行相同檢查。步驟5300、5302、5306及5308將語法元素可能到達的場景限在五種可能情況。當目前語法元素既非last_significant_coeff_flag也非significant_coeff_flag時,已經述及第一情況且已經存在。於此種情況下,於步驟5304進行另一個語法元素處理。於第二情況下,該語法元素為屬於欄位編碼巨集區塊之last_significant_coeff_flag,該種情況下,在步驟5310,脈絡指數偏位值係設定為值offset1。於第三情況下,目前語法元素為屬於圖框編碼巨集區塊之last_significant_coeff_flag,於該處在步驟5312,脈絡指數ctxIdx Offset係設定為offset2。同理,於第四及第五情況下,語法元素為屬於欄位編碼或圖框編碼巨集區塊之significant_coeff_flag,於該處分別地在步驟5340,脈絡指數ctxIdx Offset係設定為offset3,而於步驟5316係設定為offset4。指數ctxIdx偏位值係用以指向脈絡模型的共用表單。Offset1值至offset4值係彼此相異。
在步驟5310至5316後,在步驟5318,指數遞增器ctxIdxInc(脈絡指數遞增器)係設定為等於語法元素亦即last_significant_coeff_flag或significant_coeff_flag所屬掃描位置(scanningPos)。隨後,在步驟5320,脈絡指數係藉脈絡指數偏位值ctxIdx Offset與指數遞增器ctxIdxInc之和測定。步驟5300至5320係藉脈絡模型化器5112執行。步驟5320之結果為脈絡指數ctxIdx,指示用於語法元素之二或多個的機率模型。
在ctxIdx測定後,脈絡模型化器5112將變數ctxIdx或由ctxIdx檢索的機率估算態連同語法元素本身,亦即連同last_significant_coeff_flag或significant_coeff_flag送至常規編碼引擎118,如前文摘述該引擎係依據前述實施例中之任一者組配。基於此等輸入信號,在步驟5322,常規編碼引擎5118藉由使用如ctxIdx檢索的脈絡模型之目前機率態,而將語法元素熵編碼成位元串流5124。
其後,常規編碼引擎5118將倉值last_significant_coeff_flag或significant_coeff_flag分別地透過路徑117而送回脈絡模型化器5112,此處,在步驟5324,脈絡模型化器5112就其機率估算態而調適由ctxIdx所檢索的脈絡模型。其後,在輸出端5124處理將last_significant_coeff_flag或significant_coeff_flag編碼成位元串流,結束在5326。
由前文說明顯然易知,步驟5300至5316屬於第55圖之步驟5288,而步驟5318及5320屬於步驟5294,及步驟5322及5324屬於步驟5296。
在以進一步細節解釋實際解碼處理程序前,參考第59圖例示說明語法剖析處理程序,其針對在熵解碼器5400執行的語法剖析程序顯示假-C碼。第59圖所示語法剖析處理程序適用以剖析顯著性對映表連同其相對應巨集區塊係數值,但先決要件為顯著性對映表及係數值係以前文參考第57圖解釋之方式編碼,亦即在掃描順序之後而在有效變換係數之係數值前方的顯著性對映表係以反掃描順序排序。
第59圖中,粗體字所寫變數係讀取自到達熵解碼器5400之熵編碼位元串流。為了讀取,使用二元熵解碼。讀取處理程序係在第60圖針對倉significant_coeff_flag及last_significant_coeff_flag以進一步細節顯示。語法剖析程序稱作residual_block_CABAC,在第59圖假-C碼之行1可見。處理程序residual_block_CABAC之輸出為一維陣列coeffLevel,指示針對類似第57圖所示各個掃描位置之變換係數位準。至於輸入,處理程序residual_block_CABAC接收變數maxNumCoeff,其指示於一巨集區塊中係數之最大數目,於發明人之例為16。
然後,處理程序始於行2,讀取一旗標稱作coded_block_flag,指示在目前區塊中全部變換係數位準是否為零。本例中,coded_block_flag為零,否則coded_block_flag為1。後文中,假設coded_block_flag為1,故至少一個變換係數位準係非為零。因此,於行4,變數NumCoeff係設定為maxNumCoeff。如此表示後父中當讀取條件循環並無last_significant_coeff_flag係等於1時,最末有效變換係數之掃描位置係等於係數maxNumCoeff的最大數目。於行5,計數器i初始化為零。始於行6之隨後條件循環,首先,讀取一個倉且輸入significant_coeff_flag。參考第59圖,significant_coeff_flag為一維陣列。在行7讀取的倉係輸入陣列significant_coeff_flag之位置i,亦即significant_coeff_flag[i]。若significant_coeff_flag[i]為1(行8),亦即在掃描位置i的係數為有效,則從位元串流讀取下個倉,亦即last_significant_coeff_flag[i]。若last_significant_coeff_flag[i]為1(行10),亦即在掃描位置i的變換係數為掃描順序中的最末有效變換係數,則變數NumCoeff係在行11設定為i+1,及也屬一維陣列之coeffLevel在大於或等於i+1之全部位置係設定為零(行12及13)。如此表示超過掃描位置,於該處last_significant_coeff_flag為1,全部接續掃描位置的變換係數皆為零。
在二條件子句(行14湯15)後,於行16計數器i遞增。結束時,在行17,證實計數器i是否大於或等於NumCoeff-1。若屬此種情況,則條件循環再重複一次。如此,於行5至17,從位元串流讀取顯著性對映表。隨後於行18,讀取第一有效變換係數位準減1,亦即coeff_ups_level_minus1,接著讀取符號旗標coeff_sign_flag。更明確言之,在行18及19讀取的語法元素coeff_abs_level_ups_minus1及coeff_sign_flag涉及掃描順序中的最末有效變換係數。此一變換係數之實際值係在行20運算。然後,在從行21至28之迴圈循環,藉由使用在行4至17接收的顯著性對映表,其餘有效變換係數係讀取自位元串流。迴圈循環之計數器i係初始化為NumCoeff-2,亦即緊接在最末有效變換係數之掃描位置前方的掃描位置。在各次迴圈循環變遷後,此一計數器遞減。若significant_coeff_flag[i]為1(行22),則在掃描位置i的變換係數之係數位準係在行23至25測定,此等行實際上係同行18至20。若significant_coeff_flag[i]為0(行26),則在行27,掃描位置之係數位準係設定為0。
第60圖現在顯示每次倉被解碼時,藉熵解碼器400執行的解碼程序。哪一個倉欲解碼係取決於熵解碼器5400目前預期的語法元素。有關顯著性對映表及相對應的非零變換係數位準,此項知識係來自第59圖之語法剖析程序。
於解碼程序中,首先,於步驟5500,解碼器5400檢查下一個欲解碼倉是否為last_significant_coeff_flag。若為否,則在步驟5502檢查下一個欲解碼倉是否為significant_coeff_flag。下一個欲解碼倉係為significant_coeff_flag。若下一個欲解碼倉為last_significant_coeff_flag或significant_coeff_flag,則解碼器5400分別在步驟5504或5506檢查旗標是否屬於圖框編碼或欄位編碼巨集區塊。若下一個欲解碼倉非屬last_significant_coeff_flag及significant_coeff_flag中之任一者,則解碼器400在步驟504前進至另一語法元素處理。步驟5500、5502、5506及5508之檢查分別對應於第58圖之編碼程序的步驟5300、5302、5306及5308,據此,取決於下一個欲解碼倉為last_significant_coeff_flag或significant_coeff_flag及相對應巨集區塊為圖框編碼或欄位編碼,分別在步驟5510、5512、5514及5516中之一者,offset1、offset2、offset3、及offset4之ctxIdx Offset係設定為1。據此,ctxIdxInc及ctxIdx係在步驟5518及5520以第8圖步驟318及320之編碼程序之相同方式測定,來決定欲用在隨後熵解碼的脈絡模型。
然後,在步驟5522,熵解碼器5400藉由使用如於步驟5510至5520所得的藉ctxIdx檢索的脈絡模組之實際機率態,而從熵編碼位元串流解碼實際倉,亦即last_significant_coeff_flag或significant_coeff_flag。換言之,個別部分位元串流係基於機率指數及從其中取回的倉而選擇。此一步驟結果為實際倉值。隨後,於步驟5524,如同步驟5224的情況,ctxIdx係經調適或更新。其後,處理結束在步驟5526。
雖然於前述解碼程序中,步驟5527亦即mb_field_decoding_flag的解碼似乎係在各個倉解碼後進行,但實際上並非如此。實際上,此一步驟至多只針對一對巨集區塊對發生。
已經描述實施例,依據該等實施例,甚至先前編碼係用在壓縮視訊資料,參考第60a、b及62圖描述具體實現本發明之實施例之甚至額外實施例,該具體實現使得就一方面壓縮率與另一方面詢查表及運算額外管理資料量間的良好折衷而言為特別有效。更明確言之,下列實施例允許使用運算上較不複雜的可變長度碼來熵編碼個別位元串流,及有效地涵蓋機率估值部分。於後述實施例中,符碼為二元本質,如下呈現的VLC碼有效地涵蓋由例如在[0;0.5]內部延伸之RLPS 表示的機率估值。
更特別地,如下摘述之實施例描述分別於第1至11圖之個別熵編碼器10及熵解碼器22。當出現在影像或視訊壓縮應用,其係適用於倉亦即二元符碼之編碼。據此,此等實施例也適用於影像或視訊編碼,此處此等二元符碼分別係分裂成欲編碼之倉7及欲解碼之位元串流24中之一或多個串流,此處各個此種倉串流可視為貝奴利(Bernoulli)處理程序之實現。後述實施例使用後文解釋之多個所謂變數至變數碼(v2v碼)中之一或多者來編碼倉串流。v2v碼可視為有等數碼字組的兩個無前綴碼。一次及二次無前綴碼。一次無前綴碼之各個碼字組係關聯一個二次無前綴碼的碼字組。依據後文摘述之實施例,編碼器10及解碼器22中之至少數者操作如下:為了編碼倉7之一特定序列,每當一次無前綴碼之一碼字組係讀取自緩衝器8,二次無前綴碼之相對應碼字組係寫至位元串流12。相同程序係用來解碼此種位元串流24,但一次及二次無前綴碼交換。換言之,為了解碼位元串流24,每當二次無前綴碼之一碼字組係讀取自個別位元串流24,一次無前綴碼之相對應碼字組係寫至緩衝器20。
優異地,後述碼無需詢查表。碼係以有限態機器形式具體實現。此處呈現的v2v碼可藉簡單建構規則產生,因而針對碼字組無需儲存大型表。取而代之,簡單演繹法則可用來執行編碼或解碼。後父敘述三個建構規則,其中二者可被參數化。其涵蓋前述機率間隔之不同的或甚至不相連的部分,及據此,因而一起使用時特別優異,諸如全部三碼並列使用(各自用於編/解碼器10及22中之不同者),或使用其中二者。使用後述建構規則,可能設計v2v碼集合,使得針對帶有任意機率p的貝奴利處理程序,就過長碼長度而言,該等碼中之一者效能良好。
如前述,串流12及24個別的編碼及解碼可針對各串流獨立或以交插方式進行。但如此對所呈現的v2v碼類別不具特異性,因此後文中,針對三個建構規則各自只描述一特定碼字組之編碼及解碼。但須強調有關交插解決辦法之全部前述實施例也可與此處描述的碼或編碼及解碼器10及22組合。
建構規則1:「一元倉管路」碼或編/解碼器10及22
一元倉管路碼(PIPE=機率區間劃分熵)乃所謂「倉管路」碼之特別版本,亦即適用於編碼個別位元串流12及24中之任一者的碼,各自移轉屬於前述機率範圍[0;0.5]之某個機率子區間的二元符碼統計數字資料。首先描述倉管路碼之建構。倉管路碼可從有至少三個碼字組的任何無前綴碼建構。為了形成v2v碼,其使用無前綴碼作為一次碼及二次碼,但二次無前綴碼之兩個碼字組交換。如此表示除了兩個碼字組外,倉係未改變而寫至位元串流。利用此項技術,只有一個無前綴碼須連同該資訊儲存,該二碼字組交換,因而減少記憶體的耗用。注意唯有交換不同長度碼字組為合理,原因在於否則位元串流將具有倉串流的相等長度(忽略在倉串流末端可能發生的效應)。
由於此項建構規則,倉管路碼之一項醒目性質為若一次與二次無前綴碼互換(同時碼字組的對映保留),結果所得v2v碼係與原先v2v碼相同。因此,針對倉管路碼,編碼演繹法則與解碼演繹法則相同。
一元倉管路碼係特殊無前綴碼建構。此一特殊無前綴碼係建構如下。首先,n個一元碼字組所組成之無前綴碼係始於「01」、「001」、「0001」、...生成直至產生n個碼字組。n乃一元倉管路碼之參數。從最長碼字組去除尾端1。如此係與截頭一元碼(但不含碼字組「0」)相對應。然後n-1個一元碼字組係始於「10」、「110」、「1110」、...生成直至產生n-1個碼字組。從最長碼字組去除尾端0。此二無前綴碼之聯合集合係用作為輸入來產生一元倉管路碼。交換的兩個碼字組為只由0所組成者及只由1所組成者。
n=4之實例:
建構規則2:「一元對大米(rice)」碼及一元對大米編/解碼器10及22:
一元對大米碼使用截頭一元碼作為一次碼。亦即一元碼字組係始於「1」、「01」、「001」、...生成,直至產生2n +1個碼字組及從最長碼字組去除尾端1。n乃一元對大米碼之參數。二次無前綴碼係從一次無前綴碼之碼字組建構如下。對只由1所組成之一次碼字組,分配碼字組「1」。全部其它碼字組係由碼字組「0」與一次無前綴碼之相對應碼字組的數目0之n-位元二元表示型態的級聯所組成。
n=3之實例:
注意此乃與無限一元碼對映至具有大米參數2n 之大米代碼相同。
建構規則3:「三倉」碼
三倉碼表示為
其具有下述性質,一次碼(符碼序列)具有固定長度(經常性為3倉)及碼字組係藉1之上升數列分類。
其次敘述三倉碼之有效具體實現。三倉碼之編碼器及解碼器可具體實現而未以下述方式儲存表。
在編碼器中(任一個10),三倉係續取自倉串流(亦即7)。若此三倉確切含有一個1,則碼字組「1」係寫至位元串流,接著為由1位置之二元表示型態(始於右側00)所組成的二倉。若三倉恰含一個0,則碼字組「111」係寫至位元串流,接著為由0位置之二元表示型態(始於右側00)所組成的二倉。其餘碼字組「000」及「111」分別係對映至「0」及「11111」。
於解碼器(任一個22),一個倉或位元係讀取自個別位元串流24。若其係等於「0」,則碼字組「000」係解碼成倉串流21。若其係等於「1」,則再從位元串流24多讀取二倉。若此二位元係不等於「11」,則其係解譯為數字之二元表示型態,兩個0及一個1係解碼成位元串流,使得1之位置係由數字決定。若該二位元等於「11」,則又讀取二位元,及解譯為數字之二元表示型態。若此數目係小於3,則兩個1及一個1經解碼及數字決定0之位置。若係等於3,則「111」係解碼成位元串流。
其次描述一元倉管路碼之有效具體實現。針對一元倉管路碼之編碼器及解碼器可藉由使用計數器而有效具體實現。由於倉管路碼之結構,容易具體實現倉管路碼之編碼與解碼:
在編碼器(任一個10)中,若一碼字組之第一倉等於「0」,則倉係處理直到出現「1」,或直到讀取n個0(含該碼字組的第一個「0」)。若出現「1」,則讀取倉未經改變地寫至位元串流。否則(亦即讀取n個0),則n-1個1係寫至位元串流。若該碼字組之第一倉等於「1」,則倉係處理直到出現「0」,或直到讀取n-1個1(含該碼字組的第一個「1」)。若出現「0」,則讀取倉未經改變地寫至位元串流。否則(亦即讀取n-1個1),則n個0係寫至位元串流。
在解碼器(任一個22),相同演繹法則係用於編碼器,原因在於此點同前述倉管路碼。
其次敘述一元對大米碼之有效具體實現。一元對大米碼之編碼器及解碼器可藉使用計數器而有效具體實現,現在將加以描述。
在編碼器中(任一個10),倉係讀取自倉串流(亦即7)直到出現1或直到讀取2n 個0為止。計數0之數目。若計數數目等於2n ,則碼字組「1」寫至位元串流。否則寫入「0」,接著為以n位元寫成的計數數目之二元表示型態。
於解碼器中(任一個22),讀取一個位元。若係等於「1」,則2n 個0係解碼至倉串。若係等於「0」,則再讀取n位元及解譯為一數目之二元表示型態。此種0之數目係解碼成位元串流接著為「1」。
換言之,剛描述的實施例敘述用以編碼符碼序列3之編碼器,包含一分配器16,其係經組配來基於該符碼序列之先前符碼內部所含資訊而分配多個參數5給該符碼序列之各個符碼;多個熵編碼器10,其個自係經組配來將前傳給個別熵編碼器10之符碼7轉換成個別位元串流12;及一選擇器6,其係經組配來將各個符碼3前傳至多個熵編碼器10中之一選定者,該項選擇係取決於分配給個別符碼3之參數5之數目。依據剛摘述之實施例,至少一第一熵編碼器子集可以是可變長度編碼器,其係經組配來將在符碼7串流內部的可變長度符碼序列分別地對映至欲插入位元串流12之可變長度碼字組,第一子集之各個熵編碼器10使用雙射對映規則,據此,具有(2n-1)3碼字組之一次無前綴碼之碼字組係對映至二次無前綴碼之碼字組,其係與一次前綴碼相同,使得一次無前綴碼之碼字組全部(二者除外)係對映至二次無前綴碼的相同碼字組,而一次及二次無前綴碼的兩個碼字組具有不同長度,且係以彼此互換方式相對映,其中熵編碼器可使用不同n,因而涵蓋前述機率區間之一區間的不同部分。第一無前綴碼可經建構成使得第一無前綴碼之碼字組為(a,b)2 、(a,a,b)3 、...、(a,...,a,b)n 、(a,...,a)n 、(b,a)2 、(b,b,a)3 、...、(b,...,b,a)n-1 、(b,...,b)n-1 ,及以彼此互換方式相對映兩個碼字組為(a,...,a)n 及(b,...,b)n-1 此處baa ,b {0,1}。但其它替代例亦可行。
換言之,第一熵編碼器子集各自可經組配來,在將前傳至個別熵編碼器之符碼轉換成個別位元串流中,檢查前傳個別熵編碼器的第一符碼來判定(1)第一符碼是否等於a {0,1},該種情況下,個別熵編碼器係經組配來檢查前傳給個別熵編碼器之接續符碼,而判定是否(1.1)在第一符碼後之其次n-1個符碼出現b而bab {0,1},該種情況下,個別熵編碼器係經組配來將一碼字組寫至個別位元串流,其係等於第一符碼接著為前傳至個別熵編碼器的接續符碼直至符碼b;(1.2)在第一符碼後之的其次n-1個符碼未出現b,該種情況下,個別熵編碼器係經組配來將一碼字組寫至個別位元串流,其係等於(b,...,b)n-1 ;或(2)第一符碼等於b,該種情況下,個別熵編碼器係經組配來檢查前傳給個別熵編碼器之接續符碼,而判定是否(2.1)在第一符碼後之其次n-2個符碼出現a,該種情況下,個別熵編碼器係經組配來將一碼字組寫至個別位元串流,其係等於第一符碼接著為前傳至個別熵編碼器的接續符碼直至符碼a;或(2.2)在第一符碼後之的其次n-2個符碼未出現a,該種情況下,個別熵編碼器係經組配來將一碼字組寫至個別位元串流,其係等於(a,...,a)n
此外或另外,熵編碼器10之第二子集可以是可變長度編碼器,其係經組配來將可變長度符碼序列分別地對映至固定長度碼字組,第二子集之熵編碼器各自使用雙射對映規則,據此,屬於{(a),(ba),(bba),...,(b...ba),(bb...b)}而baa ,b {0,1}型的2n +1碼字組之一次截頭一元碼的碼字組係對映至二元無前綴碼之碼字組,使得一次截頭一元碼的碼字組(bb...b)係對映至二次無前綴碼之碼字組(c);而一次截頭一元碼的碼字組之全部其它碼字組{(a),(ba),(bba),...,(b...ba)}係對映至具有(d)而cdc ,d {0,1}作為前綴及n-位元字組作為後綴的碼字組,其中熵編碼器使用不同n。第二熵編碼器子集各自可經組配來使得n-位元字組為個別一次截頭一元碼的碼字組中的b數目之n-位元表示型態。但其它替代例亦可行。
再度,從個別編碼器10之操作觀點,第二熵編碼器子集各自可經組配來在將前傳至個別熵編碼器的符碼變換成個別位元串流中,計數在前傳至個別熵編碼器的符碼序列中的b數目,直至a出現,或直至前傳至個別熵編碼器的符碼序列之數目達2n ,而該序列之全部2n 符碼為b,及(1)若b之數目等於2n ,則將c而c {0,1}寫作為二次無前綴碼之碼字組至個別位元串流;及(2)若b之數目小於2n ,則將二次無前綴碼之碼字組寫至個別位元串流,其具有(d)而cdd {0,1}作為前綴,及依b之數目決定的n-位元字組作為後綴。
又,此外或另外,熵編碼器10中之預定者可以是可變長度編碼器,其係經組配來將固定長度符碼序列分別地對映至可變長度碼字組,該預定熵編碼器使用雙射對映規則,據此一次碼之長度3的23 碼字組係對映至二次無前綴碼之碼字組,使得一次碼之碼字組(aaa)3a {0,1}係對映至碼字組(c)而c {0,1},一次碼之全部三個碼字組具有恰一個b,而bab {0,1}係對映至碼字組,其具有(d)而cdd {0,1}作為前綴,及2-位元字組之第一集合中的個別第一個2-位元字組作為後綴,恰具有一個a之一次碼的全部三個碼字組係對映至碼字組,其具有(d)作為前綴,及非屬第一集合成員之第一2-位元字組與第二2-位元字組集合中之第二2-位元字組的級聯作為後綴;及其中碼字組(bbb)3 係對映至一碼字組,其具有(d)作為前綴,及非屬第一集合成員之第一2-位元字組與非屬第二2-位元字組集合成員之第二2-位元字組的級聯作為後綴。恰具有一個b之一次碼的碼字組之第一2-位元字組可以是一次碼之個別碼字組中之b位置的2-位元表示型態;而恰具有一個a之一次碼的碼字組之第二2-位元字組可以是一次碼之個別碼字組中之a位置的2-位元表示型態。但其它替代例亦可行。
再度,熵編碼器中之預定者可經組配來在將前傳至個別熵編碼器的符碼轉換成個別位元串流中,檢查呈三聯碼送至預定熵編碼器的符碼有關(1)三聯碼係由a組成,該種情況下,預定熵編碼器係經組配來將碼字組(c)寫至個別位元串流;(2)三聯碼恰含一個b,該種情況下,預定熵編碼器係經組配來將一碼字組,其具有(d)作為前綴及三聯碼中b位置的2-位元表示型態作為後綴寫至個別位元串流;(3)三聯碼恰包含一個a,該種情況下,預定熵編碼器係經組配來將具有(d)作為前綴及目為第一集合成員的第一2-位元字組與三聯碼中a位置之2-位元型的級聯作為後綴的一碼字組寫至個別位元串流;或(4)由b組成之三聯碼,該種情況下,預定熵編碼器係經組配來將具有(d)作為前綴及目為第一集合成員的第一2-位元字組與非屬第二2-位元字組集合之第二2-位元字組的級聯作為後綴的一碼字組寫至個別位元串流。
有關解碼端,前述實施例揭示一種用以重建一符碼26序列之解碼器,包含多個熵解碼器22,其各自係經組配來將個別位元串流24轉換成符碼21;一分配器16其係經組配來基於前先重建的符碼序列之符碼所含資訊,將多個參數分配給欲重建立一符碼序列的各符碼26;及一選擇器18其係經組配來從多個熵解碼器中之選定者取回欲重建立一符碼序列的各符碼25,該項選擇係取決於界定給個別符碼之參數數目。恰依據前述實施例,熵解碼器22之至少第一子集為可變長度解碼器,其係經組配來將可變長度碼字組分別地對映至可變長度符碼序列,而第一子集之各個熵解碼器22使用雙射對映規則,據此,一次無前綴碼之碼字組而(2n-1)3碼字組,係對映至二次無前綴碼之碼字組,其係與一次前綴碼相同,使得一次無前綴碼之碼字組全部(二者除外)係對映至二次無前綴碼的相同碼字組,而一次及二次無前綴碼的兩個碼字組具有不同長度,且係以彼此互換方式相對映,其中熵編碼器可使用不同n。第一無前綴碼可經建構成使得第一無前綴碼之碼字組為(a,b)2 、(a,a,b)3 、...、(a,...,a,b)n 、(a,...,a)n 、(b,a)2 、(b,b,a)3 、...、(b,...,b,a)n-1 、(b,...,b)n-1 ,及以彼此互換方式相對映兩個碼字組為(a,...,a)n 及(b,...,b)n-1 此處baa ,b {0,1}。但其它替代例亦可行。
第一熵編碼器子集各自可經組配來,在將個別位元串流轉換成符碼中,檢查個別位元串流之第一位元來判定(1)第一位元是否等於a {0,1},該種情況下,個別熵編碼器係經組配來檢查前傳給個別位元串流之接續位元,而判定是否(1.1)在第一位元後之其次n-1個位元出現b而bab {0,1},該種情況下,個別熵解碼器係經組配來重建一符碼序列,其係等於第一位元接著為個別位元串流的接續位元直至位元b;(1.2)在第一位元後之的其次n-1個位元未出現b,該種情況下,個別熵解碼器係經組配來重建一符碼序列,其係等於(b,...,b)n-1 ;或(2)第一位元等於b,該種情況下,個別熵解碼器係經組配來檢查個別位元串流之接續位元,而判定是否(2.1)在第一位元後之其次n-2個位元出現a,該種情況下,個別熵解碼器係經組配來重建一符碼序列,其係等於第一位元接著為個別位元串流的接續位元直至位元a;或(2.2)在第一位元後之的其次n-2個位元未出現a,該種情況下,個別熵解碼器係經組配來重建一符碼序列,其係等於(a,...,a)n
此外或另外,至少熵解碼器22之第二子集可以是可變長度解碼器,其係經組配來將固定長度碼字組分別地對映至可變長度位元序列,第二子集之熵解碼器各自使用雙射對映規則,據此,屬於{(a),(ba),(bba),...,(b...ba),(bb...b)}而baa ,b {0,1}型的2n +1碼字組之二元無前綴碼之碼字組係對映至一次截頭一元碼的碼字組,使得二次無前綴碼之碼字組(c)係對映至一次截頭一元碼的碼字組(bb...b);而具有(d)而cdc ,d {0,1}作為前綴及n-位元字組作為後綴的碼字組係對映至一次截頭一元碼的碼字組之全部其它碼字組{(a),(ba),(bba),...,(b...ba)},其中熵解碼器使用不同n。第二熵解碼器子集各自可經組配來使得n-位元字組為個別一次截頭一元碼的碼字組中的b數目之n-位元表示型態。但其它替代例亦可行。
熵解碼器之第二子集各自可以是可變長度解碼器,其係經組配來將固定長度碼字組分別地對映至可變長度符碼序列,及其係經組配來於將個別熵解碼器之位元串流轉換成符碼中,檢查個別位元串流之第一位元而判定(1)其係等於c而c {0,1},該種情況下,個別熵解碼器係經組配來重建等於之一符碼序列而b {0,1};或(2)其係等於d而cdc ,d {0,1},該種情況下,個別熵解碼器係經組配來從個別位元串流之在第一位元後方的n個額外位元測定n-位元字組,及從其中重建一符碼序列,其屬{(a),(ba),(bba),...,(b...ba),(bb...b)}型而bab {0,1},b之數目係取決於n-位元字組。
此外或另外,熵解碼器22中之預定者可以是可變長度解碼器,其係經組配來將可變長度碼字組分別地對映至固定長度符碼序列,該預定熵解碼器使用雙射對映規則,據此,二次無前綴碼之碼字組係對映至一次碼之長度3的23 碼字組,使得碼字組(c)而c {0,1}係對映至一次碼之碼字組(aaa)3a {0,1};具有(d)而cdd {0,1}作為前綴及三個2-位元字組之第一集合中的個別第一個2-位元字組作為後綴之碼字組係對映至一次碼之全部三個碼字組具有恰一個b,而bab {0,1};具有(d)作為前綴及非屬第一集合成員之第一2-位元字組與第二2-位元字組集合中之第二2-位元字組的級聯作為後綴的碼字組係對映至恰具有一個a之一次碼的全部三個碼字組;具有(d)作為前綴及非屬第一集合成員之第一2-位元字組與非屬第二集合中之第二2-位元字組的級聯作為後綴的碼字組係對映至碼字組(bbb)3 。恰有一個b之一次碼的碼字組之第一2-位元字組可以是在個別一次碼碼字組中b位置的2-位元表示型態;及恰有一個a之一次碼的碼字組之第二2-位元字組可以是在個別一次碼碼字組中a位置的2-位元表示型態。但其它替代例亦可行。
熵解碼器之預定者可以是一種可變長度解碼器,其係經組配來將可變長度碼字組分別地對映至各自有三符碼之符碼序列;及其係經組配來將個別熵解碼器之位元串流轉換成符碼中,檢查個別位元串流之第一位元來判定(1)個別位元串流之第一位元等於c而c {0,1},該種情況下,預定熵解碼器係經組配來重建一符碼序列其係等於(aaa)3a {0,1};或(2)個別位元串流之第一位元等於d而cdd {0,1},該種情況下,預定熵解碼器係經組配來從個別位元串流接在第一位元後方之另二位元判定一第一2-位元字組,及檢查該第一2-位元字組而判定是否(2.1)該第一2-位元字組非屬三個2-位元字組之第一集合中之成員,該種情況下,該預定熵解碼器係經組配來重建一符碼序列,其具有恰一個b而bab {0,1},b在個別符碼序列之位置係取決於第一2-位元字組;或(2.2)該第一2-位元字組係為第一集合中之成員,該種情況下,該預定熵解碼器係經組配來在由此已經決定首2-位元字組的兩個位元後方,從個別位元串流之另二位元而測定一第二2-位元字組,及檢查該第二2。位元字組來判定是否(3.1)第二2-位元字組非屬三個2-位元字組中之第二集合的成員,該種情況下,預定熵解碼器係經組配來重建恰有一個a的符碼序列,而a在個別符碼序列之位置係取決於第二2-位元字組;或(3.2)第二2-位元字組係屬三個2-位元字組中之第二集合的成員,該種情況下,預定熵解碼器係經組配來重建等於(bbb)3 之一符碼序列。
其次,描述用於編碼器/解碼器10及22中之一者或數者或甚至全部之基於表的二元算術編碼及解碼方案,亦即用於成對編碼器/解碼器中之各者其係負責從符碼分配至個別路徑所得的機率區間劃分之某個機率區間。
優異地,後文解說針對編碼器/解碼器10及22之實施例可處理在二元算術解碼引擎之單一重新標準化週期內部的多個MPS。
為了瞭解本實施例之原理及優點,假設多個成對編碼器/解碼器10及22為屬如下類型的二元算術編碼器/解碼器。從一給定倉緩衝器8之代表性LPS/LPB機率pLPS 對映至相對應的碼區間寬度RLPS ,亦即二元算術編碼引擎之內部態的區間細分,其係由目前區間寬度R及目前區間偏位L定義,識別例如碼區間之下限,係藉使用詢查表查詢而予實現。針對與一給定倉緩衝器8相關聯之基於此種表的二元算術編碼引擎10,K個代表性區間寬度值{Q 0 ,...,Q K -1 }係用來表示R而有K之選擇,及代表性區間寬度值{Q 0 ,...,Q K -1 }係取決於倉緩衝器8。如此,倉9之算術編碼可能涉及下述子步驟,將目前區間寬度R對映至具有值在{0,...,k-1}之量化指數q;以及使用q作為指數,藉從一詢查表Rtab存取相對應部分區間寬度值Qq 乘以與目前倉及此倉藉分配器所分配的熵編碼器相關聯之LPS的機率估值p之乘積值而進行區間細分。結果所得各個算術編碼引擎10之碼字組可分開地傳輸、封包化、或儲存,或其可經交插用於傳輸或儲存目的,如前文就諸如第1至11圖之多個實施例說明。
換言之,此種二元算術編碼引擎10可在編碼倉緩衝器8內之倉9執行下列步驟:
1. 從倉緩衝器8接收valLPS倉(憶起:此處考慮個別二元算術編碼引擎10係經選擇或擇定來接收「倉」(藉分配器16及選擇器6),或換言之,「倉」係與此處考慮之個別二元算術編碼引擎10相關聯之,原因在於如分配器4決定之機率分布估值諸如p_state[bin]係與目前考慮之二元算術編碼引擎10相關聯)
2. R之量化:
q_index=Qtab[R>>q](或若干其它量化形式;K量化位準為可資利用)
3. RLPS 及RMPS 之測定:
RLPS =Rtab[q_index](注意此處未述及p_state亦即倉為LPS之機率,原因在於針對所考慮的二元算術編碼引擎10其為固定,亦即針對目前編碼器10p_state為固定,且可標示以p_state[encoder],及Rtab已經於其中儲存針對p[p_state[encoder]]‧Q[q_index]之前計算值
RMPS =R-RLPS (換言之,編碼器10將該區間分割成二部分)
4. 新部分區間之計算:
若(bin=1-valMPS)則{
L←L+RMPS (換言之,即刻從L延伸出的目前區間R之較低部分係與MPS相關聯)
R←RLPS
else
R←RMPS
5. L及R之重新標準化,寫入位元,
當(R<Rmin ){
R←R<<1
L←L<<1
將一位元寫至個別位元串流12}
其中
q_index 描述量化值讀取Qtab之指數,
p_state 描述目前態(針對二元算術編碼引擎為固定及不同),
RLPS  描述相對應於LPS之區間寬度及
RMPS  描述相對應於MPS之區間寬度及
Rmin  描述R之最小容許值
valMPS 描述相對應於MPS之位元值。
據此,二元算術解碼引擎22可在解碼輸出至倉緩衝器20之倉執行下列步驟:
1. 從個別部分位元串流24接收針對一倉或位元之請求(憶起:此處考慮個別二元算術解碼引擎22係經選擇來解碼此一「倉」或「位元」(或換言之,「倉」係與個別二元算術解碼引擎22相關聯),亦即藉分配器16及選擇器18而相關聯,原因在於機率分布估值諸如p_state[bin]係藉分配器16而與該二元算術解碼引擎22相關聯)
2. R之量化:
q_index=Qtab[R>>q](或若干其它量化形式)
3. RLPS 及RMPS 之測定:
RLPS =Rtab[q_index](注意此處未述及p_state,原因在於針對所考慮的二元算術解碼引擎22其為固定,亦即p_state[encoder],及Rtab已經於其中儲存針對p[p_state[encoder]]‧Q[q_index]之前計算值
RMPS =R-RLPS
4. 依據部分區間之位置而測定倉:
if(VRMPS )then{
bin←1-valMPS(倉係解碼為LPS;倉緩衝器選擇器18將藉使用此種倉資訊及valMPS而獲得實際倉值)
V←V-RMPS
R←RLPS}
elde{
bin←valMPS(倉係解碼為MPS;倉緩衝器選擇器18將藉使用此種倉資訊及valMPS而獲得實際倉值)
R←RMPS }
5. R之重新標準化,讀取一個位元及更新V,
當(R<Rmin ){
R←R<<1
位元←從個別部分位元串流24讀取一個位元
V←(V<<1)+bit}
其中
q_index 描述量化值讀取Qtab之指數,
p_state 描述目前態(針對二元算術解碼引擎為固定),
RLPS  描述相對應於LPS之區間寬度
RMPS  描述相對應於MPS之區間寬度及
Rmin  描述R之最小容許值
valMPS 描述相對應於MPS之位元值,及
V 描述得自目前部分區間內部之一值。
如下摘述之針對倉解碼器22之實施例就輸出資料量而言達成解碼程序的改良,容後詳述。更明確言之,一回合MPS之編碼,留下L不變而R只有緩慢改變。因p_state針對編碼器/解碼器對10/22為常數,可能將一回合MPS解碼至一個所需重新標準化,而無需迴路通過步驟1至步驟5,包括步驟5針對該回合MPS之全部符碼個別的重新標準化檢查。後文討論聚焦在與一個相對應p_state相關聯之一個編碼器/解碼器對的建構。但多於一個解碼器22可據此而建構但有不同p_state或Rtab。
D 0 ,...,D K -1 標示用來從步驟3(「R之量化」)範圍值R導算出q_index之K個決策臨界值。針對R在區間[D i ,D i +1 ),導算q_index值等於i。此係例示說明於第62圖。遵照定義及遵照重新標準化效應,R之值之範圍為Rmin 至Rmax間。如此處所示,D 0 ,...,D K -1 可將區間[R min ,R max )分割成實質上等長的小區間。
集合{Q 0 ,...,Q k -1 }中之代表性區間寬度值屬於各個區間,而區間指數i=0...K-1,及如前文說明,{RLPS (0),...,RLPS (K-1)}中之一個RLPS 值如此表示針對該給定代表性區間寬度值之表列值RLPS 及針對與倉及熵編/解碼器相關聯之LPS的估算機率。注意D0 係等於Rmin
針對相對於決策區間寬度Di+1 -Di 的RLPS 夠小值,在單一循環內(如前文摘述之步驟1至5)可解碼多個MPS。此係例示說明於第61a、b圖。然而,設倉緩衝器選擇器18從同一個倉緩衝器20請求多個倉,可同時解碼的MPS正確數目係取決於R、Di 及V。多個MPS之最大數目NMPS 給定如下。設
T =max{V +1,D i -R LPS } (1)
式(1)之第一替代之道「T=V+1」係例示說明於第61a圖,而第二替代之道「T=Di -RLPS 」係例示說明於第61b圖。
使用此種符號註記法,前文摘述之二元算術解碼引擎之步驟4可修改如下:
依據部分區間之位置而測定倉:
if(VRMPS )then[針對LPS路徑無修改]{
bin←1-valMPS(倉係解碼為LPS;倉緩衝器選擇器18將藉使用此種倉資訊及valMPS而獲得實際倉值)
V←V-RMPS
R←RLPS}
else{
使用式(1)及(2)測定NMPS
R←R-NMPS *RLPS
for i=0 to NMPS -1
bin←valMPS(NMPS 倉係解碼為MPS;倉緩衝器選擇器將藉使用此種倉資訊及valMPS而獲得實際倉值)}
若RLPS 許可任意值,則如此要求整數除法及乘法運算應用在修改步驟4(相對應於「else」分支)的MPS路徑之首二子步驟。
依據本實施例,為了簡化運算,在與{Q 0 ,...,Q k _1 }及個別編碼器/解碼器之pLPS 間之乘積的個別乘積代表值相對應之Rtab[q_index]中,2之次冪係用作為表列RLPS 值。此外,針對該等倉編碼器/解碼器10及22,保有相對於決策區間寬度Di+1 -Di ,RLPS 為小值的假設,K數目維持為小值;典型性選擇K2。
選擇Rtab[1...K](相對應於RLPS )=2α ,方程式(2)簡化成
NMPS =(R-T)>>α (3)
,而在修改步驟4中MPS分支之子步驟2的R更新簡化成
R←R-(NMPS <<α)
作為例示說明,發明人考慮10個不同倉編碼器/解碼器對10、22之情況。注意在發明人之例示說明情況中,R係以9位元表示,使得Rmin =256。未使用本實施例,表8含有表列RLPS 值之實例,針對該情況,說明性選擇K=4。
表8:針對10個倉編碼器/解碼器(各自相對應於單一列)之表列RLPS
表9顯示一種情況實例,此處本實施例係應用於針對對應於表9末三列,亦即對應最低p_state值的列號碼8-10,的至少三個倉編碼器/解碼器設計表列RLPS 值。針對對應於列號碼6及7之倉編碼器/解碼器,該項原理係部分適用,而在此等列中各自之至少二行的RLPS 值係以2之次冪表示。
表9:10個倉編碼器/解碼器(各自對應單一列)之表列RLPS 值,此處遵照本發明原理至少建構對應於3末列(8-10)之3個倉編碼器/解碼器
表9中,各行係對應於針對10個不同熵編碼器/解碼器對10/22之表Rtab[1...4]。
如此,就第61a圖至第62圖敘述之實施例,描述一種用以重建一符碼26序列之解碼器等,該解碼器包含多個熵解碼器22,其各自係經組配來將個別位元串流24轉換成符碼21;一分配器16,其係經組配來基於該符碼序列之先前重建符碼內部所含的資訊,而分配多個參數給欲重建立一符碼序列的各個符碼26;及一選擇器18,其係經組配來從多個熵解碼器中之選定者而取回欲重建之符碼序列的各個符碼25,該項選擇係取決於針對個別符碼定義的參數數目,其中熵解碼器之至少一個子集各自可以是具有內部態之二元算術解碼引擎,該內部態係由目前區間寬度R及目前區間寬度R內之值V所界定,該二元算術解碼引擎係經組配來在將個別位元串流轉換成符碼中,(1)使用K個區間[D i ,D i + 1 )而i=0...K-1,將目前區間寬度R對應至量化指數q_index,使得R落入區間[D q _ inde x ,D q_ index +1 );(2)藉使用表Rtab及量化指數q_index作為指數執行區間細分成表Rtab,而獲得相對應於LPS之部分區間寬度RLPS =Rtab[q_index],而Rtab[i]為針對i=0...K-1之2的次冪,其中相對應於MPS之部分區間寬度RMPS =R-RLPS ;(3)檢查是否RMPS V,及若RMPS V,則重建一目前符碼為等於LPS,及更新V為V-RMPS ,及更新R為RLPS ;而若非為RMPS V,則重建目前符碼及NMPS -1隨後符碼為等於MPS,而NMPS =(R-max{V+1,Dq_index -RLPS })/RLPS ,及更新R為R-NMPS ‧RLPS ;及(4)使用個別位元串流重新標準化R及更新V。熵解碼器子集各自之二元算術解碼引擎可經組配來於重新標準化R及更新V中,(4.1)檢查是否R<Rmin 而Rmin =D0 ,及若R<Rmin ,(4.2)使用最小y將R增加為R‧2y ,使R等於或大於Rmin ,及(4.3)藉將V朝左移位y位元位置而更新V,及(4.4)依據排齊的個別位元串流之其次y位元,設定V之y個最低有效位元。熵解碼器子集可包含多個熵解碼器,其各自具有不同表Rtab。若是,則針對多個解碼器可選擇Rtab[i],使得各個熵解碼器存在有一對pLPS 及向量{Q 0 ,...,Q K -1 }而Q i [D i ,D i +1 ),使得針對i=0...K,0.99‧pLPS ‧Qi <Rtab[i]<1.01‧PLPS ‧Qi ,而多個熵解碼器間的pLPS ‧彼此不同。多個熵解碼器間的K可能彼此不同。多個熵解碼器間,針對至少一者可能K=1或Qi =Q0 而i=1...K,其中該熵解碼器之二元算術解碼引擎在將個別位元串流轉換成符碼中,熵解碼器可經組配來執行區間細分,藉設定RLPS =Q0 ;檢查是否RMPS V,及若RMPS V,則重建一目前符碼為等於LPS,及更新V為V-RMPS ,及更新R為RLPS ;而若非為RMPS V,則重建目前符碼及NMPS -1隨後符碼為等於MPS,而NMPS =(R-max{V+1,Rmin -RLPS })/RLPS ,及更新R為R-NMPS ‧RLPS ;及使用個別位元串流重新標準化R及更新V。熵解碼器子集各自之二元算術解碼引擎可經組配來藉將項(R-max{V+1,Dq_i ndex -RLPS })的結果朝右位移log2 (RLPS )位元而運算NMPS 。又,熵解碼器之至少一個子集各自可以是二元算術解碼引擎,具有內部態係由目前區間寬度R及目前區間寬度R內部之值V所界定,藉由設定相對應於LPS的部分區間寬度RLPS 等於Q0 ,其中相對應於MPS之部分區間寬度RMPS 為R-RLPs ;檢查是否RMPS V,及若RMPS V,則重建一目前符碼為等於LPS,及更新V為V-RMPS ,及更新R為RLPS ;而若非為RMPS V,則重建目前符碼及NMPS -1隨後符碼為等於MPS,而NMPS =(R-max{V+1,Rmin -RLPS })/RLPS ,及更新R為R-NMPS ‧RLPS ;及使用個別位元串流重新標準化R及更新V。
雖然已經就裝置之脈絡描述若干構面,但顯然此等構面也表示相對應方法之描述,此處一方塊或裝置係與一方法步驟或一方法步驟之特徵相對應。同理,於方法步驟之脈絡中描述之構面也表示相對應方塊或相對應裝置之項目或特徵結構之描述。部分或全部方法步驟可藉(或使用)硬體裝置執行,類似例如微處理器、可規劃電腦或電子電路。於若干實施例中,最重要方法步驟中之某一者或多者可藉此種裝置執行。
1...來源符碼、語法元素
2、14...二進制化器
3、7...倉、符碼
4、16...參數分配器
5...具相關聯之參數集合之倉、參數
6、18...倉緩衝器選擇器
8、20...倉緩衝器
9...倉序列
10...倉編碼器、二元算術編碼引擎
10a...巨集區塊
11、23...碼字組
12、24...部分位元串流
13...請求來源符碼
15、19...請求一倉
17...請求具相關聯之參數集合之倉
21...倉之解碼序列、符碼
22...倉解碼器、二元算術解碼引擎
25...已解碼倉、輸入倉
26...已解碼倉、輸出倉
27...解碼來源符碼
28...請求碼字組緩衝器
29、43...碼字組緩衝器
30、31、37、44、47、57...碼字組
32...碼字組寫入器
33、39、46、52、54、62...位元
34、40、55、63...位元串流
35...請求倉序列
36、56...請求位元
38、48、58...位元緩衝器
41...請求碼字組
42...碼字組或碼字組指標
45...碼字組讀取器
49...請求定長保留
50...定長位元序列
51、61...通用位元緩衝器
53...位元寫入器
59...請求定長位元序列
60...定長位元序列
100、110...資料封包
101、111...標頭
102、113、114...位元串流之部分、部分位元串流
112...資料節段
400...熵解碼器
402...預編碼解碼器
1110...符碼集合
1112...熵編碼器
1114...熵編碼器輸出端
1116...機率資訊輸入端
1118...脈絡模型化器
1120...初始化器
1126...整數值
1160...熵編碼器
1162...脈絡模型化器
1164...初始化器
1200...取回器
1204...檢測器
1206...計算器
2010...視訊圖框
2012...視訊預編碼器
2014...最終編碼器階段
2100...編碼配置
2100a-c...階段
2102...二進制化器
2104...輸入端
2106、2113、2122...開關
2108...二進制化階段輸出端
2110...裝置
2112...脈絡模型化器
2114...常規編碼輸入終端
2116...旁路編碼輸入終端
2117...回授線路
2118...常規編碼引擎
2120...旁路編碼引擎
2124...輸出
2200...列、巨集區塊對行
2200a...頂巨集區塊列
2200b...底巨集區塊列
2250...頂巨集區塊
2252...底巨集區塊、頂巨集區塊
2254...底巨集區塊
2256...欄位模式、雙箭頭
2300-2326...步驟
2327...處理
2334-2346...步驟
2340...表
2400...熵解碼器
2402...預編碼解碼器
2500-2526、2566-2584...步驟
2527...虛線
2800...熵編碼器
2802...編碼器控制裝置
3150...樹
3152...根節點
3154...內部節點
3156...終端節點
3200-3214...步驟
3204...一次前綴
3206...碼字組
3208...一次後綴
3218...二次前綴
3220...二次後綴
3215、3250-3256...欄
3258...虛線框
3270...前綴碼字組
3300-3314、3312a-i...行、步驟
3400-3410...步驟
3450...位元串流
3452...新碼字組信號
3454-3460、3500-3510、4300-4324、4500-4512...步驟
4010...視訊圖框
4012...預編碼器
4112...脈絡模型化器
4117...路徑
4118...常規編碼引擎
4124...輸出端
4400...熵解碼器
5010...視訊圖框或圖像
5010b1、5010b2...巨集區塊對
5012...預編碼器
5014...熵編碼器
5015...掃描位置
5112...脈絡模型化器
5117...路徑
5118...常規編碼引擎
5124...輸出端
5272、5274...陣列、二維變換係數陣列
5276、5278...箭頭、掃描樣式
5280...步驟、預編碼
5282、5284...序列、變換資料單元序列
5286...預編碼視訊信號
5288、5294、5296、5300-5340、5500-5527...步驟
5290、5292...脈絡模型集合
5400...熵解碼器
第1圖顯示依據一實施例編碼器之方塊圖;
第2圖顯示依據一實施例,適合用以解碼由第1圖之編碼器所產生的位元串流之解碼器之方塊圖;
第3圖顯示一示意圖,例示說明依據一實施例具有多工化部分位元串流之資料封包;
第4圖顯示一示意圖,例示說明依據一實施例具有使用固定大小節段之另一種分段之資料封包;
第5圖顯示使用部分位元串流交插,依據一實施例編碼器之方塊圖;
第6圖顯示一示意圖,例示說明依據一實施例在第5圖之編碼器端之碼字組緩衝器之態;
第7圖顯示使用部分位元串流交插,依據一實施例解碼器之方塊圖;
第8圖顯示使用一單一碼字組集合使用碼字組交插,依據一實施例解碼器之方塊圖;
第9圖顯示使用固定長度位元序列之交插,依據一實施例編碼器之方塊圖;
第10圖顯示一示意圖,例示說明依據一實施例在第9圖之編碼器端之通用位元緩衝器之態;
第11圖顯示使用固定長度位元序列之交插,依據一實施例解碼器之方塊圖;
第12圖顯示一線圖用以例示說明假設以(0,0.5]之一致機率分布,最佳機率區間離散化成為K=4區間;
第13圖顯示一示意圖,例示說明針對p=0.38之LPB機率及藉霍夫曼演繹法則所得相關聯之可變長度碼之二元事件樹;
第14圖顯示一線圖,由此可收集給定最大表分錄Lm 數目,針對最佳碼C之相對位元率增高ρ(p ,C );
第15圖顯示一線圖例示說明針對理論上最佳機率區間分割成K=12區間(cp. Sec. 3)之位元率增高及具有最大數目Lm =65表分錄之使用VNB2VLC碼之實際設計;
第16圖顯示一示意圖,例示說明三元選擇樹轉換成完整二元選擇樹之實例;
第17圖顯示依據一實施例包含編碼器(左部分)及解碼器(右部分)之系統之方塊圖;
第18圖為使用依據第1至17圖之任一實施例之熵編碼,依據一實施例編碼變換係數之基本原理之例示說明;
第19圖顯示用以編碼顯著性對映關係之兩個實例(標示符碼未移轉);
第20圖顯示變換係數(ABS)之幅值之二進制化;
第21圖顯示針對H.264/AVC標準之方塊類型及其分類;
第22圖顯示1-位元符碼CBP4之脈絡模型化;及
第23圖顯示用以編碼有效變換係數之幅值之脈絡模型化實例;
第24圖顯示依據一應用例一種熵編碼器配置之方塊圖;
第25圖顯示得自第24圖之初始化器之細節圖;
第26圖顯示用以計算一參考指數來參考一初始化(initialization)機率資訊表之步驟序列,該表包括針對最小可能符碼(LPS)之機率資訊及相對應最大可能符碼(MPS)值作為初始化機率資訊;
第27圖顯示依據一應用例一種熵解碼器配置之示意方塊圖;
第28圖顯示編碼環境之高階方塊圖;
第29圖顯示針對第28圖之編碼環境之熵編碼部分之方塊圖;
第30圖顯示一示意圖,例示說明一圖像或視訊圖框之部分細分成巨集區塊對;
第31a圖顯示一示意圖,例示說明依據本發明之一實施例之圖框模式;
第31b圖顯示一示意圖,例示說明依據本發明之一實施例之欄位模式;
第32圖顯示一流程圖,例示說明依據本發明之一實施例之語法元素之編碼,而脈絡分配係基於鄰近語法元素;
第33圖顯示一流程圖,例示說明依據本發明之一實施例基於分配給該語法元素之脈絡模型,語法元素之二元熵編碼;
第34圖顯示一示意圖,例示說明依據本發明之一實施例巨集區塊之定址方案;
第35圖顯示一表,例示說明如何獲得巨集區塊位址mbAddrN,指示該巨集區塊含有相對於目前巨集區塊左上樣本,具有座標xN及yN之一樣本;及額外地,取決於樣本排列超出該目前巨集區塊之頂或左邊界,針對在巨mbAddrN樣本之y座標yM;針對該樣本,目前巨集區塊為圖框編碼或欄位編碼,及該目前巨集區塊為目前巨集區塊對之頂或底巨集區塊,及最後,巨集區塊mbAddrA為圖框編碼或欄位編碼,及其中樣本所在之行具有奇或偶行數yN;
第36圖顯示一示意圖,例示說明巨集區塊分割、次-巨集區塊分割、巨集區塊分割掃描、及次-巨集區塊分割掃描;
第37圖顯示其中採用本發明之解碼環境之高階方塊圖;
第38圖顯示一流程圖,例示說明得自編碼位元串流之如第32及33圖所示編碼之語法元素的解碼;
第39圖顯示一流程圖,例示說明第3圖之熵解碼處理程序及解碼處理程序;
第40圖顯示針對一巨集區塊用於該合併H.264/AVC視訊編碼器之基本編碼結構;
第41圖例示說明由在該目前語法元素C之左側及頂上之二鄰近語法元素A及B所組成之一脈絡樣板;
第42圖顯示一圖像細分成多個截割片之例示說明;
第43圖顯示圖左,針對使用樣本A_Q之區塊樣本a-p所進行之內_4x4預測,及圖右,用於內_4x4預測之預測方向。
第44圖顯示與第46圖之二進制化方案有關之二進制編碼樹之一部分;
第45圖為示意圖,例示說明絕對資料值之二進制化;
第46圖一表顯示一絕對值所二進制化而成之倉執行緒;
第47圖一表顯示一絕對值所二進制化而成之倉執行緒;
第48圖顯示用以執行二進制化之一虛擬-C碼;
第49圖顯示一示意圖,例示說明熵編碼的位元串流之解碼成一資料值;
第50圖顯示一示意圖,例示說明從一資料值之二進制化而復原該資料值;
第51圖顯示一示意圖,例示說明在第50圖之處理程序中有關後綴部分之抽取;
第52圖顯示一流程圖,例示說明語法元素mb_field_decoding_flag之編碼;
第53圖為流程圖,例示說明一種將脈絡模型分配給mb_field_decoding_flag之方法;
第54圖顯示一流程圖,例示說明得自藉第52圖之編碼方案所導算出之編碼位元串流的語法元素mb_field_decoding_flag之解碼;
第55圖顯示一示意流程圖,例示說明一視訊圖框或圖像之編碼;
第56圖例示說明用於欄位編碼巨集區塊及圖框編碼巨集區塊之不同掃描樣式;
第57圖顯示一表,例示說明從所選擇之變換係數層次實例所得之一顯著性對映表;
第58圖顯示一流程圖,例示說明依據本發明之一實施例語法元素last_significant_coeff_flag及significant_coeff_flag之編碼;
第59圖顯示一虛擬C-碼,例示說明在解碼器端之剖析處理程序;
第60圖顯示一流程圖,例示說明得自如藉第58圖之編碼方案所導算出之編碼位元串流,語法元素significant_coeff_flag及last_significant_coeff_flag之解碼;
第61a、b圖示意地顯示依據一實施例針對一熵編碼器/解碼器對解碼一回合MPS之處理程序;及
第62圖示意地顯示依據一實施例一種用於區間寬度之量化之實例。
1...來源符碼
2...二進制化器
3、7...倉
4...參數分配器
5...具相關聯之參數集合之倉
6...倉緩衝器選擇器
8...倉緩衝器
9...倉序列
10...倉編碼器
11...碼字組
12...部分位元串流

Claims (69)

  1. 一種用以編碼一符碼序列之編碼器,其係包含一分配器,其係經組配來基於該符碼序列之先前符碼內部所含資訊而分配多個參數給該符碼序列之各個符碼;多個熵編碼器,其各自係經組配來將前傳給個別熵編碼器之符碼轉換成一個別位元串流;及一選擇器,其係經組配來前傳各個符碼給該等多個熵編碼器中之一選定者,該項選擇係取決於分配給該個別符碼之參數數目。
  2. 如申請專利範圍第1項之編碼器,其中該分配器係經組配來使得分配給各個符碼之參數數目包含或為該等個別符碼可取得之可能值中一機率分布之估值之量測值。
  3. 如申請專利範圍第2項之編碼器,其中該符碼序列係屬二元字母表,及該分配器係經組配來使得該機率分布估值係由一較低可能或較高可能倉值之一機率估值之量測值及一識別符載明針對兩個可能倉值中之哪一者表示較低可能或較高可能倉值之估值所組成。
  4. 如申請專利範圍第2項之編碼器,其中該分配器係經組配來基於該符碼序列之先前符碼內部所含資訊而分配一脈絡給該符碼序列之各個符碼,各脈絡具有與其相關聯之一個別機率分布估值,及基於個別脈絡所分配的先前符碼之符碼值而調適各脈絡之機率分布估值至一實際符碼統計數字,及基於與分配給該個別符碼之脈絡相 關聯之機率分布估值而決定針對各符碼之該機率分布估值之量測值。
  5. 如申請專利範圍第4項之編碼器,其中該分配器係經組配來在決定針對各符碼之該機率分布估值之量測值中,量化分配給該個別符碼之脈絡相關聯之該機率分布估值成為多個機率分布估值表示型態中之一者來獲得針對該機率分布估值之量測值,及其中該選擇器係經組配來使得在該等多個熵編碼器與該等多個機率分布估值表示型態間界定雙射關聯性。
  6. 如申請專利範圍第5項之編碼器,其中該選擇器係經組配來隨著時間之經過,依據該符碼序列之先前符碼而以一預定決定性方式改變從一定範圍該機率分布估值至該等多個機率分布估值表示型態之一量化對映。
  7. 如申請專利範圍第6項之編碼器,其中該等多個熵編碼器係經組配來調適其回應於該量化對映之改變而轉換符碼成位元串流之方式。
  8. 如申請專利範圍第5項之編碼器,其中該選擇器係經組配來改變該量化對映使得熵編碼器轉換至符碼之該位元串流之位元率變成較非分散型。
  9. 如前述申請專利範圍第1項之編碼器,其中該等多個熵編碼器具有與其相關聯之一符碼輸入緩衝器,其中該選擇器係經組配來透過該相關聯之符碼輸入緩衝器而前傳該等符碼給該至少一個熵編碼器。
  10. 如前述申請專利範圍第1項之編碼器,其中至少一個熵 編碼器為一可變長度編碼器,其係經組配來對映符碼序列至碼字組。
  11. 如前述申請專利範圍第1項之編碼器,其中該等多個熵編碼器各自為一可變長度編碼器,其係經組配來對映可變長度之符碼序列至固定長度之碼字組。
  12. 如申請專利範圍第11項之編碼器,其係進一步包含一碼字組緩衝器,其中該碼字組緩衝器係經組配來針對得自該等多個熵編碼器之碼字組依據一順序而以一循序順序保留一序列的碼字組分錄,於該順序中由該選擇器前傳至該等多個熵編碼器之該符碼序列之該等符碼導致在該個別熵編碼器處欲對映至一碼字組之一新符碼序列之起點,以及來以該循序順序移除載入該碼字組分錄之碼字組而從該等多個位元串流獲得一單一交插碼字組串流,其中各個熵編碼器係經組配來循序地將其碼字組載入針對該個別熵編碼器所保留的碼字組分錄。
  13. 如申請專利範圍第12項之編碼器,其中該等多個熵編碼器及該碼字組緩衝器係經組配來藉具有目前已前傳的但尚未對映的符碼作為前綴之隨意(don’t-care)符碼而間歇地延長目前已前傳的但尚未對映的符碼至有效符碼序列,對映如此經延長的符碼序列至碼字組,將如此所得之碼字組載入該保留的碼字組分錄,及沖除(flush)該等碼字組分錄。
  14. 如申請專利範圍第12項之編碼器,其中該等多個熵編碼器及該碼字組緩衝器係經組配來於保留的碼字組分錄 數目加其中載入有碼字組之碼字組分錄數目滿足一預定標準之情況下,執行間歇地延長、載入及沖除。
  15. 如前述申請專利範圍第1項之編碼器,其中至少該等熵編碼器之一第一子集為一可變長度編碼器,其係經組配來分別地對映可變長度符碼序列至可變長度碼字組,該第一子集之各個熵編碼器係使用雙射對映規則,依據該規則,具有(2n-1)3碼字組之一一次不含前綴碼之碼字組係對映至與該一次不含前綴碼相同之一二次不含前綴碼之碼字組,使得除了該一次不含前綴碼之碼字組中之二者以外全部皆係對映至該二次不含前綴碼之相同碼字組,而該一次及二次不含前綴碼之該二碼字組具有不同長度且係以互換方式彼此對映,其中該等熵編碼器使用不同n。
  16. 如申請專利範圍第15項之編碼器,其中該第一不含前綴碼係組成使得該第一不含前綴碼之碼字組為(a,b)2 ,(a,a,b)3 ,...,(a,...,a,b)n ,(a,...,a)n ,(b,a)2 ,(b,b,a)3 ,...,(b,...,b,a)n-1 ,(b,...,b)n-1 ,及以互換方式彼此對映之該二碼字組為(a,...,a)n 及(b,...,b)n-1 ,而baa ,b {0,1}。
  17. 如申請專利範圍第1項之編碼器,其中一第一熵編碼器子集各自係經組配來在將前傳至該個別熵編碼器之該等符碼轉換成個別位元串流中,檢查前傳給該個別熵編碼器之一第一符碼而判定是否為以下情況:該第一符碼等於a {0,1},該種情況下該個別熵編碼器係經組配來檢查前傳給該個別熵編碼器之隨後符碼 而判定是否為以下情況:b而bab {0,1}出現在接在第一符碼後方的其次n-1符碼,該種情況下,該個別熵編碼器係經組配來將一碼字組寫入個別位元串流,其係等於第一符碼接著為前傳至該個別熵編碼器的接續符碼直至符碼b;並無任何b出現在接在第一符碼後方的其次n-1符碼,該種情況下,該個別熵編碼器係經組配來將一碼字組寫入個別位元串流,其係等於(b,...b)n-1 ;第一符碼等於b,該種情況下,該個別熵編碼器係經組配來檢查前傳至該個別熵編碼器的接續符碼而判定是否為以下情況:a出現在接在第一符碼後方的其次n-2符碼,該種情況下,該個別熵編碼器係經組配來將一碼字組寫入個別位元串流,其係等於第一符碼接著為前傳至該個別熵編碼器的接續符碼直至符碼a;並無任何a出現在接在第一符碼後方的其次n-2符碼,該種情況下,該個別熵編碼器係經組配來將一碼字組寫入個別位元串流,其係等於(a,...,a)n
  18. 如申請專利範圍第1項之編碼器,其中該等熵編碼器之至少一第二子集為一可變長度編碼器,其係經組配來將可變長度符碼序列分別地對映至固定長度碼字組,而該第二子集之各個熵編碼器使用雙射對映規則,據此屬於類型{(a),(ba),(bba),...,(b...ba),(bb...b)}而baa ,b {0,1}之2n +1碼字組之一次截頭一元碼之碼字組係對 映至二元不含前綴碼之碼字組,使得一次截頭一元碼之碼字組(bb...b)係對映至二次不含前綴碼之碼字組(c),及一次截頭一元碼之全部其它碼字組{(a),(ba),(bba),...,(b...ba)}係對映至具有(d)而cdc ,d {0,1}作為前綴及一n-位元字組作為後綴之碼字組,其中該等熵編碼器使用不同n。
  19. 如申請專利範圍第18項之編碼器,其中該第二熵編碼器子集各自係經組配來使得n-位元字組為在該一次截頭一元碼之個別碼字組中b數目之n-位元表示型態。
  20. 如申請專利範圍第1項之編碼器,其中該第二熵編碼器子集各自係經組配來在將前傳至該個別熵編碼器之該等符碼轉換成個別位元串流中,計數在前傳至該個別熵編碼器之一符碼序列中之b數目,直至出現a,或直至前傳至該個別熵編碼器的該符碼序列數目達到2n ,而該序列之全部2n 符碼皆為b,及若b之數目等於2n ,則將具有c {0,1}之c寫至個別位元串流作為一二次不含前綴碼之碼字組,及若b之數目係小於2n ,則將該二次不含前綴碼之碼字組寫至個別位元串流,其具有(d)而cdd {0,1}作為前綴及依據b數目決定之一n-位元字組作為後綴。
  21. 如申請專利範圍第1項之編碼器,其中該等熵編碼器中之一預定者為一可變長度編碼器,其係經組配來將固定長度之符碼序列分別地對映至可變長度碼字組,該預定熵編碼器使用雙射對映規則,據此一次碼的長度3之23 碼字組係對映至一二次不含前綴碼之碼字組,使得一次碼之碼字組(aaa)3a {0,1}係對映至碼字組(c)而c {0,1},具有恰一個b而bab {0,1}之一次碼的全部三個碼字組係對映至具有(d)而cdd {0,1}作為前綴及一第一2-位元字組集合中之一個別第一2-位元字組作為後綴之碼字組,具有恰一個a之一次碼的全部三個碼字組係對映至具有(d)作為前綴及非為該第一集合之一成分之一第一2-位元字組與一第二2-位元字組集合中之一第二2-位元字組的級聯(concatenation)作為後綴之碼字組,及其中該碼字組(bbb)3 係對映至具有(d)作為前綴及非為該第一集合之一成分之該第一2-位元字組與非為該第二集合之一成分之一第二2-位元字組的級聯作為後綴之碼字組。
  22. 如申請專利範圍第21項之編碼器,其中該具有恰一個b之一次碼之碼字組之第一2-位元字組為該一次碼之個別碼字組中之b位置之2-位元表示型態,及該具有恰一個a之一次碼之碼字組之第二2-位元字組為該一次碼之個別碼字組中之a位置之2-位元表示型態。
  23. 如申請專利範圍第1項之編碼器,其中該等熵編碼器中之一預定者係經組配來在將前傳至該預定熵編碼器之該等符碼轉換成個別位元串流中,針對該預定熵編碼器檢查呈三聯碼之該等符碼來判定是否為以下情況:該三聯碼係由多個a組成,該種情況下,該預定熵編碼器係經組配來將碼字組(c)寫至個別位元串流; 該三聯碼恰包含一個b,該種情況下,該預定熵編碼器係經組配來將具有(d)作為前綴及b在該三聯碼之位置之2-位元表示型態作為後綴之一碼字組寫成個別位元串流;該三聯碼恰包含一個a,該種情況下,該預定熵編碼器係經組配來將具有(d)作為前綴及非為該第一集合之一成分之該第一2-位元字組與a在該三聯碼之位置之2-位元表示型態的級聯作為後綴之一碼字組寫成個別位元串流;或該三聯碼係由多個b所組成,該種情況下,該預定熵編碼器係經組配來將具有(d)作為前綴及非為該第一集合之一成分之該第一2-位元字組與非為該第二集合之一成分之該第一2-位元字組的級聯作為後綴之一碼字組寫成個別位元串流。
  24. 一種用以編碼一符碼序列之方法,其係包含基於含在該符碼序列之先前符碼內部之資訊而分配多個參數給該符碼序列之各個符碼;及前傳各符碼給多個熵編碼器中之一選定者,該項選擇係取決於分配給該個別符碼之參數數目,及該等多個熵編碼器各自係經組配來將前傳至該個別熵編碼器的符碼轉換成一個別位元串流。
  25. 一種用以重建一符碼序列之解碼器,其係包含:多個熵解碼器,其各自係經組配來將一個別位元串流轉換成符碼; 一分配器,其係經組配來基於該符碼序列之先前已重建符碼內部所含資訊而分配多個參數給欲重建之一符碼序列之各個符碼;及一選擇器,其係經組配來從該等多個熵解碼器中之一選定者取回欲重建之該符碼序列之各個符碼,該項選擇係取決於針對個別符碼所界定之參數數目。
  26. 如申請專利範圍第25項之解碼器,其中該分配器係經組配來使得分配給各個符碼之參數數目包含或為該等個別符碼可取得之可能符碼值中一機率分布之估值之量測值。
  27. 如申請專利範圍第26項之解碼器,其中該欲重建之符碼序列係屬二元字母表,及該分配器係經組配來使得該機率分布估值係由該二元字母表之兩個可能倉值之一較低可能或較高可能倉值之一機率估值之量測值及載明針對兩個可能倉值中之哪一者表示較低可能或較高可能倉值之估值的一識別符所組成。
  28. 如申請專利範圍第26項之解碼器,其中該分配器係經組配來基於該欲重建之符碼序列之先前已重建符碼內部所含資訊而內部地分配一脈絡給該欲重建之符碼序列之各個符碼,各脈絡具有與其相關聯之一個別機率分布估值,及基於個別脈絡所分配的先前已重建符碼之符碼值而調適各脈絡之機率分布估值至一實際符碼統計數字,及基於與分配給該個別符碼之脈絡相關聯之機率分布估值而決定針對各符碼之該機率分布估值之量測值。
  29. 如申請專利範圍第28項之解碼器,其中該分配器係經組配來在決定針對各符碼之該機率分布估值之量測值中,量化分配給該個別符碼之脈絡相關聯之該機率分布估值成為多個機率分布估值表示型態中之一者來獲得針對該機率分布估值之量測值,及其中該選擇器係經組配來使得在該等多個熵編碼器與該等多個機率分布估值表示型態間界定雙射關聯性。
  30. 如申請專利範圍第29項之解碼器,其中該選擇器係經組配來隨著時間之經過,依據該符碼序列之先前已重建符碼而以一預定決定性方式改變從一定範圍該機率分布估值至該等多個機率分布估值表示型態之一量化對映。
  31. 如申請專利範圍第30項之解碼器,其中該等多個熵解碼器係經組配來調適其回應於量化對映之改變而轉換符碼成位元串流之方式。
  32. 如申請專利範圍第30項之解碼器,其中該選擇器係經組配來改變該量化對映使得從該等多個熵解碼器取回符碼之率變成較非分散型。
  33. 如申請專利範圍第25項之解碼器,其中至少一個熵解碼器具有與其相關聯之一符碼輸出緩衝器,其中該選擇器係經組配來透過該相關聯之符碼輸出緩衝器而從該至少一個熵解碼器取回該等符碼。
  34. 如申請專利範圍第25項之解碼器,其中該至少一個熵解碼器為組配來將碼字組對映至符碼序列之一可變長度解碼器。
  35. 如申請專利範圍第25項之解碼器,其中該等多個熵解碼器各自為組配來將固定長度之碼字組對映至可變長度之符碼序列之一可變長度解碼器。
  36. 如申請專利範圍第35項之解碼器,其係進一步包含用以接收一單一交插碼字組串流之一碼字組分錄,其中該等多個熵解碼器係經組配來依據一順序而以循序順序從該碼字組分錄取回該等碼字組,於該順序中,藉該選擇器從該等多個熵解碼器取回之欲重建符碼序列之該等符碼導致在該個別熵解碼器從一新碼字組欲對映之一新的符碼序列。
  37. 如申請專利範圍第36項之解碼器,其中該等多個熵解碼器及該選擇器係經組配來間歇地捨棄符碼序列之後綴,因而不參與形成欲重建之該符碼序列。
  38. 如申請專利範圍第37項之解碼器,其中該等多個熵解碼器及該選擇器係經組配來在此處在連續兩次從該碼字組分錄取回間,已經藉該等多個熵解碼器而從該碼字組分錄取回之碼字組數目滿足一預定標準之情況下執行該間歇地捨棄。
  39. 如申請專利範圍第36項之解碼器,其係進一步包含在碼字組分錄之一碼字組緩衝器,其係經組配來剖析該等交插碼字組,及當請求從該等解碼器取回時,以碼字組為單位,分配該等交插碼字組給熵解碼器。
  40. 如申請專利範圍第25項之解碼器,其中至少該等熵解碼器之一第一子集為一可變長度解碼器,其係經組配來分 別地對映可變長度碼字組至可變長度符碼序列,該第一子集之各個熵解碼器係使用雙射對映規則,依據該規則,具有(2n-1)3碼字組之一一次不含前綴碼之碼字組係對映至與該一次前綴碼相同之一二次不含前綴碼之碼字組,使得除了該一次不含前綴碼之碼字組中之二者以外全部皆係對映至該二次不含前綴碼之相同碼字組,而該一次及二次不含前綴碼之該二碼字組具有不同長度且係以互換方式彼此對映,其中該等熵解碼器使用不同n。
  41. 如申請專利範圍第40項之解碼器,其中該第一不含前綴碼係組成使得該第一不含前綴碼之碼字組為(a,b)2 ,(a,a,b)3 ,...,(a,...,a,b)n ,(a,...,a)n ,(b,a)2 ,(b,b,a)3 ,...,(b,...,b,a)n-1 ,(b,...,b)n-1 ,及以互換方式彼此對映之該二碼字組為(a,...,a)n 及(b,...,b)n-1 ,而baa ,b {0,1}。
  42. 如申請專利範圍第25項之解碼器,其中一第一熵編碼器子集各自為一可變長度解碼器,其係經組配來將可變長度碼字組對映至可變長度符碼序列,及其係經組配來在個別位元串流轉換成符碼時,檢查個別位元串流之一第一位元來判定是否為以下情況:該第一位元等於a {0,1},該種情況下個別熵編碼器係經組配來檢查該個別位元串流之接續位元來判定是否為以下情況:b而bab {0,1}出現在接在該第一位元後方的其次n-1位元,該種情況下,個別熵解碼器係經組配來重 建一符碼序列,其係等於該第一位元接著為個別位元串流之接續位元直至位元b;並無任何b出現在接在該第一位元後方的其次n-1位元,該種情況下,個別熵解碼器係經組配來重建一符碼序列,其係等於(b,...b)n-1 ;該第一位元等於b,該種情況下,個別熵解碼器係經組配來檢查個別位元串流的接續位元而判定是否為以下情況:a出現在接在該第一位元後方的其次n-2位元,該種情況下,個別熵解碼器係經組配來重建一符碼序列,其係等於該第一位元接著為個別位元串流的接續位元直至符碼a;並無任何a出現在接在該第一位元後方的其次n-2位元,該種情況下,個別熵解碼器係經組配來重建一符碼序列,其係等於(a,...,a)n
  43. 如申請專利範圍第35項之解碼器,其中該熵解碼器之至少一第二子集為一可變長度解碼器,其係經組配來將固定長度碼字組分別地對映至可變長度符碼序列,而該第二子集之各個熵解碼器使用雙射對映規則,據此一二次不含前綴碼之碼字組係對映至屬於類型{(a),(ba),(bba),...,(b...ba),(bb...b)}而baa ,b {0,1}之2n +1碼字組之一次截頭一元碼之碼字組,使得該二次不含前綴碼之碼字組(c)係對映至一次截頭一元碼之碼字組(bb...b),及具有(d)而cdc ,d {0,1}作為前綴及n-位元 字組作為後綴之碼字組係對映至一次截頭一元碼之其它碼字組{(a),(ba),(bba),...,(b...ba)}之個別者,其中該熵解碼器使用不同n。
  44. 如申請專利範圍第43項之解碼器,其中該第二熵解碼器子集各自係經組配來使得n-位元字組為在該主要截頭一元碼之個別碼字組中b數目之n-位元表示型態。
  45. 如申請專利範圍第25項之解碼器,其中一第二熵解碼器子集各自為一可變長度解碼器,其係經組配來將固定長度碼字組分別地對映至可變長度符碼序列,及其係經組配來在個別熵解碼器之位元串流轉換成符碼時,檢查個別位元串流之一第一位元來判定是否為以下情況:該第一位元係等於c而c {0,1},該種情況下,個別熵解碼器係經組配來重建係等於(bb...b)2 nb {0,1}之一符碼序列;該第一位元係等於d而cdc ,d {0,1},該種情況下,個別熵解碼器係經組配來從在該第一位元後方之個別位元串流之n額外位元決定一n-位元字組,及從其重建具有類型{(a),(ba),(bba),...,(b...ba),(bb...b)}而bab {0,1},而b之數目係取決於該n-位元字組之符碼序列。
  46. 如申請專利範圍第25項之解碼器,其中該等熵解碼器中之一預定者係為一可變長度解碼器,其經組配來將可變長度碼字組分別地對映至固定長度符碼序列,該預定熵解碼器使用雙射對映規則,據此一二次不含前綴碼之碼 字組係對映至一次碼的長度3之23 碼字組,使得碼字組(c)而c {0,1}係對映至一次碼之碼字組(aaa)3a {0,1},具有(d)而cdd {0,1}作為前綴及一第一集合的三個2-位元字組中之一個別第一2-位元字組作為後綴之碼字組係對映至具有恰一個b而bab {0,1}之一次碼的全部三個碼字組,具有(d)作為前綴及非為該第一集合之一成分之一第一2-位元字組與一第二集合的三個2-位元字組中之一第二2-位元字組的級聯作為後綴之碼字組係對映至具有恰一個a之一次碼的全部三個碼字組,及具有(d)作為前綴及非為該第一集合之一成分之該第一2-位元字組與非為該第二集合之一成分之一第二2-位元字組的級聯作為後綴之碼字組係對映至該碼字組(bbb)3
  47. 如申請專利範圍第46項之解碼器,其中該具有恰一個b之一次碼之碼字組之第一2-位元字組為該一次碼之個別碼字組中之b位置之2-位元表示型態,及該具有恰一個a之一次碼之碼字組之第二2-位元字組為該一次碼之個別碼字組中之a位置之2-位元表示型態。
  48. 如申請專利範圍第25項之解碼器,其中該熵解碼器之一預定者為一可變長度解碼器,其係經組配來將可變長度碼字組分別地對映至各有三符碼之符碼序列,及其係經組配來在該個別熵解碼器之位元串流轉換成符碼時,檢查該個別位元串流中之該第一位元來判定是否為以下情況:該個別位元串流之該第一位元等於c而 c {0,1},該種情況下,預定熵解碼器係經組配來重建一符碼序列其係等於(aaa)3 而a{0,1},或該個別位元串流之該第一位元等於d而cdd {0,1},該種情況下,該預定熵解碼器係經組配來從在該第一位元後方之該個別位元串流之另2額外位元決定一第一2-位元字組,及檢查該第一2-位元字組來判定是否為以下情況:該第一2-位元字組非為三個2-位元字組之一第一集合之成分,該種情況下,該預定熵解碼器係經組配來重建具有恰一個b而bab {0,1}之一符碼序列,b在個別符碼序列之位置係取決於該第一2-位元字組,或該第一2-位元字組為第一集合之成分,該種情況下,該預定熵解碼器係經組配來決定在從其中已經決定之該第一2-位元字組之二位元後方,從個別位元串流之另2額外位元決定一第二2-位元字組,及檢查該第二2-位元字組來判定是否為以下情況:該第二2-位元字組非為三個2-位元字組之一第二集合之成分,該種情況下,該預定熵解碼器係經組配來重建具有恰一個a之一符碼序列,而a在個別符碼序列之位置係取決於該第二2-位元字組,或該第二2-位元字組係為三個2-位元字組之一第二集合之成分,該種情況下,該預定熵解碼器係經組配來重建係等於(bbb)3 之一符碼序列。
  49. 如申請專利範圍第25項之解碼器,其中該熵解碼器之至 少一子集各自為具有內部態之一二元算術解碼引擎,其係由目前區間寬度R及在該目前區間寬度R內之一值V界定,該二元算術解碼引擎係經組配來在個別位元串流轉換成符碼時,進行下列步驟:使用K區間[D i ,D i +1 )而j=0...K-1,將該目前區間寬度R對映至一量化指數q_index而使R落入區間[D q_index ,D q_index +1 );藉由使用表Rtab及量化指數q_index作為指數,執行區間細分成表Rtab來獲得對應於LPS之部分區間寬度RLPS =Rtab[q_index]而Rtab[i]為針對i=0...K-1之2的次冪,其中該對應於MPS之部分區間寬度RMPS 為R-RLPS ;檢查是否RMPS V,及若RMPS V,重建一目前符碼為等於LPS,及更新V為V-RMPS ,及更新R為RLPS ;及若非為RMPS V,則重建該目前符碼及NMPS -1接續符碼為等於MPS而N MPS =(R -max{V +1,D q_index -R LPS })/R LPS ,及更新R為R -N MPS R LPS ;及使用個別位元串流而重新標準化R及更新V。
  50. 如申請專利範圍第49項之解碼器,其中該等熵解碼器之該子集中各者之二元算術解碼引擎係經組配來在重新標準化R及更新V時,進行下列步驟:檢查是否R<Rmin 而Rmin =D0 ,及若R<Rmin ,則使用最小y增加R成為R ‧2 y ,使R變成等於或大於Rmin ,及藉將V朝左移位y位元位置而更新V,及依據排成一列的個別位元串流之其次y位元而設定V之y最低有效位元。
  51. 如申請專利範圍第49項之解碼器,其中該等熵解碼器之該子集包含各自具有不同表Rtab之多個熵解碼器。
  52. 如申請專利範圍第51項之解碼器,其中針對該等多個解碼器之Rtab[i]係經選擇使得針對各個熵解碼器,存在有一對PLPS 及一向量{Q 0 ,...,Q K -1 }而Q i [D i ,D i +1 )使得針對0.99‧p LPS Q i <Rtab [i ]<1.01‧P LPS Q i 而i=0...K,在該等多個熵解碼器間p LPS 係為彼此相異。
  53. 如申請專利範圍第51項之解碼器,其中在該等多個熵解碼器間之K係為彼此相異。
  54. 如申請專利範圍第51項之解碼器,其中在該等多個熵解碼器中,針對至少一個K=1或Qi =Q0 而i=1...K,其中該熵解碼器之該二元算術解碼引擎係經組配來在個別位元串流轉換成符碼時,進行下列步驟:藉設定RLPS =Q0 而執行區間細分;檢查是否RMPS V,及若RMPS V,重建一目前符碼為等於LPS,及更新V為V-RMPS ,及更新R為RLPS ;及若非為RMPS V,則重建該目前符碼及NMPS -1接續符碼為等於MPS而N MPS =(R -max{V +1,R min -R LPS })/R LPS ,及更新R為R-N MPS R LPS ;及使用個別位元串流而重新標準化R及更新V。
  55. 如申請專利範圍第49項之解碼器,其中該等熵解碼器之該子集中各者之該二元算術解碼引擎係經組配來藉將項(R -max{V +1,D q_index -R LPS })的結果朝右移位log2 (RLPS )位元而運算NMPS
  56. 如申請專利範圍第25項之解碼器,其中該等熵解碼器之至少一子集中各者為具有內部態之一二元算術解碼引擎,其係由目前區間寬度R及在該目前區間寬度R內之一值V界定,該二元算術解碼引擎係經組配來在個別位元串流轉換成符碼時,進行下列步驟:藉由設定對應於LPS之部分區間寬度RLPS 為等於Q0 而執行區間細分,其中該對應於MPS之部分區間寬度RMPS 為R-RLPS ;檢查是否RMPS V,及若RMPS V,重建一目前符碼為等於LPS,及更新V為V-RMPS ,及更新R為RLPS ;及若非為RMPS V,則重建該目前符碼及NMPS -1接續符碼為等於MPS而N MPS =(R -max{V +1,D q_index -R LPS })/R LPS ,及更新R為R-N MPS R LPS ;及使用個別位元串流而重新標準化R及更新V。
  57. 一種用以解碼一符碼序列之裝置,該符碼序列循序地表示顯著性對映之一語法元件子集及然後針對含有變換係數不等於零之(視訊)圖像區塊,變換係數值係不等於零之符碼表示型態,其中該顯著性對映之語法元件針對變換係數在一掃描順序之位置,載明在個別位置變換係數是否不等於零,及變換係數值係不等於零之符碼表示型態係以反向掃描順序-始於不等於零之最末變換係數,而藉符碼序列表示,該裝置係經組配來使用如申請專利範圍第25至56項中任一項之解碼器而重建符碼序列。
  58. 一種用於熵解碼熵編碼資訊符碼之裝置,該等熵編碼資訊符碼係基於該符碼之機率資訊藉熵編碼一序列符碼中之一符碼而產生,該符碼為一符碼集合之一部分,其中針對該符碼之機率資訊係基於該符碼之脈絡而導算出,該脈絡包括一或多個稍早處理的脈絡符碼,及其中,針對熵編碼該起始符碼,使用一初始化機率資訊,該初始化機率資訊係根據有關於一起始符碼的符碼統計數字之估算,且係經測定使得一初始化機率分布係與針對該符碼集合之全部符碼之一等-可能性分布不同,該裝置包含:如申請專利範圍第25至56項中任一項之用以重建該符碼序列之解碼器,該解碼器係經組配來當熵編碼該資訊符碼序列時,獲得已經使用之機率資訊,該解碼器包括一初始化器用以當熵編碼該起始符碼時獲得已使用之初始化機率資訊。
  59. 如申請專利範圍第28項之解碼器,其中該分配器係經組配來在個別脈絡所分配之一符碼初次出現之前,將針對各脈絡之機率分布估值初始化為一個別初始化機率分布估值,在該欲重建的符碼序列內部,該初始化機率分布估值係基於與一起始符碼相關之符碼統計數字,且係經測定使得一初始化機率分布係與針對在該等符碼下方之一符碼集合的全部符碼之等-可能性分布相異。
  60. 如申請專利範圍第28項之解碼器,其中該欲重建之符碼序列包含一預定語法元件之符碼表示型態之至少一個 符碼,該欲重建之符碼序列為屬於一視訊信號之預編碼版本之一預編碼視訊信號,該視訊信號表示由圖像樣本所組成之至少一個視訊圖框,該等圖像樣本屬於在一不同時間瞬間被拍攝之一第一欄位或一第二欄位,該視訊圖框係在空間上被劃分成巨集區塊對區,各個巨集區塊對區係與一頂及一底巨集區塊相關聯,各個巨集區塊對區係為一第一或一第二分布型,其中針對各個巨集區塊對區,在該個別巨集區塊對區內之像素樣本各自係依據該個別巨集區塊對區之分布型而被分配給該個別巨集區塊對區之頂及底巨集區塊中之一個別者,其中該預定語法元件係與該個別巨集區塊對區中之一預定巨集區塊對區之頂及底巨集區塊中之一預定巨集區塊相關聯,其中該分配器係經組配來進行下列步驟:針對該預定語法元件,至少基於該預定巨集區塊對區係為一第一或一第二分布型而判定一鄰近巨集區塊;基於該鄰近巨集區塊之一預定屬性,分配至少二脈絡中之一者給該預定語法元件之符碼表示型態之至少一個符碼,其中各脈絡係與一不同機率分布估算相對應;及基於與分配給該至少一個符碼之脈絡相關聯之機率分布估值,測定針對該至少一個符碼之機率分布估值之量測值。
  61. 如申請專利範圍第60項之解碼器,其中該分配器係經組配來在針對該預定語法元件測定一鄰近巨集區塊時,進 行下列步驟:至少基於該預定巨集區塊對區係為圖框或欄位編碼分布型,而判定在該預定巨集區塊左側之一鄰近巨集區塊使得若該預定巨集區塊對區係為欄位編碼分布型,則該預定巨集區塊左側之鄰近巨集區塊係測定為在該預定巨集區塊對區左側之一巨集區塊對區之一底巨集區塊,若該左側之巨集區塊對區也屬欄位編碼分布型,及該預定巨集區塊為該預定巨集區塊對區之底巨集區塊,及則該預定巨集區塊左側之鄰近巨集區塊係測定為在該預定巨集區塊對區左側之一巨集區塊對區之一頂巨集區塊,若該左側之巨集區塊對區也屬圖框編碼分布型,或若該左側之巨集區塊對區係屬欄位編碼分布型而該預定巨集區塊為該預定巨集區塊對區之頂巨集區塊,及若該預定巨集區塊對區係為圖框編碼分布型,則該預定巨集區塊左側之鄰近巨集區塊係測定為在該預定巨集區塊對區左側之巨集區塊對區之底巨集區塊,若該左側之巨集區塊對區也屬圖框編碼分布型,及該預定巨集區塊為該預定巨集區塊對區之底巨集區塊,及則該預定巨集區塊左側之鄰近巨集區塊係測定為在該預定巨集區塊對區左側之巨集區塊對區之一 頂巨集區塊,若該左側之巨集區塊對區係屬欄位編碼分布型,或若該左側之巨集區塊對區係屬圖框編碼分布型而該預定巨集區塊為該預定巨集區塊對區之頂巨集區塊,及至少基於該預定巨集區塊對區係為圖框或欄位編碼分布型,在該預定巨集區塊頂部之一鄰近巨集區塊使得若該預定巨集區塊對區係屬圖框編碼分布型,則為在該預定巨集區塊頂部之鄰近巨集區塊判定為若該預定巨集區塊為該預定巨集區塊對區之底巨集區塊,則為該預定巨集區塊對區之一頂巨集區塊,及若該預定巨集區塊為該預定巨集區塊對區之頂巨集區塊,則為在該預定巨集區塊對區頂部之巨集區塊對區之一底巨集區塊,若該預定巨集區塊對區係屬欄位編碼分布型及該預定巨集區塊為該預定巨集區塊對區之頂巨集區塊,則在該預定巨集區塊頂部之鄰近巨集區塊係測定為若該預定巨集區塊對區頂部之巨集區塊對區係屬圖框編碼分布型,則為該預定巨集區塊對區頂部之該巨集區塊對區之底巨集區塊,若該預定巨集區塊對區頂部之巨集區塊對區係屬欄位編碼分布型,則為該預定巨集區塊對區頂部之該巨集區塊對區之頂巨集區塊, 若該預定巨集區塊對區係屬欄位編碼分布型且該預定巨集區塊為該預定巨集區塊對區之底巨集區塊,則該預定巨集區塊頂部之鄰近巨集區塊係判定為該預定巨集區塊對區頂部之該巨集區塊對區之底巨集區塊;基於在該預定巨集區塊左側之鄰近巨集區塊及在該預定巨集區塊頂部之鄰近巨集區塊,分配該至少兩個脈絡模型中之一者給該預定巨集區塊之該預定語法元件子集。
  62. 如申請專利範圍第60項之解碼器,其中該預定語法元件係有關於該等巨集區塊對區之一預定巨集區塊對區之頂及底巨集區塊之一預定巨集區塊,且係為彩度預測指標指示用於該預定巨集區塊之彩度資訊之一空間預測類型,及其中該分配器係經組配來在指定該至少二脈絡中之一者時,基於下列而執行分配該鄰近巨集區塊之可利用性指示該預定巨集區塊及該鄰近巨集區塊是否屬於該視訊圖框之同一截割片或屬於該視訊圖框之不同截割片,該鄰近巨集區塊之一巨集區塊類型指標,載明一巨集區塊預測模式及用於預測之該鄰近巨集區塊之分割,該鄰近巨集區塊在該編碼位元串流中為跨區塊-編碼或區塊內-編碼,及針對該鄰近巨集區塊,一語法元件載明用於該鄰近巨集區塊之彩度資訊之一空間預測類型。
  63. 如申請專利範圍第60項之解碼器,其中該第一及第二欄位分別為該視訊圖框之交替列的頂及底欄位,及該第一及第二分布型分別為圖框編碼或欄位編碼分布型,其中在該個別巨集區塊對區之像素樣本各自係依據個別巨集區塊對區之分布型而分配給該個別巨集區塊對區之頂及底巨集區塊中之個別者,使得位在該個別巨集區塊對區上部之像素樣本係分配給頂巨集區塊,及位在該個別巨集區塊對區下部之像素樣本係分配給底巨集區塊,而依據該欄位編碼分布型,在該個別巨集區塊對區中屬於頂欄位之像素樣本係分配給頂巨集區塊,及在該個別巨集區塊對區中屬於底欄位之像素樣本係分配給底巨集區塊,其中該等巨集區塊各自係與語法元件中之個別者相關聯,該預定語法元件係有關該等巨集區塊對區之一預定巨集區塊對區之頂及底巨集區塊之一預定巨集區塊,其中該分配器係經組配來在針對該預定語法元件測定一鄰近巨集區塊時,進行下列步驟:基於該預定巨集區塊對區是否係屬欄位或圖框編碼分布型,其左側之一巨集區塊對區是否係屬圖框或欄位編碼分布型,及該預定巨集區塊是否係為該預定巨集區塊對區之頂或底巨集區塊,測定該預定巨集區塊左側之一鄰近巨集區塊,使得若該預定巨集區塊對區係屬欄位編碼分布型,其左側之巨集區塊對區也屬欄位編碼分布型,及該預定巨集區塊為該預定巨集區塊對區之底巨集區塊,則 該預定巨集區塊左側之鄰近巨集區塊係經測定為該預定巨集區塊對區左側之巨集區塊對區之一底巨集區塊,若該預定巨集區塊對區係屬欄位編碼分布型,其左側之巨集區塊對區係屬圖框編碼分布型,及該預定巨集區塊為該預定巨集區塊對區之底巨集區塊,則若該預定子部分之左上樣本之亮度位置之行數係在該預定巨集區塊之上半,則該預定巨集區塊左側之鄰近巨集區塊係經測定為該預定巨集區塊對區左側之巨集區塊對區之一頂巨集區塊,及若該預定子部分之左上樣本之亮度位置之行數係在該預定巨集區塊之下半,則該預定巨集區塊左側之鄰近巨集區塊係經測定為該預定巨集區塊對區左側之巨集區塊對區之底巨集區塊,若該預定巨集區塊對區係屬欄位編碼分布型,其左側之巨集區塊對區也屬欄位編碼分布型,及該預定巨集區塊為該預定巨集區塊對區之頂巨集區塊,則該預定巨集區塊左側之鄰近巨集區塊係經測定為該預定巨集區塊對區左側之巨集區塊對區之頂巨集區塊,若該預定巨集區塊對區係屬欄位編碼分布型,其左側之巨集區塊對區係屬圖框編碼分布型,及該預定巨集區塊為該預定巨集區塊對區之頂巨集區塊,則若該預定子部分之左上樣本之亮度位置之行 數係在該預定巨集區塊之上半,則該預定巨集區塊左側之鄰近巨集區塊係經測定為該預定巨集區塊對區左側之巨集區塊對區之一頂巨集區塊,及若該預定子部分之左上樣本之亮度位置之行數係在該預定巨集區塊之下半,則該預定巨集區塊左側之鄰近巨集區塊係經測定為該預定巨集區塊對區左側之巨集區塊對區之底巨集區塊,若該預定巨集區塊對區係屬圖框編碼分布型,其左側之巨集區塊對區也屬圖框編碼分布型,及該預定巨集區塊為該預定巨集區塊對區之頂巨集區塊,則該預定巨集區塊左側之鄰近巨集區塊係經測定為該預定巨集區塊對區左側之巨集區塊對區之頂巨集區塊,若該預定巨集區塊對區係屬圖框編碼分布型,其左側之巨集區塊對區係屬欄位編碼分布型,及該預定巨集區塊為該預定巨集區塊對區之頂巨集區塊,則該預定巨集區塊左側之鄰近巨集區塊係經測定為該預定巨集區塊對區左側之巨集區塊對區之一頂巨集區塊,若該預定巨集區塊對區係屬圖框編碼分布型,其左側之巨集區塊對區也屬圖框編碼分布型,及該預定巨集區塊為該預定巨集區塊對區之底巨集區塊,則該預定巨集區塊左側之鄰近巨集區塊係經測定為該預定巨集區塊對區左側之巨集區塊對區之底巨集區 塊,若該預定巨集區塊對區係屬圖框編碼分布型,其左側之巨集區塊對區係屬欄位編碼分布型,及該預定巨集區塊為該預定巨集區塊對區之底巨集區塊,則該預定巨集區塊左側之鄰近巨集區塊係經測定為該預定巨集區塊對區左側之巨集區塊對區之一頂巨集區塊,基於在該預定巨集區塊左側之鄰近巨集區塊之一預定屬性,分配該等至少兩個脈絡模型中之一者給該預定語法元件。
  64. 如申請專利範圍第60項之解碼器,其中該語法元件為一跳位指標,針對該個別巨集區塊載明有關當解碼該預編碼視訊信號時是否欲跳位該個別巨集區塊;該語法元件為一類型指標,載明一巨集區塊預測模式及用於預測之個別巨集區塊之分割;該語法元件為一樣式指標,針對該個別巨集區塊載明該個別巨集區塊之子部分中哪一個可含有非零變換係數而哪一個則否;該語法元件為一彩度預測指標,針對該個別巨集區塊指示用於該個別巨集區塊之彩度資訊之一空間預測類型;該預定巨集區塊係以該預定巨集區塊所分割成的子部分或轉而分割該子部分的更小型子單位分割為單 位,從空間域變換成頻域,及針對該預定巨集區塊之一預定子部分,該預定語法元件載明該預定子部分是否對應於包含至少一個非零變換係數之一變換係數集合;針對一個別巨集區塊之分割中之一預定者,該語法元件載明一運動向量成分與該運動向量成分之預測間之差;或其中該預定語法元件係有關於該巨集區塊之一預定巨集區塊對區之頂及底巨集區塊之一預定巨集區塊,且針對該預定巨集區塊之分割中之一預定者,載明用在該預定巨集區塊之運動預測中之一參考圖像指數。
  65. 如申請專利範圍第25項之解碼器,其中該欲重建之符碼序列之該等符碼為倉(bin)且包含一資料值之二元表示型態,該資料值之二元表示型態具有一次前綴,其為該資料值之最小值及一預定截止值依據一第一二進制化方案之二進制化,及若該資料值係大於該預定截止值,一次後綴附加至該一次前綴,則該一次後綴為該資料值減該預定截止值之差係依據一第二二進制化方案之二進制化,其中該分配器及選擇器係經組配來使得針對該二元表示型態中之各倉,若該倉為一次前綴之一部分,則該分配器決定該倉之參數及該選擇器基於此而執行取回及選擇;及若該碼字組之倉為一次前綴之一部分,則選擇器從組配來依據一靜態位元值機率估算而解碼該倉之該解碼器的解碼階段而取回該倉, 藉此獲得該資料值之二元表示型態。
  66. 如申請專利範圍第25項之解碼器,其中該欲重建之符碼序列包含一預定語法元件之一符碼表示型態之至少一個符碼,該欲重建之符碼序列為表示至少一個視訊圖框之一預編碼視訊,該語法元件係與該視訊圖框之一預定部分相關聯且係指示該視訊圖框之預定部分是否以一第一方式或一第二方式預編碼成預編碼視訊信號,其中該分配器係經組配來進行下列步驟:調查鄰近該預定部分之該視訊圖框之一鄰近部分是否以該第一方式或該第二方式預編碼來獲得一二元值,及基於該二元值,分配至少二脈絡中之一者給該預定語法元件之該符碼表示型態之至少一個符碼,其中各脈絡模型係與一不同機率估算相關聯;及基於與分配給該至少一個符碼之脈絡相關聯之機率分布估值,決定針對該至少一個符碼之機率分布估值之量測值。
  67. 如申請專利範圍第19項之解碼器,其中該欲重建之符碼序列包含變換資料單元或其子單元之符碼表示型態中之至少一個符碼,該變換資料單元為變換係數中之一預定變換係數之預編碼版本,該等變換係數為與一視訊圖框或圖像之多部分中之一預定部分相對應之資料變換結果,該等部分或為與一第一掃描樣式相關聯之一第一型之一部分,或為與一第二掃描樣式相關聯之一第二型 之一部分,其中該分配器係經組配來進行下列步驟:取決於該預定部分是否為與該第一或第二掃描樣式相關聯之一型之一部分,選擇脈絡模型之一第一及一第二集合中之一者,該第一及第二集合係彼此相異;基於分配給該預定變換係數之掃描位置,而將該脈絡模型之第一及一第二集合中之該選定者之一個脈絡模型分配給該變換資料單元或其子單元之符碼表示型態中之至少一個符碼,其中各脈絡模型係與一不同機率估算相關聯;及基於與分配給該至少一個符碼之脈絡相關聯之機率分布估值,決定針對該至少一個符碼之機率分布估值之量測值。
  68. 一種用以重建一符碼序列之方法,其係包含:基於含在該符碼序列之先前重建的符碼內部之資訊,而分配多個參數給一符碼序列欲重建之各個符碼;及從多個熵解碼器中之一選定者取回該符碼序列欲重建之各個符碼,該選擇係取決於界定給個別符碼之參數數目,及多個熵解碼器各自係經組配來將一個別位元串流轉換成符碼。
  69. 一種電腦可讀取數位儲存媒體,其上儲存有具有一程式碼之一電腦程式用以當在一電腦上運行時執行如申請專利範圍第24或68項之方法。
TW100112642A 2010-04-13 2011-04-12 熵編碼技術 TWI514779B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP2010054828 2010-04-13
EP10159793 2010-04-13
US201161432875P 2011-01-14 2011-01-14

Publications (2)

Publication Number Publication Date
TW201143307A TW201143307A (en) 2011-12-01
TWI514779B true TWI514779B (zh) 2015-12-21

Family

ID=44070634

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100112642A TWI514779B (zh) 2010-04-13 2011-04-12 熵編碼技術

Country Status (8)

Country Link
US (1) US8907823B2 (zh)
EP (1) EP2559166B1 (zh)
JP (1) JP5676744B2 (zh)
CN (1) CN103119849B (zh)
HU (1) HUE037656T2 (zh)
PL (1) PL2559166T3 (zh)
TW (1) TWI514779B (zh)
WO (1) WO2011128268A1 (zh)

Families Citing this family (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8077064B2 (en) * 2010-02-26 2011-12-13 Research In Motion Limited Method and device for buffer-based interleaved encoding of an input sequence
JP5688136B2 (ja) * 2010-04-23 2015-03-25 エム アンド ケー ホールディングス インコーポレイテッド 映像を符号化する装置及び方法
US10104391B2 (en) 2010-10-01 2018-10-16 Dolby International Ab System for nested entropy encoding
US20120082228A1 (en) * 2010-10-01 2012-04-05 Yeping Su Nested entropy encoding
US8537038B1 (en) * 2010-10-22 2013-09-17 Smith Micro Software, Inc. Efficient compression method for sorted data representations
US8976861B2 (en) * 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US8755620B2 (en) 2011-01-12 2014-06-17 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding
US9066104B2 (en) 2011-01-14 2015-06-23 Google Inc. Spatial block merge mode
US8687904B2 (en) * 2011-01-14 2014-04-01 Panasonic Corporation Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus which include arithmetic coding or arithmetic decoding
US20120230418A1 (en) 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
WO2012134246A2 (ko) 2011-04-01 2012-10-04 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
US9379736B2 (en) * 2011-06-03 2016-06-28 Qualcomm Incorporated Context-adaptive coding video data
CN107517384B (zh) 2011-06-16 2020-06-30 Ge视频压缩有限责任公司 解码器、编码器、解码方法、编码方法以及存储介质
PT2728866T (pt) * 2011-06-28 2019-02-21 Samsung Electronics Co Ltd Método e aparelho para codificar vídeo e método e aparelho para descodificar vídeo acompanhado com codificação aritmética
US8798139B1 (en) 2011-06-29 2014-08-05 Zenverge, Inc. Dual-pipeline CABAC encoder architecture
US20130083856A1 (en) * 2011-06-29 2013-04-04 Qualcomm Incorporated Contexts for coefficient level coding in video compression
US9258565B1 (en) * 2011-06-29 2016-02-09 Freescale Semiconductor, Inc. Context model cache-management in a dual-pipeline CABAC architecture
US9338465B2 (en) * 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
EP2705667B1 (en) * 2011-06-30 2016-09-21 Huawei Technologies Co., Ltd. Lossless coding and associated signaling methods for compound video
US11647197B2 (en) 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
US9060173B2 (en) 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US9516349B2 (en) 2011-07-12 2016-12-06 Futurewei Technologies, Inc. Pixel-based intra prediction for coding in HEVC
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
US8891616B1 (en) 2011-07-27 2014-11-18 Google Inc. Method and apparatus for entropy encoding based on encoding cost
WO2013026196A1 (en) * 2011-08-23 2013-02-28 Huawei Technologies Co., Ltd. Estimator for estimating a probability distribution of a quantization index
US9300975B2 (en) * 2011-09-11 2016-03-29 Texas Instruments Incorporated Concurrent access shared buffer in a video encoder
WO2013046504A1 (ja) * 2011-09-29 2013-04-04 パナソニック株式会社 算術復号装置、画像復号装置、および算術復号方法
DE102011085451B3 (de) * 2011-10-28 2013-04-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Encodieren einer Mehrzahl von Symbolen in einen codierten Bitstrom, Vorrichtung zum Decodieren eines codierten Bitstroms und Verfahren
LT3145197T (lt) 2011-10-31 2018-08-27 Samsung Electronics Co., Ltd. Transformacijos koeficiento lygmens entropinio dekodavimo konteksto modelio nustatymo būdas
AU2015201779B2 (en) * 2011-10-31 2016-07-28 Samsung Electronics Co., Ltd. Method and apparatus for determining a context model for transform coefficient level entropy encoding and decoding
CN103096062A (zh) * 2011-11-01 2013-05-08 珠海扬智电子科技有限公司 算术解码方法
US9484952B2 (en) 2011-11-03 2016-11-01 Qualcomm Incorporated Context state and probability initialization for context adaptive entropy coding
IN2014CN03598A (zh) * 2011-11-04 2015-07-31 Sharp Kk
WO2013067440A1 (en) 2011-11-04 2013-05-10 General Instrument Corporation Motion vector scaling for non-uniform motion vector grid
US9253508B2 (en) 2011-11-04 2016-02-02 Futurewei Technologies, Inc. Differential pulse code modulation intra prediction for high efficiency video coding
CN107197284B (zh) * 2011-11-07 2020-03-27 太阳专利托管公司 图像编码解码装置
US9357185B2 (en) 2011-11-08 2016-05-31 Qualcomm Incorporated Context optimization for last significant coefficient position coding
US9154792B2 (en) 2011-11-08 2015-10-06 Qualcomm Incorporated Progressive coding of position of last significant coefficient
US20130114667A1 (en) * 2011-11-08 2013-05-09 Sony Corporation Binarisation of last position for higher throughput
BR112014011413B1 (pt) 2011-11-11 2023-03-28 Ge Video Compression, Llc Predição eficaz utilizando codificação de partição
EP2777286B1 (en) 2011-11-11 2017-01-04 GE Video Compression, LLC Effective wedgelet partition coding
KR102036175B1 (ko) 2011-11-11 2019-10-24 지이 비디오 컴프레션, 엘엘씨 적응적 분할 코딩
EP4161078A1 (en) 2011-11-11 2023-04-05 GE Video Compression, LLC Effective wedgelet partition coding using spatial prediction
US9743098B2 (en) * 2011-11-19 2017-08-22 Blackberry Limited Multi-level significance map scanning
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
US9503717B2 (en) * 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
WO2013106987A1 (en) * 2012-01-16 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of bypass coding and reducing contexts for some syntax elements
US9191670B2 (en) * 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
WO2013109026A1 (ko) 2012-01-18 2013-07-25 엘지전자 주식회사 엔트로피 부호화/복호화 방법 및 그 장치
AU2012200319B2 (en) 2012-01-19 2015-11-26 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
US9654772B2 (en) 2012-01-19 2017-05-16 Qualcomm Incorporated Context adaptive entropy coding with a reduced initialization value set
US20150023420A1 (en) * 2012-01-19 2015-01-22 Mitsubishi Electric Corporation Image decoding device, image encoding device, image decoding method, and image encoding method
WO2013109990A2 (en) * 2012-01-20 2013-07-25 General Instrument Corporation Devices and methods for context reduction in last significant coefficient position coding
AU2012200345B2 (en) * 2012-01-20 2014-05-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map residual coefficients of a transform unit
CN111683255B (zh) * 2012-01-20 2022-08-02 索尼公司 有效度图编码的复杂度降低
EP2999123A1 (en) 2012-01-20 2016-03-23 GE Video Compression, LLC Transform coefficient coding
US9531990B1 (en) 2012-01-21 2016-12-27 Google Inc. Compound prediction using multiple sources or prediction modes
WO2013109997A1 (en) * 2012-01-21 2013-07-25 General Instrument Corporation 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
US8737824B1 (en) 2012-03-09 2014-05-27 Google Inc. Adaptively encoding a media stream with compound prediction
US9237344B2 (en) 2012-03-22 2016-01-12 Qualcomm Incorporated Deriving context for last position coding for video coding
PL3910947T3 (pl) * 2012-03-26 2023-12-27 JVC Kenwood Corporation Urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program do dekodowania obrazu
US9584802B2 (en) * 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
HUE044347T2 (hu) * 2012-04-13 2019-10-28 Jvc Kenwood Corp Képdekódoló készülék, képdekódolási eljárás, képdekódoló program
SI2840789T1 (sl) * 2012-04-15 2018-10-30 Samsung Electronics Co., Ltd. Postopek posodabljanja parametrov za entropijsko dekodiranje stopnje koeficienta konverzije in naprava za entropijsko dekodiranje stopnje koeficienta konverzije z njeno uporabo
US9124872B2 (en) 2012-04-16 2015-09-01 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
CA2807382A1 (en) * 2012-04-16 2013-10-16 Research In Motion Limited Modified contexts for level coding of video data
US9313498B2 (en) 2012-04-16 2016-04-12 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding
US10785545B2 (en) * 2012-04-20 2020-09-22 The Board Of Regents Of The University Of Texas System Systems and methods for simultaneous compression and encryption
KR20130122353A (ko) * 2012-04-30 2013-11-07 삼성전자주식회사 비트율 추정 장치 및 그것의 비트율 추정 방법
PL2858354T3 (pl) 2012-05-25 2023-05-02 Sun Patent Trust Sposób kodowania obrazów wideo, sposób dekodowania obrazów wideo, urządzenie do kodowania obrazów wideo, urządzenie do dekodowania obrazów wideo oraz urządzenie do kodowania-dekodowania obrazów wideo
SG10201608592UA (en) 2012-05-25 2016-12-29 Sun Patent Trust Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus
WO2013175736A1 (ja) * 2012-05-25 2013-11-28 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および、動画像符号化復号装置
RU2623798C2 (ru) 2012-06-04 2017-06-29 Сан Пэтент Траст Способ кодирования движущихся графических изображений, устройство кодирования движущихся графических изображений, способ декодирования движущихся графических изображений и устройство декодирования движущихся графических изображений
US9807392B2 (en) * 2012-06-11 2017-10-31 Samsung Electronics Co., Ltd. Sample adaptive offset (SAO) adjustment method and apparatus and SAO adjustment determination method and apparatus
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
US9781447B1 (en) 2012-06-21 2017-10-03 Google Inc. Correlation based inter-plane prediction encoding and decoding
US9185414B1 (en) 2012-06-29 2015-11-10 Google Inc. Video encoding using variance
US9774856B1 (en) 2012-07-02 2017-09-26 Google Inc. Adaptive stochastic entropy coding
US9167268B1 (en) 2012-08-09 2015-10-20 Google Inc. Second-order orthogonal spatial intra prediction
US9015681B1 (en) 2012-08-10 2015-04-21 The Mathworks, Inc. Creating and using array creation routines or a family of routines separate from algorithmic code
US9146750B2 (en) * 2012-08-10 2015-09-29 The Mathworks, Inc. Mechanism for replacing an array creation routine within code
US9244667B2 (en) 2012-08-10 2016-01-26 The Mathworks, Inc. Mechanism for transforming between type-independent and type-specific code
US9344742B2 (en) 2012-08-10 2016-05-17 Google Inc. Transform-domain intra prediction
US9380298B1 (en) 2012-08-10 2016-06-28 Google Inc. Object-based intra-prediction
JPWO2014049982A1 (ja) * 2012-09-28 2016-08-22 三菱電機株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
US9503746B2 (en) * 2012-10-08 2016-11-22 Google Inc. Determine reference motion vectors
FR2999760A1 (fr) * 2012-12-17 2014-06-20 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US9628790B1 (en) 2013-01-03 2017-04-18 Google Inc. Adaptive composite intra prediction for image and video compression
US10412396B2 (en) * 2013-01-16 2019-09-10 Blackberry Limited Transform coefficient coding for context-adaptive binary entropy coding of video
EP2952003B1 (en) * 2013-01-30 2019-07-17 Intel Corporation Content adaptive partitioning for prediction and coding for next generation video
CN105556880A (zh) * 2013-03-14 2016-05-04 麻省理工学院 用于安全通信的方法和装置
US9509998B1 (en) 2013-04-04 2016-11-29 Google Inc. Conditional predictive multi-symbol run-length coding
GB2513110A (en) * 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
CN104104949B (zh) * 2013-04-12 2018-01-09 浙江大学 一种方向信息语法元素的熵编解码方法和装置
TW201507443A (zh) * 2013-05-15 2015-02-16 Vid Scale Inc 基於單迴路解碼之多層視訊編碼
FR3005816B1 (fr) * 2013-05-17 2019-11-29 Jean-Claude Colin Procede pour encoder, notamment des images compressees, notamment par "range coder" ou compression arithmetique.
US9374578B1 (en) 2013-05-23 2016-06-21 Google Inc. Video coding using combined inter and intra predictors
US9247251B1 (en) 2013-07-26 2016-01-26 Google Inc. Right-edge extension for quad-tree intra-prediction
US9392288B2 (en) 2013-10-17 2016-07-12 Google Inc. Video coding using scatter-based scan tables
US9179151B2 (en) 2013-10-18 2015-11-03 Google Inc. Spatial proximity context entropy coding
US9609343B1 (en) 2013-12-20 2017-03-28 Google Inc. Video coding using compound prediction
GB2523347B (en) 2014-02-20 2016-01-13 Gurulogic Microsystems Oy Encoder, decoder and method
US9558109B2 (en) * 2014-04-04 2017-01-31 Samsung Israel Research Corporation Method and apparatus for flash memory arithmetic encoding and decoding
US9337862B2 (en) 2014-06-09 2016-05-10 Tidal Systems, Inc. VLSI efficient Huffman encoding apparatus and method
US10142636B2 (en) 2014-06-09 2018-11-27 Sony Corporation Communication system with coding mechanism and method of operation thereof
US9854253B2 (en) * 2014-06-30 2017-12-26 Qualcomm Incorporated Method for motion vector difference (MVD) and intra block copy vector difference (BVD) coding of screen content video data
CN107113102B (zh) * 2014-09-29 2021-02-02 加利福尼亚大学董事会 用于干扰网络的编码的方法和设备
JP6194427B2 (ja) * 2014-10-06 2017-09-06 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 量子化パラメータのコーディング及び導出
US20160100177A1 (en) * 2014-10-06 2016-04-07 Qualcomm Incorporated Non-uniform exponential-golomb codes for palette mode coding
US10069518B2 (en) * 2014-10-24 2018-09-04 Qualcomm Incorporated Uneven bit distributions for encoder parsing
US9781424B2 (en) * 2015-01-19 2017-10-03 Google Inc. Efficient context handling in arithmetic coding
GB2539239B (en) * 2015-06-10 2017-10-04 Gurulogic Microsystems Oy Encoders, decoders and methods utilizing mode symbols
WO2017041271A1 (en) * 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Efficient context modeling for coding a block of data
US10158874B2 (en) * 2015-09-30 2018-12-18 Apple Inc. Parallel bypass and regular bin coding
GB2543844B (en) 2015-11-01 2018-01-03 Gurulogic Microsystems Oy Encoders, decoders and methods
US20170180757A1 (en) * 2015-12-18 2017-06-22 Blackberry Limited Binarizer selection for image and video coding
US20180359494A1 (en) * 2015-12-31 2018-12-13 Mediatek Inc. Method and apparatus of prediction binary tree structure for video and image coding
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
US9712830B1 (en) 2016-09-15 2017-07-18 Dropbox, Inc. Techniques for image recompression
US10264264B2 (en) * 2016-09-24 2019-04-16 Apple Inc. Multi-bin decoding systems and methods
GB2556886B (en) * 2016-11-23 2019-05-15 Imagination Tech Ltd Encoding and decoding variable length instructions
US9819359B1 (en) * 2016-12-11 2017-11-14 Microsoft Technology Licensing, Llc Multi-symbol, multi-format, parallel symbol decoder for hardware decompression engines
US10244261B2 (en) * 2017-01-26 2019-03-26 Google Llc Transform coefficient coding using level maps
EP3358754A1 (en) * 2017-02-02 2018-08-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Antenna array codebook with beamforming coefficients adapted to an arbitrary antenna response of the antenna array
US10595033B2 (en) 2017-02-15 2020-03-17 Sony Corporation Variable length coding of header data for image compression
CN106941610B (zh) * 2017-04-25 2019-12-24 西安电子科技大学 基于改进方块编码的二值roi掩模编码方法
US10225562B1 (en) * 2017-08-21 2019-03-05 Google Llc Embedding information about EOB positions
US10735736B2 (en) * 2017-08-29 2020-08-04 Google Llc Selective mixing for entropy coding in video compression
US10791341B2 (en) * 2017-10-10 2020-09-29 Qualcomm Incorporated Binary arithmetic coding with progressive modification of adaptation parameters
CN107819573A (zh) * 2017-10-17 2018-03-20 东北大学 高维安全算术编码方法
US11259037B2 (en) * 2017-12-06 2022-02-22 V-Nova International Limited Method and apparatus for decoding a received set of encoded data
DE102018108419A1 (de) * 2018-04-10 2019-10-10 Carl Zeiss Microscopy Gmbh Verfahren und Vorrichtungen zur Komprimierung und Dekomprimierung von Ansteuerkurven
EP3562162A1 (en) * 2018-04-27 2019-10-30 InterDigital VC Holdings, Inc. Method and apparatus for video encoding and decoding based on neural network implementation of cabac
EP3811616A4 (en) * 2018-05-10 2022-07-27 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR PERFORMING BINARY ARITHMETIC CODING IN VIDEO CODING
US20230024560A1 (en) * 2018-05-10 2023-01-26 Sharp Kabushiki Kaisha Systems and methods for performing binary arithmetic coding in video coding
EP3588800A1 (en) 2018-06-29 2020-01-01 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Antenna array codebook with beamforming coefficients adapted to an arbitrary antenna response of the antenna array
US11483575B2 (en) * 2018-08-24 2022-10-25 Hfi Innovation Inc. Coding transform coefficients with throughput constraints
US11006150B2 (en) 2018-09-24 2021-05-11 Tencent America LLC Method and apparatus for video coding
BR112021005558A2 (pt) * 2018-09-24 2021-06-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. aparelho para codificar e decodificar um bloco de coeficientes de transformação, codificador para codificar e decodificador para decodificar um bloco de coeficiente de transformação, método para codificar e decodificar um bloco de coeficientes de transformação, corrente de dados
CN109474281B (zh) * 2018-09-30 2022-07-08 湖南瑞利德信息科技有限公司 数据编码、解码方法及装置
US11856196B2 (en) 2019-01-13 2023-12-26 Lg Electronics Inc. Method and device for processing video signal
US10402172B1 (en) 2019-02-28 2019-09-03 Qrypt, Inc. Multi-source entropy and randomness aggregation and distribution network
WO2021005347A1 (en) * 2019-07-05 2021-01-14 V-Nova International Ltd Quantization of residuals in video coding
CN112398484B (zh) * 2019-08-15 2024-04-23 华为技术有限公司 一种编码方法及相关设备
EP4035398A1 (en) * 2019-09-24 2022-08-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coding concept for a sequence of information values
CN114731407A (zh) * 2019-09-24 2022-07-08 弗劳恩霍夫应用研究促进协会 算术编码器和解码器、视频编码器和解码器、用于编码或解码符号的方法以及用于编码或解码视频内容的方法
US11095311B2 (en) * 2019-11-27 2021-08-17 Qualcomm Incorporated Quantization codeword selection for low cost parity checking
AR121127A1 (es) 2020-02-29 2022-04-20 Beijing Bytedance Network Tech Co Ltd Señalización de información de imagen de referencia en un flujo de bits de video
WO2022000089A1 (en) * 2020-06-30 2022-01-06 National Research Council Of Canada Vector space model for form data extraction
US11115049B1 (en) * 2020-08-24 2021-09-07 Innogrit Technologies Co., Ltd. Hardware friendly data decompression
US11924437B2 (en) * 2022-03-28 2024-03-05 Bitmovin Gmbh Variable framerate encoding using content-aware framerate prediction for high framerate videos
US20240015331A1 (en) * 2022-07-05 2024-01-11 Tencent America LLC Systems and methods including syntax design for multi-symbol arithmetic coding
CN116684003B (zh) * 2023-07-27 2023-10-24 南京中科齐信科技有限公司 一种基于量子通信的铁路沿线空地综合监测方法及系统
CN117579081A (zh) * 2023-11-23 2024-02-20 哈尔滨工程大学 一种二进制数据无损压缩方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357250A (en) * 1992-11-20 1994-10-18 International Business Machines Corporation Adaptive computation of symbol probabilities in n-ary strings
US20050117643A1 (en) * 2002-04-26 2005-06-02 Nec Corporation Moving image transferring system, moving image encoding apparatus, moving image decoding apparatus, and moving image transferring program
US7498960B2 (en) * 2007-04-19 2009-03-03 Analog Devices, Inc. Programmable compute system for executing an H.264 binary decode symbol instruction
US7564384B2 (en) * 2005-12-05 2009-07-21 Huawei Technologies Co., Ltd. Binarizing method and device thereof

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717394A (en) * 1993-02-10 1998-02-10 Ricoh Company Ltd. Method and apparatus for encoding and decoding data
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
JP3230933B2 (ja) * 1994-08-19 2001-11-19 株式会社リコー データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、エンコーディング装置、及びエントロピー・デコーダ
CA2156889C (en) * 1994-09-30 1999-11-02 Edward L. Schwartz Method and apparatus for encoding and decoding data
EP1500281A2 (de) * 2002-05-02 2005-01-26 Fraunhofer-Gesellschaft Zur Förderung Der Angewandten Forschung E.V. Kodierung von transformations-koeffizienten in bild- oder videokodierern
PT2296282E (pt) * 2002-05-02 2013-12-05 Fraunhofer Ges Forschung Método e processo para a codificação e descodificação aritmética com aplicação de múltiplas tabelas de pesquisa
JP3871995B2 (ja) * 2002-10-25 2007-01-24 富士ゼロックス株式会社 符号化装置および復号化装置
KR100636229B1 (ko) * 2005-01-14 2006-10-19 학교법인 성균관대학 신축형 부호화를 위한 적응적 엔트로피 부호화 및 복호화방법과 그 장치
WO2006075901A1 (en) 2005-01-14 2006-07-20 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
WO2008087466A1 (en) * 2007-01-17 2008-07-24 Rosen Stefanov Run-length encoding of binary sequences followed by two independent compressions
US7990297B1 (en) * 2010-02-26 2011-08-02 Research In Motion Limited Encoding and decoding methods and devices employing dual codesets

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357250A (en) * 1992-11-20 1994-10-18 International Business Machines Corporation Adaptive computation of symbol probabilities in n-ary strings
US20050117643A1 (en) * 2002-04-26 2005-06-02 Nec Corporation Moving image transferring system, moving image encoding apparatus, moving image decoding apparatus, and moving image transferring program
US7564384B2 (en) * 2005-12-05 2009-07-21 Huawei Technologies Co., Ltd. Binarizing method and device thereof
US7498960B2 (en) * 2007-04-19 2009-03-03 Analog Devices, Inc. Programmable compute system for executing an H.264 binary decode symbol instruction

Also Published As

Publication number Publication date
WO2011128268A1 (en) 2011-10-20
US20130027230A1 (en) 2013-01-31
EP2559166A1 (en) 2013-02-20
PL2559166T3 (pl) 2018-04-30
EP2559166B1 (en) 2017-11-01
HUE037656T2 (hu) 2018-09-28
TW201143307A (en) 2011-12-01
CN103119849B (zh) 2017-06-16
JP2013528025A (ja) 2013-07-04
JP5676744B2 (ja) 2015-02-25
CN103119849A (zh) 2013-05-22
US8907823B2 (en) 2014-12-09

Similar Documents

Publication Publication Date Title
TWI514779B (zh) 熵編碼技術
TWI575886B (zh) 熵編碼及解碼方案
JP6130839B2 (ja) エントロピー符号化