JP2018074182A - Encoding device, encoding method, and encoding program - Google Patents

Encoding device, encoding method, and encoding program Download PDF

Info

Publication number
JP2018074182A
JP2018074182A JP2016207468A JP2016207468A JP2018074182A JP 2018074182 A JP2018074182 A JP 2018074182A JP 2016207468 A JP2016207468 A JP 2016207468A JP 2016207468 A JP2016207468 A JP 2016207468A JP 2018074182 A JP2018074182 A JP 2018074182A
Authority
JP
Japan
Prior art keywords
motion information
encoding target
encoding
target block
image
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.)
Pending
Application number
JP2016207468A
Other languages
Japanese (ja)
Inventor
芙美代 鷹野
Fumiyo Takano
芙美代 鷹野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2016207468A priority Critical patent/JP2018074182A/en
Publication of JP2018074182A publication Critical patent/JP2018074182A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a moving image encoding device that reduces a calculation amount and memory access when a prediction image is generated from an encoding object frame and can increase the encoding speed of a moving image.SOLUTION: An encoding device includes prediction image generation means 123 that generates a prediction image of an encoding target block by using a reference image and a candidate of movement information associated with the reference image from a first buffer 14 in which movement information associated with an encoded block is stored, evaluation cost calculation means 121 that calculates evaluation cost by using the encoding target block and the prediction image, a second buffer 124 that stores the associated movement information and the evaluation cost by using the movement information that is a candidate to be associated with the encoding target block as an index, and index selection means 122 that updates the index stored in the second buffer on the basis of the evaluation cost and selects the movement information that is a candidate to be associated with the encoding target block from the second buffer on the basis of the evaluation cost.SELECTED DRAWING: Figure 5

Description

本発明は、動画像を符号化する符号化装置、符号化方法および符号化プログラムに関する。特に、本発明は、時間的・空間的な相関性を利用して動画像情報を圧縮して符号化する符号化装置、符号化方法および符号化プログラムに関する。   The present invention relates to an encoding device, an encoding method, and an encoding program for encoding a moving image. In particular, the present invention relates to an encoding device, an encoding method, and an encoding program that compress and encode moving image information using temporal and spatial correlation.

H.264/MPEG−4 AVC(Moving Picture Experts Group-4 Advanced Video Coding:以下、H.264)は、動画像符号化の標準規格の一つである。また、H.264よりも新しいH.265/HEVC(High Efficiency Video Coding:以下、H.265)は、H.264に比べて小さいデータサイズで同等の画質を再現できる標準規格である。H.264およびH.265では、動画像を構成する符号化対象フレームを複数の画素ブロックに分割し、符号化対象フレームを構成するブロックごとに符号化を行う。   H. H.264 / MPEG-4 AVC (Moving Picture Experts Group-4 Advanced Video Coding: hereinafter H.264) is one of the standards for moving picture coding. H. H.264 newer than H.264. H.265 / HEVC (High Efficiency Video Coding: hereinafter H.265) It is a standard that can reproduce the same image quality with a smaller data size than H.264. H. H.264 and H.H. In H.265, the encoding target frame constituting the moving image is divided into a plurality of pixel blocks, and encoding is performed for each block constituting the encoding target frame.

H.265では、時間的・空間的な相関性を利用して情報を圧縮する。時間的な相関性を用いて情報を圧縮するモードのことをインター予測と呼び、空間的な相関性を用いて情報を圧縮するモードのことをイントラ予測と呼ぶ。例えば、インター予測モードには、符号化済みの参照フレーム1枚を用いて予測画像を作成する単方向予測と、符号化済みの参照フレーム2枚を用いて予測画像を作成する双方向予測の2種類がある。   H. In 265, information is compressed using temporal and spatial correlation. A mode in which information is compressed using temporal correlation is called inter prediction, and a mode in which information is compressed using spatial correlation is called intra prediction. For example, in the inter prediction mode, unidirectional prediction in which a prediction image is generated using one encoded reference frame and bidirectional prediction in which a prediction image is generated using two encoded reference frames are used. There are types.

インター予測では、フレーム間の動きに対応するために動き補償予測が用いられる。動き補償予測は、インター予測における時間的な相関性を用いて情報を圧縮する手法の一つである。動き補償予測では、フレーム間の動き量(以下、動きベクトル)を推定し、動き分だけずらした位置の画像を予測画像とする。動き補償予測では、ブロックごとに近傍フレームから予測画像を生成し、入力画像と予測画像との差分を符号化する。動きベクトルは、MV(Motion Vector)とも略され、差分画像と同時に符号化される。   In inter prediction, motion compensated prediction is used to cope with motion between frames. Motion compensated prediction is one of the methods for compressing information using temporal correlation in inter prediction. In motion compensation prediction, an amount of motion between frames (hereinafter referred to as a motion vector) is estimated, and an image at a position shifted by the amount of motion is used as a predicted image. In motion compensated prediction, a prediction image is generated from neighboring frames for each block, and a difference between the input image and the prediction image is encoded. The motion vector is also abbreviated as MV (Motion Vector) and is encoded simultaneously with the difference image.

H.265の動き補償予測では、非特許文献1のように、4分の1画素精度の動きベクトルを使用することができる。小数画素精度の予測画像は、整数画素の間の画素を補間して生成する。図18は、各画素における整数画素および小数画素の位置を示す概念図である。図18において、大文字で示す位置が整数画素の位置であり、小文字で示す位置が小数画素の位置である。図18の例では、小数画素の周辺に位置する複数の画素を用いたフィルタで補間する。   H. In motion compensated prediction of H.265, a motion vector with a quarter-pixel accuracy can be used as in Non-Patent Document 1. A predicted image with decimal pixel accuracy is generated by interpolating pixels between integer pixels. FIG. 18 is a conceptual diagram showing the positions of integer pixels and decimal pixels in each pixel. In FIG. 18, the position indicated by capital letters is the position of integer pixels, and the position indicated by small letters is the position of decimal pixels. In the example of FIG. 18, interpolation is performed with a filter using a plurality of pixels located around the decimal pixel.

また、H.265では、非特許文献2のように、動きベクトルデータの圧縮ツールとしてマージモードを含む。マージモードは、符号化対象ブロックの近傍ブロックと動き情報を統合する方式である。マージモードでは、動き情報を統合するブロック位置の候補(以下、候補ブロック)のうち選択された候補ブロックの動きベクトル(マージ候補ベクトルとよぶ)のいずれかをコピーしてそのまま使用する。そして、コピー元の候補ブロックの位置を表すインデックスのみを符号化する。   H. 265 includes a merge mode as a motion vector data compression tool, as in Non-Patent Document 2. The merge mode is a method in which motion information is integrated with neighboring blocks of the encoding target block. In the merge mode, one of the motion vectors (referred to as merge candidate vectors) of the selected candidate block among the candidate block positions (hereinafter referred to as candidate blocks) for integrating the motion information is copied and used as it is. Then, only the index representing the position of the copy source candidate block is encoded.

特許文献1には、符号化対象フレームをブロックに分割し、分割された各ブロックを動き補償予測を用いて符号化する動画像符号化技術について開示されている。   Patent Document 1 discloses a moving image encoding technique in which an encoding target frame is divided into blocks and each divided block is encoded using motion compensated prediction.

特許文献1の技術では、符号化対象フレームにおける動きベクトルの予測対象となる予測対象ブロックに対して、同一画像内の予め定められた近傍位置にある複数個の符号化済み参照ブロックから動きベクトルを抽出する。そして、特許文献1の技術では、予め定められた符号化済み画像を参照画像とし、参照ブロックと同じ配置関係にある参照画像内のブロックの中で、動きベクトルの乖離度が最小となるブロックの領域を求める。さらに、特許文献1の技術では、求められた領域に対して割り当てられた動きベクトルを当該ブロックに対する予測ベクトルの候補として抽出する。   In the technique of Patent Document 1, a motion vector is obtained from a plurality of encoded reference blocks at predetermined neighboring positions in the same image with respect to a prediction target block that is a prediction target of a motion vector in an encoding target frame. Extract. In the technique of Patent Document 1, a predetermined encoded image is used as a reference image, and among the blocks in the reference image having the same arrangement relationship as the reference block, the block having the smallest motion vector divergence is used. Find the area. Furthermore, in the technique of Patent Document 1, a motion vector assigned to the obtained area is extracted as a prediction vector candidate for the block.

特許文献2には、マージモードを用いる動画像符号化装置について開示されている。特許文献2の装置は、符号化対象ブロックの周辺に位置する5個の候補ブロックのマージ候補ベクトルを所定の順序に従って選択する。特許文献2の装置は、各候補ブロックの動きベクトルをマージ候補ベクトルとして登録するか否かを順番に判定していく。特許文献2の装置によれば、マージモードを用いることによって、動きベクトルデータの符号量を削減することができる。   Patent Document 2 discloses a moving image encoding apparatus using a merge mode. The apparatus of Patent Literature 2 selects merge candidate vectors of five candidate blocks located around the encoding target block in a predetermined order. The apparatus of Patent Literature 2 sequentially determines whether or not to register the motion vector of each candidate block as a merge candidate vector. According to the apparatus of Patent Literature 2, the code amount of motion vector data can be reduced by using the merge mode.

H.264の参照エンコーダJM(Joint Model)では、動きベクトルの評価コストを算出するたびに小数画素を補間して予測画像を作成せずに、各フレームの動きベクトル決定を始める前に画面一括で補間画像を作成してメモリに保存しておく。   H. In the H.264 reference encoder JM (Joint Model), every time a motion vector evaluation cost is calculated, an interpolated image is generated on the entire screen before starting the motion vector determination for each frame without interpolating decimal pixels and creating a predicted image. And save it in memory.

JMでは、各小数画素位置に対して1枚の補間画像を作成する。予測画像は、予め作成された補間画像から画像をコピーすることにより作成される。すなわち、JMでは、整数画素も含めると、図18のAからrまでの小数画素それぞれについて計16枚の補間画像を作成し、それらの補間画像から予測画像を作成する必要がある。   In JM, one interpolation image is created for each decimal pixel position. The predicted image is created by copying an image from an interpolation image created in advance. That is, in JM, including integer pixels, it is necessary to create a total of 16 interpolated images for each of the decimal pixels from A to r in FIG. 18, and to create predicted images from these interpolated images.

特開2012−129756号公報JP 2012-129756 A 特開2015−173404号公報JP2015-173404A

IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, "Overview of the High Efficiency Video Coding(HEVC) Standard" VOL. 22, NO.12, DECEMBER 2012, p.1649-1668IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, "Overview of the High Efficiency Video Coding (HEVC) Standard" VOL. 22, NO.12, DECEMBER 2012, p.1649-1668 情報源符号化部、「H.265|MPEG−H HEVC規格の概要Ver.1.0」、社団法人 電波産業界、デジタル放送システム開発部会、映像符号化方式作業班、2013年5月、p.19−20Information Source Coding Department, “H.265 | MPEG-H HEVC Outline of Standard Ver.1.0”, Radio Industry, Digital Broadcasting System Development Group, Video Coding System Working Group, May 2013, p . 19-20

非特許文献1のように、マージ候補ベクトルが小数精度の場合、予測画像を作成する際に小数画素補間処理が伴う。図18に示すように、小数画素の補間には、処理ブロック外の整数画素、処理ブロック外の補間結果を参照する必要があるため、ブロック外の画素も含めてメモリアクセス・演算しなければならない。   As in Non-Patent Document 1, when the merge candidate vector has decimal precision, decimal pixel interpolation processing is involved in creating a predicted image. As shown in FIG. 18, in order to interpolate decimal pixels, it is necessary to refer to integer pixels outside the processing block and interpolation results outside the processing block, so it is necessary to access and calculate the memory including the pixels outside the block. .

H.256参照エンコーダHMにおける一般的なマージ選択では、各符号化対象ブロックに対するマージ候補ベクトルの予測画像をそれぞれ独立に生成する。一般的なマージ選択では、近接する符号化対象ブロックの予測画像生成時に、同じ画素に重複してアクセスし、同じ小数画素を重複して生成するため、無駄なメモリアクセスと演算量が多い。   H. In general merge selection in the 256 reference encoder HM, prediction images of merge candidate vectors for each encoding target block are generated independently. In general merge selection, the same pixel is accessed redundantly and the same fractional pixel is generated redundantly when generating a prediction image of a neighboring encoding target block.

また、H.264参照エンコーダJMのように小数補間画像を事前に作成しておく方式においても、マージ候補ベクトル選択時には、メモリアクセスの重複に加えて、メモリアクセス効率が不十分である。連続するメモリ領域には一括してアクセスすることによってメモリアクセス効率を向上できるが、一般的なマージ選択では、連続した小数補間画像の予測画像であってもそれぞれ独立してメモリアクセスする必要が生じる。   H. Even in a method in which a decimal interpolation image is created in advance as in the H.264 reference encoder JM, memory access efficiency is insufficient in addition to memory access duplication when a merge candidate vector is selected. Memory access efficiency can be improved by accessing consecutive memory areas at once. However, in general merge selection, it is necessary to access memory independently even for predicted images of consecutive decimal interpolation images. .

