JP6638366B2 - 映像符号化装置、映像符号化方法及び映像符号化プログラム - Google Patents

映像符号化装置、映像符号化方法及び映像符号化プログラム Download PDF

Info

Publication number
JP6638366B2
JP6638366B2 JP2015243211A JP2015243211A JP6638366B2 JP 6638366 B2 JP6638366 B2 JP 6638366B2 JP 2015243211 A JP2015243211 A JP 2015243211A JP 2015243211 A JP2015243211 A JP 2015243211A JP 6638366 B2 JP6638366 B2 JP 6638366B2
Authority
JP
Japan
Prior art keywords
vector
unit
compensation
motion vector
motion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015243211A
Other languages
English (en)
Other versions
JP2017112416A (ja
Inventor
誠也 柴田
誠也 柴田
磊 孫
磊 孫
慶一 蝶野
慶一 蝶野
健太 徳満
健太 徳満
紀章 鈴木
紀章 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2015243211A priority Critical patent/JP6638366B2/ja
Publication of JP2017112416A publication Critical patent/JP2017112416A/ja
Application granted granted Critical
Publication of JP6638366B2 publication Critical patent/JP6638366B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は映像符号化技術に関し、特に動きベクトル併合に基づく映像符号化技術に関する。
特許文献1には、ビデオをコード化する技術の一例が記載されている。特許文献1に記載されているビデオコード化装置は、2つの参照ピクチャに関する双方向予測、及び、1つの参照ピクチャに関する単方向予測のうちの1つを使用して、ビデオブロックをコード化する。
特表2014−506084号公報
特許文献1の技術では、参照ピクチャが1つである場合、単方向予測のみが使用される。そのため、必ずしも精度よく予測を行えるとは限らない。
本発明の目的の1つは、参照ピクチャが1つである場合であっても、予測の精度を向上させることができる映像符号化装置などを提供することにある。
本発明の一態様に係る映像符号化装置は、符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する補填候補生成手段と、前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する動きベクトル補填手段と、を備える。
本発明の一態様に係る映像符号化方法は、符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成し、前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する。
本発明の一態様に係る映像符号化プログラムは、コンピュータに、符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する補填候補生成処理と、前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する動きベクトル補填処理と、を実行させる。
本発明には、参照ピクチャが1つである場合であっても、予測の精度を向上させることができるという効果がある。
図1は、本発明の比較例に係る映像符号化装置の全体の構成の例を表すブロック図である。 図2は、本発明の比較例に係る映像符号化装置の動き補償部の構成の例を模式的に表すブロック図である。 図3は、本発明の比較例に係る映像符号化装置の動き補償部の構成の例を表すブロック図である。 図4は、本発明の比較例に係る動きベクトル補填部の構成の例を模式的に表すブロック図である。 図5は、本発明の比較例及び第1の実施形態に係る補填候補生成部によって動きベクトルが選択されるブロックの位置を模式的に表す図である。 図6は、本発明の比較例の動きベクトル補填部の構成の例を模式的に表すブロック図である。 図7は、本発明の比較例に係る映像符号化装置の、動きベクトルの補填及びリファインを行う部分の構造の例を示す図である。 図8は、本発明の比較例の映像符号化装置の、符号化対象画像の予測画像を生成する動作の例を表すフローチャートである。 図9は、本発明の比較例の映像符号化装置1の、動きベクトル補填処理の動作の例を表すフローチャートである。 図10は、本発明の第1の実施形態に係る映像符号化装置の構成の例を表すブロック図である。 図11は、本発明の第1の実施形態に係る映像符号化装置の動き補償部200の構成の例を模式的に表すブロック図である。 図12は、本発明の第1の実施形態の動き補償部の構成の例を表すブロック図である。 図13は、本発明の第1の実施形態の動きベクトル補填部の構成の例を詳細に示すブロック図である。 図14は、本発明の第1の実施形態の動きベクトル補填部の構成の例を模式的に表すブロック図である。 図15は、本発明の第1の実施形態の動き補償部の動作を表す第1のフローチャートである。 図16は、本発明の第1の実施形態の動き補償部の動作を表す第2のフローチャートである。 図17は、本発明の第1の実施形態の動きベクトル補填部による、動きベクトル補填処理の動作の一例を表すフローチャートである。 図18は、本発明の第1の実施形態の映像符号化装置の、動きベクトルの補填及びリファインを行う部分を模式的に表す図である。 図19は、本発明の第2の実施形態に係る映像符号化装置の構成の例を表すブロック図である。 図20は、本実施形態に係る映像符号化装置の動作の例を表すフローチャートである。 図21は、上述の実施形態及び比較例に係る映像符号化装置を実現することができる、コンピュータのハードウェア構成の一例を表す図である。 図22は、本発明の比較例の、回路によって実装された映像符号化装置1の構成の一例を表すブロック図である。 図23は、本発明の比較例の、動き補償回路1100の構成の一例を表すブロック図である。 図24は、本発明の比較例の、動き補償回路1100の構成の一例を表すブロック図である。 図25は、本発明の比較例の、動きベクトル補填回路1010の構成の一例を表すブロック図である。 図26は、本発明の比較例の、動きベクトル補填回路1010の構成の一例を表すブロック図である。 図27は、本発明の第の実施形態の、回路によって実装された映像符号化装置2の構成の一例を表すブロック図である。 図28は、本発明の第1の実施形態の、動き補償回路1200の構成の一例を表すブロック図である。 図29は、本発明の第1の実施形態の、回路によって実装された動き補償回路1200の構成の一例を表すブロック図である。 図30は、本発明の第1の実施形態の、動きベクトル補填回路1090の構成の一例を表すブロック図である。 図31は、本発明の第1の実施形態の、動きベクトル補填回路1090の構成の一例を表すブロック図である。 図32は、本発明の第2の実施形態の、回路によって実装された映像符号化装置2Aの構成の一例を表すブロック図である。
以下では、まず、本発明の関連技術である比較例について説明し、次に本発明の実施形態について説明する。なお、本発明の比較例及び実施形態に係る装置、ユニット、及び、回路等の構成を表すブロック図において、データの流れは矢印の方向に限定されない。
[比較例]
まず、本発明の実施の形態と比較する対象としての比較例について、図面を参照して詳細に説明する。
図1は、本発明の比較例に係る映像符号化装置の全体の構成の例を表すブロック図である。図1に示す映像符号化装置1は、受信した映像を符号化する装置である。具体的には、映像符号化装置1は、映像を受信し、受信した映像を、例えば、いずれかの符号化の方式に従って符号化する。そして、映像符号化装置1は、映像が符号化されたビットストリームを出力する。符号化の方式(すなわち規格)は、例えば、H.265/HEVC(High Efficiency Video Coding)である。符号化の方式は、例えば、H.264/MPEG−4 AVC(Moving Picture Experts Group Advanced Video Coding))であってもよい。以下では、符号化の方式がH.265/HEVCである場合について説明する。
図1を参照すると、本比較例の映像符号化装置1は、ブロック分割部101と、事前解析部102と、イントラ予測部103と、切替部104と、整数変換部105と、量子化部106と、逆量子化部107と、逆変換部108と、符号部109とを含む。映像符号化装置1は、さらに、フィルタ部116と、フレーム記憶部117と、減算部118と、加算部119とを含む。本比較例の映像符号化装置1は、さらに、動き補償部100を含む。
ブロック分割部101は、デジタル化された映像のピクチャをブロックに分割する。イントラ予測部103は、イントラ予測を行う。切替部104は、後述される動き補償部100からの出力と、イントラ予部103からの出力とを切り替える。減算部118は、入力された映像と、切替部104による切替によって選択された、動き補償部100からの出力又はイントラ予測部103からの出力との差分を計算する。整数変換部105は、整数変換を行う。量子化部106は、量子化を行う。符号化部109は、符号化を行い、符号化によって得られるビットストリームを出力する。逆量子化部107は、逆量子化を行う。逆整数変換部108は、逆整数変換を行う。加算部119は、逆整数変換部108の出力と、切替部104による切替によって選択された、動き補償部100からの出力又はイントラ予測部103からの出力とを加算する。フィルタ部116は、デブロッキングフィルタなどによるフィルタリングを行う。フレームバッファ217は、符号化済みのピクチャを記憶する。以上の各要素は、上述の規格に応じた動作を行う。従って、以上の各要素についての詳細な説明を省略する。
事前解析部102は、例えば、フレームバッファ217に格納されている符号化済みのピクチャを使用して、入力されたピクチャ(すなわち符号化対象ピクチャ)における動きベクトルを検出する。例えば、符号化対象ピクチャがPピクチャである場合、事前解析部102は、1つの動きベクトルを、動き補償部100に送信する。符号化対象ピクチャがBピクチャである場合、事前解析部102は、1つ又は2つの動きベクトルを、動き補償部100に送信する。符号化対象ピクチャがBピクチャである場合、事前解析部102は、例えば、2つの動きベクトルを導出する。事前解析部102は、いずれかの動きベクトルが、所定の判定基準に基づいて最適であると判定した場合、最適であると判定された動きベクトルのみを、動き補償部100に送信してもよい。その場合、事前解析部102は、1つの動きベクトルを、動き補償部100に送信する。事前解析部102によって最適であると判定された動きベクトルが存在しない場合、事前解析部102は、2つの動きベクトルを動き補償部100に送信する。事前解析部102は、符号化対象ピクチャの種類を表す信号PicTypeを、動き補償部100に送信してもよい。
2つの動きベクトルに関する参照画像は、符号化対象画像より後のピクチャと前のピクチャの組み合わせであっても、符号化対象画像より前の2枚のピクチャの組み合わせであっても、符号化対象画像より後の2枚のピクチャの組み合わせであってもよい。以下の説明において、事前解析部102から動き補償部100に送信される動きベクトルを、継承動きベクトルと表記する。
事前解析部102と動き補償部100との間には、2つの継承動きベクトルを別々に送信できる、2つの通信経路が設けられていてもよい。後述されるように、事前解析部102及び動き補償部100は、回路として実装されていてもよい。その場合、事前解析部102及び動き補償部100の間には、上述の2つの通信経路として、2つの継承動きベクトルを別々に送信できる、2つの信号線が設けられていればよいそして、2つの継承動きベクトルは、異なる信号線によって、動き補償部100に送信されてもよい。事前解析部102は、1つの継承動きベクトルを動き補償部100に送信する場合、いずれか一方の信号線によって継承動きベクトルを送信すればよい。そして、事前解析部102は、継承動きベクトルの送信に使用する信号線の系統を表す信号を、動き補償部100に送信してもよい。例えば、2つの信号線を、第1の信号線及び第2の信号線と表記する。以下の説明では、第1の信号線を介して送信される継承動きベクトルを、「mMV」と表記する。同様に、第2の信号線を介して送信される継承動きベクトルを「mMV」と表記する。
事前解析部102は、例えば、mMVを送信し、mMVを送信しない場合、mMVを送信し、mMVを送信しないことを表す信号を、動き補償部100に送信する。事前解析部102は、例えば、mMVを送信せず、mMVを送信する場合、mMVを送信せず、mMVを送信することを表す信号を、動き補償部100に送信する。事前解析部102は、例えば、mMVとmMVとを送信する場合、mMVとmMVとを送信することを表す信号を、動き補償部100に送信する。以下の説明では、送信される継承動きベクトルを表す信号を、「mDir」(または信号「mDir」)と表記する。さらに、信号mDirを、「予測方向」とも表記する。本発明の比較例及び後述の各実施形態の説明では、信号mDirの、mMVを送信し、mMVを送信しないことを表す値を、「L0」とも表記する。信号mDirの、mMVを送信せず、mMVを送信することを表す値を、に「L1」とも表記する。さらに、信号mDirの、mMVとmMVとを送信することを表す値を、「Bi」とも表記する。
一般に、L0及びL1は、それぞれ、Bピクチャにおける2つの参照画像リストを指す。上述の継承動きベクトルmMVは、例えば、参照画像リストL0の参照画像における動きベクトルであってもよい。継承動きベクトルmMVは、例えば、参照画像リストL1の参照画像における動きベクトルであってもよい。
図2は、本比較例の映像符号化装置1の動き補償部100の構成の例を模式的に表すブロック図である。図2を参照すると、動き補償部100は、動きベクトル補填部10と、対象選択部20と、リファイン部30と、双予測生成部40と、予測選択部50と、補填候補生成部60と、モード決定部70とを含む。リファイン部30は、図2においては明示されていないが、図1に示すフレーム記憶部117に格納されている、符号化済みのピクチャを読み出すことができる。事前解析部102から送信された動きベクトルは、動きベクトル補填部10及び対象選択部20に入力される。事前解析部102から送信されたピクチャの種類PicTypeは、動きベクトル補填部10に入力される。
補填候補生成部60は、符号化対象ブロックの周辺のブロックにおける予測動きベクトル、及び、符号化対象ブロックが含まれるピクチャの直前ピクチャの予測動きベクトルを生成する。補填候補生成部60は、生成した動きベクトルを、動きベクトル補填部10に送信する。
モード決定部70は、後述される補填モードを表す信号を、動きベクトル補填部10に送信する。補填モードは、あらかじめ実験的に定められていてもよい。その場合、モード決定部70は、あらかじめ実験的に定められている補填モードを表す信号を、動きベクトル補填部10に送信してもよい。補填モードは、ピクチャのタイプ毎に、あらかじめ決められていてもよい。その場合、モード決定部70は、符号化対象ブロックが含まれるピクチャのタイプについて決められている補填モードを表す信号を、動きベクトル補填部10に送信してもよい。補填モードは、符号化処理を実行中に、動的に決められてもよい。その場合、例えばモード決定部70が、例えば、ピクチャと、そのピクチャが符号化され、復号された画像とを比較することによって、符号化の誤差を評価してもよい。そしてモード決定部70が、誤差の評価の結果を使用して、誤差が減少するように補填モードを動的に選択してもよい。なお、図2において、モード決定部70がピクチャ及び複合された画像との比較を行う際のデータの流れは描かれていない。
動きベクトル補填部10は、補填候補生成部60から受信した動きベクトルから、受信した補填モードにおける選択方法に従って、補填動きベクトルを選択する。補填モードとその選択方法については、後で詳細に説明する。動きベクトル補填部10は、継承動きベクトルmMV及び継承動きベクトルmMVのいずれか一方が入力されない場合補填動きベクトルを選択すればよい。
対象選択部20は、継承動きベクトルmMVが入力されない場合、継承動きベクトルmMVの代わりに、補填動きベクトルをリファイン部30に入力する。対象選択部20は、継承動きベクトルmMVが入力されない場合、継承動きベクトルmMVの代わりに、補填動きベクトルをリファイン部30に入力する。
リファイン部30は、入力された動きベクトルによって参照される参照画像の、その動きベクトルに基づく所定の範囲において、符号化対象ブロックの符号化コストが最小になる領域(すなわち予測画像)を検出する。リファイン部30は、符号化対象ブロックの位置を示す座標から、符号化対象ブロックの符号化コストが最小になる領域の位置を示す座標へのベクトルを、予測ベクトルとして出力する。リファイン部30は、さらに、符号化対象ブロックの符号化コストが最小になる領域の画像を、予測信号として出力する。リファイン部30は、入力された2つの動きベクトルの各々について、符号化対象ブロックの符号化コストが最小になる領域を検出すればよい。そして、リファイン部30は、予測ベクトル(rMV0及びrMV1)と予測信号(pred(rMV0)及びpred(rMV1))とを出力すればよい。リファイン部30は、例えば、予測ベクトル(rMV0及びrMV1)を、双予測生成部40に出力すればよい。リファイン部30は、例えば、予測ベクトル(rMV0及びrMV1)と予測信号(pred(rMV0)及びpred(rMV1))とを、予測選択部50に出力すればよい。
本比較例では、事前解析部102が生成した2つの継承動きベクトルが存在する場合、対象選択部20は、それらの2つの継承動きベクトル(すなわち継承動きベクトルmMV0及び継承動きベクトルmMV1)を、リファイン部30に送信する。事前解析部102が生成した継承動きベクトルの数が1つである場合、対象選択部20は、補填動きベクトルと、継承動きベクトルmMV0及び継承動きベクトルmMV1のいずれか一方とを、リファイン部30に送信する。以下の説明において、対象選択部20がリファイン部30に送信する2つの動きベクトルを、「リファイン前動きベクトル」とも表記する。
上述のように、継承動きベクトルの数は、必ずしも2ではない。しかし、継承動きベクトルの数が1つである場合、動きベクトル補填部10が、補填動きベクトルを生成する。そして、対象選択部20は、継承動きベクトルと、生成された補填動きベクトルとを、2つの継承動きベクトルとして、リファイン部30に送信する。リファイン部30は、受信した継承動きベクトルに基づいて、2つの予測動きベクトルを生成する。従って、リファイン部30は、継承動きベクトルの数が1つであっても、双予測生成部40に2つの予測ベクトルが送信する。
双予測生成部40は、予測動きベクトルrMV0及びrMV1を受信し、受信した予測動きベクトルrMV0及びrMV1に基づく双予測を生成する。双予測は、動きベクトルrMV0が示す領域の画像、及び、rMV1が示す領域の画像の平均画像である。双予測生成部40は、生成した双予測を表す双予測信号bipred(rMV0,rMV1)を予測選択部50に出力する。
予測選択部50は、リファイン部30から、2つの予測信号と、その予測信号が表す予測画像を示す予測動きベクトルとを受信する。予測選択部50は、さらに、双予測生成部40から、双予測を表す双予測信号受信する。以上のように、継承動きベクトルの数が1つであっても、予測選択部50は、2つの予測信号及び双予測信号を受信する。
予測選択部50は、リファイン部30から受信した2つの予測信号が示す予測画像及び双予測生成部40から受信した双予測信号が示す予測画像の中で、符号化コストが最も小さくなる予測画像を特定する。予測選択部50は、特定した予測画像を示す予測信号predと、その予測信号が表す予測画像を示す予測動きベクトル(rMV0又はrMV1)とを出力する。符号化コストが最も小さくなる予測画像として双予測信号を示す予測画像を特定した場合、予測選択部50は、2つの予測動きベクトルrMV0及びrMV1を出力する。予測選択部50は、さらに、その予測信号が表す予測画像の予測方向を出力する。例えば、予測動きベクトルがrMV0である場合、予測選択部50は、予測方向として、L0(具体的には、L0を表す値示す信号)を出力する。予測動きベクトルがrMV1である場合、予測選択部50は、予測方向として、L1(具体的には、L1を表す値示す信号)を出力する。予測動きベクトルがrMV0及びrMV1である場合、予測選択部50は、予測方向として、Bi(具体的には、Biを表す値示す信号)を出力する。
以下では、本比較例の映像符号化装置1の動き補償部100が含む各部について、さらに詳しく説明する。
図3は、本比較例の映像符号化装置1の動き補償部100の構成の例を表すブロック図である。図3に示す図は、動き補償部100を回路による実装の例を模式的に表す。
本実装例の動き補償部100は、動きベクトル補填部10と、対象選択部20と、リファイン部30と、双予測生成部40と、予測選択部50と、補填候補生成部60と、モード決定部70とを含む。対象選択部20は、第1対象選択部21と、第2対象選択部22とを含む。リファイン部30は、第1リファイン部31と、第2リファイン部32とを含む。
補填候補生成部60は、周辺ベクトルを受信し、受信した周辺ベクトルから予測動きベクトルを選択する。周辺ベクトルは、符号化対象ブロックの隣接ブロックの予測動きベクトル、又は、符号化対象ブロックの直前ピクチャのブロックの予測動きベクトルである。補填候補生成部60が予測動きベクトルを選択する方法は、映像符号化装置1が行う映像符号化の符号化方式における選択方法であってもよい。補填候補生成部60が予測動きベクトルを選択する方法は、他のさまざまな方法のいずれかであってもよい。補填候補生成部60は、選択した予測動きベクトルを、動きベクトル補填部10に送信する。
図5は、補填候補生成部60によって動きベクトルが選択されるブロックの位置を模式的に表す図である。補填候補生成部60は、例えば、A0、A1、B0、B1、B2、C0、及び、C1の、いずれか2つのブロックの予測動きベクトルを選択する。以下の説明では、C0、及び、C1の、2つのブロックの予測動きベクトルを、特に「時間予測動きベクトル」と表記する。また、A0、A1、B0、B1、及び、B2、のブロックの予測動きベクトルを、特に「AMVP(Advanced Motion Vector Prediction)予測動きベクトル」と表記する。補填候補生成部60は、例えば、A0、A1、B0、B1、及び、B2、のブロックの予測動きベクトルから、2つのAMVP予測動きベクトルを選択する。補填候補生成部60は、例えば、L0及びL1のそれぞれについて、2つのAMVP予測動きベクトルを選択すればよい。以下では、L0についてのAMVP予測動きベクトルを、「AMVP00」及び「AMVP01」と表記する。L1についてのAMVP予測動きベクトルを、「AMVP10」及び「AMVP11」と表記する。A0、A1、B0、B1、及び、B2、のブロックの予測動きベクトルに、AMVP予測動きベクトルとして選択できる予測動きベクトルが存在しない場合、補填候補生成部60は、C0のブロックの予測動きベクトルを、時間予測動きベクトルとして選択してもよい。さらに、C0のブロックの予測動きベクトルを時間予測動きベクトルとして選択できない場合、補填候補生成部60は、C1のブロックの予測動きベクトルを、時間予測動きベクトルとして選択してもよい。以下では、L0についての時間予測動きベクトルを、「時間予測動きベクトル0」と表記する。L1についての時間予測動きベクトルを、「時間予測動きベクトル1」と表記する。補填候補生成部60は、L0及びL1のそれぞれについて、2つのAMVP予測動きベクトルに加えて、1つの時間予測動きベクトルを選択してもよい。補填候補生成部60は、L0及びL1のそれぞれについて、選択したAMVP予測動きベクトル又は時間予測動きベクトルを、動きベクトル補填部10に送信すればよい。補填候補生成部60は、L0及びL1のそれぞれについて、選択された2つのAMVP予測動きベクトルと、時間予測動きベクトルとを、動きベクトル補填部10に送信してもよい。補填候補生成部60は、さらに、ゼロベクトルを、動きベクトル補填部10に送信してもよい。
モード決定部70は、後述される、動きベクトルの補填モードを決定し、決定された補填モードを示す信号を、動きベクトル補填部10に送信する。
動きベクトル補填部10は、信号mDirの値と、補填モード(例えば図3におけるcMode)とに基づいて、補填候補生成部60から受信した、AMVP予測動きベクトル又は時間予測動きベクトルから、補填ベクトルcMVを選択する。補填モードcModeは、例えば、モード決定部70から入力される。補填モードcModeは、例えば、あらかじめ実験的に定められ、動き補償部100の外部にある記憶部(図示されない)に格納されていてもよい。動きベクトル補填部10は、動き補償部100の外部にあるその記憶部から補填モードcModeを読み出してもよい。動きベクトル補填部10の出力は、対象選択部20に含まれる、第1対象選択部21の2つの入力端子の一方と、第2対象選択部22の2つの入力端子の一方とに接続される。
第1対象選択部21の2つの入力端子の一方は、動きベクトル補填部10に接続されている。第1対象選択部21の2つの入力端子の他方は、動きベクトルmMVが入力される信号線に接続されている。さらに、第1対象選択部21の制御端子は、信号mDirに接続される。第1対象選択部21は、信号mDirの値に応じて、出力端子に接続される入力端子を、動きベクトルmMVが入力される信号線に接続されている入力端子と、動きベクトル補填部10に接続されている信号線との間で切り替える。具体的には、信号mDirの値が、上述のL0又はBiである場合、第1対象選択部21は、動きベクトルmMVが入力される信号線に接続されている入力端子と、出力端子との間を接続する。信号mDirの値が上述のL1である場合、第1対象選択部21は、動きベクトル補填部10に接続されている入力端子と、出力端子との間を接続する。第1対象選択部21の出力端子は、リファイン部30の第1リファイン部31に接続されている。
第2対象選択部22の2つの入力端子の一方は、動きベクトル補填部10に接続されている。第2対象選択部22の2つの入力端子の他方は、動きベクトルmMVが入力される信号線に接続されている。さらに、第2対象選択部22の制御端子は、信号mDirに接続される。第2対象選択部22は、信号mDirの値に応じて、出力端子に接続される入力端子を、動きベクトルmMVが入力される信号線に接続されている入力端子と、動きベクトル補填部10に接続されている信号線との間で切り替える。具体的には、信号mDirの値が、上述のL1又はBiである場合、第1対象選択部21は、動きベクトルmMVが入力される信号線に接続されている入力端子と、出力端子との間を接続する。信号mDirの値が上述のL0である場合、第2対象選択部22は、動きベクトル補填部10に接続されている入力端子と、出力端子との間を接続する。第2対象選択部22の出力端子は、リファイン部30の第2リファイン部32に接続されている。
第1リファイン部31は、入力された動きベクトルmMVによって参照される参照画像の、動きベクトルmMVに基づく所定の範囲において、符号化対象ブロックの符号化コストが最小になる領域(すなわち予測画像)を示す点を検出する。符号化コストは、既存の符号化コストから選択された符号化コストであればよい。符号化コストは、例えば、符号化対象ブロックと予測画像との誤差の絶対値の和(SAD;Sum of Absolute Difference)と、動きベクトルの重み付きビット量との和であってもよい。動きベクトルmMVに基づく所定の範囲は、例えば、動きベクトルmMVが示す位置を中心とする所定半径の円の内部であってもよい。動きベクトルmMVに基づく所定の範囲は、例えば、動きベクトルmMVが示す位置を中心とする所定形状の図形の内部であってもよい。動きベクトルmMVに基づく所定の範囲は、例えば、動きベクトルmMVが参照する参照画像全体であってもよい。第1リファイン部31は、符号化対象ブロックが含まれるピクチャにおける符号化対象ブロックの座標から、その符号化対象コストが最小になる領域を示す点の座標へのベクトルを、予測動きベクトルrMVとして検出する。第1リファイン部31は、検出した符号化対象コストが最小になる領域の画像を、符号化対象領域の予測を表す予測信号「pred(rMV)」として、予測選択部50に出力する。なお、第1リファイン部31は、信号mDirがL1である場合、すなわち、継承動きベクトルmMVが入力されない場合、動作しない。
第2リファイン部32は、入力された動きベクトルmMVによって参照される参照画像の、動きベクトルmMVに基づく所定の範囲において、符号化対象ブロックの符号化コストが最小になる領域(すなわち予測画像)を示す点を検出する。動きベクトルmMVに基づく所定の範囲は、例えば、動きベクトルmMVが示す位置を中心とする所定半径の円の内部であってもよい。動きベクトルmMVに基づく所定の範囲は、例えば、動きベクトルmMVが示す位置を中心とする所定形状の図形の内部であってもよい。動きベクトルmMVに基づく所定の範囲は、例えば、動きベクトルmMVが参照する参照画像全体であってもよい。第2リファイン部32は、符号化対象ブロックが含まれるピクチャにおける符号化対象ブロックの座標から、その符号化対象コストが最小になる領域を示す点の座標へのベクトルを、予測動きベクトルrMVとして検出する。第2リファイン部32は、検出した符号化対象コストが最小になる領域の画像を、符号化対象領域の予測を表す予測信号「pred(rMV)」として、予測選択部50に出力する。なお、第2リファイン部32は、信号mDirがL2である場合、すなわち、継承動きベクトルmMVが入力されない場合、動作しない。
双予測生成部40は、信号mDirの値がBiである場合、すなわち、継承動きベクトルmMV及びmMVが入力される場合、継承動きベクトルmMV及びmMVに基づく双予測を生成する。双予測生成部40は、生成した双予測を表す双予測信号bipred(rMV,rMV)を予測選択部50に出力する。次の説明において、入力された継承動きベクトルmMVによって参照される参照画像の、継承動きベクトルmMVに基づく所定の範囲から選択された点が示す領域、第1参照領域と表記する。入力された継承動きベクトルmMVによって参照される参照画像の、継承動きベクトルmMVに基づく所定の範囲から選択された点が示す領域、第2参照領域と表記する。双予測生成部40は、符号化対象ブロックの符号化コストが最小である、第1参照領域及び第2参照領域の平均画像のうち、上述の符号化コストが最小である平均画像を、上述の双予測として検出する。そして、双予測生成部40は、符号化コストが最小である平均画像が算出される、第1参照領域及び第2参照領域を特定する。さらに、双予測生成部40は、符号化対象ブロックを示す座標から、特定された第1参照領域を示す座標への動きベクトルを、予測動きベクトルrMVとする。同様に、双予測生成部40は、符号化対象ブロックを示す座標から、特定された第2参照領域を示す座標への動きベクトルを、予測動きベクトルrMVとする。双予測生成部40は、継承動きベクトルmMV又は継承動きベクトルmMVが入力されない場合、動作しない。
なお、継承動きベクトルmMV0及びmMV1のいずれか一方の参照画像が、符号化対象画像より時間的に前のピクチャであり、他方の参照画像が符号化対象画像より時間的に前のピクチャであってもよい。その場合、上述の、符号化対象ブロックの符号化コストが最小である、第1参照領域及び第2参照領域の平均画像のうち、符号化コストが最小である平均画像は、双方向予測と呼ばれる。言い換えると、双予測生成部40は、双予測ではなく双方向予測を導出し、導出した双方向予測を出力してもよい。
予測選択部50は、予測信号pred(rMV)が表す予測画像、予測信号pred(rMV)が表す予測画像、及び双予測信号bipred(rMV,rMV)が表す予測画像のうち、符号化対象コストが最も小さくなる予測画像を特定する。そして、特定した予測画像を表す予測信号predと、その予測信号predが表す予測画像を示す予測動きベクトルとを出力する。予測選択部50は、さらに、信号mDirを信号rDirとして出力する。以下の説明では、信号rDirも、「予測方向」と表記することがある。選択された予測画像を表す信号が予測信号pred(rMV)である場合、予測選択部50は、予測動きベクトルとして、rMVを出力する。選択された予測画像を表す信号が予測信号pred(rMV)である場合、予測選択部50は、予測動きベクトルとして、rMVを出力する。択された予測画像を表す信号が双予測信号bipred(rMV,rMV)である場合、予測選択部50は、予測動きベクトルとして、rMVとrMVとを出力する。
動き補償部100が以上の構成を備えることによって、継承動きベクトルmMVが第1リファイン部31に入力されない場合、補填動きベクトルcMVが第1リファイン部31に入力される。さらに、継承動きベクトルmMVが第2リファイン部32に入力されない場合、補填動きベクトルcMVが第2リファイン部32に入力される。
本比較例では、第1リファイン部31及び第2リファイン部32に、2つのベクトルが入力される。第1リファイン部31及び第2リファイン部32は、符号化対象ブロックが含まれるピクチャが、Bピクチャであっても、Pピクチャであっても、休止状態にならずに動作する。また、本比較例では、双予測生成部40は、符号化対象ブロックが含まれるピクチャがBピクチャである場合、休止状態にならずに動作する。本比較例では、双予測生成部40は、符号化対象ブロックが含まれるピクチャがPピクチャである場合、休止状態になる
次に、本比較例の動きベクトル補填部10について、図面を参照して詳細に説明する。
図6は、本比較例の動きベクトル補填部10の構成の例を模式的に表すブロック図である。図6を参照すると、動きベクトル補填部10は、検出部11と、補填ベクトル選択部12と、送信部13と、受信部14とを含む。
検出部11は、リファイン部30に入力される継承動きベクトルが2つであるか1つであるかを検出する。例えば、検出部11は、事前解析部102から、信号mDirを受信すればよい。そして、信号mDirの値がL0又はL1である場合、検出部11は、リファイン部30に入力される継承動きベクトルが1つであることを検出すればよい。信号mDirの値がBiである場合、検出部11は、リファイン部30に入力される継承動きベクトルが2つであることを検出すればよい。検出部11は、ピクチャの種類を表す信号であるPicTypeを受信してもよい。
受信部14は、事前解析部102から、継承動きベクトルmMV及び継承動きベクトルmMVの少なくとも一方を受信する。受信部14は、さらに、モード決定部70から、補填モードcModeを受信する。受信部14は、さらに、補填候補生成部60から、例えば、選択された2つの予測動きベクトル(AMVP00、AMVP01、AMVP10及びAMVP11)と、時間予測動きベクトル(時間予測動きベクトル0及び時間予測動きベクトル0)とを受信する。
補填ベクトル選択部12は、例えば入力される継承動きベクトルが1つである場合、補填モードcModeにおける選択方法に従って、予測動きベクトル及び時間予測動きベクトルから、補填動きベクトルを選択する。その際、補填ベクトル選択部12は、入力された継承動きベクトル(すなわち、継承動きベクトルmMV又は継承動きベクトルmMV)に基づいて、補填動きベクトルを選択してもよい。補填モードとその補填モードにおける選択方法の例については、後で詳細に説明する。
以下では、動きベクトル補填部10について、さらに詳細に説明する。
図4は、本比較例の動きベクトル補填部10の構成の例を模式的に表すブロック図である。図4は、動きベクトル補填部10の回路による実装の例に基づく構成を現す。図4を参照すると、動きベクトル補填部10は、第1候補選択部15と、第2候補選択部16と、選択実行部17とを含む。
前述のように、補填候補生成部60から、AMVP予測動きベクトル、時間予測動きベクトルの少なくともいずれかと、ゼロベクトルとが、動きベクトル補填部10に送信される。上述のように、AMVP予測動きベクトルは、AMVP00、AMVP01、AMVP10及びAMVP11である。時間予測動きベクトルは、時間予測動きベクトル0及び時間予測動きベクトル1である。以下の説明では、補填候補生成部60から動きベクトル補填部10に送信される動きベクトルの組を、「セットA」と表記する。セットAは、例えば、AMVP00、AMVP01、AMVP10、AMVP11、時間予測動きベクトル0、時間予測動きベクトル1及びゼロベクトルを含む。
セットAに含まれるベクトルのうち、L0についてのAMVP予測動きベクトル(AMVP00及びAMVP01)及び時間予測動きベクトル(時間予測動きベクトル0)と、ゼロベクトルとが、第1候補選択部15に入力される。第1候補選択部15に入力されるベクトルの組を「セット0」と表記する。セット0は、例えば、AMVP00、AMVP01、時間予測動きベクトル0及びゼロベクトルを含む。
セットAに含まれるベクトルのうち、L1についてのAMVP予測動きベクトル(AMVP10及びAMVP11)及び時間予測動きベクトル(時間予測動きベクトル1)と、ゼロベクトルとが、第2候補選択部16に入力される。第2候補選択部16に入力されるベクトルの組を「セット1」と表記する。セット1は、例えば、AMVP10、AMVP11、時間予測動きベクトル1及びゼロベクトルを含む。
また、動きベクトル補填部10が受信した継承動きベクトルmMV0は、第1候補選択部15に入力される。動きベクトル補填部10が受信した継承動きベクトルmMV1は、第2候補選択部16に入力される。動きベクトル補填部10が受信した補填モードcModeは、第1候補選択部15、第2候補選択部16、及び、選択実行部17に入力される。
動きベクトル補填部10の、動きベクトル補填部10に入力された、セットAと、継承動きベクトルmMV0及びmMV1と、補填モードcModeとを受信する部分(例えばインタフェースを含む)は、上述の受信部14に相当する。セットAの少なくとも一部であるセット0と、継承動きベクトルmMV0と、補填モードcModeとを、第1候補選択部15に送信する部分も、上述の受信部14に相当する。セットAの少なくとも一部であるセット1と、継承動きベクトルmMV1と、補填モードcModeとを、第2候補選択部16に送信する部分が、上述の受信部14に相当する。補填モードcModeを選択実行部17に送信する部分も、上述の受信部14に相当する。
言い換えると、受信部14が、セットA、継承動きベクトル及び補填モードを受信する。そして、受信部14は、セットAに含まれるベクトルのうちセット0に含まれるベクトルと、継承動きベクトルmMV0と、補填モードcModeとを、第1候補選択部15に入力する。受信部14は、さらに、セットAに含まれるベクトルのうちセット1に含まれるベクトルと、継承動きベクトルmMV1と、補填モードcModeとを、第2候補選択部16に入力する。さらに、受信部14は、補填モードcModeを、選択実行部17に送信する。
また、動きベクトル補填部10が受信したmDir及びPicType(すなわち、mDirを示す信号及びPicTypeを示す信号)は、選択実行部17に入力される。選択実行部17は、入力されたそれらの信号が示す、mDirの値及びPicTypeの値(以下、入力されたmDirの値及びPicTypeの値とも表記)を検出する。
動きベクトル補填部10の、動きベクトル補填部10に入力されたmDirを示す信号及びPicTypeを示す信号を受信し、それらの信号を選択実行部17に入力する部分は、上述の検出部11に相当する。さらに、選択実行部17の、選択実行部17に入力されたそれらの信号が示す、mDirの値及びPicTypeの値を検出する部分も、上述の検出部11に相当する。
第1候補選択部15は、セット0、mMV0、及び、cModeを受信する。そして、第1候補選択部15は、受信したcMode、又は、mMV0及びcModeに基づいて、受信したセット0に含まれるベクトルから、補填動きベクトルcMV0を選択する。第1候補選択部15は、選択したcMV0を、選択実行部17に送信する。
第2候補選択部16は、セット1、mMV1、及び、cModeを受信する。そして、第2候補選択部16は、受信したcMode、又は、mMV1及びcModeに基づいて、受信したセット1に含まれるベクトルから補填動きベクトルcMV1を選択する。第2候補選択部16は、選択したcMV1を、選択実行部17に送信する。
選択実行部17は、mDirの値、PicTypeの値、及び、cModeに基づいて、補填動きベクトルcMV0又は補填動きベクトルcMV1を、補填動きベクトルcMVとして選択する。選択実行部17は、選択した補填動きベクトルcMVを出力する。言い換えると、選択実行部17は、補填動きベクトルcMVを対象選択部20に送信する。このように、動きベクトル補填部10が、選択された補填動きベクトルcMVを出力される。
動きベクトル補填部10の、補填動きベクトルcMVを出力する部分(例えばインタフェースを含む)が、上述の送信部13に相当する。言い換えると、送信部13は、補填動きベクトルcMVを出力する。さらに言い換えると、送信部13は、補填動きベクトルcMVを、対象選択部20に送信する。
以上の、第1候補選択部15、第2候補選択部16、及び、選択実行部17(上述の検出部11の部分を除く)が、補填ベクトル選択部12に相当する。第1候補選択部15、第2候補選択部16、及び、選択実行部17による、補填動きベクトルcMV0、cMV1、及び、cMVの選択方法について、以下で詳細に説明する。以下の説明における「補填モード0」〜「補填モード7」の値として、異なる値があらかじめ割り当てられていればよい。
(1)補填モード0
補填ベクトル選択部12は、補填ベクトルを生成しなくてもよい。本比較例では、補填ベクトル選択部12は、補填モードcModeが「補填モード0」である場合に、補填ベクトルを生成しない。
以下、さらに詳しく説明する。補填モードcModeが「補填モード0」である場合、第1候補選択部15は、補填ベクトルcMV0を選択しなくてよい。第1候補選択部15は、補填ベクトルcMV0を選択実行部17に送信しなくてよい。第2候補選択部16は、補填ベクトルcMV1を選択しなくてよい。第2候補選択部16は、補填ベクトルcMV1を選択実行部17に送信しなくてよい。選択実行部17は、cMVを選択しなくてよい。選択実行部17は、cMVを出力しなくてよい。
(2)補填モード1
補填ベクトル選択部12は、継承動きベクトルとの距離が最小であるAMVP予測動きベクトルを、補填ベクトルとして選択してもよい。本比較例では、補填モードcModeが「補填モード1」である場合に、補填ベクトル選択部12は、継承動きベクトルとの距離が最小であるAMVP予測動きベクトルを、補填ベクトルとして選択する。例えば、mDirがL0である場合、補填ベクトル選択部12は、L0の向けの2つのAMVP予測動きベクトル(すなわちAMVP00及びAMVP01)の中で、継承動きベクトルmMV0との距離が小さい方のAMVP予測動きベクトルを選択すればよい。L0の向けのAMVP予測動きベクトルの数が1つである場合、補填ベクトル選択部12は、そのAMVP予測動きベクトルを選択すればよい。例えば、mDirがL1である場合、補填ベクトル選択部12は、L1の向けの2つのAMVP予測動きベクトル(すなわちAMVP10及びAMVP11)の中で、継承動きベクトルmMV1との距離が小さい方のAMVP予測動きベクトルを選択すればよい。L1の向けのAMVP予測動きベクトルの数が1つである場合、補填ベクトル選択部12は、そのAMVP予測動きベクトルを選択すればよい。
以下、さらに詳しく説明する。補填モードcModeが「補填モード1」である場合、第1候補選択部15は、AMVP00及びAMVP01から、入力された継承動きベクトルmMV0との距離が小さいAMVP予測動きベクトルを補填ベクトルcMV0として選択すればよい。L0の向けのAMVP予測動きベクトルの数が1つである場合、第1候補選択部15は、そのAMVP予測動きベクトルを補填ベクトルcMV0として選択すればよい。第1候補選択部15は、選択した補填ベクトルcMV0を、選択実行部17に送信する。継承動きベクトルmMV0が存在しない場合(すなわち継承動きベクトルmMV0が第1候補選択部15に入力されない場合)、第1候補選択部15は、cMV0を選択しなくてよい。この場合、第1候補選択部15は、cMV0を送信しなくてよい。
補填モードcModeが「補填モード1」である場合、第2候補選択部16は、AMVP10及びAMVP11から、入力された補填ベクトルmMV1との距離が小さいAMVP予測動きベクトルを補填ベクトルcMV1として選択すればよい。L1の向けのAMVP予測動きベクトルの数が1つである場合、第2候補選択部16は、そのAMVP予測動きベクトルを補填ベクトルcMV1として選択すればよい。第2候補選択部16は、選択した補填ベクトルcMV1を、選択実行部17に送信する。継承動きベクトルmMV1が存在しない場合(すなわち継承動きベクトルmMV1が第2候補選択部16に入力されない場合)、第2候補選択部16は、補填ベクトルcMV1を選択しなくてよい。この場合、第2候補選択部16は、補填ベクトルcMV1を送信しなくてよい。
選択実行部17は、予測方向mDirの値に基づいて、補填ベクトルcMV0又は補填ベクトルcMV1を、補填ベクトルcMVとして選択すればよい。
例えば、予測方向mDirがL0である場合、継承動きベクトルmMV0は入力されるが、継承動きベクトルmMV1は入力されない。この場合、継承動きベクトルmMV1が第2候補選択部16に入力されない。従って、第2候補選択部16は、補填ベクトルcMV1を出力しない。また、継承動きベクトルmMV0は第1候補選択部15に入力される。第1候補選択部15は、上述のように継承動きベクトルmMV0をもとにcMV0を選択し、選択したcMV0を出力すればよい。予測方向mDirがL0である場合、選択実行部17は、補填ベクトルcMVとして、補填ベクトルcMV0を選択すればよい。
例えば、予測方向mDirがL1である場合、継承動きベクトルmMV1は入力されるが、継承動きベクトルmMV0は入力されない。この場合、継承動きベクトルmMV0が第1候補選択部15に入力されない。従って、第1候補選択部15は、補填ベクトルcMV0を出力しない。また、継承動きベクトルmMV1は第2候補選択部16に入力される。そして、第2候補選択部16は、上述のように継承動きベクトルmMV1をもとに補填ベクトルcMV1を選択し、選択した補填ベクトルcMV1を出力すればよい。予測方向mDirがL1である場合、選択実行部17は、補填ベクトルcMVとして、補填ベクトルcMV1を選択すればよい。
予測方向mDirがBiである場合、継承動きベクトルの数は2である。この場合、選択実行部17は、補填ベクトルcMVを選択しなくてよい。選択実行部17は、補填ベクトルcMVを出力しなくてよい。
(3)補填モード2
補填ベクトル選択部12は、継承動きベクトルとの距離が最も大きいAMVP予測動きベクトルを、補填ベクトルとして選択してもよい。本比較例では、補填モードcModeが「補填モード2」である場合に、補填ベクトル選択部12は、継承動きベクトルとの距離が最も大きいAMVP予測動きベクトルを、補填ベクトルとして選択する。例えば、mDirがL0である場合、補填ベクトル選択部12は、L0の向けの2つのAMVP予測動きベクトル(すなわちAMVP00及びAMVP01)の中から、継承動きベクトルmMV0との距離が大きい方のAMVP予測動きベクトルを選択すればよい。L0の向けのAMVP予測動きベクトルの数が1つである場合、補填ベクトル選択部12は、そのAMVP予測動きベクトルを選択すればよい。例えば、mDirがL1である場合、補填ベクトル選択部12は、L1の向けの2つのAMVP予測動きベクトル(すなわちAMVP10及びAMVP11)の中から、継承動きベクトルmMV1との距離が大きい方のAMVP予測動きベクトルを選択すればよい。L1の向けのAMVP予測動きベクトルの数が1つである場合、補填ベクトル選択部12は、そのAMVP予測動きベクトルを選択すればよい。
以下、さらに詳しく説明する。補填モードcModeが「補填モード1」である場合、第1候補選択部15は、AMVP00及びAMVP01から、入力された補填ベクトルmMV0との距離が大きいAMVP予測動きベクトルを補填ベクトルcMV0として選択すればよい。L0の向けのAMVP予測動きベクトルの数が1つである場合、第1候補選択部15は、そのAMVP予測動きベクトルを補填ベクトルcMV0として選択すればよい。第1候補選択部15は、選択した補填ベクトルcMV0を、選択実行部17に送信する。補填ベクトルmMV0が存在しない場合(すなわち補填ベクトルmMV0が第1候補選択部15に入力されない場合)、第1候補選択部15は、cMV0を選択しなくてよい。この場合、第1候補選択部15は、cMV0を送信しなくてよい。
補填モードcModeが「補填モード1」である場合、第2候補選択部16は、AMVP10及びAMVP11から、入力された補填ベクトルmMV1との距離が大きいAMVP予測動きベクトルを補填ベクトルcMV1として選択すればよい。L1の向けのAMVP予測動きベクトルの数が1つである場合、第2候補選択部16は、そのAMVP予測動きベクトルを補填ベクトルcMV1として選択すればよい。第2候補選択部16は、選択した補填ベクトルcMV1を、選択実行部17に送信する。補填ベクトルmMV1が存在しない場合(すなわち補填ベクトルmMV1が第2候補選択部16に入力されない場合)、第2候補選択部16は、cMV1を選択しなくてよい。この場合、第2候補選択部16は、cMV1を送信しなくてよい。
選択実行部17は、mDirの値に応じて、cMV0又はcMV1を、cMVとして選択すればよい。例えば、mDirがL0である場合、mMV0は第1候補選択部15に入力される。第1候補選択部15は、入力されたmMV0に基づいてcMV0を選択し、選択したcMV0を選択実行部17に送信する。mDirがL0である場合、mMV1は第2候補選択部16に入力されない。第2候補選択部16はcMV1を出力しない。従って、mDirがL0である場合、選択実行部17は、cMV0を、cMVとして選択すればよい。例えば、mDirがL1である場合、mMV1が第2候補選択部16に入力される。第2候補選択部16は、入力されたmMV1に基づいてcMV1を選択し、選択したcMV1を選択実行部17に送信する。mDirがL1である場合、mMV0は第1候補選択部15に入力されない。従って、第1候補選択部15はcMV0を出力しない。従って、mDirがL1である場合、選択実行部17は、cMV1を、cMVとして選択すればよい。mDirがBiである場合、継承動きベクトルの数は2である。この場合、選択実行部17は、cMVを選択しなくてよい。選択実行部17は、cMVを出力しなくてよい。
(4)補填モード3
補填ベクトル選択部12は、補填ベクトルとして、ゼロベクトルを選択してもよい。本比較例では、補填ベクトル選択部12は、補填モードcModeが「補填モード3」である場合に、ゼロベクトルを、補填ベクトルとして選択する。
以下、さらに詳しく説明する。補填モードcModeが「補填モード3」である場合、第1候補選択部15及び第2候補選択部16の一方(例えば第1候補選択部15)が、ゼロベクトルを、補填ベクトルとして選択すればよい。そして、第1候補選択部15は、補填ベクトルcMV0として、選択したゼロベクトルを選択実行部17に送信すればよい。この場合、第1候補選択部15及び第2候補選択部16の他方(例えば第2候補選択部16)は、動作しなくてよく、補填ベクトルを出力しなくてよい。この場合、選択実行部17は、第1候補選択部15及び第2候補選択部16の一方から補填ベクトルとして送信されたゼロベクトルを、補填ベクトルcMVとして、対象選択部20に送信すればよい。
第1候補選択部15及び第2候補選択部16のうち、補填モードcModeが「補填モード3」である場合にゼロベクトルを補填ベクトルとして選択する方を、「動作する候補選択部」と表記する。動作する候補選択部は、固定されていてもよい。動作する候補選択部は、動きベクトル補填部10に入力される継承動きベクトルに応じて変化してもよい。例えば、補填モードcModeが「補填モード3」であり、継承動きベクトルmMV0を受信した場合、第1候補選択部15が、ゼロベクトルを補填ベクトルcMV0として選択してもよい。補填モードcModeが「補填モード3」であり、予測方向mDirがL0である場合、選択実行部17は、cMV0をcMVとして選択すればよい。例えば、補填モードcModeが「補填モード3」であり、継承動きベクトルmMV1を受信した場合、第2候補選択部16が、ゼロベクトルを補填ベクトルcMV1として選択してもよい。補填モードcModeが「補填モード3」であり、予測方向mDirがL1である場合、選択実行部17は、cMV1をcMVとして選択すればよい。
以上で説明した、補填モード0から補填モード3までの補填モードは、符号化対象ブロックが含まれるピクチャが、Bピクチャであっても、Pピクチャであっても、選択可能である。
以下で説明する補填モード4から補填モード7までの補填モードは、符号化対象ブロックが含まれるピクチャが、Bピクチャである場合に選択可能である。入力された補填モードcModeが補填モード4から補填モード7であり、入力されたPicTypeがPピクチャである場合、動きベクトル補填部10は、補填モード0から補填モード3までのいずれかの補填モードで動作してもよい。その場合の補填モードは、あらかじめ定められていればよい。その場合、例えば、選択実行部17が、あらかじめ定められている補填モードを、第1候補選択部15及び第2の候補選択部16に送信してもよい。この場合のデータ(例えば信号)の流れは、図示されていない。この場合、第1候補選択部15及び第2候補選択部16は、入力された補填モードcModeが示す補填モードではなく、選択実行部17から受信した補填モードで動作すればよい。補填モード4から補填モード7までの補填モードでは、補填ベクトルは、継承動きベクトルと異なる予測方向における動きベクトルとして補填される。
(5)補填モード4
補填ベクトル選択部12は、補填ベクトルとして、インデックスが0であるAMVP予測動きベクトルを選択してもよい。本比較例では、補填モードcModeが「補填モード4」である場合に、補填ベクトル選択部12は、補填ベクトルとして、インデックスが0であるAMVP予測動きベクトルを選択すればよい。
本比較例の補填候補生成部60は、それぞれの予測方向について、2つのAMVP予測動きベクトルの一方に、インデックスとして0を付与し、他方に、インデックスとして1を付与すればよい。具体的には、補填候補生成部60は、例えば、AMVP00及びAMVP10にインデックスとして0を付与し、AMVP01及びAMVP11に、インデックスとして1を付与すればよい。補填候補生成部60は、インデックスが付与されたAMVP予測動きベクトルを、動きベクトル補填部10に送信すればよい。
本比較例では、補填ベクトル選択部12は、補填モードが「補填モード4」である場合、補填ベクトルとして、インデックスが0である2つのAMVP予測動きベクトルのうち、例えば、継承動きベクトルが無い予測方向のAMVP予測動きベクトルを選択すればよい。補填ベクトル選択部12は、例えば、mDirがL0である場合、付与されているインデックスが0である、L1向けのAMVP予測動きベクトル(すなわちAMVP10)を選択すればよい。補填ベクトル選択部12は、例えば、mDirがL1である場合、付与されているインデックスが0である、L0向けのAMVP予測動きベクトル(すなわちAMVP00)を選択すればよい。
以下、さらに詳しく説明する。補填モードcModeが「補填モード4」である場合、第1候補選択部15は、付与されているインデックスが0であるL0向けのAMVP予測動きベクトル(すなわちAMVP00)をcMV0として選択する。そして、第1候補選択部15は、cMV0を選択実行部17に送信する。第2候補選択部16は、付与されているインデックスが0であるL1向けのAMVP予測動きベクトル(すなわちAMVP10)をcMV1として選択する。そして、第2候補選択部16は、cMV1を選択実行部17に送信する。
選択実行部17は、mDirの値に基づいて、cMV0又はcMV1を、cMVとして選択すればよい。例えば、継承動きベクトルの予測方向を示すmDirの値がL0である場合、選択実行部17は、mDirの値であるL0とは異なる予測方向における補填ベクトルを、補填ベクトルcMVとして選択すればよい。すなわち、選択実行部17は、予測方向がL1である補填ベクトルcMV1、補填ベクトルcMVとして選択すればよい。例えば、継承動きベクトルの予測方向を示すmDirの値がL1である場合、選択実行部17は、mDirの値であるL1とは異なる予測方向における補填ベクトルを、補填ベクトルcMVとして選択ればよい。すなわち、選択実行部17は、予測方向がL0である補填ベクトルcMV0、補填ベクトルcMVとして選択ればよい。選択実行部17は、選択したcMVを対象選択部20に送信すればよい。
(6)補填モード5
補填ベクトル選択部12は、補填ベクトルとして、インデックスが1であるAMVP予測動きベクトルを選択してもよい。本比較例では、補填ベクトル選択部12は、補填モードcModeが「補填モード5」である場合に、補填ベクトル選択部12は、補填ベクトルとして、インデックスが1であるAMVP予測動きベクトルを選択する。補填ベクトル選択部12は、補填ベクトルとして、インデックスが1である2つのAMVP予測動きベクトルのうち、例えば、継承動きベクトルが無い予測方向のAMVP予測動きベクトルを選択すればよい。補填ベクトル選択部12は、例えば、mDirがL0である場合、付与されているインデックスが1である、L1向けのAMVP予測動きベクトル(すなわちAMVP11)を選択すればよい。補填ベクトル選択部12は、例えば、mDirがL1である場合、付与されているインデックスが1である、L0向けのAMVP予測動きベクトル(すなわちAMVP01)を選択すればよい。
以下、さらに詳しく説明する。補填モードcModeが「補填モード5」である場合、第1候補選択部15は、付与されているインデックスが1であるL0向けのAMVP予測動きベクトル(すなわちAMVP01)をcMV0として選択する。そして、第1候補選択部15は、cMV0を選択実行部17に送信する。この場合、第2候補選択部16は、付与されているインデックスが1であるL1向けのAMVP予測動きベクトル(すなわちAMVP11)をcMV1として選択する。そして、第2候補選択部16は、cMV1を選択実行部17に送信する。
選択実行部17は、mDirの値に基づいて、cMV0又はcMV1を、cMVとして選択すればよい。例えば、継承動きベクトルの予測方向を示すmDirの値がL0である場合、選択実行部17は、mDirの値であるL0とは異なる予測方向における補填ベクトルを、補填ベクトルcMVとして選択すればよい。すなわち、選択実行部17は、予測方向がL1である補填ベクトルcMV1、補填ベクトルcMVとして選択すればよい。例えば、継承動きベクトルの予測方向を示すmDirの値がL1である場合、選択実行部17は、mDirの値であるL1とは異なる予測方向における補填ベクトルを、補填ベクトルcMVとして選択ればよい。すなわち、選択実行部17は、予測方向がL0である補填ベクトルcMV0、補填ベクトルcMVとして選択ればよい。選択実行部17は、選択したcMVを対象選択部20に送信すればよい。
(7)補填モード6
補填ベクトル選択部12は、補填ベクトルとして、ゼロベクトルを選択してもよい。本比較例では、補填ベクトル選択部12は、補填モードcModeが「補填モード6」である場合に、補填ベクトルとして、ゼロベクトルを選択する。
以下、さらに詳しく説明する。補填モードcModeが「補填モード6」である場合、第1候補選択部15は、ゼロベクトルをcMV0として選択する。第1候補選択部15は、cMV0として、ゼロベクトルを選択実行部17に送信する。補填モードcModeが「補填モード6」である場合、第2候補選択部16は、ゼロベクトルをcMV1として選択する。第2候補選択部16は、cMV1として、ゼロベクトルを選択実行部17に送信する。
補填モードcModeが「補填モード6」である場合、選択実行部17は、cMV0又はcMV1のいずれかを、cMVとして出力する。選択実行部17は、補填モードcModeが「補填モード6」である場合にcMV0をcMVとして出力するよう構成されていてもよい。選択実行部17は、補填モードcModeが「補填モード6」である場合にcMV1をcMVとして出力するよう構成されていてもよい。選択実行部17は、mDirの値に応じて、cMV0又はcMV1を選択してもよい。選択実行部17は、例えば、mDirの値がL0である場合、cMV1を選択し、mDirの値がL1である場合、cMV0を選択してもよい。mDirの値と、cMV0及びcMV1との関係は、逆であってもよい。cMV0及びcMV1はゼロベクトルであるので、cMVもゼロベクトルである。
(8)補填モード7
補填ベクトル選択部12は、補填ベクトルとして、時間予測動きベクトルを選択してもよい。本比較例では、補填ベクトル選択部12は、補填モードcModeが「補填モード7」である場合に、補填ベクトルとして、時間予測動きベクトルを選択する。
上述のように、補填候補生成部60は、予測方向毎に、時間予測動きベクトルを選択する。すなわち、補填候補生成部60は、予測方向L0向けの時間予測動きベクトルである時間予測動きベクトル0と、予測方向L1向けの時間予測動きベクトルである時間予測動きベクトル1とを、例えば以下のように選択する。例えば図5に示す例におけるC0のブロックにおける予測動きベクトルが存在する場合、補填候補生成部60は、時間予測動きベクトルとして、C0のブロックにおける予測動きベクトルを選択する。C0のブロックにおける予測動きベクトルが存在しない場合、補填候補生成部60は、時間予測動きベクトルとして、C1のブロックにおける予測動きベクトルを選択する。補填候補生成部60は、C1のブロックにおける予測動きベクトルも存在しない場合、時間予測動きベクトルをゼロベクトルに設定する。
具体的には、補填モードcModeが「補填モード7」であり、予測方向mDirがL0である場合、補填ベクトル選択部12は、予測方向L1向けの時間予測ベクトル(すなわち時間予測ベクトル1)を、補填ベクトルcMVとして選択する。補填モードcModeが「補填モード7」であり、予測方向mDirがL1である場合、補填ベクトル選択部12は、予測方向L0向けの時間予測ベクトル(すなわち時間予測ベクトル0)を、補填ベクトルcMVとして選択する。
以下、さらに詳しく説明する。補填モードcModeが「補填モード7」である場合、第1候補選択部15は、予測方向L0における時間予測ベクトル(すなわち時間予測ベクトル0)を、cMV0として選択する。第1候補選択部15は、選択したcMV0を、選択実行部17に送信する。補填モードcModeが「補填モード7」である場合、第2候補選択部16は、予測方向L1における時間予測ベクトル(すなわち時間予測ベクトル1)を、cMV1として選択する。第1候補選択部15は、選択したcMV1を、選択実行部17に送信する。
補填モードcModeが「補填モード7」であり、予測方向mDirがL0である場合、選択実行部17は、cMV1をcMVとして選択する。補填モードcModeが「補填モード7」であり、予測方向mDirがL1である場合、選択実行部17は、cMV0をcMVとして選択する。
次に、本比較例の動作について、図面を参照して詳細に説明する。
図8は、本比較例の映像符号化装置1の、符号化対象画像の予測画像を生成する動作の例を表すフローチャートである。図8に示す動作が開始される時、継承動きベクトルは、事前解析部102によって生成されている。事前解析部102によって、継承動きベクトル(すなわち、継承動きベクトルmDir0及びmDir1の少なくとも一方)、予測方向mDir、及び、ピクチャタイプPicTypeが、動きベクトル補填部10に送信される。
図8を参照すると、まず、モード決定部70が、補填モードを決定する(ステップS101)。補填モードが固定されている場合、モード決定部70は補填モードを決定しなくてよい。モード決定部70は、補填モードを動きベクトル補填部10に送信する。次に、補填候補生成部60が、AMVP予測動きベクトルと時間予測動きベクトルとを生成する(ステップS102)。補填候補生成部60は、生成したAMVP予測動きベクトルと時間予測動きベクトルとを含むベクトルの組である、上述のセットAを、動きベクトル補填部10に送信する。次に、動きベクトル補填部10が、動きベクトル補填処理を実行する(ステップS103)。動きベクトル補填処理については、後で詳細に説明する。継承動きベクトルの数が1つである場合、動きベクトル補填部10は、その継承動きベクトルと、動きベクトル補填処理によって補填した補填動きベクトルとを、リファイン部30に送信する。次に、リファイン部30が、受信した2つの動きベクトルをリファインする(ステップS104)。すなわち、リファイン部30は、受信した2つの動きベクトルに基づいて、予測動きベクトルを検出する。受信した2つの動きベクトルは、上述のように、2つの継承動きベクトル、又は、継承動きベクトル及び補填動きベクトルである。リファイン部30は、さらに、リファインによって得られた(すなわち検出した)予測動きベクトルに基づく予測画像を生成する(ステップS105)。
符号化対象ブロックが含まれるピクチャがPピクチャである場合(ステップS106においてNO)、映像符号化装置1は、次に、ステップS108の動作を行う。この場合、予測選択部50は、2つの予測画像から、例えば符号化コストがより小さい、1つの予測画像を選択する。 符号化対象ブロックが含まれるピクチャがBピクチャである場合(ステップS106においてYES)、次に、双予測生成部40が、双予測画像を生成する(ステップS107)。そして、予測選択部50は、予測画像を選択する(ステップS108)。この場合、予測選択部50は、2つの予測画像と、1つの双予測画像とから、1つの画像を予測画像として選択する。そして、予測選択部50は、選択した予測画像を示す予測ベクトルと、選択した予測画像と、選択した予測画像が示す予測方向とを出力する(ステップS109)。
次に、本比較例の映像符号化装置1の、動きベクトル補填処理の動作について、図面を参照して詳細に説明する。
図9は、本比較例の映像符号化装置1の、動きベクトル補填処理の動作の例を表すフローチャートである。
図9を参照すると、まず、図6に示す、動きベクトル補填部10の検出部11(例えば、検出部11として動作する、図4に示す選択実行部17)が、動き補償部100に入力される継承動きベクトルの数を検出する(ステップS201)。具体的には、検出部11は、信号mDirの値を検出する。そして、検出部11は、信号mDirの値によって、継承動きベクトルの数が1つであるか2つであるかを検出する。検出部11は、信号mDirの値がL0又はL1である場合、継承動きベクトルの数は1つであることを検出する。検出部11は、信号mDirの値がBiである場合、継承動きベクトルの数は2つであることを検出する。
継承動きベクトルの数が1つではない場合(ステップS202においてNO)、すなわち、信号mDirの値が、Biである場合、映像符号化装置1は、図9に示す動きベクトル補填処理を終了する。
継承動きベクトルの数が1つである場合(ステップS202においてYES)、すなわち、信号mDirの値が、L0又はL1である場合、受信部14は、補填モードを受信する(ステップS203)。具体的には、動きベクトル補填部10は、補填モードcModeを受信する。第1候補選択部15、第2候補選択部16、及び、選択実行部17は、動きベクトル補填部10が受信した補填モードcModeを受信する。なお、補填モードがあらかじめ定められている場合、受信部14は、補填モードを受信しなくてよい。
次に、動きベクトル補填部10の受信部14は、補填候補生成部60から、セットAに含まれるベクトル(すなわちセットAのベクトル)を受信する(ステップS204)。具体的には、セットAに含まれるベクトルは、AMVP00と、AMVP01と、AMVP10と、AMVP11と、時間予測動きベクトル0と、時間予測動きベクトル1と、ゼロベクトルとである。セットAは、以上のベクトルの組である。動きベクトル補填部10は、セットAに含まれるベクトルのうち、補填候補生成部60によって生成されなかったベクトルを受信しなくてもよい。第1候補選択部15は、動きベクトル補填部10が受信したセットAのベクトルのうち、AMVP00と、AMVP01と、時間予測動きベクトル0と、ゼロベクトルと(すなわち、セット0)を受信する。第1候補選択部15は、セット0のベクトルのうち、補填候補生成部60によって生成されなかったベクトルを受信しなくてもよい。第2候補選択部16は、動きベクトル補填部10が受信したセットAのベクトルのうち、AMVP10と、AMVP11と、時間予測動きベクトル1と、ゼロベクトルと(すなわち、セット1)を受信する。第2候補選択部16は、セット1のベクトルのうち、補填候補生成部60によって生成されなかったベクトルを受信しなくてもよい。
受信部14は、さらに、継承動きベクトルを受信する(ステップS205)。具体的には、動きベクトル補填部10は、継承動きベクトルmMV0及び継承動きベクトルmMV1を受信する。第1候補選択部15は、動きベクトル補填部10が受信した継承動きベクトルのうち、継承動きベクトルmMV0を受信する。第2候補選択部16は、動きベクトル補填部10が受信した継承動きベクトルのうち、継承動きベクトルmMV1を受信する。動きベクトル補填部10は、継承動きベクトルmMV0及び継承動きベクトルmMV1のうち、事前解析部102によって生成されなかったベクトルを受信しなくてもよい。継承動きベクトルmMV0が事前解析部102によって生成されなかった場合、第1候補選択部15は、継承動きベクトルmMV0を受信しなくてよい。継承動きベクトルmMV1が事前解析部102によって生成されなかった場合、第2候補選択部16は、継承動きベクトルmMV1を受信しなくてよい。
次に、補填ベクトル選択部12は、受信した補填モードに基づいて、受信した、AMVP予測動きベクトル及び時間予測動きベクトルと、ゼロベクトルとの少なくともいずれかから、補填動きベクトルを選択する(ステップS206)。具体的には、第1候補選択部15は、受信したセット0に含まれるベクトルから、受信したcModeに基づいて、上述のように、補填ベクトルcMV0を選択する。第2候補選択部16は、受信したセット0に含まれるベクトルから、受信したcModeに基づいて、上述のように、補填ベクトルcMV1を選択する。選択実行部17は、上述のように、予測方向mDir及び補填モードcModeに基づいて、cMV0及びcMV1から、補填ベクトルcMVを選択する。
送信部13は、選択された補填動きベクトルcMVを、対象選択部20を介して、対象選択部20に送信する(ステップS207)。具体的には、選択実行部17が、選択した補填ベクトルcMVを対象選択部20に送信する。そして、映像符号化装置1は、図9に示す動作を終了する。
以上の動作の例では継承動きベクトルの数が2である場合、動きベクトル補填部10は、ステップS203からステップS207までの処理を行わない。しかし、動きベクトル補填部10は、継承動きベクトルの数に関わらず、ステップS203からステップS207までの動作を行うことによって、補填動きベクトルを生成し、生成した補填動きベクトルを対象選択部20に送信してもよい。この場合、継承動きベクトルの数が2である場合、対象選択部20は、それらの、継承動きベクトルをリファイン前動きベクトルとして選択すればよい。そして、この場合、対象選択部20は、受信した補填動きベクトルを、リファイン前動きベクトルとして選択しなければよい。
以上で説明した比較例には、参照ピクチャが1つである場合であっても、予測の精度を向上させることができるという第1の効果がある。
その理由は、参照ピクチャが1つである場合、すなわち、継承動きベクトルが1つである場合、動きベクトル補填部10によって選択された補填動きベクトルが、リファイン部30に供給されるからである。その場合、予測選択部50は、継承動きベクトルに基づく予測画像と、補填動きベクトルに基づく予測画像とから、例えば符号化コストが最も小さい画像が選択する。又は、予測選択部50は、継承動きベクトルに基づく予測画像と、補填動きベクトルに基づく予測画像と、双予測画像とから、例えば符号化コストが最も小さい画像が選択する。従って、選択された画像の符号化対象ブロックに対する予測精度が向上する。
また、事前解析部102(一般的に事前解析器とも呼ばれる)ができなかった、動きベクトルの追加的な評価による動き補償予測の精度の向上が期待できる。事前解析部102が決定する継承動きベクトルmMV0及びmMV1の、予測方向や成分は、必ずしも最適ではない。特にBピクチャにおいて時間ダイレクトモードを考慮した動きベクトル探索がなされていないため、予測方向の選定が最適でない可能性が高い。
さらに、HEVC規格における動きベクトルの時空間適応予測(すなわちAMVPとマージ予測)に適した動きベクトル選択によるオーバヘッド削減が期待できる。中央値予測に基づいて事前解析器が決定する継承動きベクトルmMV0及びmMV1は、必ずしもAMVPとマージ予測に最適な動きベクトルではない。
本比較例には、さらに、演算器(すなわち、図3に示す第1リファイン部31、第2リファイン部32、及び、双予測生成部40)を活用することができるという第2の効果がある。その理由は、継承動きベクトルが1つである場合に、補填ベクトル選択部12によって選択された補填動きベクトルが、第1リファイン部31及び第2のリファイン部32のうち継承動きベクトルが入力されていない方に入力されるからである。さらに、符号化対象ブロックが含まれるピクチャがBピクチャであれば、継承動きベクトルの数が1である場合であっても、双予測生成部40が双予測を生成するからである。
図7は、本比較例に係る映像符号化装置1の、動きベクトルの補填及びリファインを行う部分の構造の例を示す図である。図7において、mcMV0及びmcMV1は、mMV0、mMV1、及び、cMVのうち、対象選択部20によって選択された2つのリファイン前動きベクトルを表す。
上述のベクトルの補填は、簡略化すると図7の構造を備える装置によって行われる。以下では、図7に示す構造を「理想的な構造」と呼ぶ。理想的な構造では、ブロックごとにベクトル補填と動き探索処理がひとまとめに実行される。すなわち、あるブロックについてベクトル補填が行われると、直後に、動き探索処理によって、継承動きベクトルと補填動きベクトルとをそれぞれ中心とする動き探索が行われる。それらの動き探索によって得られた動きベクトルのうち、評価指標においてより良いものが選択される。選択された動きベクトルは、そのブロックの新しい動きベクトルとなり、後続ブロックの補填動きベクトルを生成する時に利用される。ここでは、選択された動きベクトルが後続ブロックの補填動きベクトルを生成する時に利用されることを「ベクトルの伝播」と呼ぶ。
一般に、例えば処理の速度に対する条件を満たすために、その処理に制約を加える場合がある。このように、例えば処理に制約を加えることによる、条件を満たす処理の実現を、「制約付実現」と呼ぶことがある。たとえば、上述の比較例における動きベクトルの補填では、制約の1つは、ベクトルを補填する処理と、リファインの処理との間において、処理の連続性を断つことである。例えば、以下により、ベクトルを補填する処理とリファインの処理の間において、処理の連続性を断つことができる。
(1)対象選択部20とリファイン部30との間に記憶部を配置すること
(2)選択された動きベクトルを対象選択部20によってその記憶部に格納すること
(3)その気億部に格納されている動きベクトルをリファイン部30によってリファインすること
上述の、処理の連続性を断つことによって、以下を、複数のブロックについて並列に行うことができる。
(1)動きベクトルの補填を行うこと
(2)動きベクトルの補填の対象であるブロックとは異なる複数のブロックについて補填された動きベクトルを元にして、リファインの処理を行うこと
上述の比較例において、補填に用いるAMVPベクトルを生成するために、周辺ブロック(例えば、図5に示す、A0〜C1の位置のブロック)についての最新の動きベクトルが必要である。そして、動きベクトルを補填する処理とリファインの処理とが、複数ブロックに関して並列に動作できる。従って、あるブロックについて、その周辺ブロックのリファインの処理が完了していない段階で、動きベクトルを補填する処理が開始される可能性がある。
このとき、リファインの処理において、そのリファインの処理と並列に実行されるリファインの処理によって生成される動きベクトル(以下、「リファイン後の動きベクトル」とも表記)を使用することはできない。しかし、リファインの処理によって生成される動きベクトルの代わりに、その動きベクトルを生成するリファインの処理において使用される動きベクトル(以下、「リファイン前の動きベクトル」とも表記)を使用することが可能である。上述の記憶部が実装されている場合、リファイン前の動きベクトルは、その記憶部に格納されている。リファイン部は、その記憶部から、リファイン前の動きベクトルを読み出し、読み出したリファイン前の動きベクトル使用することが可能である。
上述の記憶部には、リファイン前の動きベクトルとして、リファインがなされていない継承動きベクトルと、補填動きベクトルとが格納される。リファイン後の動きベクトルとして使用されることに、継承動きベクトルと補填動きベクトルのどちらが適しているかを判断する手段はない。しかし、事前解析部102によって求められた継承動きベクトルのほうが、周辺ブロックのベクトルから選出された補填動きベクトルよりも適している可能性が高い。そのため、上述の比較例の、上述の「制約付実現」では、周辺ブロックのリファイン後の動きベクトルとして、リファインがなされていない継承動きベクトルが使用されればよい。符号化対象ブロックの周辺ブロックのベクトルから選出された補填動きベクトルは、その符号化対象ブロックの補填動きベクトルの候補としては使用されなければよい。
以上のように、上述の比較例の制約付実現では、周辺ブロックの動きベクトルがリファインの処理によって確定する前に、動きベクトルの補填が開始される可能性がある。周辺ブロックの動きベクトルがリファインの処理によって確定する前に、動きベクトルの補填が開始された場合、リファイン前の動きベクトルが補填される動きベクトルの候補として使用されるので、動きベクトル補填が想定する効果を発揮しない。
次に、本発明の実施形態について図面を参照して詳細に説明する。
[第1の実施の形態]
[構成の説明]
本発明の第1の実施形態について図面を参照して詳細に説明する。
図10は、本実施形態に係る映像符号化装置2の構成の例を表すブロック図である。
図10に示す映像符号化装置2の構成と、図1に示す上述の比較例に係る映像符号化装置1の構成とを比較すると、映像符号化装置2は、動き補償部100の代わりに動き補償部200を含む点が異なる。
図11は、本実施形態に係る映像符号化装置2の動き補償部200の構成の例を模式的に表すブロック図である。
図11に示す動き補償部200の構成と図2に示す動き補償部100の構成とを比較すると、動き補償部200は、動きベクトル補填部10の代わりに動きベクトル90を含み、さらに、ベクトル記憶部80を含む。
本実施形態の対象選択部20は、上述の比較例と同様に、リファイン前動きベクトルを生成する。本実施形態の対象選択部20は、リファイン前動きベクトルを、リファイン部30に送信するのではなく、ベクトル記憶部80に格納する。すなわち、事前解析部102が2つの継承動きベクトルを生成した場合、対象選択部20は、それらの2つの継承動きベクトルを、リファイン前動きベクトルとして、ベクトル記憶部80に格納する。事前解析部102が1つの継承動きベクトルを生成した場合、対象選択部20は、その継承動きベクトルと、動きベクトル補填部90が生成した補填動きベクトルとを、リファイン前動きベクトルとして、ベクトル記憶部80に格納する。
ベクトル記憶部80は、対象選択部20によって生成されたリファイン前動きベクトルを記憶する。
本実施形態の補填候補生成部60は、ベクトル記憶部80に格納されている、符号化対象ブロックの周辺ブロックのリファイン前動きベクトルに基づいて、AMVP予測動きベクトル及び時間予測動きベクトルを生成する。上述のように、周辺ブロックは、例えば、図5に示すA0〜C1のブロックである。補填候補生成部60は、これらのブロックのリファイン前動きベクトルのうち、ベクトル記憶部80に格納されているベクトルを、周辺ブロックの予測動きベクトルとして使用して、AMVP予測動きベクトル及び時間予測動きベクトルを生成すればよい。補填候補生成部60がAMVP予測動きベクトル及び時間予測動きベクトルを生成する方法は、例えば周辺ブロックの予測動きベクトルをもとにAMVP予測動きベクトル及び時間予測動きベクトルを生成する一般的な方法と同様の方法でよい。
動きベクトル補填部90は、補填候補生成部60によって生成された、AMVP予測動きベクトル、時間予測動きベクトル、及び、ゼロベクトルに基づいて、補填動きベクトルを生成する。事前解析部102によって生成された継承動きベクトルの数が1つである場合、動きベクトル補填部90は、生成した補填動きベクトルを、対象選択部20に送信する。
リファイン部30は、リファイン前動きベクトルをベクトル記憶部80から読み出し、読み出したリファイン前動きベクトルを、上述の比較例のリファイン部30と同様にリファインする。
本実施形態の双予測生成部40は、上述の比較例の双予測生成部40と同じである。本実施形態の予測選択部50は、上述の比較例の予測選択部50と同じである。
以下では、本実施形態の動き補償部200について、さらに詳しく説明する。
図12は、本実施形態の動き補償部200の構成の例を表すブロック図である。
図12と、比較例の動き補償部100の構成の例を示す図3とを比較すると、本実施形態の動き補償部200は、動きベクトル補填部10の代わりに動きベクトル補填部90を含む。また、対象選択部20とリファイン部30との間に、ベクトル記憶部80が接続されている。ベクトル記憶部80は、第1ベクトル記憶部81と第2ベクトル記憶部82とを含む。
第1対象選択部21は、選択したリファイン前動きベクトルを、第1ベクトル記憶部81に格納する。第2対象選択部22は、選択したリファイン前動きベクトルを、第2ベクトル記憶部82に格納する。第1対象選択部21及び第2対象選択部22は、以上の相違を除き、それぞれ、上述の比較例の第1対象選択部21及び第2対象選択部22と同じである。
第1リファイン部31は、第1ベクトル記憶部81からリファイン前動きベクトルを読み出し、読み出したリファイン前動きベクトルにリファインを行うことによって、予測動きベクトルrMV0を生成する。第2リファイン部32は、第2ベクトル記憶部82からリファイン前動きベクトルを読み出し、読み出したリファイン前動きベクトルにリファインを行うことによって、予測動きベクトルrMV1を生成する。第1リファイン部31及び第2リファイン部32は、以上の相違を除き、上述の比較例の第1リファイン部31及び第2リファイン部32と同じである。すなわち、本実施形態の第1リファイン部31は、比較例の第1リファイン部31と同様にリファインの処理を行い、比較例の第1リファイン部31と同様に出力を行う。本実施形態の第2リファイン部32は、比較例の第2リファイン部32と同様にリファインの処理を行い、比較例の第2リファイン部32と同様に出力を行う。
動きベクトル補填部90及び対象選択部20の上述の構成について、さらに詳しく説明する。
動きベクトル補填部90は、あるブロック(すなわち符号化対象ブロック)について、予測方向を示す信号mDirを受信する。動きベクトル補填部90は、モード決定部70から出力される、補填モードcModeを受信する。動きベクトル補填部90は、事前解析部102によって生成された継承動きベクトルであるmMV0及びmMV1を受信する。動きベクトル補填部90は、さらに、補填候補生成部60から、上述のセットAを受信する。動きベクトル補填部90は、受信した、mDirと、cModeと、mMV0と、mMV1と、セットAとに基づいて、補填動きベクトルcMVを生成する。対象選択部20は、mMV0、mMV1、及び、cMVから、以降の処理で使用される動きベクトルを選択する。対象選択部20は、選択した動きベクトル(すなわちリファイン前動きベクトル)を、第1ベクトル記憶部81及び第2ベクトル記憶部82に分けて保存する(すなわち格納する)。具体的には、mDirの値がL0である場合、対象選択部20は、mMV0とcMVとを選択する。対象選択部20は、mMV0を第1ベクトル記憶部81に格納し、cMVを第2ベクトル記憶部82に格納する。mDirの値がL1である合、対象選択部20は、cMVとmMV1とを選択する。対象選択部20は、cMVを第1ベクトル記憶部81に格納し、mMV1を第2ベクトル記憶部82に格納する。mDirの値がBiである場合、対象選択部20は、mMV0とmMV1とを選択する。対象選択部20は、mMV0を第1ベクトル記憶部81に格納し、mMV1を第2ベクトル記憶部82に格納する。対象選択部20は、リファイン前動きベクトルを符号化対象ブロック(例えば符号化対象ブロックの識別子)に関連付ければよい。対象選択部20は、符号化対象ブロックに関連付けられたリファイン前動きベクトルを、ベクトル記憶部80の、第1ベクトル記憶部81及び第2ベクトル記憶部82に格納すればよい。ベクトル記憶部80の、第1ベクトル記憶部81及び第2ベクトル記憶部82は、符号化対象ブロックに関連付けられたリファイン前動きベクトルを記憶していればよい。
本実施形態の対象選択部20は、符号化対象ブロックを含むピクチャのピクチャタイプ(すなわちPicTypeの値)がPピクチャである場合、他の符号化対象ブロックにおける補填ベクトルの生成に使用されるベクトルを選択してもよい。他の符号化対象ブロックにおける補填ベクトルの生成に使用されるベクトルを、以下、「伝播ベクトル」と表記する。対象選択部20は、PicTypeの値がPピクチャでない場合、伝播ベクトルを選択しなくてよい。対象選択部20は、ピクチャタイプPicTypeを、例えば、事前解析部102から受信すればよい。なお、事前解析部102から対象選択部20へのピクチャタイプPicTypeの送信の経路は図示されていない。符号化対象ブロックを含むピクチャのピクチャタイプがPピクチャである場合、例えば、継承動きベクトルmMV0及び補填ベクトルcMVが、対象選択部20に入力される。
対象選択部20(例えば第1対象選択部21)は、例えば、あらかじめ定められている伝播選択条件に基づいて、継承動きベクトルmMV0及び補填ベクトルcMVの一方を、伝播ベクトルとして選択してもよい。伝播条件は、例えば、ベクトルの絶対値(すなわち大きさ)に基づく条件である。対象選択部20は、継承動きベクトルmMV0及び補填ベクトルcMVのうち、絶対値が大きいベクトルを、伝播ベクトルとして選択してもよい。この場合、上述の伝播選択条件は、最も大きい絶対値を備えることである。対象選択部20は、継承動きベクトルmMV0及び補填ベクトルcMVのうち、絶対値が小さいベクトルを、伝播ベクトルとして選択してもよい。この場合、上述の伝播選択条件は、最も小さい絶対値を備えることである。
この場合、対象選択部20は、動きベクトルmMV0及び補填ベクトルcMVのうち、伝播ベクトルとして選択されたベクトルを、そのベクトルが伝播ベクトルとして選択されたことを判別できるように、ベクトル記憶部80に格納すればよい。対象選択部20は、例えば、対象選択部20は、動きベクトルmMV0及び補填ベクトルcMVのうち、伝播ベクトルとして選択されたベクトルに、そのベクトルが伝播ベクトルであるか否かを示す値(以下「判定値」と表記)を関連付けてもよい。そして、対象選択部20は、それぞれ判定値が関連付けられた、動きベクトルmMV0及び補填ベクトルcMVを、ベクトル記憶部80に格納してもよい。
対象選択部20は、伝播ベクトルとして選択されたベクトルを、ベクトル記憶部80が含む第1ベクトル記憶部81又は第2ベクトル記憶部82の固定された一方に格納してもよい。この場合、対象選択部20は、伝播ベクトルとして選択されなかったベクトルを格納すればよい。さらに、対象選択部20は、第1ベクトル記憶部81又は第2ベクトル記憶部82の他方に格納すればよい。以下の説明では、対象選択部20は、第1ベクトル記憶部81に、伝播ベクトルとして選択されたベクトルを格納する。さらに、対象選択部20は、第2ベクトル記憶部82に、伝播ベクトルとして選択されなかったベクトルを格納する。例えば、継承動きベクトルmMV0及び補填ベクトルcMVのうち、継承動きベクトルmMV0が伝播ベクトルとして選択された場合、対象選択部20(例えば第1対象選択部21)は、継承動きベクトルmMV0を、第1ベクトル記憶部81に格納する。この場合、対象選択部20(例えば第2対象選択部22)は、補填ベクトルcMVを第2ベクトル記憶部82に格納する。継承動きベクトルmMV0及び補填ベクトルcMVのうち、補填ベクトルcMVが伝播ベクトルとして選択された場合、対象選択部20(例えば第2対象選択部22)は、補填ベクトルcMVを、第1ベクトル記憶部81に格納する。この場合、対象選択部20(例えば第1対象選択部21)は、継承動きベクトルmMV0を第2ベクトル記憶部82に格納する。
補填候補生成部60は、補填ベクトルとしてベクトル記憶部80に格納されているベクトルを、AMVP動きベクトル及び時間予測動きベクトルを生成するのに使用する周辺ベクトルとして読み出せばよい。
次に、動きベクトル補填部90について、さらに詳しく説明する。
図13は、本実施形態の動きベクトル補填部90の構成の例を詳細に示すブロック図である。動きベクトル補填部90は、第1候補選択部95と、第2候補選択部96と、選択実行部97と、第3候補選択部98と、伝播条件決定部99とを含む。第1候補選択部95は、図4に示す第1候補選択部15と同じである。第2候補選択部96は、図4に示す第2候補選択部16と同じである。さらに、第3候補選択部98は、補填候補生成部60から入力されるすべての予測動きベクトル(すなわちセットAに含まれるベクトル、「候補ベクトル」とも表記)を、入力として受信する。セットAに含まれるベクトルは、上述のように、AMVP00、AMVP01、AMVP10、AMVP11、時間予測動きベクトル0、時間予測動きベクトル1、及び、ゼロベクトルである。第3候補選択部98は、伝播条件決定部99から、伝播条件を受信する。伝播条件については、後で詳細に説明する。第3候補選択部98は、受信した伝播条件に基づいて、受信したベクトル(すなわちセットAに含まれるベクトル)のなかから、1つのベクトルを選択する。第3候補選択部98は、選択した1つのベクトルを、擬似伝播補填ベクトルcMVP0及び擬似伝播補填ベクトルcMVP1として出力する。すなわち、第3候補選択部98は、選択した1つのベクトルを、擬似伝播補填ベクトルcMVP0及び擬似伝播補填ベクトルcMVP1として選択実行部97に送信する。擬似伝播補填ベクトルcMVP0は、L0向けの補填ベクトルの候補(すなわちmMV0が存在しない場合に補填される補填ベクトルの候補)である。擬似伝播補填ベクトルcMVP1は、L1向けの補填ベクトルの候補である。
伝播条件決定部99は、たとえば、以下の伝播条件のうちの1つを、第3候補選択部98に送信する伝播条件として決定する。そして、伝播条件決定部99は、決定した伝播条件を第3候補選択部98に出力する(すなわち送信する)。
(A)複数の動きベクトルのうち、ベクトルの絶対値(すなわち大きさ)が最小のベクトル
(B)複数の動きベクトルのうち、ベクトルの絶対値(すなわち大きさ)が2番目に小さいベクトル
(C)複数の動きベクトルのうち、ベクトルの絶対値(すなわち大きさ)が2番目に大きいベクトル
(D)複数の動きベクトルのうち、ベクトルの絶対値(すなわち大きさ)が最大のベクトル
(E)複数の動きベクトルのうち、継承動きベクトルとの距離が最小のベクトル
(F)複数の動きベクトルのうち、継承動きベクトルとの距離が2番目に小さいベクトル
(G)複数の動きベクトルのうち、継承動きベクトルとの距離が2番目に大きいベクトル
(H)複数の動きベクトルのうち、継承動きベクトルとの距離が最大のベクトル
(I)複数の動きベクトルのうち、閾値よりも絶対値が小さいベクトルの中で、継承動きベクトルとの距離が最大のベクトル
(J)複数の動きベクトルのうち、閾値よりも絶対値が大きいベクトルの中で、継承動きベクトルとの距離が最小のベクトル
(K)複数の動きベクトルのうち、閾値よりも継承動きベクトルとの距離が小さいベクトルの中で、絶対値が最大のベクトル
(L)複数の動きベクトルのうち、閾値よりも継承動きベクトルとの距離が大きいベクトルの中で、絶対値が最小のベクトル
なお、伝播条件決定部99は、事前に実験的に決定した伝播条件を固定的に出力してもよい。また、伝播条件決定部99は、符号化を実行する際の符号化情報(図示しない)を利用して、伝播条件を動的に決定してもよい。
選択実行部97は、第1候補選択部95から補填ベクトルcMV0を受信する。選択実行部97は、第2候補選択部96から補填ベクトルcMV1を受信する。選択実行部97は、第3候補選択部98から擬似伝播補填ベクトルcMVP0及びcMVP1を受信する。選択実行部97は、cMV0、cMV1、cMVP0、及び、cMVP1(以下「2次候補ベクトル」とも表記)の最大4つのうち、1つのベクトルを、mDirに基づいて、cMVとして選択する。選択実行部97は、さらに、補填モードcModeを受信してもよい。選択実行部97は、mDir及びcModeに基づいて、それらの最大4つのベクトルの中から、1つのベクトルを、cMVとして選択してもよい(すなわち、cMVを選択してもよい)。選択実行部97は、さらに、ピクチャタイプPicTypeを受信してもよい。選択実行部97は、さらにPicTypeに基づいて、cMVを選択してもよい。選択実行部97は、選択したベクトルを、cMVとして出力する。選択実行部97がcMVを選択する方法として、さまざまな方法が適用可能である。選択実行部97がcMVを選択する方法は、適宜定められていればよい。
例えば、mDirの値がL0である場合(すなわち、mMV0が存在し、mMV1が存在しない場合)、選択実行部97は、cMV0とcMVP1とのいずれかを、所定の選択方法に従って選択してもよい。mDirの値がL1である場合(すなわち、mMV1が存在し、mMV0が存在しない場合)、選択実行部97は、cMV1とcMVP0とのいずれかを、所定の選択方法に従って選択してもよい。
選択実行部97は、例えば、選択の対象である複数のベクトルの中で、最も絶対値が小さいベクトルを、cMVとして選択してもよい。例えば、上述のように、2つのベクトルの一方をcMVとして選択する場合、選択実行部97は、それらの2つのベクトルのうち、絶対値が小さいベクトルをcMVとして選択すればよい。上述の例では、mDirの値がL0である場合、選択実行部97は、cMV0とcMVP1とのうち、絶対値が小さいベクトルをcMVとして選択すればよい。mDirの値がL1である場合、選択実行部97は、cMV1とcMVP0とのうち、絶対値が小さいベクトルをcMVとして選択すればよい。選択実行部97は、補填ベクトルcMV0又はcMV1と、擬似伝播補填ベクトルcMVP0及びcMVP1との間の絶対値の差に基づいて、補填ベクトルcMVとして選択してもよい。例えば、予測方向mDirの値がL0である場合、cMV0の絶対値とcMVP1の絶対値との差が閾値以上であれば、選択実行部97は、cMVP1を選択してもよい。予測方向mDirの値がL1である場合、cMV1の絶対値とcMVP0の絶対値との差が閾値以上であれば、選択実行部97は、cMVP0を選択してもよい。
選択実行部97は、他の方法に従って、cMVを選択してもよい。
図14は、本実施形態の動きベクトル補填部90の構成の例を模式的に表すブロック図である。
図13に示す動きベクトル補填部90は、図14のように簡略化された構成に描かれうる。図14に示す動きベクトル補填部90は、検出部91と、補填ベクトル選択部92と、受信部94と、送信部93とを含む。検出部91は、事前解析部102から送信される予測方向mDir(具体的には、予測方向mDirの値)を検出する。受信部94は、事前解析部102から継承動きベクトル(mMV0及びmMV1の少なくとも一方)を受信する。受信部94は、例えばモード決定部70から、補填モードcModeを受信する。受信部94は、さらに、補填候補生成部60から、セットAのベクトルを受信する。補填ベクトル選択部92は、伝播条件決定部99によって決定された伝播条件に従って、予測方向mDir及び継承動きベクトルに基づいて、セットAのベクトルから1つのベクトルを補填ベクトルcMVとして選択することによって、補填ベクトルcMVを生成する。送信部93は、生成された補填ベクトルcMVを、対象選択部20に送信する。
上述の比較例と同様に、受信部94に相当する部分は、動きベクトル補填部90のうち、継承動きベクトル、補填モードcMode、及び、セットAを受信する部分である。また、検出部91に相当する部分は、動きベクトル補填部90のうち、予測方向mDir及びピクチャタイプPicTYpeを受信し、受信した予測方向mDir及びピクチャタイプPicTYpeの値を判定する部分(例えば選択実行部97の一部)である。さらに、第1候補選択部95、第2候補選択部96、及び選択実行部97が、補填ベクトル選択部92として動作する。さらに、送信部93に相当する部分は、選択実行部97から対象選択部20にcMVを送信する部分である。
[動作の説明]
次に、本実施形態の映像符号化装置1の動き補償部200の動作について、図面を参照して詳細に説明する。なお、本実施形態の映像符号化装置1の全体の動作は、一般的な映像符号化装置の動作と同じであるので、説明を省略する。
図15及び図16は、本実施形態の動き補償部200の動作を表すフローチャートである。図15に示す動作の開始時において、例えばブロック分割部101によって、映像は、一度に符号化されるブロックの集まりである最大符号化単位(Largest Coding Unit、以下「LCU」と表記)に分割されている。最大符号化単位は、複数の予測単位(Prediction Unit、以下「PU」と表記)を含む。PUは、映像の符号化における予測の単位のブロック(すなわち、予測ベクトル、予測画像、及び、予測方向が導出される最小のブロック)である。そして、動き補償部200は、LCU毎に、図15及び図16に示す動作を行う。図15に示す動作の開始時において、処理の対象であるLCUが選択されている。
動き補償部200は、まず、選択されているLCUの各PUについて(ステップS301)、ステップS101、ステップS102、及び、ステップS302からステップS305の動作を行う。
具体的には、まず、モード決定部70が、補填モードを決定し、決定した補填モードを動きベクトル補填部90に送信する(ステップS101)。図8に示す比較例におけるステップS101の動作と同様に、補填モードが固定されている場合、モード決定部70は補填モードを決定しなくてよい。
次に、補填候補生成部60が、周辺ベクトルに基づいて、AMVP予測動きベクトルと時間予測動きベクトルと含む、セットAのベクトルを生成する(ステップS102)。本実施形態では、周辺ベクトルは、符号化対象ブロック(すなわち、上述のPU)の隣接ブロックのリファイン前動きベクトル、又は、符号化対象ブロックの直前ピクチャのブロックのリファイン前動きベクトルである。上述のように、ベクトル記憶部80が、周辺ベクトル(すなわち、符号化対象ブロックの周辺のブロックにおけるリファイン前動きベクトル)を記憶する。補填候補生成部60は、ベクトル記憶部80から周辺ベクトルを読み出し、読み出した周辺ベクトルをもとに、セットAのベクトルを生成すればよい。
動きベクトル補填部90は、次に、動きベクトル補填処理を行う(ステップS302)。動きベクトル補填処理については、後で詳細に説明する。動きベクトル補填処理によって、2つの継承動きベクトル、又は、継承動きベクトルと補填動きベクトルの組み合わせが、リファイン前動きベクトルとして得られる。
符号化対象ブロックを含むピクチャのピクチャタイプがPピクチャである場合(ステップS303においてYES)、対象選択部20は、2つのリファイン前動きベクトルの一方を、伝播ベクトルとして選択する(ステップS304)。符号化対象ブロックを含むピクチャのピクチャタイプがPピクチャでない場合(ステップS303においてNO)、対象選択部20は、伝播ベクトルを選択しなくてよい。
次に、対象選択部20は、リファイン前動きベクトルとして得られた動きベクトルを、ベクトル記憶部80に格納する(ステップS305)。対象選択部20は、リファイン前動きベクトルとして得られた動きベクトルに、符号化対象ブロック(すなわち、上述のPU)を関連付ければよい。そして対象選択部20は、符号化対象ブロックに関連付けられた動きベクトルを、ベクトル記憶部80に格納すればよい。対象選択部20は、ベクトル記憶部80に格納する動きベクトルに、例えば、上述のPUを特定する番号を関連付ければよい。
符号化対象ブロックを含むピクチャのピクチャタイプがPピクチャである場合、対象選択部20は、どちらのベクトルが伝播ベクトルとして選択されたか特定できるように、2つのリファイン前動きベクトルをベクトル記憶部80に格納すればよい。本実施形態の動作の例では、対象選択部20は、伝播ベクトルとして選択されたベクトルを、第1ベクトル記憶部81に格納する。そして、対象選択部20は、伝播ベクトルとして選択されなかったベクトルを、第2ベクトル記憶部82に格納する。
動き補償部200は、選択されているLCUの各PUについて、動きベクトル補填処理が終了するまで、ステップS101、ステップS102、ステップS302、及び、ステップS303の動作を繰り返す(ステップS304)。
次に、動き補償部200は、図16に示す動作を行う。動き補償部200は、選択されているLCUにおける各PUについて、ステップS104からステップS109までの動作を行えばよい(ステップS311)。ステップS104からステップS109までの動作は、図8に示す、変形例の動き補償部100の、ステップS104からステップS109までの動作と同じである。動き補償部200は、選択されているLCUにおける各PUについて、動きベクトル、予測画像、及び、予測方向を出力するまで、ステップS104からステップS109までの動作を繰り返す(ステップS312)。
次に、動きベクトル補填部90による動きベクトル補填処理について、図面を参照して詳細に説明する。
図17は、本実施形態の動きベクトル補填部90による、動きベクトル補填処理の動作の一例を表すフローチャートである。
図17を参照すると、まず、図14に示す、動きベクトル補填部90の検出部91が、予測方向mDirに基づいて、動き補償部200に入力された継承動きベクトルの数を検出する(ステップS201)。具体的には、例えば、図13に示す選択実行部97(上述の検出部91として動作する)が、動き補償部200に入力された継承動きベクトルの数を検出すればよい。検出部91は、比較例の検出部11と同様に、予測方向mDirの値がL0又はL1である場合、継承動きベクトルの数は1であると判定すればよい。検出部91は、予測方向mDirの値がBiである場合、継承動きベクトルの数は2であると判定すればよい。継承動きベクトルの数が1でない場合(ステップS202においてNO)、動きベクトル補填部90は、図17に示す動作を終了する。
継承動きベクトルの数が1である場合(ステップS202においてYES)、動きベクトル補填部90(例えば受信部94として動作する部分)は、例えばモード決定部70から、補填モードcModeを受信する(ステップS203)。具体的には、第1候補選択部95及び第2候補選択部96が、補填モードcModeを受信する。第3候補選択部98も、補填モードcModeを受信してもよい。
動きベクトル補填部90(例えば受信部94として動作する部分)は、さらに、補填候補生成部60から、セットAのベクトルを受信する(ステップS204)。具体的には、第1候補選択部95は、セットAのベクトルのうち、セット0のベクトルを受信する。第2候補選択部96は、セットAのベクトルのうち、セット1のベクトルを受信する。第3候補選択部98は、セットAのベクトルを受信する。上述のように、セットAのベクトルは、AMVP00、AMVP01、AMVP10、AMVP11、時間予測動きベクトル0、時間予測動きベクトル1、及び、ゼロベクトルである。セット0のベクトルは、AMVP00、AMVP01、時間予測動きベクトル0、及び、ゼロベクトルである。セット1のベクトルは、AMVP10、AMVP11、時間予測動きベクトル1、及び、ゼロベクトルである。
動きベクトル補填部90(例えば受信部94として動作する部分)は、さらに、事前解析部102から、継承動きベクトルを受信する(ステップS205)。具体的には、第1候補選択部95は、継承動きベクトルmMV0を受信する。第2候補選択部96は、継承動きベクトルmMV1を受信する。第2候補選択部96は、継承動きベクトルmMV0及び継承動きベクトルmMV1を受信する。事前解析部102が継承動きベクトルmMV0を生成しない場合、第1候補選択部95及び第3候補選択部98は、継承動きベクトルmMV0を受信しなくてよい。事前解析部102が継承動きベクトルmMV1を生成しない場合、第2候補選択部96及び第3候補選択部98は、継承動きベクトルmMV1を受信しなくてよい。
次に、動きベクトル補填部90は、補填モードcModeに基づいて、補填ベクトルcMV0及びcMV1の少なくともいずれかを生成する(ステップS401)。具体的には、第1候補選択部95が、受信した補填モードcModeについて定められた方法に従って、セット0のベクトルから1つのベクトルを選択する。第1候補選択部95は、継承動きベクトルmMV0を使用して、ベクトルを選択してもよい。そして、第1候補選択部95は、選択したベクトルを補填ベクトルcMV0にすることによって、補填ベクトルcMV0を生成する。第1候補選択部95は、生成した補填ベクトルcMV0を、選択実行部97に送信する。第2候補選択部96が、受信した補填モードcModeについて定められた方法に従って、セット1のベクトルから1つのベクトルを選択する。第2候補選択部96は、継承動きベクトルmMV1を使用して、ベクトルを選択してもよい。そして、第2候補選択部96は、選択したベクトルを補填ベクトルcMV1にすることによって、補填ベクトルcMV1を生成する。第2候補選択部96は、生成した補填ベクトルcMV1を、選択実行部97に送信する。
次に、伝播条件決定部99は、伝播条件を決定する(ステップS402)。伝播条件決定部99は、符号化の状態に基づいて、伝播条件を決定してもよい。伝播条件は、固定されていてもよい。その場合、伝播条件決定部99は、伝播条件を決定しなくてもよい。伝播条件決定部99は、その伝播条件を、第3候補選択部98に送信する。具体的には、伝播条件決定部99は、例えば、複数の伝播条件の各々についてあらかじめ定められた識別子のうち、送信される伝播条件を示す識別子を、第3候補選択部98に送信すればよい。第3候補選択部98は、伝播条件決定部99から、伝播条件を受信する。具体的には、第3候補選択部98は、伝播条件の識別子を受信すればよい。
次に、動きベクトル補填部90は、受信した伝播条件に従って、セットAに含まれるベクトルに基づいて、擬似伝播補填ベクトルを生成する(ステップS403)。具体的には、第3候補選択部98が、受信した伝播条件を満たすベクトル(すなわち、受信した識別子が示す伝播条件を満たすベクトル)を、セットAに含まれるベクトルから選択する。第3候補選択部98は、選択したベクトルを、擬似伝播補填ベクトルcMVP0及びcMVP1とすることによって、擬似伝播補填ベクトルcMVP0及びcMVP1を生成する。第3候補選択部98は、擬似伝播補填ベクトルcMVP0及びcMVP1を、選択実行部97に送信する。
次に、動きベクトル補填部90は、補填ベクトルcMV0及びcMV1と、擬似伝播補填ベクトルcMVP0及びcMVP1とから、あらかじめ定められた伝播選択条件に従って、補填ベクトルcMVを選択する(ステップS404)。伝播選択条件は、例えば、最も大きい絶対値を備えることである。その場合、具体的には、予測方向mDirがL0である場合、選択実行部97が、例えば、補填ベクトルcMV0及び擬似伝播補填ベクトルcMVP1から、絶対値が大きいベクトルを選択する。予測方向mDirがL1である場合選択実行部97は、例えば、補填ベクトルcMV1及び擬似伝播補填ベクトルcMVP0から、絶対値が大きいベクトルを選択する。伝播選択条件は、例えば、最も小さい絶対値を供えることであってもよい。その場合、予測方向mDirがL0である場合、選択実行部97が、例えば、補填ベクトルcMV0及び擬似伝播補填ベクトルcMVP1から、絶対値が小さいベクトルを選択する。予測方向mDirがL1である場合選択実行部97は、例えば、補填ベクトルcMV1及び擬似伝播補填ベクトルcMVP0から、絶対値が小さいベクトルを選択する。
なお、ステップS203からステップS403までの動作の順番は、図17に示す例に限られない。例えば、ステップS203からステップS205までの動作は、ステップS401及びステップS403の動作より前に行われればよい。ステップS402の動作は、ステップS403の動作より前に行われればよい。ステップS203からステップS205までの動作及びステップS402の動作が行われる順番は、適宜変更できる。ステップS203からステップS205までの動作及びステップS402の動作の少なくともいずれか2つ以上が、並列に行われてもよい。ステップS401の動作と、ステップS403の動作とが行われる順番は、逆であってもよい。ステップS401の動作とステップS403の動作は、並列に行われてもよい。
そして、動きベクトル補填部90は、図17に示す動作を終了する。
図18は、本実施形態の映像符号化装置2の、動きベクトルの補填及びリファインを行う部分を模式的に表す図である。図18に示すmcMV0及びmcMV1は、図7と同様に、mMV0、mMV1、及び、cMVのうち、対象選択部20によって選択された2つのリファイン前動きベクトルを表す。図18に示すmcMV0a及びmcMV1aは、符号化対象ブロックの周辺ブロックのリファイン前動きベクトルを表す。
[効果の説明]
次に、本実施の形態の効果について説明する。
本実施形態には、参照ピクチャが1つである場合であっても、予測の精度を向上させることができるという効果がある。
その理由は、動きベクトル補填部90が、AMVP予測ベクトル及び時間予測ベクトルを含むベクトルの組み合わせから、リファインの対象のベクトルとして補填ベクトルを選択するからである。参照ピクチャが1つである場合、継承動きベクトルは1つである。その場合、継承動きベクトルと選択された補填ベクトルとをリファインすることによって、2つの予測ベクトルを生成することができる。2つの予測ベクトルに基づいて動き補償を行うことによって、予測の精度が向上する。それにより、映像の圧縮率が向上向上する。
また、動きベクトル補填部90は、周辺ブロックにおける、継承動きベクトル及び補填ベクトルから選択されたAMVP予測動きベクトルから、補填ベクトルを選択する。このことにより、理想的なベクトル埋めにおいて発生するベクトルの伝播を疑似的に実現することができる。それにより、予測の精度がさらに向上する。
[第2の実施形態]
図19は、本発明の第2の実施形態に係る映像符号化装置の構成の例を表すブロック図である。
図19を参照すると、本発明の第2の実施形態に係る映像符号化装置2Aは、補填候補生成部60と動きベクトル補填部90と、を備える。
補填候補生成部60は、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する。リファイン前ベクトルは、符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるベクトルである。候補ベクトルは、例えば、上述の第1の実施形態におけるセットAのベクトルである。
動きベクトル補填部90は、前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する。補填ベクトルは、上述の第1の実施形態の補填ベクトルcMVである。補填ベクトルを選択する方法は、第1の実施形態における、補填ベクトルcMVを選択する方法と同じでよい。
次に、本実施形態の映像符号化装置2Aの動作について、図面を参照して詳細に説明する。
図20は、本実施形態に係る映像符号化装置の動作の例を表すフローチャートである。
図20を参照すると、まず、補填候補生成部60が、隣接ブロックのリファイン前ベクトルを含む、候補ベクトルを生成する(ステップS501)。次に、動きベクトル補填部90が、符号化対象ブロックのリファイン前ベクトルとして補填される補填ベクトルを、候補ベクトルから選択する(ステップS502)
[他の実施形態]
上述の実施形態及び比較例に係る映像符号化装置は、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
言い換えると、上述の各実施形態及び比較例に係る映像符号化装置は、回路構成(circuitry)などのハードウェアによって実現することができる。回路構成は、例えば、コンピュータに含まれるプロセッサとメモリであってもよい。その場合、プログラムが、メモリにロードされていればよい。そのプログラムは、プロセッサが実行することが可能であり、コンピュータを上述の各実施形態及び比較例の映像符号化装置として動作させればよい。回路構成は、例えば、通信可能に接続された複数のコンピュータであってもよい。回路構成は、例えば、回路(circuit)であってもよい。回路構成は、例えば、通信可能に接続された複数の回路であってもよい。回路構成は、通信可能に接続された、1台以上のコンピュータと、1個以上の回路との組み合わせであってもよい。
図21は、上述の実施形態及び比較例に係る映像符号化装置を実現することができる、コンピュータ1000のハードウェア構成の一例を表す図である。図21を参照すると、コンピュータ1000は、プロセッサ1001と、メモリ1002と、記憶装置1003と、I/O(Input/Output)インタフェース1004とを含む。また、コンピュータ1000は、記録媒体1005にアクセスすることができる。メモリ1002と記憶装置1003は、例えば、RAM(Random Access Memory)、ハードディスクなどの記憶装置である。記録媒体1005は、例えば、RAM、ハードディスクなどの記憶装置、ROM(Read Only Memory)、可搬記録媒体である。記憶装置1003が記録媒体1005であってもよい。プロセッサ1001は、メモリ1002と、記憶装置1003に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ1001は、I/Oインタフェース1004を介して、例えば、映像信号を供給する装置など、及び、符号化された映像信号が供給される装置などにアクセスすることができる。プロセッサ1001は、記録媒体1005にアクセスすることができる。記録媒体1005には、コンピュータ1000を、映像符号化装置1、2、又は、2Aとして動作させるプログラムが格納されている。
プロセッサ1001は、記録媒体1005に格納されている、コンピュータ1000を、映像符号化装置1、2、又は、2Aとして動作させるプログラムを、メモリ1002にロードする。そして、プロセッサ1001が、メモリ1002にロードされたプログラムを実行することにより、コンピュータ1000は、映像符号化装置1、2、又は、2Aとして動作する。
以下の部(以下、「第1グループ」と表記)は、例えば、それらの部の機能を実現することができる専用のプログラムがロードされたメモリ1002と、そのプログラムを実行するプロセッサ1001により実現することができる。
動きベクトル補填部10
検出部11
補填ベクトル選択部12
送信部13
受信部14
第1候補選択部15
第2候補選択部16
選択実行部17
対象選択部20
第1対象選択部21
第2対象選択部22
リファイン部30
第1リファイン部31
第2リファイン部32
双予測生成部40
予測選択部50
補填候補生成部60
モード決定部70
動きベクトル補填部90
検出部91
補填ベクトル選択部92
送信部93
受信部94
第1候補選択部95
第2候補選択部96
選択実行部97
第3候補選択部98
伝播条件決定部99
動き補償部100
ブロック分割部101
事前解析部102
イントラ予測部103
切替部104
整数変換部105
量子化部106
逆量子化部107
逆整数変換部108
符号化部109
フィルタ部116
減算部118
加算部119
動き補償部200
また、以下の部(以下、「第2グループ」と表記)は、コンピュータ1000が含むメモリ1002やハードディスク装置等の記憶装置1003により実現することができる。
ベクトル記憶部80
第1ベクトル記憶部81
第2ベクトル記憶部82
フレーム記憶部117
第1グループに含まれる部と第2グループに含まれる部の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
図22は、本発明の比較例の、回路によって実装された映像符号化装置1の構成の一例を表すブロック図である。図22に示す映像符号化装置1は、ブロック分割回路1101、事前解析回路1102、イントラ予測回路1103、切替回路1104、整数変換回路1105、量子化回路1106、逆量子化回路1107、及び、逆整数変換回路1108を含む。映像符号化装置1は、さらに、符号化回路1109、フィルタ回路1116、フレーム記憶回路1117、減算回路1118、加算回路1119、及び、動き補償回路1100を含む。
図23は、本発明の比較例の、動き補償回路1100の構成の一例を表すブロック図である。図23に示す動き補償回路1100は、動きベクトル補填回路1010、対象選択回路1020、リファイン回路1030、双予測生成回路1040、予測選択回路1050、補填候補生成回路1060、及び、モード決定回路1070を含む。
図24は、本発明の比較例の、動き補償回路1100の構成の一例を表すブロック図である。図24は、図23に示す動き補償回路1100の、より詳細な構成の例を示す。図24に示す動き補償回路1100は、動きベクトル補填回路1010、対象選択回路1020、リファイン回路1030、双予測生成回路1040、予測選択回路1050、補填候補生成回路1060、及び、モード決定回路1070を含む。対象選択回路1020は、第1対象選択回路1021及び第2対象選択回路1022を含む。リファイン回路1030は、第1リファイン回路1031及び第2リファイン回路1032を含む。
図25は、本発明の比較例の、動きベクトル補填回路1010の構成の一例を表すブロック図である。図25に示す動きベクトル補填回路1010は、第1候補選択回路1015、第2候補選択回路1016、及び、選択実行回路1017を含む。
図26は、本発明の比較例の、動きベクトル補填回路1010の構成の一例を表すブロック図である。図25に示す動きベクトル補填回路1010は、図26のようにも描かれうる。図26に示す動きベクトル補填回路1010は、検出回路1011と、補填ベクトル選択回路1012と、送信回路1013と、受信回路1014とを含む。
図27は、本発明の第の実施形態の、回路によって実装された映像符号化装置2の構成の一例を表すブロック図である。図27に示す映像符号化装置2は、ブロック分割回路1101、事前解析回路1102、イントラ予測回路1103、切替回路1104、整数変換回路1105、量子化回路1106、逆量子化回路1107、及び、逆整数変換回路1108を含む。映像符号化装置2は、さらに、符号化回路1109、フィルタ回路1116、フレーム記憶回路1117、減算回路1118、加算回路1119、及び、動き補償回路1200を含む。
図28は、本発明の第1の実施形態の、動き補償回路1200の構成の一例を表すブロック図である。図28に示す動き補償回路1200は、動きベクトル補填回路1090、対象選択回路1020、リファイン回路1030、双予測生成回路1040、予測選択回路1050、補填候補生成回路1060、モード決定回路1070、及び、ベクトル記憶回路1080を含む。
図29は、本発明の第1の実施形態の、回路によって実装された動き補償回路1200の構成の一例を表すブロック図である。図29は、図28に示す動き補償回路1100の、より詳細な構成の例を示す。図29に示す動き補償回路1200は、動きベクトル補填回路1090、対象選択回路1020、リファイン回路1030、双予測生成回路1040、予測選択回路1050、補填候補生成回路1060、モード決定回路1070、及び、ベクトル記憶回路1080を含む。対象選択回路1020は、第1対象選択回路1021及び第2対象選択回路1022を含む。リファイン回路1030は、第1リファイン回路1031及び第2リファイン回路1032を含む。ベクトル記憶回路1080は、第1ベクトル記憶回路1081と、第2ベクトル記憶回路1082とを含む。
図30は、本発明の第1の実施形態の、動きベクトル補填回路1090の構成の一例を表すブロック図である。図30に示す動きベクトル補填回路1090は、第1候補選択回路1095と、第2候補選択回路1096と、第3候補選択回路1098と、選択実行回路1097と、伝播条件決定回路1099とを含む。
図31は、本発明の第1の実施形態の、動きベクトル補填回路1090の構成の一例を表すブロック図である。図30に示す動きベクトル補填回路1090は、図31のようにも描かれうる。図31に示す動きベクトル補填回路1090は、検出回路1091と、補填ベクトル選択回路1092と、送信回路1093と、受信回路1094と、伝播条件決定回路1099とを含む。
図32は、本発明の第2の実施形態の、回路によって実装された映像符号化装置2Aの構成の一例を表すブロック図である。図32に示す映像符号化装置2Aは、補填候補生成回路1060と、動きベクトル補填回路1090とを含む。
図22〜図32において、動きベクトル補填回路1010は、動きベクトル補填部10として動作する。検出回路1011は、検出部11として動作する。補填ベクトル選択回路1012は、補填ベクトル選択部12として動作する。送信回路1013は、送信部13として動作する。受信回路1014は、受信部14として動作する。第1候補選択回路1015は、第1候補選択部15として動作する。第2候補選択回路1016は、第2候補選択部16として動作する。選択実行回路1017は、選択実行部17として動作する。対象選択回路1020は、対象選択部20として動作する。第1対象選択回路1021は、第1対象選択部21として動作する。第2対象選択回路1022は、第2対象選択部22として動作する。リファイン回路1030は、リファイン部30として動作する。第1リファイン回路1031は、第1リファイン部31として動作する。第2リファイン回路1032は、第2リファイン部32として動作する。双予測生成回路1040は、双予測生成部40として動作する。予測選択回路1050は、予測選択部50として動作する。補填候補生成回路1060は、補填候補生成部60として動作する。モード決定回路1070は、モード決定部70として動作する。
ベクトル記憶回路1080は、ベクトル記憶部80として動作する。第1ベクトル記憶回路1081は、第1ベクトル記憶部81として動作する。第2ベクトル記憶回路1082は、第2ベクトル記憶部82として動作する。動きベクトル補填回路1090は、動きベクトル補填部90として動作する。検出回路1091は、検出部91として動作する。補填ベクトル選択回路1092は、補填ベクトル選択部92として動作する。送信回路1093は、送信部93として動作する。受信回路1094は、受信部94として動作する。第1候補選択回路1095は、第1候補選択部95として動作する。第2候補選択回路1096は、第2候補選択部96として動作する。選択実行回路1097は、選択実行部97として動作する。第3候補選択回路1098は、第3候補選択部98として動作する。伝播条件決定回路1099は、伝播条件決定部99として動作する。
動き補償回路1100は、動き補償部100として動作する。ブロック分割回路1101は、ブロック分割部101として動作する。事前解析回路1102は、事前解析部102として動作する。イントラ予測回路1103は、イントラ予測回部103として動作する。切替回路1104は、切替部104として動作する。整数変換回路1105は、整数変換部105として動作する。量子化回路1106は、量子化部106として動作する。逆量子化回路1107は、逆量子化部107として動作する。逆整数変換回路1108は、逆整数変換部108として動作する。符号化回路1109は、符号化部109として動作する。フィルタ回路1116は、フィルタ部116として動作する。フレーム記憶回路1117は、フレーム記憶部117として動作する。減算回路1118は、減算部118として動作する。加算回路1119は、加算部119として動作する。動き補償回路1200は、動き補償部200として動作する。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する補填候補生成手段と、
前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する動きベクトル補填手段と、
を備える映像符号化装置。
(付記2)
前記動きベクトル補填手段は、前記継承動きベクトルと前記候補ベクトルとの距離に基づいて、前記補填ベクトルを選択する
付記1に記載の映像符号化装置。
(付記3)
前記動きベクトル補填手段は、前記候補ベクトルの大きさに基づいて、前記補填ベクトルを選択する
付記1又は2に記載の映像符号化装置。
(付記4)
前記動きベクトル補填手段は、前記候補ベクトルから異なる条件に従って複数の2次候補ベクトルを従って選択し、選択した前記複数の2次候補ベクトルから前記補填ベクトルを選択する
付記1乃至3のいずれかに記載の映像符号化装置。
(付記5)
符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成し、
前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する、
映像符号化方法。
(付記6)
前記継承動きベクトルと前記候補ベクトルとの距離に基づいて、前記補填ベクトルを選択する
付記5に記載の映像符号化方法。
(付記7)
前記候補ベクトルの大きさに基づいて、前記補填ベクトルを選択する
付記5又は6に記載の映像符号化方法。
(付記8)
前記候補ベクトルから異なる条件に従って複数の2次候補ベクトルを従って選択し、選択した前記複数の2次候補ベクトルから前記補填ベクトルを選択する
付記5乃至8のいずれかに記載の映像符号化方法。
(付記9)
コンピュータに、
符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する補填候補生成処理と、
前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する動きベクトル補填処理と、
を実行させる映像符号化プログラム。
(付記10)
前記動きベクトル補填処理は、前記継承動きベクトルと前記候補ベクトルとの距離に基づいて、前記補填ベクトルを選択する
付記9に記載の映像符号化プログラム。
(付記11)
前記動きベクトル補填処理は、前記候補ベクトルの大きさに基づいて、前記補填ベクトルを選択する
付記9又は10に記載の映像符号化プログラム。
(付記12)
前記動きベクトル補填処理は、前記候補ベクトルから異なる条件に従って複数の2次候補ベクトルを従って選択し、選択した前記複数の2次候補ベクトルから前記補填ベクトルを選択する
付記9乃至11のいずれかに記載の映像符号化プログラム。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
本発明によれば、符号化によって映像の圧縮を行う映像圧縮装置や、映像の圧縮をコンピュータ上で実現するプログラムなどの用途に適用できる。
1 映像符号化装置
2 映像符号化装置
2A 映像符号化装置
10 動きベクトル補填部
11 検出部
12 補填ベクトル選択部
13 送信部
14 受信部
15 第1候補選択部
16 第2候補選択部
17 選択実行部
20 対象選択部
21 第1対象選択部
22 第2対象選択部
30 リファイン部
31 第1リファイン部
32 第2リファイン部
40 双予測生成部
50 予測選択部
60 補填候補生成部
70 モード決定部
80 ベクトル記憶部
81 第1ベクトル記憶部
82 第2ベクトル記憶部
90 動きベクトル補填部
91 検出部
92 補填ベクトル選択部
93 送信部
94 受信部
95 第1候補選択部
96 第2候補選択部
97 選択実行部
98 第3候補選択部
99 伝播条件決定部
100 動き補償部
101 ブロック分割部
102 事前解析部
103 イントラ予測部
104 切替部
105 整数変換部
106 量子化部
107 逆量子化部
108 逆整数変換部
109 符号化部
116 フィルタ部
117 フレーム記憶部
118 減算部
119 加算部
200 動き補償部
1000 コンピュータ
1001 プロセッサ
1002 メモリ
1003 記憶装置
1004 I/Oインタフェース
1005 記録媒体
1010 動きベクトル補填回路
1011 検出回路
1012 補填ベクトル選択回路
1013 送信回路
1014 受信回路
1015 第1候補選択回路
1016 第2候補選択回路
1017 選択実行回路
1020 対象選択回路
1021 第1対象選択回路
1022 第2対象選択回路
1030 リファイン回路
1031 第1リファイン回路
1032 第2リファイン回路
1040 双予測生成回路
1050 予測選択回路
1060 補填候補生成回路
1070 モード決定回路
1080 ベクトル記憶回路
1081 第1ベクトル記憶回路
1082 第2ベクトル記憶回路
1090 動きベクトル補填回路
1091 検出回路
1092 補填ベクトル選択回路
1093 送信回路
1094 受信回路
1095 第1候補選択回路
1096 第2候補選択回路
1097 選択実行回路
1098 第3候補選択回路
1099 伝播条件決定回路
1100 動き補償回路
1101 ブロック分割回路
1102 事前解析回路
1103 イントラ予測回路
1104 切替回路
1105 整数変換回路
1106 量子化回路
1107 逆量子化回路
1108 逆整数変換回路
1109 符号化回路
1116 フィルタ回路
1117 フレーム記憶回路
1118 減算回路
1119 加算回路
1200 動き補償回路

