本発明は、多様な変更を加えることができ、様々な実施例を有することができるが、特定の実施例を図面に例示して詳細に説明する。しかし、これは本発明をその特定の実施例に限定するものではない。本明細書で使用する用語は、単に特定の実施例を説明するために使われたものであり、本発明の技術的思想を限定するために使われたものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。本明細書において、“含む”又は“有する”などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はそれらを組合せたものが存在することを指定するものであり、一つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品又はそれらを組合せたものの存在又は付加可能性を予め排除しないと理解しなければならない。
一方、本発明で説明される図面上の各構成は、映像符号化/復号装置における別個の特徴的な機能に対する説明の便宜のために独立的に図示したものであり、各構成が別個のハードウェア又は別個のソフトウェアで具現されるということを意味しない。例えば、各構成のうち二つ以上の構成を統合して一つの構成にしてもよいし、一つの構成を複数の構成に分けてもよい。各構成が統合及び/又は分離された実施例も、本発明の本質から外れない限り本発明の権利範囲に含まれる。
以下、添付図面を参照して、本発明に対して詳細に説明する。
図1は、本発明の一実施例に係る映像符号化装置(エンコーダ)を概略的に示すブロック図である。図1を参照すると、映像符号化装置100は、ピクチャ分割部105、予測部110、変換部115、量子化部120、再整列部125、エントロピ符号化部130、逆量子化部135、逆変換部140、フィルタ部145、及びメモリ150を備える。
ピクチャ分割部105は、入力されたピクチャを少なくとも一つの処理単位に分割することができる。このとき、処理単位は、予測ユニット(以下、‘PU’という)であってもよく、変換ユニット(以下、‘TU’という)であってもよく、符号化ユニット(以下、‘CU’という)であってもよい。ただし、本明細書においては、説明の便宜のために、予測ユニットを予測ブロックで表現し、変換ユニットを変換ブロックで表現し、符号化ユニットを符号化ブロックで表現することがある。
予測部110は、インタ予測(画面間予測)を実行するインタ予測部と、イントラ予測(画面内予測)を実行するイントラ予測部とを含むことができる。符号化効率を上げるために、映像信号をそのまま符号化するものではなく、既に符号化された領域を利用して映像を予測し、元来の映像と予測映像との間の残差(residual)値を予測映像に加えて映像を復元できるように符号化する。
予測に利用される既に符号化された領域を含むピクチャとして、Iピクチャ(Iスライス)、Pピクチャ(Pスライス)、Bピクチャ(Bスライス)などがある。Iスライスは、イントラ予測によってだけ復号されるスライスである。Pスライスは、各ブロックのサンプル値を予測するために、少なくとも一つの動きベクトル及び参照ピクチャインデクスを利用したインタ予測又はイントラ予測を利用して復号することができるスライスである。Bスライスは、各ブロックのサンプル値を予測するために、少なくとも二つの動きベクトル及び参照ピクチャインデクスを利用したインタ予測又はイントラ予測を利用して復号することができるスライスである。
予測部110は、ピクチャ分割部105でピクチャの処理単位に対して予測を実行することによって、予測されたサンプルで構成される予測ブロックを生成する。予測部110でピクチャの処理単位は、CUであってもよいし、TUであってもよいし、PUであってもよい。また、該当処理単位に対して実行される予測がインタ予測かイントラ予測かを決定し、各予測方法の具体的な内容(例えば、予測モード等)を定めることができる。このとき、予測が実行される処理単位と、予測方法及び具体的な内容が定められる処理単位とは異なってもよい。例えば、予測方法及び予測モードなどはPU単位に決定してもよいし、予測の実行はTU単位に実行してもよい。
インタ予測を介して、現ピクチャの先行ピクチャ及び/又は後続ピクチャのうち少なくとも一つのピクチャの情報に基づいて予測を実行することによって、予測ブロックを生成することができる。また、イントラ予測を介して、現ピクチャ内の画素情報に基づいて予測を実行することによって、予測ブロックを生成することができる。
インタ予測において、現ブロックに対し、参照ピクチャを選択し、現ブロックと同じ大きさの参照ブロックを選択することによって、現ブロックに対する予測ブロックを生成することができる。例えば、インタ予測において、現ブロックとの残差信号が最小化され、動きベクトルの大きさも最小となるように予測ブロックを生成することができる。インタ予測方法として、スキップモード、マージモード、高度動きベクトル予測(Advanced Motion Vector Prediction,AMVP)などを利用することができる。予測ブロックは、1/2画素サンプル単位及び1/4画素サンプル単位のように整数以下のサンプル単位で生成することもできる。このとき、動きベクトルも整数画素以下の単位で表現することができる。例えば、輝度画素に対しては1/4画素単位で表現し、色差画素に対しては1/8画素単位で表現することができる。
インタ予測を介して選択された参照ピクチャのインデクス、動きベクトル予測子、残差信号などの情報は、エントロピ符号化され、復号装置に伝達される。
イントラ予測を実行する場合にも予測が実行される処理単位と、予測方法及び具体的な内容が定められる処理単位とは異なってもよい。例えば、PU単位に予測モードを定めてPU単位に予測を実行してもよいし、PU単位に予測モードを定めてTU単位にイントラ予測を実行してもよい。
イントラ予測において、予測モードは、33個の方向性予測モードと少なくとも2個以上の非方向性モードとを有することができる。非方向性モードは、DC予測モード及び平面モード(Planar mode)などを含むことができる。
イントラ予測では、参照サンプルにフィルタを適用した後、予測ブロックを生成することができる。このとき、参照サンプルにフィルタを適用するかどうかは、現ブロックのイントラ予測モード及び/又はサイズによって決定することもできる。
PUは、それ以上分割されないCUから多様なサイズ/形態で決定することができる。例えば、インタ予測の場合、PUは、2N×2N、2N×N、N×2N、又はN×Nなどの大きさを有することができる。イントラ予測の場合、PUは、2N×2N又はN×N(Nは、整数)などの大きさを有することができる。このとき、N×N大きさのPUは、特定の場合にだけ適用するように設定することもできる。例えば、最小の大きさの符号化ユニットに対してだけN×NのPUを利用するように定めたり、イントラ予測に対してだけ利用するように定めたりすることができる。また、前述した大きさのPUのほかに、N×mN、mN×N、2N×mN又はmN×2N(m<1)などの大きさを有するPUを更に定義して使用することもできる。
生成された予測ブロックと原ブロックとの間の残差値(残差ブロック又は残差信号)は、変換部115に入力される。また、予測のために使用した予測モード情報、動きベクトル情報などは、残差値と共にエントロピ符号化部130で符号化され、復号装置に伝達される。
変換部115は、変換単位に残差ブロックに対する変換を実行することによって、変換係数を生成する。変換部115での変換単位は、TUであってもよく、四分木(quad tree)構造を有してもよい。このとき、変換単位の大きさは、所定の最大及び最小大きさの範囲内で定めることができる。変換部115は、残差ブロックを離散コサイン変換(DCT)又は離散サイン変換(DST)を利用して変換することができる。
量子化部120は、変換部115で変換された残差値を量子化することによって、量子化係数を生成することができる。量子化部120で算出された値は、逆量子化部135及び再整列部125に提供される。
再整列部125は、量子化部120から提供された量子化係数を再整列する。量子化係数を再整列することによって、エントロピ符号化部130での符号化の効率を上げることができる。再整列部125は、係数スキャン方法を介して2次元ブロック形態の量子化係数を1次元の形態に再整列することができる。再整列部125では、量子化部で送信された係数の確率的な統計に基づいて係数スキャンの順序を変更することによって、エントロピ符号化部130でのエントロピ符号化効率を上げることもできる。
エントロピ符号化部130は、再整列部125によって再整列された量子化係数に対するエントロピ符号化を実行することができる。エントロピ符号化には、例えば、指数ゴロム(Exponential Golomb)、コンテキスト適応可変長符号化(CAVLC)、コンテキスト適応二進算術符号(CABAC)のような符号化方法を使用することができる。エントロピ符号化部130は、再整列部125及び予測部110から伝達を受けたCUの量子化係数情報及びブロックタイプ情報、予測モード情報、分割単位情報、PU情報及び送信単位情報、動きベクトル情報、参照ピクチャ情報、ブロックの補間情報、フィルタ情報など、多様な情報を符号化することができる。
また、エントロピ符号化部130は、必要な場合、送信するパラメータセット又はシンタクスに一定の変更を加えることもできる。
逆量子化部135は、量子化部120で量子化された値を逆量子化し、逆変換部140は、逆量子化部135で逆量子化された値を逆変換する。逆量子化部135及び逆変換部140で生成された残差値は、予測部110で予測された予測ブロックと合わせて復元ブロックを生成することができる。
フィルタ部145は、ブロック歪み除去(デブロッキング)フィルタ、適応ループフィルタ(ALF)、サンプル適応オフセット(SAO)を復元されたピクチャに適用することができる。
ブロック歪み除去フィルタは、復元されたピクチャでブロック間の境界に発生したブロック歪みを除去することができる。ALFは、ブロック歪み除去フィルタを介してブロックがフィルタされた後、復元された映像と元来の映像とを比較した値に基づいてフィルタを実行することができる。ALFは、高効率を適用する場合にだけ実行することもできる。SAOは、ブロック歪み除去フィルタが適用された残差ブロックに対し、画素単位に原映像とのオフセット差を復元し、バンドオフセット、エッジオフセットなどの形態で適用される。
一方、インタ予測に使われる復元ブロックに対してフィルタ部145は、フィルタを適用しなくてもよい。
メモリ150は、フィルタ部145を介して算出された復元ブロック又はピクチャを記憶することができる。メモリ150に記憶された復元ブロック又はピクチャは、インタ予測を実行する予測部110に提供することができる。
図2は、本発明の一実施例に係る映像復号装置(デコーダ)を概略的に示すブロック図である。図2を参照すると、映像復号装置200は、エントロピ復号部210、再整列部215、逆量子化部220、逆変換部225、予測部230、フィルタ部235、及びメモリ240を含むことができる。
符号化装置から映像ビットストリームが入力された場合、入力されたビットストリームは、符号化装置で映像情報が処理された手順の逆過程によって復号することができる。
例えば、映像符号化装置でエントロピ符号化を実行するために、CAVLCなどの可変長符号化(以下、‘VLC’という)が使われた場合、エントロピ復号部210も符号化装置で使用したVLCテーブルと同じVLCテーブルで具現してエントロピ復号を実行することができる。また、映像符号化装置でエントロピ符号化を実行するために、CABACを利用した場合、エントロピ復号部210は、これに対応してCABACを利用したエントロピ復号を実行することができる。
エントロピ復号部210で復号された情報のうち予測ブロックを生成するための情報は、予測部230に提供され、エントロピ復号部でエントロピ復号が実行された残差値は、再整列部215に入力することができる。
再整列部215は、エントロピ復号部210でエントロピ復号されたビットストリームを映像符号化器で再整列した方法に基づいて再整列することができる。再整列部215は、1次元ベクトル形態で表現された係数を再び2次元のブロック形態の係数に復元して再整列することができる。再整列部215は、符号化装置で実行された係数スキャンに関連した情報の提供を受け、符号化装置で実行されたスキャン順序に基づいて、逆にスキャンする方法を介して再整列を実行することができる。
逆量子化部220は、符号化装置で提供された量子化パラメータ及び再整列されたブロックの係数値に基づいて逆量子化を実行することができる。
逆変換部225は、映像符号化装置で実行された量子化結果に対して符号化装置の変換部が実行したDCT又はDSTに対して、逆DCT又は逆DSTを実行することができる。逆変換は、符号化装置で決定された送信単位又は映像の分割単位に基づいて実行することができる。符号化装置の変換部では、予測方法、現ブロックの大きさ及び予測方向など、複数の情報によってDCT又はDSTが選択的に実行することができ、復号装置の逆変換部225は、符号化装置の変換部で実行された変換情報に基づいて逆変換を実行することができる。
予測部230は、エントロピ復号部210で提供された予測ブロック生成関連情報と、メモリ240で提供された以前に復号されたブロック及び/又はピクチャ情報と、に基づいて予測ブロックを生成することができる。復元ブロックは、予測部230で生成された予測ブロックと、逆変換部225で提供された残差ブロックと、を利用して生成することができる。
予測部230で実行する具体的な予測方法は、符号化装置の予測部で実行される予測方法と同様である。
現ブロックに対する予測モードがイントラ予測モードである場合、現ピクチャ内の画素情報に基づいて予測ブロックを生成するイントラ予測を実行することができる。
イントラ予測において、予測モードは、33個の方向性予測モードと少なくとも2個以上の非方向性モードとを有することができる。非方向性モードは、DC予測モード及び平面モードなどを含むことができる。
イントラ予測では、参照サンプルにフィルタを適用した後、予測ブロックを生成することができる。このとき、参照サンプルにフィルタを適用するかどうかは、現ブロックのイントラ予測モード及び/又はサイズによって決定することもできる。
現ブロックに対する予測モードがインタ予測モードである場合、現ピクチャの先行ピクチャ又は後続ピクチャのうち少なくとも一つを参照ピクチャにし、参照ピクチャに含まれている情報に基づいて現ブロックに対するインタ予測を実行することができる。具体的には、インタ予測では、現ブロックに対し、参照ピクチャを選択し、現ブロックと同じ大きさの参照ブロックを選択することによって、現ブロックに対する予測ブロックを生成することができる。例えば、インタ予測では、現ブロックとの残差信号が最小化され、動きベクトル大きさも最小となるように予測ブロックを生成することができる。このとき、参照ピクチャの情報を利用するために、現ピクチャの周辺ブロックの情報を利用することができる。例えば、スキップモード、マージモード、AMVP等を介して、周辺ブロックの情報に基づいて現ブロックに対する予測ブロックを生成することができる。
予測ブロックは、1/2画素サンプル単位及び1/4画素サンプル単位のように整数以下のサンプル単位で生成することもできる。このとき、動きベクトルも整数画素以下の単位で表現することができる。例えば、輝度画素に対しては1/4画素単位で表現し、色差画素に対しては1/8画素単位で表現することができる。
現ブロックのインタ予測に必要な動き情報、例えば、動きベクトル、参照ピクチャインデクスなどに対する情報は、符号化装置から受信したスキップフラッグ、マージフラッグなどを確認し、これに対応して導出することができる。
予測が実行される処理単位と、予測方法及び具体的な内容が定められる処理単位とは異なってもよい。例えば、PU単位に予測モードを定めてPU単位に予測を実行してもよいし、PU単位に予測モードを定めてTU単位にイントラ予測を実行してもよい。
予測部230から出力された予測ブロックに逆変換部225から出力された残差ブロックを加えて原映像を復元することができる。
復元されたブロック及び/又はピクチャは、フィルタ部235に提供することができる。フィルタ部235は、復元されたブロック及び/又はピクチャにブロック歪み除去フィルタ、SAO及び/又は適応的ループフィルタなどを適用する。
メモリ240は、復元されたピクチャ又はブロックを記憶して参照ピクチャ又は参照ブロックとして使用するようにすることができ、また、復元されたピクチャを出力部に提供することができる。
ここでは説明の便宜のために省略したが、復号装置に入力されるビットストリームは、パースステップを経てエントロピ復号部に入力してもよい。また、エントロピ復号部でパース過程を実行してもよい。
本明細書において、符号化とは、場合によって、符号化又は復号と解釈してもよく、情報とは、値、パラメータ、係数、要素などを全部含むと理解してもよい。
‘画面’又は‘ピクチャ’は、一般的に特定時間帯の一つの映像を示す単位を意味し、‘スライス’、‘フレーム’などは、実際ビデオ信号の符号化においてピクチャの一部を構成する単位であり、必要によっては、ピクチャと互いに混用して使用することもできる。
‘ピクセル’、‘画素’又は‘pel’は、一つの映像を構成する最小の単位を意味する。また、特定ピクセルの値を示す用語として‘サンプル’を使用することができる。サンプルは、輝度(Luma)及び色差(Chroma)成分に分けることができるが、一般的には両方を含む用語として用いることができる。色差成分は、定められた色相間の差を示すものであり、一般的にCb及びCrで構成される。
‘ユニット’は、前述した符号化ユニット(CU)、予測ユニット(PU)、変換ユニット(TU)のように映像処理の基本単位又は映像の特定位置を示し、場合によっては、‘ブロック’又は‘領域(area)’などの用語と互いに混用して用いることがある。また、ブロックは、M個の列及びN個の行で構成されたサンプル又は変換係数の集合を示す用語として用いることもある。
一方、インタ予測モードの場合、符号化装置又は復号装置は、現ブロックの動き情報を導出し、導出された動き情報に基づいて現ブロックに対するインタ予測を実行することができる。
現ブロックの予測に利用される映像を参照ピクチャ又は参照フレームという。参照ピクチャ内の領域は、参照ピクチャを指示する参照ピクチャインデクス(refIdx)及び動きベクトルなどを利用して示すことができる。
現ピクチャに対し、予測のために使われるピクチャで参照ピクチャリストを構成することができ、参照ピクチャインデクスは、参照ピクチャリストで特定参照ピクチャを指示することができる。Pピクチャの場合には一つの参照ピクチャリスト、例えば、参照リスト0を必要とし、Bピクチャの場合には二つの参照ピクチャリスト、例えば、参照リスト0及び参照リスト1を必要とする。
具体的に、Iピクチャは、イントラ予測によって符号化/復号されるピクチャである。Pピクチャは、各ブロックのサンプル値を予測するために少なくとも一つの動きベクトル及び参照ピクチャインデクスを利用したインタ予測又はイントラ予測を利用して符号化/復号することができるピクチャである。Bピクチャは、各ブロックのサンプル値を予測するために少なくとも二つの動きベクトル及び参照ピクチャインデクスを利用したインタ予測又はイントラ予測を利用して符号化/復号することができるピクチャである。
Pピクチャでは一個の参照ピクチャリストを必要とし、これを参照ピクチャリスト0(L0)という。
Bピクチャは、一つ以上、例えば、二つの参照ピクチャを利用して順方向、逆方向又は両方向インタ予測によって符号化することができるピクチャである。Bピクチャは、二つの参照ピクチャリストを必要とし、二つの参照ピクチャリストは、各々、参照ピクチャリスト0(L0)、参照ピクチャリスト1(L1)という。
L0から選択された参照ピクチャを使用するインタ予測をL0予測といい、L0予測は、主に順方向予測に使われる。L1から選択された参照ピクチャを使用するインタ予測をL1予測といい、L1予測は、主に逆方向予測に使われる。また、L0及びL1から各々選択された二つの参照ピクチャを使用するインタ予測を双予測(bi prediction)ともいう。
Iピクチャ、Pピクチャ、Bピクチャの特徴は、ピクチャ単位ではなくスライス単位で定義してもよい。例えば、スライス単位でIピクチャの特徴を有するIスライスが定義され、Pピクチャの特徴を有するPスライスが定義され、Bピクチャの特徴を有するBスライスを定義することができる。
例えば、現ブロックに対するスライスタイプがBであり、L0からcolPicが選択される場合又は現ブロックに対するスライスタイプがPである場合、colPicはL0から選択することができる。Bスライス(Bピクチャ)のうち、参照ピクチャリストL0と参照ピクチャリストL1とが同じであるスライス(ピクチャ)を一般化P及びB(Generalized P and B,GPB)という。
図1及び図2で詳述したように、予測部は、現ピクチャ内のピクセル情報に基づいてイントラ予測を実行することによって、現ブロックに対する予測ブロックを生成することができる。例えば、予測部は、現ブロックの周辺ブロック、例えば、現ブロックの上に位置するブロック、現ブロックの左に位置するブロック、現ブロックの左上コーナーに位置するブロック、現ブロックの左下に位置するブロック、現ブロックの右上に位置するブロック、に属するピクセルを利用して現ブロックのピクセル値を予測することができる。
イントラ予測モードには、現ブロックのピクセル値予測に使われる参照ピクセルの位置及び/又は予測方式などによって、多様な予測モードを利用することができる。
図3は、イントラ予測において適用されるイントラ予測モードの一例を概略的に説明する図面である。
図3を参照すると、イントラ予測モードには、垂直モード、水平モードなどの方向性モードと、DCモード、平面モードなどのような非方向性モードと、がある。
表1は、図3に示すイントラ予測モードを指示するインデクスを概略的に説明する。
表1において、イントラ予測モードの各数字(0~35)は、図3に示す0~35の数値に各々対応する。表1及び図3を参照すると、イントラ予測モード0は平面モードであり、イントラ予測モード1はDCモードであって、非方向性モードである。また、イントラ予測モード2~34は予測角度によるモードであって、方向性モードである。
非方向性モードとして、イントラ予測モード35はクロマに対してだけ適用され、ルマのイントラモードから決定されるクロマの予測モードを示す。DCモードでは現ブロック内のピクセル値の平均によって予測ブロックが生成することができる。角度(アンギュラ)モード(方向性モード)では各々のモードに対して予め定められた角度及び/又は方向によって予測を実行することができる。
一方、ルマ成分と違って、クロマ成分に対しては更に制限された個数の予測モードが用いられることがある。説明の便宜のために、クロマ成分に使われる制限された個数の予測モードをクロマ予測モード候補という。クロマモードに対するイントラ予測を実行する場合には、クロマ予測モード候補のうち一つの予測モードを利用して予測を実行することができる。
一実施例として、クロマ予測モード候補として、平面モード、垂直モード、水平モード、DCモードなどを利用することができる。
表2は、現ブロックに対するルマ成分の予測モードと、クロマ成分に対する予測モード指示子によって、現ブロックに対するクロマ成分の予測モードが決定される一例を概略的に説明する。
表2において、(xB,yB)は、現ピクチャの左上サンプルに対する現ブロックの左上ルマサンプルの位置を示し、IntraPredModeは、現ブロックのルマサンプルに対するイントラ予測モードを示す。intra_chroma_pred_modeは、現ブロックのクロマサンプルに対するイントラ予測モードを決定するための情報を含み、符号化装置から復号装置に送信することができる。
LMモードは、線形モード又はルマ成分のモードから推定されるモード(Luma estimated Mode)とも呼ばれる。LMモードにおいて、現ブロックのクロマ成分は、現ブロックのルマサンプル(ルマ画素)を利用して予測することができる。例えば、LMモードでは現ブロックの復元されたルマサンプルを補間して生成したサンプルに基づいてクロマサンプルの予測値を生成することができる。
表2を参照すると、現ブロックのクロマ成分に対する予測モードは、intra_chroma_pred_modeの値と、現ブロックのルマ成分に対する予測モードIntraPredMode値とに応じて決定することができる。例えば、intra_chroma_pred_mode値が0の場合、IntraPredMode値が0であるとき、現ブロックのクロマ成分に対するイントラ予測モードは、右上方向の予測モード(34番モード)となり、IntraPredMode値が0以外の値であるとき、現ブロックのクロマ成分に対するイントラ予測モードは、平面モード(Intra_Planar)となる。現ブロックのクロマ成分は、イントラ予測モードに応じて、現ピクチャ内のクロマ成分を利用して予測される。
同様に、intra_chroma_pred_mode値が1の場合、IntraPredMode値が26であるとき、現ブロックのクロマ成分に対するイントラ予測モードは、右上方向の予測モード(34番モード)となり、IntraPredMode値が26以外の値であるとき、現ブロックのクロマ成分に対するイントラ予測モードは、垂直モード、すなわち、Intra_Angular26となる。現ブロックのクロマ成分は、イントラ予測モードに応じて、現ピクチャ内のクロマ成分を利用して予測される。
intra_chroma_pred_mode値が2の場合、IntraPredMode値が10であるとき 、現ブロックのクロマ成分に対するイントラ予測モードは、右上方向の予測モード(34番モード)となり、IntraPredMode値が10以外の値であるとき、現ブロックのクロマ成分に対するイントラ予測モードは、水平モード、すなわち、Intra_Angular10となる。現ブロックのクロマ成分は、イントラ予測モードに応じて、現ピクチャ内のクロマ成分を利用して予測される。
intra_chroma_pred_mode値が3の場合、IntraPredMode値が1であるとき、現ブロックのクロマ成分に対するイントラ予測モードは、右上方向の予測モード(34番モード)となり、IntraPredMode値が1以外の値であるとき、現ブロックのクロマ成分に対するイントラ予測モードは、DCモード(Intra_DC)となる。現ブロックのクロマ成分は、イントラ予測モードに応じて、現ピクチャ内のクロマ成分を利用して予測される。
intra_chroma_pred_mode値が4の場合、現ブロックのクロマ成分に対するイントラ予測モードは、LMモードとなる。したがって、現ブロックのクロマ成分に対する予測ブロックは、現ブロックの復元されたルマ成分を利用して生成することができる。
intra_chroma_pred_mode値が5の場合、現ブロックのクロマ成分に対するイントラ予測モードは、現ブロックのルマ成分に対するイントラ予測モードと同じである。したがって、この場合を直接モード(DM)ともいう。
表3は、現ブロックに対するルマ成分の予測モードとクロマ成分に対する予測モード指示子とに応じて、現ブロックに対するクロマ成分の予測モードが決定される他の例を概略的に説明する表である。
表3は、LMモードの適用がない場合を示す。
復号装置は、表2及び表3を選択的に適用することもできる。例えば、符号化装置は、表2を適用するか、表3を適用するかを指示する情報を復号装置に送信することができる。復号装置は、送信された指示に応じて、現ブロックのクロマ成分に対するイントラ予測モードを決定するために、表2又は表3を適用することができる。
一方、予測された情報を含む映像情報は、図1で説明したように、エントロピ符号化を経てビットストリームで復号装置に送信される。また、復号装置は、図2で説明したように、受信したビットストリームをエントロピ復号して予測された情報を含む映像情報を取得する。
図4は、本発明で適用されるエントロピ符号化部の一例を概略的に説明する図面である。図4に示すエントロピ符号化部の構成は、エントロピ符号化及びエントロピ復号に同様に適用することができる。
図4がエントロピ符号化部の一例であると仮定すると、エントロピ符号化部400は、二進化(binarization)部410、正規符号化(Regular Coding)エンジン420、バイパス符号化エンジン430を含むことができる。
このとき、エントロピ符号化は、D1方向に入力される信号を処理し、D2方向に処理された信号を出力する。
入力される信号が二進値でないシンタクス要素である場合、二進化部410は、入力信号を二進数に変換する。入力される信号が既に二進値である場合には、二進化部410を経ずにバイパスすることもできる。
入力される一桁の値である二進値をビン(Bin)という。例えば、入力される二進値が110の場合、1、1、0の各々を一つのビンといい、ビンで構成される二進シーケンスをビンストリング(bin string)という。
二進化された信号(ビンストリング)は、正規符号化エンジン420又はバイパス符号化エンジン430に入力される。
正規符号化エンジン420は、該当ビンに対して確率値を反映するコンテキストを割り当て、割り当てられたコンテキストに基づいて該当ビンを符号化する。正規符号化エンジン420は、各ビンに対する符号化を実行した後、該当ビンに対するコンテキストを更新することができる。
バイパス符号化エンジン430は、入力されるビンに応じてコンテキストを割り当てずに、単純なバイパスモードに入力されるビンを符号化し、符号化速度を向上させる。バイパスモードにおいては、入力されたビンに対して確率を推定する手順と、符号化後に該当ビンに適用した確率を更新する手順とをバイパスする。バイパスモードでは、例えば、均一な確率分布を適用して符号化手順を実行することができる。
エントロピ符号化部400は、正規符号化エンジン420を介してエントロピ符号化を実行するか、バイパス符号化エンジン430を介してエントロピ符号化を実行するか、を決定し、スイッチ部440を介して符号化経路をスイッチすることができる。
前述したエントロピ符号化部400は、図1に示すエントロピ符号化部130であってもよい。
一方、図4がエントロピ復号部の一例であると仮定すると、エントロピ復号部400は、二進化部410、正規符号化エンジン420、及びバイパス符号化エンジン430を含むことができる。
エントロピ復号部400は、D3方向に入力される信号を処理し、D4方向に処理された信号を出力する。
二進化部410、正規符号化エンジン420、及びバイパス符号化エンジン430は、エントロピ符号化部で説明した同様の過程を逆順に実行する。
例えば、エントロピ復号部400は、入力されるシンタクス要素に対するビン別に、正規符号化エンジン420で復号されるか、バイパス符号化エンジン430で復号されるか、を決定する。
正規符号化エンジンを利用すると決定した場合、正規符号化エンジン420でコンテキストを利用した復号が実行される。バイパス符号化エンジンを利用すると決定した場合、バイパス符号化エンジン430で均一な確率分布を利用した復号が実行される。各符号化エンジン420、430での復号によって二進符号が出力される。
特定シンタクス(シンタクス要素)に対するすべてのビンに対して符号化エンジンでの復号が完了した場合、該当シンタクス(シンタクス要素)のすべてのビンに対して出力された二進符号を合わせて、いずれのシンタクス値にマッピングされるかを判断する。出力された最終二進符号が特定シンタクスにマッピングされる場合、該当二進符号の値がマッピングされるシンタクスの値で定められる。
このとき、必要によって、二進化部410は、逆二進化を実行することができる。
一方、復号装置において、符号化装置から受信したビットストリームをエントロピ復号する。以下、説明の便宜のために、本発明が適用されるエントロピ復号の一例として、符号化装置でCABACを利用して映像情報をエントロピ符号化した場合、復号装置で実行されるエントロピ復号方法を説明する。
復号装置、例えば、復号装置内のエントロピ復号部では、CABACで符号化されたシンタクス要素をパースする場合、該当シンタクス要素の値に対する要求に応じてCABACパース過程を開始する。
具体的には、シンタクス要素値に対する要求に応じて、該当シンタクス要素値に対する二進化が導出される。二進化過程において、適用された二進化タイプ(例えば、単項(unary)二進化、短縮単項(truncated unary)二進化、指数ゴロム二進化、固定長二進化等)によって二進化が実行される。
シンタクス要素に対する二進化及びパースされたビンのシーケンスが復号プロセスを決定する。シンタクス要素に対して二進化された値において、各々のビンは、ビンインデクス(binIdx)によってインデクスされ、各ビンに対してコンテキストインデクス(ctxIdx)が導出される。シンタクス要素別にコンテキストインデクスの初期値を設定することができる。この場合、シンタクス要素別にコンテキストインデクスの値を設定したコンテキストインデクステーブルを利用することができ、該当テーブルを所定の指示子、例えば、コンテキストインデクステーブル指示子(ctxIdxTable)を利用して特定することができる。
各々のコンテキストインデクスに対し、算術復号過程が開始される。
図5は、本発明が適用されるエントロピ復号過程の一例を概略的に説明するフローチャートである。説明の便宜のために、図5において、単一ビンに対する復号過程を一例として説明する。
図5に示す復号過程は、復号装置、より具体的には、復号装置内のエントロピ復号部で実行することができる。ここでは説明の便宜のために、エントロピ復号部で各過程を実行するものとして説明する。
図5を参照すると、エントロピ復号部は、入力された復号対象ビンに対し、バイパス復号を適用するかどうかを判断する(S510)。エントロピ復号部は、対象ビンに対する情報に基づいてバイパス復号を適用するかどうかを判断することができる。例えば、後述するように、テーブルを利用して固定的なコンテキストを使用する場合、エントロピ復号部は、該当シンタクス要素に対してテーブル上で割り当てられる指示に基づいてバイパス復号を適用するかどうかを判断することもできる。また、テーブルを利用して固定的なコンテキストを使用する場合、エントロピ復号部は、該当シンタクス要素に対してテーブル上で割り当てられるインデクス、オフセットなどに基づいてバイパス復号を適用するかどうかを判断することもできる。
エントロピ復号部は、バイパス復号を適用すると判断した場合、入力されたビンに対するバイパス復号を実行する(S520)。バイパス復号を実行する場合には符号化の場合と同様に、均一な確率分布を利用する。エントロピ復号部は、バイパス復号エンジンの状態に応じて、符号間隔区間(Code Interval Range)codIRangeと、符号間隔オフセット(Code Interval Offset)codIOffsetとを比較し、ビンの値を割り当てることができる。例えば、符号間隔オフセットが符号間隔区間より同じ又は大きい場合、ビンの値として1の値を割り当て、符号間隔オフセットが符号間隔区間より小さい場合、ビンの値として0の値を割り当てることができる。このとき、符号間隔区間と符号間隔オフセットとを直接比較するために、符号間隔区間又は符号間隔オフセットの値を適切に調整することもできる。
S510ステップにおいて、バイパス復号が実行されないと判断した場合、エントロピ復号部は、復号終了条件を満たすかどうかを判断することができる(S530)。例えば、コンテキストインデクス(ctxIdx)の値が0であり、コンテキストインデクステーブル(ctxIdxTable)の値が0の場合、エントロピ復号付加復号過程を終了(terminate)してもよい。また、終了条件を満たすかどうかをインデクスの値に応じて決定せずに、フラッグなどのようなシンタクス情報で符号化装置から送信することもできる。このとき、シンタクス情報が指示する終了条件と、インデクス値によって決定される終了条件とが同じであってもよい。
エントロピ復号部は、終了条件を満たす場合、前述したように、復号過程を終了する(S540)。エントロピ復号部は、終了前に所定の設定値をビンの値として割り当てることもできる。このとき、エントロピ復号部は、バイパス復号によってビンの値を割り当てることもできる。
エントロピ復号部は、終了条件を満たさない場合、復号を実行することができる(S550)。エントロピ復号部は、復号対象ビンを指示するビンインデクスbinIdx、復号対象ビンに適用されるコンテキストを指示するコンテキストインデクスctxIdxに基づいて復号対象ビンを復号することができる。
以下、コンテキストを利用して復号を実行する方法に対して具体的に説明する。
前述したように、高い符号化効率が要求される映像情報を処理する場合にはエントロピ符号化(エントロピ符号化/エントロピ復号)を利用することができる。エントロピ符号化には指数ゴロムのような基本的な符号化方法のほかに、可変長符号化(VLC)又は前述したコンテキストベースの適応算術符号化(CABAC)などを利用することができる。
CABACにおいて、コンテキストベースとは、周囲の状況を考慮して、より効率が良い符号化方式を適応的に選択して適用することを意味する。これと関連して、別個のコンテキストを利用するとは、独立のコンテキスト更新を介して、別個の確率モデルを適用して符号化することを意味する。
CABACにおいて、コンテキストを符号化に活用する方法によって下記のような方式を優先的に考慮することができる。
<コンテキスト活用方法>
(a)コンテキストを周囲状況によって算出して適応的に符号化に活用する方法。
(b)固定されたコンテキストを使用するように、事前に特定コンテキストテーブルを定義し、定義したテーブルで指定されたコンテキストを使用する方法。
(c)コンテキストを参照せずに、二進符号をそのまま符号化(符号化/復号)するバイパス符号化(符号化/復号)方法。
(d)(a)~(c)の方法を選択的に組合せて使用する方法。
コンテキスト活用方法のうち、(a)の方法は、符号化前に周囲状況を考慮してコンテキストを計算する過程が伴うため、最も高い複雑度を有する。符号化装置は、周辺状況、例えば、前後のビンに適用されたコンテキスト又は現ブロックより先に符号化されたブロック(例えば、左ブロックや上ブロック)のコンテキストなどを考慮して符号化するシンタクス要素の二進符号を構成する各ビン別にコンテキストを算出することができる。符号化装置は、算出されたコンテキストに対する情報を復号装置に送信することができる。復号装置は、受信したコンテキスト情報に基づいて該当ビンに対する復号を実行することができる。
または、符号化装置が各ビンに対するコンテキストを決定して送信せずに、符号化装置及び復号装置が同様の方法によって周辺状況を考慮してコンテキストを算出するようにすることもできる。
コンテキスト活用方法のうち、(b)の方法は、(a)の方法のように毎回コンテキストを計算せずに、特定シンタクス要素の二進符号を構成する各ビンに対しコンテキストインデクスを割り当てるコンテキストテーブルを予め設定し、コンテキストテーブルで割り当てられるコンテキストインデクスが指示するコンテキストを該当ビンの復号に利用する方法である。(b)の方法を使用する場合には、各ビンに対して固定されたコンテキストを用いてもよい。
表4は、(b)の方法を適用する場合、ビンインデクス及びコンテキストインデクスを指定する一例を概略的に示す。
表4は、特定シンタクス要素を仮定するとき、該当シンタクス要素に適用されるコンテキストテーブルの一例を示す。
表4の例において、ビンインデクスbinIdxは、シンタクス要素の二進符号を構成するビンのうち特定ビンを指示する。例えば、binIdxの値が0の場合は、シンタクス要素の二進符号を構成するビンのうち0番目のビンを指示し、binIdxの値が4の場合は、シンタクス要素の二進符号を構成するビンのうち3番目のビンを指示する。シンタクス要素は、merge_idx、intra_chroma_pred_mode、inter_pred_flagなどのように、符号化装置から復号装置に送信されるシンタクス要素である。
表4の例を参照すると、シンタクス要素の二進符号を構成するビン(0~4)に対し、コンテキストインデクスが各々割り当てられる。コンテキストインデクス(Idx0~Idx4)は、互いに異なる値を有することができる。コンテキストインデクスは、該当ビンに対して適用されるコンテキストを指示することができる。コンテキストインデクスが指示するコンテキストは、別個のテーブルを介して割り当てることができる。例えば、シンタクス要素別に構成された別個のコンテキストテーブル上で、コンテキストインデクスが指示する特定コンテキストが割り当てられるようにすることもできる。
シンタクス要素の各ビンは、割り当てられたコンテキストインデクスによって指示されるコンテキストに基づいて復号することができる。
復号装置は、シンタクス要素をエントロピ復号する場合、特定ビンに対しては該当ビンに割り当てられたコンテキストインデクスが指示するコンテキストを利用することができる。例えば、ビンインデクス値が0の場合、idx0が指示するコンテキストを利用して0番目のビンを復号することができる。
表4の例において、ビンインデクスの最大値(binIdxMax)が4である場合を例示しているが、ビンインデクスの最大値は4より大きくてもよいし、4より小さくてもよい。最大値より大きいビンインデクスに対しては最大のビンインデクス(binIdxMax)に割り当てられたコンテキストインデクスと同じコンテキストインデクスを利用することができる。
コンテキスト活用方法のうち、(c)の方法は、(a)又は(b)より複雑度が高くない。(c)の方法で利用されるバイパス符号化は、前述したように、均一な確率分布を利用し、迅速な符号化のために適用される。バイパス符号化に対する内容は前述のとおりである。
特定の二進符号をCABAC符号化するとき、二進符号を構成する各桁の数0又は1に対してコンテキストが適用される。このとき、二進符号を構成する各桁の数0又は1を前述したようにビン(bin)という。例えば、二進符号が110の場合、0番目のビンは1となり、1番目のビンは1となり、2番目のビンは0となる。
CABAC符号化ではシンタクス要素の二進符号を構成するビンに対して多様にコンテキストを決定することができる。
<二進符号を構成するビンに対するコンテキスト決定方法>
(A)シンタクス要素の二進符号を構成する各々のビンに対して独立のコンテキストを適用することができる。
(B)シンタクス要素の二進符号を構成するビンに同じコンテキストを共通に適用することができる。
(C)シンタクス要素の二進符号を構成するビンをバイパスモードで符号化(バイパス符号化)することができる。
(D)(A)~(C)を組合せてシンタクス要素の二進符号を構成するビンに対するコンテキストを決定することができる。
方法(A)では、シンタクス要素の二進符号を構成する各ビンに対して独立のコンテキストが適用される。したがって、各ビンに対するコンテキストは、独立に更新することができる。方法(B)では、二進符号を構成する各ビンに同じコンテキストが適用され、更新も同様に実行することができる。方法(C)では、二進符号を構成するビンのすべてをバイパスモードで符号化するため、迅速な復号を行うことができる。
また、方法(D)によって、方法(A)~方法(C)を組み合わせて適用することもできる。例えば、シンタクス要素の二進符号を構成するビンのうち一部のビンに対しては各々独立のコンテキストを適用し、一部のビンに対しては同じコンテキストを適用することができる。また、シンタクス要素の二進符号を構成するビンのうち一部のビンに対しては各々独立のコンテキストを適用し、一部のビンに対してはバイパスモードを適用することもできる。また、シンタクス要素の二進符号を構成するビンのうち一部のビンに対しては同じコンテキストを適用し、一部のビンに対してはバイパスモードを適用することもできる。また、シンタクス要素の二進符号を構成するビンのうち一部のビンに対しては各々独立のコンテキストを適用し、一部のビンに対しては同じコンテキストを適用し、一部のビンに対してはバイパスモードを適用することもできる。
一方、シンタクス要素の二進符号を構成するビンに対するコンテキスト決定方法(A)~(D)をコンテキスト活用方法(a)~(d)と共に適用することもできる。
例えば、方法(A)に基づいて特定シンタクス(シンタクス要素)に対し、該当シンタクス(シンタクス要素)の二進符号を構成するすべてのビンに独立のコンテキストを適用し、適用される独立のコンテキストは、適用するビンに対して周辺環境を考慮して算出されるようにしてもよい。
また、特定シンタクス(シンタクス要素)に対し、該当シンタクス(シンタクス要素)の二進符号を構成するすべてのビンに独立のコンテキストを適用し、適用される独立のコンテキストは、予め設定されたコンテキストテーブルを介して指示されるようにしてもよい。
表5は、シンタクス要素の二進符号を構成する各ビンに対して独立のコンテキストを割り当てる場合、予め定められたコンテキストテーブルを介してコンテキストを割り当てる例を示す。
表5は、特定シンタクス要素Aを仮定するとき、シンタクス要素Aに適用されるコンテキストテーブルの一例を示す。
表5において、各ビン別コンテキストインデクス(Idx0~Idx4)は、該当ビンに対して適用するコンテキストを互いに独立に指示し、各コンテキストインデクスによって指示されるコンテキストは、互いに独立に更新することができる。
表5の例において、ビンインデクスの最大値(binIdxMax)が4である場合を例示しているが、ビンインデクスの最大値は4より大きくてもよいし、4より小さくてもよい。最大値より大きいビンインデクスに対しては最大のビンインデクス(binIdxMax)に割り当てられたコンテキストインデクスと同じコンテキストインデクスを利用することができる。
一方、特定シンタクス(シンタクス要素)に対し、該当シンタクス(シンタクス要素)の二進符号を構成するビンのうち一部のビンに独立のコンテキストを適用し、一部のビンに対してはバイパスモードを適用することができる。
このとき、ビンに適用するコンテキストは、該当ビンにコンテキストを適用しなければならないとき、周辺環境を考慮して算出することができる。
予め構成されたコンテキストテーブルで各々のビン別に独立のコンテキスト又はバイパスモードを設定し、ビン別コンテキストインデクスとしていずれのコンテキスト又はバイパスモードを適用するかを指示することもできる。
表6は、特定シンタクス(シンタクス要素)の二進符号を構成するビンのうち一部のビンに対しては独立のコンテキストを適用し、一部のビンに対してはバイパスモードを適用する場合に利用することができるコンテキストテーブルの一例を示す。
表6は、特定シンタクス要素Bを仮定するとき、シンタクス要素Bに適用されるコンテキストテーブルの一例を示す。
表6の例では、シンタクス要素Bの二進符号を構成するビンのうち、0番目、2番目、4番目のビンに独立のコンテキストが適用され、1番目、3番目のビンに対してはバイパスモードが適用される。
表6の例において、ビンインデクスの最大値(binIdxMax)が4である場合を例示しているが、ビンインデクスの最大値は4より大きくてもよいし、4より小さくてもよい。最大値より大きいビンインデクスに対しては最大のビンインデクス(binIdxMax)に割り当てられたコンテキストインデクスと同じコンテキストインデクスを利用することができる。
また、方法(A)及び方法(B)に基づいて特定シンタクス(シンタクス要素)に対し、該当シンタクス(シンタクス要素)の二進符号を構成する一部のビンには独立のコンテキストを適用し、他の一部のビンには同じコンテキストを共通に適用し、各々のコンテキストは、適用するビンに対し周辺環境を考慮して算出されるようにしてもよい。
特定シンタクス(シンタクス要素)に対し、該当シンタクス(シンタクス要素)の二進符号を構成する一部のビンには各々独立のコンテキストを適用し、他の一部のビンには同じコンテキストを共通に適用し、各々のコンテキストは、予め設定されたコンテキストテーブルを介して指示されるようにしてもよい。
表7は、シンタクス要素の二進符号を構成する各ビンに対し、一部のビンに対しては各々独立のコンテキストを適用し、一部のビンに対しては同じコンテキストを共通に適用する場合、コンテキストテーブルを介してコンテキストを割り当てる一例を示す。
表7は、特定シンタクス要素Cを仮定するとき、シンタクス要素Cに適用されるコンテキストテーブルの一例を示す。
表7において、1番目のビン及び2番目のビンに対してはコンテキストインデクスIdx1が指示する同じコンテキストが適用される。0番目のビン、3番目のビン、4番目のビンには各々コンテキストインデクスIdx0、Idx2、Idx3が指示するコンテキストが適用することができる。コンテキストインデクスIdx0~Idx3は、互いに異なる値を有することもでき、各コンテキストインデクスによって指示されるコンテキストは、互いに独立に更新することができる。
表7の例において、ビンインデクスの最大値(binIdxMax)が4である場合を例示しているが、ビンインデクスの最大値は4より大きくてもよいし、4より小さくてもよい。最大値より大きいビンインデクスに対しては最大のビンインデクス(binIdxMax)に割り当てられたコンテキストインデクスと同じコンテキストインデクスを利用することができる。
一方、特定シンタクス(シンタクス要素)に対し、該当シンタクス(シンタクス要素)の二進符号を構成する一部のビンには各々独立のコンテキストを適用し、一部のビンには同じコンテキストを共通に適用し、一部のビンに対してはバイパスモードを適用することもできる。
このとき、コンテキストは、ビンにコンテキストを適用しなければならないとき、周辺環境を考慮して算出することができる。また、予め構成されたコンテキストテーブルで各々のビン別にコンテキスト又はバイパスモードを設定し、ビン別コンテキストインデクスとしていずれのコンテキスト又はバイパスモードを適用するかを指示することもできる。
表8は、特定シンタクス(シンタクス要素)の二進符号を構成するビンのうち一部のビンには各々独立のコンテキストを適用し、一部のビンには同じコンテキストを共通に適用し、一部のビンに対してはバイパスモードを適用する場合に利用することができるコンテキストテーブルの一例を示す。
表8は、特定シンタクス要素Dを仮定するとき、シンタクス要素Dに適用されるコンテキストテーブルの一例を示す。
表8の例では、シンタクス要素Dの二進符号を構成するビンのうち、0番目のビンにはコンテキストインデクスIdx0が指示するコンテキストが適用され、1番目のビンにはバイパスモードが適用され、2番目のビンにはコンテキストインデクスIdx1が指示するコンテキストが適用され、3番目のビン及び4番目のビンにはコンテキストインデクスIdx2が指示するコンテキストが適用される。
表8の例において、ビンインデクスの最大値(binIdxMax)が4である場合を例示しているが、ビンインデクスの最大値は4より大きくてもよいし、4より小さくてもよい。最大値より大きいビンインデクスに対しては最大のビンインデクス(binIdxMax)に割り当てられたコンテキストインデクスと同じコンテキストインデクスを利用することができる。
一方、方法(B)に基づいて特定シンタクス(シンタクス要素)の二進符号を構成する各ビンに同じコンテキストを共通に適用することもできる。このとき、共通のコンテキストは、ビンに適用するとき、周辺環境を考慮して算出することができる。また、共通のコンテキストは、予め構成されたコンテキストテーブルを介して割り当てることもできる。
表9は、特定シンタクス(シンタクス要素)の二進符号を構成するビンに同じコンテキストを共通に適用する場合に利用することができるコンテキストテーブルの一例を示す。
表9は、特定シンタクス要素Eを仮定するとき、シンタクス要素Eに適用されるコンテキストテーブルの一例を示す。
表9の例では、シンタクス要素Eの二進符号を構成するビンにコンテキストインデクスIdx0が指示するコンテキストが共通に適用される。
表9の例において、ビンインデクスの最大値(binIdxMax)が4である場合を例示しているが、ビンインデクスの最大値は4より大きくてもよいし、4より小さくてもよい。最大値より大きいビンインデクスに対しては最大のビンインデクス(binIdxMax)に割り当てられたコンテキストインデクスと同じコンテキストインデクスを利用することができる。
また、特定シンタクス(シンタクス要素)に対し、該当シンタクス(シンタクス要素)の二進符号を構成する一部のビンには同じコンテキストを共通に適用し、一部のビンに対してはバイパスモードを適用することもできる。
このとき、コンテキストはビンにコンテキストを適用しなければならないとき、周辺環境を考慮して算出することができる。また、予め構成されたコンテキストテーブルを介して、一部のビンに共通に適用されるコンテキスト又はバイパスモードを設定し、コンテキストインデクスとしてコンテキスト又はバイパスモードを指示することもできる。
表10は、特定シンタクス(シンタクス要素)の二進符号を構成するビンのうち一部のビンには同じコンテキストを共通に適用し、一部のビンに対してはバイパスモードを適用する場合に利用することができるコンテキストテーブルの一例を示す。
表10は、特定シンタクス要素Fを仮定するとき、シンタクス要素Fに適用されるコンテキストテーブルの一例を示す。
表10の例では、シンタクス要素Fの二進符号を構成するビンのうち、2番目のビンにはバイパスモードを適用し、0番目のビン、1番目のビン、3番目のビン及び4番目のビンにはコンテキストインデクスIdx0が指示するコンテキストを適用する。
表10の例において、ビンインデクスの最大値(binIdxMax)が4である場合を例示しているが、ビンインデクスの最大値は4より大きくてもよいし、4より小さくてもよい。最大値より大きいビンインデクスに対しては最大のビンインデクス(binIdxMax)に割り当てられたコンテキストインデクスと同じコンテキストインデクスを利用することができる。
方法(C)に基づいて、特定シンタクス(シンタクス要素)に対し、該当シンタクス(シンタクス要素)の二進符号を構成するすべてのビンに対してバイパスモードを適用することもできる。この場合にも、バイパスモードを適用することを該当シンタクス(シンタクス要素)に対して予め構成されたコンテキストテーブルを介して指示することができる。このとき、コンテキストテーブルは、すべてのビンインデクスに対してバイパスモードが割り当てられる方式に構成することができる。
一方、特定シンタクス(シンタクス要素)の二進符号を構成するビンに対し、同じビンに互いに異なるコンテキストを適用することもできる。例えば、コンテキストテーブルで、同じビンインデクスに互いに異なる複数のコンテキストインデクスが割り当てられるようにすることもできる。
コンテキストインデクスは、該当シンタクス(シンタクス要素)が適用される環境(状態又は条件)に応じて変えてもよい。例えば、同じビンに対し、シンタクス(シンタクス要素)が適用されるブロックの種類、ピクチャ(スライス、フレーム)の種類、予測モード、ブロックの大きさ、ブロックの深さなどのような状態又は条件に応じて二進符号内の同じ位置のビンに対して互いに異なるコンテキストが適用することができる。このとき、ある状態は、異なる等価の状態によって特定することもできる。例えば、ブロックの大きさをブロックの深さによって特定してもよいし、ブロックの深さをブロックの大きさによって特定してもよい。したがって、二つの条件が同じ環境を特定する状態又は条件になることもある。
ピクチャ(スライス、フレーム)タイプによって共通のコンテキストを適用したり、互いに異なるコンテキストを適用したりする場合にはピクチャ(スライス、フレーム)がIピクチャ(スライス、フレーム)か、Pピクチャ(スライス、フレーム)か、Bピクチャ(スライス、フレーム)かに応じて、同じビンインデクスに対して異なるコンテキストインデクスが割り当てられるようにすることができる。
以下、同じビンインデクスに異なるコンテキスト(コンテキストインデクス)を適用することができる場合に対して具体的に説明する。
シンタクス要素は、前述したように、所定のビンで構成される二進符号(符号語)値を有することができる。例えば、クロマ成分に対するイントラ予測の場合、LMモードが適用されるかどうかに応じて、表2及び表3で説明したように、5個又は6個の予測モードが許容される。したがって、クロマ成分に対するイントラ予測モードを指示するシンタクス要素intra_chroma_pred_modeは、5個乃至6個の異なる二進符号(符号語)値を有することができる。
表11は、LMモードを使用する場合、クロマ成分の予測に使われることができるイントラ予測モードと、これを指示するシンタクス要素intra_chroma_pred_modeの二進符号(符号語)と、を示す。
また、表12は、LMモードを使用しない場合、クロマ成分の予測に用いることができるイントラ予測モードと、これを指示するシンタクス要素intra_chroma_pred_modeの二進符号(符号語)と、を示す。
表11又は表12のように、所定のシンタクス要素に対する二進符号(符号語)を構成するビンに対し、前述したような方式によってコンテキストを割り当てることができる。
符号語を構成するビンに対し、同じビンにも状態又は条件に応じて互いに異なるコンテキストを適用するために、コンテキストテーブルを利用することができる。この場合、特定ビンに適用されるコンテキストは、コンテキストテーブル上で各々のビンインデクスに割り当てられるインデクス値に条件別に付加されるオフセット値の和によって指示することができる。したがって、この場合、コンテキストを指示するコンテキスト指示子は、オフセット値と、各ビンインデクスによって指示されるインデクス値との和であるということができる。説明の便宜のために、ビンによって指示されるインデクス値を、ビンによるコンテキストインデクス(context index by bin)といい、該当ビンに適用されるコンテキストを指示するインデクスを、ビンに対するコンテキストインデクス(context index for bin:ctxIdx)という。
表13は、同じビンに対して状態情報又は条件を反映して異なるコンテキストを適用する場合に利用することができるコンテキストテーブルの一例を示す。
表13において、0~4はビンインデクス(binIdx)値を示す。また、オフセット値A1、A2、A3は、後述する例のように、異なる値であってもよい。ビンによるコンテキストインデクス、すなわち、ビンインデクス別に割り当てられたインデクス(ビンによるコンテキストインデクス)B0、B1、B2、B3、B4は、全部又は一部が異なる値を有することもできる。
表13の例ではビンインデクスの最大値(binIdxMax)が4である場合を例示しているが、ビンインデクスの最大値は4より大きくてもよいし、4より小さくてもよい。最大値より大きいビンインデクスに対しては最大のビンインデクス(binIdxMax)に割り当てられたコンテキストインデクスと同じコンテキストインデクスを利用することができる。
また、前述したように、オフセット値は、所定の状態又は条件に応じて設定することができる。例えば、ピクチャ(スライス、フレーム)タイプに応じてオフセット値が設定される場合、A1はIピクチャ(スライス、フレーム)に対するオフセット、A2はPピクチャ(スライス、フレーム)に対するオフセット、A3はBピクチャ(スライス、フレーム)に対するオフセットである。
また、オフセット値は、ピクチャ(スライス、フレーム)タイプのような状態情報又は条件から直接決定することもできるし、ピクチャ(スライス、フレーム)タイプのような状態情報又は条件によって決定される所定のタイプ値のような媒介値を介して決定することもできる。
オフセット値を利用することによって、状態情報又は条件を反映して各々のビンに対して互いに異なるコンテキストが割り当てられるようにしてもよい。表13が所定のシンタクス(シンタクス要素)に対するものであるとき、A1、A2、A3の値が互いに異なり、B0、B1、B2、B3、B4の値が互いに異なる場合、所定のシンタクス(シンタクス要素)の符号語(二進符号)を構成する各々のビンに対して互いに異なるコンテキストを割り当てることができる。
表14は、オフセット値がピクチャ(スライス、フレーム)タイプに応じて異なるように設定して、各々のビンに異なるコンテキストを割り当てる場合に利用することができるコンテキストテーブルの一例を示す。
表14では、表13のオフセット値と、ビンによるコンテキストインデクス値とを具体的に設定する例を示す。表14において、オフセット値と、ビンによるコンテキストインデクス値とは、適したコンテキストを指示するために表14に例示された値と異なる値に設定することができる。
状態情報又は条件に応じて異なるオフセットを適用することによって、条件別に異なるコンテキストが割り当てられるようにし、シンタクス(シンタクス要素)の符号語を構成するビンのうち一部のビンには同じコンテキストを共通に適用することもできる。例えば、表13が所定のシンタクス(シンタクス要素)に対するものであるとき、B0、B1、B2、B3、B4の値のうち一部が同じ値を有するように設定することができる。
表15は、オフセット値がピクチャ(スライス、フレーム)タイプに応じて異なるように設定し、シンタクス(シンタクス要素)の符号語を構成する一部のビンに対して同じコンテキストを共通に適用する場合に利用することができるコンテキストテーブルの一例を示す。
表15は、表13のオフセット値と、ビンによるコンテキストインデクス値とを具体的に設定する例を示し、表15において、オフセット値と、ビンによるコンテキストインデクス値とは、適したコンテキストを指示するために表15に例示された値と異なる値に設定することができる。
状態情報又は条件に応じて異なるオフセットを適用することによって、条件別に異なるコンテキストが割り当てられるようにし、シンタクス(シンタクス要素)の符号語を構成するビンのうち一部のビンには独立のコンテキストを適用し、一部のビンには同じコンテキストを共通に適用し、一部のビンにはバイパスモードを適用するようにすることもできる。例えば、表13が所定のシンタクス(シンタクス要素)に対するものであるとするとき、B0、B1、B2、B3、B4の値のうち一部は同じ値を有するようにし、B0、B1、B2、B3、B4の値のうち一部は具体的なインデクス値の代わりにバイパスモードを指示するように設定することができる。
表16は、スライスタイプに応じて異なるコンテキストが定義されるようにオフセット値を設定し、一部のビンには独立のコンテキストを適用し、一部のビンに対しては同じコンテキストを共通に適用し、一部のビンにはバイパスモードを適用する場合に利用することができるコンテキストテーブルの一例を示す。
表16が所定のシンタクス(シンタクス要素)に適用されると仮定するとき、該当シンタクス(シンタクス要素)の符号語を構成する0番目のビンに対してはビンによるコンテキストインデクスとして0が割り当てられ、1番目~3番目のビンに対してはビンによるコンテキストインデクスとして1が割り当てられる。4番目のビンに対してはバイパスモードが適用される。
表16は、表13のオフセット値と、ビンによるコンテキストインデクス値とを具体的に設定する例を示し、表16において、オフセット値と、ビンによるコンテキストインデクス値とは、適したコンテキストを指示するために表16に例示された値と異なる値に設定することができる。
状態情報又は条件に応じて異なるオフセットを適用することによって、条件別に異なるコンテキストが割り当てられるようにし、シンタクス(シンタクス要素)の符号語を構成するビンのうち一部のビンにはコンテキストを適用し、残りのビンにはバイパスモードを適用するようにすることもできる。例えば、表13が所定のシンタクス(シンタクス要素)に対するものであるとき、B0、B1、B2、B3、B4の値のうち一部にはインデクス値を設定し、B0、B1、B2、B3、B4の値のうち残りに対しては具体的なインデクス値の代わりにバイパスモードを指示するように設定することができる。
表17は、スライスタイプに応じて異なるコンテキストが定義されるようにオフセット値を設定し、一部のビンにはコンテキストを適用し、残りのビンに対してはバイパスモードを適用する場合に利用することができるコンテキストテーブルの一例を示す。
表17が所定のシンタクス(シンタクス要素)に適用されると仮定するとき、該当シンタクス(シンタクス要素)の符号語を構成する0番目のビンに対してはビンによるコンテキストインデクスとして0が割り当てられ、1番目~4番目のビンに対してはバイパスモードが適用される。
表17は、表13のオフセット値と、ビンによるコンテキストインデクス値とを具体的に設定する例を示し、表17において、オフセット値と、ビンによるコンテキストインデクス値とは、適したコンテキストを指示するために表17に例示された値と異なる値に設定することができる。
状態情報又は条件に応じて異なるオフセットを適用することによって、条件別に異なるコンテキストが割り当てられるようにし、シンタクス(シンタクス要素)の符号語を構成するビンのうち一部のビンには互いに独立のコンテキストを適用し、残りのビンにはバイパスモードを適用するようにすることもできる。例えば、表13が所定のシンタクス(シンタクス要素)に対するものであるとき、B0、B1、B2、B3、B4の値のうち一部には互いに異なるインデクス値を設定し、B0、B1、B2、B3、B4の値のうち残りに対しては具体的なインデクス値の代わりにバイパスモードを指示するように設定することができる。
表18は、スライスタイプに応じて異なるコンテキストが定義されるようにオフセット値を設定し、一部のビンには互いに独立のコンテキストを適用し、残りのビンに対してはバイパスモードを適用する場合に利用することができるコンテキストテーブルの一例を示す。
表18が所定のシンタクス(シンタクス要素)に適用されると仮定するとき、該当シンタクス(シンタクス要素)の符号語を構成する0番目のビンに対してはビンによるコンテキストインデクスとして0が割り当てられ、1番目のビンに対してはビンによるコンテキストインデクスとして1が割り当てられ、2番目~4番目のビンに対してはバイパスモードが適用される。
表18は、表13のオフセット値と、ビンによるコンテキストインデクス値とを具体的に設定する例を示し、表18において、オフセット値と、ビンによるコンテキストインデクス値とは、適したコンテキストを指示するために表18に例示された値と異なる値に設定することができる。
状態情報又は条件に応じて異なるオフセットを適用することによって、条件別に異なるコンテキストが割り当てられるようにし、シンタクス(シンタクス要素)の符号語を構成するビンのうち一部のビンには同じコンテキストを共通に適用し、残りのビンにはバイパスモードを適用するようにすることもできる。例えば、表13が所定のシンタクス(シンタクス要素)に対するものであるとするとき、B0、B1、B2、B3、B4の値のうち一部には同じインデクス値を設定し、B0、B1、B2、B3、B4の値のうち残りに対しては具体的なインデクス値の代わりにバイパスモードを指示するように設定することができる。
表19は、スライスタイプに応じて異なるコンテキストが定義されるようにオフセット値を設定し、一部のビンには同じコンテキストを共通に適用し、残りのビンに対してはバイパスモードを適用する場合に利用することができるコンテキストテーブルの一例を示す。
表19が所定のシンタクス(シンタクス要素)に適用されると仮定するとき、該当シンタクス(シンタクス要素)の符号語を構成する0番目のビン及び1番目のビンに対してはビンによるコンテキストインデクスとして0が割り当てられ、2番目~4番目のビンに対してはバイパスモードが適用される。
表19は、表13のオフセット値と、ビンによるコンテキストインデクス値とを具体的に設定する例を示し、表19において、オフセット値と、ビンによるコンテキストインデクス値とは、適したコンテキストを指示するために表19に例示された値と異なる値に設定することができる。
状態情報又は条件に応じて異なるオフセットを適用することによって、条件別に異なるコンテキストが割り当てられるようにし、シンタクス(シンタクス要素)の符号語を構成するビンのうち一つのビンにはバイパスモードを適用し、残りのビンには同じコンテキストを共通に適用するようにすることもできる。例えば、表13が所定のシンタクス(シンタクス要素)に対するものであるとするとき、B0、B1、B2、B3、B4の値のうち一つのビンに対しては具体的なインデクス値の代わりにバイパスモードを指示し、B0、B1、B2、B3、B4の値のうち残りに対しては同じインデクス値を設定することができる。
表20は、スライスタイプに応じて異なるコンテキストが定義されるようにオフセット値を設定し、一つのビンに対してはバイパスモードを適用し、残りのビンに対しては同じコンテキストを共通に適用する場合に利用することができるコンテキストテーブルの一例を示す。
表20が所定のシンタクス(シンタクス要素)に適用されると仮定するとき、該当シンタクス(シンタクス要素)の符号語を構成する0番目のビン~3番目のビンに対してはビンによるコンテキストインデクスとして0が割り当てられ、4番目のビンに対してはバイパスモードが適用される。
表20は、表13のオフセット値と、ビンによるコンテキストインデクス値とを具体的に設定する例を示し、表20において、オフセット値と、ビンによるコンテキストインデクス値とは、適したコンテキストを指示するために表20に例示された値と異なる値に設定することができる。
一方、表13~表20は、シンタクスに対する符号語が5個のビンで構成される場合を例として説明しているが、本発明はこれに限定されるものではない。表13~表20が適用されるシンタクス(シンタクス要素)の符号語が5個未満のビン、例えば、n(n<5)個のビンで構成される場合、n-1より大きく、4と同じ又は小さいビンインデクスにはビンによるコンテキストインデクスが割り当てられないか、又はna(not available)で割り当てられる。表14が適用されるシンタクス(シンタクス要素)の符号語が5個以上のビンで構成される場合、5番目以後のビンに対しては5番目のビンによるコンテキストインデクスと同じ値を該当ビンによるコンテキストインデクスとして割り当てることができる。
また、表13~表20では同じビンに対し、ビンによるコンテキストインデクスが同じである場合を説明したが、本発明はこれに限定されず、ビンによるコンテキストインデクスの値は、オフセットに応じて異なる値に設定することができる。例えば、表13でA1~A3に対し、Bi(i=0、1、2、3、4)値を異なる値に設定することもできる。具体的には、A1に対するB0の値、A2に対するB0の値、A3に対するB0の値のうち少なくとも一つを他のB0値と異なる値に設定することもできる。
前述した表13~表20の例は、符号化過程で送信されるシンタクス(シンタクス要素)に適用することができる。例えば、前述したシンタクス要素intra_chroma_pred_modeだけでなく、多様なシンタクス要素にも前述した内容と同じに適用することができる。
表21は、多様なシンタクス要素に前述した内容を適用した一例を示す。
表21の例によると、ビンインデクス(binIdx)別にビンによるコンテキストインデクスが指示される。オフセットctxIdxOffsetの値とビンによるコンテキストインデクス値との和でビンに対するコンテキストインデクスが決定される。
所定のシンタクス要素の特定ビンに対して決定されたコンテキストインデクスは、該当シンタクス要素に対するコンテキストインデクステーブルctxIdxTableが指示するテーブルで特定ビンに適用するコンテキストを指示することができる。
一方、ビンによるコンテキストインデクスの値は、ブロックの情報(例えば、ブロックの状態又はブロックの条件に対する情報)に基づいて決定することもできる。このとき、ブロックの情報は、復号対象ブロックの情報だけでなく、復号対象ブロックの周辺ブロックに対する情報を含む。また、利用されるブロックの情報は、符号化ブロックの情報であってもよいし、予測ブロックの情報であってもよいし、変換ユニットの情報であってもよい。例えば、cbf_luma及びcbf_cb、cbf_crのようなシンタクス要素のコンテキストを決定するとき、ブロックの情報を利用することができる。シンタクス要素cbf_luma及びcbf_cb、cbf_crは、四分木構造で、現ブロックで更に分割されるブロックにルマ残差信号があるか、クロマ残差信号があるかを指示する情報を示すシンタクス要素である。
具体的には、cbf_luma及びcbf_cb、cbf_crの各々を符号化(符号化/復号)するとき、周辺ブロックのcbf(CodedBlockFlag)情報だけでなく、周辺パーティション(ブロック)の符号化ユニットの深さ及び/又は変換ユニットの深さを考慮してcbf_luma及びcbf_cb、cbf_crに対するコンテキストを定めることができる。例えば、符号化ユニットの深さ及び変換ユニットの深さを利用して現変換ユニットのサイズを求めることができ、このとき、周辺パーティションの変換ユニットサイズを考慮してコンテキストを区分又は指定することができる。
また、周辺パーティションの変換ユニットサイズ及び該当パーティションのcbfを利用してコンテキストを区分又は指定することもできる。例えば、cbf_lumaのコンテキストを区分したり指定したりする場合、(1)現ブロックの周辺、例えば、現ブロックの左及び上の二方向にあるブロックに対するcbf_lumaの値が全部0であり、変換ユニットのサイズが現変換ユニットのサイズより大きい又は同じ場合、(2)現ブロックの周辺、例えば、現ブロックの左及び上の二方向のブロックのうちいずれの一方向のブロックに対するcbf_lumaの値が0であり、変換ユニットのサイズが現変換ユニットのサイズより大きい又は同じ場合、(3)現ブロックの周辺、例えば、現ブロックの左及び上の二方向にあるブロックに対するcbf_lumaの値が全部1であり、又は変換ユニットのサイズが現変換ユニットのサイズより小さい場合、に分けてcbf_lumaに対するコンテキストを適用することができる。
前述したcbf_lumaに対する説明は、cbf_cb及びcbf_crにも同様に適用することができる。例えば、cbf_crに対し、(1)現ブロックの周辺、例えば、現ブロックの左及び上の二方向にあるブロックに対するcbf_crの値が全部0であり、変換ユニットのサイズが現変換ユニットのサイズより大きい又は同じ場合、(2)現ブロックの周辺、例えば、現ブロックの左及び上の二方向のブロックのうちいずれの一方向のブロックに対するcbf_crの値が0であり、変換ユニットのサイズが現変換ユニットのサイズより大きい又は同じ場合、(3)現ブロックの周辺、例えば、現ブロックの左及び上の二方向にあるブロックに対するcbf_crの値が全部1であり、又は変換ユニットのサイズが現変換ユニットのサイズより小さい場合、に分けてcbf_crに対するコンテキストを適用することができる。
また、cbf_cbに対しても、1)現ブロックの周辺、例えば、現ブロックの左及び上の二方向にあるブロックに対するcbf_cbの値が全部0であり、変換ユニットのサイズが現変換ユニットのサイズより大きい又は同じ場合、(2)現ブロックの周辺、例えば、現ブロックの左及び上の二方向のブロックのうちいずれの一方向のブロックに対するcbf_cbの値が0であり、変換ユニットのサイズが現変換ユニットのサイズより大きい又は同じ場合、(3)現ブロックの周辺、例えば、現ブロックの左及び上の二方向にあるブロックに対するcbf_cbの値が全部1であり、又は変換ユニットのサイズが現変換ユニットのサイズより小さい場合、に分けてcbf_cbに対するコンテキストを適用することができる。
現変換ユニットのサイズと同じ大きさの周辺パーティションでcbfの比率を考慮してコンテキストを区分又は指定することもできる。例えば、cbf_lumaに対するコンテキストを区分又は指定するとき、(1)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、現変換ユニットのサイズと同じ大きさの周辺パーティションでcbf_lumaの値が0である比率が50%以上である場合、(2)現ブロックの周辺(例えば、左及び上)のうち一方向でだけ、現変換ユニットのサイズと同じ大きさの周辺パーティションでcbf_lumaの値が0である比率が50%以上である場合、(3)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、現変換ユニットのサイズと同じ大きさの周辺パーティションでcbf_lumaの値が0である比率が50%未満である場合、に分けてcbf_lumaに対するコンテキストを区分したり指定したりすることができる。
前述したcbf_lumaに対する説明は、cbf_cb及びcbf_crにも同様に適用することができる。
例えば、cbf_crに対しても、(1)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、現変換ユニットのサイズと同じ大きさの周辺パーティションでcbf_crの値が0である比率が50%以上である場合、(2)現ブロックの周辺(例えば、左及び上)のうち一方向でだけ、現変換ユニットのサイズと同じ大きさの周辺パーティションでcbf_crの値が0である比率が50%以上である場合、(3)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、現変換ユニットのサイズと同じ大きさの周辺パーティションでcbf_crの値が0である比率が50%未満である場合、に分けてcbf_crに対するコンテキストを区分したり指定したりすることができる。
cbf_cbに対しても、(1)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、現変換ユニットのサイズと同じ大きさの周辺パーティションでcbf_cbの値が0である比率が50%以上である場合、(2)現ブロックの周辺(例えば、左及び上)のうち一方向でだけ、現変換ユニットのサイズと同じ大きさの周辺パーティションでcbf_cbの値が0である比率が50%以上である場合、(3)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、現変換ユニットのサイズと同じ大きさの周辺パーティションでcbf_cbの値が0である比率が50%未満である場合、に分けてcbf_cbに対するコンテキストを区分したり指定したりすることができる。
周辺の複数のパーティションでcbfの比率を考慮してコンテキストを区分したり指定したりすることもできる。単に、周辺の複数のパーティションのcbfを考慮してコンテキストを区分したり指定したりすることもできる。例えば、cbf_lumaに対するコンテキストを区分したり指定したりするとき、(1)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、サンプルパーティションのcbf_luma値が全部0の場合、(2)現ブロックの周辺(例えば、左及び上)のうち一方向に対してだけ、サンプルパーティションのcbf_luma値が0の場合、(3)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、サンプルパーティションのcbf_luma値のうち1がある場合、に分けてcbf_lumaに対するコンテキストを区分したり割り当てたりすることができる。
前述したcbf_lumaに対する説明は、cbf_cb及びcbf_crにも同様に適用することができる。
例えば、cbf_crに対しても、(1)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、サンプルパーティションのcbf_cr値が全部0の場合、(2)現ブロックの周辺(例えば、左及び上)のうち一方向に対してだけ、サンプルパーティションのcbf_cr値が0の場合、(3)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、サンプルパーティションのcbf_cr値のうち1がある場合、に分けてcbf_crに対するコンテキストを区分したり割り当てたりすることができる。
cbf_cbの場合にも、(1)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、サンプルパーティションのcbf_cb値が全部0の場合、(2)現ブロックの周辺(例えば、左及び上)のうち一方向に対してだけ、サンプルパーティションのcbf_cb値が0の場合、(3)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、サンプルパーティションのcbf_cb値のうち1がある場合、に分けてcbf_cbに対するコンテキストを区分したり割り当てたりすることができる。
周辺のパーティションを選択する方法として、可能な最小変換ユニット単位のように定められたユニット単位に選択する方法を利用することができる。このとき、可能な最小変換ユニット単位は、残差四分木(Residual Quadtree,RQT)の最大深さを利用して決定することができる。
周辺のパーティションを選択する他の方法として、可能な最小変換ユニット単位に所定個数を選択する方法を利用することもできる。例えば、周辺のパーティションのうち可能な最小変換ユニット単位に2個のパーティションを選択するようにしてもよい。
一方、cbf_luma、cbf_cr、cbf_cbに対してコンテキストを区分したり指定したりするために適用する前述した方法を、その他のシンタクス要素、例えば、残差信号の存否を指示するno_residual_data_flagにも同様に適用することができる。
例えば、周辺パーティションの変換ユニットサイズ及び該当パーティションのno_residual_data_flagを利用してコンテキストを区分又は指定することもできる。具体的には、no_residual_data_flagのコンテキストを区分したり指定したりする場合、(1)現ブロックの周辺、例えば、現ブロックの左及び上の二方向にあるブロックに対するno_residual_data_flagの値が全部0であり、変換ユニットのサイズが現変換ユニットのサイズより大きい又は同じ場合、(2)現ブロックの周辺、例えば、現ブロックの左及び上の二方向のブロックのうちいずれの一方向のブロックに対するno_residual_data_flagの値が0であり、変換ユニットのサイズが現変換ユニットのサイズより大きい又は同じ場合、(3)現ブロックの周辺、例えば、現ブロックの左及び上の二方向にあるブロックに対するno_residual_data_flagの値が全部1であり、又は変換ユニットのサイズが現変換ユニットのサイズより小さい場合、に分けてno_residual_data_flagに対するコンテキストを適用することができる。
また、現変換ユニットのサイズと同じ大きさの周辺パーティションでno_residual_data_flagの比率を考慮して、コンテキストを区分したり指定したりすることもできる。例えば、no_residual_data_flagに対するコンテキストを区分又は指定するとき、(1)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、現変換ユニットのサイズと同じ大きさの周辺パーティションでno_residual_data_flagの値が0である比率が50%以上である場合、(2)現ブロックの周辺(例えば、左及び上)のうち一方向でだけ、現変換ユニットのサイズと同じ大きさの周辺パーティションでno_residual_data_flagの値が0である比率が50%以上である場合、(3)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、現変換ユニットのサイズと同じ大きさの周辺パーティションでno_residual_data_flagの値が0である比率が50%未満である場合、に分けてno_residual_data_flagに対するコンテキストを区分したり指定したりすることができる。
また、周辺の複数のパーティションでno_residual_data_flagの比率を考慮してコンテキストを区分したり指定したりすることもできる。単に、周辺の複数のパーティションのno_residual_data_flagを考慮してコンテキストを区分したり指定したりすることもできる。例えば、no_residual_data_flagに対するコンテキストを区分したり指定したりするとき、(1)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、サンプルパーティションのno_residual_data_flag値が全部0の場合、(2)現ブロックの周辺(例えば、左及び上)のうち一方向に対してだけ、サンプルパーティションのno_residual_data_flag値が0の場合、(3)現ブロックの周辺(例えば、左及び上)二方向の両方に対し、サンプルパーティションのno_residual_data_flag値のうち1がある場合、に分けてno_residual_data_flagに対するコンテキストを区分したり割り当てたりすることができる。
表22は、ビンによるコンテキストインデクスの値が周辺の情報に基づいて決定される場合に適用することができるコンテキストテーブルの一例を示す。
表22を参照すると、シンタクス要素split_transform_flagの符号語を構成するビンのうち、0番目のビンによるコンテキストインデクスの値は、ブロック情報によって決定することができる。例えば、split_transform_flagの0番目のビンによるコンテキストインデクス値は、符号化ユニットの深さ及び変換ユニットの深さ情報によって決定される。
また、表22の例において、シンタクス要素cbf_luma及びcbf_cb、cbf_crの符号語を構成するビンのうち、0番目のビンによるコンテキストインデクスの値は、周辺ブロック情報、例えば、変換ユニットの深さ情報によって決定される。例えば、シンタクス要素cbf_lumaの場合、0番目のビンに対しては変換ユニットの深さが0であり、又は変換ユニットのサイズが最大サイズである場合、ビンによるコンテキストインデクスとして1の値を割り当てることができる。
前述した例示的なシステムにおいて、方法は、一連のステップ又はフローチャートに基づいて説明されているが、本発明は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと異なる順序に又は同時に発生することができる。また、前述した実施例は、多様な態様の例示を含む。
したがって、本発明は、前述した実施例を同時に適用したり、組合せて適用したりする実施形態を含む。