本発明の目的は、上述した課題を解決するために、符号化対象フレームから予測画像を生成する際の演算量およびメモリアクセスを削減し、動画像の符号化を高速化できる符号化装置を提供することにある。   In order to solve the above-described problems, an object of the present invention is to provide an encoding device capable of reducing the amount of calculation and memory access when generating a predicted image from an encoding target frame and speeding up the encoding of a moving image. There is to do.

本発明の一態様において、符号化装置は、符号化対象フレームに含まれる符号化対象ブロックと、符号化対象ブロックに対応する参照画像とを入力とし、符号化済みブロックに対応付けられた動き情報が格納される第1のバッファから参照画像に対応付けられる動き情報の候補を取得し、動き情報の候補と参照画像とを用いて予測画像を生成する予測画像生成手段と、符号化対象ブロックと予測画像とを入力とし、符号化対象ブロックと予測画像とを用いて符号化対象ブロックの評価コストを算出する評価コスト算出手段と、符号化対象ブロックに対応付ける候補となる動き情報をインデックスとして、動き情報と評価コストとを関連付けて格納する第2のバッファと、動き情報に関して算出された評価コストに基づいて第2のバッファに格納されたインデックスを更新し、符号化対象ブロックに対応付ける候補となる動き情報を評価コストに基づいて第2のバッファから選択するインデックス選択手段とを備える。   In one aspect of the present invention, an encoding device receives, as input, an encoding target block included in an encoding target frame and a reference image corresponding to the encoding target block, and motion information associated with the encoded block A prediction image generating means for acquiring a motion information candidate associated with a reference image from a first buffer in which is stored, and generating a prediction image using the motion information candidate and the reference image; a coding target block; Using the predicted image as an input, evaluation cost calculating means for calculating the evaluation cost of the coding target block using the coding target block and the predicted image, and motion information as a candidate to be associated with the coding target block as an index A second buffer for storing the information and the evaluation cost in association with each other, and a second buffer based on the evaluation cost calculated for the motion information. It has been updated the index includes an index selector for selecting from the second buffer on the basis of motion information which are candidates to be associated with the encoding target block in the evaluation cost.

本発明の一態様において、符号化方法は、符号化対象フレームに含まれる符号化対象ブロックと、符号化対象ブロックに対応する参照画像とを入力し、符号化済みブロックに対応付けられた動き情報が格納される第1のバッファから参照画像に対応付けられる動き情報を取得し、参照画像と動き情報とを用いて予測画像を生成し、符号化対象ブロックに関して評価コストを算出し、符号化対象ブロックに対応付ける候補となる動き情報をインデックスとして、動き情報と評価コストとを関連付けて第2のバッファに格納し、動き情報に関して算出された評価コストに基づいて第2のバッファに格納されたインデックスを更新し、符号化対象ブロックに対応付ける候補となる動き情報を評価コストに基づいて第2のバッファから選択する。   In one aspect of the present invention, an encoding method receives motion information associated with an encoded block by inputting an encoding target block included in the encoding target frame and a reference image corresponding to the encoding target block. Motion information associated with the reference image is acquired from the first buffer in which is stored, a prediction image is generated using the reference image and the motion information, an evaluation cost is calculated for the encoding target block, and the encoding target The motion information that is a candidate to be associated with the block is used as an index, the motion information and the evaluation cost are associated with each other and stored in the second buffer, and the index stored in the second buffer based on the evaluation cost calculated for the motion information is stored. The motion information that becomes a candidate to be updated and associated with the encoding target block is selected from the second buffer based on the evaluation cost.

本発明の一態様において、符号化プログラムは、符号化対象フレームに含まれる符号化対象ブロックと、符号化対象ブロックに対応する参照画像とを入力する処理と、符号化済みブロックに対応付けられた動き情報が格納される第1のバッファから参照画像に対応付けられる動き情報を取得する処理と、参照画像と動き情報とを用いて予測画像を生成する処理と、符号化対象ブロックに関して評価コストを算出する処理と、符号化対象ブロックに対応付ける候補となる動き情報をインデックスとして、動き情報と評価コストとを関連付けて第2のバッファに格納する処理と、動き情報に関して算出された評価コストに基づいて第2のバッファに格納されたインデックスを更新する処理と、符号化対象ブロックに対応付ける候補となる動き情報を評価コストに基づいて第2のバッファから選択する処理とをコンピュータに実行させる。   In one aspect of the present invention, an encoding program is associated with a process of inputting an encoding target block included in an encoding target frame and a reference image corresponding to the encoding target block, and the encoded block. A process for obtaining motion information associated with a reference image from a first buffer in which motion information is stored, a process for generating a predicted image using the reference image and the motion information, and an evaluation cost for the encoding target block Based on the processing to calculate, the processing to store the motion information and the evaluation cost in association with the motion information that is a candidate to be associated with the block to be encoded in the second buffer, and the evaluation cost calculated for the motion information Processing for updating the index stored in the second buffer, and motion information as a candidate to be associated with the encoding target block To execute a process of selecting from the second buffer, based on the evaluation cost computer.

本発明によれば、符号化対象フレームから予測画像を生成する際の演算量およびメモリアクセスを削減し、動画像の符号化を高速化できる符号化装置を提供することができる。   According to the present invention, it is possible to provide an encoding device capable of reducing the amount of calculation and memory access when generating a predicted image from an encoding target frame, and speeding up the encoding of a moving image.

本発明の第1の実施形態に係る動画像符号化装置の構成を示す概念図である。It is a conceptual diagram which shows the structure of the moving image encoder which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る動画像符号化装置における信号の流れの一例を示す概念図である。It is a conceptual diagram which shows an example of the flow of the signal in the moving image encoder which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る動画像符号化装置が用いるマージモードについて説明するための概念図である。It is a conceptual diagram for demonstrating the merge mode which the moving image encoder which concerns on the 1st Embodiment of this invention uses. 本発明の第1の実施形態に係る動画像符号化装置が処理する符号化対象ブロックの候補ブロックを示す概念図である。It is a conceptual diagram which shows the candidate block of the encoding object block which the moving image encoder which concerns on the 1st Embodiment of this invention processes. 本発明の第1の実施形態に係る動画像符号化装置の動きベクトル決定手段の構成を示すブロック図である。It is a block diagram which shows the structure of the motion vector determination means of the moving image encoder which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る動画像符号化装置の動きベクトル決定手段における信号の流れの一例を示す概念図である。It is a conceptual diagram which shows an example of the signal flow in the motion vector determination means of the moving image encoder which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る動画像符号化装置の処理対象である符号化対象ブロックの分割例を示す概念図である。It is a conceptual diagram which shows the example of a division | segmentation of the encoding object block which is a process target of the moving image encoder which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る動画像符号化装置の処理対象である符号化対象ブロックから予測画像を生成する際の参照画像の移動について説明するための概念図である。It is a conceptual diagram for demonstrating the movement of the reference image at the time of producing | generating a prediction image from the encoding object block which is a process target of the moving image encoder which concerns on the 1st Embodiment of this invention. 動きベクトルを共通とする複数のマージ候補ベクトルの予測画像を生成する際に必要画素が重複していることを示す概念図である。It is a conceptual diagram which shows that a required pixel overlaps when producing | generating the prediction image of the some merge candidate vector which makes a motion vector common. 本発明の第1の実施形態に係る動画像符号化装置の動きベクトル決定手段に含まれるマージ選択手段の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the merge selection means contained in the motion vector determination means of the moving image encoder which concerns on the 1st Embodiment of this invention. 関連技術の動画像符号化装置の動きベクトル決定手段の構成を示すブロック図である。It is a block diagram which shows the structure of the motion vector determination means of the moving image encoder of related technology. 関連技術の動画像符号化装置の動きベクトル決定手段に含まれるマージ選択手段の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the merge selection means contained in the motion vector determination means of the moving image encoding device of related technology. 一般的な動画像符号化方法について説明するための概念図である。It is a conceptual diagram for demonstrating the general moving image encoding method. 本発明の第2の実施形態に係る動画像符号化方法における動作を示すフローチャートである。It is a flowchart which shows the operation | movement in the moving image encoding method which concerns on the 2nd Embodiment of this invention. 本発明の各実施形態に係る動画像符号化装置を実現するハードウェアの構成例を示すブロック図である。It is a block diagram which shows the structural example of the hardware which implement | achieves the moving image encoder which concerns on each embodiment of this invention. 本発明の各実施形態に係る動画像符号化装置を実現するハードウェアの別の構成例を示すブロック図である。It is a block diagram which shows another structural example of the hardware which implement | achieves the moving image encoder which concerns on each embodiment of this invention. 本発明の各実施形態に係る動画像符号化装置を実現するハードウェアに含まれるGPU(Graphic Processing Unit)の構成例を示す概念図である。It is a conceptual diagram which shows the structural example of GPU (Graphic Processing Unit) contained in the hardware which implement | achieves the moving image encoder which concerns on each embodiment of this invention. 符号化対象フレームにおける整数画素および小数画素について説明するための概念図である。It is a conceptual diagram for demonstrating the integer pixel and decimal pixel in an encoding object frame.

以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。以下の実施形態の説明に用いる全図においては、特に理由がない限り、同様箇所には同一符号を付す。また、以下の実施形態において、同様の構成・動作に関しては繰り返しの説明を省略する場合がある。また、図面中の矢印の向きは、一例を示すものであり、構成要素間の信号の向きを限定するものではない。   EMBODIMENT OF THE INVENTION Below, the form for implementing this invention is demonstrated using drawing. However, the preferred embodiments described below are technically preferable for carrying out the present invention, but the scope of the invention is not limited to the following. In all the drawings used for the description of the following embodiments, the same parts are denoted by the same reference numerals unless otherwise specified. In the following embodiments, repeated description of similar configurations and operations may be omitted. Moreover, the direction of the arrow in the drawing shows an example, and does not limit the direction of the signal between the components.

(第1の実施形態)
(構成)
まず、本発明の第1の実施形態に係る動画像符号化装置(符号化装置ともよぶ)について図面を参照しながら詳細に説明する。
(First embodiment)
(Constitution)
First, a moving picture encoding apparatus (also referred to as an encoding apparatus) according to a first embodiment of the present invention will be described in detail with reference to the drawings.

本実施形態に係る動画像符号化装置は、H.265規格に基づいた構成を有し、動画像に含まれる符号化対象画像(以下、符号化対象フレーム)を符号化する際に、該符号化対象フレームを複数のブロック(以下、符号化対象ブロック)に分割する。本実施形態では、複数の符号化対象ブロックに跨る空間的に連続した予測画像の生成をまとめて行うことによって、空間的に連続する符号化対象ブロック間で重複する処理やメモリアクセスを削減する。   The moving picture encoding apparatus according to the present embodiment is an H.264 standard. When encoding an encoding target image (hereinafter referred to as an encoding target frame) included in a moving image, the encoding target frame is divided into a plurality of blocks (hereinafter referred to as encoding target blocks). ). In the present embodiment, the generation of spatially continuous predicted images across a plurality of encoding target blocks is collectively performed, thereby reducing processing and memory access that overlap between spatially continuous encoding target blocks.

図1は、本実施形態に係る動画像符号化装置1の構成を示す概念図である。図2は、本実施形態の動画像符号化装置1が動作する際の信号の流れを矢印で示した概念図である。なお、図2の信号の流れは一例であって、本実施形態の動画像符号化装置1における信号の流れを限定するものではない。   FIG. 1 is a conceptual diagram showing a configuration of a video encoding device 1 according to the present embodiment. FIG. 2 is a conceptual diagram showing arrows the signal flow when the moving picture encoding apparatus 1 of the present embodiment operates. Note that the signal flow in FIG. 2 is an example, and does not limit the signal flow in the video encoding device 1 of the present embodiment.

動画像符号化装置1は、動きベクトル決定手段10、インター予測手段21、イントラ予測手段22、加算器23、変換・量子化手段24、符号化手段25、逆変換・逆量子化手段26、合成器27、ループフィルタ28、フレームバッファ29を備える。特に、動画像符号化装置1は、動きベクトル決定手段10に特徴を有する。なお、動きベクトルは、MV(Motion Vector)とも略される。   The moving image encoding apparatus 1 includes a motion vector determination unit 10, an inter prediction unit 21, an intra prediction unit 22, an adder 23, a transform / quantization unit 24, an encoding unit 25, an inverse transform / inverse quantization unit 26, and a synthesis. Device 27, loop filter 28, and frame buffer 29. In particular, the moving image coding apparatus 1 is characterized by the motion vector determination means 10. The motion vector is also abbreviated as MV (Motion Vector).

動きベクトル決定手段10(動き情報決定手段とも呼ぶ)は、入力画像として符号化対象フレームを取得する。動きベクトル決定手段10は、取得した符号化対象フレームを構成するいずれかの符号化対象ブロックに対応する符号化済みブロック(以下、参照画像とよぶ)をフレームバッファ29から読み出す。
動きベクトル決定手段10は、符号化対象ブロックに対して、符号化対象ブロックと参照画像との間の動きを示す動き情報(動きベクトル)を決定する。動きベクトル決定手段10は、決定した動きベクトルに関する情報をインター予測手段21に出力する。
The motion vector determination unit 10 (also referred to as motion information determination unit) acquires the encoding target frame as an input image. The motion vector determination unit 10 reads an encoded block (hereinafter referred to as a reference image) corresponding to any of the encoding target blocks constituting the acquired encoding target frame from the frame buffer 29.
The motion vector determination unit 10 determines motion information (motion vector) indicating the motion between the encoding target block and the reference image for the encoding target block. The motion vector determination unit 10 outputs information on the determined motion vector to the inter prediction unit 21.

