JP2018074182A - Encoding device, encoding method, and encoding program - Google Patents
Encoding device, encoding method, and encoding program Download PDFInfo
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
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
また、H.265では、非特許文献2のように、動きベクトルデータの圧縮ツールとしてマージモードを含む。マージモードは、符号化対象ブロックの近傍ブロックと動き情報を統合する方式である。マージモードでは、動き情報を統合するブロック位置の候補(以下、候補ブロック)のうち選択された候補ブロックの動きベクトル(マージ候補ベクトルとよぶ)のいずれかをコピーしてそのまま使用する。そして、コピー元の候補ブロックの位置を表すインデックスのみを符号化する。
H. 265 includes a merge mode as a motion vector data compression tool, as in Non-Patent
特許文献1には、符号化対象フレームをブロックに分割し、分割された各ブロックを動き補償予測を用いて符号化する動画像符号化技術について開示されている。
特許文献1の技術では、符号化対象フレームにおける動きベクトルの予測対象となる予測対象ブロックに対して、同一画像内の予め定められた近傍位置にある複数個の符号化済み参照ブロックから動きベクトルを抽出する。そして、特許文献1の技術では、予め定められた符号化済み画像を参照画像とし、参照ブロックと同じ配置関係にある参照画像内のブロックの中で、動きベクトルの乖離度が最小となるブロックの領域を求める。さらに、特許文献1の技術では、求められた領域に対して割り当てられた動きベクトルを当該ブロックに対する予測ベクトルの候補として抽出する。
In the technique of
特許文献2には、マージモードを用いる動画像符号化装置について開示されている。特許文献2の装置は、符号化対象ブロックの周辺に位置する5個の候補ブロックのマージ候補ベクトルを所定の順序に従って選択する。特許文献2の装置は、各候補ブロックの動きベクトルをマージ候補ベクトルとして登録するか否かを順番に判定していく。特許文献2の装置によれば、マージモードを用いることによって、動きベクトルデータの符号量を削減することができる。
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.
非特許文献1のように、マージ候補ベクトルが小数精度の場合、予測画像を作成する際に小数画素補間処理が伴う。図18に示すように、小数画素の補間には、処理ブロック外の整数画素、処理ブロック外の補間結果を参照する必要があるため、ブロック外の画素も含めてメモリアクセス・演算しなければならない。
As in Non-Patent
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.
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。以下の実施形態の説明に用いる全図においては、特に理由がない限り、同様箇所には同一符号を付す。また、以下の実施形態において、同様の構成・動作に関しては繰り返しの説明を省略する場合がある。また、図面中の矢印の向きは、一例を示すものであり、構成要素間の信号の向きを限定するものではない。 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
動画像符号化装置1は、動きベクトル決定手段10、インター予測手段21、イントラ予測手段22、加算器23、変換・量子化手段24、符号化手段25、逆変換・逆量子化手段26、合成器27、ループフィルタ28、フレームバッファ29を備える。特に、動画像符号化装置1は、動きベクトル決定手段10に特徴を有する。なお、動きベクトルは、MV(Motion Vector)とも略される。
The moving
動きベクトル決定手段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
The motion
動きベクトル決定手段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
そして、動きベクトル決定手段10は、算出した評価コストに基づいて、候補動きベクトルの中から符号化対象ブロックの動きベクトルを選択する。本実施形態においては、例えば、動きベクトル決定手段10は、評価コストが最小の動きベクトルを選択する。
Then, the motion
例えば、動きベクトル決定手段10は、符号化による画像歪コストと、符号化に必要な符号量コストとの和を評価コストとして算出する。例えば、動きベクトル決定手段10は、入力画像ブロックと予測画像ブロックの類似度を表す画素の絶対値差分和SAD(Sum of Absolute Difference)値を画像歪コストとして用いる。また、動きベクトル決定手段10は、動きベクトルを符号化するための符号量を符号量コストとして用いる。SAD値が小さいほど類似度が高いため、動きベクトル決定手段10は、評価コストが最小になる動きベクトルを選択する。
For example, the motion
インター予測手段21は、動きベクトル決定手段10によって決定された動きベクトルに対応する予測画像を生成する。インター予測手段21は、生成した予測画像を加算器23および合成器27に出力する。
The
イントラ予測手段22は、イントラ予測に基づいて予測画像を生成する。イントラ予測手段22は、生成した予測画像を加算器23および合成器27に出力する。
The
加算器23は、入力画像と予測画像とを入力とし、入力画像と予測画像との差分である残差信号を生成する。加算器23は、生成した残差信号を変換・量子化手段24に出力する。
The
変換・量子化手段24は、加算器23からの残差信号を入力とし、その残差信号を整数変換して量子化された変換係数を生成する。変換・量子化手段24は、量子化された変換係数を符号化手段25および逆変換・逆量子化手段に出力する。
The transform / quantization means 24 receives the residual signal from the
符号化手段25は、変換・量子化手段24によって量子化された変換係数を符号化し、そのビットストリームを符号化ストリームとして出力する。
The
逆変換・逆量子化手段26は、変換・量子化手段24によって量子化された変換係数を入力とし、その変換係数を逆変換することによって予測残差画像を復号する。具体的には、逆変換・逆量子化手段26は、量子化された変換係数を逆量子化した後に逆整数変換することによって予測残差画像を復号する。
The inverse transform /
合成器27は、逆変換・逆量子化手段26によって復号された予測残差画像と、インター予測手段21によって生成された予測画像とを入力とする。合成器27は、予測残差画像と予測画像とを合成し、再構築画像を生成する。合成器27は、生成した再構築画像をイントラ予測手段22およびループフィルタ28に出力する。
The
合成器27によって生成された再構築画像は、イントラ予測手段22において同一フレームのイントラ予測に使用される。また、ループフィルタ28によってフィルタリングされた画像は、フレームバッファ29に格納され、後続フレームのインター予測に使用される。
The reconstructed image generated by the
ループフィルタ28は、合成器27によって生成された再構築画像からブロック歪を除去し、ブロック歪が除去された再構築画像をフレームバッファ29に格納する。
The
フレームバッファ29は、ループフィルタ28によってブロック歪が除去された再構築画像(以下、参照画像とよぶ)を格納するためのバッファである。フレームバッファ29に格納された参照画像は、後続フレームの符号化対象ブロックのインター予測を行う際に、動きベクトル決定手段10から参照画像として読み出される。
The
〔マージモード〕
本実施形態の動画像符号化装置1は、時間的・空間的な相関性を利用して動画像情報を圧縮する。時間的な相関性を用いて動画像情報を圧縮するモードはインター予測と呼ばれ、空間的な相関性を用いて動画像情報を圧縮するモードはイントラ予測と呼ばれる。
[Merge mode]
The moving
インター予測は、動き探索モード(第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
図3の左下側の破線内部には、符号化対象フレーム100に含まれる符号化対象ブロック101を拡大して図示している。図3の右下側の破線内部には、参照フレーム200において符号化対象ブロック101と同一位置のブロック(以下、参照ブロック201)を拡大して図示している。図3の左下側および右下側の破線内部に示す符号化対象ブロック101および参照ブロック201の周辺や内部に示す7つのブロックは、動き情報を統合するブロック位置の候補(以下、候補ブロック)を示す。
The
マージモードでは、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
〔動きベクトル決定手段〕
ここで、動きベクトル決定手段10の詳細構成について図5を用いて説明する。図5は、動きベクトル決定手段10の詳細構成を示すブロック図である。図6は、動きベクトル決定手段10が動作する際の信号の流れを矢印で示した概念図である。なお、図6の信号の流れは一例であって、動きベクトル決定手段10における信号の流れを限定するものではない。
[Motion vector determination means]
Here, a detailed configuration of the motion
動きベクトル決定手段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
動き探索手段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
動きベクトル比較手段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
動きベクトルバッファ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
〔マージ選択手段〕
ここで、マージ選択手段12の詳細な構成について説明する。図5および図6のように、マージ選択手段12は、評価コスト算出手段121、マージインデックス選択手段122、マージ候補予測画像生成手段123、マージ候補バッファ124を含む。なお、図5および図6は、マージ選択手段12の特徴的な構成のみを示しており、マージ選択手段12の全てを示しているわけではない。
[Merge selection means]
Here, a detailed configuration of the
評価コスト算出手段121は、符号化対象ブロックと、その符号化対象ブロックに対応する参照画像から生成される予測画像とを入力とする。評価コスト算出手段121は、入力画像および予測画像を用いて、符号化対象ブロックの評価コストを算出する。
The evaluation
評価コスト算出手段121は、その符号化対象ブロックのフレーム間の動きを推定するために、様々な候補動きベクトルに対して評価コストを算出する。
The evaluation
例えば、評価コスト算出手段121は、符号化による画像歪コストと、符号化に必要な符号量コストとの和を評価コストとして算出する。例えば、評価コスト算出手段121は、入力画像ブロックと予測画像ブロックとの類似度を表す画素の絶対値差分和SAD値を画像歪コストとして用いる。また、例えば、評価コスト算出手段121は、動きベクトルを符号化するための符号量を符号量コストとして用いる。
For example, the evaluation
マージインデックス選択手段122(インデックス選択手段ともよぶ)は、動きベクトルに関して算出された評価コストに基づいて、マージ候補バッファ124に格納される最良マージインデックスを更新する。マージインデックスとは、マージ候補バッファ124に格納されたマージ候補ベクトルを同定するためのインデックスである。
The merge index selection unit 122 (also referred to as index selection unit) updates the best merge index stored in the
マージインデックス選択手段122は、最良マージインデックスを更新すると、評価コストに基づいて、符号化対象ブロックに対応付ける動きベクトルをマージ候補バッファ124から選択する。マージインデックス選択手段122は、選択した動きベクトルを動きベクトル比較手段13に出力する。
When the best merge index is updated, the merge
当該ブロックの評価コストがマージ候補バッファ124に格納されていない場合、マージインデックス選択手段122は、符号化対象ブロックの評価コストを最良マージインデックスとして、マージ候補ベクトルと関連付けてマージ候補バッファ124に格納する。
If the evaluation cost of the block is not stored in the
一方、当該ブロックの評価コストが既にマージ候補バッファ124に格納されている場合、マージインデックス選択手段122は、当該ブロックに関して、新たに算出された評価コストと、マージ候補バッファ124に格納されている評価コストとを比較する。そして、マージインデックス選択手段122は、当該ブロックに関して新たに算出された評価コストが最小である場合、マージ候補バッファ124に格納された最良マージインデックスを更新する。
On the other hand, when the evaluation cost of the block is already stored in the
マージ候補予測画像生成手段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
マージ候補予測画像生成手段123は、共通の動きベクトルをマージ候補ベクトルとする符号化対象ブロックに対応する予測画像を一括して生成する。すなわち、マージ候補予測画像生成手段123は、複製元として選択された動きベクトルをマージ候補ベクトルとする複数の符号化対象ブロックの予測画像を一括して生成する。
The merge candidate predicted
マージ候補バッファ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
符号化対象ブロック101から予測画像301を生成する際には、まず、ブロックB1の処理を行う。ブロックB1は、符号化対象ブロック101の左上隅に位置しており、左側や上側に隣接するブロックが存在しないため、マージ選択処理は行われない。
When generating the predicted
次のブロック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
よって、図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
(動作)
次に、本実施形態の動画像符号化装置1に含まれるマージ選択手段12によるマージ選択動作に関して、図10のフローチャートを用いて説明する。なお、以下の説明は、図7〜図9に示す符号化対象フレーム100を構成する符号化対象ブロック101に関して、マージ選択手段12を主体として説明する。
(Operation)
Next, the merge selection operation by the merge selection means 12 included in the moving
図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
まず、マージ選択手段12は、マージ候補ベクトルB2_Cand4について評価コストを算出する(ステップS12)。
First, the
そして、マージ選択手段12は、ブロックB2の最良マージインデックスとして、算出した評価コストをマージ候補ベクトルB2_Cand4に関連付けてマージ候補バッファ208に格納する(ステップS13)。
Then, the
同様に、マージ選択手段12は、マージ候補ベクトルB5_Cand3、B6_Cand5についても、ステップS12〜S13の処理を行う。マージ候補ベクトルB6_Cand5の処理が終われば、B1_MVをコピー元MVとする処理は終了である。
Similarly, the
続いて、マージ選択手段12は、コピー元MVとして、ブロックB2の動きベクトルであるB2_MVを選択する。B2_MVは、ブロックB3、B5、B6、B7のマージ候補ベクトルB3_Cand4、B5_Cand2、B6_Cand3、B7_Cand5である。
Subsequently, the
マージ選択手段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
まず、マージ選択手段12は、マージ候補ベクトルB3_Cand4について評価コストを算出する(ステップS12)。
First, the
そして、マージ選択手段12は、ブロックB3の最良マージインデックスとして評価コストをマージ候補ベクトルB3_Cand4に関連付けてマージ候補バッファに記憶する(ステップS13)。
Then, the
次に、マージ選択手段12は、マージ候補ベクトルB5_Cand2について評価コストを算出する(ステップS12)。
Next, the
なお、ブロック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
マージ選択手段12は、マージ候補バッファ124に格納されている評価コストよりも、算出した評価コストの方が小さければ、マージ候補バッファ124に格納される最良マージインデックスを更新する。一方、マージ選択手段12は、マージ候補バッファ124に格納されている評価コストよりも、算出した評価コストの方が大きい場合は、マージ候補バッファ124に格納される最良マージインデックスを更新しない。
The merge selection means 12 updates the best merge index stored in the
同様に、マージ選択手段12は、マージ候補ベクトルB6_Cand3、B7_Cand5についてもステップS12〜S13の処理を行う。なお、マージ選択手段12は、マージ候補ベクトルB6_Cand3については、マージ候補ベクトルB5_Cand2と同様に処理する。一方、マージ候補ベクトルB7_Cand5については、マージ候補ベクトルB3_Cand4と同様に処理する。
Similarly, the
以上のステップ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
動きベクトル決定手段1000は、マージ選択手段120がマージ候補バッファ124を含まない点で、第1の実施形態の動きベクトル決定手段10と異なる。動きベクトル決定手段1000の構成は、マージ候補バッファ124以外は、第1の実施形態の動きベクトル決定手段10の構成と同様である。
The motion
図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
図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
次に、マージ選択手段120は、マージ候補ベクトルB2_Cand4の予測画像を生成する(ステップS101)。マージ候補ベクトルB2_Cand4(B1_MV)が小数精度ベクトルの場合、マージ選択手段120は、小数画素を補間することで予測画像を生成する。
Next, the
次に、マージ選択手段120は、マージ候補ベクトルB2_Cand4の予測画像とブロックB2の入力画像とから評価コストを算出する(ステップS102)。
Next, the
そして、マージ選択手段120は、算出した評価コストが当該ブロックのマージ候補ベクトルの中で最小であれば、最良マージインデックスを更新する(ステップS103)。なお、マージ候補ベクトルB2_Cand4は、ブロックB2について最初に評価したマージ候補ベクトルであるので、その時点ではB2_Cand4の評価コストが最小となる。
Then, the
マージ選択手段120は、ブロックB3、B4についても、ブロックB2と同様の処理を繰り返す。
The
ブロック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
以上のように、関連技術の手法においては、符号化対象ブロックのループが最外になり、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
本実施形態の手法によれば、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
図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
プロセッサ91は、補助記憶装置93等に格納されたプログラムを主記憶装置92に展開し、展開されたプログラムを実行する演算装置である。本実施形態においては、ハードウェア90にインストールされたソフトウェアプログラムを用いる構成とすればよい。プロセッサ91は、種々の演算処理や制御処理を実行する。例えば、プロセッサ91は、CPU(Central Processing Unit)によって実現される。また、GPU(Graphics Processing Unit)にプロセッサ91の機能の一部を負わせてもよい。例えば、図16のハードウェア90−2のように、CPU911とGPU912とを含む構成にすることができる。
The
主記憶装置92は、プログラムが展開される領域を有する。主記憶装置92は、例えばDRAM(Dynamic Random Access Memory)などの揮発性メモリとすればよい。また、MRAM(Magnetoresistive Random Access Memory)などの不揮発性メモリを主記憶装置92として構成・追加してもよい。
The
補助記憶装置93は、種々のデータを記憶させるための記憶装置である。補助記憶装置93は、ハードディスクやフラッシュメモリなどのローカルディスクとして構成される。
The
入出力インターフェース95は、ハードウェア90と周辺機器とを接続規格に基づいて接続するインターフェース(I/F:Interface)である。
The input /
ハードウェア90には、必要に応じて、キーボードやマウス、タッチパネルなどの入力機器、ディスプレイや印刷機器などの出力機器を接続してもよい。それらの入力機器や出力機器は、情報や設定の入力や動画像情報の出力などに使用できる。プロセッサ91と入力機器との間のデータ授受は、入出力インターフェース95に仲介させればよい。
If necessary, the
ネットワークアダプター96は、規格や仕様に基づいてネットワークに接続するためのインターフェースである。入出力インターフェース95およびネットワークアダプター96は、外部機器と接続するインターフェースとして共通化してもよい。
The
また、ハードウェア90には、必要に応じて、リーダライタを備え付けてもよい。リーダライタは、バス99に接続される。リーダライタは、プロセッサ91と図示しない記録媒体(プログラム記録媒体)との間で、記録媒体からのデータ・プログラムの読み出し、ハードウェア90の処理結果の記録媒体への書き込みなどを仲介する。記録媒体は、例えばSD(Secure Digital)カードやUSB(Universal Serial Bus)メモリなどの半導体記録媒体などで実現できる。また、記録媒体は、フレキシブルディスクなどの磁気記録媒体、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光学記録媒体やその他の記録媒体によって実現してもよい。
The
本発明の実施形態に係る動画像符号化装置は、並列処理を実行できることが好ましい。図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
図17のGPU912は、インターフェース921、キャッシュ922および複数のストリーミングマルチプロセッサ923(以下、SM:Streaming Multiprocessor)を含む。なお、図17の構成は概念的な構成例であり、実際のGPU912は、インターフェース921、キャッシュ922およびSM923以外の構成要素を含む。
17 includes an
インターフェース921は、DRAMなどで実現される主記憶装置92やCPU911などとデータをやり取りするための接続部である。
The
キャッシュ922は、SM間で共有される高速のメモリである。
The
SM923は、動画像符号化処理を処理するための演算部である。例えば、SM923は、ストリーミングプロセッサと呼ばれる複数のコア(演算装置)や、シェアードメモリ、レジスタなどのメモリを含む。
SM923 is a calculation unit for processing the moving image encoding process. For example, the
以上が、本発明の実施形態に係る動画像符号化装置を実現するためのハードウェアの一例である。本発明の各実施形態の構成要素は、図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
Claims (10)
前記符号化対象ブロックと前記予測画像とを入力とし、前記符号化対象ブロックと前記予測画像とを用いて前記符号化対象ブロックの評価コストを算出する評価コスト算出手段と、
前記符号化対象ブロックに対応付ける候補となる前記動き情報をインデックスとして、前記動き情報と前記評価コストとを関連付けて格納する第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に記載の符号化装置。 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.
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) |
-
2016
- 2016-10-24 JP JP2016207468A patent/JP2018074182A/en active Pending
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 |