以下、本明細書にかかる好ましい実施形態を添付図を参照として詳細に説明する。添付図と共に以下に開示される詳細な説明は、本明細書の例示的な実施形態を説明しようとするものであり、本明細書が実施され得る唯一の実施形態を示そうとするものではない。以下の詳細な説明は、本明細書の完全な理解を提供するために具体的な細部事項を含む。しかし、当業者は、本明細書がこのような具体的な細部事項がなくても実施され得ることを知る。
いくつかの場合、本明細書の概念が曖昧になることを避けるために、公知の構造及び装置は省略されるか、各構造及び装置の核心機能を中心としたブロック図の形式で示し得る。
また、本明細書で使用される用語は、できる限り現在広く使用される一般的な用語を選択しているが、特定の場合は、出願人が任意に選定した用語を使用して説明する。そのような場合は、該当部分の詳細な説明でその意味を明確に記載するので、本明細書の説明で使用された用語の名称だけで単純解釈されてはならず、その該当用語の意味まで把握して解釈されるべきであることを明らかにしておく。
以下の説明で使用される特定の用語は、本明細書の理解を助けるために提供されたものであり、このような特定の用語の使用は、本明細書の技術的思想を外れない範囲で他の形態に変更され得る。例えば、信号、データ、サンプル、ピクチャ、スライス、タイル、フレーム、ブロックの場合、各コーディング過程で適切に代替して解釈され得る。
以下、本明細書における「処理ユニット」は、予測、変換及び/又は量子化等のようなエンコーディング/デコーディングの処理過程が行われる単位を意味する。また、処理ユニットは、輝度(luma)成分に対する単位と、色差(chroma)成分に対する単位を含む意味と解釈され得る。例えば、処理ユニットは、ブロック(block)、コーディングユニット(coding unit、CU)、予測ユニット(prediction unit、PU)、又は変換ブロック(transform unit、TU)に該当し得る。
また、処理ユニットは、輝度成分に対する単位又は色差成分に対する単位と解釈され得る。例えば、処理ユニットは、輝度成分に対するCTB(coding tree block)、CB(coding block)、PU又はTB(transform block)に該当し得る。或いは、処理ユニットは色差成分に対するCTB、CB、PU又はTBに該当し得る。また、これに限定されるわけではなく、処理ユニットは輝度成分に対する単位と色差成分に対する単位を含む意味と解釈されることもある。
また、処理ユニットは、必ずしも正方形のブロックに限定されるわけではなく、3つ以上の頂点を有する多角形の形態で構成されることもある。
また、以下、本明細書でピクセル、画素、又は係数(変換係数又は1次変換を経た変換係数)はサンプルと通称される。また、サンプルを利用するというのは、ピクセル値、画素値、又は係数(変換係数又は1次変換を経た変換係数)等を利用するということを意味し得る。
図1は、本明細書の実施例にかかるビデオコーディングシステムの例を示す。
ビデオコーディングシステムは、ソースデバイス10及び受信デバイス20を含むことができる。ソースデバイス10は、エンコーディングされたビデオ/映像情報又はデータをファイル又はストリーミングの形態でデジタル保存媒体又はネットワークを介して受信デバイス20に伝達することができる。
ソースデバイス10は、ビデオソース11、エンコーディング装置12、送信機13を含み得る。受信デバイス20は、受信機21、デコーディング装置22及びレンダラー23を含み得る。エンコーディング装置10は、ビデオ/映像のエンコーディング装置と呼ばれ、デコーディング装置20は、ビデオ/映像のデコーディング装置と呼ばれる。送信機13は、エンコーディング装置12に含まれ得る。受信機21は、デコーディング装置22に含まれ得る。レンダラー23は、ディスプレイ部を含んでもよく、ディスプレイ部は別のデバイス又は外部のコンポーネントで構成されてもよい。
ビデオソースは、ビデオ/映像のキャプチャー、合成又は生成過程等を介してビデオ/映像を獲得することができる。ビデオソースは、ビデオ/映像のキャプチャーデバイス及び/又はビデオ/映像の生成デバイスを含み得る。ビデオ/映像のキャプチャーデバイスは、例えば、1つ以上のカメラ、以前にキャプチャーされたビデオ/映像を含むビデオ/映像のアーカイブ等を含み得る。ビデオ/映像の生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォン等を含んでもよく(電子的に)ビデオ/映像を生成することができる。例えば、コンピュータ等を介して仮想のビデオ/映像が生成され得、この場合、関連データが生成される過程にビデオ/映像のキャプチャー過程に代えることができる。
エンコーディング装置12は、入力ビデオ/映像をエンコーディングすることができる。エンコーディング装置12は、圧縮及びコーディングの効率のために予測、変換、量子化等一連の手続を行うことができる。エンコーディングされたデータ(エンコーディングされたビデオ/映像情報)は、ビットストリーム(bitstream)の形態で出力されることができる。
送信部13は、ビットストリームの形態で出力されたエンコーディングされたビデオ/映像情報又はデータをファイル又はストリーミングの形態でデジタル保存媒体又はネットワークを介して、受信デバイスの受信部に伝達することができる。デジタル保存媒体は、USB(universal serial bus)、SD(secure digital)、CD(compact disk)、DVD(digital video disk)、ブルーレイ(bluray)、HDD(hard disk drive)、SSD(solid state drive)のような多様な保存媒体を含み得る。送信部13は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含んでもよく、放送/通信ネットワークを介した送信のためのエレメントを含んでもよい。受信機21は、ビットストリームを抽出し、デコーディング装置22に伝達することができる。
デコーディング装置22は、エンコーディング装置12の動作に対応する逆量子化、逆変換、予測等一連の手続を行い、ビデオ/映像をデコーディングすることができる。
レンダラー23は、デコーディングされたビデオ/映像をレンダリングすることができる。レンダリングされたビデオ/映像は、ディスプレイ部を介してディスプレイされることができる。
図2は、本明細書の実施例にかかるビデオ/イメージ信号のエンコーディングのためのエンコーディング装置の概略的なブロック図を示す。
図2を参照すると、エンコーディング装置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は、実施例にかかって1つのハードウェアコンポーネント(例えば、エンコーダ又はプロセッサ)によって構成され得る。また、メモリ170は、実施例にかかって1つのハードウェアコンポーネント(例えば、メモリ又はデジタル保存媒体)によって構成され得、メモリ170は、DPB(decoded picture buff−er)175を含み得る。
映像分割部110は、エンコーディング装置100に入力された入力映像(又は、ピクチャ、フレーム)を1つ以上の処理ユニット(processing unit)に分割することができる。一例として、処理ユニットは、コーディングユニット(CU)と呼ばれる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)又は最大のコーディングユニット(largest coding unit、LCU)からQTBT(Quad−tree binary−tree)構造によって、再帰的に(recursively)分割されることができる。例えば、1つのコーディングユニットは、クアッドツリー構造及び/又はバイナリツリー構造に基づいて、下位(deeper)デプスの複数のコーディングユニットに分割され得る。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造が後に適用され得る。或いは、バイナリツリー構造が先に適用されることもある。これ以上分割されない最終のコーディングユニットに基づいて、本明細書にかかるコーディング手続が行われる。この場合、映像の特性によるコーディングの効率等に基づいて、最大のコーディングユニットが直ぐに最終のコーディングユニットとして使用され得、或いは必要に応じて、コーディングユニットは再帰的に(recursively)より下位デプスのコーディングユニットに分割され、最適のサイズのコーディングユニットが最終のコーディングユニットとして使用され得る。ここで、コーディング手続というのは、後述する予測、変換、及び復元などの手続を含み得る。別の例として、処理ユニットは、予測ユニット(PU)又は変換ユニット(TU)をさらに含み得る。この場合、予測ユニット及び変換ユニットは、それぞれ前述した最終のコーディングユニットから分割又はパーティショニングされ得る。前記予測ユニットはサンプル予測の単位であってもよく、前記変換ユニットは変換係数を誘導する単位及び/又は変換係数から残差信号(residual signal)を誘導する単位であってもよい。
ユニットは、場合によって、ブロック(block)又は領域(area)等の用語と混用して使用してもよい。一般的な場合、MxNのブロックは、M個の列とN個の行とからなるサンプル又は変換係数(transform coefficient)の集合を表し得る。サンプルは、一般的にピクセル又はピクセルの値を表し得、輝度(luma)成分のピクセル/ピクセル値のみを表すこともあり、彩度(chroma)成分のピクセル/ピクセル値のみを表すこともある。サンプルは、1つのピクチャ(又は映像)をピクセル(pixel)又はペル(pel)に対応する用語として使用され得る。
エンコーディング装置100は、入力映像信号(原本ブロック、原本サンプルアレイ)でインター予測部180又はイントラ予測部185から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して残差信号(残余ブロック、残余サンプルアレイ)を生成することができ、生成された残差信号は変換部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)のうち少なくとも1つを含んでもよい。ここで、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)の値等)を共に、又は別にエンコーディングすることもできる。エンコーディングされた情報(例えば、ビデオ/映像の情報)は、ビットストリームの形態でNAL(network abstraction layer)ユニット単位で送信又は保存されることができる。ビットストリームは、ネットワークを介して送信されることができ、又はデジタル保存媒体に保存されることができる。ここで、ネットワークは、放送網及び/又は通信網等を含んでもよく、デジタル保存媒体はUSB、SD、CD、DVD、ブルーレイ、HDD、SSD等の多様な保存媒体を含んでもよい。エントロピーエンコーディング部190から出力された信号は、送信する送信部(図示せず)及び/又は保存する保存部(図示せず)がエンコーディング装置100の内/外部のエレメントとして構成されてもよく、又は送信部はエントロピーエンコーディング部190の構成要素であってもよい。
量子化部130から出力された量子化された変換係数は、予測信号を生成するために利用されることができる。例えば、量子化された変換係数に対してループ内の逆量子化部140、及び逆変換部150を介して逆量子化並びに逆変換を適用することによって、残差信号が復元できる。加算部155は、復元された残差信号をインター予測部180又はイントラ予測部185から出力された予測信号に加えることによって、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)が生成できる。スキップモードが適用された場合のように、処理対象のブロックに対する残差がない場合、予測されたブロックが復元ブロックとして使用できる。加算部155は、復元部又は復元ブロック生成部と称される。復元信号は、現在ピクチャ内の次の処理対象のブロックのイントラ予測のために使用されることができ、後述するようにフィルタリングを経て、次のピクチャのインター予測のために使用されることもできる。
フィルタリング部160は、復元信号にフィルタリングを適用し、主観的/客観的画質を向上させることができる。例えば、フィルタリング部160は、復元ピクチャに多様なフィルタリング方法を適用して、修正された(modified)復元ピクチャを生成することができ、修正された復元ピクチャを復号ピクチャバッファ170に送信することができる。多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)を含み得る。フィルタリング部160は、各フィルタリング方法に関する説明で後述するように、フィルタリングに関する多様な情報を生成してエントロピーエンコーディング部190へ伝達することができる。フィルタリングに関する情報は、エントロピーエンコーディング部190でエンコーディングされてビットストリームの形態で出力されることができる。
復号ピクチャバッファ170に送信された修正された復元ピクチャは、インター予測部180で参照ピクチャとして使用されることができる。エンコーディング装置100はこれを介して、インター予測が適用される場合、エンコーディング装置100とデコーディング装置200での予測のミスマッチを避けることができ、符号化の効率も向上させることができる。
復号ピクチャバッファ170は、修正された復元ピクチャをインター予測部180での参照ピクチャとして使用するために保存することができる。
図3は、本明細書の実施例として、映像信号のデコーディングのためのデコーディング装置の概略的なブロック図を示す。
図3を参照すると、デコーディング装置200は、エントロピーデコーディング部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260、及びイントラ予測部265を含んで構成されることができる。インター予測部260及びイントラ予測部265は、予測部と通称され得る。即ち、予測部は、インター予測部180及びイントラ予測部185を含み得る。逆量子化部220と逆変換部230は、残差処理部と通称され得る。即ち、残差処理部は逆量子化部220と逆変換部230を含むことができる。エントロピーデコーディング部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、インター予測部260、及びイントラ予測部265は、実施例にかかって1つのハードウェアコンポーネント(例えば、デコーダ又はプロセッサ)により構成されることができる。また、復号ピクチャバッファ250は、実施例にかかって1つのハードウェアコンポーネント(例えば、メモリ又はデジタル保存媒体)によって実現されることができる。また、メモリ250は、DPB175を含むことができ、デジタル保存媒体によって構成されることもできる。
ビデオ/イメージの情報を含むビットストリームが入力されると、デコーディング装置200は、図2のエンコーディング装置100でビデオ/イメージの情報が処理されたプロセスに対応し、映像を復元することができる。例えば、デコーディング装置200は、エンコーディング装置100で適用された処理ユニットを利用してデコーディングを行うことができる。従って、デコーディングの際の処理ユニットは、例えば、コーディングユニットであってもよく、コーディングユニットはコーディングツリーユニット又は最大のコーディングユニットからクアッドツリー構造及び/又はバイナリツリー構造に従って分割されることができる。また、デコーディング装置200を介してデコーディング及び出力された復元映像信号は再生装置を介して再生されることができる。
デコーディング装置200は、図2のエンコーディング装置100から出力された信号をビットストリームの形態で受信することができ、受信された信号はエントロピーデコーディング部210を介してデコーディングされることができる。例えば、エントロピーデコーディング部210は、ビットストリームをパーシングして、映像復元(又はピクチャ復元)に必要な情報(例えば、ビデオ/映像の情報)を導出することができる。例えば、エントロピーデコーディング部210は、指数ゴロム符号化、CAVLC又はCABAC等のコーディング方法に基づいてビットストリーム内の情報をデコーディングし、映像の復元に必要なシンタックスエレメントの値、残差に関する変換係数の量子化された値を出力することができる。より詳細に、CABACエントロピーデコーディング方法は、ビットストリームで各構文要素に該当するビン(bin)を受信し、デコーディング対象の構文要素情報と周辺及びデコーディング対象のブロックのデコーディング情報、又は以前段階でデコーディングされたシンボル/ビンの情報を利用してコンテキスト(context)モデルを決定し、決定されたコンテキストモデルによってビンの発生確率を予測し、ビンの算術デコーディング(arithmetic decoding)を行い、各構文要素の値に該当するシンボルを生成することができる。この際、CABACエントロピーデコーディング方法は、コンテキストモデルの決定後、次のシンボル/ビンのコンテキストモデルのためにデコーディングされたシンボル/ビンの情報を利用してコンテキストモデルをアップデートすることができる。エントロピーデコーディング部210でデコーディングされた情報のうちの予測に関する情報は、予測部(インター予測部260及びイントラ予測部265)に提供され、エントロピーデコーディング部210でエントロピーデコーディングが行われた残差値、即ち、量子化された変換係数及び関連のパラメータ情報は、逆量子化部220に入力されることができる。また、エントロピーデコーディング部210でデコーディングされた情報のうちのフィルタリングに関する情報は、フィルタリング部240に提供されることができる。一方、エンコーディング装置100から出力された信号を受信する受信部(図示せず)がデコーディング装置200の内/外部のエレメントとしてさらに構成されることができ、又は受信部はエントロピーデコーディング部210の構成要素であってもよい。
逆量子化部220では、量子化された変換係数を逆量子化することによって変換係数を出力することができる。逆量子化部220は、量子化された変換係数を2次元のブロックの形態で再整列することができる。この場合、エンコーディング装置100で行われた係数のスキャン順序に基づいて再整列を行われ得る。逆量子化部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に送信することができる。多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset、SAO)、適応的ループフィルタ(adaptive loop filter、ALF)、両方向フィルタ(bilateral filter)等を含み得る。
復号ピクチャバッファ250に送信された修正された復元ピクチャは、インター予測部260により参照ピクチャに使用されることができる。
本明細書で、エンコーディング装置100のフィルタリング部160、インター予測部180、及びイントラ予測部185で説明された実施例は、それぞれデコーディング装置のフィルタリング部240、インター予測部260、及びイントラ予測部265にも同一又は対応するように適用されることができる。
図4は、本明細書の実施例にかかるコンテンツストリーミングシステムの構造図の例を示す。
本明細書が適用されるコンテンツストリーミングシステムは、大きくエンコーディングサーバー410、ストリーミングサーバー420、ウェブサーバー430、メディアストレージ440、ユーザー装置450、及びマルチメディア入力装置460を含むことができる。
エンコーディングサーバー410は、スマートフォン、カメラ、カムコーダ等のようなマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これをストリーミングサーバー420に送信することができる。別の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置460がビットストリームを直接生成する場合、エンコーディングサーバー410は省略され得る。
ビットストリームは、本明細書が適用されるエンコーディング方法又はビットストリームの生成方法により生成されることができ、ストリーミングサーバー420は、ビットストリームを送信又は受信する過程で、一時的にビットストリームを保存することができる。
ストリーミングサーバー420は、ウェブサーバー430を介したユーザーの要請に基づいて、マルチメディアデータをユーザー装置450に送信し、ウェブサーバー430は、ユーザーにどのサービスがあるかを知らせる媒介体の役割をする。ユーザーがウェブサーバー430に希望するサービスを要請すると、ウェブサーバー430はこれをストリーミングサーバー420に伝達し、ストリーミングサーバー420はユーザーにマルチメディアデータを送信する。この際、コンテンツストリーミングシステムは、別途の制御サーバーを含むことができ、この場合、制御サーバーは、コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
ストリーミングサーバー420は、メディアストレージ440及び/又はエンコーディングサーバー410からコンテンツを受信することができる。例えば、ストリーミングサーバー420は、エンコーディングサーバー410からコンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、ストリーミングサーバー420はビットストリームを一定時間の間に保存することができる。
例えば、ユーザー装置450は、携帯電話、スマートフォン(smart phone)、ラップトップパソコン(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、デスクトップコンピュータ、デジタルサイネージを含み得る。
コンテンツストリーミングシステム内の各サーバーは、分散サーバーとして運営されることができ、この場合、各サーバーで受信するデータは分散処理されることができる。
図5は、本明細書の実施例にかかるビデオ信号を処理するための装置のブロック図の例を示す。図5のビデオ信号処理装置は、図2のエンコーディング装置100又は図3のデコーディング装置200に該当し得る。
本明細書の実施例にかかるビデオ信号処理装置500は、ビデオ信号を保存するメモリ520と、前記メモリと結合されつつ、ビデオ信号を処理するプロセッサ510とを含み得る。
本明細書の実施例にかかるプロセッサ510は、ビデオ信号の処理のための少なくとも1つのプロセシング回路で構成されることができ、ビデオ信号をエンコーディング又はデコーディングのためのコマンドを実行することによって、映像信号を処理することができる。即ち、プロセッサ510は、以下説明されるエンコーディング又はデコーディング方法を実行することによって、原本ビデオ信号をエンコーディングするか、エンコーディングされたビデオ信号をデコーディングすることができる。
図6は、本明細書の実施例にかかるブロックの分割構造の例であって、図6aはQT(quad Tree、以下「QT」と称される)、図6bはBT(binary tree、以下「BT」と称される)、図6cはTT(ternary tree、以下「TT」と称される)、図6dはAT(asymmetric tree、以下「AT」と称される)によるブロックの分割構造の例を示す。
ビデオコーディングで1つのブロックはQTベースに分割されることができる。また、QTによって分割された1つのサブブロック(subblock)は、QTを使用して再帰的にさらに分割されることができる。これ以上QT分割されないリーフブロック(leaf block)は、BT、TT又はATのうち少なくとも1つの方式によって分割されることができる。BTは、horizontal BT(2NxN、2NxN)とvertical BT(Nx2N、Nx2N)の2つの形態の分割を有することができる。TTは、horizontal TT(2Nx1/2N、2NxN、2Nx1/2N)とvertical TT(1/2Nx2N、Nx2N、1/2Nx2N)の2つの形態の分割を有することができる。ATはhorizontal−up AT(2Nx1/2N、2Nx3/2N)、horizontal−down AT(2Nx3/2N、2Nx1/2N)、vertical−left AT(1/2Nx2N、3/2Nx2N)、vertical−right AT(3/2Nx2N、1/2Nx2N)の4つの形態の分割を有することができる。それぞれのBT、TT、ATは、BT、TT、ATを使用して再帰的にさらに分割されることができる。
図6aは、QTの分割の例を示す。ブロックAは、QTによって4つのサブブロック(A0、A1、A2、A3)に分割されることができる。サブブロックA1は、再度QTによって4つのサブブロック(B0、B1、B2、B3)に分割されることができる。
図6bは、BTの分割の例を示す。QTによってこれ以上分割されないブロックB3は、vertical BT(C0、C1)又はhorizontal BT(D0、D1)に分割されることができる。ブロックC0のようにそれぞれのサブブロックは、horizontal BT(E0、E1)又はvertical BT(F0、F1)の形態のように再帰的にさらに分割されることができる。
図6cは、TTの分割の例を示す。QTによってこれ以上分割されないブロックB3は、vertical TT(C0、C1、C2)又はhorizontal TT(D0、D1、D2)に分割されることができる。ブロックC1のようにそれぞれのサブブロックは、horizontal TT(E0、E1、E2)又はvertical TT(F0、F1、F2)の形態のように再帰的にさらに分割されることができる。
図6dは、ATの分割の例を示す。QTによってこれ以上分割されないブロックB3は、vertical AT(C0、C1)又はhorizontal AT(D0、D1)に分割されることができる。ブロックC1のようにそれぞれのサブブロックは、horizontal AT(E0、E1)又はvertical TT(F0、F1)の形態のように再帰的にさらに分割されることができる。
一方、BT、TT、ATの分割は結合され得る。例えば、BTによって分割されたサブブロックは、TT又はATによる分割が可能である。また、TTによって分割されたサブブロックは、BT又はATによる分割が可能である。ATによって分割されたサブブロックは、BT又はTTによる分割が可能である。例えば、horizontal BTの分割の以降、それぞれのサブブロックがverti−cal BTに分割されることができ、又はvertical BTの分割の以降、それぞれのサブブロックがhorizontal BTに分割されることもできる。前記2種類の分割方法は、分割の順序は異なるが、最終的に分割される模様は同一である。
また、ブロックが分割されると、ブロックを探索する順序が多様に定義され得る。一般に、左側から右側に、上段から下段に探索を行い、ブロックを探索するというのは、各分割されたサブブロックの更なるブロックの分割可否を決定する順序を意味するか、ブロックがこれ以上分割されない場合、各サブブロックの符号化順序を意味するか、又はサブブロックから他の隣接ブロックの情報を参照する際の探索順序を意味し得る。
図7及び図8は、インター予測に基づくビデオ/映像のエンコーディング手続、及びエンコーディング装置内のインター予測部を示す。
エンコーディング装置100は、現在ブロックに対するインター予測を行う(S710)。エンコーディング装置100は、現在ブロックのインター予測モード及び動き情報を導出し、現在ブロックの予測サンプルを生成することができる。ここで、インター予測モードの決定、動き情報の導出、及び予測サンプルの生成手続は、同時に行われてもよく、いずれかの手続が他の手続より先に行われてもよい。例えば、エンコーディング装置100のインター予測部180は、予測モード決定部181、動き情報導出部182、予測サンプル導出部183を含むことができ、予測モード決定部181で現在ブロックに対する予測モードを決定し、動き情報導出部182で現在ブロックの動き情報を導出し、予測サンプル導出部183で現在ブロックの予測サンプルを導出することができる。例えば、エンコーディング装置100のインター予測部180は、動き推定(motion estimation)を介して参照ピクチャの一定領域(サーチ領域)内で前記現在ブロックと類似するブロックをサーチし、現在ブロックとの差が最小又は一定基準以下である参照ブロックを導出することができる。これに基づいて、前記参照ブロックが位置する参照ピクチャを指す参照ピクチャのインデックスを導出し、参照ブロックと現在ブロックの位置の差異に基づいて動きベクトルを導出することができる。エンコーディング装置100は、多様な予測モードのうち、現在ブロックに対して適用されるモードを決定することができる。エンコーディング装置100は、多様な予測モードに対するRDコスト(cost)を比較し、現在ブロックに対する最適の予測モードを決定することができる。
例えば、エンコーディング装置100は、現在ブロックにスキップモード又はマージモードが適用される場合、後述するマージ候補リストを構成し、マージ候補リストに含まれたマージ候補の指す参照ブロックのうち、現在ブロックとの差が、最小又は一定基準以下である参照ブロックを導出することができる。この場合、導出された参照ブロックと関連したマージ候補が選択され、選択されたマージ候補を指すマージインデックス情報が生成され、デコーディング装置200にシグナリングされることができる。選択されたマージ候補の動き情報を利用し、現在ブロックの動き情報が導出できる。
別の例として、エンコーディング装置100は、現在ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、(A)MVP候補リストに含まれたMVP(motion vector predictor)候補のうち選択されたMVP候補の動きベクトルを現在ブロックのMVPとして利用できる。この場合、例えば、前述した動き推定によって導出された参照ブロックを指す動きベクトルが、現在ブロックの動きベクトルとして利用されることができ、MVP候補のうち、現在ブロックの動きベクトルとの差が最も小さい動きベクトルを有するMVP候補が選択されたMVP候補になることができる。現在ブロックの動きベクトルからMVPを引いた差分であるMVD(motion vector difference)が導出できる。この場合、MVDに関する情報がデコーディング装置200にシグナリングされることができる。また、(A)MVPモードが適用される場合、参照ピクチャのインデックスの値は、参照ピクチャのインデックス情報として構成され、別にデコーディング装置200にシグナリングされることができる。
エンコーディング装置100は、予測サンプルに基づいて残差サンプルを導出することができる(S720)。エンコーディング装置100は、現在ブロックの原本サンプルと予測サンプルとの比較を通じて、残差サンプルを導出することができる。
エンコーディング装置100は、予測情報及び残差情報を含む映像情報をエンコーディングする(S730)。エンコーディング装置100は、エンコーディングされた映像情報をビットストリームの形態で出力することができる。予測情報は、予測手続に関する情報として、予測モード情報(例えば、スキップフラグ、マージフラグ、又はモードインデックス)及び動き情報を含み得る。動き情報は、動きベクトルを導出するための情報である候補選択情報(例えば、マージインデックス、mvpフラグ、又はmvpインデックス)を含み得る。また、動き情報は、前述したMVDに関する情報及び/又は参照ピクチャのインデックス情報を含み得る。さらに、動き情報は、L0予測、L1予測、又は双(bi)予測が適用されるか否かを示す情報を含み得る。残差情報は、残差サンプルに関する情報である。残差情報は、残差サンプルに対する量子化された変換係数に関する情報を含み得る。
出力されたビットストリームは、(デジタル)保存媒体に保存されてデコーディング装置に伝達されることができ、又はネットワークを介してデコーディング装置に伝達されることもできる。
一方、前述したように、エンコーディング装置は、前記参照サンプル及び前記残差サンプルに基づいて、復元ピクチャ(復元サンプル及び復元ブロック含む)を生成することができる。これは、デコーディング装置200で行われるものと同一の予測結果をエンコーディング装置100から導出するためであり、これを介して、コーディングの効率を高めることができるためである。従って、エンコーディング装置100は、復元ピクチャ(又は復元サンプル、復元ブロック)をメモリに保存し、インター予測のための参照ピクチャとして活用できる。復元ピクチャにインループフィルタリング手続等がさらに適用できることは前述した通りである。
図9及び図10は、インター予測に基づくビデオ/映像のデコーディング手続、及びデコーディング装置内のインター予測部を示す。
デコーディング装置200は、エンコーディング装置100で行われた動作と対応する動作を行うことができる。デコーディング装置200は、受信された予測情報に基づいて現在ブロックに予測を行い、予測サンプルを導出することができる。
具体的に、デコーディング装置200は受信された予測情報に基づいて、現在ブロックに対する予測モードを決定することができる(S910)。デコーディング装置200は、予測情報内の予測モード情報に基づいて、現在ブロックにどんなインター予測モードが適用されるか決定できる。
例えば、デコーディング装置200はマージフラグ(merge flag)に基づいて、現在ブロックにマージモードが適用されるか、又は(A)MVPモードが決定されるか否かを決定することができる。或いは、デコーディング装置200は、モードインデックス(mode index)に基づいて、多様なインター予測モードの候補のうち一つを選択することができる。インター予測モードの候補は、スキップモード、マージモード及び/又は(A)MVPモードを含んでもよく、又は後述する多様なインター予測モードを含んでもよい。
デコーディング装置200は、決定されたインター予測モードに基づいて、現在ブロックの動き情報を導出する(S920)。例えば、デコーディング装置200は、現在ブロックにスキップモード又はマージモードが適用される場合、後述するマージ候補リストを構成し、マージ候補リストに含まれたマージ候補のうち一つのマージ候補を選択し得る。マージ候補の選択は、マージインデックス(merge index)に基づいて行われ得る。選択されたマージ候補の動き情報から現在ブロックの動き情報が導出され得る。選択されたマージ候補の動き情報が現在ブロックの動き情報として利用され得る。
別の例として、デコーディング装置200は、現在ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、(A)MVP候補リストに含まれたMVP候補のうち選択されたMVP候補の動きベクトルを現在ブロックのMVPとして利用し得る。MVPの選択は、前述した選択情報(MVPフラグ又はMVPインデックス)に基づいて行われ得る。この場合、デコーディング装置200は、MVDに関する情報に基づいて前記現在ブロックのMVDを導出し得、現在ブロックのMVPとMVDに基づいて、現在ブロックの動きベクトルを導出し得る。また、デコーディング装置200は、参照ピクチャのインデックス情報に基づいて、現在ブロックの参照ピクチャのインデックスを導出し得る。現在ブロックに関する参照ピクチャリスト内で、参照ピクチャのインデックスの指すピクチャが、現在ブロックのインター予測のために参照される参照ピクチャとして導出され得る。
一方、後述するように、候補リストの構成なしで、前記現在ブロックの動き情報が導出され得、この場合、後述する予測モードで開始された手続によって、現在ブロックの動き情報が導出され得る。この場合、前述したような候補リストの構成は省略され得る。
デコーディング装置200は、現在ブロックの動き情報に基づいて、現在ブロックに対する予測サンプルを生成することができる(S930)。この場合、デコーディング装置200は、現在ブロックの参照ピクチャのインデックスに基づいて参照ピクチャを導出し、現在ブロックの動きベクトルが参照ピクチャ上で指す参照ブロックのサンプルを利用し、現在ブロックの予測サンプルを導出し得る。この場合、後述するように、場合によって、現在ブロックの予測サンプルのうち、全て又は一部に対する予測サンプルのフィルタリング手続がさらに行われ得る。
例えば、デコーディング装置200のインター予測部260は、予測モード決定部261、動き情報導出部262、予測サンプル導出部263を含み得、予測モード決定部181で受信された予測モード情報に基づいて前記現在ブロックに対する予測モードを決定し、動き情報導出部182で受信された動き情報に関する情報に基づいて、前記現在ブロックの動き情報(動きベクトル及び/又は参照ピクチャのインデックス等)を導出し、予測サンプル導出部183から前記現在ブロックの予測サンプルを導出し得る。
デコーディング装置200は、受信された残差情報に基づいて、前記現在ブロックに対する残差サンプルを生成する(S940)。デコーディング装置200は、予測サンプル及び残差サンプルに基づいて現在ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成することができる(S950)。以降、前記復元ピクチャにインループフィルタリング手続等がさらに適用され得ることは前述した通りである。
前述したようにインター予測手続は、インター予測モード決定段階、決定された予測モードによる動き情報導出段階、導出された動き情報に基づく予測実行(予測サンプルの生成)段階を含み得る。
インター予測モードの決定(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)モードと呼ばれてもよい。
現在ブロックのインター予測モードを指す予測モード情報が、エンコーディング装置からデコーディング装置200にシグナリングされ得る。予測モード情報は、ビットストリームに含まれてデコーディング装置200で受信され得る。予測モード情報は、多数の候補モードのうち一つを指示するインデックス情報を含み得る。或いは、フラグ情報の階層的シグナリングを介して、インター予測モードを指示することもある。この場合、予測モード情報は、1つ以上のフラグを含み得る。例えば、エンコーディング装置100は、スキップフラグをシグナリングしてスキップモードの適用可否を指示し、スキップモードが適用されない場合に、マージフラグをシグナリングしてマージモードの適用可否を指示し、マージモードが適用されない場合に、MVPモードが適用されるものと指示するか、更なる区分のためのフラグをさらにシグナリングすることもある。アフィンモードは、独立したモードにシグナリングされてもよく、又はマージモード又はMVPモード等に従属的なモードにシグナリングされてもよい。例えば、アフィンモードは、後述するように、マージ候補リスト又はMVP候補リストの1つの候補で構成されることもできる。
インター予測モードによる動き情報の誘導(Derivation of motion information according to inter prediction mode)
エンコーディング装置100又はデコーディング装置200は、現在ブロックの動き情報を利用してインター予測を行うことができる。エンコーディング装置100は、動き推定(motion estimation)手続を介して、現在ブロックに対する最適の動き情報を導出し得る。例えば、エンコーディング装置100は、現在ブロックに対する原本ピクチャ内の原本ブロックを利用し、相関性の高い類似の参照ブロックを参照ピクチャ内の決められた探索範囲内で分数ピクセル単位で探索し得、これを介して、動き情報を導出し得る。ブロックの類似性は、位相(phase)ベースのサンプル値の差に基づいて導出され得る。例えば、ブロックの類似性は、現在ブロック(又は現在ブロックのテンプレート)と参照ブロック(又は参照ブロックのテンプレート)間のSAD(sum of absolute difference)に基づいて計算され得る。この場合、探索領域内のSADが、最も小さい参照ブロックに基づいて動き情報を導出し得る。導出された動き情報は、インター予測モードに基づいて、様々な方法によってデコーディング装置にシグナリングされ得る。
マージモード及びスキップモード
マージモード(merge mode)が適用される場合、現在の予測ブロックの動き情報が直接的に送信されず、周辺の予測ブロックの動き情報を利用し、現在の予測ブロックの動き情報を誘導することになる。従って、エンコーディング装置100は、マージモードを利用したことを知らせるフラグ情報、及び周辺のどの予測ブロックを利用したかを知らせるマージインデックスを送信することによって、現在の予測ブロックの動き情報を指示し得る。
エンコーディング装置100は、マージモードを行うために、現在の予測ブロックの動き情報を誘導するために利用されるマージ候補ブロック(merge candidate block)をサーチすべきである。例えば、マージ候補ブロックは最大5つまで利用され得るが、本明細書はこれに限定されない。そして、マージ候補ブロックの最大の数はスライスヘッダで送信され得、本明細書はこれに限定されない。マージ候補ブロックを見付けた後、エンコーディング装置100はマージ候補リストを生成し得、これらのうち最も小さいコストを有するマージ候補ブロックを最終のマージ候補ブロックとして選択し得る。
本明細書は、マージ候補リストを構成するマージ候補ブロックに対する様々な実施例を提供する。
マージ候補リストは、例えば、5つのマージ候補ブロックを利用し得る。例えば、4つの空間的マージ候補(spatial merge candidate)と1つの時間的マージ候補(temporal merge candidate)を利用し得る。
図11は、現在ブロックに対する空間的マージ候補の構成の例を示す。
図11を参照すると、現在ブロックの予測のために、左側の隣接ブロックA1、左下側(bottom−left)の隣接ブロックA2、右上側(top−right)の隣接ブロックB0、上側の隣接ブロックB1、左上側(top−left)の隣接ブロックB2のうち少なくとも1つが使用され得る。現在ブロックに対するマージ候補リストは、図12のような手続に基づいて構成され得る。
図12は、本明細書の実施例にかかるマージ候補リストの構成のためのフローチャートの例を示す。
コーディング装置(エンコーディング装置100又はデコーディング装置200)は、現在ブロックの空間的周辺ブロックを探索して導出された空間的マージ候補をマージ候補リストに挿入する(S1210)。例えば、空間的周辺ブロックは、現在ブロックの左下側角の周辺ブロック、左側の周辺ブロック、右上側角の周辺ブロッ、上側の周辺ブロック、左上側角の周辺ブロックを含み得る。但し、これは、例示として前述した空間的周辺ブロック以外にも、右側の周辺ブロック、下側の周辺ブロック、右下側の周辺ブロック等の更なる周辺ブロックがさらに前記空間的周辺ブロックとして使用され得る。コーディング装置は、空間的周辺ブロックを優先順位に基づいて探索して可用なブロックを検出し、検出されたブロックの動き情報を空間的マージ候補として導出し得る。例えば、エンコーディング装置100又はデコーディング装置200は、図11に示す5つのブロックをA1、B1、B0、A0、B2の順に探索し、可用な候補を順次にインデキシングして、マージ候補リストで構成することができる。
コーディング装置は、現在ブロックの時間的周辺ブロックを探索して導出された時間的マージ候補を前記マージ候補リストに挿入する(S1220)。時間的周辺ブロックは、現在ブロックが位置する現在ピクチャと異なるピクチャである参照ピクチャ上に位置し得る。時間的周辺ブロックが位置する参照ピクチャは、同一位置のピクチャ(collocated picture)又はコルピクチャ(col pic−ture)と呼ばれ得る。時間的周辺ブロックは、コルピクチャ上での現在ブロックに対する同一位置のブロック(co−located block)の右下側角の周辺ブロック及び右下側のセンターブロックの順に探索され得る。一方、動きデータ圧縮(motion data compression)が適用される場合、コルピクチャに一定の保存単位毎に特定の動き情報を代表の動き情報として保存し得る。この場合、前記一定の保存単位内の全てのブロックに対する動き情報を保存する必要がなく、これを介して動きデータ圧縮の効果が得られる。この場合、一定の保存単位は、例えば、16x16のサンプル単位、又は8x8のサンプル単位等と予め決められることもあり、或いはエンコーディング装置100からデコーディング装置200に一定の保存単位に対するサイズ情報がシグナリングされることもある。動きデータ圧縮が適用される場合、時間的周辺ブロックの動き情報は時間的周辺ブロックが位置する一定の保存単位の代表の動き情報に代替され得る。即ち、この場合、実現の側面で見ると、時間的周辺ブロックの座標に位置する予測ブロックではなく、時間的周辺ブロックの座標(左上段のサンプルポジション)に基づいて、一定値だけ算術的右側シフトの後、算術的左側シフトした位置をカバーする予測ブロックの動き情報に基づいて時間的マージ候補が導出され得る。例えば、一定の保存単位が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))に位置する予測ブロックの動き情報が時間的マージ候補のために使用され得る。
コーディング装置は、現在のマージ候補の数が最大のマージ候補の数より小さいか否かを確認することができる(S1230)。最大のマージ候補の数は、予め定義されるか、又はエンコーディング装置100からデコーディング装置200にシグナリングされ得る。例えば、エンコーディング装置100は、最大のマージ候補の数に関する情報を生成し、エンコーディングしてビットストリームの形態でデコーディング装置200に伝達し得る。最大のマージ候補の数が全て満たされると、以降の候補追加過程は行われなくてもよい。
確認の結果、現在のマージ候補の数が前記最大のマージ候補の数より小さい場合、コーディング装置は、追加のマージ候補をマージ候補リストに挿入する(S1240)。追加のマージ候補は、例えば、ATMVP(adaptive temporal motion vector prediction)、結合された両方向予測(combined bi−predictive)マージ候補(現在スライスのスライスタイプがBタイプである場合)及び/又ゼロベクトル(zero vector)マージ候補を含み得る。
図13は、予測候補リスト(MVP候補リスト)を構成するためのフローチャートの例を示す。
MVP(motion vector prediction)モードが適用される場合、復元された空間的周辺ブロック(例えば、図11の周辺ブロック)の動きベクトル及び/又は時間的周辺ブロック(又はColブロック)に対応する動きベクトルを用いて、動きベクトル予測子(motion vector pre−dictor、MVP)候補リストが生成され得る。即ち、復元された空間的周辺ブロックの動きベクトル及び/又は時間的周辺ブロックに対応する動きベクトルは、動きベクトル予測子の候補として使用され得る。前記予測に関する情報は、前記リストに含まれた動きベクトル予測子の候補のうちから選択された最適の動きベクトル予測子の候補を指示する選択情報(例:MVPフラグ又はMVP又はインデックス)を含み得る。この際、予測部は前記選択情報を用いて、動きベクトル候補リストに含まれた動きベクトル予測子の候補のうちから、現在ブロックの動きベクトル予測子を選択し得る。エンコーディング装置100の予測部は、現在ブロックの動きベクトルと動きベクトル予測子間の動きベクトル差分(MVD)を求めることができ、これをエンコーディングし、ビットストリームの形態で出力することができる。即ち、MVDは、現在ブロックの動きベクトルから前記動きベクトル予測子を引いた値で求められる。この際、デコーディング装置の予測部は、前記予測に関する情報に含まれた動きベクトル差分を獲得し、前記動きベクトル差分と前記動きベクトル予測子の加算を介して、現在ブロックの前記動きベクトルを導出し得る。デコーディング装置の予測部は、参照ピクチャを指示する参照ピクチャのインデックス等を前記予測に関する情報から獲得又は誘導し得る。例えば、動きベクトル予測子候補リストは、図13のように構成され得る。
図13を参照すると、コーディング装置は、動きベクトルの予測のための空間的候補ブロックを探索して予測候補リストに挿入する(S1310)。例えば、コーディング装置は決められた探索の順序に従って周辺ブロックに対する探索を行い、空間的候補ブロックに対する条件を満たす周辺ブロックの情報を予測候補リスト(MVP候補リスト)に追加し得る。
空間的候補ブロックリストを構成した後、コーディング装置は予測候補リストに含まれた空間的候補リストの数と、既設定された基準の数(例:2)とを比較する(S1320)。予測候補リストに含まれた空間的候補リストの数が基準の数(例:2)より大きいか等しい場合、コーディング装置は予測候補リストの構成を終了し得る。
しかしながら、予測候補リストに含まれた空間的候補リストの数が基準の数(例:2)より小さい場合、コーディング装置は時間的候補ブロックを探索して予測候補リストに追加挿入し(S1330)、時間的候補ブロックが使用できない場合、ゼロ動きベクトルを予測候補リストに追加する(S1340)。
予測サンプルの生成(Generation of prediction sample)
予測モードに応じて導出された動き情報に基づいて、現在ブロックに対する予測されたブロックが導出され得る。予測されたブロックは、現在ブロックの予測サンプル(予測サンプルアレイ)を含み得る。現在ブロックの動きベクトルが分数サンプル単位を指す場合、補間(interpolation)手続が行われ得、これを介して参照ピクチャ内で分数サンプル単位の参照サンプルに基づいて、前記現在ブロックの予測サンプルが導出され得る。現在ブロックにアフィン(affine)インター予測が適用される場合、サンプル/サブブロック単位の動きベクトル(motion vector)に基づいて予測サンプルが生成され得る。両方向(bi−direction)の予測が適用される場合、第1方向の予測(例:L0予測)に基づいて導出された予測サンプルと、第2方向の予測(例:L1予測)に基づいて導出された予測サンプルの(位相による)加重和を介して、最終の予測サンプルが導出され得る。導出された予測サンプルに基づいて復元サンプル及び復元ピクチャが生成され得、以降、インループフィルタリング等の手続が行われ得ることは前述した通りである。
アフィン動き予測(Affine motion prediction)
図14は、本発明の実施例にかかる動きモデル(motion models)の例を示す。
従来の映像圧縮技術(例えば、HEVC(high efficiency video coding))は、符号化ブロックの動き(motion)を表現するために、1つの動きベクトル(motion vector)を使用する。ブロック毎に1つの動きベクトルを使用する方式がブロック単位の最適の動きを表現していることがあるが、実際の各画素の最適の動きではないことがある。したがって、画素単位で最適の動きベクトルを決定することができれば、符号化効率を高めることができる。そのため、本発明の実施例は、多数の動きモデル(multi motion model)を使用し、ビデオ信号を符号化又は復号化する動き予測(motion prediction)方法について説明する。特に、2つ乃至4つの制御点の動きベクトルを用いて、ブロックの各画素単位又はサブブロック単位で動きベクトルを表現し得、このような複数の制御点の動きベクトルを使用した予測技法は、アフィン動き予測(affine motion prediction)、アフィン予測(affine prediction)等で称される。
本発明の実施例にかかるアフィン動きモデル(affine motion model)は、図14に示すような4つの動きモデルを表現し得る。アフィン動きモデル(Affine motion model)が表現し得る動きのうち3つの動き(トランスレーション(translation)、スケール(scale)、ローテート(rotate))を表現するアフィン動きモデル(affine motion model)を類似アフィン動きモデル(similarity(or simplified) affine motion model)と称し、本発明の実施例を説明するにあたって、説明の便宜のために、類似アフィン動きモデル(similarity(or simplified) affine motion model)を基準に説明するが、本発明がこれに限定されるわけではない。
図15は、本発明の実施例にかかるアフィン動き予測のための制御点の動きベクトルの例を示す。
図15のように、アフィン動き予測は、2つの制御点の動きベクトル(control point motion vector、CPMV)ペア(pair)、v_0及びv_1を用いて、ブロックが含む画素位置(又はサブブロック)の動きベクトルを決定し得る。この際、動きベクトルの集合は、アフィン動きベクトルフィールド(motion vector field、MVF)と称される。この際、アフィン動きベクトルフィールドは、下記の数式1を用いて決定され得る。
数式1で、v_0(v_0={v_0x,v_0y})は、現在ブロック1500の左上側位置の第1の制御点の動きベクトル(CPMV0)を表し、v_1(v_1={v_1x,v_1y})は、現在ブロック1500の右上側位置の第2の制御点の動きベクトル(CPMV1)を表す。また、wは、現在ブロック1500の幅(width)を表す。v(v={v_x,v_y})は、{x,y}位置における動きベクトルを表す。サブブロック(又は画素)単位の動きベクトルは、前記数式1を用いて誘導され得る。一実施例で、動きベクトルの精度は1/16の精度でラウンディングされ得る。
図16は、本発明の実施例にかかるアフィン動き予測が適用されたブロックの各サブブロック別の動きベクトルの例を示す。
図16を参照すると、符号化又は復号化の過程でアフィン動きベクトルフィールド(MVF)は、画素単位若しくはブロック単位で決定され得る。即ち、アフィン動き予測において、現在ブロックの動きベクトルは画素単位又はサブブロック単位で誘導され得る。
画素単位でアフィン動きベクトルフィールドが決定される場合、各画素値を基準に動きベクトルが得られ、ブロック単位の場合、ブロックの中央画素値を基準に該当ブロックの動きベクトルが得られる。本文書で、図16のようにアフィン動きベクトルフィールド(MVF)が4*4のブロック単位で決定される場合が仮定される。但し、これは、説明の便宜のためのものであり、本発明の実施例が限定されるわけではない。図16は、符号化ブロックが16*16個のサンプルで構成され、4*4サイズのブロック単位でアフィン動きベクトルフィールド(MVF)が決定される場合の例を示す。
アフィン動き予測(affine motion prediction)は、アフィンマージモード(affine merge mode又はAF_MERGE)と、アフィンインターモード(affine inter mode又はAF_INTER)とを含み得る。AF_INTERモードは、4つのパラメータベース動きモデルを用いるAF_4_INTERモードと、6つのパラメータベース動きモデルを用いるAF_6_INTERモードとを含み得る。
アフィンマージモード(Affine merge mode)
AF_MERGEは、アフィン動き予測としてコーディングされた周辺ブロックのアフィン動きモデルに応じて、制御点の動きベクトル(Control Point Motion Vector:CPMV)を決定する。検索順序でアフィンコーディングされた周辺ブロックは、AF_MERGEのために使用され得る。1つ以上の隣接ブロックがアフィン動き予測としてコーディングされる際、現在ブロックはAF_MERGEとしてコーディングされ得る。
即ち、アフィンマージモードが適用される場合、周辺ブロックのCPMVを用いて現在ブロックのCPMVを導出し得る。この場合、周辺ブロックのCPMVが、そのまま現在ブロックのCPMVに使用されることもあり、周辺ブロックのCPMVが、前記周辺ブロックのサイズ、及び前記現在ブロックのサイズ等に基づいて修正され、現在ブロックのCPMVに使用されることもある。
図17は、本発明の実施例にかかるアフィンマージモード(affine merge mode)でアフィン動き予測に使用される周辺ブロックの例を示す。
アフィンマージ(AF_MERGE)モードで、エンコーダは、下記のような過程の符号化を行うことができる。
ステップ−1:現在の符号化ブロック1700の周辺ブロックA乃至E1710、1720、1730、1740、1750をアルファベット順でスキャニング(scanning)し、スキャニング順序の基準の一番目にアフィン予測モードで符号化されたブロックをアフィンマージ(AF_MERGE)の候補ブロックに決定
ステップ−2:決定された候補ブロックの制御点の動きベクトル(CPMV)を用いてアフィン動きモデルを決定
ステップ−3:候補ブロックのアフィン動きモデルに応じて、現在ブロック1700の制御点の動きベクトル(CPMV)が決定され、現在ブロック1700のMVFを決定
図18は、本発明の実施例にかかるアフィン動き予測が適用された周辺ブロックを使用し、アフィン動き予測が行われるブロックの例を示す。
例えば、図18のようにブロックA1820がアフィンモード(affine mode)で符号化された場合、ブロックA1820を候補ブロックと決定した後、ブロックA1820の制御点の動きベクトル(CPMV)(例えば、v2及びv3)を用いてアフィン動きモデル(affine motion model)を誘導した後、現在ブロック1800の制御点の動きベクトル(CPMV)v0及びv1を決定し得る。現在ブロック1800の制御点の動きベクトル(CPMV)に基づいて、現在ブロック1800のアフィン動きベクトルフィールド(MVF)が決定され、符号化が行われ得る。
図19は、本発明の実施例にかかる周辺のアフィン符号化ブロックを用いてマージ候補リストを生成する方法を説明するための図である。
図19を参照すると、アフィンマージ候補を用いてCPMVペアを決定する場合、図19に示すような候補が使用され得る。図19で、候補リストのスキャン順序は、A、B、C、D、Eに設定された場合を仮定する。但し、本発明がこれに限定されるわけではなく、様々な順序で予め設定され得る。
実施例として、仮に、周辺ブロック(即ち、A、B、C、D、E)で利用可能なアフィンモード(又はアフィン予測)で符号化された候補(以下、アフィン候補と称される)の数が0であるとき、現在ブロックのアフィンマージモードはスキップされ得る。仮に、利用可能なアフィン候補の数が1つである場合(例えば、A)、該当候補の動きモデルが現在ブロックの制御点の動きベクトル(CPMV_0及びCPMV_1)を誘導するのに利用され得る。この場合、該当候補を指示するインデックスが要求(又はコーディング)されなくてもよい。仮に、利用可能なアフィン候補の数が2つ以上である場合、スキャニングの順序上、2つの候補がAF_MERGEに対する候補リストで構成され得る。この場合、候補リスト内で選択された候補を指示するインデックスと同一の候補選択情報がシグナリングされ得る。前記選択情報は、フラグ又はインデックス情報であってもよく、AF_MERGE_flag、AF_merge_idx等と称される。
本発明の実施例で、現在ブロックに対する動き補償は、サブブロックの大きさに基づいて行われ得る。この場合、アフィンブロック(即ち、現在ブロック)のサブブロックの大きさが誘導される。仮に、サブブロックの幅と高さがいずれも4つのルマサンプルより大きいと、各サブブロックに対する動きベクトルが導出され、DCT−IFベースの動き補償(輝度に対する1/16ペル及び色差に対する1/32)がサブブロックに対して行われ得る。そうでなければ、向上した二重線形補間フィルタベース動き補償(enhanced bi−linear interpolation filter based motion compensation)が全アフィンブロックに対して行われ得る。
本発明の実施例で、マージ/スキップフラグ(merge/skip flag)が真であり、CUに対する幅と高さがいずれも8より大きいか等しいとき、CUレベルでアフィンフラグはアフィンマージモードが使用されるかを指示するビットストリーム(bitstream)を介してシグナリングされる。CUがAF_MERGEとしてコーディングされる際、最大値「5」を有するマージ候補のインデックスは、アフィンマージ候補リストで動き情報の候補がCUのために使用されることを指定するためにシグナリングされる。
図20及び図21は、本発明の実施例にかかるアフィン予測で符号化された周辺ブロックを使用し、アフィンマージ候補リストを構成する方法を説明するための図である。
図20を参照すると、アフィンマージ候補リストは、次の段階で構成される。
1)モデルベースアフィン候補の挿入
モデルベースアフィン候補は、候補がアフィンモードでコーディングされた有効な周辺の再構成されたブロックから導出されるということを意味する。図20に示すように、候補ブロックに対するスキャン順序は、左側(A)、上側(b)、右上側(C)、及び左下側(D)から左上側(E)である。
周辺の左下側ブロック(A)が6−パラメータアフィンモードでコーディングされると、ブロック(A)を含むCUの左上側角、右上側角、及び左下側角の動きベクトル(v_4、v_5、v_6)を得ることになる。現在ブロック上の左上側角の動きベクトル(v_0、v_1、v_2)は、6−パラメータアフィンモデルによる動きベクトル(v_4、v_5、and v_6)に従って計算される。
周辺の左下側ブロック(A)が4−パラメータアフィンモードでコーディングされると、ブロック(A)を含むCUの左上側角と右上側角の動きベクトル(v_4、v_5)を得ることになる。現在ブロック上の左上側角の動きベクトル(v_0、v_1)は、4−パラメータアフィンモデルによる動きベクトル(v_4、v_5)に従って計算される。
2)制御点ベースアフィン候補の挿入
図20を参照すると、制御点ベース候補は、各制御点の周辺の動き情報を結合して候補が構成されることを意味する。
制御点に対する動き情報は、まず図20に示す指定された空間の隣接ブロックと時間の隣接ブロックから導出される。CP_k(k=1、2、3、4)は、k番目の制御点を表す。また、A、B、C、D、E、F、及びGは、CP_k(k=1、2、3)を予測するための空間位置であり、Hは、CP4を予測するための時間位置である。
CP_1、CP_2、CP_3、及びCP_4の座標は、それぞれ(0,0)、(W,0)、(H,0)、及び(W,H)であり、ここで、W及びHは、現在ブロックの幅と高さである。
各制御点の動き情報は、次の優先順位に従って得られる。
CP_1に対して、チェッキングの優先順位はA→B→Cであり、Aが利用可能であれば、Aが使用される。そうでなく、Bが利用可能であれば、Bが使用される。AとBとも利用可能でなければ、Cが使用される。もし、3つの候補がいずれも利用可能でなければ、CP1の動き情報が得られない。
CP_2に対して、チェッキングの優先順位はE→Dである。
CP_3に対して、チェッキングの優先順位はG→Fである。
CP_4に対して、Hが使用される。
第二に、制御点の組み合わせが動きモデルを構成するのに使用される。
2つの制御点の動きベクトルは、4−パラメータアフィンモデルで変換パラメータを算出するのに必要である。2つの制御点は、次の6つの組み合わせ({CP_1,CP_4}、{CP_2,CP_3}、{CP_1,CP_2}、{CP_2,CP_4}、{CP_1,CP_3}、{CP_3,CP_4})のいずれかから選択され得る。例えば、4−パラメータアフィン動きモデルを構成するのにCP_1及びCP_2の制御点を使用することは、「Affine(CP_1,CP_2)」と表記される。
3つの制御点の動きベクトルは、6−パラメータアフィンモデルで変換パラメータを算出するのに必要である。3つの制御点は、次の4つの組み合わせ({CP_1,CP_2,CP_4}、{CP_1,CP_2,CP_3}、{CP_2,CP_3,CP_4}、{CP_1,CP_3,CP_4})のいずれかから選択され得る。例えば、6−パラメータアフィン動きモデルを構成するのにCP_1、CP_2、及びCP_3の制御点を使用することは、「Affine(CP_1,CP_2,CP_3)」と表記される。
また、本発明の実施例で、アフィンマージモードで、アフィンマージ候補が存在すれば、それは常時6−パラメータアフィンモードとして考慮され得る。
アフィンインターモード(affine inter mode)
図22は、本発明が実施例にかかるアフィンインターモード(affine inter mode)でアフィン動き予測に使用される周辺ブロックの例を示す。
図22を参照すると、アフィン動き予測(affine motion prediction)は、アフィンマージモード(affine merge mode又はAF_MERGE)と、アフィンインターモード(affine inter mode又はAF_INTER)を含み得る。アフィンインターモード(AF_INTER)で、2つの制御点の動きベクトル予測(control point motion vector prediction、CPMVP)と、CPMVを決定した後、差に該当する制御点の動きベクトル差分値(control point motion vector difference、CPMVD)がエンコーダからデコーダへ送信され得る。具体的なアフィンインターモード(AF_INTER)の符号化過程は、下記の通りである。
ステップ−1:2つのCPMVPペア(pair)の候補(candidate)を決定
ステップ−1.1:最大12個のCPMVP候補の組み合わせを決定(下記の数式2参照)
数式2で、v_0は、現在ブロック2200の左上側制御点2210での動きベクトル(CPMV0)、v_1は、現在ブロック2200の右上側制御点2211での動きベクトル(CPMV1)、v_2は、現在ブロック2200の左下側制御点2212での動きベクトル(CPMV2)であり、v_Aは、現在ブロック2200の左上側制御点2210の左上側に隣接した周辺ブロックA2220の動きベクトル、v_Bは、現在ブロック2200の左上側制御点2210の上側に隣接した周辺ブロックB2222の動きベクトル、vCは、現在ブロック2200の左上側制御点2210の左側に隣接した周辺ブロックC2224の動きベクトル、v_Dは、現在ブロック2200の右上側制御点2211の上側に隣接した周辺ブロックD2226の動きベクトル、v_Eは、現在ブロック2200の右上側制御点2211の右上側に隣接した周辺ブロックE2228の動きベクトル、v_Fは、現在ブロック2200の左下側制御点2212の左側に隣接した周辺ブロックF2230の動きベクトル、v_Gは、現在ブロック2200の左下側制御点2212の左側に隣接した周辺ブロックG2232の動きベクトルを表す。
ステップ−1.2:CPMVP候補の組み合わせのうち差異値(difference value、DV)が小さい値を基準に整列(sorting)し、上位2つの候補を使用(下記の数式3参照)
v_0xは、現在ブロック2200の左上側制御点2210の動きベクトル(V0又はCPMV0)のx軸エレメント、v_1xは、現在ブロック2200の右上側制御点2211の動きベクトル(V1又はCPMV1)のx軸エレメント、v_2xは、現在ブロック2200の左下側制御点2212の動きベクトル(V_2又はCPMV_2)のx軸エレメント、v_0yは、現在ブロック2200の左上側制御点2210の動きベクトル(V_0又はCPMV_0)のy軸エレメント、v_1yは、現在ブロック2200の右上側制御点2211の動きベクトル(V_1又はCPMV_1)のy軸エレメント、v_2yは、現在ブロック2200の左下側制御点2212の動きベクトル(V_2又はCPMV_2)のy軸エレメント、wは、現在ブロック2200の幅(width)、hは、現在ブロック2200の高さ(height)を表す。
ステップ−2:制御点動きベクトル予測子(CPMVP)ペアの候補が2より小さい場合、AMVP候補リストを使用
ステップ−3:2つの候補それぞれに対して制御点の動きベクトル予測子(CPMVP)を決定し、RDコストを比較し、小さい値を有する候補とCPMVを最適に選択
ステップ−4:最適の候補に該当するインデックスと制御点の動きベクトル差分値(control point motion vector difference、CPMVD)を送信
本発明の実施例で、AF_INTERで、CPMVP候補の構成過程が提供される。AMVPと同じように、候補の数は2であり、候補リストの位置を指示するインデックスがシグナリングされる。
CPMVP候補リストの構成過程は、次の通りである。
1)周辺ブロックをスキャンし、これがアフィン動き予測としてコーディングされるかをチェックする。スキャンされたブロックがアフィン予測としてコーディングされると、候補の数が2になるまでスキャンされた周辺ブロックのアフィン動きモデルから現在ブロックの動きベクトルペアを導出する。
2)候補の数が2より小さいと、候補の構成過程を行う。また、本発明の実施例で、4−パラメータ(2−制御点)アフィンインターモードがズーム−イン/アウト(zoom−in/out)、及び回転の動きモデルとコンテンツを予測するのに使用される。図15に示すように、ブロックのアフィン動きフィールド(field)は、2つの制御点の動きベクトルにより記述される。
ブロックの動きベクトルフィールド(motion vector field:MVF)は、前述した式1により記述される。
従来技術で、AMVP(advanced motion vector prediction)モードは、MVP(motion vector prediction)インデックスとMVDs(motion vector differences)をシグナリングするのに必要である。AMVPモードが本発明に適用される際、アフィン_フラグ(affine_flag)は、アフィン予測が使用されるかを指示するようにシグナリングされる。アフィン予測が適用されると、inter_dir、ref_idx、mvp_index、及び2つのMVDs(mvd_x及びmvd_y)のシンタックスがシグナリングされる。2つのアフィンMVPペアを含むアフィンMVPペアの候補リストが生成される。シグナリングされたmvp_indexは、これらのうち一つを選択するのに使用される。アフィンMVPペアは、2つの種類のアフィンMVP候補により生成される。1つは、空間的継承アフィン候補(spatial inherited affine candidate)であり、もう1つは、コーナー導出されたアフィン候補(corner derived affine candidate)である。周辺のCUがアフィンモードでコーディングされると、空間的継承アフィン候補が生成され得る。周辺のアフィンコーディングされたブロックのアフィン動きモデルは、2−制御点のMVPペア(two−control−point MVP pair)の動きベクトルを生成するのに使用される。空間的継承アフィン候補の2−制御点MVPペアのMVは、次の式を使用することによって導出される。
V_B0、V_B1、及びV_B2がある参照/周辺のCUの左上側MV、右上側 MV、及び左下側MVに代替されることができる場合、(posCurCU_X、posCurCU_Y)は、フレームの左上側サンプルに対する現在のCUの左上側サンプルの位置であり、(posRefCU_X、posRefCU_Y)は、フレームの左上側サンプルに対する参照/周辺のCUの左上側サンプルの位置である。
図23は、本発明が実施例にかかるアフィンインターモード(affine inter mode)でアフィン動き予測に使用される周辺ブロックの例を示す。
図23を参照すると、MVPペアの数が2より小さいと、コーナー導出されたアフィン候補が使用される。周辺の動きベクトルは、図23に示すように、アフィンMVPペアを導出するのに使用される。第1のコーナー導出されたアフィン候補に対して、セットA(A0、A1、及びA2)で第1の利用可能なMVとセットB(B0及びB1)で第1の利用可能なMVは、第1のMVPペアを構成するのに使用される。第2のコーナー導出されたアフィン候補に対して、セットAで第1の利用可能なMVとセットC(C0及びC1)で第1の利用可能なMVは、右上側制御点のMVを計算するのに使用される。セットAで第1の利用可能なMVと計算された右上側制御点MVは、第2のMVPペアである。
本発明の実施例で、2つ(3つ)の候補{mv_0,mv_1}({mv_0,mv_1,mv_2)を含む2つの候補セットは、アフィン動きモデルの2つ(3つ)の制御点を予測するのに使用される。与えられた動きベクトルの差分(mvd_0,mvd_1,mvd_2)と制御点は、次の式を使用することによって計算される。
図24及び図25は、本発明の実施例にかかるアフィンインターモード(affine inter mode)で周辺ブロックの動き情報を用いて動きベクトル候補を誘導する方法を例示する図である。
前記アフィン候補リストは、アフィン動きを空間的隣接ブロック(外挿されたアフィン候補)から延びて、空間的隣接ブロック(仮想のアフィン候補)からの動きベクトルの組み合わせにより添付される(appended)。候補の集合は、下記のように設定される:
1.最大2つの異なるアフィンMV予測子の集合が隣接ブロックのアフィン動きから誘導される。隣接ブロックA0、A1、B0、B1、及びB2が図24に示すように確認される。仮に、隣接ブロックがアフィン動きモデルによって符号化され、その参照フレームが現在ブロックの参照フレームと同一であると、現在ブロックの4−パラメータアフィンモデルに対する)2つ又は(6−パラメータアフィンモデルに対する)3つの制御点が隣接ブロックのアフィンモデルから誘導される。
2.図25は、仮想のアフィン候補の集合を生成するために使用される隣接ブロックを示す。隣接MVは、3つのグループに分割される:S_0={mv_A,mv_B,mv_C}、S_1={mv_D,mv_E}、S_2={mv_F,mv_G}。mv_0は、S0で現在ブロックと同一の参照ピクチャを参照する一番目のMVである。mv_2は、S1で現在ブロックと同一の参照ピクチャを参照する一番目のMVである。
仮に、mv_0とmv_1が与えられると、mv_2は、下記の数式9により誘導され得る。
数式9で、現在ブロックのサイズは、WxHである。
仮に、mv_0とmv_2のみが与えられると、mv_1は、下記の数式10により誘導され得る。
本発明の一実施例で、アフィンインター予測は、下記のシーケンス(sequence)によって行われ得る。
入力:アフィン動きパラメータ、参照ピクチャのサンプル
出力:CUの予測ブロック
プロセス
− アフィンブロックのサブ−ブロックのサイズを誘導
− サブ−ブロックの幅と、幅モード4ノルマサンプル(luma samples)より大きいと、
− それぞれのサブブロックに対して
− サブ−ブロックの動きベクトルを誘導
− DCT−IFベースの動き補償(ルマに対して1/16ペル、色差に対して1/32ペル)がサブ−ブロックに対して実行(invoked)
− そうでなければ、向上したバイ−リニア補間フィルタ(enhenced bi−linear interpolation filter)ベースの補償が全アフィンブロックに対して実行される(invoked)
また、本発明の一実施例で、マージ/スキップフラグが偽(false)であり、CUに対する幅と高さが8より大きいか等しければ、CUレベルでアフィンフラグがアフィンインターモードが使用されるか否かを指示するためにシグナリングされる。CUがアフィンインターモードとしてコーディングされると、モデルフラグが4−パラメータ又は6−パラメータアフィンモデルが前記CUに対して適用されるか否かを指示するためにシグナリングされる。もし、モデルフラグが真(true)である場合、AF_6_INTER mode(6−パラメータアフィンモデル)が適用され、3つのMVDがパーシングされ、そうでなければ、AF_4_INTER mode4−パラメータアフィンモデル)が適用され、2つのMVDがパーシングされる。
AF_4_INTERモードで、アフィンマージモードと同様に、アフィンアフィンモードによりコーディングされた隣接ブロックから外挿された動きベクトルペアが生成され、一番目に候補リストに挿入される。
以降、もし候補リストのサイズが4より小さいと、動きベクトルペア{(v_0,v_1)|v0={v_A,v_B,v_c}、v_1={v_D,v_E}}を有する候補が隣接ブロックを使用することによって生成される。図25に示すように、v_0は、ブロックA、B、Cの動きベクトルから選択される。隣接ブロックからの動きベクトルは、参照リストと隣接ブロックに対する参照のPOC現在のCUに対する参照のPOC及び現在のCUの間の関係によってスケールされる。また、隣接ブロックDとEからv_1を選択する接近方式は類似する。候補リストが4より大きいと、候補は(候補ペアで2つの動きベクトルと同様に)隣接動きベクトルの一貫性(consistency)によって優先的に整列され、一番目の4つの候補が保存される。
もし、候補リストの数が4より小さい場合、リストは、各AMVP候補を複製することによって、動きベクトルペアによりパディングされる(padded)。
AF_6_INTERモードで、アフィンマージモードと同様に、アフィンアフィンモードでコーディングされた隣接ブロックから外挿された動きベクトルトリプル(affine motion vector triples)が生成され、候補リストに優先的に挿入される。
以降、候補リストのサイズが4より小さいと、動きベクトルトリプル{(v_0,v_1,v_2)|v0={v_A,v_B,v_c}、v1={v_D,v_E}、v2={v_G,v_H}}を含む候補が隣接ブロックを使用して生成される。図25で示すように、v_0は、ブロックA、B、又はCの動きベクトルから選択される。隣接ブロックからの動きベクトルは、参照リストと隣接ブロックに対する参照のPOC、現在CUに対する参照のPOC、且つ現在CUのPOCの関係によってスケールされる。また、隣接ブロックDとEからv_1を選択するための接近と、FとGからv_2を選択するための接近は類似する。候補リストが4より大きいと、候補は(3つの候補で2つの動きベクトルと同様に)隣接動きベクトルの一貫性によって整列され、一番目の4つの候補が保存される。
候補リストの数が4より小さいと、リストは、各AMVP候補を複製することによって(duplicating)構成される動きベクトルトリプルによりパディングされ得る。
現在CUのCPMVが誘導された以降、アフィンパラメータの数によって、現在CUのMVFが4−パラメータアフィンモデルに対する下記の数式11によって生成され、6−パラメータアフィンモデルに対する下記の数式12によって生成される。
ここで、サブ−ブロックのサイズMxNは、下記の数式13で誘導され、MvPreは、動きベクトル部分の正確度(1/16)である。
数式12により誘導された以降、MとNはwとhの分母(divisor)にするために必要であれば下方修正しなければならない。M又はNが8より小さいと、WIFが適用され、そうでなければ、サブ−ブロックベースのアフィン動き補償が適用される。
図26は、本発明の実施例にかかるサブブロック単位のアフィン動きベクトルフィールドを誘導する方法の一例を示す。
図26を参照すると、各MxNのサブ−ブロックの動きベクトルを誘導するために、図26に示すような各サブ−ブロックの中央サンプルの動きベクトルは、数式11 又は数式12によって計算され、1/16部分の正確度でラウンディングされる(rounded)。SHVC上方サンプリング補間フィルタが誘導された動きベクトルを使用し、各サブ−ブロックの予測を生成するために適用される。
HEVC動き補償補間フィルタと同一のフィルタ長さ及び正規化因子を有するSHVC上方サンプリング補間フィルタは、更なる部分ペル位置(additional fractional pel positions)に対する動き補償補間フィルタとして使用され得る。クロマ成分の動きベクトルの正確度は1/32サンプルであり、1/32ペル部分の位置の更なる補間フィルタは、2つの隣接した1/16ペル部分の位置のフィルタの平均を使用することによって誘導される。
AF_MERGEモードは、通常のマージモードの選択が行われることと同じ方式でエンコーダ側で選択され得る。候補リストが優先的に生成され、候補で最小のRD−コストが他のインターモードのRD−コストと比較するために選択される。比較の結果は、AF_MERGEが適用されるか否かに対する決定である。
AF_4_INTERモードのために、RDコストの確認はいずれの動きベクトルペアの候補が現在CUの制御点の動きベクトル予測(control point motion vector prediction、CPMVP)として選択されるかを決定するために使用される。現在のアフィンCUのCPMVPが決定された以降、アフィン動きの推定が適用され、制御点の動きベクトル(control point motion vector、CPMV)が獲得される。そうすると、CPMVとCPMVPとの差が決定される。
エンコーダ側で、AF_MERGE又はAF_4_INTERモードが以前のモード選択ステージで最適のモードとして決定される際にのみAF_6_INTERモードが確認される。
本発明の一実施例で、アフィンインター(アフィンAMVP)モードは、下記のように行われ得る:
1)AFFINE_MERGE_IMPROVE:アフィンモードである一番目の隣接ブロックを探索する代わりに、改善点(improvement)は、最大のコーディングユニットのサイズを有する隣接ブロックをアフィンマージ候補として探索しようとする。
2)AFFINE_AMVL_IMPROVE:アフィンモードである隣接ブロックを通常のAMVP手続と同様にアフィンAMVP候補リストに追加する。
詳細なアフィンAMVP候補リストの生成過程は下記の通りである。
第一に、左側下の隣接ブロックがアフィン動きモデルを使用し、現在の参照インデックスと同一の参照インデックスを有するか否かが確認される。もし存在しなければ、左側の隣接ブロックが同じ方法で確認される。もし存在しなければ、左側下の隣接ブロックがアフィン動きモデルを使用し、異なる参照インデックスを有するか否かが確認される。もし存在すれば、スケールされたアフィン動きベクトルが参照ピクチャリストに追加される。もし存在しなければ、左側の隣接ブロックが同じ方式で確認される。
第二に、右側上部の隣接ブロック、上部の隣接ブロック、及び左側上部の隣接ブロックが同じ方式で確認される。
前述した過程以降、2つの候補を探索すると、アフィンAMVP候補リストを生成する動作を終了する。2つの候補を探索することができない場合、JEMソフトウェア内の元の動作がアフィンAMVP候補リストを生成するために行われる。
3)AFFINE_SIX_PARAM:4−パラメータアフィン動きモデル以外に、6−パラメータアフィン動きモデルが更なるモデルとして追加される。
6−パラメータアフィン動きモデルが下記の数式14を介して誘導される。
前述した動きモデルに6−パラメータが存在するので、左側上部の位置MV_0、右側上部の位置MV_1、且つ左側下部の位置MV_2における3つの動きベクトルがモデルを決定するために要求される。3つの動きベクトルが4−パラメータアフィン動きモデルで2つの動きベクトルと類似の方式で決定され得る。アフィンモデルマージは、常時6−パラメータアフィン動きモデルとして設定される。
4)AFFINE_CLIP_REMOVE:全てのアフィン動きベクトルに対する動きベクトルの制約(constraints)を除去する。動き補償の過程が動きベクトルの制約そのものを制御するようにする。
アフィン動きモデル(Affine motion model)
前述したように、アフィンインター予測(Affine inter prediction)で様々なアフィン動きモデル(affine motion model)が使用又は考慮され得る。例えば、アフィン動きモデルは、前述した図14のように、4つの動きを表現し得る。アフィン動きモデルが表現し得る動きのうち、3つの動き(トランスレーション(translation)、スケール(scale)、ローテート(rotate))を表現するアフィン動きモデルを類似アフィン動きモデル(similarity(or simplified) affine motion model)といえる。前記アフィン動きモデルのうち、どのモデルを使用するかによって導出されるCPMVの数及び/又は現在ブロックのサンプル/サブブロック単位のMVの導出方法が変わり得る。
本発明の一実施例で、適応的な4つ及び6つのパラメータ動きモデルが使用される。AF_INTERで、6−パラメータ動きモデルがJEMで存在する4−パラメータ動きモデルに加えて提案される。6−パラメータアフィン動きモデルが下記の数式15のように説明される。
ここで、係数a、b、c、d、e、及びfは、アフィン動きパラメータであり、(x,y)と(x’,y’)は、アフィン動きモデルの変換以前と以降のピクセル位置の座標である。ビデオコーディングでアフィン動きモデルを使用するために、もしCPMV0、CPMV1、及びCPMV2がCP0(左上側)、CP1(右上側)、及びCP2(左下側)に対するMVであれば、数式16が下記のように説明され得る。
ここで、CPMV_0={v_0x,v_0y}、CPMV_1={v_1x,v_1y}、CPMV_2={v_2x,v_2y}、及びwとhは、それぞれコーディングブロックの幅(width)と高さ(height)である。数式16は、ブロックの動きベクトルフィールド(motion vector field、MVF)である。
フラグが隣接ブロックがアフィン予測でコーディングされた際、4−パラメータ又は6−パラメータアフィン動きモデルが使用されるか否かを指示するために、CUレベルでパーシングされる。アフィン予測でコーディングされた隣接ブロックがなければ、フラグは省略され、4−パラメータのモデルがアフィン予測のために使用される。言い換えると、6−パラメータモデルが1つ又はそれ以上の隣接ブロックがアフィン動きモデルでコーディングされる条件で考慮される。CPMVDの数に関して、2つ及び3つのCPMVDが4−パラメータ及び6−パラメータアフィン動きモデルに対してそれぞれシグナリングされる。
また、本発明の一実施例で、パターン−マッチングされた動きベクトル加工(pattern−matched motion vector refinement)が使用され得る。JEMのパターン−マッチングされた動きベクトル誘導(JEMのエンコーダの説明で、名付けてPMMVD、以下PMVDと略称)において、デコーダは、CU−レベルの探索のために開始のMV候補を決定するために、いくつかの動きベクトル(motion vector、MV)を評価する必要がある。サブ−CU−レベルの探索で、最適のCU−レベルのMVに加えて、いくつかのMV候補が追加される。デコーダは、最適のMVを探索するために、このようなMV候補を評価する必要があり、これは、多くのメモリ帯域を要求する。提案されたパターン−キャッチングされた動きベクトル精製(pattern−matched motion vector refinement、PMVR)で、JEMでPMVDでのテンプレートマッチング(template matching)と両方マッチング(bilateral matching)のコンセプトが採択される。PMVRが使用可能か否かを指示するために、スキップモード又はマージモードが選択された際、1つのPMVR_flagがシグナリングされる。PMVDと比較し、意味あるようにメモリ帯域幅の要求を減少させるために、MV候補リストが生成され、もしPMVRが適用されると、開始のMV候補のインデックスが明示的にシグナリングされる。
マージ候補リストの生成プロセスを使用することによって候補リストが生成されるが、サブ−CUマージ候補、例えば、アフィン候補とATMVP候補は除外される。両方向マッチング(bilateral matching)のために、ただ単方向−予測(uni−prediction)MV候補のみが含まれる。両方向−予測(bu−prediction)MV候補は、2つの単方向−予測MV候補に分割される。また、(MVの差が予め定義された臨界値より少ない)類似のMV候補がやはり除去される。CU−レベルの探索のために、ダイヤモンド探索MV精製(diamond search MV refinement)がシグナリングされたMV候補から始めて行われる。
サブ−CU−レベルの探索は、ただ両方マッチングマージモード(bilateral matching merge mode)でのみ使用可能である。全てのサブ−CUに対するサブ−CU−レベルの探索の探索ウィンドウは、CU−レベルの探索の探索ウィンドウと同一である。従って、更なる帯域幅がサブ−CU−レベルの探索において要求されない。
モードでMVPを精製するために、テンプレートマッチングも使用される。AMVPモードで、2つのMVPがHEVC MVP生成プロセスを使用することによって生成され、1つのMVPインデックスがそれらのうち1つを選択するためにシグナリングされる。選択されたMVPは、PMVRでテンプレートマッチングを使用することによってさらに精製される。適応的動きベクトル解像度(adaptive motion vector resolution、AMVR)が適用されると、テンプレートマッチングの精製以前に、MVPは該当する正確度でラウンディングされる(rounded)。このような精製過程は、パターン−マッチングされた動きベクトル予測子精製(pattern−matched motion vector predictor refinement、PMVPR)と名付けられる。本文書の残りで特に定義しなければ、PMVRはテンプレートマッチングPMVR、両方向マッチングPMVR、及びPMVPRを含む。
メモリ帯域幅の要求を減少させるために、PMVRは4x4、4x8、及び8x4のCUに対して使用できなくなる。更なるメモリ帯域幅の要求量の減少のために、64と同一のCU領域に対する{テンプレートマッチング、両方向マッチング}の探索範囲が{±2,±4}と縮小し得、64より大きいCU領域に対する{テンプレートマッチング、両方向マッチング}の探索範囲が{±6,±8}と縮小し得る。本文書のPMVRセクションで説明された前述した全ての方法を使用することによって、HEVCでの最悪の場合に比べて要求されるメモリ帯域幅がJEM−7.0のPMVDで45.9xからPMVRで3.1xと減少した。
HMVP(History−based Motion Vector Prediction)一般
一般に、映像圧縮技術は、2つの主要な技法として空間的及び時間的リダンダンシー(redundancy)に対する探索(exploiting)を用いる。例えば、HEVC(High Efficiency Video Coding、HEVC)及びVVCは、いずれもインターコーディング(inter coding)の基底で2つの動き圧縮技法を使用する。1つは、マージ(merge)動きであり、もう1つは、AMVP(advanced motion vector prediction)である。このような2つの予測モードに対する改善のために、様々な変更(modifications)が議論されている。これらは候補の数を増加させることから始めて、より空間的に拡張される候補に対する探索、及び非慣習的な(non−traditional)位置での時間的候補を検査することなどを含む。このような2つの技法は、一次的に可能な候補でリストを構成し、RD(rate distortion)コストを最小化し、ビットストリームで選択された候補をシグナリングする。
特に、最近の映像圧縮技術では、以前にコーディングされたブロックの動き情報を保存し、保存された動き情報を以降にコーディングされるブロックの動き予測に用いるHMVP(History−based Motion Vector Prediction)が議論される。このようなHMVPは、マージリスト(又は、マージ候補リスト)又はAMVPリスト(又はAMVP候補リスト)に追加され得る。
デコーダは、HMVPのためにFIFO(first in first out)システム(又は方式)で動作するLUT(look−up table)を維持する。本明細書で、LUTは、その名称に制限されず、テーブル、HMVPテーブル、HMVP候補テーブル、バッファ、HMVPバッファ、HMVP候補バッファ、HMVPリスト、HMVP候補リスト等と称される。具体的に、非−アフィン(non−affine)PU(prediction unit)(又は、CU(coding unit))がデコーディングされる際、その動き情報はLUTに保存され、デコーダは、次のPUに対するデコーディングを進める。この際、保存される動き情報は、x(水平)及びy(垂直)方向の動きベクトル、参照インデックス情報、及びモード情報等を含み得る。
デコーダは、漸進的に(progressively)デコーディングされた非−アフィン候補の動き情報が保存されるLUTを維持することができる。LUTのサイズは、予め定義されたS個の候補に制限され得る。一実施例として、LUTは、スライスの開始、CTU行の開始、又はCTUの開始でリセット(reset)され得る。
HMVPは、マージモード及びAMVPモードでいずれも適用され得る。マージリストは、B個の候補を有し得、AMVPリストは、2つの候補を有し得る。従来の映像圧縮技術で、マージリストは、次の候補で構成される:i)空間候補、ii)時間候補、iii)両方向予測(Bi−Pred)候補、iv)ゼロ動き候補(zero motion candidate)。最近、ATMVP(advanced motion vector prediction)がさらに候補として考慮される方法が議論される。一例として、ATMVP候補は、時間候補の以前にマージリストに挿入され得る。マージリストの候補は、最大のマージリストのサイズに到達するまでマージリストに追加される。重複候補(duplicate candidate)は、マージリストに追加されなくてもよい。AMVPリストは、2つの候補が挿入され得る。一例として、2つの候補のうち1つは、使用可能な空間候補から選択され、二番目の候補は、時間候補から選択され得、リストが満たされない場合、ゼロ動きベクトル候補が追加され得る。
HMVPは、LUTで候補が投入された順序と同じようにテーブルから抜け出すFIFOベースで適用される。
一実施例で、HMVPがマージリストの構成に適用される際、HMVP候補は、下記のようにリストの3番目の位置に挿入(又は追加)され得る:
1.空間候補(Spatial Candidate)
2.時間候補(Temporal Candidate)
3.LUTに対する最大S個のHMVP候補(Up to S HMVP Candidates for a LUT)
4.結合された両方向予測候補(Combined Bi−Pred Candidate)
5.ゼロ動きベクトル候補(Zero Motion Vector Candidate)
一実施例で、HMVPがAMVPリストの構成に適用される際、HMVPは下記のように時間候補以降、3番目の位置に挿入され得る:
1.空間的候補(Spatial Candidate)
2.時間的候補(Temporal Candidate)
3.最大K個のHMVP候補(Up to K HMVP Candidates)
4.ゼロ動きベクトル候補(Zero Motion Vector Candidate)
図27は、本明細書の実施例にかかるHMVPを保存する方法を説明するためのフローチャートである。
図27を参照すると、デコーダは、現在PU(又はCU)をデコーディングする(S2701)。
デコーダは、現在PUが非−アフィンモードでコーディングされたブロックであるか確認する(S2702)。HMVP候補の使用を容易にするために、もし現在PUがアフィンモードでコーディングされたブロックである場合、デコーダは、現在PUの動き情報をテーブルに保存しない。
現在PUが非−アフィンモードでコーディングされたブロックである場合、デコーダは、現在PUの動き情報をテーブルに保存(又はアップデート)する(S2703)。
本明細書の実施例で、HMVPテーブルは2つの方法、即ち、i)非制限的FIFO(unconstrained FIFO)、ii)制限的FIFO(constraint FIFO)方法でアップデートされ得る。前者で、重複する動き情報が存在し得るが、プルーニングプロセスは適用されない。これは、全般的なプロセスの複雑度を低減させるのに寄与する。一方、後者で、プルーニングプロセスが適用され、HMVPテーブル内の重複する動き情報が存在しない。下記の図を参照して説明する。
図28は、本明細書の実施例にかかる非制限的FIFO方式で動作するHMVP テーブルを説明するための図である。
図28を参照すると、テーブルに追加される候補は、テーブルの終端(右側)に追加される。反面、FIFO方式によってテーブルで排出される候補は、テーブルの前端(左側、最も古い候補)に位置する。
もし、インデックスL−1(即ち、終端)でテーブルが予め定義された最大数の候補で完全に満たされなければ、除去される候補なく、新しい候補が追加される。反面、テーブルが既に完全に満たされた場合、即ち、テーブルの最大数を満たす場合、テーブルで最も古い前端に位置した候補が除去され、新しい候補が追加される。
図29は、本明細書の実施例にかかる制限的FIFO方式で動作するHMVPテーブルを説明するための図である。
図29を参照すると、制限的FIFOが使用される場合、新しい候補を追加することがいかなる重複を引き起こす場合(即ち、新しい候補が重複する動き情報を有する場合)プルーニングが行われる。実施例として、重複する動き情報を有する候補がテーブルに存在すると、テーブル内の重複する候補は除去され、現在の候補の動き情報が追加され得る。
HMVP候補に対して、多くの場合で(最も)最近の履歴MVが空間候補(又は空間隣接候補)の動き情報と重複し得る。したがって、本実施例では、HMVP候補をAMVP又はマージリストに追加する際、候補の追加順序をHMVP LUTインデックスの順序と異なって設定する方法を提案する。
本明細書の実施例にかかると、HMVP候補を適応的に調節することによって、候補リストを効率的に構成でき、これを介して、二値化(binarization)に使用されるシグナリングビンの数を減少させ、コーディング効率を高めることができる。即ち、マージリスト又はAMVPリストに追加されるHMVP候補は、HMVPリスト内のインデックスにより制限されないことがある。一実施例として、次の表1は、AMVP又はマージリストにHMVP候補を追加する順序を変更する方法を例示する。
表1を参照すると、前述したように、(最も)最近に挿入されたHMVP候補は、空間候補の動き情報と同一である可能性が高いため、これを考慮し、HMVP候補の追加順序をHMVPインデックスと関係なく予め定義し得る。
また、一実施例で、エンコーダ/デコーダは、HMVPリスト内でn番目の候補から始めるHMVP候補からマージリスト又はAMVPリストに追加し得る。次の表2は、AMVP又はマージリストに候補を追加する変更された順序を例示する。
表2を参照すると、HMVP候補は、2番目のインデックスからマージリスト又はAMVPリストに追加され得る。
一実施例で、テーブル(LUT)内でのHMVP候補の追加順序に関する情報は、エンコーダからデコーダにシグナリングされ得る。例えば、このような順序の情報は、上位レベルのシンタックス(high level syntax、HLS)を介して送信され得る。前記上位レベルのシンタックスは、例えば、シーケンスパラメータセット(sequence parameter set)、ピクチャパラメータセット(picture parameter set)、スライスヘッダ(slice header)、コーディングツリーユニット(coding tree unit)、コーディングユニット(coding unit)及び/又は他の適切なシンタックスデータヘッダであり得る。
下記の表3は、本明細書で提案する方法が適用され得る上位レベルのシンタックス構造を例示する。
表3を参照すると、set_HMVP_order_flagが1であることは、set_HMVP_order_flagがCVSで非−IDR(non−IDR)ピクチャ内のスライスヘッダで存在することを指示する。set_HMVP_order_flagが0であることは、set_HMVP_order_flagがスライスヘッダで存在せず、VCSで適応的HMVPが使用されないことを指示する。
下記の表4は、本明細書で提案する方法が適用され得るスライスセグメントヘッダシンタックス構造を例示する。
表4を参照すると、slice_HMVP_idxは、使用される候補の順序に対するインデックスを意味する。例えば、slice_HMVP_idxが0であることは、0、1、2、3等の基本HMVPの順序を表現し得る。同様に、1のインデックス値は、3、2、1、0のHMVP順序を表現するために使用され得る。
また、本明細書の一実施例で、HMVP LUTに加えて、ロングタームリスト(long term list)を動き予測のために使用する方法を提案する。これを介して、維持されるHMVP候補の数を増加させ得る。実施例として、2−HMVPテーブルを考慮し得、ここで、1つは一般HMVP候補を保管し、もう1つは維持がさらに必要な候補をさらに保管するロングターム(long term)リストに使用できる。
次は、ロングタームリスト(又は、ロングタームHMVPリスト)を初期化して構成する方法を例示する。
− CTU行の一番目のCTUをデコーディングした後、以降のCTUの1つ又はそれ以上の履歴MVがロングタームHMVP LUTに追加され得る。このようなロングタームHMVP LUTは、次のCTU行まで使用されるか、アップデートされないことがある。
− 次のCTU行の開始で、ロングタームHMVP LUTが、通常のHMVP LUTを初期化するために使用され得る。その理由は、CTU行の開始でCTUのHMVP候補が以前のCTU行の端での履歴MVよりさらに互いに関連(co−relate)し得るためである。
− 前述したプロセスは繰り返され得る。
図30は、本明細書の実施例にかかるHMVP LUT、及びロングタームHMVP LUTを例示する図である。
図30を参照すると、エンコーダ/デコーダは、HMVP候補を保存するための2つのLUTを含み得る。このうちの1つは、HMVP LUT(又は一般HMVP LUT、ショートタームHMVP LUT)であり、もう1つは、ロングタームHMVP LUTであり得る。HMVP候補は、マージ又はAMVPリストに全て追加される際、図30に示すように、HMVP LUT又はロングタームLUTから追加され得る。
前述したロングタームLUTの使用は、新しいシンタックスエレメントを用いてシグナリングされ得る。実施例として、前記シンタックスエレメントは、上位レベルのシンタックスを介してシグナリングされ得る。例えば、シンタックスエレメントは、シーケンスパラメータセット(sequence parameter set)、ピクチャパラメータセット(picture parameter set)、スライスヘッダ(slice header)、コーディングツリーユニット(coding tree unit)、コーディングユニット(coding unit)及び/又は他のシンタックスデータヘッダに存在し得る。
また、本明細書の一実施例で、HMVP候補をHMVP LUTに追加するにあたって、デコーディングのための柔軟性(flexibility)を考慮する方法を提案する。エンコーダ/デコーダは、HMVP候補をテーブルに追加するにあたって、PU(又はCU)の1つ又はそれ以上の特性に対する決定(decision)の基準を考慮し得る。
実施例として、エンコーダ/デコーダは、HMVP候補をテーブルに追加するにあたって、次のような事項を考慮し得る。エンコーダ/デコーダは、PUのモード(例えば、マージモード、アフィンモード、AMVPモード等)及び/又はブロックのサイズのような特性を個別的に又は組み合わせて考慮して候補として追加し得る。一実施例で、これ以外に他の更なる特性が考慮されることもある。例えば、HMVP LUTのアップデートを考慮するマージタイプ(例えば、空間候補又は時間候補)、サブPUであるか否か等が、候補の選択基準として考慮され得る。前述した選択基準は、以前の履歴(又は、以前のHMVP)との重複を減少させるために決定され得る。例えば、PUがマージモードでコーディングされ、マージタイプが空間マージである場合、デコーダは、該当PUの動き情報をHMVP LUTにアップデートしなくてもよい。
図31は、本明細書の実施例にかかるHMVP LUTをアップデートする方法の一例を示す図である。
図31を参照すると、エンコーダ/デコーダは、コーディングされた候補の動き情報を獲得する(S3101)。
エンコーダ/デコーダは、前記候補の動き情報をLUTにアップデートするか否かを予め定義された決定の基準によって評価する(S3102)。前述したように、前記決定の基準は、前記候補のモード(例えば、マージモード、アフィンモード、AMVPモード等)、前記候補のブロックサイズ及び/又は前記候補のマージタイプの少なくとも1つに関する特性を含み得る。
エンコーダ/デコーダは、前記決定の基準に基づいてLUTをアップデートする(S4303)。即ち、前記候補が予め定義された決定の基準を満たす場合、エンコーダ/デコーダは、前記候補の動き情報をLUTに追加し得る。
また、本明細書の一実施例で、HMVP候補をマージリスト(又はAMVPリスト)に追加するための重複性チェックに対する制限を提案する。重複性チェックに対する制限は、様々な方法で定義(又は実現)され得る。
一実施例で、エンコーダ/デコーダは、マージリスト内の最初の特定数の候補に対するプルーニングチェックの数を制限し得る。実施例として、エンコーダ/デコーダは、マージリストの一番目の候補から特定数番目の候補までの候補に対するプルーニングチェックの数を制限し得る。例えば、エンコーダ/デコーダは、マージリストの一番目の候補から特定数番目の候補までの候補に対するプルーニングプロセスを行うことができる。また、プルーニングチェックの対象になるHMVP候補は、予め定義された数に制限され得る。
また、一実施例で、エンコーダ/デコーダは、プルーニングチェックをマージリスト内のマージ候補の特定タイプに対して行うことによって、プルーニングチェックを制限し得る。例えば、エンコーダ/デコーダは、HMVP候補を追加するにあたって、マージリストの空間候補に対してのみプルーニングチェックを行うことができる。或いは、例えば、エンコーダ/デコーダは、HMVP候補を追加するにあたって、マージリストの空間候補の一部に対してのみプルーニングチェックを行うことができる。前記空間候補の一部は、予め定義され得る。例えば、前記予め定義される空間候補の一部は、左側の隣接空間候補及び/又は上側の隣接空間候補の少なくとも1つであってもよい。或いは、例えば、エンコーダ/デコーダは、HMVP候補を追加するにあたって、マージリストの空間候補の一部に対してのみプルーニングチェックを行うことができ、前記空間候補の一部は、左側及び上側に予め定義され得る。前述した例示により、本明細書の実施例がこれに制限されるわけではなく、様々なタイプのマージ候補が組み合わされ、プルーニングチェックの対象に制限され得る。
図32は、本明細書の実施例にかかるプルーニングチェックの対象になるHMVP候補の数を制限する方法を例示する図である。
図32を参照すると、本明細書の一実施例で、プルーニングチェックの対象になるHMVP候補の数は、M個に制限され得る。エンコーダ/デコーダは、HMVP候補を用いてマージリストを構成するにあたって、HMVP LUT内のM個の候補と前記マージリストのマージ候補間の動き情報の重複性可否をチェックすることができる。
或いは、エンコーダ/デコーダは、現在デコーディングされた処理ブロック(例えば、PU)の動き情報をHMVP LUTに追加するにあたって、HMVP LUT内のM個の候補と前記デコーディングされたPUの動き情報間の重複性可否をチェックできる。
図33は、本明細書の実施例にかかるプルーニングチェックの実行方法の一例を示すフローチャートである。
図33を参照すると、エンコーダ/デコーダは、デコーディングされた候補の動き情報を獲得し、プルーニングチェックの数を決定(又は解読)する(S3301、S3302)。前記プルーニングチェックの数は、前記で説明した(例えば、図32で説明した)方法によって、エンコーダ/デコーダに予め定義され得る。エンコーダ/デコーダは、決定されたプルーニングチェックの数に基づいて、プルーニングチェックを行う(S4503)。
一実施例で、前記表3及び表4と同様の方法で、プルーニングチェックに関する情報は、上位レベルのシンタックスを介してシグナリングされ得る。この際、エンコーダからデコーダへ送信されるシンタックスエレメントは、プルーニングチェックの数を指示するために、特定の上位レベルのシンタックスを介してシグナリングされ得る。前記上位レベルのシンタックスは、例えば、シーケンスパラメータセット(sequence parameter set)、ピクチャパラメータセット(picture parameter set)、スライスヘッダ(slice header)、コーディングツリーユニット(coding tree unit)、コーディングユニット(coding unit)及び/又は他のシンタックスデータヘッダに含まれ得る。
本明細書の一実施例で、HMVP候補を選択する効率的な方法を提案する。履歴動きベクトル候補(即ち、HMVP候補)をマージリスト(又はAMVPリスト)に挿入する際、HMVP候補は、既存のマージリストと重複しないようにするために、プルーニングチェックが行われ得る。この際、Mの大きさのマージリストとNの大きさの履歴LUT間の全体の重複チェックを行うためには、(M−1)xN回のチェックを必要とする。
したがって、本明細書の実施例で、HMVP候補の数はマージ候補に依存し得る。例えば、HMVP候補の数は、マージリストに存在する空間候補の数に依存し得る。或いは、例えば、HMVP候補の数は、マージリストに存在する空間候補及び時間候補の数に依存し得る。
もし、マージリストに存在するマージ候補がさらに存在する場合、マージリストのマージ候補の数及び/又はHMVPの数に基づく特定の基準(又は規則)に従って、プルーニングチェックを行うHMVP候補の数が減少し得る。これを通じて、最悪のケースでの重複チェックの数が減ることがある。
例えば、大きさ(又は長さ)が6であるマージリストの場合、マージリストが満たされなければ、マージリストは、最大5個の空間又は他のマージ候補を含み得る。6個のHMVPリストでHMVP候補を挿入するためには、最悪の場合、30個の重複チェックが必要であるかもしれない。
一実施例で、プルーニングチェックの対象になるHMVPの数に対する制限に関する例示は、次の数式17及び表5の通りである。
表5を参照すると、プルーニングチェックの対象になるHMVPの数を2つに制限することによって、最悪のケースで、HMVPの追加のための重複チェックの数は、30回の代わりに12回と減少し得る。
本明細書の一実施例で、履歴ベース空間時間動きベクトル予測(history−based spatial temporal motion vector prediction、H−STMVP)を使用してマージリストを構成する方法を提案する。H−STMVPは、2つの履歴ベース空間MVP、及びTMVPの平均に誘導される候補を表す。前記2つの空間HMVPは、HMVPバッファから獲得され得、前記TMVPは、現在のマージリストから獲得され得る。ここで、前記空間候補は、現在ブロックの以前のデコーディング順序で最後の2つのコーディングされたMVから獲得された候補であり得る。
例えば、最後にコーディングされたMV(本明細書でMV_Lと称する)、最後から二番目にコーディングされたMV(本明細書でMV_(L−1)と称する)、及びMV_TMVPは、マージリストに挿入されるH−STMVP候補を生成するのに使用され得る。
前述した3つの候補を全て使用できる場合、マージリストに追加されるMVは、次の数式18により計算され得る。
一実施例として、仮に、前述した3つの候補のうち2つのみが利用可能であれば、2つの候補に対してのみ平均化され、H−STMVPが生成され得る。同様に、1つの候補のみ使用可能であれば、前記1つの候補のみ使用され得る。使用可能な候補がない場合、H−STMVPは、マージリストの構成に使用されなくてもよい。
本明細書の一実施例で、前述した数式18以外に他の方法を利用し、H−STMVP候補の動きベクトルを獲得する方法を提案する。
例えば、3つ以上の候補を一度に平均化する代わりに、空間候補を先に平均化した後、この結果を使用して2つの候補を再度平均化することが計算的にさらに簡単であるかもしれない。これに対する例示は、次の数式の通りである。
又は、次のように平均値を獲得することもできる。
エンコーダ/デコーダは、数式19乃至21のように、まず、2つの候補を平均し、三番目の候補を用いて結果値を最終的に平均化できる。又は、エンコーダ/デコーダは、数式22のように、2だけシフト演算を適用することによって、候補、即ち、MV_Lにさらに高い重要度/加重値を付与し得る。前述した数式19乃至22を使用し、シフト演算だけで割り算の演算なしで平均値を誘導し得る。
本明細書の一実施例で、H−STMVPを誘導するにあたって、2つの履歴ベース空間候補の代わりに、任意の数(n)の空間候補を使用する方法を提案する。これらのn個の候補は、必ずしも連続的なデコーディング順序である必要はない。任意に、又は一部の規則に従って選択できる。
従って、前記で説明した数式18は、次の数式23のようにより一般的な方式で表現され得る。
別の一実施例で、もし、5つの空間候補を使用する場合を仮定すると、時間候補に適用される加重値を向上させることによって、H−STMVP候補を生成するために増加した空間候補の影響を最小化し、空間候補及び時間候補を適切に反映することができる。
従って、このために次の数式24を用いて空間候補を共に平均した後、その結果を使用してMV_TMVPを平均化することによって、前述した目的を達成することができる。
本明細書の一実施例で、H−STMVPを誘導するために用いられる動きベクトル候補に加重値(又は加重因子)を追加する方法を提案する。この際、前記加重値は、経験的に決定されることもあり、固定された参照フレームまでの時間距離を考慮して決定されることもあり、又は履歴テーブルでの位置を考慮することによって決定されることもある。一例として、新しい候補は、以前の候補よりさらに多くの加重値を有し得る。
即ち、本実施例で、前記で説明した数式18は、次の数式25のように表現され得る。
この際、加重値は、同じ値を有してもよく、不均等に分散された値を有してもよい。
本明細書の一実施例で、H−STMVP候補を誘導するために使用される動きベクトルを単一参照ピクチャにスケーリングする方法を提案する。
図34は、本明細書の一実施例にかかる互いに異なる参照ピクチャを参照する動きベクトルを用いて、H−STMVP候補を誘導する方法を説明するための図である。
図34を参照すると、MV_L、MV_L−1、及びMV_TMVP候補は、それぞれ互いに異なる参照ピクチャを参照(又は指示)する場合を仮定する。即ち、図34は、H−STMVP候補を生成するのに使用された各候補が異なる参照インデックスを有し得、結果として、異なる参照フレームを有し得ることを示す。
近接の参照フレームのあるフレームが、本質的にH−STMVPの動きベクトルにさらに大きな影響を与え得るので、前述した数式18乃至25の平均を不均等な結果値にし得る。従って、均等な比較及び反映のために、全ての動きベクトルを単一参照フレームにスケーリングする方法を提案する。
この際、エンコーダでRDの最適化の一部として行われ、どの単一フレームが参照フレームに使用するのに最適であるかを決定し得る。実施例として、選択された参照フレームは、スライスヘッダに存在するTMVP配列インデックスと類似のスライスヘッダでシグナリングされ得る。例えば、固定された規則を使用し、使用される参照フレームを生成することが可能である。或いは、例えば、L0から一番目に利用可能な基準フレームにスケーリングされるか、現在ピクチャの順序のカウントにスケーリングされ得る。
一実施例で、前述した目的を達成するために、シーケンスパラメータセット、ピクチャパラメータセット、スライスヘッダ、コーディングツリーユニット及び/又は他のデータヘッダの一部であり得る上位レベルのシンタックス(HLS)を用いて、単一の固定されたピクチャに対する情報をエンコーダがデコーダへ送信し得る。例えば、次の表6及び/又は表7のような上位レベルのシンタックス構造が定義され得る。
表6を参照すると、set_HSTMVP_ref_pic_flagが1と同一であると、set_HSTMVP_idxがCVSで非IDRピクチャのスライスヘッダに存在することを示す。set_HSTMVP_ref_pic_flagが0であると、set_HSTMVP_idxがスライスヘッダに存在しないように示す。
表7を参照すると、slice_HMVP_idxは、参照インデックスを指定する。一実施例として、参照インデックスは、リストL0に対して選択され得る。
本明細書の実施例で、前記で説明した実施例に関して、より詳細な実施例を説明する。具体的に、現在ブロックのCPMVを計算(又は誘導)するために、位置及び次元情報を使用してアフィンHMVP候補を間接的に使用する方法を提案する。本明細書で、誘導されたCPMVは、相続されたアフィンHMVP候補と称され得る。本明細書の実施例にかかる相続されたアフィンHMVP候補は、前述したアフィンマージリスト及び/又はアフィンAMVPリストの生成プロセスで使用され得る。
図35は、本明細書の実施例にかかる相続されたアフィンHMVP候補を誘導するためのブロックの位置を例示する図である。
図35を参照すると、アフィンHMVP候補の位置及び次元に基づいて、現在ブロック3501のCPMVは、一般的な相続されたCPMVを周辺ブロックから誘導する方法と類似の方法で誘導され得る。即ち、エンコーダ/デコーダは、アフィンHMVP候補である参照ブロック3502の位置及び次元(例えば、幅及び高さ)の情報に基づいて、現在ブロック3501の制御点の動きベクトルを誘導し得る。
一実施例として、現在ブロックの相続されたアフィンHMVPのCPMVは、次の数式26及び27を用いて誘導され得る。
数式26及び27で、posCurCU_Yは、現在ブロック3501の左上段のサンプルの垂直方向の座標値を表し、posRefCU_Yは、参照ブロック3502の左上段のサンプルの垂直方向の座標値を表す。posCurCU_Xは、現在ブロック3501の左上段のサンプルの水平方向の座標値を表し、posRefCU_Xは、参照ブロック3502の左上段のサンプルの水平方向の座標値を表す。RefCU_heightは、参照ブロック3502の高さを表し、RefCU_widthは、参照ブロック3502の幅を表す。
本明細書の一実施例で、アフィンHMVP候補(直接又は相続されたHMVP)を追加する際、アフィンマージ又はアフィンAMVPリストの生成に使用され得るアフィンHMVP候補を選択するように制限事項が追加され得る。
一例として、アフィンHMVP候補は、前記アフィンHMVP候補が現在ブロックに隣接する場合にのみ、アフィンマージ又はアフィンAMVPリストに追加され得る。
別の一例として、アフィンHMVP候補は、前記アフィンHMVP候補が現在ブロックから特定の距離内に位置(又は存在)する場合にのみ、アフィンマージ又はアフィンAMVPリストに追加され得る。例えば、前記特定の距離は、予め定義されたピクセル距離であり得る。エンコーダ/デコーダは、アフィンHMVP候補が利用可能であるか判断するために、前記アフィンHMVP候補が予め定義された特定の距離内に位置するか否かを判断(又は決定)できる。
別の一例として、アフィンHMVP候補は、現在ブロックを基準に特定の位置に位置(又は存在)する場合にのみ、アフィンマージ又はアフィンAMVPリストに追加され得る。例えば、前記特定の位置に存在する場合は、前記アフィンHMVP候補が現在ブロックの左側又は上側の隣接ブロックの場合であり得る。
N個のエレメントを有するアフィンHMVP LUTに対して、全てのエレメント又は最初のM個のエレメントに対する前述した確認プロセスが、マージ又はAMVPリストが満たされるまで、若しくは予め定義された特定のHMVP候補の数に到達するまで行われ得る。
本明細書の一実施例で、アフィンHMVP候補は、アフィンマージリスト及び/又はアフィンAMVPリストで既存に存在する相続されたアフィン候補を代替するのに使用する方法を提案する。
図36は、本明細書の実施例にかかるアフィンマージリスト又はアフィンAMVPリストを例示する図である。
図36を参照すると、エンコーダ/デコーダは、既存のアフィンマージリスト又はアフィンAMVPリストに存在する相続された候補を相続されたアフィンHMVP候補に代替することができる。即ち、エンコーダ/デコーダは、現在ブロックにサブブロックベースのマージモードが適用される場合、相続されたアフィン候補、及び構成されたアフィン候補を用いてサブブロックベースのマージ候補リストを生成し、相続されたアフィンHMVP候補を誘導し、前記サブブロックベースのマージ候補リストに含まれた少なくとも1つの相続されたアフィン候補を相続されたアフィンHMVP候補に代替することができる。
また、本発明の一実施例で、アフィンHMVPのルックアップテーブル(LUT)は、スライス、CTU行(row)、又はCTUの開始で初期化され得る。これを介して、並列処理の遂行性を向上させることができる。
以下、後述する実施例では、HMVPからの最悪のプルーニングチェック(pruning check)の数を減少させるための方法を提案する。
本明細書の実施例で、HMVP候補がマージリストに追加される場合、プルーニングチェックの数は、マージリスト内の利用可能な候補の数、及びマージリストに追加され得るHMVP候補の数に基づいて決定され得る。以下で、本明細書の実施例を説明するにあたって、説明の便宜のために下記のように変数を定義して説明する。
− NST:マージリスト内利用可能な(又は存在する)候補の数
− NHMVP:テーブル内HMVP候補の数(即ち、HMVPテーブルの大きさ)
− NmrgToBeAdded:マージリストに追加されるHMVP候補の数
− NHMVPChecked:プルーニングチェックされるHMVP候補の数
− Nmax_hmvp_prunning:HMVP候補をマージリストに追加するために要求される最悪の場合のプルーニングチェックの数
本明細書の一実施例で、HMVP候補は、次の条件によってマージリストに追加され得る。
− 第1の条件:LUTは、以前にプルーニングされた場合(即ち、HMVP LUT内候補間に同一のmvはない場合)
− 第2の条件:HMVP LUTテーブルの大きさが6である場合
− 第3の条件:HMVP候補をマージリストに追加するために利用可能な(又は存在する)マージ候補の最大の数が4である場合。即ち、最大のマージリストの大きさ(又は最大のマージ候補)から1を減算した値よりもマージリスト内のマージ候補の数が小さい場合。例えば、最大のマージリストの大きさは6であってもよく、現在利用可能なマージ候補の数が5より小さい場合、HMVP候補を追加(又は挿入)し得る。言い換えると、HMVP候補は、マージリストのインデックス5までのみ追加され得る。
HMVP候補がマージリストに追加されると(即ち、マージ候補になると)、各HMVP候補は、マージ候補間の重複を除去するためにプルーニングチェックが必要なことがある。既存の映像圧縮技術によると、マージリストにHMVPを追加するために必要な最悪の(又は最悪の場合の)プルーニングチェックの数は、次の表8のように計算され得る。
表8を参照すると、既存の映像圧縮技術によると、HMVPテーブル(又はHMVPリスト、HMVP候補リスト)内6つのHMVP候補に対してプルーニングチェックが行われ得る。
具体的に、1)マージリスト内の候補が1つである場合、マージリストに追加されるHMVP候補は4つであってもよい。また、6つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は4であってもよい。2)マージリスト内の候補が2つである場合、マージリストに追加されるHMVP候補は3つであってもよい。また、6つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は7であってもよい。3)マージリスト内の候補が3つである場合、マージリストに追加されるHMVP候補は2つであってもよい。また、6つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は9であってもよい。4)マージリスト内の候補が4つである場合、マージリストに追加されるHMVP候補は1つであってもよい。また、6つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は10であってもよい。
本明細書の実施例で、前記で説明した最悪のプルーニングチェックの数を減らすための方法を提案する。もし、マージリストにマージ候補がより多く存在する場合、マージ候補(即ち、非HMVP候補)が増加するのに伴って、HMVPのコーディング影響が減少するため、プルーニングチェックするHMVP候補の数が減少する必要があり得る。従って、本明細書の実施例で、エンコーダ/デコーダは、最悪のプルーニングチェックを減らすために、チェックされるHMVP候補の数(NHMVPChecked)を、追加される利用可能なHMVP候補の数(NmrgToBeAdded)と同じように設定され得る。この場合、最悪のプルーニングチェックの数は、次の表9のように計算され得る。
表9を参照すると、従来の映像圧縮技術と比較した際、HMVPのための最悪のプルーニングチェックの数は、10つから6つに減り得る。
表9を参照すると、一実施例で、1)マージリスト内の候補が1つである場合、マージリストに追加されるHMVP候補は4つであってもよい。また、4つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は4であってもよい。2)マージリスト内の候補が2つである場合、マージリストに追加されるHMVP候補は3つであってもよい。また、3つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は6であってもよい。3)マージリスト内の候補が3つである場合、マージリストに追加されるHMVP候補は2つであってもよい。また、2つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は6であってもよい。4)マージリスト内の候補が4つである場合、マージリストに追加されるHMVP候補は1つであってもよい。また、1つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は4であってもよい。
本明細書の実施例で、最悪のプルーニングチェックを減らすために、エンコーダ/デコーダは、プルーニングチェックされるHMVP候補の数(NHMVPChecked)を、追加される利用可能なHMVP候補の数(NmrgToBeAdded)とKの和が同じ値に設定し得る。ここで、Kは、予め定義された定数値を表す。一例として、Kが1である場合、最悪のプルーニングチェックの数は、次の表10のように計算され得る。
表10を参照すると、一実施例で、1)マージリスト内の候補が1つである場合、マージリストに追加されるHMVP候補は4つであってもよい。また、5つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は4であってもよい。2)マージリスト内の候補が2つである場合、マージリストに追加されるHMVP候補は3つであってもよい。また、4つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は7であってもよい。3)マージリスト内の候補が3つである場合、マージリストに追加されるHMVP候補は2つであってもよい。また、3つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は8であってもよい。4)マージリスト内の候補が4つである場合、マージリストに追加されるHMVP候補は1つであってもよい。また、2つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は7であってもよい。
本明細書の実施例で、最悪の場合、プルーニングチェックを減少させるために、チェックされるHMVP候補の数(NHMVPChecked)は、次の数式28のように定義され得る。
数式28で、Cは、予め定義された定数値を表す。もし、Cが2である場合、最悪のプルーニングチェックの数は、次の表11のように計算され得る。
表11を参照すると、一実施例で、1)マージリスト内の候補が1つである場合、 マージリストに追加されるHMVP候補は4つであってもよい。また、6つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は4であってもよい。2)マージリスト内の候補が2つである場合、マージリストに追加されるHMVP候補は3つであってもよい。また、6つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は7であってもよい。3)マージリスト内の候補が3つである場合、マージリストに追加されるHMVP候補は2つであってもよい。また、4つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は9であってもよい。4)マージリスト内の候補が4つである場合、マージリストに追加されるHMVP候補は、1つであってもよい。また、2つのHMVP候補に対するプルーニングチェックが行われ得る。この場合、最悪のプルーニングチェックの数は7であってもよい。
HMVPがマージリスト及び/又はAMVPリストの構成に追加される場合、マージリスト及び/又はAMVPリスト内に存在する候補との重複を避けるために、プルーニングが再度行われる必要性がある。もし、HMVP LUTが前記図29で説明したように、制限的FIFO動作により既にプルーニングされた場合、HMVP候補をマージリストに挿入(又は追加)する際、HMVP候補の間で比較(又はプルーニングチェック)は必要ではないかもしれない。これによって、前記図28で説明したような非制限的FIFOテーブルを使用する場合に比べてプルーニングチェックの数を減ることができる。何故なら、HMVP候補間のプルーニングチェックは、HMVP候補をマージリストに挿入する際に必要なためである。前述したように、本明細書で、HMVP LUTはその名称に制限されず、LUT、テーブル、HMVPテーブル、HMVP候補テーブル、バッファ、HMVPバッファ、HMVP候補バッファ、HMVPリスト、HMVP候補リスト、HMVPマージ候補リスト、履歴ベースマージ候補リスト等と称される。
本明細書の一実施例で、マージリスト及び/又はAMVPリストの構成のためのHMVP候補の挿入プロセスを考慮したHMVPルックアップテーブル(LUT)の大きさを定義し得る。具体的に、HMVP候補は、予め定義されたマージリストの大きさまで追加され得る。例えば、最大のマージリストの大きさが6で定義された場合、 HMVPは、6番目の候補にならなくてもよい。もし、マージリストに5つのマージ候補が利用可能な(又は存在する)場合、HMVP候補は追加されなくてもよい。この場合、6番目の候補は、HMVPを除いた候補(又はこれ以外の異なる方法)から選択され得る。従って、前述したHMVP候補の挿入プロセスを考慮すると、本明細書の一実施例で、次のようなHMVP LUTの大きさの選択方法を提案する。
一実施例として、HMVP LUTテーブルの大きさは、(MaxNumMergeCand - K)と同じように定義(又は設定)され得る。ここで、MaxNumMergeCandは、最大のマージ候補リスト(又はマージ候補リストの最大の数、最大のマージ候補の数)を表し、この際、MaxNumMergeCandは、6で定義され得る。Kは、予め定義された定数を表す。例えば、Kは1であってもよく、この際、HMVP LUTの大きさは5であってもよい。
本明細書の実施例にかかると、HMVPをMaxNumMergeCand - K(前述したように、例えば、Kは1)に制限することによって、HMVPをマージリスト及び/又はHMVPテーブルに追加する際、最悪の(又は最悪の場合の)プルーニングチェックの数を減り得る(前記図29で説明した制限されたFIFO動作)。また、本発明の実施例にかかると、HMVP LUTの保存のためのメモリが減少し得る。
本明細書の実施例で、前述したHMVPテーブルの大きさを考慮し、HMVP動き候補を有するテーブルに対して、以下で説明する実施例のようなアップデートプロセスが適用され得る。以下の実施例は、HMVPテーブルのアップデートプロセスの一例であって、本明細書の実施例がこれに限定されるわけではない。
HMVPテーブルのアップデートプロセス
まず、HMVPテーブルのアップデートプロセスの入力は、次のように定義され得る。
− 動きベクトルmvL0及びmvL1
− 参照インデックスrefIdxL0及びrefIdxL1
− 予測リスト活用フラグのpredFlagL0及びpredFlagL1
本アップデートプロセスの出力は、HMVP候補リストの修正された配列であってもよい。本プロセスで、mvCandは、前記動きベクトル、前記参照インデックス、前記予測リスト活用フラグを有する動きベクトル候補を指称する変数を表す。
本アップデートプロセスは、次のような段階で行われ得る。
1.変数identicalCandExistは、偽(false)に設定され、変数tempIdxは、0に設定される。ここで、identicalCandExistは、HMVP候補リストに同一の動き情報が存在するか表す変数であり、tempIdxは、現在の動きベクトルとHMVP候補リスト内で同一の動き情報を有するHMVP候補のインデックスを表す変数である。
2.HMVPCandNumが0より大きい場合、HMVPIdx=0..HMVPCandNum-1であるそれぞれのインデックスHMVPIdxに対して、identicalCandExistの変数が真(true)になるまで次の段階が適用され得る。ここで、HMVPCandNumは、HMVP候補リストのHMVP候補の数を表し、HMVPIdxは、HMVP候補リスト内のHMVP候補に割り当てられたインデックスを表す。
− 仮に、mvCandがHMVPCandList[HMVPIdx](即ち、HMVP候補リスト内のHMVPIdxを有するHMVP候補)と同一の動きベクトル及び同一の参照インデックスを有する場合、identicalCandExistは真に設定され、tempIdxは、HMVPIdxに設定され得る。
3.また、HMVP候補リストは、次の段階によってアップデートされ得る。
(1)仮に、identicalCandExistが真であるか、又はHMVPCandNumがMaxNumMergeCand-Kである場合(と同一である場合)、以下の段階が適用され得る。ここで、MaxNumMergeCandはマージリスト(又はマージ候補リスト)の大きさ(又はマージリストの最大候補の数、最大のマージ候補の数)を表す変数であり、Kは、任意の定数である。一実施例で、Kは、予め定義され得る。また、一実施例で、Kは1に設定され得、MaxNumMergeCand値が6に定義されることによって、MaxNumMergeCand-Kは、5であってもよい。また、一実施例で、MaxNumMergeCand-Kは5に設定され得る。例えば、identicalCandExistが真であるか、又はHMVPCandNumが5である場合、以下の段階が適用され得る。
− idx=(tempIdx+1)..(HMVPCandNum-1)であるそれぞれのインデックスidxに対して、HMVPCandList[idx−1]は、HMVPCandList[idx]に設定され得る。即ち、tempIdx以降のインデックスを有するHMVP候補のインデックスは、その値が1だけ減った値に設定され得る。
− HMVPCandList[HMVPCandNum-1]は、mvCandに設定され得る。
(2)そうでなければ(即ち、identicalCandExistは偽であり、HMVPCandNumがMaxNumMergeCand-Kより小さい場合)、以下の段階が適用され得る。前述したように、一実施例で、MaxNumMergeCand-Kは、5に設定され得る。例えば、そうでなければ(即ち、identicalCandExistは偽であり、HMVPCandNumが5より小さい場合)、以下の段階が適用され得る。
− HMVPCandList[HMVPCandNum++]は、mvCandに設定され得る。
一例として、本アップデートプロセスは、現在のスライスがP又はBスライスである際に呼び出され得る。この際、変数HMVPCandNumは0に設定され、変数HMVPCandListはMaxNumMergeCand-Kのエレメント配列で定義され得る。前述したように、一実施例で、MaxNumMergeCand-Kは5に設定され得る。例えば、この際、変数HMVPCandNumは0に設定され、変数HMVPCandListは5のエレメント配列で定義され得る。
以下では、HMVPテーブルのアップデートプロセスの別の一例を説明する。
まず、本アップデートプロセスの入力は、次のように定義され得る。
− 動きベクトルmvL0及びmvL1
− 参照インデックスrefIdxL0及びrefIdxL1
− 予測リスト活用フラグpredFlagL0及びpredFlagL1
本アップデートプロセスの出力は、HMVP候補リストの修正された配列であってもよい。本プロセスで、mvCandは、前記動きベクトル、前記参照インデックス、前記予測リスト活用フラグを有する動きベクトル候補を指称する変数を表す。
本アップデートプロセスは、次のような段階で行われ得る。
1.HMVPIdx=0..HMVPCandNum−1であるそれぞれのインデックスHMVPIdxに対して、変数sameCandが真(true)になるまで次の段階が順通り適用され得る。ここで、sameCandは、HMVP候補リストに同一の動き情報が存在するか表す変数である。
− 仮に、mvCandがHMVPCandList[HMVPIdx]と同一の動きベクトル及び同一の参照インデックスを有する場合、sameCandは真に設定される。
− そうでなければ、sameCandは、偽(false)に設定される。
− HMVPIdx++(即ち、HMVPIdxは、1だけ増加する)
2.変数tempIdxは、HMVPCandNumに設定される。
3.sameCandが真であるか、又はHMVPCandNumがMaxNumMergeCand-Kである場合、tempIdx=(sameCand? HMVPIdx:1)..HMVPCandNum−1であるそれぞれのインデックスtempIdxに対して、HMVPCandList[tempIdx]は、HMVPCandList[tempIdx−1]に複写(又は設定)される。Kは、任意の定数である。一実施例で、Kは、予め定義され得る。また、一実施例で、Kは1に設定され得、MaxNumMergeCand値が6で定義されることによって、MaxNumMergeCand-Kは5であってもよい。また、一実施例で、MaxNumMergeCand-Kは5に設定され得る。
4.mvCandは、HMVPCandList[tempIdx]に複写される。
5.HMVPCandNumがMaxNumMergeCand-Kより小さいと、HMVPCandNumは1ずつ増加する。前述したように、一実施例で、MaxNumMergeCand-Kは5に設定され得る。
以上で説明した本明細書の実施例は、説明の便宜上、それぞれの実施例を区分して説明したが、本発明がこれに制限されるわけではない。即ち、前記で説明した実施例はそれぞれ独立に行われてもよく、1つ以上の様々な実施例が組み合わされて行われてもよい。
図37を参照すると、説明の便宜のためにデコーダを中心に説明するが、本発明がこれに限定されるわけではなく、本明細書の実施例にかかる履歴ベース動きベクトル予測ベースのビデオ信号処理方法は、エンコーダとデコーダで同様に行われ得る。
デコーダは、履歴ベース動きベクトル予測に基づいてビデオ信号を処理する方法において、現在ブロックの隣接ブロックに基づいてマージ候補リスト(merge candidate list)を構成する(S3701)。
デコーダは、前記マージ候補リストに含まれたマージ候補の数が予め定義された第1の大きさより小さい場合、前記現在ブロックの履歴ベースマージ候補(history based merge candidate)を前記マージ候補リストに追加する(S3702)。
デコーダは、前記マージ候補リストに含まれたマージ候補の数が、予め定義された第2の大きさより小さい場合、前記マージリストにゼロ動きベクトルを追加する(S3703)。
デコーダは、前記マージ候補リスト内で前記現在ブロックのインター予測に用いられるマージ候補を指示するマージインデックス(merge index)を獲得する(S3704)。
デコーダは、前記マージインデックスにより指示されるマージ候補の動き情報に基づいて、前記現在ブロックの予測サンプルを生成する(S3705)。
デコーダは、前記動き情報に基づいて履歴ベースマージ候補リスト(history based merge candidate list)をアップデートする(S3706)。
実施例として、前記履歴ベースマージ候補は、前記マージ候補リストに含まれたマージ候補のうち、予め定義されたマージ候補と重複しない動き情報を有する場合、 前記マージ候補リストに追加され得る。
前述したように、実施例として、前記履歴ベースマージ候補リストは、前記マージ候補リストの最大のマージ候補の数に基づいて決定される大きさを有するように定義され得る。
前述したように、実施例として、前記履歴ベースマージ候補リストは、前記マージ候補リストの最大のマージ候補の数から1を減算した値の大きさを有するように定義され得る。
前述したように、実施例として、前記履歴ベースマージ候補リストの大きさは、5で定義され得る。
前述したように、実施例として、前記履歴ベースマージ候補は、前記マージ候補リストに含まれたマージ候補のうち、予め定義された特定の数のマージ候補と重複しない動き情報を有する場合、前記マージ候補リストに追加され得る。
前述したように、実施例として、前記履歴ベースマージ候補は、前記マージ候補リストに含まれた特定の空間のマージ候補と重複しない動き情報を有する場合、前記マージ候補リストに追加され得る。
前述したように、実施例として、前記履歴ベースマージ候補は、前記履歴ベースマージ候補リスト内で予め定義された特定の数の候補から誘導され得る。
本発明で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラ、又はチップ上で実現されて行われ得る。例えば、各図で示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で実現されて行われ得る。
また、本発明が適用されるデコーダ及びエンコーダは、マルチメディア放送の送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイムの通信装置、モバイルストリーミング装置、保存媒体、カムコーダ、オーダーメイドビデオ(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、磁気テープ、フロッピディスク、及び光学的データ保存装置を含み得る。また、前記コンピュータが読み取られる記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で実現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームが、コンピュータが読み取られる記録媒体に保存されるか、有無線通信ネットワークを介して送信され得る。
また、本発明の実施例は、プログラムコードによるコンピュータプログラム製品で実現されることができ、前記プログラムコードは、本発明の実施例によってコンピュータで実行されることができる。前記プログラムコードは、コンピュータによって読み取り可能なキャリア上に保存されることができる。
本明細書が適用されるデコーディング装置及びエンコーディング装置は、デジタル機器(digital de−vice)に含まれ得る。「デジタル機器(digital device)」とは、例えば、データ、コンテンツ、サービス等を送信、受信、処理及び出力の少なくとも1つを実行可能な全てのデジタル機器を含む。ここで、デジタル機器がデータ、コンテンツ、サービス等を処理することは、データ、コンテンツ、サービス等をエンコーディング及び/又はデコーディングする動作を含む。このようなデジタル機器は、有/無線ネットワーク(wire/wireless network)を介して、他のデジタル機器、外部サーバ(external server)等とペアリング又は連結(pairing or connect−ing)(以下「ペアリング」)されてデータを送受信し、必要に応じて変換(converting)する。
デジタル機器は、例えば、ネットワークTV(network TV)、HBBTV(Hybrid Broadcast Broadband TV)、スマートTV(Smart TV)、IPTV(internet protocol television)、PC(Personal Com−puter)等のような固定型機器(standing device)と、PDA(Personal Digital Assistant)、スマートフォン(Smart Phone)、タブレットPC(Tablet PC)、ラップトップ等のようなモバイル機器(mobile device or handheld device)をいずれも含む。本明細書では、便宜上、後述する図33ではデジタルTVを、図34ではモバイル機器をデジタル機器の実施例として示して説明する。
一方、本明細書で記述される「有/無線ネットワーク」とは、デジタル機器又はデジタル機器と外部サーバの間で相互連結又は/及びデータの送受信のために様々な通信規格乃至プロトコルを支援する通信ネットワークを通称する。このような有/無線ネットワークは、規格により、現在又は今後支援される通信ネットワークとそのための通信プロトコルをいずれも含み得るので、例えば、USB(Universal Serial Bus)、CVBS(Composite Video Banking Sync)、コンポーネント、S−ビデオ(アナログ)、DVI(Digital Visual Interface)、HDMI(High Definition Multimedia Interface)、RGB、D−SUBのような有線連結のための通信規格乃至プロトコルと、ブルートゥース(Bluetooth)、RFID(Radio Frequency Identification)、赤外線通信(IrDA、infrared Data Association)、UWB(Ultra Wideband)、ジグビー(ZigBee)、DLNA(Digital Living Network Alliance)、WLAN(Wireless LAN)(Wi−Fi)、Wibro(Wireless broadband)、Wimax(World Interoperability for Microwave Access)、HSDPA(High Speed Down−link Packet Access)、LTE(Long Term Evolution)、Wi−Fiダイレクト(Direct)のような無線連結のための通信規格によって形成され得る。
以下、本明細書でただデジタル機器と名付ける場合には、文脈に応じて、固定型機器又はモバイル機器を意味するか、両者とも含む意味であってもよい。
一方、デジタル機器は、例えば、放送受信機能、コンピュータ機能乃至支援、少なくとも1つの外部入力(external input)を支援する知能型機器であって、前述した有/無線ネットワークを介してE−メール(e−mail)、ウェブブラウジング(web browsing)、バンキング(banking)、ゲーム(game)、アプリケーション(application)などを支援できる。また、前記デジタル機器は、手記方式の入力装置、タッチスクリーン(touch screen)、空間リモコン等少なくとも1つの入力又は制御手段(以下、入力手段)を支援するためのインターフェース(interface)を備えることができる。デジタル機器は、標準化された汎用OS(operating system)を用いることができる。例えば、デジタル機器は、汎用のOSカーネル(kernel)上に様々なアプリケーション(application)を追加(adding)、削除(deleting)、修正(amending)、アップデート(updating)などを行うことができ、それを介して更にユーザーフレンドリー(user−friendly)環境を構成して提供できる。
一方、本明細書で記述される外部入力は、外部入力機器、即ち、前述したデジタル機器と有/無線で連結され、それを介して関連データを送/受信して処理可能な全ての入力手段乃至デジタル機器を含む。ここで、前記外部入力は、例えば、HDMI(High Definition Multimedia Interface)、プレイステーション(play station)やエックスボックス(X−Box)のようなゲーム機器、スマートフォン、タブレットPC、プリンター、スマートTVのようなデジタル機器をいずれも含む。
また、本明細書で記述される「サーバー(server)」とは、クライアント(client)、即ち、前述したデジタル機器にデータを供給する全てのデジタル機器乃至システムを含む意味であって、プロセッサ(processor)とも呼ぶ。このようなサーバーとしては、例えば、ウェブページ乃至ウェブコンテンツを提供するポータルサーバー(portal server)、広告データ(advertising data)を提供する広告サーバー(advertising server)、コンテンツを提供するコンテンツサーバー(content server)、SNS(Social Network Service)サービスを提供するSNSサーバー(SNS server)、メーカーで提供するサービスサーバー(service server or manufacturing server)などが含まれ得る。
その他に、本明細書で記述される「チャネル(channel)」とは、データを送受信するための経路(path)、手段(means)等を意味するものであって、放送チャネル(broadcasting channel)を例に挙げることができる。ここで、放送チャネルは、デジタル放送の活性化によって物理チャネル(physical channel)、仮想チャネル(virtual channel)、論理チャネル(logical channel)等の用語で表現される。放送チャネルは放送網と呼ばれ得る。このように、放送チャネルは、放送局で提供する放送コンテンツを提供又は受信機で接近するためのチャネルをいうもので、前記放送コンテンツは、主にリアルタイム放送(real−time broadcasting)に基づくので、ライブチャネル(live channel)ともいう。但し、最近では、放送のための媒体(medium)がさらに多様化され、リアルタイム放送以外に非リアルタイム(non−real time)放送も活性化されており、ライブチャネルはただリアルタイム放送だけでなく、場合によっては非リアルタイム放送を含む放送チャネル全体を意味する用語と理解されることもある。
本明細書では、前述した放送チャネル以外に、チャネルに関して「任意のチャネル(arbitrary channel)」をさらに定義する。前記任意のチャネルは、放送チャネルと共にEPG(Electronic Program Guide)のようなサービスガイド(service guide)と共に提供されることもでき、任意のチャネルだけでサービスガイド、GUI(Graphic User Interface)又はOSD画面(On−Screen Dis−play screen)を構成/提供することもできる。
一方、送受信機間に予め約束されたチャネルナンバを有する放送チャネルと異なり、任意のチャネルは受信機で任意に割り当てるチャネルであって、前記放送チャネルを表現するためのチャネルナンバとは基本的に重複しないチャネルナンバが割り当てられる。例えば、受信機は、特定の放送チャネルをチューニングすると、チューニングされたチャネルを介して放送コンテンツとそのためのシグナリング情報(signaling information)を送信する放送信号を受信する。ここで、受信機は、前記シグナリング情報からチャネル情報をパーシング(parsing)し、パーシングされたチャネル情報に基づいてチャネルブラウザ(channel browser)、EPG等を構成してユーザーに提供する。ユーザーは、入力手段を介してチャネル切換の要請をすると、受信機は、それに対する方式である。
このように、放送チャネルは送受信端間で予め約束された内容であるので、任意のチャネルを放送チャネルと重複して割り当てる場合には、ユーザーの混同を招いたり、混同の可能性が存在するので、前述したように重複して割り当てないことが好ましい。一方、前記のように、任意のチャネルナンバを放送チャネルナンバと重複して割り当てなくても、ユーザーのチャネルサーフィン過程で依然として混同の恐れがあるので、これを考慮し、任意のチャネルナンバを割り当てることが要求される。何故なら、本明細書による任意のチャネルもやはり、従来の放送チャネルと同じように入力手段を介したユーザーのチャネル切換の要請によって、同じ方式で対応し、放送チャネルのように接近されるように実現できるためである。従って、任意のチャネルナンバは、ユーザーの任意のチャネルの接近便宜と放送チャネルナンバとの区分乃至識別便宜のために、放送チャネルのように数字の形態ではなく、任意のチャネル−1、任意のチャネル−2等のように文字が併記された形で定義して表示できる。一方、この場合、任意のチャネルナンバの表示は、任意のチャネル−1のように文字が併記された形であるが、受信機内部的には、前記放送チャネルのナンバのように数字の形で認識して実現できる。その他に、任意のチャネルナンバは、放送チャネルのように数字の形で提供されてもよく、動画チャネル−1、タイトル−1、ビデオ−1等のように放送チャネルと区分可能な様々な方式でチャネルナンバを定義して表示してもよい。
デジタル機器は、ウェブサービス(web service)のためにウェブブラウザ(web browser)を実行して、様々な形態のウェブページ(web page)をユーザーに提供する。ここで、前記ウェブページには、動画(video content)が含まれたウェブページも含まれるが、本明細書では、動画をウェブページから別途で、又は独立に分離して処理する。また、前記分離される動画は、前述した任意のチャネルナンバを割り当て、サービスガイド等を介して提供し、ユーザーがサービスガイドや放送チャネルの視聴過程で、チャネル切換の要請によって出力されるように実現できる。その他に、ウェブサービス以外にも、放送コンテンツ、ゲーム、アプリケーション等のサービスに対しても、所定のコンテンツ、イメージ、オーディオ、項目等を前記放送コンテンツ、ゲーム、アプリケーション自体から独立に分離処理し、その再生、処理等のために任意のチャネルナンバを割り当て、前述したように実現できる。
図38は、デジタル機器を含むサービスシステム(service system)の一例を概略的に示す図である。
デジタル機器を含むサービスシステムは、コンテンツ提供者(Content Provider;CP)3810、サービス提供者(Service Provider;SP)3820、ネットワーク提供者(Network Provider;NP)3830、及びHNED(Home Network End User)(Customer)3840を含む。ここで、HNED3840は、例えば、クライアント3800、即ち、デジタル機器である。コンテンツ提供者3810は、各種のコンテンツを作製して提供する。このようなコンテンツ提供者3810として、図38に示すように、地上波放送送出者(terrestrial broadcaster)、ケーブル放送事業者(cable SO (System Operator))又はMSO(Multiple SO)、衛星放送送出者(satellite broadcaster)、様々なインターネット放送送出者(Internet broadcaster)、個人コンテンツ提供者(Private CPs)等を例示することができる。一方、コンテンツ提供者3810は、放送コンテンツ以外にも様々なアプリケーション等を提供する。
サービス提供者3820は、コンテンツ提供者3810が提供するコンテンツをサービスパッケージ化してHNED3840に提供する。例えば、図38のサービス提供者3820は、第1の地上波放送、第2の地上波放送、ケーブルMSO、衛星放送、様々なインターネット放送、アプリケーションなどをパッケージ化してHNED3840に提供する。
サービス提供者3820は、ユニキャスト(uni−cast)又はマルチキャスト(multi−cast)方式でクライアント300にサービスを提供する。一方、サービス提供者3820は、データを予め登録された多数のクライアント3800に一度に送信できるが、このためにIGMP(Internet Group Management Protocol)プロトコル等を用いることができる。
前述したコンテンツ提供者3810とサービス提供者3820は、同一の個体(same or single entity)であってもよい。例えば、コンテンツ提供者3810が作製したコンテンツをサービスパッケージ化してHNED3840に提供することによって、サービス提供者3820の機能も共に行うか、その反対のこともある。
ネットワーク提供者3830は、コンテンツ提供者3810又は/及びサービス提供者3820とクライアント3800間のデータ交換のためのネットワーク網を提供する。
クライアント3800は、ホームネットワークを構築してデータを送受信できる。
一方、サービスシステム内のコンテンツ提供者3810又は/及びサービス提供者3820は、送信されるコンテンツの保護のために、制限受信(conditional access)又はコンテンツ保護(content protection)手段を利用することができる。この場合、クライアント3800は、前記制限受信やコンテンツ保護に対応し、ケーブルカード(CableCARD)(POD:Point of De−ployment)、DCAS(Downloadable CAS)等のような処理手段を利用することができる。
その他に、クライアント3800も、ネットワーク網(又は通信網)を介して、両方向のサービスを利用することができる。このような場合、むしろクライアント3800がコンテンツ提供者の機能を行ってもよく、既存のサービス提供者3820は、これを受信して再度他のクライアントへ送信してもよい。
図39は、デジタル機器の一実施例を説明するために示す構成のブロック図である。ここで、図39は、例えば、図38のクライアント3800に該当し得、前述したデジタル機器を意味する。
デジタル機器3900は、ネットワークインターフェース部(network interface)3901、TCP/IPマネージャー(TCP/IP manager)3902、サービス伝達マネージャー(service delivery manager)3903、SIデコーダ3904、逆多重化部(demux)3905、オーディオデコーダ(audio decoder)3906、ビデオデコーダ(video decoder)3907、ディスプレイ部(display A/V and OSD module)3908、サービス制御マネージャー(service control manager)3909、サービスディスカバリーマネージャー(service discovery manager)3910、SI&メタデータのデータベース(SI&Metadata DB)3911、メタデータマネージャー(metadata manager)3912、サービスマネージャー3913、UIマネージャー3914等を含んで構成される。
ネットワークインターフェース部3901は、ネットワーク網を介してIPパケット(internet proto−col (IP) packets)を受信又は送信する。即ち、ネットワークインターフェース部3901は、ネットワーク網を介してサービス提供者3820からサービス、コンテンツなどを受信する。
TCP/IPマネージャー3902は、デジタル機器3900に受信されるIPパケットとデジタル機器3900が送信するIPパケットに対して、即ち、ソース(source)と目的地(destination)間のパケットの伝達に関与する。また、TCP/IPマネージャー3902は、受信されたパケットを適切なプロトコルに対応するように分類し、サービス伝達マネージャー3903、サービスディスカバリーマネージャー3910、サービス制御マネージャー3909、メタデータマネージャー3912等に分類されたパケットを出力する。サービス伝達マネージャー3903は、受信されるサービスデータの制御を担当する。例えば、サービス伝達マネージャー3903は、リアルタイムストリーミング(real−time streaming)データを制御する場合には、RTP/RTCPを使用することができる。前記リアルタイムストリーミングデータをRTPを使用して送信する場合、サービス伝達マネージャー3903は、前記受信されたデータパケットをRTPによってパーシング(parsing)して逆多重化部3905に送信するか、サービスマネージャー3913の制御によって、SI&メタデータのデータベース3911に保存する。また、サービス伝達マネージャー3903は、RTCPを用いて前記ネットワークの受信情報をサービスを提供するサーバー側にフィードバック(feedback)する。逆多重化部3905は、受信されたパケットをオーディオ、ビデオ、SI(system information)データ等で逆多重化し、それぞれオーディオ/ビデオデコーダ3906/3907、SIデコーダ3904に送信する。
SIデコーダ3904は、例えば、PSI(program specific information)、PSIP(program and system information protocol)、DVB−SI(digital video broadcasting−service information)等のサービス情報をデコーディングする。
また、SIデコーダ3904は、デコーディングされたサービス情報を、例えば、SI&メタデータのデータベース3911に保存する。このように保存されたサービス情報は、例えば、ユーザーの要請等によって該当構成により読み出されて用いられる。
オーディオ/ビデオデコーダ3906/3907は、逆多重化部3905で逆多重化された各オーディオデータとビデオデータをデコーディングする。このようにデコーディングされたオーディオデータ及びビデオデータは、ディスプレイ部3908を介してユーザーに提供される。
アプリケーションマネージャーは、例えば、UIマネージャー3914とサービスマネージャー3913を含んで構成され得る。アプリケーションマネージャーは、デジタル機器3900の全般的な状態を管理してユーザーインターフェースを提供し、他のマネージャーを管理することができる。
UIマネージャー3914は、ユーザーのためのGUI(graphic user interface)をOSD(on screen display)等を用いて提供し、ユーザーからキーの入力を受けて、前記入力による機器動作を行う。例えば、UIマネージャー3914は、ユーザーからチャネルの選択に関するキーの入力を受けると、前記キーの入力信号をサービスマネージャー3913に送信する。
サービスマネージャー3913は、サービス伝達マネージャー3903、サービスディスカバリーマネージャー3910、サービス制御マネージャー3909、メタデータマネージャー3912等のサービスに関するマネージャーを制御する。
また、サービスマネージャー3913は、チャネルマップ(channel map)を作り、ユーザーインターフェースマネージャー3914から受信したキーの入力によって前記チャネルマップを用いてチャネルを選択する。また、サービスマネージャー3913は、SIデコーダ3904からチャネルのサービス情報を送信されて選択されたチャネルのオーディオ/ビデオPID(packet identifier)を逆多重化部3905に設定する。このように設定されるPIDは、前述した逆多重化過程に用いられる。従って、逆多重化部3905は、前記PIDを用いてオーディオデータ、ビデオデータ、及びSIデータをフィルタリング(filtering)する。
サービスディスカバリーマネージャー3910は、サービスを提供するサービス提供者を選択するのに必要な情報を提供する。サービスマネージャー3913からチャネルの選択に関する信号を受信すると、サービスディスカバリーマネージャー3910は、前記情報を用いてサービスを見つける。
サービス制御マネージャー3909は、サービスの選択と制御を担当する。例えば、サービス制御マネージャー3909は、ユーザーが既存の放送方式のような生放送(live broadcast−ing)サービスを選択する場合、IGMP又はRTSP等を使用し、VOD(video on demand)のようなサービスを選択する場合には、RTSPを使用してサービスの選択、制御を行う。前記RTSPプロトコルは、リアルタイムストリーミングに対してトリックモード(trick mode)を提供できる。また、サービス制御マネージャー3909は、IMS(IP multimedia subsys−tem)、SIP(session initiation protocol)を用いて、IMSゲートウェイ3950を介するセクションを初期化して管理できる。プロトコルは一実施例であり、実現例によって他のプロトコルを使用することもできる。
メタデータマネージャー3912は、サービスに関するメタデータを管理し、前記メタデータをSI&メタデータのデータベース3911に保存する。
SI&メタデータのデータベース3911は、SIデコーダ3904がデコーディングしたサービス情報、メタデータマネージャー3912が管理するメタデータ、及びサービスディスカバリーマネージャー3910が提供するサービス提供者を選択するのに必要な情報を保存する。また、SI&メタデータのデータベース3911は、システムに対するセット−アップデータ等を保存し得る。
SI&メタデータのデータベース3911は、不揮発性メモリ(non−volatile RAM、NVRAM)又はフラッシュメモリ(flash memory)等を使用して実現されることもできる。
一方、IMSゲートウェイ3950は、IMSベースのIPTVサービスに接近するために必要な機能を集めたゲートウェイである。
図40は、デジタル機器の別の実施例を説明するために示す構成のブロック図である。特に、図40は、デジタル機器の別の実施例であって、モバイル機器の構成のブロック図を例示したものである。
図40を参照すると、モバイル機器4000は、無線通信部4010、A/V(audio/video)入力部4020、ユーザー入力部4030、センシング部4040、出力部4050、メモリ4060、インターフェース部4070、制御部4080、及び電源供給部4090等を含み得る。図40に示す構成要素が必須のものではないので、それより多くの構成要素を有するか、それよりも少ない構成要素を有するモバイル機器が実現されることもある。
無線通信部4010は、モバイル機器4000と無線通信システムの間、又はモバイル機器と、モバイル機器が位置したネットワーク間の無線通信を可能にする1つ又はそれ以上のモジュールを含み得る。例えば、無線通信部4010は、放送受信モジュール4011、移動通信モジュール4012、無線インターネットモジュール4013、近距離通信モジュール4014、及び位置情報モジュール4015等を含み得る。
放送受信モジュール4011は、放送チャネルを介して外部の放送管理サーバーから放送信号及び/又は放送関連した情報を受信する。ここで、放送チャネルは、衛星チャネル、地上波チャネルを含み得る。放送管理サーバーは、放送信号及び/又は放送関連の情報を生成して送信するサーバー、又は既生成された放送信号及び/又は放送関連の情報を提供されて端末機に送信するサーバーを意味し得る。放送信号は、TV放送信号、ラジオ放送信号、データ放送信号を含むだけでなく、TV放送信号又はラジオ放送信号にデータ放送信号が結合した形態の放送信号も含み得る。
放送関連の情報は、放送チャネル、放送プログラム又は放送サービス提供者に関する情報を意味し得る。放送関連の情報は、移動通信網を介しても提供できる。このような場合には、移動通信モジュール4012により受信され得る。
放送関連の情報は、様々な形態、例えば、EPG(electronic program guide)又はESG(electronic service guide)等の形態で存在し得る。
放送受信モジュール4011は、例えば、ATSC、DVB−T(digital video broadcasting−terrestrial)、DVB−S(satellite)、MediaFLO(media forward link only)、DVB−H(handheld)、ISDB−T(integrated services digital broadcast−terrestrial)等デジタル放送システムを用いてデジタル放送信号を受信することができる。もちろん、放送受信モジュール511は、前述したデジタル放送システムだけでなく、他の放送システムに適するように構成されることもできる。
放送受信モジュール4011を介して受信された放送信号及び/又は放送関連の情報は、メモリ4060に保存され得る。
移動通信モジュール4012は、移動通信網上で基地局、外部端末、サーバーの少なくとも1つと無線信号を送受信する。無線信号は、音声信号、画像通話信号、又は文字/マルチメディアメッセージの送受信による様々な形態のデータを含み得る。
無線インターネットモジュール4013は、無線インターネットのアクセスのためのモジュールを含めて、モバイル機器4000に内装されるか外装され得る。無線インターネット技術としては、WLAN(wireless LAN)(Wi−Fi)、Wibro(wireless broadband)、Wimax(world interoperability for microwave access)、HSDPA(high speed downlink packet access)等が用いられる。
近距離通信モジュール4014は、近距離通信のためのモジュールをいう。近距離通信(short range communication)技術として、ブルートゥース(Bluetooth)、RFID(radio frequency Identi−fication)、赤外線通信(IrDA, infrared data association)、UWB(ultra wideband)、ZigBee、RS−232、RS−485等が用いられる。
位置情報モジュール4015は、モバイル機器4000の位置情報の獲得のためのモジュールとして、GPS(global position system)モジュールを例に挙げることができる。
A/V入力部4020は、オーディオ又は/及びビデオ信号の入力のためのものであって、ここには、カメラ4021とマイク4022等が含まれ得る。カメラ4021は、画像通話モード又は撮影モードでイメージセンサにより得られる停止映像又は動画等の画像フレームを処理する。処理された画像フレームは、ディスプレイ部4051に表され得る。
カメラ4021で処理された画像フレームは、メモリ4060に保存されるか無線通信部4010を介して外部へ送信され得る。カメラ4021は、使用環境によって2つ以上が備えられることもある。
マイク4022は、通話モード又は録音モード、音声認識モード等でマイクロフォン(microphone)により外部の音響信号が入力され、電気的な音声データで処理する。処理された音声データは、通話モードである場合、移動通信モジュール4012を介して移動通信基地局へ送信可能な形態に変換されて出力されることができる。マイク4022には、外部の音響信号が入力される過程で発生する雑音(noise)を除去するための様々な雑音除去のアルゴリズムが実現され得る。
ユーザー入力部4030は、ユーザーが端末機の動作制御のための入力データを発生させる。ユーザー入力部4030は、キーパッド(key pad)、ドームスイッチ(dome switch)、タッチパッド(定圧/静電)、 ジョグホイール(jog wheel)、ジョグスイッチ(jog switch)等で構成され得る。
センシング部4040は、モバイル機器4000の開閉状態、モバイル機器4000の位置、ユーザーの接触有無、モバイル機器の方位、モバイル機器の加速/減速等のように、モバイル機器4000の現在の状態を感知し、モバイル機器4000の動作制御のためのセンシング信号を発生させる。例えば、モバイル機器4000が移動されるか傾いた場合、モバイル機器の位置乃至傾き等をセンシングできる。また、電源供給部4090の電源供給有無、インターフェース部4070の外部機器の結合有無等もセンシングすることもできる。一方、センシング部4040は、NFC(near field communication)を含む近接センサ4041を含み得る。
出力部4050は、視覚、聴覚、又は触覚等に関する出力を発生させるためのものであって、ディスプレイ部4051、音響出力モジュール4052、アラーム部4053、及びハプティックモジュール4054等が含まれ得る。
ディスプレイ部4051は、モバイル機器4000で処理される情報を表示(出力)する。例えば、モバイル機器が通話モードである場合、通話と関連したUI(user interface)又はGUI(graphic user interface)を表示する。モバイル機器4000が画像通話モード又は撮影モードである場合には、撮影又は/及び受信された映像又はUI、GUIを表示する。
ディスプレイ部4051は、液晶ディスプレイ(liquid crystal display、LCD)、薄膜トランジスタの液晶ディスプレイ(thin film transistor−liquid crystal display、TFT LCD)、有機発光ダイオード(organic light−emitting diode、OLED)、フレキシブルディスプレイ(flexible display)、3次元ディスプレイ(3D display)の少なくとも1つを含み得る。
これらのうちの一部のディスプレイは、それを介して外部を見ることができるように透明型又は光透過型で構成され得る。これは、透明ディスプレイと呼ばれるが、前記透明ディスプレイの代表的な例としては、TOLED(transparent OLED)等がある。ディスプレイ部4051の後方構造もまた光透過型構造で構成され得る。このような構造により、ユーザーは端末機のボディのディスプレイ部4051の占める領域を介して、端末機のボディ(body)の後方に位置した私物を見ることができる。
モバイル機器4000の実現形態によって、ディスプレイ部4051が2つ以上存在し得る。例えば、モバイル機器4000には、複数のディスプレイ部が1つの面に離隔されるか一体に配置されてもよく、また、互いに異なる面にそれぞれ配置されてもよい。
ディスプレイ部4051とタッチ動作を感知するセンサ(以下「タッチセンサ」という)が相互レイヤー構造をなす場合(以下「タッチ スクリーン」という)に、ディスプレイ部4051は、出力装置以外に入力装置としても使用され得る。タッチセンサは、例えば、タッチフィルム、タッチシート、タッチパッド等の形態を有し得る。
タッチセンサは、ディスプレイ部4051の特定部位に加えられた圧力、又はディスプレイ部4051の特定部位に発生する静電容量等の変化を電気的な入力信号に変換するように構成され得る。タッチセンサは、タッチされる位置及び面積だけでなく、タッチ時の圧力までも検出できるように構成され得る。
タッチセンサに対するタッチ入力がある場合、それに対応する信号は、タッチ制御器に送られる。タッチ制御器は、その信号を処理した後、対応するデータを制御部4080に送信する。これによって、制御部4080は、ディスプレイ部4051のどの領域がタッチされているか否か等が分かるようになる。
タッチスクリーンにより包まれるモバイル機器の内部領域、又は前記タッチスクリーンの近所に近接センサ4041が配置され得る。前記近接センサは、所定の検出面に接近する物体、或いは近傍に存在する物体の有無を電磁界の力又は赤外線を用いて機械的接触なしで検出するセンサをいう。近接センサは、接触式センサよりは、その寿命が長く、その活用もまた高い。
近接センサの例としては、透過型光電センサ、直接反射型光電センサ、ミラー反射型光電センサ、高周波発振型近接センサ、静電容量型近接センサ、磁気型近接センサ、赤外線近接センサ等がある。前記タッチスクリーンが静電式である場合には、前記ポインターの近接による電界の変化でポインターの近接を検出するように構成される。この場合、タッチスクリーン(タッチセンサ)は近接センサに分類されることもある。
以下では、説明の便宜のために、タッチスクリーン上にポインターが接触されながらも、近接されてポインターがタッチスクリーン上に位置することが認識されるようにする行為を「近接タッチ(proximity touch)」と称し、前記タッチスクリーン上にポインターが実際に接触する行為を「接触タッチ(contact touch)」と称する。タッチスクリーン上でポインターで近接タッチされる位置というのは、ポインターが近接タッチされる際、ポインターがタッチスクリーンに対して垂直に対応する位置を意味する。
近接センサは、近接タッチと、近接タッチパターン(例えば、近接タッチ距離、近接タッチ方向、近接タッチ速度、近接タッチ時間、近接タッチ位置、近接タッチ移動状態等)を感知する。感知された近接タッチ動作及び近接タッチパターンに相応する情報は、タッチスクリーン上に出力されることができる。
音響出力モジュール4052は、呼信号の受信、通話モード又は録音モード、音声認識モード、放送受信モード等で無線通信部4010から受信されるか、メモリ4060に保存されたオーディオデータを出力することができる。音響出力モジュール4052は、モバイル機器4000で行われる機能(例えば、呼信号の受信音、メッセージ受信音等)に関する音響信号を出力することもある。このような音響出力モジュール4052には、レシーバ(receiver)、スピーカー(speaker)、ブザー(buzzer)等が含まれ得る。
アラーム部4053は、モバイル機器4000のイベントの発生を知らせるための信号を出力する。モバイル機器で発生するイベントの例としては、呼信号の受信、メッセージ受信、キー信号入力、タッチ入力等がある。アラーム部4053は、ビデオ信号やオーディオ信号以外に異なる形態、例えば、振動でイベントの発生を知らせるための信号を出力することもできる。
ビデオ信号やオーディオ信号は、ディスプレイ部4051や音声出力モジュール4052を介しても出力されることができ、ディスプレイ部及び音声出力モジュール4051、4052は、アラーム部4053の一部に分類されることもできる。
ハプティックモジュール(haptic module)4054は、ユーザーが感じる様々な触覚効果を発生させる。ハプティックモジュール4054が発生させる触覚効果の代表的な例としては、振動がある。ハプティックモジュール4054が発生する振動の強さとパターン等は制御可能である。例えば、互いに異なる振動を合成して出力するか、順次に出力することもできる。
ハプティックモジュール4054は、振動以外にも、接触皮膚面に対して垂直運動するピン配列、噴射口や吸入口を介した空気の噴射力や吸入力、皮膚表面に対する擦れ、電極(electrode)の接触、静電気力等の刺激による効果と、吸熱や発熱可能な素子を用いた冷温感の再現による効果等、様々な触覚効果を発生させることができる。
ハプティックモジュール4054は、直接的な接触を介して触覚効果を伝達することができるだけでなく、ユーザーが指や腕等の筋感覚を介して触覚効果を感じることができるように実現することもできる。ハプティックモジュール4054は、モバイル機器4000の構成様態によって2つ以上が備えられる。
メモリ4060は、制御部4080の動作のためのプログラムを保存することができ、入/出力されるデータ(例えば、フォンブック、メッセージ、停止映像、動画等)を仮保存することもできる。メモリ4060は、前記タッチスクリーン上のタッチ入力の際に出力される様々なパターンの振動及び音響に関するデータを保存することができる。
メモリ4060は、フラッシュメモリタイプ(flash memory type)、ハードディスクタイプ(hard disk type)、マルチメディアカードマイクロタイプ(multimedia card micro type)、カードタイプのメモリ(例えば、SD又はXDメモリ等)、ラム(random access memory、RAM)、SRAM(static random access memory)、ロム(read−only memory、ROM)、EEPROM(electrically erasable programmable read−only memory)、PROM(programmable read−only memory)、磁気メモリ、磁気ディスク、光ディスクの少なくとも1つのタイプの保存媒体を含み得る。モバイル機器4000は、インターネット(internet)上でメモリ4060の保存機能を行うウェブストレージ(web storage)に関して動作することもできる。
インターフェース部4070は、モバイル機器4000に連結される全ての外部機器との通路の役割をする。インターフェース部4070は、外部機器からデータの送信を受けるか、電源が供給され、モバイル機器4000内部の各構成要素に伝達するか、モバイル機器4000内部のデータが外部機器へ送信されるようにする。例えば、有/無線ヘッドセットポート、外部充電器ポート、有/無線データポート、メモリカード(memory card)ポート、識別モジュールが備えられた装置を連結するポート、オーディオI/O(input/output)ポート、ビデオI/Oポート、イヤホーンポート等がインターフェース部4070に含まれ得る。
識別モジュールは、モバイル機器4000の使用権限を認証するための各種情報を保存したチップであって、ユーザー認証モジュール(user identify module、UIM)、加入者認証モジュール(subscriber identify module、SIM)、汎用ユーザー認証モジュール(universal subscriber identity module、USIM)等を含み得る。識別モジュールが備えられた装置(以下「識別装置」)は、スマートカード(smart card)の形式で作製され得る。従って、識別装置は、ポートを介して端末機4000と連結され得る。
インターフェース部4070は、移動端末機4000が外部のクレードル(cradle)と連結される際、クレードルからの電源が移動端末機4000に供給される通路になるか、ユーザーによりクレードルで入力される各種の命令信号が移動端末機に伝達される通路になり得る。クレードルから入力される各種の命令信号又は電源は、移動端末機がクレードルに正確に装着されたことを認知するための信号として動作されることもある。
制御部4080は通常、モバイル機器の全般的な動作を制御する。例えば、音声通話、データ通信、画像通話等のための関連する制御及び処理を行う。制御部4080は、マルチメディアの再生のためのマルチメディアモジュール4081を備えることもできる。マルチメディアモジュール4081は、制御部4080内に実現されてもよく、制御部4080と別に実現されてもよい。制御部4080、特にマルチメディアモジュール4081は、前述したエンコーディング装置100及び/又はデコーディング装置200を含み得る。
制御部4080は、タッチスクリーン上で行われる筆記入力又は絵を描く入力をそれぞれ文字及びイメージで認識できるパターン認識処理を行うことができる。
電源供給部4090は、制御部4080の制御により外部の電源、内部の電源が認可され、各構成要素の動作に必要な電源を供給する。
ここに説明される様々な実施例は、例えば、ソフトウェア、ハードウェア、又はこれらの組み合わせたものを用いて、コンピュータ又はこれと類似する装置で読み取られる記録媒体内で実現されることができる。
ハードウェア的な実現によると、ここに説明される実施例は、ASICs(application spe−cific integrated circuits)、DSPs(digital signal processors)、DSPDs(digital signal processing devic−es)、PLDs(programmable logic devices)、FPGAs(field programmable gate arrays、プロセッサ、制御器、マイクロコントローラ(micro−controllers)、マイクロプロセッサ(microprocessors)、その他の機能を実行するための電気的なユニットの少なくとも1つを用いて実現され得る。一部の場合に、本明細書で説明される実施例が制御部4080自体で実現され得る。
ソフトウェア的な実現によると、本明細書で説明される手続及び機能のような実施例は、別途のソフトウェアモジュールで実現され得る。ソフトウェアモジュールのそれぞれは、本明細書で説明される1つ以上の機能及び作動を行うことができる。適切なプログラム言語で書かれたソフトウェアアプリケーションでソフトウェアコードが実現され得る。ここで、ソフトウェアコードは、メモリ4060に保存あされれ、制御部4080により実行され得る。
図41は、デジタル機器のまた別の実施例を説明するために示す構成のブロック図である。
デジタル機器4100の別の例は、放送受信部4105、外部装置インターフェース部4135、保存部4140、ユーザー入力インターフェース部4150、制御部4170、ディスプレイ部4180、オーディオ出力部4185、電源供給部4190、及び撮影部(図示せず)を含み得る。ここで、放送受信部4105は、少なくとも1つのチューナー4110、復調部4120、及びネットワークインターフェース部4130を含み得る。但し、場合によって、放送受信部4105は、チューナー4110と復調部4120は備えるが、ネットワークインターフェース部4130は含まないことがあり、その反対の場合もある。また、放送受信部4105は示していないが、多重化部(multiplexer)を備えてチューナー4110を経て復調部4120で復調された信号とネットワークインターフェース部4130を経て受信された信号を多重化することもできる。その他に、放送受信部4025は、やはり示していないが、逆多重化部(demultiplexer)を備えて前記多重化された信号を逆多重化するか、前記復調された信号又は前記ネットワークインターフェース部4130を経た信号を逆多重化することができる。
チューナー4110は、アンテナを介して受信されるRF(radio frequency)放送信号のうちユーザーにより選択されたチャネル、又は既保存された全てのチャネルをチューニングしてRF放送信号を受信する。また、チューナー4110は、受信されたRF放送信号を中間周波数(intermediate fre−quency、IF)信号或いはベースバンド(baseband)信号に変換する。
例えば、受信されたRF放送信号がデジタル放送信号であると、デジタルIF信号(DIF)に変換し、アナログ放送信号であると、アナログベースバンド映像又は音声信号(CVBS/SIF)に変換する。即ち、チューナー4110は、デジタル放送信号又はアナログ放送信号を全て処理することができる。チューナー4110で出力されるアナログベースバンド映像又は音声信号(CVBS/SIF)は、制御部4170に直接入力されることができる。
また、チューナー4110は、ATSC(advanced television system committee)方式による単一キャリアのRF放送信号又はDVB(digital video broadcasting)方式による複数のキャリアのRF放送信号を受信することができる。
一方、チューナー4110は、アンテナを介して受信されるRF放送信号のうち、チャネル記憶機能を介して保存された全ての放送チャネルのRF放送信号を順次にチューニング及び受信し、これを中間周波数信号又はベースバンド信号に変換することができる。
復調部4120は、チューナー4110で変換されたデジタルIF信号(DIF)を受信して復調する。例えば、チューナー4110で出力されるデジタルIF信号がATSC方式である場合、復調部4120は、例えば、8−VSB(8−vestigal side band)復調を行う。また、復調部4120は、チャネルの復号化を行うこともできる。このため、復調部4120は、トレリスデコーダ(trellis decoder)、デインターリーバ(de−interleaver)、及びリードソロモンデコーダ(Reed−Solomon decoder)等を備え、トレリス復号化、デインターリービング、及びリードソロモン復号化を行うことができる。
例えば、チューナー4110で出力されるデジタルIF信号がDVB方式である場合、復調部4120は、例えば、COFDMA(coded orthogonal frequency division modulation)復調を行う。また、復調部4120は、チャネルの復号化を行うこともできる。このため、復調部4120は、コンボリューションデコーダ(convolution decoder)、デインターリーバ、及びリード−ソロモンデコーダなどを備え、コンボリューション復号化、デインターリービング、及びリードソロモン復号化を行うことができる。
復調部4120は、復調及びチャネルの復号化を行った後、ストリーム信号(TS)を出力することができる。この際、ストリーム信号は、映像信号、音声信号又はデータ信号が多重化された信号であってもよい。一例として、ストリーム信号は、MPEG−2規格の映像信号、ドルビー(Dolby)AC−3規格の音声信号等が多重化されたMPEG−2 TS(transport stream)であってもよい。具体的に、MPEG−2 TSは、4バイト(byte)のヘッダ(header)と184バイトのペイロード(payload)を含み得る。
一方、前述した復調部4120は、ATSC方式と、DVB方式によってそれぞれ別に備えられることが可能である。即ち、デジタル機器は、ATSC復調部とDVB復調部をそれぞれ別に備えることができる。
復調部4120で出力したストリーム信号は、制御部4170に入力されることができる。制御部4170は、逆多重化、映像/音声信号の処理等を制御し、ディスプレイ部4180を介して映像を、オーディオ出力部4185を介して音声の出力を制御することができる。
外部装置インターフェース部4135は、デジタル機器4100に様々な外部装置がインターフェーシングされるように環境を提供する。このため、外部装置インターフェース部4135は、A/V入出力部(図示せず)又は無線通信部(図示せず)を含み得る。
外部装置インターフェース部4135は、DVD(digital versatile disk)、ブルーレイ(blu−ray)、ゲーム機器、カメラ、カムコーダ、コンピュータ(ノートパソコン、タブレット)、スマートフォン、ブルートゥース機器(bluetooth device)、クラウド(cloud)等のような外部装置と有/無線で接続され得る。外部装置インターフェース部4135は、連結された外部装置を介して外部で入力される映像、音声又はデータ(イメージ含む)信号をデジタル機器の制御部4170に伝達する。制御部4170は、処理された映像、音声又はデータ信号を連結された外部装置に出力されるように制御できる。このため、外部装置インターフェース部4135は、A/V入出力部(図示せず)又は無線通信部(図示せず)をさらに含み得る。
A/V入出力部は、外部装置の映像及び音声信号をデジタル機器4100に入力できるように、USB端子、CVBS(composite video banking sync)端子、コンポーネント端子、S−ビデオ端子(アナログ)、DVI(digital visual interface)端子、HDMI(high definition multime−dia interface)端子、RGB端子、D−SUB端子等を含み得る。
無線通信部は、他の電子機器と近距離無線通信を行うことができる。デジタル機器4100は、例えば、ブルートゥース(bluetooth)、RFID(radio frequency identification)、赤外線通信(IrDA、infrared data association)、UWB(ultra wideband)、ジグビー(ZigBee)、DLNA(digital living network alliance)等の通信プロトコルによって、他の電子機器とネットワークで連結され得る。
また、外部装置インターフェース部4135は、多様なセットトップボックスや前述した各種端子の少なくとも1つを介して接続され、セットトップボックスと入力/出力動作を行うこともできる。
一方、外部装置インターフェース部4135は、隣接する外部装置内のアプリケーション又はアプリケーションリストを受信し、制御部4170又は保存部4140へ伝達できる。
ネットワークインターフェース部4130は、デジタル機器4100をインターネット網を含む有/無線ネットワークと連結するためのインターフェースを提供する。ネットワークインターフェース部4130は、有線ネットワークとの接続のために、例えば、イーサネット(ethernet)端子等を備えることができ、無線ネットワークとの接続のために、例えば、WLAN(wireless LAN)(Wi−Fi)、Wibro(wireless broadband)、Wimax(world interoperability for microwave access)、HSDPA(high speed downlink packet access)の通信規格などを用いることができる。
ネットワークインターフェース部4130は、接続されたネットワーク又は接続されたネットワークにリンクされた他のネットワークを介して、他のユーザー又は他のデジタル機器とデータを送信又は受信できる。特に、デジタル機器4100に予め登録された他のユーザー又は他のデジタル機器のうち選択されたユーザー又は選択されたデジタル機器に、デジタル機器4100に保存された一部のコンテンツデータを送信することができる。
一方、ネットワークインターフェース部4130は、接続されたネットワーク又は接続されたネットワークにリンクされた他のネットワークを介して、所定のウェブページに接続することができる。即ち、ネットワークを介して所定のウェブページに接続し、該当サーバーとデータを送信又は受信することができる。その他、コンテンツ提供者又はネットワーク運営者が提供するコンテンツ又はデータを受信することができる。即ち、ネットワークを介して、コンテンツ提供者又はネットワーク提供者から提供される映画、広告、ゲーム、VOD、放送信号等のコンテンツ、及びそれに関する情報を受信することができる。また、ネットワーク運営者が提供するファームウェア(firmware)のアップデート情報及びアップデートファイルを受信することができる。さらに、インターネット又はコンテンツ提供者又はネットワーク運営者にデータを送信することができる。
また、ネットワークインターフェース部4130は、ネットワークを介して、公衆に公開(open)されたアプリケーションのうち、希望するアプリケーションを選択して受信できる。
保存部4140は、制御部4170内の各信号処理及び制御のためのプログラムを保存することもでき、信号処理された映像、音声又はデータ信号を保存することもできる。
また、保存部4140は、外部装置インターフェース部4135又はネットワークインターフェース部4130から入力される映像、音声、又はデータ信号の仮保存のための機能を行うこともできる。保存部4140は、チャネル記憶機能を介して、所定の放送チャネルに関する情報を保存することができる。
保存部4140は、外部装置インターフェース部4135又はネットワークインターフェース部4130から入力されるアプリケーション又はアプリケーションリストを保存することができる。
また、保存部4140は、後述して説明する様々なプラットフォーム(platform)を保存することもできる。
保存部4140は、例えば、フラッシュメモリタイプ(flash memory type)、ハードディスクタイプ(hard disk type)、マルチメディアカードマイクロタイプ(multimedia card micro type)、カードタイプのメモリ(例えば、SD又はXDメモリ等)、ラム(RAM)、ロム(EEPROM等)の少なくとも1つのタイプの保存媒体を含み得る。デジタル機器4100は、保存部4140内に保存されているコンテンツファイル(動画ファイル、停止映像ファイル、音楽ファイル、文書ファイル、アプリケーションファイル等)を再生してユーザーに提供できる。
図41は、保存部4140が制御部4170と別に備えられた実施例を示しているが、本明細書の範囲はこれに限定されない。即ち、保存部4140は、制御部4170内に含まれることもある。
ユーザー入力インターフェース部4150は、ユーザーが入力した信号を制御部4170へ伝達するか、制御部4170の信号をユーザーに伝達する。
例えば、ユーザー入力インターフェース部4150は、RF通信方式、赤外線(IR)通信方式等、多様な通信方式によって、遠隔制御装置5700から電源のオン/オフ、チャネル選択、画面設定等の制御信号を受信して処理するか、制御部4170の制御信号を遠隔制御装置5700へ送信するように処理することができる。
また、ユーザー入力インターフェース部4150は、電源キー、チャネルキー、ボリュームキー、設定値などのローカルキー(図示せず)で入力される制御信号を制御部4170に伝達できる。
ユーザー入力インターフェース部4150は、ユーザーのジェスチャー(gesture)をセンシング(sensing)するセンシング部(図示せず)から入力される制御信号を制御部4170に伝達するか、制御部4170の信号をセンシング部(図示せず)へ送信できる。ここで、センシング部(図示せず)は、タッチセンサ、音声センサ、位置センサ、動作センサなどを含み得る。
制御部4170は、チューナー4110、復調部4120又は外部装置インターフェース部4135を介して入力されるストリームを逆多重化するか、逆多重化された信号を処理し、映像又は音声の出力のための信号を生成及び出力できる。制御部4170は、前述したエンコーディング装置及び/又はデコーディング装置を含み得る。
制御部4170で処理された映像信号は、ディスプレイ部4180に入力され、該当映像信号に対応する映像で表され得る。また、制御部4170で映像処理された映像信号は、外部装置インターフェース部4135を介して外部出力装置に入力され得る。
制御部4170で処理された音声信号は、オーディオ出力部4185にオーディオ出力され得る。また、制御部4170で処理された音声信号は、外部装置インターフェース部4135を介して外部出力装置に入力され得る。
図41では示していないが、制御部4170は、逆多重化部、映像処理部等を含み得る。
制御部4170は、デジタル機器4100の全般的な動作を制御することができる。例えば、制御部4170は、チューナー4110を制御し、ユーザーが選択したチャネル又は既保存されたチャネルに該当するRF放送をチューニング(tuning)するように制御できる。
制御部4170は、ユーザー入力インターフェース部4150を介して入力されたユーザー命令、又は内部のプログラムによってデジタル機器4100を制御することができる。特に、ネットワークに接続してユーザーが希望するアプリケーション又はアプリケーションリストをデジタル機器4100内にダウンロードを受けるようにすることができる。
例えば、制御部4170は、ユーザー入力インターフェース部4150を介して受信した所定のチャネルの選択命令によって選択したチャネルの信号が入力されるようにチューナー4110を制御する。また、選択したチャネルの映像、音声又はデータ信号を処理する。制御部4170は、ユーザーが選択したチャネル情報等が処理した映像又は音声信号と共に、ディスプレイ部4180又はオーディオ出力部4185を介して出力されることができるようにする。
別の例として、制御部4170は、ユーザー入力インターフェース部4150を介して受信した外部装置の映像再生命令によって、外部装置インターフェース部4135を介して入力される外部装置、例えば、カメラ又はカムコーダからの映像信号又は音声信号が、ディスプレイ部4180又はオーディオ出力部4185を介して出力されることができるようにする。
一方、制御部4170は、映像を表示するようにディスプレイ部4180を制御することができる。例えば、チューナー4110を介して入力される放送映像、又は外部装置インターフェース部4135を介して入力される外部入力映像、又はネットワークインターフェース部を介して入力される映像、又は保存部4140に保存された映像を、ディスプレイ部4180に表示するように制御できる。この際、ディスプレイ部4180に表示される映像は、停止映像(静止画)又は動画であってもよく、2D映像又は3D映像であってもよい。
また、制御部4170は、コンテンツを再生するように制御できる。この際のコンテンツは、デジタル機器4100内に保存されたコンテンツ、又は受信された放送コンテンツ、外部から入力される外部入力コンテンツであってもよい。コンテンツは、 放送映像、外部入力映像、オーディオファイル、停止映像、接続されたウェブ画面、及び文書ファイルの少なくとも1つであってもよい。
一方、制御部4170は、アプリケーションビューの項目に進入する場合、デジタル機器4100内又は外部のネットワークからダウンロード可能なアプリケーション又はアプリケーションリストを表示するように制御できる。
制御部4170は、様々なユーザーインターフェースと共に、外部のネットワークからダウンロードされるアプリケーションを設置及び駆動するように制御できる。また、ユーザーの選択により、実行されるアプリケーションに関する映像がディスプレイ部4180に表示されるように制御できる。
一方、図に示していないが、チャネル信号又は外部の入力信号に対応するサムネイルのイメージを生成するチャネルブラウジング処理部がさらに備えられることも可能である。
チャネルブラウジング処理部は、復調部4120で出力したストリーム信号(TS)又は外部装置インターフェース部4135で出力したストリーム信号等の入力を受け、入力されるストリーム信号から映像を抽出し、サムネイルの映像を生成することができる。
生成されたサムネイルの映像は、そのまま又は符号化され、制御部4170に入力され得る。また、生成されたサムネイルの映像は、ストリームの形態で符号化され、制御部4170に入力されることも可能である。制御部4170は、入力されたサムネイルの映像を用いて、複数のサムネイルの映像を備えるサムネイルリストをディスプレイ部4180に表示することができる。一方、このようなサムネイルリスト内のサムネイルの映像は、次第に又は同時にアップデートされ得る。これによって、ユーザーは、複数の放送チャネルの内容を簡便に把握できるようになる。
ディスプレイ部4180は、制御部4170で処理された映像信号、データ信号、OSD信号又は外部装置インターフェース部4135で受信される映像信号、データ信号等をそれぞれR、G、B信号に変換して駆動信号を生成する。
ディスプレイ部4180は、PDP、LCD、OLED、フレキシブルディスプレイ(flexible display)、3次元ディスプレイ(3D display)等が可能である。
一方、ディスプレイ部4180は、タッチスクリーンで構成され、出力装置以外に入力装置として使用されることも可能である。
オーディオ出力部4185は、制御部4170で音声処理された信号、例えば、ステレオ信号、3.1チャネル信号又は5.1チャネル信号の入力を受け、音声に出力する。音声出力部4185は、様々な形態のスピーカーで実現され得る。
一方、ユーザーのジェスチャーを感知するために、前述したように、タッチセンサ、音声センサ、位置センサ、動作センサの少なくとも1つを備えるセンシング部(図示せず)がデジタル機器4100にさらに備えられる。センシング部(図示せず)で感知された信号は、ユーザー入力インターフェース部4150を介して制御部4170へ伝達されることができる。
一方、ユーザーを撮影する撮影部(図示せず)がさらに備えられる。撮影部(図示せず)で撮影された映像情報は、制御部4170に入力され得る。
制御部4170は、撮影部(図示せず)から撮影された映像、又はセンシング部(図示せず)からの感知された信号をそれぞれ又は組み合わせてユーザーのジェスチャーを感知することもできる。
電源供給部4190は、デジタル機器4100全般にわたって、該当電源を供給する。
特に、システムオンチップ(system on chip、SOC)の形態で実現され得る制御部4170と、映像表示のためのディスプレイ部4180、及びオーディオの出力のためのオーディオ出力部4185に電源を供給することができる。
このため、電源供給部4190は、交流電源を直流電源に変換するコンバータ(図示せず)を備えることができる。一方、例えば、ディスプレイ部4180が多数のバックライトランプを備える液晶パネルとして実現される場合、輝度可変又はディミング(dimming)駆動のために、PWM動作可能なインバータ(図示せず)をさらに備えることもできる。
遠隔制御装置4200は、ユーザー入力をユーザー入力インターフェース部4150へ送信する。このため、遠隔制御装置4200は、ブルートゥース(bluetooth)、RF(radio frequency)通信、赤外線(IR)通信、UWB(Ultra Wideband)、ジグビー(ZigBee)方式等を使用することができる。
また、遠隔制御装置4200は、ユーザー入力インターフェース部4150で出力した映像、音声又はデータ信号等を受信し、これを遠隔制御装置4200で表示するか、音声又は振動を出力することができる。
前述したデジタル機器4100は、固定型又は移動型のATSC方式又はDVB方式のデジタル放送信号の処理が可能なデジタル放送受信機であり得る。
その他に、本明細書によるデジタル機器は、示している構成のうち、必要に応じて一部の構成を省略するか、逆に示していない構成をさらに含むこともある。一方、デジタル機器は、前述したところと異なり、チューナーと復調部を備えず、ネットワークインターフェース部又は外部装置インターフェース部を介してコンテンツを受信して再生することもできる。
図42は、図39乃至図41の制御部の詳細構成の一実施例を説明するために示した構成のブロック図である。
制御部の一例は、逆多重化部4210、映像処理部4220、OSD(on−screen display)生成部4240、ミキサー(mixer)4250、フレームレート変換部(frame rate converter、FRC)4255、及びフォーマット(formatter)4260を含み得る。その他、前記制御部は示していないが、音声処理部とデータ処理部をさらに含み得る。
逆多重化部4210は、入力されるストリームを逆多重化する。例えば、逆多重化部4210は、入力されるMPEG−2 TS映像、音声及びデータ信号で逆多重化できる。ここで、逆多重化部4210に入力されるストリーム信号は、チューナー又は復調部又は外部装置インターフェース部で出力されるストリーム信号であり得る。
映像処理部4220は、逆多重化された映像信号の映像処理を行う。このため、映像処理部4220は、映像デコーダ4225及びスケーラー4235を備えることができる。
映像デコーダ4225は、逆多重化された映像信号を復号し、スケーラー4235は、復号された映像信号の解像度をディスプレイ部で出力可能なようにスケーリング(scaling)する。
映像デコーダ4225は、様々な規格を支援することができる。例えば、映像デコーダ4225は、映像信号がMPEG−2規格で符号化された場合には、MPEG−2デコーダの機能を行い、映像信号がDMB(digital multimedia broadcasting)方式又はH.264規格で符号化された場合には、H.264デコーダの機能を行うことができる。
一方、映像処理部4220で復号された映像信号は、ミキサー4250に入力される。
OSD生成部4240は、ユーザー入力によって、又は自体的にOSDデータを生成する。例えば、OSD生成部4240は、ユーザー入力インターフェース部の制御信号に基づいて、ディスプレイ部4180の画面に各種データをグラフィック(graphic)やテキスト(text)の形態で表示するためのデータを生成する。生成されるOSDデータは、デジタル機器のユーザーインターフェース画面、様々なメニュ画面、 ウィジェット(widget)、アイコン(icon)、視聴率情報(viewing rate information)等の様々なデータを含む。
OSD生成部4240は、放送映像の字幕又はEPGに基づく放送情報を表示するためのデータを生成することもできる。
ミキサー4250は、OSD生成部4240で生成されたOSDデータと、映像処理部で映像処理された映像信号とをミキシングして、フォーマット4260に提供する。復号された映像信号とOSDデータとがミキシングされることによって、放送映像又は外部入力映像上にOSDがオーバーレイ(overlay)されて表示される。
フレームレート変換部(FRC)4255は、入力される映像のフレームレート(frame rate)を変換する。例えば、フレームレート変換部4255は、入力される60Hz映像のフレームレートをディスプレイ部の出力周波数によって、例えば、120Hz又は240Hzのフレームレートを有するように変換できる。前記のように、フレームレートを変換する方法には様々な方法が存在し得る。一例として、フレームレート変換部4255は、フレームレートを60Hzから120Hzに変換する場合、第1のフレームと第2のフレームとの間に同一の第1のフレームを挿入するか、第1のフレームと第2のフレームから予測された第3のフレームを挿入することによって変換できる。別の例として、フレームレート変換部4255は、フレームレートを60Hzから240Hzに変換する場合、既存のフレーム間に同一のフレーム又は予測されたフレームを3つさらに挿入して変換できる。一方、別のフレームの変換を行わない場合には、フレームレート変換部4255をバイパス(bypass)することもできる。
フォーマット4260は、入力されるフレームレート変換部4255の出力をディスプレイ部の出力フォーマットに合わせて変更する。例えば、フォーマット4260は、R、G、Bデータ信号を出力することができ、このようなR、G、Bデータ信号は、低い電圧差分信号(low voltage differential signaling、LVDS)又はmini−LVDSで出力されることができる。また、フォーマット4260は、入力されるフレームレート変換部4255の出力が3D映像信号である場合には、ディスプレイ部の出力フォーマットに合わせて3Dの形態で構成して出力することによって、ディスプレイ部を介して3Dサービスを支援することもできる。
一方、制御部内の音声処理部(図示せず)は、逆多重化された音声信号の音声処理を行うことができる。このような音声処理部(図示せず)は、様々なオーディオフォーマットを処理するように支援することができる。一例として、音声信号がMPEG−2、MPEG−4、AAC、HE−AAC、AC−3、BSAC等のフォーマットで符号化された場合にも、これに対応するデコーダを備えて処理できる。
また、制御部内の音声処理部(図示せず)は、ベース(base)、トレブル(treble)、音量調節等を処理することができる。
制御部内のデータ処理部(図示せず)は、逆多重化されたデータ信号のデータ処理を行うことができる。例えば、データ処理部は、逆多重化されたデータ信号が符号化された場合にも、これを復号することができる。ここで、符号化されたデータ信号としては、各チャネルで放映される放送プログラムの開始時刻、終了時刻などの放送情報が含まれたEPG情報であり得る。
一方、前述したデジタル機器は、本明細書による例示であって、各構成要素は、実際に実現されるデジタル機器の仕様によって、統合、追加、又は省略され得る。即ち、必要に応じて、2以上の構成要素が1つの構成要素に合わさるか、1つの構成要素が2以上の構成要素に細分化され得る。また、各ブロックで行う機能は、本明細書の実施例を説明するためのものであり、その具体的な動作や装置は、本明細書の権利範囲を制限しない。
一方、デジタル機器は、装置内に保存された映像又は入力される映像の信号処理を行う映像信号処理装置であり得る。映像信号処理装置の別の例としては、図41に示しているディスプレイ部4180とオーディオ出力部4185が除外されたセットトップボックス(STB)、前述したDVDプレーヤー、ブルーレイプレーヤー、ゲーム機器、コンピュータ等がさらに例示され得る。
図43は、一実施例にかかるデジタル機器のスクリーンがメイン映像(main image)と補助映像(sub image)を同時にディスプレイする一例示を示す図である。
一実施例にかかるデジタル機器は、スクリーン4300にメイン映像4310と補助映像4320を同時にディスプレイできる。メイン映像4310は、第1の映像と呼ばれ、補助映像4320は、第2の映像と呼ばれる。メイン映像4310と補助映像4320は、動画、スチルイメージ、EPG(electronic program guide)、GUI(graphical user in−terface)、OSD(on−screen display)等を含み得、これに限定されない。メイン映像4310は、電子装置のスクリーン4300に補助映像4320と同時にディスプレイされながら、電子装置のスクリーン4300より大きさが相対的に小さい映像を意味し得、PIP(picture in picture)と称することもある。図43では、メイン映像4310がデジタル機器のスクリーン4300の左側上段にディスプレイされるものと示されているが、メイン映像4310がディスプレイされる位置は、これに限定されず、メイン映像4310は、デジタル機器のスクリーン4300内の任意の位置でディスプレイされ得る。
メイン映像4310と補助映像4320は、相互直接又は間接的に関連し得る。一例示として、メイン映像4310はストリーミング(streaming)動画であり、補助映像4320は、ストリーミング動画と類似する情報を含む動画のサムネイル(thumbnail)を順次にディスプレイするGUIであり得る。別の例示として、メイン映像4310は放送映像(broadcasted image)であり、補助映像4320は、EPGであり得る。また別の例示として、メイン映像4310は放送映像であり、補助映像4320はGUIであり得る。メイン映像4310と補助映像4320の例示は、これに限定されない。
一実施例で、メイン映像4310は放送チャネル(broadcasting channel)を介して受信した放送映像(broadcasting image)であり、補助映像4320は放送チャネルを介して受信した放送映像に関する情報であり得る。放送チャネルを介して受信した放送映像に関する情報は、例えば、総合チャネル編成表、放送プログラムの詳細情報等を含むEPG情報、放送プログラムの再放送情報等を含み得、これに限定されない。
別の一実施例で、メイン映像4310は放送チャネルを介して受信した放送映像であり、補助映像4320は、デジタル機器に既保存された情報に基づいて生成された映像であり得る。デジタル機器に既保存された情報に基づいて生成された映像は、例えば、EPGの基本UI(User Interface)、基本チャネル情報、映像解像度(resolution)の操作UI、就寝予約UI等を含み得、これに限定されない。
また別の一実施例で、メイン映像4310は、放送チャネルを介して受信した放送映像であり、補助映像4320は、ネットワーク網を介して受信した放送映像に関する情報であり得る。ネットワーク網を介して受信した放送映像に関する情報は、例えば、ネットワークに基づく検索エンジンを介して獲得された情報であり得る。より具体的に例を挙げると、ネットワークに基づく検索エンジンを介して、現在のメイン映像4310にディスプレイされている登場人物に関する情報が獲得され得る。
しかし、例示はこれに限定されず、ネットワーク網を介して受信した放送映像に関する情報は、例えば、人工知能(artificial intelligence、AI)システムを使用することによって獲得され得る。より具体的に例を挙げると、ネットワークに基づくディープラーニング(deep−learning)を用いて、現在のメイン映像4310にディスプレイされている場所の地図上推定位置(estimated−location in map)が獲得され得、デジタル機器は、ネットワーク網を介して、現在のメイン映像4310にディスプレイされている場所の地図上推定位置に関する情報を受信することができる。
一実施例にかかるデジタル機器は、外部からメイン映像4310の映像情報及び補助映像4320の映像情報の少なくとも1つを受信することができる。メイン映像4310の映像情報は、例えば、放送チャネル(broadcasting channel)を介して受信した放送信号(broadcasting signal)、メイン映像4310のソースコード(source code)情報、ネットワーク網を介して受信したメイン映像4310のIPパケット(internet protocol packet)情報等を含み得、これに限定されない。同様に、補助映像4320の映像情報は、例えば、放送チャネルを介して受信した放送信号、補助映像4320のソースコード情報、ネットワーク網を介して受信した補助映像4320のIPパケット情報等を含み得、これに限定されない。デジタル機器は、外部から受信されたメイン映像4310の映像情報又は補助映像4320の映像情報をデコーディングして用いることができる。但し、場合によって、デジタル機器は、メイン映像4310の映像情報又は補助映像4320の映像情報を内部に自体的に保存していることもある。
デジタル機器は、メイン映像4310の映像情報及び補助映像4320に関する情報に基づいて、メイン映像4310と補助映像4320をデジタル機器のスクリーン4300にディスプレイできる。
一例示で、デジタル機器のデコーディング装置200は、メイン映像のデコーディング装置と補助映像のデコーディング装置を含み、メイン映像のデコーディング装置と補助映像のデコーディング装置は、それぞれメイン映像4310の映像情報と補助映像4320の映像情報をデコーディングすることができる。レンダラは、メイン映像のレンダラ(第1のレンダラ)と補助映像のレンダラ(第2のレンダラ)を含み、メイン映像のレンダラは、メイン映像のデコーディング装置でデコーディングされた情報に基づいて、メイン映像4310をデジタル機器のスクリーン4300の第1の領域にディスプレイされるようにすることができ、補助映像のレンダラは、補助映像のデコーディング装置でデコーディングされた情報に基づいて、補助映像4320をデジタル機器のスクリーン4300の第2の領域にディスプレイされるようにすることができる。
また別の例示で、デジタル機器のデコーディング装置200は、メイン映像4310の映像情報と補助映像4320の映像情報をデコーディングすることができる。デコーディング装置200でデコーディングされた情報に基づいて、レンダラは、メイン映像4310及び補助映像4320を共に処理して、同時にデジタル機器のスクリーン4300にディスプレイされるようにすることができる。
即ち、本文書によると、デジタル機器で映像サービス処理方法を提供することができる。前記映像サービス処理方法によると、映像情報を受信する段階、前記映像情報に基づいて(メイン)映像をデコーディングする段階、デコーディングされた映像をディスプレイ内の第1の領域にレンダリング又はディスプレイする段階、ディスプレイ内の第2の領域に補助映像をレンダリング又はディスプレイする段階を含み得る。この場合、第1の映像をデコーディングする段階は、前述した図3によるデコーディング装置200でのデコーディング手続に従うことができる。例えば、前述したように、第1の映像をデコーディングする段階は、インター又はイントラ予測に基づいて現在ブロックに対する予測サンプルを導出する段階、受信された残差情報に基づいて現在ブロックに対する残差サンプルを導出する段階(省略可能)、及び予測サンプル及び/又は残差サンプルに基づいて復元サンプルを生成する段階を含み得る。さらに、第1の映像をデコーディングする段階は、復元サンプルを含む復元ピクチャにインループフィルタリング手続を行うことを含むこともできる。
例えば、前記補助映像は、EPG(electronic program guide)、OSD(on screen display)、又はGUI(graphic user interface)であってもよい。例えば、前記映像情報は、放送網(broadcast network)を介して受信され、前記補助映像に関する情報は、前記放送網を介して受信されることができる。例えば、前記映像情報は、通信網(communication network)を介して受信され、前記補助映像に関する情報は、前記通信網を介して受信されることができる。例えば、前記映像情報は、放送網を介して受信され、前記補助映像に関する情報は、通信網を介して受信されることができる。例えば、前記映像情報は、放送網又は通信網を介して受信され、前記補助映像に関する情報は、前記デジタル機器内の保存媒体に保存されていてもよい。
以上で説明された実施例は、本発明の構成要素と特徴が所定の形態で結合されたものである。各構成要素又は特徴は、別途の明示的言及がない限り、選択的なものと考慮されるべきである。各構成要素又は特徴は、他の構成要素や特徴と結合されない形態で実施され得る。また、一部の構成要素及び/又は特徴を結合し、本発明の実施例を構成することも可能である。本発明の実施例で説明される動作の順序は変更され得る。いずれかの実施例の一部の構成や特徴は他の実施例に含まれてもよく、又は他の実施例の対応する構成又は特徴と交替し得る。特許請求範囲で明示的な引用関係がない請求項を結合して実施例を構成するか、出願後の補正によって新しい請求項に含ませ得ることは自明である。
本発明にかかる実施例は、様々な手段、例えば、ハードウェア、ファームウェア(firmware)、ソフトウェア又はそれらの結合などにより実現され得る。ハードウェアによる実現の場合、本発明の一実施例は、1つ又はそれ以上のASICs(application specific integrated circuits)、DSPs(digital signal processors)、DSPDs(digital signal processing devices)、PLDs(programmable logic devices)、FPGAs(field programmable gate arrays)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ等により実現され得る。
ファームウェアやソフトウェアによる実現の場合、本明細書の一実施例は、以上で説明された機能又は動作を行うモジュール、手続、関数等の形態で実現され得る。ソフトウェアコードは、メモリに保存され、プロセッサによって駆動され得る。前記メモリは、前記プロセッサの内部又は外部に位置し、既に公知となった多様な手段により前記プロセッサとデータをやり取りすることができる。
本発明は、本発明の必須的特徴を外れない範囲で、他の特定の形態で具体化できることは当業者にとって自明である。従って、前述した詳細な説明は、全ての面で制限的に解釈されてはならず、例示的なものと考慮されるべきである。本発明の範囲は、添付された請求項の合理的解釈によって決定されなければならず、本発明の等価的範囲内での全ての変更は、本発明の範囲に含まれる。