IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024133681
(43)【公開日】2024-10-02
(54)【発明の名称】従属量子化
(51)【国際特許分類】
   H04N 19/126 20140101AFI20240925BHJP
   H04N 19/136 20140101ALI20240925BHJP
   H04N 19/176 20140101ALI20240925BHJP
   H04N 19/182 20140101ALI20240925BHJP
   H04N 19/70 20140101ALI20240925BHJP
   H04N 19/91 20140101ALI20240925BHJP
【FI】
H04N19/126
H04N19/136
H04N19/176
H04N19/182
H04N19/70
H04N19/91
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024111081
(22)【出願日】2024-07-10
(62)【分割の表示】P 2023010517の分割
【原出願日】2019-03-28
(31)【優先権主張番号】18165210.8
(32)【優先日】2018-03-29
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】591037214
【氏名又は名称】フラウンホッファー-ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】シュヴァルツ ハイコ
(72)【発明者】
【氏名】ウィーガント トーマス
(72)【発明者】
【氏名】グエン ファン ホアン トゥン
(72)【発明者】
【氏名】マルペ デトレフ
(57)【要約】      (修正有)
【課題】利用可能な量子化レベルの所定の設定で、符号化効率を増加させることを達成する量子化方法を提供する。
【解決手段】最新のサンプルに対して、サンプルのシーケンスの前のサンプルに対するデータストリームの中に符号化されるインデックスに従った、複数の量子化レベルのセットから、量子化レベルのセットを選択すること、量子化レベルのセットの1つのレベル上へ最新のサンプルを量子化すること及び量子化インデックスをデータストリームの中の最新のサンプルに対する1つのレベルに符号化することによって、このシーケンスを連続して符号化する。サンプルのシーケンスの個々のサンプルのスカラー量子化が、サンプルのシーケンスの前のサンプルのためのデータストリームに符号化された量子化インデックスに従属する。多次元スペースの中の全体の量子化点のグリッドを“理解する”ことで、統計学的に、平均量子化エラーを減らす。
【選択図】図15
【特許請求の範囲】
【請求項1】
画像に対応するサンプルのシーケンスをデータストリームから順次復号する方法であって、
前記方法は、
サンプルに対応する量子化インデックスをエントロピー復号することと、
量子化インデックスに基づいて、2つの再構成レベルのセットのうちの1つの再構成レベルのセットを示すことと、
を含み、
前記2つの再構成レベルのセットは、
量子化ステップサイズの偶数倍である再構成レベルを含む第1の再構成レベルのセットであって、前記第1の再構成レベルのセットは前記量子化ステップサイズの奇数倍である再構成レベルを除外する、第1の再構成レベルのセットと、
前記量子化ステップサイズ及びゼロの奇数倍である再構成レベルを含む第2の再構成レベルのセットであって、前記第2の再構成レベルのセットは量子化ステップサイズの偶数倍である非ゼロの再構成レベルを除外し、前記示された再構成レベルのセットを用いて前記サンプルを逆量子化する、第2の再構成レベルのセットと、
を含む、方法。
【請求項2】
前記第1の再構成レベルのセット及び前記第2の再構成レベルのセットの前記再構成レベルは前記量子化ステップサイズの整数倍に対応し、
前記逆量子化することは、前記量子化ステップサイズに、前記示された再構成レベルのセットに対応する整数値を乗算することをさらに含む、請求項1に記載の方法。
【請求項3】
前記再構成レベルのセットの前記示すことは、1つ以上の前のサンプルについて復号された量子化インデックスのバイナリ関数の結果に基づく、請求項1に記載の方法。
【請求項4】
前記再構成レベルのセットの前記示すことは、1つ以上の前のサンプルについて復号された量子化インデックスのパリティに基づく、請求項1に記載の方法。
【請求項5】
前記示された再構成レベルのセット及び量子化インデックスのパリティに基づいて先行サンプルのためのサブセットインデックスを導出すること、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記再構成レベルのセットの前記示すことは、1つ以上の直前のサンプルについて導出されたサブセットインデックスに基づく、請求項1に記載の方法。
【請求項7】
前記再構成レベルのセットの前記示すことは、直前の2つのサンプルについて導出されたサブセットインデックスに基づく、請求項1に記載の方法。
【請求項8】
画像に対応するサンプルのシーケンスをデータストリームから順次復号する装置であって、
前記装置は、
プロセッサと、
前記プロセッサによって実行されたときに前記プロセッサに処理を実行させる命令を記憶するメモリと、
を含む、
前記処理は、
サンプルに対応する量子化インデックスをエントロピー復号することと、
量子化インデックスに基づいて、2つの再構成レベルのセットのうちの1つの再構成レベルのセットを示すことと、
を含み、
前記2つの再構成レベルのセットは、
量子化ステップサイズの偶数倍である再構成レベルを含む第1の再構成レベルのセットであって、前記第1の再構成レベルのセットは、前記量子化ステップサイズの奇数倍である再構成レベルを除外する、第1の再構成レベルのセットと、
前記量子化ステップサイズ及びゼロの奇数倍である再構成レベルを含む第2の再構成レベルのセットであって、前記第2の再構成レベルのセットは量子化ステップサイズの偶数倍である非ゼロの再構成レベルを除外し、前記示された再構成レベルのセットを用いて前記サンプルを逆量子化する、第2の再構成レベルのセットと、
を含む、装置。
【請求項9】
前記第1の再構成レベルのセット及び前記第2の再構成レベルのセットの前記再構成レベルは前記量子化ステップサイズの整数倍に対応し、
前記逆量子化することは、前記量子化ステップサイズに、前記示された再構成レベルのセットに対応する整数値を乗算することをさらに含む、請求項8に記載の装置。
【請求項10】
前記再構成レベルのセットの前記示すことは、1つ以上の前のサンプルについて復号された量子化インデックスのバイナリ関数の結果に基づく、請求項8に記載の装置。
【請求項11】
前記再構成レベルのセットの前記示すことは、1つ以上の前のサンプルについて復号された量子化インデックスのパリティに基づく、請求項8に記載の装置。
【請求項12】
前記処理は、
前記示された再構成レベルのセット及び量子化インデックスのパリティに基づいて先行サンプルのためのサブセットインデックスを導出すること、
をさらに含む、請求項8に記載の装置。
【請求項13】
前記再構成レベルのセットの前記示すことは、1つ以上の直前のサンプルについて導出されたサブセットインデックスに基づく、請求項8に記載の装置。
【請求項14】
前記再構成レベルのセットの前記示すことは、直前の2つのサンプルについて導出されたサブセットインデックスに基づく、請求項8に記載の装置。
【請求項15】
プロセッサによって実行されたときに前記プロセッサに処理を実行させる命令を記憶する非一時的記憶媒体であって、
前記処理は、
サンプルに対応する量子化インデックスをエントロピー復号することと、
量子化インデックスに基づいて、2つの再構成レベルのセットのうちの1つの再構成レベルのセットを示すことと、
を含み、
前記2つの再構成レベルのセットは、
量子化ステップサイズの偶数倍である再構成レベルを含む第1の再構成レベルのセットであって、前記第1の再構成レベルのセットは、前記量子化ステップサイズの奇数倍である再構成レベルを除外する、第1の再構成レベルのセットと、
前記量子化ステップサイズ及びゼロの奇数倍である再構成レベルを含む第2の再構成レベルのセットであって、前記第2の再構成レベルのセットは量子化ステップサイズの偶数倍である非ゼロの再構成レベルを除外し、前記示された再構成レベルのセットを用いて前記サンプルを逆量子化する、第2の再構成レベルのセットと、
を含む、非一時的記憶媒体。
【請求項16】
前記第1の再構成レベルのセット及び前記第2の再構成レベルのセットの前記再構成レベルは前記量子化ステップサイズの整数倍に対応し、
前記逆量子化することは、前記量子化ステップサイズに、前記示された再構成レベルのセットに対応する整数値を乗算することをさらに含む、請求項15に記載の非一時的記憶媒体。
【請求項17】
前記再構成レベルのセットの前記示すことは、1つ以上の前のサンプルについて復号された量子化インデックスのバイナリ関数の結果に基づく、請求項15に記載の非一時的記憶媒体。
【請求項18】
前記再構成レベルのセットの前記示すことは、1つ以上の前のサンプルについて復号された量子化インデックスのパリティに基づく、請求項15に記載の非一時的記憶媒体。
【請求項19】
前記示された再構成レベルのセット及び量子化インデックスのパリティに基づいて先行サンプルのためのサブセットインデックスを導出すること、
をさらに含む、請求項15に記載の非一時的記憶媒体。
【請求項20】
前記再構成レベルのセットの前記示すことは、1つ以上の直前のサンプルについて導出されたサブセットインデックスに基づく、請求項15に記載の非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオ符号化のようなメディア信号符号化、そして、特に、例えば、HEVCの中で行われる、例えば、予測残差の量子化のための、メディア信号のエンコード(符号化)で量子化を用いる非可逆コーデックに関する。
【背景技術】
【0002】
量子化パラメータを設定する際に、エンコーダは妥協をしなければならない。量子化を粗くするとビットレートは減少するが、量子化歪みが増加し、量子化を細かくすると、歪みは減少するが、ビットレートは増加する。利用可能な量子化レベルの所定の領域のための符号化効率を増加させる近い将来の概念を持っていることは、有利である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の目的は、利用可能な量子化レベルの所定の設定で、符号化効率を増加させることを達成する量子化を用いる、メディア信号の符号化のためのコンセプトを提供することである。
【0004】
この目的は、本願の独立請求項の主題によって達成される。
【課題を解決するための手段】
【0005】
本願は、メディア信号の符号化は、サンプルのシーケンスを用いるメディア信号を表現することによって、より効果的に提供され、そして、量子化レベルの可算設定(countable set)、また、いわゆる、再構成レベル、サンプルのシーケンスの先のサンプルのためのデータストリームの中で符号化された、インデックスによる、複数の量子化レベルの設定の外、量子化レベルの設定の1つのレベル上の現在のサンプルの量子化、及びデータストリームの中の現在のサンプルのための1つのレベルまでの量子化インデックスを符号化するような、現在のサンプル、設定に対する選択によって、このシーケンスを連続して符号化してもよい、という発見に基づく。換言すれば、サンプルのシーケンスの個々のサンプルのスカラー量子化が用いられるが、メディア信号の符号化は、サンプルのシーケンスの先のサンプルのためのデータストリームの中で符号化された、量子化インデックスによって提供される。この測定によって、データストリームの中で符号化された量子化インデックスのシーケンスに対して量子化されたサンプルの量子化で分散されたサンプルのシーケンスのすべての可能な設定全体の多次元空間の量子化ポイントのグリッドを“解釈”することを可能にする。このグリッドは、次に、統計学的に、量子化平均エラーを減少させる。
【0006】
実施の形態に従って、メディア信号は、例えば、画像のような、二次元の信号であり、そして、サンプルのシーケンスは、そのときに、起きる前述の量子化ポイントグリッドの構成に沿って、サンプルの二次元の空間の配置を一次元のシーケンスに変化させる、いくつかのスキャニングパターンを用いることによって得られる。
【0007】
実施の形態に従った、メディア信号を表している、サンプルのシーケンスは、画像、または、その一部を表現しており、換言すれば、それは、画像の変換ブロック、すなわち、変換係数ブロックの中の予測因子の残りのサンプルのような、画像ブロック、または、空間サンプルのブロックを変換することによって得られ、変換係数ブロックの所定の変換係数は、サンプルのシーケンスから、所定の係数スキャンに従ってスキャンされる。変換は、線形変換、または、どのようなほかの変換であってもよく、そして、再構成の目的のために、逆変換、または、逆変換を近似するいくつかの他の反対変換が用いられる。その上、または、あるいは、サンプルのシーケンスは、予測残差を表していてもよい。
【0008】
実施の形態に従った、現在のサンプルに対する量子化レベルの設定の選択は、サンプルのシーケンスの先のサンプルのためのデータストリームの中で符号化された、量子化インデックスの単なるパリティのような、最下位ビット部によって決まる。特に、実施の形態に従った、選択が起きてからの、複数の量子化レベルの設定の量子化レベルの設定の数は、2である。その上、または、あるいは、複数の量子化レベルの設定からの選択は、先の量子化インデックスのパリティによって決まってもよい。特に、一定の構成のルールは、
サンプルのシーケンスのすぐに前のサンプルの予め定められた定数のために符号化される量子化インデックスによって決まる、複数の量子化レベル設定から1つを選択するサンプルに対する選択のために用いられてもよい。実施の形態に従った、状態遷移過程、または、状態機械は、状態の設定と、1つのサンプルに対する1つの状態から、次のサンプルに対する状態までの変換と、そのパリティのような、1つの状態から、1つのサンプルに対する量子化インデックスによって決まる次までの状態移行と、を備える、この部門に用いられる。それぞれの状態は、それぞれの状態が関連するサンプルに用いられるために、量子化レベルを独自に決定する。所定の状態設定は、移行している状態が開始される初期状態のために、エンコーダ、及びデコーダで適用されてもよい。例えば、この所定の数は2であってもよく、そして、複数の量子化レベルの設定の濃度は2であってもよい。今述べたように、従属関係は、主に、量子化の数のパリティと関連してもよい。これは、改良された符号化効果での実施例の中で生じる。
【0009】
好ましくは、そして、本願の実施の形態に従って、複数の量子化レベル設定は、所定の量子化ステップサイズでパラメータ化され、そして、所定の量子化ステップサイズについての情報は、データストリームで伝えられる。変換ブロックの変換係数を表しているサンプルのシーケンスの場合には、それぞれの変換係数(サンプル)ごとに、複数の量子化レベルの設定をパラメータ化するための特有の量子化ステップサイズが、測定されてもよい。例えば、変換ブロックの変換係数に対する量子化ステップサイズは、所定の方法で、データストリームで伝えられた、1つの伝えられた量子化ステップサイズに関連してもよい。例えば、1つの量子化ステップサイズは、全体の変換ブロックに対して、データストリームで伝えられ、そして、デフォルト、または、データストリームの中でも符号化されることによって設定されるスケーリング係数に対する、それぞれの変換係数に対して、個々に測られてもよい。
【0010】
したがって、有利なことに、ここで用いられる従属スカラー量子化は、変換ブロックの変換係数の全体のスケーリング係数を重み付けするための、重み付け行列を用いるコンセプトを用いた、従属スカラー量子化の組み合わせを可能にする。
【図面の簡単な説明】
【0011】
選択された量子化レベルの設定は、量子化インデックスの絶対値を符号化しているエントロピーを考慮されてもよい。その上、コンテキスト依存性は、現在のサンプルの近くの領域のような、サンプルのシーケンスの先行するサンプルについての量子化レベルへの依存性を含んでもよい。有利なことに、実施例は、従属する請求項の対象である。本願の好ましい実施形態は、以下の図に対して、以下に記述され:
図1図1は、以下に記述される実施の形態に従って動作するために実施化されてもよい、画像エンコーダの例としての典型的なビデオエンコーダのブロック図を示す。
図2図2は、(a)変換エンコーダ、(b)変換符号化に基づいた-ブロックの基本的なアプローチを記述するための変換エンコーダのブロック図を示す。
図3図3は、一様な再構成量子化器を記述している分布のヒストグラムを示す。
図4図4は、(a)サブブロックに再分割された変換ブロック、(b)変換係数レベルのスキャニングのための例を説明するためのサブブロックの概略図を示し、ここで、典型的な1つは、H.265| MPEG-H HEVCの中で用いられ;特に、(a)は、16×16変換ブロックから4×4サブブロックへ、及びサブブロックのコーディング順序の変換を示し、(b)は、4×4サブブロック内部の変換係数レベルのコーディング順序を示す。
図5図5は、変換係数ごとの1つの軸によって広げられた多次元出力スペース、及び(a)独立したスカラー量子化、(b)従属するスカラー量子化の例の2つの変換係数の単純なケースのために許容可能な再構成ベクトルの配置の概略図を示す。
図6a図6aは、従属するスカラー量子化を用いて、それによって、本願に従った、メディアデコーダを形成している変換デコーダのブロック図を示す。従来の変換符号化(独立したスカラー量子化器を用いる)に対する修正は、図2bと比較することによって導き出せる。
図6b図6bは、従属するスカラー量子化を用いて、それによって、本願に従った、メディアデコーダを形成している変換デコーダのブロック図を示す。従来の変換符号化(独立したスカラー量子化器を用いる)に対する修正は、図2aと比較することによって導き出せる。
図7a図7aは、図6bの量子化段階によるような、実施の形態に従った、符号化変換係数のためのエンコーダの範囲内で実行される量子化のためのコンセプトの概略図を示す。
図7b図7bは、図6aの非量子化段階によるような、実施の形態に従った、復号化変換係数のためのデコーダの範囲内で実行される非量子化のためのコンセプトの概略図を示す。
図8a図8aには、先のレベルに従って行われたスイッチングの間の利用可能な量子化設定の収集の概略図;特に、単一の量子化ステップサイズΔによって完全に決定される再構成レベルの2つの設定を用いる、従属量子化の例が示される。再構成レベルの2つの利用可能な設定は、異なる色(セット0に対する青、及びセット1に対する赤)で強調される。設定の中の再構成レベルを示す量子化インデックスに対する例は、円の下で数によって与えられる。空洞の黒丸は、再構成レベルのセットの内部の2つの異なるサブセットを示し;サブセットは、再構成順序での次の変換係数に対する再構成レベルの設定を決定するために用いられることができる。図表は、再構成レベルの2つの設定を有する3つの形態を示し:(a)2つの設定は、ゼロに対してまとまりがなく、対称であり;(b)両方の設定は、ゼロと等しい再構成レベルを含むが、そうでなければ、まとまりがなく;設定は、ゼロのまわりでは非対称である; (c) 両方の設定は、ゼロと等しい再構レベルを含むが、そうでなければ、まとまりがなく;両方の設定は、ゼロのまわりで対称である。
図8b図8bには、先のレベルに従って行われたスイッチングの間の利用可能な量子化設定の収集の概略図;特に、単一の量子化ステップサイズΔによって完全に決定される再構成レベルの2つの設定を用いる、従属量子化の例が示される。再構成レベルの2つの利用可能な設定は、異なる色(セット0に対する青、及びセット1に対する赤)で強調される。設定の中の再構成レベルを示す量子化インデックスに対する例は、円の下で数によって与えられる。空洞の黒丸は、再構成レベルのセットの内部の2つの異なるサブセットを示し;サブセットは、再構成順序での次の変換係数に対する再構成レベルの設定を決定するために用いられることができる。図表は、再構成レベルの2つの設定を有する3つの形態を示し:(a)2つの設定は、ゼロに対してまとまりがなく、対称であり;(b)両方の設定は、ゼロと等しい再構成レベルを含むが、そうでなければ、まとまりがなく;設定は、ゼロのまわりでは非対称である; (c) 両方の設定は、ゼロと等しい再構レベルを含むが、そうでなければ、まとまりがなく;両方の設定は、ゼロのまわりで対称である。
図8c図8cには、先のレベルに従って行われたスイッチングの間の利用可能な量子化設定の収集の概略図;特に、単一の量子化ステップサイズΔによって完全に決定される再構成レベルの2つの設定を用いる、従属量子化の例が示される。再構成レベルの2つの利用可能な設定は、異なる色(セット0に対する青、及びセット1に対する赤)で強調される。設定の中の再構成レベルを示す量子化インデックスに対する例は、円の下で数によって与えられる。空洞の黒丸は、再構成レベルのセットの内部の2つの異なるサブセットを示し;サブセットは、再構成順序での次の変換係数に対する再構成レベルの設定を決定するために用いられることができる。図表は、再構成レベルの2つの設定を有する3つの形態を示し:(a)2つの設定は、ゼロに対してまとまりがなく、対称であり;(b)両方の設定は、ゼロと等しい再構成レベルを含むが、そうでなければ、まとまりがなく;設定は、ゼロのまわりでは非対称である; (c) 両方の設定は、ゼロと等しい再構レベルを含むが、そうでなければ、まとまりがなく;両方の設定は、ゼロのまわりで対称である。
図9a図9aは、変換係数の再構成方法の例を例示している疑似コードを示す。kは、現在の変換係数の再構成順序を特定するインデックスを示し、現在の変換係数に対する量子化インデックスは、レベル[k]によって示され、現在の変換係数に適用する、ステップサイズΔkは、quant_step_size[k]によって示され、そして、trec[k]は、再構成された変換係数t_k^の値を表す。可変的なsetId[k]は、現在の変換係数に適用する再構成レベルの設定を特定する。それは、再構成順序で先の変換係数に基づいて決定され;setId[k]の考えられる値は、0と1である。変数nは、量子化ステップサイズの整数係数を特定する;それは、再構成レベル(言い換えれば、setId[k]の値)、及び送信された量子化インデックスレベル[k]の選ばれたセットで与えられる。
図9b図9bは、図9aの中の疑似コードの他の実施例を例示する疑似コードを示す。主要な変化は、量子化ステップによる乗算が、スケール、及びシフトパラメータを用いる、整数の実装を使用して表現されることである。通常、シフトパラメータ(シフトによって表された)は変換ブロックのために一定であり、そして、スケールパラメータ(スケール[k]によって与えられる)だけは、変換係数の位置に依存し得る。変数加算は、端数処理オフセットを表し、add = (1<<(shift-1))は、一般的に等しく設定される。Δ_kを用いることは、変換係数のためのわずかな量子化ステップであり、パラメータシフト、及びスケール[k]は、我々が有するΔk≒scale[k]・2-shiftの方法で選ばれる。
図10a図10aは、再構成レベルの設定を2つのサブセットに分けることに対する例の概略図を示す。2つの示された量子化設定は、図8cの例の量子化設定である。量子化セット0の2つのサブセットは「A」と「B」を用いて分類され、そして、量子化セット1の2つのサブセットは「C」と「D」を用いて分類される。
図10b図10bは、2つの最後の量子化インデックスを伴うサブセットに基づく次の変換係数のために使われる量子化セット(利用可能な再構成レベルのセット)の決定の例の表を示す。サブセットは、左の表の欄で示される;それらは、用いられた量子化セット(2つの最後の量子化インデックスに対する)、及びいわゆる経路(量子化インデックスのパリティで測定されてもよい)で独自に測定される。量子化設定、及び括弧の中の、サブセットのための経路は、第2の欄の左にリストされる。第3の欄は、関連した量子化設定を特定する。最後の欄では、いわゆる状態変数の値は示され、そして、それは、量子化設定を決定する方法を単純化するために用いられることができる。
図10c図10cは、ここでは、4つの状態を有する構成の利用可能な量子化設定、の間の切り替えの方法に関する、さらなる例としての状態遷移表を示す。
図11図11は、変換ブロックに対する変換係数の再構成プロセスの例を例示する疑似コードを示す。配列レベルは、変換ブロックに対する、送信された変換係数レベル(量子化インデックス)を表し、そして、配列trecは、対応する再構成された変換係数を表す。2d 表 state_trans_tableは、状態遷移表を特定し、そして、表 setldは、状態と関係する量子化セットを特定する。
図12図12は、状態遷移表 state_trans_table、及び表setIdの例を示し、そして、それは、状態と関連する量子化セットを特定する。C-スタイル構文は、図10cの表の中で特定された表を表す。
図13図13は、変換係数レベルのための他の再構成方法を例示する疑似コードを示し、0に等しい量子化インデックスは、状態遷移、及び従属スカラー量子化から除外される。
図14図14は、格子構造として従属スカラー量子化で状態遷移を例示している概略図を示す。水平位置の存在は、再構成順序の異なる変換係数を表す。垂直軸は、従属量子化と再構成プロセスで異なる可能性がある状態を表す。示された接続は、異なる変換係数に対する状態の間で利用可能な経路を特定する。
図15図15は、基本的なトレリスセルの例を示す。
図16図16は、8つの変換係数の従属スカラー量子化のトレリスの例の概略図を示す。最初の状態(左側)は、初期状態を表し、そして、それは、この例で0に等しく設定される。
図17a図17aは、図6bでのエントロピーデコーダによるような、実施の形態に従った、符号化変換係数のためのエンコーダの範囲内で実行される、エントロピー復号化量子化レベルに対するコンセプトの概略図を示す。
図17b図17bは、図6aでのエントロピーデコーダによるような、実施の形態に従った、符号化変換係数のためのエンコーダの範囲内で実行される、エントロピー符号化量子化レベルに対するコンセプトの概略図を示す。
図18図18は、量子化インデックスの絶対値の2値化に対する例を有する表を示す。左から右に:(a)単項の2値化; (b)指数ゴロム(Exp-Golumb) 2値化;(c)単項の接頭部分(青でマークされた最初の2つの2値)、及び接尾部分から成る、連結された2値化;(d)単項の接頭部分(青でマークされた最初の2つの2値)2値が示している経路/パリティ(赤)、及び指数ゴロム 接尾部分(両方の経路/パリティに対する個々のコード)から成る、連結された2値化。
図19図19は、変換係数レベルのエントロピー符号化のための概念の説明のための、変換ブロックの概略図を示し:(a)符号化順序(黒いサンプル)の中の最初のゼロ以外の量子化インデックスの位置のシグナリング。最初のゼロ以外の変換係数の位置に加えて、青くマークされた係数に対するビンだけは送信され、白くマークされた係数は0と等しいと推定される。(b)1つ以上の2値の確率モデルを選ぶために用いられる表の例。
図20図20は、コスト量(例えば、ラグランジュコスト尺度、D+λR)を最小にする量子化インデックスのシーケンス(または、ブロック)を決定するために利用されることができる格子構造の例の概略図を示す。格子構造は、4つの状態(図16を参照)を有する従属量子化の更なる例を表す。トレリスは、8つの変換係数(または、量子化インデックス)のために示される。最初の状態(左端)は初期状態を表し、そして、それは0と等しいと推定される。
図21図21は、1つが、図7bの中で表現され、及び図1のエンコーダ例に適合するような、実施の形態に従って動作するために実装されてもよい、デコーダのブロック図を示す。
図22図22は、予測、及び残差の符号化、そして、それらの間の関係に対する画像の細分化の概略図を示す。
【0012】
以下の説明は、従属スカラー量子化を用いる、メディア信号符号化のための概念を記載する。しかし、理解の容易さのために、以下に掲げる具体例は、以下に述べられる、従属スカラー量子化を用いる変換係数の変換符号化と関連する。しかし、下記のように、本願の実施の形態は、変換符号化には制限されない。
【0013】
次に記述される実施の形態に従って、変換符号化は、一組のサンプルの変換、変換係数の結果の従属するスカラー量子化と得られた量子化インデックスのエントロピー符号化を含む。デコーダ側で、再構成されたサンプルのセットは、量子化インデックスを復号化しているエントロピー、変換係数の従属する再構成、及び逆変換によって得られる。変換、独立したスカラー量子化、及びエントロピー符号化から成る従来の変換符号化と対照的に、変換係数に対して認められる再構成レベルのセットは、再構成順序で現在の変換係数に先行する変換係数レベルとも呼ばれる送信された量子化インデックスによって決まる。その上、量子化インデックスのエントロピー符号化、すなわち、従属スカラー量子化に用いられる、再構成レベル特定する変換係数が記述される。さらにもっと、従来の変換符号化と、従属スカラー量子化による変換符号化との間の適応可能な選択、及び従属スカラー量
子化のために用いられる、量子化ステップサイズを適応させるためのコンセプトが、記述される。以下の説明は、主に、画像、及びビデオ符号化で、予測エラーサンプルのブロックの予測のブロックの非可逆符号化を目標にする、しかし、以下に記述される実施の形態は、また、オーディオ符号化、または、それに類するもの、のような、非可逆符号化の他の領域に適用されてもよい。つまり、後述する実施の形態は、長方形のブロックを形成するサンプルのセットに制限されないで、予測エラーサンプル、すなわち、オリジナルと予測信号の差分を表すサンプルのセットには制限されない。むしろ、以下に記述される実施の形態は、音声信号符号化、予測なし符号化、変換領域ではなく空間領域での符号化のような、他のシナリオにすぐに移行されてもよい。
【0014】
すべての最新のビデオコーデック、例えば、国際的なビデオ符号化規格、H.264| MPEG-4AVC [1]とH.265 |MPEG-H HEVC [2]は、ハイブリッドビデオ符号化の基本的なアプローチに従う。ビデオ映像は、ブロックに分割され、ブロックのサンプルは、イントラピクチャ予測またはインター予測を使用して予測され、そして、結果として生じる予測エラー信号(オリジナルのサンプルと、予測信号のサンプルとの相違)は、変換符号化を使用して符号化される。
【0015】
図1は、典型的な最新のビデオエンコーダの単純化されたブロック図を示す。
ビデオシーケンスのビデオ映像は、符号化順序と呼ばれる、特定の順序で符号化される。
画像の符号化順序は、キャプチャと表示順序を異ならせることができる。
実際の符号化のために、それぞれのビデオ映像は、ブロックに分割される。
ブロックは、特定の色彩構成要素の長方形の領域のサンプルを備える。同じ長方形の地域と一致するすべての色彩構成要素のブロックの実体は、しばしば、ユニットと呼ばれる。H.265|MPEG-H HEVCで、ブロック分配の目的によって、それは、符号化ツリーブロック(CTBs)、符号化ブロック(CBs)、予測ブロック(PBs)、及び変換ブロック(TBs)に区別する。関連する単位は、符号化ツリーユニット(CTUs)、符号化ユニット(CUs)、予測ユニット(PU)、及び変換ユニット(TUs)と呼ばれる。
【0016】
通常、ビデオ映像は、まず最初に、一定の大きさのユニット(すなわち、すべての色彩構成要素に対して整列された、一定の大きさのブロック)に、分割される。H.265|MPEG-H HEVCに、これらの一定の大きさのユニットは、符号化ツリーユニット(CTUs)と呼ばれる。それぞれのCTUは、さらに、複数の符号化ユニット(CU)に、分割されることができる。符号化ユニットは、符号化モード(たとえば、内部-または-画像内符号化)が選ばれるエンティティである。H.265|MPEG-H HEVC|への、CTUの1、または、複数のCUへのスプリットは、4分木(QT)構文によって指定され、ビットストリームの一部として送信される。CTUのCUsは、いわゆるz-スキャン順序で処理される。
つまり、スプリットから生じる4つのブロックは、ラスタースキャン順序で処理され;そして、ブロックのうちのいくつかが、さらに分割されるならば、より高い分割レベルの次のブロックが処理される前に、対応する4ブロック(含まれたより小さいブロックを含む)が処理される。
【0017】
CUが、イントラ符号化モードで符号化される場合、輝度信号に対するイントラ予測モードが、映像信号が彩度構成要素を含む場合、彩度信号に対するもう一つのイントラ予測モードが送信される。
ITU TH.265|で、CUサイズが、(シーケンスパラメータ設定の中に示された)最小のCUサイズと等しければ、輝度ブロックは、4つの等しい大きさのブロックに分割されることができ、それぞれのそれらのブロックに対する、分離した輝度予測モードが送信される。実際のイントラ予測と符号化は、変換ブロックに基づいて実行される。画像内で符号化されたCUの変換ブロックのそれぞれに対して、予測信号は、同じ色彩構成要素のすでに再構成されたサンプルを用いて抽出される。変換ブロックに対する予測信号を生成するために用いられるアルゴリズムは、送信されたイントラ予測モードで決定される。
【0018】
画像内符号化モードで符号化されるCUsは、複数の予測ユニット(PUs)に、さらにスプリットされることができる。予測ユニットは、輝度の実態であり、及びカラービデオのために、予測パラメータの信号設定に対する、2つの関連した色彩ブロック(同じ画像領域を覆っている)が用いられる。CUは一つの予測ユニットとして符号化されることができ、または、それは2つの非2乗(対称形と非対称のスプリットが、サポートされる)、または、4つの2乗予測ユニットにスプリットされることができる。それぞれのPUのために、動作パラメータの個々の設定は、送信される。動作パラメータのそれぞれの設定は、動作仮説の数(H.265|MPEG H HEVCの中の1、または、2つの)、及びそれぞれの動作仮説に対する、参照画像(参照画像のリストの中の参照画像インデックスによって示された)、及び関連する動作ベクトルを含む。これに加えて、H.265|MPEG-H HEVC、動作パラメータは、明確には送信されないが、空間、または、一時的な近隣のブロックの動作パラメータに基づいて抽出された、いわゆる統合されたモードに供給する。CUまたはPUが、統合モードの中で符号化されるならば、動作パラメータ候補(このリストは、空間、または、一時的な近隣のブロックの動作データを使用して引き出される)のリストへのインデックスだけが送信される。インデックスは、使用される動作パラメータの設定を完全に決定する。インター符号化されたPUに対する予測信号は、動作補償された予測によって形成される。それぞれの仮説(参照画像、及び動作ベクトルで特定される)ごとに、予測信号は、特定の参照画像の中で位置が移動されたブロックで形成され、そこで、現在のPUと関連する転置は動作ベクトルで指定される。転置は、サブサンプル精度(H.265 |MPEG H HEVCで、動きベクトルは、4分の1の輝度サンプルの精度を有する)で、一般的に特定される。非整数動きベクトルに対しては、予測信号は、再構成された参照画像(一般的には、分離可能なFIRフィルタを用いて)を挿入することによって生成される。多重仮説予測を用いる、PUの最終的な予測信号は、個々の動作仮説に対する予測信号の加重和によって形成される。一般的には、動作パラメータの同じ設定が、PUの輝度、及び彩度ブロックに使われる。たとえ、規格を符号化している最新技術のビデオは、参照画像と比較した、現在の領域(サンプルのブロック)の動作を特定するために、並進転置ベクトルを使用するとしても、高次動作モデル(たとえば、アフィン動作モデル)を使用することもできる。その場合には、さらなる動作パラメータは、動作仮説のために送信されなければならない。
【0019】
画像内、及び画像間で符号化されたCUに対して、予測誤差信号(また、残差信号という)は、変換符号化によって一般的に送信される。H.265|MPEG-H HEVCでは、CUの輝度残差サンプルのブロック、ならびに、サンプルの彩度残差のブロック(存在するならば)は、変換ブロック(TB)に分割される。CUの変換ブロックへの分割は、残差4分木とも呼ばれる(RQT)、4分木構文によって示される。結果として生じる変換ブロックは、変換符号化を使用して符号化され:2d変換は、残差サンプルのブロックに適用され、結果として生じる変換係数は独立したスカラー量子化を使用して量子化され、そして、結果として生じる変換係数レベル(量子化インデックス)は、符号化されるエントロピーである。PとBスライスでは、CU構文の始めに、skip_flagが送信される。このフラグが1と等しいならば、それは対応するCUが統合モード(すなわち、merge_flagが、1に等しいと推測される)の中で符号化された、単一の予測ユニットから成り、そして、すべての変換係数は、ゼロに等しい(すなわち、再構成信号は、予測信号と等しい)ことを示す。その場合には、merge_idxだけは、skip_flagに加えられて送信される。skip_flagが0に等しいならば、予測モード(間、または、内部)は、上述の構文機能に続いて、示される。
【0020】
すでに符号化された画像が、続いている画像の中のブロックの動き補償された予測のために使われることができるので、画像はエンコーダで完全に再構成されなければならない。ブロック(所定の量子化インデックス、及び逆変換で、変換係数を再構成することによって得られる)に対して、再構成された予測誤差信号は、対応する予測信号に加えられ、そして、結果は現在の画像のためにバッファに記載される。画像のすべてのブロックが再構成された後に、一つ以上のループのフィルタは適用されることができる(たとえば、デブロッキングフィルタ、及びサンプルに適応可能なオフセットフィルタ)。それから、最終的な再構成された画像は、デコードされた画像バッファに保存される。
【0021】
以下に、予測誤差信号の変換符号化のための新しい概念が記述される。概念は、画像内、及び画像間に符号化されたブロックに適用できる。非長方形のサンプル領域の変換符号化にも適用できる。従来の変換符号化とは対照的に、変換係数は、独立して量子化されない。その代わりに、特定の変換係数に対する利用可能な再構成レベルの設定は、他の変換係数に対して選択された量子化インデックスによって決まる。さらに、量子化インデックスの符号化している、エントロピーのための変更は、記述された独立スカラー量子化と組み合わされるときに、符号化効果を増加させる。
【0022】
上記の最新規格H.265|MPEG-H HEVCを含むすべての主要なビデオ符号化規格は、予測誤差サンプルの符号化ブロックを符号化するための変換符号化の概念を利用している。ブロックの予測誤差サンプルは、オリジナル信号のサンプルと、ブロックへの予測信号のサンプルの誤差を表す。予測信号は、イントラピクチャ予測(その場合には、現在のブロックに対する予測信号のサンプルが、同じ画像の中の近隣のブロックのすでに再構成されたサンプルに基づいて抽出される)によって得られるか、または、画像間予測(その場合には、現在のブロックに対する予測信号のサンプルが、すでに再構成されたサンプルに基づいて抽出される)のいずれか一方によって得られる。オリジナルの予測誤差信号のサンプルは、現在のブロックに対する、オリジナルの信号のサンプル値から、予測信号のサンプルの値を引くことによって得られる。
【0023】
サンプルブロックの変換符号化は、量子化インデックスの一次変換、スカラー量子化、及びエントロピー符号化から成ってもよい。エンコーダ側(図2aを参照)で、オリジナルのサンプルのN×Mブロックは、線形分析変換
【数1】
を使用して変換される。
【0024】
結果は、変換係数のN×Mブロックである。変換係数tは、異なる信号スペース(または異なる座標系)で、オリジナルの予測エラーサンプルを表す。N×M変換係数は、N×M独立スカラー量子化器を用いて量子化される。それぞれの変換係数tは、変換係数レベルとも呼ばれる、量子化インデックスqにマップされる。得られた量子化インデックスqは、符号化されて、そして、ビットストリームに書かれるエントロピーである。
【0025】
デコーダ側(図2bを参照)で、変換係数レベルqは、受信したビットストリームから復号化される。それぞれの変換係数レベルqは、再構成された変換係数t にマップされる。再構成されたサンプルのN×Mブロックは、線形合成変換
【数2】
を使用して再構成された変換係数のブロックを変換することによって得られる。
【0026】
たとえビデオ符号化規格が、合成変換Bを特定するだけであるとしても、合成変換Bの逆が、エンコーダ、すなわち、
【数3】
で、分析変換Aとして使われることは一般的なことである。さらに、システムを符号化している実用的なビデオの中で使われる変換は、直交変換(
【数4】
)、または、ほとんど直交変換を意味する。直交変換のために、信号空間での平均2乗誤差(MSE)歪みは、変換領域でのMSE歪みに等しい。直交は、オリジナルと再構成されたサンプルブロックの間のMSE歪みが独立したスカラー量子化器を用いて最小にされることができる重要な利点を有する。たとえ、エンコーダで使われる実際の量子化プロセスが、アカウントの中の変換係数レベル(エントロピー符号化によって導入される、下記参照)の間で従属しても、直角変換の使用は、量子化アルゴリズムを十分に単純化する。
【0027】
典型的な予測エラー信号のために、変換は、信号エネルギーがごく少数の変換係数に集中するという効果を有する。オリジナルの予測エラーサンプルと比較すると、結果として生じる変換係数の間の統計的依存性を、減少させる。
【0028】
最新のビデオ符号化規格において、分離可能な離散コサイン変換(タイプII)、または、その整数近似が使用される。変換は、しかし、変換符号化システムの他の面を修正することなく、簡単に置き換えることができる。
文献、または、規格化文書に含まれた提案された改善のための例:
・画像内の画像予測ブロック(場合によっては、イントラ予測モードやブロックサイズに従属する)に対する、離散サイン変換(DST)の使用。H.265|MPEG-H HEVCは、画像内で予測された4×4変換ブロックに対するDSTをすでに含む。
・切り替えられた変換:エンコーダは、実際に使用される定義済みの変換のセットの間の変換を選択する。利用可能な変換のセットは、エンコーダ及びデコーダの両方に知られている、そのため、それは利用可能な変換のリストにインデックスを用いて効率的に示されることができる。
利用可能な変換のセット及びリスト中のそれらの順番は、選択されたイントラ予測モードのような、ブロックに対する他の符号化パラメータに従属することができる。特別な場合には、使用される変換は、イントラ予測モード、および/または、ブロックの形のような、パラメータを符号化することによって完全に決定され、そのため、変換を特定するための構文要素が送信される必要はない。
非分離可能変換:エンコーダ及びデコーダで使用される変換は、非分離可能変換を意味する。切り替えられた変換のコンセプトが一つ以上の非分離可能変換を含むかもしれないことに注意すべきである。複雑な理由のために、非分離可能変換の使用は、特定のブロックサイズに制限されることができる。
・多重レベル変換:実際の変換は、2以上の変換ステージから成る。第1の変換ステージは、計算上複雑さの低い分離可能な変換から構成することができた。そして、第2の段階には、結果として生じる変換係数のサブセットは、さらに、非分離可能変換を使用して変換される。全体の変換ブロックに対して、非分離可能変換を比較すると、二段階アプローチは、より複雑な非分離可能変換がより少ない数のサンプルに適用されるという利点を有する。多重レベル変換のコンセプトは、切り替えられた変換のコンセプトと、効率的に組み合わされることができる。
【0029】
変換係数は、スカラー量子化器を用いて量子化される。量子化の結果として、変換係数に対する許容できる値のセットは、減少される。つまり、変換係数は、いわゆる再構成レベルの可算のセット(実際には、有限のセット)にマップされる。再構成レベルのセットは、可能性がある変換係数値のセットの適切なサブセットを表す。以下のエントロピー符号化を単純化するために、許容可能な再構成レベルは、ビットストリームの一部として送信される、量子化インデックス(また、変換係数レベルと呼ばれる)によって表される。
デコーダ側で、量子化インデックス(変換係数レベル)は、再構成された変換係数にマップされる。再構成された変換係数に対して可能な値は、再構成レベルのセットと一致する。エンコーダ側で、スカラー量子化の結果は、変換係数レベル(量子化インデックス)のブロックである。
【0030】
最新技術のビデオ符号化規格では、同形の再構成量子化器(URQs)が、使用される。それらの基本的な設計は、図3に図示される。URQsは、再構成レベルが等しく間隔をあけられる特性を有する。2つの近隣の再構成レベルの間の距離 Δ は、量子化ステップサイズと呼ばれる。再構成レベルのうちの1つは、0と等しい。それゆえに、利用可能な再構成レベルの完全なセットは、量子化ステップサイズ Δ によって、個々に特定される。再構成された変換係数t’ の量子化インデックスqのデコーダマッピングは、原則として、単純な式によって与えられる。
【数5】
この環境で、期間“独立スカラー量子化”は、どのような変換係数に対しても、量子化インデックスqが与えられるという特性を示し、
関連した、再構成された、変換係数t’は、他の変換係数に対するすべての量子化インデックスと独立して決定されることができる。
【0031】
ビデオデコーダは、一般的に、標準精度(例えば、32ビット)で整数演算を利用するので、規格で使われる実際の手法は単純な掛け算とはわずかに異なるかもしれない。変換係数に対してサポートされたダイナミックレンジへのクリッピングを無視するとき、H.265|MPEG-H HEVCの中の再構成変換係数は、
【数6】
によって得られる。
それぞれ、演算子“<<”と“>>”は、左右のビットシフトを表している。
整数演算を無視するとき、量子化ステップサイズΔは、期間
【数7】
と一致する。
【0032】
H.262|MPEG-2ビデオのような、より古いビデオ規格は、また、通常の量子化ステップサイズと比較して増加している(例えば、通常の量子化ステップサイズの2分の3)再構成レベルゼロと、第1の非ゼロ再構成レベル間の距離に対して変調されたU
RQsを特定する。
【0033】
変換係数のための量子化ステップサイズ(または、スケーリングとシフトパラメータ)は、2つの因子で決定される:
・量子化パラメータQP:
量子化ステップサイズは、一般的に、ブロック単位で変更されることができる。
その目的のために、ビデオ符号化規格は、量子化ステップサイズの所定のセットを提供する。
使用される量子化ステップサイズ(または、同等の、上述のパラメータ“スケール”と“シフト”)は、量子化ステップサイズの所定のリストの中のインデックスを用いて示される。インデックスは、量子化パラメータ(QP)と呼ばれる。
H.265|MPEG-H HEVCでは、QPと、量子化ステップサイズ間の関係は、
【数8】
によってほぼ与えられる。
スライスQPは、一般的に、スライスヘッダで送信される。一般に、ブロックに基づいて量子化パラメータQPを修正することができる。その目的のために、DQP(デルタ量子化パラメータ)は、送信されることができる。使用される量子化パラメータは、送信されたDQP、及び予測されたQP値で決定され、そして、それは、すでに符号化された(一般的に、近隣の)ブロックのQPsを用いて抽出される。
・量子化重み行列:
ビデオ符号化規格は、しばしば、個々の変換係数のために異なる量子化ステップサイズを使用する可能性を提供する。これは、一般的に、いわゆる量子化重み行列
【数9】
を特定することによって達成され、この行列は、エンコーダによってシーケンス、または、画像レベルで選択でき、ビットストリームの一部として送信される。量子化重み行列
【数10】
は、変換係数の対応するブロックと同じサイズを有する。
変換係数
【数11】
に対する、量子化ステップサイズ
【数12】
は、
【数13】
によって与えられ、
ここで、
【数14】
は、検討されるブロックに対する、量子化ステップサイズ(ブロック量子化パラメータQPによって示される)を意味し、
i及びkは、変換ブロックの内部の現在の変換係数を特定している座標を表し、
【数15】
は、量子化重み行列
【数16】
の中の対応する項目を表す。
【0034】
量子化重み行列の主な目的は、知覚的な意味がある方向に量子化雑音を導入する可能性を提供することである。適切な重み行列を用いて、人間の視覚の空間コントラスト感度は、ビットレートと主観的な再構成品質の間のより良い妥協を達成されるために利用されることができる。それにもかかわらず、多くのエンコーダは、いわゆるフラット量子化マトリックス(高水準構文要素を使用して効率的に送られることができる)を使用する。この場合には、同じ量子化ステップサイズΔが、ブロックですべての変換係数のために使用される。量子化ステップサイズは、それから、量子化パラメータQPによって完全に特定される。
【0035】
変換係数レベルのブロック(変換係数のための量子化インデックス)は、エントロピー符号化されている(すなわち、それはビットストリームの一部としてロスレス方式で送信される)。線形変換が線形従属性を減少することができるだけであるので、変換係数レベルに対するエントロピー符号化は、一般的に、ブロック中の変換係数レベルの間の残りの非線形従属が効果的な符号化のために利用できるような方法で設計される。
有名な例は、MPEG-2ビデオの中の動作レベル符号化、H.263とMPEG-4ビジュアルの中の動作するレベル最後の符号化、H.264|MPEG-4 AVCの環境に適応可能な可変長符号化(CAVLC)、及びH.264|MPEG-4AVCとH.265|MPEG-HHEVCの環境ベースの適応可能な2値算術符号化(CABAC)である。
【0036】
最新技術のビデオ符号化規格H.265|MPEG-H HEVCの中に特定されたCABACは、多種多様な変換ブロックサイズに適用されることができる一般的な概念に続く。例えば図4aの中の10のような、4x4サンプルよりも大きい、変換ブロックは、4x4サブブロック12に分割される。分割は、16x16変換ブロック10の例のために、図4aに図示される。4x4サブブロックの符号化順序、ならびに、サブブロックの内側の変換係数レベルの符号化順序は、一般に、図4に示される逆対角線スキャン14によって特定される。特定の画像内で予測されたブロック、水平または垂直スキャンパターンが使用された(実際のイントラ予測モードに従属する)。符号化順序は、いつも高周波領域から始まる。
【0037】
H.265|MPEG-H HEVCで、変換係数レベルは、4x4サブブロックに基づいて送信される。変換係数レベルのロスレス符号化は、以下のステップを含む:
1.構文要素coded_block_flagは送信され、そして、それはいくつかの非ゼロの変換係数レベルが変換ブロックにあるかどうか示す。coded_block_flagが0と等しいならば、更なるデータは、変換ブロックのために符号化されない。
2.符号化順序(例えば、図4に図示されるブロック的な逆の斜めのスキャン順序)の中の第1の非ゼロ変換係数レベルのxとy座標は、送信される。座標の送信は、接頭辞部、及び接尾辞部に分割される。規格は、構文要素last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、及びlast_sig_coeff_x_suffixを使用する。
3.符号化順序の中の、第1の非ゼロ変換係数レベルを含む4x4サブブロックから始めて、4x4サブブロックは、符号化順序の中で処理され、そこで、サブブロックの符号化は以下の主要なステップを含む:
a.構文要素coded_sub_block_flagが、送られる。そして、それは、サブブロックが非ゼロの変換係数レベルを含むかどうか示す。最初で最後の4x4サブブロック(すなわち、第1の非ゼロ変換係数レベル、または、DCレベルを含むサブブロック)のために、このフラグは送信されないで、1と等しいことを推測される。
b.1と等しいcoded_sub_block_flagによるサブブロックの内側のすべての変換係数レベルに対して、構文要素significant_coeff_flagは、対応する変換係数レベルがゼロと等しくないかどうか示す。構文要素significant_coeff_flagは、対応する変換係数レベルがゼロと等しくないかどうか示す。その値がすでに送られたデータに基づいて推測されることができないならば、このフラグは送信されるだけである。特に、フラグが第1の重要なスキャン位置(送信されたx、及びy座標によって特定される)に対して送信されず、そして、DC係数が、第1の非ゼロの係数(符号化順序の中の)とは異なるサブブロックの中に位置しており、最後のサブブロックに対する他の全てのsignificant_coeff_flagsがゼロと等しければ、それは、DC係数に対しては、送信されない。
c.significant_coeff_flagによる、最初の8つの変換係数レベルが1と等しければ(もしあれば)、フラグcoeff_abs_level_greater1_flagは、送信される。それは、変換係数ブロックの絶対値が1以上であるかどうかを示す。
d.coeff_abs_level_greater1_flagによる第1の変換係数レベルが1と等しければ(もしあれば)、フラグcoeff_abs_level_greater2_flagは、送信される。それは、変換係数レベルの絶対値が2以上であるかどうかを示す。
e.1と等しいsignificant_coeff_flagによるすべてのレベルのために(例外は後述する)、構文要素coeff_sign_flagは送信される。そして、それは、変換係数レベルの符号を特定する。
f.絶対値が、significant_coeff_flag、coeff_abs_level_greater1_flag、及びcoeff_abs_level_greater2_flagの値によってすでに完全に特定されないすべての変換係数レベルのために(送られたフラグのいずれかがゼロと等しいならば、絶対値は、完全に特定される)、絶対値の残りは、多重レベル構文要素coeff_abs_level_remainingを用いて送信される。
【0038】
H.265|MPEG-H HEVCに、すべての構文要素は、適応可能な2値算術符号化(CABAC)に基づくコンテキスト(context)を使用して符号化される。すべての非2値化構文要素は、2値と呼ばれる、連続した2値化の決定に最初にマップされる。結果として生じる、ビンのシーケンスは、2値算術符号化を使用して符号化される。その目的のために、それぞれの2値は、コンテキストとも呼ばれる、確率モデル(2値の確率質量関数)と関連する。大部分の2値に対する、コンテキストは、適応確率モデルを意味する。そして、それは2値の確率質量関数が、実際に符号化された2値の値に基づいてアップデートされることを意味する。条件付き確率は、すでに送信されたデータに基づく特定の2値のためにコンテキストを変えることによって利用されることができる。CABACは、いわゆるバイパスモードも含み、そこにおいて、一定の確率質量関数(0.5、0.5)が使用される。
【0039】
コンテキストは、すでに符号化された、近隣のサブブロックに対する、coded_sub_block_flagの値によって決まる、coded_sub_block_flagの符号化のために選択される。significant_coeff_flagに対するコンテキストは、サブブロック、変換ブロックの寸法、及び近隣サブブロックのcoded_sub_block_flagの値の内部のスキャン位置(x、及びy座標)に基づいて選択される。
【0040】
フラグ、coeff_abs_level_greater1_flag、及びcoeff_abs_level_greater2_flagnのために、コンテキスト選択は、現在のサブブロックがDC係数を含むかどうか、そして、1と等しいcoeff_abs_level_greater1_flagが、近隣のサブブロックに対して送信されたかどうかによって決まる。coeff_abs_level_greater1_flagのために、それは、サブブロックに対する、さらにすでに符号化されたcoeff_abs_level_greater1_flagの数と値によって決まる。
【0041】
符号 coeff_sign_flag、及び絶対値coeff_abs_level_remainingの残りは、2進算術符号化器のバイパスモードで符号化される。coeff_abs_level_remainingを2値のシーケンス(2値の決定)にマップするために、適応可能な2値化スキームが使われる。2値化は、サブブロックのためにすでに符号化された値に基づいて適用される、一つのパラメータ(ライスパラメータと呼ばれる)によって制御される。
【0042】
H.265|MPEG-H HEVCは、モードを隠蔽している、いわゆる符号データも含み、そして、それにおいて(特定の状況の下で)、サブブロックの内部の最後の非ゼロのレベルのための符号の送信は省略される。その代わりに、このレベルのための符号は、対応するサブブロックのレベルのために、絶対値の合計のパリティに組み込まれる。符号化器は、適切な変換係数レベルを決定する際には、この面を考慮しなければならないことに注意すべきである。
【0043】
ビデオ符号化規格は、ビットストリーム構文と再構成プロセスを指定するだけである。我々がオリジナルの予測エラーサンプルと所定の量子化ステップサイズに対する変換符号化を考慮するならば、符号化器は、多くの自由度を有する。変換ブロックに対する所定の量子化インデックス
【数17】
、エントロピー符号化は、ビットストリームにデータを記述するための(すなわち、算術符号名を構成する)、個々に定義されたアルゴリズムに従わなければならない。しかし、予測エラーサンプルのオリジナルのブロックが与えられた量子化インデックス
【数18】
を得るためのエンコーダアルゴリズムは、ビデオ符号化規格の範囲外にある。さらに、エンコーダには、ブロック単位で量子化パラメータQPを選択するための自由度を有する。以下の説明のために、我々は、量子化パラメータQPと量子化重みマトリックスが与えられていると仮定する。それゆえに、それぞれの変換係数に対する量子化ステップサイズは、既知である。我々は、さらに、エンコーダがオリジナルの変換係数
【数19】
を得るための特定の合成変換の逆(または、逆に非常に近いもの)である分析変換を実行すると仮定する。これらの状況の下でさえ、エンコーダは、それぞれのオリジナルの変換係数
【数20】
に対する量子化器インデックスを選択するための自由度
【数21】
を有する。変換係数レベルの選択が歪み(または、再構成/近似品質)とビットレートを決定するので、使用される量子化アルゴリズムは、作成されたビットストリームのレート-歪みの性能に相当な影響を及ぼす。
【0044】
最も単純な量子化方法は、オリジナルの変換係数
【数22】
を最も近い再構成レベルに端数処理する。一般的に用いられるURQsのために、対応する量子化インデックス
【数23】
は、
【数24】
に従って決定されることができる。
ここで、sgn()は、符号関数、及び演算子
【数25】
は、より少ない、または、その引数と等しい最も大きい整数を返す。この量子化方法は、MSE歪み
【数26】
を最小化することを達成する、しかし、しかし、それは、結果として生じる変換係数レベル
【数27】
を送信するために必要とされるビット率を完全に無視する。
一般的に、端数処理がゼロの方へ偏るならば:
【数28】
、より良い結果が得られる。
【0045】
量子化プロセスがラグランジュ関数
【数29】
を最小にするならば、レート―歪み判断で最高の結果が得られ、ここでDが変換ブロックの歪み(例えば、MSE歪み)を表し、Rは、ブロックの変換係数レベルを送信するために必要とされるビットの数を特定し、
【数30】
は、ラグランジュ乗数である。
【0046】
QPと、量子化ステップサイズ(H.264|MPEG-4 AVC、または、H.265|MPEG-H HEVC)の間の関係
【数31】
を使うコーデックのために、ラグランジュ乗数λと、ブロック量子化パラメータQPの以下の関係が、しばしば使用され、
【数32】
ここで、
【数33】
は、スライス、または、画像のための定数要素を表す。レート―歪みのラグランジュ関数
【数34】
を最小にすることを目的とする量子化アルゴリズムは、レート―歪み最適化による量子化(RDOQ)とも呼ばれる。我々がMSEまたは加重されたMSEを用いて歪みを測定するならば、
変換ブロックのための量子化インデックス
【数35】
は、以下のコスト測定が最小化されるような方法で決定されなければならない:
【数36】
【0047】
これで、変換係数インデックスkは、変換係数レベルの符号化順序(または、スキャニング順序)を特定する。期間
【数37】
は、量子化インデックス
【数38】
を送信するために必要とされるビット(またはその予測)の数を表す。状態は、(結合された、または、条件つき確率を使用するための)、特定の変換係数レベル
【数39】
に対するビットの数は、一般的に、符号化順序中の前の変換係数レベル
【数40】
などに対する選択された値によって決まることを示す。上記の方程式における要素
【数41】
が、個々の変換係数の寄与を重み付けするために、例えば、人間の視覚のコントラスト感度をモデル化するために使われることができる。以下に、我々は、一般的に、すべての重み要因
【数42】
が1)と等しいと仮定する(しかし、アルゴリズムは、異なる重み要因が考慮されることができる方法で直接的に修正されることができる)。
【0048】
大部分のバイナリの決定が適応可能な可能性モデルを用いて符号化されるので、H.265|MPEG-H HEVCの変換係数符号化のための、レート期間の正確な計算は非常に複雑である。しかし、我々が確率モデル選択のいくつかの面を軽視し、かつ、確率モデルは、変換ブロックの内部で適用されることを無視するならば、合理的な複雑さでRDOQアルゴリズムを設計することができる。
【0049】
H.265|MPEG-H HEVCのために参照ソフトウェアで実装されるRDOQアルゴリズムは、以下の基本的な処理工程から成る:

