WO2019049684A1 - 画像処理装置および方法 - Google Patents

画像処理装置および方法 Download PDF

Info

Publication number
WO2019049684A1
WO2019049684A1 PCT/JP2018/031284 JP2018031284W WO2019049684A1 WO 2019049684 A1 WO2019049684 A1 WO 2019049684A1 JP 2018031284 W JP2018031284 W JP 2018031284W WO 2019049684 A1 WO2019049684 A1 WO 2019049684A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
matching
motion vector
unit
sub
Prior art date
Application number
PCT/JP2018/031284
Other languages
English (en)
French (fr)
Inventor
健治 近藤
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US16/641,649 priority Critical patent/US20210168396A1/en
Publication of WO2019049684A1 publication Critical patent/WO2019049684A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search

Definitions

  • FRUC Frame Rate Up Conversion
  • JVET Joint Video Exploration Team
  • the motion vector information is information including at least one of the motion vector candidate and the differential motion vector described above.
  • the prediction unit 30 acquires, as a reference image, a decoded image of a time different from the block to be encoded, which is stored in the frame memory 29, based on the mode information pred_mode_flag of the prediction information Pinfo and the reference image identification information.
  • the prediction unit 30 performs inter prediction processing in a mode determined by the FRUC_flag on the reference image based on the FRUC_flag, the FRUC_Mode_flag, the motion vector information, and the like.
  • the horizontal direction indicates time
  • the picture PIC12 is a frame at a time earlier than the picture PIC11 in display order
  • the picture PIC13 is new time in display order than the picture PIC11 It is a frame of
  • TD0 indicates the time distance between the picture PIC11 and the picture PIC12
  • TD1 indicates the time distance between the picture PIC11 and the picture PIC13.
  • the time distance TD0 and the time distance TD1 are equal.
  • an area TM12-1 and an area TM12-2 having the same size and shape as the area TM11-1 and the area TM11-2 are used as templates.
  • template matching is used to derive motion information of a CU
  • template matching is also used in subblocks to derive motion information of subblocks.
  • FIG. 5 is a diagram showing, among the subblocks, a subblock in which a template is present and a subblock in which no template is present.
  • parts corresponding to those in FIG. 4 are given the same reference numerals, and the description thereof will be omitted as appropriate.
  • the subblocks in which the template exists and the subblocks in which the template do not exist are hatched differently.
  • the prediction unit 30 has a configuration shown in FIG. 6 as a configuration for deriving a motion vector by template matching or bilateral matching.
  • the difference between the finally obtained motion vector and the adjacent motion vector, which is a candidate for the motion vector used for deriving the motion vector, is a CU to be encoded Or sub-block) is calculated.
  • the motion vector derivation unit 72 calculates the difference between the difference calculation blocks of the two reference pictures by bilateral matching, and calculates the cost obtained from the calculation result . For example, the cost obtained for the difference calculation block is made smaller as the difference for the difference calculation block is smaller.
  • the prediction unit 30 sets an image generated by motion compensation using each of the blocks indicated by the motion vector, which is motion information in each of the two reference pictures, as a predicted image P.
  • the prediction unit 30 sets an image of a block indicated by a motion vector, which is motion information in a reference picture, as a predicted image P.
  • step S172 the motion vector deriving unit 72 calculates, for each candidate of the start point, the difference between difference calculation blocks determined by the candidate of the start point in two reference pictures by bilateral matching.
  • the motion vector derivation unit 72 calculates the cost obtained from the calculation result of the difference. In this case, reference pictures at different times which are decoded images read from the frame memory 29 are used to perform bilateral matching.
  • step S175 the prediction control unit 51 divides the CU to be encoded into sub blocks. For example, a CU to be encoded is divided into 16 subblocks.
  • the image decoding apparatus 201 shown in FIG. 14 decodes the coded stream generated by the image coding apparatus 11 by a decoding method corresponding to the coding method in the image coding apparatus 11.
  • the image decoding apparatus 201 implements the technology proposed for HEVC and the technology proposed for JVET.
  • FIG. 14 shows main processing units, data flows, and the like, and the items shown in FIG. 14 are not limited to all. That is, in the image decoding apparatus 201, there may be a processing unit that is not shown as a block in FIG. 14, or there may be processing or data flow that is not shown as an arrow or the like in FIG.
  • the prediction unit 216 supplies the predicted image P of the block to be decoded generated as a result of the intra prediction process or the inter prediction process to the calculation unit 214.
  • the decoding unit 211 supplies the encoding parameter to each unit of the image decoding apparatus 201, and supplies the quantization conversion coefficient level level to the inverse quantization unit 212.
  • step S212 the decoding unit 211 divides the CTU based on the split flag included in the coding parameter, and sets a block corresponding to each quantized transform coefficient level level, that is, a CU or a sub block as a block to be decoded.
  • the processing of the subsequent steps S213 to S217 is performed for each block to be decoded.
  • the image decoding apparatus 201 decodes the block to be decoded according to the coding parameter. By decoding the image in such a proper mode, it is possible to obtain a good quality image even with a coded stream with a small amount of code.
  • step S 251 the inverse quantization unit 212 inversely quantizes the quantized transformation coefficient level level obtained by the process of step S 211 in FIG. 16 to derive a transformation coefficient Coeff_IQ, and supplies the transformation coefficient Coeff_IQ to the inverse transformation unit 213.
  • FRUC_Mode_flag is read out from the coded stream by the decoding unit 211 in step S211 in FIG.
  • the prediction information Pinfo including the read FRUC_Mode_flag is supplied from the decoding unit 211 to the prediction unit 216.
  • the prediction unit 216 acquires the FRUC_Mode_flag from the prediction information Pinfo thus supplied.
  • step S256 the prediction unit 216 derives motion information by template matching. Thereby, a motion vector is obtained as motion information of the block to be decoded.
  • step S258 the process of step S258 is performed thereafter.
  • the prediction unit 216 performs motion compensation based on the motion information derived by the process of step S256 or step S257, that is, the motion vector to generate a predicted image P, and supplies the predicted image P to the calculation unit 214.
  • steps S311 to S316 are the same as the processes of steps S171 to S176 of FIG. 13, and thus the description thereof will be omitted.
  • the size of the sub block to which each block matching in the case of specifying by the size corresponds is shown.
  • the size corresponds to 16 or more subblocks.
  • the size corresponds to four or more subblocks.
  • the size of the sub block here is a size in units of pixels.
  • the designation of the size of the sub block or the number of divisions of the CU is performed by the image encoding device 11 at the time of block division of motion information derivation processing by template matching shown in FIG. 24 by the prediction unit 30 of FIG.
  • the size of the sub block for each block matching or the division number of CU described above may be set in advance in the split flag of the prediction information Pinfo.
  • the split flag of the prediction information Pinfo is referred to at the time of block division.
  • the candidate acquisition unit 251 performs the process of step S371. Also, the motion vector derivation unit 252 performs the processing of steps S372 to S374, and the prediction control unit 231 performs the processing of steps S375 to S377.
  • the bilateral matching processing unit 233 performs the process of step S378, the template matching processing unit 232 performs the process of step S379, and the prediction control unit 231 performs the process of step S380.
  • POC can be obtained from slice_pic_order_cnt_lsb information of a slice header in the case of HEVC as an example.
  • a of FIG. 30 shows an example of template matching in the case where the POC distance is one.
  • the size of the corresponding sub-block is 32. If the POC distance is 2, the size of the corresponding sub-block is 16. When the POC distance is 3, the size of the corresponding sub-block is 8. When the POC distance is 4 or more, the size of the corresponding sub-block is 4.
  • the size of the subblock is a size in units of pixels.
  • step S405 in the motion information derivation process by template matching in FIG. 24 and in step S175 in the motion information derivation process by bilateral matching in FIG.
  • FIG. 35 is a diagram showing a correspondence example of template matching, CU size, POC distance, and division into sub blocks.
  • FIG. 36 is a block diagram showing an example of a hardware configuration of a computer that executes the series of processes described above according to a program.
  • the plurality of processes included in one step can be executed by being shared by a plurality of devices in addition to being executed by one device.

Abstract

本技術は、動き補償の精度を高くすることができるようにする画像処理装置および方法に関する。 画像処理装置は、参照画像を用いた第1のブロックマッチングにより処理対象のブロックの動きベクトルを導出し、そのブロックを構成するサブブロックの一部の動きベクトルを、第1のブロックマッチングとは異なる第2のブロックマッチングを用いて導出する予測部を備える。本技術は画像符号化装置および画像復号装置に適用することができる。

Description

画像処理装置および方法
 本技術は画像処理装置および方法に関し、特に、動き補償の精度を高くすることができるようにした画像処理装置および方法に関する。
 例えば、画像の符号化や復号に関する技術としてFRUC(Frame Rate Up Conversion)と呼ばれる技術が提案されている。このFRUC技術はJVET(Joint Video Exploration Team)で提案されている技術であり、FRUC技術ではインター予測の際にデコーダ側で動き情報の予測が行われる(例えば、非特許文献1参照)。
 FRUC技術では、デコーダにおいてテンプレートマッチングまたはバイラテラルマッチングによってブロックマッチング処理が行われ、動き情報が導出される。このようにデコーダにおいて動き情報を導出すれば、ビットストリームに格納する動き情報に関する情報を削減することができるようになる。
Joint Video Exploration Team (JVET)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, "Algorithm Description of Joint Exploration Test Model 4" , JVET-D1001_v3, 4th Meeting: Chengdu, CN, 15-21 October 2016
 上述したFRUC技術では、Coding Unit(CU)でブロックマッチングを用いて動き情報の導出を行い、続いて、ブロックを分割してサブブロックの単位でブロックマッチングを行って、サブブロックの単位で動き情報の導出が行われていた。
 その際、CUで行われたブロックマッチングの方式が、サブブロックでも採用されるため、ブロックにおけるサブブロックの位置によっては、動きベクトルの導出精度が低くなってしまうことがあった。
 本技術は、このような状況に鑑みてなされたものであり、動き補償の精度を高くすることができるようにするものである。
 本技術の第1の側面の画像処理装置は、参照画像を用いた第1のブロックマッチングにより処理対象のブロックの動きベクトルを導出し、前記ブロックを構成するサブブロックの一部の動きベクトルを、前記第1のブロックマッチングとは異なる第2のブロックマッチングを用いて導出する予測部を備える。
 本技術の第1の側面においては、参照画像を用いた第1のブロックマッチングにより処理対象のブロックの動きベクトルが導出される。また、前記ブロックを構成するサブブロックの一部の動きベクトルが、前記第1のブロックマッチングとは異なる第2のブロックマッチングを用いて導出される。
 本技術の第2の側面の画像処理装置は、参照画像を用いたブロックマッチングにより処理対象のブロックの動きベクトルを導出し、前記ブロックマッチングに用いた画像間の時間間隔を示す POC距離に応じて、前記ブロックのサブブロックへの分割を禁止するか、または、前記ブロックをサブブロックに分割するときの前記ブロックの分割数を加減する予測部を備える。
 本技術の第2の側面においては、参照画像を用いたブロックマッチングにより処理対象のブロックの動きベクトルが導出される。また、前記ブロックマッチングに用いた画像間の時間間隔を示す POC距離に応じて、前記ブロックのサブブロックへの分割が禁止されるか、または、前記ブロックをサブブロックに分割するときの前記ブロックの分割数が加減される。
 本技術によれば、動き補償の精度を高くすることができる。
 なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
画像符号化装置の構成例を示す図である。 バイラテラルマッチングについて説明する図である。 テンプレートマッチングについて説明する図である。 サブブロック単位で行われるテンプレートマッチングについて説明する図である。 テンプレートが存在するサブブロックとテンプレートが存在しないサブブロックとを分けて示す図である。 予測部の構成例を示す図である。 画像符号化処理を説明するフローチャートである。 インター予測処理モード設定処理を説明するフローチャートである。 FRUCモード符号化処理を説明するフローチャートである。 テンプレートマッチングによる動き情報導出処理を説明するフローチャートである。 図10のステップS138におけるテンプレートマッチングによるサブブロックの動き情報導出処理を説明するフローチャートである。 図10のステップS139におけるバイラテラルマッチングによるサブブロックの動き情報導出処理を説明するフローチャートである。 バイラテラルマッチングによる動き情報導出処理を説明するフローチャートである。 画像復号装置の構成例を示す図である。 予測部の構成例を示す図である。 画像復号処理を説明するフローチャートである。 FRUCモード復号処理を説明するフローチャートである。 テンプレートマッチングによる動き情報導出処理を説明するフローチャートである。 図18のステップS278におけるテンプレートマッチングによるサブブロックの動き情報導出処理を説明するフローチャートである。 図18のステップS279におけるバイラテラルマッチングによるサブブロックの動き情報導出処理を説明するフローチャートである。 バイラテラルマッチングによる動き情報導出処理を説明するフローチャートである。 テンプレートマッチングにおけるサブブロックのサイズの影響について説明する図である。 FRUCモードにおけるブロックマッチングの種類毎のサブブロックのサイズの対応表を示す図である。 画像符号化装置のテンプレートマッチングによる動き情報導出処理を説明するフローチャートである。 画像復号装置のテンプレートマッチングによる動き情報導出処理を説明するフローチャートである。 サブブロック単位で行われるバイラテラルマッチングの例を示す図である。 画像符号化装置によるバイラテラルマッチングによる動き情報導出処理を説明するフローチャートである。 画像復号装置によるバイラテラルマッチングによる動き情報導出処理を説明するフローチャートである。 CUにおけるサブブロックのサイズ例を示す図である。 POC距離が1である場合のブロックマッチングの例を示す図である。 POC距離が2である場合のブロックマッチングの例を示す図である。 POC距離とサブブロックサイズの対応例を示す図である。 CUのサイズ、POC距離、およびサブブロックへの分割の対応例を示す図である。 バイラテラルマッチング、CUのサイズ、POC距離、およびサブブロックへの分割の対応例を示す図である。 テンプレートマッチング、CUのサイズ、POC距離、およびサブブロックへの分割の対応例を示す図である。 コンピュータの構成例を示す図である。
 以下、図面を参照して、本技術を適用した実施の形態について説明する。説明は以下の順序で行う。
 1.第1の実施の形態(テンプレートマッチングの場合のサブブロックのブロックマッチング)
 2.第2の実施の形態(テンプレートマッチングにおけるサブブロックのサイズ)
 3.第3の実施の形態(バイラテラルマッチングの場合のサブブロックのブロックマッチング)
 4.第4の実施の形態(サブブロックのサイズとPOC距離)
 5.第5の実施の形態(CUのサイズと分割数)
 6.第6の実施の形態(ブロックマッチング種類およびCUのサイズと分割数)
 7.コンピュータの構成例
