(57)【要約】【課題】圧縮効率を上げて情報送信量を減少させると同時に、映像（動画）エンコーディング／デコーディング過程の複雑さを軽減することができる予測方法とこの予測方法を利用する装置とを実現する。【解決手段】本発明は、動きベクトル予測子の選択方法に関し、現在ブロックに対する動きベクトル予測子の候補を選択するステップと、動きベクトル予測子の候補の中から現在ブロックに対する動きベクトル予測子を選択するステップと、を有し、現在ブロックに対する動きベクトル予測子の候補は、現在ブロックの左側周辺ブロックのうち、利用可能なブロックとして最初に検索された第１の候補ブロックの動きベクトルと、現在ブロックの上側周辺ブロックのうち、利用可能なブロックとして最初に検索された第２の候補ブロックの動きベクトルと、を有することができる。【選択図】図９
2020014254.tif 000002
【特許請求の範囲】
【請求項１】
現在ブロックに関する動きベクトル差（ＭＶＤ）情報を有するビデオ情報を受信するステップと、
確認順序に基づいて周辺ブロックグループから動きベクトル予測子（ＭＶＰ）候補を導出するステップであって、該周辺ブロックグループは、前記現在ブロックの右上側コーナーに位置する第１のブロックと前記第１のブロックの左側に隣接する第２のブロックと前記現在ブロックの左上側コーナーに位置する第３のブロックとから構成されるステップと、
前記ＭＶＰ候補に基づいて前記現在ブロックのＭＶＰを決定するステップと、
前記ＭＶＤ情報に基づいて前記現在ブロックのＭＶＤを導出するステップと、
前記現在ブロックの前記ＭＶＰおよび前記ＭＶＤに基づいて前記現在ブロックの動きベクトルを導出するステップと、
前記導出した動きベクトルに基づいて前記現在ブロックの予測ブロックを導出するステップと、
前記予測ブロックに基づいて復元ブロックを生成するステップと、を有し、
前記予測ブロックは、前記現在ブロックの予測されたサンプルを有し、
前記確認順序は、前記第１のブロック、前記第２のブロック、前記第３のブロックの順序として決定され、
前記ＭＶＰ候補を導出するステップは、第１の条件および第２の条件に基づいて実行され、
前記第１の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの参照ピクチャおよび参照ピクチャリストと同じ参照ピクチャおよび参照ピクチャリストを有するか否かであり、
前記第２の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの前記参照ピクチャと同じ参照ピクチャを有し、かつ、前記現在ブロックの前記参照ピクチャリストと異なる参照ピクチャリストを有するか否かであり、
前記ＭＶＰ候補を導出するステップにおいて、前記第１のブロックが前記第１の条件および前記第２の条件を満たさないと決定された場合、前記第２のブロックは、前記第１の条件または前記第２の条件を満たすか否かを確認される、デコーディング装置による映像デコーディング方法。
【請求項２】
前記ＭＶＰ候補を導出するステップにおいて、
前記第２のブロックが前記第１の条件を満たさないと決定された場合、前記第２のブロックは、前記第２の条件を満たすか否かを確認され、
前記第２のブロックが前記第２の条件を満たさないと決定された場合、前記第３のブロックは、前記第１の条件を満たすか否かを確認され、
前記第３のブロックが前記第１の条件を満たさないと決定された場合、前記第３のブロックは、前記第２の条件を満たすか否かを確認される、請求項１に記載の映像デコーディング方法。
【請求項３】
前記ＭＶＰ候補を導出するステップは、さらに第３の条件に基づいて実行され、
前記第３の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの参照ピクチャと異なる参照ピクチャを有するか否かである、請求項１に記載の映像デコーディング方法。
【請求項４】
前記ＭＶＰ候補を導出するステップにおいて、前記第１のブロック、前記第２のブロックおよび第３のブロックが前記第１の条件および前記第２の条件を満たさないと決定された場合、前記第１のブロックは、前記第３の条件を満たすか否かを確認される、請求項３に記載の映像デコーディング方法。
【請求項５】
現在ブロックに関する動きベクトル差（ＭＶＤ）情報を有するビデオ情報を受信するエントロピデコーディングモジュールと、
確認順序に基づいて周辺ブロックグループから動きベクトル予測子（ＭＶＰ）候補を導出し、該周辺ブロックグループは、前記現在ブロックの右上側コーナーに位置する第１のブロックと前記第１のブロックの左側に隣接する第２のブロックと前記現在ブロックの左上側コーナーに位置する第３のブロックとから構成され、
前記ＭＶＰ候補に基づいて前記現在ブロックのＭＶＰを決定し、
前記ＭＶＤ情報に基づいて前記現在ブロックのＭＶＤを導出し、
前記現在ブロックの前記ＭＶＰおよび前記ＭＶＤに基づいて前記現在ブロックの動きベクトルを導出し、
前記導出した動きベクトルに基づいて前記現在ブロックの予測ブロックを導出し、前記予測ブロックは、前記現在ブロックの予測されたサンプルを有する、予測モジュールと、
前記予測ブロックに基づいて復元ブロックを生成する加算モジュールと、を有し、
前記確認順序は、前記第１のブロック、前記第２のブロック、前記第３のブロックの順序として決定され、
前記ＭＶＰ候補を導出することは、第１の条件および第２の条件に基づいて実行され、
前記第１の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの参照ピクチャおよび参照ピクチャリストと同じ参照ピクチャおよび参照ピクチャリストを有するか否かであり、
前記第２の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの前記参照ピクチャと同じ参照ピクチャを有し、かつ、前記現在ブロックの前記参照ピクチャリストと異なる参照ピクチャリストを有するか否かであり、
前記ＭＶＰ候補を導出することにおいて、前記第１のブロックが前記第１の条件および前記第２の条件を満たさないと決定された場合、前記第２のブロックは、前記第１の条件または前記第２の条件を満たすか否かを確認される、映像デコーディング装置。
【請求項６】
確認順序に基づいて周辺ブロックグループから動きベクトル予測子（ＭＶＰ）候補を導出するステップであって、該周辺ブロックグループは、現在ブロックの右上側コーナーに位置する第１のブロックと前記第１のブロックの左側に隣接する第２のブロックと前記現在ブロックの左上側コーナーに位置する第３のブロックとから構成されるステップと、
前記ＭＶＰ候補に基づいて前記現在ブロックのＭＶＰを決定するステップと、
前記現在ブロックのＭＶＰに基づいて前記現在ブロックの動きベクトル差（ＭＶＤ）を導出するステップと、
前記現在ブロックのＭＶＤを表すＭＶＤ情報を生成するステップと、
前記ＭＶＤ情報を有するビデオ情報をエンコーディングするステップと、を有し、
前記確認順序は、前記第１のブロック、前記第２のブロック、前記第３のブロックの順序として決定され、
前記ＭＶＰ候補を導出するステップは、第１の条件および第２の条件に基づいて実行され、
前記第１の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの参照ピクチャおよび参照ピクチャリストと同じ参照ピクチャおよび参照ピクチャリストを有するか否かであり、
前記第２の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの前記参照ピクチャと同じ参照ピクチャを有し、かつ、前記現在ブロックの前記参照ピクチャリストと異なる参照ピクチャリストを有するか否かであり、
前記ＭＶＰ候補を導出するステップにおいて、前記第１のブロックが前記第１の条件および前記第２の条件を満たさないと決定された場合、前記第２のブロックは、前記第１の条件または前記第２の条件を満たすか否かを確認される、エンコーディング装置による映像エンコーディング方法。
【請求項７】
前記ＭＶＰ候補を導出するステップにおいて、
前記第２のブロックが前記第１の条件を満たさないと決定された場合、前記第２のブロックは、前記第２の条件を満たすか否かを確認され、
前記第２のブロックが前記第２の条件を満たさないと決定された場合、前記第３のブロックは、前記第１の条件を満たすか否かを確認され、
前記第３のブロックが前記第１の条件を満たさないと決定された場合、前記第３のブロックは、前記第２の条件を満たすか否かを確認される、請求項６に記載の映像エンコーディング方法。
【請求項８】
前記ＭＶＰ候補を導出するステップは、さらに第３の条件に基づいて実行され、
前記第３の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの参照ピクチャと異なる参照ピクチャを有するか否かである、請求項６に記載の映像エンコーディング方法。
【請求項９】
前記ＭＶＰ候補を導出するステップにおいて、前記第１のブロック、前記第２のブロックおよび第３のブロックが前記第１の条件および前記第２の条件を満たさないと決定された場合、前記第１のブロックは、前記第３の条件を満たすか否かを確認される、請求項８に記載の映像エンコーディング方法。
【請求項１０】
確認順序に基づいて周辺ブロックグループから動きベクトル予測子（ＭＶＰ）候補を導出し、該周辺ブロックグループは、現在ブロックの右上側コーナーに位置する第１のブロックと前記第１のブロックの左側に隣接する第２のブロックと前記現在ブロックの左上側コーナーに位置する第３のブロックとから構成され、
前記ＭＶＰ候補に基づいて前記現在ブロックのＭＶＰを決定し、
前記現在ブロックのＭＶＰに基づいて前記現在ブロックの動きベクトル差（ＭＶＤ）を導出し、
前記現在ブロックのＭＶＤを表すＭＶＤ情報を生成する、予測モジュールと、
前記ＭＶＤ情報を有するビデオ情報をエンコーディングするエントロピエンコーディングモジュールと、を有し、
前記確認順序は、前記第１のブロック、前記第２のブロック、前記第３のブロックの順序として決定され、
前記ＭＶＰ候補を導出することは、第１の条件および第２の条件に基づいて実行され、
前記第１の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの参照ピクチャおよび参照ピクチャリストと同じ参照ピクチャおよび参照ピクチャリストを有するか否かであり、
前記第２の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの前記参照ピクチャと同じ参照ピクチャを有し、かつ、前記現在ブロックの前記参照ピクチャリストと異なる参照ピクチャリストを有するか否かであり、
前記ＭＶＰ候補を導出することにおいて、前記第１のブロックが前記第１の条件および前記第２の条件を満たさないと決定された場合、前記第２のブロックは、前記第１の条件または前記第２の条件を満たすか否かを確認される、映像エンコーディング装置。
【請求項１１】
請求項１に記載の映像デコーディング方法をデコーディング装置に行わせるコンピュータプログラムを有するビデオ情報を記憶するデジタル記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像（動画）圧縮技術に関し、より具体的には、周辺ブロックの情報を利用して現在ブロックの情報を予測する方法に関する。
【背景技術】
【０００２】
最近、高解像度、高品質の映像に対する要求が多様な応用分野で増加している。しかし、映像が高解像度、高品質になるほど該映像に関する情報量も共に増加する。したがって、既存の有線／無線広帯域回線などの媒体を利用して映像情報を送信したり、既存の格納媒体を利用して映像情報を格納したりする場合、情報の送信コストと格納コストが増加するようになる。
【０００３】
高解像度、高品質の映像の情報を効果的に送信したり格納したりし、再生するために高効率の映像圧縮技術を利用することができる。
【０００４】
映像圧縮の効率を上げるために、現在ブロックの情報をそのまま送信せずに、現在ブロックの周辺ブロックの情報を利用して予測する方法を使用することができる。
【０００５】
予測方法として、インター予測とイントラ予測を利用することができる。
【０００６】
インター予測(inter prediction)方法では、他のピクチャの情報を参照して現在ピクチャ(picture)の画素値を予測し、イントラ予測方法(intra prediction)では、同じピクチャ内で画素間の関係を利用して画素値を予測する。
【０００７】
インター予測を実行する場合には、他のピクチャで予測に利用される部分を指定するために、インター予測モードである周辺ブロックから参照ピクチャを指示する情報と動きベクトルを示す情報とを利用することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、圧縮効率を上げて情報送信量を減少させると同時に、映像（動画）エンコーディング／デコーディング過程の複雑さを軽減することができる予測方法とこの予測方法を利用する装置とを提供することを目的とする。
【０００９】
本発明は、インター予測において、周辺情報を効果的に利用して現在ブロックに対する動き情報予測子の候補を構成することができるように周辺ブロックをスキャンする方法とこの方法を利用する装置とを提供することを目的とする。
【００１０】
本発明は、周辺ブロックから取得された動き情報を現在ブロックに対する動き情報予測子の候補として利用するために動き情報をスケーリングする方法とこの方法を利用する装置とを提供することを目的とする。
【課題を解決するための手段】
【００１１】
(１)本発明の一実施形態は、動きベクトル予測子の選択方法であって、現在ブロックに対する動きベクトル予測子の候補を選択するステップと、動きベクトル予測子の候補の中から現在ブロックに対する動きベクトル予測子を選択するステップと、を有し、現在ブロックに対する動きベクトル予測子の候補は、現在ブロックの左側周辺ブロックのうち、利用可能なブロックとして最初に検索された第１の候補ブロックの動きベクトルと、現在ブロックの上側周辺ブロックのうち、利用可能なブロックとして最初に検索された第２の候補ブロックの動きベクトルと、を有する。
【００１２】
(２)(１)において、利用可能なブロックは、第１の条件として現在ブロックと同じ参照ピクチャ及び同じ参照ピクチャリストを有することと、第２の条件として現在ブロックと同じ参照ピクチャ及び異なる参照ピクチャリストを有することと、第３の条件として現在ブロックと異なる参照ピクチャ及び同じ参照ピクチャリストを有することと、第４の条件として現在ブロックと異なる参照ピクチャ及び異なる参照ピクチャリストを有することと、のうちいずれか一つを満たすブロックであって、インター予測モードが適用されたブロックでもよい。
【００１３】
(３)(２)において、現在ブロックに対する動きベクトル予測子を選択するステップでは、第１の条件乃至第４の条件のうち、より低い番号の条件が満たされるかどうかに対してより高い優先順位を与えて検索してもよい。
【００１４】
(４)(２)において、第１の候補ブロック又は第２の候補ブロックのうち、第３の条件又は第４の条件を満たすブロックの動きベクトルは、スケーリングされてもよい。
【００１５】
(５)(４)において、スケーリングは、現在ブロックが属する現在ピクチャと現在ブロックの参照ピクチャとの間の距離と、現在ピクチャと第１の候補ブロック又は第２の候補ブロックのうち、第３の条件又は第４の条件を満たすブロックの参照ピクチャとの間の距離と、に基づいて実行されてもよい。
【００１６】
(６)(４)において、スケーリングの回数を所定の回数に制限してもよい。
【００１７】
(７)(１)において、左側周辺ブロックは、現在ブロックの左下側コーナーに位置する第１の周辺ブロックと、現在ブロックの左側の下側に位置する第２の周辺ブロックと、を有してもよい。
【００１８】
(８)(７)において、現在ブロックに対する動きベクトル予測子の候補を選択するステップは、第１の周辺ブロック及び第２の周辺ブロックが、第１の条件として現在ブロックと同じ参照ピクチャ及び同じ参照ピクチャリストを有することと、第２の条件として現在ブロックと同じ参照ピクチャ及び異なる参照ピクチャリストを有することと、第３の条件として現在ブロックと異なる参照ピクチャ及び同じ参照ピクチャリストを有することと、第４の条件として現在ブロックと異なる参照ピクチャ及び異なる参照ピクチャリストを有することと、のうちいずれか一つを満たすか否かを第１の条件から第４の条件の順に判断する条件判断ステップと、第１の条件乃至第４の条件のうちいずれか一つを満たすとして最初に検索されたブロックを、第１の候補ブロックとして決定する候補ブロック決定ステップと、を有してもよい。
【００１９】
(９)(８)において、条件判断ステップは、第１の周辺ブロックが、第１の条件及び第２の条件を満たすか否かを判断するステップと、第２の周辺ブロックが、第１の条件及び第２の条件を満たすか否かを判断するステップと、第１の周辺ブロックが、第３の条件及び第４の条件を満たすか否かを判断するステップと、第２の周辺ブロックが、第３の条件及び第４の条件を満たすか否かを判断するステップと、を有してもよい。
【００２０】
(１０)(１)において、上側周辺ブロックは、現在ブロックの右上側コーナーに位置する第３の周辺ブロックと、現在ブロックの上側の右側に位置する第４の周辺ブロックと、現在ブロックの左上側コーナーに位置する第５の周辺ブロックと、を有してもよい。
【００２１】
(１１)(１０)において、現在ブロックに対する動きベクトル予測子の候補を選択するステップは、第３の周辺ブロック、第４の周辺ブロック及び第５の周辺ブロックが、第１の条件として現在ブロックと同じ参照ピクチャ及び同じ参照ピクチャリストを有することと、第２の条件として現在ブロックと同じ参照ピクチャ及び異なる参照ピクチャリストを有することと、第３の条件として現在ブロックと異なる参照ピクチャ及び同じ参照ピクチャリストを有することと、第４の条件として現在ブロックと異なる参照ピクチャ及び異なる参照ピクチャリストを有することと、のうちいずれか一つを満たすか否かを第１の条件から第４の条件の順に判断する条件判断ステップと、第１の条件乃至第４の条件のうちいずれか一つを満たすとして最初に検索されたブロックを、第２の候補ブロックとして決定する候補ブロック決定ステップと、を有してもよい。
【００２２】
(１２)(１１)において、条件判断ステップは、第３の周辺ブロックが、第１の条件及び第２の条件を満たすか否かを判断するステップと、第４の周辺ブロックが、第１の条件及び第２の条件を満たすか否かを判断するステップと、第５の周辺ブロックが、第１の条件及び第２の条件を満たすか否かを判断するステップと、第３の周辺ブロックが、第３の条件及び第４の条件を満たすか否かを判断するステップと、第４の周辺ブロックが、第３の条件及び第４の条件を満たすか否かを判断するステップと、第５の周辺ブロックが、第３の条件及び第４の条件を満たすか否かを判断するステップと、を有してもよい。
【００２３】
(１３)本発明の他の実施形態は、現在ブロックに対する動きベクトル予測子を選択する方法を利用するデコーディング装置であって、現在ブロックに対する予測を実行する予測部と、現在ブロックの周辺ブロックに関する情報を格納するメモリと、を有し、予測部は、現在ブロックに対する動きベクトル予測子の候補を選択し、動きベクトル予測子の候補の中から現在ブロックに対する動きベクトル予測子を選択し、現在ブロックに対する動きベクトル予測子の候補は、現在ブロックの左側周辺ブロックのうち、利用可能なブロックとして最初に検索された第１の候補ブロックの動きベクトルと、現在ブロックの上側周辺ブロックのうち、利用可能なブロックとして最初に検索された第２の候補ブロックの動きベクトルと、を有する。
【００２４】
(１４)(１３)において、利用可能なブロックは、第１の条件として現在ブロックと同じ参照ピクチャ及び同じ参照ピクチャリストを有することと、第２の条件として現在ブロックと同じ参照ピクチャ及び異なる参照ピクチャリストを有することと、第３の条件として現在ブロックと異なる参照ピクチャ及び同じ参照ピクチャリストを有することと、第４の条件として現在ブロックと異なる参照ピクチャ及び異なる参照ピクチャリストを有することと、のうちいずれか一つを満たすブロックであって、インター予測モードが適用されたブロックでもよく、予測部は、第１の条件乃至第４の条件のうち、より低い番号の条件が満たされるかどうかに対してより高い優先順位を与えて動きベクトル予測子を検索してもよい。
【００２５】
(１５)(１４)において、予測部は、第１の候補ブロック又は第２の候補ブロックのうち、第３の条件又は第４の条件を満たすブロックの動きベクトルをスケーリングしてもよい。
【発明の効果】
【００２６】
本発明で提示する予測方法によると、圧縮効率を上げて情報送信量を減少させると同時に映像（動画）エンコーディング/デコーディング過程の複雑さを軽減することができる。
【００２７】
本発明で提示する予測方法によると、周辺情報を効果的に利用して現在ブロックに対する動き情報予測子の候補を構成することができる。
【００２８】
本発明で提示する予測方法によると、周辺ブロックから取得する動き情報をスケーリングして現在ブロックの動きベクトル予測子の候補として利用することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施例に係る映像エンコーディング装置(エンコーダ)を概略的に示すブロック図である。
【図２】本発明の一実施例に係る映像デコーディング装置(デコーダ)を概略的に示すブロック図である。
【図３】インター予測モードでアドバンスド動きベクトル予測子(Advanced Motion Vector Predictor：ＡＭＶＰ)が適用される場合、動きベクトルを導出する方法に関する一実施例を概略的に説明する流れ図である。
【図４】ＭＶＰ候補リストの生成方法に関する一実施例を概略的に説明する概念図である。
【図５】本発明によるスケーリングの方法を概略的に説明する概念図である。
【図６】本発明によるスケーリングの方法を概略的に説明する流れ図である。
【図７】本発明によって、現在ピクチャ(現在フレーム)内の現在ブロックの周辺ブロックが有する動きベクトルをスケーリングする方法を概略的に説明する図面である。
【図８】本発明の一実施例によって動きベクトル競合を実行する方法を概略的に説明する図面である。
【図９】本発明の一実施例によってＡＭＶＰを適用する他の方法を概略的に説明する図面である。
【図１０】本発明によって現在ブロックに対する動きベクトル予測子を選択する方法を概略的に説明する流れ図である。
【発明を実施するための形態】
【００３０】
本発明は、多様な変更を加えることができ、様々な実施例を有することができ、特定の実施例を図面に例示して詳細に説明する。しかし、これは本発明を特定の実施形態に限定するものではない。本明細書で使用する用語は、単に特定の実施例を説明するために使われたものであり、本発明の技術的思想を限定するために使われるものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。本明細書において、“含む”又は“有する”などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はそれらを組合せたものが存在することを指定するものであり、一つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品又はそれらを組合せたものの存在又は付加の可能性を予め排除しないと理解しなければならない。
【００３１】
一方、本発明で説明される図面上の各構成は、映像エンコーディング/デコーディング装置で互いに異なる特徴的な機能に対する説明の便宜のために独立して図示したものであり、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味しない。例えば、各構成のうち二つ以上の構成が統合されて一つの構成になることもあり、一つの構成が複数の構成に分けられることもある。各構成が統合及び/又は分離された実施例も本発明の本質を逸しない限り本発明の権利範囲に含まれる。
【００３２】
以下、添付図面を参照して、本発明について詳細に説明する。
【００３３】
図１は、本発明の一実施例に係る映像エンコーディング装置(エンコーダ)を概略的に示すブロック図である。図１を参照すると、映像エンコーディング装置１００は、ピクチャ分割部１０５、予測部１１０、変換部１１５、量子化部１２０、再整列部１２５、エントロピエンコーディング部１３０、逆量子化部１３５、逆変換部１４０、フィルタ部１４５及びメモリ１５０を有する。
【００３４】
ピクチャ分割部１０５は、入力されたピクチャを少なくとも一つの処理単位に分割することができる。このとき、処理単位は、予測ユニット(Prediction Unit、以下、「ＰＵ」という)であってもよく、変換ユニット(Transform Unit、以下、「ＴＵ」という)であってもよく、コーディングユニット(Coding Unit、以下、「ＣＵ」という)であってもよい。ただし、本明細書において、説明の便宜のために、予測ユニットを予測ブロックで表現し、変換ユニットを変換ブロックで表現し、エンコーディングユニットをエンコーディングブロックで表現することがある。
【００３５】
予測部１１０は、インター予測(inter prediction、画面間予測)を実行するインター予測部とイントラ予測(intra prediction、画面内予測)を実行するイントラ予測部とを有することができる。コーディング効率を上げるために、映像信号をそのままエンコーディングするものではなく、既にエンコーディングされた領域を利用して映像を予測し、元来の映像と予測映像との間の残差値を予測映像に加えて映像を復元できるようにエンコーディングする。
【００３６】
予測に利用される既にエンコーディングされた領域を有するピクチャとして、Ｉピクチャ(Ｉスライス)、Ｐピクチャ(Ｐスライス)、Ｂピクチャ(Ｂスライス)などがある。Ｉスライスは、イントラ予測によってのみデコーディングされるスライスである。Ｐスライスは、各ブロックのサンプル値を予測するために、少なくとも一つの動きベクトル及び参照ピクチャインデックスを利用したインター予測又はイントラ予測を利用してデコーディングされることができるスライスである。Ｂスライスは、各ブロックのサンプル値を予測するために、少なくとも二つの動きベクトル及び参照ピクチャインデックスを利用したインター予測又はイントラ予測を利用してデコーディングされることができるスライスである。
【００３７】
予測部１１０は、ピクチャの処理単位に対して予測を実行することで、予測されたサンプルで構成される予測ブロックを生成する。予測部１１０でピクチャの処理単位は、ＣＵであってもよく、ＴＵであってもよく、ＰＵであってもよい。また、該当処理単位に対して実行される予測がインター予測かイントラ予測かを決定し、各予測方法の具体的な内容(例えば、予測モード等)を決定することができる。このとき、予測が実行される処理単位と予測方法及び具体的な内容が決定される処理単位とは異なってもよい。例えば、予測方法及び予測モードなどはＰＵ単位で決定されてもよく、予測の実行はＴＵ単位で実行されてもよい。
【００３８】
インター予測を介しては現在ピクチャの前のピクチャ及び/又は後のピクチャのうち少なくとも一つのピクチャの情報に基づいて予測を実行することで、予測ブロックを生成することができる。また、イントラ予測を介しては現在ピクチャ内の画素情報に基づいて予測を実行することで、予測ブロックを生成することができる。
【００３９】
インター予測において、現在ブロックに対し、参照ピクチャを選択し、現在ブロックと同じ大きさの参照ブロックを選択することで、現在ブロックに対する予測ブロックを生成することができる。例えば、インター予測において、現在ブロックとの残差(residual)信号が最小化され、動きベクトルの大きさも最小となるように予測ブロックを生成することができる。インター予測方法として、スキップ(skip)モード、マージ(merge)モード、アドバンスド動きベクトル予測子(Advanced Motion Vector Prediction：ＡＭＶＰ)などを利用することができる。予測ブロックは、１/２画素サンプル単位及び１/４画素サンプル単位などのように整数未満のサンプル単位で生成されることもできる。このとき、動きベクトルも整数未満の画素単位で表現されることができる。例えば、輝度(luma)画素に対しては１/４画素単位で表現され、色差(chroma)画素に対しては１/８画素単位で表現されることができる。
【００４０】
インター予測を介して選択された参照ピクチャのインデックス、動きベクトル予測子、残差信号などの情報は、エントロピエンコーディングされ、デコーディング装置に伝達される。
【００４１】
イントラ予測を実行する場合にも、予測が実行される処理単位と予測方法及び具体的な内容が決定される処理単位とは互いに異なってもよい。例えば、ＰＵ単位で予測モードが決定されてＰＵ単位で予測が実行されてもよく、ＰＵ単位で予測モードが決定されてＴＵ単位でイントラ予測がされてもよい。
【００４２】
イントラ予測において、予測モードは、３３個の方向性予測モードと少なくとも２個の非方向性モードとを有することができる。非方向性モードは、ＤＣ予測モード及びプラナーモード(Planar mode)などを有することができる。
【００４３】
イントラ予測では、参照サンプルにフィルタを適用した後、予測ブロックを生成することができる。このとき、参照サンプルにフィルタを適用するかどうかは、現在ブロックのイントラ予測モード及び/又はサイズによって決定されることもできる。
【００４４】
ＰＵは、それ以上分割されないＣＵから多様なサイズ/形態で決定されることができる。例えば、インター予測の場合、ＰＵは、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎなどの大きさを有することができる。イントラ予測の場合、ＰＵは、２Ｎ×２Ｎ又はＮ×Ｎ(Ｎは、整数)などの大きさを有することができる。このとき、Ｎ×Ｎ大きさのＰＵは、特定の場合にのみ適用するように設定することもできる。例えば、Ｎ×ＮのＰＵを、最小の大きさのコーディングユニットに対してのみ利用するように設定したり、イントラ予測に対してのみ利用するように設定したりすることができる。また、前述した大きさのＰＵ以外に、Ｎ×ｍＮ、ｍＮ×Ｎ、２Ｎ×ｍＮ又はｍＮ×２Ｎ(ｍ＜１)などの大きさを有するＰＵをさらに定義して使用することもできる。
【００４５】
生成された予測ブロックと原本ブロックとの間の残差値(残差ブロック又は残差信号)は、変換部１１５に入力される。また、予測のために使用した予測モード情報、動きベクトル情報などは、残差値と共にエントロピエンコーディング部１３０でエンコーディングされ、デコーディング装置に伝達される。
【００４６】
変換部１１５は、変換単位で残差ブロックに対する変換を実行し、変換係数を生成する。変換部１１５での変換単位は、ＴＵであってもよく、クワッドツリー(quad tree)構造を有することができる。このとき、変換単位の大きさは、所定の最大及び最小の大きさの範囲内で決定されることができる。変換部１１５は、残差ブロックを離散コサイン変換(Discrete Cosine Transform：ＤＣＴ)又は離散サイン変換(Discrete Sine Transform：ＤＳＴ)を利用して変換することができる。
【００４７】
量子化部１２０は、変換部１１５で変換された残差値を量子化することで、量子化係数を生成することができる。量子化部１２０で算出された値は、逆量子化部１３５及び再整列部１２５に提供される。
【００４８】
再整列部１２５は、量子化部１２０から提供された量子化係数を再整列する。量子化係数を再整列することによってエントロピエンコーディング部１３０でのエンコーディングの効率を上げることができる。再整列部１２５は、係数スキャニング(Coefficient Scanning)方法を介して２次元ブロック形態の量子化係数を１次元の形態に再整列することができる。再整列部１２５では、量子化部で送信された係数の確率統計に基づいて係数スキャニングの順序を変更することによって、エントロピエンコーディング部１３０でのエントロピエンコーディング効率を上げることもできる。
【００４９】
エントロピエンコーディング部１３０は、再整列部１２５により再整列された量子化係数に対するエントロピエンコーディングを実行することができる。エントロピエンコーディングには、例えば、指数ゴロム(Exponential Golomb)、コンテキストベース適応型可変長コーディング(Context-Adaptive Variable Length Coding：ＣＡＶＬＣ)、コンテキストベース適応型二進算術符号化(Context-Adaptive Binary Arithmetic Coding：ＣＡＢＡＣ)などのエンコーディング方法を使用することができる。エントロピエンコーディング部１３０は、再整列部１２５及び予測部１１０から伝達を受けたＣＵの量子化係数情報及びブロックタイプ情報、予測モード情報、分割単位情報、ＰＵ情報及び送信単位情報、動きベクトル情報、参照ピクチャ情報、ブロックの補間情報、フィルタリング情報など、多様な情報をエンコーディングすることができる。
【００５０】
また、エントロピエンコーディング部１３０は、必要な場合、送信するパラメータセット又はシンタックスに一定の変更を加えることもできる。
【００５１】
逆量子化部１３５は、量子化部１２０で量子化された値を逆量子化し、逆変換部１４０は、逆量子化部１３５で逆量子化された値を逆変換する。逆量子化部１３５及び逆変換部１４０で生成された残差値を、予測部１１０で予測された予測ブロックとマージして復元ブロック(Reconstructed Block)を生成することができる。
【００５２】
フィルタ部１４５は、デブロッキングフィルタ、適応ループフィルタ(Adaptive Loop Filter：ＡＬＦ)、サンプル適応オフセット(Sample Adaptive Offset：ＳＡＯ)を復元されたピクチャに適用することができる。
【００５３】
デブロッキングフィルタは、復元されたピクチャでブロック間の境界に発生したブロック歪曲を除去することができる。適応ループフィルタ(Adaptive Loop Filter：ＡＬＦ)は、デブロッキングフィルタを介してブロックがフィルタリングされた後、復元された映像と元来の映像とを比較した値に基づいてフィルタリングを実行することができる。ＡＬＦは、高効率を適用する場合にのみ実行されることもできる。ＳＡＯは、デブロッキングフィルタが適用された残差ブロックに対し、画素単位で原本映像とのオフセット差を復元し、バンドオフセット(Band Offset)、エッジオフセット(Edge Offset)などの形態で適用される。
【００５４】
一方、インター予測に使われる復元ブロックに対してフィルタ部１４５は、フィルタリングを適用しなくてもよい。
【００５５】
メモリ１５０は、フィルタ部１４５を介して算出された復元ブロック又はピクチャを格納することができる。メモリ１５０に格納された復元ブロック又はピクチャは、インター予測を実行する予測部１１０に提供されることができる。
【００５６】
図２は、本発明の一実施例に係る映像デコーディング装置(デコーダ)を概略的に示すブロック図である。図２を参照すると、映像デコーディング装置２００は、エントロピデコーディング部２１０、再整列部２１５、逆量子化部２２０、逆変換部２２５、予測部２３０、フィルタ部２３５、メモリ２４０を有することができる。
【００５７】
エンコーディング装置から映像ビットストリームが入力された場合、入力されたビットストリームは、エンコーディング装置で映像情報が処理された手順の逆の過程によってデコーディングされることができる。
【００５８】
例えば、映像エンコーディング装置でエントロピエンコーディングを実行するためにＣＡＶＬＣなどの可変長エンコーディング(Variable Length Coding：ＶＬＣ、以下、「ＶＬＣ」という)が使われた場合、エントロピデコーディング部２１０もエンコーディング装置で使用したＶＬＣテーブルと同じＶＬＣテーブルを具現してエントロピデコーディングを実行することができる。また、映像エンコーディング装置でエントロピエンコーディングを実行するために、ＣＡＢＡＣを利用した場合、エントロピデコーディング部２１０は、これに対応してＣＡＢＡＣを利用したエントロピデコーディングを実行することができる。
【００５９】
エントロピデコーディング部２１０でデコーディングされた情報のうち予測ブロックを生成するための情報は、予測部２３０に提供され、エントロピデコーディング部でエントロピデコーディングが実行された残差値は、再整列部２１５に入力されることができる。
【００６０】
再整列部２１５は、エントロピデコーディング部２１０でエントロピデコーディングされたビットストリームを映像エンコーディング器で再整列した方法に基づいて再整列することができる。再整列部２１５は、１次元ベクトル形態に表現された係数を再び２次元のブロック形態の係数に復元して再整列することができる。再整列部２１５は、エンコーディング装置で実行された係数スキャニングに関連した情報の提供を受け、エンコーディング装置で実行されたスキャニング順序に基づいて逆にスキャニングする方法を介して再整列を実行することができる。
【００６１】
逆量子化部２２０は、エンコーディング装置で提供された量子化パラメータと再整列されたブロックの係数値とに基づいて逆量子化を実行することができる。
【００６２】
逆変換部２２５は、映像エンコーディング装置で実行された量子化の結果に対し、エンコーディング装置の変換部が実行したＤＣＴ又はＤＳＴに対して逆ＤＣＴ又は逆ＤＳＴを実行することができる。逆変換は、エンコーディング装置で決定された送信単位又は映像の分割単位に基づいて実行されることができる。エンコーディング装置の変換部では、予測方法、現在ブロックの大きさ及び予測方向など、複数の情報によってＤＣＴ又はＤＳＴが選択的に実行されることができ、デコーディング装置の逆変換部２２５は、エンコーディング装置の変換部で実行された変換に関する情報に基づいて逆変換を実行することができる。
【００６３】
予測部２３０は、エントロピデコーディング部２１０から提供された予測ブロック生成関連情報と、メモリ２４０から提供された以前にデコーディングされたブロック及び/又はピクチャ情報と、に基づいて予測ブロックを生成することができる。復元ブロックは、予測部２３０で生成された予測ブロックと、逆変換部２２５で提供された残差ブロックと、を利用して生成されることができる。
【００６４】
予測部２３０で実行する具体的な予測方法は、エンコーディング装置の予測部で実行される予測方法と同様である。
【００６５】
現在ブロックに対する予測モードがイントラ予測(intra prediction)モードである場合、現在ピクチャ内の画素情報に基づいて予測ブロックを生成するイントラ予測を実行することができる。
【００６６】
イントラ予測において、予測モードは、３３個の方向性予測モードと少なくとも２個の非方向性モードとを有することができる。非方向性モードは、ＤＣ予測モード及びプラナーモード(Planar mode)などを有することができる。
【００６７】
イントラ予測では、参照サンプルにフィルタを適用した後、予測ブロックを生成することができる。このとき、参照サンプルにフィルタを適用するかどうかは、現在ブロックのイントラ予測モード及び/又はサイズによって決定することもできる。
【００６８】
現在ブロックに対する予測モードがインター予測(inter prediction)モードである場合、現在ピクチャの前のピクチャ又は後のピクチャのうち少なくとも一つを参照ピクチャにし、参照ピクチャが有する情報に基づいて現在ブロックに対するインター予測を実行することができる。具体的に、インター予測では、現在ブロックに対し、参照ピクチャを選択し、現在ブロックと同じ大きさの参照ブロックを選択することで、現在ブロックに対する予測ブロックを生成することができる。例えば、インター予測では、現在ブロックとの残差(residual)信号が最小化され、動きベクトルの大きさも最小となるように予測ブロックを生成することができる。このとき、参照ピクチャの情報を利用するために、現在ピクチャの周辺ブロックの情報を利用することができる。例えば、スキップ(skip)モード、マージ(merge)モード、アドバンスド動きベクトル予測子(Advanced Motion Vector Prediction：ＡＭＶＰ)等の使用を介して、周辺ブロックの情報に基づいて現在ブロックに対する予測ブロックを生成することができる。
【００６９】
予測ブロックは、１/２画素サンプル単位と１/４画素サンプル単位のように整数未満のサンプル単位で生成されることもできる。このとき、動きベクトルも整数未満の画素単位で表現されることができる。例えば、輝度画素に対しては１/４画素単位で表現され、色差画素に対しては１/８画素単位で表現されることができる。
【００７０】
現在ブロックのインター予測に必要な動き情報、例えば、動きベクトル、参照ピクチャインデックスなどに関する情報は、エンコーディング装置から受信したスキップフラグ、マージフラグなどを確認し、これに対応して導出されることができる。
【００７１】
予測が実行される処理単位と予測方法及び具体的な内容が決定される処理単位とは異なってもよい。例えば、ＰＵ単位で予測モードが決定されてＰＵ単位で予測が実行されてもよく、ＰＵ単位で予測モードが決定されてＴＵ単位でイントラ予測が実行されてもよい。
【００７２】
予測部２３０から出力された予測ブロックに逆変換部２２５から出力された残差ブロックが加えられて原本映像を復元することができる。
【００７３】
復元されたブロック及び/又はピクチャは、フィルタ部２３５に提供されることができる。フィルタ部２３５は、復元されたブロック及び/又はピクチャにデブロッキングフィルタリング、サンプル適応オフセット(Sample Adaptive Offset：ＳＡＯ)及び/又は適応ループフィルタリングなどを適用する。
【００７４】
メモリ２４０は、復元されたピクチャ又はブロックを格納して参照ピクチャ又は参照ブロックとして使用するようにすることができ、また、復元されたピクチャを出力部に提供することができる。
【００７５】
ここでは説明の便宜のために省略したが、デコーディング装置に入力されるビットストリームは、パージングステップを経てエントロピデコーディング部に入力されることもできる。また、エントロピデコーディング部でパージング過程を実行するようにすることもできる。
【００７６】
本明細書で、コーディングは、場合によって、エンコーディング又はデコーディングと解釈されることができ、情報(information)は、値(values)、パラメータ(parameter)、係数(coefficients)、成分(elements)などを全部含むと理解されることができる。
【００７７】
「画面」又は「ピクチャ(picture)」は、一般に特定時間帯の一つの映像を示す単位を意味し、「スライス(slice)」、「フレーム(frame)」などは、実際のビデオ信号のコーディングにおいてピクチャの一部を構成する単位であり、必要によっては、ピクチャと互いに混用されて使用されることもできる。
【００７８】
「ピクセル(pixel)」、「画素」又は「pel」は、一つの映像を構成する最小の単位を意味する。また、特定のピクセルの値を示す用語として「サンプル(sample)」を使用することができる。サンプルは、輝度(Luma)及び色差(Chroma)成分に分けることができるが、一般には両方ともを含む用語として使うことができる。上記色差成分は、定められた色相間の差を示すものであり、一般的にＣｂ及びＣｒで構成される。
【００７９】
「ユニット(unit)」は、前述した符号化ユニット(ＣＵ)、予測ユニット(ＰＵ)、変換ユニット(ＴＵ)などの映像処理の基本単位又は映像の特定の位置を示し、場合によっては、「ブロック(block)」又は「領域(area)」などの用語と互いに混用して使われてもよい。また、ブロックは、Ｍ個の列とＮ個の行で構成されたサンプル又は変換係数(transform coefficient)の集合を示す用語として使うこともできる。
【００８０】
一方、インター予測モードの場合、エンコーディング装置又はデコーディング装置は、現在ブロックの動き情報を導出し、導出された動き情報に基づいて現在ブロックに対するインター予測を実行することができる。
【００８１】
現在ブロックの予測に利用される映像を参照ピクチャ(reference picture)又は参照フレーム(reference frame)という。参照ピクチャ内の領域は、参照ピクチャを指示する参照ピクチャインデックス(refIdx)及び動きベクトル(motion vector)などを利用して示すことができる。
【００８２】
現在ピクチャに対し、予測のために使われるピクチャに参照ピクチャリストを構成することができ、参照ピクチャインデックスは、参照ピクチャリストにおける特定の参照ピクチャを指示することができる。Ｐピクチャの場合には一つの参照ピクチャリスト、例えば、参照リスト０を必要とし、Ｂピクチャの場合には二つの参照ピクチャリスト、例えば、参照リスト０及び参照リスト１を必要とする。
【００８３】
具体的には、Ｉピクチャは、イントラ予測によってエンコーディング/デコーディングされるピクチャである。Ｐピクチャは、各ブロックのサンプル値を予測するために少なくとも一つの動きベクトル及び参照ピクチャインデックスを利用したインター予測又はイントラ予測を利用してエンコーディング/デコーディングされることができるピクチャである。Ｂピクチャは、各ブロックのサンプル値を予測するために少なくとも二つの動きベクトル及び参照ピクチャインデックスを利用したインター予測又はイントラ予測を利用してエンコーディング/デコーディングされることができるピクチャである。
【００８４】
Ｐピクチャでは一つの参照ピクチャリストを必要とし、これを参照ピクチャリスト０(reference picture list0：Ｌ０)という。
【００８５】
Ｂピクチャは、例えば二つの参照ピクチャを利用して順方向、逆方向又は両方向インター予測により符号化されることができるピクチャである。Ｂピクチャは、二つの参照ピクチャリストを必要とし、二つの参照ピクチャリストは、各々、参照ピクチャリスト０(reference picture list0：Ｌ０)及び参照ピクチャリスト１(reference picture list1：Ｌ１)という。
【００８６】
Ｌ０から選択された参照ピクチャを使用するインター予測をＬ０予測といい、Ｌ０予測は、主に順方向予測に使われる。Ｌ１から選択された参照ピクチャを使用するインター予測をＬ１予測といい、Ｌ１予測は、主に逆方向予測に使われる。また、Ｌ０及びＬ１から各々選択された二つの参照ピクチャを使用するインター予測を双方向予測(bi prediction)ともいう。
【００８７】
上記Ｉピクチャ、Ｐピクチャ、Ｂピクチャの特徴は、ピクチャ単位ではなくスライス単位で定義されることもできる。例えば、スライス単位でＩピクチャの特徴を有するＩスライスが定義され、Ｐピクチャの特徴を有するＰスライスが定義され、Ｂピクチャの特徴を有するＢスライスが定義されることができる。
【００８８】
例えば、現在ブロックに対するスライスタイプがＢでありＬ０からｃｏｌＰｉｃが選択される場合、又は、現在ブロックに対するスライスタイプがＰである場合、ｃｏｌＰｉｃはＬ０から選択されることができる。
【００８９】
一方、遅延(low delay)を防止するために、一般化ＰおよびＢ(Generalized P and B：ＧＰＢ)スライスを利用することもできる。ＧＰＢにおいては、参照リスト０及び参照リスト１が互いに同じである。
【００９０】
インター予測において、スキップモードの場合には周辺ブロックの情報をそのまま現在ブロックに利用することができる。したがって、スキップモードの場合には、現在ブロックの動き情報としていずれのブロックの動き情報を利用するかを指示する情報以外に残差などのシンタックス情報を送信しない。
【００９１】
また、マージモードの場合には、周辺ブロックの動き情報をそのまま利用して現在ブロックに対する予測ブロックを生成することができる。エンコーディング装置は、マージモードを適用するか否かに関する情報、いずれのブロックの動き情報を利用するかに関する情報、及び残差情報などを送信することができる。デコーディング装置は、予測ブロックにエンコーディング装置から送信される残差を加えて現在ブロックを復元することができる。
【００９２】
マージモードでいずれのブロックの情報を利用するかを指示する方法などをスキップモード及び一般的なインター予測モードの場合に適用することもできる。例えば、マージモードで現在ブロックの動き情報として利用される情報を有する候補ブロックを他のインター予測モードと共通して利用することもでき、いずれの周辺ブロックの動き情報を利用するかを指示する方法を同様に利用することもできる。
【００９３】
このとき、スキップモード及び一般的なインター予測モードでは、周辺ブロックの参照ピクチャインデックスや予測方向(参照ピクチャリスト)が現在ブロックの参照ピクチャインデックスや予測方向(参照ピクチャリスト)に適合する場合にのみ利用可能な動き情報を有すると判断し、現在ブロックに対する動きベクトル予測子の候補として該当ブロックの動きベクトルを利用するようにすることもできる。または、周辺ブロックの動きベクトルを後述するようにスケーリングして現在ブロックに対する動きベクトル予測子の候補として利用するようにすることもできる。
【００９４】
ＡＭＶＰの場合、エンコーディング装置は、周辺ブロックの動き情報を利用して現在ブロックの動きベクトルを予測し、現在ブロックの動きベクトルと予測された動きベクトルとの間の差を参照ピクチャを指示する参照ピクチャインデックスと共に送信することができる。デコーディング装置は、周辺ブロックの動き情報を利用して現在ブロックの動きベクトルを予測し、エンコーディング装置から受信した残差を利用して現在ブロックに対する動きベクトルを導出することができる。デコーディング装置は、導出した動きベクトルとエンコーディング装置から受信した参照ピクチャインデックス情報とに基づいて現在ブロックに対する予測ブロックを生成することができる。
【００９５】
図３は、インター予測モードでアドバンスド動きベクトル予測子(Advanced Motion Vector Predictor：ＡＭＶＰ)が適用される場合、動きベクトルを導出する方法に関する一実施例を概略的に説明する流れ図である。
【００９６】
図３を参照すると、エンコーディング装置又はデコーディング装置は、現在ブロックに対する動きベクトル予測子(Motion Vector Predictor：ＭＶＰ)の候補リストを生成することができる(Ｓ３１０)。動きベクトル予測子は、現在ブロックの動きベクトルに対する予測値を示すことができる。
【００９７】
エンコーディング装置又はデコーディング装置は、現在ブロックに隣接して利用可能な(available)周辺ブロック(説明の便宜のために「周辺ブロック」という)及び/又は現在ブロックに対応する位置にある(co-located)各参照ピクチャのブロックのうち利用可能な(available)ブロック(説明の便宜のために「Ｃｏｌブロック」(co-located block)という)の動きベクトルを利用してＭＶＰ候補リストを生成することができる。
【００９８】
エンコーディング装置又はデコーディング装置は、ＭＶＰ候補リストが有するＭＶＰ候補のうち現在ブロックに対するＭＶＰを選択することができる(Ｓ３２０)。
【００９９】
エンコーディング装置は、ＭＶＰ候補リストが有するＭＶＰ候補に対して動きベクトル競合(Motion Vector Competition：ＭＶＣ)を適用し、現在ブロックに対する最適のＭＶＰを選択することができる。エンコーディング装置は、ビットストリームを介して選択されたＭＶＰインデックス、動きベクトル差(Motion Vector Difference：ＭＶＤ、又はDifference of Motion Vector：ＤＭＶともいう)、そして、参照ピクチャインデックスをデコーディング装置に送信することができる。ＭＶＰインデックスは、現在ブロックのＭＶＰを指示するインデックスであり、ＭＶＰ候補リストが有するＭＶＰ候補のうちいずれか一つを指示することができる。また、参照ピクチャインデックスは、現在ブロックの参照ピクチャを指示するインデックスであり、参照ピクチャリストが有する参照ピクチャの候補のうちいずれか一つを指示することができる。ＭＶＤは、現在ブロックの動きベクトルと選択されたＭＶＰとの差であり、ＭＶＤの値が少ないほど送信される情報量を減らすことができる。
【０１００】
デコーディング装置は、エンコーディング装置からＭＶＰインデックス及び参照ピクチャインデックスを受信することができる。受信したＭＶＰインデックスを利用し、デコーディング装置は、ＭＶＰ候補リストが有するＭＶＰ候補のうち現在ブロックに対するＭＶＰを選択することができる。受信した参照ピクチャインデックスを利用し、デコーディング装置は、参照ピクチャリストが有する参照ピクチャ候補の中から現在ブロックに対する参照ピクチャを選択することができる。
【０１０１】
デコーディング装置は、選択されたＭＶＰ及び参照ピクチャを受信したＭＶＤと共に利用して現在ブロックの動きベクトルを導出することができる(Ｓ３３０)。例えば、デコーディング装置は、ＭＶＰに受信したＭＶＤを加えて現在ブロックの動きベクトルを復元することができる。
【０１０２】
図４は、ＭＶＰ候補リストの生成方法に対する一実施例を概略的に説明する概念図である。
【０１０３】
説明の便宜のために、現在ブロック４００左下側コーナーの周辺ブロックである左下側周辺ブロックＡ0４１０及び現在ブロック４００の左側周辺ブロックＡ1４２０を有する候補グループを左側候補グループという。このとき、エンコーディング装置又はデコーディング装置は、左側ブロック４２０の中から特定の位置のブロックのみを利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、左側周辺ブロック４２０のうち最下端のブロック４２０−１を左側ブロックＡ1に設定することができる。
【０１０４】
また、現在ブロック４００右上側コーナーの周辺ブロックである右上側周辺ブロックＢ0４３０、現在ブロック４００の上側周辺ブロックＢ1４４０及び現在ブロック４００の左上側コーナーの周辺ブロックＢ2４５０を有する候補グループを上側候補グループという。このとき、エンコーディング装置又はデコーディング装置は、上側ブロック４４０のうち特定の位置のブロックのみを利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、上側周辺ブロックのうち最右側のブロック４４０−１を上側ブロックＢ1に設定することができる。
【０１０５】
エンコーディング装置又はデコーディング装置は、左側候補グループ(Ａ0,Ａ1)から一つのＭＶＰ候補を選択することができる。左側候補グループから選択されたＭＶＰ候補をＭＶAという。例えば、エンコーディング装置又はデコーディング装置は、左側候補グループが有するブロックをＡ0→Ａ1の順序でスキャンしながら、現在ブロックと、参照ピクチャインデックスが同一か否か、参照ピクチャリストが同一か否かなどを判断し、利用可能な１番目のブロックの動きベクトルを現在ブロックのＭＶＰ候補ＭＶAとして選択することができる。
【０１０６】
また、エンコーディング装置又はデコーディング装置は、上側候補グループＢ0,Ｂ1,Ｂ2から一つのＭＶＰ候補を選択することができる。上側候補グループから選択されたＭＶＰ候補をＭＶBという。例えば、エンコーディング装置又はデコーディング装置は、上側候補グループが有するブロックをＢ0→Ｂ1→Ｂ2の順序でスキャンしながら、現在ブロックと、参照ピクチャインデックスが同一か否か、参照ピクチャリストが同一か否かなどを判断し、利用可能な１番目のブロックの動きベクトルを現在ブロックのＭＶＰ候補ＭＶBとして選択することができる。
【０１０７】
また、エンコーディング装置又はデコーディング装置は、参照ピクチャ内のＣｏｌブロックＣＯＬ４６０の動きベクトルを現在ブロックのＭＶＰ候補として選択することもできる。ここで、Ｃｏｌブロック４６０の動きベクトルは、ｍｖＣｏｌで表すことができる。このとき、エンコーディング装置又はデコーディング装置は、ＭＶAとＭＶBを検索する過程で必要な数の空間候補（spatial candidate）を確保することができない場合、Ｃｏｌブロックの動きベクトルを候補に設定するようにすることもできる。
【０１０８】
前述した実施例において、左側候補グループから選択されたＭＶＰ候補及び上側候補グループから選択されたＭＶＰ候補は、空間ＭＶＰ(Spatial Motion Vector Predictor：ＳＭＶＰ)ということができる。また、参照ピクチャ内のＣｏｌブロックを利用して選択されたＭＶＰ候補は、時間ＭＶＰ(Temporal Motion Vector Predictor：ＴＭＶＰ)ということができる。したがって、ＭＶＰ候補リストは、ＳＭＶＰ及び/又はＴＭＶＰを有することができる。
【０１０９】
エンコーディング装置又はデコーディング装置は、前述した方法により選択されたＭＶＰ候補のうち重複する候補がある場合、重複する候補の中から最も高い順位の候補を除いた残りの候補を除去することができる。
【０１１０】
ここでは、左側候補グループ(Ａ0，Ａ1)、上側候補グループ(Ｂ0，Ｂ1，Ｂ2)に分けて説明したが、候補グループはこれに限定されずに設定することもできる。例えば、左側候補グループはＡ1のみを有し、上側候補グループはＢ1のみを有し、Ａ0、Ｂ0、Ｂ2を有するコーナー候補グループを構成することもできる。左側候補グループ、上側候補グループ、コーナー候補グループに分ける場合にも、グループ別に、現在ブロックと、参照ピクチャインデックスが同一か否か、参照ピクチャリストが同一か否かなどを判断して、現在ブロックのＭＶＰ候補を所定個数選択することもできる。
【０１１１】
このとき、より正確に現在ブロックの動きベクトルを予測するために、周辺ブロックから選択される動きベクトル(隣接の動きベクトル)をスケーリング(scaling)することができる。
【０１１２】
例えば、現在ブロックの動きベクトルＭＶCの参照フレーム(参照ピクチャ)に対応する参照フレーム(参照ピクチャ)を有する周辺ブロックがない場合、周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子(Predictor of Motion Vector：ＰＭＶ又はMotion Vector Predictor：ＭＶＰ)を生成することができる。
【０１１３】
図５は、本発明によるスケーリングの方法を説明するための図面であり、現在ブロックと周辺ブロックとの関係を概略的に示している。図５では説明の便宜のために現在ブロック５１０に対して左側周辺ブロックと上側周辺ブロック、そしてコーナー周辺ブロックのうち各々一つずつを考慮して動きベクトルをスケーリングする方法の一例を説明する。図５では、コーナーブロックのうち現在ブロックの上右側コーナーブロックを周辺コーナーブロックを代表するブロックとして説明する。図５について以下で説明する内容は、他の周辺コーナーブロックについても同様に適用されることができる。
【０１１４】
図５を参照すると、現在ブロック５１０の上側(upper)ブロック５３０、上右側(upper-right)ブロック５４０、左側(left)ブロック５２０に対し、ＭＶCは現在ブロック５１０の動きベクトルであり、ＭＶUは上側ブロック５３０の動きベクトルであり、ＭＶURは上右側ブロック５４０の動きベクトルであり、ＭＶLは左側ブロック５２０の動きベクトルである。また、現在ブロック５１０の上側ブロック５３０の参照ピクチャインデックスは１(Ｒｅｆ.＃１)であり、現在ブロック５１０の上右側ブロック５４０の参照ピクチャインデックスも１(Ｒｅｆ.＃１)であり、現在ブロック５１０の左側ブロック５２０の参照ピクチャインデックスは０(Ｒｅｆ.＃０)と仮定する。参照ピクチャインデックスは、各ブロックの動きベクトルが示す参照フレーム(参照ピクチャ)インデックスを意味する。
【０１１５】
図５において、メモリ(バッファ)に格納された、参照ピクチャリストにおける０番目の参照フレーム(参照ピクチャ)が動き推定(motion estimation)に利用される場合、動きベクトルＭＶLが０番目の参照フレームの動きベクトル予測子の生成に利用されることができる。また、参照ピクチャリストにおける１番目の参照フレームが動き推定に利用される場合、三つの動きベクトルＭＶL、ＭＶU、ＭＶULの全てが１番目の参照フレームの動きベクトル予測子の生成に利用されることができる。参照ピクチャリストで２番目乃至４番目の参照フレームに対する動きベクトル予測子は、１番目の参照フレームの動きベクトル予測子と同じ値を有することができる。
【０１１６】
生成された動きベクトル予測子に基づいて、現在ブロックに対して推定された動きベクトルＭＶCと動きベクトル予測子との差分値が算出されることができ、ＭＶＤは、デコーディング装置に送信される。
【０１１７】
図５の例において、周辺ブロックの参照フレーム(参照ピクチャ)と同じ参照フレームである、参照ピクチャリストの０番目又は１番目の参照フレームが動き推定に利用される場合、適正な動きベクトル予測子を生成することができる。しかし、周辺ブロックの参照フレーム(参照ピクチャ)と異なる参照フレームが動き推定に利用される場合、生成される動きベクトル予測子は、現在ブロックの動きベクトルＭＶCと大きな差を示すことができる。その理由は、現在ブロックの動きベクトルＭＶCに対する参照フレームに対応する参照フレームを有する周辺ブロックがないため、周辺ブロックの情報を利用して現在ブロックの動きベクトルを効果的に予測しにくいためである。
【０１１８】
この場合、現在ブロックの周辺ブロックが有する動きベクトルに対するアップスケーリング又はダウンスケーリングを介して、現在ブロックの動きベクトルＭＶCにより近い動きベクトル予測子を生成することができ、符号化されて送信されるＭＶＤのビット量を減らすことができる。
【０１１９】
例えば、現在ブロック５１０の周辺ブロックである上側ブロック５３０、上右側ブロック５４０、左側ブロック５２０の参照ピクチャの全てが現在ブロックの参照ピクチャと異なると仮定する場合、周辺ブロック５２０、５３０、５４０の動きベクトルは、数式１の例のように、線形補間(linear interpolation)によりアップスケーリングされ(up-scaled)又はダウンスケーリングされる(down-scaled)ことができる。
【０１２０】
【数１】
2020014254.tif 000003
【０１２１】
数式１において、ｆLは現在ブロックの左側ブロックの参照フレームナンバ(又は、参照ピクチャインデックス)を表し、ｆUは現在ブロックの上側ブロックの参照フレームナンバを表し、ｆURはコーナーブロックのうち現在ブロックの右上側ブロックの参照フレームナンバを表し、ｆMEは動き推定された参照フレームナンバであり、ｆCは現在フレームナンバである。
【０１２２】
数式１のような線形補間により、現在ブロックの周辺ブロックの動きベクトルがアップスケーリング又はダウンスケーリングされることができる。スケーリングされた周辺ブロックの動きベクトルを利用して動きベクトル予測子を生成することができる。このとき、エンコーディング装置又はデコーディング装置は、多様な方法により動きベクトル予測子を生成することができる。例えば、周辺ブロックの動きベクトルのうちいずれか一つを選択して動きベクトル予測子として利用することもでき、周辺ブロックの動きベクトルを平均した値を動きベクトル予測子として利用することもでき、周辺ブロックの動きベクトルをメディアンフィルタリングした値を動きベクトル予測子として利用することもできる。
【０１２３】
図６は、本発明によるスケーリングの方法を概略的に説明する流れ図である。
【０１２４】
図６を参照すると、エンコーディング装置又はデコーディング装置は、ｎ番目の参照フレームを利用して動き推定を実行する(Ｓ６１０)。ｎ番目の参照フレームは、参照ピクチャリストにおけるｎ番目の参照ピクチャ(参照フレーム)であり、現在ブロックの参照フレーム(参照ピクチャ)である。
【０１２５】
エンコーディング装置又はデコーディング装置は、周辺ブロックの参照フレームナンバ(参照ピクチャの場合には参照ピクチャインデックス)がｎと異なるかどうかを判断する(Ｓ６２０)。例えば、周辺ブロックとして現在ブロックの左側ブロック、現在ブロックの上側ブロック、そしてコーナーブロックのうち、現在ブロックの上右側コーナーブロックを考慮する場合、エンコーディング装置又はデコーディング装置は、左側ブロックの参照フレームナンバｆL、上側ブロックの参照フレームナンバｆU、上右側ブロックの参照フレームナンバｆURの値がｎと異なるかどうかを判断する。
【０１２６】
エンコーディング装置又はデコーディング装置は、周辺ブロックの参照フレームナンバがｎと異なる場合、周辺ブロックの動きベクトルをスケーリングすることができる(Ｓ６３０)。例えば、前述したように現在ブロックの左側、上側、上右側ブロックを周辺ブロックとして考慮するとき、エンコーディング装置又はデコーディング装置は、ｆL、ｆU、ｆURの値がｎと異なる場合、対応するブロックの動きベクトル、即ち、現在ブロックの左側ブロックの動きベクトルＭＶL、現在ブロックの上側ブロックの動きベクトルＭＶU、現在ブロックの上右側ブロックの動きベクトルＭＶURをスケーリングすることができる。
【０１２７】
エンコーディング装置又はデコーディング装置は、現在ブロックに対する動きベクトル予測子を生成する(Ｓ６４０)。エンコーディング装置又はデコーディング装置は、周辺ブロックのうちいずれか一つが現在ブロックの参照フレームと同じ参照フレームナンバを有する場合、該当ブロックの動きベクトルを利用して現在ブロックに対する動きベクトル予測子を生成することができる。例えば、ｆL、ｆU、ｆURの値のうち少なくとも一つがｎの値を有する場合、ｎの参照フレームナンバを有する周辺ブロックの動きベクトルを利用して現在ブロックに対する動きベクトル予測子を生成することができる。また、エンコーディング装置又はデコーディング装置は、ｆL、ｆU、ｆURの値の全てがｎと異なる値を有する場合、周辺ブロックの動きベクトルを前述したようにスケーリングして現在ブロックに対する動きベクトル予測子を生成することができる。スケーリング方法としては前述した数式１を利用することができる。
【０１２８】
このとき、エンコーディング装置又はデコーディング装置は、周辺ブロックのスケーリングされた動きベクトル又はスケーリングされない動きベクトルに対してメディアン値を求めて現在ブロックに対する動きベクトル予測子を生成することができる。または、エンコーディング装置又はデコーディング装置は、周辺ブロックのスケーリングされた動きベクトル又はスケーリングされない動きベクトルに対して平均値を求めて現在ブロックに対する動きベクトル予測子を生成することもできる。または、エンコーディング装置又はデコーディング装置は、周辺ブロックのスケーリングされた動きベクトル又はスケーリングされない動きベクトルのうちいずれか一つを現在ブロックに対する動きベクトル予測子として利用することもできる。
【０１２９】
ここでは説明の便宜のために、現在ブロックの周辺ブロックとして、現在ブロックの左側に位置する周辺ブロックを代表する左側ブロック５２０、現在ブロックの上側に位置する周辺ブロックを代表する上側ブロック５３０、現在ブロックの周辺コーナーに位置するブロックを代表する右上側ブロック５４０を例示したが、周辺ブロックを全部考慮し、又は周辺ブロックのうち他の位置のブロックを考慮して前述した方法を適用することもできる。
【０１３０】
例えば、図４に示すように、コーナーブロック３個４１０、４３０、４５０、左側ブロック４２０のうちいずれか一つ、そして上側ブロック４４０のうちいずれか一つを利用して動きベクトル予測子を生成することもできる。この場合、左側ブロック４２０のうち特定の位置のブロック４２０−１を利用したり、上側ブロック４４０のうち特定の位置のブロック４４０−１を利用したりすることもできる。
【０１３１】
また、現在ブロックの参照フレーム(参照ピクチャ)と同じ参照フレームを有するブロックがあるかどうかを左側候補グループ(Ａ0，Ａ1)に対して判断し、上側候補グループ(Ｂ0，Ｂ1，Ｂ2)に対して判断し、一つずつの候補を選択することもできる。左側候補グループのブロックのうち、現在ブロックの参照フレーム(参照ピクチャ)と同じ参照フレーム(ピクチャ)を有するブロックがない場合には、左側候補ブロック又は左側候補ブロックの中から選択されたブロックの動きベクトルをスケーリングすることができる。また、上側候補グループのブロックのうち、現在ブロックの参照フレーム(参照ピクチャ)と同じ参照フレーム(ピクチャ)を有するブロックがない場合には、上側候補ブロック又は上側候補ブロックの中から選択されたブロックの動きベクトルをスケーリングすることができる。
【０１３２】
図７は、本発明によって、現在ピクチャ(現在フレーム)内の現在ブロックの周辺ブロックが有する動きベクトルをスケーリングする方法を概略的に説明する図面である。
【０１３３】
図７を参照すると、現在ピクチャ７００内の現在ブロック７４０の周辺ブロック７３０の参照ピクチャは、現在ブロック７４０の参照ピクチャと同じであってもよく、異なってもよい。
【０１３４】
現在ブロック７４０の参照ピクチャと周辺ブロック７３０の参照ピクチャが参照ピクチャ７１０で互いに同一である場合、周辺ブロック７３０の動きベクトル７５０は、スケーリングせずに現在ブロックの動きベクトル予測子の生成に利用することができる。このとき、周辺ブロック７３０は、現在ブロック７４０と同じ参照ピクチャリストを有することもでき、異なる参照ピクチャリストを有することもできる。例えば、現在ブロック７４０の参照ピクチャが参照リストＬ０のＮ番目の参照ピクチャであり、周辺ブロック７３０が現在ブロック７４０と同じ参照ピクチャ及び同じ参照ピクチャリストを有する場合、周辺ブロック７３０の動きベクトル７５０は、ｍｖＬ０Ｎのように表現されることができる。
【０１３５】
一方、現在ブロック７４０の参照ピクチャが参照ピクチャ７１０であり、周辺ブロック７３０の参照ピクチャが参照ピクチャ７２０である場合、即ち、互いに異なる場合、周辺ブロック７３０の動きベクトル７６０をスケーリングして現在ブロックの動きベクトル予測子の生成に利用されることができる。このとき、周辺ブロック７３０は、現在ブロック７４０と同じ参照ピクチャリストを有することもでき、異なる参照ピクチャリストを有することもできる。例えば、現在ブロック７４０の参照ピクチャが参照リストＬ０のＮ番目の参照ピクチャであり、周辺ブロック７３０が現在ブロック７４０と異なる参照ピクチャを有し、参照ピクチャリストは同じ場合、周辺ブロック７３０の動きベクトル７６０をスケーリングした動きベクトルをｍｖＬ０Ｎ＿ｓｃａｌｅｄで表現することができる。
【０１３６】
周辺ブロックの動きベクトルは、現在ブロックの参照ピクチャと現在ピクチャとの間の距離、ｔｂ、そして周辺ブロックの参照ピクチャと現在ピクチャとの間の距離、ｔｄの大きさを考慮して実行されることができる。周辺ブロックの動きベクトルをスケーリングする方法の一例として、数式２の方法を利用することができる。
【０１３７】
【数２】
2020014254.tif 000004
【０１３８】
ここで、ＤｉｓｔＳｃａｌｅＦａｃｔｏｒは、前述したように、二つの距離、ｔｂとｔｄの大きさを考慮して決定されるスケーリングファクタである。このとき、切り上げの場合には数式２のように定数１２８を利用し、切り捨ての場合には定数１２８の代わりに定数１２７を利用することもできる。例えば、１/４画素ブロック(Quarter Pel Unit)でスケーリングを実行した結果が１.５の場合、定数１２８を適用する場合には２にラウンディングされ、定数１２７を適用する場合には１にラウンディングされる結果を得ることができる。ただし、切り捨ての場合、０を指向する切り捨てを適用することもできる。例えば、−１.５の値に対して切り捨てを適用する場合、−２ではなく−１の値になるように切り捨てを適用することもできる。
【０１３９】
ＤｉｓｔＳｃａｌｅＦａｃｔｏｒは、多様な方法により決定されることができ、数式３及び数式４は、ＤｉｓｔＳｃａｌｅＦａｃｔｏｒを決定する互いに異なる方法の例である。
【０１４０】
【数３】
2020014254.tif 000005
【０１４１】
【数４】
2020014254.tif 000006
【０１４２】
このとき、数式３及び数式４におけるｔｘは、Ｈ.２６４/ＭＰＥＧ−４ＡＶＣの時間動きベクトル候補の導出と同様に、ｔｘ＝（１６３８４＋（Ａｂｓ（ｔｄ）／２））／ｔｄに設定することができる(Ｈ.２６４標準８.４.１.２.３参照)。
【０１４３】
一方、動きベクトル予測子の生成に利用する周辺ブロックは、動きベクトル競合(Motion Vector Competition)を介して選択されることができる。動きベクトル競合は、複数個の動きベクトル候補の中から最適の動きベクトルを選択して予測値として使用することを意味する。この場合、現在ブロックの空間の(Spatial)隣接ブロックだけでなく、時間の(temporal)隣接ブロックであるｃｏｌブロックまで考慮されることができる。
【０１４４】
図８は、本発明の一実施例によって動きベクトル競合を実行する方法を概略的に説明する図面である。図８では、現在ブロック８００の周辺ブロックのうち、空間周辺ブロックを示している。
【０１４５】
図８を参照すると、図８の空間周辺ブロックは、現在ブロック８００の上側にあるｎａ(ｎａは、１以上の整数)個の上側グループブロック(ａ0,ａ1,...,ａna)、現在ブロック８００の左側にあるｎｂ(ｎｂは、１以上の整数)個の左側グループブロック(ｂ0,ｂ1,...,ｂnb)、そして、現在ブロック８００の右上側、左下側、左上側コーナーにあるコーナーグループブロック(ｃ,ｄ,ｅ)を有する。
【０１４６】
図８の例において、アドバンスド動きベクトル予測子(Advanced Motion Vector Prediction：ＡＭＶＰ)における動きベクトル候補は、数式５の例のように求めることができる。
【０１４７】
【数５】
2020014254.tif 000007
【０１４８】
数式５において、三つの空間動きベクトルａ′、ｂ′、ｃ′は、各グループ(現在ブロックの上側にあるブロック、現在ブロックの左側にあるブロック、現在ブロックのコーナーにあるブロック)で現在ブロック８００と同じ参照リスト、同じ参照ピクチャインデックスを有する１番目の利用可能なブロックの動きベクトルを意味する。エンコーディング装置又はデコーディング装置は、数式５の動きベクトル候補の全部又は一部を利用して図３で説明した動きベクトル予測子の候補リストを生成することができる。
【０１４９】
エンコーディング装置又はデコーディング装置は、数式５の動きベクトル候補の中から所定の候補を現在ブロックの動きベクトル予測子として選定することができる。このとき、エンコーディング装置又はデコーディング装置は、数式５の動きベクトルのうち一部又は全部を考慮して現在ブロックのＭＶＰを選択することができる。例えば、エンコーディング装置は、数式５の動きベクトル候補のうち現在ブロックの動きベクトルとの残差が最小となる候補を現在ブロックに対するＭＶＰとして選択し、これに関する情報をデコーディング装置に送信することもできる。また、エンコーディング装置は、数式５の動きベクトルのうち一部の動きベクトル、例えば、ａ′、ｂ′、ｃ′のみを考慮して利用可能な動きベクトルを選択し、ａ′、ｂ′、ｃ′が考慮の対象にならない場合(利用可能でない場合)には、追加として時間予測子を考慮することもできる。
【０１５０】
数式５において、ｍｅｄｉａｎ(ａ′,ｂ′,ｃ′)は、ａ′、ｂ′、ｃ′のメディアン(median)ベクトルであり、メディアンベクトルを算出する方法の一例として以下の１)乃至４)を利用することができる。
【０１５１】
１)ａ′、ｂ′、ｃ′の全てが利用可能(available)な場合にはそのままａ′、ｂ′、ｃ′の値を計算してメディアンベクトルを算出する。
【０１５２】
２)ａ′、ｂ′、ｃ′のうち、２個のみ利用可能な場合には、利用できない(not available)動きベクトルの値を０に設定してメディアンベクトルを算出する。
【０１５３】
３)ａ′、ｂ′、ｃ′のうち、１個のみ利用可能な場合には、利用可能な動きベクトルをメディアンベクトルとして利用する。
【０１５４】
４)１)乃至３)以外の場合にはメディアンベクトルの値を０に設定する。
【０１５５】
このとき、ａ′、ｂ′、ｃ′の各々の動きベクトルのうち利用可能でない動きベクトルは、動きベクトル候補に含まれない。また、時間動きベクトル予測子は、現在ピクチャ(フレーム)とは異なるピクチャ(フレーム)における現在ブロックに対応する位置にある(co-located)動きベクトルを意味する。
【０１５６】
一方、現在ブロック８００の上側にあるｎａ(ｎａは、１以上の整数)個の上側グループブロック(ａ0,ａ1,...,ａna)のうち、現在ブロック８００と同じ参照ピクチャリスト及び同じ参照ピクチャインデックスを有する１番目の利用可能なブロックの動きベクトルを求めるための疑似コード(pseudo code)の一例は、表１の通りである。
【０１５７】
【表１】
2020014254.tif 000008
【０１５８】
表１ではをａ0からａnaの順序で検索する場合を例示して説明したが、これに限定するものではなく、ａnaからａ0の順序で検索し、現在ブロック８００と同じ参照ピクチャリスト及び同じ参照ピクチャインデックスを有する１番目の利用可能なブロックの動きベクトルを求めることもできる。
【０１５９】
一方、表１の例とは違って、参照ピクチャリストと参照ピクチャインデックスに関係なく、上側グループブロックのうち、最初に検索されたインターモードブロックの動きベクトルをスケーリングしてａ′の値として割り当てることもできる。この場合、動きベクトルａ′を求めるための疑似コードの一例は、表２の通りである。
【０１６０】
【表２】
2020014254.tif 000009
【０１６１】
表２でもａ0からａnaの順序で検索する場合を例示して説明したが、これに限定するものではなく、ａnaからａ0の順序で検索し、現在ブロック８００と同じ参照ピクチャリスト、同じ参照ピクチャインデックスを有する１番目の利用可能なブロックの動きベクトルをスケーリングして求めることもできる。
【０１６２】
現在ブロック８００の左側にあるｎｂ(ｎｂは、１以上の整数)個の左側グループブロック(ｂ0,ｂ1,...,ｂnb)のうち、現在ブロック８００と同じ参照ピクチャリスト及び同じ参照ピクチャインデックスを有する１番目の利用可能なブロックの動きベクトルｂ′も表１と同様に得ることができる。ｂ′を求めるための疑似コード(pseudo code)の一例は、表３の通りである。
【０１６３】
【表３】
2020014254.tif 000010
【０１６４】
表３ではｂ0からｂnbの順序で検索する場合を例示して説明したが、これに限定するものではなく、ｂnbからｂ0の順序で検索し、現在ブロック８００と同じ参照ピクチャリスト及び同じ参照ピクチャインデックスを有する１番目の利用可能なブロックの動きベクトルを求めることもできる。
【０１６５】
一方、表３の例とは違って、参照ピクチャリストと参照ピクチャインデックスに関係なく、左側グループブロックのうち、最初に検索されたインターモードブロックの動きベクトルをスケーリングしてｂ′の値として割り当てることもできる。この場合、動きベクトルｂ′を求めるための疑似コードの一例は、表４の通りである。
【０１６６】
【表４】
2020014254.tif 000011
【０１６７】
表４でもｂ0からｂnbの順序で検索する場合を例示して説明したが、これに限定するものではなく、ｂnbからｂ0の順序で検索し、現在ブロック８００と同じ参照ピクチャリスト、同じ参照ピクチャインデックスを有する１番目の利用可能なブロックの動きベクトルをスケーリングして求めることもできる。
【０１６８】
現在ブロック８００のコーナーにある３個のコーナーグループブロック(ｃ,ｄ,ｅ)のうち、現在ブロック８００と同じ参照ピクチャリスト及び同じ参照ピクチャインデックスを有する１番目の利用可能なブロックの動きベクトルｃ′も表１と同様に得ることができる。ｃ′を求めるための疑似コード(pseudo code)の一例は、表５の通りである。表５では説明の便宜のために、ｃ0＝ｃ、ｃ1＝ｄ、ｃ2＝ｅと記載する。
【０１６９】
【表５】
2020014254.tif 000012
【０１７０】
表５ではｃ0からｃ2の順序で検索する場合を例示して説明したが、これに限定するものではなく、ｃ2からｃ0の順序で検索したり、ｃ1→ｃ2→ｃ0又はｃ1→ｃ0→ｃ2の順序で検索したりし、現在ブロック８００と同じ参照ピクチャリスト及び同じ参照ピクチャインデックスを有する１番目の利用可能なブロックの動きベクトルを求めることもできる。
【０１７１】
一方、表５の例とは違って、参照ピクチャリストと参照ピクチャインデックスに関係なく、コーナーグループブロックのうち、最初に検索されたインターモードブロックの動きベクトルをスケーリングしてｃ′の値として割り当てることもできる。この場合、動きベクトルｃ′を求めるための疑似コードの一例は、表６の通りである。
【０１７２】
【表６】
2020014254.tif 000013
【０１７３】
表６でもｃ0からｃ2の順序で検索する場合を例示して説明したが、これに限定するものではなく、ｃ2からｃ0の順序で検索したり、ｃ1→ｃ2→ｃ0又はｃ1→ｃ0→ｃ2の順序で検索したりし、現在ブロック８００と同じ参照ピクチャリスト、同じ参照ピクチャインデックスを有する１番目の利用可能なブロックの動きベクトルをスケーリングして求めることもできる。
【０１７４】
一方、動きベクトルが利用可能でない場合にのみ、参照ピクチャリスト、参照ピクチャインデックスに関係なく該当周辺ブロックグループ内で最初に検索されたインターモードブロックの動きベクトルをスケーリングして動きベクトル候補として割り当てることもできる。
【０１７５】
表１〜表６では現在ブロックと参照ピクチャ及び参照ピクチャリストが同じブロックを利用可能なブロックに設定する。ただし、表２、４、６では、現在ブロックと参照ピクチャ及び参照ピクチャリストが異なる場合でも、インター予測モードのブロックである場合にスケーリングにより該当ブロックの動きベクトルを利用することができる。
【０１７６】
以下、表７乃至表１２でも、現在ブロックと参照ピクチャ及び参照ピクチャリストが異なる場合、インター予測モードのブロックである場合にスケーリングにより該当ブロックの動きベクトルを利用することを説明している。
【０１７７】
表７は、上側グループブロックの動きベクトルが利用可能でない場合、上側グループブロックのうち、最初に検索されたインターモードブロックの動きベクトルをスケーリングしてａ′を求めるための疑似コードの一例である。
【０１７８】
【表７】
2020014254.tif 000014
【０１７９】
表７ではａ0からａnaの順序で検索する場合を例示して説明したが、これに限定するものではなく、ａnaからａ0の順序で検索して１番目の利用可能なブロックの動きベクトルをスケーリングして求めることもできる。
【０１８０】
表８は、左側グループブロックの動きベクトルが利用可能でない場合、左側グループブロックのうち、最初に検索されたインターモードブロックの動きベクトルをスケーリングしてｂ′を求めるための疑似コードの一例である。
【０１８１】
【表８】
2020014254.tif 000015
【０１８２】
表８でもｂ0からｂnbの順序で検索する場合を例示して説明したが、これに限定するものではなく、ｂnbからｂ0の順序で検索して１番目の利用可能なブロックの動きベクトルをスケーリングして求めることもできる。
【０１８３】
表９は、左側グループブロックの動きベクトルが利用可能でない場合、左側グループブロックのうち、最初に検索されたインターモードブロックの動きベクトルをスケーリングしてｃ′を求めるための疑似コードの一例である。
【０１８４】
【表９】
2020014254.tif 000016
【０１８５】
表９でもｃ0からｃ2の順序で検索する場合を例示して説明したが、これに限定するものではなく、ｃ2からｃ0の順序で検索したり、ｃ1→ｃ2→ｃ0又はｃ1→ｃ0→ｃ2の順序で検索したりし、１番目の利用可能なブロックの動きベクトルをスケーリングして求めることもできる。
【０１８６】
一方、前述した方法と類似するが、現在ブロックの周辺ブロックの動きベクトルが利用可能でない場合、下記のような優先順位によってスケーリングの対象となる動きベクトルを決定することもできる。
【０１８７】
＜優先順位＞
１)現在ブロックと同じ参照ピクチャを参照するブロック(リスト０(Ｌ０)とリスト１(Ｌ１)が同じ参照ピクチャを有する場合に発生することができる)。
２)１)の検討後にも、周辺ブロックの動きベクトルのうち、利用可能な動きベクトルがない場合には、同じ参照ピクチャリストを有するブロック。
３)２)の検討後にも、周辺ブロックの動きベクトルのうち、利用可能な動きベクトルがない場合には、残りのインターモードブロック。
【０１８８】
したがって、エンコーディング装置又はデコーディング装置は、１)乃至３)の優先順位によって現在ブロックの周辺ブロックのうちいずれか一つのブロックを決定し、該当ブロックの動きベクトルをスケーリングすることができる。
【０１８９】
表１０は、前述した優先順位に基づいて、上側グループブロックのうちいずれか一つのブロックを選択し、該当ブロックの動きベクトルをスケーリングしてａ′を求めるための疑似コードの一例である。
【０１９０】
【表１０】
2020014254.tif 000017
【０１９１】
表１０ではａ0からａnaの順序で検索する場合を例示して説明したが、これに限定するものではなく、ａnaからａ0の順序で検索して１番目の利用可能なブロックの動きベクトルをスケーリングして求めることもできる。
【０１９２】
表１１は、前述した優先順位に基づいて、左側グループブロックのうちいずれか一つのブロックを選択し、該当ブロックの動きベクトルをスケーリングしてｂ′を求めるための疑似コードの一例である。
【０１９３】
【表１１】
2020014254.tif 000018
【０１９４】
表１１でもｂ0からｂnbの順序で検索する場合を例示して説明したが、これに限定するものではなく、ｂnbからｂ0の順序で検索して１番目の利用可能なブロックの動きベクトルをスケーリングして求めることもできる。
【０１９５】
表１２は、前述した優先順位に基づいて、左側グループブロックのうちいずれか一つのブロックを選択し、該当ブロックの動きベクトルをスケーリングしてｃ′を求めるための疑似コードの一例である。
【０１９６】
【表１２】
2020014254.tif 000019
【０１９７】
表１２でもｃ0からｃ2の順序で検索する場合を例示して説明したが、これに限定するものではなく、ｃ2からｃ0の順序で検索したり、ｃ1→ｃ2→ｃ0又はｃ1→ｃ0→ｃ2の順序で検索したりして１番目の利用可能なブロックの動きベクトルをスケーリングして求めることもできる。
【０１９８】
表１０乃至表１２では前述したような優先順位にしたがって、スケーリング対象を選択して利用可能な動きベクトル候補を算出することを説明したが、優先順位は前述に限定されず、必要によって多様に変更して適用することができる。
【０１９９】
一方、前述した優先順位を条件として整理すると、下記のような検討条件に表現されることができる。
【０２００】
＜検討条件＞
スキャン(scan)する対象ブロックの動き情報(参照ピクチャ、参照ピクチャインデックス)が、
(１)現在ブロックと同じ参照ピクチャであり、同じ参照ピクチャリスト。
(２)現在ブロックと同じ参照ピクチャであり、異なる参照ピクチャリスト。
(３)現在ブロックと異なる参照ピクチャであり、同じ参照ピクチャリスト。
(４)現在ブロックと異なる参照ピクチャであり、異なる参照ピクチャリスト。
【０２０１】
上記検討条件と関連して、エンコーディング装置又はデコーディング装置は、動きベクトル予測(motion vector prediction)のための、一つの空間動きベクトル候補を決定するために、所定の個数、例えば、ｎ個のブロックを定められた順序に従ってスキャンする。このとき、エンコーディング装置又はデコーディング装置は、現在ブロックの周辺のｎ個のブロックを順にスキャンしながら、上記検討条件に該当するブロックであるかどうかを判断することもでき、現在ブロックの周辺ブロックをグループ別に、例えば、上側グループ、左側グループ、コーナーグループ別にスキャンしながら、スキャンする各グループについて上記検討条件に該当するブロックがあるかどうかを判断することもできる。また、上側グループ、左側グループ、コーナーグループに分ける代わりに、左上側コーナーブロックと右上側コーナーブロックを有する上側グループと、左下側コーナーブロックを有する左側ブロックと、に現在ブロックの周辺ブロックを分け、二つのグループに対してグループ別にスキャンしながら、スキャンするグループに上記検討条件を満たすブロックがあるかどうかを判断することもできる。
【０２０２】
上記検討条件に対し、エンコーディング装置又はデコーディング装置は、より低い番号の検討条件により高い優先順位を与えることができる。その理由は、より低い番号の検討条件を満たす周辺ブロックであるほど現在ブロックとより類似した動き情報を有するためである。
【０２０３】
以下、まず、現在ブロック周辺のｎ個のブロックを上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをそのまま又はスケーリングして現在ブロックの動きベクトルを予測するための動きベクトル予測子の候補として使用する方法を表を参照して説明する。
【０２０４】
ここで、利用可能なブロックとは、現在ブロックのインター予測に利用することができるブロックを意味する。
【０２０５】
スケーリングは、前述したように、現在ブロックの参照ピクチャと現在ピクチャとの間の時間的距離及び周辺ブロックの参照ピクチャと現在ピクチャとの間の時間的距離を考慮して実行されることができる。
【０２０６】
以下の表に記載された１〜１２の数字は、スキャン(確認)の順序を示す。ここでは説明の便宜のために、現在ブロックの周辺ブロックとしてブロック０、ブロック１、ブロック２を考慮する。ブロック０〜ブロック２は、空間動きベクトル候補を求めるための候補ブロックの位置を示す。ブロック０〜ブロック２は、各々、現在ブロックの周辺の左側、上側、コーナーのうちいずれか一つに位置する。説明の便宜のために、ブロック０〜ブロック２は、スキャン順序に従って順に位置すると仮定する。
【０２０７】
表１３は、現在ブロックの周辺のブロック０〜ブロック２を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の一例を示す。
【０２０８】
【表１３】
2020014254.tif 000020
【０２０９】
表１３の例では、ブロック０で検討条件１を満たす動き情報があるかどうかを検索し、検討条件１を満たす動き情報がブロック０にある場合にはブロック０の動きベクトル(ｍｖ)を現在ブロックに対する空間動きベクトル予測子の候補として使用し、検討条件１を満たす動き情報がブロック０にない場合にはスキャン順序で２番目であるブロック１を検索し、検討条件１を満たす動き情報がブロック１にあるかどうかを確認する方式で現在ブロックの空間動きベクトル予測子の候補を決定する。
【０２１０】
表１４は、現在ブロックの周辺のブロック０〜ブロック２を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の他の例を示す。
【０２１１】
【表１４】
2020014254.tif 000021
【０２１２】
表１４の例では、ブロック０で検討条件１を満たす動き情報があるかどうかを検索し、検討条件１を満たす動き情報がブロック０にある場合にはブロック０の動きベクトル(ｍｖ)を現在ブロックに対する空間動きベクトル予測子の候補として利用し、検討条件１を満たす動き情報がブロック０にない場合にはブロック０に検討条件２を満たす動き情報があるかどうかをスキャン(確認)する。ブロック０に検討条件１〜４を満たす動き情報がない場合には、ブロック１に対して検討条件１から検討条件４まで順に検討しながら、該当条件を満たす動き情報があるかどうかをスキャンする方式によって、現在ブロックに対する空間動きベクトル予測子の候補を決定する。
【０２１３】
表１５は、現在ブロックの周辺のブロック０〜ブロック２を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の他の例を示す。
【０２１４】
【表１５】
2020014254.tif 000022
【０２１５】
表１５の例では、ブロック０で検討条件１を満たす動き情報があるかどうかを検索し、検討条件１を満たす動き情報がブロック０にある場合にはブロック０の動きベクトル(ｍｖ)を現在ブロックに対する空間動きベクトル予測子の候補として利用する。検討条件１を満たす動き情報がブロック０にない場合にはブロック１とブロック２に検討条件１を満たす動き情報があるかどうかを順にスキャンする。ブロック０〜２に検討条件１を満たす動き情報がない場合には、ブロック０に対して検討条件２から検討条件４まで順に検討しながら、該当条件を満たす動き情報があるかどうかをスキャンし、ブロック０に検討条件２〜検討条件４を満たす動き情報がない場合にはブロック１に対して順に検討条件２から検討条件４まで順に検討する方式によって、現在ブロックに対する空間動きベクトル予測子の候補を決定する。
【０２１６】
表１６は、現在ブロックの周辺のブロック０〜ブロック２を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の他の例を示す。
【０２１７】
【表１６】
2020014254.tif 000023
【０２１８】
表１６の例では、ブロック０で検討条件１から検討条件４まで、該当条件を満たす動きベクトルがあるかどうかを順に確認する。例えば、検討条件１を満たす動き情報がある場合、該当動きベクトルを現在ブロックに対する動きベクトル予測子の候補として利用する。検討条件１を満たす動き情報がない場合、検討条件２を満たす動き情報があるかどうかを確認する。ブロック０に検討条件１〜検討条件４を満たす動き情報がない場合にはブロック１とブロック２に検討条件１を満たす動き情報があるかどうかを順にスキャンする。ブロック０〜２に検討条件１を満たす動き情報がない場合には、ブロック１とブロック２に対して検討条件２を満たす動き情報があるかどうかを順に確認する方式によって、現在ブロックに対する空間動きベクトル予測子の候補を決定する。
【０２１９】
前述した表１３の例は、例えば、ブロックの位置より検討条件を優先するスキャン順序である。一方、表１４は、検討条件よりブロックの位置を優先するスキャン順序の例である。
【０２２０】
表１５及び表１６は、検討条件とブロックの位置の優先順位を適切に混合したスキャン順序の例である。表１５は、前述したように、検討条件１を最優先にし、検討条件１を満たすブロックがない場合、ブロックの位置を考慮するスキャン順序の例である。また、表１６は、ブロック０で各検討条件の利用可能性(availability)を検討した後、利用可能な動き情報がない場合に、条件を順に考慮するスキャン順序の例である。
【０２２１】
前述した方法によりスケーリングされた動きベクトル(例えば、ａ′、ｂ′、ｃ′)は、ａ′、ｂ′、ｃ′のメディアンベクトル値に影響を与えることができる。また、候補の動きベクトルを決定するとき、考慮する動きベクトルの個数などに影響を与えることもできる。例えば、スケーリングにより利用可能な動きベクトルに分類される周辺ブロックの動きベクトルが新たに生成されることができる。
【０２２２】
前述した方法は、ＡＭＶＰ技術を直接適用しない場合にも利用することができる。例えば、前述したａ′、ｂ′、ｃ′を求め、ａ′、ｂ′、ｃ′からメディアン(median)を求める過程などを介して現在ブロックの動きベクトル予測を実行することもできる。
【０２２３】
このとき、ａ′、ｂ′、ｃ′を求める過程は、ＡＭＶＰでａ′、ｂ′、ｃ′を求める過程と同様に前述した方法を利用することもできる。
【０２２４】
一方、ＡＭＶＰ方法を図９のように変形して適用することもできる。
【０２２５】
図９は、本発明の一実施例によってＡＭＶＰを適用する他の方法を概略的に説明する図面である。図９を参照すると、動きベクトル候補として図８に示す現在ブロックの周辺ブロックのうち一部を利用することができる。例えば、図９の例では、現在ブロック９００の左側にあるＭ個の左側ブロックＡ0,Ａ1,...,Ａmのうち、現在ブロックの左側の最下側に位置するブロックＡm、現在ブロック９００の左下側コーナーブロックＡm+1、現在ブロック９００の左上側コーナーブロックＢ-1、現在ブロック９００の上側にあるＮ個の上側ブロックのうち、現在ブロック上側の最右側に位置するブロックＢn、現在ブロック９００の上右側コーナーブロックＢn+1をＡＭＶＰの候補ブロックとして利用することができる。
【０２２６】
この場合、各コーナーブロック、左下側ブロック４２０−１及び右上側ブロック４４０−１を利用する図４の場合と同様に、現在ブロックの周辺ブロックＡm、Ａm+1、Ｂ-1、Ｂn、Ｂn+1を利用する。図９の例では、左側ブロックＡm、Ａm+1をＡm+1→Ａmの順序９１０でスキャン(又は、確認)し、上側ブロックＢ-1、Ｂn、Ｂn+1をＢn+1→Ｂn→Ｂ-1の順序９２０でスキャン(又は、確認)する。
【０２２７】
このとき、現在ブロックに対する動きベクトルの候補として数式６のような動きベクトル(動きベクトル予測子：ＭＶＰ)を考慮することができる。
【０２２８】
【数６】
2020014254.tif 000024
【０２２９】
数式６は、図９の例において、現在ブロックに対する動きベクトル予測子として利用されることができる動きベクトルの候補を示す。エンコーディング装置又はデコーディング装置は、数式６の動きベクトル候補の全部又は一部を利用して図３で説明した動きベクトル予測子の候補リストを生成することができる。
【０２３０】
数式６を参照すると、図９の例では現在ブロックの動きベクトルを予測するために、現在ブロックの空間周辺ブロックのうち２ブロックの動きベクトルを考慮する。エンコーディング装置又はデコーディング装置は、数式６に示す現在ブロックの二つの空間周辺ブロックの動きベクトルと現在ブロックの一つの時間周辺ブロックの動きベクトル(時間予測子)との両方ともを考慮することができる。また、エンコーディング装置又はデコーディング装置は、数式６に示す二つの空間周辺ブロックの動きベクトルをまず考慮し、二つの空間周辺ブロックの動きベクトルのうち利用することができない(unavailable)動きベクトルがある場合に時間予測子を考慮することもできる。
【０２３１】
数式６において、ａ′は、現在ブロックの左側ブロックＡm、Ａm+1をＡm+1→Ａmの順序９１０でスキャン(検討)するとき、利用可能であるとして最初に検索されたブロックの動きベクトルであり、現在ブロックに対する動きベクトル予測子の候補である。ａ′を左側動きベクトル予測子(left mv predictor)ということもできる。
【０２３２】
また、数式６において、ｂ′は、現在ブロックの上側ブロック(Ｂ-1、Ｂn、Ｂn+1をＢn+1→Ｂn→Ｂ-1の順序９２０でスキャン(検討)するとき、利用可能であるとして最初に検索されたブロックの動きベクトルであり、現在ブロックに対する動きベクトル予測子の候補である。ｂ′を上側動きベクトル予測子(top mv predictor)ということもできる。
【０２３３】
利用可能であるとして選択された周辺ブロックの参照ピクチャインデックスが現在ブロックの参照ピクチャインデックスと同じ場合、即ち、選択された周辺ブロックの参照ピクチャが現在ブロックの参照ピクチャと同じ場合、該当ブロックの動きベクトルは、スケーリングせずに現在ブロックに対する動きベクトル予測子として利用されることができる。この場合は、上記検討条件１又は検討条件２の場合に該当する。
【０２３４】
利用可能であるとして選択された周辺ブロックの参照ピクチャインデックスが現在ブロックの参照ピクチャインデックスと異なる場合、即ち、選択された周辺ブロックの参照ピクチャが現在ブロックの参照ピクチャと異なる場合、該当ブロックの動きベクトルは、スケーリングを介して現在ブロックに対する動きベクトル予測子として利用されることができる。この場合は、上記検討条件３又は検討条件４の場合に該当する。
【０２３５】
図９の場合にも上記４ステップの検討条件及び周辺ブロックの位置を考慮して多様な順序に従って現在ブロックの周辺ブロックに対する動きベクトルのスキャンが可能である。このとき、エンコーディング装置又はデコーディング装置は、左側ブロックＡm、Ａm+1から求められる動きベクトル予測子の候補、例えば、左側動きベクトル予測子と、上側ブロックＢ-1、Ｂn、Ｂn+1から求められる動きベクトル予測子の候補、例えば、上側動きベクトル予測子とを別個に決定することができる。
【０２３６】
図８の場合と同様に、図９の場合にも以下の表で定められた順序に従ってスキャンをしながら検討条件を満たすかどうかを確認し、検討条件を満たす場合にはスキャンを中止し、検討条件を満たすブロックの動きベクトルをそのまま又はスケーリングして現在ブロックの動きベクトルを予測するための動きベクトル予測子(ＭＶＰ)の候補として利用する。
【０２３７】
エンコーディング装置又はデコーディング装置は、選択された動きベクトル予測子の候補に基づいて動きベクトル予測子(ＭＶＰ)リストを構成することができる。エンコーディング装置は、ＭＶＰリストで現在ブロックの予測に利用される動きベクトル予測子を動きベクトル予測子インデックスなどを介して指示することができる。デコーディング装置は、エンコーディング装置から受信した動きベクトル予測子インデックスが動きベクトル予測子リストにおいて指示する動きベクトル予測子を利用して現在ブロックの動きベクトルを導出することができる。
【０２３８】
以下、左側動きベクトル予測子を選択する方法と上側動きベクトル予測子を選択する方法とを順に説明する。以下の表でも１〜８の数字はスキャンの順序を示す。
【０２３９】
表１７は、図９において現在ブロック９００の左側周辺ブロックＡm、Ａm+1を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをそのまま又はスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の一例を示す。
【０２４０】
【表１７】
2020014254.tif 000025
【０２４１】
表１７の例では、ブロックＡmが上記検討条件のうち一つを満たすかどうかを確認する。ブロックＡmが検討条件１を満たさない場合、ブロックＡmが検討条件２を満たすかどうかを確認する。このような方式によってスキャンし、ブロックＡmが検討条件１〜検討条件４を満たさない場合にはスキャン順序に従ってブロックＡm+1が検討条件１〜検討条件４のうち一つを満たすかどうかを順に確認する。
【０２４２】
スキャン過程で該当ブロックが検討条件を満たす場合、エンコーディング装置又はデコーディング装置は、スキャンを中止し、該当ブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として選択する。エンコーディング装置又はデコーディング装置は、必要によって、周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、周辺ブロックと現在ブロックとの参照ピクチャが異なる場合には、該当周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することができる。このとき、スケーリング方法として、前述した数式１又は数式２の方法を利用することもできる。
【０２４３】
表１８は、図９において現在ブロック９００の左側周辺ブロックＡm、Ａm+1を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをそのまま又はスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の他の例を示す。
【０２４４】
【表１８】
2020014254.tif 000026
【０２４５】
表１８の例では、ブロックＡmが検討条件１を満たすかどうかを確認する。ブロックＡmが検討条件１を満たさない場合には、ブロックＡm+1が検討条件１を満たすかどうかを確認する。ブロックＡm+1も検討条件１を満たさない場合には、ブロックＡmが検討条件２〜検討条件４のうち一つを満たすかどうかを順に確認する。ブロックＡmが検討条件２〜検討条件４を満たさない場合、スキャン順序に従ってブロックＡm+1が検討条件２〜検討条件４のうち一つを満たすかどうかを順に確認する。
【０２４６】
スキャン過程で該当ブロックが検討条件を満たす場合、エンコーディング装置又はデコーディング装置は、スキャンを中止し、該当ブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として選択する。エンコーディング装置又はデコーディング装置は、必要によって、周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、周辺ブロックと現在ブロックとの参照ピクチャが異なる場合には、該当周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することができる。このとき、スケーリング方法として、前述した数式１又は数式２の方法を利用することもできる。
【０２４７】
表１９は、図９において現在ブロック９００の左側周辺ブロックＡm、Ａm+1を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをそのまま又はスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の他の例を示す。
【０２４８】
【表１９】
2020014254.tif 000027
【０２４９】
表１９の例では、表１７のスキャン順序とは違って、ブロックＡm+1が検討条件１〜検討条件４を満たすかどうかを順に確認し、ブロックＡm+1が検討条件１〜検討条件４を満たさない場合、ブロックＡmが検討条件１〜検討条件４を満たすかどうかを順に確認する。
【０２５０】
スキャン過程で検討条件を満たすブロックを探し出した場合、エンコーディング装置又はデコーディング装置は、スキャンを中止し、該当ブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として選択する。エンコーディング装置又はデコーディング装置は、必要によって、周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、周辺ブロックと現在ブロックとの参照ピクチャが異なる場合には、該当周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することができる。このとき、スケーリング方法として、前述した数式１又は数式２の方法を利用することもできる。
【０２５１】
表２０は、図９において現在ブロック９００の左側周辺ブロックＡm、Ａm+1を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをそのまま又はスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の他の例を示す。
【０２５２】
【表２０】
2020014254.tif 000028
【０２５３】
表２０の例では、表１８の例で適用したスキャン順序を、表１８の例とは違って、ブロックＡm+1に優先順位をおいて適用する。例えば、表２０の例では、ブロックＡm+1が条件１を満たすかどうかを確認する。ブロックＡm+1が検討条件１を満たさない場合には、スキャン順序に従ってブロックＡmが検討条件１を満たすかどうかを確認する。ブロックＡmも検討条件１を満たさない場合にはスキャン順序に従って、ブロックＡm+1が検討条件２〜検討条件４のうちいずれか一つを満たすかどうかを順に確認する。ブロックＡm+1が検討条件２〜検討条件４を満たさない場合、スキャン順序に従ってブロックＡmが検討条件２〜検討条件４のうちいずれか一つを満たすかどうかを確認する。
【０２５４】
スキャン過程で検討条件を満たすブロックを探し出した場合、エンコーディング装置又はデコーディング装置は、スキャンを中止し、該当ブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として選択する。エンコーディング装置又はデコーディング装置は、必要によって、周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、周辺ブロックと現在ブロックとの参照ピクチャが異なる場合には、該当周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することができる。このとき、スケーリング方法として、前述した数式１又は数式２の方法を利用することもできる。
【０２５５】
表２１は、図９において現在ブロック９００の左側周辺ブロックＡm、Ａm+1を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをそのまま又はスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の他の例を示す。
【０２５６】
【表２１】
2020014254.tif 000029
【０２５７】
表２１の例では、ます、ブロックＡm+1が検討条件１を満たすかどうかを確認する。ブロックＡm+1が検討条件１を満たさない場合には、スキャン順序に従ってブロックＡmが検討条件１を満たすかどうかを確認する。ブロックＡmも検討条件１を満たさない場合には、スキャン順序に従って、ブロックＡm+1が検討条件２を満たすかどうかを確認する。ブロックＡm+1が検討条件２を満たさない場合、スキャン順序に従ってブロックＡmが検討条件２を満たすかどうかを確認する。ブロックＡmが検討条件２を満たさない場合、ブロックＡm+1が検討条件３〜検討条件４のうち一つを満たすかどうかを順に確認し、ブロックＡmが検討条件３〜検討条件４のうち一つを満たすかどうかを順に確認する。
【０２５８】
スキャン過程で検討条件を満たすブロックを探し出した場合、エンコーディング装置又はデコーディング装置は、スキャンを中止し、該当ブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として選択する。エンコーディング装置又はデコーディング装置は、必要によって、周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、周辺ブロックと現在ブロックとの参照ピクチャが異なる場合には、該当周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することができる。このとき、スケーリング方法として、前述した数式１又は数式２の方法を利用することもできる。
【０２５９】
表２２は、図９において現在ブロック９００の左側周辺ブロックＡm、Ａm+1を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをそのまま又はスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の他の例を示す。
【０２６０】
【表２２】
2020014254.tif 000030
【０２６１】
表２２では各ブロック別に検討条件を２つずつ順に確認する。具体的には、まず、エンコーディング装置又はデコーディング装置は、ブロックＡm+1が検討条件１を満たすかどうかを確認する。ブロックＡm+1が検討条件１を満たさない場合、エンコーディング装置又はデコーディング装置は、ブロックＡm+1が検討条件２を満たすかどうかを確認する。ブロックＡm+1が検討条件２を満たさない場合、エンコーディング装置又はデコーディング装置は、ブロックＡmが検討条件１を満たすかどうかを確認する。ブロックＡmが検討条件１を満たさない場合、エンコーディング装置又はデコーディング装置は、ブロックＡmが検討条件２を満たすかどうかを確認する。ブロックＡmが検討条件２を満たさない場合、エンコーディング装置又はデコーディング装置は、ブロックＡm+1が検討条件３を満たすかどうかを確認する。ブロックＡm+1が検討条件３を満たさない場合、エンコーディング装置又はデコーディング装置は、ブロックＡm+1が検討条件４を満たすかどうかを確認する。ブロックＡm+1が検討条件４を満たさない場合、エンコーディング装置又はデコーディング装置は、ブロックＡmが検討条件３を満たすかどうかを確認する。ブロックＡmが検討条件３を満たさない場合、エンコーディング装置又はデコーディング装置は、ブロックＡmが検討条件４を満たすかどうかを確認する。
【０２６２】
スキャン過程で検討条件を満たすブロックを探し出した場合、エンコーディング装置又はデコーディング装置は、スキャンを中止し、該当ブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として選択する。エンコーディング装置又はデコーディング装置は、必要によって、周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、周辺ブロックと現在ブロックとの参照ピクチャが異なる場合には、該当周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することができる。このとき、スケーリング方法として、前述した数式１又は数式２の方法を利用することもできる。
【０２６３】
上記表１７〜表２２の例のように、現在ブロックの左側周辺ブロックＡm及びＡm+1から現在ブロックに対する動きベクトル予測子の候補、即ち、左側動きベクトル候補(left mv candidate)を求めるために多様なスキャン順序を適用することができる。
【０２６４】
このとき、スキャンを実行する場合の数を減らして複雑さにおける利得を得るために一部のスキャンを省略又は除去することもできる。例えば、表１７の例において、順序１〜５までのスキャンのみを実行し、順序６〜８に該当するスキャンは，省略することもできる。同様に、表１８〜表２２の例でも、後方の順位(例えば、５〜８、６〜８、７〜８又は８等)のスキャンは、プロセスの複雑さを軽減するために省略することもできる。
【０２６５】
また、検討条件に該当するか否かを確認する手順を検討条件別にグルーピングして実行することによって複雑さにおける利得を得ることもできる。例えば、表２２の場合、各ブロック別に２個ずつの検討条件を順に確認する。
【０２６６】
また、表２１の例と表２２の例とは、検討条件１及び検討条件２を優先する方法である。前述したように、検討条件１及び検討条件２の場合に該当するブロックは、現在ブロックと同じ参照ピクチャを有するため、スケーリングせずに該当ブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として利用することができる。したがって、スケーリングの頻度を減らし、複雑さを軽減することができる。
【０２６７】
以下、現在ブロックの上側周辺ブロックＢ-1、Ｂn、Ｂn+1から現在ブロックに対する動きベクトル予測子の候補、即ち、上側動きベクトル予測子を選択する方法を説明する。上側周辺ブロックから現在ブロックに対する動きベクトル予測子の候補を選択する方法は、スキャン対象ブロックが３個という点を除外すると、左側周辺ブロックから現在ブロックに対する動きベクトル予測子の候補を選択する方法と基本的に同様である。以下の表において、１〜１２の数字はスキャンの順序を意味する。
【０２６８】
表２３は、図９において現在ブロック９００の上側周辺ブロックＢ-1、Ｂn、Ｂn+1を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをそのまま又はスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の一例を示す。
【０２６９】
【表２３】
2020014254.tif 000031
【０２７０】
表２３の例では、ブロックＢn+1が上記検討条件のうち一つを満たすかどうかを確認する。ブロックＢn+1が検討条件１を満たさない場合、次にブロックＢn+1が検討条件２を満たすかどうかを確認する。このような方式によってスキャンし、ブロックＢn+1が検討条件１〜検討条件４を満たさない場合にはブロックＢnが検討条件１〜検討条件４のうち一つを満たすかどうかを順に確認する。また、ブロックＢnが検討条件１〜検討条件４を満たさない場合には、ブロックＢ-1が検討条件１〜検討条件４のうち一つを満たすかどうかを順に確認する。
【０２７１】
スキャン過程で該当ブロックが検討条件を満たす場合、エンコーディング装置又はデコーディング装置は、スキャンを中止し、該当ブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として選択する。エンコーディング装置又はデコーディング装置は、必要によって、周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、周辺ブロックと現在ブロックとの参照ピクチャが異なる場合には、該当周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することができる。このとき、スケーリング方法として、前述した数式１又は数式２の方法を利用することもできる。
【０２７２】
表２４は、図９において、現在ブロック９００の上側周辺ブロックＢ-1、Ｂn、Ｂn+1を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをそのまま又はスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の他の例を示す。
【０２７３】
【表２４】
2020014254.tif 000032
【０２７４】
表２４の例では、ブロックＢn+1が検討条件１を満たすかどうかを確認する。ブロックＢn+1が検討条件１を満たさない場合には、ブロックＢnが検討条件１を満たすかどうかを確認する。ブロックＢnが検討条件１を満たさない場合には、ブロックＢ-1が検討条件１を満たすかどうかを確認する。ブロックＢ-1が検討条件１を満たさない場合、再びブロックＢn+1からＢ-1の順序で、検討条件２を満たすかどうかを確認する。ブロックＢn+1、Ｂn、Ｂ-1が検討条件２を満たさない場合、再びＢn+1からＢ-1の順序で、検討条件３を満たすかどうかを確認する。このような方法によって、ブロックＢn+1、Ｂn、Ｂ-1のうち検討条件１〜検討条件４のうち一つを満たすブロックがあるかどうかをスキャン順序に従って順に確認する。
【０２７５】
スキャン過程で検討条件を満たす周辺ブロックを探し出した場合、エンコーディング装置又はデコーディング装置は、スキャンを中止し、該当ブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として選択する。エンコーディング装置又はデコーディング装置は、必要によって、周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、周辺ブロックと現在ブロックとの参照ピクチャが異なる場合には、該当周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することができる。このとき、スケーリング方法として、前述した数式１又は数式２の方法を利用することもできる。
【０２７６】
表２５は、図９において現在ブロック９００の上側周辺ブロックＢ-1、Ｂn、Ｂn+1を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認した１番目のブロックの動きベクトルをそのまま又はスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の他の例を示す。
【０２７７】
【表２５】
2020014254.tif 000033
【０２７８】
表２５の例では、検討条件１を満たすかどうかをブロックＢn+1、Ｂn、Ｂ-1の順序で確認する。検討条件１を満たす上側周辺ブロックがない場合には、ブロックＢn+1に対して検討条件２〜検討条件４のうち一つを満たすかどうかを順に確認する。ブロックＢn+1が検討条件２〜検討条件４を満たさない場合には、ブロックＢnが検討条件２〜検討条件４のうち一つを満たすかどうかを順に確認する。ブロックＢnが検討条件２〜検討条件４を満たさない場合には、ブロックＢ-1が検討条件２〜検討条件４のうち一つを満たすかどうかを順に確認する。
【０２７９】
スキャン過程で検討条件を満たすブロックを探し出した場合、エンコーディング装置又はデコーディング装置は、スキャンを中止し、該当ブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として選択する。エンコーディング装置又はデコーディング装置は、必要によって、周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、周辺ブロックと現在ブロックとの参照ピクチャが異なる場合には、該当周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することができる。このとき、スケーリング方法として、前述した数式１又は数式２の方法を利用することもできる。
【０２８０】
表２６は、図９において現在ブロック９００の上側周辺ブロックＢ-1、Ｂn、Ｂn+1を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをそのまま又はスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の他の例を示す。
【０２８１】
【表２６】
2020014254.tif 000034
【０２８２】
表２６の例では、表２５の例とは違って、検討条件１及び２に対しては、各検討条件をブロックＢn+1、Ｂn、Ｂ-1が満たすかどうかを順に確認し、検討条件３及び４については各ブロック別に満たすかどうかを順に判断する。例えば、まず、検討条件１を満たすかどうかをブロックＢn+1、Ｂn、Ｂ-1の順序で確認し、検討条件１を満たす上側周辺ブロックがない場合には、検討条件２を満たすかどうかをブロックＢn+1、Ｂn、Ｂ-1の順序で確認する。検討条件１及び検討条件２のうち一つを満たす上側ブロックがない場合には、ブロックＢn+1が検討条件３又は検討条件４のうち一つを満たすかどうかを順に確認し、ブロックＢn+1が検討条件３及び検討条件４を満たさない場合には、ブロックＢnが検討条件３又は検討条件４のうち一つを満たすかどうかを順に確認する。ブロックＢnが検討条件３及び検討条件４を満たさない場合には、ブロックＢ-1が検討条件３又は検討条件４のうち一つを満たすかどうかを順に確認する。
【０２８３】
スキャン過程で検討条件を満たすブロックを探し出した場合、エンコーディング装置又はデコーディング装置は、スキャンを中止し、該当ブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として選択する。エンコーディング装置又はデコーディング装置は、必要によって、周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、周辺ブロックと現在ブロックとの参照ピクチャが異なる場合には、該当周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することができる。このとき、スケーリング方法として、前述した数式１又は数式２の方法を利用することもできる。
【０２８４】
表２７は、図９において現在ブロック９００の上側周辺ブロックＢ-1、Ｂn、Ｂn+1を上記検討条件の優先順位に従ってスキャンしながら、利用可能であると確認された１番目のブロックの動きベクトルをそのまま又はスケーリングして現在ブロックに対する空間動きベクトル予測子の候補として使用する方法の他の例を示す。
【０２８５】
【表２７】
2020014254.tif 000035
【０２８６】
表２７の例では、表２２の例と同様に、各ブロック当たり２個ずつの検討条件を確認する。具体的には、エンコーディング装置又はデコーディング装置は、ブロックＢn+1が検討条件１又は検討条件２のうち一つを満たすかどうかを順に確認する。ブロックＢn+1が検討条件１及び検討条件２を満たさない場合には、ブロックＢnが検討条件１又は検討条件２のうち一つを満たすかどうかを順に確認する。ブロックＢnが検討条件１及び検討条件２を満たさない場合には、ブロックＢ-1が検討条件１又は検討条件２のうち一つを満たすかどうかを順に確認する。上側ブロックが検討条件１及び検討条件２を満たさない場合、ブロックＢn+1が検討条件３又は検討条件４のうち一つを満たすかどうかを順に確認する。ブロックＢn+1が検討条件３及び検討条件４を満たさない場合、ブロックＢnが検討条件３又は検討条件４のうち一つを満たすかどうかを順に確認する。ブロックＢnが検討条件３及び検討条件４を満たさない場合、ブロックＢ-1が検討条件３又は検討条件４のうち一つを満たすかどうかを順に確認する。
【０２８７】
スキャン過程で検討条件を満たすブロックを探し出した場合、エンコーディング装置又はデコーディング装置は、スキャンを中止し、該当ブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として選択する。エンコーディング装置又はデコーディング装置は、必要によって、周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することもできる。例えば、エンコーディング装置又はデコーディング装置は、周辺ブロックと現在ブロックとの参照ピクチャが異なる場合には、該当周辺ブロックの動きベクトルをスケーリングして動きベクトル予測子の候補として利用することができる。このとき、スケーリング方法として、前述した数式１又は数式２の方法を利用することもできる。
【０２８８】
表２３〜表２７に示すように、現在ブロックの左側ブロックから現在ブロックに対する動きベクトル予測子の候補を求めるのと同様に、現在ブロックの上側ブロックから現在ブロックに対する動きベクトル予測子の候補を求めるためにも多様なスキャン順序を適用することができる。
【０２８９】
上側ブロックから現在ブロックに対する動きベクトル予測子の候補、即ち、上側動きベクトルの候補(top mv candidate)を求める方法においても、複雑さを軽減するために、スキャンを実行する場合の数を減らすこともできる。例えば、検討条件１を満たすかどうかを確認するスキャンの場合又は各検討条件別に１番目のスキャンの場合にのみスキャンを実行するようにすることができる。この場合、表２３の例では順序６、７、８、１０、１１、１２のスキャンを省略することができる。
【０２９０】
また、表２６及び表２７の例は、表２１及び表２２の例と同様に、検討条件１及び検討条件２を優先する方法である。検討条件１及び検討条件２に該当するブロックは、現在ブロック(例えば、現在予測ユニット)と同じ参照ピクチャを参照するため、動きベクトルをスケーリングせずに、そのまま現在ブロックに対する動きベクトル予測子の候補として利用することができる。したがって、動きベクトルのスケーリングによる複雑さを軽減することができる。
【０２９１】
一方、前述したスキャン方法外に多様な検討条件の組合せ及び検討条件の順序、ブロック位置の順序を適用することが可能である。また、前述したスキャン方法を組合せて適用することも可能である。
【０２９２】
また、本明細書では動きベクトル予測子という表現を利用したが、これは説明の便宜のためのものであり、動きベクトル予測子は、予測動きベクトル(Predicted Motion Vector：ＰＭＶ)などと呼ばれることもある。
【０２９３】
図４、図５、図７、図８、図９において、現在ブロック及び現在ブロックの周辺ブロックは、予測ユニットであってもよい。それだけでなく、図４、図５、図７、図８、図９において、現在ブロック及び現在ブロックの周辺ブロックは、変換ユニットであってもよい。したがって、図４、図５、図７、図８、図９で説明した内容は、現在ブロック及び現在ブロックの周辺ブロックが符号化ユニット又は変換ユニットである場合にも同様に適用されることができる。
【０２９４】
一方、本明細書では、動きベクトル予測子の候補を選択し、選択された動きベクトル予測子の候補を利用して現在ブロックに対する予測を実行する過程がエンコーディング装置又はデコーディング装置で行われると説明したが、これは説明の便宜のためのものであり、本発明はこれに限定されるものではない。動きベクトル予測子の候補を選択し、選択された動きベクトル予測子の候補を利用して現在ブロックに対する予測を実行する過程は、エンコーディング装置又はデコーディング装置における所定のモジュール又はユニットで実行されてもよい。例えば、動きベクトル予測子の候補を選択し、選択された動きベクトル予測子の候補を利用して現在ブロックに対する予測を実行する過程をエンコーディング装置又はデコーディング装置における予測部で実行することができる。
【０２９５】
図１０は、本発明によって現在ブロックに対する動きベクトル予測子を選択する方法を概略的に説明する流れ図である。図１０の各ステップは、エンコーディング装置又はデコーディング装置が実行することができる。また、エンコーディング装置又はデコーディング装置の予測部が図１０の各ステップを実行することもできる。ここでは説明の便宜のためにエンコーディング装置又はデコーディング装置における予測部が図１０の各ステップを実行すると想定して説明する。
【０２９６】
図１０を参照すると、予測部は、現在ブロックに対する動きベクトル予測子の候補を選択する(Ｓ１０１０)。予測部は、現在ブロックの周辺ブロックから利用可能であるとして検索された１番目のブロックの動きベクトルを現在ブロックに対する動きベクトル予測子の候補として選択することができる。このとき、予測部は、現在ブロックの周辺ブロックを所定のグループに分けて検索を実行し、各グループ別に現在ブロックに対する動きベクトル予測子の候補を選択することもできる。
【０２９７】
このとき、利用可能なブロックは、インター予測モードでエンコーディング/デコーディングされるブロックであり、前述した検討条件を満たすブロックである。現在ブロックの周辺ブロックをグループに分ける方法は前述した通りである。
【０２９８】
また、予測部は、利用可能であるとして検索された１番目のブロックの動きベクトルをスケーリングして、現在ブロックに対する動きベクトル予測子の候補として選択することもできる。例えば、予測部は、利用可能であるとして検索された１番目のブロックが前述した検討条件３又は検討条件４に該当する場合には、該当ブロックの動きベクトルをスケーリングすることができる。スケーリングの具体的な方法は、前述した通りである。
【０２９９】
予測部は、空間の周辺ブロックから求めることができる動きベクトル予測子の候補の個数が所定の個数に達しない場合には、時間の周辺ブロックから動きベクトル予測子の候補を求めることもできる。
【０３００】
予測部は、動きベクトル予測子の候補の中から現在ブロックに対する動きベクトル予測子を選択することができる(Ｓ１０２０)。予測部は、選択した動きベクトル予測子の候補で動きベクトル予測子リストを構成することができる。エンコーディング装置の予測部は、送信情報量を最小にする動きベクトル予測子を、動きベクトル予測子リストから選択することができる。デコーディング装置の予測部は、エンコーディング装置から送信された動きベクトル予測子に関する情報(例えば、動きベクトル予測子インデックス)が指示する動きベクトル予測子を動きベクトル予測子リストから選択し、現在ブロックに対する予測を実行することができる。
【０３０１】
前述した例示的なシステムにおいて、方法は一連のステップ又は流れ図に基づいて説明されているが、本発明は、このステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと異なる順序で又は同時に実行することができる。また、前述した実施例は、多様な態様の例を含む。
【０３０２】
したがって、本発明は、前述した実施例を同時に適用したり、組合せて適用したりする実施形態を含む。
【符号の説明】
【０３０３】
１００    映像エンコーディング装置
１０５    ピクチャ分割部
１１０    予測部
１１５    変換部
１２０    量子化部
１２５    再整列部
１３０    エントロピエンコーディング部
１３５    逆量子化部
１４０    逆変換部
１４５    フィルタ部
１５０    メモリ
２００    映像デコーディング装置
２１０    エントロピデコーディング部
２１５    再整列部
２２０    逆量子化部
２２５    逆変換部
２３０    予測部
２３５    フィルタ部
２４０    メモリ
【図１】
2020014254.tif 000036
【図２】
2020014254.tif 000037
【図３】
2020014254.tif 000038
【図４】
2020014254.tif 000039
【図５】
2020014254.tif 000040
【図６】
2020014254.tif 000041
【図７】
2020014254.tif 000042
【図８】
2020014254.tif 000043
【図９】
2020014254.tif 000044
【図１０】
2020014254.tif 000045
【手続補正書】
【提出日】令和1年11月11日(2019.11.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
現在ブロックに関する動きベクトル差（ＭＶＤ）情報を有するビデオ情報を受信するステップと、
確認順序に基づいて周辺ブロックグループから動きベクトル予測子（ＭＶＰ）候補を導出するステップであって、該周辺ブロックグループは、前記現在ブロックの左下側コーナーに位置する第１のブロックと前記第１のブロックの上側に隣接する第２のブロックとから構成されるステップと、
前記ＭＶＰ候補に基づいて前記現在ブロックのＭＶＰを決定するステップと、
前記ＭＶＤ情報に基づいて前記現在ブロックのＭＶＤを導出するステップと、
前記現在ブロックの前記ＭＶＰおよび前記ＭＶＤに基づいて前記現在ブロックの動きベクトルを導出するステップと、
前記導出した動きベクトルに基づいて前記現在ブロックの予測ブロックを導出するステップと、
前記予測ブロックに基づいて復元ブロックを生成するステップと、を有し、
前記予測ブロックは、前記現在ブロックの予測されたサンプルを有し、
前記確認順序は、前記第１のブロック、前記第２のブロックの順序として決定され、
前記ＭＶＰ候補を導出するステップは、第１の条件および第２の条件に基づいて実行され、
前記第１の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの参照ピクチャおよび参照ピクチャリストと同じ参照ピクチャおよび参照ピクチャリストを有するか否かであり、
前記第２の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの前記参照ピクチャと同じ参照ピクチャを有し、かつ、前記現在ブロックの前記参照ピクチャリストと異なる参照ピクチャリストを有するか否かであり、
前記ＭＶＰ候補を導出するステップにおいて、前記第１のブロックが前記第１の条件および前記第２の条件を満たさないと決定された場合、前記第２のブロックは、前記第１の条件または前記第２の条件を満たすか否かを確認される、デコーディング装置による映像デコーディング方法。
【請求項２】
前記ＭＶＰ候補を導出するステップは、さらに第３の条件に基づいて実行され、
前記第３の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの参照ピクチャと異なる参照ピクチャを有するか否かである、請求項１に記載の映像デコーディング方法。
【請求項３】
前記ＭＶＰ候補を導出するステップにおいて、前記第１のブロックおよび前記第２のブロックが前記第１の条件および前記第２の条件を満たさないと決定された場合、前記第１のブロックは、前記第３の条件を満たすか否かを確認される、請求項２に記載の映像デコーディング方法。
【請求項４】
現在ブロックに関する動きベクトル差（ＭＶＤ）情報を有するビデオ情報を受信するエントロピデコーディングモジュールと、
確認順序に基づいて周辺ブロックグループから動きベクトル予測子（ＭＶＰ）候補を導出し、該周辺ブロックグループは、前記現在ブロックの左下側コーナーに位置する第１のブロックと前記第１のブロックの上側に隣接する第２のブロックとから構成され、
前記ＭＶＰ候補に基づいて前記現在ブロックのＭＶＰを決定し、
前記ＭＶＤ情報に基づいて前記現在ブロックのＭＶＤを導出し、
前記現在ブロックの前記ＭＶＰおよび前記ＭＶＤに基づいて前記現在ブロックの動きベクトルを導出し、
前記導出した動きベクトルに基づいて前記現在ブロックの予測ブロックを導出し、前記予測ブロックは、前記現在ブロックの予測されたサンプルを有する、予測モジュールと、
前記予測ブロックに基づいて復元ブロックを生成する加算モジュールと、を有し、
前記確認順序は、前記第１のブロック、前記第２のブロックの順序として決定され、
前記ＭＶＰ候補を導出することは、第１の条件および第２の条件に基づいて実行され、
前記第１の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの参照ピクチャおよび参照ピクチャリストと同じ参照ピクチャおよび参照ピクチャリストを有するか否かであり、
前記第２の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの前記参照ピクチャと同じ参照ピクチャを有し、かつ、前記現在ブロックの前記参照ピクチャリストと異なる参照ピクチャリストを有するか否かであり、
前記ＭＶＰ候補を導出することにおいて、前記第１のブロックが前記第１の条件および前記第２の条件を満たさないと決定された場合、前記第２のブロックは、前記第１の条件または前記第２の条件を満たすか否かを確認される、映像デコーディング装置。
【請求項５】
確認順序に基づいて周辺ブロックグループから動きベクトル予測子（ＭＶＰ）候補を導出するステップであって、該周辺ブロックグループは、現在ブロックの左下側コーナーに位置する第１のブロックと前記第１のブロックの上側に隣接する第２のブロックとから構成されるステップと、
前記ＭＶＰ候補に基づいて前記現在ブロックのＭＶＰを決定するステップと、
前記現在ブロックのＭＶＰに基づいて前記現在ブロックの動きベクトル差（ＭＶＤ）を導出するステップと、
前記現在ブロックのＭＶＤを表すＭＶＤ情報を生成するステップと、
前記ＭＶＤ情報を有するビデオ情報をエンコーディングするステップと、を有し、
前記確認順序は、前記第１のブロック、前記第２のブロックの順序として決定され、
前記ＭＶＰ候補を導出するステップは、第１の条件および第２の条件に基づいて実行され、
前記第１の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの参照ピクチャおよび参照ピクチャリストと同じ参照ピクチャおよび参照ピクチャリストを有するか否かであり、
前記第２の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの前記参照ピクチャと同じ参照ピクチャを有し、かつ、前記現在ブロックの前記参照ピクチャリストと異なる参照ピクチャリストを有するか否かであり、
前記ＭＶＰ候補を導出するステップにおいて、前記第１のブロックが前記第１の条件および前記第２の条件を満たさないと決定された場合、前記第２のブロックは、前記第１の条件または前記第２の条件を満たすか否かを確認される、エンコーディング装置による映像エンコーディング方法。
【請求項６】
前記ＭＶＰ候補を導出するステップは、さらに第３の条件に基づいて実行され、
前記第３の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの参照ピクチャと異なる参照ピクチャを有するか否かである、請求項５に記載の映像エンコーディング方法。
【請求項７】
前記ＭＶＰ候補を導出するステップにおいて、前記第１のブロックおよび前記第２のブロックが前記第１の条件および前記第２の条件を満たさないと決定された場合、前記第１のブロックは、前記第３の条件を満たすか否かを確認される、請求項６に記載の映像エンコーディング方法。
【請求項８】
確認順序に基づいて周辺ブロックグループから動きベクトル予測子（ＭＶＰ）候補を導出し、該周辺ブロックグループは、現在ブロックの左下側コーナーに位置する第１のブロックと前記第１のブロックの上側に隣接する第２のブロックとから構成され、
前記ＭＶＰ候補に基づいて前記現在ブロックのＭＶＰを決定し、
前記現在ブロックのＭＶＰに基づいて前記現在ブロックの動きベクトル差（ＭＶＤ）を導出し、
前記現在ブロックのＭＶＤを表すＭＶＤ情報を生成する、予測モジュールと、
前記ＭＶＤ情報を有するビデオ情報をエンコーディングするエントロピエンコーディングモジュールと、を有し、
前記確認順序は、前記第１のブロック、前記第２のブロックの順序として決定され、
前記ＭＶＰ候補を導出することは、第１の条件および第２の条件に基づいて実行され、
前記第１の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの参照ピクチャおよび参照ピクチャリストと同じ参照ピクチャおよび参照ピクチャリストを有するか否かであり、
前記第２の条件は、前記周辺ブロックグループのブロックが前記現在ブロックの前記参照ピクチャと同じ参照ピクチャを有し、かつ、前記現在ブロックの前記参照ピクチャリストと異なる参照ピクチャリストを有するか否かであり、
前記ＭＶＰ候補を導出することにおいて、前記第１のブロックが前記第１の条件および前記第２の条件を満たさないと決定された場合、前記第２のブロックは、前記第１の条件または前記第２の条件を満たすか否かを確認される、映像エンコーディング装置。
【請求項９】
請求項１に記載の映像デコーディング方法をデコーディング装置に行わせるコンピュータプログラムを有するビデオ情報を記憶するデジタル記憶媒体。