Claims (10)

  1. 符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する補填候補生成手段と、
    前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される補填ベクトルを、前記候補ベクトルから選択する動きベクトル補填手段と、
    を備える映像符号化装置。
  2. 前記動きベクトル補填手段は、前記継承動きベクトルと前記候補ベクトルとの距離に基づいて、前記補填ベクトルを選択する
    請求項1に記載の映像符号化装置。
  3. 前記動きベクトル補填手段は、前記候補ベクトルの大きさに基づいて、前記補填ベクトルを選択する
    請求項1又は2に記載の映像符号化装置。
  4. 前記動きベクトル補填手段は、前記候補ベクトルから異なる条件に従って複数の2次候補ベクトルを従って選択し、選択した前記複数の2次候補ベクトルから前記補填ベクトルを選択する
    請求項1乃至3のいずれかに記載の映像符号化装置。
  5. 符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成し、
    前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される補填ベクトルを、前記候補ベクトルから選択する、
    映像符号化方法。
  6. 前記継承動きベクトルと前記候補ベクトルとの距離に基づいて、前記補填ベクトルを選択する
    請求項5に記載の映像符号化方法。
  7. 前記候補ベクトルの大きさに基づいて、前記補填ベクトルを選択する
    請求項5又は6に記載の映像符号化方法。
  8. コンピュータに、
    符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する補填候補生成処理と、
    前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される補填ベクトルを、前記候補ベクトルから選択する動きベクトル補填処理と、
    を実行させる映像符号化プログラム。
  9. 前記動きベクトル補填処理は、前記継承動きベクトルと前記候補ベクトルとの距離に基づいて、前記補填ベクトルを選択する
    請求項8に記載の映像符号化プログラム。
  10. 前記動きベクトル補填処理は、前記候補ベクトルの大きさに基づいて、前記補填ベクトルを選択する
    請求項8又は9に記載の映像符号化プログラム。