〈第1の実施の形態〉
〈画像符号化装置の構成例〉
 本技術を適用した画像処理装置としての画像符号化装置について説明する。
 図1は、本技術を適用した画像符号化装置の一実施の形態の構成例を示す図である。
 図1に示す画像符号化装置11は、AVC(Advanced Video Coding)やHEVC(High Efficiency Video Coding)のように、画像とその予測画像との予測残差を符号化するエンコーダである。例えば、画像符号化装置11は、HEVCの技術やJVETにて提案された技術を実装している。
 画像符号化装置11では、処理対象となる動画像がインター予測モードまたはイントラ予測モードにより符号化される。動画像の符号化時や復号時には、動画像を構成するフレームに対応するピクチャがスライスに分割され、さらにそのスライスがCU(Coding Unit)と呼ばれる処理単位(符号化単位)に分割されてCU単位で符号化および復号される。CUは、PU(Prediction Unit)と呼ばれるブロックに分割される。次世代の規格化で検討中の技術においては、CUとPUは同じブロックサイズになっているため、特に断りのない場合、CU(=PU)として説明する。
 CUは、最大符号化単位であるCTU(Coding Tree Unit)を再帰的に分割することにより形成される、可変的なサイズを有するブロックである。以下では、特に断りのない場合には、CTUを単にCUと称し、CTUを分割して得られたCUをサブブロックと称することとする。また、以下ではCUとサブブロックを特に区別する必要がないときには、単にブロックとも称することとする。
 さらに、インター予測モードには、例えば、AMVP(Advanced Motion Vector Prediction)モードや、FRUC(Frame Rate Up Conversion)モードなどの複数のモードがあり、それらの複数のモードのうちのいずれかのモードに従って符号化および復号が行われる。
 AMVPモードは、ピクチャ内のブロックについて、予測残差、動きベクトルを得るための動きベクトルの候補、および差分動きベクトルがビットストリームに格納されるモードである。すなわち、動き情報として動きベクトルの候補と差分動きベクトルがビットストリームに格納される。
 ここでは動きベクトルの候補を示す情報として、処理対象のブロックの周囲にある複数の周辺領域のうちの1つの周辺領域を示すインデックス等がビットストリームに格納されている。AMVPモードでは、復号時には、動きベクトルの候補とされた周辺領域の動きベクトルに対して差分動きベクトルを加算して得られるベクトルが処理対象のブロックの動きベクトルとして用いられる。
 FRUCモードは、ピクチャ内のブロックについて、テンプレートマッチングとバイラテラルマッチングのいずれにより動き情報を導出するかを示すFRUC_Mode_flagと、予測残差と、差分動きベクトルとがビットストリームに格納されるモードである。このFRUCモードは、AMVPモードを基本としてデコーダ側で動き情報を導出するモードである。また、FRUCモードでは、必ずしも差分動きベクトルがビットストリームに格納されなくてもよい。
 なお、図1においては、処理部やデータの流れ等の主なものを示しており、図1に示されるものが全てとは限らない。つまり、画像符号化装置11において、図1においてブロックとして示されていない処理部が存在したり、図1において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
 画像符号化装置11は、制御部21、演算部22、変換部23、量子化部24、符号化部25、逆量子化部26、逆変換部27、演算部28、フレームメモリ29、および予測部30を有する。画像符号化装置11は、入力されるフレーム単位の動画像であるピクチャに対してCUごとまたはサブブロックごとに符号化を行う。
 具体的には、画像符号化装置11の制御部21は、外部からの入力等に基づいて、ヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等からなる符号化パラメータを設定する。
 ヘッダ情報Hinfoは、例えば、ビデオパラメータセット(VPS(Video Parameter Set))、シーケンスパラメータセット(SPS(Sequence Parameter Set))、ピクチャパラメータセット(PPS(Picture Parameter Set))、スライスヘッダ(SH)等の情報を含む。
 予測情報Pinfoには、例えば、サブブロック(PU(Prediction Unit))の形成時の各分割階層における水平方向または垂直方向の分割の有無を示すsplit flagが含まれる。また、予測情報Pinfoには、ブロックごとに、そのブロックの予測処理がイントラ予測処理であるか、またはインター予測処理であるかを示すモード情報pred_mode_flagが含まれる。
 モード情報pred_mode_flagがインター予測処理を示す場合、予測情報Pinfoには、FRUC_flag、FRUC_Mode_flag、動きベクトル情報、参照画像(参照ピクチャ)を特定する参照画像特定情報などが含まれる。
 FRUC_flagは、FRUCモードであるか否かを示すフラグ情報であり、例えばFRUCモードである場合にはFRUC_flagの値は1とされ、FRUCモードでない場合にはFRUC_flagの値は0とされる。
 FRUC_Mode_flagは、FRUCモードである場合に、テンプレートマッチングまたはバイラテラルマッチングのいずれにより動き情報を導出するかを示すフラグ情報である。例えばバイラテラルマッチングにより動き情報を導出する場合にはFRUC_Mode_flagの値は1とされ、テンプレートマッチングにより動き情報を導出する場合にはFRUC_Mode_flagの値は0とされる。
 動きベクトル情報は、上述した動きベクトルの候補と差分動きベクトルのうちの少なくともいずれか一方からなる情報である。
 モード情報pred_mode_flagがイントラ予測処理を示す場合、予測情報Pinfoには、そのイントラ予測処理のモードであるイントラ予測モードを示すイントラ予測モード情報などが含まれる。もちろん、予測情報Pinfoの内容は任意であり、上述した例以外のどのような情報がこの予測情報Pinfoに含まれるようにしてもよい。
 変換情報Tinfoには、TB(Transform Block)と呼ばれる処理単位(変換ブロック)のサイズを示すTBSizeなどが含まれる。輝度(Y)および色差(Cb,Cr)ごとのTBにより、直交変換処理の処理単位であるTU(Transform Unit)が構成されるが、ここではTUはサブブロックと同じであるとされる。
 また、画像符号化装置11では、符号化対象となる動画像のピクチャが演算部22に供給される。
 演算部22は、入力されるピクチャを順に符号化対象のピクチャとし、予測情報Pinfoのsplit flagに基づいて、符号化対象のピクチャに対して符号化対象のブロック、すなわちCUまたはサブブロックを設定する。演算部22は、符号化対象のブロックの画像I(以下、カレントブロックとも称する)から、予測部30から供給されたブロック単位の予測画像Pを減算して予測残差Dを求め、変換部23に供給する。
 変換部23は、制御部21から供給された変換情報Tinfoに基づいて、演算部22から供給された予測残差Dに対して直交変換等を行い、変換係数Coeffを導出し、量子化部24に供給する。
 量子化部24は、制御部21から供給された変換情報Tinfoに基づいて、変換部23から供給された変換係数Coeffをスケーリング(量子化)し、量子化変換係数レベルlevelを導出する。量子化部24は、量子化変換係数レベルlevelを符号化部25および逆量子化部26に供給する。
 符号化部25は、量子化部24から供給された量子化変換係数レベルlevel等を所定の方法で符号化する。例えば、符号化部25は、シンタックステーブルの定義に沿って、制御部21から供給された符号化パラメータと、量子化部24から供給された量子化変換係数レベルlevelを、各シンタックス要素のシンタックス値へ変換する。符号化パラメータは、ヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等からなる。そして、符号化部25は、各シンタックス値を算術符号化等により符号化する。
 符号化部25は、例えば符号化の結果得られた各シンタックス要素のビット列である符号化データを多重化し、符号化ストリームとして出力する。
 逆量子化部26は、制御部21から供給された変換情報Tinfoに基づいて、量子化部24から供給された量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。逆量子化部26は、変換係数Coeff_IQを逆変換部27に供給する。この逆量子化部26により行われる逆量子化は、量子化部24により行われる量子化の逆処理であり、後述する画像復号装置において行われる逆量子化と同様の処理である。
 逆変換部27は、制御部21から供給された変換情報Tinfoに基づいて、逆量子化部26から供給された変換係数Coeff_IQに対して逆直交変換等を行い、予測残差D’を導出する。逆変換部27は、予測残差D’を演算部28に供給する。
 この逆変換部27により行われる逆直交変換は、変換部23により行われる直交変換の逆処理であり、後述する画像復号装置において行われる逆直交変換と同様の処理である。
 演算部28は、逆変換部27から供給された予測残差D’と、予測部30から供給された、その予測残差D’に対応する予測画像Pとを加算して局所的な復号画像Recを導出する。演算部28は、局所的な復号画像Recをフレームメモリ29に供給する。
 フレームメモリ29は、演算部28から供給された局所的な復号画像Recを用いてピクチャ単位の復号画像を再構築し、フレームメモリ29内のバッファへ格納する。
 フレームメモリ29は、予測部30により指定される復号画像を参照画像(参照ピクチャ)としてバッファより読み出し、予測部30に供給する。また、フレームメモリ29は、復号画像の生成に係るヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfoなどを、フレームメモリ29内のバッファに格納するようにしてもよい。
 予測部30は、予測情報Pinfoのモード情報pred_mode_flagに基づいて、フレームメモリ29に格納された、符号化対象のブロックと同一時刻の復号画像を参照画像として取得する。そして、予測部30は、参照画像を用いて符号化対象のブロックに対して、イントラ予測モード情報が示すイントラ予測モードのイントラ予測処理を行う。
 また、予測部30は、予測情報Pinfoのモード情報pred_mode_flagと参照画像特定情報に基づいて、フレームメモリ29に格納された、符号化対象のブロックとは異なる時刻の復号画像を参照画像として取得する。予測部30は、FRUC_flag、FRUC_Mode_flag、動きベクトル情報等に基づいて、参照画像に対してFRUC_flagにより定まるモードでのインター予測処理を行う。
 予測部30は、イントラ予測処理またはインター予測処理の結果生成された符号化対象のブロックの予測画像Pを演算部22および演算部28に供給する。
〈FRUCモードについて〉
 ここで、FRUCモードについて説明する。
 例えばインター予測では、動き補償を行うためにデコーダ側において動きベクトルや参照インデックスといった動き情報が必要となる。
 通常、動き情報は、動きベクトルの候補との差分動きベクトル情報といった形で符号化ストリームに含められ、デコーダは動きベクトルの候補と差分動きベクトル情報に基づいて動きベクトルを再構成する。
 符号化ストリームに差分動きベクトルを格納すると、符号化ストリームの符号量が増加することになるため、符号化効率が悪化することになる。
 FRUC技術は、動き情報の予測、すなわち動き情報の導出の方法の1つである。FRUC技術によりデコーダ側で動き情報を導出することで、高精度に動きベクトルを予測できるようになるだけでなく動き情報の符号量を削減することができ、符号化効率を向上させることができる。
 上述したようにFRUCモードでは、エンコーダ側においてバイラテラルマッチングとテンプレートマッチングのうちのいずれかのブロックマッチングを選択することができ、デコーダ側ではエンコーダ側で指定された方法により動き情報を導出することになる。
 バイラテラルマッチングでは、図2に示すようにピクチャPIC11と、ピクチャPIC12およびピクチャPIC13とが用いられて、ピクチャPIC11上のカレントブロックCB11の動きベクトルが導出される。ピクチャPIC11は、符号化対象のピクチャ(フレーム)である。ピクチャPIC12およびピクチャPIC13は、参照ピクチャである。
 なお、図2において横方向は時間を示しており、この例ではピクチャPIC12は、ピクチャPIC11よりも表示順で古い時刻のフレームとなっており、ピクチャPIC13は、ピクチャPIC11よりも表示順で新しい時刻のフレームとなっている。
 特に、ピクチャPIC12は参照画像特定情報としてのリファレンスリストRef0により参照ピクチャとして示されるピクチャ(フレーム)である。これに対してピクチャPIC13は参照画像特定情報としてのリファレンスリストRef1により参照ピクチャとして示されるピクチャ(フレーム)である。
 ここで、リファレンスリストRef0は、基本的には符号化対象のピクチャPIC11よりも古いフレームを参照ピクチャとして示すリストである。リファレンスリストRef0では符号化対象のピクチャを含む複数のピクチャを参照ピクチャとして指定することができる。
 同様に、リファレンスリストRef1は、基本的には符号化対象のピクチャPIC11よりも新しいフレームを参照ピクチャとして示すリストである。リファレンスリストRef1では符号化対象のピクチャを含む複数のピクチャを参照ピクチャとして指定することができる。
 また、図2に示す例では、TD0はピクチャPIC11とピクチャPIC12との間の時間距離を示しており、TD1はピクチャPIC11とピクチャPIC13との間の時間距離を示している。ここでは、例えば時間距離TD0と時間距離TD1は等しい距離とされる。
 符号化対象であるカレントブロックCB11の動きベクトルの導出時には、カレントブロックCB11の中心を通る直線L11について、ブロックBL11と、ブロックBL12とが選択される。ブロックBL11は、ピクチャPIC12における直線L11との交点を中心とするブロックであり、ブロックBL12は、ピクチャPIC13における直線L11との交点を中心とするブロックである。そして、ブロックBL11とブロックBL12との差分が算出される。
 さらに、サーチレンジ内において、ブロックBL11とブロックBL12の位置がずらされながら、全てのブロックBL11とブロックBL12の組み合わせについて差分が計算され、差分が最も小さくなる組み合わせが探索される。そして、最も差分が小さくなる組み合わせのブロックを示すベクトルが求めたい動きベクトルとされる。
 なお、このとき、ブロックBL11の中心とブロックBL12の中心とを結ぶ直線が、必ずカレントブロックCB11の中心を通るように各ブロックが選択される。つまり、カレントブロックCB11を直線的に結ぶブロックBL11およびブロックBL12の差分が計算される。
 この例では、カレントブロックCB11の動きベクトルとして、図中、矢印により表される動きベクトルMV0と動きベクトルMV1とが得られている。
 動きベクトルMV0は、カレントブロックCB11の中心位置と同じ位置関係のピクチャPIC12上の位置を始点とし、ブロックBL11の中心の位置を終点とするベクトルである。同様に、動きベクトルMV1は、カレントブロックCB11の中心位置と同じ位置関係のピクチャPIC13上の位置を始点とし、ブロックBL12の中心の位置を終点とするベクトルである。
 このようにバイラテラルマッチングでは、ピクチャPIC12とピクチャPIC13との間ではテクスチャが直線状に動くというモデルを仮定しており、等速で運動(移動)する物体がこのモデルに当てはまる。
 以上のようにしてバイラテラルマッチングでは、差分の計算対象となるブロックを変化させながら、符号化対象のピクチャとは表示時刻が異なり、かつ互いに表示時刻が異なる2つの参照ピクチャを用いたブロックマッチングにより動きベクトルが導出される。これにより、エンコーダ側だけでなくデコーダ側においても高精度に動きベクトルを導出(予測)することができる。
 また、テンプレートマッチングでは、例えば図3に示すように符号化対象のピクチャと、符号化対象のピクチャとは表示時刻の異なる参照ピクチャとの間でブロックマッチングが行われる。なお、図3において図2における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
 図3に示す例では、ピクチャPIC11のカレントブロックCB11が符号化対象となっており、このピクチャPIC11と、ピクチャPIC12との間でブロックマッチングが行われる。
 ブロックマッチングでは、ピクチャPIC11上のカレントブロックCB11に隣接する領域TM11-1および領域TM11-2がブロックマッチング、つまり差分の計算に用いられる領域であるテンプレートとされる。なお、以下、領域TM11-1および領域TM11-2を特に区別する必要のない場合、単に領域TM11とも称することとする。
 この領域TM11は、カレントブロックCB11が処理対象となった時点で、既に符号化済みまたは復号済みとなっている領域である。
 また、参照ピクチャであるピクチャPIC12では、領域TM11-1および領域TM11-2と同じ大きさおよび形状である領域TM12-1および領域TM12-2がテンプレートとされる。
 なお、領域TM12-1の形状および大きさは、領域TM11-1の形状および大きさと同じであり、領域TM12-2の形状および大きさは、領域TM11-2の形状および大きさと同じである。さらに、領域TM12-1と領域TM12-2の相対的な位置関係は、領域TM11-1と領域TM11-2の相対的な位置関係と同じとなっている。
 以下、領域TM12-1および領域TM12-2を特に区別する必要のない場合、単に領域TM12とも称することとする。
 テンプレートマッチングでは、所定のサーチレンジ内で領域TM12の位置をずらしながら、各位置について同じ形状の領域TM11と領域TM12との差分を計算し、差分が最も小さくなる領域TM12の位置が探索される。
 この例では、差分の計算時には領域TM11-1と領域TM12-1の差分、および領域TM11-2と領域TM12-2の差分が計算されることになる。
 そして、差分が最も小さくなるときの領域TM12の位置を示すベクトルが求めたい動きベクトルとされる。この例では、カレントブロックCB11の動きベクトルとして、図中、矢印により表される動きベクトルMV0が得られている。
 例えばカレントブロックCB11と同じ形状および大きさであり、ピクチャPIC12における領域TM12との相対的な位置関係が領域TM11とカレントブロックCB11の相対的な位置関係と同じであるブロックをブロックBL31とする。また、領域TM12およびブロックBL31の位置が図3に示されている位置となっているときに領域TM11と領域TM12の差分が最小となるとする。
 この場合、カレントブロックCB11の中心位置と同じ位置関係のピクチャPIC12上の位置を始点とし、ブロックBL31の中心の位置を終点とするベクトルが動きベクトルMV0となる。
 以上のようにしてテンプレートマッチングでは、差分の計算対象となる参照ピクチャ上のテンプレート位置を変化させながら、符号化対象のピクチャとは表示時刻が異なる1つの参照ピクチャを用いたブロックマッチングにより動きベクトルが導出される。これにより、エンコーダ側だけでなくデコーダ側においても高精度に動きベクトルを導出(予測)することができる。