動きベクトル決定手段10は、符号化対象ブロックのフレーム間における動きを推定するために、空間的に連続する符号化済みブロックから動きベクトルの候補(以下、候補動きベクトルとよぶ)を複製する。動きベクトル決定手段10は、複製した候補動きベクトルに対して評価コストを算出する。   The motion vector determination means 10 duplicates motion vector candidates (hereinafter referred to as candidate motion vectors) from spatially continuous encoded blocks in order to estimate the motion between frames of the encoding target block. The motion vector determination unit 10 calculates an evaluation cost for the copied candidate motion vector.

そして、動きベクトル決定手段10は、算出した評価コストに基づいて、候補動きベクトルの中から符号化対象ブロックの動きベクトルを選択する。本実施形態においては、例えば、動きベクトル決定手段10は、評価コストが最小の動きベクトルを選択する。   Then, the motion vector determination unit 10 selects a motion vector of the encoding target block from the candidate motion vectors based on the calculated evaluation cost. In the present embodiment, for example, the motion vector determination unit 10 selects a motion vector with the lowest evaluation cost.

例えば、動きベクトル決定手段10は、符号化による画像歪コストと、符号化に必要な符号量コストとの和を評価コストとして算出する。例えば、動きベクトル決定手段10は、入力画像ブロックと予測画像ブロックの類似度を表す画素の絶対値差分和SAD(Sum of Absolute Difference)値を画像歪コストとして用いる。また、動きベクトル決定手段10は、動きベクトルを符号化するための符号量を符号量コストとして用いる。SAD値が小さいほど類似度が高いため、動きベクトル決定手段10は、評価コストが最小になる動きベクトルを選択する。   For example, the motion vector determination unit 10 calculates the sum of the image distortion cost due to encoding and the code amount cost necessary for encoding as the evaluation cost. For example, the motion vector determination unit 10 uses an absolute value difference sum SAD (Sum of Absolute Difference) value of pixels representing the similarity between the input image block and the predicted image block as the image distortion cost. In addition, the motion vector determination unit 10 uses a code amount for encoding a motion vector as a code amount cost. Since the similarity is higher as the SAD value is smaller, the motion vector determination unit 10 selects a motion vector that minimizes the evaluation cost.

インター予測手段21は、動きベクトル決定手段10によって決定された動きベクトルに対応する予測画像を生成する。インター予測手段21は、生成した予測画像を加算器23および合成器27に出力する。   The inter prediction unit 21 generates a prediction image corresponding to the motion vector determined by the motion vector determination unit 10. The inter prediction unit 21 outputs the generated predicted image to the adder 23 and the combiner 27.

イントラ予測手段22は、イントラ予測に基づいて予測画像を生成する。イントラ予測手段22は、生成した予測画像を加算器23および合成器27に出力する。   The intra prediction unit 22 generates a prediction image based on the intra prediction. The intra prediction means 22 outputs the generated predicted image to the adder 23 and the combiner 27.

加算器23は、入力画像と予測画像とを入力とし、入力画像と予測画像との差分である残差信号を生成する。加算器23は、生成した残差信号を変換・量子化手段24に出力する。   The adder 23 receives the input image and the predicted image, and generates a residual signal that is a difference between the input image and the predicted image. The adder 23 outputs the generated residual signal to the transform / quantization means 24.

変換・量子化手段24は、加算器23からの残差信号を入力とし、その残差信号を整数変換して量子化された変換係数を生成する。変換・量子化手段24は、量子化された変換係数を符号化手段25および逆変換・逆量子化手段に出力する。   The transform / quantization means 24 receives the residual signal from the adder 23 as an input, converts the residual signal into an integer, and generates a quantized transform coefficient. The transform / quantization unit 24 outputs the quantized transform coefficient to the encoding unit 25 and the inverse transform / inverse quantization unit.

符号化手段25は、変換・量子化手段24によって量子化された変換係数を符号化し、そのビットストリームを符号化ストリームとして出力する。   The encoding unit 25 encodes the transform coefficient quantized by the transform / quantization unit 24 and outputs the bit stream as an encoded stream.

逆変換・逆量子化手段26は、変換・量子化手段24によって量子化された変換係数を入力とし、その変換係数を逆変換することによって予測残差画像を復号する。具体的には、逆変換・逆量子化手段26は、量子化された変換係数を逆量子化した後に逆整数変換することによって予測残差画像を復号する。   The inverse transform / inverse quantization unit 26 receives the transform coefficient quantized by the transform / quantization unit 24 and decodes the prediction residual image by performing inverse transform on the transform coefficient. Specifically, the inverse transform / inverse quantization means 26 decodes the prediction residual image by performing inverse integer transform after dequantizing the quantized transform coefficient.

合成器27は、逆変換・逆量子化手段26によって復号された予測残差画像と、インター予測手段21によって生成された予測画像とを入力とする。合成器27は、予測残差画像と予測画像とを合成し、再構築画像を生成する。合成器27は、生成した再構築画像をイントラ予測手段22およびループフィルタ28に出力する。   The synthesizer 27 receives the prediction residual image decoded by the inverse transform / inverse quantization means 26 and the prediction image generated by the inter prediction means 21 as inputs. The synthesizer 27 synthesizes the prediction residual image and the prediction image to generate a reconstructed image. The synthesizer 27 outputs the generated reconstructed image to the intra prediction unit 22 and the loop filter 28.

合成器27によって生成された再構築画像は、イントラ予測手段22において同一フレームのイントラ予測に使用される。また、ループフィルタ28によってフィルタリングされた画像は、フレームバッファ29に格納され、後続フレームのインター予測に使用される。   The reconstructed image generated by the synthesizer 27 is used for intra prediction of the same frame in the intra prediction means 22. Further, the image filtered by the loop filter 28 is stored in the frame buffer 29 and used for inter prediction of the subsequent frame.

ループフィルタ28は、合成器27によって生成された再構築画像からブロック歪を除去し、ブロック歪が除去された再構築画像をフレームバッファ29に格納する。   The loop filter 28 removes block distortion from the reconstructed image generated by the synthesizer 27 and stores the reconstructed image from which block distortion has been removed in the frame buffer 29.

フレームバッファ29は、ループフィルタ28によってブロック歪が除去された再構築画像(以下、参照画像とよぶ)を格納するためのバッファである。フレームバッファ29に格納された参照画像は、後続フレームの符号化対象ブロックのインター予測を行う際に、動きベクトル決定手段10から参照画像として読み出される。   The frame buffer 29 is a buffer for storing a reconstructed image (hereinafter referred to as a reference image) from which block distortion has been removed by the loop filter 28. The reference image stored in the frame buffer 29 is read out as a reference image from the motion vector determination unit 10 when performing inter prediction of the encoding target block of the subsequent frame.

〔マージモード〕
本実施形態の動画像符号化装置1は、時間的・空間的な相関性を利用して動画像情報を圧縮する。時間的な相関性を用いて動画像情報を圧縮するモードはインター予測と呼ばれ、空間的な相関性を用いて動画像情報を圧縮するモードはイントラ予測と呼ばれる。
[Merge mode]
The moving image encoding apparatus 1 of the present embodiment compresses moving image information using temporal and spatial correlation. A mode in which moving picture information is compressed using temporal correlation is called inter prediction, and a mode in which moving picture information is compressed using spatial correlation is called intra prediction.

インター予測は、動き探索モード(第1のモード)とマージモード(第2のモード)とを含む。動き探索モードでは、動きベクトルを直接符号化する。一方、マージモードでは、符号化対象ブロックに先行する符号化済みブロックの動きベクトルを複製し、複製した動きベクトルを符号化対象ブロックの動きベクトルとして用いる。すなわち、マージモードでは、符号化対象ブロックが参照するブロックの動きベクトルを複製する。   The inter prediction includes a motion search mode (first mode) and a merge mode (second mode). In the motion search mode, the motion vector is directly encoded. On the other hand, in the merge mode, the motion vector of the encoded block preceding the encoding target block is copied, and the copied motion vector is used as the motion vector of the encoding target block. That is, in the merge mode, the motion vector of the block referenced by the encoding target block is duplicated.

図3は、マージモードについて説明するための概念図である。図3の左上側のフレームは符号化対象フレーム100である。図3の右上側のフレームは動きベクトルを算出するために参照される参照フレーム200である。参照フレーム200は、符号化済みフレームである。   FIG. 3 is a conceptual diagram for explaining the merge mode. The upper left frame in FIG. 3 is the encoding target frame 100. The upper right frame in FIG. 3 is a reference frame 200 that is referred to in order to calculate a motion vector. The reference frame 200 is an encoded frame.

図3の左下側の破線内部には、符号化対象フレーム100に含まれる符号化対象ブロック101を拡大して図示している。図3の右下側の破線内部には、参照フレーム200において符号化対象ブロック101と同一位置のブロック(以下、参照ブロック201)を拡大して図示している。図3の左下側および右下側の破線内部に示す符号化対象ブロック101および参照ブロック201の周辺や内部に示す7つのブロックは、動き情報を統合するブロック位置の候補(以下、候補ブロック)を示す。   The encoding target block 101 included in the encoding target frame 100 is illustrated in an enlarged manner inside the broken line on the lower left side of FIG. In the lower right broken line in FIG. 3, a block (hereinafter referred to as a reference block 201) at the same position as the encoding target block 101 in the reference frame 200 is enlarged and illustrated. The seven blocks shown around the encoding target block 101 and the reference block 201 inside the broken lines on the lower left side and the lower right side in FIG. 3 are block position candidates (hereinafter referred to as candidate blocks) for integrating motion information. Show.

マージモードでは、7つの候補ブロックのうち5つの候補ブロックの動きベクトル(マージ候補ベクトルとよぶ)が選択される。マージモードでは、選択された候補ブロックの動きベクトル(マージ候補ベクトルとよぶ)のいずれかを複製したものをそのまま使用し、コピー元の候補ブロックの位置を表すインデックス(マージインデックスともよぶ)のみを符号化する。以下の説明では、図4のように、符号化対象ブロック101の右上側(2)、上側(3)、左側(4)および左上側(5)に位置する4つの候補ブロック(Cand2〜5)のみに着目する。なお、Candは候補(Candidate)の略である。   In the merge mode, motion vectors (referred to as merge candidate vectors) of five candidate blocks out of the seven candidate blocks are selected. In merge mode, a copy of one of the motion vectors (called merge candidate vectors) of the selected candidate block is used as it is, and only the index (also called the merge index) that indicates the position of the copy source candidate block is encoded. Turn into. In the following description, as shown in FIG. 4, four candidate blocks (Cand2 to 5) located on the upper right side (2), upper side (3), left side (4), and upper left side (5) of the encoding target block 101. Focus only on. Cand is an abbreviation for Candidate.

〔動きベクトル決定手段〕
ここで、動きベクトル決定手段10の詳細構成について図5を用いて説明する。図5は、動きベクトル決定手段10の詳細構成を示すブロック図である。図6は、動きベクトル決定手段10が動作する際の信号の流れを矢印で示した概念図である。なお、図6の信号の流れは一例であって、動きベクトル決定手段10における信号の流れを限定するものではない。
[Motion vector determination means]
Here, a detailed configuration of the motion vector determination unit 10 will be described with reference to FIG. FIG. 5 is a block diagram showing a detailed configuration of the motion vector determination means 10. FIG. 6 is a conceptual diagram showing the flow of signals when the motion vector determination means 10 operates by arrows. The signal flow in FIG. 6 is an example, and the signal flow in the motion vector determination unit 10 is not limited.

動きベクトル決定手段10は、一般的なHEVC(High Efficiency Video Coding)の参照エンコーダHM(HEVC Test Model)の動きベクトル決定機能を含む。動きベクトル決定手段10は、マージ候補ベクトルに関する情報を記憶するバッファが追加されている点で、一般的なHEVCの参照エンコーダHMとは異なる。   The motion vector determination means 10 includes a motion vector determination function of a general HEVC (High Efficiency Video Coding) reference encoder HM (HEVC Test Model). The motion vector determination means 10 is different from a general HEVC reference encoder HM in that a buffer for storing information on merge candidate vectors is added.

図5のように、動きベクトル決定手段10は、動き探索手段11、マージ選択手段12、動きベクトル比較手段13、動きベクトルバッファ14を有する。   As shown in FIG. 5, the motion vector determination unit 10 includes a motion search unit 11, a merge selection unit 12, a motion vector comparison unit 13, and a motion vector buffer 14.

動き探索手段11(探索手段ともよぶ)は、符号化対象ブロックと、該符号化対象ブロックの参照画像とを取得し、動き探索モードで動きベクトルを決定する。動き探索手段11は、決定した動きベクトルを動きベクトル比較手段13に出力する。   The motion search means 11 (also referred to as search means) obtains an encoding target block and a reference image of the encoding target block, and determines a motion vector in the motion search mode. The motion search means 11 outputs the determined motion vector to the motion vector comparison means 13.

