以下、本発明に係る好適な実施の形態を添付の図面を参照して、詳細に説明する。添付された図面と共に以下に開示される詳細な説明は、本発明の例示的な実施形態を説明しようとするものであり、本発明が実施されることができる唯一の実施形態を示すようにすることではない。以下の詳細な説明は、本発明の完全な理解を提供するために具体的な細部事項を含む。しかし、当業者は、本発明は、このような具体的な詳細がなくても実施できることを知る。
いくつかの場合、本発明の概念が曖昧になることを避けるために、公知の構造及び装置は省略されるか、各構造及び装置の核心機能を中心としたブロック図の形式で示されることができる。
さらに、本発明で用いられる用語は、可能な限り、現在広く用いられる一般的な用語を選択したが、特定の場合には、出願人が任意に選定した用語を用いて説明する。そのような場合には、該当部分の詳細な説明で、その意味を明確に記載するため、本発明の説明で用いられる用語の名称のみで単純に解釈されてはならないものであり、その対応する用語の意味まで把握して解釈されるべきであることを明らかにしておく。
以下の説明で用いられる特定の用語は、本発明の理解を助けるために提供されたものであり、このような特定の用語の使用は、本発明の技術的思想を逸脱しない範囲で他の形態に変更されることができる。例えば、信号、データ、サンプル、ピクチャ、フレーム、ブロックなどの場合、各コーディングの過程で適切に置換されて解釈されることがある。
以下、本明細書で「処理ユニット」は、予測、変換、及び/または量子化などのエンコード/デコードの処理過程が実行される単位を意味する。以下、説明の便宜のために処理ユニットは、「処理ブロック」または「ブロック」と称することもできる。
処理ユニットは、輝度(luma)成分の単位と色差(chroma)成分の単位を含む意味で解釈されることができる。例えば、処理ユニットは、コーディングツリーユニット(CTU:Coding Tree Unit)、コーディングユニット(CU:Coding Unit、符号化)、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)に対応することができる。
また、処理ユニットは、輝度(luma)成分の単位または色差(chroma)成分の単位として解釈されることができる。例えば、処理ユニットは、輝度(luma)成分のコーディングツリーブロック(CTB:Coding Tree Block)、コーディングブロック(CB:Coding Block)、予測ブロック(PU:Prediction Block)または変換ブロック(TB:Transform Block )に該当することができる。または、色差(chroma)成分のコーディングツリーブロック(CTB)、コーディングブロック(CB)、予測ブロック(PU)または変換ブロック(TB)に対応することができる。また、これに限定されるものではなく処理ユニットは、輝度(luma)成分の単位と色差(chroma)成分の単位を含む意味で解釈されることもできる。
また、処理ユニットは、必ず正方形のブロックで限定されるものではなく、3つ以上の頂点を有する多角形の形で構成することもできる。
なお、以下、本明細書においてピクセルまたは画素などをサンプルとして通称する。そして、サンプルを用いることは、ピクセル値または画素値などを用いることを意味することができる。
図1は、本発明が適用される実施形態として、ビデオ/映像信号の符号化が行われるエンコード装置の概略的なブロック図を示す。
図1を参照すると、エンコード装置100は、映像分割部110、減算部115、変換部120、量子化部130、逆量子化部140、逆変換部150、加算部155、フィルタリング部160、メモリ170、インター予測部180、イントラ予測部185及びエントロピーエンコード部190を含みから構成されることができる。インター予測部180及びイントラ予測部185は、予測部で通称されることができる。つまり、予測部はインター予測部180及びイントラ予測部185を含むことができる。変換部120、量子化部130、逆量子化部140、逆変換部150は、レジデュアル(residual)処理部に含まれることができる。レジデュアル処理部は、減算部115をさらに含むこともできる。一実施形態として、前述した映像分割部110、減算部115、変換部120、量子化部130、逆量子化部140、逆変換部150、加算部155 、フィルタリング部160、インター予測部180、イントラ予測部185及びエントロピーエンコード部190は、一つのハードウェアコンポーネント(例えば、エンコーダまたはプロセッサ)によって構成されることができる。また、メモリ170は、DPB(decoded picture buffer)を含むことができ、デジタル貯蔵媒体によって構成されることもできる。
映像分割部110は、エンコード装置100に入力された入力映像(または、ピクチャ、フレーム)を1つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)または最大コーディングユニット(largest coding unit、LCU)からQTBT(Quad-tree binary-tree)構造に基づいて再帰的(recursively)に分割されることができる。例えば、一つのコーディングユニットは、クアッドツリー構造及び/またはバイナリツリー構造に基づいて、サブ(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造が後で適用することができる。またはバイナリツリー構造が先に適用されることもある。これ以上分割されない最終コーディングユニットに基づいて、本発明に係るコーディング手順が実行されることができる。この場合、映像の特性に応じた符号化効率などに基づいて、コーディングユニットがすぐに最終的なコーディングユニットとして用いることができ、または必要に応じてコーディングユニットは、再帰的に(recursively)さらに下位デプスのコーディングユニットに分割され、最適サイズのコーディングユニットが最終コーディングユニットとして用いることができる。ここでコーディング手順とは、後述する予測、変換、及び復元などの手続きを含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに含むことができる。この場合、前記予測ユニット及び前記変換ユニットは、それぞれ前述した最終コーディングユニットから分割またはパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位で有り得、前記変換ユニットは、変換係数を誘導する単位、及び/または変換係数からレジデュアル信号(residual signal)を誘導する単位で有り得る。
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して用いることができる。一般的な場合、MxNブロックはM個の列とN個の行からなるサンプル又は変換係数(transform coefficient)の集合を示すことができる。サンプルは、一般的に、ピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すこともあり、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、一つのピクチャ(または映像)をピクセル(pixel)またはペル(pel)に対応する用語として用いることができる。
エンコード装置100は、入力映像信号(原本(オリジナル)ブロック、オリジナルのサンプルアレイ)でインター予測部180またはイントラ予測部185から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算してレジデュアル信号(residual signal、残りのブロック、残りのサンプルアレイ)を生成することができ、生成されたレジデュアル信号は、変換部120に転送される。この場合、図示のように、エンコーダ100内で入力映像信号(原本ブロック、オリジナルのサンプルアレイ)で予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは減算部115と呼ばれることができる。予測部は処理対象ブロック(以下、現在ブロックと称する)の予測を行い、前記現在ブロックの予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は現在ブロックまたはCU単位でイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができる。予測部は各予測モードの説明で後述するように、予測モード情報など予測に関する様々な情報を生成し、エントロピーエンコード部190に転達することができる。予測に関する情報は、エントロピーエンコード部190でエンコードされてビットストリーム形態で出力することができる。
イントラ予測部185は、現在ピクチャ内のサンプルを参照して、現在ブロックを予測することができる。前記参照されたサンプルは、予測モードに応じて前記現在ブロックの周辺(neighbor)に位置することができ、または離れて位置することもできる。イントラ予測で予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。非方向性モードは、例えば、DCモード及びプラナーモード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度に応じて、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは例示として設定によってそれ以上、またはそれ以下の数の方向性予測モードが用いられることができる。イントラ予測部185は、周辺ブロックに適用される予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部180は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルのアレイ)に基づいて、現在ブロックの予測されたブロックを誘導することができる。このとき、インター予測モードで転送される動き情報の量を減らすために周辺のブロックと現在ブロックの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)の情報をさらに含むことができる。インター予測の場合、周辺ブロックは、現在ピクチャ内に存在する空間的周辺のブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)を含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的周辺ブロックを含む参照ピクチャは同じであることもあり、異なることもある。前記時間的周辺ブロックは、同じ位置参照ブロック(collocated reference block)、同じ位置(CU colCU)などの名前で呼ばれることができ、前記時間的周辺ブロックを含む参照ピクチャは、同じ位置ピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部180は、周辺ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/または参照ピクチャのインデックスを導出するためにどんな候補が用いられるかを指示する情報を生成することができる。様々な予測モードに基づいて、インター予測が行われることができ、例えば、スキップモードとマージモードの場合に、インター予測部180は、周辺ブロックの動き情報を現在ブロックの動き情報として用いることができる。スキップモードの場合、マージモードとは異なり、レジデュアル信号が転送されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用いて、動きベクトル差分(motion vector difference)をシグナリングすることによって、現在ブロックの動きベクトルを指示することができる。
前記インター予測部180または前記イントラ予測部185を介して生成された予測信号は、復元信号を生成するために用いられるか、またはレジデュアル信号を生成するために用いることができる。
変換部120は、レジデュアル信号に変換技法を適用して変換係数(transform coefficients)を生成することができる。たとえば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、またはCNT(Conditionally Non-linear Transform)の内、少なくとも一つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとしたときに、このグラフから得られた変換を意味する。 CNTは、以前に復元されたすべてのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて獲得される変換を意味する。また、変換プロセスは、正方形の同じ大きさを有するピクセルブロックに適用されることもあり、正方形ではない可変サイズのブロックにも適用することができる。
量子化部130は、変換係数を量子化してエントロピーエンコード部190に転送され、エントロピーエンコード部190は、量子化された信号(量子化された変換係数に関する情報)をエンコードして、ビットストリームとして出力することができる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部130は、係数スキャン順(scan order)に基づいて、ブロックの形の量子化された変換係数を1次元ベクトルの形で再整列することができ、前記1次元ベクトルの形の量子化された変換係数に基づいて、前記量子化された変換係数に関する情報を生成することもできる。エントロピーエンコード部190は、例えば指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような、さまざまなエンコード方法を実行することができる。エントロピーエンコード部190は、量子化された変換係数のほか、ビデオ/映像復元に必要な情報(例えば構文要素(syntax elements)の値など)を共に、または別々にエンコードすることもできる。エンコードされた情報(ex.エンコードされたビデオ/映像情報)は、ビットストリームの形でNAL(network abstraction layer)ユニット単位で転送または貯蔵することができる。前記ビットストリームは、ネットワークを介して転送されることができ、またはデジタル貯蔵媒体に貯蔵することができる。ここで、ネットワークは、放送網、及び/またはネットワークなどを含むことができ、デジタル貯蔵媒体は、USB、SD、CD、DVD、Blu−ray、HDD、SSDなど、様々な貯蔵媒体を含むことができる。エントロピーエンコード部190から出力された信号は、伝送する伝送部(図示せず)及び/または貯蔵する貯蔵部(図示せず)が、エンコード装置100の内/外部のエレメントとして構成することができ、または転送部はエントロピーエンコード部190の構成要素であり得る。
量子化部130から出力された量子化された変換係数は、予測信号を生成するために用いることができる。例えば、量子化された変換係数は、ループ内の逆量子化部140と逆変換部150を介して逆量子化及び逆変換を適用することにより、レジデュアル信号を復元することができる。加算部155は、復元されたレジデュアル信号をインター予測部180またはイントラ予測部185から出力された予測信号に加えることで復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)が生成されることができる。スキップモードが適用された場合の様に処理対象ブロックのレジデュアルがない場合、予測されたブロックを復元ブロックとして用いることができる。加算部155は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために用いることができ、後述するようにフィルタリングを経て、次のピクチャのインター予測のために用いることもできる。
フィルタリング部160は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部160は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ170、具体的に、メモリ170のDPBに貯蔵することができる。前記様々なフィルタリングの方法は、例えば、ジブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部160は、各フィルタリング方法の説明で後述するようにフィルタリングに関するさまざまな情報を生成し、エントロピーエンコード部190に転達することができる。フィルタリングに関する情報は、エントロピーエンコード部190でエンコードされてビットストリーム形態で出力することができる。
メモリ170に転送された修正された復元ピクチャは、インター予測部180から参照ピクチャとして用いることができる。エンコード装置は、これを介して、インター予測が適用される場合、エンコード装置100とデコード装置での予測ミスマッチを回避することができ、符号化効率も向上させることができる。
メモリ170DPBは修正された復元ピクチャをインター予測部180での参照ピクチャとして用いるために貯蔵することができる。メモリ170は、現在ピクチャ内の動き情報が導出された(またはエンコードされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を貯蔵することができる。前記貯蔵された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するために、インター予測部180に転達することができる。メモリ170は、現在ピクチャ内の復元されたブロックの復元サンプルを貯蔵することができ、イントラ予測部185に転達することができる。
図2は、本発明が適用される実施形態として、ビデオ/映像信号のデコードが行われるデコード装置の概略的なブロック図を示す。
図2を参照すると、デコード装置200は、エントロピーデコード部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260及びイントラ予測部265を含んで構成されることができる。インター予測部260及びイントラ予測部265を合わせて予測部と呼ばれることができる。つまり、予測部はインター予測部180及びイントラ予測部185を含むことができる。逆量子化部220、逆変換部230を合わせてレジデュアル処理部と呼ばれることができる。つまり、レジデュアル処理部は、逆量子化部220、逆変換部230を含むことができる。前述したエントロピーデコード部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、インター予測部260及びイントラ予測部265は、実施形態に応じて一つのハードウェアコンポーネント(例えば、デコーダまたはプロセッサ)によって構成されることができる。また、メモリ170は、DPB(decoded picture buffer)を含むことができ、デジタル貯蔵媒体によって構成されることもできる。
ビデオ/映像情報を含むビットストリームが入力されると、デコード装置200は、図1のエンコード装置からのビデオ/映像情報が処理されたプロセスに対応して映像を復元することができる。例えば、デコード装置200は、エンコード装置で適用された処理ユニットを用いてデコードを行うことができる。したがってデコードの処理ユニットは、例えば、コーディングユニットで有り得、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットからクアッドツリー構造及び/またはバイナリツリー構造に沿って分けることができる。そして、デコード装置200を介してデコード及び出力された復元映像信号は、再生装置で再生することができる。
デコード装置200は、図1のエンコード装置から出力された信号をビットストリームの形で受信することができ、受信された信号は、エントロピーデコード部210を介してデコードすることができる。例えば、エントロピーデコード部210は、前記ビットストリームを解析して映像復元(またはピクチャ復元)に必要な情報(ex。ビデオ/映像情報)を導出することができる。例えば、エントロピーデコード部210は、指数ゴロム符号化、CAVLCまたはCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコードし、映像復元に必要な構文要素の値、レジデュアルに関する変換係数の量子化された値を出力することができる。さらに詳細に、CABACエントロピーデコーディング方法は、ビットストリームで各構文要素に対応するビン(bin)を受信し、デコード対象構文要素の情報と周辺及びデコード対象ブロックのデコード情報、または前の段階でデコードされたシンボル/ビンの情報を用いてコンテキスト(context)モデルを決定し、決定されたコンテキストモデルに基づいて、ビンの発生確率を予測して、ビンの算術デコーディング(arithmetic decoding)を実行して、各構文要素の値に対応するシンボルを生成することができる。このとき、CABACエントロピーデコーディング方法は、コンテキストモデルを決定した後、次のシンボル/空の文脈モデルのためにデコードされたシンボル/ビンの情報を用いて、コンテキストモデルを更新することができる。エントロピーデコード部2110でデコードされた情報の内、予測に関する情報は、予測部(インター予測部260とイントラ予測部265)で提供され、エントロピーデコード部210からエントロピーデコードが行われたレジデュアル値、すなわち量子化された変換係数及び関連パラメータ情報は、逆量子化部220に入力されることができる。また、エントロピーデコード部210でデコードされた情報の内、フィルタリングに関する情報は、フィルタリング部240に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)がデコード装置200の内/外部エレメントとしてさたに構成されることがあり、または受信部は、エントロピーデコード部210の構成要素であり得る。
逆量子化部220においては、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部220は、量子化された変換係数を2次元のブロックの形で再整列することができる。この場合、前記再整列は、エンコード装置で実行された係数スキャン順序に基づいて再整列を実行することができる。逆量子化部220は、量子化パラメータ(例えば、量子化段階サイズ情報)を用いて、量子化された変換係数の逆量子化を行い、変換係数(transform coefficient)を獲得することができる。
逆変換部230においては、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を獲得することになる。
予測部は現在ブロックの予測を行い、前記現在ブロックの予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部はエントロピーデコード部210から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
イントラ予測部265は、現在ピクチャ内のサンプルを参照して、現在ブロックを予測することができる。前記参照されるサンプルは、予測モードに応じて前記現在ブロックの周辺(neighbor)に位置することができ、または離れて位置することもできる。イントラ予測で予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。イントラ予測部265は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部260は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルのアレイ)にもとづいて、現在ブロックの予測されたブロックを誘導することができる。このとき、インター予測モードで転送される動き情報の量を減らすために周辺のブロックと現在ブロックの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)の情報をさらに含むことができる。インター予測の場合、周辺ブロックは、現在ピクチャ内に存在する空間的周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)を含むことができる。例えば、インター予測部260は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補の選択情報に基づいて、前記現在ブロックの動きベクトル及び/または参照ピクチャのインデックスを導出することができる。様々な予測モードに基づいて、インター予測が行われることができ、前記予測に関する情報は、前記現在ブロックのインター予測のモードを指示する情報を含むことができる。
加算部235は、獲得されたレジデュアル信号をインター予測部260またはイントラ予測部265から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることで復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックのレジデュアルがない場合、予測されたブロックを復元ブロックとして用いることができる。
加算部235は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象のブロックのイントラ予測のために用いることができ、後述するようにフィルタリングを経て、次のピクチャのインター予測のために用いることもできる。
フィルタリング部240は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部240は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ250、具体的に、メモリ250のDPBに転送することができる。前記様々なフィルタリングの方法は、例えば、ジブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
メモリ250のDPBに貯蔵された(修正された)復元ピクチャはインター予測部260から参照ピクチャとして用いることができる。メモリ250は、現在ピクチャ内の動き情報が導出された(またはデコードされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を貯蔵することができる。前記貯蔵された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するために、インター予測部260に転達することができる。メモリ170は、現在ピクチャ内の復元されたブロックの復元サンプルを貯蔵することができ、イントラ予測部265に転達することができる。
本明細書において、エンコード装置100のフィルタリング部160、インター予測部180及びイントラ予測部185で説明された実施形態は、それぞれデコード装置200のフィルタリング部240、インター予測部260及びイントラ予測部265にも同一または対応するように適用することができる。
Block Partitioning
本文書に係るビデオ/ビデオコーディング方法は、様々な詳細な技術に基づいて行うことができ、それぞれの詳細な技術を概略的に説明すると、次の通りである。
以下説明される技術は、前述した、及び/または後述されるビデオ/映像のエンコード/デコードの手順での予測、レジデュアル処理((逆)変換、(逆)量子化など)、構文要素のコーディング、フィルタリング、パーティショニング/分割などの関連の手続きに関連付けることができることは当業者に自明である。
本文書に沿ったブロックパーティショニング手順は、前述したエンコード装置の映像分割部110で実行されて、パーティショニング関連情報がエントロピーエンコード部190から(エンコード)処理され、ビットストリームの形でデコード装置に転達することができる。デコード装置のエントロピーデコード部210は、前記ビットストリームから獲得した前記パーティショニング関連情報に基づいて、現在ピクチャのブロックパーティショニング構造を導出し、これを基に映像デコードのための一連の手順(ex。予測、レジデュアル処理、ブロック復元、リンループフィルタリングなど)を実行することができる。
Partitioning of picture into CTUs
ピクチャは、コーディングツリーユニット(CTUs)のシーケンスに分割される(divided into a sequence)ことができる。CTUはコーディングツリーブロック(CTB)に対応することができる。あるいはCTUはルマサンプルのコーディングツリーブロックと、対応するクロマサンプルの二つのコーディングツリーブロックを含むことができる。つまり、三つのサンプルアレイを含むピクチャに対し、CTUはルマサンプルのNxNブロックとクロマサンプルの二つの対応ブロックを含むことができる。
コーディングと予測などのためのCTUの最大許容サイズは、変換のためのCTUの最大許容サイズと異なることがある。たとえば、CTU内ルマブロックの最大許容サイズは128x128で有り得る。
Partitioning of the CTUs using a tree structure
CTUはクアッドツリー(quad-tree、QT)の構造に基づいてCUに分割されることができる。クアッドツリー構造は、クォーターナリー(quaternary)ツリー構造と呼ばれることができる。これは、様々な局地的特徴(local characteristic)を反映するためである。一方、本文書においては、CTUは、クアッドツリーだけでなく、バイナリツリー(binary-tree、BT)及びターナリ・ツリー(ternary-tree、TT)を含むマルチタイプのツリー構造の分割に基づいて分割されることができる。以下、QTBT構造とは、クアッドツリー及びバイナリツリーベースの分割構造を含むことができ、QTBTTTとはクアッドツリー、バイナリツリー及びターナリ・ツリーベースの分割構造を含むことができる。または、QTBT構造は、クアッドツリー、バイナリツリー及びターナリ・ツリーベースの分割構造を含むこともできる。コーディングツリー構造において、CUは正方形または長方形の形状を有することができる。CTUは、まずクアッドツリー構造に分割されることができる。以後クアッドツリー構造のリーフノードは、マルチタイプのツリー構造によってさらに分割することができる。
図3は、本発明が適用されることができる実施形態として、マルチタイプのツリー構造の一例を示す図である。
本発明の一実施形態において、マルチタイプのツリー構造は、図3に示すような4つの分割タイプを含むことができる。前記4つの分割タイプは、垂直バイナリ分割(vertical binary splitting、SPLIT_BT_VER)、水平バイナリ分割(horizontal binary splitting、SPLIT_BT_HOR)、垂直ターナーリー分割(vertical ternary splitting、SPLIT_TT_VER)、水平ターナーリー分割(horizontal ternary splitting、SPLIT_TT_HOR)を含むことができる。前記マルチタイプのツリー構造のリーフノードはCUと呼ばれることができる。このようなCUは、予測及び変換手順のために用いることができる。本文書において一般的にCU、PU、TUは、同じブロックサイズを有することができる。ただし、最大許容変換の長さ(maximum supported transform length)がCUのカラー成分(colour component)の幅または高さより小さい場合には、CUとTUが互いに異なるブロックサイズを有することができる。
図4は、本発明が適用されることができる実施形態として、マルチタイプのツリーを伴うクアッドツリー(quad-tree with nested multi-type tree)構造のパーティション分割情報のシグナリングメカニズムを例示する図である。
ここで、CTUはクアッドツリーのルート(root)として扱われ、クアッドツリー構造で初めてパーティショニングされる。各クアッドツリーのリーフ・ノードは、以後、マルチタイプのツリー構造で、さらにパーティショニングすることができる。マルチタイプのツリー構造において、第1フラグ(a first flag、ex. mtt_split_cu_flag)が、そのノードが追加的にパーティショニングされるのかを指示するためにシグナリングされる。もしそのノードが追加パーティショニングされる場合、第2フラグ(a second flag、ex.mtt_split_cu_verticla_flag)が分割方向(splitting direction)を指示するためにシグナリングすることができる。その後、第3フラグ(a third flag、ex.mtt_split_cu_binary_flag)が分割タイプがバイナリ分割であるかターナーリー分割であるかを指示するためにシグナリングすることができる。例えば、前記mtt_split_cu_vertical_flag及び前記mtt_split_cu_binary_flagに基づいて、CUのマルチタイプのツリー分割モード(multi-type tree splitting mode、MttSplitMode)が、次の表1のように導出することができる。
図5は、本発明が適用されることができる実施形態として、クアッドツリー及び伴うマルチタイプのツリー(quadtree and nested multi-type tree)構造に基づいてCTUを多重CUに分割する方法を例示する図である。
ここで、ボールドブロックエッジ(bold block edges)は、クアッドツリーパーティショニングを、残りのエッジは、マルチタイプのツリーパーティショニングを示す。マルチタイプのツリーを伴ったクアッドツリーのパーティションは、コンテンツ - アダプタテッドコーディングツリー構造を提供することができる。CUはコーディングブロック(CB)に対応することができる。あるいはCUはルマサンプルのコーディングブロックと、対応するクロマサンプルの二つのコーディングブロックを含むことができる。CUのサイズはCTUだけ大きいこともあり、またはルマサンプル単位で4x4ほど小さいこともある。たとえば、4:2:0カラーフォーマット(orクロマフォーマット)である場合、最大クロマCBサイズは64x64であり、最小クロマCBサイズは2x2で有り得る。
本文書において、例えば、最大許容ルマTBサイズは64x64であり、最大許容クロマTBサイズは32x32で有り得る。もし前記ツリー構造に沿って分割されたCBの幅または高さが最大変換幅または高さより大きい場合、そのCBは自動的に(または黙示的に)水平及び垂直方向のTBサイズ制限を満足するまで分割されることができる。
一方、マルチタイプのツリーを伴ったクアッドツリーコーディングツリースキームのために、以下のパラメータがSPS構文(syntax:シンタックス)要素で定義及び識別することができる。
−CTU size:クォーターナリーツリーのルートノード(quaternary tree root node)サイズ
−MinQTSize:クォーターナリーツリーのリーフ・ノード(quaternary tree leaf node)の最小許容サイズ
−MaxBtSize:バイナリツリーのルートノード(binary tree root node)の最大許容サイズ
−MaxTtSize:ターナリーツリーのルートノード(ternary tree root node)の最大許容サイズ
−MaxMttDepth:クワッドツリーリーフ(quadtree leaf)で分割されるマルチタイプのツリー(multi-type tree)の最大許容層の深さ
−MinBtSize:バイナリツリーのリーフ・ノード(binary tree leaf node)の最小許容サイズ
−MinTtSize:ターナリーツリーのリーフ・ノード(ternary tree leaf node)の最大許容サイズ
マルチタイプのツリーを伴ったクアッドツリーコーディングツリー構造の一例として、CTUサイズは128x128ルマサンプル及び二つの対応するクロマサンプルの64x64ブロックに設定することができる(4:2:0クロマフォーマットで)。この場合、MinOTSizeは16x16に設定され、MaxBtSizeは128x128に設定され、MaxTtSizeは64x64に設定され、MinBtSizeとMinTtSize(for both width and height)は4x4で、そしてMaxMttDepthは4に設定されることができる。クォートツリーパーティショニングは、CTUに適用されてクアッドツリーのリーフ・ノードを生成することができる。クアッドツリーのリーフ・ノードは、リーフQTノードと呼ばれることができる。クアッドツリーのリーフ・ノードは16x16サイズ(i.e. the MinOTSize)から128x128サイズ(i.e. the CTU size)を有することができる。もしリーフQTノードが128x128である場合、さらに、バイナリツリー/ターナリ・ツリーに分割されないことがある。これは、この場合、分割されてもMaxBtsizeとMaxTtsize(i.e. 64x64)を超過するからである。それ以外の場合、リーフQTノードは、マルチタイプのツリーにさらに分割することができる。従って、リーフQTノードはマルチタイプのツリーのルートノード(root node)であり、リーフQTノードは、マルチタイプのツリーデプス(mttDepth)0の値を有することができる。仮に、マルチタイプのツリーデプスがMaxMttdepth(ex。4)に到達した場合、これ以上追加の分割は考慮されないことがある。仮に、マルチタイプのツリーノードの幅がMinBtSizeと同じで、2xMinTtSizeより小さいか等しいとき、それ以上追加の水平分割は考慮されないことがある。仮に、マルチタイプのツリーノードの高さがMinBtSizeと同じで、2xMinTtSizeより小さいか等しいとき、それ以上追加の垂直分割は考慮されないことがある。
図6は、本発明が適用されることができる実施形態として、ターナリ・ツリー(ternary-tree)分割を制限する方法を例示する図である。
図6を参照すると、ハードウェアデコーダでの64x64ルマブロック及び32x32クロマパイプラインの設計を許容するために、TT分割は、特定の場合に制限されることができる。例えば、ルマコーディングブロックの幅または高さが予め設定された特定の値(例えば、32、64)より大きい場合、図6に示すように、TT分割が制限されることができる。
本文書において、コーディングツリースキームはルマ及びクロマブロックが個別的(separate)ブロックのツリー構造を有することを支援することができる。PとBスライスに対し、一つのCTU内、ルマ及びクロマCTBは同じコーディングツリー構造を有するように制限されることができる。しかし、Iスライスに対して、ルマ及びクロマブロックは、互いに別々のブロックツリー構造を有することができる。もし個別のブロックツリーモードが適用される場合、ルマCTBは、特定のコーディングのツリー構造に基づいてCUに分割され、クロマCTBは、他のコーディングツリー構造に基づいて、クロマCUに分割されることができる。これは、Iスライス内CUはルマ成分のコーディングブロックまたは2つクロマ成分のコーディングブロックで構成され、PまたはBスライスのCUは三つの色成分のブロックで構成されることができることを意味することができる。
前述した“Partitioning of the CTUs using a tree structure”でマルチタイプツリーを伴ったクアッドツリーコーディングツリー構造について説明したが、CUが分割される構造は、これに限定されない。たとえば、BT構造及びTT構造は、多数の分割ツリー(Multiple Partitioning Tree、MPT)の構造に含まれる概念で解釈されることができ、CUはQT構造及びMPT構造に介して分割されると解釈することができる。QT構造及びMPT構造に介してCUが分割される一例で、QT構造のリーフ・ノードがいくつかのブロックに分割されるかについての情報を含む構文要素(例えば、MPT_split_type)とQT構造のリーフ・ノードが垂直と水平の内、どちらの方向に分割されるかについての情報を含む構文要素(例えば、MPT_split_mode)がシグナリングされることで、分割構造が決定されることができる。
また、別の例において、CUはQT構造、BT構造またはTT構造と別の方法で分割することができる。つまり、QT構造に基づいて、下位デプスのCUが上位デプスのCUの1/4サイズに分割されたり、BT構造に応じて、下位デプスのCUが上位デプスのCUの1/2サイズに分割されたり、TT構造に基づいて下位デプスのCUが上位デプスのCUの1/4または1/2のサイズに分割されるものとは異なり、下位デプスのCUは、場合によって、親デプスのCUの1/5、1/3、3/8、3/5、2/3または5/8のサイズに分割されることができ、CUが分割される方法は、これに限定されない。
仮に、ツリーノードブロックの部分(a portion)が下部(bottom)または右(right)ピクチャ境界を超える(exceeds)場合、そのツリーノードブロックは、すべてのコーディングされたCUのすべてのサンプルが前記ピクチャ境界に内に位置するように制限されることができる。この場合、例えば、次のような分割ルールが適用されることができる。
- ツリーノードブロック(tree node block)の一部(a portion)が左側と右側ピクチャ境界のすべてを超える場合、
- 前記ブロックがQTノードであり、前記ブロックの大きさが最小QTサイズより大きい場合、前記ブロックは、QT分割モードで強制分割される。
- そうでなければ、前記ブロックは、水平バイナリ分割(horizontal binary splitting、SPLIT_BT_HOR)モードに強制分割される。
- そうではなく、ツリーノードブロック(tree node block)の一部(a portion)が下部ピクチャ境界を超えた場合、
-前記ブロックがQTノードであり、前記ブロックのサイズが最小QTサイズより大きく、前記ブロックのサイズが最大BTサイズより大きい場合、前記ブロックは、QT分割モードで強制分割される。
- そうではなく、前記ブロックがQTノードであり、前記ブロックの大きさが最小QTサイズより大きく、前記ブロックのサイズが最大BTサイズより小さいか等しい場合、前記ブロックは、QT分割モードまたは水平バイナリ分割(horizontal binary splitting 、SPLIT_BT_HOR)モードに強制分割される。
- そうでなければ(前記ブロックがBTTノードまたは前記ブロックのサイズが最小QTサイズより小さいか等しい)、前記ブロックは、水平バイナリ分割(horizontal binary splitting、SPLIT_BT_HOR)モードに強制分割される。
- そうではなく、ツリーノードブロック(tree node block)の一部(a portion)が右側ピクチャ境界のすべてを超える場合、
-前記ブロックがQTノードであり、前記ブロックのサイズが最小QTサイズより大きく、前記ブロックのサイズが最大BTサイズより大きい場合、前記ブロックは、QT分割モードで強制分割される。
- そうではなく、前記ブロックがQTノードであり、ブロックのサイズが最小QTサイズより大きく、前記ブロックのサイズが最大BTサイズより小さいか等しい場合、 前記ブロックは、QT分割モードまたは垂直バイナリ分割(vertical binary splitting、SPLIT_BT_VER)モードに強制分割される。
- そうでなければ(前記ブロックがBTTノードであるかまたは前記ブロックのサイズが最小QTサイズより小さいか等しい)、前記ブロックは、垂直バイナリ分割(vertical binary splitting、SPLIT_BT_VER)モードに強制分割される。
一方、前述したマルチタイプのツリーを伴ったクアッドツリーコーディングブロック構造は非常に柔軟するブロックパーティショニングの構造を提供することができる。マルチタイプのツリーに支援される分割タイプのため、他の分割パターンが、場合によって、潜在的に同じコーディングブロック構造の結果をもたらす。このようなリダンダント(redundant)した分割パターンの発生を制限することにより、パーティショニング情報のデータ量を削減することができる。下の図を参照して説明する。
図7は、本発明が適用されることができる実施形態として、バイナリツリー分割及びターナリ・ツリーの分割で発生することができるリダンダント分割パターンを例示する図である。
図7に示すように、2段階レベルの一方向の連続的なバイナリ分割(two levels of consecutive binary splits in one direction)は、ターナリ分割の後の中心パーティションのバイナリ分割と同じコーディングブロック構造を有する。このような場合、ターナリ・ツリー分割の中心パーティションのバイナリツリーの分割(in the given direction)は、制限されることができる。このような制限はすべてピクチャのCUに対し適用することができる。このような特定の分割が制限される場合、対応する構文要素のシグナリングは、このような制限された場合を反映して修正されることができ、これを通じてパーティショニングのためにシグナリングされるビット数を減らすことができる。例えば、図7に示された例のように、CUの中心パーティションのバイナリツリー分割が制限される場合、分割がバイナリ分割であるかターナー・リ分割であるかを指すmtt_split_cu_binary_flag構文要素はシグナリングされず、その値は0にデコーダによって推論されることがある。
予測(prediction)
デコードが実行される現在処理ユニットを復元するために、現在処理ユニットが含まれた現在ピクチャまたは他のピクチャのデコードされた部分を用いることができる。
復元に現在ピクチャのみを用いる、すなわち、画面内予測のみを実行するピクチャ(スライス)をイントラピクチャまたはIピクチャ(スライス)、各ユニットを予測するために最大1つの動きベクトル及びレファレンスインデックスを用いるピクチャ(スライス)を予測ピクチャ(predictive picture)またはPピクチャ(スライス)、最大2つの動きベクトルとレファレンスインデックスを用いるピクチャ(スライス)をペア予測ピクチャ(Bi-predictive picture)またはBピクチャ(スライス)と呼ぶことができる。
イントラ予測は、同じデコードされたピクチャ(またはスライス)のデータ要素(例えば、サンプル値等)から現在の処理ブロックを導出する予測方法を意味する。つまり、現在ピクチャ内の復元された領域を参照して、現在の処理ブロックのピクセル値を予測する方法を意味する。
以下、インター予測について、さらに注意深く見る。
インター予測(Inter prediction)(または画面間予測)
インター予測は、現在ピクチャ以外のピクチャのデータ要素(例えば、サンプル値または動きベクトルなど)に基づいて、現在処理ブロックを導出する予測方法を意味する。つまり、現在ピクチャ以外の復元された他のピクチャ内の復元された領域を参照して、現在処理ブロックのピクセル値を予測する方法を意味する。
インター予測(またはピクチャ間予測)は、ピクチャの間に存在する重複性を除去する技術で、ほとんど動き推定(motion estimation)及び動き補償(motion compensation)を介して行われる。
本発明は、先に図1及び図2で説明したインター予測方法の詳細な技術を説明するものでデコーダの場合、後述する図10のインター予測ベースのビデオ/映像をデコードする方法及び図11のデコード装置内インター予測部で示すことができる。加えて、エンコーダの場合、後述する図8のインター予測ベースのビデオ/映像のエンコード方法及び図9のエンコード装置内インター予測部で示すことができる。さらに、図8及び図9によってエンコードされたデータは、ビットストリームの形態で貯蔵されることができる。
エンコード装置/デコード装置の予測部はブロック単位でインター予測を実行して、予測サンプルを導出することができる。インター予測は、現在ピクチャ以外のピクチャのデータ要素(e.g.サンプル値、または動き情報など)に依存的な方法で導出される予測を示すことができる。現在ブロックにインター予測が適用される場合、参照ピクチャのインデックスが示す参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックの予測されたブロック(予測サンプルアレイ)を誘導することができる。
このとき、インター予測モードで転送される動き情報の量を減らすために周辺ブロックと現在ブロックの間の動き情報の相関性に基づいて、現在ブロックの動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測など)の情報をさらに含むことができる。
インター予測が適用される場合、周辺ブロックは、現在ピクチャ内に存在する空間的周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)を含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的周辺ブロックを含む参照ピクチャは同じことも有り得、異なることもある。前記時間的周辺ブロックは、同じ位置参照ブロック(collocated reference block)、同じ位置(CU colCU)などの名で呼ばれることができ、前記時間的周辺ブロックを含む参照ピクチャは、同じ位置ピクチャ(collocated picture、colPic)と呼ばれることもできる。たとえば、現在ブロックの周辺ブロックに基づいて動き情報候補リストが構成されることがあり、前記現在ブロックの動きベクトル及び/または参照ピクチャのインデックスを導出するためにどんな候補が選択(使用)されるかを指示するフラグまたはインデックス情報がシグナリングされることができる。
様々な予測モードに基づいて、インター予測が行われることができ、例えば、スキップモードとマージモードの場合、現在ブロックの動き情報は、選択された周辺ブロックの動き情報と同じで有り得る。スキップモードの場合、マージモードとは異なり、レジデュアル信号が転送されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、選択された周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)で用いて、動きベクトル差分(motion vector difference)は、シグナリングされることができる。この場合、前記動きベクトル予測子及び動きベクトル差分の合を用いて前記現在ブロックの動きベクトルを導出することができる。
図8及び図9は、本発明の実施形態に係るインター予測ベースビデオ/映像エンコード方法及び本発明の実施形態に係るエンコード装置内インター予測部を例示する図である。
図8及び図9を参照すると、S801は、エンコード装置のインター予測部180によって実行されることができ、S802は、エンコード装置のレジデュアル処理部によって実行されることができる。具体的に、S802は、エンコード装置の減算部115によって実行されることができる。S803で予測情報は、インター予測部180によって導出され、エントロピーエンコード部190によってエンコードされることができる。S803でレジデュアル情報は、レジデュアル処理部によって導出され、エントロピーエンコード部190によってエンコードされることができる。前記レジデュアル情報は、前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。
前述したように、前記レジデュアルサンプルは、エンコード装置の変換部120を介して変換係数に導出され、前記変換係数は、量子化部130を介して量子化された変換係数に導出することができる。前記量子化された変換係数に関する情報がレジデュアルコーディング手順を介してエントロピーエンコード部190でエンコードされることができる。
エンコード装置は、現在ブロックのインター予測を行う(S801)。エンコード装置は、現在ブロックのインター予測モード及び動き情報を導出し、前記現在ブロックの予測サンプルを生成することができる。ここでインター予測モード決定、動き情報導出及び予測サンプルの生成手順は、同時に実行されることもあり、いずれかの1手順が、他の手順より先に実行されることもできる。たとえば、エンコード装置のインター予測部180は、予測モード決定部181、動き情報導出部182、予測サンプル導出部183を含むことができ、予測モード決定部181で、前記現在ブロックの予測モードを決定し、動き情報導出部182において、前記現在ブロックの動き情報を導出し、予測サンプル導出部183において、前記現在ブロックの動きサンプルを導出することができる。
たとえば、エンコード装置のインター予測部180は、動き推定(motion estimation)を介して参照ピクチャの一定領域(サーチエリア)内において、前記現在ブロックと類似のブロックをサーチし、前記現在ブロックとの差が最小または一定基準以下の参照ブロックを導出することができる。これに基づいて、前記参照ブロックが位置する参照ピクチャを指す参照ピクチャのインデックスを導出し、前記参照ブロックと前記現在ブロックの位置の差に基づいて、動きベクトルを導出することができる。エンコード装置は、様々な予測モードの内、前記現在ブロックに対して適用されるモードを決定することができる。エンコード装置は、前記様々な予測モードに対するRD costを比較し、前記現在ブロックの最適な予測モードを決定することができる。
たとえば、エンコード装置は、前記現在ブロックにスキップモードまたはマージモードが適用される場合、後述するマージ候補リストを構成し、前記マージ候補リストに含まれたマージ候補が指す参照ブロックの内、前記現在ブロックとの差が最小または一定の基準以下である参照ブロックを導出することができる。この場合、前記導出された参照ブロックと関連付けられているマージ候補が選択され、前記選択されたマージ候補を指すマージインデックス情報が生成され、デコード装置にシグナリングされることができる。前記選択されたマージ候補の動き情報を用いて前記現在ブロックの動き情報が導出することがある。
他の例として、エンコード装置は、前記現在ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、前記(A)MVP候補リストに含まれたmvp(motion vector predictor)候補の内、選択されたmvp候補の動きベクトルを前記現在ブロックのmvpに用いることができる。この場合、例えば、前述した動き推定によって導出された参照ブロックを指す動きベクトルが前記現在ブロックの動きベクトルとして用いることができ、前記mvp候補の内、前記現在ブロックの動きベクトルとの差が最も小さい動きベクトルを有するmvp候補が前記選択されたmvp候補になることができる。前記現在ブロックの動きベクトルから前記mvpを引いた差分であるMVD(motion vector difference)が導出されることができる。この場合、前記MVDに関する情報がデコード装置にシグナリングされることができる。また、(A)MVPモードが適用される場合、前記参照ピクチャインデックスの値は、参照ピクチャインデックス情報で構成され、別途に、前記デコード装置にシグナリングされることができる。
エンコード装置は、前記予測サンプルに基づいてレジデュアルサンプルを導出することができる(S802)。エンコード装置は、前記現在ブロックの原本サンプルと、前記予測サンプルの比較を通じて、前記レジデュアルサンプルを導出することができる。
エンコード装置は、予測情報及びレジデュアル情報を含む映像情報をエンコードする(S803)。エンコード装置は、エンコードされた映像情報をビットストリームの形態で出力することができる。前記予測情報は、前記予測手順に関連した情報で予測モード情報(ex.. skip flag、merge flag or mode indexなど)及び動き情報に関する情報を含むことができる。前記動き情報に関する情報は、動きベクトルを導出するための情報である候補を選択情報(ex. merge index、mvp flag or mvp index)を含むことができる。また、前記動き情報に関する情報は、前述したMVDに関する情報及び/または参照ピクチャのインデックス情報を含むことができる。
また、前記動き情報に関する情報はL0予測、L1予測、またはペア(bi)の予測が適用されるかどうかを示す情報を含むことができる。前記レジデュアル情報は、前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。
出力されたビットストリームは、(デジタル)貯蔵媒体に貯蔵されてデコード装置に転達することができ、またはネットワークを介してデコード装置に転達されることもできる。
一方、前述したように、エンコード装置は、前記参照サンプル及び前記レジデュアルサンプルに基づいて復元ピクチャ(復元サンプル及び復元ブロックを含む)を生成することができる。これはデコード装置で実行されるのと同じ予測結果をエンコード装置で導出するためであり、これを介してコード(符号化)効率を高めることができるからである。したがって、エンコード装置は、復元ピクチャ(または復元サンプル、復元ブロック)をメモリに貯蔵し、インター予測のための参照ピクチャとして活用することができる。前記復元ピクチャにインループフィルタリング手続きなどがさらに適用されることができることは、前述した通りである。
図10及び図11は、本発明の実施形態に係るインター予測ベースのビデオ/映像をデコードする方法及び、本発明の実施形態に係るデコード装置内インター予測部を例示する図である。
図10及び図11を参照すると、デコード装置は、前記エンコード装置で実行された動作と対応する動作を実行することができる。デコード装置は、受信された予測情報に基づいて、現在ブロックに予測を行い、予測サンプルを導出することができる。
S1001乃至S1003は、デコード装置のインター予測部260によって実行されることができ、S1004のレジデュアル情報は、デコード装置のエントロピーデコード部210によってビットストリームから獲得することができる。デコード装置のレジデュアル処理部は、前記レジデュアル情報に基づいて、現在ブロックのレジデュアルサンプルを導出することができる。具体的、前記レジデュアル処理部の逆量子化部220は、前記レジデュアル情報に基づいて導出された量子化された変換係数に基づいて、逆量子化を実行して変換係数を導出し、前記レジデュアル処理部の逆変換部230は、前記変換係数の逆変換を実行し、前記現在ブロックのレジデュアルサンプルを導出することができる。S1005は、デコード装置の加算部235または復元部によって実行されることができる。
具体的にデコード装置は、受信された予測情報に基づいて、前記現在ブロックの予測モードを決定することができる(S1001)。デコード装置は、前記予測情報内の予測モード情報に基づいて、前記現在ブロックにどんなインター予測モードが適用されるかを決定することができる。
例えば、前記のmerge flagに基づいて、前記現在ブロックに前記マージモードが適用されか、または(A)MVPモードが決定されるかどうかを決定することができる。または前記mode indexに基づいて、様々なインター予測モード候補の内、いずれか1つを選択することができる。前記インター予測モード候補はスキップモード、マージモード及び/または(A)MVPモードを含むことができ、または後述する様々なインター予測モードを含むことができる。
デコード装置は、前記決定されたインター予測モードに基づいて、前記現在ブロックの動き情報を導出する(S1002)。例えば、デコード装置は、前記現在ブロックにスキップモードまたはマージモードが適用される場合、後述するマージ候補リストを構成し、前記マージ候補リストに含まれたマージ候補の内、1つのマージ候補を選択することができる。前記選択は、前述した選択情報(merge index)に基づいて実行されることができる。前記選択されたマージ候補の動き情報を用いて前記現在ブロックの動き情報が導出することができる。前記選択されたマージ候補の動き情報が前記現在ブロックの動き情報として用いることができる。
他の例として、デコード装置は、前記現在ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、前記(A)MVP候補リストに含まれたmvp(motion vector predictor)候補のうち選択されたmvp候補の動きベクトルを前記現在ブロックのmvpに用いることができる。前記選択は、前述した選択情報(mvp flag or mvp index)に基づいて実行されることができる。この場合、前記MVDに関する情報に基づいて、前記現在ブロックのMVDを導出することができ、前記現在ブロックのmvpと前記MVDに基づいて、前記現在ブロックの動きベクトルを導出することができる。また、前記参照ピクチャのインデックス情報に基づいて、前記現在ブロックの参照ピクチャインデックスを導出することができる。前記現在ブロックに関する参照ピクチャリスト内で、前記参照ピクチャのインデックスが指すピクチャが前記現在ブロックのインター予測のために参照される参照ピクチャに導出することができる。
一方、後述するように候補リスト構成なしで前記現在ブロックの動き情報が導出されることができ、この場合、後述する予測モードで開始された手順に従って、前記現在ブロックの動き情報が導出されることができる。この場合、前述したような候補リストの構成は省略されることができる。
デコード装置は、前記現在ブロックの動き情報に基づいて、前記現在ブロックの予測サンプルを生成することができる(S1003)。この場合、前記現在ブロックの参照ピクチャインデックスに基づいて、前記参照ピクチャを導出し、前記現在ブロックの動きベクトルが前記参照ピクチャ上で指す参照ブロックのサンプルを用いて、前記現在ブロックの予測サンプルを導出することができる。この場合、後述するように、場合によって、前記現在ブロックの予測サンプルの内、全部または一部の予測サンプルのフィルタリング手順が実行されることができる。
例えば、デコード装置のインター予測部260は、予測モード決定部261、動き情報導出部262、予測サンプル導出部263を含むことができ、予測モード決定部261で受信された予測モード情報に基づいて、前記現在ブロックの予測モードを決定し、動き情報導出部262から受信された動き情報に関する情報に基づいて、前記現在ブロックの動き情報(動きベクトル及び/または参照ピクチャのインデックスなど)を導出し、予測サンプル導出部263において、前記現在ブロックの予測サンプルを導出することができる。
デコード装置は、受信されたレジデュアル情報に基づいて、前記現在ブロックのレジデュアルサンプルを生成する(S1004)。デコード装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて、前記現在ブロックの復元サンプルを生成し、これに基づいて復元ピクチャを生成することができる(S1005)。以後、前記復元ピクチャにインループフィルタ手続きなどがさらに適用されることは、前述した通りである。
前述したように、インター予測の手順は、インター予測モード決定段階、決定された予測モードに応じた動き情報導出段階と、導出された動き情報に基づいて予測実行(予測サンプルの生成)段階を含むことができる。
インター予測モード決定(Determination of inter prediction mode)
ピクチャ内の現在ブロックの予測のために、様々なインター予測モードが用いられる。たとえば、マージモード、スキップモード、MVPモード、アフィン(Affine)モードなど、さまざまなモードが用いられる。DMVR(Decoder side motion vector refinement)モードでは、AMVR(adaptive motion vector resolution)モードなどが付随的なモードで、さらに用いることができる。アフィンモードは、アフィン動き予測(affine motion prediction)モードと呼ばれることもある。 MVPモードはAMVP(advanced motion vector prediction)モードと呼ばれることもある。
現在ブロックのインター予測モードを指す予測モード情報がエンコード装置からデコード装置にシグナリングされることができる。前記予測モード情報は、ビットストリームに含まれてデコード装置に受信されることができる。前記予測モード情報は、多数の候補モードの内、いずれか1つを指示するインデックス情報を含むことができる。または、フラグ情報の階層的シグナリングを介してインター予測モードを指示することもできる。この場合、前記予測モード情報は、複数のフラグを含むことができる。
たとえば、スキップフラグをシグナリングしてスキップモードの適用可否を指示し、スキップモードが適用できない場合にマージフラグをシグナリングしてマージモードの適用可否を指示し、マージモードが適用できない場合にMVPモード適用されるものと指示したり、追加の区分のためのフラグをさらにシグナリングすることもできる。アフィンモードは、独立したモードでシグナリングされることもあり、またはマージモードまたはMVPモードなどに従属的モードでシグナリングされることもできる。例えば、アフィンモードでは、後述するようにマージ候補リストまたはMVP候補リストの一つの候補として構成することもできる。
動き情報導出(Derivation of motion information according to inter prediction mode)
現在ブロックの動き情報を用いて、インター予測を行うことができる。エンコード装置は、動き推定(motion estimation)手順を介して、現在ブロックの最適の動き情報を導出することができる。たとえば、エンコード装置は、現在ブロックの原本ピクチャ内の原本ブロックを用いて、相関性が高い類似の参照ブロックを参照ピクチャ内の決められた探索範囲内で分数ピクセル単位で探索することができ、これにより動き情報を導出することができる。ブロックの類似性は、位相(phase)ベースのサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現在ブロック(または現在ブロックのテンプレート)と参照ブロック(または参照ブロックのテンプレート)の間SADに基づいて計算することができる。この場合、探索領域内SADが最も小さい参照ブロックに基づいて動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて様々な方法に基づいてデコード装置にシグナリングされることができる。
マージモードとスキップモード
図12は、本発明が適用される実施形態として、マージモードまたはスキップモードで用いられる周辺ブロックを説明するための図である。
マージモード(merge mode)が適用される場合、現在の予測ブロックの動き情報が直接転送されず、周辺予測ブロックの動き情報を用いて前記現在の予測ブロックの動き情報を誘導することになる。したがって、マージモードを用いられたことを知らせるフラグ情報と周辺のどの予測ブロックを用いられたかを知らせるマージインデックスを転送することにより、現在の予測ブロックの動き情報を指示することができる。
エンコーダは、マージモードを実行するために、現在の予測ブロックの動き情報を誘導するために用いられるマージ候補ブロック(merge candidate block)を探索することができる。例えば、前記マージ候補ブロックは、最大5個まで用いることができるが、本発明はこれに限定されない。そして、前記マージ候補ブロックの最大数は、スライスヘッダ(またはタイルのグループヘッダ)で転送することができ、本発明はこれに限定されない。前記マージ候補ブロックを見つけた後、エンコーダは、マージ候補リストを生成することができ、これらの内、最も小さいコストを有するマージ候補ブロックを最終マージ候補ブロックとして選択することができる。
本発明は、前記マージ候補リストを構成するマージ候補ブロックの様々な実施形態を提供する。
前記マージ候補リストは、例えば、5つのマージ候補ブロックを用いることができる。例えば、4つの空間的マージ候補(spatial merge candidate)と1つの時間的マージ候補(temporal merge candidate)を用いることができる。具体例として、空間的マージ候補の場合図12に示されたブロックを空間的マージ候補として用いることができる。
図13は、本発明が適用される一実施形態に係るマージ候補リストの構成方法を例示するフローチャートである。
図13を参照すると、コーディング装置(エンコーダ/デコーダ)は、現在ブロックの空間的周辺ブロックを探索して導出された空間的マージ候補をマージ候補リストに挿入する(S1301)。例えば、前記空間的周辺ブロックは、前記現在ブロックの左下側コーナー周辺ブロック、左側周辺ブロック、右上側コーナー周辺ブロック、上側周辺ブロック、左上側コーナー周辺ブロックを含むことができる。ただし、これは例示として、前述した空間的周辺ブロック以外にも右側周辺ブロック、下側周辺ブロック、右下側の周辺ブロックなどの追加の周辺ブロックが、さらに前記空間周辺ブロックとして用いることができる。コーディング装置は、前記空間的周辺ブロックを優先順位に基づいて探索して、可用なブロックを検出し、検出されたブロックの動き情報を、前記空間的マージ候補として導出することができる。例えば、エンコーダ及びデコーダは、図12に示された5つのブロックをA1、B1、B0、A0、B2の順に探索して、可用な候補を順次インデックスしてマージ候補リストとして構成することができる。
コーディング装置は、前記現在ブロックの時間的周辺ブロックを探索して導出された時間的マージ候補を前記マージ候補リストに挿入する(S1302)。前記時間的周辺ブロックは、前記現在ブロックが位置する現在ピクチャと異なるピクチャである参照ピクチャ上に位置することができる。前記時間的周辺ブロックが位置する参照ピクチャは、collocatedピクチャまたはcolピクチャと呼ばれることができる。前記時間的周辺ブロックは、前記colピクチャ上での前記現在ブロックの同じ位置のブロック(co-located block)の右下側コーナー周辺ブロック及び右下側センターブロックの順に探索することができる。
一方、motion data compressionが適用される場合、前記colピクチャに一定のストレージユニットごとに、特定の動きの情報を代表動き情報として貯蔵することができる。この場合、前記一定のストレージユニット内のすべてのブロックの動き情報を貯蔵する必要がなく、これによりmotion data compression効果を得ることができる。この場合、一定のストレージユニットは、例えば、16x16サンプル単位、または8x8サンプル単位などで予め決まられることもあり、またはエンコーダからデコーダに前記日程ストレージユニットのサイズ情報がシグナリングされることもある。前記motion data compressionが適用される場合、前記時間的周辺ブロックの動き情報は、前記時間的周辺ブロックが位置する前記一定ストレージユニットの代表動き情報に置き換えることができる。
つまり、この場合、実現側面で見ると、前記時間的周辺ブロックの座標に位置する予測ブロックではなく、前記時間的周辺ブロックの座標(左上端サンプルポジション)に基づいて、一定の値だけ算術的に右シフトした後算術的に左シフトした位置をカバーする予測ブロックの動き情報に基づいて、前記時間的マージ候補が導出されることができる。例えば、前記日程ストレージユニットが2nx2nサンプル単位である場合、前記時間的周辺ブロックの座標が(xTnb、yTnb)とすると、修正された位置である((xTnb >> n)<< n)、(yTnb >> n)<< n))に位置する予測ブロックの動き情報が前記時間的マージ候補のために用いることができる。
具体的に、例えば、前記日程ストレージユニットが16x16サンプル単位である場合、前記時間的周辺ブロックの座標が(xTnb、yTnb)とすると、修正された位置である((xTnb >> 4)<< 4)、( yTnb >> 4)<< 4))に位置する予測ブロックの動き情報が前記時間的マージ候補のために用いることができる。または、例えば、前記日程ストレージユニットが8x8サンプル単位である場合、前記時間的周辺ブロックの座標が(xTnb、yTnb)とすると、修正された位置である((xTnb >> 3)<< 3)、(yTnb> > 3)<< 3))に位置する予測ブロックの動き情報が前記時間的マージ候補のために用いることができる。
コーディング装置は、現在マージ候補の数が最大マージ候補の数よりも小さいかどうかを確認することができる(S1303)。前記最大マージ候補の数は、予め定義されたり、エンコーダからデコーダにシグナリングすることができる。例えば、エンコーダは、前記最大マージ候補の数に関する情報を生成し、エンコードして、ビットストリームの形で、前記デコーダに転達することができる。前記最大マージ候補の数が全部満たされると以降の候補の追加プロセスは進行しないことがある。
前記確認の結果、前記現在マージ候補の数が前記最大マージ候補の数よりも小さい場合、コード装置は、追加マージ候補を前記マージ候補リストに挿入する(S1304)。前記追加マージ候補は、例えばATMVP、combined bi-predictiveマージ候補(現在スライスのスライスタイプがBタイプの場合)、及び/またはゼロベクトルマージ候補を含むことができる。
前記確認の結果、前記現在マージ候補の数が前記最大マージ候補の数よりも小さくない場合、コード装置は、前記マージ候補リストの構成を終了することができる。この場合、エンコーダは、RD(rate-distortion)costに基づいて、前記マージ候補リストを構成するマージ候補の内、最適なマージ候補を選択することができ、前記選択されたマージ候補を指す選択情報(ex. merge index)をデコーダにシグナリングすることができる。デコーダは、前記マージ候補リスト及び前記選択情報に基づいて、前記最適のマージ候補を選択することができる。
前記選択されたマージ候補の動き情報が前記現在ブロックの動き情報として用いることができ、前記現在ブロックの動き情報に基づいて、前記現在ブロックの予測サンプルを導出することができることは前述した通りである。エンコーダは、前記予測サンプルに基づいて、前記現在ブロックのレジデュアルサンプルを導出することができ、前記レジデュアルサンプルに関するレジデュアル情報をデコーダにシグナリングすることができる。デコーダは、前記レジデュアル情報に基づいて導出されたレジデュアルサンプル及び前記予測サンプルに基づいて復元サンプルを生成し、これに基づいて復元ピクチャを生成することができることは前述した通りである。
スキップモード(skip mode)が適用される場合、前のマージモードが適用される場合と同じ方法で、前記現在ブロックの動き情報を導出することができる。ただし、スキップモードが適用される場合、そのブロックのレジデュアル信号が省略され、したがって、予測サンプルが直接復元サンプルに用いることができる。
MVPモード
図14は、本発明が適用される一実施形態に係るマージ候補リストの構成方法を例示するフローチャートである。
MVP(Motion Vector Prediction)モードが適用される場合、復元された空間的周辺ブロック(例えば、先の図12で説明した周辺ブロックで有り得る)の動きベクトル及び/または時間的周辺ブロック(またはColブロック)に対応する動きベクトルを用いて、動きベクトル予測子(motion vector predictor、mvp)の候補リストが生成されることができる。つまり、復元された空間的周辺ブロックの動きベクトル及び/または時間的周辺ブロックに対応する動きベクトルは、動きベクトル予測子候補として用いることができる。
前記予測に関する情報は、前記リストに含まれた動きベクトル予測子候補の内、選択された最適の動きベクトル予測子候補を指示する選択情報(ex.MVPフラグまたはMVPインデックス)を含むことができる。このとき、予測部は、前記選択情報を用いて、動きベクトルの候補リストに含まれた動きベクトル予測子候補の内、現在ブロックの動きベクトル予測子を選択することができる。エンコード装置の予測部は現在ブロックの動きベクトルと動きベクトル予測子との間の動きベクトルの差分(MVD)を求めることができ、これをエンコードして、ビットストリームの形で出力することができる。つまり、MVDは現在ブロックの動きベクトルから、前記動きベクトル予測子を引いた値で求められることができる。このとき、デコード装置の予測部は、前記予測に関する情報に含まれた動きベクトルの差分を獲得し、前記動きベクトル差分と前記動きベクトル予測子の加算を介して、現在ブロックの前記動きベクトルを導出することができる。デコード装置の予測部は参照ピクチャを指示する参照ピクチャのインデックスなどを前記予測に関する情報から獲得または誘導することができる。例えば、動きベクトル予測子候補リストは、図14に示すように構成されることができる。
ATMVP(Advanced Temporal Motion Vector Prediction)
図15及び図16は、本発明が適用される一実施形態として、ATMVP(Advanced Temporal Motion Vector Prediction)候補を誘導する方法を説明するための図である。
図15を参照すると、ATMVPは時間的に隣接するピクチャのcollocated blocksの動き情報に基づいてコーディングユニットのサブブロックの動き情報を誘導する方法である。これを介して、時間的動きベクトル予測(Temporal Motion Vector Prediction、TMVP)の性能を向上させることができ、一般的な、またはworst caseの複雑度を下げることができる。本発明において、ATMVPはサブブロックベースの時間マージ候補(subblock-based temporal merging candidate)、SbTMVPと。指称されることもある。
本発明の一実施形態において、ATMVPは次のようなプロセスにより誘導されることができる。
まず、エンコーダ/デコーダは、隣接するコーディングユニットが利用可能で、用いられるコーディングユニットの動きベクトルが、現在候補リスト内の動きベクトルと異なると、空間的隣接コーディングユニットから動きベクトルを追加することができる。一例として、図16を参照すると、前述したプロセスはA1、B1、B0、A0、B2の順に従って実行されることができる。他の一例として、複雑度改善のために、前述したプロセスは、固定された位置(たとえば、A1の位置)のブロックの動きベクトルのみを用いてATMVPを誘導することもできる。
前記エンコーダ/デコーダは、用いられるNo個のスペースの候補のうちの最初の動きベクトル候補は、collocated picture及び各サブブロックの動き情報を誘導する位置を決定するために用いることができる。ここで、Noは用いられるスペース候補者の数を示す。もし、Noが0であれば、collocated picture及び動き0のcollocated positionは、各サブブロックの動き情報を誘導するために用いることができる。
多数の参照ピクチャが用いられる場合、ATMVPにおいて互いに異なるコーディングユニットのcollocated pictureは同じではないことがある。現在ピクチャ内の互いに異なるコーディングユニットに対し、ATMVP誘導のために、互いに異なるcollocated pictureを有するということは、多数の参照ピクチャの動きの情報フィールドが誘導されるべきであることを意味し、これはメモリの帯域幅(bandwidth)を増加させるためには望ましくない。
したがって、本発明は、ATMVPを誘導するとき、同じcollocated pictureを用いる、さらに単純化されたデザインを提供する。たとえば、同じcollocated pictureを用いる方法は、スライス(またはタイルのグループ)のヘッダで定義されることがあるが、本発明はこれに限定されない。一例として、ブロックレベルで、隣接ブロックAの参照ピクチャがcollocated pictureと異なると、隣接ブロックAの動きベクトルは、時間的動きベクトルのスケーリング方法に基づいてスケーリングすることができる。そして、前記隣接ブロックAのスケールされた動きベクトルは、ATMVPで用いることができる。
図17は、本発明が適用される一実施形態として、ATMVP(Advanced Temporal Motion Vector Prediction)候補を誘導する方法を例示する図である。
図17を参照すると、本発明の一実施形態において、現在ブロックの右下端(right-bottom)のブロックまたは現在ブロックの中央(center)の位置の時間隣接ブロック(またはcolPB)の動きベクトルを用いるTMVPは画面内の動きを反映していないので、エンコーダ/デコーダは、周辺ブロックの動きベクトルが指す位置のcolPBの動きベクトルをMVPとして用いることができる。
たとえば、エンコーダ/デコーダは、図17に示されたマージ候補者の構成手順と共にチェックしながら、最初に用いられるスペース隣接ブロック(spatial neighbor block)の動きベクトルを見つけることができる。そして、参照ピクチャで、前記動きベクトルが指す位置をcol-PB(つまり、ATMVP候補)として導出することができる。
また、前記動きベクトルを各サブブロック単位で対応ブロック(corresponding block)の動きベクトルとして用いられる。この際、特定サブブロックに動きベクトルが存在しない場合、前記対応ブロックの中心(center)に位置するセンターブロックの動きベクトルを利用可能でないサブブロックのための動きベクトルとして用いられ、これを代表動きベクトルとして貯蔵することができる。
Temporal motion vector data Storage reduction
本発明の一実施形態は、前述したATMVPを適用する過程で、メモリ(例えば、DRAM)に貯蔵された動き情報をフェッチ(fetch)する過程で、ハードウェアキャッシュヒット(hardware cache hit)の割合を増加させるために、固定された参照ピクチャの動き情報のみを参照する方法を提案する。
以下の実施形態は、サブブロック‐ベースの時間的マージベース動きデータの誘導過程の一例を示す。以下で、空間的候補または時間的候補は、空間的マージ候補または時間的マージ候補と指称されることがある。
図18は、本発明が適用される一実施形態に係る、現在ピクチャをデコードするために動き情報をフェッチしてくる参照ピクチャを予め定義する(pre-define)する方法の例を示す。
図18のように、予め定義された参照ピクチャのみを用いることにより、図17のように、現在ブロックの空間的候補位置を参照する過程で、その空間候補の動き情報が予め定義された参照ピクチャを参照しているかどうかに応じて、ATMVPをハードウェア親和的に変更することができる。
図19は、本発明が適用される実施形態として、現在ピクチャの参照リストの構成の例を示す。図19を参照して、ランダムアクセス(random access)構造でGOP(group of pictures)が16である構造で、現在ピクチャのPOC(picture order count)が4の場合、現在ピクチャの参照リストを一つの例として説明する。
現在ピクチャ(POC 4)がB−スライス(B-slice)の場合、現在ピクチャの空間的参照候補は、最大リスト0(List 0、L0)とリスト1(List 1、L1)の全てを参照する両方向‐予測(Bi-prediction)にデコードされるか、またはL0のみを参照する一方向 - 予測(Uni-prediction)またはL1のみを参照する一方向 - 予測でデコードすることができる。
図20は、本発明が適用される実施形態として、現在ブロックに隣接する周辺ブロックの予測モードと予測方向別参照ピクチャ構成の例を示す。
図20を参照すると、候補0(cand0)はインター予測(両方向予測)でエンコード/デコードされ、L0方向にPOC(8)を参照しており、L1方向にPOC(0)を参照する。また、図20において、候補1(cand1)はイントラ予測でエンコード/デコードされ、候補2(cand2)はインター予測(一方向 - 予測)でエンコード/デコードされ、L1方向にPOC(8)を参照し、候補3(cand3)はイントラ予測でエンコード/デコードされ、候補4(cand4)はインター予測(一方向 - 予測)でエンコード/デコードされ、L0方向にPOC(0)を参照する。
この場合、参照候補を巡回(traverse)するときL0、L1の順序で巡回しながら参照候補の対応方向の参照ピクチャがあらかじめ定義された参照ピクチャである場合、本発明の実施形態は、その参照の候補の動き情報に基づいてColPBを誘導する方法を提案する。すなわち、図19に示すように、現在ブロックの周辺情報が複号化された場合には、予め定義された(pre-defined)ピクチャのPOCが8とすると、POC 8番ピクチャは、リスト0(List 0)とリスト1(List 1)に存在する。つまり、現在ブロックにATMVPを適用するために周辺空間的候補(spatial candidate)の動き情報の確認を介して、予め定義された(pre-defined)ピクチャを参照する最初の候補(candidate)をColPB(collocated prediction block)を決定するための動き情報として用いるプロセスにおいて、効率的にリスト(List)方向の順または探索順序を決定する方法が必要である。
つまり、空間的マージ候補が参照する参照ピクチャが、あらかじめ決定された参照ピクチャと同じであれば、前記空間的マージ候補の動き情報によって特定される同位ブロックまたはカラケートされた(同じ位置)ブロック(collocated block)を指示する第1マージ候補を空間的マージ候補リストに追加することができる。
以降、マージ候補リストから特定マージ候補を指示するマージインデックスをデコードし、マージインデックスによって指示された特定のマージ候補の動き情報を用いて、現在ブロックの予測ブロックを生成することができる。ここで、前記マージインデックスが第1マージ候補を指示する場合、前記第1マージ候補のサブブロックの動き情報を用いることにより、予測ブロックが生成されることができる。
また、空間的マージ候補は探索順序に基づいてマージ候補リストから選択することができる。ここで、探索順序の決定は、マージ候補リストに以前に追加された空間的マージ候補の探索順序の決定を意味することができる。
本発明の一実施形態は、現在ブロックのインター予測のための空間的候補のリストを生成するために、予め定義された参照候補を巡回しながら、その候補からL0、L1の順序どおり参照ピクチャを確認する方法を提案する。
図21は、本発明が適用される実施形態に係る空間的候補のリストを生成するための探索順序の一例を示す。図21は、図20のようにデコーディングされ周辺ブロックの情報を用いて空間的候補のリストを生成するための探索順序の例を示す。
以下で、本発明の一実施形態に係る空間的候補(spatial candidate)を選択する手順を説明する。
図20に示すように候補1(candidate 1)と候補3(candidate 3)は、イントラモードでデコーディングされたため順番で抜けるようになり、図21のような順序で探索した場合、予め定義されたピクチャのPOCが8であれば0番順の候補0(candidate)のリスト0(list 0)のMV(motion vector)に基づいてColPb(collocated prediction block)が誘導される。本実施形態は、表2に示されたものと同じコード(code)の形態で実現されることができる。
本発明の実施形態は、参照候補を巡回するときに参照方向(L0、L1)の順序で巡回しながら、特定の参照候補の特定方向の参照ピクチャがあらかじめ定義された参照ピクチャの場合、予め定義された参照ピクチャを参照する参照候補の動き情報に基づいてColPBを誘導する方法を提案する。
現在ピクチャ(POC 4)がB−スライス(B-slice)の場合、現在ピクチャの空間参照候補は、最大リスト0(List 0、L0)とリスト1(List 1、L1)の全てを参照する両方向‐予測(Bi-prediction)にデコードされるか、またはL0のみを参照する一方向 - 予測(Uni-prediction)またはL1のみを参照する一方向 - 予測でデコードされることができる。
本発明の一実施形態において、空間的候補ブロックの探索順序が現在ピクチャのスライスタイプに基づいて決定することができる。例えば、順探索のための条件として、現在ピクチャがB−スライスかどうかが含めることができる。
図22は、本発明が適用される実施形態に係る空間的候補のリストを生成するための探索順序の他の例を示す。図22は、図20のように構成された周辺ブロックの情報を用いて空間的候補のリストを生成するための探索順序の例を示す。
図22を参照すると、参照方向(L0、L1)の順で優先的に探索が行われるので、L0の予測方向を有する候補0(candidate 0)のL0と候補1(candidate1)の順で探索が実行され、以来、L1の予測方向を有する候補0(candidate 0)のL1と候補2(candidate 2)のL1順に探索が行われる。
図20を参照すると、候補1(candidate 1)と候補3(candidate 3)は、イントラモードでデコーディングされたため順番で抜けるようになり、図22のような順序で探索した場合、予め定義されたピクチャのPOCが8であれば0番順序の候補0(candidate)のリスト0(list 0)のMV(motion vector)に基づいてColPb(collocated prediction block)が誘導される。本実施形態は、表3に示されたようなコードの形で実現されることができる。
図23は、本発明が適用される実施形態として、現在ピクチャの参照ピクチャリストの構成の他の例を示す。
本発明の実施形態において、現在ピクチャがB−スライス(B-slice)の場合、現在ピクチャの空間的参照候補は、最大リスト0(List 0、L0)とリスト1(List 1、L1)をすべて参照する両方向‐予測(Bi-prediction)にデコードされるか、またはL0のみを参照する一方向 - 予測(Uni-prediction)またはL1のみを参照する一方向 - 予測でデコードすることができる。
本発明の一実施形態は、参照候補を巡回するときに、現在のスライス(slice)のために構成された参照ピクチャリストを参照して順序を決定する方法を提案する。図23のように低ディレイ(low delay)ケースまたはランダムアクセスで、現在ピクチャの参照リストに構成されたピクチャのPOCが現在ピクチャより小さいか、同じ値を有する場合、すなわち、現在ピクチャより前でディスプレイされるピクチャのみでリストが構成された場合を考慮して、特定の方向を先に確認する方法が用いられる。
図23を参照すると、現在ピクチャ(POC(3))のL0方向の参照ピクチャ(L0方向に対応する参照リスト)は、POC(0)とPOC(1)を含み、現在ピクチャ(POC(3))のL1方向の参照ピクチャ(L1方向に対応する参照リスト)は、POC(0)を含むことができる。
本実施形態は、表4と表5のようなコードによって実現されることができる。
表4のコードでgetCheckLDC()関数は、表5のような形で実現されることができ、これは現在ピクチャの参照ピクチャリストのPOCに基づく低ディレイ条件(low delay condition)可否を決定する。
図24は、本発明が適用される実施形態として、現在ブロックに隣接する周辺ブロックの予測モードと予測方向別参照ピクチャ構成の他の例を示す。
図24を参照すると、候補0(cand0)はインター予測(両方向予測)でエンコード/デコードされ、L0方向にPOC(0)を参照し、L1方向にPOC(1)を参照する。また、図20において、候補1(cand1)はイントラ予測でエンコード/デコードされ、候補2(cand2)はインター予測(一方向 - 予測)でエンコード/デコードされ、L1方向にPOC(0)を参照し、候補3(cand3)はイントラ予測でエンコード/デコードされ、候補4(cand4)はインター予測(一方向 - 予測)でエンコード/デコードされ、L0方向にPOC(1)を参照する。
図25は、本発明が適用される実施形態に係る空間的候補リストを生成するための探索順序の例として、参照ピクチャが現在ピクチャのPOC(picture order count)より低いPOCを有するかどうかに基づいて決定される探索順序の例を示す。
本発明の実施形態に係れば、図23のような条件で図24のように構成された周辺ブロックを図25のような順序で巡回しながら、特定の参照候補の特定方向の参照ピクチャがあらかじめ定義された参照ピクチャである場合、その特定参照候補の動き情報に基づいてCOlPBが誘導されることができる。
本発明の実施形態は、参照候補を巡回する際、上位レベルの構文(high level syntax)によって定義された参照ピクチャがL0で誘導されるか、またはL1で誘導されるかを考慮して、L0からL1の順、またはL1からL0の順序を適応的に選択する方法を提案する。たとえば、SPS(slice parameter set)、PPS(picture parameter set)、またはスライスヘッダ(slice header)で予め定義されたピクチャ情報がどの方向のリストで発生するかをチェックして、その方向からの探索を実行することができる。例えば、空間的候補リストから空間的候補の選択のための探索順序は、上位レベルの構文により定義される特定参照ピクチャリストに基づくことができる。
図26と図27は、本発明が適用される実施形態に係る空間的候補のリストを生成するための探索順序として、上位レベルの構文(high level syntax:ハイレベルシンタックス)で定義された優先方向を考慮して設定された探索順序の例をそれぞれ示す。
図20のように周辺ブロックが構成された場合、リスト0(List 0)が予め定義されたピクチャリストとすると、図26のような順序で探索が実行されることができる。リスト0が予め定義されたピクチャリストであるため、L0方向の参照ピクチャを有する候補である候補0(candidate 0)のL0方向と候補4(candidate 4)のL0方向が先に探索され、以後、L1方向の参照ピクチャを有する候補ある候補0(candidate 0)のL1方向と候補2(candidate 2)のL1方向が探索される。
逆に、L1が予め定義されたピクチャリストとすると、図27のような順序で探索が実行されることができる。リスト1が、予め定義されたピクチャリストであるため、L1方向の参照ピクチャを有する候補である候補0(candidate 0)のL1方向と候補2(candidate 2)のL1方向が先に探索され、以後、L0方向の参照ピクチャを有する候補ある候補0(candidate 0)のL0方向と候補4(candidate 4)のL0方向が探索される。
本発明の一実施形態において、先に説明した実施形態をすべて組み合わせて探索順序が決定されることができる。つまり、現在ブロックのスライスタイプ、上位レベルの構文により定義された参照ピクチャリスト、または現在ピクチャの参照ピクチャリストに含まれたすべての参照ピクチャのPOCが現在ピクチャのPOCより小さいかどうかを含む条件に基づいて、探索順序が決定されることができる。例えば、空間的候補リストから空間的候補の選択のための探索順序は、現在ピクチャの参照ピクチャリストに含まれたすべての参照ピクチャのPOCが現在ピクチャのPOCより小さいかどうかに基づくことができる。
このような条件を考慮した探索順序の決定は、下記の表6のようなコードによって実現されることができる。
また、すなわち、現在ブロックのスライスタイプ、上位レベルの構文により定義された参照ピクチャリスト、または現在ピクチャの参照ピクチャリストに含まれたすべての参照ピクチャのPOCが現在ピクチャのPOCより小さいかどうかの内、少なくとも一つの条件に基づいて探索順序が決定されることができる。
一実施形態において、一つの参照ピクチャから時間的動きベクトル(temporal motion vector)が誘導されることができる。時間的動きベクトルは、エンコーダだけでなく、デコーダで既にデコードされたすべての参照ピクチャから誘導されることができる。しかし、すべての参照ピクチャの誘導方法は、現在スライス、ピクチャ、及びタイルへの参照ピクチャの動きデータを貯蔵するための時間的メモリ構造を用いるハードウェアでのメモリ使用のイッシュ(issue)とメモリ帯域幅の上昇イッシュと(memory bandwidth increment)を引き起こすことができる。本発明の実施形態で提案される方法は、予め定義された(pre-defined)ピクチャから時間的動きベクトルを誘導する方法を提案する。時間的動きベクトル誘導のために一つの参照ピクチャを参照する本方法が、図18に示される。
図18に示されたように、時間的動きベクトル誘導のための代替的な参照ピクチャがあるにもかかわらず、特定の方法により予め定義された参照ピクチャが時間的な動きのデータを誘導するために参照される。
本発明の一実施形態は、シグナリングされた構文によって時間的動きベクトル誘導のための一つの参照ピクチャを選択する方法を提供することができる。構文は、エンコーダから参照ピクチャリストに含まれたピクチャの内、いずれか1つの特定の参照ピクチャを選択するためにシグナリングすることができる。表7は、提案された構文を示す。
特に、提案され構文は、表8のように表現することができる。表8は、HEVC(high efficiency video coding)で時間的動きベクトル誘導のためのカラケートされたピクチャを誘導するための構文を示す。
図28と図29は、本発明が適用される実施形態として、現在ピクチャと参照ピクチャのPOC(picture order count)を考慮して、予め定義される参照ピクチャの例を示す。
本発明の一実施形態において、時間的動きベクトル誘導のための参照ピクチャは、POC(picture count order)によってエンコーダだけでなく、デコーダで定義することができる。参照ピクチャは参照ピクチャリストで現在ピクチャから最も近い参照ピクチャとして定義することができる。参照ピクチャリストから最も近いピクチャは、現在ピクチャから最も小さいPOCの違いを有することができる。
図28において、予め定義された参照ピクチャとして最も小さいPOCを有するピクチャが設定される場合の例が示される。図28を参照すると、L0参照リストに含まれた参照ピクチャ(POC(2)、POC(3)、POC(4))の内、現在ピクチャ(POC(6))に最も近いPOCを有する参照ピクチャ(POC (4))が予め定義された参照ピクチャとして決定される。
同じPOC距離を有する参照ピクチャがリストに存在する場合、図29に示すように、最小の時間的ID(temporal ID、TID)を有する参照ピクチャが選択される。
図29を参照すると、L0参照リストに含まれた参照ピクチャの(POC(2)、POC(3)、POC(4))の内、参照ピクチャ(POC(4))が、現在ピクチャ(POC(6))と最も近いPOC距離2を有し、L1参照リストに含まれた参照ピクチャ(POC(8))また、現在ピクチャ(POC(6))に最も近いPOC距離2を有する。現在ピクチャ(POC(6)に最も近いPOC距離2を有するL0参照リストの参照ブロック(POC(4))とL1参照リストの参照ブロック(POC(8))の内、さらに小さなTID(0)を有するPOC(8)がTID(3)を有するPOC(4)の代わりに、予め定義された参照ピクチャとして決定することができる。
図30と図31は、本発明が適用される実施形態としてATMVPのための空間的候補の選択方法の例を示す。
本発明の一実施形態において、ATMVP(adaptive temporal motion vector prediction)のための空間的候補の選択方法が適用されることができる。ATMVPは参照ピクチャから時間的な動きのデータを用いるツール(tool)の一つである。一般的なATMVPは、対応するブロック(corresponding block)から時間的な動きデータを誘導する。該ブロックの位置は、空間的に隣接候補の動きデータによって決定される。一般的なATMVPは時間的な動きのデータとランダムな動きのデータを有する参照空間候補の動きデータを誘導するために、空間的候補リスト順で最初可能な空間的候補を参照するからである。
したがって、時間的動きベクトル誘導方法を誘導するための参照ピクチャは、選択された候補の動きデータによって定義される。最悪の場合、参照ピクチャの数は、ピクチャをデコードするための圧縮標準のレベルの水溶性(level capabilities)によって定義される。
本発明の実施形態において、図30と図31に示されたように、一つの参照ピクチャを用いた改善されたATMVP方法が適用されることができる。本発明の実施形態において、候補の順序は、図30のように、A〜Eまでと定義することができる。図30に示されたように、空間的候補は1つ以上の参照ピクチャを有する。
図30を参照すると、使用できないブロックEを除外した現在ブロックと隣接する空間的候補(A、B、C、D)は、それぞれ一つまたはそれ以上の参照ピクチャを参照する。
本発明の実施形態から、予め定義された参照ピクチャとして同じ参照ピクチャを参照する空間的候補がATMVPのための候補として選択され、時間的な動きのデータが、図31に示されたように誘導することができる。
図31を参照すると、予め定義された参照ピクチャインref_idx(0)に対応する参照ピクチャを参照する空間的候補BがATMVPの候補として選択され、空間的候補Bの時間的動きデータ(MVxb、MVyb)が誘導されることができる。
さらに、予め定義された参照ピクチャと同じ参照ピクチャを参照する候補がない場合にについて以下の3つの方法が用いられることができる。
ゼロ動きベクトル(zero motion vector)は、そのブロックの位置を決定するために用いられてサブブロック単位で時間的動きベクトルが誘導される。
ATMVP候補の使用が不可能するように設定される。
最初の可能な空間的候補の動きベクトルがあらかじめ定義されたピクチャに合わせてスケールされる。
図32は、本発明が適用される実施形態として、一空間的候補の動きベクトルのスケールを介して、時間的動きベクトルを誘導する方法の例を示す。
図32に示されたように、「MVxa、MVya」と表示された最初の可能な空間的候補(A)の動きベクトルが、あらかじめ決定されたモーションベクトルにスケールされ、「scaled MVxa、scaled MVya "で決定される。
図33と図34は、本発明が適用される実施形態として、のマッピング(backward mapping)に基づいた時間的動きベクトル誘導方法の例を示す。
本発明の実施形態において、一つの参照ピクチャから後進マッピング(backward mapping)に基づいた時間的動きベクトル誘導が適用されることができる。後進マッピング時間動きデータ誘導方法は、図33に示されたように、すべての参照ピクチャにおいて動きのデータを用いることができる。
一般的な単一候補(unilateral candidate)は後進マッピング方法の一つである。後進マッピング手順は、たとえ後進マッピング手順によって時間的な動きのデータを有さないいくつかのブロックがあるとしても、単一候補の方法を含む予め決定されたピクチャにのみ適用することができる。
前述のような単一の候補方法(予め決定された参照ピクチャだけを参照して後進のマッピングを適用)は、図34で示される。図34を参照すると、L0参照リストに含まれた参照ピクチャの内、あらかじめ決定された参照ピクチャの時間的な動きのデータが現在ピクチャに後進マッピングを介して適用することができる。
図35は、本発明が適用される実施形態に係る予測ブロックを生成するためのフローチャートである。
図35を参照すると、説明の便宜のためにデコーダを中心に説明するが、本発明がこれに限定されるものではなく、インター予測に基づいて、インター予測ブロックを生成する方法は、エンコーダでも実質的に同じように適用されることができる。
デコーダは、現在ブロックの空間的マージ候補(spatial merge candidate)と時間的マージ候補(temporal merge candidate)を用いてマージ候補リスト(merging candidate list)を生成する(S3501)。
デコーダは、前記マージ候補リストから特定のマージ候補を指示するマージインデックスを獲得する(S3502)。
デコーダは、前記特定マージ候補の動き情報を用いて、現在ブロックの予測ブロックを生成する(S3503)
実施形態として、前記マージ候補リストを生成する段階は、前記空間的マージ候補の参照ピクチャが、あらかじめ決定されたピクチャと同じであれば、前記空間的マージ候補の動き情報によって特定されるカラケートされたブロック(collocated block)を指示する第1マージ候補を前記マージ候補リストに追加する段階を含むことができる。
実施形態として、前記マージ候補リストを生成する段階は、以前に前記マージ候補リストに追加された空間的マージ候補の探索順序を決定する段階をさらに含むことができ、前記空間的マージ候補は、前記探索順序に基づいて前記マージ候補リストから選択することができる。
実施形態として、前記探索順序は、前記現在ブロックのスライスタイプ、上位レベルの構文(high level syntax)によって定義される特定の参照ピクチャリスト、及び現在ピクチャの参照ピクチャリストに含まれたすべての参照ピクチャのピクチャ順カウント(picture order count、POC)が現在ピクチャのPOCと小さいか同じかの内、少なくとも一つに基づいて決定することができる。
実施形態として、前記予測ブロックは、前記マージインデックスが前記第1マージ候補を指示すると、第1マージ候補のサブブロックの動き情報を用いることにより、生成することができる。
実施形態として、前記マージ候補リストを生成する段階は、前記空間的マージ候補の参照ピクチャが、あらかじめ決定されたピクチャと異なると、前記空間的マージ候補の動き情報をスケーリングすることにより、特定される他のカラケートされたブロックを指示する第2マージ候補を前記マージ候補リストに追加する段階を含むことができる。
図36は、本発明が適用される実施形態に係るインター予測装置を例示する図である。
図36においては、説明の便宜のために、インター予測部を一つのブロックに示されたが、インター予測部エンコーダ及び/またはデコーダに含まれる構成で実現されることができる。
図36を参照すると、インター予測部は先の、図8〜図34で提案された機能、プロセス及び/または方法を実現する。具体的に、インター予測部マージ候補リスト生成部3601、マージインデックス獲得部3602、及び予測ブロック生成部3603を含みから構成されることができる。
マージ候補リスト生成部3601は、現在ブロックの空間的マージ候補と時間的マージ候補(temporal merge candidate)を用いてマージ候補リスト(merging candidate list)を生成する。
マージインデックス獲得部3602は、前記マージ候補リストから特定マージ候補を指示するマージインデックスを獲得する。
予測ブロック生成部3603は、前記特定マージ候補の動き情報を用いて、現在ブロックの予測ブロックを生成する。
実施形態として、前記マージ候補リストの生成部は、前記空間的マージ候補の参照ピクチャが、あらかじめ決定されたピクチャと同じであれば、前記空間的マージ候補の動き情報によって特定されるカラケートされた(同じ位置)ブロック(collocated block)を指示する第1マージ候補を前記マージ候補リストに追加するように設定されることがある。
実施形態として、前記マージ候補リストを生成部は、以前に前記マージ候補リストに追加された空間的マージ候補の探索順序を決定するように設定され、前記空間的マージ候補は、前記探索順序に基づいて、前記マージ候補リストから選択されることができる。
実施形態として、前記探索順序は、前記現在ブロックのスライスタイプ、上位レベルの構文(high level syntax)によって定義される特定参照ピクチャリスト、及び現在ピクチャの参照ピクチャリストに含まれたすべての参照ピクチャのピクチャ順カウント(picture order count、POC)が現在ピクチャのPOCと小さいか同じかの内、少なくとも一つに基づいて決定することができる。
実施形態として、前記マージインデックスが前記第1マージ候補を指示すると、第1マージ候補のサブブロックの動き情報を用いることにより、生成することができる。
実施形態として、前記マージ候補リストを生成部は、前記空間的マージ候補の参照ピクチャが、あらかじめ決定されたピクチャとは異なると、前記空間的マージ候補の動き情報をスケーリングすることにより、特定される他のカラケートされた(同じ位置)ブロックを指示する第2マージ候補を前記マージ候補リストに追加するように設定されることができる。
以上で説明した本発明の実施形態は、説明の便宜上、それぞれの実施形態を区分して説明したが、本発明がこれに限定されるものではない。つまり、先に説明した実施形態は、それぞれ独立して実行されることもあり、一つ以上のいくつの実施形態が組み合わされて実行されることもある。
図37は、本発明が適用されるビデオコーディングシステムを示す。
ビデオコーディングシステムは、ソース装置(source device)と受信装置(receiving device)を含むことができる。ソース装置は、エンコードされたビデオ/映像情報またはデータを、ファイルまたはストリーミング形式でデジタル貯蔵媒体またはネットワークを介して受信装置に転達することができる。
前記ソース装置は、ビデオソース(video source)、エンコード装置(encoding apparatus)、転送部(transmitter)を含むことができる。前記受信装置は、受信部(receiver)、デコード装置(decoding apparatus)及びレンダラー(renderer)を含むことができる。前記エンコード装置は、ビデオ/映像エンコード装置と呼ばれることができ、前記デコード装置は、ビデオ/映像デコード装置と呼ばれることができる。送信機は、エンコード装置に含まれることができる。受信機は、デコード装置に含まれることができる。レンダラーは、ディスプレイ部を含むこともでき、ディスプレイ部は別の装置または外部のコンポーネントで構成されることもある。
ビデオソースはビデオ/映像のキャプチャ、合成または生成過程などを通じてビデオ/映像を獲得することができる。ビデオソースはビデオ/映像キャプチャ装置及び/またはビデオ/映像生成装置を含むことができる。ビデオ/映像キャプチャ装置は、例えば、1つ以上カメラ、以前にキャプチャされたビデオ/映像を含むビデオ/映像アーカイブなどを含むことができる。ビデオ/映像生成装置は、例えばコンピュータ、タブレット及びスマートフォンなどを含むことができ、(電子的に)ビデオ/映像を生成することができる。たとえば、コンピュータなどを通じて、仮想のビデオ/映像が生成されることができ、この場合、関連するデータが生成される過程として、ビデオ/映像キャプチャプロセスが代えることができる。
エンコード装置は、入力ビデオ/映像をエンコードすることができる。エンコード装置は、圧縮とコーディング効率のために予測、変換、量子化などの一連の手順を実行することができる。エンコードされたデータ(エンコードされたビデオ/映像情報)は、ビットストリーム(bitstream)の形で出力されることができる。
転送部はビットストリームの形で出力されたエンコードされたビデオ/映像情報またはデータを、ファイルまたはストリーミング形式でデジタル貯蔵媒体またはネットワークを介して受信装置の受信部に転達することができる。デジタル貯蔵媒体は、USB、SD、CD、DVD、Blu-ray、HDD、SSDなど、様々な貯蔵媒体を含むことができる。転送部は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介して転送するためのエレメントを含むことができる。受信部は、前記ビットストリームを抽出してデコード装置に転達することができる。
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測などの一連の手順を実行して、ビデオ/映像をデコードすることができる。
レンダラーは、デコードされたビデオ/映像をレンダリングすることができる。レンダリングされたビデオ/映像は、ディスプレイ部を介して表示されることができる。
図38は、本発明が適用される実施形態として、コンテンツのストリーミングシステム構造図を示す。
図38を参照すると、本発明が適用されるコンテンツのストリーミングシステムは、大きくエンコードサーバ、ストリーミングサーバ、Webサーバ、メディアストレージ、ユーザ装置及びマルチメディア入力装置を含むことができる。
前記エンコードサーバは、スマートフォン、カメラ、ビデオカメラなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに転送する役割をする。他の例として、スマートフォン、カメラ、ビデオカメラなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコードサーバは省略することができる。
前記ビットストリームは、本発明が適用されるエンコード方法またはビットストリームを生成する方法によって生成されることができ、前記ストリーミングサーバは、前記ビットストリームを転送または受信する過程で一時的に前記ビットストリームを貯蔵することができる。
前記ストリーミングサーバは、Webサーバを介した、ユーザの要請に基づいて、マルチメディアデータをユーザ装置に転送し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体の役割をする。ユーザが前記Webサーバに所望するサービスを要請すると、前記Webサーバは、これをストリーミングサーバに転達し、前記ストリーミングサーバは、ユーザに、マルチメディアデータを転送する。この際、前記コンテンツのストリーミングシステムは、別の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツのストリーミングシステム内の各装置間のコマンド/応答を制御する役割をする。
前記ストリーミングサーバは、メディアストレージ及び/またはエンコードサーバからコンテンツを受信することができる。例えば、前記のエンコードサーバからコンテンツを受信することになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間貯蔵することができる。
前記ユーザ装置の例としては、携帯電話、スマートフォン(smartphone)、ノートパソコン(laptop computer)、デジタル放送用端末機、PDA(personal digital assistants)、PMP(portable multimedia player)、ナビゲーション、スレートPC(slate PC)、タブレットPC(tablet PC)、ウルトラブック(ultrabook)、ウェアラブル装置(wearable device、例えば、位置型端末(smartwatch)、グラス型端末(smart glass)、HMD(head mounted display))、デジタルTV、デスクトップコンピュータ、デジタルサイネージなどがあることができる。
前記コンテンツのストリーミングシステム内の各サーバは、分散サーバで運営されることができ、この場合、各サーバで受信するデータは、分散処理することができる。
前記記述されたように、本発明で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で実現されて実行されることができる。例えば、各図で示した機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で実現されて実行されることができる。
また、本発明が適用されるデコーダ及びエンコーダは、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信などのようなリアルタイム通信装置、モバイルストリーミング装置、貯蔵媒体、ビデオカメラ、ビデオオンデマンド(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、テレビ電話、ビデオ装置、及び医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために用いることができる。たとえば、OTTビデオ(Over the top video)装置では、ゲーム機、ブルーレイプレーヤー、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを含むことができる。
また、本発明が適用される処理方法は、コンピュータで実行されるプログラムの形で生産されることができ、コンピュータが読み取り可能な記録媒体に貯蔵することができる。本発明に係るデータ構造を有するマルチメディアデータもまた、コンピュータが読み取り可能な記録媒体に貯蔵することができる。前記コンピュータが読み取り可能な貯蔵媒体は、コンピュータで読み取り可能なデータが貯蔵されるあらゆる種類のストレージ装置及び分散ストレージ装置を含む。前記コンピュータが 読み取り可能な貯蔵媒体は、例えば、ブルーレイディスク(BD)、ユニバーサルシリアルバス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD−ROM、磁気テープ、フロッピーディスク、及び光学的データ貯蔵装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを通じた伝送)の形で実現されたメディアを含む。また、エンコード方法で生成されたビットストリームが、コンピュータが読み取り可能な記録媒体に貯蔵したり、有無線通信ネットワークを介して転送されることができる。
また、本発明の実施形態は、プログラムコードによるコンピュータプログラム製品として実現されることができ、前記プログラムコードは、本発明の実施形態により、コンピュータで実行することができる。前記プログラムコードは、コンピュータによって読み取り可能なキャリア上に貯蔵することができる。
以上で説明した実施形態は、本発明の構成要素と特徴が所定の形態で結合されたものである。各構成要素または特徴は、別の明示的な言及がない限り選択的なものを検討されるべきである。各構成要素または特徴は、他の構成要素や特徴と結合されない形態で実施されることができる。また、一部の構成要素及び/または特徴を結合して、本発明の実施形態を構成することも可能である。本発明の実施形態で説明される動作の順序は変更されることができる。どの実施形態の一部の構成や特徴は、他の実施形態に含まれることができ、または他の実施形態に対応する構成または特徴と交替されることができる。特許請求の範囲で明示的な引用関係がない請求項を結合して実施形態を構成したり、出願後の補正により新しい請求項として含めることができることは自明である。
本発明に係る実施形態は、様々な手段、例えば、ハードウェア、ファームウェア(firmware)、ソフトウェアまたはそれらの組み合わせなどにより実現されることができる。ハードウェアによる実現の場合、本発明の一実施形態は、一つまたはそれ以上のASICs(application specific integrated circuits)、DSPs(digital signal processors)、DSPDs(digital signal processing devices)、PLDs(programmable logic devices)、FPGAs(field programmable gate arrays)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサなどにより実現されることができる。
ファームウェアやソフトウェアによる実現の場合、本発明の一実施形態は、以上で説明した機能または動作を実行するモジュール、プロシージャ、関数などの形態で実現されることができる。ソフトウェアコードは、メモリに貯蔵されてプロセッサによって駆動されることができる。前記メモリは、前記プロセッサの内部または外部に位置して、既に公知された多様な手段により、前記プロセッサとデータを送受信することができる。
本発明は、本発明の必須の特徴を逸脱しない範囲で他の特定の形態で具体化されることができることは、当業者に自明である。したがって、前述した詳細な説明は、すべての面で制限的に解釈してはならなく、例示的なものとみなされるべきである。本発明の範囲は、添付された請求項の合理的解釈によって決定されるべきで、本発明の等価的範囲内でのすべての変更は、本発明の範囲に含まれる。
エンコード装置100は、入力映像信号(原本(オリジナル)ブロック、オリジナルのサンプルアレイ)でインター予測部180またはイントラ予測部185から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算してレジデュアル信号(residual signal、残りのブロック、残りのサンプルアレイ)を生成することができ、生成されたレジデュアル信号は、変換部120に転送される。この場合、図示のように、エンコード装置100内で入力映像信号(原本ブロック、オリジナルのサンプルアレイ)で予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは減算部115と呼ばれることができる。予測部は処理対象ブロック(以下、現在ブロックと称する)の予測を行い、前記現在ブロックの予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は現在ブロックまたはCU単位でイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができる。予測部は各予測モードの説明で後述するように、予測モード情報など予測に関する様々な情報を生成し、エントロピーエンコード部190に転達することができる。予測に関する情報は、エントロピーエンコード部190でエンコードされてビットストリーム形態で出力することができる。
図2を参照すると、デコード装置200は、エントロピーデコード部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260及びイントラ予測部265を含んで構成されることができる。インター予測部260及びイントラ予測部265を合わせて予測部と呼ばれることができる。つまり、予測部はインター予測部260及びイントラ予測部265を含むことができる。逆量子化部220、逆変換部230を合わせてレジデュアル処理部と呼ばれることができる。つまり、レジデュアル処理部は、逆量子化部220、逆変換部230を含むことができる。前述したエントロピーデコード部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、インター予測部260及びイントラ予測部265は、実施形態に応じて一つのハードウェアコンポーネント(例えば、デコーダまたはプロセッサ)によって構成されることができる。また、メモリ170は、DPB(decoded picture buffer)を含むことができ、デジタル貯蔵媒体によって構成されることもできる。
デコード装置200は、図1のエンコード装置から出力された信号をビットストリームの形で受信することができ、受信された信号は、エントロピーデコード部210を介してデコードすることができる。例えば、エントロピーデコード部210は、前記ビットストリームを解析して映像復元(またはピクチャ復元)に必要な情報(ex。ビデオ/映像情報)を導出することができる。例えば、エントロピーデコード部210は、指数ゴロム符号化、CAVLCまたはCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコードし、映像復元に必要な構文要素の値、レジデュアルに関する変換係数の量子化された値を出力することができる。さらに詳細に、CABACエントロピーデコーディング方法は、ビットストリームで各構文要素に対応するビン(bin)を受信し、デコード対象構文要素の情報と周辺及びデコード対象ブロックのデコード情報、または前の段階でデコードされたシンボル/ビンの情報を用いてコンテキスト(context)モデルを決定し、決定されたコンテキストモデルに基づいて、ビンの発生確率を予測して、ビンの算術デコーディング(arithmetic decoding)を実行して、各構文要素の値に対応するシンボルを生成することができる。このとき、CABACエントロピーデコーディング方法は、コンテキストモデルを決定した後、次のシンボル/空の文脈モデルのためにデコードされたシンボル/ビンの情報を用いて、コンテキストモデルを更新することができる。エントロピーデコード部210でデコードされた情報の内、予測に関する情報は、予測部(インター予測部260とイントラ予測部265)で提供され、エントロピーデコード部210からエントロピーデコードが行われたレジデュアル値、すなわち量子化された変換係数及び関連パラメータ情報は、逆量子化部220に入力されることができる。また、エントロピーデコード部210でデコードされた情報の内、フィルタリングに関する情報は、フィルタリング部240に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)がデコード装置200の内/外部エレメントとしてさたに構成されることがあり、または受信部は、エントロピーデコード部210の構成要素であり得る。
メモリ250のDPBに貯蔵された(修正された)復元ピクチャはインター予測部260から参照ピクチャとして用いることができる。メモリ250は、現在ピクチャ内の動き情報が導出された(またはデコードされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を貯蔵することができる。前記貯蔵された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するために、インター予測部260に転達することができる。メモリ250は、現在ピクチャ内の復元されたブロックの復元サンプルを貯蔵することができ、イントラ予測部265に転達することができる。