〈テンプレートマッチングの場合のサブブロックの処理〉
 JVETで検討されているFRUCモードでは、CUで上述したブロックマッチングを行い、続いて、ブロックをさらに分割して、サブブロック単位でブロックマッチングを行い、動き情報をサブブロック単位で導出している。
 すなわち、CUの動き情報導出にテンプレートマッチングを用いる場合、サブブロックにおいてもテンプレートマッチングが用いられて、サブブロックの動き情報が導出されている。
 図4は、サブブロック単位で行われるテンプレートマッチングの例を示す図である。なお、図4において図3における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
 図4の左側には、カレントブロックCB11と、カレントブロックCB11に隣接し、テンプレートマッチングに用いられる領域TM11-1および領域TM11-2が示されている。
 図4の右側には、カレントブロックCB11が16分割されて得られたサブブロックSCB11-1乃至SCB11-16が示されている。サブブロックSCB11-1は、カレントブロックCB11の左上に位置するサブブロックである。サブブロックSCB11-2は、サブブロックSCB11-1の右側に位置するサブブロックである。サブブロックSCB11-3は、サブブロックSCB11-2の右側に位置するサブブロックである。サブブロックSCB11-4は、サブブロックSCB11-3の右側に位置するサブブロックである。
 サブブロックSCB11-1乃至サブブロックSCB11-4は、カレントブロックCB11の最上部に位置するサブブロックである。
 サブブロックSCB11-5は、サブブロックSCB11-1の下に位置するサブブロックである。サブブロックSCB11-6は、サブブロックSCB11-5の右側に位置するサブブロックである。サブブロックSCB11-7は、サブブロックSCB11-6の右側に位置するサブブロックである。サブブロックSCB11-8は、サブブロックSCB11-7の右側に位置するサブブロックである。
 サブブロックSCB11-9は、サブブロックSCB11-5の下に位置するサブブロックである。サブブロックSCB11-10は、サブブロックSCB11-9の右側に位置するサブブロックである。サブブロックSCB11-11は、サブブロックSCB11-10の右側に位置するサブブロックである。サブブロックSCB11-12は、サブブロックSCB11-11の右側に位置するサブブロックである。
 サブブロックSCB11-13は、サブブロックSCB11-9の下に位置するサブブロックである。サブブロックSCB11-14は、サブブロックSCB11-13の右側に位置するサブブロックである。サブブロックSCB11-15は、サブブロックSCB11-14の右側に位置するサブブロックである。サブブロックSCB11-16は、サブブロックSCB11-15の右側に位置するサブブロックである。
 サブブロックSCB11-1、SCB11-5、SCB11-9、およびSCB11-13は、カレントブロックCB11の最左部に位置するブロックである。
 また、カレントブロックCB11の左上に位置するサブブロックSCB11-1に隣接し、サブブロックSCB11-1のテンプレートマッチングに用いられるテンプレートである領域STM11-1と領域STM11-2が示されている。
 図3を参照して上述したように、まず、CU単位でテンプレートマッチングが行われ、カレントブロックCB11の最適な動きベクトルMV0が得られる。カレントブロックCB11で得られた最適な動きベクトルMV0を使って、さらに、図4の矢印の先に示されるように、各サブブロックSCB11-1乃至SCB11-16のテンプレートマッチングが行われる。
 サブブロック単位でのテンプレートマッチングが行われることで、小さい領域での動きベクトルが得られるので、より高い精度での動き補償(MC(Motion Compensation))を行うことができるようになる。
 しかしながら、サブブロック単位でのテンプレートマッチングでは、CUでテンプレートマッチングを行って、さらに、サブブロックでのテンプレートマッチングを行うため、テンプレートがCUの周囲にしかない。
 図5は、サブブロックのうち、テンプレートが存在するサブブロックとテンプレートが存在しないサブブロックとを分けて示す図である。なお、図5において図4における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。図5では、テンプレートが存在するサブブロックとテンプレートが存在しないサブブロックは、異なるハッチングが付されている。
 図5の例では、カレントブロックCB11の最上部のサブブロックと、最左部のサブブロック(サブブロックSCB11-1乃至SCB11-5、サブブロックSCB11-9、およびサブブロックSCB11-13)については隣接したテンプレートが存在する。一方、サブブロックSCB11-6乃至SCB11-8、サブブロックSCB11-10乃至SCB11-12、およびサブブロックSCB11-14乃至SCB11-16には、隣接したテンプレート、すなわちテンプレートの領域の再構成画像が存在しない。
 これらのテンプレートの再構成画像が存在しないサブブロックでは、テンプレートマッチングができないために、動きベクトルの導出精度が低くなり、その結果、動き補償の精度が低くなってしまう懸念がある。
 そこで、本技術の第1の実施の形態においては、テンプレートマッチングでCUの動きベクトルを導出する際、サブブロックの動きベクトルの導出において、テンプレートマッチングだけでなく、バイラテラルマッチングも用いる。
 図5に示されたテンプレートが存在するサブブロックSCB11-1乃至SCB11-5、サブブロックSCB11-9、およびサブブロックSCB11-13については、テンプレートマッチングで動きベクトルの導出が行われる。テンプレートが存在しないサブブロックSCB11-6乃至SCB11-8、サブブロックSCB11-10乃至SCB11-12、およびサブブロックSCB11-14乃至SCB11-16については、バイラテラルマッチングで動きベクトルの導出が行われる。
 すなわち、テンプレートマッチングにより動きベクトルを導出したCUを構成するサブブロックの動きベクトル導出では、CUにおけるサブブロックの位置に応じて、テンプレートマッチングおよびバイラテラルマッチングのいずれか一方が用いられる。あるいは、画面端などでテンプレートがない場合もある。この場合、テンプレートマッチングにより動きベクトルを導出したCUを構成するサブブロックの動きベクトル導出では、サブブロックにテンプレートが存在するか否かに応じて、テンプレートマッチングおよびバイラテラルマッチングのいずれか一方が用いられる。
 これにより、サブブロックの動きベクトルの導出精度を改善することができる。動きベクトルの導出精度が高くなることで、動き補償の精度も高くすることができる。
〈予測部の構成について〉
 ところで、上述した画像符号化装置11の予測部30では、テンプレートマッチングやバイラテラルマッチングにより動き情報、すなわち動きベクトルの導出が行われる。
 例えば予測部30は、テンプレートマッチングまたはバイラテラルマッチングにより動きベクトルを導出する構成として、図6に示す構成を有している。
 すなわち、図6に示す例では、予測部30は、予測制御部51、テンプレートマッチング処理部52、およびバイラテラルマッチング処理部53を有している。
 予測制御部51は、テンプレートマッチング処理部52またはバイラテラルマッチング処理部53に対して、符号化対象のCU(CTU)について動きベクトルの導出を行わせる。
 予測制御部51は、制御部21からの予測情報Pinfoのsplit flagに基づいて、CUをサブブロックに分割する。予測制御部51は、テンプレートマッチング処理部52またはバイラテラルマッチング処理部53に対して、分割したサブブロックについての動きベクトルの導出を行わせる。
 具体的には、例えば予測制御部51は、CUにおけるサブブロックの位置に応じて、テンプレートマッチング処理部52またはバイラテラルマッチング処理部53のどちらかに、分割したサブブロックについての動きベクトルの導出を行わせる。
 図5には、サブブロックの位置が、サブブロックSCB11-1乃至SCB11-5、サブブロックSCB11-9、およびサブブロックSCB11-13のいずれかの位置である場合が示されている。これらのいずれかの位置の場合、テンプレートマッチング処理部52に分割したサブブロックについての動きベクトルの導出が行われる。
 サブブロックの位置が、サブブロックSCB11-6乃至SCB11-8、サブブロックSCB11-10乃至SCB11-12、サブブロックSCB11-14乃至SCB11-16のいずれかの位置である場合が示されている。これらのいずれかの位置の場合、バイラテラルマッチング処理部53に分割したサブブロックについての動きベクトルの導出が行われる。
 または、予測制御部51は、サブブロックにテンプレートが存在するか否かに応じて、テンプレートマッチング処理部52またはバイラテラルマッチング処理部53のどちらかに、分割したサブブロックについての動きベクトルの導出を行わせる。
 サブブロックにテンプレートが存在する場合、予測制御部51は、テンプレートマッチング処理部52に分割したサブブロックについての動きベクトルの導出を行わせる。
 サブブロックにテンプレートが存在しない場合、予測制御部51は、バイラテラルマッチング処理部53に分割したサブブロックについての動きベクトルの導出を行わせる。
 テンプレートマッチング処理部52は、予測制御部51からの指示より、CUまたはサブブロックに対して、テンプレートマッチングを用いて動きベクトルの導出を行う。テンプレートマッチング処理部52は、候補取得部61および動きベクトル導出部62を有している。
 候補取得部61は、符号化対象のCUに隣接する周辺領域の動きベクトル(以下、隣接動きベクトルとも称する)を予測動きベクトルの候補、すなわちスタートポイントの候補として収集する。ここで、予測動きベクトルとは、CUやサブブロックについて導出した動きベクトルのことである。以下では、CUやサブブロックについて導出した動きベクトルを適宜、予測動きベクトルとも称することとする。
 候補取得部61は、処理対象がCUの場合、処理対象のCUに対して予め定められた周辺領域のリストをスタートポイントの候補のリスト(以下、候補リストとも称する)として生成する。候補取得部61は生成した候補リストにより示されるスタートポイントの候補、すなわち周辺領域の隣接動きベクトルを取得し、動きベクトル導出部62に供給する。
 候補取得部61は、処理対象がサブブロックの場合、処理対象のサブブロックに対して予め定められた周辺領域のリストだけでなく、そのサブブロックを含むCUに対して求められた動きベクトルも1つの候補として、サブブロック候補リストを生成する。候補取得部61は生成したサブブロック候補リストにより示されるスタートポイントの候補、すなわち、周辺領域の隣接動きベクトルと、CUに対して求められた動きベクトルを取得し、動きベクトル導出部62に供給する。
 動きベクトル導出部62は、候補リスト(またはサブブロック候補リスト)により示される複数の予測動きベクトルの候補(スタートポイントの候補)のなかから1つの候補を選択する。動きベクトル導出部62は、予測動きベクトルの候補をスタートポイントとしてテンプレートマッチングにより符号化対象のCU(またはサブブロック)の予測動きベクトルを求める。
 すなわち、動きベクトル導出部62は、スタートポイントである隣接動きベクトルにより定まる参照ピクチャ上の領域をテンプレートとする。そして、動きベクトル導出部62は、テンプレートマッチングにより、参照ピクチャのテンプレートと、符号化対象のCU(またはサブブロック)に隣接するテンプレートとの差分を計算し、その計算結果から求まるコストを算出する。例えばテンプレートについて求まるコストは、テンプレート同士の差分が小さいほど小さくなるようにされる。
 動きベクトル導出部62は、全てのスタートポイントの候補のなかから、コストが最小となる候補のスタートポイントを、符号化対象のCU(またはサブブロック)の予測動きベクトルとして選択する。
 さらに動きベクトル導出部62は、選択された予測動きベクトルで定まる参照ピクチャ上のサーチレンジを求め、求められたサーチレンジ内でテンプレートの位置を動かしながら、テンプレートマッチングにより最終的な動きベクトルを求める。
 動きベクトル導出部62は、求められたサーチレンジ内の所定位置の領域をテンプレートとする。そして、動きベクトル導出部62は、テンプレートの位置をサーチレンジ内で動かしながら、テンプレートマッチングにより、参照ピクチャのテンプレートと、符号化対象のCU(またはサブブロック)に隣接するテンプレートとの差分を計算する。動きベクトル導出部62は、計算結果から求まるコストを算出する。例えばテンプレートについて求まるコストは、テンプレート同士の差分が小さいほど小さくなるようにされる。
 動きベクトル導出部62は、求めたコストが最小となるときの参照ピクチャ上のテンプレートの位置により定まる動きベクトルを、符号化対象のCU(またはサブブロック)の最終的な動きベクトルとする。
 動きベクトル導出部62では、必要に応じて、最終的に得られた動きベクトルと、その動きベクトルの導出に用いられた動きベクトルの候補である隣接動きベクトルとの差分が符号化対象のCU(またはサブブロック)の差分動きベクトルとして算出される。
 以上のようにテンプレートマッチング処理部52では、導出された動きベクトルや差分動きベクトルが符号化対象のCUの動き情報として得られる。また、テンプレートマッチング処理部52で導出された動きベクトルや差分動きベクトルが符号化対象のサブブロックの動き情報として得られる。
 バイラテラルマッチング処理部53は、予測制御部51からの指示より、CUまたはサブブロックに対して、バイラテラルマッチングを用いて動きベクトルの導出を行う。バイラテラルマッチング処理部53は、候補取得部71および動きベクトル導出部72を有している。
 候補取得部71は、符号化対象のCUに隣接する周辺領域の動きベクトルである隣接動きベクトルを予測動きベクトルの候補、すなわちスタートポイントの候補として収集する。
 候補取得部71は、処理対象がCUの場合、処理対象のCUに対して予め定められた周辺領域のリストをスタートポイントの候補のリスト(候補リスト)として生成する。候補取得部71は生成した候補リストにより示されるスタートポイントの候補、すなわち周辺領域の隣接動きベクトルを取得し、動きベクトル導出部72に供給する。
 候補取得部71は、処理対象がサブブロックの場合、処理対象のサブブロックに対して予め定められた周辺領域のリストだけでなく、そのサブブロックを含むCUに対して求められた動きベクトルも1つの候補として、サブブロック候補リストを生成する。候補取得部71は生成したサブブロック候補リストにより示されるスタートポイントの候補、すなわち、周辺領域の隣接動きベクトルと、CUに対して求められた動きベクトルを取得し、動きベクトル導出部72に供給する。
 動きベクトル導出部72は、候補リスト(またはサブブロック候補リスト)により示される複数の予測動きベクトルの候補(スタートポイントの候補)のなかから1つの候補を選択する。動きベクトル導出部72は、予測動きベクトルの候補をスタートポイントとしてバイラテラルマッチングにより符号化対象のCU(またはサブブロック)の動きベクトルを求める。
 すなわち、動きベクトル導出部72は、2つの参照ピクチャ上におけるスタートポイントの候補である隣接動きベクトルにより定まる領域(ブロック)を差分計算ブロックとする。
 そして、動きベクトル導出部72は、バイラテラルマッチングにより、2つの参照ピクチャ上の差分計算ブロックの差分を計算し、その計算結果から求まるコストを算出する。例えば差分計算ブロックについて求まるコストは、差分計算ブロックについての差分が小さいほど小さくなるようにされる。
 動きベクトル導出部72は、全てのスタートポイントの候補のなかから、コストが最小となる候補のスタートポイントを、符号化対象のCU(またはサブブロック)の予測動きベクトルとして選択する。
 動きベクトル導出部72は、選択された予測動きベクトルで定まる参照ピクチャ上のサーチレンジを求め、求められたサーチレンジ内で差分計算ブロックの位置を動かしながら、バイラテラルマッチングにより最終的な動きベクトルを求める。
 すなわち、動きベクトル導出部72は、選択された予測動きベクトルにより定まる参照ピクチャ上の領域をサーチレンジとし、そのサーチレンジ内のブロックを差分計算ブロックとする。
 そして、動きベクトル導出部72は、差分計算ブロックの位置をサーチレンジ内で動かしながら、バイラテラルマッチングにより、2つの参照ピクチャの差分計算ブロックの差分を計算し、その計算結果から求まるコストを算出する。例えば差分計算ブロックについて求まるコストは、差分計算ブロックについての差分が小さいほど小さくなるようにされる。
 動きベクトル導出部72は、求めたコストが最小となるときの参照ピクチャ上の差分計算ブロックの位置により定まる動きベクトルを、符号化対象のCU(またはサブブロック)の最終的な動きベクトルとする。
 動きベクトル導出部72では、必要に応じて、最終的に得られた動きベクトルと、その動きベクトルの導出に用いられた動きベクトルの候補である隣接動きベクトルとの差分が符号化対象のCU(またはサブブロック)の差分動きベクトルとして算出される。
 以上のようにバイラテラルマッチング処理部53では、導出された動きベクトルや差分動きベクトルが符号化対象のCUの動き情報として得られる。また、バイラテラルマッチング処理部53で導出された動きベクトルや差分動きベクトルが符号化対象のサブブロックの動き情報として得られる。