マージ選択手段12(選択手段ともよぶ)は、符号化対象ブロックと参照画像とを取得し、マージモードで動きベクトルを選択する。マージ選択手段12は、動きベクトルバッファ14に格納されているマージ候補ベクトルの中から、その符号化対象ブロックに隣接する符号化済みブロックの動きベクトルを選択する。   The merge selection unit 12 (also referred to as selection unit) acquires the encoding target block and the reference image, and selects a motion vector in the merge mode. The merge selection unit 12 selects a motion vector of an encoded block adjacent to the encoding target block from among the merge candidate vectors stored in the motion vector buffer 14.

動きベクトル比較手段13(比較手段ともよぶ)は、動き探索モードで決定された動きベクトルとマージモードで選択された動きベクトルとを比較し、評価コストの小さい方を符号化対象ブロックの動きベクトルとして選択する。動きベクトル比較手段13は、選択した動きベクトルをインター予測手段21に出力するとともに、動きベクトルバッファ14に格納する。   The motion vector comparison means 13 (also referred to as comparison means) compares the motion vector determined in the motion search mode and the motion vector selected in the merge mode, and uses the one with the smaller evaluation cost as the motion vector of the encoding target block. select. The motion vector comparison unit 13 outputs the selected motion vector to the inter prediction unit 21 and stores it in the motion vector buffer 14.

動きベクトルバッファ14(第1のバッファともよぶ)には、動きベクトル比較手段13によって選択された動きベクトルが格納される。動きベクトルバッファ14に格納された動きベクトルは、後続する符号化対象ブロックに隣接するブロックのマージ候補ベクトルとして使用される。言い換えると、動きベクトルバッファ14には、符号化済みフレームおよび符号化対象フレームの符号化済みブロックの動きベクトルが格納される。   The motion vector buffer 14 (also referred to as the first buffer) stores the motion vector selected by the motion vector comparison means 13. The motion vector stored in the motion vector buffer 14 is used as a merge candidate vector for a block adjacent to the subsequent encoding target block. In other words, the motion vector buffer 14 stores the motion vectors of the encoded frame and the encoded block of the encoding target frame.

〔マージ選択手段〕
ここで、マージ選択手段12の詳細な構成について説明する。図5および図6のように、マージ選択手段12は、評価コスト算出手段121、マージインデックス選択手段122、マージ候補予測画像生成手段123、マージ候補バッファ124を含む。なお、図5および図6は、マージ選択手段12の特徴的な構成のみを示しており、マージ選択手段12の全てを示しているわけではない。
[Merge selection means]
Here, a detailed configuration of the merge selection unit 12 will be described. As shown in FIGS. 5 and 6, the merge selection unit 12 includes an evaluation cost calculation unit 121, a merge index selection unit 122, a merge candidate predicted image generation unit 123, and a merge candidate buffer 124. 5 and 6 show only the characteristic configuration of the merge selection means 12, and not all of the merge selection means 12.

評価コスト算出手段121は、符号化対象ブロックと、その符号化対象ブロックに対応する参照画像から生成される予測画像とを入力とする。評価コスト算出手段121は、入力画像および予測画像を用いて、符号化対象ブロックの評価コストを算出する。   The evaluation cost calculation unit 121 receives a coding target block and a predicted image generated from a reference image corresponding to the coding target block. The evaluation cost calculation unit 121 calculates the evaluation cost of the encoding target block using the input image and the predicted image.

評価コスト算出手段121は、その符号化対象ブロックのフレーム間の動きを推定するために、様々な候補動きベクトルに対して評価コストを算出する。   The evaluation cost calculation unit 121 calculates evaluation costs for various candidate motion vectors in order to estimate the motion between frames of the encoding target block.

例えば、評価コスト算出手段121は、符号化による画像歪コストと、符号化に必要な符号量コストとの和を評価コストとして算出する。例えば、評価コスト算出手段121は、入力画像ブロックと予測画像ブロックとの類似度を表す画素の絶対値差分和SAD値を画像歪コストとして用いる。また、例えば、評価コスト算出手段121は、動きベクトルを符号化するための符号量を符号量コストとして用いる。   For example, the evaluation cost calculation unit 121 calculates the sum of the image distortion cost due to encoding and the code amount cost necessary for encoding as the evaluation cost. For example, the evaluation cost calculation unit 121 uses the absolute value difference sum SAD value of pixels representing the similarity between the input image block and the predicted image block as the image distortion cost. For example, the evaluation cost calculation unit 121 uses a code amount for encoding a motion vector as a code amount cost.

マージインデックス選択手段122(インデックス選択手段ともよぶ)は、動きベクトルに関して算出された評価コストに基づいて、マージ候補バッファ124に格納される最良マージインデックスを更新する。マージインデックスとは、マージ候補バッファ124に格納されたマージ候補ベクトルを同定するためのインデックスである。   The merge index selection unit 122 (also referred to as index selection unit) updates the best merge index stored in the merge candidate buffer 124 based on the evaluation cost calculated for the motion vector. The merge index is an index for identifying a merge candidate vector stored in the merge candidate buffer 124.

マージインデックス選択手段122は、最良マージインデックスを更新すると、評価コストに基づいて、符号化対象ブロックに対応付ける動きベクトルをマージ候補バッファ124から選択する。マージインデックス選択手段122は、選択した動きベクトルを動きベクトル比較手段13に出力する。   When the best merge index is updated, the merge index selection unit 122 selects a motion vector associated with the encoding target block from the merge candidate buffer 124 based on the evaluation cost. The merge index selection unit 122 outputs the selected motion vector to the motion vector comparison unit 13.

当該ブロックの評価コストがマージ候補バッファ124に格納されていない場合、マージインデックス選択手段122は、符号化対象ブロックの評価コストを最良マージインデックスとして、マージ候補ベクトルと関連付けてマージ候補バッファ124に格納する。   If the evaluation cost of the block is not stored in the merge candidate buffer 124, the merge index selection unit 122 stores the evaluation cost of the block to be encoded as the best merge index in association with the merge candidate vector in the merge candidate buffer 124. .

一方、当該ブロックの評価コストが既にマージ候補バッファ124に格納されている場合、マージインデックス選択手段122は、当該ブロックに関して、新たに算出された評価コストと、マージ候補バッファ124に格納されている評価コストとを比較する。そして、マージインデックス選択手段122は、当該ブロックに関して新たに算出された評価コストが最小である場合、マージ候補バッファ124に格納された最良マージインデックスを更新する。   On the other hand, when the evaluation cost of the block is already stored in the merge candidate buffer 124, the merge index selection unit 122 determines the newly calculated evaluation cost and the evaluation stored in the merge candidate buffer 124 for the block. Compare costs. Then, the merge index selection unit 122 updates the best merge index stored in the merge candidate buffer 124 when the evaluation cost newly calculated for the block is minimum.

マージ候補予測画像生成手段123(予測画像生成手段ともよぶ)は、符号化対象ブロックに対応する参照画像をフレームバッファ29から読み出す。そして、マージ候補予測画像生成手段123は、入力した符号化対象ブロックに対応する動きベクトル(マージ候補ベクトル)を動きベクトルバッファ14から取得する。マージ候補予測画像生成手段123は、参照画像とマージ候補ベクトルとを用いて予測画像を生成する。マージ候補ベクトルが小数精度ベクトルの場合、マージ候補予測画像生成手段123は、小数画素を補間することで予測画像を生成する。   The merge candidate predicted image generation unit 123 (also referred to as a predicted image generation unit) reads a reference image corresponding to the encoding target block from the frame buffer 29. Then, the merge candidate predicted image generation unit 123 acquires a motion vector (merge candidate vector) corresponding to the input encoding target block from the motion vector buffer 14. The merge candidate predicted image generation unit 123 generates a predicted image using the reference image and the merge candidate vector. When the merge candidate vector is a decimal precision vector, the merge candidate prediction image generation unit 123 generates a prediction image by interpolating decimal pixels.

マージ候補予測画像生成手段123は、共通の動きベクトルをマージ候補ベクトルとする符号化対象ブロックに対応する予測画像を一括して生成する。すなわち、マージ候補予測画像生成手段123は、複製元として選択された動きベクトルをマージ候補ベクトルとする複数の符号化対象ブロックの予測画像を一括して生成する。   The merge candidate predicted image generation unit 123 collectively generates predicted images corresponding to blocks to be encoded with a common motion vector as a merge candidate vector. That is, the merge candidate predicted image generation unit 123 collectively generates predicted images of a plurality of encoding target blocks using the motion vector selected as the replication source as a merge candidate vector.

マージ候補バッファ124(第2のバッファともよぶ)は、各符号化対象ブロックのマージ候補ベクトルとその評価コストとを関連付けて格納するバッファである。すなわち、マージ候補バッファ124は、符号化対象ブロックのマージ候補ベクトルをインデックスとし、符号化対象ブロックの動き情報と評価コストとを関連付けて格納する。   The merge candidate buffer 124 (also referred to as a second buffer) is a buffer that stores a merge candidate vector of each encoding target block and its evaluation cost in association with each other. That is, the merge candidate buffer 124 stores the motion information of the encoding target block and the evaluation cost in association with each other using the merge candidate vector of the encoding target block as an index.

〔一般的なマージモード〕
ここで、図7〜図9を用いて、マージモードを選択する一般的な処理について説明する。図7は、12個の符号化対象ブロック(B1〜B12)に分割された符号化対象フレーム100を示す。図8は、符号化対象ブロック101から予測画像301を生成する際の参照画像の移動について説明するための概念図である。図9は、動きベクトルを共通とする複数のマージ候補ベクトルの予測画像を生成する際に必要画素401が重複していることを示す概念図である。以下においては、図7の左上のブロックB1を基点とし、B2、B3、・・・、B12の順番で処理する。
[General merge mode]
Here, a general process for selecting the merge mode will be described with reference to FIGS. FIG. 7 shows an encoding target frame 100 divided into 12 encoding target blocks (B1 to B12). FIG. 8 is a conceptual diagram for explaining the movement of the reference image when the predicted image 301 is generated from the encoding target block 101. FIG. 9 is a conceptual diagram showing that necessary pixels 401 overlap when generating predicted images of a plurality of merge candidate vectors having a common motion vector. In the following, processing is performed in the order of B2, B3,..., B12 with the block B1 in the upper left of FIG.

符号化対象ブロック101から予測画像301を生成する際には、まず、ブロックB1の処理を行う。ブロックB1は、符号化対象ブロック101の左上隅に位置しており、左側や上側に隣接するブロックが存在しないため、マージ選択処理は行われない。   When generating the predicted image 301 from the encoding target block 101, first, the process of the block B1 is performed. Since the block B1 is located at the upper left corner of the encoding target block 101 and there is no adjacent block on the left side or the upper side, the merge selection process is not performed.

次のブロックB2では、左側に隣接ブロック(ブロックB1)が存在するため、ブロックB1の動きベクトル(以下、B1_MV)をコピーするマージ候補ベクトルB2_Cand4について処理を行う。ブロックB2のマージ候補ベクトルB2_Cand4(以下、B2_Cand4)は、B1_MVである。以下、ブロックB3〜B12についてマージ選択処理が行われる。   In the next block B2, there is an adjacent block (block B1) on the left side, and therefore processing is performed on the merge candidate vector B2_Cand4 for copying the motion vector (hereinafter referred to as B1_MV) of the block B1. The merge candidate vector B2_Cand4 (hereinafter referred to as B2_Cand4) of the block B2 is B1_MV. Thereafter, merge selection processing is performed for the blocks B3 to B12.

ここで、一例として、図7のブロックB7、B9、B10およびB11のマージ選択処理について説明する。以下においては、ブロックB7のマージ候補ベクトルCand4(左側)をB7_Cand4、ブロックB9のマージ候補ベクトルCand2(右上側)をB9_Cand2と表記する。同様に、ブロックB10のマージ候補ベクトルCand3(上側)をB10_Cand3と表記し、ブロックB11のマージ候補ベクトルCand5(左上側)をB11_Cand5と表記する。   Here, as an example, the merge selection processing of blocks B7, B9, B10, and B11 in FIG. 7 will be described. In the following, the merge candidate vector Cand4 (left side) of the block B7 is denoted as B7_Cand4, and the merge candidate vector Cand2 (upper right side) of the block B9 is denoted as B9_Cand2. Similarly, the merge candidate vector Cand3 (upper side) of the block B10 is expressed as B10_Cand3, and the merge candidate vector Cand5 (upper left side) of the block B11 is expressed as B11_Cand5.

図8において、B7_Cand4、B9_Cand2、B10_Cand3、B11_Cand5は、いずれもブロック6の動きベクトルB6_MVをコピーしたものである。   In FIG. 8, B7_Cand4, B9_Cand2, B10_Cand3, and B11_Cand5 are all copies of the motion vector B6_MV of the block 6.

よって、図8に示すように、B7_Cand4、B9_Cand2、B10_Cand3、B11_Cand5の予測画像は、参照画像をB6_MV分移動したものであり、連続した領域となる。そのため、図9のように、B7_Cand4、B9_Cand2、B10_Cand3、B11_Cand5の予測画像生成に必要な画素(必要画素401)は重複している。   Therefore, as shown in FIG. 8, the predicted images of B7_Cand4, B9_Cand2, B10_Cand3, and B11_Cand5 are obtained by moving the reference image by B6_MV, and are continuous regions. Therefore, as shown in FIG. 9, pixels (necessary pixels 401) necessary for predictive image generation of B7_Cand4, B9_Cand2, B10_Cand3, and B11_Cand5 overlap.

