(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-16
(45)【発行日】2024-02-27
(54)【発明の名称】変換係数レベルの適応依存量子化をサポートするためのデコーダ、エンコーダ及び方法
(51)【国際特許分類】
H04N 19/124 20140101AFI20240219BHJP
H04N 19/136 20140101ALI20240219BHJP
H04N 19/13 20140101ALI20240219BHJP
【FI】
H04N19/124
H04N19/136
H04N19/13
(21)【出願番号】P 2022538054
(86)(22)【出願日】2020-12-18
(86)【国際出願番号】 EP2020087146
(87)【国際公開番号】W WO2021123250
(87)【国際公開日】2021-06-24
【審査請求日】2022-08-18
(32)【優先日】2019-12-20
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500341779
【氏名又は名称】フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン
(74)【代理人】
【識別番号】100134119
【氏名又は名称】奥町 哲行
(72)【発明者】
【氏名】シュヴァルツ・ハイコー
(72)【発明者】
【氏名】シュミット・ゾンケ
(72)【発明者】
【氏名】ハーゼ・パウル
(72)【発明者】
【氏名】グエン・ファンホアントゥン
(72)【発明者】
【氏名】マルペ・デトレフ
(72)【発明者】
【氏名】ヴィーガンド・トーマス
【審査官】田部井 和彦
(56)【参考文献】
【文献】特表2021-519544(JP,A)
【文献】米国特許出願公開第2019/0387259(US,A1)
【文献】国際公開第2019/185769(WO,A1)
【文献】Benjamin Bross et al.,Versatile Video Coding (Draft 7) [online],JVET-P2001-vE (JVET-Q0041-v1_DraftText.docx),インターネット <URL: https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q0041-v1.zip>,2019年12月05日,pp.80-85,161-163,406
【文献】Heiko Schwarz et al.,Hybrid Video Coding with Trellis-Coded Quantization [online],Published in: 2019 Data Compression Conference (DCC),2019年05月13日,pp.182-191,インターネット <URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8712696>,DOI: 10.1109/DCC.2019.00026
【文献】James H. Kasner et al.,Universal Trellis Coded Quantization [online],Published in: IEEE Transactions on Image Processing ( Volume: 8 , Issue: 12, December 1999),1999年12月,pp.1677-1687,インターネット <URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=806615>,DOI: 10.1109/83.806615
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/124
H04N 19/136
H04N 19/13
(57)【特許請求の範囲】
【請求項1】
デコーダ(20)であって、
予測残差を表す残差レベル(142)をデータストリーム(14)から復号化(210)し、
現在の遷移状態(220)に応じて、デフォルト量子化器のセット(151)から量子化器(153)を選択(152)することと、
前記量子化器(153)を使用して現在の残差レベルを逆量子化(154)して、逆量子化された残差値
(104)を取得することと、
前記現在の残差レベルにバイナリ関数を適用(156)して、現在の残差レベルの特性(157)を取得することと、
使用される遷移表(106)を使用して、前記現在の残差レベルの特性(157)に応じて前記現在の遷移状態(220)を更新(158)することと、によって、
前記残差レベル(142)を順次逆量子化(150)することと、
前記逆量子化された残差値(104)を使用して媒体信号を再構成(170)することと、
前記データストリーム(14)に含まれる量子化モード情報(180)に応じて、デフォルト遷移表のセット(159)から1つのデフォルト遷移表を、使用される前記遷移表(106)として選択することであって、前記デフォルト遷移表の各々は、前記遷移状態のセット(161)と前記現在の残差レベルの特性(157)との組み合わせ(163)の定義域から前記遷移状態のセット(161)への全射写像を表し、前記デフォルト遷移表は、前記遷移状態のセット(161)の基数が異なり、前記基数は、4以上である、ことと、
使用される前記遷移表(106)としてどのデフォルト遷移表が選択されても、第1の写像(200)を使用して、前記現在の遷移状態(220)の所定数のビットを前記デフォルト量子化器に写像することによって、前記量子化器(153)の前記選択(152)を実行することであって、使用される前記遷移表(106)としてどのデフォルト遷移表が選択されても、前記所定数と前記第1の写像(200)
が、不変である、ことと、
を行うように構成されている、
デコーダ(20)。
【請求項2】
前記所定数のビットは、1である、請求項1に記載のデコーダ。
【請求項3】
前記デコーダは、統合遷移表の異なる部分として前記デフォルト遷移表のセット(159)を管理するように構成され、各デフォルト遷移表について、前記遷移状態のセット(161)の各々は、任意の他のデフォルト遷移表が前記統合遷移表内でインデックス付けされる状態インデックスとは異なる状態インデックスを使用してインデックス付けされる、請求項1又は2に記載のデコーダ。
【請求項4】
前記デコーダは、前記統合遷移表内で、前記現在の残差レベルの特性(157)と前記現在の遷移状態(220)との組み合わせに対応するエントリをルックアップすることによって、前記現在の遷移状態(220)を前記更新(158)することを実行するように構成されている、請求項3に記載のデコーダ。
【請求項5】
前記量子化モード情報(180)は、逆量子化順序で第1の残差レベルを逆量子化する際に使用するための開始遷移状態を示す前記データストリーム(14)内のシンタックス要素を含み、それにより、前記シンタックス要素は、使用される前記遷移表(106)に対応する前記統合遷移表の前記部分においてのみ使用される状態インデックスに適合することによって、前記デフォルト遷移表のうち使用される前記遷移表(106)を示す、請求項3又は4に記載のデコーダ。
【請求項6】
前記デフォルト量子化器のセット(151)は、
量子化ステップサイズ(144)の偶数倍を再構成レベルとして含む第1のデフォルト量子化器(151
1)と、
前記量子化ステップサイズ(144)の奇数倍及び0を再構成レベルとして含む第2のデフォルト量子化器(151
2)と
からなる、請求項1から5のいずれか一項に記載のデコーダ。
【請求項7】
前記現在の残差レベルの二値化のビンのコンテキスト適応型二値算術復号化を使用して前記データストリーム(14)から前記現在の残差レベルを復号化することであって、前記ビンは、前記現在の残差レベルが0であるか非ゼロであるかを示す有意ビン(92)を含む、ことと、
第2の写像(144)を使用して、前記現在の遷移状態(220)の更なる所定数のビットを
値(230)に写像することによって取得される
前記値(230)に応じて、前記現在の残差レベルの前記
有意ビン(92)を復号化するための第1のコンテキスト(242)を選択することであって、前記第2の写像(144)は、使用される前記遷移表(106)として選択されたどのデフォルト遷移表にも等しい、ことと、
を行うように構成されている、請求項1から6のいずれか一項に記載のデコーダ。
【請求項8】
前記更なる所定数のビットは、2である、請求項7に記載のデコーダ。
【請求項9】
前記媒体信号は、ビデオであり、前記デコーダは、
1つのピクチャブロック(84)に関する残差レベル(142)を、別のピクチャブロック(84)に関する残差レベル(142)より前に復号化することと、
前記1つのピクチャブロック(84)に関する前記残差レベル(142)の二値化のビンを1又は複数の走査で順次復号化し、前記残差レベル
(142)の前記二値化の前記ビンのうちの所定数の先頭ビンに対してコンテキスト適応型二値算術復号化を使用し、前記残差レベル
(142)の前記二値化の後続ビンに対して等確率バイパスモードを使用することと、
第3の写像を使用して、遷移状態の更なる所定数のビットを二値化パラメータ(302)に写像し、前記二値化パラメータ(302)に応じて
所定の残差レベルの前記二値化の
決定を実行することによって、前記所定数のビンが使い果たされた
前記所定の残差レベルの前記二値化を決定することと、によって、
前記データストリーム(14)からの前記残差レベル(142)を復号化(210)するように構成されている、請求項1から8のいずれか一項に記載のデコーダ。
【請求項10】
前記二値化が、前記二値化パラメータ(302)に依存する1つの二値化コードを、所定のレベルに関連付けられている状態からレベル0に関連付けられている状態へとリダイレクトすることと、1又は複数の二値化コードを、0から前記所定のレベルマイナス1までの1又は複数のレベルに関連付けられている状態から1から前記所定のレベルまでの1又は複数のレベルに関連付けられている状態へとリダイレクトすることと、によって修正されたデフォルト二値化であるように、前記二値化パラメータ(302)に応じて前記所定の残差レベルに対する前記二値化を決定するように構成されている、請求項9に記載のデコーダ。
【請求項11】
前記更なる所定数のビットは、1である、請求項9又は10に記載のデコーダ。
【請求項12】
前記デフォルト遷移表のセット(159)は、
前記遷移状態のセット(161)の前記基数が4である第1のデフォルト遷移表と、
前記遷移状態のセット(161)の前記基数が8である第2のデフォルト遷移表と、
を含む、請求項1から11のいずれか一項に記載のデコーダ。
【請求項13】
前記媒体信号は、ビデオであり、前記デコーダは、前記データストリーム(14)から前記量子化モード情報(180)を読み出すことと、
前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の前記選択を、
前記ビデオに対して1回、
ピクチャブロック(84)単位、
ピクチャ単位、
スライス単位、及び
ピクチャシーケンス単位
のうちの1つの方法で実行することと、を行うように構成されている、請求項1から12のいずれか一項に記載のデコーダ。
【請求項14】
前記媒体信号は、ビデオであり、前記量子化モード情報(180)は、前記データストリーム(14)内の第1のシンタックス要素を含み、前記第1のシンタックス要素は、前記ビデオ又は前記ビデオの部分について、前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の選択が、前記データストリーム(14)内の前記量子化モード情報(180)の第2のシンタックス要素を介して前記ビデオ又は前記ビデオの前記部分内で制御されるかどうか、又は前記デフォルト遷移表のセット(159)のうちのいずれが、前記ビデオの前記部分についての前記1つのデフォルト遷移表として選択されるべきかを示す、請求項1から13のいずれか一項に記載のデコーダ。
【請求項15】
前記第1のシンタックス要素は、
前記部分は、前記ビデオであり、前記第2のシンタックス要素は、
ピクチャのシーケンス、
ピクチャ、
タイル、
スライス、
符号化ツリーブロック、
符号化ブロック、若しくは
残差変換ブロック
を単位として、前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の前記選択を制御する、ビデオパラメータセット、
前記部分は、ピクチャのシーケンスであり、前記第2のシンタックス要素は、
ピクチャ、
タイル、
スライス、
符号化ツリーブロック、
符号化ブロック、若しくは
残差変換ブロック
を単位として、前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の前記選択を制御する、シーケンスパラメータセット、
前記部分は、1又は複数のピクチャであり、前記第2のシンタックス要素は、
ピクチャ、
タイル、
スライス、
符号化ツリーブロック、
符号化ブロック、若しくは
残差変換ブロック
を単位として、前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の前記選択を制御する、ピクチャパラメータセット、又は
前記部分は、1つのピクチャであり、前記第2のシンタックス要素は、
タイル、
スライス、
符号化ツリーブロック、
符号化ブロック、若しくは
残差変換ブロック
を単位として、前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の前記選択を制御する、ピクチャヘッダ、あるいは
前記部分は、1つの符号化ツリーブロックであり、前記第2のシンタックス要素は、
符号化ブロック、若しくは
残差変換ブロック
を単位として、前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の前記選択を制御する、パラメータセット
の中の前記データストリーム(14)に含まれる、請求項14に記載のデコーダ。
【請求項16】
前記媒体信号は、カラービデオであり、前記デコーダは、異なる色成分に対する前記デフォルト量子化器のセット(151)に対して異なるバージョンを使用するように構成されている、請求項1から15のいずれか一項に記載のデコーダ。
【請求項17】
前記バイナリ関数は、パリティである、請求項1から16のいずれか一項に記載のデコーダ。
【請求項18】
予測を実行して前記媒体信号の予測バージョンを取得することと、
前記逆量子化された残差値(104)を使用して前記予測バージョンを補正することと、によって、
前記逆量子化された残差値(104)を使用して前記媒体信号を再構成(170)するように構成されている、請求項1から17のいずれか一項に記載のデコーダ。
【請求項19】
予測を実行して前記媒体信号の予測バージョンを取得することと、
前記逆量子化された残差値(104)を逆変換に供して媒体残差信号を取得することと、
前記媒体残差信号を使用して前記予測バージョンを補正することと、によって、
前記逆量子化された残差値(104)を使用して前記媒体信号を再構成(170)するように構成されている、請求項1から18のいずれか一項に記載のデコーダ。
【請求項20】
エンコーダであって、
残差信号を取得するために媒体信号を予測的に符号化することと、
現在の遷移状態(220)に応じて、デフォルト量子化器のセット(151)から量子化器(153)を選択(152)することと、
前記量子化器(153)を使用して現在の残差値を量子化(154)して、現在の残差レベルを取得することと、
前記現在の残差レベルにバイナリ関数を適用(156)して、現在の残差レベルの特性(157)を取得することと、
使用される遷移表(106)を使用して、前記現在の残差レベルの特性(157)に応じて前記現在の遷移状態(220)を更新(158)することと、によって、
前記残差信号を表す残差値を連続的に量子化して、残差レベル(142)を取得することと、
前記残差レベル(142)を
データストリーム(14)に符号化することと、
前記データストリーム(14)に送信される量子化モード情報(180)に応じて、デフォルト遷移表のセット(159)から1つのデフォルト遷移表を、使用される前記遷移表(106)として選択することであって、前記デフォルト遷移表の各々は、前記遷移状態のセット(161)と前記現在の残差レベルの特性(157)との組み合わせ(163)の定義域から前記遷移状態のセット(161)への全射写像を表し、前記デフォルト遷移表は、前記遷移状態のセット(161)の基数が異なり、前記基数は、4以上である、ことと、
使用される前記遷移表(106)としてどのデフォルト遷移表が選択されても、第1の写像(200)を使用して、前記現在の遷移状態(220)の所定数のビットを前記デフォルト量子化器に写像することによって、前記量子化器(153)の前記選択(152)を実行することであって、使用される前記遷移表(106)としてどのデフォルト遷移表が選択されても、前記所定数と前記第1の写像(200)
が、不変である、ことと、
を行うように構成されている、
エンコーダ。
【請求項21】
前記所定数のビットは、1である、請求項20に記載のエンコーダ。
【請求項22】
前記エンコーダは、統合遷移表の異なる部分として前記デフォルト遷移表のセット(159)を管理するように構成され、各デフォルト遷移表について、前記遷移状態のセット(161)の各々は、任意の他のデフォルト遷移表が前記統合遷移表内でインデックス付けされる状態インデックスとは異なる状態インデックスを使用してインデックス付けされる、請求項20又は21に記載のエンコーダ。
【請求項23】
前記エンコーダは、前記統合遷移表内で、前記現在の残差レベルの特性(157)と前記現在の遷移状態(220)との組み合わせに対応するエントリをルックアップすることによって、前記現在の遷移状態(220)を前記更新(158)することを実行するように構成されている、請求項22に記載のエンコーダ。
【請求項24】
量子化順序で第1の残差値を量子化する際に使用するための開始遷移状態を示すシンタックス要素を前記量子化モード情報(180)として前記データストリーム(14)に符号化するように構成され、それにより、前記シンタックス要素は、使用される前記遷移表に対応する前記統合遷移表の前記部分においてのみ使用される状態インデックスに適合することによって、前記デフォルト遷移表のうち使用される前記遷移表を示す、請求項22又は23に記載のエンコーダ。
【請求項25】
前記デフォルト量子化器のセット(151)は、
量子化ステップサイズ(144)の偶数倍を符号化レベルとして含む第1のデフォルト量子化器(151
1)と、
前記量子化ステップサイズ(144)の奇数倍及び0を符号化レベルとして含む第2のデフォルト量子化器(151
2)と
からなる、請求項20から24のいずれか一項に記載のエンコーダ。
【請求項26】
前記現在の残差レベルの二値化のビンのコンテキスト適応型二値算術符号化を使用して前記現在の残差レベルを前記データストリーム(14)に符号化することであって、前記ビンは、前記現在の残差レベルが0であるか非ゼロであるかを示す有意ビン(92)を含む、ことと、
第2の写像(144)を使用して、前記現在の遷移状態(220)の更なる所定数のビットを値
(230)に写像することによって取得される
前記値(230)に応じて、前記現在の残差レベルの前記
有意ビン(92)を符号化するための第1のコンテキスト(242)を選択することであって、前記第2の写像(144)は、使用される前記遷移表として選択されたどのデフォルト遷移表にも等しい、ことと、
を行うように構成されている、請求項20から25のいずれか一項に記載のエンコーダ。
【請求項27】
前記更なる所定数のビットは、2である、請求項26に記載のエンコーダ。
【請求項28】
前記媒体信号は、ビデオであり、前記エンコーダは、
1つのピクチャブロック(84)に関する残差レベルを、別のピクチャブロック(84)に関する残差レベルより前に符号化することと、
前記1つのピクチャブロック(84)に関する前記残差レベルの二値化のビンを1又は複数の走査で順次符号化し、前記残差レベルの前記二値化の前記ビンのうちの所定数の先頭ビンに対してコンテキスト適応型二値算術符号化を使用し、前記残差レベルの前記二値化の後続ビンに対して等確率バイパスモードを使用することと、
第3の写像を使用して、遷移状態の更なる所定数のビットを二値化パラメータ(302)に写像し、前記二値化パラメータ(302)に応じて
所定の残差レベルの前記二値化の
決定を実行することによって、前記所定数のビンが使い果たされた
前記所定の残差レベルの前記二値化を決定することと、によって、
前記残差レベルを前記データストリーム(14)に符号化するように構成されている、請求項20から27のいずれか一項に記載のエンコーダ。
【請求項29】
前記二値化が、前記二値化パラメータ(302)に依存する1つの二値化コードを、所定のレベルに関連付けられている状態からレベル0に関連付けられている状態へとリダイレクトすることと、1又は複数の二値化コードを、0から前記所定のレベルマイナス1までの1又は複数のレベルに関連付けられている状態から1から前記所定のレベルまでの1又は複数のレベルに関連付けられている状態へとリダイレクトすることと、によって修正されたデフォルト二値化であるように、前記二値化パラメータ(302)に応じて前記所定の残差レベルに対する前記二値化を決定するように構成されている、請求項28に記載のエンコーダ。
【請求項30】
前記更なる所定数のビットは、1である、請求項28又は29に記載のエンコーダ。
【請求項31】
前記デフォルト遷移表のセット(159)は、
前記遷移状態のセット(161)の前記基数が4である第1のデフォルト遷移表と、
前記遷移状態のセット(161)の前記基数が8である第2のデフォルト遷移表と、
を含む、請求項
20から30のいずれか一項に記載のエンコーダ。
【請求項32】
前記媒体信号は、ビデオであり、前記エンコーダは、前記量子化モード情報(180)を前記データストリーム(14)に書き込むことと、
前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の前記選択を、
前記ビデオに対して1回、
ピクチャブロック(84)単位、
ピクチャ単位、
スライス単位、及び
ピクチャシーケンス単位
のうちの1つの方法で実行することと、を行うように構成されている、請求項20から31のいずれか一項に記載のエンコーダ。
【請求項33】
前記媒体信号は、ビデオであり、前記量子化モード情報(180)は、前記データストリーム(14)内の第1のシンタックス要素を含み、前記第1のシンタックス要素は、前記ビデオ又は前記ビデオの部分について、前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の選択が、前記データストリーム(14)内の前記量子化モード情報(180)の第2のシンタックス要素を介して前記ビデオ又は前記ビデオの前記部分内で制御されるかどうか、又は前記デフォルト遷移表のセット(159)のうちのいずれが、前記ビデオの前記部分についての前記1つのデフォルト遷移表として選択されるべきかを示す、請求項20から32のいずれか一項に記載のエンコーダ。
【請求項34】
前記第1のシンタックス要素は、
前記部分は、前記ビデオであり、前記第2のシンタックス要素は、
ピクチャのシーケンス、
ピクチャ、
タイル、
スライス、
符号化ツリーブロック、
符号化ブロック、若しくは
残差変換ブロック
を単位として、前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の前記選択を制御する、ビデオパラメータセット、
前記部分は、ピクチャのシーケンスであり、前記第2のシンタックス要素は、
ピクチャ、
タイル、
スライス、
符号化ツリーブロック、
符号化ブロック、若しくは
残差変換ブロック
を単位として、前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の前記選択を制御する、シーケンスパラメータセット、
前記部分は、1又は複数のピクチャであり、前記第2のシンタックス要素は、
ピクチャ、
タイル、
スライス、
符号化ツリーブロック、
符号化ブロック、若しくは
残差変換ブロック
を単位として、前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の前記選択を制御する、ピクチャパラメータセット、又は
前記部分は、1つのピクチャであり、前記第2のシンタックス要素は、
タイル、
スライス、
符号化ツリーブロック、
符号化ブロック、若しくは
残差変換ブロック
を単位として、前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の前記選択を制御する、ピクチャヘッダ、あるいは
前記部分は、1つの符号化ツリーブロックであり、前記第2のシンタックス要素は、
符号化ブロック、若しくは
残差変換ブロック
を単位として、前記デフォルト遷移表のセット(159)のうちの前記1つのデフォルト遷移表の前記選択を制御する、パラメータセット
の中の前記データストリーム(14)に含まれる、請求項33に記載のエンコーダ。
【請求項35】
前記媒体信号は、カラービデオであり、前記エンコーダは、異なる色成分に対する前記デフォルト量子化器のセット(151)に対して異なるバージョンを使用するように構成されている、請求項20から34のいずれか一項に記載のエンコーダ。
【請求項36】
前記バイナリ関数は、パリティである、請求項20から35のいずれか一項に記載のエンコーダ。
【請求項37】
予測を実行して媒体信号及び残差信号の予測バージョンを取得することによって、
前記残差信号を取得するために前記媒体信号を予測的に符号化するように構成されている、請求項20から36のいずれか一項に記載のエンコーダ。
【請求項38】
予測を実行して媒体信号及び残差信号の予測バージョンを取得することと、
前記残差信号を順変換に供することと、によって、
前記残差信号を取得するために前記媒体信号を予測的に符号化するように構成されている、請求項20から37のいずれか一項に記載のエンコーダ。
【請求項39】
方法であって、
予測残差を表す残差レベルをデータストリームから復号化し、
現在の遷移状態に応じて、デフォルト量子化器のセットから量子化器を選択することと、
前記量子化器を使用して現在の残差レベルを逆量子化して、逆量子化された残差値を取得することと、
前記現在の残差レベルにバイナリ関数を適用して、現在の残差レベルの特性を取得することと、
使用される遷移表を使用して、前記現在の残差レベルの特性に応じて前記現在の遷移状態を更新することと、によって、
前記残差レベルを順次逆量子化することと、
前記逆量子化された残差値を使用して媒体信号を再構成することと、
前記データストリームに含まれる量子化モード情報に応じて、デフォルト遷移表のセットから1つのデフォルト遷移表を、使用される前記遷移表として選択することであって、前記デフォルト遷移表の各々は、前記遷移状態のセットと前記現在の残差レベルの特性との組み合わせの定義域から前記遷移状態のセットへの全射写像を表し、前記デフォルト遷移表は、前記遷移状態のセットの基数が異なり、前記基数は、4以上である、ことと、
使用される前記遷移表としてどのデフォルト遷移表が選択されても、第1の写像を使用して、前記現在の遷移状態の所定数のビットを前記デフォルト量子化器に写像することによって、前記量子化器の前記選択を実行することであって、使用される前記遷移表としてどのデフォルト遷移表が選択されても、前記所定数と前記第1の写像
が、不変である、ことと、
を含む、
方法。
【請求項40】
方法であって、
残差信号を取得するために媒体信号を予測的に符号化することと、
現在の遷移状態に応じて、デフォルト量子化器のセットから量子化器を選択することと、
前記量子化器を使用して現在の残差値を量子化して、現在の残差レベルを取得することと、
前記現在の残差レベルにバイナリ関数を適用して、現在の残差レベルの特性を取得することと、
使用される遷移表を使用して、前記現在の残差レベルの特性に応じて前記現在の遷移状態を更新することと、によって、
前記残差信号を表す残差値を連続的に量子化して、残差レベルを取得することと、
前記残差レベルを
データストリームに符号化することと、
前記データストリームに送信される量子化モード情報に応じて、デフォルト遷移表のセットから1つのデフォルト遷移表を、使用される前記遷移表として選択することであって、前記デフォルト遷移表の各々は、前記遷移状態のセットと前記現在の残差レベルの特性との組み合わせの定義域から前記遷移状態のセットへの全射写像を表し、前記デフォルト遷移表は、前記遷移状態のセットの基数が異なり、前記基数は、4以上である、ことと、
使用される前記遷移表としてどのデフォルト遷移表が選択されても、第1の写像を使用して、前記現在の遷移状態の所定数のビットを前記デフォルト量子化器に写像することによって、前記量子化器の前記選択を実行することであって、使用される前記遷移表としてどのデフォルト遷移表が選択されても、前記所定数と前記第1の写像
が、不変である、ことと、
を含む、
方法。
【請求項41】
請求項39又は40に記載の方法を実行するためのプログラムコードを有するコンピュータプログラムであって、前記プログラムが1又は複数のコンピュータ上で実行されるときに、前記方法を実行するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明による実施形態は、変換係数レベルの適応依存量子化をサポートするためのデコーダ、エンコーダ、及び方法に関する。
【0002】
本発明は、残差サンプルのブロックの非可逆符号化に適用される。残差サンプルは、サンプルの元のブロックと予測信号のサンプルとの間の差を表す(予測信号は、イントラピクチャ予測若しくはインターピクチャ予測によって、又はイントラピクチャ予測とインターピクチャ予測との組み合わせによって、又は任意の他の手段によって得ることができ、特殊な場合には、予測信号は0に等しく設定することができる)。
【0003】
サンプルの残差ブロックは、信号変換を使用して変換される。典型的には、線形分離可能な変換が使用される(線形とは、変換が線形であるが、変換係数の追加の丸めを組み込むことができることを意味する)。しばしば、DCT-IIの整数近似又はDCT/DSTファミリの他の変換の整数近似が使用される。水平方向又は垂直方向に異なる変換を使用することができる。変換は、線形分離可能な変換に限定されない。他の任意の変換(線形かつ分離不可能、又は非線形)が使用されてもよい。特に、第1の分離可能変換の後に取得された変換係数又は変換係数の一部に、2次の非分離可能変換を適用することができる。信号変換の結果として、異なる信号空間における残差サンプルの元のブロックを表す変換係数のブロックが取得される。特別な場合には、変換は、識別変換に等しくなり得る(すなわち、変換係数のブロックは、残差サンプルのブロックに等しくなり得る)。変換係数のブロックは、非可逆符号化を使用して符号化される。デコーダ側において、再構成された変換係数のブロックは、残差サンプルの再構成ブロックが取得されるように逆変換される。最後に、予測信号を加算することによって、画像サンプルの再構成ブロックが取得される。
【0004】
本発明は、変換係数のブロックの非可逆符号化の概念を説明する。本発明は、特に、依存量子化の複数の変形形態と、適用される変形形態の適応的な選択とを可能にする方法を説明する。
【0005】
このコンテキストでは、依存量子化とは、エンコーダ側において、変換係数のブロックが、忠実度が低減された変換係数を表す変換係数レベル(すなわち、量子化インデックス)のブロックに写像されるという特性を有する量子化方法を指す。デコーダ側では、量子化インデックスは、再構成された変換係数(量子化により元の変換係数とは異なる)に写像される。従来のスカラー量子化とは対照的に、変換係数は独立して量子化されない。代わりに、ある変換係数に対する再構成レベルの許容可能なセットは、他の変換係数に対する選択された量子化インデックスに依存する。
【0006】
依存量子化には複数の変形形態が存在しており、それらは主に、可能ないわゆる量子化状態の数が異なる。量子化状態の数を増加させることは、通常、符号化効率を改善するが、エンコーダの複雑性も増大させる。したがって、符号化効率と実装複雑性との間の適切なトレードオフを選択する自由度をエンコーダに与えるために、依存量子化の複数の変形形態をサポートすることが合理的である。しかし、デコーダの場合、実装複雑性は、量子化のためにサポートされる変形形態の数とともに増加する。
【0007】
本発明は、統合フレームワークにおける独立量子化と依存量子化の複数の変形形態とをサポートする方法を説明する。再構成プロセス及び変換係数レベルのエントロピー符号化は、デコーダが単一の実装形態で全ての変形形態をサポートできるように設計される。選択された変形形態に依存する唯一の態様は、状態遷移表の選択である。本発明は、以下の態様を含む。
・従来の独立量子化に加え、依存量子化の2つ以上の変形形態をサポートすること
・特に、8つの状態を有する依存量子化の変形形態を追加すること
・使用される量子化方法の高レベルシグナリング
・量子化インデックスから変換係数レベルを再構成するための統合プロセス
・量子化インデックスのエントロピー符号化のための統合プロセス(コンテキスト符号化ビンの最大数の基準を含む)
・有意フラグのための統合状態依存コンテキスト選択
【背景技術】
【0008】
以下では、変換係数レベルの依存量子化及び関連するエントロピー符号化の概念について説明する。この説明は、多用途ビデオ符号化規格(VTM-7)のドラフト7で指定された設計態様を特に強調する。しかしながら、この特定の設計の複数の変形形態が可能であることに留意されたい。
【0009】
2.1 依存量子化
変換係数の依存量子化とは、変換係数の利用可能な再構成レベルのセットが、(同じ変換ブロック内の)再構成順序において先行する変換係数の選択された量子化インデックスに依存する概念を指す。再構成レベルの複数のセットが事前定義され、(符号化順序で)先行する変換係数の量子化インデックスに基づいて、事前定義されたセットのうちの1つが、現在の変換係数を再構成するために選択される。
【0010】
2.1.1 再構成レベルのセット
現在の変換係数に対する許容可能な再構成レベルのセットは、再構成レベルの事前定義されたセットの集合(2つ以上のセット)の中から(符号化順序で先行する変換係数に対する量子化インデックスに基づいて)選択される。再構成レベルのセットの再構成レベルの値は、ブロックベースの量子化パラメータによってパラメータ化される。ブロックベースの量子化パラメータ(QP)は、量子化ステップサイズΔを決定し、(再構成レベルの全てのセットにおける)全ての再構成レベルは、量子化ステップサイズΔの整数倍を表す。特定の変換係数tk(kは再構成順序を示す)に対する量子化ステップサイズΔkは、単にブロック量子化パラメータQPによって決定されなくてもよいが、特定の変換係数tkに対する量子化ステップサイズΔkが量子化重み付け行列及びブロック量子化パラメータによって決定されることも可能である。典型的には、変換係数tkの量子化ステップサイズΔkは、変換係数tkの重み係数wk(量子化重み行列によって指定される)とブロック量子化ステップサイズΔblock(ブロック量子化パラメータによって指定される)との積によって与えられ、
Δk=wk・Δblock
である。
【0011】
VTM-7では、変換係数の依存スカラー量子化は、正確に2つの異なるセットの再構成レベルを使用する。変換係数tkに対する2つのセットの全ての再構成レベルは、この変換係数に対する量子化ステップサイズΔk(少なくとも部分的に、ブロックベースの量子化パラメータによって決定される)の整数倍を表す。量子化ステップサイズΔkは、両方のセットにおける許容可能な再構成値のためのスケーリング係数を単に表すことに留意されたい。変換ブロック内の異なる変換係数tkに対する可能な個々の量子化ステップサイズΔk(したがって、個々のスケーリング係数)を除いて、同じ2つのセットの再構成レベルが全ての変換係数に対して使用される。
【0012】
図1は、再構成レベルの2つのセットを示している。白丸及び黒丸は、再構成レベルのセット内の2つの異なるサブセットを示し、サブセットは、再構成順序における次の変換係数の再構成レベルのセットを決定するために使用することができる。
再構成レベルの2つのセットを
図1に示す。
【0013】
・第1の量子化セット(
図1においてセット0とラベル付けされている)に含まれる再構成レベルは、量子化ステップサイズの偶数倍を表す。
・第2の量子化セット(
図1においてセット1とラベル付けされている)は、量子化ステップサイズの全ての奇数整数倍と、更に0に等しい再構成レベルとを含む。
【0014】
両方の再構成セットが0に関して対称であることに留意されたい。0に等しい再構成レベルは両方の再構成セットに含まれ、そうでなければ再構成セットは不連続である。両方の再構成セットの和集合は、量子化ステップサイズの全ての整数倍を含む。
【0015】
2.1.2 再構成レベルの表現
エンコーダが許容可能な再構成レベルの中から選択する再構成レベルは、ビットストリーム内に示されなければならない。従来の独立スカラー量子化におけるように、これは、変換係数レベルとも称されるいわゆる量子化インデックスを使用して達成することができる。量子化インデックス(又は変換係数レベル)は、量子化セット内の(すなわち、再構成レベルのセット内の)利用可能な再構成レベルを一意に識別する整数である。量子化インデックスは、(任意のエントロピー符号化技術を使用して)ビットストリームの一部としてデコーダに送られる。デコーダ側では、再構成された変換係数は、再構成レベルの現在のセット(符号化/再構成順序において先行する量子化インデックスによって決定される)と、現在の変換係数の送信された量子化インデックスとに基づいて一意に計算することができる。
【0016】
図1の再構成レベルは、関連する量子化インデックスでラベル付けされている(量子化インデックスは、再構成レベルを表す円の下の数字によって与えられる)。0に等しい量子化インデックスは、0に等しい再構成レベルに割り当てられる。1に等しい量子化インデックスは、0より大きい最小の再構成レベルに割り当てられ、2に等しい量子化インデックスは、0より大きい次の再構成レベル(すなわち、0より大きい2番目に小さい再構成レベル)に割り当てられ、以下同様である。あるいは、換言すれば、0より大きい再構成レベルは、それらの値の昇順で0より大きい整数(すなわち、1、2、3など)でラベル付けされる。同様に、量子化インデックス-1は、0より小さい最大再構成レベルに割り当てられ、量子化インデックス-2は、0より小さい次の(すなわち、2番目に大きい)再構成レベルに割り当てられ、以下同様である。あるいは、換言すれば、0より小さい再構成レベルは、それらの値の降順で0より小さい整数(すなわち、-1、-2、3など)でラベル付けされる。
【0017】
量子化ステップサイズの整数倍を表す再構成レベルの使用は、デコーダ側における変換係数の再構成のための計算的に複雑でないアルゴリズムを可能にする。これは、以下の
図1の好ましい例に基づいて説明される。第1の量子化セットは、量子化ステップサイズの全ての偶数倍を含み、第2の量子化セットは、量子化ステップサイズの全ての奇数倍に0に等しい再構成レベル(両方の量子化セットに含まれる)を加えたものを含む。変換係数の再構成プロセスは、
図2の擬似コードで指定されたアルゴリズムと同様に実施することができる。
【0018】
図2は、変換係数の再構成プロセスを示す擬似コードを示している。kは現在の変換係数の再構成順序を指定するインデックスを表し、現在の変換係数の量子化インデックスはlevel[k]によって示され、現在の変換係数に適用される量子化ステップサイズΔ
kはquant_step_size[k]によって示され、trec[k]は再構成された変換係数t’
kの値を表す。変数setId[k]は、現在の変換係数に適用される再構成レベルのセットを指定する。これは、再構成順序において先行する変換係数に基づいて決定され、setId[k]の取り得る値は0及び1である。変数nは、量子化ステップサイズの整数係数を指定し、再構成レベルの選択されたセット(すなわち、setId[k]の値)及び送信された量子化インデックスlevel[k]によって与えられる。
【0019】
図2の擬似コードでは、level[k]は、変換係数t
kに対して送信される量子化インデックスを示し、setId[k](0又は1に等しい)は、再構成レベルの現在のセットの識別子を指定する(以下でより詳細に説明するように、再構成順序で先行する量子化インデックスに基づいて決定される)。変数nは、量子化インデックスlevel[k]及びセット識別子setId[k]によって与えられる量子化ステップサイズの整数倍を表す。変換係数が、量子化ステップサイズΔ
kの偶数倍を含む再構成レベルの第1のセット(setId[k]==0)を使用して符号化される場合、変数nは、送信された量子化インデックスの2倍である。変換係数が再構成レベルの第2のセット(setId[k]==1)を使用して符号化される場合、以下の3つのケースがある。すなわち(a)level[k]が0に等しい場合、nも0に等しく、(b)level[k]が0より大きい場合、nは量子化インデックスlevel[k]の2倍マイナス1に等しく、(c)level[k]が0未満である場合、nは量子化インデックスlevel[k]の2倍プラス1に等しい。これは、符号関数
を使用して指定することができる。
【0020】
次に、第2の量子化セットが使用される場合、変数nは、量子化インデックスlevel[k]の2倍から量子化インデックスの符号関数sign(level[k])を引いたものに等しい。
【0021】
変数n(量子化ステップサイズの整数係数を指定する)が決定されると、再構成された変換係数t’kは、nを量子化ステップサイズΔkで乗算することによって取得される。
【0022】
図3は、
図2の擬似コードの代替的な実装形態を示す擬似コードを示している。主な変更点は、量子化ステップとの乗算が、スケール及びシフトパラメータを使用する整数の実装形態を使用して表されることである。典型的には、シフトパラメータ(shiftによって表される)は変換ブロックに対して一定であり、スケールパラメータ(scale[k]によって与えられる)のみが変換係数の位置に依存し得る。変数addは丸めオフセットを表し、典型的にはadd=(1<<(shift-1))に等しく設定される。Δ
kが変換係数の公称量子化ステップである場合、パラメータshift及びscale[k]は、Δ
k~scale[k]・2
-shiftを有するように選択される。
【0023】
上述したように、量子化ステップサイズΔ
kとの正確な乗算の代わりに、再構成された変換係数t’
kは、整数近似によって得ることができる。これは
図3の擬似コードに示されている。ここで、変数shiftは、右方向へのビットシフトを表す。その値は、典型的には、ブロックに対する量子化パラメータのみに依存する(しかし、シフトパラメータがブロック内の異なる変換係数に対して変更され得ることも可能である)。変数scale[k]は、変換係数t
kのスケーリング係数を表し、ブロック量子化パラメータに加えて、例えば、量子化重み付け行列の対応するエントリに依存することができる。変数addは丸めオフセットを指定し、典型的にはadd=(1<<(shift-1))に等しく設定される。
図3(最後の行)の擬似コードで指定される整数演算は、丸めを除いて、
Δ
k=scale[k]・2
-shift
によって与えられる量子化ステップサイズΔ
kとの乗算と等価であることに留意されたい。
【0024】
図2に対する
図3の別の(純粋に表面的な)変更点は、再構成レベルの2つのセット間の切り替えが、Cプログラミング言語などのプログラミング言語から知られている三項if-then-else演算子(a?b:c)を使用して実装されることである。
【0025】
2.1.3 変換係数の依存再構成
依存スカラー量子化の別の重要な設計態様は、定義された量子化セット(再構成レベルのセット)間の切り替えに使用されるアルゴリズムである。使用されるアルゴリズムは、変換係数のN次元空間において(したがって、再構成されたサンプルのN次元空間においても)達成され得る「充填密度」を決定する。より高い充填密度は、最終的に符号化効率の増加をもたらす。
【0026】
VTM-7では、量子化セット(セット0及びセット1)間の遷移は、状態変数(又は量子化状態)によって決定される。再構成順序における第1の変換係数について、状態変数は、事前定義された値に等しく設定される。典型的には、事前定義された値は0に等しい。符号化順序に続く変換係数の状態変数は、更新プロセスによって決定される。特定の変換係数の状態は、再構成順序において前の変換係数の状態及び前の変換係数の値にのみ依存する。
【0027】
状態変数は、4つの取り得る値(0,1,2,3)を有する。一方では、状態変数は、現在の変換係数に使用される量子化セットを指定する。量子化セット0は、状態変数が0又は1に等しい場合にのみ使用され、量子化セット1は、状態変数が2又は3に等しい場合にのみ使用される。一方、状態変数は、量子化セット間の可能な遷移も指定する。
【0028】
特定の変換係数の状態は、再構成順序において前の変換係数の状態と、前の変換係数の値のバイナリ関数とにのみ依存する。バイナリ関数は、以下において経路と称される。VTM-7では、以下の状態遷移表が使用され、ここで、「経路」は、再構成順序における前の変換係数レベルの該バイナリ関数を指す。
【表1】
VTM-7では、経路は量子化インデックスのパリティによって与えられる。level[k]が変換係数レベルである場合、それは、
path=(level[k]&1)
に従って決定することができ、ここで、演算子「&」は、2つの補数整数演算におけるビット単位の「and」を表す。
【0029】
代替として、経路は、level[k]の他のバイナリ関数を表すこともできる。一例として、これは、変換係数レベルが0に等しいか否かを指定することができる。
【0030】
依存スカラー量子化のための状態遷移の概念は、デコーダにおける変換係数の再構成のための低複雑度の実装形態を可能にする。単一の変換ブロックの変換係数の再構成の好ましい例が、Cスタイルの擬似コードを使用して
図4に示されている。
【0031】
図4は、変換ブロックに対する変換係数の再構成プロセスを示す擬似コードを示している。アレイレベルは、変換ブロックに対する送信された変換係数レベル(量子化インデックス)を表し、アレイtrecは、対応する再構成された変換係数を表す。2dテーブルstate_trans_tableは、状態遷移表を指定し、テーブルsetIdは、状態に関連付けられた量子化セットを指定する。関数path()は、変換係数レベルのバイナリ関数を指定する。
【0032】
図4の擬似コードにおいて、インデックスkは、変換係数の再構成順序を指定する。例示的なコードでは、インデックスkは再構成順序で減少することに留意されたい。最後の変換係数は、k=0に等しいインデックスを有する。第1のインデックスkstartは、第1の再構成された変換係数の再構成インデックス(又は、より正確には、逆再構成インデックス)を指定する。変数kstartは、変換ブロック中の変換係数の数から1を引いた数に等しく設定され得るか、又は符号化/再構成順序において第1の非ゼロ量子化インデックス(例えば、第1の非ゼロ量子化インデックスの位置が、適用されるエントロピー符号化方法において送信される場合)のインデックスに等しく設定され得る。後者の場合、全ての先行する変換係数(インデックスk>kstartを有する)は、0に等しいと推測される。各単一の変換係数に対する再構成プロセスは、
図3の例と同じである。
図3の例に関して、量子化インデックスはlevel[k]によって表され、関連する再構成された変換はtrec[k]によって表される。状態変数はstateで表される。1dテーブルsetId[]は、状態変数の異なる値に関連付けられた量子化セットを指定し、2dテーブルstate_trans_table[][]は、現在の状態(第1の引数)及び経路(第2の引数)が与えられた状態遷移を指定する。一例として、経路は、量子化インデックスのパリティによって与えられ得るが(ビット単位及び演算子&を使用して)、他の概念も可能である。更なる例として、経路は、変換係数が0に等しいか又は等しくないかを指定することができる。Cスタイルシンタックスにおける表の例を
図5に示す(これらの表は表1と同一である)。
【0033】
図5は、状態遷移表state_trans_tableと、状態に関連付けられた量子化セットを指定するテーブルsetIdとを示している。Cスタイルシンタックスで与えられるテーブルは、表1で指定されるテーブルを表す。
【0034】
次の状態の決定にテーブルstate_trans_table[][]を使用する代わりに、同じ結果をもたらす算術演算を使用することができる。同様に、テーブルsetId[]も算術演算を使用して実装することができる。又は、1dテーブルsetId[]を使用するテーブルルックアップと符号関数との組み合わせは、算術演算を使用して実装することができる。
【0035】
2.2 変換係数レベルのエントロピー符号化
依存スカラー量子化の主な態様は、変換係数に対して許容可能な再構成レベルの異なるセット(量子化セットとも称される)が存在することである。現在の変換係数に対する量子化セットは、先行する変換係数に対する量子化インデックスの値に基づいて決定される。
図1の好ましい例を考慮し、2つの量子化セットを比較すると、0に等しい再構成レベルと隣接する再構成レベルとの間の距離は、セット1よりもセット0の方が大きいことが明らかである。したがって、量子化インデックスが0に等しい確率は、セット0が使用される場合により大きくなり、セット1が使用される場合により小さくなる。VTM-7では、この効果は、現在の量子化インデックスのために使用される状態に基づいて確率モデルを切り替えることによってエントロピー符号化において利用される。
【0036】
コードワードテーブル又は確率モデルの適切な切り替えのために、全ての先行する量子化インデックスの経路(量子化インデックスのバイナリ関数)は、現在の量子化インデックス(又は現在の量子化インデックスの対応するバイナリ決定)をエントロピー復号化するときに知られている必要があることに留意されたい。
【0037】
VTM-7では、量子化インデックスは、H.264|MPEG-4 AVC又はH.265|MPEG-H HEVCと同様の二値算術符号化を使用して符号化される。その目的のために、非バイナリ量子化インデックスは、最初に一連のバイナリ決定(概してビンと称される)に写像される。
【0038】
2.2.1 二値化
量子化インデックスは絶対値として送信され、絶対値が0より大きい場合は符号として送信される。符号は単一のビンとして送信されるが、絶対値を一連のバイナリ決定に写像するための多くの可能性がある。
【0039】
【表2】
VTM-7で使用される絶対値の二値化を表2に示す。以下のバイナリシンタックス要素及び非バイナリシンタックス要素が送信される。
【0040】
・sig_flagは、変換係数レベルの絶対値|q|が0より大きいかどうかを指定する。
・sig_flagが1に等しい場合、gt1_flagは、変換係数レベルの絶対値|q|が1より大きいかどうかを指定する。
・gt1_flagが1に等しい場合、par_flagは、変換係数レベルの絶対値|q|のパリティを指定し、gt3_flagは、変換係数レベルの絶対値|q|が3より大きいかどうかを指定する。
【0041】
・gt3_flagが1に等しい場合、非バイナリ値remは、絶対レベル|q|の剰余を指定する。このシンタックス要素は、ゴロム-ライス符号を使用して、算術符号化エンジンのバイパスモードで送信される。
存在しないシンタックス要素は、0に等しいと推測される。デコーダ側では、変換係数レベルの絶対値は以下のように再構成される。
|q|=sig_flag+gt1_flag+par_flag+2*(gt3_flag+rem)
【0042】
非ゼロ変換係数レベル(1に等しいsig_flagによって示される)の場合、変換係数レベルの符号を指定するsign_flagが、バイパスモードで更に送信される。
【0043】
2.2.2 ビンの符号化順序及びバイパスモード
VTM-7における変換係数レベルのエントロピーは、HEVCのエントロピーと複数の態様を共有する。しかし、本発明は、エントロピー符号化が依存量子化に適応される追加の態様も含む。
【0044】
図6は、符号化順序における第1の非ゼロ量子化インデックス120の位置のシグナリング(強調されたサンプル)を示している。最初の非ゼロ変換係数120の位置に加えて、符号化順序102において第1の非ゼロ量子化インデックス120に続く係数122のビンのみが送信され(例えば、青色でマーキングされたサンプル)、符号化順序102において第1の非ゼロ量子化インデックス120に先行する係数は、0に等しいと推測される(例えば、白色でマーキングされたサンプル)。
【0045】
変換係数の各ブロックは、固定サイズのサブブロック(係数グループとも称される)に分割される。概して、サブブロックは、4×4係数のサイズを有する(
図6を参照)。一部の場合では、他のサイズを使用してもよい(例えば、2×2、2×4、4×2、2×8、又は8×2)。
HEVCと同様に、変換係数のブロックの符号化は以下のように進行する。
【0046】
・最初に、変換ブロック内に非ゼロ変換係数レベルがあるかどうかを指定する、いわゆるcoded_block_flagが送信される。coded_block_flagが0に等しい場合、全ての変換係数レベルは0に等しく、変換ブロックに対して更なるデータは送信されない。一部の場合では(例えば、スキップモードでは)、coded_block_flagは明示的に送信されないことがあるが、他のシンタックス要素に基づいて推測される。
【0047】
・coded_block_flagが1に等しい場合、符号化順序における最初の有意変換係数のx座標及びy座標が送信される(実際の走査順序は高周波成分から低周波成分への走査を指定するので、これは時には最終有意係数と称される)。
【0048】
・変換係数の走査は、サブブロック(典型的には、4×4サブブロック)に基づいて進行し、サブブロックの全ての変換係数レベルは、任意の他のサブブロックの任意の変換係数レベルが符号化される前に符号化される。サブブロックは、事前定義された走査順序において処理され、走査順序において第1の有意係数を含むサブブロックから開始し、DC係数を含むサブブロックで終了する。
【0049】
・このシンタックスは、サブブロックが任意の非ゼロ変換係数レベルを含むかどうかを示すcoded_subblock_flagを含む。走査順序における最初及び最後のサブブロック(すなわち、走査順序における第1の有意係数を含むサブブロック及びDC係数を含むサブブロック)については、このフラグは送信されないが、1に等しいと推測される。coded_subblock_flagが送信されるとき、典型的にはサブブロックの開始において送信される。
【0050】
・coded_subblock_flagが1に等しい各サブブロックについて、変換係数レベルは、サブブロックの走査位置にわたる複数の走査パスにおいて送信される。
【0051】
以下では、まず、特別な態様(後述)を無視する。この特別な態様がなければ、coded_subblock_flagが1に等しいサブブロックの符号化は、以下のように進行する。
【0052】
・符号化順序における最初のサブブロック(すなわち、x座標及びy座標が明示的に送信される第1の有意走査位置を含むサブブロック)については、符号化は、走査順序における第1の非ゼロ係数の走査位置firstSigScanIdx(すなわち、明示的に送信されたx座標及びy座標に対応する走査位置)から開始する。他の全てのサブブロックについて、符号化は、サブブロック内の最小走査インデックスminSubblockScanIdxで開始する。走査は、サブブロック内の最大走査インデックスmaxSubblockScanIdxで終了する。
・第1のパスでは、正規符号化ビンsig_flag、gt1_flag、par_flag、及びgt3_flagが送信される。
○sig_flagが1に等しいと推測できる場合、sig_flagは送信されない。これは、以下の2つの場合に0に等しいと推測することができる。
【0053】
(1)現在の走査位置は、走査順序における第1の非ゼロ係数の走査インデックスstartScanIdxに等しい(すなわち、明示的に送信されたx座標及びy座標に対応する走査位置)。
【0054】
(2)現在のサブブロックは、1に等しいcoded_subblock_flagが送信されたサブブロックであり、現在の走査インデックスはサブブロック内の最大走査インデックスmaxSubblockScanIdxであり、現在のサブブロックに対して以前に送信された全てのsig_flagは1に等しい。
【0055】
○走査インデックスkについてのsig_flag[k]が1に等しい(送信又は推測される)場合、gt1_flagが送信される。そうでない場合、gt1_flagは0に等しいと推測される。
【0056】
○走査インデックスkについてのgt1_flag[k]が1に等しい場合、par_flag及びgt3_flagが送信される。そうでない場合、par_flag及びgt3_flagは0に等しいと推測される。
【0057】
・第2のパスにおいて、剰余値remは、1に等しいgt3_flagが送信された走査インデックスについて符号化される。他の全ての走査インデックスについては、剰余remは0に等しいと推定される。剰余値remは、ライス符号と、いわゆるライスパラメータによってパラメータ化される指数ゴロム符号との連結を使用して符号化される。対応するコードワードのビンは、バイパスモードで符号化される。ライスパラメータは、既に符号化されたシンタックス要素(以下参照)に基づいて決定される。
【0058】
・最後に、最後のパスでは、1に等しいsig_flag[k]を有する全ての走査インデックスk(符号化又は推論された)について、変換係数値が負であるか正であるかを指定するsign_flagが送信される。
【0059】
以下の擬似コードは、サブブロック内の変換係数レベルの符号化プロセスを更に示す。これは、デコーダの観点から示されている。ブール変数firstSubblockは、現在のサブブロックが(変換ブロック内の)符号化順序で最初のサブブロックであるかどうかを指定する。firstSigScanIdxは、変換ブロック中の最初の有意変換係数(変換ブロックシンタックスの開始において明示的にシグナリングされるもの)の位置に対応する走査インデックスを指定する。minSubblockScanIdx及びmaxSubblockScanIdxは、現在のサブブロックの走査インデックスの最小値及び最大値を表す。任意のデータが送信される第1の走査インデックスは、サブブロックが走査順序で第1の有意係数を含むかどうかに依存することに留意されたい。この場合、第1の走査パスは、最初の有意変換係数に対応する走査インデックスから開始され、そうでない場合、第1の走査パスは、サブブロックの最小走査インデックスから開始する。走査インデックスkの変数coeff[k]は、再構成された変換係数レベルを表す。符号化は復号化と同様に進行する。
【0060】
1に等しいcoded_subblock_flagを有するサブブロックの復号化を指定する擬似コード(簡略化):
startScanIdx = ( firstSubblock ? firstSigScanIdx : minSubblockScanIdx )
endScanIdx = maxSubblockScanIdx
// first pass (regular coded bins)
for( k = startScanIdx; k <= endScanIdx; k++ ) {
coeff[k] = 0
if( sig_flag cannot be inferred to be equal to 1 ) {
decode sig_flag[k]
}
if( sig_flag[k] != 0 ) {
decode gt1_flag[k]
if( gt1_flag[k] != 0 ) {
decode par_flag[k]
decode gt3_flag[k]
}
coeff[k] = 1 + gt1_flag[k] + par_flag[k] + 2 * gt3_flag[k]
}
state = stateTransTable[ state ][ coeff[k] & 1 ]
}
// second pass (bypass coding of remainder)
for( k = startScanIdx; k <= endScanIdx; k++ ) {
if( gt3_flag[k] != 0 ) {
decode rem[k]
coeff[k] = coeff[k] + 2 * rem[k]
}
}
// third pass (bypass coding of signs)
for( k = startScanIdx; k <= endScanIdx; k++ ) {
if( coeff[k] != 0 ) {
decode sign_flag[k]
if( sign_flag[k] == 1 )
coeff[k] = -coeff[k]
}
}
【0061】
HEVCと比較した1つの欠点は、変換係数あたりの正規符号化ビンの最大数が増加することであった。この問題を回避するために、以下の概念がVTM-7に含まれる。
・変換ブロックの正規符号化ビンmaxNumRegBinsの最大数は、
maxNumRegBins=1.75*width*height
に等しく設定され、式中、width及びheightは、変換ブロック(より正確には、変換係数が0に等しくなるように強制される場合、変換ブロックの非ゼロ外量域)のサイズを表す。
【0062】
・変換ブロックの開始時に、正規符号化ビンの利用可能な数を指定するカウンタremRegBinsが、remRegBins=maxNumRegBinsに等しく設定される。
・正規符号化されたビンが符号化又は復号化された後、カウンタremRegBinsが1だけ減らされる。
【0063】
・第1のパスにおける走査位置についての符号化の開始時に、カウンタが4未満である場合(この場合、全てのビンsig_flag、gt1_flag、par_flag、及びgt3_flagが正規符号化ビンの最大数を超えずに送信されることはできない)、第1のパスは終了する。更に、剰余値は、第1のパスに含まれた走査位置に対してのみ送信される。
・第1の走査パスでデータが符号化されない絶対レベルは、バイパスモードで完全に符号化される。これらは、剰余remと同じクラスの符号を使用して符号化される。ライスパラメータ及び変数pos0は、既に符号化されたシンタックス要素(以下参照)に基づいて決定される。これらの絶対値レベル|q|は直接符号化されないが、最初にシンタックス要素abs_levelに写像され、次にパラメータ符号を使用して符号化される。
【0064】
絶対値|q|のシンタックス要素abs_levelへの写像は、変数pos0に依存する。これは、
abs_level=(|q|==0?pos0:(|q|<=pos0?|q|-1:|q|)
によって指定される。
デコーダ側では、絶対値|q|へのシンタックス要素abs_levelの写像は、以下のように指定される。
|q|=(abs_level==pos0?0:(abs_level<pos0?abs_level+1:abs_level)
【0065】
正規符号化ビンの数に対する制限は、サブブロック単位ではなく、変換ブロック単位で適用されることに留意されたい。これは、カウンタremRegBinsが変換ブロックの開始時に初期化され、正規符号化ビンごとに減少されることを意味する。符号化が特定のサブブロックにおいてバイパスモードに切り替わる場合、符号化順序で後続する全てのサブブロックの全ての変換係数レベルもバイパスモードで符号化される。
【0066】
(1に等しいcoded_subblock_flagを有する)サブブロックに対する符号化プロセスは、以下の擬似コードに示される。前の擬似コードと同様に、符号化プロセスはデコーダの観点から示されている。第1の符号化サブブロックについては、カウンタremRegBinsの初期値はmaxNumRegBinsに等しい。全ての後続のサブブロックについて、カウンタremRegBinsの初期値は、前の符号化サブブロックの終わりに得られた値に等しい。走査インデックスstartIdxBypassは、バイパス符号化(すなわち、abs_levelの符号化)がサブブロック(適用可能な場合)内で開始する第1の走査インデックスである。
【0067】
1に等しいcoded_subblock_flagを有するサブブロックの復号化を指定する擬似コード(114)(バイパスモードを有する):
startScanIdx = (firstSubblock ? firstSigScanIdx : minSubblockScanIdx)
endScanIdx = maxSubblockScanIdx
startIdxBypass = (remRegBins >= 4 ? maxSubblockScanIdx + 1 : startScanIdx)
// first pass (regular coded bins)
for( k = startScanIdx; k <= endScanIdx && remRegBins >= 4; k++ ) {
coeff[k] = 0
if( sig_flag cannot be inferred to be equal to 1 ) {
decode sig_flag[k]
remRegBins = remRegBins - 1
}
if( sig_flag[k] != 0 ) {
decode gt1_flag[k]
remRegBins = remRegBins - 1
if( gt1_flag[k] != 0 ) {
decode par_flag[k]
decode gt3_flag[k]
remRegBins = remRegBins - 2
}
coeff[k] = 1 + gt1_flag[k] + par_flag[k] + 2 * gt3_flag[k]
}
if( remRegBins < 4 ) {
startIdxBypass = k + 1
}
state = stateTransTable[ state ][ coeff[k] & 1 ]
}
// second pass (bypass coding of remainder)
for( k = startScanIdx; k < startIdxBypass; k++ ) {
if( gt3_flag[k] != 0 ) {
decode rem[k]
coeff[k] = coeff[k] + 2 * rem[k]
}
}
// third pass (bypass coding of absolute levels)
for( k = startIdxBypass; k <= endScanIdx; k++ ) {
derive pos0
decode abs_level[k]
if( abs_level[k] == pos0 )
coeff[k] = 0
else if ( abs_level[k] < pos0)
coeff[k] = abs_level[k] + 1
else
coeff[k] = abs_level[k]
state = stateTransTable[ state ][ coeff[k] & 1 ]
}
// fourth pass (bypass coding of signs)
for( k = startScanIdx; k <= endScanIdx; k++ ) {
if( coeff[k] != 0 ) {
decode sign_flag[k]
if( sign_flag[k] == 1 )
coeff[k] = -coeff[k]
}
}
【0068】
2.2.3 コンテキストモデリング
正規符号化ビンsig_flag、gt1_flag、par_flag、及びgt3_flagについて、複数の確率モデル(又はコンテキスト)のうちの1つが実際の符号化のために選択される。
【0069】
図7は、1又は複数のビンに対する確率モデルを選択するために使用されるローカルテンプレートを示している。黒い正方形130は、現在の走査位置を表し、強調表示されたサンプル132(例えば、青い正方形)は、テンプレート内の隣接する走査位置を表す。
【0070】
2.2.3.1 有意フラグsig_flag
有意フラグの場合、選択される確率モデルは、以下に依存する。
・現在の変換ブロックがルマ変換ブロックであるかクロマ変換ブロックであるか
・依存量子化の状態
・現在の変換係数のx座標及びy座標
・局所近傍における(第1のパスの後の)部分的に再構成された絶対値
【0071】
以下に、より詳細に説明する。
変数stateは、依存量子化において使用される現在の変換係数の状態を表す。状態は、値0、1、2、又は3をとることができる。最初に、状態は0に等しく設定される。上記で説明したように、現在の変換係数の状態は、符号化順序における前の係数の状態と、前の変換係数レベルのパリティ(又は、より概しては、バイナリ関数)とによって与えられる。
【0072】
x及びyが変換ブロック内の現在の変換係数の座標である場合、diag=x+yを現在の係数の対角位置とする。対角位置が与えられると、対角クラスインデックスdsigは以下のように導出される。
dsig=(diag<2?2:(diag<5?1:0))(ルマ変換ブロックの場合)
及び
dsig=(diag<2?1:0)(クロマ変換ブロックの場合)
三項演算子(c?a:b)は、if-then-else文を表す。条件cが真である場合、aの値が使用され、そうでない場合(cが偽である場合)、値bが使用される。
【0073】
コンテキストは、局所近傍内の部分的に再構成された絶対値にも依存する。VTM-7では、局所近傍は、
図7に示されるテンプレートTによって与えられる。しかし、他のテンプレートも可能である。使用されるテンプレートはまた、ルマブロックが符号化されるかクロマブロックが符号化されるかに依存し得る。sumAbsを、テンプレートT:
【0074】
における(第1のパスの後の)部分的に再構成された絶対値の和とする。式中、abs1[k]は、第1のパスの後の走査インデックスkについての部分的に再構成された絶対レベルを表す。VTM-7の二値化では、
abs1[k]=sig_flag[k]+gt1_flag[k]+par_flag[k]+2*gt3_flag[k]
で与えられる。
abs1[k]は、第1の走査パス(上記参照)の後に取得された値coeff[k]に等しいことに留意されたい。
【0075】
sig_flagの可能な確率モデルが1dアレイに編成されていると仮定する。ctxIdSigを、使用される確率モデルを識別するインデックスとする。VTM-7によれば、コンテキストインデックスctxIdSigは、以下のように導出することができる。
変換ブロックがルマブロックである場合、
ctxIdSig=min((sumAbs+1)>>1,3)+4*dsig+12*min(state-1,0)
変換ブロックがクロマブロックである場合、
ctxIdSig=36+min((sumAbs+1)>>1,3)+4*dsig+8*min(state-1,0)
ここで、演算子「>>」は、右方向へのビットシフト(2補数演算)を表す。演算は、2により除算して、結果を(次の整数へ)切り捨てることと同一である。
【0076】
コンテキストモデルの他の編成も可能であることに留意されたい。しかし、いずれの場合も、sig_flagを符号化するために選択される確率モデルは、以下に依存する。
・ルマブロックが符号化されるかクロマブロックが符号化されるか
・状態変数、具体的にはmin(state-1,0)
・対角クラスdsig
・ローカルテンプレート内の部分的に再構成された絶対値の和(第1のパス後)、具体的にはmin((sumAbs+1)>>1,3)
【0077】
2.2.3.2 フラグgt1_flag、par_flag、gt3_flag
フラグgt1_flag、par_flag、及びgt3_flagに関して、選択される確率モデルは、以下に依存する。
・現在の変換ブロックがルマ変換ブロックであるかクロマ変換ブロックであるか
・現在の変換係数が変換ブロック内の符号化順序で第1の非ゼロ係数であるか
・現在の変換係数のx座標及びy座標
・局所近傍における(第1のパスの後の)部分的に再構成された絶対値
firstCoeffを、現在の走査インデックスが符号化順序における最初の非ゼロ変換係数レベルの走査インデックスを表すかどうか(すなわち、走査インデックス、又はx及びy位置が明示的に符号化されるもの)を示す変数とする。現在の走査インデックスが最初の非ゼロ変換係数レベルの走査インデックスに等しい場合、firstCoeffは1に等しく、そうでない場合、firstCoeffは0に等しい。
【0078】
x及びyが変換ブロック内の現在の変換係数の座標である場合、diag=x+yを現在の係数の対角位置とする。対角位置が与えられると、対角クラスインデックスdclassは以下のように導出される。
dclass=(diag==0?3:(diag<3?2:(diag<10?1:0)))(ルマ変換ブロックの場合)
及び
dclass=(diag==0?1:0)(クロマ変換ブロックの場合)
【0079】
コンテキストは、局所近傍内の部分的に再構成された絶対値にも依存する。変数sumAbsは、上述のように導出される。更に、テンプレートT内の非ゼロ変換係数レベルの数を指定する変数numSigが導出される。
numSig=Σk∈Tsig_flag[k]
【0080】
sig_flagの場合と同様に、可能な確率モデルが1dアレイに編成されると仮定する。ctxIdを、使用される確率モデルを識別するインデックスとする。VTM-7によれば、コンテキストインデックスctxIdは、以下のように導出することができる。
変換ブロックがルマブロックである場合、
ctxId=(firstCoeff?0:1+min(sumAbs-numSig,4)+5*dclass)
変換ブロックがクロマブロックである場合、
ctxId=21+(firstCoeff?0:1+min(sumAbs-numSig,4)+5*dclass)
【0081】
コンテキストモデルの他の編成も可能であることに留意されたい。しかし、いずれの場合も、選択される確率モデルは、以下に依存する。
・ルマブロックが符号化されるかクロマブロックが符号化されるか
・現在の走査インデックスが符号化順序で最初の非ゼロ変換係数レベルの走査インデックスであるかどうか
・対角クラスdclass
・ローカルテンプレート内の部分的に再構成された絶対値(第1のパス後)の和とローカルテンプレート内の非ゼロ変換係数レベルの数との差、特にmin(sumAbs-numSig,4)
【0082】
同じコンテキストインデックスctxIdが、gt1_flag、par_flag、及びgt3_flagに使用されることに留意されたい。しかし、これらのフラグの各々について、コンテキストモデルの異なるセットが使用される。
【0083】
2.2.3.3 剰余及びバイパス符号化された変換係数レベルのためのライスパラメータ
剰余rem及び絶対値abs_levelの両方は、ビンがバイパスモード(上記参照)で符号化されるコードのパラメトリッククラスを使用して符号化される。実際に使用される二値化は、いわゆるライスパラメータRPによって決定される。更に、絶対レベルabs_levelについて、変数pos0は、符号化シンタックス要素abs_levelから実際の絶対値への写像を決定する。
【0084】
剰余RPremのライスパラメータは、ローカルテンプレート内の再構成された絶対値の和に基づいて導出される。VTM-7では、上記と同じテンプレートが使用される。Tがテンプレートを表し、coeff[k]が走査インデックスkに対する再構成された係数を表す場合、和sumAbsは、以下に従って導出される。
【0085】
完全に再構成された変換係数値coeff[k]が使用されることに留意されたい。tabRPrem[]をサイズ32の固定テーブルとする。ライスパラメータRPremは、以下に従って導出される。
【0086】
RPrem=tabRPrem[max(min(sumAbs-20,31),0)]
tabRPabs[]をサイズ32の別の固定テーブルとする。abs_levelを符号化するために使用されるライスパラメータRPabsは、以下に従って導出される。
RPabs=tabRPabs[min(sumAbs,31)]
【0087】
変数pos0は、ローカルテンプレート内の再構成された絶対値の和と状態変数との両方に依存する。変数pos0は、以下に従って量子化状態及びライスパラメータRPabsから導出される。
pos0=(state<2?1:2)<<RPabs.
【0088】
2.3 量子化方法のハイレベルシグナリング
VTM-7は、4つの状態を有する依存量子化をサポートし、更に、従来の独立スカラー量子化をサポートする。エンコーダによって選択された量子化方法は、以下のようにビットストリームにおいて示される。
【0089】
ピクチャヘッダは、シンタックス要素pic_dep_quant_enabled_flagを含み、このシンタックス要素は、単一ビットを使用して符号化され、依存量子化が現在のピクチャに使用されるか使用されないかを示す。pic_dep_quant_enabled_flagが0に等しい場合、従来の独立量子化が現在ピクチャに対して使用される。pic_dep_quant_enabled_flagが1に等しい場合、依存量子化の指定された変形形態が現在のピクチャのために使用される。
【0090】
ピクチャヘッダシンタックス要素は、ピクチャヘッダに常に存在するわけではない。その存在は、ピクチャパラメータセットにおいて符号化される別のシンタックス要素によって制御される。ピクチャパラメータセットは、シンタックス要素pps_dep_quant_enabled_idcを含み、これは、2ビットの固定長コードを使用して符号化され、以下の意味を有する。
【0091】
・0の値は、pic_dep_quant_enabled_flagがピクチャヘッダ中に存在することを指定する。
・1の値は、pic_dep_quant_enabled_flagがピクチャヘッダ中に存在しないが、ピクチャパラメータセットを参照する全てのピクチャについて0に等しいと推測されることを指定する。
【0092】
・2の値は、pic_dep_quant_enabled_flagがピクチャヘッダ中に存在しないが、ピクチャパラメータセットを参照する全てのピクチャについて1に等しいと推測されることを指定する。
・3の値は、将来の使用のために予約される。
【0093】
ピクチャパラメータセット内のpps_dep_quant_enabled_idcは、ピクチャパラメータセットフラグconstant_slice_header_params_enabled_flagが1に等しい場合に存在する。ピクチャパラメータセットフラグconstant_slice_header_params_enabled_flagが0に等しい場合、ピクチャパラメータセットシンタックス要素pps_dep_quant_enabled_idcはピクチャパラメータセット中に存在しないが、0に等しいと推測される(この場合、pic_dep_quant_enabled_flagはピクチャヘッダ中で符号化される)。
【発明の概要】
【発明が解決しようとする課題】
【0094】
したがって、変換係数レベルの適応依存量子化をサポートするために、ピクチャ符号化及び/又はビデオ符号化をより効率的にレンダリングするための概念を提供することが望ましい。加えて、又は代替的に、ビットストリーム、したがって信号化コストを低減することが望まれる。
【課題を解決するための手段】
【0095】
これは、本願の独立請求項の主題によって達成される。
本発明による更なる実施形態は、本出願の従属請求項の主題によって定義される。
【0096】
本発明の第1の態様によれば、本出願の発明者らは、変換係数レベルの依存量子化/逆量子化を使用しようとするときに遭遇する1つの問題が、高い実装複雑性が複数の依存量子化/逆量子化モードの提供に関与するという事実から生じることを認識した。本出願の第1の態様によれば、この困難性は、独立量子化/逆量子化のフレームワークと、依存量子化/逆量子化の複数の変形形態とを統合することによって克服される。発明者らは、量子化モード情報に依存しない量子化器を選択することが有利であることを見出した。量子化モード情報に依存する唯一の態様は、現在の遷移状態の更新、例えば、更新に使用可能な遷移表の選択である。これは、全てのサポートされる量子化モードのための統合されたプロセスが、単一の量子化モードをサポートすることと比較して、デコーダ側において追加の実装複雑性をほとんどもたらさないという考えに基づく。しかし、異なる方法をサポートする必要がある場合、デコーダの複雑性は増大する。したがって、異なる量子化モードの使用が可能となり、それによって、エンコーダは、符号化効率とその適用エリアの実装複雑性との間の最も適切なトレードオフを提供する変形形態を選択する自由度が与えられる。更に、量子化モードとは独立した量子化器の選択は、エンコーダ/デコーダにおいて4つより多い遷移状態を有する依存量子化モードの使用を可能にし、それによって、N次元信号空間における許容可能な再構成点のより密な充填が達成されるので、符号化効率を増加させることができる。
【0097】
したがって、本出願の第1の態様によれば、デコーダは、予測残差を表す残差レベルをデータストリームから復号化し、現在の遷移状態に応じて、デフォルト量子化器のセットから量子化器を選択することと、量子化器を使用して現在の残差レベルを逆量子化して、逆量子化された残差値を取得することと、現在の残差レベルにバイナリ関数を適用して現在の残差レベルの特性、例えばパリティを取得することと、使用される遷移表を使用して現在の残差レベルの特性に応じて現在の遷移状態を更新することと、によって、残差レベルを順次逆量子化するように構成される。残差レベルの逆量子化は順次実行され、これは、例えば、全ての残差値が逆量子化されるまで、上述した逆量子化ステップがループで実行されることを意味し、そのため、現在の遷移状態の更新は、シーケンスにおける最初のステップ又は最後のステップのいずれかとして理解され得る。現在の遷移状態を更新するステップは、残差レベルの連続的な逆量子化を接続し、例えば、前の残差レベルの逆量子化は、現在の遷移状態の更新によって現在の残差レベルの逆量子化と接続される。更に、例えば、第1の残差レベルの逆量子化の場合、現在の遷移状態は、デフォルト/所定の状態、例えば、0に設定されてもよく、この現在の遷移状態は、例えば、残差レベルの順次逆量子化を初期化するために使用される遷移表を使用して、現在の残差レベルの特性、すなわち、第1の残差レベルの特性に応じて更新される。デコーダは、逆量子化された残差値を使用して媒体信号を再構成するように構成される。更に、デコーダは、データストリームに含まれる量子化モード情報に応じて、デフォルト遷移表のセットから1つのデフォルト遷移表を、使用される遷移表として選択するように構成され、デフォルト遷移表の各々は、1又は複数の遷移状態のセットと現在の残差レベルの特性との組み合わせの定義域から1又は複数の遷移状態のセットへの全射写像を表し、デフォルト遷移表は、1又は複数の遷移状態のセットの基数が異なる。全射写像は、例えば、1又は複数の遷移状態のセットの要素、すなわち遷移状態を、1又は複数の遷移状態のセットの要素、すなわち遷移状態に写像する。全射写像のための定義域及び変域は両方とも、例えば、1又は複数の遷移状態の同じセットに関係する。使用される遷移表のこの選択は、例えば、現在の遷移状態の更新において各残差レベルに対して実行されてもよく、複数の残差レベルを含む変換ブロックごとに実行されてもよく、又はピクチャ単位で実行されてもよい。更に、デコーダは、使用される遷移表としてどのデフォルト遷移表が選択されても、第1の写像を使用して、現在の遷移状態の所定数のビットをデフォルト量子化器に写像することによって、量子化器の選択を実行するように構成され、所定数及び第1の写像は、使用される遷移表としてどのデフォルト遷移表が選択されても等しい。所定数のビットは、例えば、LSB又は2番目であるが最後の有意ビット位置におけるビットなど、1又は複数の所定のビット位置における1又は複数のビットの数を表す。
【0098】
したがって、本出願の第1の態様によれば、デコーダは、予測残差を表す残差レベルをデータストリームから復号化し、現在の遷移状態に応じて、デフォルト量子化器のセットから量子化器を選択することと、量子化器を使用して現在の残差レベルを逆量子化して、逆量子化された残差値を取得することと、現在の残差レベル、例えばパリティにバイナリ関数を適用することによって得られる現在の残差レベルの特性に応じて、かつデータストリームに含まれる量子化モード情報に応じて、現在の遷移状態を更新することと、によって、残差レベルを順次逆量子化するように構成される。上述したように、残差レベルの逆量子化は順次実行され、これは、例えば、全ての残差値が量子化されるまで、上述した逆量子化ステップがループで実行されることを意味し、そのため、現在の遷移状態の更新は、シーケンスにおける最初のステップ又は最後のステップのいずれかとして理解され得る。現在の遷移状態を更新するステップは、残差レベルの連続的な逆量子化を接続し、例えば、前の残差レベルの逆量子化は、現在の遷移状態の更新によって現在の残差レベルの逆量子化と接続される。更に、例えば、第1の残差レベルの逆量子化の場合、現在の遷移状態は、デフォルト/所定の状態、例えば、0に設定されてもよく、この現在の遷移状態は、例えば、残差レベルの順次逆量子化を初期化するために、現在の残差レベルの特性、すなわち、第1の残差レベルの特性に応じて更新される。現在の遷移状態は、例えば、更新時に、量子化モード情報に依存する全射写像に従って、1又は複数の遷移状態のセットと現在の残差レベルの特性との組み合わせの定義域から1又は複数の遷移状態のセットへ遷移し、1又は複数の遷移状態のセットの基数は、量子化モード情報に応じて異なる。量子化モード情報が何であれ、例えば、量子化モード情報とは無関係に、又は独立して、デコーダは、第1の写像を使用して、現在の遷移状態の所定数のビット(例えば、LSBなどの1又は複数の所定のビット位置における1又は複数のビット、又は2番目であるが最後の有意ビット位置におけるビット)をデフォルト量子化器に写像することによって、量子化器の選択を実行するように構成され、所定数及び第1の写像は、量子化モード情報が何であれ等しい。更に、デコーダは、逆量子化された残差値を使用して媒体信号を再構成するように構成される。
【0099】
したがって、本出願の第1の態様によれば、エンコーダは、現在の遷移状態に応じて、デフォルト量子化器のセットから量子化器を選択することと、量子化器を使用して現在の残差値を量子化して、現在の残差レベルを取得することと、現在の残差レベルにバイナリ関数を適用して現在の残差レベルの特性、例えばパリティを取得することと、使用される遷移表を使用して現在の残差レベルの特性に応じて現在の遷移状態を更新することと、によって、媒体信号を予測的に符号化して残差信号を取得し、残差信号を表す残差値を順次量子化して、残差レベルを取得するように構成される。残差レベルの量子化は順次実行され、これは、例えば、全ての残差値が量子化されるまで、上述した量子化ステップがループで実行されることを意味し、そのため、現在の遷移状態の更新は、シーケンスにおける最初のステップ又は最後のステップのいずれかとして理解され得る。現在の遷移状態を更新するステップは、残差レベルの連続的な量子化を接続し、例えば、前の残差レベルの量子化は、現在の遷移状態の更新によって現在の残差レベルの量子化と接続される。更に、例えば、第1の残差レベルの量子化の場合、現在の遷移状態は、デフォルト/所定の状態、例えば、0に設定されてもよく、この現在の遷移状態は、例えば、残差レベルの順次量子化を初期化するために使用される遷移表を使用して、現在の残差レベルの特性、すなわち、第1の残差レベルの特性に応じて更新される。エンコーダは、残差レベルをデータストリームに符号化するように構成される。更に、エンコーダは、データストリームに送信される量子化モード情報に応じて、デフォルト遷移表のセットから1つのデフォルト遷移表を、使用される遷移表として選択するように構成され、デフォルト遷移表の各々は、1又は複数の遷移状態のセットと現在の残差レベルの特性との組み合わせの定義域から1又は複数の遷移状態のセットへの全射写像を表し、デフォルト遷移表は、1又は複数の遷移状態のセットの基数が異なる。全射写像は、例えば、1又は複数の遷移状態のセットの要素、すなわち遷移状態を、1又は複数の遷移状態のセットの要素、すなわち遷移状態に写像する。全射写像のための定義域及び変域は両方とも、例えば、1又は複数の遷移状態の同じセットに関係する。使用される遷移表のこの選択は、例えば、現在の遷移状態の更新において各残差レベルに対して実行されてもよく、複数の残差レベルを含む変換ブロックごとに実行されてもよく、又はピクチャ単位で実行されてもよい。更に、エンコーダは、使用される遷移表としてどのデフォルト遷移表が選択されても、第1の写像を使用して、現在の遷移状態の所定数のビットをデフォルト量子化器に写像することによって、量子化器の選択を実行するように構成され、所定数及び第1の写像は、使用される遷移表としてどのデフォルト遷移表が選択されても等しい。所定数のビットは、例えば、LSB又は2番目であるが最後の有意ビット位置におけるビットなど、1又は複数の所定のビット位置における1又は複数のビットの数を表す。
【0100】
したがって、本出願の第1の態様によれば、エンコーダは、現在の遷移状態に応じて、デフォルト量子化器のセットから量子化器を選択することと、量子化器を使用して現在の残差値を量子化して、現在の残差レベルを取得することと、現在の残差レベル、例えばパリティにバイナリ関数を適用することによって取得される現在の残差レベルの特性に応じて、かつデータストリームで送信される量子化モード情報に応じて、現在の遷移状態を更新することと、によって、媒体信号を予測的に符号化して残差信号を取得し、残差信号を表す残差値を順次量子化して、残差レベルを取得するように構成される。上述したように、残差レベルの量子化は順次実行され、これは、例えば、全ての残差値が量子化されるまで、上述した量子化ステップがループで実行されることを意味し、そのため、現在の遷移状態の更新は、シーケンスにおける最初のステップ又は最後のステップのいずれかとして理解され得る。現在の遷移状態を更新するステップは、残差レベルの連続的な量子化を接続し、例えば、前の残差レベルの量子化は、現在の遷移状態の更新によって現在の残差レベルの量子化と接続される。更に、例えば、第1の残差レベルの量子化の場合、現在の遷移状態は、デフォルト/所定の状態、例えば、0に設定されてもよく、この現在の遷移状態は、例えば、残差レベルの順次量子化を初期化するために、現在の残差レベルの特性、すなわち、第1の残差レベルの特性に応じて更新される。現在の遷移状態は、例えば、更新時に、量子化モード情報に依存する全射写像に従って、1又は複数の遷移状態のセットと現在の残差レベルの特性との組み合わせの定義域から1又は複数の遷移状態のセットへ遷移し、1又は複数の遷移状態のセットの基数は、量子化モード情報に応じて異なる。量子化モード情報が何であれ、例えば、量子化モード情報とは無関係に、又は独立して、デコーダは、第1の写像を使用して、現在の遷移状態の所定数のビット(例えば、LSBなどの1又は複数の所定のビット位置における1又は複数のビット、又は2番目であるが最後の有意ビット位置におけるビット)をデフォルト量子化器に写像することによって、量子化器の選択を実行するように構成され、所定数及び第1の写像は、量子化モード情報が何であれ等しい。加えて、エンコーダは、残差レベルをデータストリームに符号化するように構成される。
【0101】
したがって、本出願の第1の態様によれば、方法は、予測残差を表す残差レベルをデータストリームから復号化し、現在の遷移状態に応じて、デフォルト量子化器のセットから量子化器を選択することと、量子化器を使用して現在の残差レベルを逆量子化して、逆量子化された残差値を取得することと、現在の残差レベル、例えばパリティにバイナリ関数を適用することによって得られる現在の残差レベルの特性に応じて、かつデータストリームに含まれる量子化モード情報に応じて、現在の遷移状態を更新することと、によって、残差レベルを順次逆量子化することを含む。更に、方法は、逆量子化された残差値を使用して媒体信号を再構成することを含む。現在の遷移状態は、量子化モード情報に依存する全射写像に従って、1又は複数の遷移状態のセットと現在の残差レベルの特性との組み合わせの定義域から1又は複数の遷移状態のセットへ遷移し、1又は複数の遷移状態のセットの基数は、量子化モード情報に応じて異なる。更に、方法は、量子化モード情報が何であれ、例えば、量子化モード情報とは無関係に、又は独立して、第1の写像を使用して、現在の遷移状態の所定数のビット(例えば、LSBなどの1又は複数の所定のビット位置における1又は複数のビット、又は2番目であるが最後の有意ビット位置におけるビット)をデフォルト量子化器に写像することによって、量子化器の選択を実行することを含み、所定数及び第1の写像は、量子化モード情報が何であれ等しい。
【0102】
したがって、本出願の第1の態様によれば、方法は、現在の遷移状態に応じて、デフォルト量子化器のセットから量子化器を選択することと、量子化器を使用して現在の残差値を量子化して、現在の残差レベルを取得することと、現在の残差レベル、例えばパリティにバイナリ関数を適用することによって取得される現在の残差レベルの特性に応じて、かつデータストリームで送信される量子化モード情報に応じて、現在の遷移状態を更新することと、によって、媒体信号を予測的に符号化して残差信号を取得し、残差信号を表す残差値を順次量子化して、残差レベルを取得することを含む。更に、方法は、残差レベルをデータストリームに符号化することを含む。現在の遷移状態は、量子化モード情報に依存する全射写像に従って、1又は複数の遷移状態のセットと現在の残差レベルの特性との組み合わせの定義域から1又は複数の遷移状態のセットへ遷移し、1又は複数の遷移状態のセットの基数は、量子化モード情報に応じて異なる。更に、方法は、量子化モード情報が何であれ、例えば、量子化モード情報とは無関係に、又は独立して、第1の写像を使用して、現在の遷移状態の所定数のビット(例えば、LSBなどの1又は複数の所定のビット位置における1又は複数のビット、又は2番目であるが最後の有意ビット位置におけるビット)をデフォルト量子化器に写像することによって、量子化器の選択を実行することを含み、所定数及び第1の写像は、量子化モード情報が何であれ等しい。
【0103】
上述の方法は、上述のエンコーダ/デコーダと同じ考慮事項に基づいている。方法は、エンコーダ/デコーダに関しても説明される全ての特徴及び機能を用いて完了することができる。
一実施形態は、本明細書に記載の符号化方法を使用して符号化されたピクチャ又はビデオを有するデータストリームに関する。
一実施形態は、コンピュータ上で実行されるときに、本明細書に記載の方法を実行するためのプログラムコードを有するコンピュータプログラムに関する。
【0104】
図面は必ずしも縮尺通りではない。代わりに、一般的に本発明の原理を説明することに重点が置かれている。以下の説明において、本発明の種々の実施形態が、以下の図面を参照して説明される。
【図面の簡単な説明】
【0105】
【
図2】変換係数の再構成プロセスを示す擬似コードを示す。
【
図3】変換係数の再構成プロセスの代替的な実装形態を示す擬似コードを示す。
【
図4】変換ブロックに対する変換係数の再構成プロセスを示す擬似コードを示す。
【
図7】1又は複数のビンに対する確率モデルを選択するために使用可能なローカルテンプレートを示す。
【
図9】有意ビンのコンテキスト適応型二値算術符号化(CABAC)の実施形態を示す。
【
図11】一実施形態による、変換ブロックに対する変換係数の再構成プロセスを示す擬似コードを示す。
【
図12】ピクチャ及び/又はビデオエンコーダを示す。
【
図13】ピクチャ及び/又はビデオデコーダを示す。
【
図14】再構成された信号と、予測残差信号及び予測信号の組み合わせとの関係を示す。
【発明を実施するための形態】
【0106】
以下の説明において、同一又は同等の要素、又は同一又は同等の機能を有する要素は、異なる図面に存在する場合であっても、同一又は同等の参照番号によって示される。
【0107】
以下の説明では、本発明の実施形態のより完全な説明を提供するために、複数の詳細が記載される。しかしながら、本発明の実施形態がこれらの具体的な詳細なしに実施され得ることは、当業者には明らかであろう。他の例では、周知の構造及びデバイスは、本発明の実施形態を不明瞭にすることを避けるために、詳細ではなくブロック図の形態で示される。更に、後に本明細書に記載される異なる実施形態の特徴は、特に明記しない限り、互いに組み合わせることができる。
【0108】
以下の実施形態は、主に、デコーダの観点から特徴及び機能を示している。しかしながら、同一又は同様の特徴及び機能がエンコーダによって含まれ得ること、例えば、デコーダによって実行される復号化がエンコーダによる符号化に対応し得ることは明らかである。更に、エンコーダは、フィードバックループにおいて、例えば予測ステージ36において、デコーダに関して説明したのと同じ特徴を含んでもよい。
【0109】
図8は、デコーダ20の実施形態を示している。デコーダ20は、セクション2で説明した特徴及び/又は機能(例えば、セクション2.1~2.3で説明した1又は複数の特徴)を所望により含み得る。
【0110】
デコーダ20は、予測残差を表す残差レベル142をデータストリーム14から復号化(210)するように構成される。残差レベル142は、予測残差を表す変換係数の量子化レベルであってもよい。
図1に示すように、残差レベル142は、量子化ステップサイズ144の整数倍を表すことができる。
【0111】
デコーダ20は、残差レベル142を順次逆量子化(150)するように構成される。残差レベル142は、符号化順序、すなわち走査順序又は再構成順序に沿って逆量子化(150)することができる。異なる符号化順序が可能であり、符号化順序は、デコーダ20によって復号化される媒体信号、例えば、ピクチャ信号、ビデオ信号、又はオーディオ信号に依存し得る。
図6は、ピクチャ又はビデオ信号を復号化するために使用され得る符号化順序102の例を示している。一実施形態によれば、デコーダ20は、最初の非ゼロ変換係数、すなわち、符号化順序で0に等しくない残差レベルを有する第1の変換係数を逆量子化(150)することから開始して、符号化順序で最後の変換係数まで符号化順序で後続の変換係数の残差レベル142を逆量子化(150)することに進み、残差レベル142を逆量子化(150)することができる。符号化順序で第1の非ゼロ量子化インデックスに先行する変換係数の残差レベルは、デコーダ20によって0に等しいと推測され得る。
【0112】
デコーダ20は、現在の遷移状態220に応じてデフォルト量子化器のセット151から量子化器153を選択(152)することと、量子化器153を使用して現在の残差レベルを逆量子化(154)して、逆量子化された残差値104を取得することと、現在の残差レベルにバイナリ関数を適用(156)することによって取得される現在の残差レベルの特性157に応じて、かつデータストリーム14に含まれる量子化モード情報180に応じて、現在の遷移状態を更新(158)することと、によって、残差レベル142を順次逆量子化(150)するように構成される。現在の残差レベルが逆量子化(154)されて逆量子化された残差値104を取得し、逆量子化154に使用される量子化器153は、現在の遷移状態220に依存する。この逆量子化154の後、現在の遷移状態が更新(158)され、例えば、次の残差レベルを逆量子化するために、又は更新された現在の遷移状態を用いて現在の残差レベルを再び逆量子化するために、新しい現在の遷移状態が取得される(例えば、以下の第1の残差レベルの逆量子化150を参照)。新しい現在の遷移状態は、例えば、現在の遷移状態及び現在の残差レベルの特性157に依存する。現在の残差レベルの特性157は、現在の残差レベルの特性を表し、次の残差レベルの特性を表さない場合がある。特定の変換係数についての遷移状態は、符号化順序で、前の変換係数についての遷移状態と、前の変換係数の残差レベル特性157とに依存し得る。
【0113】
更新158において、現在の遷移状態は、量子化モード情報180に依存する全射写像に従って、1又は複数の遷移状態のセット161と現在の残差レベルの特性157との組み合わせ163の定義域から1又は複数の遷移状態のセット161へ遷移し、1又は複数の遷移状態のセット161の基数l,m,nは、量子化モード情報180に応じて異なる。例えば、1又は複数の遷移状態のセット161aは、第1の量子化モードが量子化モード情報180によって示される場合に基数lを有し、1又は複数の遷移状態のセット161bは、第2の量子化モードが量子化モード情報180によって示される場合に基数mを有し、1又は複数の遷移状態のセット161cは、第3の量子化モードが量子化モード情報180によって示される場合に基数nを有する。一実施形態によれば、デコーダ20は、量子化モード情報180に応じて、基数l、例えば、l=1を有する1又は複数の遷移状態のセット161a、又は基数m、例えば、m=4を有する1又は複数の遷移状態のセット161bのいずれかを使用するように構成されてもよい。
図10は、3つの可能な全射写像106a、106b、及び106cを示している。
一実施形態によれば、バイナリ関数は、パリティである。
【0114】
図8では、バイナリ関数は「経路」と称されることがあり、第1の残差レベル特性は「経路0」に関連付けられることがあり、第2の残差レベル特性は「経路1」に関連付けられることがある。一実施形態によれば、デコーダ20は、残差レベル特性157として残差レベルのパリティを取得するように構成される。デコーダは、バイナリ関数を現在の残差レベルに適用(156)することによって、残差レベルが偶数パリティを有するか奇数パリティを有するかを判定するように構成され得る。例えば、「経路0」は偶数パリティに対応してもよく、「経路1」は奇数パリティに対応してもよい。
【0115】
図8に示すように、デコーダ20は、量子化モード情報180が何であれ、例えば、量子化モード情報180とは無関係に、又は独立して、第1の写像200を使用して、現在の遷移状態220の所定数のビットをデフォルト量子化器に写像することによって、量子化器153の選択152を実行するように構成され、所定数及び第1の写像200は、量子化モード情報180が何であれ等しい。所定数のビットは、例えば、LSB又は2番目であるが最後の有意ビット位置におけるビットなど、1又は複数の所定のビット位置における現在の遷移状態220の1又は複数のビットを示している。
【0116】
一実施形態によれば、デフォルト量子化器のセット151は、
図1に示すように、量子化ステップサイズ144の偶数整数倍を再構成レベル142として含む第1のデフォルト量子化器151
1と、量子化ステップサイズ144の奇数整数倍及び0を再構成レベル142として含む第2のデフォルト量子化器151
2とからなる。
【0117】
一実施形態によれば、第1の写像200は、1に等しいか又は1より小さい現在の遷移状態220を第1のデフォルト量子化器1511に写像し、1より大きい現在の遷移状態220を第2のデフォルト量子化器1512に写像する。所定数のビットは1であってもよく、デコーダ20は、現在の遷移状態220の第2のビット、例えば第2のLSBを第1のデフォルト量子化器又は第2のデフォルト量子化器に写像するように構成されてもよい。
【0118】
図8に示されるデコーダ20は、逆量子化された残差値104を使用して媒体信号を再構成(170)するように構成される。一実施形態によれば、デコーダ20は、予測を実行して媒体信号の予測バージョンを取得することと、逆量子化された残差値104を使用して予測バージョンを補正することと、によって、再構成170を実行するように構成され、又は予測を実行して媒体信号の予測バージョンを取得することと、逆量子化された残差値104を逆変換に供して媒体残差信号を取得することと、媒体残差信号を使用して予測バージョンを補正することと、によって、逆量子化された残差値104を使用して媒体信号を再構成するように構成される。
【0119】
上述したように、残差レベル142は順次逆量子化(150)される。第1の残差レベル、すなわち最初の非ゼロ変換係数の残差レベルを逆量子化(150)するための異なるオプションが存在し、デコーダ20は、オプションのうちの1つを使用するように構成され得る。
【0120】
デコーダ20は、現在の残差レベルである第1の残差レベルについての現在の遷移状態を所定の値に設定(190)するように構成され得る。例えば、所定値は0であってもよい。量子化器153の選択152は、この事前定義された現在の遷移状態に基づいて実行されてもよく、第1の残差レベルは、例えば、選択された量子化器153を用いて逆量子化(154)される。次に、デコーダ20は、第1の残差レベルにバイナリ関数を適用(156)して、現在の残差レベルの特性157として第1の残差レベルの特性を取得することと、現在の残差レベルの特性157に応じて現在の遷移状態を更新(158)することと、を行うように構成され得る。第1のオプションによれば、デコーダ20は、更新された遷移状態を現在の遷移状態として使用して、次の残差レベルに対する逆量子化150を実行するように構成することができる。第2のオプションによれば、デコーダ20は、次の残差レベルの逆量子化150に進む前に、更新された遷移状態を現在の遷移状態として使用して、第1の残差レベルの逆量子化150を再び実行するように構成される。代替的に、第3のオプションによれば、デコーダ20は、現在の残差レベルである第1の残差レベルの現在の遷移状態を所定の値に設定(190)し、第1の残差レベルにバイナリ関数を適用(156)して、現在の残差レベルの特性157として第1の残差レベルの特性を取得するように構成されてもよい。例えば、所定値は0であってもよい。次いで、デコーダ20は、現在の残差レベルの特性157に応じて、事前定義された現在の遷移状態を更新(158)して、現在の遷移状態を取得するように構成される。量子化器153の選択152は、この現在の遷移状態に基づいて実行されてもよく、第1の残差レベルは、例えば、選択された量子化器153を用いて逆量子化(154)される。次いで、デコーダ20は、更新158を再び実行して、次の残差レベルの現在の遷移状態を取得するように構成することができる。
【0121】
一実施形態によれば、デコーダ20は、現在の遷移状態の更新158に使用される遷移表106を使用するように構成される。例えば、デコーダ20は、現在の遷移状態に応じてデフォルト量子化器のセット151から量子化器153を選択(152)することと、量子化器153を使用して現在の残差レベルを逆量子化(154)して、逆量子化された残差値104を取得することと、現在の残差レベルにバイナリ関数を適用(156)して、現在の残差レベルの特性157を取得することと、使用される遷移表106を使用して現在の残差レベルの特性157に応じて現在の遷移状態を更新(158)することと、によって、残差レベル142を順次逆量子化(150)するように構成される。デコーダは、データストリーム14に含まれる量子化モード情報180に応じて、デフォルト遷移表106a、b、cのセット159のうちの1つのデフォルト遷移表を、使用される遷移表106として選択するように構成されてもよく、デフォルト遷移表の各々は、1又は複数の遷移状態のセット161と現在の残差レベルの特性157との組み合わせ163の定義域から1又は複数の遷移状態のセット161への全射写像を表し、デフォルト遷移表は、1又は複数の遷移状態のセット161の基数l、m、nが異なる。更に、デコーダ20は、例えば、使用される遷移表としてどのデフォルト遷移表が選択されても、第1の写像200を使用して、現在の遷移状態220の所定数のビットをデフォルト量子化器に写像することによって、量子化器の選択152を実行するように構成され、所定数及び第1の写像200は、使用される遷移表としてどのデフォルト遷移表が選択されても等しい。
【0122】
一実施形態によれば、デフォルト遷移表106a、b、cのセット159は、
1又は複数の遷移状態のセットの基数が1である第1のデフォルト遷移表106a、
1又は複数の遷移状態のセットの基数が4である第2のデフォルト遷移表106b、
1又は複数の遷移状態のセットの基数が8である第3のデフォルト遷移表106c
のうちの2つ以上を含む。
一実施形態によれば、デフォルト遷移表106a、b、cのセット159は、1又は複数の遷移状態のセットの基数が1である第1のデフォルト遷移表106aと、1又は複数の遷移状態のセットの基数が4である第2のデフォルト遷移表106bとを含む。
【0123】
換言すれば、量子化モード情報180に応じて、全射写像及び1又は複数の遷移状態のセット161の基数l、m、nは、1又は複数の遷移状態のセット161aの基数lが1であり、1又は複数の遷移状態のセット161bの基数mが4であり、1又は複数の遷移状態のセット161cの基数nが8である、のうちの2つ以上の間で選択可能である。一実施形態によれば、全射写像及び1又は複数の遷移状態のセット161の基数l、m、nは、1又は複数の遷移状態のセット161aの基数lが1であり、1又は複数の遷移状態のセット161bの基数mが4であるうちの間で選択可能である。
【0124】
一実施形態によれば、デコーダ20は、統合遷移表の異なる部分としてデフォルト遷移表106a、b、cのセット159を管理するように構成され、その中で、各デフォルト遷移表106a、b、cについて、1又は複数の遷移状態のセット161の各々は、他の任意のデフォルト遷移表が統合遷移表内でインデックス付けされる状態インデックスとは異なる状態インデックスを使用してインデックス付けされ、例えば、統合遷移表の異なる部分内のデフォルト遷移表の遷移状態は、1つのデフォルト遷移表から別のデフォルト遷移表に分離される。
【0125】
一実施形態によれば、デコーダ20は、統合遷移表内で、現在の残差レベルの特性157と現在の遷移状態220との組み合わせ163に対応するエントリをルックアップすることによって、例えば、現在の残差レベルの特性157に応じて、次に逆量子化される残差レベルについて次の遷移状態162に対して使用される遷移表106を使用して、現在の遷移状態220の更新158を実行するように構成される。
【0126】
一実施形態によれば、量子化モード情報180は、例えば、それに沿って順次逆量子化が実行される逆量子化順序で、第1の残差レベルを逆量子化する際に使用するための開始遷移状態を示すデータストリーム内のシンタックス要素を含み、それにより、シンタックス要素は、使用される遷移表に対応する統合遷移表の部分においてのみ使用される状態インデックスに適合することによって、デフォルト遷移表のうち使用される遷移表を示す。
【0127】
一実施形態によれば、媒体信号は、ビデオであり、デコーダ20は、データストリーム14から量子化モード情報180を読み出すことと、デフォルト遷移表のセットのうちの1つのデフォルト遷移表106の選択を、ビデオに対して1回、ピクチャブロック単位、ピクチャ単位、スライス単位、及びピクチャシーケンス単位のうちの1つの方法で実行することと、を行うように構成される。
【0128】
換言すれば、デコーダ20は、ビデオについて、ピクチャブロック単位、ピクチャ単位、スライス単位、及びピクチャシーケンス単位のうちの1つの方法で更新を制御する量子化モード情報180を読み出すように構成され得る。
【0129】
一実施形態によれば、媒体信号は、カラービデオであり、デコーダ20は、異なる色成分に対するデフォルト量子化器のセット151に対して異なるバージョンを使用するように構成される。
デコーダ20及び/又は対応するエンコーダは、以下の実施形態のうちの1又は複数に関して説明される特徴及び/又は機能を備え得る。
【0130】
本発明は、依存量子化の複数の変形形態が統合フレームワークにおいてサポートされるデコーダ、エンコーダ、及び方法を指定する。本発明は、特に、エントロピー復号化及び再構成プロセス、例えば、媒体信号の再構成170が、全てのサポートされる量子化方法に対して、すなわち、量子化モード情報180とは独立して、基本的に同じである概念を特に説明し、例えば、状態遷移表106のみが、エンコーダによって選択され、ビットストリーム、すなわち、データストリーム14内でシグナリングされる量子化方法に基づいて選択される。本発明の好ましい実施形態では、量子化モード情報180によって示され得る3つの量子化方法、すなわち、
・従来の独立スカラー量子化、
・4つの状態、すなわち遷移状態を有する依存量子化、及び
・8つの状態、すなわち遷移状態を有する依存量子化
がサポートされる。
【0131】
別の実施形態では、8つより多い状態(例えば、16の状態)を有する依存量子化の追加の変形形態がサポートされる。本発明の別の実施形態では、従来の量子化及び4つより多くの状態を有する依存量子化のバージョンのみがサポートされる。別の実施形態では、全てが4つより多い状態を有する、2つ以上の依存量子化の変形形態がサポートされる。別の態様によれば、従来の量子化及び4つの状態を有する依存量子化のみがサポートされる。
【0132】
本発明の一態様は、全てのデコーダ動作が、実際に使用される量子化方法に依存しないように設計されることである。選択された量子化方法に依存し得る態様は、状態遷移表106の選択である。状態遷移表106が与えられると、復号化プロセスは、選択された量子化方法とは無関係になる。
【0133】
本発明の利点は以下の通りである。
・4つより多い状態を有する依存量子化をサポートすることによって、N次元信号空間における許容可能な再構成点のより密な充填が達成されるので、符号化効率を高めることができる(これは文献に示されている)。
【0134】
・(状態の数において逸脱する)依存量子化の異なる変形形態をサポートすることによって、エンコーダは、その適用エリアの符号化効率と実装複雑性との間の最も適切なトレードオフを提供する変形形態を選択する自由度を与えられる。エンコーダの複雑性は、サポートされる量子化状態の数、すなわち、1又は複数の遷移状態のセット161の基数l、m、nに依存することに留意されたい。8つの状態を有する依存量子化は、4つの状態を有する依存量子化よりも高い符号化効率をもたらすが、より高いエンコーダの複雑性も必要となる。
【0135】
・サポートされる全ての量子化方法に対して統合されたデコーダプロセスを設計することによって、基本的に、デコーダ側における追加の実装複雑性は必要とされない。復号化の複雑性は、量子化状態の数とは実質的に無関係であることに留意されたい。しかし、異なる方法をサポートする必要がある場合、デコーダの複雑性は増大する。サポートされる全ての量子化方法について復号化プロセスを統合することによって、デコーダの実装複雑性は、単一の依存量子化方法をサポートすることに対して実質的に変化しない。
【0136】
5.1 本発明の基本概念
VTM-7では、4つの状態及び以下の状態遷移表106を有する依存量子化が指定され、例えば、基数mが4である1又は複数の遷移状態のセット161bを有する状態遷移表106bを表す。
【0137】
【0138】
VTM-5では、経路は、符号化順序102における現在の変換係数レベル、すなわち現在の残差レベル(又は量子化インデックス)のパリティによって与えられる。level[k]が現在の変換係数レベルを示す場合、変数経路は、
path=(level[k]&1)
に従って決定され、式中、「&」は、2つの補数の算術におけるビット単位の演算子を示す。上述したように、経路は、量子化インデックスの任意のバイナリ関数であり得る。それにもかかわらず、パリティを使用することが好ましい。
【0139】
VTM-7の復号化プロセスでは、動作の数は状態変数、すなわち遷移状態に依存する。特に、以下の3つの態様がある。
【0140】
・変換係数を再構成するために選択される量子化器153は、現在の遷移状態220に依存する。VTM-7では、量子化器id(0又は1であり得る)は、QId=state>>1によって与えられる。
【0141】
状態変数stateの現在の値及び現在の量子化インデックスlevel[k]が与えられると、再構成された変換係数trec[k]、すなわち、逆量子化された残差値104は、以下によって取得される。
if(level[k]!=0){
n=2*level[k]+(level[k]>0?-(state>>1):(state>>1)
trec[k]=(n*scale[k]+add)>>shift
}else{
trec[k]=0
}
【0142】
式中、if分岐内の第2の行は、量子化ステップサイズ144との乗算の整数の変形形態を指定する。式(state>>1)は、使用される量子化器153を指定し、例えば、式(state>>1)は、第1の写像200を表す。演算子「>>」は、右方向へのビットシフトを指定する。
【0143】
・有意フラグ、すなわち有意ビン92を符号化するためのコンテキストモデル、すなわちコンテキスト242は、状態変数、すなわち現在の遷移状態220に依存する(
図9参照)。VTM-7では、それはmax(state-1,0)の値230に依存し、所望により他の変数に依存する。コンテキストモデル242の3つの異なるセットが使用されるように解釈することができる。第1のセットは、状態変数220が0又は1に等しい変換係数レベル、すなわち残差レベル142に使用され、第2のセットは、状態変数220が2に等しい変換係数レベル142に使用され、第3のセットは、状態変数220が3に等しい変換係数レベル142に使用される。
【0144】
・シンタックス要素dec_abs_level(バイパスモードで符号化される変換係数レベル)を符号化するための、例えば二値化パラメータ302を表すパラメータpos0は、量子化状態、すなわちそれぞれの残差レベルに割り当てられた遷移状態に依存する。VTM-7において、変数pos0は、
pos0=(state<2?1:2)<<RPabs
に従って決定される。式中、RPabsは、局所近傍における絶対変換係数の和に基づいて選択されるライスパラメータを指定する。
【0145】
5.1.1 依存量子化の別の変形形態の追加
ここで、一例として、8つの状態を有する依存量子化の更なる変形形態が、ビットストリームシンタックス及び復号化プロセスによってサポートされるべきである。その変形形態は、例えば、基数nが8である1又は複数の遷移状態のセット161cを有する以下の状態遷移表106cを使用することができる。
【0146】
【表4】
この変形形態では、量子化器153は、QId=state>>2によって与えられる。
概念的には、VTM-7で選択された量子化器から逸脱した2つの量子化器が好ましい。
【0147】
有意フラグ92(
図9参照)を符号化するために、3つ以上の異なるコンテキストセット242が好ましい場合がある。4状態の変形形態(すなわち、min(state-1,0))と同じ関係を使用すると、7つのコンテキストセット242が必要になる。コンテキストセット242の数は3に制限することができるが、4状態の変形形態の場合とは異なる規則を使用する必要がある。
【0148】
更に、VTM-7における(dec_abs_levelを符号化するための)pos0変数、すなわち二値化パラメータ302の導出は、使用される量子化器153に依存する。第1の量子化器1511については、それは
pos0=1<<RPabs
に等しく設定され、第2の量子化器1512については、それは
pos0=2<<RPabs
に等しく設定される。
したがって、8状態の変形形態に対して異なる実装形態が必要とされる。
【0149】
5.1.2 復号化プロセスの統合
提案された概念の考え方は、サポートされる全ての量子化の変形形態について復号化プロセスを統合することである。残差レベルの量子化の変形形態は、量子化モード情報180によって示され得る。統合を可能にする最初の知見は、再構成プロセスの結果に影響を与えることなく、量子化状態、すなわち遷移状態を再ラベル付けすることができることである。例えば、以下で与えられるVTM-7状態遷移表は、
【0150】
【0151】
【0152】
ここでは、状態1と状態2の意味を入れ替えた。一方、元のテーブルについては、量子化器153は、QId=state>>1によって与えられる。再定式化されたテーブル106の場合、量子化器153は、QId=state&1によって与えられ、ここで、「&」は、ビット単位の「and」演算子を表す。
【0153】
同様に、8状態バージョン(又は依存量子化の任意の他の変形形態)のための状態遷移表106を再定式化することができ、それにより、量子化器id、すなわち使用される量子化器153を導出するために、同じ関係、すなわち第1の写像200を使用することができる。
【0154】
復号化プロセスを更に統合するために、符号化効率と実装複雑性との間で妥協を行う必要がある。例えば、有意フラグ92のエントロピー符号化の場合、全てのサポートされる量子化器の変形形態に対して最良のバージョンを選択することはできないが、依存量子化のサポートされる変形形態の一部に対して準最適であっても、統合バージョンを設計することができる。
【0155】
5.1.3 選択された量子化の変形形態のシグナリング
最後に、選択された量子化器の変形形態、すなわち使用される量子化器153は、ビットストリーム、すなわちデータストリーム14の内部に示す必要がある。その目的のために、複数の変形形態が可能である。
【0156】
・ブロックレベルで(例えば、符号化ツリー単位又は符号化単位ごとに)選択することができ、その場合、対応するブロックの各々に対して専用のシンタックス要素を送信する必要がある。
【0157】
・スライス又はピクチャレベル(又はタイル又はタイルグループレベル)で選択することができ、その場合、スライス又はピクチャヘッダにおいて(又はタイル又はタイルグループに対して)専用のシンタックス要素を送信する必要がある。
【0158】
・シーケンスレベルで選択することができ、その場合、シーケンスパラメータセット又は同様のシンタックス構造において専用のシンタックス要素を送信する必要がある。
一実施形態では、異なる色成分に対して異なる量子化器を使用することができる(例えば、ルマ及びクロマに対して異なる量子化器を使用することができる)。
【0159】
5.2 特定の実施形態の説明
以下では、本発明の実施形態をより詳細に説明する。しかしながら、(上述し、部分的に以下に説明するように)他の実施形態も可能であることに留意されたい。本発明は、以下に記載される特定の設計に限定されない。
【0160】
本発明は、以下の態様のうちの2つ以上の組み合わせによって特徴付けられる。
・独立量子化及び依存量子化の1又は複数の変形形態をサポートするビットストリームシンタックス及び復号化プロセスであり、依存量子化の少なくとも1つの変形形態が4つ以上の量子化状態を使用する。
【0161】
・使用される量子化の変形形態が、ブロック、スライス、ピクチャ、又はシーケンスレベルで送信される専用シンタックス要素によって示される。好ましいバージョンでは、それはピクチャヘッダで送信される。
・変換係数の量子化状態は、状態遷移プロセス、すなわち全射写像によって導出され、これは以下のステップからなる。
【0162】
〇符号化順序における第1の変換係数、すなわち第1の残差レベルについての状態、すなわち遷移状態が、事前定義された値に設定され、好ましいバージョンでは、0に等しく設定される。
【0163】
〇現在の変換係数の状態、すなわち現在の残差レベルは、符号化順序で先行する変換係数の状態と、先行する変換係数の量子化インデックスの値のバイナリ関数、すなわち先行する残差レベルの値のバイナリ関数とに基づいて導出される。好ましいバージョンでは、バイナリ関数はパリティを表し、すなわち、現在の状態は、先行する状態と先行する量子化インデックスのパリティ、すなわち先行する残差レベルとによって与えられる。
【0164】
〇状態遷移プロセス、すなわち全射写像は、先行する状態に基づいて現在の状態220を決定し、先行する量子化インデックスのバイナリ関数(好ましくはパリティ)は、状態遷移表106によって指定される。
【0165】
〇状態遷移表106は、実際に選択された量子化の変形形態(ビットストリームにおいて、例えば、量子化モード情報180によって示される)に基づいて選択される。しかしながら、所与の状態遷移表106について、状態遷移プロセス(例えば、使用されるバイナリ関数)は、選択された量子化器の変形形態とは無関係である。
【0166】
・2つのスカラー量子化器、例えば、
図1に示される量子化器151
1及び量子化器151
2がサポートされ、現在の変換係数のために使用される量子化器153は、量子化器状態によって一意に決定される。
【0167】
〇状態0から量子化器id(220又は1)への同じ写像、すなわち第1の写像200が、全てのサポートされる量子化の変形形態に使用される。好ましいバージョンでは、量子化器idはqId=state&1によって与えられる。
〇第1の量子化器1511の許容可能な再構成レベル142(qidは0に等しい)は、量子化ステップサイズ144の全ての偶数倍を含む。
【0168】
〇第2の量子化器1512の許容可能な再構成レベル142(qidは1に等しい)は、量子化ステップサイズ144の全ての奇数倍を含み、更に、再構成レベルは0に等しい。
【0169】
・量子化インデックス、すなわち残差レベル142は、二値算術符号化を使用して符号化され(例えば、
図9参照)、ここで、二値化300は、選択された確率モデル(又はコンテキストモデル242)が対応する変換係数、すなわち現在の残差レベルに対する量子化状態、すなわち現在の遷移状態220に依存する少なくとも1つのビン(好ましくは、量子化インデックスが0であるか否かを示す有意フラグ92)を含む。したがって、コンテキストモデル242を導出するための同じ方法が、全てのサポートされた量子化の変形形態に使用される。これは、対応するビンについてのコンテキストモデル導出が状態220に依存するが、選択される量子化の変形形態に依存しない、すなわち量子化モード情報180から独立していることを意味する。
以下では、独立量子化、4つの状態を有する依存量子化、及び8つの状態を有する依存量子化をサポートする特定の実施形態について説明する。
【0170】
5.2.1 高レベルシグナリング
一実施形態によれば、媒体信号は、ビデオであり、量子化モード情報180は、
図8に示されるように、データストリーム14内の第1のシンタックス要素182、例えばpps_dep_quant_enabled_idcを含み、第1のシンタックス要素182は、ビデオ又はビデオの部分について、デフォルト遷移表106a、b、cのセット159からの1つのデフォルト遷移表106の選択が、データストリーム14内の量子化モード情報180の第2のシンタックス要素184、例えばpic_dep_quant_idcを介してビデオ又はビデオの部分内で制御されるかどうか、又はデフォルト遷移表106a、b、cのセット159のうちのいずれが、ビデオの部分についての1つのデフォルト遷移表106として選択されるべきかを示す。
【0171】
換言すれば、媒体信号は、ビデオであり、量子化モード情報180は、データストリーム14内の第1のシンタックス要素182、例えばpps_dep_quant_enabled_idcを含み、第1のシンタックス要素182は、ビデオ又はビデオの部分について、データストリーム14内の量子化モード情報180の第2のシンタックス要素184、例えばpic_dep_quant_idcを介して更新158がビデオ又はビデオの部分内で制御されるかどうか、又はどの全射写像及び1又は複数の遷移状態のセット161のどの基数l、m、nが更新158のために選択されるべきかを示す。
【0172】
一実施形態によれば、第1のシンタックス要素182は、ビデオである部分を有するビデオパラメータセット内のデータストリーム14に含まれ、第2のシンタックス要素184は、ピクチャのシーケンス、ピクチャ、タイル、スライス、符号化ツリーブロック、符号化ブロック、又は残差変換ブロックを単位として、デフォルト遷移表106a、b、cのセット159のうちの1つのデフォルト遷移表106の選択を制御する。代替的に、第1のシンタックス要素182は、ピクチャのシーケンスである部分を有するシーケンスパラメータセット内のデータストリーム14に含まれ、第2のシンタックス要素184は、ピクチャ、タイル、スライス、符号化ツリーブロック、符号化ブロック、又は残差変換ブロックを単位として、デフォルト遷移表106a、b、cのセット159のうちの1つのデフォルト遷移表106の選択を制御する。代替的に、第1のシンタックス要素182は、1又は複数のピクチャである部分を有するピクチャパラメータセット内のデータストリーム14に含まれ、第2のシンタックス要素184は、ピクチャ、タイル、スライス、符号化ツリーブロック、符号化ブロック、又は残差変換ブロックを単位として、デフォルト遷移表106a、b、cのセット159のうちの1つのデフォルト遷移表106の選択を制御する。代替的に、第1のシンタックス要素182は、1つのピクチャである部分を有するピクチャヘッダ内のデータストリーム14に含まれ、第2のシンタックス要素184は、タイル、スライス、符号化ツリーブロック、符号化ブロック、又は残差変換ブロックを単位として、デフォルト遷移表106a、b、cのセット159のうちの1つのデフォルト遷移表106の選択を制御する。代替的に、第1のシンタックス要素182は、1つの符号化ツリーブロックである部分を有するパラメータセット内のデータストリーム14に含まれ、第2のシンタックス要素184は、符号化ブロック又は残差変換ブロックを単位として、デフォルト遷移表106a、b、cのセット159からの1つのデフォルト遷移表106の選択を制御する。符号化ツリーブロックの場合、選択は、例えば、各符号化ツリーブロックが再帰的マルチツリーサブディビジョニングによって符号化ブロックに分割される前に、1つのピクチャが一様に事前分割される単位において制御されてもよい。符号化ブロックの場合、選択は、例えばイントラモード/インターモード決定が行われる単位で制御されてもよい。
【0173】
換言すれば、第1のシンタックス要素182は、ビデオである部分を有するビデオパラメータセット内のデータストリーム14に含まれ、第2のシンタックス要素は、ピクチャのシーケンス、ピクチャ、タイル、スライス、符号化ツリーブロック、符号化ブロック、又は残差変換ブロックを単位として、更新158を制御する。代替的に、第1のシンタックス要素182は、ピクチャのシーケンスである部分を有するシーケンスパラメータセット内のデータストリーム14に含まれ、第2のシンタックス要素は、ピクチャ、タイル、スライス、符号化ツリーブロック、符号化ブロック、又は残差変換ブロックを単位として、更新158を制御する。代替的に、第1のシンタックス要素182は、1又は複数のピクチャである部分を有するピクチャパラメータセット内のデータストリーム14に含まれ、第2のシンタックス要素は、ピクチャ、タイル、スライス、符号化ツリーブロック、符号化ブロック、又は残差変換ブロックを単位として、更新158を制御する。代替的に、第1のシンタックス要素182は、1つのピクチャである部分を有するピクチャヘッダ内のデータストリーム14に含まれ、第2のシンタックス要素は、タイル、スライス、符号化ツリーブロック、符号化ブロック、又は残差変換ブロックを単位として、更新158を制御する。代替的に、第1のシンタックス要素182は、1つの符号化ツリーブロックである部分を有するパラメータセット内のデータストリーム14に含まれ、第2のシンタックス要素は、符号化ブロック又は残差変換ブロックを単位として、更新158を制御する。符号化ツリーブロックの場合、更新158は、例えば、各符号化ツリーブロックが再帰的マルチツリー再分割によって符号化ブロックに分割される前に、1つのピクチャが一様に事前分割される単位において制御されてもよい。符号化ブロックの場合、更新は、例えばイントラモード/インターモード決定が行われる単位で制御されてもよい。
【0174】
1つのバージョンにおいて、選択された量子化方法は、ピクチャヘッダにおいて符号化されたシンタックス要素、すなわち第2のシンタックス要素184によって示される。このシンタックス要素184は、pic_dep_quant_idcと称することができ、例えば、更新158のために、1又は複数の遷移状態のセット161のどの全射写像及びどの基数l、m、nが選択されるべきかを示す、以下の3つの値のうちの1つをとることができる(例えば、デフォルト遷移表106a、b、cのセット159のうちのいずれが、ビデオの部分のための1つのデフォルト遷移表106として選択されるべきかを示す)。
・値0は、従来の独立スカラー量子化が現在のピクチャに使用されることを示し、例えば、基数lが1に等しいセット161aを示す。
・値1は、4つの状態を有する依存量子化が現在のピクチャに使用されることを示し、例えば、基数mが4に等しいセット161bを示す。
・値2は、8つの状態を有する依存量子化が現在のピクチャに使用されることを示し、例えば、基数nが8に等しいセット161cを示す。
【0175】
加えて、VTM-7と同様に、ピクチャヘッダシンタックス要素の存在は、ピクチャパラメータセット(PPS)シンタックス要素pps_dep_quant_enabled_idcによって示される。このシンタックス要素、すなわち第1のシンタックス要素182は、2ビットの固定長コードを使用して符号化されてもよく、以下のセマンティクスを有してもよい。
【0176】
・0の値は、pic_dep_quant_idcがピクチャヘッダ内に存在することを指定し、例えば、更新158が第2のシンタックス要素184を介してビデオ又はビデオの部分内で制御されることを示す。
【0177】
・1の値は、pic_dep_quant_idcがピクチャヘッダ内に存在しないが、ピクチャパラメータセットを参照する全てのピクチャについて0に等しいと推測される(独立スカラー量子化)ことを指定し、例えば、基数lが1に等しいセット161aを示す。
【0178】
・2の値は、pic_dep_quant_idcがピクチャヘッダ内に存在しないが、ピクチャパラメータセットを参照する全てのピクチャについて1に等しいと推測される(4つの状態を有する依存量子化)ことを指定し、例えば、基数mが4に等しいセット161bを示す。
【0179】
・3の値は、pic_dep_quant_idcがピクチャヘッダ内に存在しないが、ピクチャパラメータセットを参照する全てのピクチャについて2に等しいと推測される(8つの状態を有する依存量子化)ことを指定し、例えば、基数nが8に等しいセット161cを示す。
【0180】
VTM-7と同様に、ピクチャパラメータセット中のpps_dep_quant_enabled_idc182は、ピクチャパラメータセットフラグconstant_slice_header_params_enabled_flagが1に等しい場合に存在する。ピクチャパラメータセットフラグconstant_slice_header_params_enabled_flagが0に等しい場合、ピクチャパラメータセットシンタックス要素pps_dep_quant_enabled_idc182はピクチャパラメータセット中に存在しないが、0に等しいと推測される(この場合、pic_dep_quant_idc184はピクチャヘッダ中で符号化される)。
【0181】
5.2.2 状態遷移表
状態遷移表106は、ピクチャヘッダシンタックス要素pic_dep_quant_idc(又は任意の同様のシンタックス要素)の値(送信又は推測された値)に基づいて選択され得る。
図10に示されるように、3つの状態遷移表106a、b、cは、3つのサポートされる量子化の変形形態に対してサポートされ得る。なお、状態遷移表106a,b,cは一例である(実際に使用される状態遷移表はこの例から逸脱していてもよい)。
【0182】
一実施形態によれば、状態遷移表106a及び106bのみが、デコーダ20及び/又は対応するエンコーダによって使用される。
【0183】
5.2.3 状態遷移
各変換ブロック112について、初期状態は0に等しく設定される。
変換ブロック112の変換係数、すなわち残差レベル142は、事前定義された符号化順序102で処理される。現在の変換係数の状態(currState)、すなわち現在の遷移状態220、及び現在の変換係数の量子化インデックス(変換係数レベル又は残差レベルとも称される)(currLevel)が与えられると、符号化/処理順序における次の変換係数の状態(nextState)は、
nextState=stateTransTab[currState][currLevel&1]
に従って導出され、例えば全射写像を表し、ここでstateTransTabは、選択された量子化の変形形態によって決定される状態遷移表106を指定する。ここで、量子化インデックス(currLevel&1)のパリティが経路変数を決定する(上記の状態遷移表を参照)。パリティを使用する代わりに、量子化インデックスの任意の他のバイナリ関数が使用されることも可能である(上記参照)。
【0184】
5.2.4 変換係数の再構成
現在の変換係数、すなわち現在の残差レベルのために使用される量子化器153は、状態変数、すなわち現在の遷移状態220の値によって一意に指定される。量子化器id QIdは、
QId=state&1
に従って導出され、第1の写像200を表し、ここで「&」はビット単位の演算子を表す。QId=0を有する量子化器1511は、許容可能な再構成レベル142として量子化ステップサイズ144の偶数倍を含む。QId=1を有する量子化器1512は、許容可能な再構成レベル142として、量子化ステップサイズ144の奇数倍と0に等しい値とを含む。
【0185】
単一の変換ブロックの変換係数の再構成の好ましい例が、Cスタイルの擬似コードを使用して
図11に示されている。
【0186】
図11は、変換ブロック112に対する変換係数の再構成プロセスを示す擬似コードを示している。アレイレベルは、変換ブロック112についての送信された変換係数レベル、すなわち送信された残差レベル142(量子化インデックス)を表し、アレイtrecは、対応する再構成された変換係数104を表す。2dテーブルstate_trans_tableは、例えば、高レベルシンタックス要素(例えば、dep_quant_idc)に基づいて選択された状態遷移表106を指定する。
【0187】
図11の擬似コードでは、インデックスkは、変換係数の再構成順序102、すなわち残差レベル142を指定する。例示的なコードでは、インデックスkは再構成順序で減少することに留意されたい。最後の変換係数は、k=0に等しいインデックスを有する。第1のインデックスkstartは、第1の再構成された変換係数の再構成インデックス(又は、より正確には、逆再構成インデックス)を指定する。変数kstartは、変換ブロック中の変換係数の数から1を引いた数に等しく設定され得るか、又は符号化/再構成順序102において第1の非ゼロ量子化インデックス(例えば、第1の非ゼロ量子化インデックスの位置が、適用されるエントロピー符号化方法において送信される場合)のインデックスに等しく設定され得る。後者の場合、全ての先行する変換係数(インデックスk>kstartを有する)は、0に等しいと推測される。量子化インデックス、すなわち残差レベル142はlevel[k]によって表され、関連する再構成された変換係数、すなわち逆量子化された残差レベル104はtrec[k]によって表される。状態変数、すなわち現在の遷移状態220はstateによって表される。状態遷移表106は、2dアレイstate_trans_table[][]によって指定される。次の状態の決定にテーブルstate_trans_table[][]を使用する代わりに、同じ結果をもたらす算術演算を使用することができる。
【0188】
quant_step_size[k]は、インデックスkにおける変換係数の量子化ステップサイズ144を指定する。(ブロック量子化パラメータと組み合わせた量子化重み付け行列によって与えられるように)異なる変換係数位置kに対して異なる量子化ステップサイズ144を使用することができることに留意されたい。上述のように、非整数量子化ステップサイズとの乗算は、整数演算、例えば、
trec[k]=(n*scale[k]+add)>>shift
を使用して実装されることが多く、ここで、量子化ステップサイズ144は、基本的に、
Δk=scale[k]・2-shift
によって与えられる。
【0189】
5.2.5 量子化インデックス(又は変換係数レベル)のエントロピー符号化
好ましいバージョンでは、
図9を参照すると、量子化インデックスは、H.264|MPEG-4 AVC又はH.265|MPEG-H HEVCと同様の二値算術符号化を使用して符号化される。
【0190】
その目的のために、非バイナリ量子化インデックス90は、最初に一連のバイナリ決定(概してビンと称される)に写像される。量子化インデックスは絶対値として送信され、絶対値が0より大きい場合は符号として送信される。好ましいバージョンでは、VTM-7と同じ二値化が使用される。
【0191】
【0192】
以下のバイナリシンタックス要素及び非バイナリシンタックス要素が送信される。
・sig_flag92は、変換係数レベルの絶対値|q|が0より大きいかどうかを指定する。
・sig_flag92が1に等しい場合、gt1_flag96は、変換係数レベルの絶対値|q|が1より大きいかどうかを指定する。
・gt1_flag96が1に等しい場合、par_flag94は、変換係数レベルの絶対値|q|のパリティを指定し、gt3_flag98は、変換係数レベルの絶対値|q|が3より大きいかどうかを指定する。
【0193】
・gt3_flag98が1に等しい場合、非バイナリ値rem99は、絶対レベル|q|の剰余を指定する。このシンタックス要素は、ゴロム-ライス符号を使用して、算術符号化エンジンのバイパスモードで送信される。
存在しないシンタックス要素は、0に等しいと推測される。デコーダ側では、変換係数レベルの絶対値は以下のように再構成される。
|q|=sig_flag+gt1_flag+par_flag+2*(gt3_flag+rem)
【0194】
非ゼロ変換係数レベル(1に等しいsig_flag92によって示される)の場合、変換係数レベルの符号を指定するsign_flagが、バイパスモードで更に送信される。
【0195】
ビンの符号化順序102及びコンテキストモデリングは、以下で説明する以下の2つの態様を除いて、基本的にVTM-7と同じである。更に、コンテキスト符号化されたビンのワーストケースの数を制限する同じ概念が使用される。
【0196】
図9は、90における残差レベル142の絶対値の初期値定義域を示している。この初期値定義域90は、0と何らかの最大値との間の全ての整数値を包含し得る。初期値定義域90は、より大きな数に向かって開く区間であってもよい。初期値定義域90内の整数値の数は、必ずしも2の累乗である必要はない。更に、
図9は、個々の残差レベル142を表すことに関与する、すなわち、その絶対値を示すことに関与する種々のビンタイプを示している。ある残差レベルの絶対値が0であるか否かを示すsig_flag92タイプが存在する。すなわち、sig_flag92は、初期値定義域90を2つのサブ部分、すなわち、単に0を含むサブ部分と、他の全ての取り得る値を含むサブ部分とに2分割する。すなわち、sig_flag92は、
図9の下部に示されるように、残差レベルが偶然0になった場合には、残差レベルの絶対値をすでに一意に示している。初期値定義域90の非ゼロ値は、ビンタイプgt1_flag96によって更に2分割される値定義域96を形成し、すなわち、一方は単に1つを含み、他方は全ての他の取り得る値を含む。次のフラグ、すなわちpar_flag94は、1より大きい全ての値を含む得られた値定義域を、一方では奇数値に、他方では偶数値に分割する。par_flag94は、ある残差レベル142が1より大きい場合にのみ、その残差レベルに対して存在する必要がある。par_flag94は、同じものが値定義域94を2分割する半分のうちの1つに関して一意性をもたらさない。それは、次の結果として生じる(再帰的に定義される)値定義域の半分を示し、したがって、次のフラグ、すなわちgt3_flag98は、par_flag94の後でこの結果として生じる値定義域を更に2分割する。
図9の下部に示されるように、これは、ある変換係数の残差レベルが偶然0である場合、sig_flag92のみがその残差レベルに対して符号化され、特定の変換係数の残差レベルが偶然1である場合、sig_flag92及びgt1_flag96がその残差レベルに対して符号化されることを意味する。全てのフラグsig_flag92、gt1_flag96、par_flag94及びgt3_flag98は、ある変換係数が絶対値2~5を含む値区間に入る場合に、その変換係数のある残差レベルを表すように符号化され、更に、その絶対値が初期値定義域90の外の残りの区間にある変換係数の残差レベルに対して剰余99が符号化される。
【0197】
5.2.5.1 有意フラグのためのコンテキスト選択
図9は、有意ビン92のコンテキスト適応型二値算術符号化(CABAC)の実施形態を示している。一実施形態によれば、
図8に示されるデコーダ20は、現在の残差レベルの二値化300のビンのコンテキスト適応型二値算術復号化240を使用して、データストリーム14から現在の残差レベルを復号化(210)するように構成され、ビンは、現在の残差レベルが0であるか非ゼロであるかを示す有意ビン92を含む。デコーダ20は、第2の写像202を使用して、現在の遷移状態220の更なる所定数のビット、例えばLSBを値230に写像することによって取得される該値230に応じて、現在の残差レベルの第1のビン、すなわち有意ビン92を復号化するための第1のコンテキスト242を選択するように構成され得る。第2の写像202は、量子化モード情報180が何であれ等しくてもよく、例えば、デフォルト遷移表106a、b、cが使用される遷移表106として選択されるものが何であれ等しくてもよい。更なる所定数のビットは、例えば、LSB又は2番目であるが最後の有意ビット位置におけるビットなど、1又は複数の所定のビット位置における現在の遷移状態220の1又は複数のビットを示している。
【0198】
一実施形態によれば、更なる所定数のビットは2であり、例えば、LSB(最後の有意ビット)と、2番目であるが最後の有意ビット位置のビットとを示す。値230は、セクション5.1に示されるように、max(state-1,0)であるか、又はmax(0,(state&3)-1)である第2の写像202から生じる可能性がある。別の写像も可能である。
【0199】
有意フラグ、すなわち有意ビン92に関して、選択された確率モデル、すなわちコンテキストモデル又はコンテキスト242は、例えば以下に依存する。
・現在の変換ブロック112がルマ変換ブロックであるかクロマ変換ブロックであるか
・依存量子化の遷移状態
・現在の変換係数のx座標及びy座標(現在の残差レベルは現在の変換係数の残差レベルを表す)
・局所近傍における(第1のパス601の後の)部分的に再構成された絶対残差値
【0200】
変数stateは、現在の変換係数の状態、すなわち現在の遷移状態220を表す。上記で説明したように、現在の変換係数の状態220は、符号化順序102における前の係数の状態と、前の変換係数レベルのパリティ(又は、より概しては、バイナリ関数)とによって与えられる。
【0201】
x及びyが変換ブロック112内の現在の変換係数の座標である場合、diag=x+yを現在の係数の対角位置とする。対角位置が与えられると、対角クラスインデックスdsigは以下のように導出される。
dsig=(diag<2?2:(diag<5?1:0))(ルマ変換ブロックの場合)
及び
dsig=(diag<2?1:0)(クロマ変換ブロックの場合)
三項演算子(c?a:b)は、if-then-else文を表す。条件cが真である場合、aの値が使用され、そうでない場合(cが偽である場合)、値bが使用される。
【0202】
コンテキスト242は、局所近傍内の部分的に再構成された絶対値にも依存する。VTM-7におけるように、局所近傍は、例えば、
図7に示されるように、テンプレートT132によって与えられ得る。しかし、他のテンプレート132も可能である。使用されるテンプレート132はまた、ルマブロックが符号化されるかクロマブロックが符号化されるかに依存し得る。sumAbsを、テンプレートT132
【0203】
における(第1のパス601の後の)部分的に再構成された絶対値の和とする。式中、abs1[k]は、第1のパスの後の走査インデックスkについての部分的に再構成された絶対レベルを表す。VTM-7の二値化では、
abs1[k]=sig_flag[k]+gt1_flag[k]+par_flag[k]+2*gt3_flag[k]
で与えられる。
abs1[k]は、第1の走査パス601(上記参照)の後に取得された値coeff[k]に等しいことに留意されたい。
【0204】
sig_flag92に対する可能な確率モデル、すなわちコンテキスト242が1dアレイに編成されていると仮定する。ctxIdSigを、使用される確率モデル242を識別するインデックスとする。コンテキストインデックスctxIdSig、例えば、コンテキスト242を示すインデックスは、以下のように導出(110)され得る。
変換ブロックがルマブロックである場合、
ctxIdSig=min((sumAbs+1)>>1,3)+4*dsig+12*state2CtxSet(state&3)
変換ブロックがクロマブロックである場合、
ctxIdSig=36+min((sumAbs+1)>>1,3)+4*dsig+8*state2CtxSet(state&3)
ここで、演算子「>>」は、右方向へのビットシフト(2補数演算)を表す。演算は、2により除算して、結果を(次の整数へ)切り捨てることと同一である。
【0205】
状態、すなわち現在の遷移状態220は、最初に0と3との間の値に写像されることに留意されたい。これは、3を有するビット単位の「and」(すなわち、state&3)を適用することによって達成され得る。次いで、関数state2CtxSet(..)は、この値を値230の0、1、2のうちの1つに写像する。好ましい実施形態では、関数は、以下によって与えられる。
【0206】
この実施形態によれば、第2の写像202は、2つの連続した写像として理解することができ、現在の遷移状態220は、最初に第1の値に写像され、次いで、この第1の値は、コンテキスト242の選択が依存する値230に写像される。
コンテキストインデックスは、状態220に依存するが、使用される量子化方法180に依存しないことに留意されたい。
【0207】
コンテキストモデルの他の編成、すなわち異なるコンテキスト242が可能であることに留意されたい。しかし、いずれの場合も、sig_flag92を符号化するために選択される確率モデル、すなわちコンテキスト242は、以下に依存する。
・ルマブロックが符号化されるかクロマブロックが符号化されるか
・状態変数220(ただし、同じ関数、例えば全てのサポートされる量子化の変形形態に使用される)
・対角クラスdsig
・ローカルテンプレート132内の部分的に再構成された絶対値の和(第1のパス601の後)、具体的にはmin((sumAbs+1)≫1,3)
【0208】
5.2.5.2 バイパス符号化変換係数レベルのための写像パラメータ
一実施形態によれば、媒体信号は、ビデオであり、
図8に示すデコーダ20は、
図6の右下に示すように、例えば変換係数ブロック112を表す1つのピクチャブロック84に関連する残差レベルを、別のピクチャブロック84に関連する残差レベルより先に復号化することによって、データストリーム14から残差レベル142を復号化(210)するように構成される。デコーダ20は、1又は複数の走査60、すなわち符号化順序102に沿った走査において、1つのピクチャブロック84に関する残差レベル142の二値化300の210個のビンを順次復号化し、残差レベル142の二値化300のビンのうちの所定数の先頭ビンに対してコンテキスト適応型二値算術復号化を使用し、残差レベル142の二値化300の後続ビンに対して等確率バイパスモードを使用するように構成され得る。
図9に示すように、例えば、有意ビン92、パリティビン94、1より大きいビン96、及び3より大きいビン98は、第1の走査60
1、すなわち第1のパスにおいて復号化され、残りのビン99は、第2の走査60
2において符号化される。代替的に、残差レベル142は、1つの走査60又は3つ以上の走査60において復号化されてもよい。
図9は、例示的な変換係数ブロック112を示し、変換係数は、第1の非ゼロ残差レベル120から開始して符号化順序102に沿って走査される。残差レベル144が所定数の先頭ビンを超えない最後の残差レベルを表すので、残差レベル304までの残差レベル146の二値化のビンは、CABACを使用して復号化され、残差レベル304の二値化のビンは、等確率バイパスモードを使用して符号化される。デコーダ20は、第3の写像118を使用して、遷移状態220の、すなわち所定の残差レベル145に関連付けられた遷移状態の、例えばLSBの更なる所定数のビットを二値化パラメータ302に写像し、二値化パラメータ302に応じて所定の残差レベル145の二値化300の決定を実行することによって、所定数304のビンが使い果たされた所定の残差レベル145の二値化300を決定するように構成され得る。一実施形態によれば、二値化の決定は、所定数304のビンが使い果たされた全ての残差レベル144に対してデコーダ20によって実行されてもよい。遷移状態220のビットは、例えば、LSBなどの1又は複数の所定のビット位置にある1又は複数のビット、又は遷移状態220の2番目だが最後の有意ビット位置にあるビットである。
【0209】
一実施形態によれば、デコーダ20は、二値化300が、二値化パラメータ302に依存する1つの二値化コード、例えばpos0を、所定のレベルに関連付けられている状態からレベル0に関連付けられている状態へとリダイレクトすることと、1又は複数の二値化コードを、0から所定のレベル-1までの1又は複数のレベルに関連付けられている状態から、1から所定のレベルまでの1又は複数のレベルに関連付けられている状態へとリダイレクトすることと、によって修正されたデフォルト二値化、例えばゴロムライスコードであるように、二値化パラメータ302に応じて所定の残差レベル145に対する二値化300を決定するように構成される。デフォルト二値化の修正は、式|q|=(abs_level==pos0?0:(abs_level<pos0?abs_level+1:abs_level)によって達成することができ、以下を参照されたい。
【0210】
一実施形態によれば、更なる所定数のビットは1である。
VTM-7と同様に、第1の走査パス601においてデータが符号化されない絶対レベル、すなわち残差レベル144は、バイパスモード、すなわち等確率バイパスモードにおいて完全に符号化される。これらは、剰余rem99と同じクラスのコードを使用して符号化される。ライスパラメータ並びに変数pos0、すなわち二値化パラメータ302は、すでに符号化されたシンタックス要素(以下を参照)に基づいて決定され得る。これらの絶対値レベル|q|144は、例えば、直接符号化されないが、最初にシンタックス要素abs_levelに写像され、次にパラメータ符号を使用して符号化される。
【0211】
絶対値|q|144のシンタックス要素abs_levelへの写像は、変数pos0 302に依存し得る。これは、
abs_level=(|q|==0?pos0:(|q|<=pos0?|q|-1:|q|)
によって指定される。
デコーダ側では、絶対値|q|へのシンタックス要素abs_levelの写像は、以下のように指定され得る。
|q|=(abs_level==pos0?0:(abs_level<pos0?abs_level+1:abs_level)
abs_levelを符号化するために使用されるライスパラメータRPabsは、
RPabs=tabRPabs[min(sumAbs,31)]
に従って導出され、ここでsumAbsは、ローカルテンプレート132(上記参照)内の絶対量子化インデックスの合計、すなわち残差レベルの絶対レベルの合計を表す。
【0212】
変数pos0 302は、ローカルテンプレート132内の再構成された絶対値の和と状態変数220との両方に依存し得る。変数pos0 302は、量子化状態220及びライスパラメータRPabsから、
pos0=(1+(state&1))<<RPabs
に従って導出(118)される。
変数pos0 302は状態220に依存するが、使用される量子化方法180には依存しないことに留意されたい。
【0213】
式pos0=(1+(state&1))<<RPabsは、二値化パラメータpos0 302への遷移状態220の更なる所定数のビットの第3の写像118を表すことができ、式中、(state&1)は、LSBが二値化パラメータpos0に写像されることを示す。更なる所定数のビットは1である。
【0214】
代替的に、式pos0=(state<2?1:2)<<RPabsは、二値化パラメータpos0 302への遷移状態220の更なる所定数のビットの第3の写像118を表すことができ、式中、(state<2?1:2)は、遷移状態220の2番目であるが最後の有意ビット位置が二値化パラメータpos0上に写像されることを示す(セクション5.1の最後の項目を参照)。更なる所定数のビットは1である。
【0215】
5.3 他の実施形態の態様
上述した実施形態の複数の態様は、変更することができる。以下では、これらの態様のうちの一部を指摘する。
【0216】
・量子化の変形形態サポートの数及び/又はこれらの変形形態のための実際の状態遷移表106が修正され得る。
・選択された量子化の変形形態を示すための異なるメカニズムが使用され得る。
・量子化インデックスの異なるバイナリ関数が状態遷移プロセスのために使用され得る。これは、状態遷移が
nextState=stateTransTable[currState][binFun(currLevel)]
によって指定され得ることを意味しており、ここでbinFunc()は任意のバイナリ関数(すなわち、0及び1の可能な関数値を有する関数)を指定する。
【0217】
・量子化インデックスを符号化するために、異なる二値化プロセスが使用され得る。特に、複数の二値化がサポートされ、使用される二値化が量子化状態(及び一部の場合では他のパラメータ)に依存する、状態依存二値化を使用することが可能である。この場合、二値化の選択は、状態変数の値に依存するが、選択された量子化方法には依存しない。一例として、2つの二値化がサポートされてもよく、選択される二値化は(state&1)の値に依存してもよい。
・ビンのいずれかに対して異なるコンテキストモデリングが使用され得る。この場合、1又は複数のビンのコンテキストは、依然として状態変数に依存し得るが、選択された量子化方法とは無関係である。
・剰余及び/又はバイパス符号化された量子化インデックスに対するライスパラメータを決定するための異なる手法が使用され得る。
・バイパス符号化された量子化インデックスを符号化するためのパラメータpos0を導出するための異なる手法が使用され得る。しかし、本発明と組み合わせて、パラメータpos0は、選択された量子化方法とは独立して決定される。
【0218】
5.4 更なる実施形態
上述の実施形態では、予測残差を符号化するために変換符号化が使用され、変換係数を量子化/逆量子化するために使用されるように、量子化方式/モードがエンコーダによって選択され、デコーダにシグナリングされる。取得された量子化インデックスのエントロピー符号化、すなわちコンテキスト適応型算術符号化が使用され得る。デコーダ側では、再構成されたサンプルのセットは、量子化インデックスの対応する復号化及び変換係数の対応する逆量子化によって取得され、その結果、逆変換は、空間定義域における予測残差をもたらす。しかしながら、上記で説明した実施形態は、空間定義域における残差サンプルなどの他の残差値を符号化することなどに関して、他の実施形態をもたらすように修正され得る。ビデオを符号化するために上記の実施形態を使用する代わりに、オーディオ信号などの上記の概念を使用して別の媒体信号を扱うことができる。以下の実施形態の説明は、主に、画像及びビデオコーデックにおける予測誤差サンプルのブロックの不可逆符号化を対象とするが、実施形態は、不可逆符号化の他のエリアにも適用することができる。特に、矩形ブロックを形成するサンプルのセットに対する制限は存在しない。
【0219】
変換ベースの予測残差符号化を使用するビデオ符号化に限定されないが、その後、サンプルブロックの変換された表現を符号化及び復号化するための実施形態が組み込まれ得る符号化フレームワークの例を形成するために、ビデオのピクチャを符号化するためのブロックベースの予測コーデックのビデオエンコーダ及びビデオデコーダの説明が提供される。ビデオエンコーダ及びビデオデコーダは、
図12~
図14に関して説明される。上記で提供された本出願の実施形態の説明は、それぞれ
図12及び
図13のビデオエンコーダ及びビデオデコーダに容易に組み込まれ得るが、上記で説明された実施形態は、
図12及び
図13のビデオエンコーダ及びビデオデコーダの基礎となる符号化フレームワークに従って動作しないビデオエンコーダ及びビデオデコーダを形成するためにも使用され得る。
【0220】
図12は、ピクチャ12のシーケンスから構成されるビデオ11をデータストリーム14に予測符号化する装置を示している。この目的のために、ブロック単位予測符号化が使用される。更に、変換ベースの残差符号化が例示的に使用される。装置又はエンコーダは、参照符号10を用いて示される。
図13は、対応するデコーダ20、すなわち、データストリーム14からのピクチャブロック内のピクチャ12’から構成されるビデオ11’を予測的に復号化するように構成された装置20を示しており、ここでも変換ベースの残差復号化を例示的に使用している。アポストロフィは、デコーダ20によって再構成されるピクチャ12’及びビデオ11’がそれぞれ、予測残差信号の量子化によって導入される符号化損失に関して、装置10によって元々符号化されたピクチャ12から逸脱していることを示すために使用されている。
図12及び
図13は、変換ベースの予測残差符号化を例示的に使用しているが、本出願の実施形態は、この種の予測残差符号化に限定されない。これは、以下に概説されるように、
図12及び
図13に関して説明される他の詳細についても当てはまる。
【0221】
エンコーダ10は、予測残差信号を空間-スペクトル変換に供して、このようにして得られた予測残差信号をデータストリーム14に符号化するように構成される。同様に、デコーダ20は、データストリーム14から予測残差信号を復号化し、このようにして得られた予測残差信号にスペクトル空間変換を施すように構成される。
【0222】
内部的には、エンコーダ10は、元の信号、すなわちビデオ11又は現在のピクチャ12からの予測信号26の偏差を測定するように予測残差24を生成する予測残差信号形成器22を含み得る。予測残差信号形成器22は、例えば、元の信号、すなわち現在のピクチャ12から予測信号を減算する減算器であってもよい。エンコーダ10は更に、予測残差信号24を空間-スペクトル変換してスペクトル領域予測残差信号24’を得る変換器28を含み、スペクトル領域予測残差信号24’は、エンコーダ10に含まれる量子化器32によって量子化される。このように量子化された予測残差信号24’’は、ビットストリーム14に符号化される。この目的のために、エンコーダ10は、データストリーム14に変換され量子化された予測残差信号をエントロピー符号化するエントロピー符号化器34を所望により含んでもよい。予測残差26は、データストリーム14に復号化され、データストリーム14から復号化可能な予測残差信号24’’に基づいて、エンコーダ10の予測ステージ36によって生成される。この目的のために、予測ステージ36は、
図12に示されるように、量子化損失を除いて信号24’に対応するスペクトル領域予測残差信号24’’’を得るために予測残差信号24’’を逆量子化する逆量子化器38と、量子化損失を除いて元の予測残差信号24に対応する予測残差信号24’’’’を得るために後者の予測残差信号24’’を逆変換、すなわちスペクトル空間変換にかける逆変換器40とを内部に含み得る。次に、予測ステージ36の結合器42は、再構成信号46、すなわち元の信号12の再構成を得るために、予測信号26と予測残差信号24’’’’とを加算などによって再結合する。再構成された信号46は、信号12’に対応し得る。
【0223】
次いで、予測ステージ36の予測モジュール44は、例えば、空間予測、すなわちイントラ予測、及び/又は時間予測、すなわちインター予測を使用することによって、信号46に基づいて予測信号26を生成する。この点についての詳細を以下に説明する。
【0224】
同様に、デコーダ20は、予測ステージ36に対応する構成要素から内部的に構成され、予測ステージ36に対応する方法で相互接続されてもよい。特に、デコーダ20のエントロピーデコーダ50は、データストリームから量子化されたスペクトル領域予測残差信号24’’をエントロピー復号化することができ、その後、予測ステージ36のモジュールに関して上述した方法で相互接続され協働する逆量子化器52、逆変換器54、結合器56、及び予測モジュール58は、予測残差信号24’’に基づいて再構成された信号を回復し、その結果、
図13に示すように、結合器56の出力は、再構成された信号、すなわちビデオ11’又はその現在のピクチャ12’をもたらす。
【0225】
上記では具体的に説明されていないが、エンコーダ10が、例えば、何らかのレート及び歪み関連基準、すなわち符号化コストを最適化するように、かつ/又は何らかのレート制御を使用するように、何らかの最適化方式に従って、例えば、予測モード、動きパラメータなどを含む何らかの符号化パラメータを設定することができることは容易に明らかである。以下でより詳細に説明するように、エンコーダ10及びデコーダ20、並びに対応するモジュール44、58はそれぞれ、イントラ符号化モード及びインター符号化モードなどの異なる予測モードをサポートしており、これらのモードは、ピクチャブロックの予測が以下でより詳細に説明する方法で構成される際に基づくプリミティブ予測モードの一種のセット又はプールを形成する。エンコーダ及びデコーダがこれらの予測構成間で切り替わる粒度は、ピクチャ12及び12’のそれぞれのブロックへの再分割に対応し得る。これらのブロックのうちの一部は、単にイントラ符号化されているブロックであってもよく、一部のブロックは、単にインター符号化されているブロックであってもよく、所望により、更に別のブロックは、イントラ符号化及びインター符号化の両方を使用して取得されたブロックであってもよいが、詳細は以下で説明されることに留意されたい。イントラ符号化モードによれば、ブロックに対する予測信号は、それぞれのブロックの空間的な既に符号化/復号化された近傍に基づいて取得される。複数のイントラ符号化サブモードが存在してもよく、その中の選択は、ある種のイントラ予測パラメータを擬似的に表す。方向性イントラ符号化サブモード又は角度イントラ符号化サブモードが存在してもよく、それによれば、それぞれのブロックに対する予測信号は、それぞれの方向性イントラ符号化サブモードに固有の特定の方向に沿った近傍のサンプル値をそれぞれのブロックに外挿することによって満たされる。イントラ符号化サブモードは、例えば、それぞれのブロックに対する予測信号がそれぞれのブロック内の全てのサンプルにDC値を割り当てるDC符号化モード、及び/又はそれぞれのブロックの予測信号が、隣接サンプルに基づいて2次元線形関数によって定義される平面の傾き及びオフセットを導出して、それぞれのブロックのサンプル位置にわたる2次元線形関数によって記述されるサンプル値の空間分布であるように近似又は決定される平面イントラ符号化モードなど、1又は複数の更なるサブモードを含むこともできる。これと比較して、インター予測モードによれば、ブロックに対する予測信号は、例えば、ブロック内部を時間的に予測することによって取得することができる。インター予測モードのパラメータ化のために、動きベクトルがデータストリーム内でシグナリングされてもよく、動きベクトルは、それぞれのブロックの予測信号を取得するために、前に符号化/復号化されたピクチャがサンプリングされるビデオ11の前に符号化されたピクチャの部分の空間変位を示す。これは、量子化されたスペクトル領域予測残差信号24’’を表すエントロピー符号化された変換係数レベルなどの、データストリーム14に含まれる残差信号符号化に加えて、データストリーム14は、ブロックに予測モードを割り当てるための予測関連パラメータ、インター予測モードのための動きパラメータなどの割り当てられた予測モードのための予測パラメータ、及び所望により、以下でより詳細に概説されるように、割り当てられた予測モード及び予測パラメータを使用してブロックの最終予測信号の構成を制御する更なるパラメータを符号化されてもよいことを意味する。更に、データストリームは、ピクチャ12及び12’のブロックへの再分割をそれぞれ制御及びシグナリングするパラメータを含み得る。デコーダ20は、これらのパラメータを使用して、エンコーダが行ったのと同じ方法でピクチャを再分割し、同じ予測モード及びパラメータをブロックに割り当て、同じ予測を実行して同じ予測信号を得る。
【0226】
図14は、一方では再構成された信号、すなわち再構成されたピクチャ12’と、他方ではデータストリームにおいてシグナリングされた予測残差信号24’’’と予測信号26との組み合わせとの間の関係を示している。既に上述したように、組み合わせは加算であってもよい。予測信号26は、
図14において、ピクチャエリアを種々のサイズのブロック80に再分割したものとして示されているが、これは単なる例である。再分割は、ブロックの行及び列へのピクチャエリアの規則的な再分割、又は四分木再分割などのような種々のサイズのリーフブロックへのピクチャ12のマルチツリー再分割などの任意の再分割であってもよく、それらの混合が
図14に示されており、ピクチャエリアは最初にツリールートブロックの行及び列に再分割され、次に再帰的マルチツリー再分割に従ってブロック80に更に再分割される。
【0227】
図14の予測残差信号24’’’’も、ピクチャエリアをブロック84に再分割したものとして示されている。これらのブロックは、符号化ブロック80と区別するために変換ブロックと称されることがある。実際には、
図14は、エンコーダ10及びデコーダ20が、ピクチャ12及びピクチャ12’のブロックへの2つの異なる再分割、すなわち、符号化ブロック80への1つの再分割及びブロック84への別の再分割をそれぞれ使用し得ることを示している。両方の再分割は同じであってもよく、すなわち、各ブロック80が同時に変換ブロック84を形成してもよく、逆もまた同様であるが、
図14は、例えば、変換ブロック84への再分割がブロック80への再分割の拡張を形成し、2つのブロック80間の任意の境界が2つのブロック84間の境界に重なるか、あるいは言い換えると、各ブロック80が変換ブロック84の1つと一致するか、又は変換ブロック84のクラスタと一致する場合を示している。しかしながら、再分割はまた、変換ブロック84が代替的にブロック80間のブロック境界を横切ることができるように、互いに独立して決定又は選択され得る。変換ブロック84への再分割に関する限り、ブロック80への再分割に関して提示されたものと同様の記述が当てはまり、すなわち、ブロック84は、行及び列に配置されたブロックへのピクチャエリアの規則的な再分割の結果、ピクチャエリアの再帰的マルチツリー再分割の結果、又はそれらの組み合わせ、あるいは任意の他の種類のセグメント化であってもよい。余談であるが、ブロック80及び84は、正方形、長方形、又は任意の他の形状に限定されないことに留意されたい。更に、予測信号が形成されるブロック80への現在のピクチャ12の再分割、及び予測残差が符号化されるブロック84への現在のピクチャ12の再分割は、符号化/復号化に使用される唯一の再分割ではない可能性がある。これらの再分割は、予測信号決定及び残差符号化が実行される粒度を形成するが、第1に、残差符号化は代替的に再分割なしで行われてもよく、第2に、これらの再分割以外の粒度で、エンコーダ及びデコーダは、予測パラメータ、予測信号構成制御信号などの前述のパラメータのうちの一部を含み得る特定の符号化パラメータを設定してもよい。
【0228】
図14は、予測信号26と予測残差信号24’’’’との組み合わせが、再構成された信号12’を直接もたらすことを示している。しかしながら、例えば、別のDPBを有する別の予測ループにおいて符号化/復号化される他のビュー又は他の符号化層から取得される予測信号などの代替的な実施形態による、2つ以上の予測信号26が予測残差信号24’’’’と組み合わされてピクチャ12’をもたらし得ることに留意されたい。
【0229】
図14において、変換ブロック84は、以下の意味を有する。変換器28及び逆変換器54は、これらの変換ブロック84を単位として、変換を行う。例えば、多くのコーデックは、全ての変換ブロック84に対してある種のDST又はDCTを使用する。一部のコーデックは、変換ブロック84の一部について、予測残差信号が空間定義域において直接符号化されるように、変換をスキップすることを可能にする。サポートされる変換は、以下のうちの1又は複数を含み得る。
DCT-II(又はDCT-III)ここで、DCTは離散コサイン変換を表す。
ここで、DST-IVは離散サイン変換を表す。
〇 DCT-IV
〇 DST-VII
〇アイデンティティ変換(IT)
【0230】
変換は分離可能な変換であってもよい。分離不可能な変換であり得る2次変換は、DC成分からDC成分及び最高周波数成分以外の何らかの中間成分に及ぶサブアレイなどの低周波数部分に適用可能であり得る。エンコーダは、かかる2次変換の使用を決定し、あるブロックに対して1つを選択し、その決定をデコーダにシグナリングすることができる。
【0231】
ここで、適応量子化モードの態様に戻ると、デコーダ及びエンコーダは、以下のように動作し得る。例えば
図8を参照すると、デコーダ20は、データストリーム14から予測残差24’’を表す
図1に示す変換係数100の量子化レベルなどの残差レベル142を復号化(140)し、順次、すなわち
図6に示す102などの走査順序に沿って、現在の遷移状態(state)に応じてデフォルト量子化器のセット151(例えば、
図1のセット0、セット1)から量子化器を選択(152)することと、量子化器を使用して現在の残差レベルを逆量子化(154)して、逆量子化された残差値104を取得することと、パリティ関数などのバイナリ関数を現在の残差レベルに適用(156)して、現在の残差レベルの特性157、すなわち1又は0を取得することと、次に逆量子化される残差レベルのために次の遷移状態160に使用される遷移表106を使用して、現在の残差レベルの特性157に応じて現在の遷移状態162を更新(158)することと、によって、残差レベル142を逆量子化(150)するように構成することができる。デコーダ20は、逆量子化された残差値104を使用して、ピクチャ又はビデオなどの媒体信号を再構成(170)する。デコーダ20は、データストリーム14に含まれる量子化モード情報180(その例はセクション5.1.3で言及されている)に応じて、デフォルト遷移表106a、b、cのセット159のうちの1つのデフォルト遷移表106を、使用される遷移表106として選択してもよく、デフォルト遷移表の各々は、1又は複数の遷移状態のセットと現在の残差レベルの特性157との組み合わせ163の定義域から1又は複数の遷移状態のセット161への全射写像(例えば、
図10参照)を表し、デフォルト遷移表106a、b、cは、1又は複数の遷移状態のセットの基数l、m、nが異なる。デコーダ20は、使用される遷移表106としてどのデフォルト遷移表106a、b、cが選択されても、第1の写像108(例えば、セクション5.2.4を参照)を使用して、現在の遷移状態の所定数のLSB(例えば、1つ、すなわち、LSBのみ)をデフォルト量子化器に写像することによって、量子化器の選択152を実行するように構成され、所定数及び第1の写像は、使用される遷移表106としてどのデフォルト遷移表106a、b、cが選択されても(すなわち、それぞれ、選択されたモード180又は遷移表106a、b、cから独立して)等しい。データストリーム14からの現在の残差レベル142の復号化210は、現在の残差レベルの二値化のビンのコンテキスト適応二値算術復号化を使用して行われてもよい。ビンは、現在の残差レベルが0であるか非ゼロであるかを示す有意ビン(sig_flag)を含むことができ、現在の残差レベルのこの第1のビンを復号化するためのコンテキストは、セクション5.2.5.1で説明したように、例えば第2の写像110を使用して、現在の遷移状態の更なる所定数(例えば、「&3」によって取り出される2)のLSBを第1のコンテキストに写像することによって選択することができ、第2の写像は、使用される遷移表106として選択されたどのデフォルト遷移表106a、b、cにも等しい。追加的又は代替的に、残差レベル142は、1つのピクチャブロック(例えば、その残差が
図6に示される変換係数ブロック112を再変換することによって取得される
図10のブロック84)に関する残差レベル142を、別のピクチャブロックに関する残差レベルの前に復号化(210)することと、1つのピクチャブロックに関する残差レベル142の二値化のビンを1又は複数の走査(セクション2.2.2の114のパスを参照)で順次復号化し、残差レベルの二値化のビンのうちの所定数(例えば、remRegBins)の先頭ビンに対してコンテキスト適応型二値算術復号化を使用し、残差レベルの二値化の後続ビン(k>=startIdxBypass)に対して等確率バイパスモードを使用することと、第3の写像118を使用して、所定の残差レベル145に対して現れる遷移状態220の更なる所定数(例えば、1)のLSBを二値化パラメータ302(例えば、pos0)に写像し、二値化パラメータ302に応じて所定の残差レベルの二値化の決定を実行することによって、所定数が使い果たされた(k>=startIdxBypass)ビンについて、所定の残差レベル145の二値化を決定することと、によって、データストリーム14から復号され、第3の写像118は、使用される遷移表106としてどのデフォルト遷移表106a、b、cが選択されたとしても等しい。二値化パラメータ302に応じて所定の残差レベル145に対する二値化は、二値化が、二値化パラメータに依存する1つの二値化コードを、所定のレベルに関連付けられている状態からレベル0に関連付けられている状態へとリダイレクトすることと、1又は複数の二値化コードを、0から所定のレベルマイナス1までの1又は複数のレベルに関連付けられている状態から、1から所定のレベルまでの1又は複数のレベルに関連付けられている状態へとリダイレクトすることと、によって修正されたデフォルト二値化(例えば、ライスコード)であるように決定され得る。
【0232】
次いで、デコーダ20は、予測を実行して媒体信号の予測バージョンを取得することと、逆量子化された残差値104を使用して予測バージョンを補正することと、によって、逆量子化された残差値104を使用して媒体信号を再構成(170)するように構成され、又は、予測を実行して媒体信号の予測バージョンを取得することと、逆量子化された残差値104を逆変換に供して媒体残差信号を取得することと、媒体残差信号を使用して予測バージョンを補正することと、によって、逆量子化された残差値104を使用して媒体信号を再構成するように構成される。
【0233】
以下では、本発明の追加の実施形態及び態様が説明され、これらは、個々に、又は本明細書で説明される特徴及び機能及び詳細のいずれかと組み合わせて使用することができる。
【0234】
第1の態様によれば、デコーダ(20)は、
予測残差を表す残差レベル(142)をデータストリーム(14)から復号化(210)し、
現在の遷移状態(220)に応じて、デフォルト量子化器のセット(151)から量子化器(153)を選択(152)することと、
量子化器(153)を使用して現在の残差レベルを逆量子化(154)して、逆量子化された残差値(104)を取得することと、
現在の残差レベル[例えばパリティ]へのバイナリ関数の適用(156)によって取得される現在の残差レベルの特性(157)に応じて、かつデータストリーム(14)に含まれる量子化モード情報(180)に応じて、現在の遷移状態(220)を更新(158)することと、によって、
残差レベル(142)を順次逆量子化(150)することと、
逆量子化された残差値(104)を使用して媒体信号を再構成(170)することであって、現在の遷移状態(220)は、量子化モード情報(180)に依存する全射写像に従って、1又は複数の遷移状態のセット(161)と現在の残差レベルの特性(157)との組合せ(163)の定義域から1又は複数の遷移状態のセット(161)へ遷移し、1又は複数の遷移状態のセット(161)の基数(l,m,n)は、量子化モード情報(180)に応じて異なる、ことと、
第1の写像(200)を使用して、現在の遷移状態(220)の所定数のビット[例えば、LSB又は2番目であるが最後の有意ビット位置のビットなど、1又は複数の所定のビット位置の1又は複数のビット]をデフォルト量子化器に写像することによって、量子化モード情報(180)が[例えば、量子化モード情報(180)に関係なく、又はそれから独立して]どのようなものであっても、量子化器(153)の選択(152)を実行することであって、所定の数及び第1の写像(200)は、量子化モード情報(180)が何であれ等しい、ことと、
を行うように構成することができる。
【0235】
第2の態様によれば、第1の態様に戻って参照すると、デコーダ(20)において、所定数のビットは、1であり得る。
【0236】
第3の態様によれば、第1又は第2の態様に戻って参照すると、デコーダ(20)は、量子化モード情報(180)に応じて、デフォルト遷移表(106a、b、c)のセット(159)から使用される遷移表(106)の選択を選択し、デフォルト遷移表のセット(159)を統合遷移表の異なる部分として管理するように構成することができ、その中で、各デフォルト遷移表について、1又は複数の遷移状態のセット(161)の各々は、他の任意のデフォルト遷移表が統合遷移表内でインデックス付けされる状態インデックスとは異なる状態インデックスを使用してインデックス付けされる[例えば、統合遷移表の異なる部分内のデフォルト遷移表の遷移状態は、あるデフォルト遷移表から別のデフォルト遷移表に分離される]。
【0237】
第4の態様によれば、第3の態様に戻って参照すると、デコーダ(20)は、統合遷移表内で、現在の残差レベルの特性(157)と現在の遷移状態(220)との組み合わせに対応するエントリをルックアップすることによって、現在の遷移状態(220)を更新(158)することを実行するように構成することができる。
【0238】
第5の態様によれば、第3又は第4の態様に戻って参照すると、デコーダ(20)において、量子化モード情報(180)は、逆量子化順序[例えば、それに沿って順次逆量子化が実行される]で第1の残差レベルを逆量子化する際に使用するための開始遷移状態を示すデータストリーム(14)内のシンタックス要素を含むことができ、それにより、シンタックス要素は、使用される遷移表(106)に対応する統合遷移表の部分においてのみ使用される状態インデックスに適合することによって、デフォルト遷移表のうち使用される遷移表(106)を示す。
【0239】
第6の態様によれば、第1から第5の態様のいずれかに戻って参照すると、デコーダ(20)において、デフォルト量子化器のセット(151)は、
量子化ステップサイズ(144)の偶数倍を再構成レベルとして含む第1のデフォルト量子化器(1511)と、
量子化ステップサイズ(144)の奇数倍及び0を再構成レベルとして含む第2のデフォルト量子化器(1512)と
からなってもよい。
【0240】
第7の態様によれば、第1から第6の態様のいずれかに戻って参照すると、デコーダ(20)は、
現在の残差レベルの二値化のビンのコンテキスト適応型二値算術復号化を使用してデータストリーム(14)から現在の残差レベルを復号化することであって、ビンは、現在の残差レベルが0であるか非ゼロであるかを示す有意ビン(92)を含む、ことと、
第2の写像(144)を使用して、現在の遷移状態(220)の更なる所定数のビットを該値に写像することによって取得される値(230)に応じて、現在の残差レベルの第1のビン(92)を復号化するための第1のコンテキスト(242)を選択することであって、第2の写像(202)は、量子化モード情報(180)が何であれ等しい、ことと、
を行うように構成することができる。
【0241】
第8の態様によれば、第7の態様に戻って参照すると、デコーダ(20)において、更なる所定数のビットは、2であり得る。
【0242】
第9の態様によれば、第1から第8の態様のいずれかに戻って参照すると、デコーダ(20)において、媒体信号は、ビデオであり得、デコーダ(20)は、
1つのピクチャブロック(84)に関する残差レベルを別のピクチャブロック(84)に関する残差レベルより前に復号化することと、
1つのピクチャブロック(84)に関する残差レベルの二値化のビンを1又は複数の走査で順次復号化し、残差レベルの二値化のビンの所定数の先頭ビンに対してコンテキスト適応型二値算術復号化を使用し、残差レベルの二値化の後続ビンに対して等確率バイパスモードを使用することと、
第3の写像を使用して、遷移状態の更なる所定数のビット[例えば、LSBなどの1又は複数の所定のビット位置における1又は複数のビット、又は2番目であるが最後の有意ビット位置におけるビット]を二値化パラメータ(302)に写像し、二値化パラメータ(302)に応じて所定の残差レベルの二値化の決定を実行することによって、所定数のビンが使い果たされた所定の残差レベルの二値化を決定することであって、第3の写像は、量子化モード情報(180)が何であれ等しい、ことと、によって、
データストリーム(14)からの残差レベル(142)を復号化(210)するように構成することができる。
【0243】
第10の態様によれば、第9の態様に戻って参照すると、デコーダ(20)は、二値化が、二値化パラメータ(302)に依存する1つの二値化コードを、所定のレベルに関連付けられている状態からレベル0に関連付けられている状態へとリダイレクトすることと、1又は複数の二値化コードを、0から所定のレベルマイナス1までの1又は複数のレベルに関連付けられている状態から1から所定のレベルまでの1又は複数のレベルに関連付けられている状態へとリダイレクトすることと、によって修正されたデフォルト二値化であるように、二値化パラメータ(302)に応じて所定の残差レベルに対する二値化を決定するように構成することができる。
【0244】
第11の態様によれば、第9又は第10の態様に戻って参照すると、デコーダ(20)
において、更なる所定数のビットは、1であり得る。
【0245】
第12の態様によれば、第9の態様に戻って参照すると、デコーダ(20)において、量子化モード情報(180)に応じて、全射写像及び1又は複数の遷移状態のセット(161)の基数は、
1又は複数の遷移状態のセット(161)の基数が1である、
1又は複数の遷移状態のセット(161)の基数が4である、
1又は複数の遷移状態のセット(161)の基数が8である、のうちの2つ以上の間で選択可能であり得る。
【0246】
第13の態様によれば、第1から第12の態様のいずれかに戻って参照すると、デコーダ(20)において、媒体信号は、ビデオであり得、デコーダ(20)は、
ビデオについて、
ピクチャブロック(84)単位、
ピクチャ単位、
スライス単位、及び
ピクチャシーケンス単位のうちの1つの方法で更新(158)を制御する量子化モード情報(180)を読み出すように構成することができる。
【0247】
第14の態様によれば、第1から第13の態様のいずれかに戻って参照すると、デコーダ(20)において、媒体信号は、ビデオであり得、量子化モード情報(180)は、データストリーム(14)内の第1のシンタックス要素を含み得、第1のシンタックス要素は、ビデオ又はビデオの部分について、データストリーム(14)内の量子化モード情報(180)の第2のシンタックス要素を介して更新(158)がビデオ又はビデオの部分内で制御されるかどうか、又はどの全射写像及び1又は複数の遷移状態のセット(161)のどの基数が更新(158)のために選択されるべきかを示す。
【0248】
第15の態様によれば、第14の態様に戻って参照すると、デコーダ(20)において、第1のシンタックス要素は、
部分は、ビデオであり、第2のシンタックス要素は、
ピクチャのシーケンス、
ピクチャ、
タイル、
スライス、
符号化ツリーブロック[例えば、再帰的マルチツリー再分割によって各符号化ツリーブロックが符号化ブロックに分割される前に、例えば、1つのピクチャが一様に予め再分割される単位で]、イントラ/インターモード決定が行われる符号化ブロック]、
符号化ブロック[例えば、イントラ/インターモード決定が行われる単位で]、
若しくは残差変換ブロック
を単位として、更新(158)を制御する、ビデオパラメータセット、
部分は、ピクチャのシーケンスであり、第2のシンタックス要素は、
ピクチャ、
タイル、
スライス、
符号化ツリーブロック[例えば、再帰的マルチツリー再分割によって各符号化ツリーブロックが符号化ブロックに分割される前に、例えば、1つのピクチャが一様に事前に再分割される単位で]、イントラ/インターモード決定が行われる符号化ブロック]、
符号化ブロック[例えば、イントラ/インターモード決定が行われる単位で]、
若しくは残差変換ブロック
を単位として、更新(158)を制御する、シーケンスパラメータセット、
部分は、1又は複数のピクチャであり、第2のシンタックス要素は、
ピクチャ、
タイル、
スライス、
符号化ツリーブロック[例えば、再帰的マルチツリー再分割によって各符号化ツリーブロックが符号化ブロックに分割される前に、例えば、1つのピクチャが一様に事前に再分割される単位で]、イントラ/インターモード決定が行われる符号化ブロック]、
符号化ブロック[例えば、イントラ/インターモード決定が行われる単位で]、
若しくは残差変換ブロック
を単位として、更新(158)を制御する、ピクチャパラメータセット、又は、
部分は、1つのピクチャであり、第2のシンタックス要素は、
タイル、
スライス、
符号化ツリーブロック[例えば、再帰的マルチツリー再分割によって各符号化ツリーブロックが符号化ブロックに分割される前に、例えば、1つのピクチャが一様に事前再分割される単位で]、イントラ/インターモード決定が行われる符号化ブロック]、
符号化ブロック[例えば、イントラ/インターモード決定が行われる単位で]、
若しくは残差変換ブロック
を単位として、更新(158)を制御する、ピクチャヘッダ、
あるいは、
部分は、1つの符号化ツリーブロックであり、第2のシンタックス要素は、
符号化ブロック[例えば、イントラ/インターモード決定が行われる単位で]、
若しくは残差変換ブロック
を単位として、更新(158)を制御する、パラメータセット
の中のデータストリーム(14)に含まれ得る。
【0249】
第16の態様によれば、第1から第15の態様のいずれかに戻って参照すると、デコーダ(20)において、媒体信号はカラービデオであり得、デコーダ(20)は、異なる色成分に対するデフォルト量子化器のセット(151)に対して異なるバージョンを使用するように構成することができる。
【0250】
第17の態様によれば、第1から第16の態様のいずれかに戻って参照すると、デコーダ(20)において、バイナリ関数は、パリティであり得る。
【0251】
第18の第6の態様によれば、第1から第17の態様のいずれかに戻って参照すると、デコーダ(20)は、
予測を実行して媒体信号の予測バージョンを取得することと、
逆量子化された残差値(104)を使用して予測バージョンを補正することと、によって、
逆量子化された残差値(104)を使用して媒体信号を再構成(170)するように構成することができる。
【0252】
第19の態様によれば、第1から第18の態様のいずれかに戻って参照すると、デコーダ(20)は、
予測を実行して媒体信号の予測バージョンを取得することと、
逆量子化された残差値(104)を逆変換に供して媒体残差信号を取得することと、
媒体残差信号を使用して予測バージョンを補正することと、によって、
逆量子化された残差値(104)を使用して媒体信号を再構成(170)するように構成することができる。
【0253】
第20の態様によれば、エンコーダは、
残差信号を取得するために媒体信号を予測的に符号化することと、
現在の遷移状態(220)に応じて、デフォルト量子化器のセット(151)から量子化器(153)を選択(152)することと、
量子化器(153)を使用して現在の残差値を量子化して、現在の残差レベルを取得することと、
現在の残差レベル[例えばパリティ]へのバイナリ関数の適用(156)によって取得される現在の残差レベルの特性(157)に応じて、かつデータストリーム(14)において送信される量子化モード情報(180)に応じて、現在の遷移状態(220)を更新(158)することと、によって、
残差信号を表す残差値を連続的に量子化して、残差レベル(142)を取得することと、
残差レベル(142)をデータストリーム(14)に符号化することであって、現在の遷移状態(220)は、量子化モード情報(180)に依存する全射写像に従って、1又は複数の遷移状態のセット(161)と現在の残差レベルの特性(157)との組合せ(163)の定義域から1又は複数の遷移状態のセット(161)へ遷移し、1又は複数の遷移状態のセット(161)の基数は、量子化モード情報(180)に応じて異なる、ことと、
第1の写像(200)を使用して、現在の遷移状態(220)の所定数のビット[例えば、LSB又は2番目であるが最後の有意ビット位置のビットなど、1又は複数の所定のビット位置の1又は複数のビット]をデフォルト量子化器に写像することによって、量子化モード情報(180)が[例えば、量子化モード情報(180)に関係なく、又はそれから独立して]どのようなものであっても、量子化器(153)の選択(152)を実行することであって、所定の数及び第1の写像(200)は、量子化モード情報(180)が何であれ等しい、ことと、
を行うように構成することができる。
【0254】
第21の態様によれば、第20の態様に戻って参照すると、エンコーダにおいて、所定数のビットは、1であり得る。
【0255】
第22の態様によれば、第20又は第21の態様に戻って参照すると、エンコーダは、量子化モード情報(180)に応じて、デフォルト遷移表のセット(159)から使用される遷移表(106)の選択を選択し、デフォルト遷移表のセット(159)を統合遷移表の異なる部分として管理するように構成することができ、その中で、各デフォルト遷移表について、1又は複数の遷移状態のセット(161)の各々は、他の任意のデフォルト遷移表が統合遷移表内でインデックス付けされる状態インデックスとは異なる状態インデックスを使用してインデックス付けされる[例えば、統合遷移表の異なる部分内のデフォルト遷移表の遷移状態は、あるデフォルト遷移表から別のデフォルト遷移表に分離される]。
【0256】
第23の態様によれば、第22の態様に戻って参照すると、エンコーダは、統合遷移表内で、現在の残差レベルの特性(157)と現在の遷移状態(220)との組み合わせに対応するエントリをルックアップすることによって、現在の遷移状態(220)を更新(158)することを実行するように構成することができる。
【0257】
第24の態様によれば、第22又は第23の態様に戻って参照すると、エンコーダは、[例えば、それに沿って順次逆量子化が実行される]量子化順序で、量子化モード情報(180)として、第1の残差値を量子化する際に使用するための開始遷移状態を示すシンタックス要素をデータストリーム(14)に符号化するように構成することができ、それにより、シンタックス要素は、使用される遷移表(106)に対応する統合遷移表の部分においてのみ使用される状態インデックスに適合することによって、デフォルト遷移表のうち使用される遷移表(106)を示す。
【0258】
第25の態様によれば、第20から第24の態様のいずれかに戻って参照すると、エンコーダにおいて、デフォルト量子化器のセット(151)は、
符号化レベルとして量子化ステップサイズ(144)の偶数倍を含む第1のデフォルト量子化器(1511)と、
符号化レベルとして量子化ステップサイズ(144)の奇数倍及び0を含む第2のデフォルト量子化器(1512)と
からなる。
【0259】
第26の態様によれば、第20から第25の態様のいずれかに戻って参照すると、エンコーダは、
現在の残差レベルの二値化のビンのコンテキスト適応型二値算術符号化を使用して、現在の残差レベルをデータストリーム(14)に符号化することであって、ビンは、現在の残差レベルが0であるか非ゼロであるかを示す有意ビン(92)を含む、ことと、
第2の写像(144)を使用して、現在の遷移状態(220)の更なる所定数のビットを該値に写像することによって取得される値(230)に応じて、現在の残差レベルの第1のビン(92)を符号化するための第1のコンテキスト(242)を選択することであって、第2の写像(144)は、量子化モード情報(180)が何であれ等しい、ことと、
を行うように構成することができる。
【0260】
第27の態様によれば、第26の態様に戻って参照すると、エンコーダにおいて、更なる所定数のビットは、2であり得る。
【0261】
第28の態様によれば、第20から第27の態様のいずれかに戻って参照すると、エンコーダにおいて、媒体信号は、ビデオであり得、エンコーダは、
1つのピクチャブロック(84)に関する残差レベルを別のピクチャブロック(84)に関する残差レベルよりも前に符号化することと、
1つのピクチャブロック(84)に関する残差レベルの二値化のビンを1又は複数の走査で順次符号化し、残差レベルの二値化のビンの所定数の先頭ビンに対してコンテキスト適応型二値算術符号化を使用し、残差レベルの二値化の後続ビンに対して等確率バイパスモードを使用することと、
第3の写像を使用して、遷移状態の更なる所定数のビット[例えば、LSB又は2番目であるが最後の有意ビット位置におけるビットなどの1又は複数の所定のビット位置における1又は複数のビット]を二値化パラメータ(302)に写像し、二値化パラメータ(302)に応じて所定の残差レベルの二値化の決定を実行することによって、所定数のビンが使い果たされた所定の残差レベルの二値化を決定することとであって、第3の写像は、量子化モード情報(180)が何であれ等しい、ことと、によって、
残差レベル(142)をデータストリーム(14)に符号化するように構成することができる。
【0262】
第29の態様によれば、第28の態様に戻って参照すると、エンコーダは、二値化が、二値化パラメータ(302)に依存する1つの二値化コードを、所定のレベルに関連付けられている状態からレベル0に関連付けられている状態へとリダイレクトすることと、1又は複数の二値化コードを、0から所定のレベルマイナス1までの1又は複数のレベルに関連付けられている状態から1から所定のレベルまでの1又は複数のレベルに関連付けられている状態へとリダイレクトすることと、によって修正されたデフォルト二値化であるように、二値化パラメータ(302)に応じて所定の残差レベルに対する二値化を決定するように構成することができる。
【0263】
第30の態様によれば、第28又は第29の態様に戻って参照すると、エンコーダにおいて、更なる所定数のビットは、1であり得る。
【0264】
第31の態様によれば、第28の態様に戻って参照すると、エンコーダにおいて、量子化モード情報(180)に応じて、全射写像及び1又は複数の遷移状態のセット(161)の基数は、
1又は複数の遷移状態のセット(161)の基数が1である、
1又は複数の遷移状態のセット(161)の基数が4である、
1又は複数の遷移状態のセット(161)の基数が8である、のうちの2つ以上の間で選択可能であり得る。
【0265】
第32の態様によれば、第20から第31の態様のいずれかに戻って参照すると、エンコーダにおいて、媒体信号は、ビデオであり得、エンコーダは、
ビデオについて、
ピクチャブロック(84)単位、
ピクチャ単位、
スライス単位、及び
ピクチャシーケンス単位
のうちの1つの方法で更新(158)を制御する量子化モード情報(180)を書き込むように構成することができる。
【0266】
第33の態様によれば、第20から第32の態様のいずれかに戻って参照すると、エンコーダにおいて、媒体信号は、ビデオであり得、量子化モード情報(180)は、データストリーム(14)内の第1のシンタックス要素を含み得、第1のシンタックス要素は、ビデオ又はビデオの部分について、データストリーム(14)内の量子化モード情報(180)の第2のシンタックス要素を介して更新(158)がビデオ又はビデオの部分内で制御されるかどうか、又はどの全射写像及び1又は複数の遷移状態のセット(161)のどの基数が更新(158)のために選択されるべきかを示す。
【0267】
第34の態様によれば、第33の態様に戻って参照すると、エンコーダにおいて、第1のシンタックス要素は、
部分は、ビデオであり、第2のシンタックス要素は、
ピクチャのシーケンス、
ピクチャ、
タイル、
スライス、
符号化ツリーブロック[例えば、再帰的マルチツリー再分割によって各符号化ツリーブロックが符号化ブロックに分割される前に、例えば、1つのピクチャが一様に予め再分割される単位で]、イントラ/インターモード決定が行われる符号化ブロック]、
符号化ブロック[例えば、イントラ/インターモード決定が行われる単位で]、
若しくは残差変換ブロック
を単位として、更新(158)を制御する、ビデオパラメータセット、
部分は、ピクチャのシーケンスであり、第2のシンタックス要素は、
ピクチャ、
タイル、
スライス、
符号化ツリーブロック[例えば、再帰的マルチツリー再分割によって各符号化ツリーブロックが符号化ブロックに分割される前に、例えば、1つのピクチャが一様に事前に再分割される単位で]、イントラ/インターモード決定が行われる符号化ブロック]、
符号化ブロック[例えば、イントラ/インターモード決定が行われる単位で]、
若しくは残差変換ブロック
を単位として、更新(158)を制御する、シーケンスパラメータセット、
部分は、1又は複数のピクチャであり、第2のシンタックス要素は、
ピクチャ、
タイル、
スライス、
符号化ツリーブロック[例えば、再帰的マルチツリー再分割によって各符号化ツリーブロックが符号化ブロックに分割される前に、例えば、1つのピクチャが一様に事前に再分割される単位で]、イントラ/インターモード決定が行われる符号化ブロック]、
符号化ブロック[例えば、イントラ/インターモード決定が行われる単位で]、
若しくは残差変換ブロック
を単位として、更新(158)を制御する、ピクチャパラメータセット、又は、
部分は、1つのピクチャであり、第2のシンタックス要素は、
タイル、
スライス、
符号化ツリーブロック[例えば、再帰的マルチツリー再分割によって各符号化ツリーブロックが符号化ブロックに分割される前に、例えば、1つのピクチャが一様に事前再分割される単位で]、イントラ/インターモード決定が行われる符号化ブロック]、
符号化ブロック[例えば、イントラ/インターモード決定が行われる単位で]、
若しくは残差変換ブロック
を単位として、更新(158)を制御する、ピクチャヘッダ、
あるいは、
部分は、1つの符号化ツリーブロックであり、第2のシンタックス要素は、
符号化ブロック[例えば、イントラ/インターモード決定が行われる単位で]、
若しくは残差変換ブロック
を単位として、更新(158)を制御する、パラメータセット
の中のデータストリーム(14)に含まれ得る。
【0268】
第35の態様によれば、第20から第34の態様のいずれかに戻って参照すると、エンコーダにおいて、媒体信号は、カラービデオであり得、エンコーダは、異なる色成分のためのデフォルト量子化器のセット(151)に対して異なるバージョンを使用するように構成することができる。
【0269】
第36の態様によれば、第20から第35の態様のいずれかに戻って参照すると、エンコーダにおいて、バイナリ関数は、パリティであり得る。
【0270】
第37の態様によれば、第20から第36の態様のいずれかに戻って参照すると、エンコーダは、
予測を実行して媒体信号及び残差信号の予測バージョンを取得することによって、
残差信号を取得するために媒体信号を予測的に符号化するように構成することができる。
【0271】
第38の態様によれば、第20から第37の態様のいずれかに戻って参照すると、エンコーダは、
予測を実行して媒体信号及び残差信号の予測バージョンを取得することと、
残差信号を順変換することと、によって、
残差信号を取得するために媒体信号を予測的に符号化するように構成することができる。
【0272】
第39の態様によれば、方法は、
予測残差を表す残差レベルをデータストリームから復号化し、
現在の遷移状態に応じて、デフォルト量子化器のセットから量子化器を選択することと、
量子化器を使用して現在の残差レベルを逆量子化して、逆量子化された残差値を取得することと、
現在の残差レベル[例えばパリティ]へのバイナリ関数の適用によって取得される現在の残差レベルの特性に応じて、かつデータストリームに含まれる量子化モード情報に応じて、現在の遷移状態を更新することと、によって、
残差レベルを順次逆量子化するステップと、
逆量子化された残差値を使用して媒体信号を再構成するステップであって、現在の遷移状態は、量子化モード情報に依存する全射写像に従って、1又は複数の遷移状態のセットと現在の残差レベルの特性との組合せの定義域から1又は複数の遷移状態のセットへ遷移し、1又は複数の遷移状態のセットの基数は、量子化モード情報に応じて異なる、ステップと、
第1の写像を使用して、現在の遷移状態の所定数のビット[例えば、LSB又は2番目であるが最後の有意ビット位置のビットなど、1又は複数の所定のビット位置の1又は複数のビット]をデフォルト量子化器に写像することによって、量子化モード情報が[例えば、量子化モード情報に関係なく、又はそれから独立して]どのようなものであっても、量子化器の選択を実行するステップであって、所定の数及び第1の写像は、量子化モード情報が何であれ等しい、ステップと、
を有し得る。
【0273】
第40の態様によれば、方法は、
残差信号を取得するために媒体信号を予測的に符号化するステップと、
現在の遷移状態に応じて、デフォルト量子化器のセットから量子化器を選択することと、
量子化器を使用して現在の残差値を量子化して、現在の残差レベルを取得することと、
現在の残差レベル[例えばパリティ]へのバイナリ関数の適用によって取得される現在の残差レベルの特性に応じて、かつデータストリームにおいて送信される量子化モード情報に応じて、現在の遷移状態を更新することと、によって、
残差信号を表す残差値を連続的に量子化して、残差レベルを取得するステップと、
残差レベルをデータストリームに符号化するステップであって、現在の遷移状態は、量子化モード情報に依存する全射写像に従って、1又は複数の遷移状態のセットと現在の残差レベルの特性との組合せの定義域から1又は複数の遷移状態のセットへ遷移し、1又は複数の遷移状態のセットの基数は、量子化モード情報に応じて異なる、ステップと、
第1の写像を使用して、現在の遷移状態の所定数のビット[例えば、LSB又は2番目であるが最後の有意ビット位置のビットなど、1又は複数の所定のビット位置の1又は複数のビット]をデフォルト量子化器に写像することによって、量子化モード情報が[例えば、量子化モード情報に関係なく、又はそれから独立して]どのようなものであっても、量子化器の選択を実行するステップであって、所定の数及び第1の写像は、量子化モード情報が何であれ等しい、ステップと、
を有し得る。
【0274】
第41の態様によれば、データストリームは、第40の態様による方法によって符号化することができる。
【0275】
第42の態様によれば、コンピュータプログラムは、プログラムが1又は複数のコンピュータ上で実行されるときに、第39又は第40の態様による方法を実行するためのプログラムコードを有し得る。