〈画像符号化処理の説明〉
 次に、以上において説明した画像符号化装置11の動作について説明する。
 まず、図7のフローチャートを参照して、画像符号化装置11による画像符号化処理について説明する。なお、この画像符号化処理は、CU単位またはサブブロック単位で行われる。
 ステップS11において、制御部21は、外部からの入力等に基づいて符号化パラメータを設定し、設定した各符号化パラメータを画像符号化装置11の各部に供給する。
 ステップS11では、例えば上述したヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等が符号化パラメータとして設定される。
 ステップS12において、予測部30は制御部21から供給された予測情報Pinfoのモード情報pred_mode_flagに基づいて、インター予測処理を行うか否かを判定する。例えばモード情報pred_mode_flagの値がインター予測処理を示している場合、ステップS12においてインター予測処理を行うと判定される。
 ステップS12においてインター予測処理を行うと判定された場合、ステップS13において、予測部30は制御部21から供給された予測情報PinfoのFRUC_flagの値が1であるか否か、すなわちFRUC_flag=1であるか否かを判定する。
 ステップS13においてFRUC_flag=1であると判定された場合、すなわちFRUCモードであると判定された場合、処理はステップS14へと進む。
 ステップS14において、画像符号化装置11の各部はFRUCモードで符号化対象の画像I(カレントブロック)を符号化する符号化処理を行い、画像符号化処理は終了する。
 FRUCモードでの符号化処理では、FRUCモードにより動き情報が導出されて予測情報Pinfoや量子化変換係数レベルlevel等が格納された符号化ストリームが生成される。
 このとき生成される予測情報Pinfoには、例えばFRUC_flag、FRUC_Mode_flag、参照画像特定情報が含まれており、必要に応じて動きベクトル情報も含まれるようにされる。また、画像I、すなわちカレントブロックがPスライスのブロックであるときには、予測情報PinfoにはFRUC_Mode_flagが含まれていないようにされる。
 一方、ステップS13においてFRUC_flag=1でないと判定された場合、すなわちFRUC_flag=0であり、FRUCモードではないと判定された場合、処理はステップS15へと進む。
 ステップS15において、画像符号化装置11の各部は、例えばAMVPモードなど、FRUCモード以外の他のモードで符号化対象の画像Iを符号化する符号化処理を行い、画像符号化処理は終了する。
 また、ステップS12においてインター予測処理を行わないと判定された場合、すなわちイントラ予測処理を行うと判定された場合、処理はステップS16へと進む。
 ステップS16において、画像符号化装置11の各部はイントラ予測モードで符号化対象の画像Iを符号化するイントラ符号化処理を行い、画像符号化処理は終了する。
 イントラ符号化処理では、予測部30においてイントラ予測モードにより予測画像Pが生成される。そして、予測画像Pが用いられてカレントブロックが符号化されて、予測情報Pinfoや量子化変換係数レベルlevel等が格納された符号化ストリームが生成される。
 以上のようにして、画像符号化装置11は、符号化パラメータに応じて入力された画像を符号化し、符号化により得られた符号化ストリームを出力する。このように適切なモードで画像を符号化することにより、符号化効率を向上させることができる。
〈インター予測処理モード設定処理の説明〉
 次に、図8のフローチャートを参照して、図7のステップS11の処理に対応するインター予測処理モード設定処理について説明する。
 このインター予測処理モード設定処理は、図7のステップS11の処理のうちのインター予測処理モードに関する部分の処理である。すなわち、インター予測処理モード設定処理は、FRUC_flagの値が決定される部分の処理である。また、インター予測処理モード設定処理は、CU単位またはサブブロック単位で行われる。
 ステップS51において、制御部21は画像符号化装置11の各部を制御して、符号化対象のブロックについて、FRUCモードを含む各モードでの符号化処理を行わせ、各モードでのRDコストを算出させる。
 なお、RDコストは符号化の結果得られる発生ビット量(符号量)や復号画像のSSE(Error Sum of Squares)などに基づいて算出される。
 ステップS52において、制御部21は、ステップS51の処理で得られたRDコストのうち、FRUCモードで、動き情報の導出にテンプレートマッチングを採用したとき(以下、FRUCテンプレートと称する)のRDコストが最小であるか否かを判定する。
 ステップS52において、FRUCテンプレートのRDコストが最小であると判定された場合、処理はステップS53へと進む。この場合、カレントブロックのインター予測モードとして、FRUCモードが選択されたことになり、図7を参照して説明した画像符号化処理では、ステップS14の符号化処理が行われて符号化ストリームが生成されることになる。
 ステップS53において、制御部21はFRUC_flag=1とする。すなわち、制御部21は、予測情報PinfoとしてのFRUC_flagの値を1とする。
 ステップS54において、制御部21はFRUCモードでの動き情報の導出結果に基づいて、FRUC_Mode_flagを生成し、インター予測処理モード設定処理は終了する。
 FRUCモードでの符号化時に、テンプレートマッチングを採用したときのFRUCテンプレートのRDコストが、バイラテラルマッチングを採用したときのFRUCバイラテラルのRDコストよりも小さい場合、FRUC_Mode_flagの値は0とされる。すなわち、ステップS54では値が0であるFRUC_Mode_flagが生成される。ただし、カレントブロックがPスライスのブロックであるときには、ステップS54の処理は行われず、FRUC_Mode_flagは生成されない。これに対して、FRUCバイラテラルのRDコストがFRUCテンプレートのRDコストより小さい場合(ステップS57の場合)、FRUC_Mode_flagの値は1とされる。
 また、ステップS52において、FRUCテンプレートのRDコストが最小でないと判定された場合、処理はステップS55へと進む。ステップS55において、制御部21はFRUCバイラテラルのRDコストが最小であるか否かを判定する。
 ステップS55においてFRUCバイラテラルのRDコストが最小であると判定された場合、処理はステップS56へと進む。この場合、カレントブロックのインター予測モードとして、FRUCモードが選択されたことになり、図7を参照して説明した画像符号化処理では、ステップS14の符号化処理が行われて符号化ストリームが生成されることになる。
 ステップS56において、制御部21はFRUC_flag=1とする。すなわち、制御部21は、予測情報PinfoとしてのFRUC_flagの値を1とする。
 ステップS57において、制御部21はFRUC_Mode_flag=1として、インター予測処理モード設定処理は終了する。
 さらに、ステップS55においてFRUCバイラテラルのRDコストが最小でないと判定された場合、処理はステップS58へと進む。
 ステップS58において、制御部21はFRUC_flag=0として、インター予測処理モード設定処理は終了する。カレントブロックのインター予測モードとして、FRUCモード以外の他のモードが選択されたことになり、図7を参照して説明した画像符号化処理では、ステップS15の符号化処理が行われて符号化ストリームが生成されることになる。
 以上のようにして画像符号化装置11は、各モードのRDコストを算出し、RDコストが最小となるモードを選択して、その選択結果に応じてFRUC_flagを生成する。これにより、符号化効率を向上させることができる。
〈FRUCモード符号化処理の説明〉
 続いて、図9のフローチャートを参照して、画像符号化装置11によるFRUCモード符号化処理について説明する。なお、このFRUCモード符号化処理は、図7のステップS14の処理に対応する処理であり、CU単位またはサブブロック単位で行われる。
 ステップS91において、予測部30は、制御部21から供給された予測情報Pinfo等に基づいて、処理対象のカレントブロック、すなわち符号化対象の画像IであるCUまたはサブブロックがPスライスのブロックであるか否かを判定する。
 ステップS91においてPスライスのブロックでないと判定された場合、処理はステップS92へと進む。
 ステップS92において、予測部30は、図8のステップS54またはステップS57で設定されたFRUC_Mode_flagの値が0であるか否か、すなわちFRUC_Mode_flag=0であるか否かを判定する。
 ステップS92において、FRUC_Mode_flag=0であると判定された場合、処理は、ステップS93に進む。
 また、ステップS91においてPスライスのブロックであると判定された場合、処理はステップS93へと進む。カレントブロックがPスライスのブロックである場合、Pスライスに対しては参照ピクチャが1つしかなく、動き情報の導出時にバイラテラルマッチングを行うことができないので、動き情報の導出方法としてテンプレートマッチングが自動的に採用(選択)される。
 ステップS93において、予測部30は、テンプレートマッチングによりカレントブロックの動き情報を導出する。予測部30は、制御部21から供給された予測情報Pinfo等に基づいて、フレームメモリ29から符号化対象のピクチャと、参照画像特定情報により示される参照ピクチャとを読み出す。予測部30は、読み出したピクチャを用いてテンプレートマッチングによりカレントブロックの動き情報を導出する。
 ステップS93の処理が行われて動き情報が導出されると、その後、処理はステップS95へと進む。
 一方、ステップS92においてFRUC_Mode_flag=1であると判定された場合、処理は、ステップS94に進む。
 ステップS94において、予測部30は、バイラテラルマッチングによりカレントブロックの動き情報を導出する。
 例えば予測部30は、制御部21から供給された予測情報Pinfoの参照画像特定情報により示される2つの参照ピクチャをフレームメモリ29から読み出す。また、予測部30は読み出した参照ピクチャを用いてバイラテラルマッチングによりカレントブロックの動き情報を導出する。
 ステップS94またはステップS93の処理が行われると、その後、ステップS95の処理が行われる。ステップS95において、予測部30はバイラテラルマッチングにより導出した動き情報に基づいて、またはテンプレートマッチングにより導出した動き情報に基づいて予測画像を生成し、演算部22および演算部28に供給する。
 バイラテラルマッチングの場合、予測部30は、2つの各参照ピクチャのそれぞれにおける動き情報である動きベクトルにより示されるブロックのそれぞれを用いた動き補償により生成された画像を予測画像Pとする。テンプレートマッチングの場合、予測部30は、参照ピクチャにおける動き情報である動きベクトルにより示されるブロックの画像を予測画像Pとする。
 ステップS95の処理が行われて予測画像Pが生成されると、その後、ステップS96の処理が行われる。
 ステップS96において、演算部22は、供給された画像Iと、予測部30から供給された予測画像Pとの差分を予測残差Dとして演算し、変換部23に供給する。
 ステップS97において、変換部23は、制御部21から供給された変換情報Tinfoに基づいて、演算部22から供給された予測残差Dに対して直交変換等を行い、その結果得られた変換係数Coeffを量子化部24に供給する。
 ステップS98において、量子化部24は、制御部21から供給された変換情報Tinfoに基づいて、変換部23から供給された変換係数Coeffをスケーリング(量子化)し、量子化変換係数レベルlevelを導出する。量子化部24は、量子化変換係数レベルlevelを符号化部25および逆量子化部26に供給する。
 ステップS99において、逆量子化部26は、制御部21から供給された変換情報Tinfoに基づいて、量子化部24から供給された量子化変換係数レベルlevelを、ステップS98の量子化の特性に対応する特性で逆量子化する。逆量子化部26は、逆量子化により得られた変換係数Coeff_IQを逆変換部27に供給する。
 ステップS100において、逆変換部27は、制御部21から供給された変換情報Tinfoに基づいて、逆量子化部26から供給された変換係数Coeff_IQに対して、ステップS97の直交変換等に対応する方法で逆直交変換等を行う。逆直交変換により予測残差D’が導出される。逆変換部27は、得られた予測残差D’を演算部28に供給する。
 ステップS101において、演算部28は、逆変換部27から供給された予測残差D’と、予測部30から供給された予測画像Pとを加算することにより、局所的な復号画像Recを生成し、フレームメモリ29に供給する。
 ステップS102において、フレームメモリ29は、演算部28から供給された局所的な復号画像Recを用いてピクチャ単位の復号画像を再構築し、フレームメモリ29内のバッファで保持する。
 ステップS103において、符号化部25は、図7のステップS11の処理において設定され、制御部21から供給された符号化パラメータと、ステップS98の処理で量子化部24から供給された量子化変換係数レベルlevelとを所定の方法で符号化する。
 符号化部25は、符号化により得られた符号化データを多重化して符号化ストリーム(ビットストリーム)とし、画像符号化装置11の外部に出力してFRUCモード符号化処理は終了する。
 この場合、符号化ストリームには、例えばFRUC_flag、FRUC_Mode_flag、参照画像特定情報等を符号化して得られたデータと、量子化変換係数レベルlevelを符号化して得られたデータなどが格納されている。このようにして得られた符号化ストリームは、例えば伝送路や記録媒体を介して復号側に伝送される。
 以上のようにして、画像符号化装置11は、FRUCモードにより動き情報を導出し、符号化対象となるブロックを符号化する。このようにFRUCモードを利用し、復号側において動き情報を導出するようにすることで、符号化ストリームに格納する動きベクトル情報(動き情報)を削減することができ、符号化効率を向上させることができる。
〈テンプレートマッチングによる動き情報導出処理の説明〉
 ここで、図9のステップS93やステップS94に対応する処理のうちの動き情報を導出する処理について、より詳細に説明する。まず、処理対象のCUの動き情報がテンプレートマッチングにより導出される場合の処理について説明する。すなわち、以下、図10のフローチャートを参照して、予測部30により行われるテンプレートマッチングによる動き情報導出処理について説明する。なお、この処理は、予測制御部51による制御のもと、テンプレートマッチング処理部52により行われる。
 ステップS131において、テンプレートマッチング処理部52の候補取得部61はスタートポイントの候補を取得することで候補リストを生成する。
 すなわち、候補取得部61は周辺領域をスタートポイントの候補として収集し、候補リストを生成する。また、候補取得部61は候補リストにより示される周辺領域の参照ピクチャとの間の隣接動きベクトルを取得して動きベクトル導出部62に供給する。
 ステップS132において、動きベクトル導出部62は、隣接動きベクトルをスタートポイントとし、参照ピクチャごとに各スタートポイントについてテンプレートマッチングにより符号化対象のCUのスタートポイントについてのコストを算出する。この場合、フレームメモリ29から読み出された復号画像である符号化対象のピクチャおよび参照ピクチャが用いられてテンプレートマッチングが行われる。
 ステップS133において、動きベクトル導出部62は、ステップS132で各スタートポイントの候補のなかからコストが最小となる候補のスタートポイントを予測動きベクトルとして選択する。
 動きベクトル導出部62は、ステップS134において、選択されたスタートポイント、つまり予測動きベクトルで定まる参照ピクチャ上のサーチレンジを求める。動きベクトル導出部62は、求められたサーチレンジ内で、テンプレートの位置を動かしながらテンプレートマッチングにより最終的な動きベクトルを求める。
 動きベクトル導出部62は、導出された最終的な動きベクトルを、テンプレートマッチング処理部52の候補取得部61に供給する。
 予測制御部51は、ステップS135において、符号化対象のCUをサブブロックに分割する。例えば、制御部21からの予測情報Pinfoのsplit flagに基づいて、CUが16個のサブブロックに分割される。予測制御部51は、ステップS136において、サブブロックを1つ選択する。
 ステップS137において、予測制御部51は、選択したサブブロックの符号化対象のCUにおける位置に基づいて、そのサブブロックの予測動きベクトル導出に、テンプレートマッチングを行うか否かを判定する。
 例えば図5を参照して説明したように、符号化対象のCUにおけるサブブロックの位置が、符号化対象のCUの最上部または最左部のいずれかである場合、ステップS137において、テンプレートマッチングが行われるため、処理は、ステップS138に進む。
 ステップS138において、テンプレートマッチング処理部52は、テンプレートマッチングによるサブブロックの動き情報導出処理を行う。このテンプレートマッチングによるサブブロックの動き情報導出処理は、図11のフローチャートを参照して後述される。この処理では、テンプレートマッチングにより、ステップS136で選択されたサブブロックの動き情報が導出される。
 一方、符号化対象のCUにおけるサブブロックの位置が、符号化対象のCUの最上部および最左部以外の位置である場合、ステップS137において、予測制御部51は、バイラテラルマッチングを行うとして、処理は、ステップS139に進む。
 ステップS139において、バイラテラルマッチング処理部53は、バイラテラルマッチングによるサブブロックの動き情報導出処理を行う。このバイラテラルマッチングによるサブブロックの動き情報導出処理は、図12のフローチャートを参照して後述される。この処理では、バイラテラルマッチングにより、ステップS136で選択されたサブブロックの動き情報が導出される。
 ステップS138またはステップS139においてサブロックの動き情報が導出されると、処理は、ステップS140に進む。
 ステップS140において、予測制御部51は、符号化対象のCUの全てのサブブロックについての処理が終了したか否かを判定する。ステップS140において、符号化対象のCUの全てのサブブロックについての処理がまだ終了していないと判定された場合、処理はステップS136に戻り、それ以降の処理が繰り返される。
 ステップS140において、符号化対象のCUの全てのサブブロックについての処理が終了したと判定された場合、テンプレートマッチングによる動き情報導出処理は終了される。
 以上のように、画像符号化装置11においては、テンプレートマッチングを用いて動き情報導出を行ったCUにおけるサブブロックの位置に応じて、バイラテラルモードでの動き情報導出を行うようにした。これにより、テンプレートのないサブブロックの動き情報の導出精度を改善することができる。
 次に、図11のフローチャートを参照して、図10のステップS138のテンプレートマッチングによるサブブロックの動き情報導出処理について説明する。
 ステップS151において、テンプレートマッチング処理部52の候補取得部61はスタートポイントの候補を取得することでサブブロック候補リストを生成する。
 すなわち、候補取得部61は、処理対象のサブブロックに対して予め定められた周辺領域のリストだけでなく、そのサブブロックを含むCUに対して求められた動きベクトルも1つの候補として、サブブロック候補リストを生成する。また、候補取得部61はサブブロック候補リストにより示される周辺領域の参照ピクチャとの間の隣接動きベクトルと、CUに対して求められた動きベクトルを取得して動きベクトル導出部62に供給する。
 ステップS152において、動きベクトル導出部62は、隣接動きベクトルをスタートポイントとし、参照ピクチャごとに各スタートポイントについてテンプレートマッチングによりサブブロックのスタートポイントについてのコストを算出する。この場合、フレームメモリ29から読み出された復号画像である符号化対象のピクチャおよび参照ピクチャが用いられてテンプレートマッチングが行われる。
 ステップS153において、動きベクトル導出部62は、ステップS152で各スタートポイントの候補のなかからコストが最小となる候補のスタートポイントを予測動きベクトルとして選択する。
 ステップS154において、動きベクトル導出部62は、選択された予測動きベクトルで定まる参照ピクチャ上のサーチレンジを求め、求められたサーチレンジ内でテンプレートの位置を動かしながら、テンプレートマッチングにより最終的な動きベクトルを求める。
 次に、図12のフローチャートを参照して、図10のステップS139のバイラテラルマッチングによるサブブロックの動き情報導出処理について説明する。
 ステップS161において、バイラテラルマッチング処理部53の候補取得部71はスタートポイントの候補を取得することでサブブロック候補リストを生成する。
 すなわち、候補取得部71は、処理対象のサブブロックに対して予め定められた周辺領域のリストだけでなく、そのサブブロックを含むCUに対して求められた動きベクトルも1つの候補として、サブブロック候補リストを生成する。また、候補取得部71はサブブロック候補リストにより示される周辺領域の参照ピクチャとの間の隣接動きベクトルと、CUに対して求められた動きベクトルを取得して動きベクトル導出部72に供給する。
 ステップS162において、動きベクトル導出部72は、スタートポイントの候補ごとに、バイラテラルマッチングにより、2つの参照ピクチャにおけるスタートポイントの候補により定まる差分計算ブロック同士の差分を計算する。動きベクトル導出部72は、差分の計算結果から求まるコストを算出する。この場合、フレームメモリ29から読み出された復号画像である互いに異なる時刻の参照ピクチャが用いられてバイラテラルマッチングが行われる。
 ステップS163において、動きベクトル導出部72は、ステップS162で各スタートポイントの候補のなかから、コストが最小となる候補のスタートポイントを、予測動きベクトルとして選択する。
 ステップS164において、動きベクトル導出部72は、選択された予測動きベクトルで定まる参照ピクチャ上のサーチレンジを求める。動きベクトル導出部72は、求められたサーチレンジ内で差分計算ブロックの位置を動かしながら、バイラテラルマッチングにより最終的な動きベクトルを求める。
 以上のようにして予測部30は、CUにおけるサブブロックの位置に応じて、テンプレートマッチングまたはバイラテラルマッチングによりサブブロックの動き情報を導出する。