すなわち、一般的なマージ選択では、B7_Cand4、B9_Cand2、B10_Cand3、B11_Cand5の予測画像生成時に、同じ画素に重複してアクセスし、同じ小数画素を重複して生成するため、無駄なメモリアクセスと演算量が必要となる。   That is, in general merge selection, when the predicted images of B7_Cand4, B9_Cand2, B10_Cand3, and B11_Cand5 are generated, the same pixel is accessed redundantly, and the same fractional pixel is generated redundantly. Necessary.

一方、本実施形態においては、同一の動きベクトルをコピーし、コピーした動きベクトルをマージ候補バッファ124に格納する。そして、マージ候補ベクトルを同一とする複数の符号化対象ブロックの予測画像をまとめて生成する。そのため、本実施形態によれば、小数画素補間処理における中間データの生成やメモリアクセスを削減できる。   On the other hand, in the present embodiment, the same motion vector is copied, and the copied motion vector is stored in the merge candidate buffer 124. Then, prediction images of a plurality of encoding target blocks having the same merge candidate vector are generated together. Therefore, according to the present embodiment, generation of intermediate data and memory access in the decimal pixel interpolation process can be reduced.

(動作)
次に、本実施形態の動画像符号化装置1に含まれるマージ選択手段12によるマージ選択動作に関して、図10のフローチャートを用いて説明する。なお、以下の説明は、図7〜図9に示す符号化対象フレーム100を構成する符号化対象ブロック101に関して、マージ選択手段12を主体として説明する。
(Operation)
Next, the merge selection operation by the merge selection means 12 included in the moving image encoding apparatus 1 of the present embodiment will be described with reference to the flowchart of FIG. In the following description, the merge selection unit 12 is mainly described with respect to the encoding target block 101 constituting the encoding target frame 100 shown in FIGS.

図10において、まず、マージ選択手段12は、ブロックB1の動きベクトルであるB1_MVをコピー元MVとして選択する。B1_MVは、ブロックB2、B5、B6のマージ候補ベクトルB2_Cand4、B5_Cand3、B6_Cand5である。   In FIG. 10, the merge selection means 12 first selects B1_MV, which is the motion vector of the block B1, as the copy source MV. B1_MV is merge candidate vectors B2_Cand4, B5_Cand3, and B6_Cand5 of the blocks B2, B5, and B6.

マージ選択手段12は、B1_MVを用いて、動きベクトルを共通とするマージ候補ベクトルB2_Cand4、B5_Cand3、B6_Cand5の予測画像をまとめて生成する(ステップS11)。   The merge selection means 12 uses B1_MV to collectively generate prediction images of merge candidate vectors B2_Cand4, B5_Cand3, and B6_Cand5 that share a motion vector (step S11).

ステップS11の予測画像の生成については、H.265の参照エンコーダHMのように、動きベクトルごとにその場で小数画素補間をしてもよい。また、ステップS11の予測画像の生成については、H.264の参照エンコーダJM(Joint Model)のように、事前に作成してある補間画像から読み出してもよい。   For the generation of the predicted image in step S11, see H.264. Like the reference encoder HM of H.265, decimal pixel interpolation may be performed on the spot for each motion vector. In addition, regarding the generation of the predicted image in step S11, H.264. It may be read out from an interpolation image created in advance like a H.264 reference encoder JM (Joint Model).

次に、マージ選択手段12は、マージ候補ベクトルごとにステップS12〜S13の処理を行う。ここでは、マージ選択手段12は、マージ候補ベクトルB2_Cand4、B5_Cand3、B6_Cand5の順に処理を行う。   Next, the merge selection unit 12 performs the processes of steps S12 to S13 for each merge candidate vector. Here, the merge selection unit 12 performs processing in the order of merge candidate vectors B2_Cand4, B5_Cand3, and B6_Cand5.

まず、マージ選択手段12は、マージ候補ベクトルB2_Cand4について評価コストを算出する(ステップS12)。   First, the merge selection unit 12 calculates an evaluation cost for the merge candidate vector B2_Cand4 (step S12).

そして、マージ選択手段12は、ブロックB2の最良マージインデックスとして、算出した評価コストをマージ候補ベクトルB2_Cand4に関連付けてマージ候補バッファ208に格納する(ステップS13)。   Then, the merge selection unit 12 stores the calculated evaluation cost in the merge candidate buffer 208 in association with the merge candidate vector B2_Cand4 as the best merge index of the block B2 (step S13).

同様に、マージ選択手段12は、マージ候補ベクトルB5_Cand3、B6_Cand5についても、ステップS12〜S13の処理を行う。マージ候補ベクトルB6_Cand5の処理が終われば、B1_MVをコピー元MVとする処理は終了である。   Similarly, the merge selection unit 12 performs the processes of steps S12 to S13 for the merge candidate vectors B5_Cand3 and B6_Cand5. When the process of the merge candidate vector B6_Cand5 is finished, the process of setting B1_MV as the copy source MV is finished.

続いて、マージ選択手段12は、コピー元MVとして、ブロックB2の動きベクトルであるB2_MVを選択する。B2_MVは、ブロックB3、B5、B6、B7のマージ候補ベクトルB3_Cand4、B5_Cand2、B6_Cand3、B7_Cand5である。   Subsequently, the merge selection unit 12 selects B2_MV, which is the motion vector of the block B2, as the copy source MV. B2_MV is merge candidate vectors B3_Cand4, B5_Cand2, B6_Cand3, and B7_Cand5 of the blocks B3, B5, B6, and B7.

マージ選択手段12は、B1_MVと同様に、B2_MVを用いて、動きベクトルを共通とするマージ候補ベクトルB3_Cand4、B5_Cand2、B6_Cand3、B7_Cand5の予測画像をまとめて生成する(ステップS11)。   Similarly to B1_MV, merge selection means 12 uses B2_MV to collectively generate prediction images of merge candidate vectors B3_Cand4, B5_Cand2, B6_Cand3, and B7_Cand5 that share a motion vector (step S11).

次に、マージ選択手段12は、マージ候補ベクトルごとにステップS12〜S13の処理を行う。ここでは、マージ選択手段12は、マージ候補ベクトルB3_Cand4、B5_Cand2、B6_Cand3、B7_Cand5の順に処理を行う。   Next, the merge selection unit 12 performs the processes of steps S12 to S13 for each merge candidate vector. Here, the merge selection means 12 performs processing in the order of merge candidate vectors B3_Cand4, B5_Cand2, B6_Cand3, and B7_Cand5.

まず、マージ選択手段12は、マージ候補ベクトルB3_Cand4について評価コストを算出する(ステップS12)。   First, the merge selection unit 12 calculates an evaluation cost for the merge candidate vector B3_Cand4 (step S12).

そして、マージ選択手段12は、ブロックB3の最良マージインデックスとして評価コストをマージ候補ベクトルB3_Cand4に関連付けてマージ候補バッファに記憶する(ステップS13)。   Then, the merge selection unit 12 stores the evaluation cost as the best merge index of the block B3 in the merge candidate buffer in association with the merge candidate vector B3_Cand4 (step S13).

次に、マージ選択手段12は、マージ候補ベクトルB5_Cand2について評価コストを算出する(ステップS12)。   Next, the merge selection unit 12 calculates an evaluation cost for the merge candidate vector B5_Cand2 (step S12).

なお、ブロックB5に関しては、ブロックB1のマージ選択動作において、マージ候補ベクトルB5_Cand3と評価コストとが関連付けられてマージ候補バッファ208に格納されている。そのため、マージ選択手段12は、マージ候補ベクトルB5_Cand2について算出した評価コストをマージ候補バッファ124に格納されたブロックB5の最良マージインデックスと比較する。   As for the block B5, the merge candidate vector B5_Cand3 and the evaluation cost are associated with each other and stored in the merge candidate buffer 208 in the merge selection operation of the block B1. Therefore, the merge selection unit 12 compares the evaluation cost calculated for the merge candidate vector B5_Cand2 with the best merge index of the block B5 stored in the merge candidate buffer 124.

マージ選択手段12は、マージ候補バッファ124に格納されている評価コストよりも、算出した評価コストの方が小さければ、マージ候補バッファ124に格納される最良マージインデックスを更新する。一方、マージ選択手段12は、マージ候補バッファ124に格納されている評価コストよりも、算出した評価コストの方が大きい場合は、マージ候補バッファ124に格納される最良マージインデックスを更新しない。   The merge selection means 12 updates the best merge index stored in the merge candidate buffer 124 if the calculated evaluation cost is smaller than the evaluation cost stored in the merge candidate buffer 124. On the other hand, when the calculated evaluation cost is larger than the evaluation cost stored in the merge candidate buffer 124, the merge selection unit 12 does not update the best merge index stored in the merge candidate buffer 124.

同様に、マージ選択手段12は、マージ候補ベクトルB6_Cand3、B7_Cand5についてもステップS12〜S13の処理を行う。なお、マージ選択手段12は、マージ候補ベクトルB6_Cand3については、マージ候補ベクトルB5_Cand2と同様に処理する。一方、マージ候補ベクトルB7_Cand5については、マージ候補ベクトルB3_Cand4と同様に処理する。   Similarly, the merge selection unit 12 performs the processes of steps S12 to S13 for the merge candidate vectors B6_Cand3 and B7_Cand5. The merge selecting unit 12 processes the merge candidate vector B6_Cand3 in the same manner as the merge candidate vector B5_Cand2. On the other hand, the merge candidate vector B7_Cand5 is processed in the same manner as the merge candidate vector B3_Cand4.

以上のステップS11〜S13の処理は、ブロックB1〜B12のMVの全てをコピー元MVとするまで繰り返される。ブロックB12のMVをコピー元MVとした処理が終了すれば、図10のフローチャートに沿った処理は終了である。   The processes in steps S11 to S13 are repeated until all the MVs in the blocks B1 to B12 are set as the copy source MV. When the process of setting the MV of the block B12 as the copy source MV is completed, the process according to the flowchart of FIG. 10 is completed.

以上のように、本実施形態によれば、同一の動きベクトルをコピーしてマージ候補ベクトルとする複数のブロックの予測画像をまとめて生成するため、小数画素補間処理における中間データの生成やメモリアクセスを削減できる。すなわち、本実施形態によれば、マージ候補ベクトルのコスト評価における予測画像作成の演算量とメモリアクセスとを削減できる。その結果、本実施形態によれば、動きベクトル決定処理の処理時間を削減することができる。   As described above, according to the present embodiment, since the predicted images of a plurality of blocks that are copied from the same motion vector as merge candidate vectors are collectively generated, intermediate data generation or memory access in the decimal pixel interpolation processing is performed. Can be reduced. That is, according to the present embodiment, it is possible to reduce the amount of calculation for creating a predicted image and memory access in the cost evaluation of merge candidate vectors. As a result, according to the present embodiment, the processing time of the motion vector determination process can be reduced.

本実施形態によれば、複数の符号化対象ブロックに跨る連続した予測画像の生成をまとめて行うことによって、ブロック間で重複する処理やメモリアクセスを削減して動きベクトルを効率的に決定できる。   According to the present embodiment, by continuously generating predicted images across a plurality of encoding target blocks, it is possible to efficiently determine a motion vector by reducing overlapping processes and memory accesses between blocks.

(関連技術)
ここで、関連技術について図面を参照しながら説明する。図11は、一般的なHEVCの参照エンコーダHM(HEVC Test Model)である動きベクトル決定手段1000の構成を示すブロック図である。
(Related technology)
Here, related technologies will be described with reference to the drawings. FIG. 11 is a block diagram showing a configuration of a motion vector determination unit 1000 which is a general HEVC reference encoder HM (HEVC Test Model).

動きベクトル決定手段1000は、マージ選択手段120がマージ候補バッファ124を含まない点で、第1の実施形態の動きベクトル決定手段10と異なる。動きベクトル決定手段1000の構成は、マージ候補バッファ124以外は、第1の実施形態の動きベクトル決定手段10の構成と同様である。   The motion vector determination unit 1000 is different from the motion vector determination unit 10 of the first embodiment in that the merge selection unit 120 does not include the merge candidate buffer 124. The configuration of the motion vector determination unit 1000 is the same as the configuration of the motion vector determination unit 10 of the first embodiment except for the merge candidate buffer 124.

図12は、関連技術の参照エンコーダHMのマージ選択手段120における動作について説明するためのフローチャートである。   FIG. 12 is a flowchart for explaining the operation in the merge selection means 120 of the reference encoder HM of the related art.

マージ選択手段120によるマージ選択処理は、各符号化対象ブロックに対して順に処理される。例えば、図7のようなブロックB1からB12に分割されているフレームを符号化する場合、左上側のブロックB1から右下側のブロックB12までを符号化対象ブロックとして順番に符号化する。各符号化対象ブロックにおいては、図4に示す4箇所のマージ候補ベクトルに対して、例えば、Cand2、Cand3、Cand4、Cand5の順に、図12のステップS101〜S103の処理を行う。   The merge selection process by the merge selection unit 120 is sequentially performed on each encoding target block. For example, when a frame divided into blocks B1 to B12 as shown in FIG. 7 is encoded, the upper left block B1 to the lower right block B12 are sequentially encoded as the encoding target blocks. In each encoding target block, the processing of steps S101 to S103 in FIG. 12 is performed on the four merge candidate vectors shown in FIG. 4 in the order of Cand2, Cand3, Cand4, and Cand5, for example.

