【文献】
Nguyen, T., et.al.,"REDUCED-COMPLEXITY ENTROPY CODING OF TRANSFORM COEFFICIENT LEVELS USING TRUNCATED GOLOMB-RICE CODES IN VIDEO COMPRESSION",Proceedings of 18th IEEE Int. Conf. on Image Processing,2011年 9月11日,p.753-756,[online],[平成27年11月5日検索],インターネット,URL,http://iphome.hhi.de/wiegand/assets/pdfs/2011_09_ICIP_entropy_cod.pdf
【文献】
亀山渉(外1名)監修,「インプレス標準教科書シリーズ IPTV時代のデジタル放送教科書」,日本,株式会社インプレスR&D,2010年 4月 1日,初版,第122頁,ISBN:978-4-8443-2853-7
【文献】
Joshi, R., et.al.,"AHG19: Modifications to HE transform coefficient coding for transform skip mode",[online],Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2011年11月25日,Document: JCTVC-G663-r1(version 3),[平成27年11月5日検索], インターネット,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G663-v3.zip
【文献】
Bross, B., et.al.,"WD4: Working Draft 4 of High-Efficiency Video Coding",[online],Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2011年 8月 9日,Document: JCTVC-F803_d0(version 2),[平成27年11月5日検索], インターネット,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/6_Torino/wg11/JCTVC-F803-v2.zip
【文献】
Sasai, H., et.al.,"Non-CE11: Modified Context Derivation for last coefficient flag",[online],Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2011年11月25日,Document: JCTVC-G520r2(version 4),[平成27年11月5日検索], インターネット,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G520-v4.zip
【文献】
Nguyen, T.,et.al.,"Reduced-complexity entropy coding of transform coefficient levels using a combination of VLC and PIPE",[online],Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2011年 1月26日,Document: JCTVC-D336(version 7),[平成27年11月5日検索], インターネット,URL,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/4_Daegu/wg11/JCTVC-D336-v7.zip
【文献】
Vetro, A., et.al.,"Antialiasing for 3D Displays",[online],Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 Q.6),2007年 4月27日,Document: JVT-W060,[平成24年10月1日検索], インターネット〈URL:http://wftp3.itu.int/av-arch/jvt-site/2007_04_SanJose/JVT-W060.zip〉
【文献】
Luthra, A.(Chair.),"Draft use cases for the scalable enhancement of HEVC (v1)",[online],Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2011年11月,Document: M22558,[平成25年11月8日検索], インターネット〈URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G950-v1.zip〉
【文献】
大久保榮監修,「インプレス標準教科書シリーズ 改訂三版H.264/AVC教科書」,日本,株式会社インプレスR&D,2009年 1月 1日,第1版,第148〜162頁,ISBN:978-4-8443-2664-9
(58)【調査した分野】(Int.Cl.,DB名)
装置は、現在の変換係数に関連して関連する変換係数の空間的配置に応じて前に符号化された変換係数を空間的に決定するように構成される、請求項1ないし請求項5のいずれかに記載の装置。
コンテキスト適応エントロピーデコーダは、最後のゼロでない変換係数のための1つ以上のシンボルの第1のセットをエントロピー復号化するためのコンテキストの別のセットを使用し、最後のゼロでない変換係数以外の1つ以上のシンボルの第1のセットをエントロピー復号化するのに使用されるコンテキストから離されるように構成される、請求項7または請求項8に記載の装置。
コンテキスト適応エントロピーデコーダは、最後のゼロでない変換係数から変換係数ブロックのDC変換係数まで導く反対のスキャン順序で複数の変換係数を横切る、請求項7ないし請求項9のいずれかに記載の装置。
装置は、1つのスキャンで順次データストリームから複数の変換係数を復号化するように構成され、シンボルの第2のセットは変換係数のシンボルの第1のセットとの間においてデータストリームの中で散在し、コンテキスト適応エントロピーデコーダおよびエクストラクタは、1つのスキャンのスキャン順序におけるそれぞれの変換係数のために、シンボルの第1のセットがデータストリームから第1のレベル間隔の最大レベルにマッピングされるそれぞれの変換係数の1つ以上のシンボルの第1のセットのコンテキスト適応エントロピーデコーダのエントロピー復号化のすぐ後にデータストリームから第1のレベル間隔の最大レベル上にシンボルの第1のセットがマッピングされるそれぞれの変換係数のシンボルの第2のセットを抽出するように構成される、請求項1ないし請求項11のいずれかに記載の装置。
請求項1ないし請求項16のいずれかに記載の装置を含む画像デコーダであって、画像デコーダは、画像を復号化する際に、変換係数ブロックから画像のブロックを再変換するように構成され、装置は、変換係数ブロックごとに、異なるサイズの変換係数ブロックに対して、および/または、異なる情報成分タイプの変換係数ブロックに対して、異なるサイズの変換係数ブロックのための関数を用いて、変換係数ブロックの複数の変換係数を順次復号化するように構成される、画像デコーダ。
装置は、変換係数ブロックの異なる周波数部分のために、異なるサイズの変換係数ブロックのために、および/または異なる情報成分タイプの変換係数ブロックのために、現在の変換係数のためのコンテキストが前に復号化された変換係数に応じて選択されるコンテキストの異なるセットを使用するように構成される、請求項17に記載の画像デコーダ。
装置は、現在の変換係数に関連する変換係数の相対的な空間配置に応じて前に符号化された変換係数を空間的に決定するように構成される、請求項19ないし請求項23のいずれかに記載の装置。
装置は、所定のスキャン順序に沿って変換係数ブロックの変換係数の間で最後のゼロでない変換係数を決定するように構成され、データストリームに位置の情報を入力するように構成され、複数の変換係数は最後のゼロでない変換係数から所定のスキャン順序の開始への変換係数を包含する、請求項19ないし請求項24のいずれかに記載の装置。
シンボライザは、第1のレベル間隔の範囲内のゼロでない変換係数レベルだけが含まれる最後の変換係数のシンボル化のための修正された第1のシンボル化スキームを使用するように構成される、請求項25に記載の装置。
装置は、1つのスキャンで順次データストリームに複数の変換係数を符号化するように構成され、コンテキスト適応エントロピーエンコーダおよびインサータは、1つのスキャンのスキャン順序における変換係数ごとに、シンボルの第3のセットが変換係数のシンボルの第1および第2のセットとの間でデータストリームに散在するように、データストリームに第2のレベル間隔の範囲内で変換係数レベルを有するそれぞれの変換係数の1つ以上のシンボルの第2のセットのコンテキスト適応エントロピーコーダのエントロピー符号化の後に直ちにデータストリームに第2のレベル間隔の範囲内で変換係数レベルを有するそれぞれの変換係数のシンボルの第3のセットを挿入するように構成される、請求項19ないし請求項29に記載の装置。
請求項19ないし請求項33のいずれかに記載の装置を含む画像エンコーダであって、画像エンコーダは、画像を符号化する際に、画像のブロックを変換係数ブロックに変換するように構成され、装置(62)は、変換係数ブロックの複数の変換係数を符号化するように構成され、変換係数ブロックは、変換係数ブロックごとに、異なるサイズのブロックのための関数(52)を用いて、変換係数ブロックの複数の変換係数を符号化するように構成される、画像エンコーダ。
装置は、変換係数ブロックの異なる周波数成分のために、現在の変換係数のためのコンテキストが前に符号化された変換係数に応じて選択されるコンテキストの異なるセットを使用するように構成される、請求項34に記載の画像エンコーダ。
【発明を実施するための形態】
【0013】
以下の説明に関して、同じ参照符号がこれらの図のうちの1つ以上で現される要素のためのこれらの図において使われることに注意されたい。したがって、1つの図に関するこの種の要素の説明は、この要素が現す他の図の説明にも等しく適用される。
【0014】
さらに、前もって以下で提示される説明は、例えば画像の変換ブロックのように、二次元的に配置されたような符号化される変換係数を仮定する。しかしながら、本出願は、画像および/またはビデオ符号化に制限されない。むしろ、符号化される変換係数は、例えば音声符号化などに使用される一次元の変換の変換係数ということもあり得る。
【0015】
更に下で記載されている実施例が直面する課題、および更に後述する実施例がこれらの課題を解決する方法を説明するために、参照は
図1〜3に前もってなされ、それは変換ブロックの変換係数およびエントロピー符号化のそれらの一般の方法の実施例を示し、それはその後説明される実施例によって改良される。
【0016】
図1は、見本となる変換係数12のブロック10を示す。本実施例において、変換係数は、二次元的に配列される。特に、他の二次元の配列も可能であるが、それは縦横に規則的に配列されるものとして見本として示される。変換係数12または変換ブロック10につながる変換は、DCTまたは、例えば、画像の(変換)ブロックを分解するいくらかの他の変換、または異なる空間的周波数の構成要素への空間的に配置された値のいくつかのブロックでもよい。
図1の本実施例において、例えば互いに直交する異なる空間的方向x,yに沿って測定される周波数f
x(i),f
y(j)の周波数対(f
x(i),f
y(j))に対応するように変換係数12は列iおよび行jに二次元的に配列され、f
x/y(i)<f
x/y(i+1)および(i,j)は変換ブロック10におけるそれぞれの係数の位置である。
【0017】
しばしば、低い周波数に対応する変換係数12は、より高い周波数に対応する変換係数に比べて高い変換係数レベルを有する。したがって、しばしば、変換ブロック10の最も高い周波数成分の近くの多くの変換係数はゼロに量子化され、符号化されることはない。むしろ、スキャン順序14は、二次元的に配列された変換係数12(i,j)を順序、すなわち(i,j)→kにおける係数のシーケンスに一次元的に配列する変換係数12の中で定められ、それにより、変換係数レベルはこの順序に沿って単調に減少する傾向がありそうであり、すなわち、係数kの係数レベルが係数k+1の係数レベルより大きいことはありそうである。
【0018】
たとえば、ジグザグまたはラスタ・スキャンは、変換係数12の中で定められることができる。スキャンによれば、ブロック10は、例えば、DC成分変換係数(上の左側の係数)から最高周波数変換係数(低い右の係数)またはその逆に斜めにスキャンされることができる。あるいは、ちょうど言及された極度の構成要素変換係数間の変換係数の行的または列的なスキャンが使われることができる。
【0019】
更に後述するように、変換ブロックを符号化する際にスキャン順序14における最後のゼロでない変換係数Lの位置が最初にデータストリームに符号化され、そして、スキャン経路14に沿ってDC変換係数から最後のゼロでない変換係数Lまで−任意にその方向で、または逆の方向で、変換係数を単に符号化する。
【0020】
変換係数12は、符号付きの、または符号なしの変換係数レベルを有する。たとえば、変換係数12は、それぞれの変換係数レベルと関連する可能な量子化値のセットの上への次の量子化を有する前述の変換によって得られることができた。変換係数を量子化する、すなわち変換係数を変換係数レベルにマッピングするために用いる量子化関数は、線形でもよいし、非線形でもよい。換言すれば、各変換係数12は、可能なレベルの間隔の範囲外の変換係数レベルを有する。
図2は、例えば、変換係数レベルxがレベル[0、2
N―
1]の範囲の中で定められる例を示す。別の実施例によれば、間隔範囲の上界がないかもしれない。さらに、
図2は、それが符号付きであってもよいが、正の変換係数レベルのみを示す。変換係数12の符号およびそれらの符号化に関して、異なる可能性がこれらの符号を符号化するために以下で概説される実施例の全てに関して存在する点に留意する必要があり、これらの可能性の全てはこれらの実施例の範囲内である。
図2に関して、これは、変換係数レベルの範囲間隔の下界もないかもしれないことを意味する。
【0021】
いずれにせよ、変換係数12の変換係数レベルを符号化するために、異なるシンボル化スキームが、範囲間隔20の異なる部分または間隔16、18をカバーするために用いられる。より正確には、第1のレベル間隔16の中の変換係数レベルは、第1のレベル間隔16の最大レベルに等しいものを除いて、単に第1のシンボル化スキームに従って1つ以上のシンボルのセット上へシンボル化されることができる。しかしながら、第2のレベル間隔18の中に存在している変換係数レベルは、第1および第2のシンボル化スキームのシンボル・セットの組合せにマッピングされる。後で強調されるように、第3および更なる間隔はしたがって、第2の間隔に続くことができる。
【0022】
図2に示すように、第2のレベル間隔18が第1のレベル間隔16より上に位置するが、
図2の実施例の2に示すように、第1のレベル間隔16の最大レベルで後者と重複する。第2のレベル間隔18の中に存在している変換係数レベルのために、それぞれのレベルは第1のシンボル化スキームに従う第1のレベル間隔の最大レベルに対応する第1のシンボルのセット、および第2のシンボル化スキームに従う第2のレベル間隔18の中の変換係数レベルの位置に応じる第2のシンボルのセットの組合せにマッピングされる。
【0023】
換言すれば、第1のシンボル化スキーム16は、第1のシンボルシーケンスのセット上へ第1のレベル間隔16によってカバーされるレベルをマッピングする。バイナリのアルファベットの場合、および 例えば0および1のような2つの変換係数レベルを単にカバーしている第1のレベル間隔16の場合には、第1のシンボル化スキームのシンボルシーケンスのセットの中のシンボルシーケンスの長さが単に1つのバイナリのシンボルにすぎないという点に注意されたい。本出願の実施例によれば、第1のシンボル化スキームは、間隔16のレベルのTruncated Unary binarizationである。バイナリのアルファベットの場合には、シンボルは、ビン(bin)と呼ばれる。
【0024】
以下で更に詳細に説明するように、第2のシンボル化スキームは変化する長さの第2のシンボルシーケンスのセット上に第2のレベル間隔18の範囲内のレベルをマッピングし、ここで、第2のシンボル化スキームはシンボル化パラメータに従ってパラメータ化可能である。第2のシンボル化スキームは、間隔18、すなわちx−第1の間隔の最大レベルの範囲内のレベルをライス・パラメータを有するライス・コード上にマッピングすることができる。
【0025】
特に、第2のスキームのシンボルシーケンスの長さが第2のレベル間隔18の下界からその上界へ増加する割合でシンボル化パラメータが速度を変化させるように、第2のシンボル化スキーム18は構成されることができる。明らかに、シンボルシーケンスの増加した長さは、変換係数が符号化されることになっているデータストリームの中で、より多くのデータ転送速度を消費する。通常、特定のレベルがマッピングされるシンボルシーケンスの長さが、現在符号化される変換係数レベルがそれぞれのレベルであるとみなす実際の可能性と関連する場合、それは好ましい。当然、後の記載も、第1のレベル間隔16の中の第2のレベル間隔18の外側のレベルのために、または、一般の第1のシンボル化スキームのために有効である。
【0026】
特に、
図3に示すように、変換係数は、概して特定の変換係数レベルの発生の特定の統計または確率を示す。
図3は、それぞれの可能な変換係数レベルxに、それぞれの変換係数レベルが実は問題の変換係数によってみなされる確率を関連付けているグラフを示す。より正確には、
図3は、2つのそのような関連または確率曲線、すなわち異なるコンテキストの2つの係数のために示す。すなわち、
図3は、変換係数が例えば、隣接した変換係数の変換係数値で決定されるようにそれらのコンテキストに従って区別される変換係数を仮定する。コンテキストに応じて、
図3は、確率値を各変換係数レベルと関連させる確率曲線が問題の変換係数のコンテキストに依存することができることを示す。
【0027】
後述する実施例によれば、第1のシンボル化スキーム16のシンボルシーケンスのシンボルは、コンテキスト適応方法でエントロピー符号化される。すなわち、コンテキストはシンボルと関係しており、選択されたコンテキストと関連したアルファベット確率分布がそれぞれのシンボルをエントロピー符号化するために使用される。第2のシンボル化スキームのシンボルシーケンスのシンボルは、直接、あるいはアルファベットの全ての部材が等しくありそうな等しい確率分布のような固定されたアルファベット確率分布を用いてデータストリームに挿入される。
【0028】
第1のシンボル化スキームのシンボルをエントロピー符号化するのに用いられるコンテキストは、実際のアルファベット統計に推定されたアルファベット確率分布の良好な適応を可能にするために、適切に選択されなければならない。すなわち、このコンテキストを有するシンボルが符号化/復号化されるときはいつでも、エントロピー符号化スキームはコンテキストのアルファベット確率分布の現在の評価を更新するように構成されることができ、それによって、実際のアルファベット統計に近づく。コンテキストが適切に選択される場合、近似はより急速であり、それは、十分に微妙であるが、特定のコンテキストとシンボルとのあまりに離れた関連を避けるように、あまり多くの異なるコンテキストをもたない。
【0029】
同様に、係数のシンボル化パラメータは、できるだけ近く実際のアルファベット統計に近づくために、前に符号化/復号化された係数に依存して選択されなければならない。象徴化パラメータは前に符号化/復号化された係数から直接決定されるが、判定は前に符号化/復号化された係数上の第2の間隔18の中の確率曲線の依存の相関に密接に対応しなければならないため、あまり微細な多様化はここでは重大な問題でない。
【0030】
以下で更に詳細に説明するように、一般の関数がコンテキスト適応およびシンボル化パラメータの決定を成し遂げるために用いられるという点で、更に後述する変換係数を符号化するための実施例は有利である。正しいコンテキストを選択することは、前に説明したように、高い符号化効率または圧縮率を成し遂げるために重要であり、それはシンボル化パラメータに関してあてはまる。後述する実施例は、前に符号化/復号化された係数への依存を低く示すためのオーバーヘッドを保つことによってこの目的を達成することができる。特に、本出願の発明者は、一方では前に符号化/復号化された係数の効果的な依存と、他方では個々のコンテキスト依存性を示すための妥当性ロジックの数を減らすこととの間の良好な妥協を見つける方法を見つけた。
【0031】
図4は、この発明にしたがって、データストリーム中に変換係数レベルを有する多数の変換係数を符号化するための装置を示す。なお、以下の説明で、この仮定が、上で説明されているように、本発明のために決定的でないにもかかわらず、シンボル・アルファベットはバイナリのアルファベットであるとしばしばみなされ、したがって、これらの説明の全ては他のシンボル・アルファベット上への拡張のために図示することに注意される。
【0032】
図4の装置は、データストリーム32に入力30で入力される複数の変換係数を符号化するためのものである。装置は、シンボライザ34、コンテキスト適応エントロピーエンコーダ36、シンボル化パラメータ決定装置38およびインサータ40を含む。
【0033】
シンボライザ34は、入力30に接続されているその入力を有し、
図2に関して上述の方法におけるシンボル上に現在その入力を入力している現在の変換係数をマッピングするように構成される。すなわち、シンボライザ34は第1のシンボル化スキームに従って1つ以上のシンボルの第1のセット上に現在の変換係数をマッピングし、現在の変換係数の変換係数レベルxが第1のレベル間隔16の範囲内にある場合、および現在の変換係数の変換係数レベルが第2のレベル間隔18の範囲内にある場合、その上に第1のシンボル化スキームに従って第1のレベル間隔16の最大レベルがマッピングされるシンボルの第2のセット、および第2のシンボル化スキームに従って第2のレベル間隔18の範囲内にある現在の変換係数の変換係数レベルの位置に従ったシンボルの第3のセットの組み合わせの上にマッピングされるように構成される。換言すれば、シンボライザ34は、現在の変換係数の変換係数レベルが第1のレベル間隔16の範囲内にあるが第2のレベル間隔の外にある場合、現在の変換係数を第1のシンボル化スキームの第1のシンボルシーケンス上にマッピングし、第1のレベル間隔16の最大レベルのための第1のシンボル化スキームのシンボルシーケンスおよび現在の変換係数の変換係数レベルが第2のレベル間隔の範囲内にある場合の第2のシンボル化スキームのシンボルシーケンスの組み合わせの上にマッピングするように構成される。
【0034】
シンボライザ34は2つの出力を有し、1つは第1のシンボル化スキームのシンボルシーケンスのためのものであり、他方は第2のシンボル化スキームのシンボルシーケンスのためのものである。インサータ40は、第2のシンボル化スキームのシンボルシーケンス42を受信するための入力を有し、コンテキスト適応エントロピーエンコーダ36は第1のシンボル化スキームのシンボルシーケンス44を受信するための入力を有する。さらに、シンボライザ34は、シンボル化パラメータ決定装置38の出力からシンボル化パラメータ46を受け取るためのパラメータ入力を有する。
【0035】
コンテキスト適応エントロピーエンコーダ36は、データストリーム32に第1のシンボルシーケンス44のシンボルをエントロピー符号化するように構成される。インサータ40は、データストリーム32にシンボルシーケンス42を挿入するように構成される。
【0036】
一般的に言って、エントロピーエンコーダ36およびインサータ40は、順次変換係数をスキャンする。明らかに、インサータ40は単に変換係数のために作動するだけであり、その変換係数レベルが第2のレベル間隔18の中に位置する。しかしながら、以下で詳しく述べるように、エントロピーエンコーダ36およびインサータ40の動作の間に順序を定めるための異なる可能性がある。第1の実施例によれば、データストリーム32に同じ変換係数に関連する第1のシンボルシーケンス44のエントロピーエンコーダのエントロピー符号化の後、データストリーム32に埋め込まれる次の変換係数に関連するエントロピーエンコーダのエントロピー符号化に先立って、インサータ40がデータストリーム32に変換係数のシンボルシーケンスを挿入するように、
図4の符号化装置は1回のスキャンで変換係数をスキャンするように構成される。
【0037】
別の実施例によれば、装置は2つのスキャンを使用し、第1のスキャンの範囲内でコンテキスト適応エントロピーエンコーダ36がインサータ40で各変換係数のためのデータストリーム32にシンボルシーケンス44を順次符号化し、そして、変換係数のためのシンボネシーケンス42を挿入し、その変換係数レベルは第2のレベル間隔18の範囲内にある。第1のスキャンにおける第1のシンボルまたはビンと、後続の第2のスキャン等におけるシーケンス44の第2のシンボルまたはビンのように、例えば、コンテキスト適応エントロピーエンコーダ36がデータストリーム32に第1のシンボルシーケンス44の個々のシンボルを符号化するためにいくつかのスキャンを使用するより高度なスキームが存在することさえできる。
【0038】
すでに上で示されるように、コンテキスト適応エントロピーエンコーダ36は、コンテキスト適応方法で、データストリーム32にシンボルシーケンス44の少なくとも1つの所定のシンボルをエントロピー符号化するように構成される。たとえば、コンテキスト適応が、シンボルシーケンス44のすべてのシンボルのために使用されることができる。あるいは、コンテキスト適応エントロピーエンコーダ36は、コンテキスト適応を第1の位置および第1のシンボル化スキームのみのシンボルシーケンス、または第1および第2、または第1ないし第3の位置その他に制限することができる。
【0039】
上述の通り、コンテキスト適応のために、エンコーダ36は、コンテキストごとにアルファベット確率分布評価を格納して、更新することによって、コンテキストを管理する。特定のコンテキストのシンボルが符号化されるたびに、現在格納されているアルファベット確率分布評価はこのシンボルの実際値を使用して更新され、それによりそのコンテキストのシンボルの実際のアルファベット統計に近くなっている。
【0040】
同様に、シンボル化パラメータ決定装置38は、前に符号化された変換係数に応じて第2のシンボル化スキームおよびそのシンボルシーケンス42のシンボル化パラメータ46を決定するように構成される。
【0041】
より正確には、コンテキストエントロピーエンコーダ36は、それが前に符号化された変換係数に応じて、関数パラメータを介してパラメータ化可能で、第1の設定に設定される関数パラメータを有する関数を介して、現在の変換係数のためのコンテキストを使用または選択するように構成され、その一方で、シンボル化パラメータ決定装置38は、前に符号化された変換係数に応じて、同じ関数を介して、第2の設定に設定される関数パラメータで、シンボル化パラメータ46を決定するように構成される。設定は異なることができるが、それにもかかわらず、シンボル化パラメータ決定装置38およびコンテキスト適応エントロピーエンコーダ36が同じ関数を使用するように、論理オーバーヘッドは減少させられる。単に関数パラメータだけは、一方ではエントメピーエンコーダ36のコンテキスト選択および他方ではシンボル化パラメータ決定装置38のシンボル化パラメータ決定との間で異なることができる。
【0042】
前に符号化された変換係数への依存に関する限り、これらの前に符号化された変換係数がすでにデータストリーム32に符号化された範囲に制限される点に留意する必要がある。たとえば、このような前に符号化された変換係数が第2のレベル間隔18の中に位置すると想像しても、そのシンボルシーケンス42はデータストリーム32にまだ挿入されなかった。その場合、シンボル化パラメータ決装置38およびコンテキスト適応エントロピーエンコーダ36は、前に符号化された変換係数の第1のシンボルシーケンス44から、それが第2のレベル間隔18の中に位置するということを知っているだけである。その場合、第1のレベル間隔16の最大レベルは、この前に符号化された変換係数のための代表として役立つことができる。その範囲において、「前に符号化された変換係数への」依存は、「前にデータストリーム32に符号化/挿入された他の変換係数に関する情報」への依存を含むように、幅広い方法で理解される。さらに、最後のゼロ以外の係数Lを「超えて」位置する変換係数はゼロであると推測されることができる。
【0043】
図4の説明を確定させるために、エントロピーエンコーダ36およびインサータ40の出力はスイッチ50を介して共通の出力48に接続され、一方ではシンボル化パラメータ決定装置38の前に挿入/符号化された情報およびコンテキスト適応エントロピーエンコーダ36の入力の間および他方ではエントロピーエンコーダ36およびインサータ40の出力において同じ接続性を有する。スイッチ50は、出力48を、変換係数を符号化するための1回、2回またはそれ以上のスキャンを使用するさまざまな可能性に関して、上述の順序でエントロピーエンコーダ36およびインサータ40の出力のいずれか1つと接続する。
【0044】
コンテキスト適応エントロピーエンコーダ36およびシンボル化パラメータ決定装置38に関するパラメータ化可能な関数の一般の使用を説明するために、参照は、
図1になされる。エントロピーエンコーダ36およびシンボル化パラメータ決定装置38によって共同使用される関数は、
図1における52(すなわち、g(f(x)))に示される。関数は、前述したように、現在の係数と関連して特定の空間関係を有するそれらの前に符号化された係数を含むために定められる前に符号化された変換係数のセットに適用される。この関数のための特定実施例は、以下において更に詳細に説明される。一般的に言って、fは、前に符号化された係数レベルのセットをスカラーに結合する関数であり、gは、スカラーがどの間隔にあるかについて調べる関数である。換言すれば、関数g(f(x))は、前に符号化された変換係数のセットxに適用される。
図1において、小さいクロスによって示される変換係数12は、現在の変換係数を意味し、例えば、生み出された変換係数12は、シンボライズ化パラメータ46および現在の変換係数xのためのコンテキストを示すエントロピーコンテキストインデックス54を得るために関数52が適用される変換係数のセットxを示す。
図1に示されるように、現在の変換係数周辺で相対的な空間配置を定めるローカル・テンプレートは、すべての前に符号化された変換係数から関連する前に符号化された変換係数のセットxを決定するために使用されることができる。
図1でわかるように、テンプレート56は、現在の変換係数の下および右に直ちに隣接する変換係数を含むことができる。このようにテンプレートを選択することによって、スキャン140の1つの斜め方向における変換係数のシンボルシーケンス42および44は、同じ斜め方向における他の変換係数のテンプレート56に入る斜め方向の変換係数がないため、並行して符号化される。当然、類似のテンプレートは、行的−および列的なスキャンのために供給される。
【0046】
それは、[0,d
f]の中でg(f(x))が続いている。g(f(x))が少なくとも1つのベース・コンテキスト・インデックス・オフセット・ナンバーctx
baseに加えて合計されるコンテキスト・インデックス・オフセット・ナンバーcts
offsetを定めるために用いられる場合、結果として得られるコンテキスト・インデックスctx=ctx
base+cts
offsetの数値範囲は[ctx
base;ctx
base+d
f]である。コンテキストの異なるセットがシンボルシーケンス44のシンボルをエントロピー符号化することに言及するときにはいつでも、[ctx
base,1;ctx
base+d
f]が[ctx
base,2;ctx
base+d
f]と重複しないようにctx
baseが選択される。これは、例えば、次のことに関して本当である。
・異なるサイズの変換ブロックに属する変換係数;
・例えば深さ、luma、彩度その他のような異なる情報コンポーネントタイプの変換ブロックに属する変換係数;
・同じ変換ブロックの異なる周波数部分に属する変換係数;
【0048】
d
fは関数パラメータの一部を形成する。dは関数パラメータの一部を形成する。
【0050】
前述したように、インデックスiはテンプレート56の範囲内で変換係数12にインデックスを付けることができる。x
iは変換ブロックの外側に存在しているそれぞれのテンプレート位置の場合にはゼロに設定されることができる。さらに、コンテキスト適応エントロピーエンコーダ36は、関数を介して前に符号化された変換係数からのコンテキストの依存が、それが第1のレベル間隔16の範囲内のときにはx
iが前に符号化された変換係数iの変換係数レベルに等しく、前に符号化された変換係数iの変換係数レベルが第2のレベルの範囲内のときには第1のレベル間隔16の最大レベルに等しくなるように構成され、または、前に符号化された変換係数iの変換係数レベルが第1および第2のレベル間隔の範囲内にあるかどうかと無関係に、x
iが前に符号化された変換係数iの変換係数レベルに等しくなるように構成される。
【0051】
シンボル化パラメータ決定装置に関する限り、シンボル化パラメータの決定において、前に符号化された変換係数iが第1または第2のレベル間隔の範囲内にあるかどうかとは無関係に、x
iが前に符号化された変換係数iの変換係数レベルに等しいようにそれは構成されることができる。
【0053】
装置は、またh=|x
i|−tのように構成されることもできる。
【0054】
更なる実施例において、現在の変換係数に関連して変換係数の関連する空間的配置に応じて、すなわち、現在の変換係数の位置の周囲のテンプレートに基づいて、装置は前に符号化された変換係数を空間的に決定するように構成されることができる。
【0055】
装置は、所定のスキャン順序14に沿って変換係数ブロック10の変換係数の中から最後のゼロでない変換係数Lの位置を決定し、データストリーム32に位置についての情報を挿入するように構成され、複数の変換係数は、最後のゼロ以外の変換係数Lから所定のスキャン順序の始まりまで、すなわちDC成分変換係数を含む。
【0056】
さらなる態様において、シンボライザ34は、最後の変換係数Lのシンボル化のために変形した第1のシンボル化スキームを用いるように構成することができる。変形した第1のシンボル化スキームによれば、第1のレベル間隔16の範囲内のゼロでない変換係数レベルのみがマッピングされ、ゼロレベルは最後の変換係数Lに適用されないものと推定される。たとえば、Truncated Unary binarizationの第1のビンは、係数Lのために抑制される。
【0057】
コンテキスト適応エントロピーエンコーダは、最後のゼロでない変換係数のための1つ以上のシンボルの第1のセットをエントロピー符号化するためのコンテキストの別のセットを使用するように構成され、最後のゼロでない変換係数以外の1つ以上のシンボルの第1のセットをエントロピー符号化するのに用いられるコンテキストとは別のものである。
【0058】
コンテキスト適用エントロピーエンコーダは、最後のゼロでない変換係数から変換係数ブロックのDC変換係数まで通じている逆のスキャン順序における複数の変換係数を妨害することができる。これは、第2のシンボルシーケンス42にも適用されるかもしれないし、適用されないかもしれない。
【0059】
装置は、2つのスキャンにおいてデータストリーム32に複数の変換係数を符号化するように構成され、コンテキスト適応エントロピーエンコーダ36は、変換係数のための第1のシンボルシーケンス44を変換係数の第1のスキャンに対応する順序でデータストリーム32にエントロピー符号化するように構成され、インサータ40は、それに続いて、第2のレベル間隔18の範囲内の変換係数レベルを有する変換係数のためのシンボルシーケンス42を変換係数の第2のスキャンの範囲内で第2のレベル間隔18の範囲内の変換係数レベルを有する変換係数の発生に対応する順序でデータストリーム32に挿入するように構成される。結果として生じるデータストリーム32のための実施例は、
図5aに示され:それは、任意に、Lの位置の情報57に含まれ、後にエトロピー符号化形式で(少なくとも、コンテキスト適応エントロピー符号化形式における少なくともいくつか)が続き、さらに、後に直接または例えば(確からしいアルファベットに等しい)バイパスモードを用いて挿入されたシンボルシーケンス44が続く。
【0060】
さらなる態様において、装置は、1回のスキャンで複数の変換係数を順次データストリーム23に符号化するように構成され、コンテキスト適応エントロピーエンコーダ36およびインサータ40は、1回のスキャンのスキャン順序における各変換係数のために、第2のレベル間隔18の範囲内の変換係数レベルを有するそれぞれの変換係数のシンボルシーケンス42をデータストリーム32へのシンボルシーケンス44のコンテキスト適応エントロピーエンコーダのエントロピー符号化のすぐ後でデータストリーム32に挿入するように構成され、それに加えてそれは同じ変換係数がマッピングされた組み合わせを形成し、それにより、シンボルシーケンス42は変換係数のシンボルシーケンス44の間でデータストリーム32に撒き散らされる。結果は、
図5bにおいて例示される。
【0061】
インサータ40は、直接または固定確率分布を用いたエントロピー符号化を用いてシンボルシーケンス42をデータストリームに挿入するように構成されることができる。第1のシンボル化スキームは、Truncated Unary binarizationスキームでもよい。第2のシンボル化スキームは、シンボルシーケンス42がライス・コードから成るものでもよい。
【0062】
すでに上述したように、
図4の実施例は、映像/ビデオ・コーダーの範囲内で実施されることができる。このような映像/ビデオ・コーダーまたは画像コーダーの実施例は、
図6に示される。画像エンコーダは、通常、参照符号60で示されて、例えば、
図4に示されるものに対応する装置62を含む。画像64を符号化する際に、エンコーダ60は、変換ブロック10につきその複数の変換係数を符号化するように装置62によって処理される変換係数ブロック10に画像64のブロック66を変換するように構成される。特に、装置62は、変換ブロックによってブロックを変換するように変換ブロック10を処理する。この際、装置62は、異なるサイズのブロック10のための関数52を使用することができる。たとえば、階層的なマルチツリー再分割が、画像64またはそのツリールート・ブロックを異なるサイズのブロック66に分解するために使われることができる。これらのブロック66に変換を適用することから得られる変換ブロック10は、したがって、異なるサイズであり、そして、したがって、関数52が異なる関数パラメータを使用して異なるブロック・サイズのために最適化されるが、全体的なオーバーヘッドは、一方ではシンボル化パラメータのためにこのような異なる依存を与え、他方ではコンテキストインデックスを低く保つ。
【0063】
図7は、
図4に関して上で概説される装置に適合するデータストリーム32から変換係数レベルを有する複数の変換係数を復号化する装置を示す。特に、
図7の装置は、コンテキスト適応エントロピーデコーダ80、デシンボライザおよびエクストラクタ84とともにシンボル化パラメータ決定装置86を含む。現在の変換係数のために、コンテキスト適応エントロピーデコーダ80は、データストリーム32から1つ以上のシンボルの第1のセット、すなわちシンボルシーケンス44をエントロピー復号化するように構成される。デシンボライザ82は、第1のシンボル化スキームに従って、1つ以上のシンボルの第1のセット、すなわちシンボルシーケンス44を第1のレベル間隔16の範囲内の変換係数レベルにマッピングするように構成される。より正確には、コンテキスト適応エントロピーデコーダ80およびデシンボライザ82は、相互作用的な方法で作動する。デシンボライザ82は、データストリーム32からデコーダ80によってシンボルが連続的に復号化されるとき信号88によってコンテキスト適応エントロピーデコーダ80に知らせ、第1のシンボル化スキームの有効なシンボルシーケンスが終了させられる。
【0064】
1つ以上のシンボルの第1のセット、すなわちシンボルシーケンス44が第1のシンボル化スキームに従ってマッピングされる変換係数レベルが第1のレベル間隔16の最大レベルである場合、エクストラクタ84は、データストリーム32から、シンボルの第2のセット、すなわちシンボルシーケンス42を抽出するように構成される。また、デシンボライザ82およびエクストラクタ84は、協力して作動することができる。すなわち、デシンボライザ82は、エクストラクタ84がシンボルシーケンス42の抽出を終えるとすぐ第2のシンボル化スキームの効果的なシンボルシーケンスが終了させられるとき、信号90によって、エクストラクタ84に知らせることができる。
【0065】
デシンボライザ82は、すでに上述したように、シンボル化パラメータ46に従ってパラメータ化可能である第2のシンボル化スキームに従ってシンボルの第2のセット、すなわちシンボルシーケンス42を第2のレベル間隔18の範囲内の位置にマッピングするように構成される。
【0066】
コンテキスト適応エントロピーエンコーダ80は、第1のシンボルシーケンス44の少なくとも1つの所定のシンボルを復号化する際に、前に復号化された変換係数に応じて、関数52によって、コンテキストを使用するように構成される。第1のシンボルシーケンス44が第1のシンボル化スキームに従ってマッピングされる変換係数レベルが第1のレベル間隔16の最大レベルである場合、シンボル化パラメータ決定装置86は、前に復号化された変換係数に応じて関数52によってシンボル化パラメータ46を決定する。この目的で、エントロピーデコーダ80およびシンボル化パラメータ決定装置86の入力は、デシンボライザ82が変換係数の値x
iを出力するデシンボライザ82の出力にスイッチ92を介して接続される。
【0067】
上述の通り、コンテキスト適応のために、デコーダ80は、コンテキストごとにアルファベット確率分布評価を格納して、更新することによって、コンテキストを管理する。
特定のコンテキストのシンボルが復号化されるたびに、現在格納されたアルファベット確率分布評価はこのシンボルの実際の/復号化された値を用いて更新され、このことによりそのコンテキストのシンボルの実際のアルファベット統計に近くなっている。
【0068】
同様に、シンボル化パラメータ決定装置86は、前に復号化された変換係数に応じて第2のシンボル化スキームおよびそのシンボルシーケンス42のためのシンボル化パラメータ46を決定するように構成される。
【0069】
通常、符号化に関して上述したすべての考えられる変更態様および詳細は、
図7の復号化のための装置上へも移転可能である。
【0070】
図8は、
図6に対して吊り下がるものとして示される。すなわち、
図7の装置は、画像デコーダ100の範囲内で実装される。
図7の画像デコーダ100は、
図7に従った装置、すなわち装置102を含む。画像デコーダ100は、画像104を復号化または再建する際に、順に画像デコーダ100を入力するデータストリーム32から装置102が復号化する複数の変換係数を有する変換係数ブロック10から画像104のブロック106を再建するように構成される。特に、装置102は変換ブロック10をブロックごとに処理し、上述したように、異なるサイズのブロック106のために共通に関数52を使用する。
【0071】
画像エンコーダおよびデコーダ60および100が、それぞれ、変換/再変換を予測残差に適用して予測符号化を使用するように構成されることができる点に留意する必要がある。さらに、データストリーム32は、そこにおいて、符号化される再分割情報を有することができ、それは個々に変換に依存するブロックへの再分割を画像デコーダ100に信号を送る。
【0072】
以下において、前記実施例はいくらかの他の言葉で説明され、上記の実施例に個々に移動させる特定の態様をより詳細に説明している。すなわち、構文要素の符号化のためのコンテキストモデリングの特定の方法に関連した前記実施例は例えばブロック・ベースの画像およびビデオコーダの係数を変換するために関し、そして、その態様は記載されていて、更に下で強調される。
【0073】
実施例は、デジタル信号処理の分野に、そして、特に、画像およびビデオデコーダおよびエンコーダのための方法と装置に関することができる。特に、変換係数の符号化、およびブロック・ベースの画像およびビデオ・コーデックのそれらの付随する構文要素は、記載されている実施例に従って実行されることができる。その限りにおいて、若干の実施例は、確率モデリングを使用するエントロピーコーダを有する係数を変換するために、関連した構文要素の符号化のための改良されたコンテキストモデリングを示した。さらに、残りの絶対の変換係数の適応2値化のために使われるライス・パラメータの派生は、シンボル化パラメータに関して上述したようにされることができる。コンテキストメモリに関する統一、簡略化、使いやすい並列処理および適度なメモリ使用は、まっすぐな前方のコンテキストモデリングと比較した実施例の利点である。
【0074】
他の言葉においてさえ、本発明の実施例は、ブロック・ベースの画像およびビデオコーダの変換係数の符号化に関連した構文要素のコンテキストモデルの選択のための新規な方法を明らかにすることができる。さらに、絶対的な返還係数の残りの値の2値化を制御するライスパラメータのようなシンボル化パラメータのための派生ルールが記載されている。基本的に、前記実施例は、変換係数の符号化に関連する構文要素の全てのためのまたは一部のコンテキストモデル選択のためのルールの単純なおよび一般のセットを使用した。
【0075】
前述の第1のシンボル化スキームは、Truncated Unary binarizationでもよい。その場合は、coeff_significant_flag、coeff_abs_greater_1およびcoeff_abs_greater_2は、変換係数のTruncated Unary binarizationから生じている第1、第2および第3のビンを形成するバイナリの構文要素またはシンボルと呼ばれる。上述の通り、Truncated Unary binarizationは、第2のレベル範囲18の範囲内に含まれる変換係数のレベルの場合、それ自体ライスコードである接尾辞と同時に起こる接頭辞を表すことができるだけである。更なる接尾辞は例えば0−オーダーのExp−ゴロンブ・コードであってもよく、それによって、
図2の第1および第2の間隔16および18(
図2に示されない)に続く更なるレベル間隔を形成する。
【0076】
コンテキストモデル選択のために使用するのと同じルール52のセットに基づいて、上述のように、残りの絶対的な変換係数の適応2値化のためのライスパラメータの派生は実行される。
【0077】
スキャン順序に関して、それは前記説明と比較して変化することができることに注意されたい。さらに、異なるブロック・サイズおよび形状は、しかしながら、ルールの同じセットを用いて、すなわち同じ関数52を用いて、
図4および6の装置で支えられる。したがって、シンボル化パラメータの派生のための調和と結合される変換係数の符号化に関連する構文要素のコンテキストモデルのための統一および単純化スキームは成し遂げられる。このように、コンテキストモデル選択およびシンボル化パラメータ派生は、例えば、ハードウェアに組み込まれた、プログラムされたハードウェアまたはソフトウェア−サブルーチンなどのような同じ論理を使用することができる。
【0078】
コンテキストモデル選択のための一般のおよび単純なスキームおよびライスパラメータのようなシンボル化パラメータの派生を達成するために、ブロックまたは形状のすでに符号化された変換係数は、上記の通りに評価される。すでに符号化された変換係数を評価するために、(重要性マップの符号化と呼ばれることがありえた)2値化から生じている第1のビンであるcoeff_significant_flagの符号化および変換係数レベルの残りの絶対値の分離は、一般の関数52を使用して実行される。
【0079】
すなわち絶対の変換係数の符号化の後、直接符号を符号化することによって、符号情報の符号化は、交互的な方法で実行される。このように、全部の変換係数は、1つのスキャンパスだけにおいて符号化される。あるいは、評価値f(x)が絶対的なレベル情報だけに依存する限り、符号情報は別のスキャン経路において符号化されることができる。
【0080】
上に示すように、変換係数は1回のスキャンパスにおいて、または、複数回のスキャンパスにおいて符号化されることができる。これは、その係数Ciがスキャンiにおいて処理される変換係数の(第1および第2の)シンボル化のシンボルの数値を示すカットオフセットcによって可能にされ、または説明される。空のカットオフセットの場合、1回のスキャンが用いられる。コンテキストモデル選択およびシンボル化パラメータの派生のための改良された結果を得るために、カットオフセットcの第1のカットオフパラメータc
0は、1より大きくなければならない。
【0081】
カットオフセットcは、C
0=1およびc
1=3および|c|=2であるc={c
0,c
1}が選択され、c
0は第1のスキャンに含まれる第1の2値化のビン/シンボルの数を示し、そこまで第1の2値化がカバーする第1の2値化の範囲内のシンボル位置を示すc
1=3は第2のスキャンである。別の例は、c
0が1に等しく、c
1が2に等しいなどであって、スキームが第1のスキャンパスにおける全てのブロックまたは形状のための2値化から得られる第1のビンを符号化し、次に第2のスキャンパスにおける全てのブロックまたは形状のための第2のビンを符号化するときに与えられる。
【0082】
coeff_significant_flagの符号化のローカル・テンプレート56、すなわち2値化プロセスからの第1のビンは、
図1に示すように、または、
図9に示すように設計されることができる。統一および簡略化として、ローカル・テンプレート56が、すべてのブロック・サイズおよび形状のために用いられる。ゼロのみと不等な変換係数を有する隣の数を評価する代わりに、全ての変換係数は、x
iの形で関数52に入力される。ローカル・テンプレート56は固定されることができる、すなわち現在の変換係数の位置またはスキャンインデックスから独立し、前に符号化された変換係数から独立し、あるいは、適応可能で、すなわち現在の変換係数の位置またはスキャンインデックスおよび/または前に符号化された変換係数に従属し、サイズは固定されるか適応させることができる。さらに、テンプレートのサイズおよび形状がブロックまたは形状の全てのスキャン位置の範囲を可能にするように調整されるとき、特定の限度までの全てのすでに符号化された変換係数または全てのすでに符号化された変換係数は評価処理のために用いられる。
【0083】
一例として、
図9は、斜め方向スキャン14を有する8×8の変換ブロック10ために用いられることができるローカル・テンプレート56のための他の実施例を示す。Lは最後の重要なスキャン位置を意味し、xで印をつけたスキャン位置は現在のスキャン位置を意味する。別のスキャン順序のために、ローカル・テンプレートはスキャン順序14に合うように変形することができることに注意されたい。進歩した斜め方向スキャンの場合、他のスキャン順序のために、ローカル・テンプレート56は、斜め方向に沿って反転することができる。
【0084】
コンテキストモデル選択およびシンボル化パラメータ派生は、すでに符号化された隣のx
iの評価から生じている異なる評価値f(x)に基づいてもよい。この評価は、ローカル・テンプレート56によってカバーされるすでに符号化された隣を有するすべてのスキャン位置のために行われる。ローカル・テンプレート56は、可変的であるか一定のサイズを有して、スキャン順序に依存する。しかしながら、テンプレートの形状およびサイズはスキャン順序だけへの適応であり、したがって値f(x)の派生は、スキャン順序140およびテンプレート56の形状およびサイズから独立している。全てのスキャン位置のためのブロック10の全てのスキャン位置のカバーが可能となるようにテンプレート56の寸法および形状をセットすることによって、現在のブロックまたは形状のすべてのすでに符号化された変換係数の使用法が達成される点に注意されたい。
【0085】
前述したように、コンテキストモデル・インデックスの選択およびシンボル化パラメータの派生は、評価値f(x)を使用する。一般に、マッピング関数の一般的なセットは、結果として生じる評価値f(x)をコンテキストモデル・インデックス上、および、特定のシンボル化パラメータ上にマッピングする。それに加えて、変換ブロックまたは形状10の内部の現在の変換係数の現在の空間位置または最後の重要なスキャン位置Lとしての付加的情報は、変換係数の符号化に関連するコンテキストモデルの選択のために、そして、シンボル化パラメータの派生のために使われることができる。評価および空間場所から生じている情報または最後の情報は結合されることができ、したがって特定の重み付けが可能であることに注意されたい。評価および派生プロセスの後、すべてのパラメータ(コンテキストモデル・インデックス、シンボル化パラメータ)は、特定の制限まで全ての変換係数レベルまたは変換係数の符号化に利用できる。
【0086】
提示された本発明の実施例構成として、カットオフ・セット・サイズは空である。
これは、各変換係数はスキャン順序に沿って次の変換係数を処理する前に完全に送信されることを意味する。
【0091】
両方の種類の評価値のために、更なる重み付け係数が特定の隣の重要性を制御することが可能である点に注意すべきである。たとえば、重み付け係数w
iは、より大きい空間距離を有する隣に対してよりも短い空間距離を有する隣に対して高い。さらに、すべてのw
iを1に設定するときに、重み付けは無視される。
【0092】
提示された発明の実施例の構成として、f
0、f
1、f
2およびf
3は、(1)において定義されているように、{0、1、2、3}のそれぞれのtおよびδ(x
i)を有する評価値である。この例に関して、f
0は第1のビンのコンテキストインデックスの派生のために用いられ、f
1は第2のビンのコンテキストインデックスの派生のために用いられ、f
2は第3のビンのコンテキストインデックスの派生のために用いられ、f
3はライス・パラメータの派生のために用いられる。他の実施例構成において、f
0は第1のビンのコンテキストモデル選択のために用いられ、その一方で、f
1は第2、第3のビンおよびライス・パラメータのコンテキストモデル選択のために必要とされる。ここで、ライス・パラメータは、また、他の象徴化パラメータのための表現として役立つ。
【0094】
符号化/復号化するときに変換係数をスキャンする第1のスキャン位置は、DCから最も高い周波数を指し示す
図1のスキャン方向に適用されたとき最後のスキャン位置Lであってもよい。すなわち、符号化/復号化するために係数を横切るためのスキャンの少なくとも第1のスキャンは、係数LからDCまでを指し示すことができる。このスキャン位置Lのために、第1のビンインデックスは、このスキャン位置がゼロでない変換係数から成ることをすでに信号を送った最後の情報として無視される。このスキャン位置のために、別のコンテキストモデル・インデックスが、変換係数の2値化から得られる第2および第3のビンの符号化のために用いられることができる。
【0096】
この式において、d
jは現在のスキャン位置の斜め線のための重みを意味し、idx
incはステップ・サイズを意味する。さらに、オフセットインデックスが実用的な実施態様のために逆転されることができる点に注意されたい。定まった実施例実現のために、現在のスキャン位置が第1および第2の斜め線上にあって、第3および第4の斜め線のための|ctx0|によって移動し、特に2*|ctx0|である場合、逆転は付加的なインデックスをゼロに設定するであろう。所定の公式を用いて、d
0およびd
1を2、d
3およびd
4を1に設定し、全ての残りの斜め要素を0に設定したとき、実施例構成と同様の挙動は達成される。
【0097】
コンテキストモデル・インデックスが異なるブロック・サイズまたは平面タイプ(例えばlumaおよび彩度)ともに等しい場合であっても、ベースとなるコンテキストモデル・インデックスはコンテキストモデルの異なるセットにおいて異なる結果となることがありえる。たとえば、lumaの8×8より大きいブロック・サイズのための同じベース・インデックスが用いられることができ、その一方で、ベース・インデックスはlumaの4×4および8×8によって異なっていてもよい。意味がある数のコンテキストモデルを有するために、ベース・インデックスは、しかしながら、異なる方法で分類されることができる。
【0098】
実施例構成として、4×4ブロックおよび残りのブロックのためのコンテキストモデルはlumaにおいて異なってもよく、その一方で、同じベース・インデックスが彩度信号のために用いられることができる。他の例では、同じベース・インデックスがlumaおよび彩度信号のために用いられることができ、その一方で、lumaおよび彩度のためのコンテキストモデルは異なる。さらに、第2および第3のビンのためのコンテキストモデルは、コンテキストメモリのより少ない数という結果に分類されることができる。第2および第3のビンのためのコンテキストモデル・インデックス派生が等しい場合、同じコンテキストモデルは第2および第3のビンを送信するために用いることができる。ベース・インデックスのグループ化および重み付けの正しい組合せによって、意味がある数のコンテキストモデルは、コンテキストメモリの節減という結果を達成されることができる。
【0099】
本発明の好ましい実施例において、カットオフ・セットcは空である。すなわち、単に1つのスキャンだけが用いられる。この好ましい実施例のために、符号情報は、同じスキャンパスを用いてインターリーブされることができるか、または別のスキャンパスにおいて符号化されることができる。他の好ましい例として、設定されたサイズcは1およびc
0に等しく、カットオフ・セットcの第1のおよび唯一の値は3に等しい。これは、2つのスキャンを用いた上記の実施例に対応する。この好ましい実施例において、ライス・パラメータ選択のようなシンボル化パラメータ派生が同じ関数52を用いてされることができると共に、コンテキストモデル選択はTruncated Unary binarizationから生じている全ての3つのビンのためにされることができる。
【0100】
好ましい実施例において、ローカル・テンプレートのサイズは5である。ローカル・テンプレートのサイズは4でもよい。この好ましい実施例のために、垂直方向における2の空間距離を有する隣は、
図8と比較して移動させることができる。別の好ましい実施例では、テンプレート・サイズは、適応可能で、スキャン順序に調整される。この好ましい実施例のために、以前に処理ステップにおいて符号化された隣は、
図1および
図8の場合のように、テンプレートに含まれない。こうすることによって、依存性または待ち時間は短くなり、より高い処理順序という結果になる。更なる好ましい実施例において、テンプレート・サイズおよび形状は、十分に大きく調整可能である(例えば、現行ブロックまたは形状の同じブロックまたは形状サイズ)。他の好ましい例として、2つのローカル・テンプレートが用いられることができ、それらは重み付け係数によって結合されることができる。この好ましい実施例のために、ローカル・テンプレートは、サイズおよび形状において異なることができる。
【0101】
好ましい実施例において、f
0は、第1のビンのためのコンテキストモデル・インデックスを選択するために用いられ、f
1は、第2のビン、第3のビンおよびライス・パラメータのためのコンテキストモデル・インデックスを選択するために用いられる。この好ましい実施例において、入力ベクトルn={0,1,2,3,4,5}は、6つのコンテキストモデルという結果となる。第2および第3のビンインデックスのための入力ベクトルnは同じであって、n={0,1,2,3,4}であってもよく、その一方で、ライス・パラメータのための入力ベクトルnはn={3,9,21}であってもよい。さらに、好ましい実施例で、別のコンテキストセットが用いられる変換ブロックの前述の周波数部分は、斜めの(ラスタ)スキャンの斜め線(または線)のバラバラのセットによって形成されることができる。たとえば、DC成分から見られるときに、異なるコンテキストベース・オフセット番号が第1および第2の斜め線、第2のおよび第3の斜め線および第4のおよび第5の斜め線のために存在することができ、その結果、これらの斜め線の係数のためのコンテキスト選択はコンテキストのバラバラのセットの中で起こる。第1の斜め線が1であることに注意されたい。第2および第3のビンインデックスのために、[0,2]の間の範囲にある斜め線は2の重み付け係数を有し、[3,9]の間の範囲にある斜め線は1の重み付け係数を有する。これらの付加的なオフセットがluma信号の場合に用いられ、その一方で、彩度のための重み付け係数の全てはゼロに等しい。また、この好ましい実施例のために、最後の重要なスキャン位置である第1のスキャン位置の第2および第3のビンインデックスのためのコンテキストモデルは、残りのコンテキストモデルから切り離される。これは、評価プロセスがこの別々のコンテキストモデルを決して選択することができないことを意味する。
【0102】
好ましい実施例において、4×4lumaブロックまたは形状は第1のビンのためのコンテキストの単一のセットを使用し、その一方で、残りのブロック・サイズまたは形状のためのコンテキストモデルも同様である。この好ましい実施例において、彩度信号のためのブロック・サイズまたは形状の間に分離はない。他の本発明の好ましい実施例において、すべてのブロック・サイズおよび形状のための同じベース・インデックスまたはコンテキストモデル・セットをもたらすブロック・サイズまたは形状の間に分離はない。両方の好ましい実施例のために、コンテキストモデルの異なるセットがlumaおよび彩度の信号のために用いられる点に注意すべきである。
【0103】
以下に、上述の実施例に従って修正されたライス・パラメータの2値化を用いているが、コンテキスト適応エントロピー符号化のない実施例が示される。この選択できる符号化スキームによれば、ライス2値化スキームが用いられるだけである(任意に、Exp−ゴロンブ接尾辞の追加を伴って)。このように、適応コンテキストモデルは、変換係数を符号化することを必要としない。その代わりの符号化スキームのために、ライス・パラメータ派生は、前記実施例と同様の規則を使用する。
換言すれば、複雑さおよびコンテキストメモリを減少するために、そして、符号化パイプラインの待ち時間を改善するために、規則または論理の同一セットに基づく代わりの符号化スキームが記載されている。この代わりの符号化スキームのために、2値化から生じている最初の3つのビンのためのコンテキストモデル選択は無効にされ、そして、Truncated Unary binarization、すなわち第1のシンボル化スキームから生じている最初の3つのビンは、固定された等しい確率(すなわち0.5の確率)によって符号化されることができる。あるいは、Truncated Unary binarization方式は省略され、2値化方式の間隔境界は調整される。この使用において、ライス間隔の左の境界、すなわち間隔18は、(ゼロになる間隔16で)3の代わりに0である。この使用のための右/上の境界は変更されることができず、または3で減算されることができる。ライス・パラメータの派生は、評価値に関して、そして、入力ベクトルnに関して修正されることができる。
【0104】
このように、ちょうど概説された修正された実施例にしたがって、データストリーム32からそれぞれが変換係数レベルを有する異なる変換ブロックの多数の変換係数を復号化するための装置が、
図10に関して示され、記載されているように、構成されることができて、作動することができる。
【0105】
図10の装置は、現在の変換係数のためのデータストリーム32からシンボルのセットまたはシンボル・シーケンス122を抽出するように構成されるエクストラクタ120を含む。抽出は、
図7のエクストラクタ84に関して上述したように実行される。
【0106】
デシンボライザ124は、シンボルのセット122をシンボル化パラメータに従ってパラメータ化可能であるシンボル化スキームに従って現在の変換係数のための変換係数レベルにマッピングするように構成される。マッピングは、単にライス2値化のようなパラメータ化可能なシンボル化スキームを使用することができるだけであるか、または現在の変換係数の全体のシンボル化の接頭辞または接尾辞としてだけ単にこのパラメータ化可能なシンボル化スキームを使用することができるだけである。
図2の場合には、例えば、パラメータ化可能なシンボル化スキーム、すなわち、第2のそれは、第1のシンボル化スキームのシンボル・シーケンスと関連して接尾辞を形成した。
【0107】
より多くの実施例を示すために、参照は、
図11aおよびbになされる。
図11aによれば、変換係数の間隔範囲20は3つの間隔16、18および126に再分割され、そして、一緒に間隔範囲20をカバーして、それぞれの下の間隔のそれぞれの最大レベルで互いに重なり合う。係数レベルxが最も高い間隔126の範囲内にある場合、全体のシンボル化は、間隔16の範囲内でレベルをシンボル化している第1のシンボル化スキーム128のシンボル・シーケンス44の組合せであり、シンボル・シーケンスは、第1の接尾辞、すなわち、間隔18の範囲内でレベルをシンボル化している第2のシンボル化スキーム130のシンボル・シーケンス42が続き、更に第2の接尾辞、すなわち、間隔126の範囲内でレベルをシンボル化している第3のシンボル化スキーム134のシンボル・シーケンス132が続く接頭辞を形成する。後者は、例えば順序0のExp−ゴロンブ・コードでもよい。係数レベルxが中間間隔18の範囲内にある(しかしながら、間隔126の範囲内ではない)場合、全体のシンボル化は、単に第1の接尾辞42が続く接頭辞44だけの組合せである。係数レベルxが最も低い間隔16の範囲内にある(しかしながら、間隔18の範囲内ではない)場合、全体のシンボル化は単に接頭辞44から成るだけである。全体のシンボル化は、それが接頭辞のないように構成される。第3のシンボル化なしで、
図11aによるシンボル化は、
図2の1つに対応することができる。第3のシンボル化スキーム134は、Golomb−Rice2値化であってもよい。第2のシンボル化スキーム130は、パラメータ化可能なものを形成することができるが、それは最初の128でもありえた。
【0108】
他の全体のシンボル化は、
図1に示される。ここで、単に2つのシンボル化スキームだけは組み合わされる。
図11aと比較して、第1のシンボル化スキームは、離しておかれた。スキーム134の間隔136、またはスキーム130の間隔138(間隔136の外側)の範囲内のxに応じて、xのシンボル化は、接頭辞140および接尾辞142を含むか、または単に接頭辞140を含むだけである。
【0109】
さらに、
図10の装置は、デシンボライザの出力およびデシンボライザ124のパラメータ入力との間に接続されるシンボル化パラメータ決定装置144を含む。決定装置144は、関数52によって、前に処理された変換係数(今までのところ、非シンボル化されたフラグメントまたは非シンボル化/処理/復号化された部分から導き出せる限り)に応じて現在の変換係数のためのシンボル化パラメータ46を決定するように構成される。
【0110】
エクストラクタ120、デシンボライザ124およびシンボル化パラメータ決定装置144は、順次、上述のように、異なる変換ブロックの変換係数を処理するように構成される。すなわち、スキャン140は、変換ブロック10の範囲内で反対方向に横断される。例えば、異なるシンボル化フラグメント、すなわち接頭辞および接尾辞のために、いくつかのスキャンが用いられる。
【0111】
関数パラメータは、現在の変換係数の変換ブロック、現在の変換係数の変換ブロックの情報成分タイプおよび/または現在の変換係数が変換ブロックの範囲内に位置付けられる周波数部分のサイズに応じて変化する。
【0112】
一方では前に復号化された変換係数と、他方ではシンボル化パラメータとの関係を定める関数は、すでに上述したg(f(x))であるように、装置は構成される。
【0113】
上述したように、現在の変換係数と関連する相対的な空間装置による前に処理された変換係数の空間測定が使われることができる。
【0114】
エクストラクタ120が直接あるいは固定確率分布を用いてエントロピー復号化を使用してシンボルのセットをデータストリームから抽出するように構成されることができるため、装置は非常に容易に、速く作動することができる。パラメータ化可能なシンボル化スキームは、シンボルのセットがライス・コードから成るものでもよく、そして、シンボル化パラメータはRICEパラメータである。
【0115】
換言すれば、シンボルのセットが例えば44および132または142のような現在の変換係数の全体のシンボル化の他の部分に関して接頭辞または接尾辞を表すように、デシンボライザ124はシンボル化スキームを変換係数の範囲間隔20の範囲外の18または138のようなレベル間隔に制限するように構成されることができる。他のシンボルに関しては、それは直接あるいは固定確率分布を用いたエントロピー復号化を用いてデータストリームから抽出されることもできるが、
図1〜9はコンテキスト適応を使用しているエントロピー符号化が使われることもできることを示した。
【0116】
図10の装置が、
図8の画像デコーダ102の装置102として用いられることができる。
【0117】
完全性のために、
図12は、それぞれが変換係数レベルを有する異なる変換ブロックの複数の変換係数を符号化するための、
図10の装置に適合する装置を示す。
【0118】
図12の装置は、シンボル化パラメータに従ってパラメータ化可能であるシンボル化スキームに従って現在の変換係数のための変換係数レベルをシンボルのセットまたはシンボルシーケンス上にマッピングするように構成されたシンボライザ150を含む。
【0119】
インサータ154は、現在の変換係数のためのシンボルのセットをデータストリーム32に挿入するように構成される。
【0120】
シンボル化パラメータ決定装置156は、関数パラメータを用いてパラメータ化可能な関数52によって、前に処理された変換係数に応じて現在の変換係数のシンボル化パラメータ46を決定するように構成され、このために、インサータ152の出力およびシンボライザ150のパラメータ入力の間、または、シンボライザ150の出力および入力の間に接続される。
【0121】
インサータ154、シンボライザ150およびシンボル化パラメータ決定装置156は、順次、異なる変換ブロックの変換係数を処理するように構成され、そして、関数パラメータは現在の変換係数の変換ブロックのサイズ、現在の変換係数の変換ブロックの情報成分タイプおよび/または現在の変換係数が変換ブロックの範囲内に位置する周波数部分に応じて変化する。
【0122】
図10の復号装置に関して上述したように、
図12の装置は、一方では前に復号化された変換係数、および他方ではシンボル化パラメータの間の関係を定めている関数がg(f(x))であり、そして、前に処理された変換係数が現在の変換係数と関連した相対的な空間配置に応じて空間的に決定されるように構成されることができる。インサータは、直接または固定確率分布を用いたエントロピー符号化を用いて、データストリームにシンボルのセットを挿入するように構成され、シンボル化スキームは、シンボルのセットがライス・コードから成り、シンボル化パラメータはライスパラメータである。シンボルのセットが現在の変換係数の全体のシンボル化の他の部分に関して接頭辞または接尾辞を表すように、シンボライザはシンボル化スキームを変換係数の範囲間隔20からレベル間隔に制限するように構成される。
【0123】
上述のように、
図10ないし
図12の好ましい実施例において、最初の3つのビンのためのコンテキストモデル選択が
図1〜9の実施例と比較して無効にされる。この好ましい実施例のために、Truncated Unary binarization128からの結果として得られるビンは、0.5の固定確率によって符号化される。別の好ましい実施例では、Truncated Unary binarization128は
図11bに示すように省略され、そして、ライス間隔のための境界は最高水準の技術(すなわち左右の境界マイナス3)において同じ間隔範囲という結果となるように調整される。この好ましい実施例のために、ライス・パラメータ派生規則は、
図1〜9の実施例と比較して修正される。その代わりに、評価値としてf
1を使用して、例えば、f
0が、使われることができる。さらに、入力ベクトルは、n={4,10,22}に調整される。
【0124】
以下に記載されている更なる実施例は、一方では実質的にコンテキスト選択/依存状態の異なるテンプレートを有する可能性および他方ではシンボル化パラメータの決定を例示する。すなわち、係数x
iのテンプレートはコンテキスト選択/依存状態およびシンボル化パラメータの決定に対して同じことが残るが、f(x)への影響に関与する係数x
iは適当な設定w
iによってコンテキスト選択/依存状態およびシンボル化パラメータの決定との間で異なるように効果的に示され:その結果として重みw
iがゼロである全ての係数x
iはf(x)に影響せず、w
iがゼロであるテンプレートの部分を設計し、一方ではコンテキスト選択/依存状態および他方ではシンボル化パラメータの決定の間で異なり、効果的にコンテキスト選択/依存状態およびシンボル化パラメータ決定に対する異なる「効果的なテンプレート」という結果となる。換言すれば、コンテキスト選択/依存状態およびシンボル化パラメータ決定の1つのための特定のiに対していくつかのw
iをゼロに設定し、別のコンテキスト選択/依存状態およびシンボル化パラメータ決定に対して特定のテンプレート位置iにおけるw
iをゼロでない値に設定することにより、最初に述べた1つのコンテキスト選択/依存状態およびシンボル化パラメータ決定のテンプレートは、後者のコンテキスト選択/依存状態およびシボル化パラメータ決定のテンプレートより効果的に小さい。また、上述したように、テンプレートは例えば、現在符号化されている変換係数の位置にかかわりなく、ブロックのすべての変換係数を含むことができる。
【0125】
例えば、見本として16×16変換係数12の配列から成る変換係数ブロック10を示す
図13に注目されたい。変換係数ブロック10は、それぞれ、4×4の変換係数12のサブブロック200に再分割される。したがって、サブブロック200は、一定の間隔で4×4配列に配置される。本実施例によれば、変換係数ブロック10を符号化するために、重要性マップはデータストリーム32の範囲内で符号化され、重要性マップは重要な変換係数レベル12、すなわち0と異なる変換係数レベルの位置を示す。それから、これらの重要な変換係数のうちの変換係数マイナス1がデータストリームの範囲内で符号化される。後者の変換係数の符号化は上述のように、すなわち、コンテキストを選択し、シンボル化パラメータを決定するための一般的なパラメータ化可能な関数を用いて、コンテキスト適応エントロピー符号化および可変長符号化スキームによって実行される。特定のスキャン順序が、重要な変換係数をシリアルに変換または順序付けるために用いられる。このようなスキャン順序の1つの実施例は、
図13において例示され:サブブロック200は最も高い周波数(右下)からDC(左上)に向かってスキャンされ、そして、各サブブロック200内においてサブブロック順序における次のサブブロックの変換係数が来る前に変換係数12がスキャンされる。これはサブブロックスキャンを示している矢印202で示され、204は実際の係数のスキャンの部分を示している。スキャンインデックスは、サブブロック200をスキャンするためのいくつかのスキャン経路の中で選択し、および/または、それぞれ、サブブロック内で係数12を変換するために、データストリーム32内で送信される。
図13において、斜めのスキャンは、サブブロックスキャン202および各サブブロック内の変換係数12のスキャンの両方のために例示される。したがって、デコーダにおいて、重要性マップは復号化され、重要な変換係数の変換係数レベルは、ちょうど言及されたスキャン順序を用いて、およびパラメータ化可能な関数を用いた前記実施例を使用して復号化される。以下において更に詳細に概説される説明において、xSおよびySは、例えばブロック10の左上におけるDC位置から測定されるサブブロック列およびサブブロック行を意味し、その中で、現在符号化/復号化変換係数が配置される。xPおよびyPは、現在のサブブロック(xS、yS)の左上角(DC係数位置)から測定される現在符号化/復号化された変換係数の位置を意味する。これは右上サブブロック200のための
図13において例示される。xCおよびyCはその上のDC位置から変換係数において測定される現在復号化/符号化された変換係数位置を意味する。さらに、
図13におけるブロック10、すなわち、16×16のブロックサイズが単に図解の目的で選択されているため、更に下で概説される実施例は、二次式とみなされるブロック10のサイズを意味しているパラメータとしてlog2TrafoSizeを使用する。log2TrafoSizeは、ブロック10、すなわち変換係数において測定されるブロック10の端の長さのlog
2の変換係数の各行の中で、変換係数の数の対数デュアリスを示す。CtxIdxIncは、最後にコンテキストを選択する。さらに、以下で概説される特定の実施例において、それぞれのサブブロック200の中でいくつかの重要な変換係数が位置するかどうか、すなわち単に重要でない変換係数だけがそれぞれのサブブロック200の中に位置するかどうかをサブブロック的に信号を送るために、上述した重要な地図がブロック10のサブブロック200のためのcoded_sub_block_flag、すなわちバイナリの構文要素またはフラグの信号を送ると仮定される。フラグがゼロである場合、単に重要でない変換係数だけがそれぞれのサブブロックの中に位置する。
【0126】
このように、この実施例によれば、以下は、それぞれの係数が重要で、すなわちゼロ以外かどうかに関して、significant_coeff_flag、すなわち重要性マップの一部であるフラグおよびそれぞれのサブブロック200がゼロでない変換係数を含むcoded_sub_block_flagが信号を送る特定の変換係数のための信号のコンテキストを選択するために、コンテキスト適応エントロピーデコーダ/エンコーダによって実行される。
【0127】
このプロセスへの入力は、カラー構成要素インデックスcIdx、現在の係数スキャン位置(xC,yC)、スキャン順序インデックスscanIdx、変換ブロック・サイズlog2TrafoSizeである。
このプロセスの出力は、ctxIdxIncである。
可変sigCtxは、現在の位置(xC,yC)、カラー成分インデックスcIdx、変換ブロック・サイズおよび構文要素coded_sub_block_flagの前に復号化されたビンに依存する。
sigCtxの派生のために、以下が適用される。
− log2TrafoSizeが2に等しい場合、sigCtxは、ctxIdxMap[]を使用して以下のように表から引き出される。
sigCtx=ctxIdxMap[(yC<<2)+xC]
− さもなければ、xC+yCが0に等しい場合、sigCtxは以下の通りに引き出される。
sigCtx=0
− さもなければ、sigCtxは、以下の通りにcoded_sub_block_flagの以前の値を使用して引き出される。
− 水平および垂直サブブロック位置xSおよびySは、それぞれ(xC>>2)および(yC>>2)に等しく設定される。
− 可変prevCsbfは、0に等しく設定される。
− xSが(1<<(log2TrafoSize−2))−1である場合、以下が適用される。
prevCsbf+=coded_sub_block_flag[xS+1][yS]
− ySが(1<<(log2TrafoSize−2))−1より小さい場合、以下が適用される。
prevCsbf+=(coded#sub#block#flag[xS][yS+1]<<1)
− 内側サブブロック位置xPおよびyPは、それぞれ(xC&3)および(yC&3)に等しく設定される。
− 可変sigCtxは、以下の通りに引き出される。
− prevCsbfが0に等しい場合、以下が適用される。
sigCtx=(xP+yP==0)?2:(xP+yP<3)?1:0
− さもなければ、prevCsbfが1に等しい場合、以下が適用される。
sigCtx=(yP==0)?2:(yP==1)?1:0
− さもなければ、prevCsbfが2に等しい場合、以下が適用される。
sigCtx=(xP==0)?2:(xP==1)?1:0
− さもなければ、(prevCsbfは、3に等しい)、以下が適用される。
sigCtx=2
− 可変sigCtxは、以下の通りに修正される。
− cIdxが0に等しい場合、以下が適用される。
− (xS+yS)が0より大きい場合、以下が適用される。
sigCtx+=3
− 可変sigCtxは、以下の通りに修正される。
− log2TrafoSizeが3に等しい場合、以下が適用される。
sigCtx+=(scanIdx==0)?9:15
− さもなければ、以下が適用される。
sigCtx+=21
− さもなければ、(cIdxが0より大きい)、以下が適用される。
− log2TrafoSizeが3に等しい場合、以下が適用される。
sigCtx+=9
− さもなければ、以下が適用される。
sigCtx+=12
【0128】
コンテキストインデックス増分ctxIdxIncは、カラー成分インデックスcIdxおよびsigCtxを用いて、以下のように引き出される。
− cIdxが0に等しい場合、ctxIdxIncは以下のように引き出される。
ctxIdxInc=sigCtx
− さもなければ、ctxIdxInc(cIdxは、0より大きい)は、以下のように引き出される。
ctxIdxInc=27+sigCtx
【0130】
上述のように、重要な変換係数ごとに、更なる構文要素またはシンボルのセットは、そのレベルの信号を送るために、データストリーム内で伝達される。以下で概説される実施例によれば、1つの重要な変換係数のために、以下の構文要素または変換係数のセットが送信される:Coeff#abs#level#greater1#flag、coeff#abs#level#greater2#flag(オプション)およびcoeff#abs#level#remaining それにより、現在符号化/復号化された重要な変換係数レベルTransCoeffLevel は次のようになる。
TransCoeffLevel=(coeff#abs#level#remaining+baseLevel)*(1-2*coeff#sign#flag))
ここで、
baseLevel=1+coeff#abs#level#greater1#flag+coeff#abs#level#greater2#flag
【0131】
significant_coeff_flagが、明確さにつき、重要な変換係数のための1つであって、したがって、変換係数符号化の一部、すなわち、そのエントロピー符号化されたシンボルの一部とみなされることに注意されたい。
【0132】
コンテキスト適応エントロピー・デコーダ/エンコーダは、例えば、以下のように、coeff_abs_level_greater1_flagのためのコンテキスト選択を実行する。たとえば、現在のサブブロックスキャン・インデックスiはDCの方向に向かうスキャン経路202に沿って増加し、現在の係数スキャンインデックスnは現在符号化/復号化された変換係数位置が位置するそれぞれのサブブロックの中で増加し、そこにおいて、上で概説したように、異なる可能性がスキャン経路202および204のために存在し、それは実はインデックスscanIdxに従って可変的である。
【0133】
coeff_abs_level_greater1_flagのコンテキストを選択するこのプロセスへの入力は、現在のサブブロックのカラー成分インデックスcIdx、現在のサブブロックスキャン・インデックスiおよび現在の係数スキャンインデックスnである。
このプロセスの出力は、ctxIdxIncである。
【0134】
可変ctxSetは現在のコンテキストセットを特定し、その派生のために、以下が適用される。
− このプロセスが現在のサブブロックスキャン・インデックスiのために初めて呼び出される場合、以下が適用される。
− 可変ctxSetは、以下の通りに初期化される。
− 現在のサブブロックスキャン・インデックスiが0に等しいか、cIdxが0より大きい場合、以下が適用される。
ctxSet=0
− さもなければ、(iは0より大きく、cIdxは0に等しい)、以下が適用される。
ctxSet=2
− 可変lastGreater1Ctxは、以下の通りに引き出される。
− スキャンインデックスiを有する現在のサブブロックが現在の変換ブロックのためのこの従属節で処理される第1のものである場合、可変lastGreater1Ctxは1に等しく設定される。
− さもなければ、可変lastGreater1Ctxは、スキャンインデックスi+1を有する以前のサブブロックのための構文要素coeff_abs_level_greater1_flagのためのこの下従属節で特定される処理の最後の起動の間、引き出されたgreater1Ctxの値に等しく設定される。
− lastGreater1Ctxが0に等しいとき、ctxSetは以下のように1だけ増加する。
ctxSet=ctxSet+1
− 可変greater1Ctxは、1に等しく設定される。
− さもなければ(このプロセスは、現在のサブブロックスキャン・インデックスiのために初めて呼び出されない)、以下が適用される。
− 可変ctxSetは、この従属節で特定される処理の最後の起動の間に引き出された可変ctxSetに等しく設定される。
− 可変greater1Ctxは、この従属節で特定される処理の最後の起動の間に引き出された可変greater1Ctxに等しく設定される。
− greater1Ctxが0より大きいとき、可変lastGreater1Flagはこの従属節で特定される処理の最後の起動の間に使われた構文要素coeff_abs_level_greater1_flagに等しく設定され、greater1Ctxは以下の通りに修正される。
− lastGreater1Flagが1に等しい場合、greater1Ctxは0に等しく設定される。
− さもなければ(lastGreater1Flagは、0に等しい)、greater1Ctxは1だけ増加する。
コンテキストインデックス・インクリメントctxIdxIncは、現在のコンテキストセットctxSetおよび現在のコンテキストgreater1Ctxを用いて、以下のように引き出される。
ctxIdxInc=(ctxSet*4)+Min3(greater1Ctx)
cIdxが0より大きいとき、ctxIdxIncは以下の通りに修正される。
ctxIdxInc=ctxIdxInc+16
【0135】
coeff_abs_level_greater2_flagのコンテキストを選択する方法は、以下の違いを有するcoeff_abs_level_greater2_flagと同様にされることができる:
コンテキストインデックス・インクリメントctxIdxIncは、以下の通りに可変ctxSetに等しく設定される。
ctxIdxInc=ctxSet
cIdxが0より大きいとき、ctxIdxIncは以下の通りに修正される。
ctxIdxInc=ctxIdxInc+4
【0136】
シンボル化パラメータ選択のために、以下のことが、ここでは、cLastAbsLevelおよびcLastRiceParamを含むシンボル化パラメータを決定するために、シンボル化パラメータ決定装置によって実行される。
【0137】
このプロセスへの入力は、構文要素coeff_abs_level_remaining[n]およびbaseLevelのための2値化の要請である。
このプロセスの出力は、構文要素の2値化である。
変数cLastAbsLevelおよびcLastRiceParamは、以下の通りに引き出される。
− nが15に等しい場合、cLastAbsLevelおよびcLastRiceParamは0に等しく設定される。
− さもなければ(nが15未満である)、cLastAbsLevelはbaseLevel+coeff_abs_level_remaining[n+1]に等しく設定され、cLastRiceParamは同じ変換ブロックの構文要素coeff_abs_level_remaining[n+1]のためのこの従属節で特定されるような2値化プロセスの起動の間に引き出されたcRiceParamの値に等しく設定される。
可変cRiceParamは、次のようにして、cLastAbsLevelおよびcLastRiceParamから引き出される:
cRiceParam =
Min(cLastRiceParam+(cLastAbsLevel>(3*(1<<cLastRiceParam))?1:0)
可変cTRMaxは、以下のようにしてcRiceParamから引き出される:
cTRMax=4<<cRiceParam
coeff_abs_level_remainingの2値化は、接頭辞パートおよび(ある場合)接尾辞パートを含む。
2値化の接頭辞部分は、例えば、接頭辞部分Min(cTRMax,coeff_abs_level_remaining[n])のためのライス2値化処理を引き起こすことによって引き出される。
たとえば、接頭辞ビンストリングが長さ4のビットストリングに等しく、すべてのビットが1に等しい場合、ビンストリングは接頭辞ビンストリングおよび接尾辞ビンストリングを含む。接尾辞ビンストリングは、例えば、cRiceParam+1に等しく設定されるExp―Golomb順序kを有する接尾辞部分(coeff_abs_level_remaining[n]=cTRMax)のためのExp Golomb順序−k2値化を使用して引き出されることができる。
【0138】
前記実施例は変化をもたせることができる点に留意する必要がある。たとえば、カラー成分インデックスcIdxへの依存はなくてもよい。たとば、単に1つのカラー成分だけが考慮される。さらに、明確な値の全ては変化をもたせることができる。中でこれまで、ちょうど概説された実施例は、バリエーションを合体させるために、広く解釈されることになっている。
【0139】
上述の実施例において、上で概説される実施例が、以下のようにして都合よく用いられることができる。特に、一方ではcoeff_abs_level_greater1_flagおよびcoeff_abs_level_remainingのためのシンボル化パラメータの決定のためのCtxIdxIncの決定は、以下のようにして関数パラメータを設定することによって上述の関数fおよびgを利用して調和する。
【0140】
この目的で、
図16は、手本となって、×印206で例示される「現在の変換係数」を示す。これは、その後言及された構文要素のいずれかが関連するいかなる変換係数のための表現である。それは、現在のサブブロック(xS,yS)=(0,1)内の(xP,yP)=(1,1)および(xC,yC)=(1,5)において配置される。右隣のサブブロックが(xS,yS)=(1,1)にあり、底の隣のサブブロックが(xS,yS)=(0,2)にあり、すぐ前に符号化されたサブブロックはスキャン経路202に依存する。ここで、手本となって、斜めのキャン202は示され、現在のサブブロックの前に符号化/復号化されるサブブロックは(xS,yS)=(1,0)の状態にある。
【0143】
coeff_abs_greater1_flagのコンテキストを選択するために、次のことは、符号化/復号化装置によって計算されることができる。すなわち、それは、次のように設定された関数パラメータを有する関数(1)と(2)とを使用する。
【0144】
関数(2)のために、パラメータは、以下の通りに設定される:
すぐ前のサブフロックおよび現在のサブブロックにおいて全てのx
iに対してw
i=1が設定され、他の全ての対してゼロが設定される。
|x
i|=1を有する現在のサブブロックにおいて全てのx
iに対してh(x
i)=1
|x
i|>1を有する現在のサブブロックにおいて全てのx
iに対してh(x
i)=2
4
すぐ前のサブブロックにおいて全てのx
iに対してh(x
i)=2
16
t=2
関数(1)に対して、nは8であるd
fをもって次のように設定される。
n=(0,1,2,2
4,2
16,2
16+1,2
16+2,2
16+2
4)
【0145】
coeff_abs_greater2_flagのコンテキストを選択するために、次のことが、エントロピー符号化/復号化装置によって計算されることができる。特に、それは、coeff_abs_greater2_flagに関して上述したように設定される関数パラメータを有する関数(1)および(2)を用いるが、d
fは1である:
n=(2
16)
【0148】
構文は、変換係数のレベルがcoeff_abs_level_remainingおよびbaseLevelから成ることを示し、baseLevelは、1+coeff_abs_level_greater1_flag[n]+coeff_abs_level_greater2_flag[n]から成る。この位置で(またはレベルがデコーダにおいて再構築されるときに)構文要素がsignificant_coeff_flag=1であるため、1が使用される。「第1のセット」はそれからTUコード(パラメータ化が0に等しいライスコード)であり−このことから、最初の3つの構文要素は形成される。「第2のセット」は、それから構文要素coeff_abs_level_remainingを形成する。
【0149】
境界が「第1」および「第2のセット」の間に移されるので、最大値はcoeff_abs_greater1_flag,coeff_abs_greater2_flagまたはsignificant_coeff_flagによって決定され、それにより、分岐はテーブルの構文要素に対応する。
【0150】
関数パラメータの上記の設定は、以下においてさらに動機づけされる。g(f)は隣接する係数の合計を形成し、その結果を用いて、コンテキストおよび非シンボル化パラメータが引き出され、後の変更は、空間位置に応じて実行される。
【0151】
g(x)は、1つの単一値を得る。この値は、関数f(x)の結果に対応する。これを知って、コンテキスト選択、更にはライス・パラメータのパラメータ化が引き出される。
【0152】
significant_coeff_flag:hがそれ自身xの関数であるので、f(x)または他のいかなる関数も何度もつながれる。右側の4×4サブブロックにおける全ての位置に対してw
i=1を有する関数f(x)は、t=1およびhはf(x)のように構成されるが逆転される関数であり、その結果、結局は値0または1が結果として得られ、すなわちh(x)=min(1,f(x))である。
【0153】
同等に、第2のエントリに対して、これは、下の4×4サブブロックに適用される。そして、prevCsbf=h
0+2Xh
1であり、prefCsbfはf(x)の範囲内の関数hでもよい。
【0154】
t=∞が設定される場合、構文要素coded_sub_block_flagの値が引き出される。このように、0と3を含む値の間の値は、最も外部のf(x)のための結果として得られる。g(x)のためのパラメータnは、(xP+yP)、xP、yP、または(0,0)のいずれかである。f(x)=0が結果として得られる場合、n=(xP+yP,xP+yP+3)であり、f(x)=1に対してn=(yP,yP+1)という結果が得られ、f(x)=2に対してn=(xP,xP+1)という結果が得られ、f(x)=3に対してn=(0,0)という結果が得られる。いわば、f(x)は、nを決定するために、直接評価されることができる。上記の残りの数式は、単にluma/彩度およびグローバルな位置およびスキャンへの更なる依存に応じて適合を説明するだけである。純粋な4×4ブロックの場合には、prevCsbf=4(異なってもよい)およびこのようにマッピング・テーブルのための値が再生されることができるように、f(x)は構成されることができる。
【0155】
coeff_abs_level_greater1_flag:ここで、サブブロックの評価は、類似しており、前のサブブロックだけが評価される。結果は、例えば1または2(それは、2つの異なる値でなければならない)であり、t=2である。これは、前のサブブロックにおいてすでに復号化されたレベルに応じて、ベース・インデックスの選択に対応する。サブブロックの中に位置するレベルへの直接的な依存は、このように得られることができる。効果的に、1つのインデックスによってスイッチを入れることは、0が復号化(1から始まって3に限定)され、1が復号化されるとすぐ0に設定されるときに実行される。配置が考慮されない場合、パラメータ化は以下の通りに実行されることができ、0から始まり、同じサブブロックにおける全てのレベルに対してW
i=1およびt=3、すなわち、f(x)は、レベルの数にcoeff_abs_greater1_flag=1を提供する。更なる関数f(x)に対してt=2、すなわち符号化された構文要素coeff_abs_greater1_flagを有する位置の数である。第1の関数は制限され、すなわち、h
0=f(x)=min(f
0(x),2)、そして、第2の関数は、h
1=f(x)=max(f
1(x),1)によって制限される。この全ては、デルタ関数(h
1=1の場合0、他の場合h
0)でつながった。coeff_abs_greater2_flagのために、セットの派生だけが使用される(wiは、つながれた内部関数のための0にセットされる)。
【0156】
coeff_abs_level_remaining:選択は現在のサブブロックに限られているだけであり、nは上述の通りに引き出される。
【0157】
ちょうど概説された実施例に関して、次のことが注目される。特に、前記説明に応じて、異なる可能性が、テンプレートの記述に関して存在する:テンプレートは可動テンプレートであることができ、それの位置は現在の係数206の位置に応じて決定される。この種の典型的な可動テンプレートの概要は、点線208で
図13において表される。テンプレートは、現在のサブブロックからなり、その中で、現在の係数206が位置し、上で説明されたスキャンインデックスを用いて選択可能である中のいくつかがあるとき、サブブロックスキャン202またはサブブロックスキャン202のいずれかの中で現在のサブブロックのすぐ前にある1つまたはそれ以上のサブブロックと同様に、隣接するサブブロックは現在のサブブロックの右および下にある。別の方法として、テンプレート208は、単にブロック10のすべての変換係数12を含むことができる。
【0158】
上記の実施例において、hおよびnの値を選択するための更に異なる可能性がある。したがって、これらの値は、異なって設定されることができる。1に設定されるそれらの重みに関する限り、これはw
iに関しても何らかの形で本当である。同じことは、他のゼロ以外の値に設定されることができる。それらは、互いに等しい必要さえない。w
iがh(x
i)によって増殖するので、同じ結果の値は異なって設定されたゼロ以外のw
iによって成し遂げられる。さらに、シンボル化パラメータはライス・パラメータである必要はなく、別の言い方をすれば、シンボル化方式はライスシンボル化方式に制限されない。コンテキストインデックス選択に関しては、参照は、例えば構文要素のそれぞれのタイプに特有で、すなわち、significant_coeff_flag、coeff_abs_level_greater1_flagおよびcoeff_abs_level_greater2_flagに特有であるいくつかのオフセットインデックスに関数g(f)を用いて得られるようにコンテキストインデックスを加えることによって、最終的なコンテキストインデックスが得られることができる点にすでに注意された前記説明になされる。
【0159】
いくつかの態様が装置との関連で記載されているが、これらの態様も対応する方法の説明を表すことは明らかであり、ブロックまたは装置は、方法ステップまたは方法ステップの特徴に対応する。同様に、方法ステップとの関連で記載されている態様も、対応する装置の対応するブロックまたは部材または特徴の説明を表す。方法のステップのいくつかまたは全ては、例えばマイクロプロセッサ、プログラム可能なコンピュータまたは電子回路のように、ハードウェア装置によって(または使用することによって)実行される。いくつかの実施形態では、最も重要な方法ステップの若干の一つ以上は、この種の装置によって実行されることができる。
【0160】
特定の実施要件に応じて、本発明の実施例は、ハードウェアにおいて、または、ソフトウェアで実施されることができる。実施はその上に格納される電子的に読み込み可能な制御信号を有するデジタル記憶媒体、例えばフレキシブルディスク、DVD、ブルーレイ、CD、ROM、PROM、EPROM、EEPROMまたはフラッシュメモリを使用して実行されることができ、それぞれの方法が実行されるように、それはプログラム可能なコンピュータシステムと協働する(または協働することができる)。したがって、デジタル記憶媒体は、計算機可読なものであることができる。
【0161】
本発明による若干の実施例は、電子的に読み込み可能な制御信号を有するデータキャリアを含み、それは、本願明細書において記載されている方法のうちの1つが実行されるように、プログラム可能なコンピュータシステムと協働することができる。
【0162】
通常、本発明の実施例は、プログラムコードを有するコンピュータプログラム製品として実施されることができ、コンピュータプログラム製品がコンピュータで動くときに、プログラムコードが方法のうちの1つを実行するために実施されている。プログラムコードは、機械読み取り可読キャリアに例えば格納されることができる。
【0163】
他の実施例は、本願明細書において記載されていて、機械読み取り可読キャリアに格納される方法のうちの1つを実行するためのコンピュータプログラムを含む。
【0164】
換言すれば、発明の方法の実施例は、コンピュータプログラムがコンピュータ上で動くときに、本願明細書において記載されている方法のうちの1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0165】
発明の方法の更なる実施例は、その上に記録されて、本願明細書において記載されている方法のうちの1つを実行するためのコンピュータプログラムから成っているデータキャリア(またはデジタル記憶媒体またはコンピュータ可読媒体)である。データキャリア、デジタル記憶媒体または記録媒体は、典型的には有形でおよび/または非暫定的なものである。
【0166】
発明の方法の更なる実施例は、本願明細書において記載されている方法のうちの1つを実行するためのコンピュータプログラムを表しているデータストリームまたは信号のシーケンスである。データストリームまたは信号のシーケンスは、データ通信接続、例えばインターネットを経て転送されるように構成されることができる。
【0167】
更なる実施例は、本願明細書に記載された方法の1つを実行するように構成され、または適合されるコンピュータまたはプログラム可能な論理装置などの処理手段を含む。
【0168】
更なる実施例は、本願明細書において記載されている方法のうちの1つを実行するためのコンピュータプログラムをインストールしたコンピュータを含む。
【0169】
本発明による更なる実施例は、レシーバに本願明細書において記載されている方法のうちの1つを実行するためのコンピュータプログラムをレシーバに移す(例えば、電子的にまたは光学的に)ように構成される装置またはシステムを含む。レシーバは、例えば、コンピュータ、モバイルデバイス、メモリデバイス等とすることができる。装置またはシステムは、例えば、コンピュータプログラムをレシーバに移動させるためのファイル・サーバを含む。
【0170】
いくつかの実施形態では、プログラム可能な論理装置(例えば、フィールド・プログラマブル・ゲート・アレイ)は、本願明細書において記載されている方法の機能性のいくつかまたは全てを実行するために用いることができる。いくつかの実施形態では、フィールド・プログラマブル・ゲート・アレイは、本願明細書において記載されている方法のうちの1つを実行するために、マイクロプロセッサと協働することができる。通常、方法は、いかなるハードウェア装置によっても好ましくは実行される。
【0171】
上述の実施例は、本発明の原理のために、単に図示するだけのものである。配置の修正変更および本願明細書において記載されている詳細が他の当業者にとって明らかであるものと理解される。したがって、間近に迫った特許クレームの範囲だけによって制限され、そして、本願明細書において実施例の説明および説明として示される具体的な詳細によって制限されないことが意図するところである。