〈バイラテラルマッチングによる動き情報導出処理の説明〉
 また、処理対象のCUの動き情報がバイラテラルマッチングにより導出される場合の処理について説明する。すなわち、以下、図13のフローチャートを参照して、予測部30により行われるバイラテラルマッチングによる動き情報導出処理について説明する。
 ステップS171において、バイラテラルマッチング処理部53の候補取得部71はスタートポイントの候補を取得することで候補リストを生成する。
 すなわち、候補取得部71は、周辺領域をスタートポイントの候補として収集し、候補リストを生成する。また、候補取得部71は候補リストにより示される周辺領域の参照ピクチャとの間の隣接動きベクトルを取得して動きベクトル導出部72に供給する。
 ステップS172において、動きベクトル導出部72は、スタートポイントの候補ごとに、バイラテラルマッチングにより、2つの参照ピクチャにおけるスタートポイントの候補により定まる差分計算ブロック同士の差分を計算する。動きベクトル導出部72は、差分の計算結果から求まるコストを算出する。この場合、フレームメモリ29から読み出された復号画像である互いに異なる時刻の参照ピクチャが用いられてバイラテラルマッチングが行われる。
 ステップS173において、動きベクトル導出部72は、各スタートポイントの候補のなかから、ステップS172で得られたコストが最小となる候補のスタートポイントを予測動きベクトルとして選択する。
 ステップS174において、動きベクトル導出部72は、選択された予測動きベクトルで定まる参照ピクチャ上のサーチレンジを求める。動きベクトル導出部72は、求めたサーチレンジ内で差分計算ブロックの位置を動かしながら、バイラテラルマッチングにより最終的な動きベクトルを求める。
 動きベクトル導出部72は、選択により得られた最終的な動きベクトルを、候補取得部71に供給する。
 予測制御部51は、ステップS175において、符号化対象のCUをサブブロックに分割する。例えば、符号化対象のCUは16個のサブブロックに分割される。
 バイラテラルマッチング処理部53は、ステップS176において、バイラテラルマッチングによるサブブロックの動き情報導出処理を行う。このバイラテラルマッチングによるサブブロックの動き情報導出処理は、図12を参照して上述した処理と基本的に同様の処理を行うので、その説明は省略される。ステップS176の処理により、サブブロックについての動き情報が導出される。
 以上のようにして予測部30は、バイラテラルマッチングにより動き情報を導出する。
〈画像復号装置の説明〉
 次に、図1に示した画像符号化装置11から出力された符号化ストリームを復号する、本技術を適用した画像処理装置としての画像復号装置について説明する。
 図14は、本技術を適用した画像復号装置の一実施の形態の構成例を示す図である。
 図14に示す画像復号装置201は、画像符号化装置11により生成された符号化ストリームを、画像符号化装置11における符号化方法に対応する復号方法で復号する。例えば、画像復号装置201は、HEVCに提案された技術やJVETにて提案された技術を実装している。
 なお、図14においては、処理部やデータの流れ等の主なものを示しており、図14に示されるものが全てとは限らない。つまり、画像復号装置201において、図14においてブロックとして示されていない処理部が存在したり、図14において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
 画像復号装置201は復号部211、逆量子化部212、逆変換部213、演算部214、フレームメモリ215、および予測部216を有している。
 画像復号装置201は、入力された符号化ストリームに対して、CUごとまたはサブブロックごとに復号を行う。
 復号部211は、供給された符号化ストリームを、符号化部25における符号化方法に対応する所定の復号方法で復号する。例えば、復号部211は、シンタックステーブルの定義に沿って、符号化ストリームのビット列からヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等の符号化パラメータと、量子化変換係数レベルlevelとを復号する。
 例えば復号部211は、符号化パラメータに含まれるsplit flagに基づいてCUを分割し、各量子化変換係数レベルlevelに対応するCUやサブブロックを順に復号対象のブロックに設定する。
 また、復号部211は、復号により得られた符号化パラメータを画像復号装置201の各ブロックに供給する。例えば、復号部211は予測情報Pinfoを予測部216に供給し、変換情報Tinfoを逆量子化部212と逆変換部213に供給し、ヘッダ情報Hinfoを各ブロックに供給する。また、復号部211は、量子化変換係数レベルlevelを逆量子化部212に供給する。
 逆量子化部212は、復号部211から供給された変換情報Tinfoに基づいて、復号部211から供給された量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、変換係数Coeff_IQを導出する。この逆量子化は、画像符号化装置11の量子化部24により行われる量子化の逆処理である。なお、逆量子化部26は、この逆量子化部212と同様の逆量子化を行う。逆量子化部212は、得られた変換係数Coeff_IQを逆変換部213に供給する。
 逆変換部213は、復号部211から供給された変換情報Tinfo等に基づいて、逆量子化部212から供給された変換係数Coeff_IQに対して逆直交変換等を行い、その結果得られた予測残差D’を演算部214に供給する。
 逆変換部213で行われる逆直交変換は、画像符号化装置11の変換部23により行われる直交変換の逆処理である。なお、逆変換部27は、この逆変換部213と同様の逆直交変換を行う。
 演算部214は、逆変換部213から供給された予測残差D’と、その予測残差D’に対応する予測画像Pとを加算して局所的な復号画像Recを導出する。
 演算部214は、得られた局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、得られた復号画像を外部に出力する。また、演算部214は、局所的な復号画像Recをフレームメモリ215にも供給する。
 フレームメモリ215は、演算部214から供給された局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、フレームメモリ215内のバッファに格納する。
 また、フレームメモリ215は予測部216により指定される復号画像を参照画像(参照ピクチャ)としてバッファより読み出し、予測部216に供給する。さらにフレームメモリ215は、その復号画像の生成に係るヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfoなどをフレームメモリ215内のバッファに格納するようにしてもよい。
 予測部216は、予測情報Pinfoのモード情報pred_mode_flagに基づいて、フレームメモリ215に格納された、復号対象のブロックと同一時刻の復号画像を参照画像として取得する。そして、予測部216は、参照画像を用いて復号対象のブロックに対して、イントラ予測モード情報が示すイントラ予測モードのイントラ予測処理を行う。
 予測部216は、予測情報Pinfoのモード情報pred_mode_flagと参照画像特定情報に基づいてフレームメモリ215に格納された、復号対象のブロックと同一時刻の復号画像を取得する。また、予測部216は、復号対象のブロックとは異なる時刻の復号画像を参照画像として取得する。
 予測部216は、画像符号化装置11の予測部30と同様に、FRUC_flag、FRUC_Mode_flag、動き情報等に基づいて、フレームメモリ215から取得した画像を用いてFRUC_flagにより定まるモードでのインター予測処理を行う。
 予測部216は、イントラ予測処理またはインター予測処理の結果生成された復号対象のブロックの予測画像Pを演算部214に供給する。
〈予測部の構成について〉
 また、画像復号装置201の予測部216も、画像符号化装置11の予測部30における場合と同様に、テンプレートマッチングやバイラテラルマッチングにより動き情報を導出する構成を有している。
 例えば予測部216は、テンプレートマッチングまたはバイラテラルマッチングにより動き情報を導出する構成として、図15に示す構成を有している。
 すなわち、図15に示す例では予測部216は、予測制御部231、テンプレートマッチング処理部232、およびバイラテラルマッチング処理部233を有している。
 また、テンプレートマッチング処理部232は、候補取得部241および動きベクトル導出部242を有しており、バイラテラルマッチング処理部233は、候補取得部251および動きベクトル導出部252を有している。
 なお、予測制御部231乃至バイラテラルマッチング処理部233は、図6に示した予測制御部51乃至バイラテラルマッチング処理部53に対応し、予測制御部51乃至バイラテラルマッチング処理部53と同様の構成となっている。また、予測制御部231乃至バイラテラルマッチング処理部233は、予測制御部51乃至バイラテラルマッチング処理部53と同様の動作を行うため、その説明は省略する。
 候補取得部241および動きベクトル導出部242も、図6に示した候補取得部61および動きベクトル導出部62と同様の構成となっているとともに同様の動作を行うため、その説明は省略する。候補取得部251および動きベクトル導出部252も、図6に示した候補取得部71および動きベクトル導出部72と同様の構成となっているとともに同様の動作を行うため、その説明は省略する。
〈画像復号処理の説明〉
 次に、画像復号装置201の動作について説明する。
 まず、図16のフローチャートを参照して、画像復号装置201による画像復号処理について説明する。
 ステップS211において、復号部211は、画像復号装置201に供給された符号化ストリームを復号し、符号化パラメータと量子化変換係数レベルlevelを得る。
 復号部211は、符号化パラメータを画像復号装置201の各部に供給するとともに、量子化変換係数レベルlevelを逆量子化部212に供給する。
 ステップS212において、復号部211は符号化パラメータに含まれるsplit flagに基づいてCTUを分割し、各量子化変換係数レベルlevelに対応するブロック、すなわちCUまたはサブブロックを復号対象のブロックに設定する。なお、以降のステップS213乃至ステップS217の処理は復号対象のブロックごとに行われる。
 復号対象のブロックが定められると、その後、復号部211から出力された予測情報Pinfoに基づいて、予測部216によりステップS213およびステップS214の処理が行われて復号時のモードが決定される。なお、これらのステップS213およびステップS214の処理は、予測部30ではなく予測部216により行われる点を除いて、図7のステップS12およびステップS13の処理と同様であるので、その説明は省略する。
 ステップS214においてFRUC_flag=1であると判定された場合、すなわちFRUCモードであると判定された場合、処理はステップS215へと進む。
 ステップS215において、画像復号装置201の各部はFRUCモードで復号対象のブロック(カレントブロック)の画像を復号する復号処理を行い、画像復号処理は終了する。
 FRUCモードでの復号処理では、FRUCモードにより動き情報が導出され、得られた動き情報を用いたインター予測処理を行うことにより生成された予測画像Pが用いられて復号対象のブロックの画像が生成される。
 これに対して、ステップS214においてFRUC_flag=1でないと判定された場合、すなわちFRUC_flag=0であり、FRUCモードではないと判定された場合、処理はステップS216へと進む。
 ステップS216において、画像復号装置201の各部は、例えばAMVPモードなど、FRUCモード以外の他のモードで復号対象のブロックの画像を復号する復号処理を行い、画像復号処理は終了する。
 また、ステップS213においてインター予測処理を行わないと判定された場合、すなわちイントラ予測処理を行うと判定された場合、処理はステップS217へと進む。
 ステップS217において、画像復号装置201の各部はイントラ予測モードで復号対象のブロックの画像を復号するイントラ復号処理を行い、画像復号処理は終了する。
 イントラ復号処理では、予測部216においてイントラ予測モードにより予測画像Pが生成され、予測画像Pと予測残差D’とが加算されて復号対象のブロックの画像とされる。
 以上のようにして画像復号装置201は、符号化パラメータに応じて復号対象のブロックを復号する。このように適切なモードで画像を復号することにより、少ない符号量の符号化ストリームでも品質のよい画像を得ることができる。
〈FRUCモード復号処理の説明〉
 続いて、図16のステップS215の処理に対応するFRUCモード復号処理について説明する。すなわち、以下、図17のフローチャートを参照して、画像復号装置201により行われるFRUCモード復号処理について説明する。なお、このFRUCモード復号処理は、復号対象のブロックごとに行われる。
 ステップS251において、逆量子化部212は、図16のステップS211の処理により得られた量子化変換係数レベルlevelを逆量子化して変換係数Coeff_IQを導出し、逆変換部213に供給する。
 ステップS252において、逆変換部213は、逆量子化部212から供給された変換係数Coeff_IQに対して逆直交変換等を行い、その結果得られた予測残差D’を演算部214に供給する。
 ステップS253において、予測部216は、復号部211から供給された予測情報Pinfo等に基づいて、復号対象のブロックがPスライスのブロックであるか否かを判定する。
 ステップS253においてPスライスのブロックでないと判定された場合、処理はステップS254へと進む。
 ステップS254において、予測部216はFRUC_Mode_flagを取得する。
 すなわち、復号対象のブロックがPスライスのブロックでない場合、図16のステップS211では、復号部211によって符号化ストリームからFRUC_Mode_flagが読み出される。読み出されたFRUC_Mode_flagを含む予測情報Pinfoは、復号部211から予測部216へと供給される。予測部216は、このようにして供給された予測情報PinfoからFRUC_Mode_flagを取得する。
 ステップS255において、予測部216はFRUC_Mode_flagに基づいて、テンプレートマッチングを行うか否かを判定する。例えばFRUC_Mode_flagの値が0である場合、テンプレートマッチングを行うと判定される。
 ステップS255においてテンプレートマッチングを行うと判定されたか、またはステップS253においてPスライスのブロックであると判定された場合、ステップS256の処理が行われる。
 ステップS256において予測部216はテンプレートマッチングにより動き情報を導出する。これにより、復号対象のブロックの動き情報として、動きベクトルが得られる。
 これに対して、ステップS255においてテンプレートマッチングを行わないと判定された場合、ステップS257の処理が行われる。
 ステップS257において予測部216はバイラテラルマッチングにより動き情報を導出する。これにより、復号対象のブロックの動き情報として動きベクトルが得られる。
 ステップS256またはステップS257の処理が行われると、その後、ステップS258の処理が行われる。ステップS258において、予測部216は、ステップS256またはステップS257の処理により導出した動き情報、すなわち動きベクトルに基づいて動き補償を行って予測画像Pを生成し、演算部214に供給する。
 テンプレートマッチングにより動き情報が導出された場合、予測部216は、フレームメモリ215から参照画像特定情報により示される1つの復号画像を参照ピクチャとして読み出す。また、予測部216は、読み出した参照ピクチャにおける動きベクトルにより示されるブロックの画像を予測画像Pとする。
 バイラテラルマッチングにより動き情報が導出された場合、予測部216は、フレームメモリ215から参照画像特定情報により示される2つの復号画像を参照ピクチャとして読み出す。また、予測部216は、読み出した各参照ピクチャにおける動きベクトルにより示されるブロックを用いた動き補償により予測画像Pを生成する。
 このようにして予測画像Pが得られると、その後、処理はステップS259へと進む。
 ステップS259において、演算部214は逆変換部213から供給された予測残差D’と、予測部216から供給された予測画像Pとを加算し、局所的な復号画像Recを導出する。演算部214は、得られた局所的な復号画像Recを用いてピクチャ単位の復号画像を再構築し、得られた復号画像を画像復号装置201の外部に出力する。また、演算部214は、その局所的な復号画像Recをフレームメモリ215に供給する。
 ステップS260において、フレームメモリ215は演算部214から供給された局所的な復号画像Recを用いてピクチャ単位の復号画像を再構築し、フレームメモリ215内のバッファに保持する。このようにして復号画像が得られると、FRUCモード復号処理は終了する。
 以上のようにして画像復号装置201は、FRUCモードにより動き情報を導出し、復号対象となるブロックを復号する。このようにFRUCモードを利用し、復号側において動き情報を導出することで、符号化ストリームの符号量を削減することができ、符号化効率を向上させることができる。