JP2015243211A 2015-12-14 2015-12-14 映像符号化装置、映像符号化方法及び映像符号化プログラム Active JP6638366B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015243211A JP6638366B2 (ja) 2015-12-14 2015-12-14 映像符号化装置、映像符号化方法及び映像符号化プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015243211A JP6638366B2 (ja) 2015-12-14 2015-12-14 映像符号化装置、映像符号化方法及び映像符号化プログラム

Publications (2)

Publication Number Publication Date
JP2017112416A JP2017112416A (ja) 2017-06-22
JP6638366B2 true JP6638366B2 (ja) 2020-01-29

Family

ID=59079634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015243211A Active JP6638366B2 (ja) 2015-12-14 2015-12-14 映像符号化装置、映像符号化方法及び映像符号化プログラム

Country Status (1)

Country Link
JP (1) JP6638366B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116527935B (zh) * 2017-08-22 2025-11-07 松下电器(美国)知识产权公司 图像编码器、图像解码器及比特流生成装置
EP3813373A1 (en) * 2018-05-28 2021-04-28 InterDigital VC Holdings, Inc. Data dependency in coding/ decoding
KR20230162604A (ko) * 2021-03-29 2023-11-28 퀄컴 인코포레이티드 비-인접 후보들을 갖는 템플릿 매칭-기반 진보된 모션 벡터 예측자 (amvp) 후보 리스트 구성 및 amvp 인덱스 시그널링

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007166545A (ja) * 2005-12-16 2007-06-28 Canon Inc 動きベクトル検出装置及び方法
JP5579937B2 (ja) * 2010-10-06 2014-08-27 インテル コーポレイション 低複雑度の動きベクトルを導出するシステム及び方法
JP6596864B2 (ja) * 2015-03-23 2019-10-30 日本電気株式会社 映像符号化装置、映像符号化方法及び映像符号化プログラム

