(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-08
(45)【発行日】2024-07-17
(54)【発明の名称】変換係数ブロック復号装置および方法、ならびに変換係数ブロック符号化装置および方法
(51)【国際特許分類】
H04N 19/13 20140101AFI20240709BHJP
H04N 19/136 20140101ALI20240709BHJP
H04N 19/176 20140101ALI20240709BHJP
H04N 19/70 20140101ALI20240709BHJP
【FI】
H04N19/13
H04N19/136
H04N19/176
H04N19/70
(21)【出願番号】P 2022082110
(22)【出願日】2022-05-19
(62)【分割の表示】P 2020095840の分割
【原出願日】2011-04-11
【審査請求日】2022-06-20
(31)【優先権主張番号】PCT/EP2010/054822
(32)【優先日】2010-04-13
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2010-04-13
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】515089080
【氏名又は名称】ジーイー ビデオ コンプレッション エルエルシー
【住所又は居所原語表記】1 Research Circle,Niskayuna,NY 12309,USA
(74)【代理人】
【識別番号】100079577
【氏名又は名称】岡田 全啓
(72)【発明者】
【氏名】ヴィーガント,トーマス
(72)【発明者】
【氏名】キルヒホッファー,ハイナー
(72)【発明者】
【氏名】シュルヴァルツ,ハイコ
(72)【発明者】
【氏名】グエン,ツング
(72)【発明者】
【氏名】マルペ,デトレフ
【審査官】岩井 健二
(56)【参考文献】
【文献】特表2005-530375(JP,A)
【文献】国際公開第2011/002492(WO,A1)
【文献】国際公開第2010/050156(WO,A1)
【文献】国際公開第2010/018138(WO,A1)
【文献】国際公開第2009/049260(WO,A2)
【文献】米国特許出願公開第2008/0266151(US,A1)
【文献】Martin Winken et al.,Description of video coding technology proposal by Fraunhofer HHI,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-A116,1st Meeting: Dresden, DE,2010年04月,pp.1-17
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
変換係数ブロックを復号化するための装置であって、
前記変換係数ブロック内の有意変換係数の位置を示す有意マップ、そして、前記変換係数ブロック内の前記有意変換係数の値を、データストリームから抽出し、前記有意変換係数の前記値を抽出する際に、コンテキスト適応エントロピー復号化によって前記値をシーケンシャルに抽出するように構成されるデコーダ(250)と、
前記変換係数ブロックがサブブロック走査順(320)を用いて前記変換係数ブロック(256)のサブブロック(322)単位で走査されるとともに、前記サブブロック内
の変換係数の前記位置を位置副走査順(324)で走査することを特徴とする、
前記変換係数ブロック内の前記位置の間での所定の係数走査順で
、前記有意変換係数の前記位置に前記シーケンシャルに抽出された値をシーケンシャルに関連付けるように構成されるアソシエータ(252)と
を備え、
前記デコーダ(250)は、前記有意変換係数
の前記値をシーケンシャルにコンテキスト適応エントロピー復号化する際に、複数のコンテキストの数の組から選択されたコンテキストの数の組を使用するように構成され、
前記デコーダ(250)は、各サブブロックについて行われる前記選択された組の前記選択が、前記サブブロック走査順で既に復号化された前記変換係数ブロックのサブブロック内の前記変換係数の前記値に依存する、または各サブブロックについて行われる前記選択された組の前記選択が、以前に復号化された同じサイズの変換係数ブロック内の同じ場所にあるサブブロック内の前記変換係数の値に依存するように構成され、
前記サブブロック(322)は正方形または長方形である、
装置。
【請求項2】
前記デコーダは、前記複数のコンテキストの組のコンテキストの数が1より大きくなるように構成され、かつ、サブブロック内の前記有意変換係数
の前記値を前記各サブブロックについての前記選択されたコンテキストの数の組を用いてシーケンシャルにコンテキスト適応エントロピー復号化する際に、前記選択されたコンテキストの数の組の前記コンテキストを前記各サブブロック内の前記位置に一意的に割り当てるように構成される、請求項1に記載の装置。
【請求項3】
前記アソシエータ(252)は、前記サブブロック走査順が、縦方向及び横方向で最も低い周波数の位置を含むサブブロックから縦方向および横方向の双方で最も高い周波数の位置を含むサブブロックへジグザグに進む一方で、前記位置副走査順が各サブブロック内で、縦方向および横方向でもっとも高い周波数に関連する各サブブロック内の位置から縦方向および横方向の双方で最も低い周波数に関連する各サブブロック内の位置へジグザグに進むように構成される、請求項1または請求項2に記載の装置。
【請求項4】
前記デコーダ(250)は、前記データストリームから前記有意マップを抽出する際に、前記データストリームから第1のタイプのシンタックス要素をシーケンシャルに抽出するように構成され、前記第1のタイプのシンタックス要素は、前記変換係数ブロック(256)内で関連付けられている位置について、それぞれの前記位置において有意変換係数または無意変換係数が配置されているかどうかを少なくとも示し、
前記アソシエータ(252)は、シーケンシャルに抽出された前記第1のタイプのシンタックス要素を、前記変換係数ブロックの前記位置のうちの前記変換係数ブロックの前記位置に、以前に抽出され関連付けられた第1のタイプのシンタックス要素が示す前記有意変換係数の前記位置に依存する走査順で関連付けるように構成される、請求項1ないし請求項3のいずれかに記載の装置。
【請求項5】
前記デコーダ(250)は、前記データストリーム内の情報に基づき、かつ、前記以前に抽出され関連付けられた第1のタイプのシンタックス要素が示す前記無意変換係数の位置の数に関係なく、前記位置には有意変換係数が配置されることを示す現在抽出されている第1のタイプのシンタックス要素が関連付けられる位置に、前記変換係数ブロック内の最後の有意変換係数が配置されるかを認識するようにさらに構成される、請求項4に記載の装置。
【請求項6】
前記デコーダ(250)は、関連付けられた前記各位置に有意変換係数が配置されることを示す第1のタイプのシンタックス要素と直後の第1のタイプのシンタックス要素との間で、有意変換係数が位置する前記関連付けられた位置について、前記関連付けられた位置のそれぞれが前記変換係数ブロックにおけ
る最後の有意変換係数が配置されるかを示す第2のタイプのシンタックス要素を前記
データストリームから抽出するようにさらに構成される、請求項
4に記載の装置。
【請求項7】
前記デコーダ(250)は、前記変換係数ブロックの第1のタイプのシンタックス要素を全て抽出した後に、コンテキスト適応エントロピー復号化により前記変換係数ブロック内の前記有意変換係数の値を前記データストリームから連続的に抽出するようにさらに構成され、
前記アソシエータ(252)は、シーケンシャルに抽出された前記値を前記変換係数ブロックの位置のうちの前記有意変換係数の前記位置に、前記変換係数ブロックが前記変換係数ブロック(256)のサブブロック(322)単位でサブブロック走査順(320)を使用して走査されるとともに、前記サブブロック(322)内の前記変換係数の前記位置を位置副走査順(324)でスキャンする、既定の係数走査順でシーケンシャルに関連付けるように構成され、
前記デコーダは、前記有意変換係数
の前記値をシーケンシャルにコンテキスト適応エントロピー復号化する際に、複数のコンテキストの数の組から選択されたコンテキストの数の組を使用するように構成され、各サブブロックについて行われる前記選択された組の前記選択は、前記サブブロック走査順(320)で既に復号化された前記変換係数ブロックのサブブロック内の前記変換係数の前記値、または以前に復号化された同じサイズの変換係数ブロックの同じ場所にあるサブブロックの前記変換係数の前記値に依存する、請求項4ないし請求項6のいずれかに記載の装置。
【請求項8】
前記アソシエータ(252)は、前記シーケンシャルに抽出された第1のタイプのシンタックス要素を、横方向で最も低い周波数の位置および縦方向で最も高い周波数の位置がそれぞれ配置される前記変換係数ブロックの隣接する辺の第1の対と、前記縦方向で最も低い周波数の位置および前記横方向で最も高い周波数の位置がそれぞれ配置される前記変換係数ブロックの隣接する辺の第2の対との間に延びる一連のサブ経路に沿って、前記変換係数ブロックの位置にシーケンシャルに関連付けるようにさらに構成され、前記サブ経路は前記縦方向および横方向の双方において前記最も低い周波数の位置から増加する距離を有し、
前記アソシエータ(252)は、前記以前の副走査内の前記有意変換係数の位置に基づいて、前記シーケンシャルに抽出された第1のタイプのシンタックス要素が前記変換係数ブロックの位置に関連付けられる方向(300、302)を決定するように構成される、請求項4ないし請求項7のいずれか装置。
【請求項9】
前記デコーダ(250)は、前記変換係数ブロック内の有意変換係数の位置を示す前記有意マップを抽出する際に、コンテキスト適応エントロピー復号化によって前記データストリームから第1のタイプのシンタックス要素をシーケンシャルに抽出するように構成され、前記第1のタイプのシンタックス要素は、前記変換係数ブロック内の関連付けられた位置に対して、各位置において有意変換係数または非有意変換係数が配置されるかについて示し、
前記アソシエータ(250)は、シーケンシャルに抽出された前記第1のタイプのシンタックス要素を前記所定の走査順で前記変換係数ブロックの位置のうちの前記変換係数ブロックの前記位置にシーケンシャルに関連付けるように構成され、
前記デコーダは、前記第1のタイプのシンタックス要素をコンテキスト適応エントロピー復号化する際に、現在の第1のタイプのシンタックス要素が関連付けられた位置の近隣部において、前記以前に抽出され関連付けられた第1のタイプのシンタックス要素に従って有意変換係数が配置される位置の数に応じて、前記第1のタイプのシンタックス要素のそれぞれに対して個々に選択されるコンテキストを用いるように構成される、請求項1ないし請求項8のいずれかに記載の装置。
【請求項10】
前記デコーダ(250)は、前記以前に抽出され関連付けられた第1のタイプのシンタックス要素に従って有意変換係数が配置される位置の数を、前記第1のタイプのシンタックス要素のそれぞれが関連付けられた位置の近隣部において、前記第1のタイプのシンタックス要素のそれぞれが関連付けられた位置の近隣部における利用可能な位置の数による重み付けの下で、可能なコンテキストインデックスの所定の組のうちのコンテキストインデックスにマッピングするように、さらに構成される、請求項9に記載の装置。
【請求項11】
前記変換係数ブロックは深度マップコンテンツに関連する、請求項1ないし請求項10のいずれかに記載の装置。
【請求項12】
変換係数ブロックを符号化するための装置であって、
前記変換係数ブロック内の有意変換係数の位置を示す有意マップ、さらに前記変換係数ブロック内の前記有意変換係数の値をデータストリームに符号化するとともに、前記有意変換係数の前記値を抽出する際に、コンテキスト適応エントロピー符号化によって前記値をシーケンシャルに符号化するように構成され、
前記装置は、前記変換係数ブロックがサブブロック走査順を用いて前記変換係数ブロックのサブブロック単位で走査されるとともに、前記サブブロック内
の変換係数の位置を位置副走査順で走査することを特徴とする
、前記変換係数ブロックの前記位置の間での所定の係数走査順で
、前記値を前記データストリームに符号化するように構成され、
前記装置は、前記有意変換係
数の前記値をシーケンシャルにコンテキスト適応エントロピー符号化する際に、複数のコンテキストの数の組から選択されたコンテキストの数の組を用いるように、さらに構成され、
前記装置は、各サブブロックについて行われる前記選択された組の前記選択が、前記サブブロック走査順で既に符号化された前記変換係数ブロックのサブブロック内の前記変換係数の前記値に依存する、または各サブブロックについて行われる前記選択された組の前記選択が、以前に符号化された同じサイズの変換係数ブロック内の同じ場所にあるサブブロック内の前記変換係数の前記値に依存するように構成され、
前記サブブロックは正方形または長方形である、
装置。
【請求項13】
前記変換係数ブロックは深度マップコンテンツに関連する、請求項12に記載の装置。
【請求項14】
変換係数ブロックを復号化するための方法であって、
前記変換係数ブロック内の有意変換係数の位置を示す有意マップ、そして、前記変換係数ブロック内の前記有意変換係数の値を、データストリームから抽出し、前記有意変換係数の前記値を抽出する際に、コンテキスト適応エントロピー復号化によって前記値をシーケンシャルに抽出するステップと、
前記変換係数ブロックがサブブロック走査順を用いて前記変換係数
ブロックのサブブロック単位で走査されるとともに、前記サブブロック内
の変換係数の前記位置を位置副走査順で走査することを特徴とする
、前記変換係数ブロック内の位置の間での所定の走査順で
、前記有意変換係数の前記位置にシーケンシャルに抽出された値をシーケンシャルに関連付けるステップと
を含み、
前記有意変換係数
の前記値をシーケンシャルにコンテキスト適応エントロピー復号化する際に、複数のコンテキストの数の組から選択されたコンテキストの数の組が使用され、各サブブロックについて行われる前記選択された組の前記選択は、前記サブブロック走査順で既に復号化された前記変換係数ブロックのサブブロック内の前記変換係数の前記値に依存する、または各サブブロックについて行われる前記選択された組の前記選択は、以前に復号化された同じサイズの変換係数ブロック内の同じ場所にあるサブブロック内の前記変換係数の値に依存し、
前記サブブロックは正方形または長方形である、
方法。
【請求項15】
変換係数ブロックを符号化するための方法であって、
前記変換係数ブロック内の有意変換係数の位置を示す有意マップ、さらに前記変換係数ブロック内の前記有意変換係数の値をデータストリームに符号化するとともに、前記有意変換係数の前記値を符号化する際に、コンテキスト適応エントロピー符号化によって前記値をシーケンシャルに符号化するステップであって、
前記値を前記データストリームに符号化するステップは、前記変換係数ブロックがサブブロック走査順を用いて前記変換係数ブロックのサブブロック単位で走査されるとともに、前記サブブロック内
の変換係数の位置を位置副走査順で走査することを特徴とする
、前記変換係数ブロックの前記位置の間での所定の係数走査順で行われ、
前記有意変換係
数の前記値をシーケンシャルにコンテキスト適応エントロピー符号化する際に、複数のコンテキストの数の組から選択されたコンテキストの数の組が用いられ、各サブブロックについて行われる前記選択された組の前記選択は、前記サブブロック走査順で既に符号化された前記変換係数ブロックのサブブロック内の前記変換係数の前記値に依存して行われる、または各サブブロックについて行われる前記選択された組の前記選択は、以前に符号化された同じサイズの変換係数ブロック内の同じ場所にあるサブブロック内の前記変換係数の前記値に依存して行われ、
前記サブブロックは正方形または長方形である、
ステップを含む、方法。
【請求項16】
コンピュータで実行されると、請求項14または請求項15に記載の方法を実行するためのプログラムコードを有するコンピュータプログラムを格納した、コンピュータ可読デジタル媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、変換係数ブロックの符号化に関する。そのような符号化は、たとえば、画像および映像の符号化などに用いることができる。
【背景技術】
【0002】
従来の映像符号化においては、通常、映像シーケンスの画像がブロックに分割される。ブロックまたはブロックの色成分は、動き補償予測またはイントラ予測のいずれかによって予測される。ブロックは、異なるサイズでもよく、正方形または長方形のいずれでもよい。ブロックの全ての標本またはブロックの色成分が、同じ予測パラメータの集合を用いて予測される。このような予測パラメータとしては、参照インデックス(既に符号化された画像の集合のうちの基準画像を識別する)、動きパラメータ(基準画像と現在の画像との間のブロックの移動に対する尺度を特定する)、補間フィルタを特定するためのパラメータ、イントラ予測モードなどがある。動きパラメータは、水平および垂直成分を有するずれベクトルによって、または6個の成分からなるアフィン動きパラメータなどの高次の動きパラメータによって表される。また、複数集合の予測パラメータ(基準インデックスおよび動きパラメータなど)を単一のブロックに関連付けることも可能である。この場合、各集合の予測パラメータについて、ブロックまたはブロックの色成分に対して単一の中間予測信号が生成され、中間予測信号の重み付けされた合計によって、最終予測信号が構築される。重み付けされたパラメータ、および場合によって(重み付けされた合計に加算される)一定のオフセットが、画像、基準画像もしくは基準画像の集合に固定されるか、あるいは、それらが対応するブロックに対する予測パラメータの集合に含まれる。同様に、静止画もブロックに分割されることがあり、そのブロックは(ブロックのDC成分を予測する空間イントラ予測法または単一イントラ予測法といったような)イントラ予測法によって予測される。めったには発生しないが、予測信号がゼロとなることもある。
【0003】
元のブロックまたは元のブロックの色成分と、対応する予測信号との差は、残留信号ともいわれ、通常は、これが変換および量子化の対象となる二次元変換が残留信号に適用され、結果として得られる変換係数が量子化される。この変換符号化において、特定の集合の予測パラメータが使用されたブロックまたはブロックの色成分が、変換を適用する前にさらに分割されることもある。変換ブロックは、予測に使用されるブロックに等しいか、それより小さい。変換ブロックが、予測に使用されるブロックのうちの2以上を含むことも可能である。静止画または映像シーケンスの一画像における異なる変換ブロックは異なるサイズを持つことができ、変換ブロックは、正方形または長方形のブロックを表すことができる。
【0004】
結果として得られる量子化された変換係数は、変換係数レベルともいわれ、エントロピー符号化技術を用いて送信される。したがって、変換係数レベルのブロックは、通常は、走査を用いて、走査変換係数値のベクトル(すなわち順序集合)にマッピングされる。なお、異なるブロックに対して異なる走査を利用することができる。走査ジグザグ走査がよく用いられる。インターレースフレームの1つのフィールドの標本のみを含むブロック(これらのブロックは、符号化フィールド内のブロックでもよく、符号化フレーム内のフィールドブロックでもよい)に対しては、フィールドブロックに対して特別に設計された異なる走査を用いることも一般的である。結果として得られる順序シーケンスを符号化するために一般に使用されるエントロピー符号化アルゴリズムは、ラン・レベル符号化である。通常、変換係数レベルの大多数はゼロであり、ゼロに等しい連続する変換係数レベルの集合は、ゼロに等しい連続する変換係数レベル(ラン)の数を符号化することによって効率的に表される。残余の(非ゼロの)変換係数については、実際のレベルが符号化される。ラン・レベル符号には種々の代替手段がある。非ゼロ係数前のランおよび非ゼロ変換係数のレベルが、単一のシンボルまたは符号語を用いて共に符号化される。しばしば、エンド・オブ・ブロックのための特別のシンボルであって、最後の非ゼロ変換係数の後に送信されるシンボルが含まれる。また、非ゼロ変換係数レベルの数を最初に符号化することも可能であり、この数に応じて、レベルおよびランが符号化される。
【0005】
いくらか異なるアプローチが、H.246における非常に効率的なCABACエントロピー符号化で用いられる。ここで、変換係数レベルの符号化は、3つのステップに分けられる。最初のステップでは、変換ブロックが有意変換係数レベル(すなわち、非ゼロである変換係数)を含むか否かを示す(これを「シグナリング」という)バイナリシンタックス要素coded_block_flagが、各変換ブロックに対して送信される。このシンタックス要素が有意変換係数レベルが存在することを示している場合には、二値化された有意マップが符号化され、どの変換係数レベルが非ゼロ値であるかを特定する。そして、逆走査順で、非ゼロ変換係数レベルの値が符号化される。有意マップは以下のように符号化される。走査順の各係数に対して、対応する変換係数レベルがゼロに等しくないか特定するバイナリシンタックス要素significant_coeff_flagが符号化される。significant_coeff_flagのビンが1に等しい場合、すなわち、非ゼロ変換係数レベルがこの走査位置に存在する場合、さらなるバイナリシンタックス要素last_significant_coeff_flagが符号化される。このビンは、現在の有意変換係数レベルがブロック内の最後の有意変換係数レベルであるか、またはさらなる有意変換係数レベルが走査順で続くのかを示す。last_significant_coeff_flagが、さらなる有意変換係数が続かないことを示す場合には、ブロックに対する有意マップを特定するためのさらなるシンタックス要素は符号化されない。次のステップでは、ブロック内の位置が有意マップによってすでに決定されている有意変換係数レベルの値が、符号化される。有意変換係数レベルの値が、以下の3つのシンタックス要素を用いることによって、逆走査順で符号化される。バイナリシンタックス要素coeff_abs_greater_oneは、有意変換係数レベルの絶対値が1より大きいかどうかを示す。バイナリシンタックス要素coeff_abs_greater_oneが、絶対値が1より大きいことを示す場合、変換係数レベルの絶対値マイナス1を特定するさらなるシンタックス要素coeff_abs_level_minus_oneが送信される。最後に、変換係数値の符号を特定するバイナリシンタックス要素coeff_sign_flagが、各有意変換係数レベルについて符号化される。なお、再度になるが、有意マップに関係するシンタックス要素は走査順で符号化されるが、変換係数レベルの実際の値に関連するシンタックス要素は、逆走査順で変換され、より適切なコンテキストモデルの使用を可能とする。
【0006】
H.264におけるCABACエントロピー符号化では、変換係数レベルに対する全てのシンタックス要素が、バイナリ確率モデリングを用いて符号化される。非バイナリシンタックス要素coeff_abs_level_minus_oneが最初に二進化、すなわちバイナリ判定(ビン)のシーケンスにマッピングされ、これらのビンがシーケンシャルに符号化される。バイナリシンタックス要素significant_coeff_flag、last_significant_coeff_flag、coeff_abs_greater_oneおよびcoeff_sign_flagは、直接符号化される。各符号化ビン(バイナリシンタックス要素を含む)は、コンテキストに関連付けられる。コンテキストは、符号化ビンのクラスに対して、確率モデルを表す。2つの可能なビン値の1つに対する確率に関連する測度(measure)が、対応するコンテキストとともに、すでに符号化されたビンの値に基づいて、各コンテキストに対して推定される。変換符号化に関係するいくつかのビンについて、符号化に使用されるコンテキストは、既に送信されたシンタックス要素に基づいて、またはブロック内の位置に基づいて選択される。
【0007】
有意マップは、走査位置に対する有意性(変換係数レベルがゼロとは異なること)についての情報を特定する。H.264のCABACエントロピー符号化では、4×4のブロックサイズについて、バイナリシンタックス要素significant_coeff_flagおよびlast_significant_coeff_flagを符号化するために、各走査位置に対して個別のコンテキストが用いられ、ここで、1つの走査位置のsignificant_coeff_flagおよびlast_significant_coeff_flagに対して異なるコンテキストが用いられる。8×8のブロックサイズについては、4つの連続する走査位置に対して同じコンテキストモデルが使用され、significant_coeff_flagについての16個のコンテキストモデルおよびlast_significant_coeff_flagについての追加の16個のコンテキストモデルに帰着する。significant_coeff_flagおよびlast_significant_coeff_flagをコンテキストモデル化するこの方法には、ブロックサイズが大きいために、いくつかの不利な点がある。一方で、各走査位置が個別のコンテキストモデルに関連付けられる場合、8×8より大きいブロックが符号化される際には、コンテキストモデルの数が大幅に増加してしまう。このようなコンテキストモデル数の増加は、確率推定の適応性の遅れをまねき、通常は、確率推定の不正確さをもたらしてしまう。これらは、符号化効率に悪影響を与えてしまう。他方で、多数の連続走査位置へのコンテキストモデルの割当て(H.264において8×8ブロックに対して行われるような)も、大きなブロックサイズに対しては最適ではない。なぜなら、非ゼロ変換係数は、通常、変換ブロックの特定の領域(この領域は、残留信号の対応するブロック内の主構造に依存する)に集中するからである。
【0008】
有意マップの符号化の後に、ブロックは逆走査順で処理される。走査位置が有意である場合、すなわち、係数がゼロとは異なる場合、バイナリシンタックス要素coeff_abs_greater_oneが送信される。最初に、対応するコンテキストモデルセットのうちの第2のコンテキストモデルがcoeff_abs_greater_oneシンタックス要素に対して選択される。ブロック内のいずれかのcoeff_abs_greater_oneシンタックス要素の符号化値が1に等しい(すなわち、絶対係数が2よりも大きい)場合、コンテキストモデリングは、そのセットのうちの第1のコンテキストモデルに戻すように切り替えられ、ブロックの最後までこのコンテキストモデルを用いる。それ以外の(ブロック内のcoeff_abs_greater_oneの全ての符号化値がゼロであり、対応する絶対係数レベルが1に等しい)場合、コンテキストモデルは、対象ブロックの逆走査において既に符号化または復号化されたゼロに等しいcoeff_abs_greater_oneシンタックス要素の数に依存して選択される。シンタックス要素coeff_abs_greater_oneに対するコンテキストモデル選択は、以下の式で概説できる。ここで、現在のコンテキストモデルインデックスCt+1は、前のコンテキストモデルインデックスCtおよび式におけるbintによって表される前に符号化されたシンタックス要素coeff_abs_greater_oneの値に基づいて選択される。ブロック内の第1のシンタックス要素coeff_abs_greater_oneに対して、コンテキストモデルインデックスはCt=1に等しく設定される。
【数1】
【0009】
同じ走査位置に対するcoeff_abs_greater_oneシンタックス要素が1に等しいときに、絶対変換係数レベルを符号化するための第2のシンタックス要素coeff_abs_level_minus_oneだけが符号化される。非バイナリシンタックス要素coeff_abs_level_minus_oneがビンのシーケンスに二進化され、この二進化の第1のビンに対して、コンテキストモデルインデックスが以下に記載するように選択される。二進化の残余のビンが固定コンテキストで符号化される。二進化の第1のビンに対するコンテキストは以下のように選択される。第1のcoeff_abs_level_minus_oneシンタックス要素に対して、coeff_abs_level_minus_oneシンタックス要素に対するコンテキストモデルの集合の第1のコンテキストモデルが選択され、対応するコンテキストモデルインデックスがCt=0に等しく設定される。coeff_abs_level_minus_oneシンタックス要素のさらなる第1のビン各々に対して、コンテキストモデリングは、その集合における次のコンテキストモデルに切り替えられる。ここで、集合内のコンテキストモデルの数は、5に制限されている。コンテキストモデル選択は、以下の式によって表すことができる。ここで、現在のコンテキストモデルインデックスCt+1は、前のコンテキストモデルインデックスCtの値に基づいて選択される。上述のように、ブロック内の第1のシンタックス要素coeff_abs_level_minus_oneについて、コンテキストモデルインデックスはCt=0に等しく設定される。なお、異なるコンテキストモデルの集合が、シンタックス要素coeff_abs_greater_oneおよびcoeff_abs_level_minus_oneに対して使用される。
【数2】
【0010】
大きなブロックに対して、この方法にはいくつかの不利益な点がある。有意係数の数が小さいブロックにおける場合よりも大きいので、coeff_abs_greater_one(1に等しいcoeff_abs_greater_oneの値が複数ブロックに対して符号化された場合に用いられる)に対する第1のコンテキストモデルの選択は、通常は過度に早く行われてしまい、coeff_abs_level_minus_oneに対する最後のコンテキストモデルに過度に早く到達してしまう。そのため、coeff_abs_greater_oneおよびcoeff_abs_level_minus_oneのほとんどのビンが、単一のコンテキストモデルで符号化される。しかし、これらのビンは、通常は異なる確率を有し、このために、多数のビンに対する単一のコンテキストモデルの使用は、符号化効率に悪影響をもたらす。
【0011】
一般に、大きなブロックはスペクトル分離変換を行うための計算のオーバーヘッドを増加させるが、小さいブロックおよび大きいブロックの双方を効果的に符号化することができれば、画像などの標本アレイまたは深度マップなどの他の空間的に標本化された情報信号を表す標本アレイを符号化する際に、より良い符号化効率が達成可能となる。この理由は、ブロック内の標本アレイの変換時の空間解像度とスペクトル解像度の間の依存性によるものであり、ブロックが大きければ大きいほど、変換のスペクトル解像度が高くなるからである。一般に、標本アレイに局部的に個別の変換を、そのような個別の変換の領域内で標本アレイのスペクトル成分が大きくは変動しないように、適用することができれば好ましい。小さいブロックに対しては、ブロック内のコンテンツが比較的整合していることが保証される。一方、ブロックが小さ過ぎる場合、スペクトル解像度は低く、非有意変換係数と有意変換係数との比は低くなる。
【0012】
したがって、変換係数ブロックが大きくても変換係数ブロックに対する効率的な符号化を可能とする符号化スキーム、および変換係数ブロックの有意マップを有することができれば好ましい。
【発明の概要】
【発明が解決しようとする課題】
【0013】
したがって、本発明の課題は、変換係数ブロックを符号化するための符号化スキームおよび変換係数ブロック内の有意変換係数の位置をそれぞれ示す有意マップを提供し、それにより符号化効率を高めることである。
【課題を解決するための手段】
【0014】
この課題は、独立請求項に記載される主題によって達成される。
【0015】
本出願の第1の側面によると、本出願の根底にある概念は、変換係数ブロック内の有意変換係数の位置を示す有意マップを符号化する高符号化効率が、変換係数ブロック内の関連する位置に対して、それぞれの位置に有意または非有意変換係数が配置されるかどうかを示すシーケンシャルに抽出されたシンタックス要素が、変換係数ブロックの位置のうち変換係数ブロックの位置にシーケンシャルに関連付けされる走査順が、以前に関連付けられたシンタックス要素によって示される有意変換係数の位置に応じる場合に達成できるということである。特に、発明者らは、画像、映像または深度マップコンテンツのような標準的な標本アレイコンテンツにおいて、有意変換係数は、ほとんど、縦方向における非ゼロ周波数か横方向における低い周波数、またはその逆に対応する変換係数ブロックの特定の側で集合を形成し、それにより、以前に関連付けられたシンタックス要素によって示される有意変換係数の位置を考慮することによって、それまでに関連付けられたシンタックス要素によって示される有意変換係数の位置とは独立して走査順が事前決定される手順と比較して、変換係数ブロック内の最後の有意変換係数に早く到達する確率が高くなるように走査のさらなる要因を制御することが可能となることを見出した。これは、小さいブロックに対しても当てはまることであるが、より大きなブロックに対して特に当てはまる。
【0016】
本出願のひとつの実施態様において、エントロピーデコーダは、現在関連付けられているシンタックス要素によって現在示されている有意変換係数が、変換係数ブロック内の正確な位置とは独立した最後の有意変換係数であるかについて認識することを可能とする情報をデータストリームから抽出するように構成され、ここで、エントロピーデコーダは、現在のシンタックス要素がそのような最後の有意変換係数に関係している場合には、さらなるシンタックス要素を予期しないように構成される。この情報は、そのブロック内の有意変換係数の数を含むことができる。代替的に、第2のシンタックス要素が第1のシンタックス要素とインターリーブされ、ここで第2のシンタックス要素は、有意変換係数が配置される関連付けられた位置について、変換係数ブロックにおける最後の変換係数も同じであるか否かについて示すものである。
【0017】
ひとつの実施態様において、アソシエータは、変換係数ブロック内の所定の位置では、単に、それまで示された有意変換係数の位置に応じた走査順を適用する。たとえば、変換係数ブロック内の位置の互いに分離されたサブセットを横断するいくつかのサブ経路は、第1の方向に沿う最小周波数および他の方向に沿う最大周波数にそれぞれ対応する変換係数ブロックの一対の辺から、第2の方向に沿うゼロ周波数および第1の方向に沿う最大周波数にそれぞれ対応する変換係数ブロックの反対側の対の辺まで、実質的に対角状に延びる。この場合、アソシエータは、サブ経路がサブ経路間で変換係数ブロック内のサブ経路のDC位置までの距離が単調増加するような順序で横断され、各サブ経路が進行方向に沿って割り込みなく横断され、各サブ経路に対して、前のサブ経路中に横断された有意変換係数の位置に応じて、サブ経路が横断される方向がアソシエータによって選択されるように、走査順を選択するように構成される。この方策によって、最後の有意変換係数が配置される最後のサブ経路が、最後の有意変換係数がこの最後のサブ経路のその後半よりも前半に在る確度が高くなるような方向で横断される確率が増加し、それにより、有意または非有意変換係数がそれぞれの位置に配置されるかどうかを示すシンタックス要素の数を減らすことができる。この効果は、大きな変換係数ブロックの場合に特に意味がある。
【0018】
本出願のさらなる側面によると、本出願は、先行するシンタックス要素のいずれかによって有意であるとして示されたそれぞれのシンタックス要素の近隣部における多数の有意変換係数に応じて、シンタックス要素の各々に対して個々に選択されるコンテキストを用いて、それぞれの位置に有意または非有意変換係数が配置されるかどうかを示す前述のシンタックス要素が、変換係数ブロック内の関連付けられた位置に対してコンテキスト適応的にエントロピー復号される場合に、変換係数ブロック内の有意変換係数の位置を示す有意マップがより効率的に符号化できるという見識に基づく。特に、発明者らは、増加するサイズの変換係数ブロックであれば、有意変換係数は変換係数ブロック内の所定のエリアにある程度集合され、それにより、それまでに所定の走査順で横断された有意変換係数の数に感度を持つだけでなく有意変換係数の近隣部を考慮するコンテキスト適応が、コンテキストのより良い適合をもたらし、それゆえエントロピー符号化の符号化効率を増加させるということを見出した。
【0019】
もちろん、上記に概説した側面の双方は、望ましい手法で組み合わせることができる。
【0020】
また、本出願のさらなる側面によると、本出願は、変換係数ブロック内の有意変換係数の位置を示す有意マップが、変換係数ブロック内の有意変換係数の実際の値の符号化に先行する場合で、かつ有意変換係数の値のシーケンスを有意変換係数の位置にシーケンシャルに関連付けるのに用いられる変換係数の位置間の所定の走査順が、補助的に係数走査順でサブブロック内の変換係数の位置を走査しながらサブブロック間でサブブロック走査順を用いてサブブロックで変換係数ブロックを走査する場合、および多数のコンテキストからなる複数の集合から選択された集合が、有意変換係数値の値、サブブロック走査順で既に通過している変換係数ブロックのサブブロック内の変換係数の値に依存して選択された集合の選択、または以前に復号された変換係数ブロックにおいて共に位置するサブブロックの変換係数の値、をシーケンシャルにコンテキスト適応エントロピー復号するために用いられる場合に、変換係数ブロックの符号化についての符号化効率を向上することができるという見識に基づく。このようにして、コンテキスト適応は、変換係数ブロック内の所定のエリアに集められる有意変換係数の上記概説した特性に、非常に適切なものとなる。言い換えると、値は、サブブロック内で、サブブロック統計に基づいて選択されたコンテキストで走査される。
【0021】
再度になるが、最後の側面も、本出願の前に特定した側面のいずれかに、または両方の側面に組み合わされることができる。
【0022】
本出願の好ましい実施の形態が図面を参照して以下に説明される。
【図面の簡単な説明】
【0023】
【
図1】ひとつの実施の形態によるエンコーダのブロック図を示す。
【
図2A】画像などの標本アレイのブロックへの細分化を概略的に示す。
【
図3】ひとつの実施の形態によるデコーダのブロック図を示す。
【
図4】本出願のひとつの実施の形態によるエンコーダのブロック図をより詳細に示す。
【
図5】本出願のひとつの実施の形態によるデコーダのブロック図をより詳細に示す。
【
図6】ブロックの空間ドメインからスペクトルドメインへの変換を概略的に示す。
【
図7】ひとつの実施の形態による変換係数ブロックの有意マップおよび有意変換係数を復号化するための装置のブロック図を示す。
【
図8】走査順のサブ経路および異なる横断方向への小分けを概略的に示す。
【
図9】ひとつの実施の形態による変換ブロック内のある走査位置に対する近隣定義を概略的に示す。
【
図10】変換ブロックの境界にある変換ブロック内の走査位置についての可能な近隣定義を概略的に示す。
【
図11】本出願のさらなる実施の形態による変換ブロックの可能な走査を示す。
【発明を実施するための形態】
【0024】
図の説明中において、いくつかの図に登場する要素は、それらの図の各々において同じ参照符号で示され、不要な反復を避けるために、機能が関心事となる限りはそれらの要素の繰返しの説明は回避される。しかしながら、1つの図面に関して与えられた機能および説明は、明示の断りがない限りは他の図面にも適用されるものとする。
【0025】
図1は、本出願の諸側面が実施されるエンコーダ10の一例を示す。エンコーダは、一連の情報標本20をデータストリームに符号化する。一連の情報標本とは、空間的にサンプリングされたあらゆる種類の情報信号を意味する。たとえば、標本アレイ20を、静止画像または映像を構成する画像とすることができる。この場合、情報標本は、ブライトネス値(brightness value)、色値(color value)、輝度値(luma value)、クロマ値(chroma value)などである。情報標本はまた、標本アレイ20がたとえば発光時間センサなどによって生成された深度マップである場合には、深度値であってもよい。
【0026】
エンコーダ10は、ブロックベースのエンコーダである。すなわち、エンコーダ10は、標本アレイ20をブロック40単位でデータストリーム30に符号化する。ブロック40単位の符号化は、必ずしも、エンコーダ10がこれらのブロック40を完全に互いに独立して符号化することを意味するものではない。逆に、エンコーダ10は、残りのブロックを外挿またはイントラ予測するために以前に符号化されたブロックを再構築したものを用いてもよいし、符号化パラメータを設定するための、すなわち、それぞれのブロックに対応する各標本アレイ領域が符号化される手法を設定するための、ブロックの粒度(granularity)を用いてもよい。
【0027】
また、エンコーダ10は、変換符号器である。すなわち、エンコーダ10は、各ブロック40内の情報標本を空間ドメインからスペクトルドメインに移すための変換を用いることによって、ブロック40を符号化する。FFTのDCTなどのような二次元変換が用いられる。好ましくは、ブロック40は、正方形または長方形である。
【0028】
図1に示す標本アレイ20のブロック40への細分化は、単に説明の目的を担うだけのものである。
図1は、相互に重ならないように隣接する正方形または長方形のブロック40の規則的な二次元配置に細分化された標本アレイ20を示す。ブロック40のサイズは、あらかじめ定めておくことができる。その場合、エンコーダ10は、データストリーム30内のブロック40のブロックサイズについての情報を、復号側に転送しなくてもよい。たとえば、デコーダは、そのあらかじめ定められたブロックサイズを、予期することができる。
【0029】
一方、いくつかの代替例が可能である。たとえば、ブロックは相互にオーバーラップしてもよい。しかし、その重なりは、各ブロックがいずれの隣接ブロックにも重ならない部分を有するように、または、ブロックの各標本が、所定の方向に沿って現在のブロックに並置して配される隣接ブロックの中で、最大でも1ブロックにしか重ならないように、制限される。後者は、左右の隣接ブロックが、現在のブロックを完全に覆うように重なることができるが、隣接ブロック自体は互いに重ならないことを意味する。同じことが、縦方向および対角方向での隣接についても当てはまる。
【0030】
さらなる代替例として、標本アレイ20のブロック40への細分化をエンーダ10により標本アレイ20のコンテンツに適用し、細分化で使用された細分化情報をビットストリーム30経由でデコーダ側に転送することもできる。
【0031】
図2Aから2Cは、標本アレイ20のブロック40への細分化についての異なる例を示す。
図2Aは、異なるサイズのブロック40への標本アレイ20の四分木ベースの細分化を示し、ここでは、サイズが大きくなる順に40a、40b、40cおよび40dによって、代表的なブロックを示している。
図2Aの細分化によると、標本アレイ20は、最初に、ツリーブロック40dの規則的な二次元配置に分割される。これらのツリーブロック40dは、それに関連付けられて、あるツリーブロック40dが、四分木構造に従ってさらに細分化されるか否かに関する個別の細分化情報を有する。ブロック40dの左側のツリーブロックは、例示的に、四分木構造に従って、より小さいブロックに細分化されている。エンコーダ10は、
図2Aにおいて実線および破線で示したブロックの各々について、1つの二次元変換を実行することができる。言い換えると、エンコーダ10は、ブロック細分化の単位でアレイ20を変換することができる。
【0032】
四分木ベースの細分化の代わりに、より一般的な複分木ベースの細分化を用いてもよく、階層レベルあたりの子ノードの数は、異なる階層レベル間で異なっていてもよい。
【0033】
図2Bは、細分化についての他の例を示す。
図2Bによると、標本アレイ20は、最初に、互いに重ならずに隣接する規則的な二次元配置のマクロブロック40bに分割される。ここで、各マイクロブロック40bには細分化情報が関連付けられ、この細分化情報により、マイクロブロックは、細分化されないか、あるいは、細分化される場合には、異なるマイクロブロックに対して異なる細分化粒度(sub-division granularities)が達成されるように、規則的な二次元配に同じサイズのサブブロックに細分化される。この結果は、標本アレイ20の異なるサイズのブロック40への細分化となり、異なるサイズの代表例が、40a、40bおよび40a’で示されている。
図2Aに示されているように、エンコーダ10は、
図2Bに実線および破線で示すブロックの各々に二次元変換を実行する。
図2Cについては後述する。
【0034】
図3は、エンコーダ10によって生成されたデータストリーム30を復号して標本アレイ20の再構成バージョン60を再構成することができるデコーダ50を示す。デコーダ50は、データストリーム30からブロック40の各々についての変換係数ブロックを抽出し、変換係数ブロックの各々に逆変換を実行することによって、再構成バージョン60を再構成する。
【0035】
エンコーダ10およびデコーダ50は、変換係数ブロックについての情報を挿入し、およびこの情報をデータストリームから抽出するために、エントロピー符号化/復号をそれぞれ実行するように構成される。これに関する詳細は後述する。なお、データストリーム30は、必ずしも標本アレイ20の全てのブロック40に対して、変換係数ブロックの情報を含んでいなくてもよい。逆に、ブロック40の部分集合が、他の手法でビットストリーム30に符号化されてもよい。たとえば、エンコーダ10は、ブロック40うちのあるブロックに対して変換係数ブロックを挿入することをやめるように判断し、その代わりに、代替の符号化パラメータをビットストリーム30内に挿入して、デコーダ50がそれを予測できるようにするか、さもなければ、再構成バージョン60内のそれぞれブロックを満たすようにしてもよい。たとえば、エンコーダ10は、デコーダ側でデコーダによるテクスチャ合成を行って標本アレイ20が満たされるように、標本アレイ20内にブロックを配置するためのテクスチャ解析を行い、これをビットストリーム内で適宜示すようにしてもよい。
【0036】
以降の図面において説明するように、変換係数ブロックは、必ずしも、標本アレイ20のそれぞれのブロック40の元の情報標本のスペクトル領域表現を表すものでなくてもよい。逆に、そのような変換係数ブロックは、それぞれのブロック40の予測残余のスペクトル領域表現を表すものであってもよい。
図4はそのようなエンコーダの実施の形態を示す。
図4のエンコーダは、変換段100、エントロピー符号器102、逆変換段104、予測器106、減算器108および加算器110を備える。減算器108、変換段100およびエントロピー符号器102は、この順序で
図4のエンコーダの入力112と出力114の間に直列に接続される。逆変換段104、加算器110および予測器106は、この順序で変換段100の出力と減算器108の反転入力の間に接続され、予測器106の出力はまた、加算器110の他の入力に接続される。
【0037】
図4のコーダは、予測変換ベースのブロック符号器である。すなわち、入力112に入る標本アレイ20のブロックが、同じ標本アレイ20の以前に符号化および再構成された部分から、あるいは、以前に符号化および再構成された他の標本アレイであって、現在の標本アレイ20に時間内に先行または後続する標本アレイから、予測される。予測は、予測器106によって実行される。減算器108は、そのような元のブロックから予測値を減算し、変換段100は、予測残余に対して二次元変換を実行する。変換段100内での二次元変換そのものまたは後続の処理が、変換係数ブロック内の変換係数の量子化を導く。量子化された変換係数ブロックは、たとえば、結果であるデータストリームが出力114で出力されるようにして、エントロピーエンコーダ102内でエントロピー符号化によって無損失で符号化される。逆変換段104は、量子化された残余を再構成し、続いて加算器100は、予測器106が上述した現在の符号化された予測ブロックを予測する基礎となる再構成された情報標本を得るために、再構成された残余を対応する予測と合成する。予測器106は、ブロックを予測するためにイントラ予測モードおよびインター予測モードのような異なる予測モードを使用でき、予測パラメータは、データストリームへの挿入のためにエントロピーエンコーダ102に転送される。
【0038】
すなわち、
図4の実施の形態によると、変換係数ブロックは、標本アレイの実際の情報標本ではなく、標本アレイの残余のスペクトル表示を表す。
【0039】
なお、
図4の実施の形態にはいくつかの代替例が存在し、そのうちのいくつかは明細書の導入部で記載されたものであり、その記載がここで
図4の記載に組み込まれる。たとえば、予測器106によって生成された予測は、エントロピー符号化されなくてもよい。逆に、副情報が他の符号化スキームを介して復号側に転送されてもよい。
【0040】
図5は、
図4のエンコーダによって生成されたデータストリームを復号することができるデコーダを示す。
図5のデコーダは、エントロピーデコーダ150、逆変換段152、加算器154および予測器156を備える。エントロピーデコーダ150、逆変換段152および加算器154は、この順で
図5のデコーダの入力158と出力160の間に直列に接続される。エントロピーデコーダ150の他の出力が予測器156に接続され、次に予測器156は、加算器154の出力と他の入力との間に接続される。エントロピーデコーダ150は、入力158で
図5のデコーダに入るデータストリームから変換係数ブロックを抽出し、ここで、残余信号を取得するために、段152において変換係数ブロックに逆変換が適用される。残余信号は、出力160において標本アレイの再構成バージョンの再構成ブロックを取得するように、予測器156からの予測と加算器154において合成される。再構成バージョンに基づいて予測器156が予測を生成し、それにより、エンコーダ側の予測器106によって実行された予測を再構築する。エンコーダ側で使用されたのと同じ予測値を取得するために予測器156は予測パラメータを用いるが、この予測パラメータは、エントロピーデコーダ150が入力158のデータストリームから取得する。
【0041】
なお、上記の実施の形態において、残余の予測および変換が実行される空間的粒度は相互に等しくなくてもよい。これは
図2Cに示される。同図は、予測粒度の予測ブロックに対する細分化を実線で、残余粒度を破線で示している。図から分かるように、細分化は、相互に独立したエンコーダによって選択される。より厳密には、データストリームのシンタックスは、予測細分化から独立した残余細分化の定義を可能とする。代替的に、残余細分化が予測細分化の拡張であり、各残余ブロックが予測ブロックと等しいか、またはその適切なサブセットとなってもよい。これは、たとえば
図2Aおよび
図2Bに示される。ここでも、予測粒度は実線で示され、残余粒度は破線で示されている。これについて、
図2A-2Cでは、破線ブロック40aを包含する大きい実線ブロックが、たとえば、予測パラメータ設定が個々に実行される予測ブロックとなる一方で、対応付けられた基準符号を有する全てのブロックが、1つの二次元変換が実行される残余ブロックとなる。
【0042】
上述の実施の形態は、(残余または元の)標本のブロックが、エンコーダ側で変換係数ブロックに変換され、その変換係数ブロックが、デコーダ側で標本の再構成ブロックに逆変換される、という点で共通する。これは、
図6に示される。
図6は標本200のブロックを示す。
図6の場合、このブロック200は、例示的に、二次元でサイズが4×4の標本202である。標本202は、横方向xおよび縦方向yに沿って、規則的に配置されている。上述の二次元変換Tによって、ブロック200は、スペクトルドメインすなわち変換係数206のブロック204に変換される。ここで、変換ブロック204は、ブロック200と同じサイズである。すなわち、変換ブロック204は、横方向および縦方向の双方において、ブロック200が有する標本の数と同数の変換係数206を有する。しかし、変換Tはスペクトル変換であるので、変換ブロック204内の変換係数206の位置は、ブロック200のコンテンツの空間位置ではなく、スペクトル成分に対応する。特に、変換ブロック204の横軸は、それに沿って横方向のスペクトル周波数が単調増加する軸に対応し、縦軸は、それに沿って縦方向の空間周波数が単調増加する軸に対応し、横方向および縦方向双方での最も高い周波数に対応する変換係数206が最下段右側角に位置するように、DC成分変換係数はブロック204の角、ここでは例示的に最上段左角、に位置する。空間方向を無視すれば、所定の変換係数206が属する空間周波数は、概して最上段左角から最下段右側角に増加する。逆変換T
-1によって、変換ブロック204は、ブロック200の複製208を再取得するようにスペクトルドメインから空間ドメインに再転送される。変換中に量子化/損失がもたらされない場合には、再構成は完全なものとなる。
【0043】
既に上述したように、ブロック200のブロックサイズが大きくなると、結果であるスペクトル表示204のスペクトル解像度は増加することが、
図6からわかる。一方、量子化ノイズは、ブロック208全体にわたって拡がる傾向にあり、このため、ブロック200内の急激かつ非常に局所化したオブジェクトは、量子化ノイズに起因して、元のブロック200と対比して、再変換ブロックに偏差をもたらす傾向がある。一方、より大きなブロックを用いることの主な有利な効果は、小さなブロックに比べて大きなブロック内では、有意、すなわち、非ゼロ(量子化された)変換係数の数と非有意変換係数の数の比が低減され、それにより、より良い符号化効率が可能となることである。言い換えると、往々にして、有意変換係数、すなわち、ゼロに量子化されていない変換係数は、変換ブロック204にわたって疎らに分散される。これに起因して、以降にさらに詳細に記載される実施の形態によると、有意変換係数の位置は、有意マップによって、データストリーム内にシグナリングされる。これとは別に、変換係数が量子化される場合には、有意変換係数の値、すなわち変換係数レベルが、データストリーム内で送信される。
【0044】
したがって、本出願の実施の形態によると、データストリームからのそのような有意マップを復号するための、またはデータストリームからの対応する有意変換係数値に沿う有意マップを復号するための装置は、
図7に示すように実施され、上述のエントロピーデコーダ、すなわちデコーダ50およびエントロピーデコーダ150の各々は、
図7に示す装置を構成する。
【0045】
図7の装置は、マップ/係数エントロピーデコーダ250およびアソシエータ252を備える。マップ/係数エントロピーデコーダ250は入力254に接続され、この入力254に、有意マップおよび有意変換係数値を表すシンタックス要素が入力される。以下により詳しく記載するように、有意マップおよび有意変換係数値を記述するシンタックス要素がマップ/係数エントロピーデコーダ250に入力される順序に関して、異なる確率が存在する。有意マップシンタックス要素は対応するレベルに先行してよく、双方がインターリーブされてもよい。ただし、有意マップを表すシンタックス要素が有意変換係数の値(レベル)に先行し、マップ/係数エントロピーデコーダ250がまず有意マップを、そして有意変換係数の変換係数レベルを復号するものとする。
【0046】
マップ/係数エントロピーデコーダ250が有意マップおよび有意変換係数値を表すシンタックス要素をシーケンシャルに復号するのに伴い、アソシエータ252は、これらのシーケンシャルに復号されたシンタックス要素/値を、変換ブロック256内の位置に関連付けるように構成される。有意マップおよび有意変換係数のレベルを表すシーケンシャルに復号化されたシンタックス要素をアソシエータ252が変換ブロック256の各位置に関連付ける走査順は、変換ブロック256の各位置の間で、これらの要素をデータストリームに導入するために符号化側で使用される順序と同一の一次元の走査順に従う。また、以下により詳しく概説されるように、有意マップのシンタックス要素についての走査順は、有意変換値について用いられる順序と等しくてもよいし、そうでなくてもよい。
【0047】
マップ/係数エントロピーデコーダ250は、破線258によって示すように、現在復号されるべきシンタックス要素/レベルをエントロピー復号するための確率推定コンテキストを設定するために、現在復号されるべきシンタックス要素/レベルまでアソシエータ252によって生成された、その時点での利用可能な変換ブロック256についての情報を利用することができる。たとえば、アソシエータ252は、レベル自体、またはそれぞれの位置で有意変換係数が配されているか否か、もしくは変換ブロック256のそれぞれの位置について何も知得していないかについての情報といったようなシーケンシャルに関連付けられたシンタックス要素からそれまでに収集された情報を記憶(ログ)し、マップ/係数エントロピーデコーダ250がこのメモリにアクセスするようにしてもよい。メモリは
図7に示されていないが、アソシエータ252およびエントロピーデコーダ250によってそれまで取得された事前情報を記憶するためにメモリまたはログバッファが存在することから、参照符号256が、このメモリをも示しているとすることができる。したがって、
図7は、×印により、有意マップを表現する以前に復号されたシンタックス要素から取得される有意変換係数を示し、「1」は、それぞれの位置での有意変換係数の有意変換係数レベルが既に復号されており、それが1であることを示す。有意マップシンタックス要素がデータストリーム内で有意値に先行する場合には、それぞれの値を復号して「1」を記録する前に、メモリ256の「1」の位置には×印(有意変換係数)が記録されている(この状況は、有意マップ全体を表現していることになる)。
【0048】
以降の説明は、変換係数ブロックまたは有意マップを符号化するための具体的な実施の形態に集中するが、それらの実施の形態は、上述の実施の形態に容易に移行できる。これらの実施の形態において、バイナリシンタックス要素coded_block_flagが各変換ブロックに送信され、その変換ブロックが有意変換係数レベル(すなわち、非ゼロである変換係数)を含むか否かを示す。このシンタックス要素が、有意変換係数レベルが存在することを示す場合には、有意マップが符号化される。すなわち、有意変換係数レベルが存在する場合だけ、符号化が行われる。有意マップは、上記のように、どの変換係数レベルが非ゼロ値を有するかを特定する。有意マップ符号化は、バイナリシンタックス要素significant_coeff_flagの符号化を含み、各バイナリシンタックス要素significant_coeff_flagは、それぞれ関連付けられた係数位置について、対応する変換系係数レベルがゼロに等しくないかどうかを特定する。符号化は、ある走査順で実行され、この走査順は、有意マップ符号化中に、それまで有意と識別された有意係数の位置に依存して変化することができる。これについては以下でさらに詳しく説明する。さらに、有意マップ符号化は、バイナリシンタックス要素last_significant_coeff_flagの符号化を含む。このバイナリシンタッンクス要素は、significant_coeff_flagのシーケンスとともにその位置に分散されており、significant_coeff_flagは、有意係数をシグナリングする。significant_coeff_flagビンが1に等しい場合、すなわち、非ゼロ変換係数レベルがこの走査位置に存在する場合には、さらなるバイナリシンタックス要素last_significant_coeff_flagが符号化される。このビンは、現在の有意変換係数レベルが、ブロック内の最後の有意変換係数レベルであるか、またはさらなる有意変換係数レベルが走査順に従うかを示す。last_significant_coeff_flagが、さらなる有意変換係数が続かないことを示す場合、そのブロックについての有意マップを特定するためには、さらなるシンタックス要素は符号化されない。代替的に、significant_coeff_flagのシーケンスの符号化の前に、有意係数位置の数がデータストリーム内にシグナリングされてもよい。次のステップでは、有意変換係数レベルの値が符号化される。上述のように、代替的に、レベルの送信が、有意マップの送信とインターリーブされてもよい。有意変換係数レベルの値は、以下に例示されるさらなる走査順で符号化される。以下の3個のシンタックス要素が使用される。バイナリシンタックス要素coeff_abs_greater_oneは、有意変換係数レベルの絶対値が1より大きいかを示す。バイナリシンタックス要素coeff_abs_greater_oneが、絶対値が1より大きいことを示す場合、変換係数レベル引く1の絶対値を特定するさらなるシンタックス要素coeff_abs_level_minus_oneが送られる。最後に、変換係数値の符号を特定するバイナリシンタックス要素coeff_sign_flagが、各有意変換係数レベルに対して符号化される。
【0049】
以下に記載する実施の形態は、ビットレートをさらに低減し、これにより符号化効率を高めることを可能とする。そのようにするために、これらの実施の形態は、変換係数に関係するシンタックス要素に対するコンテキストモデリングについての特定のアプローチを用いる。特に、シンタックス要素significant_coeff_flag、last_significant_coeff_flag、coeff_abs_greater_oneおよびcoeff_abs_level_minus_oneに対する新たなコンテキストモデル選択が使用される。またさらに、有意マップ(非ゼロ変換係数レベルの位置を特定する)の符号化/復号化中の走査の適応的な切り替えを説明する。言及されるべきシンタックス要素の意味に関しては、本出願の上述の導入部を参照する。
【0050】
有意マップを特定するsignificant_coeff_flagおよびlast_significant_coeff_flagシンタックス要素の符号化が、適応的走査および既に符号化された走査位置の限定された近隣に基づく新たなコンテキストモデリングによって改善される。これらの新たな概念によって、特に大きなブロックサイズに対して、有意マップのより効率的な符号化(すなわち、対応するビットレートの低減)がもたらされる。
【0051】
以下に概説される実施の形態の1つの側面は、走査順(すなわち、変換係数値のブロックの、変換係数値の順序集合(ベクトル)へのマッピング)が、有意マップについて既に符号化/復号化されたシンタックス要素の値に基づいて、有意マップの符号化/復号化中に適合させられることである。
【0052】
望ましい実施の形態では、走査順は2以上の所定の走査パターン間で適応的に切り替えられる。望ましい実施の形態では、切り替えはある所定の走査位置でのみ行われる。本発明のさらに望ましい実施の形態では、走査順は所定の2つの所定の走査パターン間で適用的に切り替えられる。望ましい実施の形態では、2つの所定の走査パターン間での切り替えは、ある所定の走査位置でのみ行われる。
【0053】
走査パターンの切り替えの利点はビットレートの低減であり、これは、符号化されたシンタックス要素の数が少なくなる結果である。直観的な例として、
図6を参照すると、大きな変換ブロックに対して特に、特有意変換係数値がブロック境界270,272のひとつに集中することがよくある。その理由は、残留ブロックが、主に水平または垂直構造を含むからでする。最もよく用いられるジグザグ走査274では、最後の有意係数に遭遇するジグザグ走査の最後の対角副走査が有意係数の集中していない側から始まる確率が、約0.5存在する。その場合、ゼロに等しい変換係数レベルに対する多数のシンタックス要素が、最後の非ゼロ変換係数値に達する前に符号化されなければならない。これは、対角副走査が常に有意変換係数レベルが集中する側で開始されるなら、回避できる。
【0054】
本発明の望ましい実施の形態について、以下にさらに詳しく説明する。
【0055】
上述したように、大きなブロックサイズに対しても、コンテキストモデルの早い適応を可能とし、かつ高い符号化効率をもたらすために、コンテキストモデルの数を適度に小さく維持することが好ましい。したがって、特定のコンテキストが2以上の走査位置について使用されるべきである。しかし、有意変換係数レベルは、通常は変換ブロックのあるエリアに集中するので(この集中は、通常は、たとえば残余のブロックに存在する或る支配的な構造の結果である)、H.264における8×8ブロックに対して行われるような同じコンテキストを多数の連続走査位置に割り当てる概念は、通常は適切ではない。コンテキスト選択を設計するために、有意変換係数レベルは変換ブロックの所定エリアに集中することが多いという上記の考察を用いることができる。以降において、この考察が利用され得る概念を説明する。
【0056】
望ましいひとつの実施の形態では、大きい変換ブロック(たとえば、8×8よりも大きいもの)が多数の長方形のサブブロックに(たとえば、16個のサブブロックに)区分けされ、これらサブブロックの各々が、significant_coeff_flagおよびlast_significant_coeff_flagを符号化するために、個別のコンテキストモデルに関連付けられる(ここでは、significant_coeff_flagとlast_significant_coeff_flagに、異なるコンテキストモデルが使用される)。サブブロックへの区分けは、significant_coeff_flagとlast_significant_coeff_flagに対して異なっていてもよい。特定のサブブロックに位置する全ての走査位置に対して、同じコンテキストモデルが使用されてもよい。
【0057】
さらなる望ましい実施の形態では、大きい変換ブロック(たとえば、8×8よりも大きいもの)が、多数の長方形および/または非長方形のサブ領域に区分けされ、これらサブ領域の各々が、significant_coeff_flagおよび/またはlast_significant_coeff_flagを符号化するために、個別のコンテキストモデルに関連付けられる。サブ領域への区分けは、significant_coeff_flagとlast_significant_coeff_flagに対して異なっていてもよい。特定のサブ領域に位置する全ての走査位置に対して、同じコンテキストモデルが使用される。
【0058】
さらなる望ましい実施の形態では、significant_coeff_flagおよび/またはlast_significant_coeff_flagを符号化するためのコンテキストモデルが、現在の走査位置の所定の空間的近隣の、既に符号化されたシンボルに基づいて選択される。所定の近隣は、異なる走査位置に対しては異なっていてもよい。望ましい実施の形態では、コンテキストモデルは、現在の走査位置の所定の空間的近隣における有意変換係数レベルの数に基づいて選択され、ここでは、既に符号化された有意表示のみが計数される。
【0059】
本発明の望ましい実施の形態について、さらなる詳細を以下に説明する。
【0060】
上述したように、大きいブロックサイズに対して、従来のコンテキストモデリングは、coeff_abs_greater_oneおよびcoeff_abs_level_minus_oneのシンタックス要素に対して、単一のコンテキストモデルで(通常は異なる確率を持つ)、多数のビンを符号化する。大きいブロックサイズについてのこの欠点を回避するために、実施の形態によると、大きいブロックが、小さい特定のサイズの正方形または長方形のサブブロックに分割され、各サブブロックに対して個別のコンテキストモデリングが適用される。さらに、複数の組のコンテキストモデルが使用されてもよく、ここでは、これらのコンテキストモデルの集合の1つが、以前に符号化されたサブブロックの統計の解析に基づいて、各サブブロックに対して選択される。本発明の望ましい実施の形態において、同じブロックのうち以前に符号化されたサブブロックにおける2よりも大きい変換係数(すなわち、coeff_abs_level_minus_1>1)の数が、現在のサブブロックに対するコンテキストモデルの集合を導き出すために用いられる。coeff_abs_greater_oneおよびcoeff_abs_level_minus_oneのシンタックス要素のコンテキストモデリングのこれらの拡張によって、特に大きいブロックサイズに対して、より効率的な両シンタックス要素の符号化がもたらされる。望ましい実施の形態では、サブブロックのブロックサイズは2×2である。他の望ましい実施の形態では、サブブロックのブロックサイズは4×4である。
【0061】
最初のステップにおいて、所定のサイズよりも大きいブロックが、特定のサイズの小さいサブブロックに分割される。絶対変換係数レベルの符号化処理は、正方形または長方形のブロックであるサブブロックを、走査を用いて、サブブロックの順序集合(ベクトル)にマッピングする。ここで、異なるブロックに対して異なる走査を使用することができる。望ましい実施の形態では、サブブロックはジグザグ走査を用いて処理され、サブブロック内の変換係数レベルは逆ジグザグ走査、すなわち垂直および水平方向で最も高い周波数に属する変換係数から両方の方向において最も低い周波数に関係する係数への走査読み込みで処理される。本発明の他の望ましい実施の形態では、サブブロックの符号化のため、およびサブブロック内の変換係数レベルの符号化のために、逆ジグザグ走査が用いられる。本発明の他の望ましい実施の形態では、有意マップを符号化するために使用されたのと同じ適応的走査(上記参照)が、変換係数レベルのブロック全体を処理するために使用される。
【0062】
大きい変換ブロックのサブブロックへの分割は、大きい変換ブロックのビンのほとんどに対して、たった1つのコンテキストモデルしか用いないことの問題を回避する。サブブロック内では、(H.264で規定される)最新のコンテキストモデリングまたは固定のコンテキストが、サブブロックの実際のサイズに応じて使用される。さらに、そのようなサブブロックについての統計(確率モデリングでいうところの)は、同じサイズの変換ブロックの統計と異なる。この特性は、コンテキストモデルの集合を拡張することで、coeff_abs_greater_oneおよびcoeff_abs_level_minus_oneのシンタックス要素に利用することができる。複数集合のコンテキストモデルを準備し、各サブブロックに対して、これらのコンテキストモデルの集合の1つが、現在の変換ブロックまたは以前に符号化された変換ブロックにおける以前に符号化されたサブブロックの統計に基づいて選択されてもよい。本発明の望ましい実施の形態では、コンテキストモデルの選択された集合は、同じブロックにおいて以前に符号化されたサブブロックの統計に基づいて引き出される。本発明の他の望ましい実施の形態では、コンテキストモデルの選択された集合は、以前に符号化されたブロックの同じサブブロックの統計に基づいて引き出される。望ましい実施の形態では、コンテキストモデルの集合の数は4に等しくなるように設定され、他の望ましい実施の形態では、コンテキストモデルの集合の数は16に等しくなるように設定される。望ましい実施の形態では、コンテキストモデルの集合を求めるために使用される統計は、以前に符号化されたサブブロックにおいて2よりも大きい絶対変換係数レベルの数である。他の望ましい実施の形態では、コンテキストモデルの集合を求めるために使用される統計は、2より大きい絶対値の、有意係数の数と変換係数レベルの数の差分である。
【0063】
有意マップの符号化は、以下に概説されるように、すなわち走査順の適応的切り替えによって、実行される。
【0064】
望ましい実施の形態では、有意マップを符号化するための走査順は、2つの所定の走査パターン間の切り替えによって適応される。走査パターン間の切り替えは、ある所定の走査位置において行われるだけである。走査パターンが切り替えられるか否かの判断は、既に符号化/復号化された有意マップシンタックス要素の値に依存する。望ましい実施の形態では、所定の走査パターンの双方が、ジグザグ走査の走査パターンと同様の対角副走査を伴う走査パターンとなる。走査パターンを
図8に示す。走査パターン300および302の双方が、最下段左から最上段右へ、またはその逆の対角線についての多数の対角副走査からなる。対角副走査(図示せず)における走査は、所定の走査パターンの双方に対して、最上段左から最下段右へ行われる。しかし、対角副走査内の走査は異なる(図に示すとおり)。第1の走査パターン300については、対角副走査は最下段左から最上段右へ走査され(
図8の左図)、第2の走査パターン302については、対角副走査は最上段右から最下段左へ走査される(
図8の右図)。ひとつの実施の形態では、有意マップの符号化は、第2の走査パターンで始まる。シンタックス要素を符号化/復号する間、有意変換係数値の数は、2つのカウンタc
1およびc
2によって計数される。第1のカウンタc
1は、変換ブロックの最下段左部分に位置する有意変換係数の数を計数する。すなわち、この第1のカウンタc
1は、変換ブロック内の水平座標xが垂直座標yよりも小さくなる有意変換係数レベルが符号化/復号されるときに、1だけ増分される。第2のカウンタc
2は、変換ブロックの最上段右部分に位置する有意変換係数の数を計数する。すなわち、この第2のカウンタc
2は、変換ブロック内の水平座標xが垂直座標yよりも大きくなる有意変換係数レベルが符号化/復号化されるときに、1だけ増分される。カウンタの適合は
図7のアソシエータ252によって行うことができ、以下の式によって説明できる。ここで、tは走査位置インデックスを表し、双方のカウンタはゼロで初期化される。
【数3】
【数4】
【0065】
各対角副走査の終りにおいて、第1および第2の所定の走査パターン300,302のどちらが次の対角副走査に使用されるのかが、アソシエータ252によって決定される。この判断は、カウンタc
1およびc
2の値に基づいている。変換ブロックの最下段左部分に対する計数値が最下段左部分の計数値よりも大きい場合、最下段左から最上段右への対角副走査を行う走査パターンが使用され、それ以外の場合(変換ブロックの最下段左部分に対する計数値が最下段左部分の計数値以下の場合)、最上段右から最下段左への対角副走査を行う走査パターンが使用される。この判断は、以下の式によって表される。
【数5】
【0066】
上述した本発明の実施の形態は、他の走査パターンにも容易に適用できる。一例として、H.264でフィールドマクロブロックに使用される走査パターンが、副走査に分解される。さらに望ましい実施の形態において、与えられた任意の走査パターンが、副走査に分割れる。副走査の各々について、2つの走査パターンが、(基本走査方向として)最下段左から最上段右へのもの、および最上段右から最下段左へのもので定義される。さらに、副走査内の(変換ブロックの最下段左境界に近い)第1の部分および(変換ブロックの最上段右境界に近い)第2の部分における有意係数の数を計数する2つのカウンタが導入される。最後に、各副走査の終りに(カウンタの値に基づいて)、次の副走査が最下段左から最上段右へ走査されるのか、最上段右から最下段左へ走査されるのかが判断される。
【0067】
次に、どのようにしてエントロピーデコーダ250がコンテキストをモデリングするのかについての実施の形態を説明する。
【0068】
ひとつの望ましい実施の形態では、significant_coeff_flagについてのコンテキストモデリングが、以下のように行われる。4×4のブロックに対して、コンテキストモデリングは、H.264に規定されているように行われる。8×8のブロックに対しては、変換ブロックは16個の2×2の標本のサブブロックに分離され、これらサブブロックの各々が、個別のコンテキストに関連付けられる。なお、この概念は、上述のように、より大きなブロックサイズ、異なるサブブロック数、および非長方形のサブ領域にも拡張できる。
【0069】
さらに望ましい実施の形態では、大きい変換ブロックについての(たとえば、8×8よりも大きいブロックについての)コンテキストモデル選択は、(変換ブロック内の)所定の近隣における既に符号化された有意変換係数の数に基づく。本発明の望ましい実施の形態に対応する近隣の定義の一例が
図9に示される。×を○で囲ったものは、評価のために常に考慮に入れられる利用可能な近隣であり、×と△のものは、現在の走査位置および現在の走査方向に応じて評価される近隣であり):
・現在の走査位置が2×2の左角304内にある場合、個別のコンテキストモデルが各走査位置に使用され(
図9、左図)、
・現在の走査位置が2×2の左角内になく、かつ変換ブロックの第1行または第1列に位置しない場合には、
図9の右側に示す近隣が、その周りに何もない現在の走査位置「x」の近隣において有意変換係数の数を評価するために使用され、
・その周りに何もない現在の走査位置「x」が変換ブロックの第1行にあたる場合には、
図10の右図で特定される近隣が使用され、
・現在の走査位置「x」がブロックの第1列にあたる場合には、
図10の左図で特定される近隣が使用される。
【0070】
言い換えると、デコーダ250は、以前に抽出および関連付けられた有意マップシンタックス要素に従って有意変換係数が配置される多数の位置、およびそれぞれの現在の有意
マップシンタックス要素が関連付けられる位置(
図9の右側および
図10の両側の「x」、および
図9の左側の印をつけられた位置のいずれか)の近隣にあるものに制限される位置に応じて、有意マップシンタックス要素の各々について、個々に選択されるコンテキストの使用によってコンテキスト適応的にエントロピー復号化を行うことによって、有意マップシンタックス要素をシーケンシャルに抽出するように構成される。図示するように、現在のシンタックス要素のそれぞれが関連付けられる位置の近隣は、垂直方向における位置および/または水平方向における位置において最大で、単に、直接的に隣接する位置、またはそれぞれの有意マップシンタックス要素が関連付けられる位置から分離された位置、のいずれかの位置からなる。代替的に、それぞれの現在のシンタックス要素に直接隣接する位置が単に考慮される。結果として、変換係数ブロックのサイズは8×8以上の位置となる。
【0071】
望ましい実施の形態では、特定のsignificant_coeff_flagを符号化するために使用されるコンテキストモデルは、定義される近隣において既に符号化された有意変換係数レベルの数に応じて選択される。ここで、利用可能なコンテキストモデルの数は、定義された近隣における有意変換係数レベルの数の可能な値よりも小さくなることができる。エンコーダおよびデコーダは、定義された近隣における有意変換係数レベルの数をコンテキストモデルのインデックスにマッピングするためのテーブル(または異なるマッピングメカニズム)を含むことができる。
【0072】
さらなる望ましい実施の形態では、選択されたコンテキストモデルのインデックスが、定義された近隣における有意変換係数レベルの数に、または使用された近隣のタイプまたは走査位置または走査位置の量子化された値などの1以上の追加のパラメータに依存する。
【0073】
last_significant_coeff_flagの符号化について、significant_coeff_flagに対するものと同様のコンテキストモデリングが使用できる。一方、last_significant_coeff_flagに対する確率測定は、主に、現在の走査位置の変換ブロックの最上段左角に対する距離に依存する。望ましい実施の形態では、last_significant_coeff_flagの符号化に対するコンテキストモデルは、現在の走査位置がある走査対角に基づいて選択される(すなわち、
図8の上記実施の形態の場合、xおよびyをそれぞれ変換ブロック内の走査位置の横位置および縦位置として、x+yに基づいて、または現在の副走査と上左DCとの間に(副走査インデックス引く1のような)幾つの副走査が位置するかに基づいて選択される)。本発明の望ましい実施の形態では、異なる値のx°+°yに対して同じコンテキストが用いられる。距離測定、すなわち、x+yまたは副走査インデックスは、所定のやり方で(たとえば、x°+°yまたはサブサンインデックスを量子化することによって)コンテキストモデルのセット上にマッピングされ、ここで、距離測定に対する可能な値の数はlast_significant_coeff_flagを符号化するための利用可能なコンテキストモデルの数よりも大きい。
【0074】
望ましい実施の形態では、異なるサイズの変換ブロックに対して異なるコンテキストモデリング手法が用いられる。
【0075】
下に、絶対変換係数レベルの符号化を説明する。
【0076】
ひとつの望ましい実施の形態では、サブブロックのサイズが2×2であり、サブブロック内のコンテキストモデリングは無効化される。すなわち、2×2のサブブロック内の全ての変換係数に対して、1つの単一のコンテキストモデルが使用される。2×2よりも大きいブロックのみが、細分化処理の影響を受ける。本発明のさらなる望ましい実施の形態では、サブブロックのサイズは4×4であり、サブブロック内のコンテキストモデリングはH.264におけるように行われ、4×4よりも大きいブロックのみが細分化処理の影響を受ける。
【0077】
走査順序について、望ましい実施の形態では、ジグザグ走査320は、変換ブロック256のサブブロック322の走査、すなわち、実質的に増加する周波数の方向に沿った走査に用いられ、サブブロック内の変換係数は、逆ジグザグ走査326で走査される(
図11)。本発明のさらなる望ましい実施の形態では、サブブロック322およびサブブロック322内の変換係数レベルの双方が、(矢印320が反転される
図11に示すように)逆ジグザグ走査を用いて走査される。他の望ましい実施の形態では、有意マップを符号化するのと同じ適応的走査が変換係数レベルを処理するのに用いられ、ここで、適応判断が同じであるので、有意マップの符号化および変換係数レベル値の符号化の双方について、全く同一の走査が用いられる。なお、走査自体は、通常、コンテキストモデル集合の選択された統計もしくは数に、またはサブブロック内のコンテキストモデリングを有効化または無効化するための判断に依存しない。
【0078】
次に、係数レベルに対するコンテキストモデリングについての実施の形態を説明する。
【0079】
望ましい実施の形態では、サブブロックに対するコンテキストモデリングは、上述したH.264における4×4ブロックに対するコンテキストモデリングと同様である。coeff_abs_greater_oneシンタックス要素の符号化に使用されるコンテキストモデルの数、およびcoeff_abs_level_minus_oneシンタックス要素の第1のビンは、たとえば、2つのシンタックス要素に対して異なる集合のコンテキストモデルを用いて、5に等しくなる。さらに望ましい実施の形態では、サブブロック内のコンテキストモデリングは無効化され、1つの所定のコンテキストモデルのみが各サブブロック内で用いられる。これらの実施の形態について、サブブロック322に対するコンテキストモデルセットは、コンテキストモデル集合の所定の数の中から選択される。サブブロック322に対するコンテキストモデルの選択は、既に符号化された1以上のサブブロックのある統計に基づく。望ましい実施の形態では、サブブロックに対してコンテキストモデル集合を選択するために使用される統計は、同じブロック256において既に符号化された1以上のサブブロックから採られる。選択されたコンテキストモデルセットを求めるのに、どのように統計が用いられるのかを、以下に説明する。さらに望ましい実施の形態では、統計は、
図2Bにおいてブロック40aおよび40a’のような同じブロックサイズを持つ、以前に符号化されたブロックにおける同じサブブロックから採られる。本発明の他の望ましい実施の形態では、統計は、サブブロックに対する選択走査に依存する、同じブロックにおける定義された近隣サブブロックから採られる。また、統計の元が走査順序から独立しているべきであること、およびコンテキストモデルセットを求めるのにどのようにして統計が作成されるのかに注目することが重要である。
【0080】
望ましい実施の形態では、コンテキストモデル集合の数は4に等しく、一方、他の望ましい実施の形態では、コンテキストモデル集合の数は16に等しい。共通して、コンテキストモデル集合の数は固定されず、選択された統計に従って適応されるべきである。望ましい実施の形態では、サブブロック322に対するコンテキストモデル集合は、既に符号化された1以上のサブブロックにおいて2より大きい絶対変換係数レベルの数に基づいて求められる。コンテキストモデル集合に対するインデックスは、基準サブブロックまたは複数の基準サブブロックにおける2より大きい絶対変換係数レベルの数を、所定のコンテキストモデルインデックスの集合にマッピングすることによって決定される。このマッピングは、2より大きい絶対変換係数レベルの数を量子化することによって、または所定のテーブルによって実施できる。さらに望ましい実施の形態では、サブブロックに対するコンテキストモデル集合は、有意変換係数レベルの数と、既に符号化された1以上のサブブロックにおける2より大きい絶対変換係数レベルの数との差に基づいて求められる。コンテキストモデル集合に対するインデックスは、この差を所定のコンテキストモデルインデックスの集合にマッピングすることによって決定される。このマッピングは、有意変換係数レベルの数と、2より大きい絶対変換係数レベルの数との差を量子化することによって、または所定のテーブルによって実施できる。
【0081】
他の望ましい実施の形態では、絶対変換係数レベルおよび有意マップを処理するために同じ適応的走査が使用される場合、現在のサブブロックに対するコンテキストモデル集合を求めるのに同じブロックにおけるサブブロックの部分的な統計が使用される。または、利用可能であれば、以前に符号化された変換ブロックにおける以前に符号化されたサブブロックの統計が使用されてもよい。これは、たとえば、コンテキストモデルを求めるためにサブブロックにおける2より大きい絶対変換係数レベルの絶対数を用いる代わりに、2より大きい既に符号化された絶対変換係数レベルの数にサブブロックにおける変換係数の数とサブブロックにおける既に符号化された変換係数の数の比を乗じたものが使用されること、または、有意変換係数レベルの数と、サブブロックにおける2よりも大きい絶対変換係数レベルの数との差を用いる代わりに、既に符号化された有意変換係数レベルの数と、2よりも大きい既に符号化された絶対変換係数レベルの数との差に、サブブロックにおける変換係数の数とサブブロックにおける既に符号化された変換係数の数の比を乗じたものが使用されることを意味する。
【0082】
サブブロック内のコンテキストモデリングについて、基本的には、H.264に対する最新のコンテキストモデリングの反転が採用される。これは、絶対変換係数レベルおよび有意マップを処理するのに同じ適応的走査が用いられる場合、H.264とは逆方向の走査順の代わりに、基本的に順方向走査順で変換係数レベルが符号化されることを意味する。したがって、コンテキストモデルの切り替えは、それに従って適応されなければならない。ひとつの実施の形態によると、変換係数レベルの符号化は、coeff_abs_greater_oneおよびcoeff_abs_level_minus_oneシンタックス要素に対する第1のコンテキストモデルで始まり、ゼロに等しい2つのcoeff_abs_greater_oneシンタックス要素が、最後のコンテキストモデル切り替え以降に符号化されたときの集合における次のコンテキストモデルに切り替えられる。言い換えると、コンテキスト選択は、走査順でゼロより大きい既に符号化されたcoeff_abs_greater_oneシンタックス要素の数に依存する。coeff_abs_greater_oneに対するコンテキストモデルおよびcoeff_abs_level_minus_oneに対するコンテキストモデルの数は、H.264のものと同じであればよい。
【0083】
したがって、上述の実施の形態は、デジタル信号処理の分野、特に、画像および映像デコーダおよびエンコーダに適用できる。特に、上述の実施の形態によって、確率モデリングを採用するエントロピーコーダで符号化される係数を変換することに関係するシンタックス要素に対する改善したコンテキストモデリングを用いて、ブロックベースの画像および映像コーデックにおける変換係数に関係するシンタックス要素の符号化を可能とする。最新技術との比較において、特に大きい変換ブロックに対して、向上した符号化効率が達成される。
【0084】
いくつかの側面を装置の文脈において説明したが、これらの側面は、対応する方法の説明も表していることは明らかであり、ここで、ブロックまたは装置は方法ステップまたは方法ステップの特徴に対応する。同様に、方法ステップの文脈で記載された側面は、対応するブロックもしくは項目の説明または対応する装置の特徴も表している。
【0085】
変換ブロックまたは有意マップをそれぞれ表すための独創的な符号化信号は、デジタル記憶媒体に記憶されることができ、またはインターネットのような無線伝送媒体または有線伝送媒体などの伝送媒体で送信されることができる。
【0086】
ある実施要件によって、本発明の実施の形態は、ハードウェアまたはソフトウェアで実施できる。実施は、電子的に読取り可能な制御信号がそこに記憶される、たとえばフレキシブルディスク、DVD、ブルーレイ、CD、ROM、PROM、EPROM、EEPROM(登録商標)またはフラッシュメモリなどであって、それぞれの方法が実行されるようにプログラム可能なコンピュータシステムと協働する(または協働する能力がある)デジタル記憶媒体を用いて実行することができる。したがって、これらのデジタル記憶媒体は、コンピュータ読み取り可能である。
【0087】
本発明によるいくつかの実施の形態は、電子的に読取り可能な制御信号を有するデータキャリアを備え、それらは、ここに記載された方法の1つが実行されるようにプログラム可能なコンピュータシステムと協働することができる。
【0088】
一般に、本発明の実施の形態は、プログラムコードを有するコンピュータプログラム製品として実施でき、プログラムコードは、コンピュータプログラム製品がコンピュータ上で稼働するときに方法の1つを実行するために動作可能である。プログラムコードは、たとえば、機械可読キャリアに記憶される。
【0089】
他の実施の形態は、ここに記載され、機械可読キャリアに記憶された方法の1つを実行するためのコンピュータプログラムからなる。
【0090】
言い換えると、本発明の方法の実施の形態は、コンピュータプログラムがコンピュータ上で稼働するときに、ここに記載された方法の1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0091】
本発明の方法のさらなる実施の形態は、ここに記載された方法の1つを実行するためのコンピュータプログラムが記録されるデータキャリア(またはデジタル記憶媒体若しくはコンピュータ可読媒体)である。
【0092】
本発明の方法のさらなる実施の形態は、ここに記載された方法の1つを実行するためのコンピュータプログラムを表すデータストリームまたは信号のシーケンスである。データストリームまたは信号のシーケンスは、たとえば、インターネットなどを介したデータ通信接続を介して転送されるように構成されていればよい。
【0093】
さらなる実施の形態は、たとえば、ここに記載された方法の1つを実行するように構成または適合されたコンピュータまたはプログラム可能なロジックデバイスなどの処理手段からなる。
【0094】
さらなる実施の形態は、ここに記載された方法の1つを実行するためのコンピュータプログラムがインストールされたコンピュータからなる。
【0095】
実施の形態によっては、プログラム可能なロジックデバイス(たとえば、フィールド・プログラマブル・ゲート・アレイ)が、ここに記載された方法の機能の一部または全部を実行するのに使用される。実施の形態によっては、フィールド・プログラマブル・ゲート・アレイが、ここに記載された方法の1つを実行するためにマイクロプロセッサと協働することができる。概して、方法は、好ましくはあらゆるハードウェア装置によって実行される。
【0096】
上記の実施の形態は本発明の原理についての説明的なものに過ぎない。ここに記載された構成および詳細の変形例およびバリエーションは当業者には明らかとなることが理解される。したがって、ここに示した実施の形態の記載および説明によって提示された特定の詳細によってではなく、このすぐ後に示す請求の範囲の記載によってのみ限定されることが意図される。