〈テンプレートマッチングによる動き情報導出処理の説明〉
 また、図18のフローチャートを参照して、予測部216により行われる、図17のステップS256の処理に対応するテンプレートマッチングによる動き情報導出処理について説明する。
 テンプレートマッチングによる動き情報導出処理では、候補取得部241によりステップS271の処理が行われ、動きベクトル導出部242によりステップS272乃至ステップS274の処理が行われる。
 予測制御部231によりステップS275乃至ステップS277の処理が行われ、ステップS277において、テンプレートマッチングを行うと判定された場合、テンプレートマッチング処理部232によりステップS278の処理が行われる。また、ステップS277において、テンプレートマッチングを行わないと判定された場合、バイラテラルマッチング処理部233によりステップS279の処理が行われる。
 さらに、ステップS278またはステップS279の処理が行われると、その後、予測制御部231によりステップS280の処理が行われてテンプレートマッチングによる動き情報導出処理は終了する。
 なお、これらのステップS271乃至ステップS280の処理は、図10のステップS131乃至ステップS140の処理と同様であるため、その説明は省略する。
 以上のように、画像復号装置201においてもCUにおけるサブブロックの位置に応じて、バイラテラルモードでの動き情報導出を行うようにしたので、テンプレートのないサブブロックの動き情報の導出精度を改善することができる。
 次に、図19のフローチャートを参照して、図18のステップS278のテンプレートマッチングによるサブブロックの動き情報導出処理について説明する。
 テンプレートマッチングによるサブブロックの動き情報導出処理では、候補取得部241によりステップS291の処理が行われ、動きベクトル導出部242によりステップS292乃至ステップS294の処理が行われる。
 なお、これらのステップS291乃至ステップS294の処理は、図11のステップS151乃至ステップS154の処理と同様であるため、その説明は省略する。
 次に、図20のフローチャートを参照して、図18のステップS279のバイラテラルマッチングによるサブブロックの動き情報導出処理について説明する。
 バイラテラルマッチングによるサブブロックの動き情報導出処理では、候補取得部251によりステップS301の処理が行われ、動きベクトル導出部252によりステップS302乃至ステップS304の処理が行われる。
 なお、これらのステップS301乃至ステップS304の処理は、図12のステップS161乃至ステップS164の処理と同様であるため、その説明は省略する。
〈バイラテラルマッチングによる動き情報導出処理の説明〉
 ここで、図21のフローチャートを参照して、予測部216により行われる、図17のステップS257の処理に対応するバイラテラルマッチングによる動き情報導出処理について説明する。
 バイラテラルマッチングによる動き情報導出処理では、候補取得部251によりステップS311の処理が行われ、動きベクトル導出部252によりステップS312乃至ステップS314の処理が行われる。
 また、予測制御部231によりステップS315の処理が行われ、バイラテラルマッチング処理部233によりステップS316の処理が行われる。
 なお、これらのステップS311乃至ステップS316の処理は、図13のステップS171乃至ステップS176の処理と同様であるため、その説明は省略する。
〈第2の実施の形態〉
〈テンプレートマッチングにおけるサブブロックのサイズ〉
 図5を参照して上述したように、テンプレートマッチングでCUの動き情報を導出する際には、テンプレートが存在せず、テンプレートマッチングができないサブブロックがあることから、動きベクトルの導出精度が低くなってしまっていた。
 これに対応して、第1の実施の形態では、サブブロックについては、CUにおけるサブブロックの位置に応じて、テンプレートマッチングだけでなく、バイラテラルマッチングも用いる例について説明した。
 しかしながら、図5を再度参照するに、領域TM11-1および領域TM11-2のサイズと比して、領域STM11-1と領域STM11-2のサイズは、かなり小さい。領域TM11-1および領域TM11-2は、カレントブロックCB11に隣接し、テンプレートマッチングに用いられる領域である。領域STM11-1と領域STM11-2は、サブブロックSCB11-1に隣接し、サブブロックSCB11-1のテンプレートマッチングに用いられる領域である。
 このように、テンプレートマッチングでCUの動き情報を導出する際、サブブロックについては、テンプレートのサイズが小さいため、テンプレートマッチングの結果が不確かになってしまっていた。
 これは、画像の大部分を使って、フレーム間のブロックマッチングを行うと、画像が一致する位置(すなわち、MV)が限られるのに対して、画像の局所だけを用いると、似た画像が複数の位置で見つかる可能性が増えることに起因している。
 そこで、本技術の第2の実施の形態においては、CUで用いられたブロックマッチングに応じて、サブブロックのサイズを変更して、CUで用いられたブロックマッチングを用いて、サブブロックの動き情報の導出を行う。
 図22は、テンプレートマッチングにおけるサブブロックのサイズの影響について説明する図である。
 図22の上段における、カレントブロックCB11の動き情報の導出には、テンプレートマッチングが用いられており、カレントブロックCB11は、4つのサブブロックSCB21-1乃至サブブロックSCB21-4に分割されている。なお、図22において図4における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
 サブブロックSCB21-1は、カレントブロックCB11の左上に位置する。サブブロックSCB21-1には、サブブロックSCB21-1に隣接する、テンプレートとしての領域STM21-1および領域STM21-2が存在する。サブブロックSCB21-2は、カレントブロックCB11の右上に位置する。サブブロックSCB21-2には、サブブロックSCB21-2に隣接する、テンプレートとしての領域STM21-3が存在する。
 サブブロックSCB21-3は、カレントブロックCB11の左下に位置する。サブブロックSCB21-3には、サブブロックSCB21-3に隣接する、テンプレートとしての領域STM21-4が存在する。サブブロックSCB21-4は、カレントブロックCB11の右下に位置する。サブブロックSCB21-4には、テンプレートが存在しないため、サブブロックSCB21-4については、テンプレートマッチングができない。
 しかしながら、図22の上段においてテンプレートが存在しない面積は、サブブロックSCB21-4の領域のみである。図5でカレントブロックCB11を16分割した場合にテンプレートが存在しない面積は、サブブロックSCB11-6乃至SCB11-8、サブブロックSCB11-10乃至SCB11-12、サブブロックSCB11-14乃至SCB11-16の領域である。図22の上段においてテンプレートが存在しない面積は、図5においてカレントブロックCB11を16分割した場合にテンプレートが存在しない面積よりも小さい。
 以上のように、CUの動き情報導出にテンプレートマッチングが用いられる場合、サブブロックのサイズを大きくすることで、テンプレートの存在しないサブブロックの面積を小さくすることができる。
 さらに、図22の上段におけるサブブロックSCB21-1に隣接する領域STM21-1および領域STM21-2のサイズは、図5においてサブブロックSCB11-1に隣接する領域STM11-1および領域STM11-2のサイズよりも大きい。これにより、ブロックマッチングの結果が不確かになることを軽減できる。
 図22の下段におけるカレントブロックCB11の動き情報の導出には、バイラテラルマッチングが用いられており、カレントブロックCB11は、16のサブブロックSCB11-1乃至サブブロックSCB11-16に分割されている。すなわち、バイラテラルマッチングの場合は、テンプレートが用いられないため、図22の上段の場合よりも小さいサイズのサブブロックでブロックマッチングを行うことができる。
 図23は、FRUCモードにおけるブロックマッチングの種類毎のサブブロックのサイズの対応表を示す図である。
 図23のAには、サイズにより指定する場合の各ブロックマッチングが対応するサブブロックのサイズが示されている。テンプレートマッチングの場合、16以上のサブブロックのサイズに対応している。バイラテラルマッチングの場合、4以上のサブブロックのサイズに対応している。なお、ここでいうサブブロックのサイズは画素を単位とするサイズである。
 図23のBには、分割数により指定する場合の各ブロックマッチングが対応するCUのサブブロック分割数が示されている。テンプレートマッチングの場合、CUの4分割までのサブブロックのサイズに対応している。バイラテラルマッチングの場合、CUの16分割までのサブブロックのサイズに対応している。
 これらのサブブロックのサイズまたはCUの分割数の指定は、画像符号化装置11では、図6の予測部30により図24に示すテンプレートマッチングによる動き情報導出処理のブロック分割時に行われる。上述したブロックマッチング毎のサブブロックのサイズまたはCUの分割数は、予測情報Pinfoのsplit flagに予め設定されるようにしてもよい。その際、ブロック分割時に予測情報Pinfoのsplit flagが参照される。以下、図24のフローチャートを参照して、画像符号化装置11によるテンプレートマッチングによる動き情報導出処理について説明する。
 テンプレートマッチングによる動き情報導出処理では、候補取得部61によりステップS401の処理が行われ、動きベクトル導出部62によりステップS402乃至ステップS404の処理が行われる。
 なお、これらのステップS401乃至ステップS404の処理は、図10のステップS131乃至ステップS134の処理と同様であるため、その説明は省略する。
 ステップS405において、予測制御部51は、符号化対象のCUをサブブロックに分割する。このとき、予測制御部51は、サブブロックのサイズを16以上に指定するか、または、CUの分割数を4分割までで指定する。
 ステップS406において、テンプレートマッチング処理部52は、テンプレートマッチングによるサブブロックの動き情報導出処理を行う。このテンプレートマッチングによるサブブロックの動き情報導出処理は、図11を参照して上述した処理と基本的に同様の処理を行うので、その説明は省略される。ステップS406の処理により、サブブロックについての動き情報が導出されると、テンプレートマッチングによる動き情報導出処理は終了する。
 また、この場合、図13を参照して説明したバイラテラルマッチングによる動き情報導出処理が行われるときには、ステップS175において予測制御部51は、サブブロックのサイズを4以上に指定するか、または、CUの分割数を16分割までで指定する。
 一方、画像復号装置201では、これらのサブブロックのサイズまたはCUの分割数の指定は、図15の予測部216により図25に示すテンプレートマッチングによる動き情報導出処理のブロック分割時に行われる。以下、図25のフローチャートを参照して、画像復号装置201によるテンプレートマッチングによる動き情報導出処理について説明する。
 テンプレートマッチングによる動き情報導出処理では、候補取得部241によりステップS431の処理が行われ、動きベクトル導出部242によりステップS432乃至ステップS434の処理が行われる。
 なお、これらのステップS431乃至ステップS434の処理は、図10のステップS131乃至ステップS134の処理と同様であるため、その説明は省略する。
 ステップS435において、予測制御部231は、符号化対象のCUをサブブロックに分割する。このとき、予測制御部231は、サブブロックのサイズを16以上に指定するか、または、CUの分割数を4分割までで指定する。
 ステップS436において、テンプレートマッチング処理部232は、テンプレートマッチングによるサブブロックの動き情報導出処理を行う。このテンプレートマッチングによるサブブロックの動き情報導出処理は、図19を参照して上述した処理と基本的に同様の処理を行うので、その説明は省略される。ステップS436の処理により、サブブロックについての動き情報が導出されると、テンプレートマッチングによる動き情報導出処理は終了する。
 また、この場合、図21を参照して説明したバイラテラルマッチングによる動き情報導出処理が行われるときには、ステップS315において予測制御部231は、サブブロックのサイズを4以上に指定するか、または、CUの分割数を16分割までで指定する。
 以上のように、テンプレートマッチングの場合に、サブブロックのサイズを大きくするようにしたので、サブブロックの動きベクトルの導出精度を改善することができる。動きベクトルの導出精度が高くなることで、動き補償の精度も高くすることができる。
 なお、第1の実施の形態と第2の実施の形態とを組み合わせてもよい。すなわち、CUの動き情報導出にテンプレートマッチングが用いられる場合、サブブロックのサイズを大きくし、その上で、テンプレートのないサブブロックに対しては、バイラテラルマッチングを用いるようにしてもよい。
〈第3の実施の形態〉
〈バイラテラルマッチングの場合のサブブロックのブロックマッチング〉
 第1の実施の形態においては、テンプレートマッチングでCUの動き情報を導出する際には、サブブロックについては、CUにおけるサブブロックの位置に応じて、テンプレートマッチングだけでなく、バイラテラルマッチングも用いる例について説明した。
 これに対して、第3の実施の形態では、バイラテラルマッチングでCUの動き情報を導出する際について説明する。
 図26は、サブブロック単位で行われるバイラテラルマッチングの例を示す図である。なお、図26において図4における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
 図26の左側には、カレントブロックCB11が示されている。
 図26の右側には、カレントブロックCB11が16分割されて得られたサブブロックSCB11-1乃至SCB11-16が示されている。サブブロックのうち、サブブロックSCB11-1乃至サブブロックSCB11-4は、カレントブロックCB11の最上部に位置するサブブロックである。サブブロックのうち、サブブロックSCB11-1、SCB11-5、SCB11-9、SCB11-13は、カレントブロックCB11の最左部に位置するブロックである。
 また、カレントブロックCB11の左上に位置するサブブロックSCB11-1に隣接し、サブブロックSCB11-1のテンプレートマッチングに用いられるテンプレートである領域STM11-1と領域STM11-2が示されている。
 上述したように、JVETで検討されているFRUCモードでは、CUで、上述したブロックマッチングを用いて動き情報導出が行われる。そして、ブロックをさらに分割して、サブブロック単位で、ブロックマッチングが行われ、動き情報がサブブロック単位で導出される。
 すなわち、CUの動き情報導出にバイラテラルマッチングを用いる場合、サブブロックにおいても、CUと同じバイラテラルマッチングが用いられて、サブブロックの動き情報が導出されている。
 しかしながら、バイラテラルマッチングでCUの動き情報を導出する際、サブブロックの動きベクトル導出において、バイラテラルマッチングだけでなく、テンプレートマッチングも用いるようにしたほうがいい場合がある。
 図26におけるカレントブロックCB11の最上部のサブブロックと、最左部のサブブロックでは、テンプレートマッチングを用いて動き情報を導出するほうがよい場合がある。最左部のサブブロックとは、サブブロックSCB11-1乃至SCB11-5、サブブロックSCB11-9、およびサブブロックSCB11-13である。
 これは、隣接するテンプレートが存在する場合は、テンプレートマッチングにより導出される動きベクトルがより正しく、CU全体でブロックマッチングを行う場合は、バイラテラルマッチングが正しいことがあるためである。基本的に画像の動きは、近い位置にある物体と近い動きをするという仮定をもとにしているためである。
 これらの条件の場合に、サブブロックでバイラテラルマッチングを用いると、動きベクトルが正しく求まらないことがある。
 そこで、本技術の第3の実施の形態においては、バイラテラルマッチングでCUの動き情報を導出する際、サブブロックの動きベクトル導出において、テンプレートが存在するサブブロックについては、テンプレートマッチングを用いるようにする。
 図26に示されたテンプレートが存在するサブブロックSCB11-1乃至SCB11-5、サブブロックSCB11-9、およびサブブロックSCB11-13については、テンプレートマッチングで動きベクトルの導出を行う。テンプレートが存在しないサブブロックSCB11-6乃至SCB11-8、サブブロックSCB11-10乃至SCB11-12、およびサブブロックSCB11-14乃至SCB11-16については、バイラテラルマッチングで動きベクトルの導出が行われる。
 すなわち、バイラテラルマッチングにより動きベクトルを導出したCUを構成するサブブロックの動きベクトル導出では、サブブロックにテンプレートが存在するか否かに応じて、テンプレートマッチングおよびバイラテラルマッチングのいずれか一方が用いられる。あるいは、バイラテラルマッチングにより動きベクトルを導出したCUを構成するサブブロックの動きベクトル導出では、CUにおけるサブブロックの位置に応じて、テンプレートマッチングおよびバイラテラルマッチングのいずれか一方が用いられる。
 これにより、サブブロックの動きベクトルの導出精度を改善することができる。動きベクトルの導出精度が高くなることで、動き補償の精度も高くすることができる。
 以下、図27のフローチャートを参照して、画像符号化装置11によるバイラテラルマッチングによる動き情報導出処理について説明する。
 バイラテラルマッチングによる動き情報導出処理では、候補取得部71によりステップS351の処理が行われ、動きベクトル導出部72によりステップS352乃至ステップS354の処理が行われる。
 また、予測制御部51によりステップS355の処理が行われる。なお、これらのステップS351乃至ステップS355の処理は、図13のステップS171乃至ステップS175の処理と同様であるため、その説明は省略する。
 ステップS356において、予測制御部51は、処理対象とするサブブロックを1つ選択する。ステップS357において、予測制御部51は、選択したサブブロックの符号化対象のCUにおける位置に基づいて、そのサブブロックの予測動きベクトル導出に、バイラテラルマッチングを行うか否かを判定する。
 符号化対象のCUにおけるサブブロックの位置が、符号化対象のCUの最上部および最左部以外である場合、ステップS357において、予測制御部51は、バイラテラルマッチングを行うとして、処理は、ステップS358に進む。
 ステップS358において、バイラテラルマッチング処理部53は、バイラテラルマッチングによるサブブロックの動き情報導出処理を行う。ステップS358においては、図12のバイラテラルマッチングによるサブブロックの動き情報導出処理と基本的に同様の処理が行われる。この処理により、バイラテラルマッチングが用いられて、ステップS356で選択されたサブブロックの動き情報が導出される。
 符号化対象のCUにおけるサブブロックの位置が、符号化対象のCUの最上部または最左部のいずれかである場合、ステップS357において、予測制御部51は、テンプレートマッチングを行うとして、処理は、ステップS359に進む。
 ステップS359において、テンプレートマッチング処理部52は、テンプレートマッチングによるサブブロックの動き情報導出処理を行う。ステップS359においては、図11のテンプレートマッチングによるサブブロックの動き情報導出処理と基本的に同様の処理が行われる。この処理により、テンプレートマッチングが用いられて、ステップS356で選択されたサブブロックの動き情報が導出される。
 ステップS358またはステップS359においてサブロックの動き情報が導出されると、処理は、ステップS360に進む。
 ステップS360において、予測制御部51は、符号化対象のCUの全てのサブブロックについての処理が終了したか否かを判定する。ステップS360において、符号化対象のCUの全てのサブブロックについての処理がまだ終了していないと判定された場合、ステップS356に戻り、それ以降の処理が繰り返される。
 ステップS360において、符号化対象のCUの全てのサブブロックについての処理が終了したと判定された場合、バイラテラルマッチングによる動き情報導出処理は終了される。
 以上のように、画像符号化装置11においては、バイラテラルマッチングを用いて動き情報導出を行ったCUにおけるサブブロックの位置(またはテンプレートの有無)に応じて、テンプレートモードでの動き情報導出を行うようにした。これにより、テンプレートのあるサブブロックの動き情報の導出精度を改善することができる。
 次に、図28のフローチャートを参照して、画像復号装置201によるバイラテラルマッチングによる動き情報導出処理について説明する。
 バイラテラルマッチングによる動き情報導出処理では、候補取得部251によりステップS371の処理が行われる。また、動きベクトル導出部252によりステップS372乃至ステップS374の処理が行われ、予測制御部231によりステップS375乃至S377の処理が行われる。
 バイラテラルマッチング処理部233によりステップS378の処理が行われ、テンプレートマッチング処理部232によりステップS379の処理が行われ、予測制御部231により、ステップS380の処理が行われる。
 なお、これらのステップS371乃至ステップS380の処理は、図27のステップS351乃至ステップS360処理と同様であるため、その説明は省略する。
 なお、第1の実施の形態と第3の実施の形態とを組み合わせてもよい。CUの動きベクトル導出にテンプレートマッチングが用いられた場合、テンプレートがないサブブロックの動きベクトル導出には、バイラテラルマッチングが用いられる。一方、CUの動きベクトル導出にバイラテラルマッチングが用いられた場合、テンプレートを有するサブブロックの動きベクトル導出には、テンプレートマッチングが用いられる。
 すなわち、CUのサブブロックの動きベクトルの導出には、CUの動きベクトル導出に用いられたブロックマッチングだけでなく、用いられたブロックマッチングとは異なるブロックマッチングを用いるようにしてもよい。