Also Published As

Publication number Publication date
JP2017112416A (ja) 2017-06-22

Similar Documents

Publication Publication Date Title
US10715827B2 (en) Multi-hypotheses merge mode
JP6553691B2 (ja) 候補リスト共有方法及びこのような方法を使用する装置
JP2022508177A (ja) イントラブロックコピーモードとインター予測ツールとの間の相互作用
JP2022503715A (ja) 適応動きベクトル解像度による動きベクトルの変更
JP2022531554A (ja) 対称動きベクトル差分符号化
JP2022507131A (ja) イントラブロックコピーのための履歴ベース動き候補リスト構築
US20130215968A1 (en) Video information encoding method and decoding method
JP2022532629A (ja) サブブロックマージモードでのシンタックスシグナリング
US20140286429A1 (en) Moving picture coding device, moving picture coding method, and moving picture coding program, and moving picture decoding device, moving picture decoding method, and moving picture decoding program
JP5835521B1 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP2017112416A (ja) 映像符号化装置、映像符号化方法及び映像符号化プログラム
JP2013121167A (ja) 画像符号化装置、画像符号化方法及び画像符号化プログラム
JP5725006B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5725009B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP6596864B2 (ja) 映像符号化装置、映像符号化方法及び映像符号化プログラム
JP6183505B2 (ja) 動画像符号化装置
JP5843040B1 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5874791B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5975146B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP5874793B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5874792B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5874790B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190917

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190911

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191209

R150 Certificate of patent or registration of utility model

Ref document number: 6638366

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150