JP6638366B2 - Video coding apparatus, video coding method, and video coding program - Google Patents
Video coding apparatus, video coding method, and video coding program Download PDFInfo
- 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
Links
Images
Description
本発明は映像符号化技術に関し、特に動きベクトル併合に基づく映像符号化技術に関する。 The present invention relates to a video coding technique, and more particularly to a video coding technique based on motion vector merging.
特許文献1には、ビデオをコード化する技術の一例が記載されている。特許文献1に記載されているビデオコード化装置は、2つの参照ピクチャに関する双方向予測、及び、1つの参照ピクチャに関する単方向予測のうちの1つを使用して、ビデオブロックをコード化する。
特許文献1の技術では、参照ピクチャが1つである場合、単方向予測のみが使用される。そのため、必ずしも精度よく予測を行えるとは限らない。
In the technique of
本発明の目的の1つは、参照ピクチャが1つである場合であっても、予測の精度を向上させることができる映像符号化装置などを提供することにある。 An object of the present invention is to provide a video encoding device and the like that can improve the accuracy of prediction even when there is one reference picture.
本発明の一態様に係る映像符号化装置は、符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する補填候補生成手段と、前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する動きベクトル補填手段と、を備える。 A video encoding device according to an aspect of the present invention includes a video encoding device that includes a code included in a pre-refinement vector selected as a reference for searching for a predicted motion vector that indicates prediction of motion of a block into which a picture included in an encoding target video is divided. The number of candidate interpolation vectors generated as candidate vectors including the pre-refinement vector of the block adjacent to the current block and the number of inherited motion vectors obtained as the pre-refinement vector of the current block are 1. And a motion vector compensation unit for selecting the compensation vector, which is compensated as the pre-refinement vector, from the candidate vectors.
本発明の一態様に係る映像符号化方法は、符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成し、前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する。 The video encoding method according to an aspect of the present invention provides a video encoding method that includes, among the pre-refinement vectors selected as a reference for searching for a predicted motion vector that indicates prediction of motion of a block into which a picture included in a video to be encoded is divided, Generating a candidate vector including the unrefined vector of the block adjacent to the block to be encoded, and performing the pre-refining if the number of inherited motion vectors obtained as the unrefined vector of the encoding target block is 1 The compensation vector to be supplemented as a vector is selected from the candidate vectors.
本発明の一態様に係る映像符号化プログラムは、コンピュータに、符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する補填候補生成処理と、前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する動きベクトル補填処理と、を実行させる。 A video encoding program according to an aspect of the present invention provides a computer with a pre-refining vector selected as a reference for searching for a predicted motion vector that represents prediction of motion of a block into which a picture included in an encoding target video is divided. Among them, the interpolation candidate generation processing for generating a candidate vector including the unrefined vector of the block adjacent to the encoding target block, and the number of inherited motion vectors obtained as the unrefined vector of the encoding target block are A motion vector compensation process of selecting, from the candidate vectors, the compensation vector compensated as the pre-refinement vector when the value is 1.
本発明には、参照ピクチャが1つである場合であっても、予測の精度を向上させることができるという効果がある。 The present invention has an effect that the accuracy of prediction can be improved even when there is one reference picture.
以下では、まず、本発明の関連技術である比較例について説明し、次に本発明の実施形態について説明する。なお、本発明の比較例及び実施形態に係る装置、ユニット、及び、回路等の構成を表すブロック図において、データの流れは矢印の方向に限定されない。 Hereinafter, first, a comparative example which is a related art of the present invention will be described, and then an embodiment of the present invention will be described. In the block diagrams illustrating the configurations of the devices, units, circuits, and the like according to the comparative example and the embodiment of the present invention, the data flow is not limited to the direction of the arrow.
[比較例]
まず、本発明の実施の形態と比較する対象としての比較例について、図面を参照して詳細に説明する。
[Comparative example]
First, a comparative example as an object to be compared with the embodiment of the present invention will be described in detail with reference to the drawings.
図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である場合について説明する。
FIG. 1 is a block diagram illustrating an example of an overall configuration of a video encoding device according to a comparative example of the present invention. The
図1を参照すると、本比較例の映像符号化装置1は、ブロック分割部101と、事前解析部102と、イントラ予測部103と、切替部104と、整数変換部105と、量子化部106と、逆量子化部107と、逆変換部108と、符号部109とを含む。映像符号化装置1は、さらに、フィルタ部116と、フレーム記憶部117と、減算部118と、加算部119とを含む。本比較例の映像符号化装置1は、さらに、動き補償部100を含む。
Referring to FIG. 1, a
ブロック分割部101は、デジタル化された映像のピクチャをブロックに分割する。イントラ予測部103は、イントラ予測を行う。切替部104は、後述される動き補償部100からの出力と、イントラ予部103からの出力とを切り替える。減算部118は、入力された映像と、切替部104による切替によって選択された、動き補償部100からの出力又はイントラ予測部103からの出力との差分を計算する。整数変換部105は、整数変換を行う。量子化部106は、量子化を行う。符号化部109は、符号化を行い、符号化によって得られるビットストリームを出力する。逆量子化部107は、逆量子化を行う。逆整数変換部108は、逆整数変換を行う。加算部119は、逆整数変換部108の出力と、切替部104による切替によって選択された、動き補償部100からの出力又はイントラ予測部103からの出力とを加算する。フィルタ部116は、デブロッキングフィルタなどによるフィルタリングを行う。フレームバッファ217は、符号化済みのピクチャを記憶する。以上の各要素は、上述の規格に応じた動作を行う。従って、以上の各要素についての詳細な説明を省略する。
The block dividing
事前解析部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に送信してもよい。
The
2つの動きベクトルに関する参照画像は、符号化対象画像より後のピクチャと前のピクチャの組み合わせであっても、符号化対象画像より前の2枚のピクチャの組み合わせであっても、符号化対象画像より後の2枚のピクチャの組み合わせであってもよい。以下の説明において、事前解析部102から動き補償部100に送信される動きベクトルを、継承動きベクトルと表記する。
The reference image for the two motion vectors may be a combination of a picture after the current picture and a previous picture, or a combination of two pictures before the current picture. A combination of two later pictures may be used. In the following description, a motion vector transmitted from the
事前解析部102と動き補償部100との間には、2つの継承動きベクトルを別々に送信できる、2つの通信経路が設けられていてもよい。後述されるように、事前解析部102及び動き補償部100は、回路として実装されていてもよい。その場合、事前解析部102及び動き補償部100の間には、上述の2つの通信経路として、2つの継承動きベクトルを別々に送信できる、2つの信号線が設けられていればよいそして、2つの継承動きベクトルは、異なる信号線によって、動き補償部100に送信されてもよい。事前解析部102は、1つの継承動きベクトルを動き補償部100に送信する場合、いずれか一方の信号線によって継承動きベクトルを送信すればよい。そして、事前解析部102は、継承動きベクトルの送信に使用する信号線の系統を表す信号を、動き補償部100に送信してもよい。例えば、2つの信号線を、第1の信号線及び第2の信号線と表記する。以下の説明では、第1の信号線を介して送信される継承動きベクトルを、「mMV0」と表記する。同様に、第2の信号線を介して送信される継承動きベクトルを「mMV1」と表記する。
Two communication paths capable of separately transmitting two inherited motion vectors may be provided between the
事前解析部102は、例えば、mMV0を送信し、mMV1を送信しない場合、mMV0を送信し、mMV1を送信しないことを表す信号を、動き補償部100に送信する。事前解析部102は、例えば、mMV0を送信せず、mMV1を送信する場合、mMV0を送信せず、mMV1を送信することを表す信号を、動き補償部100に送信する。事前解析部102は、例えば、mMV0とmMV1とを送信する場合、mMV0とmMV1とを送信することを表す信号を、動き補償部100に送信する。以下の説明では、送信される継承動きベクトルを表す信号を、「mDir」(または信号「mDir」)と表記する。さらに、信号mDirを、「予測方向」とも表記する。本発明の比較例及び後述の各実施形態の説明では、信号mDirの、mMV0を送信し、mMV1を送信しないことを表す値を、「L0」とも表記する。信号mDirの、mMV0を送信せず、mMV1を送信することを表す値を、に「L1」とも表記する。さらに、信号mDirの、mMV0とmMV1とを送信することを表す値を、「Bi」とも表記する。
For example, when the
一般に、L0及びL1は、それぞれ、Bピクチャにおける2つの参照画像リストを指す。上述の継承動きベクトルmMV0は、例えば、参照画像リストL0の参照画像における動きベクトルであってもよい。継承動きベクトルmMV1は、例えば、参照画像リストL1の参照画像における動きベクトルであってもよい。 In general, L0 and L1 each point to two reference picture lists in a B picture. The above-mentioned inherited motion vector mMV 0 may be, for example, a motion vector in the reference image of the reference image list L0. Inheritance motion vector MMV 1 may be, for example, a motion vector in the reference image of the reference image list L1.
図2は、本比較例の映像符号化装置1の動き補償部100の構成の例を模式的に表すブロック図である。図2を参照すると、動き補償部100は、動きベクトル補填部10と、対象選択部20と、リファイン部30と、双予測生成部40と、予測選択部50と、補填候補生成部60と、モード決定部70とを含む。リファイン部30は、図2においては明示されていないが、図1に示すフレーム記憶部117に格納されている、符号化済みのピクチャを読み出すことができる。事前解析部102から送信された動きベクトルは、動きベクトル補填部10及び対象選択部20に入力される。事前解析部102から送信されたピクチャの種類PicTypeは、動きベクトル補填部10に入力される。
FIG. 2 is a block diagram schematically illustrating an example of the configuration of the
補填候補生成部60は、符号化対象ブロックの周辺のブロックにおける予測動きベクトル、及び、符号化対象ブロックが含まれるピクチャの直前ピクチャの予測動きベクトルを生成する。補填候補生成部60は、生成した動きベクトルを、動きベクトル補填部10に送信する。
The compensation
モード決定部70は、後述される補填モードを表す信号を、動きベクトル補填部10に送信する。補填モードは、あらかじめ実験的に定められていてもよい。その場合、モード決定部70は、あらかじめ実験的に定められている補填モードを表す信号を、動きベクトル補填部10に送信してもよい。補填モードは、ピクチャのタイプ毎に、あらかじめ決められていてもよい。その場合、モード決定部70は、符号化対象ブロックが含まれるピクチャのタイプについて決められている補填モードを表す信号を、動きベクトル補填部10に送信してもよい。補填モードは、符号化処理を実行中に、動的に決められてもよい。その場合、例えばモード決定部70が、例えば、ピクチャと、そのピクチャが符号化され、復号された画像とを比較することによって、符号化の誤差を評価してもよい。そしてモード決定部70が、誤差の評価の結果を使用して、誤差が減少するように補填モードを動的に選択してもよい。なお、図2において、モード決定部70がピクチャ及び複合された画像との比較を行う際のデータの流れは描かれていない。
The
動きベクトル補填部10は、補填候補生成部60から受信した動きベクトルから、受信した補填モードにおける選択方法に従って、補填動きベクトルを選択する。補填モードとその選択方法については、後で詳細に説明する。動きベクトル補填部10は、継承動きベクトルmMV0及び継承動きベクトルmMV0のいずれか一方が入力されない場合補填動きベクトルを選択すればよい。
The motion
対象選択部20は、継承動きベクトルmMV0が入力されない場合、継承動きベクトルmMV0の代わりに、補填動きベクトルをリファイン部30に入力する。対象選択部20は、継承動きベクトルmMV1が入力されない場合、継承動きベクトルmMV1の代わりに、補填動きベクトルをリファイン部30に入力する。
When the inherited motion vector mMV 0 is not input, the
リファイン部30は、入力された動きベクトルによって参照される参照画像の、その動きベクトルに基づく所定の範囲において、符号化対象ブロックの符号化コストが最小になる領域(すなわち予測画像)を検出する。リファイン部30は、符号化対象ブロックの位置を示す座標から、符号化対象ブロックの符号化コストが最小になる領域の位置を示す座標へのベクトルを、予測ベクトルとして出力する。リファイン部30は、さらに、符号化対象ブロックの符号化コストが最小になる領域の画像を、予測信号として出力する。リファイン部30は、入力された2つの動きベクトルの各々について、符号化対象ブロックの符号化コストが最小になる領域を検出すればよい。そして、リファイン部30は、予測ベクトル(rMV0及びrMV1)と予測信号(pred(rMV0)及びpred(rMV1))とを出力すればよい。リファイン部30は、例えば、予測ベクトル(rMV0及びrMV1)を、双予測生成部40に出力すればよい。リファイン部30は、例えば、予測ベクトル(rMV0及びrMV1)と予測信号(pred(rMV0)及びpred(rMV1))とを、予測選択部50に出力すればよい。
The
本比較例では、事前解析部102が生成した2つの継承動きベクトルが存在する場合、対象選択部20は、それらの2つの継承動きベクトル(すなわち継承動きベクトルmMV0及び継承動きベクトルmMV1)を、リファイン部30に送信する。事前解析部102が生成した継承動きベクトルの数が1つである場合、対象選択部20は、補填動きベクトルと、継承動きベクトルmMV0及び継承動きベクトルmMV1のいずれか一方とを、リファイン部30に送信する。以下の説明において、対象選択部20がリファイン部30に送信する2つの動きベクトルを、「リファイン前動きベクトル」とも表記する。
In this comparative example, when there are two inherited motion vectors generated by the
上述のように、継承動きベクトルの数は、必ずしも2ではない。しかし、継承動きベクトルの数が1つである場合、動きベクトル補填部10が、補填動きベクトルを生成する。そして、対象選択部20は、継承動きベクトルと、生成された補填動きベクトルとを、2つの継承動きベクトルとして、リファイン部30に送信する。リファイン部30は、受信した継承動きベクトルに基づいて、2つの予測動きベクトルを生成する。従って、リファイン部30は、継承動きベクトルの数が1つであっても、双予測生成部40に2つの予測ベクトルが送信する。
As described above, the number of inherited motion vectors is not necessarily two. However, when the number of inherited motion vectors is one, the motion
双予測生成部40は、予測動きベクトルrMV0及びrMV1を受信し、受信した予測動きベクトルrMV0及びrMV1に基づく双予測を生成する。双予測は、動きベクトルrMV0が示す領域の画像、及び、rMV1が示す領域の画像の平均画像である。双予測生成部40は、生成した双予測を表す双予測信号bipred(rMV0,rMV1)を予測選択部50に出力する。
The
予測選択部50は、リファイン部30から、2つの予測信号と、その予測信号が表す予測画像を示す予測動きベクトルとを受信する。予測選択部50は、さらに、双予測生成部40から、双予測を表す双予測信号受信する。以上のように、継承動きベクトルの数が1つであっても、予測選択部50は、2つの予測信号及び双予測信号を受信する。
The
予測選択部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を表す値示す信号)を出力する。
The
以下では、本比較例の映像符号化装置1の動き補償部100が含む各部について、さらに詳しく説明する。
Hereinafter, each unit included in the
図3は、本比較例の映像符号化装置1の動き補償部100の構成の例を表すブロック図である。図3に示す図は、動き補償部100を回路による実装の例を模式的に表す。
FIG. 3 is a block diagram illustrating an example of a configuration of the
本実装例の動き補償部100は、動きベクトル補填部10と、対象選択部20と、リファイン部30と、双予測生成部40と、予測選択部50と、補填候補生成部60と、モード決定部70とを含む。対象選択部20は、第1対象選択部21と、第2対象選択部22とを含む。リファイン部30は、第1リファイン部31と、第2リファイン部32とを含む。
The
補填候補生成部60は、周辺ベクトルを受信し、受信した周辺ベクトルから予測動きベクトルを選択する。周辺ベクトルは、符号化対象ブロックの隣接ブロックの予測動きベクトル、又は、符号化対象ブロックの直前ピクチャのブロックの予測動きベクトルである。補填候補生成部60が予測動きベクトルを選択する方法は、映像符号化装置1が行う映像符号化の符号化方式における選択方法であってもよい。補填候補生成部60が予測動きベクトルを選択する方法は、他のさまざまな方法のいずれかであってもよい。補填候補生成部60は、選択した予測動きベクトルを、動きベクトル補填部10に送信する。
The compensation
図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に送信してもよい。
FIG. 5 is a diagram schematically illustrating a position of a block from which a motion vector is selected by the compensation
モード決定部70は、後述される、動きベクトルの補填モードを決定し、決定された補填モードを示す信号を、動きベクトル補填部10に送信する。
The
動きベクトル補填部10は、信号mDirの値と、補填モード(例えば図3におけるcMode)とに基づいて、補填候補生成部60から受信した、AMVP予測動きベクトル又は時間予測動きベクトルから、補填ベクトルcMVを選択する。補填モードcModeは、例えば、モード決定部70から入力される。補填モードcModeは、例えば、あらかじめ実験的に定められ、動き補償部100の外部にある記憶部(図示されない)に格納されていてもよい。動きベクトル補填部10は、動き補償部100の外部にあるその記憶部から補填モードcModeを読み出してもよい。動きベクトル補填部10の出力は、対象選択部20に含まれる、第1対象選択部21の2つの入力端子の一方と、第2対象選択部22の2つの入力端子の一方とに接続される。
Based on the value of the signal mDir and the compensation mode (for example, cMode in FIG. 3), the motion
第1対象選択部21の2つの入力端子の一方は、動きベクトル補填部10に接続されている。第1対象選択部21の2つの入力端子の他方は、動きベクトルmMV0が入力される信号線に接続されている。さらに、第1対象選択部21の制御端子は、信号mDirに接続される。第1対象選択部21は、信号mDirの値に応じて、出力端子に接続される入力端子を、動きベクトルmMV0が入力される信号線に接続されている入力端子と、動きベクトル補填部10に接続されている信号線との間で切り替える。具体的には、信号mDirの値が、上述のL0又はBiである場合、第1対象選択部21は、動きベクトルmMV0が入力される信号線に接続されている入力端子と、出力端子との間を接続する。信号mDirの値が上述のL1である場合、第1対象選択部21は、動きベクトル補填部10に接続されている入力端子と、出力端子との間を接続する。第1対象選択部21の出力端子は、リファイン部30の第1リファイン部31に接続されている。
One of the two input terminals of the first target selection unit 21 is connected to the motion
第2対象選択部22の2つの入力端子の一方は、動きベクトル補填部10に接続されている。第2対象選択部22の2つの入力端子の他方は、動きベクトルmMV1が入力される信号線に接続されている。さらに、第2対象選択部22の制御端子は、信号mDirに接続される。第2対象選択部22は、信号mDirの値に応じて、出力端子に接続される入力端子を、動きベクトルmMV0が入力される信号線に接続されている入力端子と、動きベクトル補填部10に接続されている信号線との間で切り替える。具体的には、信号mDirの値が、上述のL1又はBiである場合、第1対象選択部21は、動きベクトルmMV1が入力される信号線に接続されている入力端子と、出力端子との間を接続する。信号mDirの値が上述のL0である場合、第2対象選択部22は、動きベクトル補填部10に接続されている入力端子と、出力端子との間を接続する。第2対象選択部22の出力端子は、リファイン部30の第2リファイン部32に接続されている。
One of the two input terminals of the second target selection unit 22 is connected to the motion
第1リファイン部31は、入力された動きベクトルmMV0によって参照される参照画像の、動きベクトルmMV0に基づく所定の範囲において、符号化対象ブロックの符号化コストが最小になる領域(すなわち予測画像)を示す点を検出する。符号化コストは、既存の符号化コストから選択された符号化コストであればよい。符号化コストは、例えば、符号化対象ブロックと予測画像との誤差の絶対値の和(SAD;Sum of Absolute Difference)と、動きベクトルの重み付きビット量との和であってもよい。動きベクトルmMV0に基づく所定の範囲は、例えば、動きベクトルmMV0が示す位置を中心とする所定半径の円の内部であってもよい。動きベクトルmMV0に基づく所定の範囲は、例えば、動きベクトルmMV0が示す位置を中心とする所定形状の図形の内部であってもよい。動きベクトルmMV0に基づく所定の範囲は、例えば、動きベクトルmMV0が参照する参照画像全体であってもよい。第1リファイン部31は、符号化対象ブロックが含まれるピクチャにおける符号化対象ブロックの座標から、その符号化対象コストが最小になる領域を示す点の座標へのベクトルを、予測動きベクトルrMV0として検出する。第1リファイン部31は、検出した符号化対象コストが最小になる領域の画像を、符号化対象領域の予測を表す予測信号「pred(rMV0)」として、予測選択部50に出力する。なお、第1リファイン部31は、信号mDirがL1である場合、すなわち、継承動きベクトルmMV0が入力されない場合、動作しない。
The
第2リファイン部32は、入力された動きベクトルmMV1によって参照される参照画像の、動きベクトルmMV1に基づく所定の範囲において、符号化対象ブロックの符号化コストが最小になる領域(すなわち予測画像)を示す点を検出する。動きベクトルmMV1に基づく所定の範囲は、例えば、動きベクトルmMV1が示す位置を中心とする所定半径の円の内部であってもよい。動きベクトルmMV1に基づく所定の範囲は、例えば、動きベクトルmMV1が示す位置を中心とする所定形状の図形の内部であってもよい。動きベクトルmMV1に基づく所定の範囲は、例えば、動きベクトルmMV1が参照する参照画像全体であってもよい。第2リファイン部32は、符号化対象ブロックが含まれるピクチャにおける符号化対象ブロックの座標から、その符号化対象コストが最小になる領域を示す点の座標へのベクトルを、予測動きベクトルrMV1として検出する。第2リファイン部32は、検出した符号化対象コストが最小になる領域の画像を、符号化対象領域の予測を表す予測信号「pred(rMV1)」として、予測選択部50に出力する。なお、第2リファイン部32は、信号mDirがL2である場合、すなわち、継承動きベクトルmMV1が入力されない場合、動作しない。
双予測生成部40は、信号mDirの値がBiである場合、すなわち、継承動きベクトルmMV0及びmMV1が入力される場合、継承動きベクトルmMV0及びmMV1に基づく双予測を生成する。双予測生成部40は、生成した双予測を表す双予測信号bipred(rMV0,rMV1)を予測選択部50に出力する。次の説明において、入力された継承動きベクトルmMV0によって参照される参照画像の、継承動きベクトルmMV0に基づく所定の範囲から選択された点が示す領域、第1参照領域と表記する。入力された継承動きベクトルmMV1によって参照される参照画像の、継承動きベクトルmMV1に基づく所定の範囲から選択された点が示す領域、第2参照領域と表記する。双予測生成部40は、符号化対象ブロックの符号化コストが最小である、第1参照領域及び第2参照領域の平均画像のうち、上述の符号化コストが最小である平均画像を、上述の双予測として検出する。そして、双予測生成部40は、符号化コストが最小である平均画像が算出される、第1参照領域及び第2参照領域を特定する。さらに、双予測生成部40は、符号化対象ブロックを示す座標から、特定された第1参照領域を示す座標への動きベクトルを、予測動きベクトルrMV0とする。同様に、双予測生成部40は、符号化対象ブロックを示す座標から、特定された第2参照領域を示す座標への動きベクトルを、予測動きベクトルrMV1とする。双予測生成部40は、継承動きベクトルmMV0又は継承動きベクトルmMV1が入力されない場合、動作しない。
When the value of the signal mDir is Bi, that is, when the inherited motion vectors mMV 0 and mMV 1 are input, the
なお、継承動きベクトルmMV0及びmMV1のいずれか一方の参照画像が、符号化対象画像より時間的に前のピクチャであり、他方の参照画像が符号化対象画像より時間的に前のピクチャであってもよい。その場合、上述の、符号化対象ブロックの符号化コストが最小である、第1参照領域及び第2参照領域の平均画像のうち、符号化コストが最小である平均画像は、双方向予測と呼ばれる。言い換えると、双予測生成部40は、双予測ではなく双方向予測を導出し、導出した双方向予測を出力してもよい。
Note that one of the inherited motion vectors mMV0 and mMV1 is a picture temporally earlier than the encoding target picture, and the other reference picture is a temporally preceding picture than the encoding target picture. Is also good. In this case, among the average images in the first reference region and the second reference region in which the encoding cost of the encoding target block is the minimum, the average image with the minimum encoding cost is called bidirectional prediction. . In other words, the
予測選択部50は、予測信号pred(rMV0)が表す予測画像、予測信号pred(rMV1)が表す予測画像、及び双予測信号bipred(rMV0,rMV1)が表す予測画像のうち、符号化対象コストが最も小さくなる予測画像を特定する。そして、特定した予測画像を表す予測信号predと、その予測信号predが表す予測画像を示す予測動きベクトルとを出力する。予測選択部50は、さらに、信号mDirを信号rDirとして出力する。以下の説明では、信号rDirも、「予測方向」と表記することがある。選択された予測画像を表す信号が予測信号pred(rMV0)である場合、予測選択部50は、予測動きベクトルとして、rMV0を出力する。選択された予測画像を表す信号が予測信号pred(rMV1)である場合、予測選択部50は、予測動きベクトルとして、rMV1を出力する。択された予測画像を表す信号が双予測信号bipred(rMV0,rMV1)である場合、予測選択部50は、予測動きベクトルとして、rMV0とrMV1とを出力する。
The
動き補償部100が以上の構成を備えることによって、継承動きベクトルmMV0が第1リファイン部31に入力されない場合、補填動きベクトルcMVが第1リファイン部31に入力される。さらに、継承動きベクトルmMV1が第2リファイン部32に入力されない場合、補填動きベクトルcMVが第2リファイン部32に入力される。
With the above configuration of the
本比較例では、第1リファイン部31及び第2リファイン部32に、2つのベクトルが入力される。第1リファイン部31及び第2リファイン部32は、符号化対象ブロックが含まれるピクチャが、Bピクチャであっても、Pピクチャであっても、休止状態にならずに動作する。また、本比較例では、双予測生成部40は、符号化対象ブロックが含まれるピクチャがBピクチャである場合、休止状態にならずに動作する。本比較例では、双予測生成部40は、符号化対象ブロックが含まれるピクチャがPピクチャである場合、休止状態になる
次に、本比較例の動きベクトル補填部10について、図面を参照して詳細に説明する。
In this comparative example, two vectors are input to the
図6は、本比較例の動きベクトル補填部10の構成の例を模式的に表すブロック図である。図6を参照すると、動きベクトル補填部10は、検出部11と、補填ベクトル選択部12と、送信部13と、受信部14とを含む。
FIG. 6 is a block diagram schematically illustrating an example of the configuration of the motion
検出部11は、リファイン部30に入力される継承動きベクトルが2つであるか1つであるかを検出する。例えば、検出部11は、事前解析部102から、信号mDirを受信すればよい。そして、信号mDirの値がL0又はL1である場合、検出部11は、リファイン部30に入力される継承動きベクトルが1つであることを検出すればよい。信号mDirの値がBiである場合、検出部11は、リファイン部30に入力される継承動きベクトルが2つであることを検出すればよい。検出部11は、ピクチャの種類を表す信号であるPicTypeを受信してもよい。
The detection unit 11 detects whether the number of inherited motion vectors input to the refine
受信部14は、事前解析部102から、継承動きベクトルmMV0及び継承動きベクトルmMV1の少なくとも一方を受信する。受信部14は、さらに、モード決定部70から、補填モードcModeを受信する。受信部14は、さらに、補填候補生成部60から、例えば、選択された2つの予測動きベクトル(AMVP00、AMVP01、AMVP10及びAMVP11)と、時間予測動きベクトル(時間予測動きベクトル0及び時間予測動きベクトル0)とを受信する。
Receiving
補填ベクトル選択部12は、例えば入力される継承動きベクトルが1つである場合、補填モードcModeにおける選択方法に従って、予測動きベクトル及び時間予測動きベクトルから、補填動きベクトルを選択する。その際、補填ベクトル選択部12は、入力された継承動きベクトル(すなわち、継承動きベクトルmMV0又は継承動きベクトルmMV1)に基づいて、補填動きベクトルを選択してもよい。補填モードとその補填モードにおける選択方法の例については、後で詳細に説明する。
When, for example, one input succession motion vector is input, the compensation
以下では、動きベクトル補填部10について、さらに詳細に説明する。
Hereinafter, the motion
図4は、本比較例の動きベクトル補填部10の構成の例を模式的に表すブロック図である。図4は、動きベクトル補填部10の回路による実装の例に基づく構成を現す。図4を参照すると、動きベクトル補填部10は、第1候補選択部15と、第2候補選択部16と、選択実行部17とを含む。
FIG. 4 is a block diagram schematically illustrating an example of the configuration of the motion
前述のように、補填候補生成部60から、AMVP予測動きベクトル、時間予測動きベクトルの少なくともいずれかと、ゼロベクトルとが、動きベクトル補填部10に送信される。上述のように、AMVP予測動きベクトルは、AMVP00、AMVP01、AMVP10及びAMVP11である。時間予測動きベクトルは、時間予測動きベクトル0及び時間予測動きベクトル1である。以下の説明では、補填候補生成部60から動きベクトル補填部10に送信される動きベクトルの組を、「セットA」と表記する。セットAは、例えば、AMVP00、AMVP01、AMVP10、AMVP11、時間予測動きベクトル0、時間予測動きベクトル1及びゼロベクトルを含む。
As described above, the compensation
セットAに含まれるベクトルのうち、L0についてのAMVP予測動きベクトル(AMVP00及びAMVP01)及び時間予測動きベクトル(時間予測動きベクトル0)と、ゼロベクトルとが、第1候補選択部15に入力される。第1候補選択部15に入力されるベクトルの組を「セット0」と表記する。セット0は、例えば、AMVP00、AMVP01、時間予測動きベクトル0及びゼロベクトルを含む。
Among the vectors included in the set A, the AMVP predicted motion vector (AMVP 00 and AMVP 01 ) and the temporal predicted motion vector (temporally predicted motion vector 0) for L0 and the zero vector are input to the first
セットAに含まれるベクトルのうち、L1についてのAMVP予測動きベクトル(AMVP10及びAMVP11)及び時間予測動きベクトル(時間予測動きベクトル1)と、ゼロベクトルとが、第2候補選択部16に入力される。第2候補選択部16に入力されるベクトルの組を「セット1」と表記する。セット1は、例えば、AMVP10、AMVP11、時間予測動きベクトル1及びゼロベクトルを含む。
Among the vectors included in the set A, the AMVP predicted motion vector (AMVP 10 and AMVP 11 ) and the temporal predicted motion vector (temporally predicted motion vector 1) for L1 and the zero vector are input to the second
また、動きベクトル補填部10が受信した継承動きベクトルmMV0は、第1候補選択部15に入力される。動きベクトル補填部10が受信した継承動きベクトルmMV1は、第2候補選択部16に入力される。動きベクトル補填部10が受信した補填モードcModeは、第1候補選択部15、第2候補選択部16、及び、選択実行部17に入力される。
In addition, the inherited motion vector mMV0 received by the motion
動きベクトル補填部10の、動きベクトル補填部10に入力された、セットAと、継承動きベクトルmMV0及びmMV1と、補填モードcModeとを受信する部分(例えばインタフェースを含む)は、上述の受信部14に相当する。セットAの少なくとも一部であるセット0と、継承動きベクトルmMV0と、補填モードcModeとを、第1候補選択部15に送信する部分も、上述の受信部14に相当する。セットAの少なくとも一部であるセット1と、継承動きベクトルmMV1と、補填モードcModeとを、第2候補選択部16に送信する部分が、上述の受信部14に相当する。補填モードcModeを選択実行部17に送信する部分も、上述の受信部14に相当する。
The portion (including the interface, for example) of the motion
言い換えると、受信部14が、セットA、継承動きベクトル及び補填モードを受信する。そして、受信部14は、セットAに含まれるベクトルのうちセット0に含まれるベクトルと、継承動きベクトルmMV0と、補填モードcModeとを、第1候補選択部15に入力する。受信部14は、さらに、セットAに含まれるベクトルのうちセット1に含まれるベクトルと、継承動きベクトルmMV1と、補填モードcModeとを、第2候補選択部16に入力する。さらに、受信部14は、補填モードcModeを、選択実行部17に送信する。
In other words, the receiving
また、動きベクトル補填部10が受信したmDir及びPicType(すなわち、mDirを示す信号及びPicTypeを示す信号)は、選択実行部17に入力される。選択実行部17は、入力されたそれらの信号が示す、mDirの値及びPicTypeの値(以下、入力されたmDirの値及びPicTypeの値とも表記)を検出する。
The mDir and PicType (that is, the signal indicating mDir and the signal indicating PicType) received by the motion
動きベクトル補填部10の、動きベクトル補填部10に入力されたmDirを示す信号及びPicTypeを示す信号を受信し、それらの信号を選択実行部17に入力する部分は、上述の検出部11に相当する。さらに、選択実行部17の、選択実行部17に入力されたそれらの信号が示す、mDirの値及びPicTypeの値を検出する部分も、上述の検出部11に相当する。
The part of the motion
第1候補選択部15は、セット0、mMV0、及び、cModeを受信する。そして、第1候補選択部15は、受信したcMode、又は、mMV0及びcModeに基づいて、受信したセット0に含まれるベクトルから、補填動きベクトルcMV0を選択する。第1候補選択部15は、選択したcMV0を、選択実行部17に送信する。
The first
第2候補選択部16は、セット1、mMV1、及び、cModeを受信する。そして、第2候補選択部16は、受信したcMode、又は、mMV1及びcModeに基づいて、受信したセット1に含まれるベクトルから補填動きベクトルcMV1を選択する。第2候補選択部16は、選択したcMV1を、選択実行部17に送信する。
The second
選択実行部17は、mDirの値、PicTypeの値、及び、cModeに基づいて、補填動きベクトルcMV0又は補填動きベクトルcMV1を、補填動きベクトルcMVとして選択する。選択実行部17は、選択した補填動きベクトルcMVを出力する。言い換えると、選択実行部17は、補填動きベクトルcMVを対象選択部20に送信する。このように、動きベクトル補填部10が、選択された補填動きベクトルcMVを出力される。
The
動きベクトル補填部10の、補填動きベクトルcMVを出力する部分(例えばインタフェースを含む)が、上述の送信部13に相当する。言い換えると、送信部13は、補填動きベクトルcMVを出力する。さらに言い換えると、送信部13は、補填動きベクトルcMVを、対象選択部20に送信する。
The portion (for example, including the interface) of the motion
以上の、第1候補選択部15、第2候補選択部16、及び、選択実行部17(上述の検出部11の部分を除く)が、補填ベクトル選択部12に相当する。第1候補選択部15、第2候補選択部16、及び、選択実行部17による、補填動きベクトルcMV0、cMV1、及び、cMVの選択方法について、以下で詳細に説明する。以下の説明における「補填モード0」〜「補填モード7」の値として、異なる値があらかじめ割り当てられていればよい。
The first
(1)補填モード0
補填ベクトル選択部12は、補填ベクトルを生成しなくてもよい。本比較例では、補填ベクトル選択部12は、補填モードcModeが「補填モード0」である場合に、補填ベクトルを生成しない。
(1) Compensation mode 0
The compensation
以下、さらに詳しく説明する。補填モードcModeが「補填モード0」である場合、第1候補選択部15は、補填ベクトルcMV0を選択しなくてよい。第1候補選択部15は、補填ベクトルcMV0を選択実行部17に送信しなくてよい。第2候補選択部16は、補填ベクトルcMV1を選択しなくてよい。第2候補選択部16は、補填ベクトルcMV1を選択実行部17に送信しなくてよい。選択実行部17は、cMVを選択しなくてよい。選択実行部17は、cMVを出力しなくてよい。
The details will be described below. When the compensation mode cMode is “compensation mode 0”, the first
(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予測動きベクトルを選択すればよい。
(2)
The compensation
以下、さらに詳しく説明する。補填モード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を送信しなくてよい。
The details will be described below. If the compensation mode cMode is “
補填モード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を送信しなくてよい。
When the compensation mode cMode is “
選択実行部17は、予測方向mDirの値に基づいて、補填ベクトルcMV0又は補填ベクトルcMV1を、補填ベクトルcMVとして選択すればよい。
The
例えば、予測方向mDirがL0である場合、継承動きベクトルmMV0は入力されるが、継承動きベクトルmMV1は入力されない。この場合、継承動きベクトルmMV1が第2候補選択部16に入力されない。従って、第2候補選択部16は、補填ベクトルcMV1を出力しない。また、継承動きベクトルmMV0は第1候補選択部15に入力される。第1候補選択部15は、上述のように継承動きベクトルmMV0をもとにcMV0を選択し、選択したcMV0を出力すればよい。予測方向mDirがL0である場合、選択実行部17は、補填ベクトルcMVとして、補填ベクトルcMV0を選択すればよい。
For example, when the prediction direction mDir is L0, the inherited motion vector mMV0 is input, but the inherited motion vector mMV1 is not input. In this case, the inherited motion vector mMV1 is not input to the second
例えば、予測方向mDirがL1である場合、継承動きベクトルmMV1は入力されるが、継承動きベクトルmMV0は入力されない。この場合、継承動きベクトルmMV0が第1候補選択部15に入力されない。従って、第1候補選択部15は、補填ベクトルcMV0を出力しない。また、継承動きベクトルmMV1は第2候補選択部16に入力される。そして、第2候補選択部16は、上述のように継承動きベクトルmMV1をもとに補填ベクトルcMV1を選択し、選択した補填ベクトルcMV1を出力すればよい。予測方向mDirがL1である場合、選択実行部17は、補填ベクトルcMVとして、補填ベクトルcMV1を選択すればよい。
For example, when the prediction direction mDir is L1, the inherited motion vector mMV1 is input, but the inherited motion vector mMV0 is not input. In this case, the inherited motion vector mMV0 is not input to the first
予測方向mDirがBiである場合、継承動きベクトルの数は2である。この場合、選択実行部17は、補填ベクトルcMVを選択しなくてよい。選択実行部17は、補填ベクトルcMVを出力しなくてよい。
When the prediction direction mDir is Bi, the number of inherited motion vectors is two. In this case, the
(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予測動きベクトルを選択すればよい。
(3)
The compensation
以下、さらに詳しく説明する。補填モード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を送信しなくてよい。
The details will be described below. When the compensation mode cMode is “
補填モード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を送信しなくてよい。
When the compensation mode cMode is “
選択実行部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を出力しなくてよい。
The
(4)補填モード3
補填ベクトル選択部12は、補填ベクトルとして、ゼロベクトルを選択してもよい。本比較例では、補填ベクトル選択部12は、補填モードcModeが「補填モード3」である場合に、ゼロベクトルを、補填ベクトルとして選択する。
(4) Compensation mode 3
The compensation
以下、さらに詳しく説明する。補填モード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に送信すればよい。
The details will be described below. When the compensation mode cMode is “compensation mode 3”, one of the first
第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として選択すればよい。
Of the first
以上で説明した、補填モード0から補填モード3までの補填モードは、符号化対象ブロックが含まれるピクチャが、Bピクチャであっても、Pピクチャであっても、選択可能である。 The above-described compensation modes from the compensation mode 0 to the compensation mode 3 can be selected whether the picture including the encoding target block is a B picture or a P picture.
以下で説明する補填モード4から補填モード7までの補填モードは、符号化対象ブロックが含まれるピクチャが、Bピクチャである場合に選択可能である。入力された補填モードcModeが補填モード4から補填モード7であり、入力されたPicTypeがPピクチャである場合、動きベクトル補填部10は、補填モード0から補填モード3までのいずれかの補填モードで動作してもよい。その場合の補填モードは、あらかじめ定められていればよい。その場合、例えば、選択実行部17が、あらかじめ定められている補填モードを、第1候補選択部15及び第2の候補選択部16に送信してもよい。この場合のデータ(例えば信号)の流れは、図示されていない。この場合、第1候補選択部15及び第2候補選択部16は、入力された補填モードcModeが示す補填モードではなく、選択実行部17から受信した補填モードで動作すればよい。補填モード4から補填モード7までの補填モードでは、補填ベクトルは、継承動きベクトルと異なる予測方向における動きベクトルとして補填される。
The compensation modes from compensation mode 4 to compensation mode 7 described below can be selected when the picture including the current block is a B picture. When the input compensation mode cMode is the compensation mode 4 to the compensation mode 7 and the input PicType is a P picture, the motion
(5)補填モード4
補填ベクトル選択部12は、補填ベクトルとして、インデックスが0であるAMVP予測動きベクトルを選択してもよい。本比較例では、補填モードcModeが「補填モード4」である場合に、補填ベクトル選択部12は、補填ベクトルとして、インデックスが0であるAMVP予測動きベクトルを選択すればよい。
(5) Compensation mode 4
The compensation
本比較例の補填候補生成部60は、それぞれの予測方向について、2つのAMVP予測動きベクトルの一方に、インデックスとして0を付与し、他方に、インデックスとして1を付与すればよい。具体的には、補填候補生成部60は、例えば、AMVP00及びAMVP10にインデックスとして0を付与し、AMVP01及びAMVP11に、インデックスとして1を付与すればよい。補填候補生成部60は、インデックスが付与されたAMVP予測動きベクトルを、動きベクトル補填部10に送信すればよい。
The compensation
本比較例では、補填ベクトル選択部12は、補填モードが「補填モード4」である場合、補填ベクトルとして、インデックスが0である2つのAMVP予測動きベクトルのうち、例えば、継承動きベクトルが無い予測方向のAMVP予測動きベクトルを選択すればよい。補填ベクトル選択部12は、例えば、mDirがL0である場合、付与されているインデックスが0である、L1向けのAMVP予測動きベクトル(すなわちAMVP10)を選択すればよい。補填ベクトル選択部12は、例えば、mDirがL1である場合、付与されているインデックスが0である、L0向けのAMVP予測動きベクトル(すなわちAMVP00)を選択すればよい。
In this comparative example, when the compensation mode is “compensation mode 4”, the compensation
以下、さらに詳しく説明する。補填モードcModeが「補填モード4」である場合、第1候補選択部15は、付与されているインデックスが0であるL0向けのAMVP予測動きベクトル(すなわちAMVP00)をcMV0として選択する。そして、第1候補選択部15は、cMV0を選択実行部17に送信する。第2候補選択部16は、付与されているインデックスが0であるL1向けのAMVP予測動きベクトル(すなわちAMVP10)をcMV1として選択する。そして、第2候補選択部16は、cMV1を選択実行部17に送信する。
The details will be described below. When the compensation mode cMode is “compensation mode 4”, the first
選択実行部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に送信すればよい。
The
(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)を選択すればよい。
(6) Compensation mode 5
The compensation
以下、さらに詳しく説明する。補填モードcModeが「補填モード5」である場合、第1候補選択部15は、付与されているインデックスが1であるL0向けのAMVP予測動きベクトル(すなわちAMVP01)をcMV0として選択する。そして、第1候補選択部15は、cMV0を選択実行部17に送信する。この場合、第2候補選択部16は、付与されているインデックスが1であるL1向けのAMVP予測動きベクトル(すなわちAMVP11)をcMV1として選択する。そして、第2候補選択部16は、cMV1を選択実行部17に送信する。
The details will be described below. When the compensation mode cMode is “compensation mode 5”, the first
選択実行部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に送信すればよい。
The
(7)補填モード6
補填ベクトル選択部12は、補填ベクトルとして、ゼロベクトルを選択してもよい。本比較例では、補填ベクトル選択部12は、補填モードcModeが「補填モード6」である場合に、補填ベクトルとして、ゼロベクトルを選択する。
(7) Compensation mode 6
The compensation
以下、さらに詳しく説明する。補填モードcModeが「補填モード6」である場合、第1候補選択部15は、ゼロベクトルをcMV0として選択する。第1候補選択部15は、cMV0として、ゼロベクトルを選択実行部17に送信する。補填モードcModeが「補填モード6」である場合、第2候補選択部16は、ゼロベクトルをcMV1として選択する。第2候補選択部16は、cMV1として、ゼロベクトルを選択実行部17に送信する。
The details will be described below. When the compensation mode cMode is “compensation mode 6”, the first
補填モード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もゼロベクトルである。
When the compensation mode cMode is the “compensation mode 6”, the
(8)補填モード7
補填ベクトル選択部12は、補填ベクトルとして、時間予測動きベクトルを選択してもよい。本比較例では、補填ベクトル選択部12は、補填モードcModeが「補填モード7」である場合に、補填ベクトルとして、時間予測動きベクトルを選択する。
(8) Compensation mode 7
The compensation
上述のように、補填候補生成部60は、予測方向毎に、時間予測動きベクトルを選択する。すなわち、補填候補生成部60は、予測方向L0向けの時間予測動きベクトルである時間予測動きベクトル0と、予測方向L1向けの時間予測動きベクトルである時間予測動きベクトル1とを、例えば以下のように選択する。例えば図5に示す例におけるC0のブロックにおける予測動きベクトルが存在する場合、補填候補生成部60は、時間予測動きベクトルとして、C0のブロックにおける予測動きベクトルを選択する。C0のブロックにおける予測動きベクトルが存在しない場合、補填候補生成部60は、時間予測動きベクトルとして、C1のブロックにおける予測動きベクトルを選択する。補填候補生成部60は、C1のブロックにおける予測動きベクトルも存在しない場合、時間予測動きベクトルをゼロベクトルに設定する。
As described above, the compensation
具体的には、補填モードcModeが「補填モード7」であり、予測方向mDirがL0である場合、補填ベクトル選択部12は、予測方向L1向けの時間予測ベクトル(すなわち時間予測ベクトル1)を、補填ベクトルcMVとして選択する。補填モードcModeが「補填モード7」であり、予測方向mDirがL1である場合、補填ベクトル選択部12は、予測方向L0向けの時間予測ベクトル(すなわち時間予測ベクトル0)を、補填ベクトルcMVとして選択する。
Specifically, when the compensation mode cMode is “compensation mode 7” and the prediction direction mDir is L0, the compensation
以下、さらに詳しく説明する。補填モードcModeが「補填モード7」である場合、第1候補選択部15は、予測方向L0における時間予測ベクトル(すなわち時間予測ベクトル0)を、cMV0として選択する。第1候補選択部15は、選択したcMV0を、選択実行部17に送信する。補填モードcModeが「補填モード7」である場合、第2候補選択部16は、予測方向L1における時間予測ベクトル(すなわち時間予測ベクトル1)を、cMV1として選択する。第1候補選択部15は、選択したcMV1を、選択実行部17に送信する。
The details will be described below. When the compensation mode cMode is “compensation mode 7”, the first
補填モードcModeが「補填モード7」であり、予測方向mDirがL0である場合、選択実行部17は、cMV1をcMVとして選択する。補填モードcModeが「補填モード7」であり、予測方向mDirがL1である場合、選択実行部17は、cMV0をcMVとして選択する。
When the compensation mode cMode is “compensation mode 7” and the prediction direction mDir is L0, the
次に、本比較例の動作について、図面を参照して詳細に説明する。 Next, the operation of this comparative example will be described in detail with reference to the drawings.
図8は、本比較例の映像符号化装置1の、符号化対象画像の予測画像を生成する動作の例を表すフローチャートである。図8に示す動作が開始される時、継承動きベクトルは、事前解析部102によって生成されている。事前解析部102によって、継承動きベクトル(すなわち、継承動きベクトルmDir0及びmDir1の少なくとも一方)、予測方向mDir、及び、ピクチャタイプPicTypeが、動きベクトル補填部10に送信される。
FIG. 8 is a flowchart illustrating an example of an operation of generating a predicted image of an encoding target image by the
図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)。
Referring to FIG. 8, first, the
符号化対象ブロックが含まれるピクチャがPピクチャである場合(ステップS106においてNO)、映像符号化装置1は、次に、ステップS108の動作を行う。この場合、予測選択部50は、2つの予測画像から、例えば符号化コストがより小さい、1つの予測画像を選択する。 符号化対象ブロックが含まれるピクチャがBピクチャである場合(ステップS106においてYES)、次に、双予測生成部40が、双予測画像を生成する(ステップS107)。そして、予測選択部50は、予測画像を選択する(ステップS108)。この場合、予測選択部50は、2つの予測画像と、1つの双予測画像とから、1つの画像を予測画像として選択する。そして、予測選択部50は、選択した予測画像を示す予測ベクトルと、選択した予測画像と、選択した予測画像が示す予測方向とを出力する(ステップS109)。
When the picture including the current block is a P picture (NO in step S106), the
次に、本比較例の映像符号化装置1の、動きベクトル補填処理の動作について、図面を参照して詳細に説明する。
Next, the operation of the motion vector compensation processing of the
図9は、本比較例の映像符号化装置1の、動きベクトル補填処理の動作の例を表すフローチャートである。
FIG. 9 is a flowchart illustrating an example of an operation of a motion vector compensation process of the
図9を参照すると、まず、図6に示す、動きベクトル補填部10の検出部11(例えば、検出部11として動作する、図4に示す選択実行部17)が、動き補償部100に入力される継承動きベクトルの数を検出する(ステップS201)。具体的には、検出部11は、信号mDirの値を検出する。そして、検出部11は、信号mDirの値によって、継承動きベクトルの数が1つであるか2つであるかを検出する。検出部11は、信号mDirの値がL0又はL1である場合、継承動きベクトルの数は1つであることを検出する。検出部11は、信号mDirの値がBiである場合、継承動きベクトルの数は2つであることを検出する。
Referring to FIG. 9, first, the detection unit 11 of the motion vector compensation unit 10 (for example, the
継承動きベクトルの数が1つではない場合(ステップS202においてNO)、すなわち、信号mDirの値が、Biである場合、映像符号化装置1は、図9に示す動きベクトル補填処理を終了する。
If the number of inherited motion vectors is not one (NO in step S202), that is, if the value of the signal mDir is Bi, the
継承動きベクトルの数が1つである場合(ステップS202においてYES)、すなわち、信号mDirの値が、L0又はL1である場合、受信部14は、補填モードを受信する(ステップS203)。具体的には、動きベクトル補填部10は、補填モードcModeを受信する。第1候補選択部15、第2候補選択部16、及び、選択実行部17は、動きベクトル補填部10が受信した補填モードcModeを受信する。なお、補填モードがあらかじめ定められている場合、受信部14は、補填モードを受信しなくてよい。
When the number of inherited motion vectors is one (YES in step S202), that is, when the value of the signal mDir is L0 or L1, the receiving
次に、動きベクトル補填部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によって生成されなかったベクトルを受信しなくてもよい。
Next, the receiving
受信部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を受信しなくてよい。
The receiving
次に、補填ベクトル選択部12は、受信した補填モードに基づいて、受信した、AMVP予測動きベクトル及び時間予測動きベクトルと、ゼロベクトルとの少なくともいずれかから、補填動きベクトルを選択する(ステップS206)。具体的には、第1候補選択部15は、受信したセット0に含まれるベクトルから、受信したcModeに基づいて、上述のように、補填ベクトルcMV0を選択する。第2候補選択部16は、受信したセット0に含まれるベクトルから、受信したcModeに基づいて、上述のように、補填ベクトルcMV1を選択する。選択実行部17は、上述のように、予測方向mDir及び補填モードcModeに基づいて、cMV0及びcMV1から、補填ベクトルcMVを選択する。
Next, the compensation
送信部13は、選択された補填動きベクトルcMVを、対象選択部20を介して、対象選択部20に送信する(ステップS207)。具体的には、選択実行部17が、選択した補填ベクトルcMVを対象選択部20に送信する。そして、映像符号化装置1は、図9に示す動作を終了する。
The
以上の動作の例では継承動きベクトルの数が2である場合、動きベクトル補填部10は、ステップS203からステップS207までの処理を行わない。しかし、動きベクトル補填部10は、継承動きベクトルの数に関わらず、ステップS203からステップS207までの動作を行うことによって、補填動きベクトルを生成し、生成した補填動きベクトルを対象選択部20に送信してもよい。この場合、継承動きベクトルの数が2である場合、対象選択部20は、それらの、継承動きベクトルをリファイン前動きベクトルとして選択すればよい。そして、この場合、対象選択部20は、受信した補填動きベクトルを、リファイン前動きベクトルとして選択しなければよい。
In the above operation example, when the number of inherited motion vectors is 2, the motion
以上で説明した比較例には、参照ピクチャが1つである場合であっても、予測の精度を向上させることができるという第1の効果がある。 The comparative example described above has a first effect that the accuracy of prediction can be improved even when the number of reference pictures is one.
その理由は、参照ピクチャが1つである場合、すなわち、継承動きベクトルが1つである場合、動きベクトル補填部10によって選択された補填動きベクトルが、リファイン部30に供給されるからである。その場合、予測選択部50は、継承動きベクトルに基づく予測画像と、補填動きベクトルに基づく予測画像とから、例えば符号化コストが最も小さい画像が選択する。又は、予測選択部50は、継承動きベクトルに基づく予測画像と、補填動きベクトルに基づく予測画像と、双予測画像とから、例えば符号化コストが最も小さい画像が選択する。従って、選択された画像の符号化対象ブロックに対する予測精度が向上する。
The reason is that, when the number of reference pictures is one, that is, when the number of inherited motion vectors is one, the compensation motion vector selected by the motion
また、事前解析部102(一般的に事前解析器とも呼ばれる)ができなかった、動きベクトルの追加的な評価による動き補償予測の精度の向上が期待できる。事前解析部102が決定する継承動きベクトルmMV0及びmMV1の、予測方向や成分は、必ずしも最適ではない。特にBピクチャにおいて時間ダイレクトモードを考慮した動きベクトル探索がなされていないため、予測方向の選定が最適でない可能性が高い。
Further, it is expected that the accuracy of the motion compensation prediction can be improved by the additional evaluation of the motion vector, which cannot be performed by the pre-analysis unit 102 (generally called a pre-analyzer). The prediction directions and components of the inherited motion vectors mMV0 and mMV1 determined by the
さらに、HEVC規格における動きベクトルの時空間適応予測(すなわちAMVPとマージ予測)に適した動きベクトル選択によるオーバヘッド削減が期待できる。中央値予測に基づいて事前解析器が決定する継承動きベクトルmMV0及びmMV1は、必ずしもAMVPとマージ予測に最適な動きベクトルではない。 Furthermore, overhead reduction can be expected by selecting motion vectors suitable for spatio-temporal adaptive prediction of motion vectors in the HEVC standard (that is, AMVP and merge prediction). The inherited motion vectors mMV0 and mMV1 determined by the pre-analyzer based on the median prediction are not necessarily motion vectors optimal for AMVP and merge prediction.
本比較例には、さらに、演算器(すなわち、図3に示す第1リファイン部31、第2リファイン部32、及び、双予測生成部40)を活用することができるという第2の効果がある。その理由は、継承動きベクトルが1つである場合に、補填ベクトル選択部12によって選択された補填動きベクトルが、第1リファイン部31及び第2のリファイン部32のうち継承動きベクトルが入力されていない方に入力されるからである。さらに、符号化対象ブロックが含まれるピクチャがBピクチャであれば、継承動きベクトルの数が1である場合であっても、双予測生成部40が双予測を生成するからである。
This comparative example further has a second effect that the arithmetic unit (that is, the
図7は、本比較例に係る映像符号化装置1の、動きベクトルの補填及びリファインを行う部分の構造の例を示す図である。図7において、mcMV0及びmcMV1は、mMV0、mMV1、及び、cMVのうち、対象選択部20によって選択された2つのリファイン前動きベクトルを表す。
FIG. 7 is a diagram illustrating an example of a structure of a portion that performs motion vector compensation and refinement in the
上述のベクトルの補填は、簡略化すると図7の構造を備える装置によって行われる。以下では、図7に示す構造を「理想的な構造」と呼ぶ。理想的な構造では、ブロックごとにベクトル補填と動き探索処理がひとまとめに実行される。すなわち、あるブロックについてベクトル補填が行われると、直後に、動き探索処理によって、継承動きベクトルと補填動きベクトルとをそれぞれ中心とする動き探索が行われる。それらの動き探索によって得られた動きベクトルのうち、評価指標においてより良いものが選択される。選択された動きベクトルは、そのブロックの新しい動きベクトルとなり、後続ブロックの補填動きベクトルを生成する時に利用される。ここでは、選択された動きベクトルが後続ブロックの補填動きベクトルを生成する時に利用されることを「ベクトルの伝播」と呼ぶ。
The vector compensation described above is, in a simplified manner, performed by a device having the structure of FIG. Hereinafter, the structure illustrated in FIG. 7 is referred to as an “ideal structure”. In an ideal structure, vector compensation and motion search processing are collectively executed for each block. That is, when vector compensation is performed on a certain block, immediately after that, a motion search process is performed by the motion search process centering on the inherited motion vector and the supplementary motion vector. Among the motion vectors obtained by the motion search, a better motion index is selected. The selected motion vector becomes a new motion vector for the block and is used when generating a supplementary motion vector for the subsequent block. Here, the fact that the selected motion vector is used when generating a supplementary motion vector for a subsequent block is referred to as “vector propagation”.
一般に、例えば処理の速度に対する条件を満たすために、その処理に制約を加える場合がある。このように、例えば処理に制約を加えることによる、条件を満たす処理の実現を、「制約付実現」と呼ぶことがある。たとえば、上述の比較例における動きベクトルの補填では、制約の1つは、ベクトルを補填する処理と、リファインの処理との間において、処理の連続性を断つことである。例えば、以下により、ベクトルを補填する処理とリファインの処理の間において、処理の連続性を断つことができる。 In general, for example, in order to satisfy a condition for a processing speed, a restriction may be imposed on the processing. As described above, for example, realizing a process that satisfies a condition by adding a constraint to the process may be referred to as “restricted realization”. For example, in the above-described motion vector compensation in the comparative example, one of the restrictions is to interrupt the continuity of the process between the process of supplementing the vector and the process of refinement. For example, the continuity of the processing can be cut off between the processing of supplementing the vector and the processing of the refinement as follows.
(1)対象選択部20とリファイン部30との間に記憶部を配置すること
(2)選択された動きベクトルを対象選択部20によってその記憶部に格納すること
(3)その気億部に格納されている動きベクトルをリファイン部30によってリファインすること
上述の、処理の連続性を断つことによって、以下を、複数のブロックについて並列に行うことができる。
(1) Arranging a storage unit between the
(1)動きベクトルの補填を行うこと
(2)動きベクトルの補填の対象であるブロックとは異なる複数のブロックについて補填された動きベクトルを元にして、リファインの処理を行うこと
上述の比較例において、補填に用いるAMVPベクトルを生成するために、周辺ブロック(例えば、図5に示す、A0〜C1の位置のブロック)についての最新の動きベクトルが必要である。そして、動きベクトルを補填する処理とリファインの処理とが、複数ブロックに関して並列に動作できる。従って、あるブロックについて、その周辺ブロックのリファインの処理が完了していない段階で、動きベクトルを補填する処理が開始される可能性がある。
(1) Performing motion vector compensation (2) Performing refinement processing based on motion vectors supplemented for a plurality of blocks different from the block to be compensated for motion vectors In the comparative example described above. In order to generate an AMVP vector used for interpolation, a latest motion vector for a peripheral block (for example, a block at a position of A0 to C1 shown in FIG. 5) is required. Then, the process of compensating for the motion vector and the process of refinement can operate in parallel for a plurality of blocks. Therefore, there is a possibility that a process of compensating for a motion vector is started at a stage where the process of refining a certain block has not been completed.
このとき、リファインの処理において、そのリファインの処理と並列に実行されるリファインの処理によって生成される動きベクトル(以下、「リファイン後の動きベクトル」とも表記)を使用することはできない。しかし、リファインの処理によって生成される動きベクトルの代わりに、その動きベクトルを生成するリファインの処理において使用される動きベクトル(以下、「リファイン前の動きベクトル」とも表記)を使用することが可能である。上述の記憶部が実装されている場合、リファイン前の動きベクトルは、その記憶部に格納されている。リファイン部は、その記憶部から、リファイン前の動きベクトルを読み出し、読み出したリファイン前の動きベクトル使用することが可能である。 At this time, in the refinement process, it is not possible to use a motion vector generated by the refinement process executed in parallel with the refinement process (hereinafter, also referred to as “motion vector after refinement”). However, instead of the motion vector generated by the refinement process, a motion vector used in the refinement process for generating the motion vector (hereinafter, also referred to as “motion vector before refinement”) can be used. is there. When the above-described storage unit is implemented, the motion vector before refinement is stored in the storage unit. The refinement unit can read the motion vector before the refinement from the storage unit and use the readout motion vector before the refinement.
上述の記憶部には、リファイン前の動きベクトルとして、リファインがなされていない継承動きベクトルと、補填動きベクトルとが格納される。リファイン後の動きベクトルとして使用されることに、継承動きベクトルと補填動きベクトルのどちらが適しているかを判断する手段はない。しかし、事前解析部102によって求められた継承動きベクトルのほうが、周辺ブロックのベクトルから選出された補填動きベクトルよりも適している可能性が高い。そのため、上述の比較例の、上述の「制約付実現」では、周辺ブロックのリファイン後の動きベクトルとして、リファインがなされていない継承動きベクトルが使用されればよい。符号化対象ブロックの周辺ブロックのベクトルから選出された補填動きベクトルは、その符号化対象ブロックの補填動きベクトルの候補としては使用されなければよい。
The above-mentioned storage unit stores, as a motion vector before refinement, an inherited motion vector that has not been refined and a supplementary motion vector. There is no means for determining which of the inherited motion vector and the supplementary motion vector is suitable for use as the refined motion vector. However, there is a high possibility that the inherited motion vector obtained by the
以上のように、上述の比較例の制約付実現では、周辺ブロックの動きベクトルがリファインの処理によって確定する前に、動きベクトルの補填が開始される可能性がある。周辺ブロックの動きベクトルがリファインの処理によって確定する前に、動きベクトルの補填が開始された場合、リファイン前の動きベクトルが補填される動きベクトルの候補として使用されるので、動きベクトル補填が想定する効果を発揮しない。 As described above, in the above-described restricted realization of the comparative example, before the motion vectors of the peripheral blocks are determined by the refinement process, there is a possibility that the compensation of the motion vectors is started. If the motion vector compensation is started before the motion vector of the peripheral block is determined by the refinement process, the motion vector before refinement is used as a candidate of the motion vector to be compensated. Does not work.
次に、本発明の実施形態について図面を参照して詳細に説明する。 Next, embodiments of the present invention will be described in detail with reference to the drawings.
[第1の実施の形態]
[構成の説明]
本発明の第1の実施形態について図面を参照して詳細に説明する。
[First Embodiment]
[Description of configuration]
A first embodiment of the present invention will be described in detail with reference to the drawings.
図10は、本実施形態に係る映像符号化装置2の構成の例を表すブロック図である。
FIG. 10 is a block diagram illustrating an example of a configuration of the
図10に示す映像符号化装置2の構成と、図1に示す上述の比較例に係る映像符号化装置1の構成とを比較すると、映像符号化装置2は、動き補償部100の代わりに動き補償部200を含む点が異なる。
Comparing the configuration of the
図11は、本実施形態に係る映像符号化装置2の動き補償部200の構成の例を模式的に表すブロック図である。
FIG. 11 is a block diagram schematically illustrating an example of the configuration of the
図11に示す動き補償部200の構成と図2に示す動き補償部100の構成とを比較すると、動き補償部200は、動きベクトル補填部10の代わりに動きベクトル90を含み、さらに、ベクトル記憶部80を含む。
Comparing the configuration of the
本実施形態の対象選択部20は、上述の比較例と同様に、リファイン前動きベクトルを生成する。本実施形態の対象選択部20は、リファイン前動きベクトルを、リファイン部30に送信するのではなく、ベクトル記憶部80に格納する。すなわち、事前解析部102が2つの継承動きベクトルを生成した場合、対象選択部20は、それらの2つの継承動きベクトルを、リファイン前動きベクトルとして、ベクトル記憶部80に格納する。事前解析部102が1つの継承動きベクトルを生成した場合、対象選択部20は、その継承動きベクトルと、動きベクトル補填部90が生成した補填動きベクトルとを、リファイン前動きベクトルとして、ベクトル記憶部80に格納する。
The
ベクトル記憶部80は、対象選択部20によって生成されたリファイン前動きベクトルを記憶する。
The
本実施形態の補填候補生成部60は、ベクトル記憶部80に格納されている、符号化対象ブロックの周辺ブロックのリファイン前動きベクトルに基づいて、AMVP予測動きベクトル及び時間予測動きベクトルを生成する。上述のように、周辺ブロックは、例えば、図5に示すA0〜C1のブロックである。補填候補生成部60は、これらのブロックのリファイン前動きベクトルのうち、ベクトル記憶部80に格納されているベクトルを、周辺ブロックの予測動きベクトルとして使用して、AMVP予測動きベクトル及び時間予測動きベクトルを生成すればよい。補填候補生成部60がAMVP予測動きベクトル及び時間予測動きベクトルを生成する方法は、例えば周辺ブロックの予測動きベクトルをもとにAMVP予測動きベクトル及び時間予測動きベクトルを生成する一般的な方法と同様の方法でよい。
The compensation
動きベクトル補填部90は、補填候補生成部60によって生成された、AMVP予測動きベクトル、時間予測動きベクトル、及び、ゼロベクトルに基づいて、補填動きベクトルを生成する。事前解析部102によって生成された継承動きベクトルの数が1つである場合、動きベクトル補填部90は、生成した補填動きベクトルを、対象選択部20に送信する。
The motion
リファイン部30は、リファイン前動きベクトルをベクトル記憶部80から読み出し、読み出したリファイン前動きベクトルを、上述の比較例のリファイン部30と同様にリファインする。
The
本実施形態の双予測生成部40は、上述の比較例の双予測生成部40と同じである。本実施形態の予測選択部50は、上述の比較例の予測選択部50と同じである。
The
以下では、本実施形態の動き補償部200について、さらに詳しく説明する。
Hereinafter, the
図12は、本実施形態の動き補償部200の構成の例を表すブロック図である。
FIG. 12 is a block diagram illustrating an example of a configuration of the
図12と、比較例の動き補償部100の構成の例を示す図3とを比較すると、本実施形態の動き補償部200は、動きベクトル補填部10の代わりに動きベクトル補填部90を含む。また、対象選択部20とリファイン部30との間に、ベクトル記憶部80が接続されている。ベクトル記憶部80は、第1ベクトル記憶部81と第2ベクトル記憶部82とを含む。
When FIG. 12 is compared with FIG. 3 illustrating an example of the configuration of the
第1対象選択部21は、選択したリファイン前動きベクトルを、第1ベクトル記憶部81に格納する。第2対象選択部22は、選択したリファイン前動きベクトルを、第2ベクトル記憶部82に格納する。第1対象選択部21及び第2対象選択部22は、以上の相違を除き、それぞれ、上述の比較例の第1対象選択部21及び第2対象選択部22と同じである。
The first target selection unit 21 stores the selected pre-refinement motion vector in the first
第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と同様に出力を行う。
The
動きベクトル補填部90及び対象選択部20の上述の構成について、さらに詳しく説明する。
The above-described configurations of the motion
動きベクトル補填部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は、符号化対象ブロックに関連付けられたリファイン前動きベクトルを記憶していればよい。
The motion
本実施形態の対象選択部20は、符号化対象ブロックを含むピクチャのピクチャタイプ(すなわちPicTypeの値)がPピクチャである場合、他の符号化対象ブロックにおける補填ベクトルの生成に使用されるベクトルを選択してもよい。他の符号化対象ブロックにおける補填ベクトルの生成に使用されるベクトルを、以下、「伝播ベクトル」と表記する。対象選択部20は、PicTypeの値がPピクチャでない場合、伝播ベクトルを選択しなくてよい。対象選択部20は、ピクチャタイプPicTypeを、例えば、事前解析部102から受信すればよい。なお、事前解析部102から対象選択部20へのピクチャタイプPicTypeの送信の経路は図示されていない。符号化対象ブロックを含むピクチャのピクチャタイプがPピクチャである場合、例えば、継承動きベクトルmMV0及び補填ベクトルcMVが、対象選択部20に入力される。
When the picture type (that is, the value of PicType) of the picture including the coding target block is a P picture, the
対象選択部20(例えば第1対象選択部21)は、例えば、あらかじめ定められている伝播選択条件に基づいて、継承動きベクトルmMV0及び補填ベクトルcMVの一方を、伝播ベクトルとして選択してもよい。伝播条件は、例えば、ベクトルの絶対値(すなわち大きさ)に基づく条件である。対象選択部20は、継承動きベクトルmMV0及び補填ベクトルcMVのうち、絶対値が大きいベクトルを、伝播ベクトルとして選択してもよい。この場合、上述の伝播選択条件は、最も大きい絶対値を備えることである。対象選択部20は、継承動きベクトルmMV0及び補填ベクトルcMVのうち、絶対値が小さいベクトルを、伝播ベクトルとして選択してもよい。この場合、上述の伝播選択条件は、最も小さい絶対値を備えることである。
For example, the target selection unit 20 (for example, the first target selection unit 21) may select one of the inherited motion vector mMV0 and the compensation vector cMV as a propagation vector based on a predetermined propagation selection condition. The propagation condition is, for example, a condition based on the absolute value (that is, the magnitude) of the vector. The
この場合、対象選択部20は、動きベクトルmMV0及び補填ベクトルcMVのうち、伝播ベクトルとして選択されたベクトルを、そのベクトルが伝播ベクトルとして選択されたことを判別できるように、ベクトル記憶部80に格納すればよい。対象選択部20は、例えば、対象選択部20は、動きベクトルmMV0及び補填ベクトルcMVのうち、伝播ベクトルとして選択されたベクトルに、そのベクトルが伝播ベクトルであるか否かを示す値(以下「判定値」と表記)を関連付けてもよい。そして、対象選択部20は、それぞれ判定値が関連付けられた、動きベクトルmMV0及び補填ベクトルcMVを、ベクトル記憶部80に格納してもよい。
In this case, the
対象選択部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に格納する。
The
補填候補生成部60は、補填ベクトルとしてベクトル記憶部80に格納されているベクトルを、AMVP動きベクトル及び時間予測動きベクトルを生成するのに使用する周辺ベクトルとして読み出せばよい。
The compensation
次に、動きベクトル補填部90について、さらに詳しく説明する。
Next, the motion
図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向けの補填ベクトルの候補である。
FIG. 13 is a block diagram illustrating an example of the configuration of the motion
伝播条件決定部99は、たとえば、以下の伝播条件のうちの1つを、第3候補選択部98に送信する伝播条件として決定する。そして、伝播条件決定部99は、決定した伝播条件を第3候補選択部98に出力する(すなわち送信する)。
The propagation
(A)複数の動きベクトルのうち、ベクトルの絶対値(すなわち大きさ)が最小のベクトル
(B)複数の動きベクトルのうち、ベクトルの絶対値(すなわち大きさ)が2番目に小さいベクトル
(C)複数の動きベクトルのうち、ベクトルの絶対値(すなわち大きさ)が2番目に大きいベクトル
(D)複数の動きベクトルのうち、ベクトルの絶対値(すなわち大きさ)が最大のベクトル
(E)複数の動きベクトルのうち、継承動きベクトルとの距離が最小のベクトル
(F)複数の動きベクトルのうち、継承動きベクトルとの距離が2番目に小さいベクトル
(G)複数の動きベクトルのうち、継承動きベクトルとの距離が2番目に大きいベクトル
(H)複数の動きベクトルのうち、継承動きベクトルとの距離が最大のベクトル
(I)複数の動きベクトルのうち、閾値よりも絶対値が小さいベクトルの中で、継承動きベクトルとの距離が最大のベクトル
(J)複数の動きベクトルのうち、閾値よりも絶対値が大きいベクトルの中で、継承動きベクトルとの距離が最小のベクトル
(K)複数の動きベクトルのうち、閾値よりも継承動きベクトルとの距離が小さいベクトルの中で、絶対値が最大のベクトル
(L)複数の動きベクトルのうち、閾値よりも継承動きベクトルとの距離が大きいベクトルの中で、絶対値が最小のベクトル
なお、伝播条件決定部99は、事前に実験的に決定した伝播条件を固定的に出力してもよい。また、伝播条件決定部99は、符号化を実行する際の符号化情報(図示しない)を利用して、伝播条件を動的に決定してもよい。
(A) The vector having the smallest absolute value (that is, the magnitude) of the vector among the plurality of motion vectors. (B) The vector (C) having the second smallest magnitude (that is, the magnitude) of the vector among the plurality of motion vectors. ) Among the plurality of motion vectors, the vector having the second largest absolute value (ie, magnitude) of the vector. (D) Of the plurality of motion vectors, the vector having the largest absolute value (ie, magnitude) of the vector. Of the motion vectors, the vector having the smallest distance to the inherited motion vector. (F) Of the plurality of motion vectors, the vector having the second smallest distance to the inherited motion vector. (G) Of the plurality of motion vectors, the inherited motion vector. The vector having the second largest distance to the vector (H) Among the plurality of motion vectors, the vector having the largest distance to the inherited motion vector (I) Among the motion vectors, the vector whose absolute value is smaller than the threshold is the vector having the largest distance to the inherited motion vector. (J) Among the plurality of motion vectors, the vector whose absolute value is larger than the threshold is The vector whose distance to the motion vector is the smallest (K) Among the plurality of motion vectors, the vector whose absolute value is the largest among the vectors whose distance to the inherited motion vector is smaller than the threshold value (L) Of the plurality of motion vectors , The vector having the smallest absolute value among the vectors having a distance from the inherited motion vector larger than the threshold value. The propagation
選択実行部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を選択する方法は、適宜定められていればよい。
The selection execution unit 97 receives the compensation vector cMV0 from the first
例えば、mDirの値がL0である場合(すなわち、mMV0が存在し、mMV1が存在しない場合)、選択実行部97は、cMV0とcMVP1とのいずれかを、所定の選択方法に従って選択してもよい。mDirの値がL1である場合(すなわち、mMV1が存在し、mMV0が存在しない場合)、選択実行部97は、cMV1とcMVP0とのいずれかを、所定の選択方法に従って選択してもよい。 For example, when the value of mDir is L0 (that is, when mMV0 exists and mMV1 does not exist), the selection execution unit 97 may select one of cMV0 and cMVP1 according to a predetermined selection method. . When the value of mDir is L1 (that is, when mMV1 exists and mMV0 does not exist), the selection execution unit 97 may select either cMV1 or cMVP0 according to a predetermined selection method.
選択実行部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を選択してもよい。 The selection execution unit 97 may select, for example, a vector having the smallest absolute value as a cMV among a plurality of vectors to be selected. For example, as described above, when selecting one of the two vectors as the cMV, the selection execution unit 97 may select the vector having the smaller absolute value as the cMV from the two vectors. In the above example, when the value of mDir is L0, the selection execution unit 97 may select a vector having a small absolute value from cMV0 and cMVP1 as cMV. When the value of mDir is L1, the selection execution unit 97 may select a vector having a small absolute value from cMV1 and cMVP0 as cMV. The selection executing unit 97 may select the compensation vector cMV0 or cMV1 as the compensation vector cMV based on the difference between the absolute values of the compensation vector cMV0 or cMV1 and the pseudo propagation compensation vectors cMVP0 and cMVP1. For example, when the value of the prediction direction mDir is L0, if the difference between the absolute value of cMV0 and the absolute value of cMVP1 is equal to or larger than the threshold, the selection execution unit 97 may select cMVP1. When the value of the prediction direction mDir is L1, if the difference between the absolute value of cMV1 and the absolute value of cMVP0 is equal to or greater than the threshold, the selection execution unit 97 may select cMVP0.
選択実行部97は、他の方法に従って、cMVを選択してもよい。 The selection executing unit 97 may select the cMV according to another method.
図14は、本実施形態の動きベクトル補填部90の構成の例を模式的に表すブロック図である。
FIG. 14 is a block diagram schematically illustrating an example of the configuration of the motion
図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に送信する。
The motion
上述の比較例と同様に、受信部94に相当する部分は、動きベクトル補填部90のうち、継承動きベクトル、補填モードcMode、及び、セットAを受信する部分である。また、検出部91に相当する部分は、動きベクトル補填部90のうち、予測方向mDir及びピクチャタイプPicTYpeを受信し、受信した予測方向mDir及びピクチャタイプPicTYpeの値を判定する部分(例えば選択実行部97の一部)である。さらに、第1候補選択部95、第2候補選択部96、及び選択実行部97が、補填ベクトル選択部92として動作する。さらに、送信部93に相当する部分は、選択実行部97から対象選択部20にcMVを送信する部分である。
As in the comparative example described above, the part corresponding to the receiving
[動作の説明]
次に、本実施形態の映像符号化装置1の動き補償部200の動作について、図面を参照して詳細に説明する。なお、本実施形態の映像符号化装置1の全体の動作は、一般的な映像符号化装置の動作と同じであるので、説明を省略する。
[Description of operation]
Next, the operation of the
図15及び図16は、本実施形態の動き補償部200の動作を表すフローチャートである。図15に示す動作の開始時において、例えばブロック分割部101によって、映像は、一度に符号化されるブロックの集まりである最大符号化単位(Largest Coding Unit、以下「LCU」と表記)に分割されている。最大符号化単位は、複数の予測単位(Prediction Unit、以下「PU」と表記)を含む。PUは、映像の符号化における予測の単位のブロック(すなわち、予測ベクトル、予測画像、及び、予測方向が導出される最小のブロック)である。そして、動き補償部200は、LCU毎に、図15及び図16に示す動作を行う。図15に示す動作の開始時において、処理の対象であるLCUが選択されている。
FIGS. 15 and 16 are flowcharts illustrating the operation of the
動き補償部200は、まず、選択されているLCUの各PUについて(ステップS301)、ステップS101、ステップS102、及び、ステップS302からステップS305の動作を行う。
The
具体的には、まず、モード決定部70が、補填モードを決定し、決定した補填モードを動きベクトル補填部90に送信する(ステップS101)。図8に示す比較例におけるステップS101の動作と同様に、補填モードが固定されている場合、モード決定部70は補填モードを決定しなくてよい。
Specifically, first, the
次に、補填候補生成部60が、周辺ベクトルに基づいて、AMVP予測動きベクトルと時間予測動きベクトルと含む、セットAのベクトルを生成する(ステップS102)。本実施形態では、周辺ベクトルは、符号化対象ブロック(すなわち、上述のPU)の隣接ブロックのリファイン前動きベクトル、又は、符号化対象ブロックの直前ピクチャのブロックのリファイン前動きベクトルである。上述のように、ベクトル記憶部80が、周辺ベクトル(すなわち、符号化対象ブロックの周辺のブロックにおけるリファイン前動きベクトル)を記憶する。補填候補生成部60は、ベクトル記憶部80から周辺ベクトルを読み出し、読み出した周辺ベクトルをもとに、セットAのベクトルを生成すればよい。
Next, the compensation
動きベクトル補填部90は、次に、動きベクトル補填処理を行う(ステップS302)。動きベクトル補填処理については、後で詳細に説明する。動きベクトル補填処理によって、2つの継承動きベクトル、又は、継承動きベクトルと補填動きベクトルの組み合わせが、リファイン前動きベクトルとして得られる。
Next, the motion
符号化対象ブロックを含むピクチャのピクチャタイプがPピクチャである場合(ステップS303においてYES)、対象選択部20は、2つのリファイン前動きベクトルの一方を、伝播ベクトルとして選択する(ステップS304)。符号化対象ブロックを含むピクチャのピクチャタイプがPピクチャでない場合(ステップS303においてNO)、対象選択部20は、伝播ベクトルを選択しなくてよい。
If the picture type of the picture including the coding target block is a P picture (YES in step S303), the
次に、対象選択部20は、リファイン前動きベクトルとして得られた動きベクトルを、ベクトル記憶部80に格納する(ステップS305)。対象選択部20は、リファイン前動きベクトルとして得られた動きベクトルに、符号化対象ブロック(すなわち、上述のPU)を関連付ければよい。そして対象選択部20は、符号化対象ブロックに関連付けられた動きベクトルを、ベクトル記憶部80に格納すればよい。対象選択部20は、ベクトル記憶部80に格納する動きベクトルに、例えば、上述のPUを特定する番号を関連付ければよい。
Next, the
符号化対象ブロックを含むピクチャのピクチャタイプがPピクチャである場合、対象選択部20は、どちらのベクトルが伝播ベクトルとして選択されたか特定できるように、2つのリファイン前動きベクトルをベクトル記憶部80に格納すればよい。本実施形態の動作の例では、対象選択部20は、伝播ベクトルとして選択されたベクトルを、第1ベクトル記憶部81に格納する。そして、対象選択部20は、伝播ベクトルとして選択されなかったベクトルを、第2ベクトル記憶部82に格納する。
When the picture type of the picture including the encoding target block is a P picture, the
動き補償部200は、選択されているLCUの各PUについて、動きベクトル補填処理が終了するまで、ステップS101、ステップS102、ステップS302、及び、ステップS303の動作を繰り返す(ステップS304)。
The
次に、動き補償部200は、図16に示す動作を行う。動き補償部200は、選択されているLCUにおける各PUについて、ステップS104からステップS109までの動作を行えばよい(ステップS311)。ステップS104からステップS109までの動作は、図8に示す、変形例の動き補償部100の、ステップS104からステップS109までの動作と同じである。動き補償部200は、選択されているLCUにおける各PUについて、動きベクトル、予測画像、及び、予測方向を出力するまで、ステップS104からステップS109までの動作を繰り返す(ステップS312)。
Next, the
次に、動きベクトル補填部90による動きベクトル補填処理について、図面を参照して詳細に説明する。
Next, the motion vector compensation processing by the motion
図17は、本実施形態の動きベクトル補填部90による、動きベクトル補填処理の動作の一例を表すフローチャートである。
FIG. 17 is a flowchart illustrating an example of the operation of the motion vector compensation processing by the motion
図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に示す動作を終了する。
Referring to FIG. 17, first, the
継承動きベクトルの数が1である場合(ステップS202においてYES)、動きベクトル補填部90(例えば受信部94として動作する部分)は、例えばモード決定部70から、補填モードcModeを受信する(ステップS203)。具体的には、第1候補選択部95及び第2候補選択部96が、補填モードcModeを受信する。第3候補選択部98も、補填モードcModeを受信してもよい。
If the number of inherited motion vectors is 1 (YES in step S202), the motion vector compensation unit 90 (for example, a part operating as the reception unit 94) receives the compensation mode cMode from, for example, the mode determination unit 70 (step S203). ). Specifically, the first
動きベクトル補填部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、及び、ゼロベクトルである。
The motion vector compensation unit 90 (for example, a part that operates as the reception unit 94) further receives the vector of the set A from the compensation candidate generation unit 60 (Step S204). Specifically, the first
動きベクトル補填部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を受信しなくてよい。
The motion vector compensation unit 90 (for example, a part operating as the receiving unit 94) further receives the inherited motion vector from the pre-analysis unit 102 (Step S205). Specifically, the first
次に、動きベクトル補填部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に送信する。
Next, the motion
次に、伝播条件決定部99は、伝播条件を決定する(ステップS402)。伝播条件決定部99は、符号化の状態に基づいて、伝播条件を決定してもよい。伝播条件は、固定されていてもよい。その場合、伝播条件決定部99は、伝播条件を決定しなくてもよい。伝播条件決定部99は、その伝播条件を、第3候補選択部98に送信する。具体的には、伝播条件決定部99は、例えば、複数の伝播条件の各々についてあらかじめ定められた識別子のうち、送信される伝播条件を示す識別子を、第3候補選択部98に送信すればよい。第3候補選択部98は、伝播条件決定部99から、伝播条件を受信する。具体的には、第3候補選択部98は、伝播条件の識別子を受信すればよい。
Next, the propagation
次に、動きベクトル補填部90は、受信した伝播条件に従って、セットAに含まれるベクトルに基づいて、擬似伝播補填ベクトルを生成する(ステップS403)。具体的には、第3候補選択部98が、受信した伝播条件を満たすベクトル(すなわち、受信した識別子が示す伝播条件を満たすベクトル)を、セットAに含まれるベクトルから選択する。第3候補選択部98は、選択したベクトルを、擬似伝播補填ベクトルcMVP0及びcMVP1とすることによって、擬似伝播補填ベクトルcMVP0及びcMVP1を生成する。第3候補選択部98は、擬似伝播補填ベクトルcMVP0及びcMVP1を、選択実行部97に送信する。
Next, the motion
次に、動きベクトル補填部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から、絶対値が小さいベクトルを選択する。
Next, the motion
なお、ステップS203からステップS403までの動作の順番は、図17に示す例に限られない。例えば、ステップS203からステップS205までの動作は、ステップS401及びステップS403の動作より前に行われればよい。ステップS402の動作は、ステップS403の動作より前に行われればよい。ステップS203からステップS205までの動作及びステップS402の動作が行われる順番は、適宜変更できる。ステップS203からステップS205までの動作及びステップS402の動作の少なくともいずれか2つ以上が、並列に行われてもよい。ステップS401の動作と、ステップS403の動作とが行われる順番は、逆であってもよい。ステップS401の動作とステップS403の動作は、並列に行われてもよい。 Note that the order of the operations from step S203 to step S403 is not limited to the example shown in FIG. For example, the operations in steps S203 to S205 may be performed before the operations in steps S401 and S403. The operation in step S402 may be performed before the operation in step S403. The order in which the operations from step S203 to step S205 and the operation in step S402 are performed can be appropriately changed. At least two of the operations from step S203 to step S205 and the operation in step S402 may be performed in parallel. The order in which the operation in step S401 and the operation in step S403 are performed may be reversed. The operation in step S401 and the operation in step S403 may be performed in parallel.
そして、動きベクトル補填部90は、図17に示す動作を終了する。
Then, the motion
図18は、本実施形態の映像符号化装置2の、動きベクトルの補填及びリファインを行う部分を模式的に表す図である。図18に示すmcMV0及びmcMV1は、図7と同様に、mMV0、mMV1、及び、cMVのうち、対象選択部20によって選択された2つのリファイン前動きベクトルを表す。図18に示すmcMV0a及びmcMV1aは、符号化対象ブロックの周辺ブロックのリファイン前動きベクトルを表す。
FIG. 18 is a diagram schematically illustrating a portion that performs motion vector compensation and refinement in the
[効果の説明]
次に、本実施の形態の効果について説明する。
[Explanation of effects]
Next, effects of the present embodiment will be described.
本実施形態には、参照ピクチャが1つである場合であっても、予測の精度を向上させることができるという効果がある。 The present embodiment has an effect that the prediction accuracy can be improved even when the number of reference pictures is one.
その理由は、動きベクトル補填部90が、AMVP予測ベクトル及び時間予測ベクトルを含むベクトルの組み合わせから、リファインの対象のベクトルとして補填ベクトルを選択するからである。参照ピクチャが1つである場合、継承動きベクトルは1つである。その場合、継承動きベクトルと選択された補填ベクトルとをリファインすることによって、2つの予測ベクトルを生成することができる。2つの予測ベクトルに基づいて動き補償を行うことによって、予測の精度が向上する。それにより、映像の圧縮率が向上向上する。
The reason is that the motion
また、動きベクトル補填部90は、周辺ブロックにおける、継承動きベクトル及び補填ベクトルから選択されたAMVP予測動きベクトルから、補填ベクトルを選択する。このことにより、理想的なベクトル埋めにおいて発生するベクトルの伝播を疑似的に実現することができる。それにより、予測の精度がさらに向上する。
Further, the motion
[第2の実施形態]
図19は、本発明の第2の実施形態に係る映像符号化装置の構成の例を表すブロック図である。
[Second embodiment]
FIG. 19 is a block diagram illustrating an example of a configuration of a video encoding device according to the second embodiment of the present invention.
図19を参照すると、本発明の第2の実施形態に係る映像符号化装置2Aは、補填候補生成部60と動きベクトル補填部90と、を備える。
Referring to FIG. 19, a
補填候補生成部60は、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する。リファイン前ベクトルは、符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるベクトルである。候補ベクトルは、例えば、上述の第1の実施形態におけるセットAのベクトルである。
The compensation
動きベクトル補填部90は、前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する。補填ベクトルは、上述の第1の実施形態の補填ベクトルcMVである。補填ベクトルを選択する方法は、第1の実施形態における、補填ベクトルcMVを選択する方法と同じでよい。
The motion
次に、本実施形態の映像符号化装置2Aの動作について、図面を参照して詳細に説明する。
Next, the operation of the
図20は、本実施形態に係る映像符号化装置の動作の例を表すフローチャートである。 FIG. 20 is a flowchart illustrating an example of the operation of the video encoding device according to the present embodiment.
図20を参照すると、まず、補填候補生成部60が、隣接ブロックのリファイン前ベクトルを含む、候補ベクトルを生成する(ステップS501)。次に、動きベクトル補填部90が、符号化対象ブロックのリファイン前ベクトルとして補填される補填ベクトルを、候補ベクトルから選択する(ステップS502)
[他の実施形態]
上述の実施形態及び比較例に係る映像符号化装置は、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
Referring to FIG. 20, first, the compensation
[Other embodiments]
The video encoding devices according to the above-described embodiment and the comparative example can be realized by a computer and a program for controlling the computer, dedicated hardware, or a combination of the computer and the program for controlling the computer and dedicated hardware, respectively. Can be.
言い換えると、上述の各実施形態及び比較例に係る映像符号化装置は、回路構成(circuitry)などのハードウェアによって実現することができる。回路構成は、例えば、コンピュータに含まれるプロセッサとメモリであってもよい。その場合、プログラムが、メモリにロードされていればよい。そのプログラムは、プロセッサが実行することが可能であり、コンピュータを上述の各実施形態及び比較例の映像符号化装置として動作させればよい。回路構成は、例えば、通信可能に接続された複数のコンピュータであってもよい。回路構成は、例えば、回路(circuit)であってもよい。回路構成は、例えば、通信可能に接続された複数の回路であってもよい。回路構成は、通信可能に接続された、1台以上のコンピュータと、1個以上の回路との組み合わせであってもよい。 In other words, the video encoding device according to each of the above-described embodiments and the comparative example can be realized by hardware such as a circuit configuration. The circuit configuration may be, for example, a processor and a memory included in the computer. In that case, the program only needs to be loaded in the memory. The program can be executed by a processor, and the computer may be operated as the video encoding device of each of the above-described embodiments and the comparative example. The circuit configuration may be, for example, a plurality of computers communicably connected. The circuit configuration may be, for example, a circuit. The circuit configuration may be, for example, a plurality of circuits communicably connected. The circuit configuration may be a combination of one or more computers and one or more circuits communicably connected.
図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として動作させるプログラムが格納されている。
FIG. 21 is a diagram illustrating an example of a hardware configuration of a
プロセッサ1001は、記録媒体1005に格納されている、コンピュータ1000を、映像符号化装置1、2、又は、2Aとして動作させるプログラムを、メモリ1002にロードする。そして、プロセッサ1001が、メモリ1002にロードされたプログラムを実行することにより、コンピュータ1000は、映像符号化装置1、2、又は、2Aとして動作する。
The processor 1001 loads a program stored in the
以下の部(以下、「第1グループ」と表記)は、例えば、それらの部の機能を実現することができる専用のプログラムがロードされたメモリ1002と、そのプログラムを実行するプロセッサ1001により実現することができる。
The following units (hereinafter, referred to as “first group”) are realized by, for example, a
動きベクトル補填部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により実現することができる。
Motion
Detector 11
Compensation
First
Second
First object selection unit 21
Second object selection unit 22
Refine
Compensation
Motion
Compensation
First
Second candidate selection unit 96
Selection execution unit 97
Third
Propagation
Block dividing
Subtraction unit 118
Adder 119
Further, the following units (hereinafter, referred to as “second group”) can be realized by a
ベクトル記憶部80
第1ベクトル記憶部81
第2ベクトル記憶部82
フレーム記憶部117
第1グループに含まれる部と第2グループに含まれる部の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
First
Second
Some or all of the units included in the first group and the units included in the second group may be realized by a dedicated circuit that realizes the function of each unit.
図22は、本発明の比較例の、回路によって実装された映像符号化装置1の構成の一例を表すブロック図である。図22に示す映像符号化装置1は、ブロック分割回路1101、事前解析回路1102、イントラ予測回路1103、切替回路1104、整数変換回路1105、量子化回路1106、逆量子化回路1107、及び、逆整数変換回路1108を含む。映像符号化装置1は、さらに、符号化回路1109、フィルタ回路1116、フレーム記憶回路1117、減算回路1118、加算回路1119、及び、動き補償回路1100を含む。
FIG. 22 is a block diagram illustrating an example of a configuration of a
図23は、本発明の比較例の、動き補償回路1100の構成の一例を表すブロック図である。図23に示す動き補償回路1100は、動きベクトル補填回路1010、対象選択回路1020、リファイン回路1030、双予測生成回路1040、予測選択回路1050、補填候補生成回路1060、及び、モード決定回路1070を含む。
FIG. 23 is a block diagram illustrating an example of a configuration of a
図24は、本発明の比較例の、動き補償回路1100の構成の一例を表すブロック図である。図24は、図23に示す動き補償回路1100の、より詳細な構成の例を示す。図24に示す動き補償回路1100は、動きベクトル補填回路1010、対象選択回路1020、リファイン回路1030、双予測生成回路1040、予測選択回路1050、補填候補生成回路1060、及び、モード決定回路1070を含む。対象選択回路1020は、第1対象選択回路1021及び第2対象選択回路1022を含む。リファイン回路1030は、第1リファイン回路1031及び第2リファイン回路1032を含む。
FIG. 24 is a block diagram illustrating an example of a configuration of a
図25は、本発明の比較例の、動きベクトル補填回路1010の構成の一例を表すブロック図である。図25に示す動きベクトル補填回路1010は、第1候補選択回路1015、第2候補選択回路1016、及び、選択実行回路1017を含む。
FIG. 25 is a block diagram illustrating an example of a configuration of a motion
図26は、本発明の比較例の、動きベクトル補填回路1010の構成の一例を表すブロック図である。図25に示す動きベクトル補填回路1010は、図26のようにも描かれうる。図26に示す動きベクトル補填回路1010は、検出回路1011と、補填ベクトル選択回路1012と、送信回路1013と、受信回路1014とを含む。
FIG. 26 is a block diagram illustrating an example of a configuration of a motion
図27は、本発明の第の実施形態の、回路によって実装された映像符号化装置2の構成の一例を表すブロック図である。図27に示す映像符号化装置2は、ブロック分割回路1101、事前解析回路1102、イントラ予測回路1103、切替回路1104、整数変換回路1105、量子化回路1106、逆量子化回路1107、及び、逆整数変換回路1108を含む。映像符号化装置2は、さらに、符号化回路1109、フィルタ回路1116、フレーム記憶回路1117、減算回路1118、加算回路1119、及び、動き補償回路1200を含む。
FIG. 27 is a block diagram illustrating an example of a configuration of a
図28は、本発明の第1の実施形態の、動き補償回路1200の構成の一例を表すブロック図である。図28に示す動き補償回路1200は、動きベクトル補填回路1090、対象選択回路1020、リファイン回路1030、双予測生成回路1040、予測選択回路1050、補填候補生成回路1060、モード決定回路1070、及び、ベクトル記憶回路1080を含む。
FIG. 28 is a block diagram illustrating an example of a configuration of the
図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とを含む。
FIG. 29 is a block diagram illustrating an example of a configuration of a
図30は、本発明の第1の実施形態の、動きベクトル補填回路1090の構成の一例を表すブロック図である。図30に示す動きベクトル補填回路1090は、第1候補選択回路1095と、第2候補選択回路1096と、第3候補選択回路1098と、選択実行回路1097と、伝播条件決定回路1099とを含む。
FIG. 30 is a block diagram illustrating an example of a configuration of the motion
図31は、本発明の第1の実施形態の、動きベクトル補填回路1090の構成の一例を表すブロック図である。図30に示す動きベクトル補填回路1090は、図31のようにも描かれうる。図31に示す動きベクトル補填回路1090は、検出回路1091と、補填ベクトル選択回路1092と、送信回路1093と、受信回路1094と、伝播条件決定回路1099とを含む。
FIG. 31 is a block diagram illustrating an example of a configuration of the motion
図32は、本発明の第2の実施形態の、回路によって実装された映像符号化装置2Aの構成の一例を表すブロック図である。図32に示す映像符号化装置2Aは、補填候補生成回路1060と、動きベクトル補填回路1090とを含む。
FIG. 32 is a block diagram illustrating an example of a configuration of a
図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として動作する。
22 to 32, the motion
ベクトル記憶回路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として動作する。
The
動き補償回路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として動作する。
The
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。 Further, some or all of the above-described embodiments can be described as in the following supplementary notes, but are not limited to the following.
(付記1)
符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する補填候補生成手段と、
前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する動きベクトル補填手段と、
を備える映像符号化装置。
(Appendix 1)
Among the pre-refinement vectors selected as a reference for searching for a predicted motion vector representing the prediction of the motion of the block into which the picture included in the video to be encoded is divided, the pre-refinement vector of the block adjacent to the current block. Supplementation candidate generating means for generating a candidate vector, comprising:
A motion vector compensation unit for selecting, from the candidate vectors, the compensation vector compensated as the pre-refinement vector when the number of inherited motion vectors obtained as the pre-refinement vector of the encoding target block is 1,
A video encoding device comprising:
(付記2)
前記動きベクトル補填手段は、前記継承動きベクトルと前記候補ベクトルとの距離に基づいて、前記補填ベクトルを選択する
付記1に記載の映像符号化装置。
(Appendix 2)
The video encoding device according to
(付記3)
前記動きベクトル補填手段は、前記候補ベクトルの大きさに基づいて、前記補填ベクトルを選択する
付記1又は2に記載の映像符号化装置。
(Appendix 3)
The video encoding device according to
(付記4)
前記動きベクトル補填手段は、前記候補ベクトルから異なる条件に従って複数の2次候補ベクトルを従って選択し、選択した前記複数の2次候補ベクトルから前記補填ベクトルを選択する
付記1乃至3のいずれかに記載の映像符号化装置。
(Appendix 4)
4. The motion vector compensation unit according to
(付記5)
符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成し、
前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する、
映像符号化方法。
(Appendix 5)
Among the pre-refinement vectors selected as a reference for searching for a predicted motion vector representing the prediction of the motion of the block into which the picture included in the video to be encoded is divided, the pre-refinement vector of the block adjacent to the current block. Generate a candidate vector containing
When the number of inherited motion vectors obtained as the pre-refinement vector of the encoding target block is 1, the compensation vector to be compensated as the pre-refinement vector is selected from the candidate vectors,
Video encoding method.
(付記6)
前記継承動きベクトルと前記候補ベクトルとの距離に基づいて、前記補填ベクトルを選択する
付記5に記載の映像符号化方法。
(Appendix 6)
The video encoding method according to Supplementary Note 5, wherein the compensation vector is selected based on a distance between the inherited motion vector and the candidate vector.
(付記7)
前記候補ベクトルの大きさに基づいて、前記補填ベクトルを選択する
付記5又は6に記載の映像符号化方法。
(Appendix 7)
7. The video encoding method according to claim 5, wherein the compensation vector is selected based on a size of the candidate vector.
(付記8)
前記候補ベクトルから異なる条件に従って複数の2次候補ベクトルを従って選択し、選択した前記複数の2次候補ベクトルから前記補填ベクトルを選択する
付記5乃至8のいずれかに記載の映像符号化方法。
(Appendix 8)
The video encoding method according to any one of Supplementary Notes 5 to 8, wherein a plurality of secondary candidate vectors are selected according to different conditions from the candidate vectors, and the supplementary vector is selected from the selected secondary candidate vectors.
(付記9)
コンピュータに、
符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する補填候補生成処理と、
前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される前記補填ベクトルを、前記候補ベクトルから選択する動きベクトル補填処理と、
を実行させる映像符号化プログラム。
(Appendix 9)
On the computer,
Among the pre-refinement vectors selected as a reference for searching for a predicted motion vector representing the prediction of the motion of the block into which the picture included in the video to be encoded is divided, the pre-refinement vector of the block adjacent to the current block. A compensation candidate generation process for generating a candidate vector, including:
When the number of inherited motion vectors obtained as the pre-refinement vector of the encoding target block is 1, the compensation vector to be supplemented as the pre-refinement vector, a motion vector compensation process of selecting from the candidate vectors,
A video encoding program that executes
(付記10)
前記動きベクトル補填処理は、前記継承動きベクトルと前記候補ベクトルとの距離に基づいて、前記補填ベクトルを選択する
付記9に記載の映像符号化プログラム。
(Appendix 10)
The video encoding program according to supplementary note 9, wherein the motion vector compensation processing selects the compensation vector based on a distance between the inherited motion vector and the candidate vector.
(付記11)
前記動きベクトル補填処理は、前記候補ベクトルの大きさに基づいて、前記補填ベクトルを選択する
付記9又は10に記載の映像符号化プログラム。
(Appendix 11)
The video encoding program according to
(付記12)
前記動きベクトル補填処理は、前記候補ベクトルから異なる条件に従って複数の2次候補ベクトルを従って選択し、選択した前記複数の2次候補ベクトルから前記補填ベクトルを選択する
付記9乃至11のいずれかに記載の映像符号化プログラム。
(Appendix 12)
12. The motion vector compensation process according to claim 9, further comprising selecting a plurality of secondary candidate vectors according to different conditions from the candidate vectors, and selecting the compensation vector from the selected plurality of secondary candidate vectors. Video coding program.
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 As described above, the present invention has been described with reference to the exemplary embodiments. However, the present invention is not limited to the exemplary embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
本発明によれば、符号化によって映像の圧縮を行う映像圧縮装置や、映像の圧縮をコンピュータ上で実現するプログラムなどの用途に適用できる。 ADVANTAGE OF THE INVENTION According to this invention, it is applicable to uses, such as a video compression apparatus which compresses an image by encoding, and a program which implements image compression on a computer.
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 動き補償回路
REFERENCE SIGNS LIST 1 video encoding device 2 video encoding device 2A video encoding device 10 motion vector interpolation unit 11 detection unit 12 interpolation vector selection unit 13 transmission unit 14 reception unit 15 first candidate selection unit 16 second candidate selection unit 17 selection execution unit Reference Signs List 20 target selection unit 21 first target selection unit 22 second target selection unit 30 refinement unit 31 first refinement unit 32 second refinement unit 40 bi-prediction generation unit 50 prediction selection unit 60 compensation candidate generation unit 70 mode determination unit 80 vector storage Unit 81 first vector storage unit 82 second vector storage unit 90 motion vector compensation unit 91 detection unit 92 compensation vector selection unit 93 transmission unit 94 reception unit 95 first candidate selection unit 96 second candidate selection unit 97 selection execution unit 98 3 candidate selection unit 99 propagation condition determination unit 100 motion compensation unit 101 block division unit 102 pre-analysis unit 103 Intra prediction unit 104 Switching unit 105 Integer conversion unit 106 Quantization unit 107 Dequantization unit 108 Inverse integer conversion unit 109 Encoding unit 116 Filter unit 117 Frame storage unit 118 Subtraction unit 119 Addition unit 200 Motion compensation unit 1000 Computer 1001 Processor 1002 Memory 1003 Storage device 1004 I / O interface 1005 Recording medium 1010 Motion vector compensation circuit 1011 Detection circuit 1012 Compensation vector selection circuit 1013 Transmission circuit 1014 Receiving circuit 1015 First candidate selection circuit 1016 Second candidate selection circuit 1017 Selection execution circuit 1020 Target Selection circuit 1021 First object selection circuit 1022 Second object selection circuit 1030 Refine circuit 1031 First refine circuit 1032 Second refine circuit 1040 Measurement generation circuit 1050 prediction selection circuit 1060 compensation candidate generation circuit 1070 mode determination circuit 1080 vector storage circuit 1081 first vector storage circuit 1082 second vector storage circuit 1090 motion vector compensation circuit 1091 detection circuit 1092 compensation vector selection circuit 1093 transmission circuit 1094 reception Circuit 1095 First candidate selection circuit 1096 Second candidate selection circuit 1097 Selection execution circuit 1098 Third candidate selection circuit 1099 Propagation condition determination circuit 1100 Motion compensation circuit 1101 Block division circuit 1102 Pre-analysis circuit 1103 Intra prediction circuit 1104 Switching circuit 1105 Integer conversion Circuit 1106 Quantization circuit 1107 Inverse quantization circuit 1108 Inverse integer conversion circuit 1109 Encoding circuit 1116 Filter circuit 1117 Frame storage circuit 11 8 subtraction circuit 1119 adder circuit 1200 motion compensation circuit
Claims (10)
前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される補填ベクトルを、前記候補ベクトルから選択する動きベクトル補填手段と、
を備える映像符号化装置。 Among the pre-refinement vectors selected as a reference for searching for a predicted motion vector representing the prediction of the motion of the block into which the picture included in the video to be encoded is divided, the pre-refinement vector of the block adjacent to the current block. Supplementation candidate generating means for generating a candidate vector, comprising:
A motion vector compensating unit number of the refined before inheritance motion vectors obtained as a vector for the encoding target block is an accessory Hama vector Ru is compensated as the refining before vector when it is 1, selected from the candidate vectors,
A video encoding device comprising:
請求項1に記載の映像符号化装置。 The video encoding device according to claim 1, wherein the motion vector compensation unit selects the compensation vector based on a distance between the inherited motion vector and the candidate vector.
請求項1又は2に記載の映像符号化装置。 The video encoding device according to claim 1, wherein the motion vector compensation unit selects the compensation vector based on a size of the candidate vector.
請求項1乃至3のいずれかに記載の映像符号化装置。 4. The motion vector compensation unit according to claim 1, wherein the motion vector compensation unit selects a plurality of secondary candidate vectors according to different conditions from the candidate vectors, and selects the compensation vector from the selected plurality of secondary candidate vectors. 5. A video encoding device according to claim 1.
前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される補填ベクトルを、前記候補ベクトルから選択する、
映像符号化方法。 Among the pre-refinement vectors selected as a reference for searching for a predicted motion vector representing the prediction of the motion of the block into which the picture included in the video to be encoded is divided, the pre-refinement vector of the block adjacent to the current block. Generate a candidate vector containing
The refining front complement number of inheritance motion vectors obtained as a vector Ru is compensated as the refining prior vector in the case of 1 Hama vector of the encoding target block is selected from the candidate vectors,
Video encoding method.
請求項5に記載の映像符号化方法。 The video encoding method according to claim 5, wherein the compensation vector is selected based on a distance between the inherited motion vector and the candidate vector.
請求項5又は6に記載の映像符号化方法。 The video encoding method according to claim 5, wherein the compensation vector is selected based on a size of the candidate vector.
符号化対象映像に含まれるピクチャが分割されたブロックの動きの予測を表す予測動きベクトルの探索の基準として選択されるリファイン前ベクトルのうち、符号化対象ブロックに隣接する前記ブロックの前記リファイン前ベクトルを含む、候補ベクトルを生成する補填候補生成処理と、
前記符号化対象ブロックの前記リファイン前ベクトルとして得られた継承動きベクトルの数が1である場合に前記リファイン前ベクトルとして補填される補填ベクトルを、前記候補ベクトルから選択する動きベクトル補填処理と、
を実行させる映像符号化プログラム。 On the computer,
Among the pre-refinement vectors selected as a reference for searching for a predicted motion vector representing the prediction of the motion of the block into which the picture included in the video to be encoded is divided, the pre-refinement vector of the block adjacent to the current block. A compensation candidate generation process for generating a candidate vector, including:
A motion vector compensating process that the number of the refining before inheritance motion vectors obtained as a vector for the encoding target block is an accessory Hama vector Ru is compensated as the refining before vector when it is 1, selected from the candidate vectors,
A video encoding program that executes
請求項8に記載の映像符号化プログラム。 The video encoding program according to claim 8, wherein the motion vector compensation processing selects the compensation vector based on a distance between the inherited motion vector and the candidate vector.
請求項8又は9に記載の映像符号化プログラム。 The video encoding program according to claim 8, wherein the motion vector compensation processing selects the compensation vector based on a size of the candidate vector.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015243211A JP6638366B2 (en) | 2015-12-14 | 2015-12-14 | Video coding apparatus, video coding method, and video coding program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015243211A JP6638366B2 (en) | 2015-12-14 | 2015-12-14 | Video coding apparatus, video coding method, and video coding program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017112416A JP2017112416A (en) | 2017-06-22 |
JP6638366B2 true JP6638366B2 (en) | 2020-01-29 |
Family
ID=59079634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015243211A Active JP6638366B2 (en) | 2015-12-14 | 2015-12-14 | Video coding apparatus, video coding method, and video coding program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6638366B2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007166545A (en) * | 2005-12-16 | 2007-06-28 | Canon Inc | Motion vector detection device and method |
KR101393824B1 (en) * | 2010-10-06 | 2014-05-13 | 인텔 코오퍼레이션 | System and method for low complexity motion vector derivation |
JP6596864B2 (en) * | 2015-03-23 | 2019-10-30 | 日本電気株式会社 | Video encoding apparatus, video encoding method, and video encoding program |
-
2015
- 2015-12-14 JP JP2015243211A patent/JP6638366B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017112416A (en) | 2017-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018127188A1 (en) | Multi-hypotheses merge mode | |
JP2022503715A (en) | Adaptation motion vector Change motion vector by resolution | |
JP2022508177A (en) | Interaction between intra-block copy mode and inter-prediction tool | |
US20130215968A1 (en) | Video information encoding method and decoding method | |
JP2022531554A (en) | Symmetric motion vector differential coding | |
JP2022507131A (en) | Build history-based movement candidate list for intra-block copy | |
JP2022532629A (en) | Syntax signaling in subblock merge mode | |
CN110832862A (en) | Error tolerant and parallel processing of motion vector derivation at decoding end | |
JP5835521B1 (en) | Moving picture decoding apparatus, moving picture decoding method, moving picture decoding program, receiving apparatus, receiving method, and receiving program | |
JP5725006B2 (en) | Moving picture decoding apparatus, moving picture decoding method, moving picture decoding program, receiving apparatus, receiving method, and receiving program | |
JP6638366B2 (en) | Video coding apparatus, video coding method, and video coding program | |
JP6596864B2 (en) | Video encoding apparatus, video encoding method, and video encoding program | |
JP5725009B2 (en) | Moving picture decoding apparatus, moving picture decoding method, moving picture decoding program, receiving apparatus, receiving method, and receiving program | |
JP6183505B2 (en) | Video encoding device | |
JP5843040B1 (en) | Moving picture decoding apparatus, moving picture decoding method, moving picture decoding program, receiving apparatus, receiving method, and receiving program | |
JP5975146B2 (en) | Moving picture coding apparatus, moving picture coding method, moving picture coding program, transmission apparatus, transmission method, and transmission program | |
JP5874793B2 (en) | Moving picture decoding apparatus, moving picture decoding method, moving picture decoding program, receiving apparatus, receiving method, and receiving program | |
JP5874792B2 (en) | Moving picture decoding apparatus, moving picture decoding method, moving picture decoding program, receiving apparatus, receiving method, and receiving program | |
JP5874790B2 (en) | Moving picture decoding apparatus, moving picture decoding method, moving picture decoding program, receiving apparatus, receiving method, and receiving program | |
JP2015019403A (en) | Dynamic image decoding device, dynamic image decoding method, dynamic image decoding program, receiving device, receiving method, and receiving program |
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 |