図12において、まず、マージ選択手段120は、ブロックB1の処理を行う。ブロックB1は、左上隅に位置するブロックであり、左側や上側に隣接するブロックが存在しないため、マージ選択の処理は行われない。   In FIG. 12, first, the merge selection means 120 performs the process of block B1. The block B1 is a block located at the upper left corner, and there is no adjacent block on the left side or the upper side, so that the merge selection process is not performed.

次のブロックB2には左側に隣接ブロック(ブロックB1)が存在する。そのため、マージ選択手段120は、ブロックB1の動きベクトル(B1_MVと表記する)をコピーするマージ候補ベクトルCand4について、ステップS12〜S13の処理を行う。ブロックB2のマージ候補ベクトルCand4(以下、B2_Cand4)は、B1_MVである。   The next block B2 has an adjacent block (block B1) on the left side. Therefore, the merge selection unit 120 performs the processes of steps S12 to S13 for the merge candidate vector Cand4 for copying the motion vector (denoted as B1_MV) of the block B1. The merge candidate vector Cand4 (hereinafter, B2_Cand4) of the block B2 is B1_MV.

次に、マージ選択手段120は、マージ候補ベクトルB2_Cand4の予測画像を生成する(ステップS101)。マージ候補ベクトルB2_Cand4(B1_MV)が小数精度ベクトルの場合、マージ選択手段120は、小数画素を補間することで予測画像を生成する。   Next, the merge selection unit 120 generates a predicted image of the merge candidate vector B2_Cand4 (step S101). When the merge candidate vector B2_Cand4 (B1_MV) is a decimal precision vector, the merge selection unit 120 generates a prediction image by interpolating decimal pixels.

次に、マージ選択手段120は、マージ候補ベクトルB2_Cand4の予測画像とブロックB2の入力画像とから評価コストを算出する(ステップS102)。   Next, the merge selection unit 120 calculates an evaluation cost from the predicted image of the merge candidate vector B2_Cand4 and the input image of the block B2 (step S102).

そして、マージ選択手段120は、算出した評価コストが当該ブロックのマージ候補ベクトルの中で最小であれば、最良マージインデックスを更新する(ステップS103)。なお、マージ候補ベクトルB2_Cand4は、ブロックB2について最初に評価したマージ候補ベクトルであるので、その時点ではB2_Cand4の評価コストが最小となる。   Then, the merge selection unit 120 updates the best merge index if the calculated evaluation cost is the smallest among the merge candidate vectors of the block (step S103). Note that the merge candidate vector B2_Cand4 is the merge candidate vector first evaluated for the block B2, so that the evaluation cost of B2_Cand4 is the smallest at that time.

マージ選択手段120は、ブロックB3、B4についても、ブロックB2と同様の処理を繰り返す。   The merge selecting unit 120 repeats the same processing as that for the block B2 for the blocks B3 and B4.

ブロックB5では、右上側と上側に隣接するブロックがあるので、マージ選択手段120は、Cand2とCand3についてステップS101からステップS103までを繰り返す。   In block B5, since there are adjacent blocks on the upper right side and the upper side, merge selection means 120 repeats steps S101 to S103 for Cand2 and Cand3.

以下同様にして、マージ選択手段120は、全ての符号化対象ブロック(ブロックB1〜B12)について処理を行う。   Similarly, the merge selecting unit 120 performs processing for all the encoding target blocks (blocks B1 to B12).

以上のように、関連技術の手法においては、符号化対象ブロックのループが最外になり、B7_Cand4、B9_Cand2、B10_Cand3、B11_Cand5の予測画像は、小数補間画像において連続している。それにもかかわらず、関連技術においては、各予測画像を生成する際にそれぞれ独立にメモリアクセスするため、効率的なメモリアクセスが成されない。   As described above, in the related art method, the encoding target block loop is the outermost, and the predicted images of B7_Cand4, B9_Cand2, B10_Cand3, and B11_Cand5 are continuous in the decimal interpolation image. Nevertheless, in the related art, when each predicted image is generated, memory access is performed independently, so that efficient memory access is not achieved.

一方、本実施形態の手法においては、マージ候補ベクトルとしてコピーされるMVを対象とするループが最外になり、小数補間画像において連続している予測画像の生成においてまとめてメモリアクセスする。そのため、本実施形態によれば、効率的なメモリアクセスが実現される。   On the other hand, in the method of the present embodiment, the loop targeted for the MV copied as the merge candidate vector is the outermost, and memory access is collectively performed in the generation of predicted images continuous in the decimal interpolation image. Therefore, according to the present embodiment, efficient memory access is realized.

(第2の実施の形態)
次に、本発明の第2の実施形態に係る動画像符号化方法について図面を参照しながら説明する。
(Second Embodiment)
Next, a moving picture encoding method according to the second embodiment of the present invention will be described with reference to the drawings.

本実施形態は、GPU(Graphic Processing Unit)などの並列計算機を用いた並列処理に第1の実施形態の手法を適用するものである。CUDA(Compute Unified Device Architecture)を用いたGPUプログラムでは、多数のスレッドが並列に動作するが、特定数のスレッドごとにwarpと呼ばれる処理単位にまとめられる。同一warpに含まれる複数のスレッドは、必ず同一演算をするという制限がある。   In the present embodiment, the technique of the first embodiment is applied to parallel processing using a parallel computer such as a GPU (Graphic Processing Unit). In a GPU program using CUDA (Compute Unified Device Architecture), a large number of threads operate in parallel, but a specific number of threads are grouped into a processing unit called warp. There is a restriction that a plurality of threads included in the same warp always perform the same operation.

図13は、一般的な動画像符号化方法について説明するための概念図である。図13において、warpは、スレッドs1〜s8の8個のスレッドで構成される。   FIG. 13 is a conceptual diagram for explaining a general moving image encoding method. In FIG. 13, the warp is composed of eight threads s1 to s8.

図13のステップS21およびステップS22では、同一warp内の全てのスレッドで同一の演算が同時に処理される。   In step S21 and step S22 in FIG. 13, the same operation is simultaneously processed in all threads in the same warp.

ステップS23の条件分岐において、スレッドs1、s2、s4およびs6と、スレッドs3、s5、s7およびs8とでは異なる演算をするように分岐する。この場合、スレッドs1、s2、s4およびs6の演算はステップS24で行われ、スレッドs3、s5、s7およびs8の演算はステップS25で行われる。すわわち、同一warp内のスレッドが異なる演算をする場合は、ステップS24の演算とステップS25の演算とが逐次的に実行される。つまり、一般的な動画像符号化方法では、warp内の全てのスレッドが同一演算をしないと、十分な並列処理性能が引き出せない。   In the conditional branch in step S23, the threads s1, s2, s4 and s6 and the threads s3, s5, s7 and s8 branch so as to perform different operations. In this case, the operations of threads s1, s2, s4, and s6 are performed in step S24, and the operations of threads s3, s5, s7, and s8 are performed in step S25. In other words, when threads in the same warp perform different calculations, the calculation in step S24 and the calculation in step S25 are sequentially executed. That is, in a general moving image encoding method, sufficient parallel processing performance cannot be obtained unless all threads in the warp perform the same operation.

GPUなどを用いてマージインデックス選択を並列処理する場合、図12のループである符号化対象ブロックとマージ候補ベクトルとを並列処理単位にするのが一般的である。つまり、各warpがそれぞれ別の符号化対象ブロックを処理し、warp内の各スレッドがそれぞれ別々のマージ候補ベクトルを処理することが一般的である。   When merge index selection is performed in parallel using a GPU or the like, it is common to use a block to be encoded, which is a loop of FIG. 12, and a merge candidate vector as a unit of parallel processing. That is, it is general that each warp processes a different encoding target block, and each thread in the warp processes a separate merge candidate vector.

例えば、図7の例において、あるwarpがブロックB6を担当し、warp内のスレッドがマージ候補ベクトルB6_Cand2、B6_Cand3、B6_Cand4、B6_Cand5を並列に処理するものとする。このとき、各マージ候補ベクトルのコピー元ベクトルはB3_MV、B2_MV、B5_MV、B1_MVである。このように、マージ候補ベクトルの予測画像生成処理が異なる処理の場合、並列処理の効率が低下する。   For example, in the example of FIG. 7, it is assumed that a certain warp is in charge of the block B6, and a thread in the warp processes merge candidate vectors B6_Cand2, B6_Cand3, B6_Cand4, and B6_Cand5 in parallel. At this time, the copy source vectors of the merge candidate vectors are B3_MV, B2_MV, B5_MV, and B1_MV. As described above, in the case where the predicted image generation process of the merge candidate vector is different, the efficiency of the parallel processing is lowered.

例えば、動きベクトルB3_MV、B2_MVが単方向予測であり、B5_MV、B1_MVが双方向予測の場合、単方向予測と双方向予測で予測画像生成の処理が異なる。よって、単方向予測と双方向予測を同一warpで並列処理する場合、図13のステップS23における分岐処理のように、単方向予測の処理と双方向予測の処理両方を実行することになるため、演算量が増加する。   For example, when motion vectors B3_MV and B2_MV are unidirectional prediction and B5_MV and B1_MV are bidirectional prediction, the process of generating a predicted image is different between unidirectional prediction and bidirectional prediction. Therefore, when unidirectional prediction and bidirectional prediction are processed in parallel with the same warp, both the unidirectional prediction process and the bidirectional prediction process are executed as in the branch process in step S23 of FIG. The amount of computation increases.

図14は、本実施形態の動画像符号化方法の動作を示すフローチャートである。図14のフローチャートは、コピー元MVおよびマージ候補ベクトルのループを並列処理する以外は、図10のフローチャートと同様であるため、詳細な説明は省略する。   FIG. 14 is a flowchart showing the operation of the moving picture coding method of the present embodiment. The flowchart of FIG. 14 is the same as the flowchart of FIG. 10 except that the copy source MV and the merge candidate vector loop are processed in parallel, and thus detailed description thereof is omitted.

本実施形態では、第1の実施形態の動作を並列処理に適用する。すなわち、本実施形態では、図14に示すように、コピー元MVおよびマージ候補ベクトルのループを並列処理単位とする。つまり、本実施形態では、各warpがそれぞれ別のコピー元MVを処理し、warp内の各スレッドがそれぞれ別々のマージ候補ベクトルを処理する。   In the present embodiment, the operation of the first embodiment is applied to parallel processing. That is, in this embodiment, as shown in FIG. 14, a loop of the copy source MV and the merge candidate vector is set as a parallel processing unit. That is, in this embodiment, each warp processes a different copy source MV, and each thread in the warp processes a separate merge candidate vector.

例えば、あるwarpがコピー元MVとしてブロックB6の動きベクトルB6_MVを担当し、warp内のスレッドがマージ候補ベクトルB9_Cand2、B10_Cand3、B11_Cand5、B7_Cand4を並列に処理する。これらのマージ候補ベクトルは、全てB6_MVのコピーなので、B9_Cand2、B10_Cand3、B11_Cand5、B7_Cand4の予測画像作成処理は全て同一処理となる。   For example, a certain warp takes charge of the motion vector B6_MV of the block B6 as the copy source MV, and a thread in the warp processes the merge candidate vectors B9_Cand2, B10_Cand3, B11_Cand5, and B7_Cand4 in parallel. Since these merge candidate vectors are all copies of B6_MV, the predicted image creation processes of B9_Cand2, B10_Cand3, B11_Cand5, and B7_Cand4 are all the same process.

すなわち、本実施形態の動符号化装置は、複数のマージ選択手段12(選択手段ともよぶ)を備える(図5)。複数のマージ選択手段12は、互いに協調して動作する複数の演算装置に割り当てられる。複数のマージ選択手段12は、複数の前記符号化対象ブロックのいずれかに対応付けられた評価コストの算出を割り当てられ、いずれかの符号化対象ブロックに対応付けられた動きベクトルを複製する複数の符号化対象ブロックの予測画像を並列して生成する。   That is, the dynamic encoding device of this embodiment includes a plurality of merge selection means 12 (also referred to as selection means) (FIG. 5). The plurality of merge selection means 12 are assigned to a plurality of arithmetic devices operating in cooperation with each other. The plurality of merge selection units 12 are assigned calculation of evaluation costs associated with any of the plurality of encoding target blocks, and a plurality of merge vectors are duplicated with a motion vector associated with any of the encoding target blocks. A prediction image of the encoding target block is generated in parallel.

本実施形態の手法によれば、warp内のスレッドが全て同一演算をすることとなるため、十分な並列処理性能を引き出すことが可能となる。   According to the method of the present embodiment, since all the threads in the warp perform the same operation, it is possible to extract sufficient parallel processing performance.

さらに、本実施形態によれば、第1の実施形態における逐次処理の効果であるブロック間のメモリアクセスや中間データ生成の重複の削減も同時に行うことができる。   Furthermore, according to the present embodiment, it is possible to simultaneously reduce the memory access between blocks and the duplication of intermediate data generation, which are the effects of the sequential processing in the first embodiment.