〈第4の実施の形態〉
〈サブブロックのサイズとPOC距離〉
 第1乃至第3の実施の形態で述べてきたように、まず、CUの単位で動き情報の導出が行われ、CUの処理の後、サブブロックの動き情報の導出が行われる。
 図29は、CUにおけるサブブロックのサイズ例を示す図である。なお、図29において図22における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
 図29の右上においては、カレントブロックCB11は、4つのサブブロックSCB21-1乃至サブブロックSCB21-4に分割されている。
 図29の右下においては、カレントブロックCB11は、16のサブブロックSCB11-1乃至サブブロックSCB11-16に分割されている。
 一般に、CUのサブブロックへの分割数が多くなるにつれて、分割されたサブブロック分のブロックマッチングが必要となるため、処理量は増大してしまう。したがって、CUが4つのサブブロックに分割された場合よりも、CUが16のサブブロックに分割された場合が比較的処理量が多い。
 FRUCモードの場合、画像復号装置201側でもブロックマッチングが行われるため、特に、画像復号装置201での処理量の増大は、動画の再生で実時間処理の実現に大きな壁となる。
 また、上記説明においては、CUの大きさについては言及していなかったが、サブブロックのサイズは、CUのサイズよりも小さくなるので、小さいサイズのCUのFRUCモードの処理量は、比較的多くなってしまう。
 ここで、動画像では、フレーム間の時間の間隔が長くなるにつれて、動きが複雑になる。動きが複雑になるにつれて、より小さなブロックでブロックマッチングを行うことが望ましくなる。
 いま、フレーム間の時間の間隔を示すPOC(Picture Order Count)距離を定義するとする。POCは、フレームを表示する順序を示す数字であり、フレームレートに応じたフレーム間隔で並ぶフレームを順番に表す。現時のピクチャのPOCから参照するフレームのPOCまでの差の絶対値がPOC距離とされる。
 POCは、一例として、HEVCの場合、スライスヘッダのslice_pic_order_cnt_lsb情報から得ることができる。
 なお、slice_pic_order_cnt_lsbのセマンティクスは、次のようになるが、剰余を取ることは省略されてもよい。
 slice_pic_order_cnt_lsb specifies the picture order count modulo MaxPicOrderCntLsb for the current picture.
 本技術の第4の実施の形態においては、POC距離に応じて、サブブロックのサイズを変更するようにした。
 図30は、POC距離が1である場合のブロックマッチングの例を示す図である。図30の例においては、POC(= i-2、i-1、i、i+1、i+2)順に並んだフレームが示されている。
 図30のAは、POC距離が1である場合のテンプレートマッチングの例を示す図である。図30のAには、POC=iのフレーム上のカレントブロックCB11およびカレントブロックCB11に隣接する領域TM11が示されている。また、POC=iのフレームを始点とし、POC=i-1のフレームを終点とする、カレントブロックCB11の動きベクトルMV0が示されている。
 この場合の現時のPOCは、iであり、参照先のPOCは、i-1である。したがって、POC距離は、|i-(i-1)|=1である。
 図30のBは、POC距離が1である場合のバイラテラルマッチングの例を示す図である。図30のBには、POC=iのフレーム上のカレントブロックCB11、POC=iのフレームを始点とし、POC=i-1のフレームを終点とする、カレントブロックCB11の動きベクトルMV0が示されている。また、POC=iのフレームを始点とし、POC=i+1のフレームを終点とする、カレントブロックCB11の動きベクトルMV1が示されている。
 この場合の現時のPOCは、iであり、参照先のPOCは、i-1またはi+1である。したがって、POC距離は、|i-(i-1)|=1または|i-(i+1)|=1と、いずれも1である。
 図31は、POC距離が2である場合のブロックマッチングの例を示す図である。なお、図31において図30における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
 図31のAは、POC距離が2である場合のテンプレートマッチングの例を示す図である。図31のAには、POC=iのフレーム上のカレントブロックCB11と領域TM11の他に、POC=iのフレームを始点とし、POC=i-2のフレームを終点とする、カレントブロックCB11の動きベクトルMV0が示されている。
 この場合の現時のPOCは、iであり、参照先のPOCは、i-2である。したがって、POC距離は、|i-(i-2)|=2である。
 図31のBは、POC距離が2である場合のバイラテラルマッチングの例を示す図である。図31のBには、POC=iのフレーム上のカレントブロックCB11、POC=iのフレームを始点とし、POC=i-2のフレームを終点とする、カレントブロックCB11の動きベクトルMV0が示されている。また、POC=iのフレームを始点とし、POC=i+2のフレームを終点とする、カレントブロックCB11の動きベクトルMV1が示されている。
 この場合の現時のPOCは、iであり、参照先のPOCは、i-2またはi+2である。したがって、POC距離は、|i-(i-2)|=2または|i-(i+2)|=2と、いずれも2である。
 図31の場合、図30の場合よりPOC距離が長く、より動きが複雑なため、小さいサブブロックへの分割が望まれる状態である。
 図32は、POC距離とサブブロックサイズの対応例を示す図である。
 図32では、POC距離が1の場合、対応するサブブロックのサイズは、32である。POC距離が2の場合、対応するサブブロックのサイズは、16である。POC距離が3の場合、対応するサブブロックのサイズは、8である。POC距離が4以上の場合、対応するサブブロックのサイズは、4である。ここでサブブロックのサイズは画素を単位とするサイズである。
 POC距離が1と近い場合、動きが複雑ではなく簡単であることが期待できるため、処理量が小さくすむように、サブブロックのサイズは比較的大きくされる。これに対して、POC距離が4以上と遠い場合、動きが複雑になることが懸念されるため、動きがより細かく調べられるように、サブブロックのサイズは、比較的小さくされる。
 サブブロックのサイズは、CUの分割数を指定することでも指定可能である。
 これらのサブブロックのサイズや分割数の指定は、画像符号化装置11では、図6の予測部30の予測制御部51により行われる。これらの指定は、図24のテンプレートマッチングによる動き情報導出処理におけるステップS405や図13のバイラテラルマッチングによる動き情報導出処理におけるステップS175で行われる。
 また、これらのサブブロックのサイズや分割数の指定は、画像復号装置201では、図15の予測部216の予測制御部231により行われる。これらの指定は、図25のテンプレートマッチングによる動き情報導出処理におけるステップS435や図21のバイラテラルマッチングによる動き情報導出処理におけるステップS315で行われる。
 上述したサブブロックのサイズや分割数も、予測情報Pinfoのsplit flagに予め設定されるようにしてもよい。その際、ブロック分割時に予測情報Pinfoのsplit flagが参照される。
〈第5の実施の形態〉
〈CUのサイズと分割数〉
 第4の実施の形態で上述したように、CUのサイズの違いによって処理量が異なる。
 そこで、本技術の第5の実施の形態においては、CUのサイズとPOC距離に応じて、CUをサブブロックに分割しない(すなわち、分割を禁止する)か、あるいは、CUのサブブロックへの分割数を加減(変更)するようにした。なお、CUをサブブロックに分割しない、つまりCUのサブブロックへの分割を禁止するとは、サブブロックの分割数0で、CUを1つのサブブロックに分割するともいえる。
 図33は、CUのサイズ、POC距離、およびサブブロックへの分割の対応例を示す図である。
 図33では、CUのサイズが32以上である場合、POC距離が1のときは、CUをサブブロックに分割せず、POC距離が2または3以上のときは、CUをサブブロックに分割するとされている。また、CUのサイズが32未満である場合、POC距離が1および2のときは、CUをサブブロックに分割せず、POC距離が3以上のときは、CUをサブブロックに分割するとされている。
 CUのサイズが32未満と小さい場合、処理量増加が懸念されるため、サブブロックへの分割は、POC距離が3以上のときに限って行われる。サブブロックへの分割は、POC距離が2以下のとき行われない。
 CUのサイズが32以上と大きい場合、処理量が小さくすむことが期待できるため、サブブロックへの分割は、POC距離が2または3以上のときに行われる。
 これらのサブブロックへの分割数の指定は、第4の実施の形態と同様に、画像符号化装置11では、図6の予測部30の予測制御部51により行われる。これらの指定は、図24のテンプレートマッチングによる動き情報導出処理におけるステップS405や図13のバイラテラルマッチングによる動き情報導出処理におけるステップS175で行われる。
 また、サブブロックへの分割数の指定は、画像復号装置201では、図15の予測部216の予測制御部231により行われる。これらの指定は、図25のテンプレートマッチングによる動き情報導出処理におけるステップS435や図21のバイラテラルマッチングによる動き情報導出処理におけるステップS315で行われる。
 なお、第4の実施の形態の場合も、第5の実施の形態の場合も、これらのサブブロックのサイズやサブブロックへの分割数の指定は、画像符号化装置11と画像復号装置201では、以下のように行われてもよい。画像符号化装置11では、図6の予測部30の予測制御部51により、図10のテンプレートマッチングによる動き情報導出処理におけるステップS136や図27のバイラテラルマッチングによる動き情報導出処理におけるステップS356で行われてもよい。
 また、サブブロックのサイズやサブブロックへの分割数の指定は、画像復号装置201では、図15の予測部216の予測制御部231により行われる。これらの指定は、図18のテンプレートマッチングによる動き情報導出処理におけるステップS276や図28のバイラテラルマッチングによる動き情報導出処理におけるステップS376で行われてもよい。
 以上、本技術の第4および第5の実施の形態によれば、処理量の大きいことが懸念されるサブブロックのブロックマッチングの処理量を軽減することができる。
 また、動きが複雑なことが懸念されるPOC距離の遠いブロックマッチングでは、サブブロックのサイズを小さくできるようにすることで、より高い精度でブロックマッチングを行うことができる。
 さらに、CUのサイズが小さい場合には処理量増加が懸念され、POC距離が近い場合には、動きが簡単であることが期待できることから、それらの場合にはサブブロックの分割をしないで、処理量を軽減することができる。
〈第6の実施の形態〉
〈ブロックマッチング種類およびCUのサイズと分割数〉
 第6の実施の形態においては、第4および第5の実施の形態で示されたPOC距離とサブブロックへの分割数に、第1乃至第3の実施の形態で上述されてきたブロックマッチングの種類が組み合わされる。
 図34は、バイラテラルマッチング、CUのサイズ、POC距離、およびサブブロックへの分割の対応例を示す図である。
 図34では、バイラテラルマッチングで、CUのサイズが32以上である場合、POC距離が1のときは、CUをサブブロックに分割せず(分割を禁止し)、POC距離が2乃至4以上のときは、CUをサブブロックに分割するとされている。また、バイラテラルマッチングで、CUのサイズが32未満である場合、POC距離が1および2のときは、CUをサブブロックに分割せず(分割を禁止し)、POC距離が3および4以上のときは、CUをサブブロックに分割するとされている。
 図35は、テンプレートマッチング、CUのサイズ、POC距離、およびサブブロックへの分割の対応例を示す図である。
 図35では、テンプレートマッチングで、CUのサイズが32以上である場合、POC距離が1および2のときは、CUをサブブロックに分割せず、POC距離が3または4以上のときは、CUをサブブロックに分割するとされている。また、テンプレートマッチングで、CUのサイズが32未満である場合、POC距離が1乃至3のときは、CUをサブブロックに分割せず、POC距離が4以上のときは、CUをサブブロックに分割するとされている。
 テンプレートマッチングは、CUの最上部と最左部に位置するサブブロックしかテンプレートが存在しないため、動きベクトルの導出精度がバイラテラルマッチングと比較して、低くなると考えられる。そこで、図35においては、サブブロックへと分割しない条件が増やされている。
 一方、CUのサイズが小さいときには、さらに分割すると処理量が増大し過ぎる懸念があるため、CUのサイズによって分割するか否かが判定される。
 さらに、POC距離が遠いマッチングの場合、動きが複雑になることから、サブブロックへ分割することで、動きベクトルの導出精度を高めることができる。
 これらのサブブロックへの分割数の指定は、画像符号化装置11では、図6の予測部30の予測制御部51により行われる。これらの指定は、図10のテンプレートマッチングによる動き情報導出処理におけるステップS136や図27のバイラテラルマッチングによる動き情報導出処理におけるステップS356で行われる。
 また、画像復号装置201では、図15の予測部216の予測制御部231により行われる。これらの指定は、図18のテンプレートマッチングによる動き情報導出処理におけるステップS276や図28のバイラテラルマッチングによる動き情報導出処理におけるステップS376で行われる。
 これらの場合のサブブロックのサイズや分割数も、予測情報Pinfoのsplit flagに予め設定されるようにしてもよい。その際、ブロック分割時に予測情報Pinfoのsplit flagが参照される。
 なお、これらのサブブロックのサイズやサブブロックへの分割数の指定は、第4および第5の実施の形態と同様に行われてもよい。画像符号化装置11では、図6の予測部30の予測制御部51により、図24のテンプレートマッチングによる動き情報導出処理におけるステップS405や図13のバイラテラルマッチングによる動き情報導出処理におけるステップS175で行われてもよい。
 また、サブブロックのサイズやサブブロックへの分割数の指定は、画像復号装置201では、図15の予測部216の予測制御部231により行われてもよい。これらの指定は、図25のテンプレートマッチングによる動き情報導出処理におけるステップS435や図21のバイラテラルマッチングによる動き情報導出処理におけるステップS315で行われてもよい。
 以上のように本技術によれば、動き予測の精度を改善させることができる。よって、動き補償の精度も改善される。
 また、以上において説明した本技術は、例えばサーバやネットワークシステム、テレビ、パーソナルコンピュータ、携帯型電話機、記録再生装置、撮像装置、ポータブル機器などの各種の電子機器やシステムに適用することができる。なお、以上において説明した各実施の形態を適宜、組み合わせることも勿論可能である。