1.それぞれのスキャニング位置kに対する、変換係数レベル
【数43】
は、レベルがゼロと等しいと推測されないという仮定の下で、ラグランジュ関数コスト
【数44】
を最小にすることによって選択される。
【数45】
は、(重み付けられた)2乗誤差
【数46】
を意味し、そして、
【数47】
は、送信
【数48】
のために必要とされるビットの数の推定を表す。
2.4×4つのサブブロックのためのフラグcoded_sub_block_flagは、以下の2つのケースのためのラグランジュ関数のコストを比較することによって決定される:(a)ステップ1で選択された変換係数レベルが使用され;(b)構文要素coded_sub_block_flagは、ゼロと等しく設定され、そして、このように、4×4つのサブブロックのすべての変換係数レベルは、ゼロに等しく設定される。
3.第1の非ゼロ変換係数レベルの領域は、符号化順序(前の変換係数レベルは、ゼロに等しく設定される)での、第1の非ゼロ変換係数レベルとしての非ゼロ変換係数レベル(後のステップ2)の1つを選択することによって、得られたラグランジュ関数のコストを比較することによって決定される。
4.coded_block_flagは、ステップ3の後に得られた、変換係数レベルのシーケンスに対する、ラグランジュ関数のコストを比較することによって得られ、そして、変換ブロックの内部のすべての変換係数レベルはゼロに等しく設定される。
【0050】
以下は、変換符号化のために変更されたコンセプトを記述する。従来の変換符号化に関連する変調では、変換係数は、独立して量子化されないで、再構成されない。その代わりに、変換係数のための認められる再構成レベルは、再構成の順序で前の変換係数のために選ばれた量子化インデックスによって決まる。従属スカラー量子化のコンセプトは、変更されたエントロピー符号化と結合され、そこにおいて、変換係数のための確率モデル選択(または、あるいは、符号化名テーブル選択)は認められる再構成レベルのセットによって決まる。
【0051】
変換係数の従属量子化の長所は、許容可能な再構成ベクトルがN次元信号スペース(ここで、Nは、変換ブロックでのサンプル、または、変換係数の数を意味する)に包まれて、より密度が高くなることである。変換ブロックのための再構成ベクトルは、変換ブロックの順序付けられた再構成された変換係数(または、あるいは、順序付けられた再構成されたサンプル)を参照する。従属スカラー量子化の効果は、2つの変換係数の最も単純なケースのために、図5に図示される。図5は、独立スカラー量子化に対する、許容可能な再構成ベクトル(ここで、2dの平面の中の点を表す)を示す。このように、第2の変換係数
【数49】
のための許容可能な値のセットは、第1の再構成された変換係数
【数50】
のために選ばれた値によっては決まらない。図5bは、従属するスカラー量子化に対する例を示す。独立スカラー量子化とは対照的に、第2の変換係数
【数51】
のための選択可能な再構成値は、第1の変換係数
【数52】
のために選ばれた再構成レベルによって決まる。図5bの例の中に、第2の変換係数
【数53】
のための、利用可能な再構成レベルの2つの異なるセットが、第2の変換係数(異なる色で例示される)のためにある。第1の変換係数
【数54】
のための量子化インデックスが均一である(…、-2、0、2、…)ならば、第1のセット(ブルーポイント)のどんな再構成レベルでも第2の変換係数
【数55】
のために選ばれることができる。そして、第1の変換係数
【数56】
のための量子化インデックスが奇数である(…、-3、-1、1、3、…)ならば、第2セット(赤い点)のどんな再構成レベルでも第2の変換係数
【数57】
のために選択することができる。例の中で、第1、及び第2の設定のための再構成レベルは、半分の量子化ステップサイズによってシフトされる(第2の設定のどんな再構成レベルでも第1の設定の2つの再構成レベルの間にある)。
【0052】
変換係数の従属スカラー量子化は、N次元ユニット容量20ごとに、再構成ベクトルの所定の平均数に対する、変換係数の所定の入力ベクトルと、最も近い利用可能な再構成ベクトルの間の距離の期待値が減少されるという効果を有する。結果として、変換係数の入力ベクトルと、ベクトルの再構成された変換係数の間の平均的な歪みは、ビットの所定の平均数のために減少されることができる。ベクトル量子化において、この効果は、空間充填ゲインと呼ばれる。変換ブロックのための従属スカラー量子化を使用して、高次元ベクトル量子化のための潜在的な空間充填ゲインの大部分は、利用されることができる。そして、ベクトル量子化と対照的に、再構成プロセス(または、復号化プロセス)の実装の複雑さは、独立スカラー量子化器で符号化している従来の変換のそれと類似する。従属スカラー量子化を有する変換デコーダ30のブロック図は、図6aに図示されており、エントロピーデコーダ32と、従属スカラー逆量子化のための量子化ステージ34と、合成変換器36とを備える。主要な変化(赤でハイライトされる)は、従属量子化である。垂直矢印で示されるように、再構成順序インデックス
【数58】
を有する、再構成された変換係数
【数59】
は、関連する量子化インデックス
【数60】
だけではなく、再構成順序の前の変換係数に対する、量子化インデックス
【数61】
によって決まる。従属量子化では、変換係数13の再構成順序は、個々に定められなければならない点に注意すべきである。量子化インデックス
【数62】
と関連した再構成レベルの設定についての知識が、エントロピー符号化でも利用されるならば、全体的な変換コーデックの性能は、一般的に、向上させることができる。つまり、変換係数に適用される、再構成レベルのセットに基づくコンテキスト(確率モデル)、または、符号語テーブルを変えることが、一般的に、好ましい。
【0053】
図6aのデコーダに適している、変換符号化器40は、図6bで表されて、分析変換4
6と、量子化モジュール44と、エントロピー符号化器42と、から成る。一般的に、分
析変換(または、逆にほぼ近いもの)36の逆の分析変換46は使われて、そして、エントロピー符号化42は、通常、所定のエントロピーを復号化しているプロセス32で個々に指定される。しかし、従来の変換符号化に類似して、オリジナルの変換係数に与えられた、変換インデックスを選択するための多くの自由度がある。
【0054】
本発明の実施の形態は、ブロックを基礎にした変換符号化には限定されない。それらは、また、サンプルのいくつかの有限のコレクションの変換符号化に適用可能である。変換係数の設定上のサンプルの設定にマップする、どのような種類の変換でも用いられることができる。これは、線形で、非線形の変換を含む。使われた変換は、十分に完全である(変換係数の数はサンプルの数よりも大きい)、または、ほぼ完全な(変換係数の数はサンプルの数よりも小さい)変換を表していてもよい。実施の形態では、従属量子化は、直交系基底関数の線形変換と結合される。整数実装のために、変換は、線形変換(変換ステップの端数処理のために)から逸脱することがある。さらに、変換は、直交基底関数を使用する整数近似を意味することができる(基底関数がほぼ直交している場合のみには)。特別な場合には、変換は、恒等変換を意味することができて、その場合には、サンプル、または、残りのサンプルは直接量子化される。
【0055】
実施の形態では、以下に議論される従属量子化のコンセプトが、サンプルブロック(たとえば、オリジナルのサンプルのブロックまたは予測誤差サンプルのブロック)の変換符号化のために使われる。このコンテキストでは、変換は、分離可能な変換、非分離可能な変換、及び分離可能な第1の変換と、非分離可能な第2の変換の組み合わせ(ここで、2回目の変換が、第1の変換後に得られた、すべての変換、または、係数のサブセットのいずれか一方に適用されることができる)を意味することができる。非分離可能な第2の変換がサブセットに適用されるならば、サブセットは、変換係数の得られた行列のサブブロックから成ることができる、または、それは、第1の変換の後に得られた変換係数の他のどのようなサブブロックをも表すことができる(たとえば、変換係数のブロックの内側の任意に形づくられた領域)。変換は、2以上の変換レベルを有する、複数レベル変換をも意味してもよい。
【0056】
変換係数の従属量子化に関する詳細と実施の形態は、以下に記述される。さらに、従属スカラー量子化のために再構成された変換係数を特定する量子化インデックスのエントロピー符号化のためのいろいろな方法が、記述される。そのうえ、従属及び独立スカラー量子化の間のブロック適応可能な選択のための任意の方法、ならびに、量子化ステップサイズを適応させる方法が示される。最後に、エンコーダでの従属量子化のための量子化インデックスを決定するためのアプローチが、議論される。
【0057】
変換係数に対する利用可能な再構成レベルの設定のコンセプトに言及する、変換係数の従属量子化は、再構成の順序の前の変換係数に対する選ばれた量子化インデックスによって決まる(一般的に、同じ変換ブロックの内部の量子化インデックスに制限される)。
【0058】
実施の形態では、再構成レベルの複数のセットはあらかじめ定義されており、そして、符号化順序の前の変換係数に対する量子化インデックスに基づいており、あらかじめ定義されたセットの1つは、現在の変換係数を再構成するために選択される。再構成レベルのセットを定義するためのいくつかの実施の形態は、最初に記述される。選選択された再構成レベルの識別とシグナリングは、後述される。現在の変換係数に対する再構成レベルのあらかじめ定義されたセットの1つを選択するためのよりさらなる実施の形態(再構成順序で前の変換係数に対する選ばれた量子化インデックスに基づいて)が、記述される。
【0059】
実施の形態で、そして、図7a、及び7bに示すように、現在の変換係数13’のための許容可能な再構成レベルのセット48は、再構成レベルのあらかじめ定義されたセット52のコレクション50(2以上のセット)の間で選択54される(符号化順序14で前の変換係数に対する量子化インデックス56のセット58に基づいて)。そこで、コレクション50がすべての係数13のために使われてもよい、しかし、言及はセット52の可能なパラメータ化できる特性の記述に続いてなされる。特定の実施の形態では、そして、以降の例で示すように、再構成レベルのセットの再構成レベルの値は、ブロックに基づいた量子化パラメータによって、パラメータ化60される。つまり、ビデオコーデックは、ブロック(単独の変換ブロック10、または、複数の変換ブロックと一致させることができる)に基づく、量子化パラメータ(QP)の変調をサポートし、そして、再構成レベルの使用されたセットの中の再構成レベルの値は、選択された量子化パラメータによって決定される。たとえば、量子化パラメータが増やされるならば、近隣の再構成レベルの間の距離も増やされ、そして、量子化パラメータが減少するならば、近隣の再構成レベルの間の距離も減少される(または逆もまた同じ)。
【0060】
典型的なバージョンで、ブロックに基づいた量子化パラメータ(QP)は、量子化ステップサイズΔ(または、先に述べたような、一致する大きさ、及びシフトパラメータ)を決定し、そして、すべての再構成レベル(再構成レベルのすべてのセット)は、量子化ステップサイズΔの整数倍数を表す。しかし、再構成レベルのそれぞれのセットは、量子化ステップサイズΔの整数倍のサブセットだけを含むことに注意すべきである。従属量子化のためのそのような構成では、量子化ステップサイズの整数倍を表す、再構成レベルのすべてのセットのためのすべての可能性がある再構成レベルは、同形の再構成量子化器(URQs)の拡張であると考えることができる。その基本的な利点は、再構成された変換係数が非常に低い計算量を有するアルゴリズムによって計算されることができることである(更に詳細に後に記述される)。
【0061】
再構成レベルの設定52は、完全に互いに素であってもよく;しかし、一つ以上の再構成レベルが複数のセットに含まれる可能性がある(セットがまだ他の再構成レベルで異なる間に)。特定の変換係数
【数63】
のための量子化ステップサイズ
【数64】
は、単にブロック量子化パラメータQPで測定されるだけではなくてもよい、しかし、特定の変換係数
【数65】
のための量子化ステップサイズ
【数66】
が量子化重み付け行列(WM)、及びブロック量子化パラメータで測定される可能性がある。一般的に、変換係数
【数67】
のための量子化ステップサイズ
【数68】
は、変換係数
【数69】
の重み要素
【数70】
(量子化重み行列によって特定される)と、ブロック量子化ステップサイズ
【数71】
(量子化ブロックパラメータによって特定される)の積によって与えられる
【数72】
【0062】
実際の計算、すなわち、再構成された変換係数
【数73】
の逆量子化(または、再構成レベルの実際の計算)は、注意すべきであり、kはインデックスであってもよく、現在の位置は、整数実装、または、他の整数実装の態様のために、理想的な乗算からわずかに逸脱してもよい。
【数74】
は、特定の変換係数
【数75】
のための量子化ステップサイズであるとして、そして、
【数76】
は、量子化ステップサイズ(例えば、量子化インデックス
【数77】
によって与えられる)のノミナル整数要素(nominal integer factor)を特定する。理想的な乗算で、再構成された変換係数
【数78】
は、
【数79】
によって与えられる。
【0063】
整数実装への制限のために、再構成された変換係数
【数80】
(または、対応する再構成レベル)は、
【数81】
、または、類似した手順に従って、実際に、決定されてもよい。我々が、以下の説明の量子化ステップサイズの整数の倍数について説明するならば、対応するテキストは、上記で特定されたものに類似した整数近似にも適用される。量子化64は、対応する分割を含む。
【0064】
実施の形態では、変換係数のための従属スカラー量子化は、再構成レベルの全く異なる2つのセット52を使う。そして、実施の形態では、変換係数
【数82】
のための2つのセットのすべての再構成レベルは、この変換係数のための量子化ステップサイズ
【数83】
の整数の倍数を意味する(それは、少なくとも部分的に、ブロックに基づいた量子化パラメータによって決定される)。量子化ステップサイズ
【数84】
は、両方のセットで許容可能な再構成値に対するスケーリング要素を直接意味することに注意すべきである。変換ブロック(そして、このように、個々のスケーリング因子)の中の異なる変換係数
【数85】
に対して、起こり得る個々の量子化ステップサイズ
【数86】
があること以外は、再構成レベルの同じ2つのセットがすべての変換係数のために使用される。
【0065】
図8には、再構成レベルの2つのセットのための3つの構成が、例示される。すべての再構成レベルが量子化ステップサイズΔの整数の倍数によって与えられるグリッド上にあることに注意すべきである。特定の再構成レベルが両方のセットに含まれることができる点にさらに注意すべきである。
【0066】
図8aの中で表される2つのセットは、互いに素である。量子化ステップサイズΔのそれぞれの整数の倍数は、セットのうちの1つに含まれるだけである。第1のセット(セット0)が、量子化ステップサイズのすべての偶数の整数の倍数を含むのと同時に、第2セット(セット1)が、量子化ステップサイズのすべての奇数の整数の倍数を含む両方のセットで、2つの近隣の再構成レベルの間のどのような距離でも、量子化ステップサイズの2倍である。これらの2つのセットは、いつも高いレートの量子化に適している、すなわち、変換係数の標準偏差は、量子化ステップサイズよりも十分に大きい。しかし、ビデオ符号化での、量子化器は、一般的には、低レートの範囲で動作する。一般的には、多くのオリジナルの変換係数の絶対値は、量子化ステップサイズの非ゼロのどのような倍数よりもゼロに近い。その場合に、ゼロが両方の量子化セット(再構成レベルのセット)に含まれるならば、それは、一般的に好ましい。
【0067】
図8bに図示される2つの量子化セットは、両方ともゼロを含む。セット0では、ゼロと等しい再構成レベルと、ゼロより大きい最初の再構成レベルの間の距離は、量子化ステップサイズと等しく、2つの近隣の再構成レベルの間の他の全ての距離の間は、量子化ステップサイズの2倍と等しい。同じように、セット1では、ゼロと等しい再構成レベルと、ゼロより大きい最初の再構成レベルの間の距離は、量子化ステップサイズと等しく、2つの近隣の再構成レベルの間の他の全ての距離の間は、量子化ステップサイズの2倍と等しい。両方の再構成セットがゼロのまわりで非対称形であることに注意すべきである。それが正確に符号の可能性を推定することを難しくするので、これは非効率になるかもしれない。
【0068】
再構成レベルの2つのセットのためのもう一つの構成が、図8cに示される。セットされる(数字のセット0とされる)最初の量子化に含まれる再構成レベルは、量子化ステップサイズの偶数の整数の倍数を意味する(このセットが、実際には、図8aの中のセット0と同じであることに注意すべきである)。セットされる(数字のセット1とされる)第2の量子化は、すべての量子化ステップサイズの奇数の整数の倍数を含み、そして、さらに、再構成レベルは、ゼロに等しい。両方の再構成セットは、ゼロについて対称形であることに注意すべきである。ゼロと等しい再構成レベルは、両方の再構成セットに含まれる、そうでなければ、再構成セットは互いに素である。両方の再構成セットの結合は、量子化ステップサイズのすべての整数の倍数を含む。
【0069】
1は、図8に示される構成に制限されない。再構成レベルのどのような他の2つの異なるセットも、使用することができる。複数の再構成レベルは、両方のセットに含まれていてもよい。または、両方の量子化セットの結合は、量子化ステップサイズのすべての起こり得る整数の倍数を含まなくてもよい。さらに、変換係数の従属スカラー量子化のために2セット以上の再構成レベルを使うことができる。
【0070】
選ばれた再構成レベルのシグナリングに関しては、以下に注意すべきである。許容可能な再構成レベルの間のステップ64の中での符号化器の選択は、ビットストリーム14の中に示されなければならない。従来の独立スカラー量子化のように、これは、変換係数レベルとも呼ばれる、いわゆる量子化インデックス56を用いて達成されることができる。量子化インデックス(または、変換係数レベル)は、量子化セット48の内部(すなわち、再構成レベルのセットの内部)で利用できる再構成レベルを個々に確認する整数番号である。量子化インデックスは、ビットストリーム14の一部として、デコーダに送られる(例えば、どのようなエントロピー符号化技術をも使用して)。デコーダ側で、再構成された変換係数は、再構成レベル(そしてそれは、符号化/再構成の順序の前の量子化インデックス58によって決定54される)、そして、現在の変換係数のための送信された量子化インデックス56の現在のセット48に基づいて、個々に計算されることができる。
【0071】
実施の形態では、再構成レベルのセット48(または、量子化セット)の内部の再構成レベルの量子化インデックスの割り当ては、以下のルールに従う。説明のために、図8の中の再構成レベルは、関連する量子化インデックスを用いて割り振られる(量子化インデックスは、再構成レベルを示す円の下で数によって与えられる)。再構成レベルのセットが0と等しい再構成レベルを含むならば、0と等しい量子化インデックスは0と等しい再構成レベルに割り当てられる。1に等しい量子化インデックスは、0以上の最も小さい再構成レベルに割り当てられ、2に等しい量子化インデックスは、0以上の次の再構成レベル(すなわち、0以上の2番目に小さい再構成レベル)などが割り当てられる。または、言い換えると、0以上の再構成レベルは、それらの値の順序を増やす際に、0以上の整数番号(すなわち、1、2、3などを用いて)が割り振られる。同様に、量子化インデックス-1は、0未満の最大の再構成レベルが割り当てられ、量子化インデックス-2は、0未満の次の(言い換えると、2番目に大きい)再構成レベル、など割り当てられる。または、言い換えると、0未満の再構成レベルは、それらの順序を減少させる際に、0未満の整数番号(すなわち-1、-2、-3など)が割り振られる。図8の中の例のために、図8aの中のセット1(0と等しい再構成レベルを含まない)を除いて、量子化インデックスの記述された割り当ては、すべての量子化セットのために例示される。
【0072】
0と等しい再構成レベルを含まない量子化セットのために、再構成レベルに量子化インデックスを割り当てる1つの方法は、以下のようなものである。0以上のすべての再構成レベルは、0以上の量子化インデックスを用いて割り振られる(それらの値の順序を増やすことで)、0未満のすべての再構成レベルは、0未満の量子化インデックスを用いて割り振られる(値の順序を減少させることで)。それゆえに、量子化インデックスの割り当ては、0と等しい量子化インデックスがないという差分を用いて、0と等しい再構成レベルを含む量子化セットのために同じコンセプトに基本的に続く(図8aの中の量子化のセット1に対するラベル参照)。その面は、量子化インデックスのエントロピー符号化で考慮されるべきである。たとえば、量子化インデックスは、しばしば、その絶対値を符号化することによって送信され(0から最大のサポートされた値まで並んでいる)、そして、0と異なる絶対値のために、さらに量子化インデックスの符号を符号化している。0と等しい量子化インデックスが利用できないならば、エントロピー符号化は、1を引いた絶対のレベル(0から最大のサポートされた値までの対応する構文要素のための値)を送信するという方法に変更することができて、符号はいつも送信される。代替案として、再構成レベルに量子化インデックスを割り当てるための割り当てのルールは、修正されることができた。たとえば、ゼロに近い再構成レベルのうち1つは、0と等しい量子化インデックスを用いて割り振られることができた。そして、残りの再構成レベルは、以下のルールによって標識化される:0以上の量子化インデックスは、0に等しい量子化インデックスを用いて、再構成レベル以上の再構成レベルに割り振られる(量子化インデックスは、再構成レベルの値を用いて増加する)。そして、0未満の量子化インデックスは、0に等しい量子化インデックスを用いて、再構成レベル未満の再構成レベルに割り当てられる(量子化インデックスは、再構成レベルの値を用いて減少する)。そのような割り当ての1つの可能性は、図8aの中で括弧の中の数で例示される(括弧の中の数が与えられないならば、他の番号が適用される)。
【0073】
上記のように、実施の形態では、再構成レベルの2つの異なるセット52(我々が量子化セットとも呼ぶ)が、使われ、そして、両方のセット52の内部の再構成レベルは、量子化ステップサイズΔの整数の倍数を意味する。それは、異なる量子化ステップサイズが、変換ブロックの内部の異なる変換係数に使われるケースを含む(たとえば、量子化重み行列を特定することによって)。そして、それは、量子化ステップサイズは、ブロックに基づいて修正されるケースを含む(たとえば、ビットストリームの内部にブロック量子化パラメータを送ることによって)。
【0074】
量子化ステップサイズの整数の倍数を表す再構成レベルの使用により、デコーダ側で変換係数の再構成に対する、計算量の少ない複雑なアルゴリズムが可能になる。これは、以下に図8cの例に基づいて例示される(特に、類似した単純なアルゴリズムが他の構成のためにも存在する、特に、セットが図8aと図8bに示される)。図8に示す構成では、第1の量子化セット、セット0は、量子化ステップサイズのすべての偶数の整数の倍数を含み、かつ、第2の量子化セット、セット1は、0に等しい再構成レベルを加算した量子化ステップサイズのすべての奇数の整数の倍数を含む(そして、それは両方の量子化セットに含まれる)。変換係数13’のための再構成プロセス62は、図9の疑似コードで指定されているアルゴリズムと同様に実装されることができた。
【0075】
図9aの疑似コードでは、level[k]は、変換係数13’に対してデータストリーム14で送られる量子化インデックス56を意味し、かつ、setId[k](0または1と等しい)は、再構成レベルの現在のセット48の識別子を指定する(それは、再構成順序14で前の量子化インデックス58に基づいて決定54され、以下で更に詳細に記述される)。変数nは、量子化ステップサイズの整数の倍数が、量子化インデックスレベル[k]、及びセット識別子setId[k]によって与えられることを表す。変換係数13’が、量子化ステップサイズの偶数の整数の倍数を含む、再構成レベルの第1のセット(setId[k]==0)を使用して符号化されるならば、変数nは、送信された量子化インデックスの2倍である。変換係数13’が、再構成レベルの第2のセット(setId[k]==1)を使用して符号化されるならば、我々は、以下の3つのケースを有する:(a)level[k]が0に等しいならば、nは0とも等しい;(b)level[k]が0より大きいならば、nは1を減算した量子化インデックスlevel[k]の2倍と等しい;(c)、level[k]が0未満であるならば、nは、1を加算した量子化インデックスlevel[k]の2倍と等しい。これは、符号関数を用いて指定されることができる、
【数87】
【0076】
それから、第2の量子化セットが使われるならば、変数nは、符号関数符号(level[k])を減算した量子化インデックスlevel[k]の2倍と等しい。
【0077】
一度、変数n(量子化ステップサイズの整数要素を指定する)が決定されると、再構成変換係数
【数88】
、つまり、現在の係数13’は、量子化ステップサイズ
【数89】
を用いて、nを乗算することによって得られる。
【0078】
上記のように、量子化ステップサイズ
【数90】
による正確な乗算の代わりに、再構成された変換係数
【数91】
は、整数近似によって得られることができる。これは、図9bの中の疑似コードで例示される。ここでは、可変的な“シフト”は、右へのビットシフトを意味する。その値は、一般的に、ブロックに対する量子化パラメータだけで決まる(しかし、シフトパラメータは、ブロックの内部の異なる変換係数に対して変化させることも可能である)。可変的なscale[k]は、変換係数
【数92】
に対するスケーリング要素を意味し;ブロック量子化パラメータに加えて、例えば、量子化重み行列の対応する項目によって決まる。可変的な“add”は相殺される端数処理を指定する、それは、一般的に、add=(1<<(shift-1))に等しく設定される。
図9bの疑似コードで指定された整数演算(最後の線)は、
【数93】
によって与えられた、量子化ステップサイズ
【数94】
を用いた乗算に等しい、端数処理の例外を用いていることに注意すべきである。
【0079】
図9aに関連する図9bのもう一つの変調は、再構成レベルの2つのセットの間の切り替えが、C言語のようなプログラム言語から分かる、3つから成るif-then-else演算子(a?b:c)を用いて実装され、変調は、逆にされることができて、しかし、図9aにも適用されることができた。
【0080】
上述の再構成レベルのセット52の選択の他に、従属スカラー量子化のもう一つの重要な設計の面は、定義された量子化セット(再構成レベルのセット)間を切り替えるために使われるアルゴリズム54である。使用されるアルゴリズム54は、変換係数のN次元空間20(そして、このように、また、再構成されたサンプルのn次元空間20の中でも)で達成されることができる“記録密度”を決定する。結局、より高い記録密度は、符号化効率を増加させる結果を生じさせる。選択プロセス54は、それぞれの変換係数に対して、一定の選択のルールを用いてもよく、再構成レベルの選ばれたセットは、以下に記述するように、符号化順序の中のすぐ前の再構成レベルの特定の番号によって決まる(この数は、典型的に2である)。このルールは、以下でさらに概説されるように、状態の遷移表または格子構造を用いて実装されてもよい。
【0081】
次の変換係数に対する再構成のセット48を決定54する特に典型的な方法は、特定の例のために図10aに図示されるように、量子化セット52を分割することに基づいている。図10aに示される量子化セットは、図8cの中のものと同じ量子化セットであることに注意すべきである。2つの(または、より多くの)それぞれの量子化セット52は、2つのサブセットに分割される。図10aの中の例に対して、第1の量子化セット(セット0とされる)は、2つのサブセット(AとBとされる)に分割され、そして、第2の量子化セット(セット1とされる)も、2つのサブセット(CとDとされる)に分割される
。たとえそれが唯一の可能性でないとしても(選択肢は後述する)、それぞれの量子化セットに対する分割は、典型的に、すぐ近隣の再構成レベル(及び、このような、近隣の量子化インデックス)を異なるサブセットと関連させる手段で行われる。実施の形態では、それぞれの量子化セットは、2つのサブセットに分割される。図8、及び10aでは、量子化セットのサブセットへの分割は、隙間があり、かつ中が充填された円によって示される。
【0082】
図10aと図8cに図示される実施の形態のために、以下の分割ルールが適用される:
・サブセットAは、量子化セット0のすべての偶数の量子化インデックスから成る;
・サブセットBは、量子化セット0のすべての奇数の量子化インデックスから成る;
・サブセットCは、量子化セット1のすべての偶数の量子化インデックスから成る;
・サブセットDは、量子化セット1のすべての奇数の量子化インデックスから成る。
使用されたサブセットは、典型的には、ビットストリームの内部に明示されないことに注意すべきである。代わりに、それは、使われた量子化セット(例えば、セット0、または、セット1)、及び実際に送信された量子化インデックスに基づいて抽出されることができる。図10aに示される分割のために、サブセットは、ビットごと、"and”、変換インデックスレベルの動作、and1によって抽出されることができる。サブセットAは、0に等しい、(レベル&1)に対する、セット0のすべての量子化インデックスから成り、サブセットBは、1に等しい、(レベル&1)に対する、セット0のすべての量子化インデックスから成り、サブセットCは、0に等しい、(レベル&1)に対する、セット1のすべての量子化インデックスから成り、かつサブセットDは、1に等しい、(レベル&1)に対する、セット1のすべての量子化インデックスから成る。
【0083】
実施の形態では、現在の変換係数を再構成するために用いられる、量子化セット(許容可能な再構成レベルのセット)は、最後の2つ以上の量子化インデックスと関連するサブセットに基づいて決定される。例として、使用される、2つの最後のサブセット(そしてそれは、最後の2つの量子化インデックスによって与えられる)は、図10bの表に示される。表は、以下のように読まなければならない:第1の表の列の中に与えられた、第1のサブセットは、すぐ前の係数に対するサブセットを表し、そして、第1の表の列の中に与えられた、第2のサブセットは、すぐ前の係数に先行する係数に対するサブセットを表す。この表で特定された量子化セット48の決定54は、特定の実施の形態を意味する。他の実施の形態では、現在の変換係数13’のための量子化セット48は、最後の3つ以上の量子化インデックス58を伴うサブセットで決定される。変換ブロックの第1の変換係数に対して、我々は、先行する変換係数のサブセットについてのどのようなデータをも有しない。実施の形態では、あらかじめ定義された値が、これらの場合使用される。更なる実施の形態では、我々は、すべての非利用可能な変換係数に対するサブセット A を推定する。つまり、我々が最初の変換係数を再構成するならば、2つの前のサブセットは「 AA 」として推定されて、このように、図10bの表と一致する、量子化セット0は使用される。第2の変換係数に対しては、すぐ前の量子化インデックスのサブセットは、その値によって決定される(セット0は、第1の変換係数にために使われ、サブセットは、A、または、Bのいずれか一方なので)、しかしながら、第2の最後の量子化インデックス(存在しない)は、Aと等しいと推定される。もちろん、他のどのルールも、非存在の量子化インデックスに対するデフォルト値を推定するために使われることができる。非存在の量子化インデックスに対するデフォルトサブセットを抽出するための他の構文要素を使用することもできる。さらに別の方法として、初期化のための前の変換ブロックの最後の量子化インデックスを使用することもできる。たとえば、変換係数の従属量子化のコンセプトは、従属を、変換ブロックの境界を超えて適用するという手段で用いられてもよい(しかし、CTUs、または、スライス、画像などのようなより大きいブロックの境界に限られる)。
【0084】
量子化インデックスのサブセット(A、B、C、または、D)は、量子化セット(セット0、または、セット1)、そして、量子化セット(例えば、セット0に対するA、または、B、及びセット1に対するC、または、D)を用いることによって決定されることに注意すべきである。量子化セットの中の選ばれたサブセットは、パス(path)とも呼ばれる(後述するように、我々が従属量子化プロセスを格子構造として表わすならば、それがパスを指定するので)。我々の慣例では、パスは0または1と等しい。それから、サブセットAは、セット0の中のパス0と一致し、サブセットBは、セット0の中のパス1と一致し、サブセットCは、セット1の中のパス0と一致し、サブセットDは、セット1の中のパス1と一致する。それゆえに、係数13’に続く、次の変換係数に対する量子化セット48は、また、量子化セット(セット0、または、セット1)、そして、現在の係数13’の2つ(または、それ以上の)最後の量子化インデックス58を伴うパス(パス0.または、パス1)によって、個々に決定され、1つ前に、または、代わりとして、係数13’のためのセット48は、2つの前の係数13’に対するインデックス58によって決まることにより決定される。図10bの表で、関連する量子化セット、及びパスは、第2の列で指定される。第1の列に関しては、第1の項目は、すぐ前の係数に対するセット、及びパスを表し、そして、第2の項目は、すぐ前の係数に先行する係数に対するセット、及びパスを表す。
【0085】
パスは、しばしば、単純な算術演算によって決定されることに注意すべきである。
例えば、図10aに示される構成のために、パスは、
【数95】
によって与えられる。
ここで、level[k]は、量子化インデックス(変換係数レベル)、及び演算子&は、ビットごとの“and”を指定する(2の補数の整数演算で)。
【0086】
可変的なパスは、前の量子化インデックス(変換係数レベル)level[k]のどんなバイナリ関数path=binFunction(level[k])としても定義されることができる。例えば、代わりの機能として、我々は、最後の変換係数レベルが0と等しいならば、可変的なパスがゼロと等しく、そして、最後の変換係数レベルが0と等しくないならば、可変的なパスが1と等しいことを意味する、
【数96】
を使用することができる。この定義で、サブセットAは、第1の量子化セットの中の0に等しい量子化インデックスを表し、サブセットBは、第1の量子化セットの中のすべての非ゼロ量子化インデックスを表し、サブセットCは、第2の量子化セットの中の0に等しい量子化インデックスを表し、サブセットDは、第2の量子化セットの中のすべての非ゼロ量子化インデックスを表す。しかし、上記のように、サブセットの中の2つの量子化セットの他のどのような分割、及びこのような、パスのための他のどのようなバイナリ関数も可能である。
【0087】
量子化セット(セット0、及びセット1)の間の変換は、状態関数によって十分に表すことができる。そのような状態変数の例は、図10bの表の最後の列に示される。この例では、状態変数は、4つの可能性がある値(0,1,2,3)を有する。一方で、状態変数は、現在の変換係数に使われる量子化セットを指定する。図10bの表の例では、、状態変数が0、または、1と等しい場合に限り、量子化セット0が使われ、状態変数が2、または、3と等しい場合に限り、量子化セット1が使われる。他方で、状態変数は、また、量子化セットの間の可能性がある変換を特定する。状態変数を用いることによって、図10bの表のルールは、小さな状態変換表で記述することができる。例のように、図10cの表は、図10bの表の中に与えられたルールに対する状態変換表を特定する。現在の状態が与えられると、それは、現在の変換係数(第2の列)に対する量子化セットを特定する。それは、さらに、選ばれた量子化インデックスを伴うパスに基づいて、状態変換を特定する(量子化セットが与えられたならば、パスは、使われたサブセットA,B,C,Dを特定する)。状態変数のコンセプトを用いることによって、それが実際に選ばれたサブセットを保持する必要はないことに注意すべきである。ブロックのために変換係数を再構成する際には、状態変数をアップグレードし、そして、使われた量子化インデックスのパスを決定するには十分である。
【0088】
実施の形態では、パスは、量子化インデックスのパリティによって与えられる。
現在の量子化インデックスになる
【数97】
を用いて、それは、
【数98】
に従って決定されることができる。ここで、演算子&は、ビットごとの2の補数の整数演算の“and”を意味する。しかし、上記したように、最後の変換係数level[k]の他のどのバイナリ関数も、パスを定めるために使われることができる。
【0089】
実施の形態では、4つの可能性がある値を有する状態変数が使われる。他の実施の形態では、異なる数の可能性がある値を有する状態変数が使われる。特に関心があるのは、状態変数に対する可能性がある値が、2の整数の累乗、つまり、4、8、16、32、64などを表すための状態変数である。特定の構成(図10bおよび10cの表の中で与えられるような)において、4つの可能性がある値を有する状態変数は、現在の量子化セットが、最後の2つの量子化インデックスのサブセットによって決定されるアプローチに等しい点に留意する必要がある。8つの可能性がある値を有する状態変数は、現在の量子化セットが、3つの最後の量子化インデックスのサブセットで決定される類似したアプローチと一致する。16の可能性がある値を有する状態変数は、現在の量子化セットが最後の4つの量子化インデックスのサブセットなどによって決定されるアプローチと一致する。たとえ、一般的に、2の整数の累乗と等しい可能性がある値を有する状態変数を使うことが好ましいとしても、この設定には制限はない。
【0090】
状態変数、現在の状態のコンセプトを用いて、このような現在の量子化セット54は、前の状態(再構成順序での)、及び前の量子化インデックスによって個々に決定される。しかし、変換ブロックの第1の変換係数のために、前の状態、及び前の量子化インデックスはない。それゆえに、ブロックの第1の変換係数のための状態が、個々に定められることが必要である。異なる可能性が存在する。状態の置換の設定が0から3である点に注意すべきであり、ここで、この例では、第1の係数の前の2つの前の係数は、実際には存在しない。可能性がある選択は:
・変換ブロック10に対する第1の状態は、常に一定のあらかじめ定義された値と等しく設定される。実施の形態では、第1の状態は、0と等しく設定される。
・最初の状態の値は、ビットストリームの一部としてはっきりと送られる。これは、可能性がある状態の値のサブセットだけは、対応する構文要素によって示されることができるという、アプローチを含む。
・最初の状態の値は、変換ブロック10に対する他の構文要素に基づいて抽出される。つまり、たとえ、対応する構文要素(または、構文要素)がデコーダに他の特徴を伝えるために使われるとしても、それらは、従属スカラー量子化のための第1の状態を抽出するためにさらに使われる。
例えば、以下のアプローチが使われることができる:量子化のエントロピー符号化(上記のcp)で、符号化順序140の中の第1の非ゼロ量子化インデックスの位置は、量子化インデックスの実際の値が送信される前に、送信されることができる(例えば、x、及びy座標を用いて)(符号化順序14の中のこの第1の非ゼロ量子化インデックスに先行するすべての量子化インデックスは送信されず、0と等しいと推定される)。第1の非ゼロの量子化インデックスの位置が、状態変数の初期値を抽出するために、使われることもできる。単純な例が、Mを、符号化順序の中の第1の非ゼロ量子化インデックスの位置によって、0と等しいと指定されない量子化インデックスの数を表すと、そのとき、初期状態は、s=M%4と等しく設定されることができて、ここで、演算子%は、モジュロ演算を意味する。
・状態移行のコンセプトは、変換ブロック境界を越えて適用されることができる。
それは、変換ブロックに対する第1の状態が、符号化順序の中の前の変換ブロックの最後の状態(最終的な状態アップグレードの後)と等しく設定されることを意味する。つまり、第1の量子化インデックスに対しては、前の状態は、最後の変換ブロックの最後の状態と等しく設定され、そして、前の量子化インデックスは、最後の変換ブロックの最後の量子化インデックスと等しく設定される)。換言すると、多数の変数ブロックの変数係数(または、符号化順序が続行しているブロック10の中の送信された第1の非ゼロ量子化インデックスの位置によって、0と等しいと推定されない変数係数のサブセット)は、従属スカラー量子化のための結合体として取り扱われる。特定の条件が満たされる場合だけ、多数の変換ブロックは、結合体とは取り扱われない。例えば、それらが動作を分割している最新ブロックによって得られるブロックを表す(すなわち、それらは、最後の分割レベルによって得られるブロックを表す)場合だけ、多数の変換ブロックは、結合体とみなされてもよく、そして/あるいは、それらは、画像内の符号化されたブロックを表す。
【0091】
従属スカラー量子化のための状態の遷移のコンセプトは、デコーダで変換係数の再構成に対する複雑さの低い実現を可能にする。単独の変換ブロックの変換係数の再構成プロセスの例は、Cスタイルの疑似コードを使用して図11に示される。
【0092】
図11の疑似コードでは、インデックスkは変換係数13の再構成命令14を特定する。符号の例では、インデックスkが再構成順序14で減少する点に注意すべきである。再構成順序の最後の変換係数は、インデックスをk=0と等しくする。第1のインデックスkstartは、第1の再構成された変換係数の再構成インデックス(または、より正確に、逆の再構成インデックス)を特定する。可変的なkstartは、1を引いた変換ブロックで変換係数の数と等しく設定されてもよく、または、それは、符号化/再構成順序で、第1の非ゼロの量子化インデックスのインデックスと等しく設定されてもよい(たとえば、第1の非ゼロの量子化インデックスの位置が適用されたエントロピー符号化方法で送られるならば)。後者の場合、すべての前の変換係数(インデックスk>kstartを用いて)は、0と等しいと推定される。それぞれの単一の変換係数に対する再構成プロセスは、図9bの例で同じである。図9bの中の例に関しては、量子化インデックスは、level[k]によって表され、そして、関連する再構成された変換係数はtrec[k]によって表される。
【0093】
状態変数は、“state”によって表される。図11の例で、状態は、変換ブロックの始めに0と等しく設定されることに注意すべきである。しかし、上述したように、他の初期化(たとえば、いくつかの構文要素の値に基づく)は可能である。1d表setId[]は、状態変数の異なる値を伴う量子化セットを指定し、そして、2d表state_trans_table[][]は、現在の状態(第1の独立変数)と(第2の独立変数)によって与えられる状態の移行を指定する。例では、パスは、量子化インデックスのパリティによって与えられる(ビットごとに、及び演算子&を用いて)、しかし、上述のように、他のコンセプト(特に、level[k]の他のバイナリ関数)は可能である。表setId[]、及びstate_trans_table[][]に対するCスタイルの構文の中の例は、図12の中に与えられる(これらの表は、図10cの表と同一である)。
【0094】
次の状態を決定するための表state_trans_table[][]を使う代わりに、同じ結果を与えている算術演算を使用することができる。同様に、表setId[]は、算術演算を使って実装されることもできる(挙げられた例のために、表の値は、右に1つビットシフトすることによって、すなわち“state>>1”によって表されることができる)。または、1d表setId[]、及び符号関数を用いた表検索の組合せは、算術演算を使って実装されることができた。
【0095】
もう一つの実施の形態では、0に等しいすべての量子化インデックスは、状態の遷移と従属する再構成プロセスから除外される。変換係数をゼロと非ゼロの変換係数に分割するための、量子化インデックスが0と等しい、または、等しくないかどうかの情報が、主に使用される(おそらく最初の非ゼロの量子化インデックスの位置に関連して)。従属スカラー量子化のための再構成プロセスは、非ゼロの量子化インデックスの順序集合に適用されるだけである。0と等しい量子化インデックスを伴う変換係数は、単に0と等しく設定される。対応する疑似コードは、図13に示される。
【0096】
もう一つの実施の形態では、変換係数のブロックは、サブブロック12に分解され(図4参照)、構文は、サブブロックがいくつかの非ゼロの変換係数レベルを含むかどうかを示すフラグを含む。それから、1つの実施の形態では、0と等しい量子化インデックス(対応するフラグで示されるように)を含むだけであるサブブロックの量子化係数は、従属再構成と状態の移行プロセスに含まれる。もう一つの実施の形態では、これらのサブブロックの量子化インデックスは、図7aおよび7bの従属再構成/従属量子化と状態の遷移プロセスから除外される。
【0097】
54で実行される従属量子化の状態の遷移は、図14に図示されているように、格子構造を用いて表されることもできる。図14に示される格子は、図10cの表で指定されている状態の遷移と一致する。それぞれの状態のための、再構成順序の中の次の変換係数に対する2つの可能性がある状態を用いて、現在の変換係数に対する状態を接続する2つのパスが存在する。パスは、パス0、及びパス1を用いたラベルがついており、この数は、上で導入されたパス変数(実施の形態のための、量子化インデックスのパリティに等しいパス変数)と一致する。それぞれのパスが、量子化インデックスのためのサブセット(A、B、C、または、D)を個々に指定することに注意すべきである。図14の中では、サブセットは、括弧で指定されている。初期状態(たとえば状態0)が与えられると、格子によるパスは、送信された量子化インデックスによって個々に指定される。
【0098】
図14の例では、スキャンインデックスkのための状態(0、1、2と3)は、以下の特性を有する(cp.また図15):
・状態0:前の量子化インデックスレベル[k-1]は、セット0の再構成レベルを指定する、そして、現在の量子化インデックスレベル[k]はセット0の再構成レベルを指定する。
・状態1:前の量子化インデックスレベル[k-1]は、セット1の再構成レベルを指定する、そして、現在の量子化インデックスレベル[k]はセット0の再構成レベルを指定する。
・状態2:前の量子化インデックスレベル[k-1]は、セット0の再構成レベルを指定する、そして、現在の量子化インデックスレベル[k]はセット1の再構成レベルを指定する。
・状態3:前の量子化インデックスレベル[k-1]は、セット1の再構成レベルを指定する、そして、現在の量子化インデックスレベル[k]はセット1の再構成レベルを指定する。
【0099】
格子は、いわゆる基本的なトレリスセルの連結から成る。そのような基本的な格子セルのための例は、図15に示される。1つが4つの状態で格子に制限されないことに注意すべきである。他の実施の形態では、格子は、より多くの状態を有することができる。特に、2の整数の累乗を意味する多くの状態は、適切である。たとえ格子が2つ以上の状態を有していても、現在の変換係数に対するそれぞれのノードは、一般的に、前の変換係数に対する2つの状態及び次の変数係数の2つの状態に関連する。しかし、ノードが前の変換係数の2以上の状態または次の変換係数の2以上の状態と関係することも可能である。完全に関係のある格子(それぞれの状態は、すべての前の状態、及び次の変数係数のすべての状態)は、独立スカラー量子化と一致することに注意すべきである。
【0100】
実施の形態では、初期状態は、自由に選択されることができない(デコーダにこの情報を送信するためのいくつかの側面情報レートを必要とするからである)。その代わりに、初期状態は、あらかじめ定義された値へのどちらのセットでもあり、または、その値は、他の構文要素に基づいて抽出される。この場合には、すべてのパス、及び状態が、最初の変換係数(または、最初の非ゼロ変換係数を用いて開始している最初の変換係数)に利用できるというわけではない。4つの状態のトレリスに対する例として、図16は、初期状態が0と等しく設定される場合に対するトレリス構造を示す。
【0101】
従属スカラー量子化の1つの実施例には、変換係数13のための許容可能な再構成レベル(また、量子化セットと呼ばれる)の異なるセット52がある。現在の変換係数のための量子化セット48は、先行している量子化インデックスの値58に基づいて決定54される。我々が図10aの中の例を考慮して、そして、2つの量子化セットを比較するならば、ゼロと等しい再構成レベルと、近隣の再構成レベル間の距離は、セット1よりもセット0のほうが大きいことは明らかである。それゆえに、セット0が使われるならば、量子化インデックスが0と等しいという可能性はより大きい、そして、セット1が使われるならば、それはより小さい。実施の形態では、この影響は、現在の量子化インデックスのために使用される量子化セット(また、状態)に基づくコード名の表、または、確率モデルを切り替えることよって、ビットストリーム14の内部の量子化インデックス56のエントロピー符号化で利用される。このコンセプトは、2進演算コーディングを典型的に使うことにより、図17aおよび17bの中で表される。
【0102】
コード名の表、または、確率モデル、すべての先行している量子化インデックスのパス(使われた量子化セットのサブセットを伴う)の適切なスイッチングは、現在の量子化インデックスのエントロピー復号化(または、現在の量子化インデックスと一致する2値化決定)の際には、知られていなければならない。したがって、変換係数13が、再構成順序14で符号化される必要がある。それゆえに、実施の形態では、変換係数13の符号化順序14は、それらの再構成順序14と等しい。その実施例と比べて、量子化インデックスのどのような符号化/再構成順序も、他のどのような個々の定義された順番である、ビデオ符号化規格H.262|MPEG-2 Video、または、H.264|MPEG-4 AVCで特定されるジグザグスキャン順序、H.265|MPEG-H HEVCで特定される直交スキャン、H.265|MPEG-H HEVCで追加的に特定される、水平または垂直スキャンを可能にする。
【0103】
実施の形態では、量子化インデックス56は、2進演算符号化を使用して符号化される。その目的のために、インデックス56が、そうである非バイナリの量子化は、2値化決定84(一般に2値と呼ばれる)の列82上に最初にマップ80される。量子化インデックス56は、しばしば、絶対値88及び0を超える絶対値のために、符号86として送信される。符号86が単独の2値として送られる間に、絶対値88を2値化決定84の列82上にマップする多くの可能性がある。図18の表で、4つの2値化方法の例が示される。第1は、いわゆる単項の2値化である。ここでは、第1の2値84aは、絶対値が0を超えるかどうかを示す。第2の2値84b(存在するならば)は、絶対値が1以上かどうか、第3の2値84c(存在するならば))は、絶対値が2など以上かどうかなどを示す。第2の例は、指数ゴロム2値化である。そして、それは単項部分90と固定長部分92から成る。第3の例として、2値化スキームが示される。そして、それは指数ゴロム符号を用いて表された、2つの単項の符号化された2値94、及び接尾部分96から成る。そのような2値化スキームが、実際にはしばしば使われる。接尾部分が、pmf(0.5、0.5)を有する一定の確率モデルを用いて符号化される間に、単項の2値94は、一般的に、適応可能な確率モデルを用いて符号化される。単項の2値の数は、2と等しいために制限されない。それは2以上になることもできる、そして、それは、実際には、変換ブロック内の変換係数のために異なることができる。指数ゴロム符号の代わりに、他のどの独自の復号化可能なコードも、接尾辞部分96を表すために使われることができる。たとえば、適応可能なライス符号(または、類似したパラメータ化された符号)が、使用されてもよく、ここで、実際の2値化は、現在の変換ブロックに対して、すでに符号化された量子化インデックスの値によって決まる。図18の中の最後の2値化スキームの例は、また、単項部分98(第1の2値が絶対値が0を超えるかどうかを特定し、かつ、第2の2値が絶対値が1以上かどうかを特定する)を用いて開始する。しかし、次の2値100は絶対値のパリティを特定し、最後に、残りは、指数ゴロム符号102を用いて表される(別々の指数ゴロム符号が、パリティ2値の2つ値のそれぞれのために使われることに注意すべきである)。前の2値化スキームに対して注意しなければならないように、指数ゴロム符号102は、他のどの独自の復号化可能な符号(例えば、パラメータ化されたライス符号、単項符号、または、異なる符号のどのような結合でも)とも交換することが可能であり、そして、98の単項の符号化された2値の数は、増加させる、または、減少することができて、または、変換ブロックで異なる変換係数に適応することさえできる。
【0104】
絶対値に対する少なくとも2値の部分は、一般的に、適用確率モデル(コンテキストとも呼ばれる)を用いて典型的に符号化される。実施の形態では、1以上の2値の確率モデルは、量子化インデックス56が属している対応する変換係数に対する、量子化セット48(または、より一般に、対応する状態変数)に基づいて選択103される。選択された確率モデル、または、コンテキストは、複数のパラメータ、または、すでに送られた量子化インデックスの特性によって決めることができる、しかし、パラメータの1つは、符号化された量子化インデックスに適用される量子化セット48、または、状態である。
【0105】
実施の形態では、変換ブロックの量子化インデックスを送信するための構文は、84aのような2値、または、量子化インデックス56がゼロと等しいかどうか、または、それが0と等しくないかどうかを特定する90、94、98の中の第1の2値を含む。この2値を符号化するために使われる確率モデルは、2以上の確率モデル、または、コンテキスト、または。コンテキストモデルのセットの中から選択される。使われる確率モデルの選択は、対応する量子化インデックスに適用される量子化セット48(すなわち、再構成レベルのセット)によって決まる。もう一つの実施の形態では、確率モデルは、現在の状態変数(使われた量子化インデックスを含む状態変数)、または、換言すれば、量子化セット48、または、2つ(または、それ以上の)すぐ前の係数のパリティ104によって決まる。
【0106】
さらなる実施の形態では、量子化インデックスを送信するための構文は、84b、または、第2の2値90、94、及び98のように、量子化インデックス(変換係数レベル)の絶対値が1以上であるかどうかを特定する2値を含む。この2値を符号化するために使われる確率モデルは、2以上の確率モデルのセットの間で選択された103である。使われる確率モデルの選択は、対応する量子化インデックスに適用される量子化セット48(すなわち、再構成レベルのセット)によって決まる。もう一つの実施の形態では、使われる確率モデルは現在の状態変数(状態変数は、使われた量子化セットを含む)または、換言すれば、量子化セット84、及びすぐ前の係数のパリティ104によって決まる。
【0107】
もう一つの実施の形態では、変換ブロックの量子化インデックスを送信するための構文は、量子化インデックスがゼロと等しいかどうか、または、ゼロと等しくないのかを特定する2値、及び量子化インデックス(変数係数レベル)の絶対値が1以上かどうかを特定する2値を含む。両方の2値に対する確率モデルの選択103は、現在の量子化インデックスに対する量子化セット、または、状態変数によって決まる。代わりに、第1の2値の確率モデルの選択103(すなわち、量子化インデックスがゼロと等しいか、または、等しくないかどうかを示す2値)だけは、現在の量子化インデックスに対する量子化セット、または、状態変数によって決まる。
【0108】
量子化セット48、または、48、及び104を決定している状態変数は、(少なくとも)、符号化順序の中の先行している量子化インデックスに対するパス変数(パリティによって与えられる)が既知であれば、確率モデルを選ぶために使用されることができるだけである、これは、たとえば、量子化インデックスが、それぞれのサブブロックに対して、4x4サブブロックに基づいて符号化される場合ではなければ、変換係数の4x4配置 上の対応する複数のパスを用いて、量子化インデックスを送信することは、HEVCに類似する。HEVCでは、4x4サブブロック上の第1のパスの中で、フラグsig_coeff_flagは、送信され、そして、それは対応する量子化インデックスが、ゼロと異なるかどうかを示す。第2のパスでは、1に等しいsig_coeff_flagを有する係数に対する、フラグcoeff_abs_level_greater1_flagが送信され、そして、それは対応する量子化インデックスの絶対値が、1以上かどうかを示す。これらのフラグの多くても8つは、サブブロックに対して送信される。次に、フラグcoeff_abs_level_greater2_flagは、1と等しいcoeff_abs_level_greater1_flagを用いて、第1の量子化インデックス(もしあれば)に対して送信される。そして、符号フラグは、サブブロック全体のために送信される。そして、最後に、非2値化の構文要素coeff_abs_level_remainingは送信され、量子化インデックス(変数係数レベル)の絶対値に対する残差を特定する。非2値化の構文要素coeff_abs_level_remainingを送信するために、適応可能なライス符号が使用されてもよい。この場合には、第1のパスの中の48及び104を決定するための十分な情報が存在しない。
【0109】
再構成レベル(または、状態変数)の現在のセットによって決まる確率モデルの選択に使うために、2値の符号化順序は、変わらなければならない。
【0110】
2つの基本的な特性があり:
・実施の形態では、量子化インデックスの絶対値88を特定するすべての2値82は、連続して符号化される。その手段、符号化/再構成順序14の中のすべての先行している量子化インデックス56の2値82(絶対値88に対する)は、現在の量子化インデックスの第1の2値が符号化される前に符号化される。符号2値86は、すなわち、パス14に沿って、変換係数13上の第2のパスの中で、符号化されてもよく、または、符号化されなくてもよい(実際には、量子化セットを用いて決まってもよい)。サブブロックに対する符号2値は、サブブロックの絶対値に対する2値の後ではあるが、次のサブブロックに対するどのような2値の前に符号化されてもよい。この場合には、LSBのような前の絶対の量子化インデックスの2値化の表現の最下位ビット部分は、選択54を制御するのに用いられてもよい。
・もう一つの実施の形態では、量子化インデックスの絶対値を特定する2値のサブセットだけが、変換係数上の第1のパスの中で連続的に符号化される。しかし、これらの2値は、量子化セット(または、状態変数)を個々に指定する。残りの2値は、変換係数上の一つ以上のさらなるパスの中で符号化される。そのようなアプローチは、たとえば、図18の表の右の列の中に示された1つに類似した、2値化スキームに基づいて可能である。これは、特に、2値化が明確なパリティフラグを含むアプローチ(図18の右の列で例示された1つの例として)を含む。我々は、パスが量子化インデックスのパリティによって指定されると仮定するならば、それは変換係数上の第1のパスで単項部分98、パリティ2値100を送るのに十分である。しかし、第1のパスが一つ以上のさらなる2値を含むことは可能である。102に含まれる残りの2値は、一つ以上のさらなるパスで送信されることができる。他の実施の形態では、類似したコンセプトが使われる。たとえば、単項の2値の数は、すでに送信されたシンボルに基づいて、すなわち、パス14に沿って、修正、または、構成されることさえ可能である。そして、異なる適応可能な、または、非適応可能な符号(たとえば、H.265|MPEG-H HEVCのように適応可能なライス符号)が、指数ゴロム符号の代わりに使われることができる。異なるパスは、サブブロックに基づいて使われることができて、サブブロックのための2値は複数のパスで符号化される、しかし、次のサブブロックのどんな2値でも送信される前に、サブブロックのすべての2値は送信される。
【0111】
図17bは、量子化インデックス56の復号化プロセスの方法であり、このように、図17aの逆を示す。2値82のエントロピー復号化85’、及びレベル56への2値82のマッピング80(2値化の逆)は、反対を実行し、そして、同じ方法でのコンテキスト抽出103である。
【0112】
注意すべき1つの面は、量子化インデックス(量子化レベルとも呼ばれる)の2値化の表現の一つ以上の2値に対する確率モデルの選択が、量子化セット48によって決まる、すなわち、パス14に沿って(適用可能な再構成レベルのセット)、または、現在の量子化インデックスに対する一致する状態変数、すなわち、48、及び104のときには、変換係数の従属量子化が、エントロピー符号化と有利に結合されてもよいということである。量子化セット48(または、状態変数)は、符号化、及び再構成順序の中の前の変換係数に対する量子化インデックス(または、量子化インデックス表している2値のサブセット)によって与えられる。
【0113】
いくつかの実施の形態に従って、確率モデルの記述された選択は、1以上の以下のエントロピー符号化の実施例と結合される:
・変換ブロックに対するフラグの送信は、変数ブロックに対するいずれかの量子化インデックスがゼロと等しくないのかどうか、または、変数ブロックに対するすべての量子化インデックスがゼロと等しいのかを特定する。
・複数のサブブロックの中の変換ブロックの係数を分割すること(少なくとも、ブロックのサイズ、または、含まれたサンプルの数によって与えられる、所定の定義されたサイズを超える変換ブロック10のために)。変換ブロックが複数のサブブロックに分割されるならば、1つ以上のサブブロック12の1つ以上のために、フラグは送信され(それがすでに送信された構文要素に基づいて推定されない限り)、サブブロックが非ゼロの量子化インデックスを含むかどうかを特定する。サブブロックも、2値の符号化順序を特定するために、使われてもよい。たとえば、2値の符号化は、サブブロック12に分割されることができて、そのため、次のサブブロックのどんな2値でも送信される前に、サブブロックのすべての2値は符号化される。しかし、特定のサブブロックのための2値は、このサブブロックの内部の変換係数上の複数のパスの中で符号化されることができる。たとえば、サブブロックに対する量子化インデックスの絶対値を特定している、すべての2値は、どのような符号2値も符号化される前に、符号化されてもよい。上述したように、絶対値に対する2値は、複数のパスに分割されることができる。
・符号化順序の中の最初の非ゼロの量子化インデックスの位置の送信。位置は、変換係数13の2d配列の中の位置を指定しているxとy座標として送信されることができて、それはスキャン順序の中のインデックスとして送信されることができて、または、それは他のどの手段でも送信されることができる。図19aに図示されるように、符号化順序14(図19でハッチされていない)の中の確認された係数120に先行する、すべての変数係数を特定する、符号化順序14の中の最初の非ゼロの量子化インデックス120(または、変換係数120)の送信された位置は、ゼロと等しいと推定される。更なるデータ15は、特定された場所120での係数のために送信されるだけであり、そして、符号化順序14(図19でハッチされてマークされた)の中のこの係数120に続く係数である。図19aの中の例は、4x4サブブロック12を有する、16x16変数ブロック10を示し;使われた符号化順序14は、H.265| MPEG-H HEVCの中で特定された、サブブロックごとの直交スキャンである。特定された場所での量子化インデックス56に対する符号化(符号化順序120の中の最初の非ゼロの係数)が特別であってもよいことに注意すべきである。たとえば、量子化インデックスの絶対値に対する2値化が、量子化インデックスが0と等しくないかどうかを特定する2値を備えるならば、この2値は、特定された場所での量子化インデックスに対する送信ではなく(係数は、0と等しくないことはすでに既知である)、その代わりに、2値は、1と等しいと推定される。
・量子化インデックスの絶対値は、適応確率モデルを用いて符号化された、いくつかの2値から成る、2値化スキームを用いて送信され、そして、適応可能な符号化された2値が、絶対値をすでに完全に特定しないならば、92、96、及び102のような接尾部分は、算術符号化エンジン(すべての2値のためのpmf(0.5、0.5)による非適応可能な可能性モデル)のバイパスモードで符号化される。接尾部分のために使われる2値化は、さらに、すでに送信された量子化インデックスの値によって決まってもよい。
・量子化インデックスの絶対値のための2値化は、84a、または、90、94、及び98の中の最初のもののように、量子化インデックスが0と等しくないかどうかについて特定する適応的に符号化された2値を含む。この2値を符号化するために使われる確率モデル(また、コンテキストと呼ばれる)は、候補確率(コンテキスト)モデルのセットの中から選択される。選択された候補確率モデルは、量子化セット48(適用可能な再構成レベルのセット)、または、現在の量子化インデックスに対する状態変数(48、及び104)によって決定されるだけではなく、これに加えて、それは、符号化順序16の現在の量子化インデックスに先行している係数13の変換ブロック10、または、インデックス56(または、そのパーツ)に対して、すでに送信された量子化インデックス(または、上述の、量子化インデックスの一部を特定している2値)によっても決定される。実施の形態では、量子化セット48(または、状態変数)は、利用可能な確率モデルのサブセット(また、コンテキストセットと呼ばれる)を決定し、そして、量子化インデックスのためのすでに符号化された2値の値は、このサブセット(コンテキストセット)の中の、使われた確率モデルを決定する。最初の実施の形態では、コンテキストセットの内部の確率モデルは、近隣のサブブロックのcoded_subblock_flag(サブブロックが、非ゼロの量子化インデックスを含むかどうか特定する)の値によって決定される(H.265|MPEG-H HEVCに類似して)。
・もう一つの実施の形態では、コンテキストセットの中の使われた確率モデルは、現在の変数係数の近隣の領域122の中の、すでに符号化された量子化インデックスの値(または、量子化インデックスのためのすでに符号化された2値)に基づいて決定される。そのような近隣の領域のための例は、表122と呼ばれてもよく、図19bに示される。図では、現在の変換係数13‘は、黒で記され、そして、近隣の領域122は、ハッチされて示される。以下に、リスト化されたいくつかの対応例が、近隣の領域の中の、量子化インデックスの値(または、現在の2値の前に送信された2値によって与えられた、部分的な再構成された量子化インデックス)に基づいて、抽出されることができて、そして、その後に、予め定められたコンテキストセットの確率モデルを選ぶために使われる:
・量子化インデックスの数は、近隣の領域122の内部で0とは等しくない。この数は、おそらく最大値に止められることができる;そして/あるいは、
・近隣の領域122の量子化インデックスの絶対値の合計。この数は、最大値に止められることができる;そして/あるいは、
・近隣の領域での量子化インデックスの絶対値の合計と、近隣の領域の内部の0と等しくない多くの量子化インデックスの数の違い。この数は、最大値に止められることができる。複数のパス(上述のように)で送信された、量子化インデックスの絶対値に対する2値の符号化順序に対して、上述された測定は、送信された2値を用いて計算される。これは、完全な絶対値(既知ではない)の代わりに、部分的に再構成された絶対値が使われることを意味する。
このコンテキストでは、量子化インデックス(ビットストリーム内部に送信された整数番号)の代わりに量子化ステップサイズの整数因子が、使われることができる。これらの因子は、図9a、図9b図11、及び図13の中の疑似コード例の中の変数nである。それらは、再構成された変換係数、及び量子化ステップサイズの商の整数部を表す(最も近い整数に端数処理された)。
さらに、復号化が利用可能な他のデータが、所定のコンテキストセットの内部の
確率モデルを抽出するために使われることができる(はっきりと、または、上でリスト化
された測定を用いる結合の中で)。そのようなデータは以下を含む:
・ブロック10の現在の変換係数13‘(x座標、y座標、対角線の数、または、それについてのどのような組合せでも)の位置。
・現在のブロック10のサイズ(垂直サイズ、水平サイズ、サンプルの数、または、それについてのどのような組合せでも)。
・現在の変換ブロック16のアスペクト比。
・量子化インデックスの絶対値のための2値化は、量子化インデックスの絶対値が1以上かどうかを特定する適応的に符号化された2値を含む。この2値を符号化するために使われる確率モデル(コンテキストとも呼ばれる)は、一組の候補確率モデルの中から選択される。測定された確率モデルは、量子化セット48(許容可能な再構成レベル)、または、現在の量子化インデックスに対する状態変数、すなわち、48、及び104で測定されるだけではなく、それは、また、または、独占的に、変換ブロックに対してすでに送信された量子化インデックスで決定される。実施の形態では、量子化セット(または、状態変数)は、利用可能な可能性モデルのサブセット(また、コンテキストセットとも呼ばれる)を決定し、そして、すでに符号化された量子化インデックスのデータは、このサブセット(コンテキストセット)の中の使われた確率モデルを決定する。もう一つの実施の形態では、同じコンテキストセットが、すべての量子化セット/状態変数のために使われ、そして、すでに符号化された量子化インデックスのデータは、使われた可能性モデルを決定する。確率モデルを選択するために、上述の方法のどれでも(量子化インデックスが0と等しくないかどうかを特定している2値のために)使われることができる。
【0114】
従属、及び独立スカラー量子化間の適応可能な選択は、適用されてもよい。ある実施態様では、従属量子化(そして、潜在的に、量子化インデックスのエントロピー符号化に適用される)による変換符号化は、すべての変換ブロックに適用される。例外は、変換を含まないロスレス符号化モード(すなわち、どのような量子化もない)、または、変換を含まない、符号化されたモードである。
【0115】
コーデックは、変換符号化の2つの方法:(a)独立スカラー量子化を用いる、従来の変換符号化と、(b)従属量子化を用いる変換符号化と、を備えることも可能である。変換ブロックのために用いられる、どちらの変換符号化方法(独立、または、従属スカラー量子化を用いる、変換符号化)も、適切な構文要素を用いてデコーダに明確にシグナリングされてもよく、または、構文要素に基づいて、抽出されてもよい。従属量子化を用いる変換符号化が可能かどうかは、最初に明確にシグナリングされることも可能であり、そして、それから、(可能であれば)、従属量子化を用いる変換符号化が実際に変換ブロックのために使われるかどうかは、他の構文要素に基づいて抽出される。
【0116】
明確なシグナリングは、以下の方法の一つ以上を備えていてもよい:
・高水準構文要素(一般的には、フラグ)は、従属量子化を用いる変換符号化、または、独立スカラー量子化を用いる従来の変換コーディングが、使われるのかどうかを示す、例えば、シーケンスパラメータセット、画像パラメータセット、または、スライスヘッダのような高水準構文構造で送信される。このコンテキストでは、輝度、または、彩度ブロック(または、より一般的な特定のカラーチャンネルのブロック)に対する、可能な/不可能なだけの、従属量子化の使用が可能である。もう一つの実施の形態では、高水準構文要素は、従属量子化を用いる変換符号化が符号化されたビデオシーケンス、画像、または、スライスに対して可能かどうかを示す(従属量子化を用いる変換符号化が、輝度、または、彩度ブロックのために可能であるだけであることも可能である)。従属量子化を用いる変換符号化が符号化されたビデオシーケンスに対して可能であるならば、ブロックのために使われてもよい、画像、または、スライス、変換符号化の実際の決定は、特定のブロックパラメータに基づいて抽出されてもよい(以下参照)。また、専用の構文要素が、輝度と彩度ブロックの異なるセッティングをシグナリングするために使われてもよい。
・構文は、従属量子化を用いる変換符号化、または、従来の変換符号化が、対応するブロックに対して使われるのかどうかを特定する、低レベル構文要素(すなわち、ブロックに基づいた構文要素)を含んでもよい。そのような構文要素は、CTUに基づいて、CUに基づいて、変換ブロックなどに基づいて送信されてもよい。そのような構文要素が、複数の変換ブロックを含む実体のために符号化されるならば、それは、すべての含まれた変換ブロックに適用される。それは、しかし、特定の色チャンネル(例えば、輝度ブロックだけ、または、彩度ブロックだけ)の変換ブロックに適用されるだけであってもよい。
【0117】
明確なシグナリングに加えて、変換ブロックが、変換係数の従属、または、独立量子化を使用して符号化されるかどうかの決定は、対応するブロックに対するパラメータに基づいて抽出されることができた。ブロックの変換係数に対する実際の量子化インデックスが送信される前に、これらのパラメータは符号化されなければならない(または、他のすでに送信された構文要素に基づいて抽出される)。他の可能性の間で、ブロック適応可能な決定は、以下のパラメータの一つ以上に基づくことができた:
・ブロック量子化パラメータ:例えば、特定の閾値(高水準構文構造でも示されてもよい)より少ない量子化パラメータ(QP)を有するブロックのために、従属する量子化を用いる、変換符号化が使われ、そして、閾値以上のQPによるブロックに対する、独立スカラー量子化で符号化している従来の変換が使われる。
・符号化順序の中の最初の非ゼロの量子化インデックスの位置:最初の非ゼロの係数の位置を与えられ、実際に送信された量子化インデックスの数(最初の非ゼロの量子化インデックスの送信された位置に基づいて0と等しいと推定される量子化インデックスを除外する)は、抽出されることができる。例えば、従属量子化が、ブロックに対する、閾値よりも大きい実際に送信された量子化インデックスの番号がどれにインデックスを使われ(閾値は、ブロックのサイズ、または、ブロックの内部のサンプルの数によって決まってもよく、または、決まらなくてもよい)、すべての他のブロックに対して、独立スカラー量子化は使われる。最初の非ゼロの係数の位置に加えて、サブブロックが非ゼロの量子化インデックスを含むかどうか示しているフラグは、実際の送られた量子化インデックスの数を決定するために使われることができる。この場合、いわゆる符号化されたサブブロックフラグ(サブブロックが非ゼロの係数を含むかどうか示す)は、最初の量子化インデックスが符号化される前に、符号化されなければならない。
・変換ブロックのサイズ(変換ブロックのサンプルの水平サイズ、垂直サイズ、または、数)。
・変換ブロックを再構成するために使われる変換(または変換のタイプ)。そのような基準は、複数の変換をサポートしている、ビデオコーデックに適用することができた。
・基準のどのような組み合わせでも、上記で特定された。
【0118】
実施の形態に対する、独立スカラー量子化を用いる変換符号化、及び従来の変換符号化(独立スカラー量子化を用いる)は、画像、または、スライスで一緒に使われることができて、量子化ステップサイズと2つのアプローチに対する量子化パラメータの間の異なる関係を使うことは、好ましい。たとえば、デコーダは、ブロック量子化パラメータを独立量子化のために使われる量子化ステップサイズにマップするための1つの表と、ブロック量子化パラメータを従属量子化のために使われる量子化ステップサイズにマップするためのもう一つの表と、を備えていてもよい。あるいは、デコーダは、量子化パラメータを量子化ステップサイズにマップするために、一つの表を備えていてもよく(H.265|MPEG-H AVCのように)、しかし、従属スカラー量子化を使う変換ブロックに対しては、量子化ステップサイズは、それが変換係数の再構成プロセスに使われる前に、あらかじめ定義された要素によって乗算される。変換係数を再構成するために、量子化ステップサイズによる乗算が、実際には、乗算とビットシフトの組合せとして実装されてもよいことに注意すべきである。その後に、あらかじめ定義された要素を用いる、ノミナル量子化ステップサイズの乗算は、ビットシフトの変調、及びスケーリング要素の変調として実装されてもよい。さらに別の方法として、変換のために、従属量子化を使用して符号化された変換ブロックに対するオフセットは、それが使われた量子化ステップサイズにマップされる前に、量子化パラメータに加算(または、から減算)されることができる。
【0119】
さらに、従属量子化による変換符号化のために、使われる量子化ステップサイズは、変換係数の数に基づいて適用されることができる。その目的のために、量子化サイズを変調するために上述のどのような技術でも、使われることができる(ルックアップテーブル、増倍率、スケールの修正、及びビットシフトパラメータ)。実際に送信された量子化インデックスの数は、1つ以上の下記の方法(または、他のどの手段でも)で決定されることができる:
・送信された量子化インデックスの数は、符号化順序で最初の非ゼロの量子化インデックスの位置に基づいて抽出されることができる(上記参照)。
・送信された量子化インデックスの数は、符号化順序で最初の非ゼロの量子化インデックスの位置、及び送信された符号化されたサブブロックフラグの値に基づいて抽出されることができる(符号化されたサブブロックフラグは、サブブロックが、非ゼロの量子化インデックス、または、その代わりのどのような非ゼロ変換係数であるのかを示す)。
・送信された量子化インデックス(量子化ステップサイズを決定するために)の数は、変換ブロックの中で非ゼロの量子化インデックスの数に基づいて抽出されることができる。
【0120】
量子化ステップサイズは、量子化インデックスのエントロピー符号化で知られている必
要はないことに注意すべきである。それは、変換係数の実際の再構成のために必要とされ
るだけである。それゆえに、どのような構文要素、及び抽出されたパラメータでも、変換
係数の再構成で使われる量子化ステップサイズを計算するために使用することができる。
【0121】
符号化のための方法例として、以下の説明は提供される。
【0122】
歪み(再構成品質)と、ビットレートの間の非常に良いトレードオフを提供するビットストリームを得るために、量子化インデックスは、ラグランジュコスト尺度
【数99】
が最小化される方法で選ばれるべきである。独立したスカラー量子化のために、そのような量子化アルゴリズム(レート―歪み最適化による量子化、または、RDOQと呼ばれる)は、上記で議論された。しかし、独立スカラー量子化と比較すると、我々はさらなる困難を有する。再構成された変換係数
【数100】
、及びこのようなそれらの歪み
【数101】
は、伴う量子化インデックス
【数102】
だけではなく、符号化順序の前の量子化インデックスの値によって決まる。
【0123】
しかし、我々が以上で議論したように、変換係数の間の従属は、格子構造を用いて表されることができる。さらなる実施の形態のために、我々は、例として図10aの中の実施の形態を使う。8つの変換係数のブロックの例に対する格子構造は、図20に示される。格子(左から右へ)によるパスは、量子化インデックスのための起こり得る状態の遷移を示す。2つのノード間のそれぞれの接続は、特定のサブセット(A,B,C,D)の量子化インデックスを表すことに注意すべきである。我々が量子化インデックス
【数103】
をそれぞれのサブセット(A,B,C,D)から選んで、対応しているレート-歪みコスト
【数104】
を2つのトレリスノード間の関連した接続に割り当てるならば、全体のレート-歪みコスト
【数105】
を最小にする量子化インデックスのベクトル/ブロックを決定する問題は、トレリスによって最小コスト経路で経路(図20の中で左から右)を見つけることに相当する。我々がエントロピー符号化(RDOQに類似する)でいくつか依存性を無視するならば、この最小化問題は、有名なビタービアルゴリズムを用いて解決することができる。
【0124】
変換ブロックに対する適切な量子化インデックスを選ぶための例としての符号化アルゴリズムは、以下の主要なステップから成ることができた:
1.初期状態のためのレート-歪みコストを0と等しく設定する。
2.符号化順序の中のすべての変換係数に対して、以下のことを行う:
a.それぞれのサブセットA,B,C,Dのために、所定のオリジナルの変換係数に対する歪みを最小にする量子化インデックスを決定する。
b.現在の変換係数に対するすべての格子ノード(0,1,2,3)に対して、以下のことを行う:
i.現在の状態を有する前の変換係数のための状態をつなぐ2本のパスのための、レート-歪みコストを計算する。コストは、前の状態、及びコスト
【数106】
に対するコストの合計として与えられ、ここで、
【数107】
は、考慮された接続と関連するサブセット(A,B,C,D)の量子化インデックスを選ぶための、歪み。及びレートを表す。
ii.最小限の計算されたコストを現在のノードに割り当てて、そして、最小コストパスを表さない前の変換係数の状態との接続を取り除く。
注意:このステップの後の、現在の変換係数のためのすべてのノードには、前の変換係数のためのどのようなノードへも単独の接続を有する。
3.4つの最終的なノード(符号化順序の中の最後の係数のための)のコストを比較して、最小コストを有するノードを選ぶ。このノードは、格子によって、個々のパスと関連していることに注意すべきである(他の全ての接続は、前のステップで取り除かれた)。
4.選択されたパス(最後のノードで指定される)を逆順に進み、格子ノード間の接続と関連する量子化インデックスを集める。
【0125】
ビタービアルゴリズムに基づく量子化インデックスの決定は、独立スカラー量子化に対するレート歪み最適化による量子化(RDOQ)よりも、かなりより複雑ではないことに注意すべきである。それにもかかわらず、また、従属する量子化のための、より単純な符号化アルゴリズムがある。たとえば、あらかじめ定義された初期状態(または、量子化セット)から始まって、量子化インデックスは、現在の量子化インデックスの影響を考慮するだけで、どのようなコスト測定でも最小にすることによって、符号化/再構成順序で決定されることができた。現在の係数(そして、すべての前の量子化インデックス)に対する、所定の量子化インデックスが与えられ、次の変換係数に対する量子化セットは、既知である。そして、このように、アルゴリズムは、符号化順序の中のすべての変換係数に適用されることができる。
【0126】
要約すれば、図1、6b、7aに示されるエンコーダ、及び17aを用いる、そのどのような組合せでも、本願のメディア信号エンコーダのための例を表す。同時に、図6a、7b、及び17bを有する、そのどんな組合せでも、本願のメディア信号デコーダのための例を表す。それでも、ちょうど予防の処置として、そして、図1は、主に、HEVCエンコーダによって用いられる構造を示すように導入され、図1は、可能な実施の形態、すなわち、データストリーム14の中の画像212のシーケンスから成る、ビデオ211を予測的に符号化する装置を形成することに再び注意すべきである。ブロックごとの予測符号化が、このために使われる。さらに、変換ベースの残りの符号化が、典型的に使われる。装置、または、エンコーダは、参照符号210を用いて示される。図21は、データストリーム14からの画像ブロックの中の画像212‘から成るビデオ211’を予測的に復号化するように構成されており、また、ここで、典型的に変換に基づいた残りの復号化を用いる対応するデコーダ220(すなわち装置220)を表し、ここで、アポストロフィ(apostrophe)は、それぞれが、予想残差信号の量子化によって導入された符号化ロスの点から、最初に装置210によって符号化された画像212から逸脱しているデコーダ220によって再構成された、画像212‘、及びビデオ211’のそれぞれを示すために用いられた。図1、及び図21は、変換に基づいた予測残差符号化を典型的に使い、本願の実施の形態は、この種類の予測残差符号化に、または、予測残差の符号化、及び量子化を含んでいる予測符号化にすら制限されない。
【0127】
エンコーダ210は、予測残差信号を空間でのスペクトル変換に従属させて、そして、このようにして、データストリーム14の中で得られる、予測残差信号を符号化するように構成される。同様に、デコーダ220は、データストリーム14から予測残差信号を復号化して、そして、このように空間でのスペクトル変換で得られた、予測残差信号に従属させるように構成される。
【0128】
内部的には、エンコーダ210は、オリジナルの信号、すなわち、ビデオ211、または、現在の画像212から予測信号226の偏差を測るように、予測残差224を生成する、予測残差信号形成器222を備えていてもよい。予測残差信号前者222は、たとえば、オリジナルの信号、すなわち、現在の画像212から予測信号を減算する減算器であってもよい。エンコーダ210は、その後、さらに、変換された予測残差信号を得て、そして、同じものを量子化に従属させるための上述したどのような変換にも、予測残差信号224を従属させる、変換、及び量子化ステージ2を備える。量子化のコンセプトは、図7aに関して上記で記述された。このように量子化された予測残差信号224’は、ビットストリーム14の中で符号化され、そして、前記の量子化インデックス56から成る。データストリーム14への符号化のために、エンコーダ210は、エントロピーが、データストリーム14の中で変換され、そして、量子化された、予測残差信号を符号する、エントロピー符号化器234を任意に備えていてもよい。デコーダ側で再構成可能な量子化された予測残差信号224’は、量子化ロスを除いて、オリジナルの予測残差信号224と一致する、予測残差信号224を得るために、上述のものの1つのような、再構成された変換係数13を得て、及び係数13から成る変換を逆変換に従属させるように、内部で符号化された、予測残差信号224’に基づいて生成され、そして、図7bに従った、予測残差信号224‘を非量子化する逆量子化、及び逆変換ステージ238を用いることによって、データストリーム14から復号化可能である。結合器242は、それから、それで、再構成された信号246、すなわち、オリジナルの信号212の再構成を得るように、例えば、追加によって、予測信号226と、再構成された予測残差信号224’を再結合する。再構成された信号246は、信号212’と一致してもよく、または、予備的に再構成された信号は、再構成信号212’、そして/あるいは、ポスト-フィルタリング(図1には示されない)を得るための、イン-ループフィルタリング247に従属することを表す。予測モジュール244は、それから、たとえば、すなわち空間予測248、すなわちイントラ予測、および/または、時間予測249を使うことによって、信号246の基底上に予測信号226を生成する。
【0129】
エントロピコーダ234は、エントロピーが、データストリーム14の中の予測残差224’’だけを符号化するだけではなく、他の符号化データは、加えて、残差データ224’’、予測モード、予測パラメータ、量子化パラメータ、そして/あるいは、フィルタパラメータのような、画像を表している。エントロピー符号化器234は、すべてのこのデータを、ロスレス方法で、データストリーム14の中に符号化する。
【0130】
同様に、デコーダ220は、内部的に一致する構成要素から成り、そして、予測モジュール244、及び結合器242、及びステージ234、及び238の逆によって形成される、予測ループと一致する方法で相互接続されていてもよい。特に、デコーダ220のエントロピーデコーダ250は、エントロピーがデータストリームから量子化されたスペクトル-ドメイン予測残差信号224’’を復号化してもよい。コンテスト抽出は、エンコーダを用いる同期の方法で行われてもよい。結果は、たとえば、予測残差データ224’’を含んでいる符号化データである。そこで、非量子化、及び逆の変換モジュール252は、図7bに従って、この信号を逆量子化し、そして、信号224’’’によって供給され、そして、エンコーダの中のループに一致する、予測ループから、信号224’’’、すなわち、スペクトル領域、予測モジュール258、及び結合器256、及び任意のループ内フィルタ247’の中の残差信号を得るために、同じものを逆変換し、結合器256の出力は、予測残差信号224’’’に基づいて再構成された信号を生じさせて、それによって、図21に示すように、結合器256の出力が、再構成された信号、すなわち、そこから、ビデオ211’、または、現在の画像212’を生じさせる。
【0131】
エンコーダ210は、たとえば、いくつかのレートを最適化している方法、及び歪みに関連した基準、すなわち、一般的に、図1のエンコーダ制御213として示されている、符号化コスト、そして/あるいは、いくつかのレート制御、いくつかの最適化スキームに従うような、たとえば、予測モード、運動パラメータなどを含む、同じ符号化パラメータを設定してもよい。記述されたように、エンコーダ210、及びデコーダ220、及び対応するモジュール244、258は、それぞれ、イントラ符号化モード、及びインター符号化モードのような、異なる予測モードをサポートする。いくつかの決定モジュール243のよって決定される、これらの予測モードの間を切り替える、エンコーダ及びデコーダでの精度は、画像212、及び212’のそれぞれをブロックに再分割することに一致してもよい。これらのブロックのいくつかは、単にイントラ符号化されているだけのブロックであってもよく、そして、いくつかのブロックは、単にインター符号化されているだけのブロックであってもよく、そして、任意に、更なるブロックさえ、イントラ符号化、インター符号化の両方を用いて得られるブロックであってもよいことに注意すべきである。イントラ符号化モードに従って、ブロックに対する予測信号は、空間、それぞれのブロックのすでに符号化された/復号化された近隣に基づいて得られる。いくつかのイントラ符号化の下位モードが、選択の間に存在していてもよく、そして、それは、類似のイントラ予測パラメータの種類を表す。それぞれのブロックの内部の方向のイントラ符号化の下位モードに対して明確化された、特定の方向に沿って、近隣のサンプル値を推定することによって従属する、それぞれのブロックに対する予測信号に従った、方向、または、角度のイントラ符号化の下位モードが存在していてもよい。内部符号化下位モードは、たとえば、それぞれのブロックの範囲内のすべてのサンプルにDC値を割り当てる、それぞれのブロックに対する予測信号に従った、DC符号化モードのような、一つ以上のさらなる下位モードを備えていてもよく、そして/あるいは、それぞれのブロックの予測信号に従った、平面的なイントラ符号化モードは、傾き、及び近隣のサンプルに基づく、連立方程式によって定義された平面のオフセットを算出することを用いて、それぞれのブロックのサンプル位置上の連立方程式によって、記述されたサンプル値の空間分布として、近似され、または、決定される。それと比較して、インター予測モードに従って、ブロックに対する予測信号は、たとえば、ブロックインナーを時間的に予測することによって得られてもよい。インター予測モードのパラメータ表示のために、運動ベクトルは、データストリームの中で伝えられてもよく、前に符号化された/復号化された画像でのビデオ211の前に符号化された画像の位置を空間変位することを含む、運動ベクトルは、それぞれのブロックに対する予測信号を得るためにサンプリングされてもよい。量子化されたスペクトル領域予測残差信号224’’を表している、エントロピー符号化された変換係数レベルのような、データストリーム14によって備えられる、残差信号符号化に加えて、データストリーム14は、ブロック予測モードに割り当てる予測に関連したパラメータの中で符号化されてもよく、インター予測モードの運動パラメータのような、割り当てられた予測モードに対する予測パラメータ、及び任意のさらなるパラメータは、割り当てられた予測モードと予測パラメータを用いて、ブロックに対する最終的な予測信号の構成を制御する。その上、データストリームは、個々の変換ブロックを変換することによって得られた、変換係数ブロック10からの変換ブロックのようなブロックの内部のそれぞれの画像212及び212’の再分割を制御しており、かつ伝送パラメータを備えていてもよい。デコーダ220は、エンコーダが、同じ予測モードとパラメータをブロックに割り当てるために、そうしたのと同じ方法で画像を再分割し、そして、これらのパラメータを用いて、そして、同じ予測信号を結果として生じさせるために、同じ予測を実行して、たとえば、変換ブロックの1つを生じさせるために、個々の変換係数ブロック10上の逆変換を実行する。つまり、予測信号は、現在の画像ブロックの空間的に近隣の、すでに再構成されたサンプルを使用している、または、すでに完全に再構成された画像のサンプルを使用している、動きが補正された予測を使用している、イントラ画像予測によって得られてもよい。
【0132】
図22は、再構成された信号、一方で、すなわち、再構成された画像212’の関係を例示し、そして、他方で、データストリーム14及び予測信号226によって伝えられた、予測残差信号224’’’の組合せを例示する。すでに上記で示されるように、組合せが追加されてもよい。予測信号226は、様々なサイズのブロック280の内部の画像領域の再分割として図22に図示される、しかし、これは、単なる例である。再分割は、ブロックの行及び列の内部の画像領域の規則正しい再分割のような、どのような再分割、または、4分木再分割、または、その他のもののような、様々なサイズのリーフブロックの内部の画像212のマルチ木再分割であってもよく、その混合は、図22に図示され、画像領域は、ブロック280を結果として生じさせるために再分割している再帰的なマルチツリーに従って、それからさらに再分割されるツリールートブロックの行と列に、まず第1に、再分割される。
【0133】
図22の中の予測残差信号224’’’は、ブロック284の内部の画像領域の再分割としても例示される。これらのブロックは、同じものを符号化ブロック280と区別するために、変換ブロックと呼ばれてもよい。実質的に、図22は、エンコーダ210を例示し、そして、デコーダ220は、ブロックの内部の、画像212及び画像212’のそれぞれ、すなわち、符号化ブロック280の内部を再分割している1つ及び変換ブロック284の内部を再分割しているもう一つの2つの異なる再分割を使ってもよい。両方の再分割は、同じことであってもよく、すなわち、それぞれのブロック280は、共に、変換ブロック284を形成し、そして、逆もまた同様であり、しかしながら、図22は、例えば、変換ブロック284の中の再分割は、符号化しているブロック280中の再分割の拡張を形成するケースを例示し、それによって、2つのブロック280の間のどんな境界でも2つブロック284の間で境界を覆い、または、あるいは、それぞれのブロック280に言及すると、変換ブロック284のうちの1つと一致し、または、変換ブロック284の一群と一致する。しかし、再分割は、それぞれから独立して決定されまたは選択されてもよく、それによって、変換ブロック284は、ブロック280の間でブロック境界を選択的に超えることができた。変換ブロック284への再分割を考慮する限りでは、類似した考えは、このように、ブロック280の中の再分割に対して前に持ってこられるこれらのような事実であり、すなわち、ブロック284は、行及び列の中に配置された、ブロックの中の画像領域の規則正しい再分割の結果、画像領域の再帰的なマルチツリーの結果、または、それらの組み合わせ、または、他のどの部類の分割であってもよい。まさに余談として、ブロック280及び284は、正方形、長方形、またはどのような別の形であるかによって制限されることはない。さらに、予測信号が形成されるブロック280の中の現在の画像212の再分割及び予測残差が符号化されるブロック280の中の現在の画像212の再分割は、符号化/復号化に使われる再分割だけであってもよい。これらの再分割は、予測信号での精度の決定を形成し、及び残差符号化が実行され、しかし、第1に、残差符号化は、あるいは、再分割されることなく実行されてもよく、第2に、これらの再分割よりも他の精度で、エンコーダ及びデコーダは、予測パラメータ、その他のような前記のパラメータのいくつかを含む、特定のコーディングパラメータを設定してもよい。
【0134】
図22は、予測信号226の組合せ、及び予測残差信号224’’’は、再構成信号212を直接生じさせることを例示している。しかし、1つ以上の予測信号226は、他の観点から、または、他の符号化層から得られた予測信号が、たとえば、分離したDPBを有する、分離した予測ループで符号化/復号化される、他の実施の形態に従って、画像212’を生じさせるための予測残差信号224’’’と組み合わされてもよいことに注意すべきである。
【0135】
図22の中で、変換ブロック284は、以下の重要性を有している。モジュール228、及びモジュール252は、これらの変換ブロック284のユニットの中で、それらの変換を実行する。たとえば、多くのコーデックは、すべての変換ブロック284に対して、なんらかのDST、または、DCTを使う。いくつかのコーデックは、変換をスキップすることを可能にし、それによって、いくつかの変換ブロック284のために、予測残差信号は、空間領域で直接符号化される。しかし、後述する実施の形態に従って、エンコーダ210及びデコーダ220は、それらサポートするいくつかの変換方法で構成される。
たとえば、エンコーダ210及びデコーダ220は、
・DCT-II(または、DCT-III)、ここで、DCTは離散コサイン変換を表す
・DSTIV、ここで、DCTは離散サイン変換を表す
・DCT-IV
・DSTVII
・恒等変換(IT)
を備えることができる。
【0136】
当然に、モジュール228が、これらのすべての前の変換のバージョンをサポートする間に、デコーダ220、または、逆変換252は、その一致する後、または、逆のバージョンをサポートする:
・逆DCT-II(または、逆DCT-III)
・逆DCT-IV
・逆DCT-IV
・逆DCT-VII
・恒等変換(IT)
【0137】
これで、異なる変換は、水平及び垂直の方向で適用されることができる。例えば、DCT-IIは、水平方向で使われることができ、DST-VIIは、垂直方向に使われることができた、または、逆もまた同じである。
【0138】
いずれにせよ、支持された変換のセットは、空間からスペクトル、または、スペクトルから空間のような、単なる1つだけの変換を備えていてもよいことに注意すべきであり、そして、これを越えて、参照は、上記の説明へのさらなる記述、そして、例が提供される。
【0139】
このように、1以上のサンプルのブロックの中のビデオデコーダと関連した上記の説明で、別名として、画像ブロックと呼ばれてもよいブロック、及び空間、または、再構成、または、デコードされたサンプルと呼ばれてもよいサンプルは、映像サンプルの再構成されたブロックを得るために、イントラ画像またはインター画像を使用してサンプルを予測し、ビットストリームから量子化インデックスを解析して、従属量子化を使用して変換係数を再構成し(再構成された変換係数の値は、現在、及び一つ以上の前の量子化インデックスを用いて計算される)、再構成された予測エラーサンプルのブロックを得るために再構成された量子化係数を逆変換すること、そして、再構成された予測エラーサンプルを予測信号に加えることによって再構成される。ここでは、変換係数の従属再構成は、許容可能な再構成レベルの2つの異なる(しかし、互いに素である必要はない)セットを用いて実現されてもよい。変換係数は、再構成順序;現在の変換係数に対する量子化インデックスを用いて選択されたセットの1つの再構成レベルを選ぶこと(量子化インデックスは、許容可能な再構成値の順序付き集合の中の整数インデックスを特定する)の中の、前の量子化インデックスの値に基づく再構成レベルのセットの1つを選ぶことによって、所定の再構成順序で再構成されてもよい。許容可能な再構成値のセットの選択は、再構成順序で量子化インデックスに先行しているパリティによって特定されてもよい。許容可能な再構成値のセットの選択は、以下の特性を有する状態の遷移表(または、等しい算術演算)を使用して実現されてもよい:変換ブロックに対する再構成方法の始めに、状態変数は、所定の値と等しく設定され:状態は、次の変換係数に対する許容可能な再構成値のセットを個々に決定する;次の変換係数に対する状態は、2d表の中のルックアップテーブルを用いて抽出され、ここで、第1のインデックスは、現在の状態によって与えられ、そして、第2のインデックスは現在の量子化インデックスのパリティによって与えられる。あるいは、または、さらに、許容可能な再構成レベルの第1のセットは、量子化ステップサイズのすべての偶数の整数倍を備えていてもよく;許容可能な再構成レベルの第2のセットは、量子化ステップサイズのすべての奇数の整数倍を備えていてもよく;これに加えて、再構成レベルは0に等しい。ここで、量子化ステップサイズは、変換ブロック内で変換係数の位置よって決まる(たとえば、量子化重み行列によって指定されるように)。その上、または、あるいは、量子化ステップサイズは、ブロックの原則によってブロックで修正されることができる量子化パラメータによって決まってもよい。エントロピー符号化は、量子化インデックスの値の2値化、または、絶対値を含んでいてもよく、そして、1つ以上の2値は、適応可能な2値化の確率モデルを用いて符号化されてもよく、適応可能な確率モデルを用いて符号化される、1以上の2値に対して、使われた確率モデルは、適応可能な確率モデルのセットの中から選ばれてもよく、かつ、確率モデルは、許容可能な再構成レベル(または、状態)のセットに基づいて選択されてもよい。量子化インデックスのための2値化は、量子化インデックスがゼロと等しい、または、ゼロと等しくないかを特定している2値を備えていてもよく、前記2値は、適応確率モデルのセットの中で選ばれた、適応確率モデルを用いて符号化され、そして、利用可能な確率モデルのセットの中のサブセットは、現在の量子化インデックス(または、状態)に対する、所定の許容可能な再構成レベルのセットとして選択されてもよく、そして、選択されたサブセットの中の使われる可能性モデルは、現在の量子化インデックスの近隣の領域(変換係数の配列の中の)の中の量子化インデックスの特性を用いて決定されてもよい。量子化インデックスの2値化から生じている2値は、変換ブロック、または、変換ブロックのサブブロック上の複数のパスの中で復号化されたエントロピーであってもよい(変換ブロック内の変換係数の位置のサブセットを表す)。最初のパスで符号化される2値は、以下の2値のどんな組合せを含んでいてもよく:2値は、量子化インデックスがゼロと等しい、または、ゼロと等しくないかどうかを特定し;2値は、量子化インデックスの絶対値が1以上、または、1以上ではないのかを特定する;2値は、量子化インデックスのパリティ(または、量子化インデックスの絶対値のパリティ)を特定する。
【0140】
たとえ、いくつかの実施例が装置の環境の範囲内で記述されていたとしても、前記実施例が対応する方法の説明も意味することは明白であり、そのため、装置のブロック、または、構造構成要素は対応する方法ステップとして、または、方法ステップの特徴と一致する。類似して、方法ステップの、または、それとしての環境の範囲内でも記述された実施例は、対応するブロック、または、詳細の説明または対応する装置の特徴を意味する。全部、または、一部の方法ステップは、マイクロプロセッサ、プログラム可能なコンピュータ、または、電子回路のような、ハードウェア装置によって(または、使って)実行されてもよい。いくつかの実施の形態では、1つ以上の最も重要な方法ステップは、そのような装置で実行されてもよい。
【0141】
発明の符号化されたデータストリームは、デジタル記憶媒体に保存されることができるか、または、ワイヤレス伝達媒体のような伝達媒体、または、インターネットのような有線の伝達媒体で送信されることができる。
【0142】
特定の実施条件に従い、発明の実施の形態は、ハードウェアで、または、ソフトウェアで実施されてもよい。実施は、それぞれの方法が実行される、プログラム可能なコンピュータシステムと協働する(協力することが可能な)、電子的に読み込み可能な制御信号を有する、デジタル記憶媒体、例えば、フロッピー(登録商標)ディスク、DVD、ブルーレイディスク、CD、ROM、PROM、EPROM、EEPROM、または、FLASH(登録商標)メモリを用いて実行されてもよい。したがって、デジタル記憶媒体は、コンピュータで読取り可能であってもよい。
【0143】
発明に従った、いくつかの実施の形態は、ここに記述される方法のうちの1つが実行されるように、プログラム可能なコンピュータシステムと協働することができる電子的に読み込み可能な制御信号を備えた、データキャリアを備える。
【0144】
一般的には、本発明の実施の形態は、プログラムコードを有するコンピュータプログラムとして実施されることができ、プログラムコードは、コンピュータプログラムがコンピュータで動くとき、方法のうちの1つを実行するために動作する。プログラムコードは、たとえば、機械で読み取り可能なキャリアに格納されていてもよい。
【0145】
他の実施の形態は、機械で読み取り可能なキャリアに格納された、ここに記述された方法のうちの1つを実行するためのコンピュータプログラムを備える。
【0146】
換言すれば、コンピュータプログラムがコンピュータで動くとき、発明の方法の実施の形態は、このように、ここに記述される方法のうちの1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0147】
発明の方法の更なる実施の形態は、このように、その上に記録された、ここに記述される方法のうちの1つを実行するためのコンピュータプログラムを備える、データ記憶媒体(または、デジタル記憶媒体、または、コンピュータで読取り可能な媒体)である。データ記憶媒体、デジタル記憶媒体、または、記録された媒体は、一般的に、非一時的、または、不揮発性である。
【0148】
発明の方法の更なる実施の形態は、このように、ここに記述される方法のうちの1つを実行するためのコンピュータプログラムを表している、データストリーム、または、信号のシーケンスである。データストリーム、または、信号のシーケンスは、例えば、例としてインターネットのような、データ通信リンク、によって送られるように構成されてもよい。
【0149】
更なる実施の形態は、処理ユニット、例えば、ここに記述される方法のうちの1つを実行するために構成、または、適応された、例えば、コンピュータ、または、プログラム可能な論理デバイスを備える。
【0150】
更なる実施の形態は、ここに記述される方法のうちの1つを実行するためのコンピュータプログラムがインストールされたコンピュータを備える。
【0151】
更なる実施の形態は、受信機に、ここに記述される方法のうちの1つを実行するためのコンピュータプログラムを送信するように構成された、装置、または、システムを備える。受信機は、たとえば、コンピュータ、モバイル機器、メモリデバイス、または、その他のものであってもよい。装置、または、システムは、例えば、コンピュータプログラムを受信機に送信するためのファイルサーバを備えていてもよい。
【0152】
いくつかの実施の形態では、プログラム可能な論理デバイス(たとえばフィールドプログラム可能なゲートアレイ、FPGA)が、ここに記述される方法の機能の一部もしくは全部を実行するために用いられてもよい。いくつかの実施の形態では、フィールドプログラム可能なゲートアレイは、ここに記述される方法のうちの1つを実行するために、マイクロプロセッサと協力してもよい。通常、方法は、どのようなハードウェア装置によってでも実行されることが望ましい。
【0153】
例えば、ここに記述された装置は、ハードウェア装置を使用して、または、コンピュータを使用して、または、ハードウェア装置とコンピュータの組合せを使用して実施されてもよい。
【0154】
ここに記述された装置、または、ここに記述された装置のどんな構成要素でも、少なくとも部分的にハードウェアやソフトウェア(コンピュータープログラム)で実施されてもよい。
【0155】
例えば、ここに記述された方法は、ハードウェア装置を使用して、または、コンピュータを使用して、または、ハードウェア装置、および/または、コンピュータの組合せを使用して実施されてもよい。
【0156】
ここに記述された方法、または、ここに記述された方法のどんな構成要素でも、ハードウェア、そして/あるいは、ソフトウェアによって少なくとも部分的に実行されてもよい。
【0157】
上記の実施の形態は、本発明の原則の例示を単に表しているにすぎない。当業者はここに記述された配置と詳細の修正、及び変更を認識するであろうことが理解される。そういうわけで、発明は、実施の形態の説明と議論によって、ここに提示された特定の詳細の意味によってよりも、むしろ以下の請求項だけで限定されることが意図される。
【0158】
参考文献
[1]ITU-T and ISO|IEC, “Advanced videocoding for audiovisualservices,” ITU-T Rec. H.264 and ISO|IEC14406-10 (AVC), 2003.
[2]ITU-T and ISO|IEC, “High efficiency video coding,” ITU-T Rec. H.265 and ISO|IEC 23008-10 (HEVC), 2013.
図1
図2
図3
図4
図5
図6a
図6b
図7a
図7b
図8a
図8b
図8c
図9a
図9b
図10a
図10b
図10c
図11
図12
図13
図14
図15
図16
図17a
図17b
図18
図19
図20
図21
図22