なお、本実施形態では、1スレッドで1候補ベクトル、1warpで1つのコピー元MVを処理するとしたが、スレッドと処理との対応はこれに限らない。本実施形態の手法は、1warp内の複数のスレッドで同時に処理するマージ候補ベクトルのコピー元MVが1つであればよく、複数スレッドで1候補ベクトル処理するようなバリエーションを持たせてもよい。   In this embodiment, one candidate vector is processed by one thread and one copy source MV is processed by one warp. However, the correspondence between the thread and the process is not limited to this. The method of the present embodiment is sufficient if there is only one copy source MV of merge candidate vectors that are simultaneously processed by a plurality of threads in one warp, and may have a variation such that one candidate vector is processed by a plurality of threads.

(ハードウェア)
ここで、図15を用いて、本発明の実施形態に係る動画像符号化装置を実現するためのハードウェア90について説明する。なお、ハードウェア90は、本実施形態の動画像符号化装置を実現するための一例であって、本発明の範囲を限定するものではない。
(hardware)
Here, the hardware 90 for realizing the moving picture coding apparatus according to the embodiment of the present invention will be described with reference to FIG. Note that the hardware 90 is an example for realizing the moving image encoding apparatus of the present embodiment, and does not limit the scope of the present invention.

図15のように、ハードウェア90は、プロセッサ91、主記憶装置92、補助記憶装置93、入出力インターフェース95およびネットワークアダプター96を備える。プロセッサ91、主記憶装置92、補助記憶装置93、入出力インターフェース95およびネットワークアダプター96は、バス99を介して互いに接続される。また、プロセッサ91、主記憶装置92、補助記憶装置93および入出力インターフェース95は、ネットワークアダプター96を介して、イントラネットやインターネットなどのネットワークに接続される。なお、ハードウェア90の構成要素のそれぞれは、単一であってもよいし、複数であってもよい。   As shown in FIG. 15, the hardware 90 includes a processor 91, a main storage device 92, an auxiliary storage device 93, an input / output interface 95, and a network adapter 96. The processor 91, main storage device 92, auxiliary storage device 93, input / output interface 95, and network adapter 96 are connected to each other via a bus 99. The processor 91, the main storage device 92, the auxiliary storage device 93, and the input / output interface 95 are connected to a network such as an intranet or the Internet via a network adapter 96. Note that each of the components of the hardware 90 may be single or plural.

プロセッサ91は、補助記憶装置93等に格納されたプログラムを主記憶装置92に展開し、展開されたプログラムを実行する演算装置である。本実施形態においては、ハードウェア90にインストールされたソフトウェアプログラムを用いる構成とすればよい。プロセッサ91は、種々の演算処理や制御処理を実行する。例えば、プロセッサ91は、CPU(Central Processing Unit)によって実現される。また、GPU(Graphics Processing Unit)にプロセッサ91の機能の一部を負わせてもよい。例えば、図16のハードウェア90−2のように、CPU911とGPU912とを含む構成にすることができる。   The processor 91 is an arithmetic device that expands a program stored in the auxiliary storage device 93 or the like in the main storage device 92 and executes the expanded program. In the present embodiment, a configuration using a software program installed in the hardware 90 may be used. The processor 91 executes various arithmetic processes and control processes. For example, the processor 91 is realized by a CPU (Central Processing Unit). Further, a part of the function of the processor 91 may be imposed on a GPU (Graphics Processing Unit). For example, a configuration including a CPU 911 and a GPU 912 can be adopted as in the hardware 90-2 in FIG.

主記憶装置92は、プログラムが展開される領域を有する。主記憶装置92は、例えばDRAM(Dynamic Random Access Memory)などの揮発性メモリとすればよい。また、MRAM(Magnetoresistive Random Access Memory)などの不揮発性メモリを主記憶装置92として構成・追加してもよい。   The main storage device 92 has an area where the program is expanded. The main storage device 92 may be a volatile memory such as a DRAM (Dynamic Random Access Memory). Further, a nonvolatile memory such as an MRAM (Magnetoresistive Random Access Memory) may be configured and added as the main storage device 92.

補助記憶装置93は、種々のデータを記憶させるための記憶装置である。補助記憶装置93は、ハードディスクやフラッシュメモリなどのローカルディスクとして構成される。   The auxiliary storage device 93 is a storage device for storing various data. The auxiliary storage device 93 is configured as a local disk such as a hard disk or a flash memory.

入出力インターフェース95は、ハードウェア90と周辺機器とを接続規格に基づいて接続するインターフェース(I/F:Interface)である。   The input / output interface 95 is an interface (I / F) that connects the hardware 90 and peripheral devices based on a connection standard.

ハードウェア90には、必要に応じて、キーボードやマウス、タッチパネルなどの入力機器、ディスプレイや印刷機器などの出力機器を接続してもよい。それらの入力機器や出力機器は、情報や設定の入力や動画像情報の出力などに使用できる。プロセッサ91と入力機器との間のデータ授受は、入出力インターフェース95に仲介させればよい。   If necessary, the hardware 90 may be connected to input devices such as a keyboard, mouse, and touch panel, and output devices such as a display and a printing device. These input devices and output devices can be used for inputting information and settings, outputting moving image information, and the like. Data exchange between the processor 91 and the input device may be mediated by the input / output interface 95.

ネットワークアダプター96は、規格や仕様に基づいてネットワークに接続するためのインターフェースである。入出力インターフェース95およびネットワークアダプター96は、外部機器と接続するインターフェースとして共通化してもよい。   The network adapter 96 is an interface for connecting to a network based on standards and specifications. The input / output interface 95 and the network adapter 96 may be shared as an interface for connecting to an external device.

また、ハードウェア90には、必要に応じて、リーダライタを備え付けてもよい。リーダライタは、バス99に接続される。リーダライタは、プロセッサ91と図示しない記録媒体(プログラム記録媒体)との間で、記録媒体からのデータ・プログラムの読み出し、ハードウェア90の処理結果の記録媒体への書き込みなどを仲介する。記録媒体は、例えばSD(Secure Digital)カードやUSB(Universal Serial Bus)メモリなどの半導体記録媒体などで実現できる。また、記録媒体は、フレキシブルディスクなどの磁気記録媒体、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光学記録媒体やその他の記録媒体によって実現してもよい。   The hardware 90 may be provided with a reader / writer as necessary. The reader / writer is connected to the bus 99. The reader / writer mediates reading of data programs from the recording medium, writing of processing results of the hardware 90 to the recording medium, and the like between the processor 91 and a recording medium (program recording medium) (not shown). The recording medium can be realized by a semiconductor recording medium such as an SD (Secure Digital) card or a USB (Universal Serial Bus) memory. The recording medium may be realized by a magnetic recording medium such as a flexible disk, an optical recording medium such as a CD (Compact Disc) or a DVD (Digital Versatile Disc), and other recording media.

本発明の実施形態に係る動画像符号化装置は、並列処理を実行できることが好ましい。図17は、本実施形態に係る動画像符号化装置によって並列処理を実行するGPU912の構成例である。   It is preferable that the video encoding apparatus according to the embodiment of the present invention can execute parallel processing. FIG. 17 is a configuration example of the GPU 912 that executes parallel processing by the video encoding device according to the present embodiment.

図17のGPU912は、インターフェース921、キャッシュ922および複数のストリーミングマルチプロセッサ923(以下、SM:Streaming Multiprocessor)を含む。なお、図17の構成は概念的な構成例であり、実際のGPU912は、インターフェース921、キャッシュ922およびSM923以外の構成要素を含む。   17 includes an interface 921, a cache 922, and a plurality of streaming multiprocessors 923 (hereinafter, SM: Streaming Multiprocessor). The configuration in FIG. 17 is a conceptual configuration example, and the actual GPU 912 includes components other than the interface 921, the cache 922, and the SM 923.

インターフェース921は、DRAMなどで実現される主記憶装置92やCPU911などとデータをやり取りするための接続部である。   The interface 921 is a connection unit for exchanging data with the main storage device 92, the CPU 911, and the like realized by a DRAM or the like.

キャッシュ922は、SM間で共有される高速のメモリである。   The cache 922 is a high-speed memory shared between SMs.

SM923は、動画像符号化処理を処理するための演算部である。例えば、SM923は、ストリーミングプロセッサと呼ばれる複数のコア(演算装置)や、シェアードメモリ、レジスタなどのメモリを含む。   SM923 is a calculation unit for processing the moving image encoding process. For example, the SM 923 includes a plurality of cores (arithmetic units) called streaming processors, a memory such as a shared memory and a register.

以上が、本発明の実施形態に係る動画像符号化装置を実現するためのハードウェアの一例である。本発明の各実施形態の構成要素は、図15〜図17のハードウェアに含まれる構成要素のうち少なくともいずれかを含む回路として実現できる。また、本発明の各実施形態の構成要素は、図15〜図17のハードウェアの構成を有するコンピュータ上で動作するソフトウェアとして実現できる。   The above is an example of hardware for realizing the moving picture encoding apparatus according to the embodiment of the present invention. The component of each embodiment of the present invention can be realized as a circuit including at least one of the components included in the hardware of FIGS. Moreover, the component of each embodiment of this invention is realizable as software which operate | moves on the computer which has a hardware structure of FIGS. 15-17.

なお、図15〜図17のハードウェア構成は、本実施形態の動画像符号化装置を可能とするためのハードウェア構成の一例であって、本発明の範囲を限定するものではない。また、本実施形態の動画像符号化装置による処理をコンピュータに実行させるプログラムも本発明の範囲に含まれる。さらに、本発明の実施形態に係るプログラムを記録したプログラム記録媒体も本発明の範囲に含まれる。   Note that the hardware configurations in FIGS. 15 to 17 are examples of a hardware configuration for enabling the moving picture encoding apparatus according to the present embodiment, and do not limit the scope of the present invention. A program that causes a computer to execute processing by the moving image encoding apparatus of the present embodiment is also included in the scope of the present invention. Furthermore, a program recording medium that records the program according to the embodiment of the present invention is also included in the scope of the present invention.

以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   Although the present invention has been described with reference to the embodiments, the present invention is not limited to the above 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.

本発明によれば、動画像符号化において演算量とメモリアクセスを削減することができるため、高解像度映像の高速処理を実現することができる。例えば、本発明は、高解像度処理を要求する動画像符号化システムや撮像システム、トランスコードシステムなどにも利用できる。   According to the present invention, it is possible to reduce the amount of calculation and memory access in moving picture encoding, so that high-speed processing of high-resolution video can be realized. For example, the present invention can be used for a moving image encoding system, an imaging system, a transcoding system, and the like that require high resolution processing.

1 動画像符号化装置
10 動きベクトル決定手段
11 動き探索手段
12 マージ選択手段
13 動きベクトル比較手段
14 動きベクトルバッファ
21 インター予測手段
22 イントラ予測手段
23 加算器
24 変換・量子化手段
25 符号化手段
26 逆変換・逆量子化手段
27 合成器
28 ループフィルタ
29 フレームバッファ
120 マージ選択手段
121 評価コスト算出手段
122 マージインデックス選択手段
123 マージ候補予測画像生成手段
124 マージ候補バッファ
DESCRIPTION OF SYMBOLS 1 Moving image encoding apparatus 10 Motion vector determination means 11 Motion search means 12 Merge selection means 13 Motion vector comparison means 14 Motion vector buffer 21 Inter prediction means 22 Intra prediction means 23 Adder 24 Conversion / quantization means 25 Encoding means 26 Inverse transformation / inverse quantization means 27 Synthesizer 28 Loop filter 29 Frame buffer 120 Merge selection means 121 Evaluation cost calculation means 122 Merge index selection means 123 Merge candidate predicted image generation means 124 Merge candidate buffer

Claims (10)