〈コンピュータの構成例〉
 ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のコンピュータなどが含まれる。
 図36は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
 コンピュータにおいて、CPU(Central Processing Unit)501,ROM(Read Only Memory)502,RAM(Random Access Memory)503は、バス504により相互に接続されている。
 バス504には、さらに、入出力インターフェース505が接続されている。入出力インターフェース505には、入力部506、出力部507、記録部508、通信部509、およびドライブ510が接続されている。
 入力部506は、キーボード、マウス、マイクロホン、撮像素子などよりなる。出力部507は、ディスプレイ、スピーカアレイなどよりなる。記録部508は、ハードディスクや不揮発性のメモリなどよりなる。通信部509は、ネットワークインターフェースなどよりなる。ドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体511を駆動する。
 以上のように構成されるコンピュータでは、CPU501が、例えば、記録部508に記録されているプログラムを、入出力インターフェース505およびバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ(CPU501)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体511に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
 コンピュータでは、プログラムは、リムーバブル記録媒体511をドライブ510に装着することにより、入出力インターフェース505を介して、記録部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記録部508にインストールすることができる。その他、プログラムは、ROM502や記録部508に、あらかじめインストールしておくことができる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
 さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
 また、本明細書中に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
 さらに、本技術は、以下の構成とすることも可能である。
(1)
 参照画像を用いた第1のブロックマッチングにより処理対象のブロックの動きベクトルを導出し、前記ブロックを構成するサブブロックの一部の動きベクトルを、前記第1のブロックマッチングとは異なる第2のブロックマッチングを用いて導出する予測部
 を備える画像処理装置。
(2)
 前記第1のブロックマッチングと前記第2のブロックマッチングは、前記ブロックを含む画像と前記参照画像とに基づくテンプレートマッチングまたは互いに異なる時刻の前記参照画像に基づくバイラテラルマッチングである
 前記(1)に記載の画像処理装置。
(3)
 前記予測部は、前記ブロックにおける前記サブブロックの位置に基づいて、その前記サブブロックの動きベクトルを前記第1のブロックマッチングを用いて導出するか、または、前記第2のブロックマッチングを用いて導出するかを決定する
 前記(2)に記載の画像処理装置。
(4)
 前記予測部は、前記ブロックにおける前記サブブロックの位置が、前記ブロックの最左部または最上部である場合、その前記サブブロックの動きベクトルを、前記テンプレートマッチングにより導出する
 前記(3)に記載の画像処理装置。
(5)
 前記予測部は、前記サブブロックがデコード済みブロックに隣接しているか否かに基づいて、その前記サブブロックの動きベクトルを前記第1のブロックマッチングを用いて導出するか、または、前記第2のブロックマッチングを用いて導出するかを決定する
 前記(2)に記載の画像処理装置。
(6)
 前記予測部は、前記サブブロックが前記デコード済みブロックに隣接している場合、その前記サブブロックの動きベクトルを、前記テンプレートマッチングにより導出する
 前記(5)に記載の画像処理装置。
(7)
 前記予測部は、前記第1のブロックマッチングとして前記テンプレートマッチングを行って前記ブロックの動きベクトルを導出した場合、前記ブロックの動きベクトルを、前記バイラテラルマッチングにより導出した場合よりも、よりサイズの大きい前記サブブロックに前記ブロックを分割する
 前記(2)に記載の画像処理装置。
(8)
 前記予測部は、前記ブロックの動きベクトル導出時の前記第1のブロックマッチングに用いた画像間の時間間隔を示すPOC距離に応じて、前記ブロックの前記サブブロックへの分割を禁止するか、または、前記ブロックを前記サブブロックに分割するときの前記ブロックの分割数を加減する
 前記(1)乃至(7)のいずれかに記載の画像処理装置。
(9)
 前記予測部は、前記POC距離と前記ブロックのサイズに応じて、前記ブロックの分割を禁止するか、または、前記分割数を加減する
 前記(8)に記載の画像処理装置。
(10)
 前記予測部は、前記POC距離、前記ブロックのサイズ、および前記ブロックの動きベクトル導出に用いる前記第1のブロックマッチングに応じて、前記ブロックの分割を禁止するか、または、前記分割数を加減する
 前記(8)に記載の画像処理装置。
(11)
 画像処理装置が、
 参照画像を用いた第1のブロックマッチングにより処理対象のブロックの動きベクトルを導出し、前記ブロックを構成するサブブロックの一部の動きベクトルを、前記第1のブロックマッチングとは異なる第2のブロックマッチングを用いて導出する
 画像処理方法。
(12)
 参照画像を用いたブロックマッチングにより処理対象のブロックの動きベクトルを導出し、前記ブロックマッチングに用いた画像間の時間間隔を示す POC距離に応じて、前記ブロックのサブブロックへの分割を禁止するか、または、前記ブロックをサブブロックに分割するときの前記ブロックの分割数を加減する予測部を備える
 画像処理装置。
(13)
 前記予測部は、前記POC距離と前記ブロックのサイズに応じて、前記ブロックの分割を禁止するか、または、前記分割数を加減する
 前記(12)に記載の画像処理装置。
(14)
 前記予測部は、前記POC距離、前記ブロックのサイズ、および前記ブロックの動きベクトル導出に用いる前記ブロックマッチングに応じて、前記ブロックの分割を禁止するか、または、前記分割数を加減する
 前記(12)に記載の画像処理装置。
(15)
 前記ブロックマッチングは、前記ブロックを含む画像と前記参照画像とに基づくテンプレートマッチング、または互いに異なる時刻の前記参照画像に基づくバイラテラレルマッチングである
 前記(12)に記載の画像処理装置。
(16)
 画像処理装置が、
 参照画像を用いたブロックマッチングにより処理対象のブロックの動きベクトルを導出し、前記ブロックマッチングに用いた画像間の時間間隔を示す POC距離に応じて、前記ブロックのサブブロックへの分割を禁止するか、または、前記ブロックをサブブロックに分割するときの前記ブロックの分割数を加減する
 画像処理方法。
 11 画像符号化装置, 21 制御部, 30 予測部, 51 予測制御部, 52 テンプレートマッチング処理部, 53 バイラテラルマッチング処理部, 61 候補取得部, 62 動きベクトル導出部, 71 候補取得部, 72 動きベクトル導出部, 201 画像復号装置, 211 復号部, 216 予測部, 231 予測制御部, 232 テンプレートマッチング処理部, 233 バイラテラルマッチング処理部, 241 候補取得部, 242 動きベクトル導出部, 251 候補取得部, 252 動きベクトル導出部

Claims (16)

  1.  参照画像を用いた第1のブロックマッチングにより処理対象のブロックの動きベクトルを導出し、前記ブロックを構成するサブブロックの一部の動きベクトルを、前記第1のブロックマッチングとは異なる第2のブロックマッチングを用いて導出する予測部
     を備える画像処理装置。
  2.  前記第1のブロックマッチングと前記第2のブロックマッチングは、前記ブロックを含む画像と前記参照画像とに基づくテンプレートマッチングまたは互いに異なる時刻の前記参照画像に基づくバイラテラルマッチングである
     請求項1に記載の画像処理装置。
  3.  前記予測部は、前記ブロックにおける前記サブブロックの位置に基づいて、その前記サブブロックの動きベクトルを前記第1のブロックマッチングを用いて導出するか、または、前記第2のブロックマッチングを用いて導出するかを決定する
     請求項2に記載の画像処理装置。
  4.  前記予測部は、前記ブロックにおける前記サブブロックの位置が、前記ブロックの最左部または最上部である場合、その前記サブブロックの動きベクトルを、前記テンプレートマッチングにより導出する
     請求項3に記載の画像処理装置。
  5.  前記予測部は、前記サブブロックがデコード済みブロックに隣接しているか否かに基づいて、その前記サブブロックの動きベクトルを前記第1のブロックマッチングを用いて導出するか、または、前記第2のブロックマッチングを用いて導出するかを決定する
     請求項2に記載の画像処理装置。
  6.  前記予測部は、前記サブブロックが前記デコード済みブロックに隣接している場合、その前記サブブロックの動きベクトルを、前記テンプレートマッチングにより導出する
     請求項5に記載の画像処理装置。
  7.  前記予測部は、前記第1のブロックマッチングとして前記テンプレートマッチングを行って前記ブロックの動きベクトルを導出した場合、前記ブロックの動きベクトルを、前記バイラテラルマッチングにより導出した場合よりも、よりサイズの大きい前記サブブロックに前記ブロックを分割する
     請求項2に記載の画像処理装置。
  8.  前記予測部は、前記ブロックの動きベクトル導出時の前記第1のブロックマッチングに用いた画像間の時間間隔を示すPOC距離に応じて、前記ブロックの前記サブブロックへの分割を禁止するか、または、前記ブロックを前記サブブロックに分割するときの前記ブロックの分割数を加減する
     請求項1に記載の画像処理装置。
  9.  前記予測部は、前記POC距離と前記ブロックのサイズに応じて、前記ブロックの分割を禁止するか、または、前記分割数を加減する
     請求項8に記載の画像処理装置。
  10.  前記予測部は、前記POC距離、前記ブロックのサイズ、および前記ブロックの動きベクトル導出に用いる前記第1のブロックマッチングに応じて、前記ブロックの分割を禁止するか、または、前記分割数を加減する
     請求項8に記載の画像処理装置。
  11.  画像処理装置が、
     参照画像を用いた第1のブロックマッチングにより処理対象のブロックの動きベクトルを導出し、前記ブロックを構成するサブブロックの一部の動きベクトルを、前記第1のブロックマッチングとは異なる第2のブロックマッチングを用いて導出する
     画像処理方法。
  12.  参照画像を用いたブロックマッチングにより処理対象のブロックの動きベクトルを導出し、前記ブロックマッチングに用いた画像間の時間間隔を示す POC距離に応じて、前記ブロックのサブブロックへの分割を禁止するか、または、前記ブロックをサブブロックに分割するときの前記ブロックの分割数を加減する予測部を備える
     画像処理装置。
  13.  前記予測部は、前記POC距離と前記ブロックのサイズに応じて、前記ブロックの分割を禁止するか、または、前記分割数を加減する
     請求項12に記載の画像処理装置。
  14.  前記予測部は、前記POC距離、前記ブロックのサイズ、および前記ブロックの動きベクトル導出に用いる前記ブロックマッチングに応じて、前記ブロックの分割を禁止するか、または、前記分割数を加減する
     請求項12に記載の画像処理装置。
  15.  前記ブロックマッチングは、前記ブロックを含む画像と前記参照画像とに基づくテンプレートマッチング、または互いに異なる時刻の前記参照画像に基づくバイラテラレルマッチングである
     請求項12に記載の画像処理装置。
  16.  画像処理装置が、
     参照画像を用いたブロックマッチングにより処理対象のブロックの動きベクトルを導出し、前記ブロックマッチングに用いた画像間の時間間隔を示す POC距離に応じて、前記ブロックのサブブロックへの分割を禁止するか、または、前記ブロックをサブブロックに分割するときの前記ブロックの分割数を加減する
     画像処理方法。
PCT/JP2018/031284 2017-09-08 2018-08-24 画像処理装置および方法 WO2019049684A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/641,649 US20210168396A1 (en) 2017-09-08 2018-08-24 Image processing device and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017173132 2017-09-08
JP2017-173132 2017-09-08

Publications (1)

Publication Number Publication Date
WO2019049684A1 true WO2019049684A1 (ja) 2019-03-14

Family

ID=65634795

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/031284 WO2019049684A1 (ja) 2017-09-08 2018-08-24 画像処理装置および方法

Country Status (2)

Country Link
US (1) US20210168396A1 (ja)
WO (1) WO2019049684A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7324065B2 (ja) 2019-06-26 2023-08-09 キヤノン株式会社 動きベクトル検出装置、撮像装置、動きベクトル検出方法、及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006165840A (ja) * 2004-12-06 2006-06-22 Renesas Technology Corp 動き補償画像符号化装置及び符号化方法
WO2018061522A1 (ja) * 2016-09-27 2018-04-05 シャープ株式会社 動きベクトル生成装置、予測画像生成装置、動画像復号装置、および動画像符号化装置
WO2018110180A1 (ja) * 2016-12-15 2018-06-21 シャープ株式会社 動きベクトル生成装置、予測画像生成装置、動画像復号装置、および動画像符号化装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006165840A (ja) * 2004-12-06 2006-06-22 Renesas Technology Corp 動き補償画像符号化装置及び符号化方法
WO2018061522A1 (ja) * 2016-09-27 2018-04-05 シャープ株式会社 動きベクトル生成装置、予測画像生成装置、動画像復号装置、および動画像符号化装置
WO2018110180A1 (ja) * 2016-12-15 2018-06-21 シャープ株式会社 動きベクトル生成装置、予測画像生成装置、動画像復号装置、および動画像符号化装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHEN, JIANLE ET AL.: "Further improvements to HMKTA-1.0", ITU-TELECOMMUNICATIONS STANDARDIZATION SECTOR STUDY GROUP 16 QUESTION 6 VIDEO CODING EXPERTS GROUP(VCEG, 26 June 2015 (2015-06-26), Warsaw, Poland, pages 1 - 8, XP055555095 *
CHEN, XU ET AL.: "Decoder-Side Motion Vector Refinement Based on Bilateral Template Matching", JOINT VIDEO EXPLORATION TEAM(JVET) OF ITU-T SG 16 WP 3, 8 October 2016 (2016-10-08), Chengdu, CN, pages 1 - 4, XP030150255 *
SEO, JUNG-DONG ET AL.: "Simplification and improvements on FRUC", JOINT VIDEO EXPLORATION TEAM(JVET) OF ITU-T SG 16 WP 3, 6 July 2017 (2017-07-06), Meeting:Torino, pages 1 - 6, XP030150852 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7324065B2 (ja) 2019-06-26 2023-08-09 キヤノン株式会社 動きベクトル検出装置、撮像装置、動きベクトル検出方法、及びプログラム

Also Published As

Publication number Publication date
US20210168396A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
US11315320B2 (en) Information processing apparatus and method
US10063855B2 (en) Image predictive encoding and decoding device
JP6559309B2 (ja) 画像予測復号方法
TWI429292B (zh) 動作向量探索方法及裝置及其程式以及記錄有程式之記錄媒體
ES2588154T3 (es) Método de generación automática de procedimientos de generación de valores de predicción de píxel, método de codificación de imágenes, método de descodificación de imágenes, dispositivos que usan estos métodos, programas para estos métodos y medio de grabación en el que estos programas están grabados
JP2015065690A (ja) 画像予測符号化装置、画像予測符号化方法、画像予測符号化プログラム、画像予測復号装置、画像予測復号方法、及び、画像予測復号プログラム
EP2960855B1 (en) Method and device for determining a set of modifiable elements in a group of pictures
US20240048778A1 (en) Video transcoding method and apparatus, and electronic device and storage medium
Fu et al. Efficient depth intra frame coding in 3D-HEVC by corner points
EP3595312A1 (en) Image processing device and method
US20200059657A1 (en) Image processing apparatus and method
CN112640459A (zh) 图像编码系统中基于使用合并候选列表的运动预测的图像解码方法和设备
WO2019049684A1 (ja) 画像処理装置および方法
Huo et al. Fast rate-distortion optimization for depth maps in 3-d video coding
JP2014014133A (ja) 動画像復号装置、動画像復号方法及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
CN115941950A (zh) 编码方法、解码方法、编码设备以及解码设备
WO2022204392A1 (en) Multi-distribution entropy modeling of latent features in image and video coding using neural networks
US11790567B2 (en) Information processing apparatus and method
BR112021011517A2 (pt) Codificação de vídeo e decodificação de vídeo
JP7323014B2 (ja) 映像復号方法
US11818395B2 (en) Immersive video decoding method and immersive video encoding method
CN111083487B (zh) 仿射模式的运动信息的存储
CN114979632A (zh) 块矢量的编解码方法、编码设备、解码设备及存储介质
JP2022000949A (ja) 画像復号装置、画像復号方法及びプログラム
JP2020057840A (ja) 画像復号装置、画像符号化装置、画像処理システム及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18853274

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18853274

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP