(57)【特許請求の範囲】
【請求項１】
映像の復号化方法において、
現在ブロックに隣接する空間的隣接ブロックの可用性を決定するステップであって、前記空間的隣接ブロックの前記可用性は、前記空間的隣接ブロックがインター予測に利用可能かどうかを示すブロック可用性と、前記空間的隣接ブロックの動き情報が前記インター予測に利用可能かどうかを示す動き情報可用性とを有する、ステップ；
前記空間的隣接ブロックの前記可用性に基づいて前記現在ブロックに対するマージ候補リストを生成するステップ；
マージインデックス（merge index）に基づいて、前記現在ブロックの動き情報を取得し、前記マージインデックスは前記マージ候補リストに含まれるマージ候補を特定する、ステップ；および
前記現在ブロックの前記動き情報に基づいて前記現在ブロックの予測サンプルを取得するステップ；を含み、
前記空間的隣接ブロックの前記動き情報可用性は、前記空間的隣接ブロックの動き情報を、ブロック可用性がトルー（ｔｒｕｅ）である他の空間的隣接ブロックの動き情報と比較することによって決定され、
前記空間的隣接ブロックの前記ブロック可用性は、前記現在ブロックの位置情報および並列マージレベル情報を用いたシフト処理（ｓｈｉｆｔｉｎｇ  ｏｐｅｒａｔｉｏｎ）によって導出された値が、前記空間的隣接ブロックの位置情報および前記並列マージレベル情報を用いたシフト処理によって導出された値と等しいかどうかに基づいて決定され、前記並列マージレベル情報は、並列マージ処理が適用可能なブロックの大きさを示し、
複数の前記空間的隣接ブロックは、左側隣接ブロック（left neighboring block）、左下端隣接ブロック（left-bottom neighboring block）、上端隣接ブロック（top neighboring block）、上端右側隣接ブロック（top-right neighboring block）および左上端隣接ブロック（left-top neighboring block）のうちの少なくとも１つを有し、
複数の空間的隣接ブロックが存在する場合、前記左上端隣接ブロックの可用性は最後に決定されることを特徴とする映像復号化方法。
【請求項２】
映像の符号化方法において、
現在ブロックに隣接する空間的隣接ブロックの可用性を決定するステップであって、前記空間的隣接ブロックの前記可用性は、前記空間的隣接ブロックがインター予測に利用可能かどうかを示すブロック可用性と、前記空間的隣接ブロックの動き情報が前記インター予測に利用可能かどうかを示す動き情報可用性とを有する、ステップ；
前記空間的隣接ブロックの前記可用性に基づいて前記現在ブロックに対するマージ候補リストを生成するステップ；
マージインデックス（merge index）に基づいて、前記現在ブロックの動き情報を取得し、前記マージインデックスは前記マージ候補リストに含まれるマージ候補を特定する、ステップ；および
前記現在ブロックの前記動き情報に基づいて前記現在ブロックの予測サンプルを取得するステップ；を含み、
前記空間的隣接ブロックの前記動き情報可用性は、前記空間的隣接ブロックの動き情報を、ブロック可用性がトルー（ｔｒｕｅ）である他の空間的隣接ブロックの動き情報と比較することによって決定され、
前記空間的隣接ブロックの前記ブロック可用性は、前記現在ブロックの位置情報および並列マージレベル情報を用いたシフト処理（ｓｈｉｆｔｉｎｇ  ｏｐｅｒａｔｉｏｎ）によって導出された値が、前記空間的隣接ブロックの位置情報および前記並列マージレベル情報を用いたシフト処理によって導出された値と等しいかどうかに基づいて決定され、前記並列マージレベル情報は、並列マージ処理が適用可能なブロックの大きさを示し、
複数の前記空間的隣接ブロックは、左側隣接ブロック（left neighboring block）、左下端隣接ブロック（left-bottom neighboring block）、上端隣接ブロック（top neighboring block）、上端右側隣接ブロック（top-right neighboring block）および左上端隣接ブロック（left-top neighboring block）のうちの少なくとも１つを有し、
複数の空間的隣接ブロックが存在する場合、前記左上端隣接ブロックの可用性は最後に決定されることを特徴とする映像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像の符号化及び復号化処理に関し、より詳しくは、動き候補リストを構成する映像の符号化及び復号化方法、並びに装置に関する。
【背景技術】
【０００２】
最近、ＨＤ(Ｈｉｇｈ Ｄｅｆｉｎｉｔｉｏｎ)解像度(１２８０×１０２４または１９２０×１０８０)を有する放送サービスが韓国内だけでなく、世界的に拡大されるにつれて、多くのユーザが高解像度、高画質の映像に慣れており、それに応じて、多くの機関が次世代映像機器に対する開発に拍車を掛けている。また、ＨＤＴＶと共にＨＤＴＶの４倍以上の解像度を有するＵＨＤ(Ｕｌｔｒａ Ｈｉｇｈ Ｄｅｆｉｎｉｔｉｏｎ)に対する関心が増大しながら、動画標準化団体は、より高い解像度、高画質の映像に対する圧縮機術の必要性を認識するようになった。また、現在ＨＤＴＶ、携帯電話、ブルーレイプレーヤに使われるＨ.２６４/ＡＶＣより高い圧縮効率を介して同じ画質を維持すると共に、周波数帯域や格納側面で多くの利得を得ることができる新たな標準が切実な状況である。現在ＭＰＥＧ(Ｍｏｖｉｎｇ Ｐｉｃｔｕｒｅ Ｅｘｐｅｒｔｓ Ｇｒｏｕｐ)とＶＣＥＧ(Ｖｉｄｅｏ Ｃｏｄｉｎｇ Ｅｘｐｅｒｔｓ Ｇｒｏｕｐ)は、共同に次世代ビデオコーデックであるＨＥＶＣ(Ｈｉｇｈ Ｅｆｆｉｃｉｅｎｃｙ Ｖｉｄｅｏ Ｃｏｄｉｎｇ)を標準化しており、ＵＨＤ映像まで含む映像をＨ.２６４/ＡＶＣ対比２倍の圧縮効率で符号化することを目標にしている。これはＨＤ、ＵＨＤ映像だけでなく、３Ｄ放送及び移動通信網でも現在より低い周波数で高画質の映像を提供することができる。
【０００３】
ＨＥＶＣは、現在２０１０年４月ＪＣＴ−ＶＣ(Ｊｏｉｎｔ Ｃｏｌｌａｂｏｒａｔｉｏｎ Ｔｅａｍ Ｖｉｄｅｏ Ｃｏｄｉｎｇ)会議が初めて開かれた以後、各機関の寄稿を介してＨＭ(ＨＥＶＣ Ｔｅｓｔ Ｍｏｄｅｌ)という名称のコーデックを標準の性能を測定するために定めた。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一実施形態は、動き候補リストを構成するにあたって、隣接ブロックの使用可能可否を判断する順序を提供する方法及びそれを利用する装置を提供することを目的とする。
【０００５】
また、本発明の一実施形態は、動き候補リストを構成するにあたって、符号化単位内の予測単位間の並列性を提供する方法及びそれを利用する装置を提供することを目的とする。
【０００６】
これによって、映像の符号化及び復号化効率を向上させることにその目的がある。
【課題を解決するための手段】
【０００７】
本発明の一実施例である映像の復号化方法は、現在ブロックの隣接ブロックに対する可用性を判断するステップ；前記可用性判断結果に基づいて前記現在ブロックに対するマージ候補リストを構成するステップ；前記マージ候補リストに基づいて前記現在ブロックに対する動き補償を実行するステップ；を含み、前記可用性を判断するステップは、前記隣接ブロックに対するブロック可用性情報を誘導するステップ；前記隣接ブロックの動き情報に対する可用性を誘導するステップ；を含み、前記隣接ブロックに対する可用性を判断するステップは、隣接ブロックが複数の場合、一定の順序制約によって隣接ブロックに対する可用性を判断する。
【０００８】
前記現在ブロックの位置を(ｘＰ,ｙＰ)とする場合、前記隣接ブロックは、(ｘＰ−１,ｙＰ＋ｎＰＳＨ)に存在するピクセルを含む第１のブロック、(ｘＰ−１,ｙＰ＋ｎＰＳＨ−１)に存在するピクセルを含む第２のブロック、(ｘＰ＋ｎＰＳＷ,ｙＰ−１)に位置するピクセルを含む第３のブロック、(ｘＰ＋ｎＰＳＷ−１,ｙＰ−１)に位置するピクセルを含む第４のブロック、(ｘＰ−１,ｙＰ−１)に存在するピクセルを含む第５のブロックを含む。
【０００９】
前記隣接ブロックに対する可用性を判断するステップは、隣接ブロックが複数の場合、一定の順序制約によって隣接ブロックに対する可用性を判断する、前記現在ブロックと前記隣接ブロックに対するマージ候補リストを並列的に誘導することができない場合、前記ブロック可用性情報をフォールス(ｆａｌｓｅ,０)に設定する。
【００１０】
ブロック可用性情報がフォールスに設定されたとは、該当ブロックが存在しない、またはイントラモードに符号化されたことを意味する。
【００１１】
前記隣接ブロックに対する可用性を判断するステップは、前記現在ブロックのパーティション形態がＰＡＲＴ_Ｎ×２Ｎ、ＰＡＲＴ_ｎＬ×２Ｎ及びＰＡＲＴ_ｎＲ×２Ｎのうち一つであり、且つ符号化ユニット内の前記現在ブロックに対するインデックスｐａｒｔＩｄｘが‘１’の場合、前記第２のブロックに対する前記ブロック可用性情報をフォールス(０)に設定する。
【００１２】
前記隣接ブロックに対する可用性を判断するステップは、前記現在ブロックのパーティション形態がＰＡＲＴ_２Ｎ×Ｎ、ＰＡＲＴ_２Ｎ×ｎＵ及びＰＡＲＴ_２Ｎ×ｎＤのうち一つであり、且つ符号化ユニット内の前記現在ブロックに対するインデックスｐａｒｔＩｄｘが‘１’の場合、前記第４のブロックに対する前記ブロック可用性情報をフォールス(ｆａｌｓｅ,０)に設定する。
【００１３】
前記隣接ブロックの動き情報に対する可用性を誘導するステップにおいて、前記第２のブロックの動き情報に対する可用性は、前記第１のブロック、前記第３のブロック、前記第４のブロック及び前記第５のブロックの動き情報に対する可用性より先に誘導される。
【００１４】
前記動き情報に対する可用性を誘導するステップにおいて、前記第４のブロックの動き情報に対する可用性は、前記第３のブロック及び前記第５のブロックの動き情報に対する可用性より先に誘導される。
【００１５】
前記動き情報に対する可用性を誘導するステップにおいて、前記第５のブロックの動き情報に対する可用性は、前記第１のブロック、前記第２のブロック、前記第３のブロック、前記第４のブロックの動き情報に対する可用性の誘導後に実行される。
【００１６】
前記動き情報に対する可用性を誘導するステップは、前記第２のブロック、前記第４のブロック、前記第３のブロック、前記第１のブロック、前記第５のブロックの順に実行される。
【００１７】
前記ブロック可用性情報を誘導するステップにおいて、前記隣接ブロックが存在しない、またはイントラモードに符号化されている場合、前記ブロック可用性情報をフォールス(ｆａｌｓｅ,０)に設定し、前記ブロック可用性情報がフォールス(ｆａｌｓｅ,０)の場合、前記動き情報に対する可用性は０に設定される。
【００１８】
前記隣接ブロックの動き情報に対する可用性を誘導するステップにおいて、前記第２のブロックの前記ブロック可用性情報がトルー(ｔｒｕｅ,１)であり、且つ前記第２のブロックの動き情報と前記第４のブロックの動き情報が同じ場合、前記第４のブロックの動き情報に対する可用性は０に設定される。
【００１９】
前記動き情報に対する可用性を誘導するステップにおいて、前記第４のブロックの前記ブロック可用性情報がトルー(ｔｒｕｅ,１)であり、且つ前記第４のブロックの動き情報と前記第３のブロックの動き情報が同じ場合、前記第３のブロックの動き情報に対する可用性は０に設定される。
【００２０】
前記動き情報に対する可用性を誘導するステップにおいて、前記第２のブロックの前記ブロック可用性情報がトルー(ｔｒｕｅ,１)であり、且つ前記第２のブロックの動き情報と前記第１のブロックの動き情報が同じ場合、前記第１のブロックの動き情報に対する可用性は０に設定される。
【００２１】
前記動き情報に対する可用性を誘導するステップにおいて、前記第２のブロックの前記ブロック可用性情報がトルー(ｔｒｕｅ,１)であり、且つ前記第２のブロックの動き情報と前記第５のブロックの動き情報が同じ場合、前記第５のブロックの動き情報に対する可用性は０に設定される。
【００２２】
前記動き情報に対する可用性を誘導するステップにおいて、前記第４のブロックの前記ブロック可用性情報がトルー(ｔｒｕｅ,１)であり、且つ前記第４のブロックの動き情報と前記第５のブロックの動き情報が同じ場合、前記第５のブロックの動き情報に対する可用性は０に設定される。
【００２３】
前記動き情報に対する可用性を誘導するステップにおいて、前記第１のブロック、前記第２のブロック、前記第３のブロック、前記第４のブロックの前記動き情報に対する可用性が全部１の場合、前記第５のブロックの動き情報に対する可用性は０に設定される。
【００２４】
本発明の他の実施形態による映像の復号化装置は、現在ブロックの画面間予測を実行するために使われるマージ候補リストに対する情報を符号化するエントロピー符号化部；前記現在ブロックの隣接ブロックに対する可用性を判断し、前記可用性判断結果に基づいて前記現在ブロックに対するマージ候補リストを構成し、前記マージ候補リストに基づいて前記現在ブロックに対する動き補償を実行する予測部；を含み、前記予測部は、前記可用性を判断するために、前記隣接ブロックに対するブロック可用性情報を誘導し、前記隣接ブロックの動き情報に対する可用性を誘導し、前記隣接ブロックが複数の場合、前記隣接ブロックに対する可用性は、一定の順序制約によって判断される。
【発明の効果】
【００２５】
本発明の一実施例によると、動き候補リストを構成するにあたって、隣接ブロックの使用可能可否を判断する順序を提供する方法及びそれを利用する装置が提供される。
【００２６】
また、本発明によると、動き候補リストを構成するにあたって、符号化単位内の予測単位間の完壁な並列性を提供する方法及びそれを利用する装置が提供される。
【００２７】
これによって、映像の符号化及び復号化効率を向上させることができる映像の符号化/復号化方法及び装置が提供される。
【図面の簡単な説明】
【００２８】
【図１】映像符号化装置の一実施例に係る構成を示すブロック図である。
【図２】映像復号化装置の一実施例に係る構成を示すブロック図である。
【図３】併合動き候補リストとして使われる現在ブロックの隣接ブロックの一例を示す。
【図４】画面間符号化における動き補償過程を説明するための制御流れ図である。
【図５】一例によって一個のＣＵが２個のＰＵに分けられた場合、併合動き候補リストを設定する一例を示す。
【図６】他の例によって一個のＣＵが２個のＰＵに分けられた場合、併合動き候補リストを設定する一例を示す。
【図７】現在ブロックの隣接ブロックの一例を示す。
【図８】動き情報可用性を決定する順序を制約する方法に対する複数の例を示す。
【図９】順次にブロック動き情報の可用性情報を判断する場合、隣接ブロックを示す。
【図１０】一個のＣＵが複数のＰＵにパーティシャニングされる例を示す。
【図１１】本発明の一実施例によってブロック可用性情報を再設定する方法を説明するための制御流れ図である。
【図１２】現在ブロックのマージ候補リスト生成を説明するための現在ブロック及び隣接ブロックを示す。
【発明を実施するための形態】
【００２９】
以下、図面を参照して本発明の実施形態に対して具体的に説明する。本明細書の実施例を説明するにあたって、関連した公知構成または機能に対する具体的な説明が本明細書の要旨を不明にすると判断される場合、その詳細な説明は省略する。
【００３０】
一構成要素が他の構成要素に“連結されている”または“接続されている”と言及された場合、該当他の構成要素に直接的に連結されている、または接続されていることもあるが、中間に他の構成要素が存在することもあると理解しなければならない。また、本発明において、特定構成を“含む”と記述する内容は、該当構成以外の構成を排除するものではなく、追加的な構成が本発明の実施または本発明の技術的思想の範囲に含まれることができることを意味する。
【００３１】
第１、第２などの用語は、多様な構成要素の説明に使われることができるが、前記構成要素は、前記用語により限定されてはならない。前記用語は、一つの構成要素を他の構成要素から区別する目的にのみ使われる。例えば、本発明の権利範囲を外れない限り、第１の構成要素は第２の構成要素と命名することができ、同様に、第２の構成要素も第１の構成要素と命名することができる。
【００３２】
また、本発明の実施例に示す構成部は、互いに異なる特徴的な機能を示すために独立的に図示されるものであり、各構成部が分離されたハードウェアや一つのソフトウェア構成単位に構成されることを意味しない。即ち、各構成部は、説明の便宜上、各々の構成部として羅列して含むものであり、各構成部のうち少なくとも２個の構成部が統合されて一つの構成部からなり、または一つの構成部が複数個の構成部に分けられて機能を遂行することができ、このような各構成部の統合された実施例及び分離された実施例も本発明の本質から外れない限り、本発明の権利範囲に含まれる。
【００３３】
また、一部の構成要素は、本発明で本質的な機能を遂行する必須な構成要素ではなく、単に性能を向上させるための選択的構成要素である。本発明は、単に性能向上のために使われる構成要素を除いた本発明の本質を具現するのに必須な構成部のみを含んで具現されることができ、単に性能向上のために使われる選択的構成要素を除いた必須構成要素のみを含む構造も本発明の権利範囲に含まれる。
【００３４】
図１は、映像符号化装置の一実施例に係る構成を示すブロック図である。
【００３５】
図１を参照すると、前記映像符号化装置１００は、動き予測部１１１、動き補償部１１２、イントラ予測部１２０、スイッチ１１５、減算器１２５、変換部１３０、量子化部１４０、エントロピー符号化部１５０、逆量子化部１６０、逆変換部１７０、加算器１７５、フィルタ部１８０及び参照映像バッファ１９０を含む。
【００３６】
映像符号化装置１００は、入力映像に対してイントラ(ｉｎｔｒａ)モードまたはインター(ｉｎｔｅｒ)モードに符号化を実行することで、ビットストリーム(ｂｉｔ ｓｔｒｅａｍ)を出力することができる。イントラ予測は画面内予測を意味し、インター予測は画面間予測を意味する。イントラモードである場合、スイッチ１１５がイントラに切り替えられ、インターモードである場合、スイッチ１１５がインターに切り替えられる。映像符号化装置１００は、入力映像の入力ブロックに対する予測ブロックを生成した後、入力ブロックと予測ブロックとの差分を符号化することができる。
【００３７】
イントラモードである場合、イントラ予測部１２０は、現在ブロック隣接の既に符号化されたブロックの画素値を利用して空間的予測を実行することで、予測ブロックを生成することができる。
【００３８】
インターモードである場合、動き予測部１１１は、動き予測過程において、参照映像バッファ１９０に格納されている参照映像で入力ブロックと最もよくマッチされる領域を探して動きベクトルを求めることができる。動き補償部１１２は、動きベクトルと参照映像バッファ１９０に格納されている参照映像を利用して動き補償を実行することによって、予測ブロックを生成することができる。
【００３９】
減算器１２５は、入力ブロックと生成された予測ブロックとの差分により残余ブロック(ｒｅｓｉｄｕａｌ ｂｌｏｃｋ)を生成することができる。変換部１３０は、残余ブロックに対して変換(ｔｒａｎｓｆｏｒｍ)を実行することで、変換係数(ｔｒａｎｓｆｏｒｍ ｃｏｅｆｆｉｃｉｅｎｔ)を出力することができる。そして、量子化部１４０は、入力された変換係数を量子化パラメータによって量子化することで、量子化された係数(ｑｕａｎｔｉｚｅｄ ｃｏｅｆｆｉｃｉｅｎｔ)を出力することができる。
【００４０】
エントロピー符号化部１５０は、量子化部１４０で算出された値または符号化過程で算出された符号化パラメータ値などに基づき、シンボル(ｓｙｍｂｏｌ)を確率分布によってエントロピー符号化することで、ビットストリーム(ｂｉｔ ｓｔｒｅａｍ)を出力することができる。エントロピー符号化方法は、多様な値を有するシンボルの入力を受け、統計的な重複性を除去すると共に、復号可能な２進数の列で表現する方法である。
【００４１】
ここで、シンボルとは、符号化/復号化対象構文要素(ｓｙｎｔａｘ ｅｌｅｍｅｎｔ)及び符号化パラメータ(ｃｏｄｉｎｇ ｐａｒａｍｅｔｅｒ)、残余信号(ｒｅｓｉｄｕａｌ ｓｉｇｎａｌ)の値などを意味する。符号化パラメータは、符号化及び復号化に必要な媒介変数であって、構文要素のように符号化装置で符号化されて復号化装置に伝達される情報だけでなく、符号化または復号化過程で類推されることができる情報を含むことができ、映像を符号化または復号化する時に必要な情報を意味する。符号化パラメータは、例えば、イントラ/インター予測モード、移動/動きベクトル、参照映像索引、符号化ブロックパターン、残余信号有無、変換係数、量子化された変換係数、量子化パラメータ、ブロックの大きさ、ブロック分割情報などの値または統計を含むことができる。また、残余信号は、原信号と予測信号との差を意味し、また、原信号と予測信号との差が変換(ｔｒａｎｓｆｏｒｍ)された形態の信号または原信号と予測信号との差が変換されて量子化された形態の信号を意味する。残余信号は、ブロック単位では残余ブロックという。
【００４２】
エントロピー符号化が適用される場合、高い発生確率を有するシンボルに少ない数のビットが割り当てられ、低い発生確率を有するシンボルに多い数のビットが割り当てられてシンボルが表現されることによって、符号化対象シンボルに対するビット列の大きさが減少されることができる。したがって、エントロピー符号化を介して映像符号化の圧縮性能が高まることができる。
【００４３】
エントロピー符号化のために、指数ゴロム(ｅｘｐｏｎｅｎｔｉａｌ ｇｏｌｏｍｂ)、ＣＡＶＬＣ(Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ Ｖａｒｉａｂｌｅ Ｌｅｎｇｔｈ Ｃｏｄｉｎｇ)、ＣＡＢＡＣ(Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ Ｂｉｎａｒｙ Ａｒｉｔｈｍｅｔｉｃ Ｃｏｄｉｎｇ)のような符号化方法が使われることができる。例えば、エントロピー符号化部１５０には、可変長さ符号化(ＶＬＣ：Ｖａｒｉａｂｌｅ Ｌｅｎｇｈｔｈ Ｃｏｄｉｎｇ/Ｃｏｄｅ)テーブルのようなエントロピー符号化を実行するためのテーブルが格納されることができ、エントロピー符号化部１５０は、格納された可変長さ符号化(ＶＬＣ)テーブルを使用してエントロピー符号化を実行することができる。また、エントロピー符号化部１５０は、対象シンボルの２進化(ｂｉｎａｒｉｚａｔｉｏｎ)方法及び対象シンボル/ビン(ｂｉｎ)の確率モデル(ｐｒｏｂａｂｉｌｉｔｙ ｍｏｄｅｌ)を導出した後、導出された２進化方法または確率モデルを使用してエントロピー符号化を実行することもできる。
【００４４】
量子化された係数は、逆量子化部１６０で逆量子化され、逆変換部１７０で逆変換されることができる。逆量子化、逆変換された係数は、加算器１７５を介して予測ブロックと加えられて復元ブロックが生成されることができる。
【００４５】
復元ブロックは、フィルタ部１８０を経て、フィルタ部１８０は、デブロッキングフィルタ(ｄｅｂｌｏｃｋｉｎｇ ｆｉｌｔｅｒ)、ＳＡＯ(Ｓａｍｐｌｅ Ａｄａｐｔｉｖｅ Ｏｆｆｓｅｔ)、ＡＬＦ(Ａｄａｐｔｉｖｅ Ｌｏｏｐ Ｆｉｌｔｅｒ)のうち少なくとも一つ以上を復元ブロックまたは復元ピクチャに適用することができる。フィルタ部１８０を経た復元ブロックは、参照映像バッファ１９０に格納されることができる。
【００４６】
図２は、映像復号化装置の一実施例に係る構成を示すブロック図である。図２を参照すると、前記映像復号化装置２００は、エントロピー復号化部２１０、逆量子化部２２０、逆変換部２３０、イントラ予測部２４０、動き補償部２５０、フィルタ部２６０及び参照映像バッファ２７０を含む。
【００４７】
映像復号化装置２００は、符号化装置から出力されたビットストリームの入力を受けてイントラモードまたはインターモードに復号化を実行することで、再構成された映像、即ち、復元映像を出力することができる。イントラモードである場合、スイッチがイントラに切り替えられ、インターモードである場合、スイッチがインターに切り替えられる。映像復号化装置２００は、入力されたビットストリームから復元された残余ブロック(ｒｅｓｉｄｕａｌ ｂｌｏｃｋ)を得て、予測ブロックを生成した後、復元された残余ブロックと予測ブロックを加えて再構成されたブロック、即ち、復元ブロックを生成することができる。
【００４８】
エントロピー復号化部２１０は、入力されたビットストリームを確率分布によってエントロピー復号化し、量子化された係数(ｑｕａｎｔｉｚｅｄ ｃｏｅｆｆｉｃｉｅｎｔ)形態のシンボルを含むシンボルを生成することができる。エントロピー復号化方法は、２進数の列の入力を受けて各シンボルを生成する方法である。エントロピー復号化方法は、前述したエントロピー符号化方法と同様である。
【００４９】
量子化された係数は、逆量子化部２２０で逆量子化され、逆変換部２３０で逆変換され、量子化された係数が逆量子化/逆変換された結果、復元された残余ブロック(ｒｅｓｉｄｕａｌ ｂｌｏｃｋ)が生成されることができる。
【００５０】
イントラモードである場合、イントラ予測部２４０は、現在ブロック隣接の既に符号化されたブロックの画素値を利用して空間的予測を実行することで、予測ブロックを生成することができる。インターモードである場合、動き補償部２５０は、動きベクトル及び参照映像バッファ２７０に格納されている参照映像を利用して動き補償を実行することによって、予測ブロックを生成することができる。
【００５１】
復元された残余ブロックと予測ブロックは、加算器２５５を介して加えられ、加えられたブロックは、フィルタ部２６０を経る。フィルタ部２６０は、デブロッキングフィルタ、ＳＡＯ、ＡＬＦのうち少なくとも一つ以上を復元ブロックまたは復元ピクチャに適用することができる。フィルタ部２６０は、再構成された映像、即ち、復元映像を出力する。
復元映像は、参照映像バッファ２７０に格納されて画面間予測に使われることができる。
【００５２】
前記映像復号化装置２００に含まれているエントロピー復号化部２１０、逆量子化部２２０、逆変換部２３０、イントラ予測部２４０、動き補償部２５０、フィルタ部２６０及び参照映像バッファ２７０のうち、映像の復号化に直接的に関連した構成要素、例えば、エントロピー復号化部２１０、逆量子化部２２０、逆変換部２３０、イントラ予測部２４０、動き補償部２５０、フィルタ部２６０などを他の構成要素と区分して復号化部またはデコーディング部で表現することができる。
【００５３】
また、映像復号化装置２００は、ビットストリームに含まれているエンコーディングされた映像に関連した情報をパーシングするパーシング部(図示せず)をさらに含むことができる。パーシング部は、エントロピー復号化部２１０を含むこともでき、エントロピー復号化部２１０に含まれることもできる。また、このようなパーシング部は、デコーディング部の一つの構成要素として具現されることもできる。
【００５４】
通常的に、画面間予測は、現在ピクチャの以前ピクチャまたは以後ピクチャのうち少なくとも一つを参照ピクチャにし、参照ピクチャに基づいて現在ブロックに対する予測を実行することができる。現在ブロックの予測に利用される映像を参照ピクチャ(ｒｅｆｅｒｅｎｃｅ ｐｉｃｔｕｒｅ)または参照フレーム(ｒｅｆｅｒｅｎｃｅ ｆｒａｍｅ)という。
【００５５】
参照ピクチャ内の領域は、参照ピクチャを指示する参照ピクチャインデックス(ｒｅｆＩｄｘ)及び動きベクトル(ｍｏｔｉｏｎ ｖｅｃｔｏｒ)などを利用して示すことができる。
【００５６】
画面間予測は、参照ピクチャ及び参照ピクチャ内で現在ブロックに対応する参照ブロックを選択し、現在ブロックに対する予測ブロックを生成することができる。
【００５７】
画面間予測において、符号化装置及び復号化装置は、現在ブロックの動き情報を導出した後、導出された動き情報に基づいて画面間予測及び/または動き補償を実行することができる。このとき、符号化装置及び復号化装置は、復元された隣接ブロック(ｎｅｉｇｈｂｏｒｉｎｇ ｂｌｏｃｋ)及び/または既に復元されたｃｏｌｌｏｃａｔｅｄ ｐｉｃｔｕｒｅ内で現在ブロックに対応されるｃｏｌｌｏｃａｔｅｄ ｂｌｏｃｋの動き情報を利用することによって、符号化/復号化効率を向上させることができる。
【００５８】
ここで、復元された隣接ブロックは、既に符号化及び/または復号化されて復元された現在ピクチャ内のブロックであって、現在ブロックに隣接したブロック及び/または現在ブロックの外部コーナーに位置したブロックを含むことができる。また、符号化装置及び復号化装置は、ｃｏｌｌｏｃａｔｅｄ ｐｉｃｔｕｒｅ内で現在ブロックと空間的に対応される位置に存在するブロックを基準にして所定の相対的な位置を決定することができ、前記決定された所定の相対的な位置(前記現在ブロックと空間的に対応される位置に存在するブロックの内部及び/または外部の位置)に基づいて前記ｃｏｌｌｏｃａｔｅｄ ｂｌｏｃｋを導出することができる。ここで、一例として、ｃｏｌｌｏｃａｔｅｄ ｐｉｃｔｕｒｅは、参照ピクチャリストに含まれている参照ピクチャのうち、一つのピクチャに該当することができる。
【００５９】
画面間予測は、現在ブロックとのレジデュアル(ｒｅｓｉｄｕａｌ)信号が最小化され、動きベクトルの大きさも最小になるように予測ブロックを生成することができる。
【００６０】
一方、動き情報導出方式は、現在ブロックの予測モードによって変わることができる。
インター予測のために適用される予測モードには、ＡＭＶＰ(Ａｄｖａｎｃｅｄ Ｍｏｔｉｏｎ Ｖｅｃｔｏｒ Ｐｒｅｄｉｃｔｏｒ)、マージ(ｍｅｒｇｅ)などがある。
【００６１】
一例として、ＡＭＶＰ(Ａｄｖａｎｃｅｄ Ｍｏｔｉｏｎ Ｖｅｃｔｏｒ Ｐｒｅｄｉｃｔｏｒ)が適用される場合、符号化装置及び復号化装置は、復元された隣接ブロックの動きベクトル及び/またはｃｏｌｌｏｃａｔｅｄ ｂｌｏｃｋの動きベクトルを利用し、予測動きベクトル候補リストを生成することができる。即ち、復元された隣接ブロックの動きベクトル及び/またはｃｏｌｌｏｃａｔｅｄ ｂｌｏｃｋの動きベクトルは、予測動きベクトル候補として使われることができる。符号化装置は、前記リストに含まれている予測動きベクトル候補の中から選択された最適の予測動きベクトルを指示する予測動きベクトルインデックスを復号化装置に送信することができる。このとき、復号化装置は、前記予測動きベクトルインデックスを利用し、予測動きベクトル候補リストに含まれている予測動きベクトル候補の中から、現在ブロックの予測動きベクトルを選択することができる。
【００６２】
符号化装置は、現在ブロックの動きベクトルと予測動きベクトルとの間の動きベクトル差分(ＭＶＤ：Ｍｏｔｉｏｎ Ｖｅｃｔｏｒ Ｄｉｆｆｅｒｅｎｃｅ)を求めることができ、これを符号化して復号化装置に送信することができる。このとき、復号化装置は、受信された動きベクトル差分を復号化することができ、復号化された動きベクトル差分と予測動きベクトルとの和を介して現在ブロックの動きベクトルを導出することができる。
【００６３】
また、符号化装置は、参照ピクチャを指示する参照ピクチャインデックスなどを復号化装置に送信することができる。
【００６４】
復号化装置は、隣接ブロックの動き情報を利用して現在ブロックの動きベクトルを予測し、符号化装置から受信したレジデュアルを利用して現在ブロックに対する動きベクトルを誘導することができる。復号化装置は、誘導した動きベクトルと符号化装置から受信した参照ピクチャインデックス情報に基づいて現在ブロックに対する予測ブロックを生成することができる。
【００６５】
画面間予測に利用される他のモードのうち一つであるスキップモードの場合、隣接ブロックの情報をそのまま現在ブロックに利用することができる。したがって、スキップモードの場合、符号化装置は、現在ブロックの動き情報としていずれのブロックの動き情報を利用するかを指示する情報外にレジデュアルなどのようなシンタックス情報を復号化装置に送信しない。
【００６６】
他の例として、併合動き、即ち、マージ(ｍｅｒｇｅ)が適用される場合、符号化装置及び復号化装置は、復元された隣接ブロックの動き情報及び/またはｃｏｌｌｏｃａｔｅｄ ｂｌｏｃｋの動き情報を利用し、併合動き候補リスト(マージ候補リスト、ｍｅｒｇｅ ｃａｎｄｉｄａｔｅ ｌｉｓｔ)を生成することができる。このとき、動き情報とは、動きベクトル、参照映像に対するインデックス、そして予測方向(単方向、両方向等)のうち少なくとも一つを含む。
【００６７】
併合動きは、符号化ユニット(Ｃｏｄｉｎｇ Ｕｎｉｔ：ＣＵ、以下‘ＣＵ’という)単位の併合動きと予測ユニット(Ｐｒｅｄｉｃｔｉｏｎ Ｕｎｉｔ：ＰＵ、以下‘ＰＵ’という)単位の併合動きが可能である。ＣＵまたはＰＵ(以下、説明の便宜のために‘ブロック’という)単位に併合動きを実行する場合には、ブロックパーティション(ｐａｒｔｉｔｉｏｎ)別に併合動きを実行するかどうかに対する情報と、現在ブロックに隣接した隣接ブロック(現在ブロックの左側隣接ブロック、現在ブロックの上側隣接ブロック、現在ブロックの時間的(ｔｅｍｐｏｒｒａｌ)隣接ブロック等)のうちいずれのブロックと併合動きをするかに対する情報とを送信する必要がある。
【００６８】
併合動き候補リストは、動き情報が格納されたリストを意味し、併合動きが実行される前に生成される。ここで、併合動き候補リストに格納される動き情報は、現在ブロックに隣接した隣接ブロックの動き情報であってもよく、参照映像で現在ブロックに対応される(ｃｏｌｌｏｃａｔｅｄ)ブロックの動き情報であってもよい。また、併合動き候補リストに格納される動き情報は、既に併合動き候補リストに存在する動き情報を組み合わせた新たな動き情報であってもよい。
【００６９】
図３は、併合動き候補リストとして使われる現在ブロックの隣接ブロックの一例を示す。
【００７０】
併合動き候補リストは、図３の隣接ブロック(Ａ、Ｂ、Ｃ、Ｄ、Ｅ)と、同一位置の候補ブロック(Ｈ(または、Ｍ))に対して該当ブロックの動き情報が現在ブロックの併合動きに利用可能かどうかを判断し、利用可能な場合には該当ブロックの動き情報を併合動き候補リストに入力することができる。
【００７１】
時間的候補予測ブロックとして使われる同一位置候補ブロックは、現在ブロックを含むピクチャ内のピクセル位置(ｘＰ,ｙＰ)に基づいて現在ブロックのＣｏｌｏｃａｔｅｄ Ｐｉｃｔｕｒｅで(ｘＰ＋ｎＰＳＷ、ｙＰ＋ｎＰＳＨ)位置のピクセルを含む予測ブロック(Ｈ)であり、または(ｘＰ＋ｎＰＳＷ、ｙＰ＋ｎＰＳＨ)位置のピクセルを含む予測ブロックが可用でない場合、(ｘＰ＋(ｎＰＳＷ>>１),ｙＰ＋(ｎＰＳＨ>>１))位置のピクセルを含む予測ブロック(Ｍ)になることができる。
【００７２】
各隣接ブロックは、互いに同じ動き情報を有するかどうかを確認して同じ動き情報の場合、該当隣接ブロックの動き情報は、併合動き候補リストに含まれない。
【００７３】
一実施例として、図３において、Ｘブロックに対する併合動き候補リストを生成する時、隣接ブロックＡが使用可能で併合動き候補リストに含まれる場合、隣接ブロックＢは、隣接ブロックＡと同じ動き情報でない場合にのみ併合動き候補リストに含まれることができる。同様な方法として、隣接ブロックＣは、隣接ブロックＢと同じ動き情報でない場合にのみ併合動き候補リストに含まれることができる。同様な方法として、隣接ブロックＤと隣接ブロックＥに適用されることができる。
【００７４】
ここで、同じ動き情報とは、動きベクトルが同じであり、同じ参照ピクチャを使用し、同じ予測方向(単方向(正方向、逆方向)、両方向)を使用することを意味する。
【００７５】
最後に、図３において、Ｘブロックに対する併合動き候補リストは、所定の順序、例えば、Ａ→Ｂ→Ｃ→Ｄ→Ｅ→Ｈ(または、Ｍ)ブロック順序にリストに追加されることができる。
【００７６】
図４は、画面間符号化における動き補償過程を説明するための制御流れ図である。
【００７７】
図４のように、動き補償過程は、現在ブロック及び隣接ブロックに対する情報が入力される場合、隣接ブロックに対する可用性を判断するステップ(Ｓ４１０)、動き候補リストを構成するステップ(Ｓ４２０)、構成された動き候補リストを介して現在ブロックに対する動き情報を出力し、最終的に動き補償された映像を出力するステップ(Ｓ４３０)で構成される。
【００７８】
図４において、現在ブロックに対する動き候補リストを構成するために使われる隣接ブロックは、複数個に多様に設定されることができ、一例として、図３の隣接ブロック(Ａ、Ｂ、Ｃ、Ｄ、Ｅ)、そして同一位置の候補ブロック(ＨまたはＭ))である。
【００７９】
図４の第１のステップである隣接ブロックの可用性判断ステップ(Ｓ４１１)は、該当隣接ブロックが存在する場合、該当ブロックが可用であると判断する過程であり、可用性判断の結果としてブロック可用性情報が出力される。ここで、隣接ブロックが存在するとは、隣接ブロックが、現在ブロックが属する同じ映像(ピクチャ)、スライス、タイルの内部に存在して復号過程で接近が可能であることを意味する。本発明において、判断とは、決定または設定の意味として使われることができる。可用性判断時、追加的に該当隣接ブロックが画面内符号化されていない場合にのみ可用であると判断することもできる。
【００８０】
判断結果、ブロック可用性情報が‘１’の場合、該当ブロックは、使用可能(一例として、映像内に存在する)であり、‘０’の場合、使用不可能(一例として、映像外に位置して存在しない)であることを示すことができ、その逆も可能である。
【００８１】
次に、ブロック可用性情報に基づいて隣接ブロックの動き情報に対する可用性が判断(Ｓ４１３)される。これを介して、該当隣接ブロックの動き情報を現在ブロックの動き候補リストに含ませることができるかどうかを示すブロック動き情報の可用性情報が出力される。
【００８２】
ここで、ブロック動き情報の可用性情報が‘１’の場合、該当ブロックは使用可能であり、‘０’の場合、使用不可能であり、その逆も可能である。
【００８３】
本発明によると、隣接ブロックに対する動き情報の可用性判断は、任意の順序に実行されることができず、隣接ブロック間に一定の順序制約を守らなければならない。
【００８４】
隣接ブロックに対する動き情報の可用性判断が完了される場合、ブロック動き情報の可用性情報に基づいて初期動き候補リストが構成され(Ｓ４２１)、図３の隣接ブロックは、Ａ→Ｂ→Ｃ→Ｄ→Ｅ→Ｈ→Ｍの順序に動き候補リストに追加されることができる。
【００８５】
その後、動き候補リストは、再構成されることができ、再構成過程を経て最終動き候補リストが構成されることができる(Ｓ４２３)。
【００８６】
最終動き候補リストに含まれている動き候補の中から現在ブロックの動き情報が選択され(Ｓ４３１)、選択された動き情報を利用して現在ブロックに対する動き補償が実行される(Ｓ４２３)。図４の過程を経て動き補償された映像が出力される。
【００８７】
符号化装置は、併合動き候補リストに含まれている併合動き候補の中から最適の符号化効率を提供することができる併合動き候補を現在ブロックに対する動き情報として選択することができる。併合動き候補リストのうち、現在ブロックが併合動きする候補に対するインデックスを併合動きインデックス(ｍｅｒｇｅ_ｉｄｘ、以下‘ｍｅｒｇｅ_ｉｄｘ’という)といい、前記選択されたマージインデックスがビットストリームに含まれて復号化装置に送信されることができる。
【００８８】
併合動き候補リスト内に同じ動き情報が存在する場合には、同じ動き情報のうち一つのみ併合動き候補リストに残す。併合動き候補リスト内の動き情報の数は、所定の個数に設定されることができる。例えば、併合動き候補リスト内の動き情報の数を最大５個(または、任意の数)になるように設定することができる。
【００８９】
復号化装置は、送信されたマージインデックスを利用し、併合動き候補リストに含まれているマージ候補の中から一つを選択することができ、前記選択された併合動き候補を現在ブロックの動き情報に決定することができる。したがって、併合動きモードが適用される場合、復元された隣接ブロック及び/またはｃｏｌｌｏｃａｔｅｄ ｂｌｏｃｋの動き情報が現在ブロックの動き情報としてそのまま使われることができる。復号化装置は、予測ブロックと符号化装置から送信されるレジデュアルを加えて現在ブロックを復元することができる。
【００９０】
併合動きインデックス値が指示されない場合、‘０’を有すると推定(ｉｎｆｅｒ)されることができる。
【００９１】
図５は、一例によって一個のＣＵが２個のＰＵに分けられた場合、併合動き候補リストを設定する一例を示す。図示されているように、ＣＵは、Ｎ×２Ｎでパーティシャニングされ、左側にある１番目の予測ブロックＰＵ０は、ＰａｒｔＩｄｘが０に識別され、右側にある２番目の予測ブロックＰＵ１は、ＰａｒｔＩｄｘが１に識別される。
【００９２】
ＰＵに対する隣接ブロックの動き情報は、現在ブロックに隣接した隣接ブロック(Ａ０、Ａ１、Ｂ０、Ｂ１、Ｂ２)の動き情報であり、または参照映像で現在ブロックに対応される(ｃｏｌｌｏｃａｔｅｄ)ブロック(図示せず)の動き情報である。図５の(ａ)は、ＰＵ０に対する併合動き候補リストを構成するために使われる隣接ブロックを示し、図５の(ｂ)は、ＰＵ１に対する併合動き候補リストを構成するために使われる隣接ブロックを示す。
【００９３】
ＰＵ１の併合動き候補リスト構成時、同一ＣＵ内の他のＰＵの動き情報を参照しないようにすることによって、他のＰＵと並列的に併合動き候補リストを構成することができ、そのために、図５の(ｂ)において、ＰＵ０に位置したＡ１ブロックは、ＰＵ１の併合動き候補リストに含まれない。即ち、図５の(ｂ)において、ＰＵ０に位置したＡ１ブロックは、ＰＵ１の併合動き候補リスト構成に使用可能でなく、併合動き候補リスト構成時、Ａ１ブロックの動き情報に接近することができないことを意味する(または、動き情報が存在しないことを意味し、またはブロック動き情報の可用性がないことを意味する)。
【００９４】
図６は、他の例によって一個のＣＵが２個のＰＵに分けられた場合、併合動き候補リストを設定する一例を示す。図示されているように、ＣＵは、２Ｎ×Ｎでパーティシャニングされ、上段の１番目の予測ブロックＰＵ０は、ＰａｒｔＩｄｘが０に識別され、右側にある下段の予測ブロックＰＵ１は、ＰａｒｔＩｄｘが１に識別される。
【００９５】
ＰＵに対する隣接ブロックの動き情報は、現在ブロックに隣接した隣接ブロック(Ａ０、Ａ１、Ｂ０、Ｂ１、Ｂ２)の動き情報であり、または参照映像で現在ブロックに対応される(ｃｏｌｌｏｃａｔｅｄ)ブロック(図示せず)の動き情報である。図６の(ａ)は、ＰＵ０に対する併合動き候補リストを構成するために使われる隣接ブロックを示し、図６の(ｂ)は、ＰＵ１に対する併合動き候補リストを構成するために使われる隣接ブロックを示す。
【００９６】
ＰＵ１の併合動き候補リスト構成時、同一ＣＵ内の他のＰＵの動き情報を参照しないようにすることによって、他のＰＵと並列的に併合動き候補リストを構成することができ、そのために、図６の(ｂ)において、ＰＵ０に位置したＢ１ブロックは、ＰＵ１の併合動き候補リストに含まれない。即ち、図６の(ｂ)において、ＰＵ０に位置したＢ１ブロックは、ＰＵ１の併合動き候補リスト構成に使用可能でなく、併合動き候補リスト構成時、Ｂ１ブロックの動き情報に接近することができないことを意味する(または、動き情報が存在しないことを意味し、またはブロック動き情報の可用性がないことを意味する)。
【００９７】
一方、本発明は、動き予測のための動き候補リストを構成するにあたって、動き候補リストが構成される対象ブロック(現在ブロックという)と隣接した隣接ブロックに対する動き候補可用性を誘導する方法及び装置に関する。
【００９８】
図７は、現在ブロックの隣接ブロックの一例を示す。
【００９９】
図７を参照すると、現在ブロック(Ｘ)と隣接した隣接ブロックは、左側ブロック(Ａ０、Ａ１)、上側ブロック(Ｂ０、Ｂ１)、そして隅ブロック(Ｃ)に区分することができる。
本発明は、このような隣接ブロックに対して動き候補として使用可能かどうかに対する動き情報可用性を決定する順序を制約することによって、同一符号化ユニット(ＣＵ)に属する予測ユニット(ＰＵ)の動き候補リスト(動き候補リスト)を並列的に構成することを可能にする。
【０１００】
図８は、動き情報可用性を決定する順序を制約する方法に対する複数の例を示す。
【０１０１】
図８を参照すると、本発明による動き情報可用性決定順序制約方式には、(ａ)上側優先方式、(ｂ)左側優先方式、(ｃ)上側/左側並列方式がある。
【０１０２】
上側優先方式は、上側ブロックのうち一つに対する動き情報可用性を他の隣接ブロックより最も優先して決定する方式であり、左側優先方式は、左側ブロックのうち一つに対する動き情報可用性を他の隣接ブロックより最も優先して決定する方式である。
【０１０３】
動き情報可用性決定過程の並列性を高めるために、(ｃ)のように上側/左側並列決定方式を使用することもでき、このとき、左側ブロックに対する動き情報可用性決定と上側ブロックに対する動き情報可用性決定を並列に実行することができるという長所がある。
【０１０４】
重複した動き情報を有する隣接ブロックが動き候補リストに含まれないように、各隣接ブロックの動き情報可用性決定過程に動き情報の同一性を判断する動き情報同一性判断過程が含まれることができる。
【０１０５】
例えば、図７のＢ０に対する動き情報可用性決定時、Ｂ０の動き情報がＢ１の動き情報と同じ場合には、Ｂ０に対する動き情報可用でないと決定することができる。
【０１０６】
本発明によると、動き情報可用性決定過程に動き情報同一性判断過程が含まれる場合にも、図８のように動き情報可用性決定順序に制約を受ける。例えば、隣接ブロックに対する動き情報可用性決定順序上、Ｂ１がＢ０より優先する場合にのみ、Ｂ０の動き情報がＢ１の動き情報と同じかどうかによってＢ０の動き情報可用性を決定することができる。
【０１０７】
それに対し、即ち、隣接ブロックに対する動き情報可用性決定順序上、Ｂ０がＢ１より優先する場合には、Ｂ０の動き情報がＢ１の動き情報と同じかどうかによってＢ０の動き情報可用性を決定することができない。
【０１０８】
本発明では、図８の三つの動き情報可用性決定順序制約方式のうち、(ｂ)左側優先決定方式を一例として説明する。しかし、隣接ブロックの可用性判断過程を含む前記説明された内容と後述される内容は、(ａ)上側優先決定方式及び(ｃ)上側/左側並列決定方式に適用されることができ、これは該当分野の通常の知識を有する者には自明であるということができる。
【０１０９】
本発明によると、図５の(ｂ)のＰＵ１の併合動き候補リストを構成するにあたって、隣接ブロックＢ１は、隣接ブロックＡ１が使用可能でないことを予め知ることができる。したがって、図５の(ｂ)のＰＵ１の併合動き候補リストを構成するにあたって、隣接ブロックＡ１の可用性情報を確認することで、隣接ブロックＢ１と隣接ブロックＡ１が同じ動き情報を有するかとうかを確認しなくてもよい。
【０１１０】
即ち、図５の(ｂ)のＰＵ１の併合動き候補リストを構成するために、ＰＵ１と同一ＣＵ内に属する隣接ブロックＡ１の動き情報に接近しなくてもよいため、ＰＵ０とＰＵ１の併合動き候補リストを並列的に構成することができる。
【０１１１】
同様に、図６の(ｂ)のＰＵ１の併合動き候補リストを構成するにあたって、隣接ブロックＢ０は、隣接ブロックＢ１が使用可能でないことを予め知ることができる。したがって、図６の(ｂ)のＰＵ１の併合動き候補リストを構成するにあたって、隣接ブロックＢ１の可用性情報を確認することで、隣接ブロックＢ１と隣接ブロックＢ０が同じ動き情報を有するかどうかを確認しなくてもよい。
【０１１２】
即ち、図６の(ｂ)のＰＵ１の併合動き候補リストを構成するために、ＰＵ１と同一ＣＵ内に属する隣接ブロックＢ１の動き情報に接近しなくてもよいため、ＰＵ０とＰＵ１の併合動き候補リストを並列的に構成することができる。
【０１１３】
ＰＵの併合動き候補リストを並列的に構成しながら、隣接ブロックに対する動き情報可用性決定順序を制約する具体的な方法として、順次にブロック動き情報の可用性情報を判断する方法と、隣接ブロックの可用性判断過程後にブロック可用性情報を再設定する方法が存在できる。
【０１１４】
[方法１]併合動き候補リストを構成するにあたって、順次にブロック動き情報の可用性情報を判断する方法の一例
【０１１５】
図９は、順次にブロック動き情報の可用性情報を判断する場合、隣接ブロックを示し、現在ブロック(Ｘ)の隣接ブロック(Ａ、Ｂ、Ｃ、Ｄ、Ｅ)を示す。
【０１１６】
本発明において、順次とは、現在または以後順序に該当する情報が以前順序に該当する情報に依存的であることを意味する。
【０１１７】
隣接ブロックに対する動き情報として使用可能かどうか(ブロック動き情報の可用性情報)に対する判断は、既設定された順序に行われることができる。左側ブロックのうち一つに対する動き情報可用性を他の隣接ブロックより最も優先して決定する左側優先決定方式に従う場合、Ａ→Ｂ→Ｃ→Ｄ→Ｅブロックの順序に該当ブロックの動き情報が現在ブロックの併合動きに利用されることができるかどうかを判断し、利用可能な場合には該当ブロックの動き情報を併合動き候補リストに入力することができる。
【０１１８】
図１０は、一個のＣＵが複数のＰＵにパーティシャニングされる例を示す。
【０１１９】
図１０に示すように、ＣＵは、パーティシャニングされず、２Ｎ×２ＮのＰＵであってもよく、同じ大きさである２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎでパーティシャニングされてもよい。また、ＣＵは、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、ｎＲ×２Ｎのように非対称的にパーティシャニングされてもよい。
【０１２０】
[方法２]併合動き候補リストを構成するにあたって、ブロック可用性情報を再設定する方法の一例
【０１２１】
図１１は、本発明の一実施例によってブロック可用性情報を再設定する方法を説明するための制御流れ図である。図１１は、図４の隣接ブロックに対する可用性判断ステップ(Ｓ４１０)において、ブロック可用性情報を再設定する方法の構造図の一例を示す。
【０１２２】
図１１を参照すると、まず、隣接ブロックが存在するかどうかに対する隣接ブロックの可用性が判断される(Ｓ１１１０)。判断結果として、ブロック可用性情報が出力される。
【０１２３】
その後、隣接ブロックのブロック可用性情報が再設定される(Ｓ１１２０))。
【０１２４】
一例として、図５の(ｂ)ＰＵ１に対して、併合動き候補リストを他のＰＵと並列的に構成するために、図５の(ｂ)ＰＵ０に位置したＡ１ブロックは、ＰＵ１の併合動き候補リストに含まれることができない。
【０１２５】
したがって、図５の(ｂ)ＰＵ０に位置したＡ１ブロックのブロック可用性情報を‘０’に設定することで、該当ブロックを使用不可能にすることができる。
【０１２６】
次に、設定されたブロック可用性情報に基づいて隣接ブロックの動き情報に対する可用性を判断する(Ｓ１１３０)。ステップＳ１１３０を介して隣接ブロックの動き情報を現在ブロックの動き候補リストに含ませることができるかどうかを示すブロック動き情報の可用性情報が出力される。
【０１２７】
ブロック動き情報の可用性情報に基づいて初期動き候補リストが構成される。
【０１２８】
図１１のブロック可用性情報を再設定する方法は、一個のＣＵが複数個のＰＵに分割される場合(一例として、図１０における２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、ｎＲ×２Ｎ)、即ち、一個のＣＵで分割されたＰＵに適用することができる。
【０１２９】
前述した方法１を利用した復号化過程の一例を示すと、下記の通りである。
【０１３０】
以下、本発明で使われる用語に対する定義は、下記の通りである。
【０１３１】
ＰｒｅｄＭｏｄｅは、現在ＰＵ(Ｐｒｅｄｉｃｔｉｏｎ Ｕｎｉｔ)ブロックの符号化モードを示し、ＭＯＤＥ_ＳＫＩＰ、ＭＯＤＥ_ＩＮＴＲＡ、ＭＯＤＥ_ＩＮＴＥＲが存在する。
【０１３２】
Ｍｅｒｇｅ_ｆｌａｇは、現在ＰＵブロックがマージモードに符号化されたかを示す。
現在ＰＵブロックがマージモードに符号化された場合、Ｍｅｒｇｅ_ｆｌａｇは‘１’に設定され、その反対も設定することができる。
【０１３３】
ｍｅｒｇｅ_ｉｄｘは、動き情報候補リストで現在ＰＵブロックに対する動き情報を示すインデックスを示す。
【０１３４】
ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２は、並列マージスキップのレベルを定義する。本発明によると、マージスキップは、画面間予測に適用されるモードのうち、マージモードとスキップモードを同時に示す用語として解釈されることができ、並列マージスキップは、マージモード及び/またはスキップモードを適用する場合、特定領域内のブロック間に併合動き候補リストを並列的に構成することができることを意味する。
【０１３５】
例えば、ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２の値が‘０’の場合、並列マージスキップが実行されない。ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２の値が‘１’の場合、８×８ブロック内にある全てのＰＵに対して並列マージスキップが実行される。ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２の値が‘２’の場合、１６×１６ブロック内にある全てのＰＵに対して並列マージスキップが実行され、ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２の値が‘３’の場合、３２×３２ブロック内にある全てのＰＵに対して並列マージスキップが実行される。ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２の値が‘４’の場合、６４×６４ブロック内にある全てのＰＵに対して並列マージスキップが実行される。
【０１３６】
Ｚ−スキャン可用性誘導過程
【０１３７】
[１]Ｚ−スキャン可用性誘導過程において、入力は、下記の通りである。
【０１３８】
(ｘＣｕｒｒ,ｙＣｕｒｒ)：現在ピクチャの左上端位置と関連した現在ブロックの左上端位置；
【０１３９】
(ｘＮ,ｙＮ)：現在ピクチャの左上端位置と関連した隣接ブロックの左上端位置
【０１４０】
Ｚ−スキャン可用性誘導過程において、出力は、下記の通りである。
【０１４１】
ａｖａｉｌａｂｌｅＮ：(ｘＮ,ｙＮ)位置の隣接ブロックの可用性情報
【０１４２】
[２]ｍｉｎＢｌｏｃｋＡｄｄｒＣｕｒｒを現在ブロックに対するｚ−スキャン順序に最小輝度ブロックの住所と設定する。このとき、ｍｉｎＢｌｏｃｋＡｄｄｒＣｕｒｒは、下記の通りである。
【０１４３】
ｍｉｎＢｌｏｃｋＡｄｄｒＣｕｒｒ＝ＭｉｎＴｂＡｄｄｒＺＳ[ｘＣｕｒｒ>>Ｌｏｇ２ＭｉｎＴｒａｆｏＳｉｚｅ][ｙＣｕｒｒ>>Ｌｏｇ２ＭｉｎＴｒａｆｏＳｉｚｅ]
【０１４４】
(ここで、ＭｉｎＴｂＡｄｄｒＺＳは、最小変換ブロック(ｔｒａｎｓｆｏｒｍ ｂｌｏｃｋ)におけるｚ−スキャン順序配列を意味し、ｌｏｇ２ＭｉｎＴｒａｆｏＳｉｚｅは、最小変換ブロックの大きさを意味する。)
【０１４５】
[３]ｍｉｎＢｌｏｃｋＡｄｄｒＮを(ｘＮ,ｙＮ)位置を有する隣接ブロックに対するｚ−スキャン順序に最小輝度ブロックの住所と設定する。
【０１４６】
もし、以下の条件((１)乃至(４))のうち一つでも‘トルー’の場合、ｍｉｎＢｌｏｃｋＡｄｄｒＮを‘−１’に設定する。
【０１４７】
(１)ｘＮが‘０’より小さい。
【０１４８】
(２)ｙＮが‘０’より小さい。
【０１４９】
(３)ｘＮがｐｉｃ_ｗｉｄｔｈ_ｉｎ_ｌｕｍａ_ｓａｍｐｌｅ(映像の幅)より大きい。
【０１５０】
(４)ｙＮがｐｉｃ_ｈｅｉｇｈｔ_ｉｎ_ｌｕｍａ_ｓａｍｐｌｅ(映像の幅)より大きい。
【０１５１】
そうでない場合(即ち、(ｘＮ,ｙＮ)位置がピクチャ境界内の場合)、以下を適用する。
【０１５２】
ｍｉｎＢｌｏｃｋＡｄｄｒＮ＝ＭｉｎＴｂＡｄｄｒＺＳ[ｘＮ>>Ｌｏｇ２ＭｉｎＴｒａｆｏＳｉｚｅ][ｙＮ>>Ｌｏｇ２ＭｉｎＴｒａｆｏＳｉｚｅ]
【０１５３】
[４]隣接ブロック可用性情報ａｖａｉｌａｂｌｅＮは、下記の過程を介して誘導される。
【０１５４】
もし、以下の条件((１)乃至(４))うち一つでも‘トルー(ｔｒｕｅ)’の場合、ａｖａｉｌａｂｌｅＮは‘フォールス(ｆａｌｓｅ)’に設定する。
【０１５５】
(１)ｍｉｎＢｌｏｃｋＡｄｄｒＮが‘０’より小さい。
【０１５６】
(２)ｍｉｎＢｌｏｃｋＡｄｄｒＮがｍｉｎＢｌｏｃｋＡｄｄｒＣｕｒｒより大きい。
【０１５７】
(３)ｍｉｎＢｌｏｃｋＡｄｄｒＮを有する隣接ブロックを含んでいるスライスの住所インデックスがｍｉｎＢｌｏｃｋＡｄｄｒＣｕｒｒを有する現在ブロックを含んでいるスライスの住所インデックスと異なる。
【０１５８】
(４)ｍｉｎＢｌｏｃｋＡｄｄｒＮを有する隣接ブロックがｍｉｎＢｌｏｃｋＡｄｄｒＣｕｒｒを有する現在ブロックと異なるタイル(Ｔｉｌｅ)に位置する(ここで、タイルとは、映像をスライスに分けることと同じ概念であり、タイル間にはブロックの符号化情報を誘導しない)。
【０１５９】
そうでない場合、ａｖａｉｌａｂｌｅＮは‘トルー’に設定する。
【０１６０】
予測ブロック(ｐｒｅｄｉｃｔｉｏｎ ｂｌｏｃｋ)の可用性誘導過程
【０１６１】
[１]予測ブロック(ｐｒｅｄｉｃｔｉｏｎ ｂｌｏｃｋ)の可用性誘導過程において、入力は、下記の通りである。
【０１６２】
(ｘＣ,ｙＣ)：現在ピクチャの左上端位置と関連した現在輝度符号化ブロックの左上端位置；
【０１６３】
(ｎＣＳ)：現在ＣＵの大きさを示す変数；
【０１６４】
(ｘＰ,ｙＰ)：現在ピクチャの左上端位置と関連した現在輝度予測ブロックの左上端位置；
【０１６５】
(ｎＰｂＷ,ｎＰｂＨ)：現在ＣＵブロック内で現在ＰＵの幅と高さを示す変数；
【０１６６】
(ｐａｒｔＩｄｘ)：現在ＣＵブロック内で現在ＰＵのインデックス；
【０１６７】
(ｘＮ,ｙＮ)：現在ピクチャの左上端位置と関連した隣接ブロックの位置；
【０１６８】
予測ブロック(ｐｒｅｄｉｃｔｉｏｎ ｂｌｏｃｋ)の可用性誘導過程において、出力は、下記の通りである。
【０１６９】
ａｖａｉｌａｂｌｅＮ：(ｘＮ,ｙＮ)位置を有する隣接ブロックの可用性情報
【０１７０】
[２]変数ｓａｍｅＣｂは、現在輝度予測ブロックと隣接輝度予測ブロックが同じ輝度符号化ブロックであるかどうかを示すと定義する。
【０１７１】
もし、以下の条件((１)乃至(４))が全部‘トルー’の場合、ｓａｍｅＣｂを‘トルー’に設定する。
【０１７２】
(１)ｘＣがｘＮより小さいまたは同じである。
【０１７３】
(２)ｙＣがｙＮより小さいまたは同じである。
【０１７４】
(３)(ｘＣ＋ｎＣｂＳ)がｘＮより大きい。
【０１７５】
(４)(ｙＣ＋ｎＣｂＳ)がｙＮより大きい。
【０１７６】
そうでない場合、ｓａｍｅＣｂは‘フォールス’に設定する。
【０１７７】
ここで、ｓａｍｅＣｂが‘トルー’の場合、現在輝度予測ブロックと隣接輝度予測ブロックが同じ輝度符号化ブロックに属するかを意味し、またはその逆も可能である。
【０１７８】
[３]隣接予測ブロックの可用性情報ａｖａｉｌａｂｌｅＮは、下記のように誘導される。
【０１７９】
もし、ｓａｍｅＣｂが‘フォールス’の場合、ｚ−スキャン可用性誘導過程を適用し、ａｖａｉｌａｂｌｅＮを設定する。
【０１８０】
それに対し、もし、以下の条件((１)乃至(５))が全部‘トルー’の場合、ａｖａｉｌａｂｌｅＮを‘フォールス’に設定する。
【０１８１】
(１)(ｎＰｂＷ<<１)がｎＣｂＳと同じである。
【０１８２】
(２)(ｎＰｂＨ<<１)がｎＣｂＳと同じである。
【０１８３】
(３)ｐａｒｔＩｄｘが‘１’である。
【０１８４】
(４)(ｙＣ＋ｎＰｂＨ)がｙＮより小さいまたは同じである。
【０１８５】
(５)(ｘＣ＋ｎＰｂＷ)がｘＮより大きい。
【０１８６】
そうでない場合、ａｖａｉｌａｂｌｅＮを‘トルー’に設定する。
【０１８７】
ａｖａｉｌａｂｌｅＮが‘トルー’であり、且つＰｒｅｄＭｏｄｅ[ｘＮ][ｙＮ]がＭＯＤＥ_ＩＮＴＲＡの場合、ａｖａｉｌａｂｌｅＮを‘フォールス’に設定する。
【０１８８】
動きベクトルと参照ピクチャインデックスを誘導する過程
【０１８９】
[１]動きベクトルと参照ピクチャインデックスを誘導する過程において、入力は、下記の通りである。
【０１９０】
(ｘＣ,ｙＣ)：現在ＣＵ(Ｃｏｄｉｎｇ Ｕｎｉｔ)ブロックの左上端位置；
【０１９１】
(ｘＢ,ｙＢ)：現在ＰＵの左上端位置；
【０１９２】
(ｎＣＳ)：現在ＣＵの大きさを示す変数；
【０１９３】
(ｎＰＳＷ,ｎＰＳＨ)：現在ＰＵの幅と高さを示す変数；
【０１９４】
(ｐａｒｔＩｄｘ)：現在ＣＵブロック内で現在ＰＵのインデックス
【０１９５】
動きベクトルと参照ピクチャインデックスを誘導する過程において、出力は、下記の通りである。
【０１９６】
(ｍｖＬ０とｍｖＬ１)：輝度サンプルに対する動きベクトル；
【０１９７】
(ｍｖＣＬ０とｍｖＣＬ１)：色差サンプルに対する動きベクトル；
【０１９８】
参照ピクチャインデックス；ｒｅｆＩｄｘＬ０とｒｅｆＩｄｘＬ１
【０１９９】
ｐｒｅｄＦｌａｇＬ０とｐｒｅｄＦｌａｇＬ１：予測リスト利用可能可否(Ｌ０またはＬ１予測を実行するかどうか)を知らせる変数
【０２００】
[２]現在ＰＵブロックの位置をｘＰ＝ｘＣ＋ｘＢ、ｙＰ＝ｙＣ＋ｙＢに設定する。
【０２０１】
[３]ｍｖＬ０、ｍｖＬ１、ｒｅｆＩｄｘＬ０、ｒｅｆＩｄｘＬ１、ＰｒｅｄＦｌａｇＬ０、ＰｒｅｄＦｌａｇＬ１は、下記の過程を介して誘導される。
【０２０２】
もし、ＰｒｅｄＭｏｄｅがＭＯＤＥ_ＳＫＩＰの場合、マージモードのための輝度動きベクトル誘導過程を実行する。ここで、入力は、(ｘＣ,ｙＣ)、(ｘＰ,ｙＰ)、ｎＣＳ、ｎＰＳＷ、ｎＰＳＨ、ｐａｒｔＩｄｘであり、出力は、ｍｖＬ０、ｍｖＬ１、ｒｅｆＩｄｘＬ０、ｒｅｆＩｄｘＬ１、ＰｒｅｄＦｌａｇＬ０、ＰｒｅｄＦｌａｇＬ１である。
【０２０３】
それに対し、もし、ＰｒｅｄＭｏｄｅがＭＯＤＥ_ＩＮＴＥＲであり、且つ現在ＰＵブロックに対するｍｅｒｇｅ_ｆｌａｇが‘１’の場合、マージモードのための輝度動きベクトル誘導過程を実行する。ここで、入力は、(ｘＣ,ｙＣ)、(ｘＰ,ｙＰ)、ｎＣＳ、ｎＰＳＷ、ｎＰＳＨ、ｐａｒｔＩｄｘであり、出力は、ｍｖＬ０、ｍｖＬ１、ｒｅｆＩｄｘＬ０、ｒｅｆＩｄｘＬ１、ＰｒｅｄＦｌａｇＬ０、ＰｒｅｄＦｌａｇＬ１である。
【０２０４】
そうでない場合、ｍｖＬＸ、ｒｅｆＩｄｘＬＸ、ＰｒｅｄＦｌａｇＬＸは、シンタックス(ｓｙｎｔａｘ)要素ｒｅｆ_ｉｄｘ_ｌｘ、ｍｖｄ_ｌＸにより設定される。ここで、Ｘは、‘０’または‘１’に変わることができる。
【０２０５】
マージモードのための輝度動きベクトル誘導過程
【０２０６】
[１]マージモードのための輝度動きベクトル誘導過程において、入力は、下記の通りである。
【０２０７】
(ｘＣ,ｙＣ)：現在ＣＵ(Ｃｏｄｉｎｇ Ｕｎｉｔ)ブロックの左上端位置；
【０２０８】
(ｘＰ,ｙＰ)：現在ＰＵの左上端位置；
【０２０９】
(ｎＣＳ)：現在ＣＵの大きさを示す変数；
【０２１０】
(ｎＰＳＷ,ｎＰＳＨ)：現在ＰＵの幅と高さを示す変数；
【０２１１】
(ｐａｒｔＩｄｘ)：現在ＣＵブロック内で現在ＰＵのインデックス；
【０２１２】
マージモードのための輝度動きベクトル誘導過程において、出力は、下記の通りである。
【０２１３】
(ｍｖＬ０とｍｖＬ１)：輝度サンプルに対する動きベクトル；
【０２１４】
ｒｅｆＩｄｘＬ０とｒｅｆＩｄｘＬ１：参照ピクチャインデックス；
【０２１５】
ｐｒｅｄＦｌａｇＬ０とｐｒｅｄＦｌａｇＬ１：予測リスト利用可能可否(Ｌ０またはＬ１予測を実行するかどうか)を知らせる変数
【０２１６】
[２]変数ｓｉｎｇｌｅＭＣＬＦｌａｇ(共通のマージ候補リストフラグ)は、下記のように誘導される。
【０２１７】
もし、ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２の値が‘０’より大きく、且つｎＣＳ値が‘８’の場合、ｓｉｎｇｌｅＭＣＬＦｌａｇに‘１’を設定する。
【０２１８】
そうでない場合、ｓｉｎｇｌｅＭＣＬＦｌａｇに‘０’を設定する。
【０２１９】
[３]現在ＰＵの左上端位置(ｘＰ,ｙＰ)、現在ＰＵの幅と高さを示す変数(ｎＰＳＷ,ｎＰＳＨ)は、下記のように誘導される。
【０２２０】
もし、ｓｉｎｇｌｅＭＣＬＦｌａｇが‘１’の場合、ｘＰにｘＣを入力し、ｙＰにｙＣを入力し、ｎＰＳＷとｎＰＳＨにｎＣＳを入力する。
【０２２１】
補足説明：ｓｉｎｇｌｅＭＣＬＦｌａｇの値が‘１’に設定される場合、一つのＣＵ内の全てのＰＵブロックは、パーティション形態に関係なしで２Ｎ×２Ｎ ＰＵに対するマージ候補リストを共有する。
【０２２２】
[４]マージ符号化モードで使用するマージ候補リストを構成し、現在ＰＵに対する動き情報(ｍｖＬ０、ｍｖＬ１、ｒｅｆＩｄｘＬ０、ｒｅｆＩｄｘＬ１、ＰｒｅｄＦｌａｇＬ０、ＰｒｅｄＦｌａｇＬ１)を設定するステップは、下記のような順序に実行される。
【０２２３】
[４−１]現在ＰＵを含む現在ＣＵの隣接ＰＵからマージ動き候補を設定する過程を実行する。
【０２２４】
ここで、入力は、(ｘＰ,ｙＰ)、ｎＰＳＨ、ｎＰＳＷ、ｓｉｎｇｌｅＭＣＬＦｌａｇであり、出力は、ａｖａｉｌａｂｌｅＦｌａｇＮ(隣接ＰＵの使用可能可否を知らせる変数)、ｍｖＬ０Ｎ、ｍｖＬ１Ｎ、ｒｅｆＩｄｘＬ０Ｎ、ｒｅｆＩｄｘＬ１Ｎ、ＰｒｅｄＦｌａｇＬ０Ｎ、ＰｒｅｄＦｌａｇＬ１Ｎである(ここで、Ｎは、図１２のＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２に変わることができ、Ｘは、‘０’または‘１’に変わることができる)。
【０２２５】
[４−２]時間的マージ動き候補を使用するための参照ピクチャインデックスｒｅｆＩｄｘＬＸは、‘０’に設定される。ここで、Ｘは、‘０’または‘１’に変わることができる。
【０２２６】
[４−３]時間的に類推された動き情報をマージ動き候補に設定する過程を実行する。ここで、入力は、(ｘＰ,ｙＰ)、ｎＰＳＨ、ｎＰＳＷ、ｒｅｆＩｄｘＬＸであり、出力は、ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌ(時間的に類推された動き情報の使用可能可否を知らせる変数)、ｍｖＬＸＣｏｌ(時間的に類推された動き情報)である。
【０２２７】
ａｖａｉｌａｂｌｅＦｌａｇＣｏｌ(時間的に類推された動き情報の使用可能可否を知らせる変数)とＰｒｅｄＦｌａｇＬＸＣｏｌ(時間的に類推された動き情報に対する予測リスト利用可能可否(Ｌ０またはＬ１予測を実行するかどうか)を知らせる変数)は、下記のように設定される。
【０２２８】
ａｖａｉｌａｂｌｅＦｌａｇＣｏｌ＝ａｖａｉｌａｂｌｅＦｌａｇＬ０Ｃｏｌ||ａｖａｉｌａｂｌｅＦｌａｇＬ１Ｃｏｌ
【０２２９】
ＰｒｅｄＦｌａｇＬＸＣｏｌ＝ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌ
【０２３０】
[４−４]次に、マージ候補リストを下記のように構成する。
【０２３１】
図１２は、現在ブロックのマージ候補リスト生成を説明するための現在ブロック及び隣接ブロックを示す。
【０２３２】
現在ブロック、即ち、予測対象ブロックの左上端に存在するピクセルの位置を(ｘＰ,ｙＰ)とし、予測対象ブロックの幅をｎＰＳＷ、予測対象ブロックの高さをｎＰＳＨという変数で定義する。
【０２３３】
以下、本発明の実施例では、現在ブロックの空間的な隣接予測ブロックは、(ｘＰ−１,ｙＰ＋ｎＰＳＨ−１)に存在するピクセルを含む左側Ａ１ブロック、(ｘＰ−１,ｙＰ＋ｎＰＳＨ)に存在するピクセルを含むＡ０ブロック、(ｘＰ＋ｎＰＳＷ,ｙＰ−１)に位置するピクセルを含むＢ０ブロック、(ｘＰ＋ｎＰＳＷ−ＭｉｎＰｕＳｉｚｅ,ｙＰ−１)に位置するピクセルを含むＢ１ブロック、(ｘＰ−ＭｉｎＰｕＳｉｚｅ,ｙＰ−１)に位置するピクセルを含むＢ２ブロックを含むことができる。
【０２３４】
図１２のＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２、Ｃｏｌの順に該当ブロックの動き情報が使用可能な場合、該当ブロックの動き情報をマージ候補リストに順序通りに入力する。ここで、Ｃｏｌは、時間的に類推された動き情報を意味する。
【０２３５】
[４−５]マージ候補リスト内で同じ動き情報が存在する場合、該当動き情報を一つのみ残すステップを実行する。
【０２３６】
[４−６]マージ候補リストの動き情報個数を設定し、最大マージ候補リストの個数を‘５’に設定するステップを実行する。
【０２３７】
[４−７]Ｂピクチャの時、結合両予測マージ候補を追加するステップを実行する。
【０２３８】
[４−８]ゼロ(０,０)動き情報をマージ候補に追加するステップを実行する。
【０２３９】
[４−９]マージ候補リストでｍｅｒｇｅ_ｉｄｘに存在する動き情報を現在ＰＵの動き情報に設定するステップを実行する。
【０２４０】
現在ＰＵの隣接ＰＵ(空間的ＰＵ)からマージ動き候補を設定するステップ
【０２４１】
[１]現在ＰＵの隣接ＰＵ(空間的ＰＵ)からマージ動き候補を設定するステップにおいて、入力は、下記の通りである。
【０２４２】
(ｘＣ,ｙＣ)：現在ＣＵ(Ｃｏｄｉｎｇ Ｕｎｉｔ)ブロックの左上端位置；
【０２４３】
(ｘＰ,ｙＰ)：現在ＰＵの左上端位置；
【０２４４】
(ｎＣＳ)：現在ＣＵの大きさを示す変数；
【０２４５】
(ｎＰＳＷ,ｎＰＳＨ)：現在ＰＵの幅と高さを示す変数；
【０２４６】
ｓｉｎｇｌｅＭＣＬＦｌａｇ：現在ＣＵに対する共通のマージ候補リストの使用可否を示す変数；
【０２４７】
(ｐａｒｔＩｄｘ)：現在ＣＵブロック内で現在ＰＵのインデックス；
【０２４８】
現在ＰＵの隣接ＰＵ(空間的ＰＵ)からマージ動き候補を設定するステップにおいて、出力は、下記の通りである(ここで、Ｎは、図１２のＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２に変わることができ、Ｘは、‘０’または‘１’に変わることができる)。
【０２４９】
ａｖａｉｌａｂｌｅＦｌａｇＮ：隣接ＰＵ Ｎの動き情報可用性可否を知らせる変数；
【０２５０】
ｒｅｆＩｄｘＬＸＮ：隣接ＰＵ Ｎの参照インデックス；
【０２５１】
ｐｒｅｄＦｌａｇＬＸＮ：隣接ＰＵ Ｎに対する予測リスト利用可能可否を知らせる変数；
【０２５２】
ｍｖＬＸＮ：隣接ＰＵ Ｎに対する動きベクトル
【０２５３】
[２]下記[３]の過程を介して隣接ＰＵ Ａ０、Ａ１、Ｂ０、Ｂ１またはＢ２のａｖａｉｌａｂｌｅＦｌａｇＮを誘導するために、下記の左側優先決定方式による誘導順序(制限)を適用する。
【０２５４】
Ａ１は、Ａ０、Ｂ０、Ｂ１、そしてＢ２より先にａｖａｉｌａｂｌｅＦｌａｇＮ(ここで、Ｎ＝Ａ１)を誘導しなければならない。
【０２５５】
Ｂ１は、Ｂ０とＢ２より先にａｖａｉｌａｂｌｅＦｌａｇＮ(ここで、Ｎ＝Ｂ１)を誘導しなければならない。
【０２５６】
Ｂ２は、Ａ０、Ａ１、Ｂ０、そしてＢ１の次にａｖａｉｌａｂｌｅＦｌａｇＮ(ここで、Ｎ＝Ｂ２)を誘導しなければならない。
【０２５７】
前記左側優先決定方式の順序制約に合う隣接ブロックの動き情報可用性誘導順序の例は、下記の通りである：
【０２５８】
Ａ１→Ｂ１→Ａ０→Ｂ０→Ｂ２
【０２５９】
Ａ１→Ｂ１→Ｂ０→Ａ０→Ｂ２
【０２６０】
Ａ１→Ｂ１→Ａ０及びＢ０(並列誘導)→Ｂ２
【０２６１】
Ａ１→Ａ０→Ｂ１→Ｂ０→Ｂ２
【０２６２】
Ａ１→Ａ０及びＢ１(並列誘導)→Ｂ０→Ｂ２
【０２６３】
[３]現在ＰＵの隣接ＰＵ(空間的ＰＵ)がマージ動き候補として使用可能かどうかを判断するための過程は、以下の内容を適用する(ここで、隣接ＰＵは、図１２のＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２を意味し、Ｎは、図１２のＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２に変わることができ、(ｘＮ,ｙＮ)は、(ｘＣ−１,ｙＣ＋ｎＣＳ)、(ｘＣ−１,ｙＣ＋ｎＣＳ−１)、(ｘＣ＋ｎＣＳ,ｙＣ−１)、(ｘＣ＋ｎＣＳ−１,ｙＣ−１)、(ｘＣ−１,ｙＣ−１)に変わることができる)。
【０２６４】
[３−１]隣接ＰＵの可用性を判断する過程を実行し、入力は、(ｘＣ,ｙＣ)、(ｘＰ,ｙＰ)、ｎＰｂＷ、ｎＰｂＨ、(ｘＮ,ｙＮ)、そしてｐａｒｔＩｄｘであり、出力は、(ｘＮ,ｙＮ)に位置したＰＵの可用性情報ａｖａｉｌａｂｌｅＮである。
【０２６５】
[３−３]もし、以下の条件((１)乃至(１０))のうち一つでも‘トルー’の場合、ａｖａｉｌａｂｌｅＦｌａｇＮは‘０’に設定され、ｍｖＬＸＮは‘０,０’に設定される。
【０２６６】
(１)(ｘＰ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))が(ｘＮ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))と同じであり、(ｙＰ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))が(ｙＮ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))と同じである。
【０２６７】
(２)ＮがＢ２であり、ａｖａｉｌａｂｌｅＦｌａｇＡ０＋ａｖａｉｌａｂｌｅＦｌａｇＡ１＋ａｖａｉｌａｂｌｅＦｌａｇＢ０＋ａｖａｉｌａｂｌｅＦｌａｇＢ１が‘４’である。
【０２６８】
(３)[ｘＮ,ｙＮ]の位置にあるＰＵが使用不可能であり、または画面内モードに符号化された。即ち、ａｖａｉｌａｂｌｅＮが‘０’である。
【０２６９】
(４)ｓｉｎｇｌｅＭＣＬＦｌａｇが‘０’であり、現在ＰＵのパーティション形態がＰＡＲＴ_２Ｎ×ＮまたはＰＡＲＴ_２Ｎ×ｎＵまたはＰＡＲＴ_２Ｎ×ｎＤであり、ＰａｒｔＩｄｘが‘１’であり、Ｎが‘Ｂ１’である。
【０２７０】
(５)ｓｉｎｇｌｅＭＣＬＦｌａｇが‘０’であり、現在ＰＵのパーティション形態がＰＡＲＴ_Ｎ×２ＮまたはＰＡＲＴ_ｎＬ×２ＮまたはＰＡＲＴ_ｎＲ×２Ｎであり、ＰａｒｔＩｄｘが‘１’であり、Ｎが‘Ａ１’である。
【０２７１】
(６)動き情報同一性判断過程として、ＮがＢ１であり、(ｘＡ１,ｙＡ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０２７２】
(７)動き情報同一性判断過程として、ＮがＢ０であり、(ｘＢ１,ｙＢ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０２７３】
(８)動き情報同一性判断過程として、ＮがＡ０であり、(ｘＡ１,ｙＡ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０２７４】
(９)動き情報同一性判断過程として、ＮがＢ２であり、(ｘＡ１,ｙＡ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０２７５】
(１０)動き情報同一性判断過程として、ＮがＢ２であり、(ｘＢ１,ｙＢ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０２７６】
そうでない場合、ａｖａｉｌａｂｌｅＦｌａｇＮは‘１’に設定され、ｍｖＬＸＮ、ｒｅｆＩｄｘＬＸＮ、ｐｒｅｄＦｌａｇＬＸＮは、各々、ｍｖＬＸ[ｘＮ,ｙＮ]、ｒｅｆＩｄｘＬＸ[ｘＮ,ｙＮ]、ｐｒｅｄＦｌａｇＬＸ[ｘＮ,ｙＮ]に設定される。
【０２７７】
方法１の現在ＰＵの隣接ＰＵ(空間的ＰＵ)からマージ動き候補を設定するステップは、本発明の一例によって下記のように変形されることができる。
【０２７８】
[１]現在ＰＵの隣接ＰＵ(空間的ＰＵ)からマージ動き候補を設定するステップの入力は、下記の通りである。
【０２７９】
(ｘＣ,ｙＣ)：現在ＣＵ(Ｃｏｄｉｎｇ Ｕｎｉｔ)ブロックの左上端位置；
【０２８０】
(ｘＰ,ｙＰ)：現在ＰＵの左上端位置；
【０２８１】
(ｎＣＳ)：現在ＣＵの大きさを示す変数；
【０２８２】
(ｎＰＳＷ,ｎＰＳＨ)：現在ＰＵの幅と高さを示す変数；
【０２８３】
ｓｉｎｇｌｅＭＣＬＦｌａｇ：現在ＣＵに対する共通のマージ候補リストの使用可否を示す変数；
【０２８４】
(ｐａｒｔＩｄｘ)：現在ＣＵブロック内で現在ＰＵのインデックス
【０２８５】
このステップにおいて、出力は、下記の通りである(ここで、Ｎは、図１２のＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２に変わることができ、Ｘは、‘０’または‘１’に変わることができる)。
【０２８６】
ａｖａｉｌａｂｌｅＦｌａｇＮ：隣接ＰＵ Ｎの動き情報可用性可否を知らせる変数；
【０２８７】
ｒｅｆＩｄｘＬＸＮ：隣接ＰＵ Ｎの参照インデックス；
【０２８８】
ｐｒｅｄＦｌａｇＬＸＮ：隣接ＰＵ Ｎに対する予測リスト利用可能可否を知らせる変数；
【０２８９】
ｍｖＬＸＮ：隣接ＰＵ Ｎに対する動きベクトル；
【０２９０】
[２]下記[３]の過程を介して隣接ＰＵ Ａ０、Ａ１、Ｂ０、Ｂ１、またはＢ２のａｖａｉｌａｂｌｅＦｌａｇＮを誘導するために、下記の誘導順序(制限)を適用する。
【０２９１】
Ｂ２は、Ａ０、Ａ１、Ｂ０、そしてＢ１の次にａｖａｉｌａｂｌｅＦｌａｇＮ(ここで、Ｎ＝Ｂ２)を誘導する。
【０２９２】
[３]現在ＰＵの隣接ＰＵ(空間的ＰＵ)がマージ動き候補として使用可能かどうかを判断するための過程は、下記の通りである(ここで、隣接ＰＵは、図１２のＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２であり、Ｎは、図１２のＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２に変わることができ、(ｘＮ,ｙＮ)は、(ｘＣ−１,ｙＣ＋ｎＣＳ)、(ｘＣ−１,ｙＣ＋ｎＣＳ−１)、(ｘＣ＋ｎＣＳ,ｙＣ−１)、(ｘＣ＋ｎＣＳ−１,ｙＣ−１)、(ｘＣ−１,ｙＣ−１)に変わることができる)。
【０２９３】
[３−１]隣接ＰＵの可用性を判断し、このステップにおいて、入力は、(ｘＣ,ｙＣ)、(ｘＰ,ｙＰ)、ｎＰｂＷ、ｎＰｂＨ、(ｘＮ,ｙＮ)、そしてｐａｒｔＩｄｘであり、出力は、(ｘＮ,ｙＮ)に位置したＰＵの可用性情報ａｖａｉｌａｂｌｅＮである。
【０２９４】
[３−２]もし、以下の条件((１)乃至(３))のうち一つでも‘トルー’の場合、ａｖａｉｌａｂｌｅＮは‘０’に設定する。
【０２９５】
(１)もし、(ｘＰ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))が(ｘＮ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))と同じであり、(ｙＰ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))が(ｙＮ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))と同じである。
【０２９６】
(２)ｓｉｎｇｌｅＭＣＬＦｌａｇが‘０’であり、現在ＰＵのパーティション形態がＰＡＲＴ_２Ｎ×ＮまたはＰＡＲＴ_２Ｎ×ｎＵまたはＰＡＲＴ_２Ｎ×ｎＤであり、ＰａｒｔＩｄｘが‘１’であり、Ｎが‘Ｂ１’である。
【０２９７】
(３)ｓｉｎｇｌｅＭＣＬＦｌａｇが‘０’であり、現在ＰＵのパーティション形態がＰＡＲＴ_Ｎ×２ＮまたはＰＡＲＴ_ｎＬ×２ＮまたはＰＡＲＴ_ｎＲ×２Ｎであり、ＰａｒｔＩｄｘが‘１’であり、Ｎが‘Ａ１’である。
【０２９８】
[３−２]もし、以下の条件のうち一つでも‘トルー’の場合、ａｖａｉｌａｂｌｅＦｌａｇＮは‘０’に設定され、ｍｖＬＸＮは(０,０)に設定される。
【０２９９】
(１)ＮがＢ２であり、ａｖａｉｌａｂｌｅＦｌａｇＡ０＋ａｖａｉｌａｂｌｅＦｌａｇＡ１＋ａｖａｉｌａｂｌｅＦｌａｇＢ０＋ａｖａｉｌａｂｌｅＦｌａｇＢ１が‘４’である。
【０３００】
(２)[ｘＮ,ｙＮ]の位置にあるＰＵが使用不可能であり、またはイントラに符号化された。即ち、ａｖａｉｌａｂｌｅＮが‘０’である。
【０３０１】
(３)動き情報同一性判断過程として、ＮがＢ１であり、(ｘＡ１,ｙＡ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３０２】
(４)動き情報同一性判断過程として、ＮがＢ０であり、(ｘＢ１,ｙＢ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３０３】
(５)動き情報同一性判断過程として、ＮがＡ０であり、(ｘＡ１,ｙＡ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３０４】
(６)動き情報同一性判断過程として、ＮがＢ２であり、(ｘＡ１,ｙＡ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３０５】
(７)動き情報同一性判断過程として、ＮがＢ２であり、(ｘＢ１,ｙＢ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３０６】
[３−３]そうでない場合、ａｖａｉｌａｂｌｅＦｌａｇＮは‘１’に設定され、ｍｖＬＸＮ、ｒｅｆＩｄｘＬＸＮ、ｐｒｅｄＦｌａｇＬＸＮには、各々、ｍｖＬＸ[ｘＮ,ｙＮ]、ｒｅｆＩｄｘＬＸ[ｘＮ,ｙＮ]、ｐｒｅｄＦｌａｇＬＸ[ｘＮ,ｙＮ]が設定される。
【０３０７】
方法１の現在ＰＵの隣接ＰＵ(空間的ＰＵ)からマージ動き候補を設定するステップは、本発明の他の例によって下記のように変形されることができる。
【０３０８】
[１]現在ＰＵの隣接ＰＵ(空間的ＰＵ)からマージ動き候補を設定するステップにおいて、入力は、下記の通りである。
【０３０９】
(ｘＣ,ｙＣ)：現在ＣＵ(Ｃｏｄｉｎｇ Ｕｎｉｔ)ブロックの左上端位置；
【０３１０】
(ｘＰ,ｙＰ)：現在ＰＵの左上端位置；
【０３１１】
(ｎＣＳ)：現在ＣＵの大きさを示す変数；
【０３１２】
(ｎＰＳＷ,ｎＰＳＨ)：現在ＰＵの幅と高さを示す変数；
【０３１３】
ｓｉｎｇｌｅＭＣＬＦｌａｇ：現在ＣＵに対する共通のマージ候補リストの使用可否を示す変数；
【０３１４】
(ｐａｒｔＩｄｘ)：現在ＣＵブロック内で現在ＰＵのインデックス：
【０３１５】
このステップにおいて、出力は、下記の通りである。ここで、Ｎは、 図１２のＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２に変わることができ、Ｘは‘０’または‘１’に変わることができる。
【０３１６】
ａｖａｉｌａｂｌｅＦｌａｇＮ：隣接ＰＵ Ｎの動き情報可用性可否を知らせる変数；
【０３１７】
ｒｅｆＩｄｘＬＸＮ：隣接ＰＵ Ｎの参照インデックス；
【０３１８】
ｐｒｅｄＦｌａｇＬＸＮ：隣接ＰＵ Ｎに対する予測リスト利用可能可否を知らせる変数；
【０３１９】
ｍｖＬＸＮ：隣接ＰＵ Ｎに対する動きベクトル
【０３２０】
[２]現在ＰＵの隣接ＰＵ(空間的ＰＵ)がマージ動き候補として使用可能かどうかを判断するための過程は、下記の内容を適用する。ここで、隣接ＰＵは、図１２のＡ１、Ｂ１、Ｂ０、Ａ０を意味し、Ｎは、図１２のＡ１、Ｂ１、Ｂ０、Ａ０に変わることができ、(ｘＮ,ｙＮ)は、(ｘＣ−１,ｙＣ＋ｎＣＳ)、(ｘＣ−１,ｙＣ＋ｎＣＳ−１)、(ｘＣ＋ｎＣＳ,ｙＣ−１)、(ｘＣ＋ｎＣＳ−１,ｙＣ−１)に変わることができる。
【０３２１】
[２−１]隣接ＰＵの可用性を判断する過程を実行し、ここで、入力は、(ｘＣ,ｙＣ)、(ｘＰ,ｙＰ)、ｎＰｂＷ、ｎＰｂＨ、(ｘＮ,ｙＮ)、そしてｐａｒｔＩｄｘであり、出力は、(ｘＮ,ｙＮ)に位置したＰＵの可用性情報ａｖａｉｌａｂｌｅＮである。
【０３２２】
[２−２]もし、以下の条件((１)乃至(１０))のうち一つでも‘トルー’の場合、ａｖａｉｌａｂｌｅＮは‘０’に設定する。
【０３２３】
(１)(ｘＰ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))が(ｘＮ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))と同じであり、(ｙＰ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))が(ｙＮ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))と同じである。
【０３２４】
(２)ｓｉｎｇｌｅＭＣＬＦｌａｇが‘０’であり、現在ＰＵのパーティション形態がＰＡＲＴ_２Ｎ×ＮまたはＰＡＲＴ_２Ｎ×ｎＵまたはＰＡＲＴ_２Ｎ×ｎＤであり、ＰａｒｔＩｄｘが‘１’であり、Ｎが‘Ｂ１’である。
【０３２５】
(３)ｓｉｎｇｌｅＭＣＬＦｌａｇが‘０’であり、現在ＰＵのパーティション形態がＰＡＲＴ_Ｎ×２ＮまたはＰＡＲＴ_ｎＬ×２ＮまたはＰＡＲＴ_ｎＲ×２Ｎであり、ＰａｒｔＩｄｘが‘１’であり、Ｎが‘Ａ１’である。
【０３２６】
(４)もし、以下の条件のうち一つでも‘トルー’の場合、ａｖａｉｌａｂｌｅＦｌａｇＮは‘０’に設定され、ｍｖＬＸＮは‘０,０’に設定される。
【０３２７】
(５)[ｘＮ,ｙＮ]の位置にあるＰＵが使用不可能であり、またはイントラに符号化された(即ち、ａｖａｉｌａｂｌｅＮが‘０’である)。
【０３２８】
(６)動き情報同一性判断過程として、ＮがＢ１であり、ａｖａｉｌａｂｌｅＡ１＝１であり、そして(ｘＡ１,ｙＡ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３２９】
(７)動き情報同一性判断過程として、ＮがＢ０であり、ａｖａｉｌａｂｌｅＢ１＝１であり、そして(ｘＢ１,ｙＢ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３３０】
(８)動き情報同一性判断過程として、ＮがＡ０であり、ａｖａｉｌａｂｌｅＡ１＝１であり、そして(ｘＡ１,ｙＡ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３３１】
(９)動き情報同一性判断過程として、ＮがＢ２であり、ａｖａｉｌａｂｌｅＡ１＝１であり、そして(ｘＡ１,ｙＡ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３３２】
(１０)動き情報同一性判断過程として、ＮがＢ２であり、ａｖａｉｌａｂｌｅＢ１＝１であり、そして(ｘＢ１,ｙＢ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３３３】
そうでない場合、ａｖａｉｌａｂｌｅＦｌａｇＮは‘１’に設定され、ｍｖＬＸＮ、ｒｅｆＩｄｘＬＸＮ、ｐｒｅｄＦｌａｇＬＸＮには、各々、ｍｖＬＸ[ｘＮ,ｙＮ]、ｒｅｆＩｄｘＬＸ[ｘＮ,ｙＮ]、ｐｒｅｄＦｌａｇＬＸ[ｘＮ,ｙＮ]が設定される。
【０３３４】
[３]Ａ０、Ａ１、Ｂ０、そしてＢ１の次にＢ２のａｖａｉｌａｂｌｅＦｌａｇＮ(ここで、Ｎ＝Ｂ２)が誘導される。現在ＣＵの隣接ＰＵ(空間的ＰＵ)のうち、Ｂ２がマージ動き候補として使用可能かどうかを判断するための過程は、下記の内容を適用する。ここで、(ｘＢ２,ｙＢ２)は、(ｘＣ−１,ｙＣ−１)に変わることができる。
【０３３５】
[３−１]隣接ＰＵの可用性を判断する過程を実行し、ここで、入力は、(ｘＣ,ｙＣ)、(ｘＰ,ｙＰ)、ｎＰｂＷ、ｎＰｂＨ、(ｘＢ２,ｙＢ２)、そしてｐａｒｔＩｄｘであり、出力は、(ｘＢ２,ｙＢ２)に位置したＰＵの可用性情報ａｖａｉｌａｂｌｅＢ２である。
【０３３６】
[３−２]もし、以下の条件が‘トルー’の場合、ａｖａｉｌａｂｌｅＦｌａｇＢ２は‘０’に設定され、ｍｖＬＸＢ２は‘０,０’に設定される。
【０３３７】
ａｖａｉｌａｂｌｅＦｌａｇＡ０＋ａｖａｉｌａｂｌｅＦｌａｇＡ１＋ａｖａｉｌａｂｌｅＦｌａｇＢ０＋ａｖａｉｌａｂｌｅＦｌａｇＢ１が‘４’である。
【０３３８】
そうでない場合、ａｖａｉｌａｂｌｅＦｌａｇＢ２は‘１’に設定され、ｍｖＬＸＢ２、ｒｅｆＩｄｘＬＸＢ２、ｐｒｅｄＦｌａｇＬＸＢ２には、各々、ｍｖＬＸ[ｘＢ２,ｙＢ２]、ｒｅｆＩｄｘＬＸ[ｘＢ２,ｙＢ２]、ｐｒｅｄＦｌａｇＬＸ[ｘＢ２,ｙＢ２]が設定される。
【０３３９】
方法１の現在ＰＵの隣接ＰＵ(空間的ＰＵ)からマージ動き候補を設定するステップは、本発明の他の例によって下記のように変形されることができる。
【０３４０】
[１]現在ＰＵの隣接ＰＵ(空間的ＰＵ)からマージ動き候補を設定するステップにおいて、入力は、下記の通りである。
【０３４１】
(ｘＣ,ｙＣ)：現在ＣＵ(Ｃｏｄｉｎｇ Ｕｎｉｔ)ブロックの左上端位置；
【０３４２】
(ｘＰ,ｙＰ)：現在ＰＵの左上端位置；
【０３４３】
(ｎＣＳ)：現在ＣＵの大きさを示す変数；
【０３４４】
(ｎＰＳＷ,ｎＰＳＨ)：現在ＰＵの幅と高さを示す変数；
【０３４５】
ｓｉｎｇｌｅＭＣＬＦｌａｇ：現在ＣＵに対する共通のマージ候補リストの使用可否を示す変数；
【０３４６】
現在ＣＵブロック内で現在ＰＵのインデックス：(ｐａｒｔＩｄｘ)
【０３４７】
このステップにおいて、出力は、下記の通りである(ここで、Ｎは、 図１２のＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２に変わることができ、Ｘは‘０’または‘１’に変わることができる)。
【０３４８】
ａｖａｉｌａｂｌｅＦｌａｇＮ：隣接ＰＵ Ｎの動き情報可用性可否を知らせる変数；
【０３４９】
ｒｅｆＩｄｘＬＸＮ：隣接ＰＵ Ｎの参照インデックス；
【０３５０】
ｐｒｅｄＦｌａｇＬＸＮ：隣接ＰＵ Ｎに対する予測リスト利用可能可否を知らせる変数；
【０３５１】
ｍｖＬＸＮ：隣接ＰＵ Ｎに対する動きベクトル
【０３５２】
[２]現在ＰＵの隣接ＰＵ(空間的ＰＵ)がマージ動き候補として使用可能かどうかを判断するための過程は、左側優先決定方式によってＡ１→Ｂ１→Ｂ０→Ａ０→Ｂ２ブロックの順序に実行される。ここで、隣接ＰＵは、図１２のＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２を意味し、Ｎは、 図１２のＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２に変わることができ、(ｘＮ,ｙＮ)は、(ｘＣ−１,ｙＣ＋ｎＣＳ)、(ｘＣ−１,ｙＣ＋ｎＣＳ−１)、(ｘＣ＋ｎＣＳ,ｙＣ−１)、(ｘＣ＋ｎＣＳ−１,ｙＣ−１)、(ｘＣ−１,ｙＣ−１)に変わることができる。
【０３５３】
[２−１]隣接ＰＵの可用性を判断する過程を実行し、ここで、入力は、(ｘＣ,ｙＣ)、(ｘＰ,ｙＰ)、ｎＰｂＷ、ｎＰｂＨ、(ｘＮ,ｙＮ)、そしてｐａｒｔＩｄｘであり、出力は(ｘＮ,ｙＮ)に位置したＰＵの可用性情報ａｖａｉｌａｂｌｅＮである。
【０３５４】
[２−２]もし、以下の条件((１)乃至(１０))のうち一つでも‘トルー’の場合、ａｖａｉｌａｂｌｅＦｌａｇＮは‘０’に設定され、ｍｖＬＸＮは‘０,０’に設定される。
【０３５５】
(１)(ｘＰ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))が(ｘＮ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))と同じであり、(ｙＰ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))が(ｙＮ>>(ｌｏｇ２_ｐａｒａｌｌｅｌ_ｍｅｒｇｅ_ｌｅｖｅｌ_ｍｉｎｕｓ２＋２))と同じである。
【０３５６】
(２)ＮがＢ２であり、ａｖａｉｌａｂｌｅＦｌａｇＡ０＋ａｖａｉｌａｂｌｅＦｌａｇＡ１＋ａｖａｉｌａｂｌｅＦｌａｇＢ０＋ａｖａｉｌａｂｌｅＦｌａｇＢ１が‘４’である。
【０３５７】
(３)[ｘＮ,ｙＮ]の位置にあるＰＵが使用不可能であり、またはイントラに符号化された。即ち、ａｖａｉｌａｂｌｅＮが‘０’である。
【０３５８】
(４)ｓｉｎｇｌｅＭＣＬＦｌａｇが‘０’であり、現在ＰＵのパーティション形態がＰＡＲＴ_２Ｎ×ＮまたはＰＡＲＴ_２Ｎ×ｎＵまたはＰＡＲＴ_２Ｎ×ｎＤであり、ＰａｒｔＩｄｘが‘１’であり、Ｎが‘Ｂ１’である。
【０３５９】
(５)ｓｉｎｇｌｅＭＣＬＦｌａｇが‘０’であり、現在ＰＵのパーティション形態がＰＡＲＴ_Ｎ×２ＮまたはＰＡＲＴ_ｎＬ×２ＮまたはＰＡＲＴ_ｎＲ×２Ｎであり、ＰａｒｔＩｄｘが‘１’であり、Ｎが‘Ａ１’である。
【０３６０】
(６)動き情報同一性判断過程として、ＮがＢ１であり、(ｘＡ１,ｙＡ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３６１】
(７)動き情報同一性判断過程として、ＮがＢ０であり、(ｘＢ１,ｙＢ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３６２】
(８)動き情報同一性判断過程として、ＮがＡ０であり、(ｘＡ１,ｙＡ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３６３】
(９)動き情報同一性判断過程として、ＮがＢ２であり、(ｘＡ１,ｙＡ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３６４】
(１０)動き情報同一性判断過程として、ＮがＢ２であり、(ｘＢ１,ｙＢ１)に位置したＰＵの動き情報と(ｘＮ,ｙＮ)に位置した動き情報が同じである。
【０３６５】
そうでない場合、ａｖａｉｌａｂｌｅＦｌａｇＮは‘１’に設定され、ｍｖＬＸＮ、ｒｅｆＩｄｘＬＸＮ、ｐｒｅｄＦｌａｇＬＸＮには、各々、ｍｖＬＸ[ｘＮ,ｙＮ]、ｒｅｆＩｄｘＬＸ[ｘＮ,ｙＮ]、ｐｒｅｄＦｌａｇＬＸ[ｘＮ,ｙＮ]が設定される。
【０３６６】
前述した方法は、ブロックの大きさまたはＣＵ深さ等によって適用範囲を異なるようにすることができる。このように適用範囲を決定する変数(即ち、大きさまたは深さ情報)は、符号化器及び復号化器が予め決められた値を使用するように設定することもでき、プロファイルまたはレベルによって決められた値を使用するように設定することもでき、符号化器が変数値をビットストリームに記載すると、復号化器は、ビットストリームからこの値を誘導して使用することもできる。
【０３６７】
ＣＵ深さによって適用範囲を異なるようにする場合、以下の表１に例示したように、方法(Ａ)与えられた深さ以上の深さにのみ適用する方式、方法(Ｂ)与えられた深さ以下にのみ適用する方式、方法(Ｃ)与えられた深さにのみ適用する方式がある。
【０３６８】
【表１】
0006364450.tif 000002
【０３６９】
表１の“○”は、該当深さに可用性可否を判断する方法を適用することを示し、“Ｘ”は、該当深さに可用性可否を判断する方法を適用しないことを示す。
【０３７０】
表１を参照すると、ＣＵ深さが２の場合、前述した方法が全部適用されることができる。表１は、一つの例を示すものであり、これは変更可能である。
【０３７１】
前述した実施例において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、本発明は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序にまたは同時に発生できる。また、当該技術分野において、通常の知識を有する当業者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または流れ図の一つまたはそれ以上のステップが本発明の範囲に影響を及ぼさすに削除可能であることを理解することができる。
【０３７２】
前述した実施例は、多様な態様の例示を含む。多様な態様を示す全ての可能な組み合わせを記述することはできないが、当該技術分野の通常の知識を有する者であれば、他の組み合わせが可能であることを認識することができる。したがって、本発明は、特許請求の範囲内に属する全ての交替、修正、及び変更を含む。
【図１】
0006364450.tif 000003
【図２】
0006364450.tif 000004
【図３】
0006364450.tif 000005
【図４】
0006364450.tif 000006
【図５】
0006364450.tif 000007
【図６】
0006364450.tif 000008
【図７】
0006364450.tif 000009
【図８】
0006364450.tif 000010
【図９】
0006364450.tif 000011
【図１０】
0006364450.tif 000012
【図１１】
0006364450.tif 000013
【図１２】
0006364450.tif 000014