符号化対象フレームに含まれる符号化対象ブロックと、前記符号化対象ブロックに対応する参照画像とを入力とし、符号化済みブロックに対応付けられた動き情報が格納される第1のバッファから前記参照画像に対応付けられる前記動き情報の候補を取得し、前記動き情報の候補と前記参照画像とを用いて予測画像を生成する予測画像生成手段と、
前記符号化対象ブロックと前記予測画像とを入力とし、前記符号化対象ブロックと前記予測画像とを用いて前記符号化対象ブロックの評価コストを算出する評価コスト算出手段と、
前記符号化対象ブロックに対応付ける候補となる前記動き情報をインデックスとして、前記動き情報と前記評価コストとを関連付けて格納する第2のバッファと、
前記動き情報に関して算出された前記評価コストに基づいて前記第2のバッファに格納された前記インデックスを更新し、前記符号化対象ブロックに対応付ける候補となる前記動き情報を前記評価コストに基づいて前記第2のバッファから選択するインデックス選択手段とを有する選択手段を備える符号化装置。
The reference from the first buffer that receives the encoding target block included in the encoding target frame and the reference image corresponding to the encoding target block and stores the motion information associated with the encoded block A predicted image generating unit that acquires the motion information candidate associated with an image and generates a predicted image using the motion information candidate and the reference image;
An evaluation cost calculating unit that receives the encoding target block and the prediction image, and calculates an evaluation cost of the encoding target block using the encoding target block and the prediction image;
A second buffer that stores the motion information and the evaluation cost in association with each other using the motion information as a candidate to be associated with the encoding target block;
The index stored in the second buffer is updated based on the evaluation cost calculated with respect to the motion information, and the motion information that is a candidate to be associated with the encoding target block is updated based on the evaluation cost. An encoding device comprising selection means having index selection means for selecting from two buffers.
前記第1のバッファと、
前記選択手段と、
前記符号化対象ブロックと前記参照画像とを入力とし、前記動き情報を直接符号化するモードで前記符号化対象ブロックに対応付ける前記動き情報を決定する探索手段と、
前記符号化対象ブロックに関して、前記探索手段が決定した前記動き情報と、前記選択手段が選択した前記動き情報とを前記評価コストに基づいて比較し、いずれかの前記動き情報を選択する比較手段とを有する動き情報決定手段を備える請求項1に記載の符号化装置。
The first buffer;
The selection means;
Search means for receiving the encoding target block and the reference image as input and determining the motion information to be associated with the encoding target block in a mode for directly encoding the motion information;
Comparing means for comparing the motion information determined by the search means with the motion information selected by the selection means based on the evaluation cost with respect to the encoding target block, and selecting any of the motion information The encoding apparatus according to claim 1, further comprising motion information determination means having
前記インデックス選択手段は、
前記符号化対象ブロックに対応付ける前記動き情報の候補に関して算出された前記評価コストが、前記第2のバッファに格納された前記動き情報の前記評価コストよりも小さい場合、前記第2のバッファに格納された前記インデックスを更新する請求項2に記載の符号化装置。
The index selection means includes
If the evaluation cost calculated for the motion information candidate associated with the block to be encoded is smaller than the evaluation cost of the motion information stored in the second buffer, the evaluation cost is stored in the second buffer. The encoding apparatus according to claim 2, wherein the index is updated.
前記予測画像生成手段は、
共通の前記動き情報を候補とする複数の前記符号化対象ブロックに対応する前記予測画像を一括して生成する請求項2または3に記載の符号化装置。
The predicted image generation means includes
The encoding apparatus according to claim 2 or 3, wherein the prediction images corresponding to the plurality of encoding target blocks having the common motion information as candidates are collectively generated.
前記符号化対象フレームを構成する複数の前記符号化対象ブロックに対応する前記参照画像を格納するフレームバッファと、
前記動き情報決定手段によって決定された前記動き情報を入力とし、前記動き情報に対応する前記参照画像を前記フレームバッファから読み出し、前記動き情報に対応する前記符号化対象ブロックの前記予測画像を生成するインター予測手段と、
前記符号化対象ブロックと前記予測画像との差分である残差信号を算出する加算器と、
前記加算器から前記残差信号を入力し、前記残差信号を整数変換して量子化された変換係数を生成する変換・量子化手段と、
前記変換・量子化手段から量子化された前記変換係数を入力し、量子化された前記変換係数を逆変換して予測残差画像を生成する逆変換・逆量子化手段と、
前記変換・逆量子化手段から前記予測残差画像を入力するとともに、前記インター予測手段から前記予測画像を入力し、前記予測残差画像と前記予測画像とを合成して再構築画像を生成する合成器と、
前記合成器から前記再構築画像を入力し、イントラ予測に基づいて前記符号化対象ブロックの前記予測画像を前記再構築画像から生成するイントラ予測手段と、
前記合成器から前記再構築画像を入力し、前記再構築画像のブロック歪を除去し、ブロック歪が除去された前記再構築画像を前記参照画像として前記フレームバッファに格納するループフィルタと、
前記変換・量子化手段から量子化された前記変換係数を入力し、量子化された前記変換係数を符号化したビットストリームを出力する符号化手段とを備える請求項2乃至4のいずれか一項に記載の符号化装置。
A frame buffer for storing the reference image corresponding to the plurality of encoding target blocks constituting the encoding target frame;
The motion information determined by the motion information determination means is input, the reference image corresponding to the motion information is read from the frame buffer, and the prediction image of the encoding target block corresponding to the motion information is generated. Inter prediction means,
An adder that calculates a residual signal that is a difference between the encoding target block and the predicted image;
Transform / quantization means for inputting the residual signal from the adder and generating a transform coefficient quantized by integer transforming the residual signal;
An inverse transform / inverse quantization unit that inputs the quantized transform coefficient from the transform / quantization unit, and inversely transforms the quantized transform coefficient to generate a prediction residual image;
The prediction residual image is input from the transform / inverse quantization unit, the prediction image is input from the inter prediction unit, and the reconstructed image is generated by synthesizing the prediction residual image and the prediction image. A synthesizer;
Intra prediction means for inputting the reconstructed image from the synthesizer and generating the predicted image of the coding target block from the reconstructed image based on intra prediction;
A loop filter that inputs the reconstructed image from the combiner, removes block distortion of the reconstructed image, and stores the reconstructed image from which block distortion has been removed as the reference image in the frame buffer;
5. The encoding unit according to claim 2, further comprising: an encoding unit that inputs the quantized transform coefficient from the transform / quantization unit and outputs a bitstream obtained by encoding the quantized transform coefficient. The encoding device described in 1.
複数の前記選択手段を備え、
複数の前記選択手段は、互いに協調して動作する複数の演算装置に割り当てられ、複数の前記符号化対象ブロックのいずれかに対応付けられた前記評価コストの算出を割り当てられ、いずれかの前記符号化対象ブロックに対応付けられた前記動き情報を複製する複数の前記符号化対象ブロックの前記予測画像を並列して生成する請求項1乃至5のいずれか一項に記載の符号化装置。
A plurality of the selection means;
The plurality of selection means are assigned to a plurality of arithmetic devices that operate in cooperation with each other, assigned to calculate the evaluation cost associated with any one of the plurality of encoding target blocks, and any one of the codes The encoding apparatus according to any one of claims 1 to 5, wherein the prediction images of the plurality of encoding target blocks that duplicate the motion information associated with the encoding target block are generated in parallel.
符号化対象フレームに含まれる符号化対象ブロックと、前記符号化対象ブロックに対応する参照画像とを入力し、
符号化済みブロックに対応付けられた動き情報が格納される第1のバッファから前記参照画像に対応付けられる前記動き情報を取得し、
前記参照画像と前記動き情報とを用いて予測画像を生成し、
前記符号化対象ブロックに関して評価コストを算出し、
前記符号化対象ブロックに対応付ける候補となる前記動き情報をインデックスとして、前記動き情報と前記評価コストとを関連付けて第2のバッファに格納し、
前記動き情報に関して算出された前記評価コストに基づいて前記第2のバッファに格納された前記インデックスを更新し、
前記符号化対象ブロックに対応付ける候補となる前記動き情報を前記評価コストに基づいて前記第2のバッファから選択する符号化方法。
An encoding target block included in the encoding target frame and a reference image corresponding to the encoding target block are input,
Obtaining the motion information associated with the reference image from a first buffer in which motion information associated with the encoded block is stored;
Generating a predicted image using the reference image and the motion information;
An evaluation cost is calculated for the encoding target block,
Using the motion information that is a candidate to be associated with the encoding target block as an index, the motion information and the evaluation cost are associated with each other and stored in a second buffer,
Updating the index stored in the second buffer based on the evaluation cost calculated for the motion information;
The encoding method which selects the said motion information used as the candidate matched with the said encoding object block from a said 2nd buffer based on the said evaluation cost.
前記符号化対象ブロックの前記動き情報を複製元として選択し、
複製元として選択された前記動き情報を候補とする複数の前記符号化対象ブロックの前記予測画像を一括して生成し、
前記符号化対象ブロックに対応付ける候補となる前記動き情報に関して前記評価コストを算出し、
前記符号化対象ブロックに対応付ける候補となる前記動き情報に関して算出された前記評価コストが、前記第2のバッファに格納された前記評価コストよりも小さい場合、前記第2のバッファに格納された前記インデックスを更新する請求項7に記載の符号化方法。
Selecting the motion information of the encoding target block as a replication source;
Generating the predicted images of a plurality of the encoding target blocks with the motion information selected as a copy source as candidates,
Calculating the evaluation cost for the motion information that is a candidate to be associated with the encoding target block;
When the evaluation cost calculated for the motion information that is a candidate to be associated with the encoding target block is smaller than the evaluation cost stored in the second buffer, the index stored in the second buffer The encoding method according to claim 7, wherein the encoding is updated.
符号化対象フレームに含まれる符号化対象ブロックと、前記符号化対象ブロックに対応する参照画像とを入力する処理と、
符号化済みブロックに対応付けられた動き情報が格納される第1のバッファから前記参照画像に対応付けられる前記動き情報を取得する処理と、
前記参照画像と前記動き情報とを用いて予測画像を生成する処理と、
前記符号化対象ブロックに関して評価コストを算出する処理と、
前記符号化対象ブロックに対応付ける候補となる前記動き情報をインデックスとして、前記動き情報と前記評価コストとを関連付けて第2のバッファに格納する処理と、
前記動き情報に関して算出された前記評価コストに基づいて前記第2のバッファに格納された前記インデックスを更新する処理と、
前記符号化対象ブロックに対応付ける候補となる前記動き情報を前記評価コストに基づいて前記第2のバッファから選択する処理とをコンピュータに実行させる符号化プログラム。
A process of inputting an encoding target block included in the encoding target frame and a reference image corresponding to the encoding target block;
Processing for obtaining the motion information associated with the reference image from a first buffer in which motion information associated with the encoded block is stored;
A process of generating a predicted image using the reference image and the motion information;
Processing for calculating an evaluation cost for the encoding target block;
A process of storing the motion information and the evaluation cost in association with each other using the motion information that is a candidate to be associated with the encoding target block as an index;
Updating the index stored in the second buffer based on the evaluation cost calculated for the motion information;
An encoding program that causes a computer to execute processing for selecting the motion information that is a candidate to be associated with the encoding target block from the second buffer based on the evaluation cost.
前記符号化対象ブロックの前記動き情報を複製元として選択する処理と、
複製元として選択された前記動き情報を候補とする複数の前記符号化対象ブロックの前記予測画像を一括して生成する処理と、
前記符号化対象ブロックに対応付ける候補となる前記動き情報に関して前記評価コストを算出する処理と、
前記符号化対象ブロックに対応付ける候補となる前記動き情報に関して算出された前記評価コストが、前記第2のバッファに格納された前記評価コストよりも小さい場合、前記第2のバッファに格納された前記インデックスを更新する処理とをコンピュータに実行させる請求項9に記載の符号化プログラム。
A process of selecting the motion information of the encoding target block as a replication source;
A process of collectively generating the predicted images of a plurality of the encoding target blocks having the motion information selected as a replication source as candidates;
A process of calculating the evaluation cost for the motion information that is a candidate to be associated with the encoding target block;
When the evaluation cost calculated for the motion information that is a candidate to be associated with the encoding target block is smaller than the evaluation cost stored in the second buffer, the index stored in the second buffer The encoding program according to claim 9, which causes a computer to execute a process for updating the data.
JP2016207468A 2016-10-24 2016-10-24 Encoding device, encoding method, and encoding program Pending JP2018074182A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016207468A JP2018074182A (en) 2016-10-24 2016-10-24 Encoding device, encoding method, and encoding program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016207468A JP2018074182A (en) 2016-10-24 2016-10-24 Encoding device, encoding method, and encoding program

Publications (1)

Publication Number Publication Date
JP2018074182A true JP2018074182A (en) 2018-05-10

Family

ID=62115882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016207468A Pending JP2018074182A (en) 2016-10-24 2016-10-24 Encoding device, encoding method, and encoding program

Country Status (1)

Country Link
JP (1) JP2018074182A (en)

Similar Documents

Publication Publication Date Title
JP7571105B2 (en) MEMORY ACCESS WINDOW AND PADDING FOR MOTION VECTOR REFINEMENT AND MOTION COMPENSATION - Patent application
US9800889B2 (en) Video decoding device, video decoding method, video decoding program, and video decoding integrated circuit
CN115174933B (en) Limited memory access window for motion vector modification
TWI478586B (en) Motion vector predictive coding method, motion vector predictive decoding method, moving picture coding apparatus, moving picture decoding apparatus, and programs thereof
CN111201792B (en) Modified motion vector for motion vector pointing to fractional pixel point position
KR20100019541A (en) Dynamic image encoding device, dynamic image encoding method, dynamic image encoding program, dynamic image decoding device, dynamic image decoding method, and dynamic image decoding program
JP2008048289A (en) Inter-frame prediction processing apparatus, image encoder and image decoder
JP4787044B2 (en) Image decoding apparatus, image decoding method, image decoding program, and image decoding integrated circuit
TWI846733B (en) General applications related to affine motion
JP2007129370A (en) Motion vector detecting apparatus and method
JP6187826B2 (en) Moving picture coding apparatus and moving picture coding method
US11290740B2 (en) Image coding apparatus, image coding method, and storage medium
JP5906993B2 (en) Encoding apparatus, encoding method, and program
JP2018074182A (en) Encoding device, encoding method, and encoding program
JP2018023034A (en) Super-resolution frame selection apparatus, super-resolution device, and program
WO2024079965A1 (en) Image coding device, image coding method and program, image decoding device, and image decoding method and program
JP6308409B2 (en) Moving picture coding apparatus and moving picture coding method
JP2015192438A (en) Moving image encoding processing device, program and integrated circuit
JP2008301085A (en) Motion vector search device and control method thereof, computer program
JP2009033266A (en) Motion vector search method, motion vector search device, coder and computer program
JP2018201232A (en) Decoding device and decoding method
JP2009152805A (en) Video coder, control method of video coder, and computer program
KR20090076413A (en) Method and apparatus for motion compensation
JP2017225145A (en) Decoding device, decoding method, and program
JP2016058874A (en) Moving image encoder, moving image encoding method, and moving image encoding program