本発明に係る理解を助けるために詳細な説明の一部として含まれる、添付図面は、本発明の実施形態を提供し、詳細な説明と共に本発明の技術的特徴を説明する。
以下、本発明に係る好適な実施形態を添付の図面を参照して、詳細に説明する。添付された図面と一緒に以下に開示される詳細な説明は、本発明の例示的な実施形態を説明しようとするものであり、本発明が実施されることができる唯一の実施形態を例示しようとするのではない。以下の詳細な説明は、本発明の完全な理解を提供するために具体的な詳細事項を含む。しかしながら、当業者は、本発明が、このような具体的な詳細事項がなくても実施できることが分かる。
いくつかの場合、本発明の概念が曖昧になることを避けるために、公知の構造および装置は省略されるか、各構造および装置の中核(核心)機能を中心としたブロック図の形式で示されることができる。
さらに、本発明で用いられる用語は、可能な限り、現在広く用いられる一般的な用語を選択したが、特定の場合には、出願人が任意に選定した用語を用いて説明する。そのような場合には、該当部分の詳細説明で、その意味を明確に記載するため、本発明の説明で用いられる用語の名称のみで単純に解釈されてはならないものであり、その該当用語の意味まで把握して解釈されるべきであることを明らかにしておく。
以下の説明で用いられる特定の用語は、本発明の理解を助けるために提供されたものであり、このような特定の用語の使用は、本発明の技術的思想を逸脱しない範囲で他の形態に変更されることができる。例えば、信号、データ、サンプル、ピクチャ、フレーム、ブロックなどの場合、各符号化の過程で適切に置換されて解釈されることがある。
この文書は、ビデオ/映像コーディングに関するものである。たとえば、この文書で開示された方法/実施形態は、VVC(Versatile Video Coding)標準または次世代ビデオ/映像コーディング標準に開示され方法に適用することができる。
この文書においてピクチャ(picture)は、一般的に、特定の時間帯の1つの映像を表す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおけるピクチャの一部を構成する単位である。スライス/タイルは、1つまたは複数のCTU(Coding Tree Unit)を含むことができる。一つのピクチャは、複数のスライス/タイルで構成されることができる。
ピクセル(pixel)またはペル(pel)は、一つのピクチャ(または映像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が用いられることができる。サンプルは、一般的に、ピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを表すこともあり、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
ユニット(unit)は、映像処理の基本単位を示すことができる。ユニットは、ピクチャの特定の領域および、当該領域に関連する情報のうちの少なくとも一つを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用される。一般的な場合には、MxNブロックは、M個の列およびN個の行からなるサンプルまたは変換係数(transform coefficient)のセット(またはアレイ)を示すことができる。
この文書において、「/」および「、」は「および/または」と解釈される。たとえば、「A/B」は「Aおよび/またはB」と解釈され、「A、B」は「Aおよび/またはB」と解釈される。さらに、「A/B/C」は「A、B、および/またはCのうちの少なくとも一つ」を意味する。また、「A、B、C」も「A、B、および/またはCのうちの少なくとも一つ」を意味する。
さらに、本文書において、「または」は、「および/または」と解釈される。たとえば、「AまたはB」は、1)「A」だけを意味するか、2)「B」だけを意味するか、3)「AおよびB」を意味することができる。言い換えると、本文書の「または」は、「さらにまたは代替的に(additionally or alternatively)」を意味することができる。
以下、本明細書において、「処理ユニット」は、予測、変換、および/または量子化などのエンコード/デコードの処理が実行される単位を意味する。以下、説明の便宜のために処理ユニットは、「処理ブロック」または「ブロック」と称することもできる。
処理ユニットは、輝度(luma)成分の単位と色差(chroma)成分の単位とを含む意味で解釈されることができる。例えば、処理ユニットは、コーディングツリーユニット(CTU:Coding Tree Unit)、コーディングユニット(CU:Coding Unit)、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)に該当することができる。
また、処理ユニットは、輝度(luma)成分の単位または色差(chroma)成分の単位として解釈されることができる。例えば、処理ユニットは、輝度(luma)成分のコーディングツリーブロック(CTB:Coding Tree Block)、コーディングブロック(CB:Coding Block)、予測ブロック(PU:Prediction Block)または変換ブロック(TB:Transform Block )に該当することができる。あるいは、色差(chroma)成分のコーディングツリーブロック(CTB)、コーディングブロック(CB)、予測ブロック(PU)または変換ブロック(TB)に該当することができる。また、これに限定されるものではなく処理ユニットは、輝度(luma)成分の単位と色差(chroma)成分の単位とを含む意味で解釈されることもできる。
また、処理ユニットは、必ず正方形のブロックに限定されるものではなく、3つ以上の頂点を有する多角形の形で構成することもできる。
なお、以下、本明細書において、ピクセルまたは画素などをサンプルとして総称する。そして、サンプルを用いることは、ピクセル値または画素値などを用いることを意味することができる。
図1は、本発明の実施形態に係るビデオ信号処理装置の一例として、エンコーダの機能的構成の例を示す。
図1を参照すると、エンコード装置100は、映像分割部110、減算部115、変換部120、量子化部130、逆量子化部140、逆変換部150、加算部155、フィルタリング部160、メモリ170、インター予測部180、イントラ予測部185およびエントロピエンコード部190から構成されることができる。インター予測部180およびイントラ予測部185は、予測部と総称されることができる。つまり、予測部は、インター予測部180およびイントラ予測部185を含むことができる。変換部120、量子化部130、逆量子化部140、逆変換部150は、残差(レジデュアル)(residual)処理部に含まれることができる。残差処理部は、減算部115をさらに含むこともできる。一実施形態として、前述した映像分割部110、減算部115、変換部120、量子化部130、逆量子化部140、逆変換部150、加算部155、フィルタリング部160、インター予測部180、イントラ予測部185およびエントロピエンコード部190は、一つのハードウェアコンポーネント(例えば、エンコーダまたはプロセッサ)によって構成されることができる。また、メモリ170は、DPB(Decoded Picture Buffer)を含むことができ、デジタル記憶媒体によって構成されることもできる。
映像分割部110は、エンコード装置100に入力された入力画像(または、ピクチャ、フレーム)を1つまたは複数の処理ユニット(processing unit)に分割することができる。一例として、上記処理ユニットは、コーディングユニット(Coding Unit、CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(Coding Tree Unit、CTU)または最大コーディングユニット(Largest Coding Unit、LCU)からQTBT(Quad-Tree Binary-Tree)構造に基づいて再帰的に(recursively)分割されることができる。例えば、一つのコーディングユニットは、四分木構造および/または二分木構造に基づいて、下位デプスの(deeper)複数のコーディングユニットに分割されることができる。この場合、例えば、四分木構造が先に適用され、二分木構造が後で適用することができる。あるいは、二分木構造が先に適用されることもある。これ以上分割されない最終コーディングユニットに基づいて、本発明に係るコーディング手順が実行されることができる。この場合、映像の特性に応じたコーディング効率などに基づいて、最大コーディングユニットが直接最終コーディングユニットとして用いられることができ、または、必要に応じて、コーディングユニットは、再帰的に(recursively)より下位デプスのコーディングユニットに分割され、最適なサイズのコーディングユニットが最終コーディングユニットとして用いられることができる。ここで、コーディング(復号)手順とは、後述する予測、変換、および復元などの手続きを含むことができる。他の例として、上記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに含むことができる。この場合、上記予測ユニットおよび上記変換ユニットは、それぞれ前述した最終的コーディングユニットから分割またはパーティショニングされることができる。上記予測ユニットは、サンプル予測の単位であり得、上記の変換ユニットは、変換係数を導出する単位、および/または変換係数から残差信号(residual signal)を導出する単位であり得る。
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用される。一般的な場合、MxNブロックは、M個の列およびN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を表すことができる。サンプルは、一般的に、ピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを表すこともあり、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、一つのピクチャ(または映像)をピクセル(pixel)またはペル(pel)に対応する用語として用いることができる。
エンコード装置100は、入力映像信号(ソースブロック、オリジナルのサンプルアレイ)においてインター予測部180またはイントラ予測部185から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して残差信号(residual signal、残りのブロック、残りのサンプルアレイ)を生成することができ、生成された残差信号は、変換部120に伝送される。この場合、図示のように、エンコーダ100内で入力映像信号(ソースブロック、オリジナルのサンプルアレイ)において予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは、減算部115と呼ばれることができる。予測部は、処理対象ブロック(以下、現ブロックと称する)の予測を行い、上記現ブロックの予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現ブロックまたはCU単位で、イントラ予測が適用されるか、またはインター予測が適用されるかを決定することができる。予測部は、各予測モードの説明で後述するように、予測モード情報などの予測に関する様々な情報を生成し、エントロピエンコード部190に伝達することができる。予測に関する情報は、エントロピエンコード部190でエンコードされてビットストリーム形態で出力することができる。
イントラ予測部185は、現ピクチャ内のサンプルを参照して、現ブロックを予測することができる。上記参照されるサンプルは、予測モードに応じて上記現ブロックの周辺(neighbor)に位置することができ、または離れて位置することもできる。イントラ予測において、予測モードは、複数の非方向性モードおよび複数の方向性モードを含むことができる。非方向性モードは、例えば、DCモードおよび平面(プランナー)モード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度に応じて、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは、例として、設定によってはそれ以上、またはそれ以下の個数の方向性予測モードが用いられることができる。イントラ予測部185は、周辺ブロックに適用される予測モードを用いて、現ブロックに適用される予測モードを決定することもできる。
インター予測部180は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルのアレイ)に基づいて、現ブロックの予測されたブロックを導出することができる。このとき、インター予測モードで伝送される動き情報の量を減らすために周辺ブロックと現ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)の情報をさらに含むことができる。インター予測の場合、周辺ブロックは、現在のピクチャ内に存在する空間的周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)とを含むことができる。上記参照ブロックを含む参照ピクチャと上記時間的周辺ブロックを含む参照ピクチャとは、同じであることもあり、異なることもある。上記時間的周辺ブロックは、コロケート(同じ位置)参照ブロック(collocated reference block)、コロケートCU(colCU)などの名前で呼ばれることができ、上記時間的周辺ブロックを含む参照ピクチャは、コロケートピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部180は、周辺ブロックに基づいて動き情報候補リストを構成し、上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出するためにどのような候補が用いられるかを指示する情報を生成することができる。様々な予測モードに基づいてインター予測が行われることができ、例えば、スキップモードおよびマージモードの場合に、インター予測部180は、周辺ブロックの動き情報を現ブロックの動き情報として用いることができる。スキップモードの場合、マージモードとは異なり、残差信号が伝送されないことがある。動き情報予測(Motion Vector Prediction、MVP)モードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)で用いて、動きベクトル差分(motion vector difference)をシグナリングすることによって、現ブロックの動きベクトルを指示することができる。
上記インター予測部180または上記イントラ予測部185を介して生成された予測信号は、復元信号を生成するために用いられるか、または残差信号を生成するために用いられることができる。
変換部120は、残差信号に変換手法を適用して変換係数(transform coefficients)を生成することができる。たとえば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-LoeveTransform)、GBT(Graph-Based Transform)、またはCNT(Conditionally Non-linear Transform)のうちの少なくとも一つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとしたときに、このグラフから得られる変換を意味する。CNTは、以前に復元されたすべてのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて獲得される変換を意味する。また、変換プロセスは、正方形の同じ大きさを有するピクセルブロックに適用されることもあり、正方形ではない可変サイズのブロックにも適用することができる。
量子化部130は、変換係数を量子化してエントロピエンコード部190に伝送し、エントロピエンコード部190は、量子化された信号(量子化された変換係数に関する情報)をエンコードして、ビットストリームに出力することができる。上記量子化された変換係数に関する情報は、残差情報と呼ばれることができる。量子化部130は、係数スキャン順(scan order)に基づいて、ブロックの形の量子化された変換係数を1次元ベクトルの形で再整列することができ、上記1次元ベクトルの形の量子化された変換係数に基づいて、上記量子化された変換係数に関する情報を生成することもできる。エントロピエンコード部190は、例えば指数ゴロム(exponential Golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)などの、さまざまなエンコード方法を実行することができる。エントロピエンコード部190は、量子化された変換係数のほか、ビデオ/画像復元に必要な情報(例えば、構文要素(syntax elements)の値など)を一緒に、または別々にエンコードすることもできる。エンコードされた情報(例えば、エンコードされたビデオ/映像情報)は、ビットストリームの形でNAL(Network Abstraction Layer)ユニット単位で伝送または記憶することができる。上記ビットストリームは、ネットワークを介して伝送されることができ、またはデジタル記憶媒体に記憶されることができる。ここで、ネットワークは、放送網、および/またはネットワークなどを含むことができ、デジタル記憶媒体は、USB、SD、CD、DVD、Blu−ray、HDD、SSDなど、様々な記録媒体を含むことができる。エントロピエンコード部190から出力された信号は、伝送する伝送部(図示せず)および/または記憶する記憶部(図示せず)が、エンコード装置100の内/外のエレメントとして構成することができ、または伝送部エントロピエンコード部190の構成要素であり得る。
量子化部130から出力された量子化された変換係数は、予測信号を生成するために用いられる。例えば、量子化された変換係数は、ループ内の逆量子化部140および逆変換部150を介して逆量子化および逆変換が適用されることにより、残差信号を復元することができる。加算部155は、復元された残差信号をインター予測部180またはイントラ予測部185から出力された予測信号に加えることで復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合と同様に処理対象ブロックの残差がない場合、予測されたブロックが復元ブロックとして用いられる。加算部155は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在のピクチャ内の次の処理対象のブロックのイントラ予測のために用いられ、後述するようにフィルタリングを経て、次のピクチャのインター予測のために用いられる。
フィルタリング部160は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部160は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、上記修正された復元ピクチャを、メモリ170、具体的には、メモリ170のDPBに記憶することができる。上記様々なフィルタリングの方法は、例えば、デブロッキング(ジブロッキング)フィルタリング、サンプル適応オフセット(sample adaptive offset)、適応ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部160は、各フィルタリング方法の説明で後述するようにフィルタリングに関するさまざまな情報を生成してエントロピエンコード部190に伝達することができる。フィルタリングに関する情報は、エントロピエンコード部190でエンコードされてビットストリーム形態で出力されることができる。
メモリ170に伝送された修正された復元ピクチャは、インター予測部180で参照ピクチャとして用いられる。エンコード装置は、これを介して、インター予測が適用される場合、エンコード装置100とデコード装置とにおける予測ミスマッチを避けることができ、符号化効率も向上させることができる。
メモリ170DPBは、修正された復元ピクチャをインター予測部180からの参照ピクチャとして用いるために記憶することができる。メモリ170は、現在のピクチャ内の動き情報が導出された(またはエンコードされた)ブロックの動き情報および/または既に復元されたピクチャ内のブロックの動き情報を記憶することができる。上記記憶された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するために、インター予測部180に伝達することができる。メモリ170は、現在のピクチャ内の復元されたブロックの復元サンプルを記憶することができ、イントラ予測部185に伝達することができる。
図2は、本発明が適用される実施形態として、ビデオ/イメージ信号のデコードが行われるデコード装置の概略ブロック図を示す。
図2を参照すると、デコード装置200は、エントロピデコード部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260およびイントラ予測部265から構成されることができる。インター予測部260およびイントラ予測部265を合わせて予測部と呼ばれることができる。つまり、予測部は、インター予測部180およびイントラ予測部185を含むことができる。逆量子化部220、逆変換部230を合わせて残差処理部と呼ばれることができる。つまり、残差処理部は、逆量子化部220、逆変換部230を含むことができる。前述したエントロピデコード部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、インター予測部260およびイントラ予測部265は、実施形態に応じて1つのハードウェアコンポーネント(例えば、デコーダまたはプロセッサ)によって構成されることができる。また、メモリ170は、DPB(Decoded Picture Buffer)を含むことができ、デジタル記憶媒体によって構成されることもできる。
ビデオ/イメージ情報を含むビットストリームが入力されると、デコード装置200は、図1のエンコード装置からのビデオ/イメージ情報が処理されたプロセスに対応して映像を復元することができる。例えば、デコード装置200は、エンコード装置で適用された処理ユニットを用いてデコードを行うことができる。したがって、デコードの処理ユニットは、例えば、コーディングユニットであり得、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットから四分木構造および/または二分木構造に従って分けることができる。そして、デコード装置200を介してデコードおよび出力された復元映像信号は、再生装置を介して再生することができる。
デコード装置200は、図1のエンコード装置から出力された信号をビットストリーム形態で受信することができ、受信した信号は、エントロピデコード部210を介してデコードすることができる。例えば、エントロピデコード部210は、上記ビットストリームを解析して映像復元(またはピクチャ復元)に必要な情報(例えば、ビデオ/映像情報)を導出することができる。例えば、エントロピデコード部210は、指数ゴロム符号化、CAVLCまたはCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコードし、映像復元に必要な構文要素の値、残差に関する変換係数の量子化された値を出力することができる。さらに詳細には、CABACエントロピデコード方法は、ビットストリームから各構文要素に該当するビン(bin:空)を受信し、デコード対象構文要素の情報ならびに周辺およびデコード対象ブロックのデコード情報、または前のステップでデコードされたシンボル/ビンの情報を用いてコンテキスト(context)モデルを決定し、決定されたコンテキストモデルに基づいて、ビン(bin)の発生確率を予測して、空の算術デコード(arithmetic decoding)を実行して、各構文要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピデコード方法は、コンテキストモデルを決定した後、次のシンボル/ビンのコンテキスト(文脈)モデルのためにデコードされたシンボル/ビンの情報を用いて、コンテキストモデルを更新することができる。エントロピデコード部210でデコードされた情報のうちの予測に関する情報は、予測部(インター予測部260およびイントラ予測部265)で提供され、エントロピデコード部210から、エントロピデコードが行われた残差値、すなわち量子化された変換係数および関連パラメータ情報は、逆量子化部220に入力されることができる。また、エントロピデコード部210でデコードされた情報のうちのフィルタリングに関する情報は、フィルタリング部240に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)がデコード装置200の内/外部エレメントとしてさらに構成されることがあり、または受信部は、エントロピデコード部210の構成要素であり得る。
逆量子化部220においては、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部220は、量子化された変換係数を2次元のブロックの形で再整列することができる。この場合、上記再整列は、エンコード装置で実行された係数スキャン順序に基づいて再整列を実行することができる。逆量子化部220は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて、量子化された変換係数の逆量子化を行い、変換係数(transform coefficient)を獲得することができる。
逆変換部230においては、変換係数を逆変換して残差信号(残差ブロック、残差サンプルアレイ)を獲得することになる。
予測部は、現ブロックの予測を行い、上記現ブロックの予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピデコード部210から出力された上記予測に関する情報に基づいて、上記現ブロックにイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
イントラ予測部265は、現在のピクチャ内のサンプルを参照して、現ブロックを予測することができる。上記参照されたサンプルは、予測モードに応じて上記現ブロックの周辺(neighbor)に位置することができ、または離れて位置することもできる。イントラ予測で予測モードは、複数の非方向性モードおよび複数の方向性モードを含むことができる。イントラ予測部265は、周辺ブロックに適用される予測モードを用いて、現ブロックに適用される予測モードを決定することもできる。
インター予測部260は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルのアレイ)に基づいて、現ブロックの予測されたブロックを導出することができる。このとき、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)の情報をさらに含むことができる。インター予測の場合、周辺ブロックは、現在のピクチャ内に存在する空間的周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)とを含むことができる。例えば、インター予測部260は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて、上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出することができる。様々な予測モードに基づいて、インター予測が行われることができ、上記予測に関する情報は、上記現ブロックのインター予測のモードを指示する情報を含むことができる。
加算部235は、獲得された残差信号をインター予測部260またはイントラ予測部265から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることで、復元信号(復元ピクチャ、復元、ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合の様に処理対象ブロックの残差がない場合、予測されたブロックが復元ブロックとして用いられる。
加算部235は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在のピクチャ内の次の処理対象のブロックのイントラ予測のために用いられ、後述するようにフィルタリングを経て、次のピクチャのインター予測のために用いられることもある。
フィルタリング部240は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部240は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、上記修正された復元ピクチャを、メモリ250、具体的には、メモリ250のDPBに伝送することができる。上記様々なフィルタリングの方法は、例えば、デブロッキングフィルタリング、サンプル適応オフセット(sample adaptive offset)、適応ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
メモリ250のDPBに記憶された(修正された)復元ピクチャは、インター予測部260で参照ピクチャとして用いられる。メモリ250は、現在のピクチャ内の動き情報が導出された(またはデコードされた)ブロックの動き情報および/または既に復元されたピクチャ内のブロックの動き情報を記憶することができる。上記記憶された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ170は、現在のピクチャ内の復元されたブロックの復元サンプルを記憶することができ、イントラ予測部265に伝達することができる。
本明細書において、エンコード装置100のフィルタリング部160とインター予測部180およびイントラ予測部185とで説明された実施形態は、それぞれのデコード装置200のフィルタリング部240とインター予測部260およびイントラ予測部265とにも同一または対応するように適用することができる。
Block Partitioning
本文書に沿ったビデオ/映像コーディング方法は、様々な詳細な技術に基づいて行うことができ、それぞれの詳細な技術を概略的に説明すると、次の通りである。以下説明される技術は、前述した、および/または後述されるビデオ/映像エンコード/デコードの手順における予測、残差処理((逆)変換、(逆)量子化など)、構文要素のコーディング、フィルタリング、パーティショニング/分割などの関連の手続きに関連付けることができることは当業者にとって自明である。
本文書に沿ったブロックパーティショニング手順は、前述したエンコード装置の映像分の分割(割賦)(110)で実行されて、パーティショニング関連情報が、エントロピエンコード部190で(エンコード)処理され、ビットストリームの形でデコード装置に伝達されることができる。デコード装置のエントロピデコード部210は、上記ビットストリームから獲得した上記パーティショニングに関する情報に基づいて、現ピクチャのブロックパーティショニング構造を導出し、これに基づいて映像デコードのための一連の手順(例えば、予測、残差処理、ブロック復元、リンループフィルタリングなど)を実行することができる。
Partitioning of picture into CTUs
ピクチャは、コーディングツリーユニット(CTUs)のシーケンスに分割される(divided into a sequence)ことができる。CTUは、コーディングツリーブロック(CTB)に対応することができる。あるいは、CTUは、ルマサンプルのコーディングツリーブロックと、対応するクロマサンプルの二つのコーディングツリーブロックと、を含むことができる。つまり、三つのサンプルアレイを含むピクチャに対し、CTUは、ルマサンプルのNxNブロックとクロマサンプルの二つの対応ブロックとを含むことができる。
コーディングおよび予測などのためのCTUの最大許容サイズは、変換のためのCTUの最大許容サイズと異なることがある。たとえば、CTU内輝度ブロックの最大許容サイズは、128x128であり得る。
Partitionig of the CTUs using a tree structure
CTUは、四分木(Quad-Tree、QT)の構造に基づいてCUに分割されることができる。四分木構造は、クォーターナリ(quaternary)ツリー構造と呼ばれることができる。これは、様々な局地的特徴(local characteristic)を反映するためである。一方、本文書においては、CTUは、四分木だけでなく、二分木(Binary-Tree、BT)および三分木(Ternary-Tree、TT)を含むマルチタイプのツリー構造の分割に基づいて分割されることができる。以下、QTBT構造とするのは、四分木および二分木に基づいた分割構造を含むことができ、QTBTTTとは四分木、二分木および三分木に基づいた分割構造を含むことができる。あるいは、QTBT構造は、四分木、二分木および三分木に基づいた分割構造を含むこともできる。コーディングツリー構造で、CUは、正方形または長方形の形状を有することができる。CTUは、まず四分木構造に分割されることができる。以後、四分木構造のリーフノードは、マルチタイプのツリー構造によってさらに分割することができる。
図3は、本発明が適用されることができる実施形態として、マルチタイプのツリー構造の一例を示す図である。
本発明の一実施形態において、マルチタイプのツリー構造は、図3に示すような4つの分割タイプを含むことができる。上記4つの分割タイプは、垂直二(バイナリ)分割(Vertical Binary Splitting、SPLIT_BT_VER)、水平二分割(Horizontal Binary Splitting、SPLIT_BT_HOR)、垂直三(ターナリー)分割(Vertical Ternary Splitting、SPLIT_TT_VER)、水平三分割(Horizontal Ternary Splitting、SPLIT_TT_HOR)を含むことができる。上記マルチタイプツリー構造のリーフノードは、CUと呼ばれることができる。このようなCUは、予測および変換手順のために用いられる。本文書では、一般的にCU、PU、TUは、同じブロックサイズを有することができる。ただし、最大許容変換の長さ(maximum supported transform length)がCUのカラー成分(colour component)の幅または高さより小さい場合には、CUとTUとが互いに異なるブロックサイズを有することができる。
図4は、本発明が適用されることができる実施形態として、マルチタイプのツリーを伴う四分木(quadtree with nested multi-type tree)構造のパーティション分割情報のシグナリングメカニズムを例示する図である。
ここで、CTUは、四分木のルート(root)として取り扱われ、四分木構造で初めてパーティショニングされる。各四分木のリーフノードは、以後、マルチタイプのツリー構造で、さらにパーティショニングされることができる。マルチタイプのツリー構造において、第1フラグ(a first flag、例えば、mtt_split_cu_flag)が、該ノードが追加的にパーティショニングされるかを指示するためにシグナリングされる。該ノードが追加的にパーティショニングされる場合、第2フラグ(a second flag、例えば、mtt_split_cu_verticla_flag)が、分割方向(splitting direction)を指示するためにシグナリングされることができる。その後、第3フラグ(a third flag、例えば、mtt_split_cu_binary_flag)が、分割タイプが二分割であるか三分割であるかを指示するためにシグナリングされることができる。例えば、上記のmtt_split_cu_vertical_flagおよび上記mtt_split_cu_binary_flagに基づいて、CUマルチタイプのツリー分割モード(multi-type tree splitting mode、MttSplitMode)が、次の表1のように導出されることができる。
図5は、本発明が適用されることができる実施形態として、四分木を伴うマルチタイプのツリー(quadtree and nested multi-type tree)構造に基づいたCTUを多重CUに分割する方法を例示する図である。
ここで、ボールドブロックエッジ(bold block edges)は、四分木パーティショニングを、残りのエッジは、マルチタイプのツリーパーティショニングを示す。マルチタイプのツリーを伴った四分木のパーティションは、コンテンツ適応(アダプテッド)コーディングツリー構造を提供することができる。CUは、コーディングブロック(CB)に対応することができる。あるいは、CUは、ルマサンプルのコーディングブロックと、対応するクロマサンプルの二つのコーディングブロックと、を含むことができる。CUのサイズは、CTUだけ大きいこともあり、またはルマサンプル単位で4x4ほど小さいこともある。たとえば、4:2:0カラーフォーマット(orクロマフォーマット)である場合、最大クロマCBサイズは64x64であり、最小クロマCBサイズは2x2であり得る。
本文書において、例えば、最大許容ルマTBサイズは64x64であり、最大許容クロマTBサイズは32x32であり得る。上記ツリー構造に沿って分割されたCBの幅または高さが最大の変換幅または高さより大きい場合、該CBは、自動的に(または暗黙的に)水平方向および垂直方向のTBサイズ制限を満たすまで分割されることができる。
一方、マルチタイプのツリーを伴った四分木コーディングツリースキームのために、以下のパラメータが、spsシンタックス要素で定義および識別されることができる。
- CTU size: a quaternary treeの root node size
- MinQTSize: minimum allowed quaternary treeのleaf node size
- MaxBtSize: maximum allowed binary treeのroot node size
- MaxTtSize: maximum allowed ternary treeのroot node size
- MaxMttDepth: maximum allowed hierarchy depth of multi-type tree splitting from a quadtree leafからsplitting されたmulti-type treeのmaximum allowed hierarchy depth
- MinBtSize: minimum allowed binary treeのleaf node size
− MinTtSize: minimum allowed ternary treeのleaf node size
マルチタイプのツリーを伴った四分木コーディングツリー構造の一例として、CTUサイズは、128x128ルマサンプルと二つの対応するクロマサンプルの64x64ブロックとに(4:2:0クロマフォーマットで)設定することができる。この場合には、MinOTSizeは16x16に設定され、MaxBtSizeは128x128に設定され、MaxTtSzieは64x64に設定され、MinBtSizeおよびMinTtSize(for both width and height)は4x4に、そしてMaxMttDepthは4に、設定されることができる。四分木(クォートツリー)パーティショニングは、CTUに適用されて四分木のリーフノードを生成することができる。四分木のリーフノードは、リーフQTノードと呼ばれることができる。四分木のリーフノードは、16x16サイズ(すなわち、the MinOTSize)から128x128サイズ(すなわち、the CTU size)を有することができる。リーフQTノードが128x128である場合には、さらに、二分木/三分木に分割されないことがある。これは、この場合、分割されてもMaxBtsizeおよびMaxTtszie(すなわち、64x64)を超過するからである。それ以外の場合、リーフQTノードは、マルチタイプのツリーにさらに分割されることができる。したがって、リーフQTノードは、マルチタイプのツリーのルートノード(root node)であり、リーフQTノードは、マルチタイプのツリーデプス(mttDepth)0の値を有することができる。マルチタイプのツリーデプスがMaxMttdepth(例えば、4)に到達した場合、これ以上追加の分割は考慮されないことがある。マルチタイプのツリーノードの幅がMinBtSizeと同じであり、2xMinTtSizeより小さいか同じであるとき、もはや追加の水平分割は考慮されないことがある。マルチタイプのツリーノードの高さがMinBtSizeと同じであり、2xMinTtSizeより小さいか同じであるとき、もはや追加の垂直分割は考慮されないことがある。
図6は、本発明が適用されることができる実施形態として、三分木(ternary-tree)分割を制限する方法を例示する図である。
図6を参照すると、ハードウェアデコーダにおける64x64ルマブロックおよび32x32クロマパイプラインの設計を可能にする(許容する)ために、TT分割は、特定の場合に制限されることができる。例えば、ルマコーディングブロックの幅または高さが予め設定された特定の値(例えば、32、64)より大きい場合、図6に示すように、TT分割が制限されることができる。
本文書において、コーディングツリースキームは、ルマおよびクロマブロックが個別的(separate)ブロックのツリー構造を有することをサポート(支援)することができる。PおよびBスライスに対し、一つのCTU内輝度とクロマCTBとは同じコーディングツリー構造を有するように制限されることができる。しかしながら、Iスライスに対し、ルマとクロマブロックとは、互いに別々のブロックツリー構造を有することができる。個別的ブロックツリーモードが適用される場合、ルマCTBは、特定のコーディングのツリー構造に基づいてCUに分割され、クロマCTBは、他のコーディングツリー構造に基づいて、クロマCUに分割されることができる。これは、Iスライス内CUは、ルマ成分のコーディングブロックまたは2クロマ成分のコーディングブロックで構成され、PまたはBスライスのCUは、三つの色成分のブロックで構成されることができるのを意味することができる。
前述した「Partitionig of the CTUs using a tree structure」でマルチタイプのツリーを伴った四分木コーディングツリー構造について説明したが、CUが分割される構造は、これに限定されない。たとえば、BTの構造およびTTの構造は、多数の分割ツリー(Multiple Partitioning Tree、MPT)の構造に含まれる概念で解釈されることができ、CUは、QT構造およびMPT構造により分割されると解釈することができる。QT構造およびMPT構造によりCUが分割される一例において、QT構造のリーフノードがいくつかのブロックに分割されるかについての情報を含む構文要素(例えば、MPT_split_type)と、QT構造のリーフノードが垂直および水平のうちのどちらの方向に分割されるかについての情報を含む構文要素(例えば、MPT_split_mode)と、がシグナリングされることで、分割構造が決定されることができる。
さらに他の例として、CUは、QT構造、BT構造またはTT構造と別の方法で分割されることができる。つまり、QT構造に基づいて、下位デプスのCUが上位デプスのCUの1/4サイズに分割されたり、BT構造に応じて、下位デプスのCUが上位デプスのCUの1/2サイズに分割されたり、TT構造に基づいて、下位デプスのCUが上位デプスのCUの1/4または1/2のサイズに分割されるものとは異なり、下位デプスのCUは、場合によっては、上位デプスのCUの1/5、1/3、3/8、3/5、2/3または5/8のサイズに分割されることができ、CUが分割される方法は、これに限定されない。
ツリーノードブロックの部分(a portion)が下部(bottom)または右(right)ピクチャ境界を超える(exceeds)場合、そのツリーノードブロックは、すべてのコーディングされたCUのすべてのサンプルが上記のピクチャ境界内に位置するように制限されることができる。この場合、例えば、次のような分割ルールが適用されることができる。
- もしtree node blockの一部が下側と右側ピクチャ境界を超えると、
- もしブロックがQT nodeであり、ブロックサイズが最小QT sizeより大きければ、ブロックはQT split modeに分けられる。
- そうでなければ、ブロックはSPLIT_BT_HOR modeに分割される。
- そうではなく、もしtree node blockの一部が下側ピクチャ境界を超えると、
- もしブロックがQT nodeであり、ブロックサイズが最小QT sizeより大きく最大BT sizeより大きければ、ブロックはQT split modeに分けられる。
- そうではなく、もしブロックがQT nodeであり、ブロックサイズが最小QT sizeより大きく最大BT sizeより同じか小さいと、ブロックはQT split modeまたはSPLIT_BT_HOR modeに分割される。
- そうでなければ(ブロックがBTT nodeであるか、またはブロックサイズが最小QT sizeと同じか小さいと)、ブロックはSPLIT_BT_HOR modeに分割される。
- そうではなく、もしtree node blockの一部が右ピクチャ境界を超えると、
- もしブロックがQT nodeであり、ブロックサイズが最小QT sizeより大きく最大BT sizeより大きければ、ブロックはQT split modeに分けられる。
- そうではなく、もしブロックがQT nodeであり、ブロックサイズが最小QT sizeより大きく最大BT sizeより同じか小さいと、ブロックはQT split modeまたはSPLIT_BT_VER modeに分割される。
- そうでなければ(ブロックがBTT nodeであるか、またはブロックサイズが最小QT sizeと同じか小さいと)、ブロックはSPLIT_BT_VER modeに分割される。
一方、前述したマルチタイプのツリーを伴った四分木コーディングブロック構造は、非常に柔軟なブロックパーティショニングの構造を提供することができる。マルチタイプのツリーにサポートされる分割タイプのため、他の分割パターンが、場合によって、潜在的に同じコードブロック構造の結果をもたらすことができる。このような冗長(リダンダント)な(redundant:冗長)分割パターンの発生を制限することにより、パーティショニング情報のデータ量を削減することができる。下の図を参照して説明する。
図7は、本発明が適用されることができる実施形態として、二分木分割および三分木の分割で発生することができる冗長分割パターンを例示する図である。
図7に示すように、2段階のレベルの一方向の連続する二分割(two levels of consecutive binary splits in one direction)は、三分割の以後の中心パーティションの二分割と同じであるコーディングブロック構造を有する。このような場合、三分木分割の中心パーティションの二分木分割(in the given direction)は、制限されることができる。このような制限は、すべてのピクチャのCUに対し適用することができる。このような特定の分割が制限される場合、対応する構文要素のシグナリングは、このような制限される場合を反映して修正されることができ、これによりパーティショニングのためにシグナリングされるビット数を減らすことができる。例えば、図7に示された例のように、CUの中心パーティションの二分木分割が制限される場合、分割が二分割であるか三分割であるかどうかを示すmtt_split_cu_binary_flag構文要素は、シグナリングされず、その値は、0でデコーダによって推論されることができる。
予測(prediction)
デコードが実行される現在の処理ユニットを復元するために、現在の処理ユニットが含まれる現在のピクチャまたは他のピクチャのデコードされた部分を用いることができる。
復元に現ピクチャのみを用いる、すなわち、画面内予測のみを実行するピクチャ(スライス)をイントラピクチャまたはIピクチャ(スライス)、各ユニットを予測するために最大1つの動きベクトルおよび参照インデックスを用いるピクチャ(スライス)を予測ピクチャ(predictive picture)またはPピクチャ(スライス)、最大2つの動きベクトルおよび参照インデックスを用いるピクチャ(スライス)をペア予測ピクチャ(Bi-predictive picture)またはBピクチャ(スライス)と称することができる。
イントラ予測は、同じデコードされたピクチャ(またはスライス)のデータ要素(例えば、サンプル値など)から現在の処理ブロックを導出する予測方法を意味する。つまり、現在のピクチャ内の復元された領域を参照して、現在の処理ブロックのピクセル値を予測する方法を意味する。
以下、インター予測について、より注意深く見る。
インター予測(Inter prediction)(または画面間予測)
インター予測は、現在のピクチャ以外のピクチャのデータ要素(例えば、サンプル値または動きベクトルなど)に基づいて、現在の処理ブロックを導出する予測方法を意味する。つまり、現在のピクチャ以外の復元された他のピクチャ内の復元された領域を参照して、現在の処理ブロックのピクセル値を予測する方法を意味する。
インター予測(またはピクチャ間予測)は、ピクチャの間に存在する重複性を除去する技術で、ほとんど動き推定(motion estimation)および動き補償(motion compensation)を介して行われます。
本発明は、先に図1および図2で説明したインター予測方法の詳細な技術を説明するもので、デコーダの場合、後述する図10のインター予測ベースのビデオ/映像をデコードする方法と、図11のデコード装置内インター予測部と、で示すことができる。加えて、エンコーダの場合、後述する図8のインター予測ベースのビデオ/映像のエンコード方法と、図9のエンコード装置内インター予測部と、で示すことができる。さらに、図8および図9によってエンコードされたデータは、ビットストリームの形式で記憶されることができる。
エンコード装置/デコード装置の予測部は、ブロック単位でインター予測を実行して、予測サンプルを導出することができる。インター予測は、現在のピクチャ以外のピクチャのデータ要素(例えば、サンプル値、または動き情報など)に依存する方法で導出される予測を示すことができる。現ブロックにインター予測が適用される場合、参照ピクチャインデックスが示す参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルのアレイ)をベースに、現ブロックの予測されたブロック(予測サンプルアレイ)を導出することができる。
このとき、インター予測モードで伝送される動き情報の量を減らすために周辺ブロックと現ブロックとの間の動き情報の相関性に基づいて、現ブロックの動き情報を、ブロック、サブブロック、またはサンプル単位で予測することができる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測など)の情報をさらに含むことができる。
インター予測が適用される場合、周辺ブロックは、現在のピクチャ内に存在する空間的周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)とを含むことができる。上記参照ブロックを含む参照ピクチャと上記時間的周辺ブロックを含む参照ピクチャとは、同じであることもあり、異なることもある。上記時間的周辺ブロックは、コロケート参照ブロック(collocated reference block)、コロケートCU(colCU)などの名で呼ばれることができ、上記時間的周辺ブロックを含む参照ピクチャは、コロケートピクチャ(collocated picture、colPic)と呼ばれることもできる。たとえば、現ブロックの周辺ブロックに基づいて動き情報候補リストが構成されることができ、上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出するためどのような候補が選択(使用)されるかを指示するフラグまたはインデックス情報がシグナリングされることができる。
様々な予測モードに基づいてインター予測が行われることができ、例えば、スキップモードおよびマージモードの場合、現ブロックの動き情報は、選択された周辺ブロックの動き情報と同じであることができる。スキップモードの場合、マージモードとは異なり、残差信号が伝送されないことがある。動き情報予測(Motion Vector Prediction、MVP)モードの場合、選択された周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として(で)用い、動きベクトル差分(motion vector difference)は、シグナリングされることができる。この場合、上記動きベクトル予測子と動きベクトル差分との和(合)を用いて上記現ブロックの動きベクトルを導出することができる。
図8および図9は、本発明の実施形態に係るインター予測ベースのビデオ/映像のエンコード方法と本発明の実施形態に係るエンコード装置内インター予測部とを例示する図である。
図8および図9を参照すると、S801は、エンコード装置のインター予測部180によって実行されることができ、S802は、エンコード装置の残差処理部によって実行されることができる。具体的には、S802は、エンコード装置の減算部115によって実行されることができる。S803において、予測情報は、インター予測部180によって導出され、エントロピエンコード部190によってエンコードされることができる。S803において、残差情報は、残差処理部によって導出され、エントロピエンコード部190によってエンコードされることができる。上記残差情報は、上記残差サンプルに関する情報である。上記残差情報は、上記残差サンプルに対する量子化された変換係数に関する情報を含むことができる。
前述したように、上記残差サンプルは、エンコード装置の変換部120を介して変換係数として導出され、上記変換係数は、量子化部130を介して量子化された変換係数として導出することができる。上記量子化された変換係数に関する情報は、残差コーディング手順を介してエントロピエンコード部190でエンコードされることができる。
エンコード装置は、現ブロックのインター予測を行う(S801)。エンコード装置は、現ブロックのインター予測モードおよび動き情報を導出し、上記現ブロックの予測サンプルを生成することができる。ここで、インター予測モード決定、動き情報導出および予測サンプルの生成手順は、同時に実行されることもあり、いずれか1つの手順が、他の手順よりも先に実行されることもできる。たとえば、エンコード装置のインター予測部180は、予測モード決定部181、動き情報導出部182、予測サンプル導出部183を含むことができ、予測モード決定部181で、上記現ブロックの予測モードを決定し、動き情報導出部182において、上記現ブロックの動き情報を導出し、予測サンプル導出部183において、上記現ブロックの動きサンプルを導出することができる。
たとえば、エンコード装置のインター予測部180は、動き推定(motion estimation)を介して参照ピクチャの一定領域(サーチエリア)内において、上記現ブロックと類似のブロックをサーチし、上記現ブロックとの差が最小または一定基準以下の参照ブロックを導出することができる。これに基づいて、上記参照ブロックが位置する参照ピクチャを指す参照ピクチャインデックスを導出し、上記参照ブロックと上記現ブロックとの位置の差に基づいて、動きベクトルを導出することができる。エンコード装置は、様々な予測モードのうちの上記現ブロックに対して適用されるモードを決定することができる。エンコード装置は、上記様々な予測モードに対するRD costを比較し、上記現ブロックの最適な予測モードを決定することができる。
たとえば、エンコード装置は、上記現ブロックのスキップモードまたはマージモードが適用される場合、後述するマージ候補リストを構成し、上記マージ候補リストに含まれるマージ候補が指す参照ブロックのうちの上記現ブロックと上記現ブロックとの差が最小または一定の基準以下の参照ブロックを導出することができる。この場合、上記導出された参照ブロックと関連付けられているマージ候補が選択され、上記選択されたマージ候補を示すマージインデックス情報が生成され、デコード装置にシグナリングされることができる。上記選択されたマージ候補の動き情報を用いて上記現ブロックの動き情報が導出されることができる。
他の例として、エンコード装置は、上記現ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、上記(A)MVP候補リストに含まれるMVP(Motion Vector Predictor)候補のうちの選択されたMVP候補の動きベクトルを上記現ブロックのMVPとして用いることができる。この場合、例えば、前述した動き推定によって導出された参照ブロックを指す動きベクトルが上記現ブロックの動きベクトルとして用いられることができ、上記MVP候補のうちの上記現ブロックの動きベクトルとの差が最も小さい動きベクトルを有するMVP候補が上記選択されたMVP候補になることができる。上記現ブロックの動きベクトルから上記MVPを引いた差分のMVD(Motion Vector Difference)が導出されることができる。この場合、上記MVDに関する情報がデコード装置にシグナリングされることができる。また、(A)MVPモードが適用される場合、上記参照ピクチャインデックスの値は、参照ピクチャインデックス情報で構成され、別途、上記デコード装置にシグナリングされることができる。
エンコード装置は、上記予測サンプルに基づいて残差サンプルを導出することができる(S802)。エンコード装置は、上記現ブロックのソースサンプルと上記予測サンプルとの比較を通じて、上記残差サンプルを導出することができる。
エンコード装置は、予測情報および残差情報を含む映像情報をエンコードする(S803)。エンコード装置は、エンコードされた映像情報をビットストリームの形態で出力することができる。上記予測情報は、上記予測手順に関連する情報で予測モード情報(例えば、skip flag、merge flag or mode indexなど)および動き情報に関する情報を含むことができる。上記動き情報に関する情報は、動きベクトルを導出するための情報である候補選択情報(例えば、merge index、MVP flag or MVP index)を含むことができる。また、上記動き情報に関する情報は、前述したMVDに関する情報および/または参照ピクチャインデックス情報を含むことができる。
また、上記動き情報に関する情報は、L0予測、L1予測、またはペア(bi)の予測が適用されるかどうかを示す情報を含むことができる。上記残差情報は、上記残差サンプルに関する情報である。上記残差情報は、上記残差サンプルに対する量子化された変換係数に関する情報を含むことができる。
出力されたビットストリームは、(デジタル)記憶媒体に記憶されてデコード装置に伝達されることができ、またはネットワークを介してデコード装置に伝達されることもできる。
一方、前述したように、エンコード装置は、上記参照サンプルおよび上記残差サンプルに基づいて復元ピクチャ(復元サンプルおよび復元ブロックを含む)を生成することができる。これは、デコード装置で実行されるものと同じ予測結果をエンコード装置で導出するためであり、これを通じてエンコーディング(符号化)効率を高めることができるからである。したがって、エンコード装置は、復元ピクチャ(または復元サンプル、復元ブロック)をメモリに記憶し、インター予測のための参照ピクチャとして活用することができる。上記復元ピクチャにインループフィルタの手続きなどがさらに適用されることができることは、前述した通りである。
図10および図11は、本発明の実施形態に係るインター予測ベースのビデオ/映像のデコード方法と、本発明の実施形態に係るデコード装置におけるインター予測部と、を例示する図である。
図10および図11を参照すると、デコード装置は、上記エンコード装置で実行された動作と対応する動作を実行することができる。デコード装置は、受信した予測情報に基づいて、現ブロックに予測を行い、予測サンプルを導出することができる。
S1001ないしS1003は、デコード装置のインター予測部260によって実行されることができ、S1004の残差情報は、デコード装置のエントロピデコード部210によってビットストリームから獲得することができる。デコード装置の残差処理部は、上記残差情報に基づいて、現ブロックの残差サンプルを導出することができる。具体的には、上記残差処理部の逆量子化部220は、上記残差情報に基づいて導出された量子化された変換係数に基づいて、逆量子化を実行して変換係数を導出し、上記残差処理部の逆変換部230は、上記変換係数の逆変換を実行し、上記現ブロックの残差サンプルを導出することができる。S1005は、デコード装置の加算部235または復元部によって実行されることができる。
具体的には、デコード装置は、受信した予測情報に基づいて、上記現ブロックの予測モードを決定することができる(S1001)。デコード装置は、上記予測情報内の予測モード情報に基づいて、上記現ブロックにどのようなインター予測モードが適用されるかを決定することができる。
例えば、上記merge flagに基づいて、上記現ブロックに上記マージモードが適用されるか、または(A)MVPモードが決定されるか、を決定することができる。あるいは、上記mode indexに基づいて、様々なインター予測モード候補のうちのいずれか1つを選択することができる。上記インター予測モード候補は、スキップモード、マージモードおよび/もしくは(A)MVPモードを含むことができ、または後述する様々なインター予測モードを含むことができる。
デコード装置は、上記決定されたインター予測モードに基づいて、上記現ブロックの動き情報を導出する(S1002)。例えば、デコード装置は、上記現ブロックにスキップモードまたはマージモードが適用される場合、後述するマージ候補リストを構成し、上記マージ候補リストに含まれるマージ候補のうちのいずれか1つのマージ候補を選択することができる。上記選択は、前述した選択情報(merge index)に基づいて実行されることができる。上記選択されたマージ候補の動き情報を用いて、上記現ブロックの動き情報が導出されることができる。上記選択されたマージ候補の動き情報が、上記現ブロックの動き情報として用いられる。
他の例として、デコード装置は、上記現ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、上記(A)MVP候補リストに含まれるmvp(motion vector predictor)候補のうちの選択されたmvp候補の動きベクトルを上記現ブロックのmvpに用いることができる。上記選択は、前述した選択情報(mvp flag or mvp index)に基づいて実行されることができる。この場合、上記MVDに関する情報に基づいて、上記現ブロックのMVDを導出することができ、上記現ブロックのmvpおよび上記MVDに基づいて、上記現ブロックの動きベクトルを導出することができる。また、上記参照ピクチャインデックス情報に基づいて、上記現ブロックの参照ピクチャインデックスを導出することができる。上記現ブロックに関する参照ピクチャリスト内で、上記参照ピクチャインデックスが指すピクチャが、上記現ブロックのインター予測のために参照される参照ピクチャとして導出されることができる。
一方、後述するように候補リスト構成なしで上記現ブロックの動き情報が導出されることができ、この場合、後述する予測モードで開示された手順に従って、上記現ブロックの動き情報が導出されることができる。この場合、前述したような候補リストの構成は、省略されることができる。
デコード装置は、上記現ブロックの動き情報に基づいて、上記現ブロックの予測サンプルを生成することができる(S1003)。この場合、上記現ブロックの参照ピクチャインデックスに基づいて、上記参照ピクチャを導出し、上記現ブロックの動きベクトルが上記参照ピクチャ上で指す参照ブロックのサンプルを用いて、上記現ブロックの予測サンプルを導出することができる。この場合、後述するように、場合によっては、上記現ブロックの予測サンプルのうちの全部または一部の予測サンプルのフィルタリング手順がさらに実行されることができる。
例えば、デコード装置のインター予測部260は、予測モード決定部261、動き情報導出部262、予測サンプル導出部263を含むことができ、予測モード決定部261で、受信した予測モード情報に基づいて、上記現ブロックの予測モードを決定し、動き情報導出部262から(で)、受信した動き情報に関する情報に基づいて、上記現ブロックの動き情報(動きベクトルおよび/または参照ピクチャインデックスなど)を導出し、予測サンプル導出部263において、上記現ブロックの予測サンプルを導出することができる。
デコード装置は、受信した残差情報に基づいて、上記現ブロックの残差サンプルを生成する(S1004)。デコード装置は、上記予測サンプルおよび上記残差サンプルに基づいて、上記現ブロックの復元サンプルを生成し、これに基づいて復元ピクチャを生成することができる(S1005)。以後、上記復元ピクチャにインループフィルタの手続きなどがさらに適用されることができるのは、前述した通りである。
前述したように、インター予測の手順は、インター予測モード決定ステップと、決定された予測モードに応じた動き情報導出ステップと、導出された動き情報に基づいた予測実行(予測サンプル生成)ステップと、を含むことができる。
インター予測モード決定(Determination of inter prediction mode)
ピクチャ内の現ブロックの予測のために、様々なインター予測モードが用いられる。たとえば、マージモード、スキップモードでは、MVPモード、アフィン(Affine)モードなど、さまざまなモードが用いられる。DMVR(Decoder Side Motion Vector Refinement)モード、AMVR(Adaptive Motion Vector Resolution)モードなどが付随的なモードとしてさらに用いられる。アフィンモードは、アフィン動き予測(affine motion prediction)モードと呼ばれることもある。MVPモードは、AMVP(Advanced Motion Vector Prediction)モードと呼ばれることもある。
現ブロックのインター予測モードを指す予測モード情報がエンコード装置からデコード装置にシグナリングされることができる。上記予測モード情報は、ビットストリームに含まれデコード装置によって受信されることができる。上記予測モード情報は、多数の候補モードのうちの1つを指示するインデックス情報を含むことができる。あるいは、フラグ情報の階層的シグナリングを介してインター予測モードを指示することもできる。この場合、上記予測モード情報は、1つまたは複数のフラグを含むことができる。
たとえば、スキップフラグをシグナリングしてスキップモードの適用かどうかを指示し、スキップモードが適用されない場合にマージフラグをシグナリングしてマージモードの適用かどうかを指示し、マージモードが適用されない場合にMVPモードが適用されるものと指示したり、追加の区分のためのフラグをさらにシグナリングすることもできる。アフィンモードは、独立したモードでシグナリングされることもあり、またはマージモードまたはMVPモードなどに従属するモードでシグナリングされることもできる。例えば、アフィンモードは、後述するようにマージ候補リストまたはMVP候補リストの一つの候補として構成することもできる。
動き情報導出(Derivation of motion information according to inter prediction mode)
現ブロックの動き情報を用いて、インター予測を行うことができる。エンコード装置は、動き推定(motion estimation)手順を介して、現ブロックの最適な動き情報を導出することができる。たとえば、エンコード装置は、現ブロックのソースピクチャ内のソースブロックを用いて、相関性が高い類似の参照ブロックを参照ピクチャ内の決められた探索範囲内で分数ピクセル単位で探索(サーチ)することができ、これにより動き情報を導出することができる。ブロックの類似性は、位相(phase)ベースのサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現ブロック(または現ブロックのテンプレート)と参照ブロック(または参照ブロックのテンプレート)との間のSADに基づいて計算することができる。この場合、サーチスペース(探索領域)内SADが最も小さい参照ブロックに基づいて動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて、いろいろな方法に基づいてデコード装置にシグナリングされることができる。
マージモードおよびスキップモード
図12は、本発明が適用される実施形態として、マージモードまたはスキップモードで用いられる周辺ブロックを説明する図である。
マージモード(merge mode)が適用される場合、現在の予測ブロックの動き情報が直接伝送されず、周辺予測ブロックの動き情報を用いて上記現在の予測ブロックの動き情報を導出することになる。したがって、マージモードを用いたことを知らせるフラグ情報と周辺のどのような予測ブロックを用いたかを知らせるマージインデックスとを伝送することにより、現在の予測ブロックの動き情報を指示することができる。
本明細書の一実施形態において、エンコーダは、マージモードを実行するために、現在の予測ブロックの動き情報を導出するために用いられるマージ候補ブロック(merge candidate block)を探索することができる。例えば、上記マージ候補ブロックは、最大5個まで用いられるが、本発明はこれに限定されない。そして、上記マージ候補ブロックの最大個数は、スライスヘッダ(またはタイルのグループヘッダ)で伝送することができ、本発明はこれに限定されない。上記マージ候補ブロックを見つけた後、エンコーダは、マージ候補リストを生成することができ、これらのうちの最も小さいコストを有するマージ候補ブロックを最終マージ候補ブロックとして選択することができる。
本発明は、上記マージ候補リストを構成するマージ候補ブロックの様々な実施形態を提供する。
上記マージ候補リストは、例えば、5つのマージ候補ブロックを用いることができる。例えば、4つの空間的マージ候補(spatial merge candidate)と1つの時間的マージ候補(temporal merge candidate)とを用いることができる。具体例として、空間的マージ候補の場合、図12に示されたブロックを空間的マージ候補として用いることができる。
図13は、本発明が適用される一実施形態に係るマージ候補リストの構成方法を例示するフローチャートである。
図13を参照すると、符号化装置(エンコーダ/デコーダ)は、現ブロックの空間的周辺ブロックを探索して導出された空間的マージ候補をマージ候補リストに挿入する(S1301)。例えば、上記空間的周辺ブロックは、上記現ブロックの左下側コーナ周辺ブロック、左側の周辺ブロック、右上側コーナ周辺ブロック、上側周辺ブロック、左上側コーナ周辺ブロックを含むことができる。ただし、これは例として、前述した空間的周辺ブロック以外にも右側周辺ブロック、下側の周辺ブロック、右下側の周辺ブロックなどの追加の周辺ブロックが、さらに上記空間的周辺ブロックとして用いられる。コーディング装置は、上記空間的周辺ブロックを優先順位に基づいて探索して、使用可能(可用)なブロックを検出し、検出されたブロックの動き情報を、上記空間的マージ候補として導出することができる。例えば、エンコーダおよびデコーダは、図12に示された5つのブロックをA1、B1、B0、A0、B2の順に探索して、使用可能な候補を順次インデックスしてマージ候補リストとして構成することができる。
コーディング装置は、上記現ブロックの時間的周辺ブロックを探索して導出された時間的マージ候補を上記マージ候補リストに挿入する(S1302)。上記時間的周辺ブロックは、上記現ブロックが位置する現在のピクチャと異なるピクチャである参照ピクチャ上に位置することができる。上記時間的周辺ブロックが位置する参照ピクチャは、collocatedピクチャまたはcolピクチャと呼ばれることができる。上記時間的周辺ブロックは、上記colピクチャ上における上記現ブロックの同じ位置のブロック(co-located block)の右下側コーナ周辺ブロックおよび右下側センターブロックの順に探索することができる。
一方、motion data compressionが適用される場合、上記colピクチャに一定の記憶ユニットごとに、特定の動きの情報を代表動き情報として記憶することができる。この場合、上記一定の記憶ユニット内のすべてのブロックの動き情報を記憶する必要がなく、これによりmotion data compression効果を得ることができる。この場合、一定の記憶ユニットは、例えば、16x16サンプルの単位もしくは8x8サンプル単位などで予め決定されることもあり、またはエンコーダからデコーダで上記一定記憶ユニットのサイズ情報がシグナリングされることもある。上記motion data compressionが適用される場合、上記時間的周辺ブロックの動き情報は、上記時間的周辺ブロックが位置する上記一定の代表的動き情報に置き換えることができる。
つまり、この場合、実現側面で見ると、上記時間的周辺ブロックの座標に位置する予測ブロックではない、上記時間的周辺ブロックの座標(左上端サンプルポジション)に基づいて、一定の値だけ算術的右シフトした後、算術的左シフトした位置をカバーする予測ブロックの動き情報に基づいて、上記時間的マージ候補が導出されることができる。例えば、上記一定記憶ユニットが2nx2nサンプル単位である場合、上記時間的周辺ブロックの座標が(xTnb、yTnb)とすると、修正された位置である((xTnb >> n)<< n)、(yTnb >> n)<< n))に位置する予測ブロックの動き情報が上記時間的マージ候補のために用いられる。
具体的には、例えば、上記一定記憶ユニットが16x16サンプル単位である場合、上記時間的周辺ブロックの座標が(xTnb、yTnb)とすると、修正された位置である((xTnb >> 4)<< 4)、(yTnb >> 4)<< 4))に位置する予測ブロックの動き情報が上記時間的マージ候補のために用いられる。あるいは、例えば、上記一定記憶ユニットが8x8サンプル単位である場合、上記時間的周辺ブロックの座標が(xTnb、yTnb)とすると、修正された位置である((xTnb >> 3)<< 3)、(yTnb>> 3)<< 3))に位置する予測ブロックの動き情報が上記時間的マージ候補のために用いられる。
コーディング装置は、現在のマージ候補の個数が最大のマージ候補の個数より小さいかどうかを確認することができる(S1303)。上記最大のマージ候補の個数は、予め定義されたり、エンコーダからデコーダにシグナリングされることができる。例えば、エンコーダは、上記最大のマージ候補の個数に関する情報を生成し、エンコードして、ビットストリームの形で、上記デコーダに伝達することができる。上記最大マージ候補の数が全部満たされると、以降の候補の追加プロセスは進行しないことがある。
上記確認の結果、上記現在のマージ候補の個数が上記最大のマージ候補の個数より小さい場合、符号化装置は、追加マージ候補を上記マージ候補リストに挿入する(S1304)。上記追加マージ候補は、例えばATMVP、combined bi−predictiveマージ候補(現スライスのスライスタイプがBタイプの場合)、および/またはゼロベクトルマージ候補を含むことができる。
上記確認の結果、上記現在のマージ候補の個数が上記最大のマージ候補の個数より小さくない場合、符号化装置は、上記マージ候補リストの構成を終了することができる。この場合、エンコーダは、RD(Rate-Distortion)costに基づいて、上記マージ候補リストを構成するマージ候補のうちの最適なマージ候補を選択することができ、上記選択されたマージ候補を指す選択情報(例えば、merge index)をデコーダにシグナリングすることができる。デコーダは、上記マージ候補リストおよび上記選択情報に基づいて、上記最適なマージ候補を選択することができる。
上記選択されたマージ候補の動き情報が上記現ブロックの動き情報として用いられることができ、上記現ブロックの動き情報に基づいて、上記現ブロックの予測サンプルを導出することができることは、前述した通りである。エンコーダは、上記予測サンプルに基づいて、上記現ブロックの残差サンプルを導出することができ、上記残差サンプルに関する残差情報をデコーダにシグナリングすることができる。デコーダが、上記残差情報に基づいて導出された残差サンプルおよび上記予測サンプルに基づいて復元サンプルを生成し、これに基づいて復元ピクチャを生成することができることは、前述した通りである。
スキップモード(skip mode)が適用される場合、前でマージモードが適用される場合と同じ方法で、上記現ブロックの動き情報を導出することができる。ただし、スキップモードが適用される場合、該ブロックの残差信号が省略され、したがって、予測サンプルが直接復元サンプルに用いられる。
MVPモード
図14は、本発明が適用される一実施形態に係るマージ候補リストの構成方法を例示するフローチャートである。
MVP(Motion Vector Prediction)モードが適用される場合、復元された空間的周辺ブロック(例えば、先の図12で説明した周辺のブロックであり得る)の動きベクトルおよび/または時間的周辺ブロック(またはColブロック)に対応する動きベクトルを用いて、動きベクトル予測子(Motion Vector Predictor、MVP)の候補リストが生成されることができる。つまり、復元された空間的周辺ブロックの動きベクトルおよび/または時間的周辺ブロックに対応する動きベクトルは、動きベクトル予測子候補として用いられる。
上記予測に関する情報は、上記リストに含まれる動きベクトル予測子候補の中から選択された最適な動きベクトル予測子候補を指示する選択情報(例えば、MVPフラグまたはMVPインデックス)を含むことができる。このとき、予測部は、上記選択情報を用いて、動きベクトルの候補リストに含まれる動きベクトル予測子候補の中から、現ブロックの動きベクトル予測子を選択することができる。エンコード装置の予測部は、現ブロックの動きベクトルと動きベクトル予測子との間の動きベクトル差分(MVD)を求めることができ、これをエンコードして、ビットストリームの形で出力することができる。つまり、MVDは、現ブロックの動きベクトルから、上記動きベクトル予測子を引いた値で求められることができる。このとき、デコード装置の予測部は、上記予測に関する情報に含まれる動きベクトルの差分を獲得し、上記動きベクトル差分と上記動きベクトル予測子との加算を通じて、現ブロックの上記動きベクトルを導出することができる。デコード装置の予測部は、参照ピクチャを指示する参照ピクチャインデックスなどを上記予測に関する情報から獲得または導出することができる。例えば、動きベクトル予測子候補リストは、図14に示すように構成することができる。
アフィン動き予測(Affine motion prediction)
図15は、本発明の実施形態に係る動きモデル(motion models)の例を示す。
従来の映像圧縮技術(例えば、HEVC(High Efficiency Video Coding))は、コーディングブロックの動き(motion)を表現するための1つの動きベクトル(motion vector)を用いる。例えば(たとえ)、ブロックごとに一つの動きベクトルを用いる方式がブロック単位の最適動きを表現することがあるが、実際の各画素の、最適な動きではないことがある。したがって、画素単位で最適な動きベクトルを決定することができれば符号化効率を向上させることができる。そこで、本発明の実施形態は、多数の動きモデル(multi motion model)を用いて、ビデオ信号を符号化または復号する動き予測(motion prediction)方法について説明する。特に、2つないし4つの制御点動きベクトルを用いて、ブロックの各画素単位またはサブブロック単位で動きベクトルを表現することができ、このような複数の制御点動きベクトルを用いた予測手法は、アフィン動き予測(affine motion prediction)、アフィン予測(affine prediction)などと呼ばれることができる。
本発明の実施形態に係るアフィン動きモデル(affine motion model)は、図15に示すような4つの動きモデルを表現することができる。Affine motion modelが表現できるmotionのうちの3つのmotion(translation、scale、rotate)を表現するaffine motion modelは、similarity(or simplified) affine motion modelと呼ばれ、本発明の実施形態の説明において、説明の便宜のためにsimilarity(or simplified) affine motion modelに基づいて説明するが、本発明はこれに限定されない。
図16は、本発明の実施形態に係るアフィン動き予測のための制御点動きベクトルの例を示す。
図16のようにアフィン動き予測は、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})は、現ブロック1300の左上側の位置の第1制御点動きベクトル(CPMV0)を示し、v_1(v_1={v_1x,v_1y})は、現ブロック1300の右上側の位置の第2制御点動きベクトル(CPMV1)を示す。そして、wは、現ブロック1300の幅(width)を示し、v(v={v_x,v_y})は、{x、y}位置における動きベクトルを示す。サブブロック(または画素)単位の動きベクトルは、上記数式(1)を用いて導出することができる。一実施形態において、動きベクトルの精度は、1/16の精度に丸められ(ラウンディングされ)ることができる。
図17は、本発明の実施形態に係るアフィン動き(モーション)予測が適用されたブロックの各サブブロック別動きベクトルの例を示す。
図17を参照すると、符号化または復号の過程でアフィン動きベクトルフィールド(MVF)は、画素単位、あるいはブロック単位で決定されることができる。つまり、アフィン動き予測では、現ブロックの動きベクトルは、画素単位またはサブブロック単位で導出されることができる。
画素単位でアフィン動きベクトルフィールドが決定される場合、各画素値に基づいて動きベクトルが得られ、ブロック単位の場合、ブロックの中央画素値に基づいて、該ブロックの動きベクトルが得られることができる。本書において、図17のようにアフィン動きベクトルフィールド(MVF)が4*4ブロック単位で決定される場合が仮定される。ただし、これは、説明の便宜のためにあって、本発明の実施形態に限定されるものではない。図17は、符号化ブロックが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で用いられる。
図18は、本発明の実施形態に係るアフィンマージモード(affine merge mode)でアフィン動き予測に用いられる周辺ブロックの例を示す。
アフィンマージ(AF_MERGE)モードで、エンコーダは、次の過程のように符号化を行うことができる。
ステップ−1:現コーディングブロック1800の周辺ブロックAないしE(1810、1820、1830、1840、1850)をアルファベット順にスキャン(scanning)し、スキャン順の基準で最初にアフィン予測モードで符号化されたブロックをアフィンマージ(AF_MERGE)の候補ブロックとして決定
ステップ−2:決定された候補ブロックの制御点動きベクトル(CPMV)を用いて、アフィン動きモデルを決定
ステップ−3:候補ブロックのアフィン動きモデルに基づいて、現ブロック1800の制御点動きベクトル(CPMV)が決定され、現ブロック1800のMVFを決定
図19は、本発明の実施形態に係るアフィン動き予測が適用された周辺ブロックを用いてアフィン動き予測が実行されるブロックの例を示す。
例えば、図19に示すように、ブロックA1920がアフィンモード(affine mode)で符号化された場合、ブロックA1920を候補ブロックに決定した後、ブロックA1920の制御点動きベクトル(CPMV)(例えば、v2、v3)を用いて、アフィン動きモデル(affine motion model)を導出した後、現ブロック1900の制御点動きベクトル(CPMV)v0およびv1を決定することができる。現ブロック1900の制御点動きベクトル(CPMV)をベースにして、現ブロック1900のアフィン動きベクトルフィールド(MVF)が決定され、符号化が行われることができる。
図20は、本発明の実施形態に係る周辺アフィンコーディングブロックを用いて、マージ候補リストを生成する方法を説明する図である。
図20を参照すると、アフィンマージ候補を用いて、CPMV対を決定する場合、図20に示すような候補が用いられる。図20において、候補リストのスキャン順序は、A、B、C、D、E、に設定された場合を想定する。ただし、本発明がこれに限定されるものではなく、様々な順序で予め設定することができる。
実施形態としては、周辺ブロック(つまり、A、B、C、D、E)で利用可能なアフィンモード(またはアフィン予測)で符号化された候補(以下、アフィン候補と呼ばれることができる)の数が0のとき、現ブロックのアフィンマージモードでは、スキップされることができる。利用可能なアフィン候補の数が一つである場合(たとえば、A)は、該当候補の動きモデルが、現ブロックの制御点動きベクトル(CPMV_0およびCPMV_1)を導出するために用いられる。この場合には、該候補を指示するインデックスが要求(またはコーディング)されないことがある。利用可能なアフィン候補の数が複数である場合、スキャン順上の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のために用いられることを指定するためにシグナリングされる。
図21および図22は、本発明の実施形態に係るアフィン予測で符号化された周辺ブロックを用いてアフィンマージ候補リストを構成する方法を説明する図である。
図21を参照すると、アフィンマージ候補リストは、次のステップとして構成される。
モデルベースアフィン候補の挿入
モデルベースのアフィン候補は、候補がアフィンモードでコーディングされた有効な周辺の再構成されたブロックから導出されることを意味する。図21に示すように、候補ブロックのスキャン順序は、左(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)に応じて計算される。
制御点ベースアフィン候補の挿入
図21を参照すると、制御点ベース候補は、各制御点の周辺の動き情報を組み合わせることにより、候補が構成されることを意味する。
制御点に対する動き情報は、まず、図21に示された指定された空間隣接ブロックとの時間隣接ブロックから導出される。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})のうちの1つから選択されることができる。たとえば、6パラメータアフィン動きモデルを構成するCP_1、CP_2およびCPv3制御点を用いるものは、「Affine(CP_1、CP_2、CP_3)」と表記される。
また、本発明の実施形態において、アフィンマージモードで、アフィンマージ候補が存在すれば、それは、常に6パラメータアフィンモードとして考慮することができる。
アフィンインターモード(affine inter mode)
図23は、本発明の実施形態に係るアフィンインターモード(affine inter mode)でアフィン動き予測に用いられる周辺ブロックの例を示す。
図23を参照すると、アフィン動き予測(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は、現ブロック2300の左上側制御点2310における動きベクトル(CPMV0)、v_1は、現ブロック2300の右上側制御点2311における動きベクトル(CPMV1)、v_2は、現ブロック2300の左下側制御点2312における動きベクトル(CPMV2)であり、v_Aは、現ブロック2300の左上側の制御点2310の左上側に隣接する周辺ブロックA(2320)の動きベクトル、v_Bは、現ブロック2300の左上側制御点2310の上側に隣接する周辺ブロックB(2322)の動きベクトル、v_Cは、現ブロック2300の左上側制御点2310の左側に隣接する周辺ブロックC(2324)の動きベクトル、v_Dは、現ブロック2300の右上側制御点2311の上側に隣接する周辺ブロックD(2326)の動きベクトル、v_Eは、現ブロック2300の右上側制御点2311の右上側に隣接する周辺ブロックE(2328)の動きベクトル、v_Fは、現ブロック2300の左下側制御点2312の左側に隣接する周辺ブロックF(2330)の動きベクトル、v_Gは、現ブロック2300の左下側制御点2312の左側に隣接する周辺ブロックG(2332)の動きベクトルを示す。
ステップ−1.2:CPMVP候補の組み合わせのうちの差値(Difference Value、DV)が小さな値に基づいて整列(sorting)させ、上位2つの候補を使用(下の数式3を参照)
v_0xは、現ブロック2300の左上側制御点2310の動きベクトル(V0またはCPMV0)のx軸エレメント、v_1xは、現ブロック2300の右上側制御点2311の動きベクトル(V1またはCPMV1)のx軸エレメント、v_2xは、現ブロック2300の左下側制御点2312の動きベクトル(V_2またはCPMV_2)のx軸エレメント、v_0yは、現ブロック2300の左上側制御点2310の動きベクトル(V_0またはCPMV_0)のy軸エレメント、v_1yは、現ブロック2300の右上側制御点2311の動きベクトル(V_1また葉CPMV_1)のy軸エレメント、v_2yは、現ブロック2300の左下側制御点2312の動きベクトル(V_2またはCPMV_2)のy軸エレメント、wは、現ブロック2300の幅(width)、hは、現ブロック2300の高さ(height)を示す。
ステップ−2:制御点動きベクトル予測子(CPMVP)ペア候補が2より小さい場合AMVP候補リストを使用
ステップ−3:2つの候補のそれぞれについて、制御点動きベクトル予測子(CPMVP)を決定し、RD costを比較して小さい値を有する候補およびCPMVを最適に選択
ステップ−4:最適な候補に対応するインデックスおよび制御点動きベクトル差分値(Control Point Motion Vector Difference、CPMVD)を伝送
本発明の実施形態において、AF_INTERで、CPMVP候補の構成プロセスが提供される。AMVPと同様に、候補個数は2であり、候補リストの位置を指示するインデックスがシグナリングされる。
CPMVP候補リストの構成プロセスは、以下の通りである。
周辺ブロックをスキャンして、これがアフィン動き予測としてコーディング(符号化)されるかをチェックする。スキャンされたブロックがアフィン予測としてコーディングされる場合、候補個数が2になるまでスキャンされた周辺ブロックのアフィン動きモデルから現ブロックの動きベクトルの対を導出する。
2)候補の個数が2より小さければ、候補の構成プロセスを実行する。また、本発明の実施形態において、4パラメータ(2制御点)アフィンインターモードがズーム−イン/アウト(zoom-in/out)および回転の動きモデルとコンテンツとを予測するために用いられる。図16に示すように、ブロックのアフィン動きフィールド(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は、これらのうちのいずれか1つを選択するために用いられる。アフィンMVPペアは、二種類のアフィンMVP候補によって生成される。一つは、空間的継承アフィン候補(spatial inherited affine candidate)であり、他の一つは、コーナ導出されたアフィン候補(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の左上側のサンプルの位置である。
図24は、本発明の実施形態に係るアフィンインターモード(affine inter mode)でアフィン動き予測に用いられる周辺ブロックの例を示す。
図24を参照すると、MVPペアの個数が2より小さい場合、コーナ導出されたアフィン候補が用いられる。周辺の動きベクトルは、図24に示すようにアフィンMVPペアを導出するために用いられる。第1コーナ導出されたアフィン候補に対して、セットA(A0、A1およびA2)で第1利用可能なMVとセットB(B0およびB1)で第1利用可能なMVとは、第1MVPペアを構成するために用いられる。第2コーナ導出されたアフィン候補に対して、セットAで第1利用可能なMVとセットC(C0およびC1)で第1利用可能なMVとは、右上側制御点のMVを計算するのに用いられる。セットAで第1利用可能なMVと計算された右上側制御点MVとは、第2MVPペア(対)である。
本発明の実施形態において、2つ(3つ)の候補{mv_0, mv_1}({mv_0, mv_1, mv_2})を含む2つの候補セットは、アフィン動きモデルの2つ(3つ)の制御点を予測するために用いられる。与えられた動きベクトル差分(mvd_0, mvd_1, mvd_2)および制御点は、次の式を用いることにより計算される。
図25および図26は、本発明の実施形態に係るアフィンインターモード(affine inter mode)で周辺ブロックの動き情報を用いて動きベクトルの候補を導出する方法を例示する図である。
上記アフィン候補リストは、アフィン動きを空間的隣接ブロック(外挿されたアフィン候補)から延長し、空間的隣接ブロック(仮想のアフィン候補)からの動きベクトルの組み合わせによって添付される(appended)。候補セットは、以下のように設定される。
最大2つの異なるアフィンMV予測子(者)セットが、隣接ブロックのアフィン動きから導出される。隣接ブロックA0、A1、B0、B1、およびB2が、図25に示されたように確認される。隣接ブロックがアフィン動きモデルによって符号化され、その参照フレームが、現ブロックの参照フレームと同じであれば、現ブロックの(4−パラメータアフィンモデルの)2つまたは(6−パラメータアフィンモデルの)3つの制御点が隣接ブロックのアフィンモデルから導出される。
図29は、仮想のアフィン候補セットを生成するために用いられる隣接ブロックを示す。隣接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 pel、色差について1/32 pel)をサブブロックに対して実行(invoked)
− そうでなければ、向上されたバイリニア補間フィルタ(enhanced bi-linear interpolation filter)ベースの補償が全体アフィンブロックについて実行される(invoked)
また、本発明の一実施形態において、マージ/スキップフラグが偽(false)であり、CUの幅および幅が8以上であれば、CUレベルでアフィンフラグがアフィンインターモードが用いられるかどうかを指示するためにシグナリングされる。CUがアフィンインターモードとしてコーディングされる場合、モデルフラグが、4−パラメータまたは6−パラメータアフィンモデルが上記CUに適用されるかどうかを指示するために、シグナリングされる。モデルフラグが真(true)である場合、AF_6_INTER mode(6−パラメータアフィンモデル)が適用され、3つのMVDが解析され、それでない場合、AF_4_INTER mode(4−パラメータアフィンモデル)が適用され、2つのMVDが解析される。
AF_4_INTERモードにおいて、アフィンマージモードと同様(類似)に、アフィンモードによりコーディングされた隣接ブロックからの外挿された動きベクトルの対が生成され、最初に候補リストに挿入される。
以降、候補リストのサイズが4より小さい場合、動きベクトルの対{(v_0,v_1)|v0={v_A,v_B,v_c},v_1={v_D, v_E}}を有する候補が隣接ブロックを用いることにより、生成される。図22に示されたように、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}}を含む候補が、隣接ブロックを用いて生成される。図22に示されたように、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が適用され、そうでなければ、サブブロックベースのアフィン動き補償が適用される。
図27は、本発明の実施形態に係るサブブロック単位のアフィン動きベクトルフィールドを導出する方法の一例を示す。
図27を参照すると、各MxNサブブロックの動きベクトルを導出するために、図27に示されたような、各サブブロックの中央のサンプルの動きベクトルは、数式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:アフィンモードである1番目の隣接ブロックを探索する代わりに、改善点(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−パラメータアフィン動きモデルとして設定される。
AFFINE_CLIP_REMOVE:全てのアフィン動きベクトルに対する動きベクトルの制約(constraints)を除去する。動き補償の過程が動きベクトルの制約そのものを制御するようにする。
アフィン動きモデル(Affine motion model)
前述したように、Affine inter predictionで様々なaffine motion modelが使用または考慮することができる。たとえば、Affine motion modelは、前述した図15のように、4つのmotionを表現することができる。Affine motion modelが表現できるmotionのうちの3つのmotion(translation、scale、rotate)を表現するaffine motion modelを、similarity(or simplified) affine motion modelとすることができる。上記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候補のみが含まれる。両方向予測(bi-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と減少した。
non−QTブロックでAffine使用のときの適用技術
図28は、本発明の実施形態に係るアフィン動きモデルを適用したインター予測で予測ブロックが生成される方法および動きベクトルを例示的に示す。
図28を参照すると、アフィン動きモデルが適用される場合の動きベクトルを導出する数式を見ることができる。上記動きベクトルは、次のような数式17に基づいて導出されることができる。
ここでv_xは、現ブロック内の(x、y)座標のサンプルのサンプル単位の動きベクトルのx成分、v_yは、現ブロック内の上記(x、y)座標サンプルの上記サンプル単位の動きベクトルのy成分を示す。つまり、(v_x、v_y)は、上記(x、y)座標のサンプルに対する上記サンプル単位の動きベクトルとなる。ここで、a、b、c、d、e、fは、上記現ブロックのコントロールポイント(Control Point、CP)から(x、y)座標のサンプル単位の動きベクトル(動き情報)を導出するための数式のパラメータ(parameter)を示す。上記CPは、操縦画素と表現されることもできる。上記パラメータは、PU端位で伝送される各PUのCPの動き情報から導出することができる。前述した上記CPの動き情報から導出された上記サンプル単位の動きベクトルを導出する数式は、ブロックのサンプルごとに適用されることができ、上記各サンプルのx軸およびy軸の相対位置に基づいて参照画像内のサンプルの位置として導出されることができる。上記サンプル単位の動きベクトルは、QTBT(TT)ブロック分割構造に沿ったブロックのサイズ、非対称型または対称型、ブロックの位置などによって異なって(違って)導出することができる。これに対する具体的な実施形態は、後述する図29〜図38を介して示す。
図29は、本発明の実施形態に係る制御点動きベクトルに基づいて動き補償を実行する方法を例示する図である。
図29を参照すると、現ブロックが2Nx2Nブロックである場合を仮定して説明する。例えば、上記現ブロック内の左上端サンプルの動きベクトルをv_0とすることができる。また、上記現ブロックおよび隣接する周辺ブロックのサンプルをCPで用いて、各CPの動きベクトルをv_1およびv_2とすることができる。すなわち、上記現ブロックの幅および高さがSであり、上記現ブロックの左上端(top-left)のサンプルポジションの座標を(xp、yp)とするとき、上記CPのうちのCP0の座標は(xp、yp)であり、CP1の座標は(xp+S、yp)であり、CP2の座標は(xp、yp+S)とすることができる。上記CP0の動きベクトルはv_0、上記CP1の動きベクトルはv_1、上記CP2の動きベクトルはv_2とすることができる。上記CPの動きベクトルを用いて上記サンプル単位の動きベクトルを導出することができる。上記のサンプル単位の動きベクトルは、次の数式18に基づいて導出することができる。
ここで、v_x、v_yは、それぞれ上記現ブロック内(x、y)座標のサンプルの動きベクトルのx成分、y成分を示し、v_x0、v_y0は、それぞれ上記CP0の動きベクトルv_0のx成分、y成分を示し、v_x1、v_y1は、それぞれ上記CP1の動きベクトルv_1のx成分、y成分を示し、v_x2、v_y2は、それぞれ上記CP2の動きベクトルv_2のx成分、y成分を示す。前述した数式18のような、上記サンプル単位の動きベクトルを導出する式によって、現ブロック内の各サンプルは、現ブロック内の相対的な位置に基づいて、動きベクトルが導出されることができる。
図30は、本発明の実施形態に係る非正方形ブロックで制御点の動きベクトルに基づいて動き補償を実行する方法を例示する図である。
図30は、Nx2Nに分割されたブロックのCPを例示的に示す。前述したパーティショニングタイプ2Nx2Nの場合と同じ方法を通じて、現ブロック内のサンプル単位の動きベクトルを導出するための数式を導出することができる。上記数式を導出する過程で、上記現ブロックの形に合う幅の値を用いることができる。上記サンプル単位の動きベクトルを導出するために、3つのCPを導出することができ、上記CPの位置を図30のように調整することができる。すなわち、上記現ブロックの幅および高さがそれぞれS/2およびSであり、上記現ブロックの左上端(top-left)のサンプルポジションの座標を(xp、yp)とするとき、上記CPのうちのCP0の座標は(xp、yp)であり、CP1の座標は(xp+S/2、yp)であり、CP2の座標は(xp、yp+S)とすることができる。上記サンプル単位の動きベクトルは、次の数式19に基づいて導出されることができる。
ここで、vx、vyは、それぞれ上記現ブロック内の(x、y)座標のサンプルの動きベクトルのx成分、y成分を示し、v_x0、v_y0は、それぞれ上記CP0の動きベクトルv_0のx成分、y成分を示し、v_x1、v_y1は、それぞれ上記CP1の動きベクトルv_1のx成分、y成分を示し、v_x2、v_y2は、それぞれ上記CP2の動きベクトルv_2のx成分、y成分を示す。数式3は、上記現ブロックの幅がS/2であることを考慮したサンプル単位の動きベクトルを導出する数式を示す。前述した数式19のような、上記サンプル単位の動きベクトルを導出する数式によって、パーティショニングタイプNx2Nに基づいてCUからパーティショニングされた現ブロック内の各サンプルは、現ブロック内の相対位置に基づいて、動きベクトルが導出されることができる。
図31は、本発明の実施形態に係る非正方形ブロックで制御点の動きベクトルに基づいて動き補償を実行する方法を例示する図である。
図31は、パーティショニングのタイプ2NxNに基づいて分割されたブロックを例示的に示す。上記サンプル単位の動きベクトルを導出するために、3つのCPを導出することができ、上記CPの位置を図31のように調整して図31に示された現ブロックの形状に応じて高さをS/2に調整することができる。すなわち、上記現ブロックの幅および高さがそれぞれSおよびS/2であり、上記現ブロックの左上端(top-left)のサンプルポジションの座標を(xp、yp)とするとき、上記CPのうちのCP0の座標は(xp、yp)であり、CP1の座標は(xp+S、yp)であり、CP2の座標は(xp、yp+ S/2)とすることができる。上記サンプル単位の動きベクトルは、次のような数式20に基づいて導出されることができる。
ここで、v_x、v_yは、それぞれ上記現ブロック内の(x、y)座標のサンプルの動きベクトルのx成分、y成分を示し、v_x0、v_y0は、それぞれ上記CP0の動きベクトルv_0のx成分、y成分を示し、v_x1、v_y1は、それぞれ上記CP1の動きベクトルv_1のx成分、y成分を示し、v_x2、v_y2は、それぞれ上記CP2の動きベクトルv_2のx成分、y成分を示す。数式4は、上記現ブロックの高さがS/2であることを考慮したサンプル単位の動きベクトルを導出する数式を示す。前述した式4.18のような、上記サンプル単位の動きベクトルを導出する式によって、パーティショニングのタイプ2NxNに基づいてCUからパーティショニングされた現ブロック内の各サンプルは、現ブロック内の相対位置に基づいて、動きベクトルが導出されることができる。
図32〜図38は、本発明の実施形態に係る非正方形ブロックで制御点の動きベクトルに基づいて動き補償を実行する方法を例示する図である。
図32は、非対称型、現ブロックのCPを例示的に示す。図32で示すように、上記非対称型の現ブロックの幅および高さをそれぞれWおよびHとすることができる。上記サンプル単位の動きベクトルを導出するために、各現ブロックの3つのCPを導出することができ、上記CPの座標は、図32に示すように、現ブロックの形に沿った幅および高さに基づいて調整することができる。すなわち、上記現ブロックの幅および高さがWおよびHであり、各現ブロックの左上端(top-left)のサンプルポジションの座標を(xp、yp)とするとき、上記CPのうちのCP0の座標は(xp、yp)であり、CP1の座標は(xp+W、yp)であり、CP2の座標は(xp、yp+H)に設定されることができる。この場合、上記現ブロック内、上記サンプル単位の動きベクトルは、次の数式21に基づいて導出されることができる。
ここで、v_x、v_yは、それぞれ上記現ブロック内(x、y)座標のサンプルの動きベクトルのx成分、y成分を示し、v_x0、v_y0は、それぞれ上記CP0の動きベクトルv_0のx成分、y成分を示し、v_x1、v_y1は、それぞれ上記CP1の動きベクトルv_1のx成分、y成分を示し、v_x2、v_y2は、それぞれ上記CP2の動きベクトルv_2のx成分、y成分を示す。数式21は、非対称型、現ブロックの幅および高さを考慮したサンプル単位の動きベクトルを導出する数式を示す。
一方、本発明によると、ブロック単位で指示されるCPの動き情報のデータ量を減らすために、現ブロックの周辺ブロックまたは周辺サンプルの動き情報に基づいて少なくとも一つのCPの動き情報予測候補を選定することができる。上記動き情報予測候補は、アフィン動き情報候補またはアフィン動きベクトル候補と呼ばれることができる。上記アフィン動き情報候補は、例えば、図33〜図38に開示された内容を含むことができる。
ATMVP simplification
ATMVP(Advanced Temporal Motion Vector Prediction)は、時間の動き情報候補を利用したインター予測であるが、既存のTMVPを改善するために提案された動き情報候補を用いたインター予測を示すことができる。本明細書の実施形態において、上記ATMVPは、その名称に制限されず、上記ATMVPは、サブブロック時間マージ候補、サブブロックベースの時間マージ候補、サブブロック時間動きベクトル予測子、サブブロックベースの時間の動きベクトル予測子などと呼ばれることができる。
具体的には、時間の動き情報候補として、現ブロックのright−bottomブロックまたは現ブロックのcenter位置のcolPBの動きベクトルを用いるTMVPは、画面内の動きを反映しないことがある。一方、上記ATMVPが適用される場合、周辺ブロックの動きベクトルが示す位置のcolPBの動きベクトルは、ATMVP候補として用いられる。
上記ATMVPが適用される一例として、マージ候補構成順にチェックしながら、一番先にavailableなspatial neighbor blockの動きベクトル(temporal vector)を見つけた後、reference pictureでtemporal vectorが指す位置をcol−PB(ATMVP candidate)として導出することができる。また、Temporal vectorを用いて、各sub−block単位でcorresponding blockの動きベクトルが用いられる。このとき、特定のsub−blockにMVが存在しない場合、corresponding blockのcenterに位置するブロックのMVを、availableでないsub−blockのためのMVとして使用し代表MVとして記憶する。
また、上記ATMVPを使用するが、よりメモリ使用量を削減できるようにする、さまざまなATMVP simplification方式(防案)が提案されることもある。
一実施形態において、参照ブロックを見つけるための参照ピクチャ(スライスセグメントヘッダに指定された)がコロケートピクチャ(collocated picture)で制限されるため、メモリの使用が減少することができる。一例として、最大4つの参照ピクチャが用いられる。参照ブロックを見つけるために、時間ベクトル(temporal vector)は、空間候補のうちの一つからスキャン順序に従って導出されることができる。現在の候補がコロケートピクチャと同じ参照ピクチャを有すると、探索プロセスが終了することができる。
一実施形態において、ATMVPおよび/またはSTMVPサブブロックマージモード(sub-block merge modes)の修正が適用されることができる。
シグナリングは、ピクチャ/スライスレベルで追加されて、様々なサブブロックサイズがATMVP/STMVPベースの動き(motion)情報導出のために用いられる。
2. 1つのコロケートピクチャが用いられるようにすることにより、単純化されたATMVPベースの動き情報導出が用いられる。
一実施形態において、ATMVPおよびSTMVPモードによって導出された動きフィールドの粒度(細分性)(granularity)のピクチャ/スライスレベル適応をサポートすることが提案される。具体的には、シーケンスパラメータセット(sequence parameter set:sps)を指すスライスでATMVPおよびSTMVPの動きパラメータを導出するために用いられるサブブロックサイズのデフォルト値をspsでシグナリングされることができる。付加的に、1つのフラグ(flag)は、スライスのセグメントヘッダからシグナリングされる。このフラグが0であれば、それは、spsで明示されたようなデフォルトのサブブロックサイズが、現在のスライスでATMVP/STMVPベースの動き導出するために用いられることを示す。そうでなければ(つまり、このフラグが1に設定されると)、他の構文要素(syntax element)がスライスセグメントヘッダでシグナリングされ、スライスのために用いられるATMVP/STMVPサブブロックサイズを明示することができる。
一実施形態において、簡単なエンコーダ(encoder)の方法は、現在のピクチャのATMVP/STMVPサブブロックサイズを決定するために用いられる。2つのATMVP/STMVPサブブロックサイズ4および8のうちの1つが、同じ時間レイヤ(temporal layer)で最後にコーディングされたピクチャからATMVP/STMVPブロックの平均サイズに基づいて選択される。先ほどコーディングされたピクチャがk番目の時間レイヤで、i番目のピクチャでありATMVPおよびSTMVPモードによってコーディングされたN個のCUを含むと仮定する。また、このCUのサイズがS_0、S_1、・・・、S_(N−1)と仮定する。ATMVP/STMVP CUの平均サイズは、
として計算される。それで、同じk番目の時間レイヤで(i+1)番目のピクチャをコーディングするときは、該ATMVP・STMVPサブブロックサイズ
は、次の数式22に基づいて決定されることができる。
一実施形態において、各時間レイヤにおける第1ピクチャに対して、ATMVP/STMVPサブブロック7のサイズは、常に4に設定されることができる。
一実施形態において、ATMVPは、次の2つの段階を用いて導出することができる。
周辺CUが用いられ、このCUのMVが既存の候補リストからのMVと異なると、エンコーダ/デコーダは、空間的周辺CUから動きベクトルを前に説明した図12に示すように、A1、B1、B0、and A0の順に追加することができる。用いられる空間的候補の数は、N0で表現されることができる。
(2)N0個の空間候的補からの第1MV候補は、コロケートピクチャおよび各サブブロックの動きをフェッチ(fetch)する位置を(MVによる変位を追加することにより、)決定するために用いられる。N0が0であれば、スライスヘッダでシグナリングされたコロケートピクチャおよびゼロ動き(zero motion)を有する同一の位置が、各サブブロックの動きをフェッチするために用いられる。
ATMVPの互いに異なるCUのコロケート(同一位置)ピクチャは、多数の参照ピクチャが用いられると、常に同じではないことがある。現ピクチャで互いに異なるCUに対して、ATMVP導出の互いに異なるコロケートピクチャを有するということは、多数の参照ピクチャの動きフィールドがフェッチされる必要があることを意味し、これは、メモリ帯域幅の増加により、望ましくない。したがって、一実施形態において、スライスヘッダでシグナリングされたHEVCのようにATMVP導出のコロケートピクチャとして同じであるコロケートピクチャを用いる単純化されたデザインが提案される。ブロックレベルにおいて、周辺ブロックAの参照ピクチャが、このコロケートピクチャと異なると、ブロックAのMVは、HEVC時間的MVスケーリング方法(HEVC temporal MV scaling method)を用いてスケーリングされ、ブロックAのスケーリングされたMVは、ATMVPに用いられる。
コロケートピクチャRcolで動きフィールドをフェッチするために用いられる動きベクトルは、MVcolと表記する。MVスケーリングによる衝撃を最小にするために、MVcolを導出するために用いられる空間的候補リストからのMVは、この回答で、次の方式で選択される。候補MVの参照ピクチャがコロケートピクチャであれば、このMVは、どのようなスケーリング(も)なくてMVcolとして選択されて用いられる。そうでなければ、コロケートピクチャに最も近い参照ピクチャを有するMVがスケーリングを有するMVcolを導出するために選択される。
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つは、使用可能な空間候補から選択され、2番目の候補は、時間候補から選択され得、リストが満たされない場合、ゼロ動きベクトル候補が追加され得る。
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)
図39は、本明細書の実施形態に係るHMVPを記憶する方法を説明するフローチャートである。
図39を参照すると、デコーダは、現在のPU(またはCU)をデコードする(S3901)。
デコーダは、現在のPUが非アフィンモードで符号化されたブロックであることを確認する(S3902)。HMVP候補の使用を容易にするために、現在のPUがアフィンモードで符号化されたブロックである場合、デコーダは、現在のPUの動き情報をテーブルに記憶しない。
現PUが非アフィンモードで符号化されたブロックである場合、デコーダは、現在のPUの動き情報をテーブルに記憶(または更新)する(S3903)。
本明細書の実施形態において、HMVPテーブルは、2つの方法、すなわち、i)非制限的FIFO(unconstrained FIFO)、ii)制限的FIFO(constraint FIFO)の方法で更新することができる。前者において、重複した情報が存在することができるが、プルーニングプロセスは適用されない。これは、全体的なプロセスの複雑度を低減させるのに寄与する。以下で、図を参照して説明する。
図40は、本明細書の実施形態に係る非制限的FIFO方式で動作するHMVPテーブルを説明する図である。
図40を参照すると、テーブルに追加される候補は、テーブルの端(右側)に追加される。一方、FIFO方式に基づいてテーブルから排出される候補は、テーブルの前段(左側、最も古い候補)に位置する。
インデックスL−1(つまり、端)でテーブルが予め定義された最大数の候補で完全に満たされなければ、除去される候補なしで、新しい候補が追加される。一方、テーブルが既に完全に満たされた場合には、つまり、テーブルの最大数を満たしている場合、テーブルで最も古い前端に位置する候補が除去され、新しい候補が追加される。
図41は、本明細書の実施形態に係る制限的FIFO方式で動作するHMVPテーブルを説明する図である。
図41を参照すると、制限的FIFOが用いられる場合、新しい候補を追加することがどのような重複を引き起こす場合も、プルーニングが実行される。実施形態として、重複した動き情報を有する候補がテーブルに存在すると、テーブル内の重複した候補は、除去され、現在の候補の動き情報が追加されることができる。
実施形態1
HMVP候補に対して、多くの場合において、一番最近のヒストリMVが空間候補(または空間近辺候補)の動き情報と重複することができる。したがって、本実施形態においては、HMVP候補をAMVPまたはマージリストに追加するとき、候補の追加手順をHMVP LUTインデックスの順序とは異なるように設定する方法を提案する。
本明細書の実施形態によると、HMVP候補を適応的に調節することにより、候補リストを効率的に構成することができ、これを通じて、2値化(binarization)に用いられるシグナリングビンの数を減らし、符号化効率を高めることができる。
つまり、マージリストまたはAMVPリストに追加されるHMVP候補は、HMVPリスト内のインデックスによって制限されないことがある。一実施形態としては、次の表2は、AMVPまたはマージリストにHMVP候補を追加する順序を変更する方法を例示する。
表2を参照すると、前述したように、一番最近に挿入されたHMVP候補は、空間候補の動き情報と同一である可能性が高いので、これを考慮してHMVP候補の追加順序をHMVPインデックスとは無関係に、予め定義することができる。
また、一実施形態において、リストからn番目の候補から始まるHMVP候補からマージリストまたはAMVPリストに追加することができる。次の表3は、AMVPまたはマージリストに候補を追加する変更された順序を例示する。
表3を参照すると、2番目のインデックスからHMVP候補がマージリストまたはAMVPリストに追加されることができる。
一実施形態において、テーブル(LUT)内におけるHMVP候補の追加手順についての情報は、エンコーダからデコーダにシグナリングすることができる。たとえば、このような順序の情報は、上位レベルの構文(High Level Syntax、HLS)を介して伝送されることができる。上記上位レベルの構文は、例えば、シーケンスパラメータセット(sequence parameter set)、ピクチャパラメータセット(picture parameter set)、スライスヘッダ(slice header)、コーディングツリーユニット(coding tree unit)、コーディングユニット(coding unit)および/または他の適切な構文のデータヘッダであり得る。
下の表4は、本明細書で提案する方法が適用されることができる上位レベルの構文構造を例示する。
表4を参照すると、set_HMVP_order_flagが1であることは、set_HMVP_order_flagがCVSから非IDR(non−IDR)ピクチャ内マイスライスヘッダで存在することを指示する。set_HMVP_order_flagが0であることは、set_HMVP_order_flagがスライスヘッダに存在せず、VCSで適応的HMVPが使用されていないことを指示する。
下の表5は、本明細書で提案する方法が適用されることができるスライスのセグメントヘッダ構文構造を例示する。
表5を参照すると、slice_HMVP_idxは、用いられる候補の順のインデックスを意味する。たとえば、slice_HMVP_idxが0であることは、0、1、2、3などの基本HMVP順序を表現することができる。同様に、1のインデックス値は、3、2、1、0のHMVP順序を表現するために用いられる。
実施形態2
本明細書の実施形態において、HMVP LUTに加え、ロングタームリスト(long term list)を動き予測のために用いる方法を提案する。これにより、維持されるHMVP候補の数を増加させることができる。実施形態として、2−HMVPテーブルを考慮することができ、ここで、一つは、一般HMVP候補を保管し、他の一つは、維持がさらに必要な候補をさらに保管するロングターム(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)することができるからである。
− 上記のプロセスは、繰り返すことができる。
図42は、本明細書の実施形態に係るHMVP LUTおよびロングタームHMVP LUTを例示する図である。
図42を参照すると、2つのLUTがある。一つは、HMVP LUT(または一般的なHMVP LUT、ショートタームHMVP LUT)であり、他の一つは、ロングタームHMVP LUTである。HMVP候補は、マージまたはAMVPリストのすべてに追加されたとき、図42に示すようにHMVP LUTまたはロングタームLUTから追加することができる。
前述したロングタームLUTの使用は、新しい構文エレメントを導入することにより、上位レベルの構文を介して指示することができる。たとえば、構文エレメントは、シーケンスパラメータセット(sequence parameter set)、ピクチャパラメータセット(picture parameter set)、スライスヘッダ(slice header)、コーディングツリーユニット(coding tree unit)、コーディングユニット(coding unit)、および/または他の適切な構文のデータのヘッダに存在することができる。
実施形態3
本明細書の実施形態において、HMVP候補がHMVP LUTに追加されることにおいて、デコードするための柔軟性(flexibility)を考慮する方法を提案する。エンコーダ/デコーダは、PU(またはCU)の1つまたは複数の特性の決定(decision)を考慮することができる。
実施形態として、エンコーダ/デコーダは、HMVP候補をテーブルに追加するにあたり、次のような事項を考慮することができる。エンコーダ/デコーダは、PUのモード(例えば、マージモード、アフィンモード、AMVPモードなど)および/もしくはブロックのサイズと同じ特性を、個別に、または組み合わせて考慮して、候補として追加することができる。一実施形態において、以外の他の特性が考慮されることもある。たとえば、HMVP LUTの更新を考慮するマージタイプ(例えば、空間候補または時間候補)、サブPUかどうかなどが候補選択基準として考慮されることができる。前述した選択基準は、前のヒストリ(または以前のHMVP)との重複を減らすために決定されることができる。たとえば、PUがマージモードで符号化されてマージタイプが空間マージの場合、デコーダは、該PUの動き情報をHMVP LUTにおいて更新しないことがある。
図43は、本明細書の実施形態に係るHMVP LUTを更新する方法の一例を示す図である。
図43を参照すると、エンコーダ/デコーダは、符号化された候補の動き情報を獲得する(S4301)。
エンコーダ/デコーダは、上記候補の動き情報をLUTにおいて更新するかどうかを予め定義された決定基準に基づいて評価する(S4302)。上記決定基準は、上記候補のモード(例えば、マージモード、アフィンモード、AMVPモードなど)、上記候補のブロックサイズおよび/または上記候補のマージタイプのうちの少なくとも一つの特性を含むことができる。
エンコーダ/デコーダは、上記決定基準に基づいてLUTを更新する(S4303)。つまり、上記候補が予め定義された決定基準を満たす場合、エンコーダ/デコーダは、上記候補の動き情報をLUTに追加することができる。
実施形態4
本明細書の実施形態において、HMVP候補をマージリスト(またはAMVPリスト)に追加するための重複性チェックの制限を提案する。重複性チェックの制限は、さまざまないくつかの方法で実現されることができる。
一実施形態において、エンコーダ/デコーダは、マージリストで1番目の特定の個数の候補のプルーニングチェックの数を制限することができる。エンコーダ/デコーダは、マージ(モジョ)リストの1番目の候補から、特定の個数の候補までの候補のプルーニングチェックの数を制限することができる。たとえば、エンコーダ/デコーダは、マージリストの1番目の候補から、特定の個数の候補までの候補のプルーニングプロセスを実行することができ、このとき、プルーニングチェックの対象となるHMVP候補は、予め定義された個数に制限されることができる。
また、一実施形態において、エンコーダ/デコーダは、プルーニングチェックをマージリスト内マージ候補の特定タイプに対して実行することで、プルーニングチェックを制限することができる。たとえば、エンコーダ/デコーダは、HMVP候補を追加するにあたり、マージリストのスペース候補のみプルーニングチェックを実行することができる。あるいは、例えば、エンコーダ/デコーダは、HMVP候補を追加するにあたり、マージリストのスペース候補の一部にのみプルーニングチェックを実行することができる。上記空間候補の一部は、予め定義することができる。例えば、上記予め定義される空間候補の一部は、左側隣接スペース候補および/または上側隣接スペース候補のうちの少なくとも一つであり得る。本明細書の実施形態は、これに限定されるものではなく、他のタイプが組み合わされてプルーニングチェックの対象が制限されることができる。
図44は、本明細書の実施形態に係るプルーニングチェックの対象となるHMVP候補の数を制限する方法を例示する図である。
図44を参照すると、本明細書の一実施形態において、プルーニングチェックの対象となるHMVP候補の数は、M回に制限されることができる。
エンコーダ/デコーダは、HMVP候補を用いて、マージリストを構成することにおいて、HMVP LUT内、1番目のM個の候補と上記マージリストのマージ候補との間の動き情報の重複が可能か否かをチェックすることができる。
あるいは、エンコーダ/デコーダは、現在デコードされたPUの動き情報をHMVP LUTに追加するにあたり、HMVP LUT内、1番目のM個の候補と上記デコードされたPUの動き情報との間の重複が可能か否かをチェックすることができる。
図45は、本明細書の実施形態に係るプルーニングチェックを実行する方法の一例を示す図である。
図45を参照すると、エンコーダ/デコーダは、デコードされた候補の動き情報を獲得し、プルーニングチェックの数を決定(または解読)する(S4501、S4502)。
エンコーダ/デコーダは、決定されたプルーニングチェックの数に基づいてプルーニングチェックを実行する(S4503)。
一実施形態において、先の表4および表5と同様の方法でプルーニングチェックに関連する情報が上位レベルの構文を介してシグナリングされることができる。このとき、エンコーダからデコーダに伝送される構文エレメントは、実施される必要なあるプルーニングチェックの数を指示するためのいずれかのヘッダに含まれることができる。上記上位レベルの構文は、例えば、シーケンスパラメータセット(sequence parameter set)、ピクチャパラメータセット(picture parameter set)、スライスヘッダ(slice header)、コーディングツリーユニット(coding tree unit)、コーディングユニット(coding unit)および/または他の適切な構文のデータヘッダであり得る。
実施形態5
本明細書の実施形態では、HMVP候補を選択する効率的な方法を提案する。ヒストリ動きベクトル候補(つまり、HMVP候補)をマージリスト(またはAMVPリスト)に挿入するとき、HMVP候補が既存のマージリストと重複しないようにするために、プルーニングチェックが実行されることができる。
MサイズのマージリストとNサイズのヒストリLUTとの間で、全体の重複チェックを実行するには、(M−1)xN回のチェックを必要とする。したがって、本明細書の実施形態において、HMVP候補の数は、既存のマージ候補に依存することができる。たとえば、HMVP候補の数は、マージリストに存在する空間候補の数に依存することができる。あるいは、例えば、HMVP候補の数は、マージリストに存在する空間候補および時間候補の数に依存することができる。
マージリストに存在するマージ候補が存在する場合、マージリストのマージ候補の数および/またはHMVPの数に基づいて、特定の基準(またはルール)に基づいてプルーニングチェックを実行するHMVP候補の数が減少することができる。これにより、最悪のケースにおける重複チェックの数が減少することができる。
例えば、サイズ(または長さ)が6であるマージリストの場合、マージリストがいっぱいになっていないと、マージリストは、最大5つのスペースまたは他のマージ候補を含むことができる。6つのHMVPリストからHMVP候補を挿入するには、最悪の場合、30個の重複チェックが必要になることができる。
一実施形態において、チェックするHMVP数の制限に関連する例は、次の数式23および表6の通りである。
表6を参照すると、プルーニングチェックの対象となるHMVPの数を2個に制限することにより、最悪のケースでHMVP追加のための重複チェックの数は、30回の代わりに12回に減少することができる。
実施形態6
本明細書の一実施形態において、ヒストリベースの空間時間動きベクトル予測(History-Based Spatial Temporal Motion Vector Prediction、H−STMVP)を用いてマージリストを構成する方法を提案する。H−STMVPは、2つのヒストリベースのスペースMVPおよびTMVPの平均で導出される候補を示す。上記2つの空間HMVPは、HMVPバッファから獲得することができ、上記TMVPは、現在のマージリストから獲得することができる。ここで、上記空間候補は、現ブロック以前のデコード順で最後の2つのコーディングされたMVから獲得された候補であり得る。
たとえば、最後のコーディングされたMV(本明細書では、MV_Lと称する)、最後から2番目のコーディングされたMV(本明細書では、MV_(L−1)と称する)およびMV_TMVPは、マージリストに挿入されるH−STMVP候補を生成するために用いられる。
前述した3つの候補の全てを用いることができる場合、マージリストに追加されるMVは、以下の数式24によって計算することができる。
一実施形態として、前述した3つの候補のうちの2つだけが利用可能であれば、2つの候補のみ平均化されてH−STMVPが生成されることができる。同様に、一つの候補のみ使用可能すると、上記一つの候補のみ用いられる。使用可能な候補がない場合、H−STMVPは、マージリストの構成に使用されない。
本明細書の一実施形態において、前述した数式24以外に、他の方法を用いて、H−STMVP候補の動きベクトルを獲得する方法を提案する。
例えば、3つ以上の候補を一度に平均化する代わりに、空間候補を先に平均化した後、この結果を用いて2つの候補を再平均化することは、計算的にさらに簡単になることがある。これに関する例は、次の数式と同じである。
あるいは、次のように平均値を獲得することもできる。
エンコーダ/デコーダは、数式25〜27のように、まず、2つの候補を平均し、3つ目の候補を用いて、結果の値を最終的に平均化することができる。あるいは、エンコーダ/デコーダは、数式28のように、2だけシフト演算を適用することにより、候補、すなわちMV_Lに、さらに高い重要度/重みを付与することができる。前述した数式25〜28を用いて、シフト演算だけで除算なく平均値を導出することができる。
実施形態7
本明細書の一実施形態において、H−STMVPを導出することにおいて、2つのヒストリベースの空間候補の代わりに、任意の個数(n)の空間候補を用いる方法を提案する。これらのn個の候補は、必ずしも連続したデコード順序である必要はない。任意または一部のルールに基づいて選択することができる。
したがって、前述した数式24は、次の数式29のように、より一般的な方法で表現することができる。
他の一実施形態において、5つのスペースの候補を用いる場合を仮定すると、時間の候補に適用される重みを向上させることによって、H−STMVP候補を生成するために増加された空間候補の影響を最小にし、スペース候補および時間候補を適切に反映することができる。
したがって、そのためには、次の数式30を用いて空間候補を一緒に平均した後、その結果を用いてMV_TMVPを平均化することにより、前述した目的を達成することができる。
実施形態8
本明細書の実施形態において、H−STMVPを導出するために用いられる動きベクトル候補に重み(または加重因子)を追加する方法を提供する。このとき、上記重みは、経験的に決定されることもあり、固定された参照フレームまでの時間距離を考慮して決定されることもあり、またはヒストリテーブルにおける位置を考慮することにより、決定されることもできる。一例として、新しい候補は、以前の候補さらに多くの重みを有することができる。
すなわち、本実施形態において、前述した数式24は、次の数式31のように表現することができる。
このとき、重みは同じ値を有することができ、不均等に分散された値を有することができる。
実施形態9
本明細書の一実施形態において、H−STMVP候補を導出するために用いられる動きベクトルを、単一参照ピクチャとしてスケーリングする方法を提案する。
図46は、本明細書の一実施形態に従った、互いに異なる参照ピクチャを参照する動きベクトルを用いて、H−STMVP候補を導出する方法を説明する図である。
図46を参照すると、MV_L、MV_L−1およびMV_TMVP候補は、それぞれ互いに異なる参照ピクチャを参照(または指示)する場合を仮定する。すなわち、図46は、H−STMVP候補を生成するために用いられた各候補が他の参照インデックスを有することができ、結果的に他の参照フレームを有することができることを示す。
近接参照フレームがあるフレームが本質的にH−STMVPの動きベクトルにさらに大きな影響を与えることがあるので、前述した数式24ないし31の平均を不均等な結果値で作成することができる。したがって、均等な比較および反映のために、すべての動きベクトルを、単一の参照フレームにスケーリングする方法を提案する。
このとき、エンコーダからRD最適化の一部として実行されてどのような単一のフレームが参照フレームとして用いるのに最適であるかを決定することができる。実施形態として、選択された参照フレームは、スライスヘッダに存在するTMVP配列のインデックスと類似のスライスヘッダでシグナリングされることができる。例えば、固定されたルールを用いて用いられる参照フレームを生成することが可能である。あるいは、例えば、L0からの1番目の利用可能な基準フレームでスケーリングされるか、現ピクチャ順カウントでスケーリングすることができる。
一実施形態において、前述した目的を達成するために、シーケンスパラメータセット、ピクチャパラメータセット、スライスヘッダ、コーディングツリーユニットおよび/または他のデータのヘッダの一部であることができる上位レベルのシンタックス(HLS)を用いて、単一の固定されたピクチャについての情報をエンコーダがデコーダに伝送することができる。たとえば、次の表7および/または表8のような上位レベルの構文構造を定義することができる。
表7を参照すると、set_HSTMVP_ref_pic_flagが1と等しい場合、set_HSTMVP_idxがCVSから非IDRピクチャのスライスヘッダに存在することを示す。set_HSTMVP_ref_pic_flagが0であれば、set_HSTMVP_idxがスライスヘッダに存在しないことを示す。
表8を参照すると、slice_HMVP_idxは、参照インデックスを指定する。一実施形態として、参照インデックスは、リストL0に対し選択されることができる。
実施形態10
本明細書の実施形態において、先に説明した実施形態について、より詳細な実施形態を説明する。具体的には、現ブロックのCPMVを計算(または導出)するための位置およびそ次元情報を用いてアフィンHMVP候補を間接的に用いる方法を提案する。本明細書において、導出されたCPMVは、継承されたアフィンHMVP候補と呼ばれることができる。本明細書の実施形態に係る継承されたアフィンHMVP候補は、前述したアフィンマージリストおよび/またはアフィンAMVPリスト作成プロセスで用いられる。
図47は、本明細書の実施形態に係る継承されたアフィンHMVP候補を導出するためのブロックの位置を例示する図である。
図47を参照すると、アフィンHMVP候補の位置および次元に基づいて、現ブロック4701のCPMVは、一般的な継承されたCPMVを周辺ブロックから導出する方法と類似の方法で導出することができる。つまり、エンコーダ/デコーダは、アフィンHMVP候補である参照ブロック4702の位置および次元(例えば、幅および高さ)情報に基づいて、現ブロック4701の制御点の動きベクトルを導出することができる。
一実施形態として、現ブロックの継承されたアフィンHMVPのCPMVは、次の数式32および33を用いて導出することができる。
数式32および33で、posCurCU_Yは、現ブロック4701の左上端のサンプルの垂直方向の座標値を示し、posRefCU_Yは、参照ブロック4702の左上端のサンプルの垂直方向の座標値を示す。posCurCU_Xは、現ブロック4701の左上端のサンプルの水平方向の座標値を示し、posRefCU_Xは、参照ブロック4702の左上端のサンプルの水平方向の座標値を示す。RefCU_heightは、参照ブロック4702の高さを示し、RefCU_widthは、参照ブロック4702の幅を示す。
実施形態11
本明細書の一実施形態において、アフィンHMVP候補(直接または継承されたHMVP)を追加するとき、アフィンマージまたはアフィンAMVPリスト作成に用いられるアフィンHMVP候補を選択するように制限事項が追加されることがある。
一例として、アフィンHMVP候補は、上記アフィンHMVP候補が、現ブロックに隣接する場合にだけ、アフィンマージまたはアフィンAMVPリストに追加されることができる。
他の一例として、アフィンHMVP候補は、上記アフィンHMVP候補が、現ブロックから特定の距離内に位置(または存在)する場合にだけ、アフィンマージまたはアフィンAMVPリストに追加されることができる。例えば、上記特定の距離は、予め定義されたピクセル距離であり得る。エンコーダ/デコーダは、アフィンHMVP候補が利用可能かどうかを判断するために、上記アフィンHMVP候補が予め定義された特定の距離内に位置するかどうかを判断(または決定)することができる。
他の一例として、アフィンHMVP候補は、現ブロックに基づいて特定位置に位置(または存在)する場合にだけ、アフィンマージまたはアフィンAMVPリストに追加されることができる。例えば、上記の特定の位置に存在する場合は、上記アフィンHMVP候補が、現ブロックの左側または上側隣接ブロックである場合であり得る。
N個のエレメントを有するアフィンHMVP LUTに対し、すべてのエレメントまたは初めてM個の要素の前述した確認プロせスかAMVPリストがいっぱいになるまで、または予め定義された特定のHMVP候補数に到達するまで実行されることができる。
実施形態12
本明細書の実施形態において、アフィンHMVP候補は、アフィンマージリストおよび/またはアフィンAMVPリストから既に存在する、継承されたアフィン候補を代替するのに用いる方法を提案する。
図48は、本明細書の実施形態に係るアフィンマージリストまたはアフィンAMVPリストを例示する図である。
図48を参照すると、エンコーダ/デコーダは、既存のアフィンマージリストまたはアフィンAMVPリストに存在する継承された候補を継承されたアフィンHMVP候補に置き換えることができる。つまり、エンコーダ/デコーダは、現ブロックにサブブロックベースのマージモードが適用される場合、継承されたアフィン候補と構成されたアフィン候補とを用いて、サブブロックベースのマージ候補リストを作成し、継承されたアフィンHMVP候補を導出して上記サブブロックベースのマージ候補リストに含まれる少なくとも一つの継承されたアフィン候補を継承されたアフィンHMVP候補に置き換えることができる。
また、本発明の一実施形態において、アフィンHMVPルックアップテーブル(LUT)は、スライス、CTU行(row)、またはCTUの開始から初期化されることができる。これにより、並列処理実行性を向上させることができる。
以下、後述する実施形態では、HMVPからの最悪のプルーニングチェック(pruning check)の数を減少させるための方法を提案する。
実施形態13
本明細書の実施形態において、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を追加するために必要な最悪の(または最悪の場合の)プルーニングチェック数は、次の表9のように計算することができる。
表9を参照すると、従来の映像圧縮技術によると、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であり得る。
実施形態14
本明細書の実施形態において、前述した最悪のプルーニングチェック数の数を減らすための方法を提案する。マージリストにマージ候補がさらに多く存在する場合、マージ候補(すなわち、非HMVP候補)が増加するにつれてHMVPのコーディングの影響が減少するので、プルーニングチェックするHMVP候補の数が減少される必要があるかもしれない。したがって、本明細書の実施形態において、エンコーダ/デコーダは、最悪のプルーニングチェックを減らすために、チェックされるHMVP候補の数(NHMVPChecked)を追加される利用可能なHMVP候補の数(NmrgToBeAdded)と同じように設定することができる。この場合、最悪のプルーニングチェック数は、次の表10のように計算することができる。
表10を参照すると、従来の映像圧縮技術と比較したとき、HMVPのための最悪のプルーニングチェックの数は、10個から6個に減少することができる。
表10を参照すると、一実施形態において、1)マージリスト内の候補が1つである場合、マージリストに追加されるHMVP候補は、4つであり得る。そして、4つのHMVP候補のプルーニングチェックが実行されることができる。この場合、最悪のプルーニングチェック数は、4であり得る。2)マージリスト内の候補が2つである場合、マージリストに追加されるHMVP候補は、3つであり得る。そして、3つのHMVP候補のプルーニングチェックが実行されることができる。この場合、最悪のプルーニングチェック数は、6であり得る。3)マージリスト内の候補が3つである場合、マージリストに追加されるHMVP候補は、2つであり得る。そして、2つのHMVP候補のプルーニングチェックが実行されることができる。この場合、最悪のプルーニングチェック数は、6であり得る。3)マージリスト内の候補が4つの場合には、マージリストに追加されるHMVP候補は、1であることができる。そして、1つのHMVP候補のプルーニングチェックが実行されることができる。この場合、最悪のプルーニングチェック数は、4であり得る。
実施形態15
本明細書の実施形態において、最悪のプルーニングチェックを減らすために、エンコーダ/デコーダは、プルーニングチェックされるHMVP候補の数(NHMVPChecked)を追加される利用可能なHMVP候補の数(NmrgToBeAdded)とKとの和と同じ値に設定することができる。ここで、Kは、予め定義された定数値を示す。一例として、Kが1である場合には、最悪のプルーニングチェック数は、次の表11のように計算することができる。
表11を参照すると、一実施形態において、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であり得る。
実施形態16
本明細書の実施形態において、最悪の場合、プルーニングチェックを減少させるためには、チェックされるHMVP候補の数(NHMVPChecked)は、次の数式34のように定義されることができる。
数式34において、Cは、予め定義された定数値を示す。Cが2である場合、最悪のプルーニングチェック数は、次の表12のように計算されることができる。
表12を参照すると、一実施形態において、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であり得る。
以上で説明した本明細書の実施形態は、説明の便宜上、それぞれの実施形態を区分して説明したが、本発明は、これに限定されるものではない。つまり、先に説明した実施形態1〜12で説明した実施形態は、それぞれ独立して実行されることもあり、一つまたは複数のいくつかの実施形態が組み合わされて実行されることもある。
図49は、本発明が適用される実施形態に係るインター予測に基づいて、ビデオ信号を処理する方法を例示するフローチャートである。
図49を参照すると、説明の便宜のためにデコーダを中心に説明するが、本発明は、これに限定されるものではなく、本明細書の実施形態に係るインター予測ベースのビデオ信号の処理方法は、エンコーダとデコーダとで同じように実行することができる。
デコーダは、現ブロックに隣接するブロックに基づいてマージリスト(またはマージ候補リスト)を構成する(S4901)。
デコーダは、上記マージリストに含まれるマージ候補の個数が予め定義された第1特定個数より小さい場合、ヒストリベースのマージ候補リスト(またはヒストリベースのマージ候補テーブル)内ヒストリベースのマージ候補を上記マージリストに追加する(S4902)。ここで、上記ヒストリベースのマージ候補は、上記現ブロック以前に符号化されたブロックの動き情報を示す。
デコーダは、上記マージリスト内で、上記現ブロックのインター予測に用いられるマージ候補を指示するマージインデックスを獲得する(S4903)。
デコーダは、上記マージインデックスによって指示されるマージ候補の動き情報に基づいて上記現ブロックの予測ブロックを生成する(S4904)。
前述したように、実施形態として、上記ヒストリベースのマージ候補を上記マージリストに追加するステップは、上記ヒストリベースマージ候補リスト内の予め定義された第2特定個数のヒストリベースのマージ候補に対し、上記マージリストに含まれるマージ候補と重複する動き情報を有するかを確認するステップを含むことができる。
前述したように、実施形態として、上記第2特定個数のヒストリベースのマージ候補は、上記マージリストに含まれるマージ候補の中から、予め定義されたマージ候補と重複しない動き情報を有する場合、上記マージリストに追加されることができる。
前述したように、実施形態として、上記第2特定個数のヒストリベースのマージ候補は、上記マージリストに含まれるマージ候補の内から、予め定義された第3特定個数のマージ候補と重複しない動き情報を有する場合、上記マージリストに追加されることができる。
前述したように、実施形態として、上記第2特定個数のヒストリベースのマージ候補は、上記マージリストに含まれる特定の空間マージ候補と重複しない動き情報を有する場合、上記マージリストに追加されることができる。
前述したように、実施形態として、上記第1特定個数は、最大マージ候補から1を減算した値として定義することができる。
前述したように、実施形態として、上記ヒストリベースのマージ候補を上記マージリストに追加するステップは、上記マージリストに含まれる現在のマージ候補が3つである場合、2つのヒストリベースのマージ候補に対し、上記マージリストに含まれるマージ候補と重複する動き情報を有するかを確認するステップを含むことができる。
図50は、本明細書の実施形態に係る映像信号を処理するための装置のブロック図の例を示す。図50の映像信号処理装置は、図1のエンコード装置100または図2のデコード装置200に該当することができる。
映像信号を処理する映像処理装置5000は、映像信号を記憶するメモリ5020と、上記メモリと結合されながら、映像信号を処理するプロセッサ5010と、を含む。
本明細書の実施形態に係るプロセッサ5010は、映像信号の処理のための少なくとも一つの処理(プロセッシング)回路で構成されることができ、映像信号をエンコードまたはデコードするためのコマンドを実行することにより、映像信号を処理することができる。つまり、プロセッサ5010は、前述したエンコードまたはデコード方法を実行することにより、元の映像データをエンコードしたり、エンコードされた映像信号をデコードすることができる。
図51は、本発明が適用されるビデオコーディングシステムを示す。
ビデオコーディングシステムは、ソースデバイス(source device)と受信デバイス(receiving device)とを含むことができる。ソースデバイスは、エンコードされたビデオ/映像情報またはデータを、ファイルまたはストリーミング形態でデジタル記憶媒体またはネットワークを介して受信デバイスに伝達することができる。
上記ソースデバイスは、ビデオソース(video source)、エンコード装置(encoding apparatus)、伝送部(transmitter)を含むことができる。上記受信デバイスは、受信部(receiver)、デコード装置(decoding apparatus)およびレンダラ(renderer)を含むことができる。上記エンコード装置は、ビデオ/映像エンコード装置と呼ばれることができ、上記デコード装置は、ビデオ/映像デコード装置と呼ばれることができる。送信器は、エンコード装置に含まれることができる。受信器は、デコード装置に含まれることができる。レンダラは、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイスまたは外部のコンポーネントで構成されることもある。
ビデオソースは、ビデオ/映像のキャプチャ、合成または生成過程などを通じてビデオ/映像を獲得することができる。ビデオソースは、ビデオ/映像キャプチャデバイスおよび/またはビデオ/映像生成デバイスを含むことができる。ビデオ/映像キャプチャデバイスは、例えば、1つまたは複数のカメラ、以前にキャプチャされたビデオ/映像を含むビデオ/映像アーカイブなどを含むことができる。ビデオ/映像生成デバイスは、例えばコンピュータ、タブレットおよびスマートフォンなどを含むことができ、(電子的に)ビデオ/映像を生成することができる。たとえば、コンピュータなどを通じて、仮想のビデオ/映像が生成されることができ、この場合、関連するデータが生成される過程で、ビデオ/映像キャプチャプロセスに代えることができる。
エンコード装置は、入力ビデオ/映像をエンコードすることができる。エンコード装置は、圧縮およびコーディング効率のために予測、変換、量子化などの一連の手順を実行することができる。エンコードされたデータ(エンコードされたビデオ/映像情報)は、ビットストリーム(bitstream)の形で出力されることができる。
伝送部は、ビットストリームの形態で出力されたエンコードされたビデオ/映像情報またはデータを、ファイルまたはストリーミング形態でデジタル記憶媒体またはネットワークを介して受信デバイスの受信部に伝達することができる。デジタル記憶媒体は、USB、SD、CD、DVD、Blu−ray、HDD、SSDなど、様々な記憶媒体を含むことができる。伝送部は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介して伝送するためのエレメントを含むことができる。受信部は、上記ビットストリームを抽出してデコード装置に伝達することができる。
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測などの一連の手順を実行して、ビデオ/映像をデコードすることができる。
レンダラは、デコードされたビデオ/映像をレンダリングすることができる。レンダリングされたビデオ/映像は、ディスプレイ部を介して表示されることができる。
図52は、本発明が適用される実施形態として、コンテンツストリーミングシステム構造図を示す。
図52を参照すると、本発明が適用されるコンテンツストリーミングシステムは、概して、エンコードサーバ、ストリーミングサーバ、Webサーバ、メディアストレージ、ユーザデバイスおよびマルチメディア入力装置を含むことができる。
上記エンコードサーバは、スマートフォン、カメラ、ビデオカメラなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを上記ストリーミングサーバに伝送する役割を担う。他の例として、スマートフォン、カメラ、ビデオカメラなどのマルチメディア入力装置がビットストリームを直接生成する場合、上記エンコードサーバは省略することができる。
上記ビットストリームは、本発明が適用されるエンコード方法またはビットストリームの生成方法によって生成されることができ、上記ストリーミングサーバは、上記ビットストリームを伝送または受信する過程で一時的に上記ビットストリームを記憶することができる。
上記ストリーミングサーバは、Webサーバを介して、ユーザの要求に基づいて、マルチメディアデータをユーザ装置に伝送し、上記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体の役割を担う。ユーザが上記Webサーバに所望するサービスを要求(要請)すると、上記Webサーバは、これをストリーミングサーバに伝達し、上記ストリーミングサーバは、ユーザに、マルチメディアデータを伝送する。この際、上記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、上記制御サーバは、上記コンテンツストリーミングシステム内の各デバイス間のコマンド/応答を制御する役割を担う。
上記ストリーミングサーバは、メディアストレージおよび/またはエンコードサーバからコンテンツを受信することができる。例えば、上記エンコードサーバからコンテンツを受信することになる場合、上記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、上記ストリーミングサーバは、上記ビットストリームを一定時間の間記憶することができる。
上記ユーザ装置の例としては、携帯電話、スマートフォン(smartphone)、ノートパソコン(laptop computer)、デジタル放送用端末機、PDA(Personal Digital Assistants)、PMP(Portable Multimedia Player)、ナビゲーション、スレートPC(slate PC)、タブレットPC(tablet PC)、ウルトラブック(Ultrabook)、ウェアラブルデバイス(wearable device、例えば、スマートウォッチ(ウォッチ型端末)(smartwatch)、グラス型端末(smart glass)、HMD(Head Mounted Display))、デジタルTV、デスクトップコンピュータ、デジタルサイネージなどが有り得る。
上記コンテンツストリーミングシステム内の各サーバは、分散サーバで運用されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
上記記述されたように、本発明で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で実現され実行されることができる。例えば、各図面で示した機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で実現され実行されることができる。
また、本発明が適用されるデコーダおよびエンコーダは、マルチメディア放送の送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイムの通信装置、モバイルストリーミング装置、記憶媒体、カムコーダ、オーダメイドビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、および医療用ビデオ装置などに含まれ得、ビデオ信号またはデータ信号を処理するために使用され得る。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)などを含み得る。
また、本発明が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取ることができる記録媒体に記憶され得る。本発明によるデータ構造を有するマルチメディアデータもまた、コンピュータが読み取ることができる記録媒体に記憶され得る。上記コンピュータが読み取ることができる記録媒体は、コンピュータによって読み取られるデータが記憶される全ての種類の記憶装置および分散記憶装置を含む。上記コンピュータが読み取ることができる記録媒体は、例えば、ブルーレイディスク(BD)、ユニバーサルシリアルバス(汎用直列バス)(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD−ROM、磁気テープ、フロッピ(登録商標)ディスク、および光学データ記憶装置を含み得る。また、上記コンピュータが読み取ることができる記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で実現された媒体(メディア)を含む。また、エンコード方法で生成されたビットストリームが、コンピュータが読み取ることができる記録媒体に記憶されるか、有無線通信ネットワークを介して送信され得る。
また、本発明の実施例は、プログラムコードによるコンピュータプログラム製品で実現されることができ、上記プログラムコードは、本発明の実施例によってコンピュータで実行されることができる。上記プログラムコードは、コンピュータによって読み取り可能なキャリア上に記憶されることができる。
本明細書が適用されるデコード装置およびエンコード装置は、デジタル機器(digital de-vice)に含まれ得る。「デジタル機器(digital device)」とは、例えば、データ、コンテンツ、サービスなどの送信、受信、処理および出力の少なくとも1つを実行可能な全てのデジタル機器を含む。ここで、デジタル機器がデータ、コンテンツ、サービスなどを処理することは、データ、コンテンツ、サービスなどをエンコーディングおよび/またはデコードする動作を含む。このようなデジタル機器は、有/無線ネットワーク(wire/wireless network)を介して、他のデジタル機器、外部サーバ(external server)などとペアリングまたは接続(連結)(pairing or connecting)(以下「ペアリング」)されてデータを送受信し、必要に応じて変換(converting)する。
デジタル機器は、例えば、ネットワークTV(network TV)、HBBTV(Hybrid Broadcast Broadband TV)、スマートTV(Smart TV)、IPTV(Internet Protocol Television)、PC(Personal Computer)などの固定型機器(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)が含まれるウェブページも含まれるが、本明細書では、動画をウェブページから別途で、または独立して分離して処理する。また、上記分離される動画は、前述した任意のチャネル番号が割り当てられ、サービスガイドなどを介して提供され、ユーザがサービスガイドや放送チャネルの視聴過程でチャネル切換を要求することによって出力されるように実現されることができる。その他に、ウェブサービス以外にも、放送コンテンツ、ゲーム、アプリケーションなどのサービスに対しても、所定のコンテンツ、イメージ、オーディオ、項目などを上記放送コンテンツ、ゲーム、アプリケーション自体から独立して分離処理し、その再生、処理などのために任意のチャネル番号を割り当て、前述したように実現できる。
図53は、デジタル機器を含むサービスシステム(service system)の一例を概略的に示した図である。
デジタル機器を含むサービスシステムは、コンテンツプロバイダ(提供者)(Content Provider;CP)5310、サービスプロバイダ(Service Provider;SP)5320、ネットワークプロバイダ(Network Provider;NP)5330およびHNED(Home Network End User)(Customer)5340を含む。ここで、HNED5340は、例えば、クライアント5300、つまり、デジタル機器である。コンテンツプロバイダ5310は、各種コンテンツを制作して提供する。このようなコンテンツプロバイダ5310で、図53に示されたように、地上波放送業者(送出者)(terrestrial broadcaster)、ケーブル放送事業者(cable SO(System Operator))またはMSO(Multiple SO)、衛星放送業者(satellite broadcaster)、さまざまなインターネット放送業者(Internet broadcaster)、個人コンテンツプロバイダ(Private CPs)などを例示することができる。一方、コンテンツプロバイダ5310は、放送コンテンツのほかにも、様々なアプリケーションを提供する。
サービスプロバイダ5320は、コンテンツプロバイダ5310が提供するコンテンツをサービスパッケージ化しHNED5340に提供する。例えば、図53のサービスプロバイダ5320は、第1地上波放送、第2地上波放送、ケーブルMSO、衛星放送、様々なインターネット放送、アプリケーションなどをパッケージ化してHNED5340に提供する。
サービスプロバイダ5320は、ユニキャスト(uni-cast)またはマルチキャスト(multi-cast)方式でクライアント300にサービスを提供する。一方、サービスプロバイダ5320は、データを予め登録された多数のクライアント5300にまとめて伝送することができ、そのためにIGMP(Internet Group Management Protocol)プロトコルなどを用いることができる。
前述したコンテンツプロバイダ5310とサービスプロバイダ5320とは、同じオブジェクト(same or single entity)であり得る。例えば、コンテンツプロバイダ5310が制作したコンテンツをサービスパッケージ化してHNED5340に提供することにより、サービスプロバイダ5320の機能も一緒に実行したり、その逆であることもある。
ネットワークプロバイダ5330は、コンテンツプロバイダ5310および/またはサービスプロバイダ5320とクライアント5300との間のデータ交換のためのネットワーク網を提供する。
クライアント5300は、ホームネットワークを構築してデータを送受信することができる。
一方、サービスシステム内のコンテンツプロバイダ5310および/またはサービスプロバイダ5320は、伝送されるコンテンツの保護のために条件付きアクセス(制限受信)(conditional access)またはコンテンツ保護(content protection)の手段を用いることができる。この場合、クライアント300は、上記条件付きアクセスやコンテンツ保護に対応して、ケーブルカード(Cable CARD)(POD:Point of Deployment)、DCAS(Downloadable CAS)などの処理手段を用いることができる。
その他、クライアント5300も、ネットワーク網(または通信網)を介して、両方向サービスを用いることができる。このような場合、むしろクライアント5300が、コンテンツプロバイダの機能を実行することもでき、既存のサービスプロバイダ5320は、これを受信して再び別のクライアントに伝送することもある。
図54は、デジタル機器の一実施形態を説明するため示した構成のブロック図である。ここで、図54は、例えば、図53のクライアント5300に該当することができ、前述したデジタル機器を意味する。
デジタル機器5400は、ネットワークインターフェース部(network interface)5401、TCP/IPマネージャ(TCP/IP manager)5402、サービス配送(伝達)マネージャ(service delivery manager)5403、SIデコーダ5404、逆多重化部(demux)5405、オーディオデコーダ(audio decoder)5406、ビデオデコーダ(video decoder)5407、ディスプレイ部(display A/V and OSD module)5408、サービス制御マネージャ(service control manager)5409、サービスディスカバリマネージャ(service discovery manager)5410、SI&メタデータデータベース(SI&Metadata DB)5411メタデータマネージャ(metadata manager)5412、サービスマネージャ5413、UIマネージャ5414などから構成される。
ネットワークインターフェース部5401は、ネットワーク網を介してIPパケット(Internet Protocol (IP) packets)を受信したり、伝送する。つまり、ネットワークインターフェース部5401は、ネットワーク網を介してサービスプロバイダ5320からサービス、コンテンツ、などを受信する。
TCP/IPマネージャ5402は、デジタル機器5400で受信されるIPパケットとデジタル機器5400が伝送するIPパケットとに対して、すなわち、ソース(送信元)(source)と宛先(送信先)(目的地)(destination)との間のパケット伝達に関与する。そして、TCP/IPのマネージャ5402は、受信したパケットを適切なプロトコルに対応するように分類し、サービス配送マネージャ5405、サービスディスカバリマネージャ5410、サービス制御マネージャ5409、メタデータマネージャ5412などに分類されたパケットを出力する。サービス配送マネージャ5403は、受信されるサービスデータの制御を担当する。たとえば、サービス配送マネージャ5403は、リアルタイムストリーミング(real-time streaming)データを制御する場合には、RTP/RTCPを用いることができる。上記リアルタイムストリーミングデータをRTPを用いて伝送する場合、サービス配送マネージャ5403は、上記受信したデータパケットをRTPに基づいてパージング(parsing、解析)し、逆多重化部5405に伝送したり、サービスマネージャ5413の制御に基づいてSI&メタデータデータベース5411に記憶する。そして、サービス配送マネージャ5403は、RTCPを用いて上記ネットワークの受信情報をサービスを提供するサーバ側にフィードバック(feedback)する。逆多重化部5405は、受信したパケットを、オーディオ、ビデオ、SI(System Information)データなどで逆多重化して、それぞれのオーディオ/ビデオデコーダ(5406/5407)、SIデコーダ5404に伝送する。
SIデコーダ5404は、例えば、PSI(Program Specific Information)、PSIP(Program And System Information Protocol)、DVB−SI(Digital Video Broadcasting-Service Information)などのサービス情報をデコードする。
また、SIデコーダ5404は、デコードされたサービス情報を、例えば、SI&メタデータデータベース5411に記憶する。このように記憶されたサービスの情報は、例えば、ユーザの要求などにより、該構成によって読み出しされ、用いられる。
オーディオ/ビデオデコーダ(5406/5407)は、逆多重化部5405で逆多重化された各オーディオデータおよびビデオデータをデコードする。このようにデコードされたオーディオデータおよびビデオデータは、ディスプレイ部5408を介してユーザに提供される。
アプリケーションマネージャは、例えば、UIマネージャ5414およびサービスマネージャ5413から構成されることができる。アプリケーションマネージャは、デジタル機器5400の全般的な状態を管理し、ユーザインターフェースを提供し、他のマネージャを管理することができる。
UIマネージャ5414は、ユーザのためのGUI(Graphic User Interface)をOSD(On Screen Display)などを用いて提供し、ユーザからのキーの入力を受け上記入力による機器の動作を実行する。たとえば、UIマネージャ5414は、ユーザからのチャンネル選択に関するキーの入力を受け取ると、上記キー入力信号をサービスマネージャ5413に伝送する。
サービスマネージャ5413は、サービス配送マネージャ5403、サービスディスカバリマネージャ5410、サービス制御マネージャ5409、メタデータマネージャ5412などのサービスに関連するマネージャを制御する。
また、サービスマネージャ5413は、チャンネルマップ(channel map)を作成し、UIマネージャ5414から受信したキー入力に応じて上記チャンネルマップを用いて、チャンネルを選択する。そして、サービスマネージャ5413は、SIデコーダ5404からのチャネルのサービス情報の伝送を受け、選択されたチャンネルのオーディオ/ビデオ(PID;Packet IDentifier)を逆多重化部5405に設定する。このように設定されるPIDは、前述した逆多重化過程で用いられる。したがって、逆多重化部5405は、上記のPIDを用いて、オーディオデータ、ビデオ、データ、およびSIデータをフィルタリング(filtering)する。
サービスディスカバリマネージャ5410は、サービスを提供するサービスプロバイダを選択するために必要な情報を提供する。サービスマネージャ5413からチャンネル選択の信号を受信すると、サービスディスカバリマネージャ5410は、上記情報を用いて、サービスを探す。
サービス制御マネージャ5409は、サービスの選択および制御を担当する。たとえば、サービス制御マネージャ5409は、ユーザが既存の放送方式のような生放送(live broadcasting)サービスを選択する場合、IGMPまたはRTSPなどを用いて、VOD(Video On Demand)などのサービスを選択する場合には、RTSPを用いてサービスの選択、制御を行う。上記RTSPプロトコルは、リアルタイムストリーミングのトリックモード(trick mode)を提供することができる。また、サービス制御マネージャ5409は、IMS(IP Multimedia Subsystem)、SIP(Session Initiation Protocol)を用いて、IMSゲートウェイ5450を通じるセッションを初期化して管理することができる。プロトコルは、一実施形態であり、実現例によって、他のプロトコルを用いることもできる。
メタデータマネージャ5412は、サービスに関連するメタデータを管理して、上記メタデータをSI&メタデータデータベース5411に記憶する。
SI&メタデータデータベース5411は、SIデコーダ5404がデコードしたサービス情報、メタデータマネージャ5412が管理するメタデータおよびサービスディスカバリマネージャ5410が提供するサービスプロバイダを選択するために必要な情報を記憶する。また、SI&メタデータデータベース5411は、システムのセットアップデータなどを記憶することができる。
SI&メタデータデータベース5411は、非揮発性メモリ(Non-Volatile RAM、NVRAM)、またはフラッシュメモリ(flash memory)などを用いて実現されることもできる。
一方、IMSゲートウェイ5450は、IMSベースのIPTVサービスにアクセスするために必要な機能を集めたゲートウェイである。
図55は、デジタル機器の他の実施形態を説明するため示した構成のブロック図である。特に、図55は、デジタル機器の他の実施形態として、モバイル機器の構成ブロック図を例示したものである。
図55を参照すると、モバイル機器5500は、無線通信部5510、A/V(Audio/Video)入力部5520、ユーザ入力部5530、センシング部5540、出力部5550、メモリ5560は、インターフェース部5570、制御部5580および電源供給部5590などを含むことができる。図55に示された構成要素が必須のものではないから、それより多くの構成要素を有したり、それより少ない構成要素を有するモバイル機器が実現されることもある。
無線通信部5510は、モバイル機器5500と無線通信システムとの間、またはモバイル機器とモバイル機器が位置するネットワークとの間の無線通信を可能にする一つまたは複数のモジュールを含むことができる。例えば、無線通信部5510は、放送受信モジュール5511、移動通信モジュール5512、無線インターネットモジュール5513、近距離通信モジュール5514および位置情報モジュール5515などを含むことができる。
放送受信モジュール5511は、放送チャンネルを介して外部の放送管理サーバから放送信号および/または放送関連情報を受信する。ここで、放送チャンネルは、衛星チャンネル、地上波チャンネルを含むことができる。放送管理サーバは、放送信号、および/もしくは放送関連情報を生成して送信するサーバ、または既に生成された放送信号および/もしくは放送関連情報の提供を受け端末に送信するサーバを意味することができる。放送信号は、TV放送信号、ラジオ放送信号、データ放送信号を含むだけでなく、TV放送信号またはラジオ放送信号にデータ放送信号が結合した形態の放送信号も含むことができる。
放送関連情報は、放送チャンネル、放送番組または放送サービスプロバイダに関連する情報を意味することができる。放送関連情報は、移動通信網を介しても提供されることができる。このような場合には、移動通信モジュール5512によって受信されることができる。
放送関連情報は、様々な形態、例えば、EPG(Electronic Program Guide)またはESG(Electronic Service Guide)などの形態で存在することができる。
放送受信モジュール5511は、例えば、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は、前述したデジタル放送システムだけでなく、他の放送システムに適合するように構成することもできる。
放送受信モジュール5511を介して受信した放送信号および/または放送関連情報は、メモリ5560に記憶されることができる。
移動通信モジュール5512は、移動通信網上で、基地局、外部端末、サーバのうちの少なくとも一つと無線信号を送受信する。無線信号は、音声信号、画像通話信号または文字/マルチメディアメッセージ送受信による多様な形態のデータを含むことができる。
無線インターネットモジュール5513は、無線インターネット接続のためのモジュールを含み、モバイル機器5500に内蔵されたり、外蔵されることができる。無線インターネット技術では、WLAN(Wireless LAN)(Wi−Fi)、Wibro(Wireless broadband)、Wimax(World interoperability for microwave access)、HSDPA(High Speed Downlink Packet Access)などが用いられる。
近距離通信モジュール5514は、近距離通信のためのモジュールをいう。近距離通信(short range communication)技術で、Bluetooth(登録商標)、RFID(Radio Frequency IDentification)、赤外線通信(IrDA、Infrared Data Association)、UWB(Ultra WideBand)、ZigBee、RS−232、RS−485などが用いられる。
位置情報モジュール5515は、モバイル機器5500の位置情報の獲得のためのモジュールとして、GPS(Global Position System)モジュールを例にすることができる。
A/V入力部5520は、オーディオ、および/またはビデオ信号入力のためのもので、これには、カメラ5521およびマイク5522などが含まれることができる。カメラ5521は、画像通話モードまたは撮影モードでイメージセンサにより得られる静止画または動画などの画像フレームを処理する。処理された画像フレームは、ディスプレイ部5551に表示されることができる。
カメラ5521で処理された画像フレームは、メモリ5560に記憶されるか、無線通信部5510を介して外部に伝送されることができる。カメラ5521は、使用環境に応じて、2つ以上が備えられることもある。
マイク5522は、通話(通貨)モードまたは録音モード、音声認識モードなどでマイクロホン(microphone)により、外部の音響信号の入力を受け、電気的な音声データに処理する。処理された音声データは、通話モードである場合、移動通信モジュール5512を介して移動通信基地局に伝送可能な形態に変換されて出力されることができる。マイク5522には、外部の音響信号の入力を受ける過程で発生するノイズ(noise)を除去するための様々なノイズ除去アルゴリズムが実現されることができる。
ユーザ入力部5530は、ユーザが端末の動作を制御するための入力データを発生させる。ユーザ入力部5530は、キーパッド(key pad)、ドームスイッチ(dome switch)、タッチパッド(静圧/静電)、ジョグホイール(jog wheel)、ジョグスイッチ(jog switch)などで構成されることができる。
センシング部5540は、モバイル機器5500の開閉状態、モバイル機器5500の位置、ユーザの接触の有無、モバイル機器の防衛、モバイル機器の加速/減速などのように、モバイル機器5500の現在の状態を感知して、モバイル機器5500の動作の制御のためのセンシング信号を発生させる。例えば、モバイル機器5500が移動したり、傾いた場合、モバイル機器の位置ないし傾きなどをセンシングすることができる。また、電源供給部5590の電源供給が可能か否か、インターフェース部5570の外部機器に結合しているかどうかなどもセンシングすることもできる。一方、センシング部5540は、NFC(Near Field Communication)を含む近接センサ5541を含むことができる。
出力部5550は、視覚、聴覚、または触覚などに関する出力を発生させるためのもので、ディスプレイ部5551、音響出力モジュール5552、アラーム部5553、およびハプティックモジュール5554などが含まれることができる。
ディスプレイ部5551は、モバイル機器5500で処理される情報を表示(出力)する。例えば、モバイル機器が通話モードの場合、通話に関連するUI(User Interface)またはGUI(Graphic User Interface)を表示する。モバイル機器5500がビデオ通話モードまたは撮影モードである場合には、撮影および/または受信した映像またはUI、GUIを表示する。
ディスプレイ部5551は、液晶ディスプレイ(Liquid Crystal Display、LCD)、薄膜トランジスタ液晶ディスプレイ(Thin Film Transistor-Liquid Crystal Display、TFT LCD)、有機発光ダイオード(Organic Light-Emitting Diode、OLED)、フレキシブルディスプレイ(flexible display)、3次元ディスプレイ(3D display)のうちの少なくとも一つを含むことができる。
これらのうちの一部のディスプレイは、それを通して外部を見ることができるよう、透明型または光透過型で構成されることができる。これは、透明ディスプレイと称されることができるが、上記透明ディスプレイの代表的な例としては、TOLED(Transparent OLED)などがある。ディスプレイ部5551の後方構造もまた光透過型構造で構成されることができる。このような構造によって、ユーザは、端末本体のディスプレイ部5551が占める領域を介して端末本体(body)の後方に位置するものを見ることができる。
モバイル機器5500の実現形態に応じて、ディスプレイ部5551が、2つ以上存在することができる。例えば、モバイル機器5500には、複数のディスプレイ部が一つの面に離隔されたり一体に配置されることができ、また、互いに別の面にそれぞれ配置されることもある。
ディスプレイ部5551とタッチ動作を感知するセンサ(以下、「タッチセンサ」と称する)とが、相互の層構造をなす場合(以下、「タッチスクリーン」と称する。)に、ディスプレイ部5551は、出力デバイス以外に、入力装置としても用いられる。タッチセンサは、例えば、タッチフィルム、タッチシート、タッチパッドなどの形態を有することができる。
タッチセンサは、ディスプレイ部5551の特定の部位に加えられた圧力またはディスプレイ部5551の特定の部位に発生する静電容量などの変化を電気的な入力信号に変換するように構成されることができる。タッチセンサは、タッチされた位置および面積だけではなく、タッチ時の圧力までも検出することができるように構成されることができる。
タッチセンサのタッチ入力がある場合、それに対応する信号は、タッチコントローラに送られる。タッチコントローラは、その信号を処理したあと、対応するデータを制御部5580に伝送する。これにより、制御部5580は、ディスプレイ部5551のいずれかの領域がタッチされたかどうかなどを知ることができるようになる。
タッチスクリーンによって包み込まれるモバイル機器の内部領域または上記タッチスクリーンの近くに、近接センサ5541が配置されることができる。上記近接センサは、所定の検出面に接近する物体、あるいは近傍に存在する物体の有無を電磁界の力または赤外線を用いて、機械的な接触がなく、検出するセンサをいう。近接センサは、接触式のセンサより、その寿命が長く、その活用度もまた高い。
近接センサの例としては、透過型光電センサ、直接反射型光電センサ、ミラー反射型光電センサ、高周波発振型近接センサ、静電容量型近接センサ、磁気型近接センサ、赤外線近接センサなどがある。上記タッチスクリーンが帯電(停電)式の場合には、上記ポインタの近接による電界の変化でポインタの近接を検出するように構成される。この場合、タッチスクリーン(タッチセンサ)は、近接センサに分類されることもできる。
以下においては、説明の便宜のために、タッチスクリーン上にポインタが接触しないながら近接して、ポインタがタッチスクリーン上に位置するのが認識されるようにする行為を「近接タッチ(proximity touch)」と称し、上記タッチスクリーン上にポインタが実際に接触する行為を「接触タッチ(contact touch)」と称する。タッチスクリーン上でポインタで近接タッチされる位置とは、ポインタが近接タッチされるとき、ポインタがタッチスクリーンに対して垂直に対応する位置を意味する。
近接センサは、近接タッチと、近接タッチパターン(例えば、近接タッチ距離、近接タッチ方向、近接タッチ速度、近接タッチ時間、近接タッチ位置、近接タッチ移動状態など)と、を感知する。感知された近接タッチ動作および近接タッチパターンに相応する情報は、タッチスクリーン上に出力されることができる。
音響出力モジュール5552は、(号)信号の受信、通話モードまたは録音モードでは、音声認識モード、放送受信モードなどで、無線通信部5510から受信したり、メモリ5560に記憶されたオーディオデータを出力することができる。音響出力モジュール5552は、モバイル機器5500で実行される機能(例えば、信号受信音、メッセージ受信音など)に関連する音響信号を出力したりする。このような音響出力モジュール5552には、レシーバ(receiver)、スピーカ(speaker)、ブザー(buzzer)などが含まれることができる。
アラーム部5553は、モバイル機器5500のイベントの発生を知らせるための信号を出力する。モバイル機器で発生するイベントの例としては、信号の受信、メッセージの受信、キー信号入力、タッチ入力などがある。アラーム部5553は、ビデオ信号やオーディオ信号以外に、他の形態、例えば、振動でイベントの発生を知らせるための信号を出力することもできる。
ビデオ信号やオーディオ信号は、ディスプレイ部5551や音声出力モジュール5552からも出力されることができ、ディスプレイ部および音声出力モジュール(5551,5552)は、アラーム部5553の一部として分類されることもできる。
ハプティックモジュール(haptic module)5554は、ユーザが感じることができる、様々な触覚効果を発生させる。ハプティックモジュール5554が発生させる触覚効果の代表的な例としては、振動がある。ハプティック(ヘプテク)モジュール5554が発生させる振動の強さおよびパターンなどは、制御可能である。例えば、互いに異なる振動を合成して出力したり、順次出力することもできる。
ハプティックモジュール5554は、振動の他にも、接触皮膚面に対して垂直運動するピン配列、噴射口や吸込口を通じた空気の噴射力や吸引力、皮膚表面の擦れ、電極(electrode)の接触、静電気力などの刺激にによる効果と、吸熱や発熱可能な素子を用いた冷温感再現による効果と、などの様々な触覚効果を発生させることができる。
ハプティックモジュール5554は、直接接触を介して触覚効果の伝達だけでなく、ユーザが指や腕などの筋感覚を介して触覚効果を感じることができるように実現することもできる。ハプティックモジュール5554は、モバイル機器5500の構成態様に応じて、2つ以上が備えられることができる。
メモリ5560は、制御部5580の動作のためのプログラムを記憶することができ、入力/出力されるデータ(例えば、電話帳、メッセージ、静止画、動画など)を一時的に記憶することもできる。メモリ5560は、上記タッチスクリーン上のタッチ入力時に出力される様々なパターンの振動および音響に関するデータを記憶することができる。
メモリ5560は、フラッシュメモリタイプ(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)、磁気メモリ、磁気ディスク、光ディスクのうちの少なくとも一つのタイプのストレージ媒体を含むことができる。モバイル機器5500は、インターネット(internet)上でメモリ5560の記憶機能を実行するウェブストレージ(web storage)と関連して動作することもできる。
インターフェース部5570は、モバイル機器5500に接続されるすべての外部機器との通信路(通路)の役割を担う。インターフェース部5570は、外部機器からのデータ伝送を受けたり、電源の供給を受け、モバイル機器5500の内部の各構成要素に伝達したり、モバイル機器5500の内部のデータが外部機器に伝送されるようにする。たとえば、有/無線ヘッドセットポート、外部充電器ポート、有/無線データポート、メモリカード(memory card)ポート、識別モジュールが備えられた装置を接続するポート、オーディオI/O(Input/Output)ポート、ビデオI/Oポート、イヤホンポートなどが、インターフェース部5570に含まれることができる。
識別モジュールは、モバイル機器5500の使用権を認証するための各種の情報を記憶したチップであって、ユーザ認証モジュール(User Identify Module、UIM)、加入者認証モジュール(Subscriber Identify Module、SIM)、汎用ユーザ認証モジュール(Universal Subscriber Identity Module、USIM)などを含むことができる。識別モジュールが備えられた装置(以下、「識別装置」)は、スマートカード(smart card)の形式で製作されることができる。したがって、識別装置は、ポートを介して端末5500と接続することができる。
インターフェース部5570は、移動端末5500が外部クレードル(cradle)と接続したとき、クレードルからの電源が移動端末5500に供給される通信路になったり、ユーザによってクレードルから入力される各種のコマンド信号が移動端末に伝達される通信路となる。クレードルから入力される各種コマンド信号または電源は、移動端末がクレードルに正しく装着されたことを認知するための信号で動作することもできる。
制御部5580は、通常、モバイル機器の全般的な動作を制御する。例えば、音声通話、データ通信、画像通話などのための関連制御および処理を行う。制御部5580は、マルチメディア再生のためのマルチメディアモジュール5581を備えることもできる。マルチメディアモジュール5581は、制御部5580内に実現されることもあり、制御部5580と別に実現されることもある。制御部5580、特にマルチメディアモジュール5581は、前述したエンコード装置100および/またはデコード装置200を含むことができる。
制御部5580は、タッチスクリーン上で行われる手書き入力または絵描きの入力をそれぞれ文字および画像として認識することができるパターン認識処理を行うことができる。
電源供給部5590は、制御部5580の制御により、外部の電源、内部の電源の印加を受けて、各構成要素の動作に必要な電源を供給する。
ここで説明される様々な実施形態は、例えば、ソフトウェア、ハードウェア、またはこれらの組み合わせたものを用いて、コンピュータまたはこれと類似のデバイスで読むことができる記録媒体内で実現することができる。
ハードウェア的な実現によると、ここに説明される実施形態は、ASICs(Application Specific Integrated Circuits)、DSPs(Digital Signal Processors)、DSPDs(Digital Signal Processing Devices)、PLDs(Programmable Logic Devices)、FPGAs(Field Programmable Gate Arrays)、プロセッサ、コントローラ、マイクロコントローラ(micro-controllers)、マイクロプロセッサ(microprocessors)、その他の機能を実行するための電気的なユニットのうちの少なくとも一つを用いて実現されることができる。一部のケースで、本明細書で説明される実施形態が制御部5580自体に実現されることができる。
ソフトウェア的な実現によれば、本明細書で説明される手順および機能のような実施形態は、別のソフトウェアモジュールとして実現されることができる。ソフトウェアモジュールの各々は、本明細書で説明される1つまたは複数の機能および動作を実行することができる。適切なプログラム言語で書かれたソフトウェア・アプリケーションで、ソフトウェアのコードが実現されることができる。ここで、ソフトウェアコードは、メモリ5560に記憶され、制御部5580によって実行されることができる。
図56は、デジタル機器の他の実施形態を説明するため示した構成のブロック図である。
デジタル機器5600の他の例は、放送受信部5605、外部装置インターフェース部5635、記憶部5640、ユーザ入力インターフェース部5650、制御部5670、ディスプレイ部5680、オーディオ出力部5685、電源供給部5690、および撮影部(図示せず)を含むことができる。ここで、放送受信部5605は、少なくとも一つのチューナ5610、復調部5620、およびネットワークインターフェース部5575を含むことができる。ただし、場合によっては、放送受信部5605は、チューナ5610および復調部5620は備えるが、ネットワークインターフェース部5575は含まないことがあり、その逆の場合であり得る。また、放送受信部5605は、図示されなかったが、多重化部(multiplexer)を備えてチューナ5610を経て、復調部5620からの復調された信号と、ネットワークインターフェース部5575を経て受信した信号と、を多重化することもできる。その他の放送受信部4025は、やはり図示されなかったが、逆多重化部(demultiplexer)を備え、上記多重化された信号を逆多重化したり、上記復調された信号または上記ネットワークインターフェース部5575を経た信号を逆多重化することができる。
チューナ5610は、アンテナを介して受信されるRF(Radio Frequency)放送信号のうちのユーザによって選択されたチャネルまたは既に記憶されたすべてのチャンネルをチューニングしてRF放送信号を受信する。また、チューナ5610は、受信したRF放送信号を中間周波数(Intermediate Frequency、IF)信号あるいはベースバンド(baseband)信号に変換する。
例えば、受信したRF放送信号がデジタル放送信号であれば、デジタルIF信号(DIF)に変換し、アナログ放送信号であれば、アナログベースバンド映像または音声信号(CVBS/SIF)に変換する。つまり、チューナ5610は、デジタル放送信号またはアナログ放送信号の全てを処理することができる。チューナ5610から出力されるアナログベースバンド映像または音声信号(CVBS/SIF)は、制御部5670に直接入力されることができる。
また、チューナ5610は、ATSC(Advanced Television System Committee)方式によるシングルキャリアのRF放送信号またはDVB(Digital Video Broadcasting)方式による複数キャリアのRF放送信号を受信することができる。
一方、チューナ5610は、アンテナを介して受信されるRF放送信号チャンネルの記憶機能を通じて記憶されたすべての放送チャンネルのRF放送信号を順次チューニングおよび受信し、これを中間周波数信号もしくはベースバンド信号に変換することができる。
復調部5620は、チューナ5610で変換されたデジタルIF信号(DIF)を受信して復調する。例えば、チューナ5610から出力されるデジタルIF信号がATSC方式である場合、復調部5620は、例えば、8−VSB(8-Vestigal Side Band)復調を実行する。また、復調部5620は、チャネル復号を実行することもできる。このため、復調部5620は、トレリスデコーダ(trellis decoder)、デインターリーバ(de-interleaver)、およびリードソロモンデコーダ(Reed-Solomon decoder)などを備え、トレリス復号、デインターリーブ、およびリードソロモン復号を行うことができる。
例えば、チューナ5610から出力されるデジタルIF信号がDVB方式である場合には、復調部5620は、例えば、COFDMA(Coded Orthogonal Frequency Division Modulation)復調を実行する。また、復調部5620は、チャネルの復号を行うこともできる。このため、復調部5620は、コンボリューションデコーダ(convolution decoder)、デインターリーバ、およびリードソロモンデコーダなどを備え、コンボリューションン復号、デインターリーブ、およびリードソロモン復号を行うことができる。
復調部5620は、復調およびチャネル復号を実行した後のストリーム信号(TS)を出力することができる。このとき、ストリーム信号は、映像信号、音声信号またはデータ信号が多重化された信号であり得る。一例として、ストリーム信号は、MPEG−2規格の映像信号、ドルビ(Dolby)AC−3規格の音声信号などが多重化されたMPEG−2 TS(Transport Stream)であることができる。具体的には、MPEG−2 TSは、4バイト(byte)のヘッダ(header)および184バイトのペイロード(payload)を含むことができる。
一方、前述した復調部5620は、ATSC方式およびDVB方式に応じて、それぞれ別個に備えられることが可能である。つまり、デジタル機器は、ATSC復調部およびDVB復調部をそれぞれ別個に備えることができる。
復調部5620から出力されたストリーム信号は、制御部5670に入力されることができる。制御部5670は、逆多重化、映像/音声信号処理などを制御し、ディスプレイ部5680を介して映像を、オーディオ出力部5685を介して音声の出力を、制御することができる。
外部装置インターフェース部5635は、デジタル機器5600に、様々な外部装置がインターフェースされるように環境を提供する。このため、外部装置インターフェース部5635は、A/V入出力部(図示せず)または無線通信部(図示せず)を含むことができる。
外部装置インターフェース部5635は、DVD、(digital versatile disk)、Blu−ray、ゲーム機器、カメラ、ビデオカメラ、コンピュータ(ノートパソコン、タブレット)、スマートフォン、ブルートゥース(登録商標)機器(Bluetooth device)、クラウド(cloud)などの外部装置と有/無線で接続することができる。外部装置インターフェース部5635は、接続された外部装置を介して外部から入力される映像、音声またはデータ(画像を含む)の信号をデジタル機器の制御部5670に伝達する。制御部5670は、処理された映像、音声、またはデータ信号を、接続された外部機器に出力されるように制御することができる。このため、外部装置インターフェース部5635は、A/V入出力部(図示せず)または無線通信部(図示せず)をさらに含むことができる。
A/V入出力部は、外部装置の映像および音声信号をデジタル機器5600に入力することができるように、USB端子、CVBS(Composite Video Banking Sync)端子、コンポーネント端子、S−ビデオ端子(アナログ)、DVI、(Digital Visual Interface)端子、HDMI(High Definition Multimedia Interface)(登録商標)端子、RGB端子、D−SUB端子などを含むことができる。
無線通信部は、他の電子機器と近距離無線通信を行うことができる。デジタル機器5600は、例えば、ブルートゥース(Bluetooth)(登録商標)、RFID(Radio Frequency IDentification)、赤外線通信(IrDA、infrared data association)、UWB(Ultra WideBand)、ジグビ(ZigBee)、DLNA(Digital Living Network Alliance)(登録商標)などの通信プロトコルに応じて、他の電子機器とネットワーク接続することができる。
また、外部装置インターフェース部5635は、さまざまなセットトップボックスと前述した各種の端子のうちの少なくとも一つを介して接続されて、セットトップボックスとの入力/出力動作を実行することもできる。
一方、外部装置インターフェース部5635は、隣接する外部装置内のアプリケーションまたはアプリケーションのリストを受信し、制御部5670、または記憶部5640に伝達することができる。
ネットワークインターフェース部5575は、デジタル機器5600をインターネット網を含む有/無線ネットワークに接続するためのインターフェースを提供する。ネットワークインターフェース部5575は、有線ネットワークとの接続のために、例えば、イーサネット(Ethernet)(登録商標)端子などを備えることができ、無線ネットワークとの接続のために、例えば、WLAN(Wireless LAN)(Wi−Fi)、Wibro(Wireless broadband)、Wimax(World interoperability for microwave access)、HSDPA(High Speed Downlink Packet Access)通信規格などを用いることができる。
ネットワークインターフェース部5575は、接続されたネットワークまたは接続されたネットワークにリンクされた他のネットワークを介して、他のユーザ、または他のデジタル機器とデータを送信または受信することができる。特に、デジタル機器5600に予め登録された他のユーザまたは他のデジタル機器のうちの選択されたユーザまたは選択されたデジタル機器に、デジタル機器5600に記憶された一部のコンテンツデータを送信することができる。
一方、ネットワークインターフェース部5575は、接続されたネットワークまたは接続されたネットワークにリンクされた他のネットワークを介して、所定のウェブページに接続することができる。つまり、ネットワークを介して所定のウェブページに接続して、該当サーバとデータを送信または受信することができる。その他、コンテンツプロバイダまたはネットワーク運用者が提供するコンテンツまたはデータを受信することができる。つまり、ネットワークを介してコンテンツプロバイダまたはネットワークプロバイダから提供される映画、広告、ゲーム、VOD、放送信号などのコンテンツおよびそれと関連する情報を受信することができる。また、ネットワーク運用者が提供するファームウェア(firmware)の更新(アップデート)情報および更新ファイルを受信することができる。また、インターネットもしくはコンテンツプロバイダまたはネットワーク運用者にデータを送信することができる。
また、ネットワークインターフェース部5575は、ネットワークを介して、公衆に公開(open)されたアプリケーションのうちの所望するアプリケーションを選択して受信することができる。
記憶部5640は、制御部5670内の各信号処理および制御のためのプログラムを記憶することができ、信号処理された映像、音声、またはデータ信号を記憶することもできる。
また、記憶部5640は、外部装置インターフェース部5635またはネットワークインターフェース部5656から入力される映像、音声、またはデータ信号の一時(臨時)記憶のための機能を実行することもできる。記憶部5640は、チャンネル記憶機能を介して、所定の放送チャンネルに関する情報を記憶することができる。
記憶部5640は、外部装置インターフェース部5635またはネットワークインターフェース部5575から入力されるアプリケーションまたはアプリケーションのリストを記憶することができる。
また、記憶部5640は、後述して説明する様々なプラットフォーム(platform)を記憶することもできる。
記憶部5640は、例えば、フラッシュメモリタイプ(flash memory type)、ハードディスクタイプ(hard disk type)、マルチメディアカード、マイクロタイプ(multimedia card micro type)、カードタイプのメモリ(例えば、SDまたはXDメモリなど)、RAM、ロム(EEPROMなど)のうちの少なくとも一つのタイプのストレージ媒体を含むことができる。デジタル機器5600は、記憶部5640内に記憶されているコンテンツファイル(動画ファイル、静止画ファイル、音楽ファイル、文書ファイル、アプリケーション、ファイルなど)を再生してユーザに提供することができる。
図56は、記憶部5640が制御部5670とは別に備えられた実施形態を示しているが、本明細書の範囲はこれに限定されない。つまり、記憶部5640は、制御部5670内に含めることもできる。
ユーザ入力インターフェース部5650は、ユーザが入力した信号を制御部5670に伝達したり、制御部5670の信号をユーザに伝達する。
たとえば、ユーザ入力インターフェース部5650は、RF通信方式、赤外線(IR)通信方式など、様々な通信方式に応じて、遠隔制御装置5700からの電源オン/オフ、チャンネルの選択、画面設定などの制御信号を受信して処理したり、制御部5670の制御信号を遠隔制御装置5700に送信するように処理することができる。
また、ユーザ入力インターフェース部5650は、電源キー、チャンネルキー、音量キー、設定値などのローカルキー(図示せず)から入力される制御信号を制御部5670に伝達することができる。
ユーザ入力インターフェース部5650は、ユーザのジェスチャ(gesture)をセンシング(sensing)するセンシング部(図示せず)から入力される制御信号を制御部5670に伝達したり、制御部5670の信号をセンシング部(図示せず)に送信することができる。ここで、センシング部(図示せず)は、タッチセンサ、音声センサ、位置センサ、動作(動き)センサなどを含むことができる。
制御部5670は、チューナ5610、復調部5620、または外部装置インターフェース部5635を介して入力されるストリームを逆多重化したり、逆多重化された信号を処理して、映像または音声出力のための信号を生成、出力することができる。制御部5670は、前述したエンコード装置および/またはデコード装置を含むことができる。
制御部5670で処理された映像信号は、ディスプレイ部5680に入力され、その映像信号に対応する映像で表示されることができる。また、制御部5670で映像処理された映像信号は、外部装置インターフェース部5635を介して外部出力装置に入力されることができる。
制御部5670で処理された音声信号は、オーディオ出力部5685にオーディオ出力することができる。また、制御部5670で処理された音声信号は、外部装置インターフェース部5635を介して外部出力装置に入力されることができる。
図56においては、示されていないが、制御部5670は、逆多重化部、映像処理部などを含むことができる。
制御部5670は、デジタル機器5600の全般的な動作を制御することができる。例えば、制御部5670は、チューナ5610を制御して、ユーザが選択したチャンネルまたは既に記憶されたチャンネルに該当するRF放送をチューニング(tuning)するように制御することができる。
制御部5670は、ユーザ入力インターフェース部5650を介して入力されたユーザコマンドまたは内部プログラムによってデジタル機器5600を制御することができる。特に、ネットワークに接続して、ユーザが所望するアプリケーションまたはアプリケーションのリストをデジタル機器5600内にダウンロードするようにすることができる。
例えば、制御部5670は、ユーザ入力インターフェース部5650を介して受信した所定のチャンネル選択コマンドに応じて、選択したチャンネルの信号が入力されるようにチューナ5610を制御する。そして、選択したチャンネルの映像、音声またはデータ信号を処理する。制御部5670は、ユーザが選択したチャンネルの情報などが、処理した映像または音声信号と一緒にディスプレイ部5680、またはオーディオ出力部5685を介して出力されるようにする。
他の例として、制御部5670は、ユーザ入力インターフェース部5650を介して受信した外部装置の映像の再生コマンドに応じて、外部装置インターフェース部5635を介して入力される外部装置、例えば、カメラやビデオカメラからの、映像信号または音声信号が、ディスプレイ部5680、またはオーディオ出力部5685を介して出力されるようにする。
一方、制御部5670は、映像を表示するようにディスプレイ部5680を制御することができる。例えば、チューナ5610を介して入力される放送映像、または外部装置インターフェース部5635を介して入力される外部入力映像、またはネットワークインターフェース部から入力される映像、または記憶部5640に記憶された映像を、ディスプレイ部5680に表示するように制御することができる。このとき、ディスプレイ部5680に表示される映像は、静止画または動画であり得、2D映像または3D映像であり得る。
また、制御部5670は、コンテンツを再生するように制御することができる。このときのコンテンツは、デジタル機器5600内に記憶されたコンテンツ、または受信した放送コンテンツ、外部から入力される外部入力のコンテンツであり得る。コンテンツは、放送映像、外部入力映像、オーディオファイル、静止画、接続されたWeb画面(で、)および文書ファイルのうちの少なくとも一つであり得る。
一方、制御部5670は、アプリケーションの見方項目に進入する場合、デジタル機器5600内または外部ネットワークからダウンロード可能なアプリケーションまたはアプリケーションのリストを表示するように制御することができる。
制御部5670は、さまざまなユーザインターフェースとともに、外部ネットワークからダウンロードされるアプリケーションをインストール(設置)および駆動するように制御することができる。また、ユーザの選択により、実行されるアプリケーションに関連する映像がディスプレイ部5680に表示されるように制御することができる。
一方、図面に示しなかったが、チャンネル信号または外部入力信号に対応するサムネイル映像を生成するチャネルブラウジング処理部がさらに備えられることも可能である。
チャンネルブラウジング処理部は、復調部5620から出力されたストリーム信号(TS)または外部装置インターフェース部5635から出力されたストリーム信号などの入力を受け、入力されたストリーム信号から映像を抽出して、サムネイル映像を生成することができる。
生成されたサムネイル映像は、そのまま、または符号化されて制御部5670に入力されることができる。また、生成されたサムネイル映像は、ストリームの形で符号化されて制御部5670に入力されることも可能である。制御部5670は、入力されたサムネイル映像を用いて、複数のサムネイル映像を備えるサムネイルリストをディスプレイ部5680に表示することができる。一方、このようなサムネイルリスト内のサムネイル映像は、順番に、または同時に更新されることができる。これにより、ユーザは、複数の放送チャンネルのコンテンツを簡単に把握できるようになる。
ディスプレイ部5680は、制御部5670で処理された映像信号、データ信号、OSD信号または外部装置インターフェース部5635から受信される映像信号、データ信号などをそれぞれR、G、B信号に変換して駆動信号を生成する。
ディスプレイ部5680は、PDP、LCD、OLED、フレキシブルディスプレイ(flexible display)、3次元ディスプレイ(3D display)などが可能である。
一方、ディスプレイ部5680は、タッチスクリーンで構成されて、出力デバイスに以外に、入力装置として用いられることも可能である。
オーディオ出力部5685は、制御部5670で音声処理された信号、例えば、ステレオ信号、3.1チャンネル信号または5.1チャンネル信号の入力を受け音声で出力する。音声出力部5685は、多様な形態のスピーカで実現されることができる。
一方、ユーザのジェスチャを感知するために、前述したように、タッチセンサ、音声センサ、位置センサ、動作センサのうちの少なくとも一つを備えるセンシング部(図示せず)が、デジタル機器5600にさらに備えられることができる。センシング部(図示せず)で感知された信号は、ユーザ入力インターフェース部5650を介して制御部5670に伝達されることができる。
一方、ユーザを撮影する撮影部(図示せず)がさらに備えられることができる。撮影部(図示せず)で撮影された映像情報は、制御部5670に入力されることができる。
制御部5670は、撮影部(図示せず)から撮影された映像、またはセンシング部(図示せず)からの感知された信号を、それぞれまたは組み合わせて、ユーザのジェスチャを感知することもできる。
電源供給部5690は、デジタル機器5600全般にわたって該当電源を供給する。
特に、システムオンチップ(System On Chip、SOC)の形で実現することができる制御部5670、映像表示のためのディスプレイ部5680、およびオーディオ出力のためのオーディオ出力部5685に電源を供給ことができる。
このため、電源供給部5690は、交流電源を直流電源に変換するコンバータ(図示せず)を備えることができる。一方、例えば、ディスプレイ部5680が多数のバックライトランプを備える液晶パネルとして実現される場合、輝度可変または調光(dimming)駆動のために、PWM動作可能なインバータ(図示せず)をさらに備えることもある。
遠隔制御装置5700は、ユーザの入力をユーザ入力インターフェース部5650に送信する。このため、遠隔制御装置5700は、ブルートゥース(Bluetooth)、RF(Radio Frequency)通信、赤外線(IR)通信、UWB(Ultra WideBand)、ジグビ(ZigBee)方式などを用いる。
また、遠隔制御装置5700は、ユーザ入力インターフェース部5650から出力された映像、音声、またはデータ信号などを受信して、これを遠隔制御装置5700で表示したり、音声または振動を出力することができる。
前述したデジタル機器5600は、固定型または移動型のATSC方式またはDVB方式のデジタル放送信号の処理が可能なデジタル放送受信器であり得る。
その他、本明細書に従ったデジタル機器は、図示された構成のうちの必要に応じて、一部の構成を省略したり、逆に示さない構成をさらに含むこともできる。一方、デジタル機器は、前述したものと異なり、チューナおよび復調部を備えず、ネットワークインターフェース部または外部装置インターフェース部を介してコンテンツを受信して再生することもある。
図57は、図54〜図56の制御部の詳細構成の一実施形態を説明するため示した構成のブロック図である。
制御部の一例は、逆多重化部5710、映像処理部5720、OSD(On-Screen Display)生成部5740、ミキサ(mixer)5750、フレームレート変換部(Frame Rate Converter、FRC)5755、およびフォーマッタ(formatter)5760を含むことができる。その他、上記制御部は、示さなかったが音声処理部およびデータ処理部をさらに含むことができる。
逆多重化部5710は、入力されるストリームを逆多重化する。例えば、逆多重化部5710は、入力されたMPEG−2 TSの映像、音声およびデータ信号を逆多重化することができる。ここで、逆多重化部5710に入力されるストリーム信号は、チューナまたは復調部または外部装置インターフェース部から出力されるストリーム信号であり得る。
映像処理部5720は、逆多重化された映像信号の映像処理を行う。このため、映像処理部5720は、映像デコーダ5725およびスケーラ5735を備えることができる。
映像デコーダ5725は、逆多重化された映像信号を復号し、スケーラ5735は、復号された映像信号の解像度を、ディスプレイ部に出力できるようにスケーリング(scaling)する。
映像デコーダ5725は、様々な規格をサポートすることができる。例えば、映像デコーダ5725は、映像信号がMPEG−2規格で符号化された場合には、MPEG−2デコーダの機能を実行し、映像信号がDMB(Digital Multimedia Broadcasting)方式またはH.264規格で符号化された場合には、H.264デコーダの機能を実行することができる。
一方、映像処理部5720で復号された映像信号は、ミキサ5750に入力される。
OSD生成部5740は、ユーザの入力に応じて、または自律的(自体的)に、OSDデータを生成する。例えば、OSD生成部5740は、ユーザ入力インターフェース部の制御信号に基づいて、ディスプレイ部4180の画面に各種データをグラフィック(graphic)やテキスト(text)の形で表示するためのデータを生成する。生成されるOSDデータは、デジタル機器のユーザインターフェース画面、さまざまなメニュー画面、ウィジェット(widget)、アイコン(icon)、視聴率情報(viewing rate information)などのさまざまなデータを含む。
OSD生成部5740は、放送映像の字幕またはEPGに基づいた放送情報を表示するためのデータを生成することもできる。
ミキサ5750は、OSD生成部5740で生成されたOSDデータと映像処理部で画像処理された映像信号とをミキシングしてフォーマッタ5760に提供する。復号された映像信号とOSDデータとがミキシングされることにより、放送映像または外部入力映像上にOSDがオーバーレイ(overlay)されて表示される。
フレームレート変換部(FRC)5755は、入力される映像のフレームレート(frame rate)を変換する。例えば、フレームレート変換部5755は、入力される60Hzの映像のフレームレートを、ディスプレイ部の出力周波数に応じて、例えば、120Hzまたは240Hzのフレームレートを有するように変換することができる。上記のように、フレームレートを変換する方法には、様々な方法が存在することができる。一例として、フレームレート変換部5755は、フレームレートを60Hzから120Hzに変換する場合、第1フレームと第2フレームとの間に、同じ第1フレームを挿入したり、第1フレームおよび第2フレームから予測された第3フレームを挿入することにより、変換することができる。他の例として、フレームレート変換部5755は、フレームレートを60Hzから240Hzに変換する場合、既存のフレームの間に同じフレームまたは予測されたフレームを3つ以上挿入して変換することができる。一方、別のフレーム変換を実行しない場合には、フレームレート変換部5755をバイパス(bypass)することもできる。
フォーマッタ5760は、入力されるフレームレート変換部5755の出力をディスプレイ部の出力フォーマットに合わせて変更する。たとえば、フォーマッタ5760は、R、G、B、データ信号を出力することができ、このようなR、G、Bデータ信号は、低電圧差分信号(Low Voltage Differential Signaling、LVDS)またはmini−LVDSで出力されることができる。また、フォーマッタ5760は、入力されるフレームレート変換部5755の出力が3D映像信号である場合には、ディスプレイ部の出力フォーマットに合わせて3D形状で構成して出力することにより、ディスプレイ部を通じて3Dサービスをサポートすることもできる。
一方、制御部内の音声処理部(図示せず)は、逆多重化された音声信号の音声処理を実行することができる。このような音声処理部(図示せず)は、さまざまなオーディオフォーマットを処理するようにサポートすることができる。一例として、音声信号が、MPEG−2、MPEG−4、AAC、HE−AAC、AC−3、BSACなどのフォーマットで符号化された場合、これに対応するデコーダを備えて処理することができる。
また、制御部内の音声処理部(図示せず)は、ベース(base)、トレブル(treble)、音量調節などを処理することができる。
制御部内のデータ処理部(図示せず)は、逆多重化されたデータ信号のデータ処理を実行することができる。例えば、データ処理部は、逆多重化されたデータ信号が符号化された場合でも、これを復号することができる。ここで、符号化されたデータ信号は、各チャンネルで放映される放送番組の開始時刻、終了時刻などの放送情報が含まれるEPG情報であり得る。
一方、前述したデジタル機器は、本明細書に従った例として、各構成要素が、実際に実現されるデジタル機器の仕様に応じて、統合、追加、または省略されることができる。つまり、必要に応じて、2以上の構成要素が1つの構成要素に合わせられたり、1つの構成要素が2以上の構成要素に細分化されることができる。また、各ブロックで実行される機能は、本明細書の実施形態を説明するためのものであり、その具体的な動作や装置は、本明細書の権利範囲を制限しない。
一方、デジタル機器は、装置内に記憶された映像または入力される映像の信号処理を実行する映像信号処理装置であり得る。映像信号処理装置の他の例としては、図65で示されたディスプレイ部6580およびオーディオ出力部6585が除外されたセットトップボックス(STB)、前述したDVDプレーヤ、Blu−ray(登録商標)プレーヤ、ゲーム機器、コンピュータなどがさらに例示されることができる。
図58は、一実施形態に係る、デジタル機器のスクリーンがメイン映像(main image)と補助映像(sub image)とを同時に表示する一例を示す図である。
一実施形態に係るデジタル機器は、スクリーン5800に、メイン映像5810と補助映像5820とを同時に表示することができる。メイン映像5810は、第1映像と呼ばれることができ、補助映像5820は、第2映像と呼ばれることができる。メイン映像5810および補助映像5820は、動画、スチール・イメージ、EPG(Electronic Program Guide)、GUI(Graphical User Interface)、OSD(On-Screen Display)などを含むことができ、これに限定されない。メイン映像5810は、電子装置のスクリーン5800に補助映像5820とともに表示されながら、電子装置のスクリーン5800よりもサイズが相対的に小さい映像を意味することができ、PIP(Picture In Picture)で指すこともある。図58においては、メイン映像5810がデジタル機器のスクリーン5800の左上端に表示されるものとして示されているが、メイン映像5810が表示される位置は、これに限定されず、メイン映像5810は、デジタル機器のスクリーン5800内の任意の位置で表示されることができる。
メイン映像5810と補助映像5820とは、互に直接または間接的に関連することができる。一例例として、メイン映像5810は、ストリーミング(streaming)動画であり、補助映像5820は、ストリーミング動画と類似の情報を含む動画のサムネイル(thumbnail)を順次表示するGUIであり得る。他の例として、メイン映像5810は、放送映像(broadcasted image)であり、補助映像5820は、EPGであり得る。さらに他の例として、メイン映像5810は、放送映像であり、補助映像5820は、GUIであり得る。メイン映像5810および補助映像5820の例は、これに限定されない。
一実施形態において、メイン映像5810は、放送チャンネル(broadcasting channel)を介して受信した放送映像(broadcasting image)であり、補助映像5820は、放送チャンネルを介して受信した放送映像に関する情報であり得る。放送チャンネルを介して受信した放送映像と関連する情報は、例えば、総合チャンネル番組表、番組の詳細情報などを含むEPG情報、放送番組の再ビュー情報などを含むことができ、これに限定されない。
他の一実施形態において、メイン映像5810は、放送チャンネルを介して受信した放送映像であり、補助映像5820は、デジタル機器に既に記憶された情報に基づいて生成された映像であり得る。デジタル機器に既に記憶された情報に基づいて生成された映像は、例えば、EPGの基本UI(User Interface)、基本チャンネル情報、映像の解像度(resolution)操作UI、就寝予約UIなどを含むことができ、これに限定されない。
さらに他の一実施形態において、メイン映像5810は、放送チャンネルを介して受信した放送映像であり、補助映像5820は、ネットワーク網を介して受信した、放送映像と関連する情報であり得る。ネットワーク網を介して受信した、放送映像と関連する情報は、例えば、ネットワークに基づいた検索エンジンを介して獲得された情報であり得る。より具体的には、例えば、ネットワークに基づいた検索エンジンを介して現在のメイン映像5810に表示されている登場人物に関する情報が獲得されることができる。
しかしながら、例示は、これに限定されず、ネットワーク網を介して受信した、放送映像と関連する情報は、例えば、人工知能(Artificial Intelligence、AI)システムを用いることにより、獲得することができる。より具体的には、例えば、ネットワークベースのディープラーニング(deep-learning)を用いて、現在のメイン映像5810に表示されている場所の地図上の推定位置(estimated-location in map)が獲得されることができ、デジタル機器は、ネットワーク網を介して、現在のメイン映像5810に表示されている場所の地図上の推定位置に関する情報を受信することができる。
一実施形態に係るデジタル機器は、外部からメイン映像5810の映像情報および補助映像5820の映像情報のうちの少なくとも一つを受信することができる。メイン映像5810の映像情報は、例えば、放送チャンネル(broadcasting channel)を介して受信した放送信号(broadcasting signal)、メイン映像5810のソースコード(source code)情報、ネットワーク網を介して受信したメイン映像5810のIPパケット(internet protocol packet)情報などを含むことができ、これに限定されない。同様に、補助映像5820の映像情報は、例えば、放送チャンネルを介して受信した放送信号、補助映像5820のソースコード情報、ネットワーク網を介して受信した補助映像5820のIPパケットの情報などを含むことができ、これに限定されない。デジタル機器は、外部から受信したメイン映像5810の映像情報または補助映像5820の映像情報をデコードして用いることができる。ただし、場合によって、デジタル機器は、メイン映像5810の映像情報または補助映像5820の映像情報を内部に自主的に記憶していることもある。
デジタル機器は、メイン映像5810の映像情報および補助映像5820に関連する情報に基づいて、メイン映像5810および補助映像5820をデジタル機器のスクリーン5800に表示することができる。
一例として、デジタル機器のデコード装置200は、メイン映像デコード装置および補助映像デコード装置を含み、メイン映像デコード装置および補助映像デコード装置は、それぞれ、メイ映像5810の映像情報および補助映像5820の映像情報をデコードすることができる。レンダラは、メイン映像レンダラ(第1レンダラ)および補助映像レンダラ(第2レンダラ)を含み、メイン映像レンダラは、メイン映像デコード装置でデコードされた情報に基づいて、メイン映像5810をデジタル機器のスクリーン5800の第1領域に表示されるようにすることができ、補助映像レンダラは、補助映像デコード装置でデコードされた情報に基づいて補助映像5820をデジタル機器のスクリーン5800の第2領域に表示されるようにすることができる。
さらに異なる例において、デジタル機器のデコード装置200は、メイン映像5810の映像情報および補助映像5820の映像情報をデコードすることができる。デコード装置200でデコードされた情報に基づいて、レンダラは、メイン映像5810および補助映像5820を一緒に処理して、同時に、デジタル機器のスクリーン5800に表示されるようにすることができる。
すなわち、本文書によると、デジタル機器からの映像サービスの処理方法を提供することができる。上記映像サービスの処理方法によると、映像情報を受信するステップと、上記画像情報に基づいて(メイン)映像をデコードするステップと、デコードされた映像をディスプレイ内の第1領域にレンダリングまたは表示するステップと、ディスプレイ内の第2領域に補助映像をレンダリングまたは表示するするステップを含むことができる。この場合、第1映像をデコードするステップは、前述した図3に従ったデコード装置200からのデコード手順に従うことができる。例えば、前述したように、第1映像をデコードするステップは、インターまたはイントラ予測に基づいて、現ブロックの予測サンプルを導出するステップと、受信した残差情報に基づいて、現ブロックの残差サンプルを導出するステップ(省略可能)と、予測サンプルおよび/または残差サンプルに基づいて復元サンプルを生成するステップと、を含むことができる。さらに、第1映像をデコードするステップは、復元サンプルを含む復元ピクチャにインループフィルタの手順を実行することを含むこともある。
例えば、上記補助画像は、EPG(Electronic Program Guide)、OSD(On Screen Display)、またはGUI(Graphic User Interface)であり得る。例えば、上記映像情報は、放送網(broadcast network)を介して受信され、上記補助映像に関する情報は、上記放送網を介して受信されることができる。例えば、上記の映像情報は、通信網(communication network)を介して受信され、上記補助映像に関する情報は、上記通信網を介して受信されることができる。例えば、上記映像情報は、放送網を介して受信され、上記補助映像に関する情報は、通信網を介して受信されることができる。例えば、上記映像情報は、放送網または通信網を介して受信され、上記補助映像に関する情報は、上記デジタル機器内の記憶媒体に記憶されていることができる。
以上で説明した実施形態は、本発明の構成要素および特徴が所定の形態で結合されたものである。各構成要素または特徴は、別の明示的な言及がない限り選択的なもので考慮されるべきである。各構成要素または特徴は、他の構成要素や特徴と結合されない形態で実施されることができる。また、一部の構成要素および/または特徴を結合して、本発明の実施形態を構成することも可能である。本発明の実施形態で説明される動作の順序は、変更されることができる。どの実施形態の一部の構成や特徴も、他の実施形態に含まれることができ、または他の実施形態に対応する構成または特徴と代替(交替)されることができる。特許請求の範囲で明示的な引用関係がない請求項を結合して実施形態を構成したり、出願後の補正により新しい請求項として含めることができることは自明である。
本発明に係る実施形態は、様々な手段、例えば、ハードウェア、ファームウェア(firmware)、ソフトウェアまたはそれらの組み合わせなどにより実現されることができる。ハードウェアによる実現の場合、本発明の一実施形態は、一つまたは複数のASICs(Application Specific Integrated Circuits)、DSPs(Digital Signal Processors)、DSPDs(Digital Signal Processing Devices)、PLDs(Programmable Logic Devices)、FPGAs(Field Programmable Gate Arrays)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサなどにより実現されることができる。
ファームウェアやソフトウェアによる実装の場合、本発明の一実施形態は、以上で説明した機能や動作を実行するモジュール、プロシージャ、関数などの形態で具現されることができる。ソフトウェアコードは、メモリに記憶されてプロセッサによって駆動されることができる。上記メモリは、上記プロセッサの内部または外部に位置して、既に公知の多様な手段により、上記プロセッサとデータを送受信することができる。
本発明は、本発明の必須の特徴を逸脱しない範囲で他の特定の形態で具体化されることができることは当業者に自明である。したがって、前述した詳細な説明は、すべての面で制限的に解釈してはならず、例示的なものとして考慮するべきである。本発明の範囲は、添付された請求項の合理的解釈によって決定されるべきで、本発明の等価的範囲内におけるすべての変更は、本発明の範囲に含まれる。