JP2007129370A - Motion vector detecting apparatus and method - Google Patents
Motion vector detecting apparatus and method Download PDFInfo
- Publication number
- JP2007129370A JP2007129370A JP2005318898A JP2005318898A JP2007129370A JP 2007129370 A JP2007129370 A JP 2007129370A JP 2005318898 A JP2005318898 A JP 2005318898A JP 2005318898 A JP2005318898 A JP 2005318898A JP 2007129370 A JP2007129370 A JP 2007129370A
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- pixel
- image
- integer
- decimal
- 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
本発明は、画像を光ディスク、磁気ディスクあるいはフラッシュメモリ等の記憶メディア上に圧縮記録する画像圧縮符号化装置において、符号化対象ピクチャに含まれる符号化対象ブロックの動きベクトルを検出する装置に関するものであり、特にH.264符号化方式の符号化装置における動きベクトルを検出する装置に関する。 The present invention relates to an apparatus for detecting a motion vector of an encoding target block included in an encoding target picture in an image compression encoding apparatus that compresses and records an image on a storage medium such as an optical disk, a magnetic disk, or a flash memory. Yes, especially H. The present invention relates to an apparatus for detecting a motion vector in an H.264 encoding system encoding apparatus.
半導体技術等の進歩によって、動画像を圧縮するための符号化技術が家庭用のビデオ記録機器に導入されている。特に近年は、通信インフラのブロードバンド化、記憶メディアの大容量化により、HD(High Definition)画像での映像の蓄積、配信、編集が求められるようになっており、動画像を圧縮するための符号化技術はますます重要になってきている。 Due to advances in semiconductor technology and the like, coding technology for compressing moving images has been introduced into home video recording equipment. In recent years, in particular, as broadband communication infrastructure and storage media have increased in capacity, storage, distribution, and editing of HD (High Definition) images have been required. Codes for compressing moving images Technology is becoming increasingly important.
動画像を圧縮するための符号化技術の一つに、ピクチャ間の動きベクトルを利用した動き補償がある。MPEG1、MPEG2では1/2画素精度の動き補償が導入され、小数位置の画素値は周囲の整数位置の画素値からバイリニアフィルタを用いて求める(例えば、非特許文献1参照)。また、H.264/AVCでは1/4画素精度の動き補償が導入され、1/2位置の画素値については6TAPフィルタを用いて、1/4位置の画素値についてはバイリニアフィルタを用いて求める(例えば、非特許文献2参照)。 One of the encoding techniques for compressing moving images is motion compensation using motion vectors between pictures. MPEG1 and MPEG2 introduce motion compensation with 1/2 pixel accuracy, and the pixel value at the decimal position is obtained from the pixel values at the surrounding integer positions using a bilinear filter (see, for example, Non-Patent Document 1). H. In H.264 / AVC, motion compensation with 1/4 pixel accuracy is introduced. A pixel value at the 1/2 position is obtained using a 6TAP filter, and a pixel value at the 1/4 position is obtained using a bilinear filter (for example, non-linear). Patent Document 2).
動きベクトル検出は一般に、外部メモリに符号化ピクチャおよび参照ピクチャの画像データを格納し、内部メモリに動きベクトル検出用の符号化ブロックの画像データと探索領域の画像データを転送して動きベクトルを検出する。探索領域の境界付近に位置する小数位置の画素値を求める場合、探索領域外の画素値を利用する。小数位置の画素値を求める際に探索領域外の画素値を利用する具体例について、図11を参照して説明する。 In general, motion vector detection stores image data of coded pictures and reference pictures in an external memory, and transfers motion vector detection block image data and search area image data to the internal memory to detect motion vectors. To do. When the pixel value at the decimal position located near the boundary of the search area is obtained, the pixel value outside the search area is used. A specific example in which pixel values outside the search area are used when obtaining pixel values at decimal positions will be described with reference to FIG.
図11は、探索領域内の画素値により、算出できる小数位置の画素値および算出できない小数位置の画素値の位置関係を示す図である。図11の実線の「○」で示す位置は探索領域内の整数位置であり、「△」および「×」で示す位置は探索領域内の小数位置であり、点線の「○」で示す位置は探索領域外の整数位置である。小数位置のうち「△」が示す位置は、探索領域内の整数位置の画素値から6TAPフィルタを用いて画素値を算出できる位置を示す。小数位置のうち「×」が示す位置は、探索領域内の整数位置の画素値から6TAPフィルタを用いて画素値を算出することができず、6TAPフィルタを用いた画素値を算出するために探索領域外の画素値の取得が必要となる位置を示す。 FIG. 11 is a diagram illustrating a positional relationship between a pixel value at a decimal position that can be calculated and a pixel value at a decimal position that cannot be calculated based on the pixel value in the search area. The positions indicated by solid circles in FIG. 11 are integer positions in the search area, the positions indicated by “Δ” and “x” are decimal positions in the search area, and the positions indicated by dotted lines “◯” are An integer position outside the search area. The position indicated by “Δ” among the decimal positions indicates a position where the pixel value can be calculated from the pixel value at the integer position in the search area using the 6TAP filter. Of the decimal positions, the position indicated by “x” cannot be calculated from the pixel value at the integer position in the search area using the 6TAP filter, but is searched to calculate the pixel value using the 6TAP filter. The position where the pixel value outside the area needs to be acquired is shown.
例えば、a(1,4)の画素値を計算する場合、a(-4,4)、a(-2,4)、a(0,4)、a(2,4)、a(4,4)、a(6,4)の画素値が必要となる。この6点のうちa(-4,4)およびa(-2,4)については、探索領域外の画素値であるため、外部メモリが記憶する画素値を利用する。
しかしながら、探索領域外の画素値を利用して探索領域内の小数位置の画素値を求める場合に、小数位置の画素値の計算に必要となる領域外の画素値を外部メモリから取得すると、外部メモリから内部メモリへのデータの転送を行うため、メモリバンド幅が増加し、消費電力が増加するという問題がある。 However, when the pixel value outside the search area is used to obtain the pixel value at the decimal position in the search area, if the pixel value outside the area necessary for calculating the pixel value at the decimal position is acquired from the external memory, the external value Since data is transferred from the memory to the internal memory, there is a problem that the memory bandwidth increases and the power consumption increases.
また、探索領域外の画素値を利用して探索領域内の小数位置の画素値を求めるために、内部メモリを増やして、小数位置の画素値の計算に必要となる画素値を保持しておくと、内部メモリの記憶容量を増やす必要があるため、回路規模が増加するという問題がある。 Further, in order to obtain the pixel value at the decimal position in the search area by using the pixel value outside the search area, the internal memory is increased to hold the pixel value necessary for calculating the pixel value at the decimal position. Since the storage capacity of the internal memory needs to be increased, there is a problem that the circuit scale increases.
特にこれらの問題は、H.264/MPEG4 AVCでの動き補償において深刻になる。すなわち、MPEG1、MPEG2における動き補償では、バイリニアフィルタが用いられているため、小数位置の画素値の算出に必要となる探索領域外の画素値は、左右1画素、上下1ライン分だけにすぎない。しかしながら、H.264/MPEG4 AVCにおける動き補償では、に6TAPフィルタを用いるため、小数位置の画素値の算出に必要となる探索領域外の画素値は、左右3画素分、上下3ライン分となる。 In particular, these problems are discussed in H.C. It becomes serious in motion compensation in H.264 / MPEG4 AVC. In other words, since the bilinear filter is used in motion compensation in MPEG1 and MPEG2, the pixel values outside the search area necessary for calculating the pixel value at the decimal position are only one pixel on the left and right and one on the upper and lower lines. . However, H.C. In the motion compensation in H.264 / MPEG4 AVC, since a 6TAP filter is used, the pixel values outside the search area necessary for calculating the pixel value at the decimal position are the left and right 3 pixels and the upper and lower 3 lines.
さらに、これらの問題は、HD画像の画像符号化処理において深刻になる。なぜなら、HD画像の画像符号化処理での探索領域は、SD(Standard Definition)画像での探索領域よりも広くする必要があるからである。 Furthermore, these problems become serious in the image encoding processing of HD images. This is because the search area in the HD image encoding process needs to be wider than the search area in the SD (Standard Definition) image.
本発明はかかる問題を解決するためになされたものであり、消費電力を増加させることや回路規模を増大させることなく、小数精度の動きベクトルを検出することができる動きベクトル検出装置を提供することを目的とする。 The present invention has been made to solve such a problem, and provides a motion vector detection device capable of detecting a motion vector with decimal precision without increasing power consumption or increasing the circuit scale. With the goal.
上記目的を達成するために、本発明に係る動きベクトル検出装置は、符号化の対象となる画像に含まれる符号化対象ブロックの動きベクトルを検出する動きベクトル検出装置であって、探索領域に含まれる画素の画素値を記憶している画像記憶手段と、前記符号化対象ブロックの整数精度の動きベクトルを検出する第1検出手段と、前記整数精度の動きベクトルにより特定される画像ブロックに含まれる整数位置の画素の周囲に位置する小数位置の画素から構成される小数位置の画像ブロックのうち、前記画像記憶手段が記憶している画素値のみを用いて画素値を算出できる小数位置の画素から構成される小数位置の画像ブロックのみおよび前記整数精度の動きベクトルにより特定される整数位置の画像ブロックを探索候補として動きベクトルを検出する第2検出手段とを備える。 In order to achieve the above object, a motion vector detection device according to the present invention is a motion vector detection device that detects a motion vector of an encoding target block included in an image to be encoded, and is included in a search region. Image storage means for storing pixel values of pixels to be encoded, first detection means for detecting an integer precision motion vector of the encoding target block, and an image block specified by the integer precision motion vector From the decimal position pixel that can calculate the pixel value using only the pixel value stored in the image storage means, out of the decimal position image blocks composed of the decimal position pixels around the integer position pixel. Only the fractional position image block and the integer position image block specified by the integer precision motion vector are used as search candidates. And a second detecting means for detecting.
これにより、小数精度の動きベクトルを検出する場合、内部メモリが記憶している画素値のみを使用するため、消費電力の増加や回路規模の増大をさせることなく動きベクトルを検出することが可能となる。 As a result, when detecting a motion vector with decimal precision, only the pixel value stored in the internal memory is used, and therefore it is possible to detect the motion vector without increasing the power consumption or the circuit scale. Become.
好ましくは、前記第2検出手段は、さらに、符号化対象ブロックに対して前記第1検出手段が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、前記画像記憶手段が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素を含む画像ブロックを前記探索候補から除外する。 Preferably, the second detection unit further includes a decimal position located around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection unit with respect to the encoding target block. When the pixel value of a pixel outside the image area stored in the image storage means is necessary for calculating the pixel value of the pixel, the image block including the pixel at the decimal position is excluded from the search candidates.
また、前記第2検出手段は、符号化対象ブロックに対して前記第1検出手段が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、前記画像記憶手段が記憶している画像領域の外の画素の画素値が必要な場合、さらに、当該符号化対象ブロックについて、すべての前記小数位置の画像ブロックを前記探索候補から除外する。 Further, the second detection means is a pixel of a decimal position pixel located around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection means with respect to the encoding target block. When the pixel value of the pixel outside the image area stored in the image storage unit is necessary for the calculation of the value, all the image blocks at the decimal positions are further extracted from the search candidates for the encoding target block. exclude.
また、前記第2検出手段は、符号化対象ブロックに対して前記第1検出手段が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、前記画像記憶手段が記憶している画像領域の外の画素の画素値が必要な場合、さらに、当該符号化対象ブロックについて、すべての前記小数位置の画像ブロックおよび当該整数位置の画像ブロックを前記探索候補から除外する。 Further, the second detection means is a pixel of a decimal position pixel located around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection means with respect to the encoding target block. When the pixel value of the pixel outside the image area stored in the image storage means is necessary for the calculation of the value, all the image blocks at the decimal positions and the integer positions of the encoding target block are further calculated. The image block is excluded from the search candidates.
このように、記憶装置が記憶している領域外の画素の画素値が、補間による画素値の算出に必要となる小数位置の画素の画素値は、動きベクトルを検出するための探索候補に含まれない。これにより、小数精度の動きベクトルを検出する場合、記憶装置が記憶している画素値のみを使用するため、消費電力の増加や回路規模の増大をさせることなく動きベクトルを検出することが可能となる。 As described above, the pixel value of the pixel outside the area stored in the storage device is included in the search candidate for detecting the motion vector. I can't. As a result, when detecting a motion vector with decimal precision, it is possible to detect a motion vector without increasing the power consumption or the circuit scale because only the pixel values stored in the storage device are used. Become.
好ましくは、前記第2検出手段は、さらに、符号化対象ブロックに対して前記第1検出手段が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、前記画像記憶手段が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素の画素値を、前記画像記憶手段が記憶している画素値のみから算出する。 Preferably, the second detection unit further includes a decimal position located around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection unit with respect to the encoding target block. When the pixel value of a pixel outside the image area stored in the image storage unit is necessary for calculating the pixel value of the pixel, the pixel value of the pixel at the decimal position is stored in the image storage unit. Calculate from pixel values only.
このように、記憶装置が記憶している画像領域外の画素の画素値が補間計算のために必要な小数位置の画素の画素値は、記憶装置が記憶している画素の画素値を補間することにより算出される。これにより、記憶装置が記憶している画素値のみを使用して、探索領域内の全ての小数位置の画素を含む画像ブロックを探索候補とすることができる。そのため、探索領域画像データメモリを増やすことなく動きベクトル検出の探索領域を拡大することができるため、消費電力を増加させることや回路規模を増大させることなく、符号化効率の向上を図ることが可能となる。 As described above, the pixel value of the pixel outside the image area stored in the storage device is interpolated with the pixel value of the pixel stored in the storage device as the pixel value of the pixel in the decimal position necessary for the interpolation calculation. Is calculated by As a result, using only the pixel values stored in the storage device, an image block including pixels at all decimal positions in the search area can be set as a search candidate. Therefore, since the search area for motion vector detection can be expanded without increasing the search area image data memory, it is possible to improve the encoding efficiency without increasing the power consumption or the circuit scale. It becomes.
さらに好ましくは、前記第2検出手段は、さらに、符号化対象ブロックに対して前記第1検出手段が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、前記画像記憶手段が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素の画素値の算出に用いる画素数を、前記画像記憶手段が記憶している画素値のみから取得できる画素数に減らすことにより前記小数位置の画素値を算出する。 More preferably, the second detection unit further includes a decimal position located around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection unit with respect to the encoding target block. When the pixel value of the pixel outside the image area stored in the image storage means is necessary for the calculation of the pixel value of the pixel, the number of pixels used for calculating the pixel value of the pixel at the decimal position is The pixel value at the decimal position is calculated by reducing the number of pixels that can be acquired from only the pixel value stored in the storage means.
また、前記第2検出手段は、さらに、符号化対象ブロックに対して前記第1検出手段が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、前記画像記憶手段が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素値を算出するために必要な、前記画像記憶手段が記憶している領域の外に位置する画素の画素値に、当該画像領域の外に位置する画素の最も近くに位置する前記画像領域内の画素値を代用して前記小数位置の画素値を算出する。 In addition, the second detection unit further includes a pixel at a decimal position positioned around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection unit with respect to the encoding target block. When the pixel value of a pixel outside the image area stored in the image storage unit is necessary for the calculation of the pixel value of the image, the image storage unit stores the pixel value necessary for calculating the pixel value at the decimal position. The pixel value of the decimal position is calculated by substituting the pixel value of the pixel located outside the image area with the pixel value within the image area located closest to the pixel located outside the image area. .
また、前記第2検出手段は、さらに、符号化対象ブロックに対して前記第1検出手段が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、前記画像記憶手段が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素値を算出するために必要な、前記画像記憶手段が記憶している画像領域の外に位置する画素の画素値に、当該領域の外に位置する画素と当該画素に最も近い前記画像領域の境界を挟んで線対称の位置に示される画素値を代用して前記小数位置の画素値を算出する。 In addition, the second detection unit further includes a pixel at a decimal position positioned around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection unit with respect to the encoding target block. When the pixel value of a pixel outside the image area stored in the image storage unit is necessary for the calculation of the pixel value of the image, the image storage unit stores the pixel value necessary for calculating the pixel value at the decimal position. Instead of the pixel value of a pixel located outside the image area being displayed, the pixel value shown in a line-symmetric position across the boundary between the pixel located outside the area and the image area closest to the pixel is substituted. The pixel value at the decimal position is calculated.
これらの方法によって、本来探索領域外の画素値が必要な小数位置の画素値を補間計算することができるため、回路規模や消費電力を増加させることなく動きベクトル検出の探索領域を拡大することができ、符号化効率の向上を図ることが可能となる。 By these methods, it is possible to perform interpolation calculation of pixel values at decimal positions that originally require pixel values outside the search area, so that the search area for motion vector detection can be expanded without increasing the circuit scale or power consumption. Therefore, it is possible to improve the encoding efficiency.
なお、本発明は、このような動きベクトル検出装置として実現することができるだけでなく、このような動きベクトル検出装置が備える特徴的な手段をステップとする動きベクトル検出方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。 The present invention can be implemented not only as such a motion vector detection device, but also as a motion vector detection method using steps characteristic of the motion vector detection device. It can also be realized as a program for causing a computer to execute steps. Needless to say, such a program can be distributed via a recording medium such as a CD-ROM or a transmission medium such as the Internet.
本発明によると、画像符号化装置の回路規模を増大させることや消費電力を増加させることなく、符号化効率の向上を図ることができる。 According to the present invention, it is possible to improve the encoding efficiency without increasing the circuit scale of the image encoding device or increasing the power consumption.
以下、図面を参照して本発明の実施の形態を説明する。
図1は、本発明の実施の形態に係る動きベクトル検出装部を備えた動画像符号化装置の構成を示すブロック図である。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a configuration of a moving picture encoding apparatus including a motion vector detection unit according to an embodiment of the present invention.
動画像符号化装置100は、入力される動画像を符号化する装置であり、図1に示すようにピクチャ画像データメモリ101、動きベクトル検出部107および符号化部106を備える。
The moving
ピクチャ画像データメモリ101は、符号化対象ピクチャおよび参照ピクチャの画像データを記憶している。符号化対象ピクチャの画像データは、符号化の対象となる画面の画像データである。また、参照ピクチャの画像データは、動きベクトルの検出の際に参照される画面の画像データであり、ローカルデコードされた画面の画像データである。例えば、符号化対象ピクチャおよび参照ピクチャは、ともに1920画素×1088画素で構成される画面である。また、画像データは、画面に含まれる画素の画素値である。
The picture
符号化部106は、動画像をブロック単位で符号化し、符号化されたストリームを出力する。符号化部106は、入力画像、ローカルデコード画面の画像データおよび動きベクトル検出部107により検出された動きベクトルを受け取る。これらを受けた符号化部106は、ローカルデコード画面の画像データおよび動きベクトル検出部107により検出された動きベクトルから、ブロック単位で動き補償をした予測画像を生成し、その予測画像と入力画像との差分の画像データおよび動きベクトルの符号化処理を行い、符号化されたストリームを出力する。
The
動きベクトル検出部107は、符号化対象ブロックの動きベクトルを検出する部位である。動きベクトル検出部107は、探索領域画像データメモリ102、整数精度動きベクトル検出部103、小数精度動きベクトル検出部104および動きベクトル検出制御部105を備える。
The motion
探索領域画像データメモリ102は、探索領域に含まれる画素の画素値を記憶している画像記憶手段であって、本実施の形態に係る探索領域画像データメモリ102は、符号化対象ブロックに含まれる画素の画素値をも記憶している。本実施の形態において符号化対象ブロックおよび探索領域の画像データは、ともにピクチャ画像データメモリ101から転送される。
The search area
符号化対象ブロックは、動き補償の対象となる画像の単位であり、符号化対象ピクチャに含まれる画像の一部である。符号化対象ブロックは、例えば、16画素×16画素で構成される。 The encoding target block is a unit of an image to be subjected to motion compensation, and is a part of an image included in the encoding target picture. The encoding target block is composed of, for example, 16 pixels × 16 pixels.
探索領域は、動き補償において探索を行う領域であり、参照ピクチャに含まれる画像の一部である。探索領域画像データメモリ102が記憶している画像データは、符号化対象ブロックの動きベクトルを検出するための探索の対象である探索領域の画像データを含む。
The search area is an area where search is performed in motion compensation, and is a part of an image included in the reference picture. The image data stored in the search area
ここで、図3は、探索領域画像データメモリ102が記憶している画像と参照ピクチャ301との関係の第1の例を示す図である。
Here, FIG. 3 is a diagram illustrating a first example of the relationship between the image stored in the search area
図3の斜線部は探索領域302を示し、参照ピクチャ301の一部である。また図3の黒い四角は、符号化対象ブロック303を示し、符号化対象ピクチャ304の一部である。本実施の形態に係る探索領域画像データメモリ102は、探索領域302および符号化対象ブロック303に含まれる画素の画素値を記憶している。
A hatched portion in FIG. 3 indicates a
整数精度動きベクトル検出部103は、動きベクトル検出制御部105の制御にしたがって、探索領域302に含まれる複数の画像ブロックから符号化対象ブロック303に最も近似する画像ブロックの位置を1画素精度で探索し、その符号化対象ブロック303の動きベクトルを1画素精度で検出する。すなわち、整数精度動きベクトル検出部103は、符号化対象ブロック303の整数精度の動きベクトルを検出する第1検出手段である。
The integer precision motion
ここで、探索領域302に含まれる複数の画像ブロックのうち、符号化対象ブロック303に最も近似する画像ブロックとは、例えば符号化ブロック303に含まれる画素の画素値と、探索領域内302の画像ブロックに含まれる画素の画素値との差分絶対値和が最小となる画像ブロックである。
Here, among the plurality of image blocks included in the
小数精度動きベクトル検出部104は、整数精度動きベクトル検出部103の結果と、動きベクトル検出制御部105の制御にしたがって、探索候補となる画像ブロックの中から符号化対象ブロックに最も近似する画像ブロックの位置を小数画素精度で探索し、小数画素精度で動きベクトルを検出する。
The decimal precision motion
すなわち、小数精度動きベクトル検出部104は、探索候補から動きベクトルを検出する第2検出手段である。
That is, the decimal precision motion
探索候補に小数位置の画素から構成される小数位置の画像ブロックが含まれる場合、小数位置の画素の画素値を算出する必要がある。小数位置の画素の画素値は、小数精度動きベクトル検出部104が整数位置の画素の画素値を補間することにより算出される。
When the search candidate includes an image block at the decimal position composed of pixels at the decimal position, it is necessary to calculate the pixel value of the pixel at the decimal position. The pixel value of the pixel at the decimal position is calculated by the decimal precision motion
例えば、小数精度の動きベクトルは、1/2画素精度で検出される動きベクトルであり、この動きベクトルの検出に必要な小数位置の画素の画素値は、6TAPフィルタを用いて計算される。 For example, the motion vector with decimal precision is a motion vector detected with half pixel precision, and the pixel value of the pixel at the decimal position necessary for detection of this motion vector is calculated using a 6TAP filter.
動きベクトル検出制御部105は、整数精度動きベクトル検出部103と、小数精度動きベクトル検出部104の制御を行う。
The motion vector
動きベクトル検出制御部105は、整数精度動きベクトル検出部103に対して、例えば探索領域302を整数精度で探索する際の探索候補を制御する。
For example, the motion vector
また、動きベクトル検出制御部105は、小数精度動きベクトル検出部104に対して、探索領域画像データメモリ102が記憶している画素値のみを用いて画素値を算出できる小数位置の画素から構成される小数位置の画像ブロックのみおよび整数精度の動きベクトルにより特定される整数位置の画像ブロックの中から探索候補を制御する。
Further, the motion vector
動きベクトル検出制御部105が小数精度動きベクトル検出部104に対して行う制御の第1の例は、符号化対象ブロック303に対して整数精度動きベクトル検出部103が検出する整数精度の動きベクトルにより特定される整数位置の画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に探索領域画像データメモリ102が記憶している画像領域の外の画素の画素値が必要な場合、その小数位置の画素を含む画像ブロックを前記探索候補から除外する制御である。
A first example of control performed by the motion vector
また、動きベクトル検出制御部105が小数精度動きベクトル検出部104に対して行う制御の第2の例は、符号化対象ブロック303に対して整数精度動きベクトル検出部103が検出する整数精度の動きベクトルにより特定される整数位置の画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に探索領域画像データメモリ102が記憶している画像領域の外の画素の画素値が必要な場合、その小数位置の画素の画素値を探索領域画像データメモリ102が記憶している画素値から算出する制御である。
A second example of control performed by the motion vector
なお、動きベクトル検出制御部105の機能は、整数精度動きベクトル検出部103および小数精度動きベクトル検出部104がそれぞれ備えても構わない。
Note that the function of the motion vector
この場合、例えば整数精度動きベクトル検出部103は、探索領域に含まれる整数位置の画素から構成される整数位置の画像ブロックのうち、符号化対象ブロックと最も近似する画像ブロックを探索することにより、当該符号化対象ブロックの整数精度の動きベクトルを検出する。
In this case, for example, the integer precision motion
また、例えば小数精度動きベクトル検出部104は、整数精度の動きベクトルにより特定される画像ブロックに含まれる整数位置の画素の周囲に位置する小数位置の画素から構成される小数位置の画像ブロックのうち、探索領域画像データメモリ102が記憶している画素値のみを用いて画素値を算出できる小数位置の画素から構成される小数位置の画像ブロックのみおよび前記整数精度の動きベクトルにより特定される整数位置の画像ブロックを探索候補として動きベクトルを検出する。
Further, for example, the decimal precision motion
このように動きベクトルを検出することによって、探索領域画像データメモリ102が記憶している画素値のみを使用することができる。そのため、消費電力の増加や回路規模の増大をさせることなく動きベクトルを検出することが可能となる。
By detecting the motion vector in this way, only the pixel value stored in the search area
図2は、動画像符号化装置100に含まれる符号化部106の構成を示すブロック図である。符号化部は106、入力画像、ローカルデコード画像および動きベクトル検出部107により検出された動きベクトルを用いて、符号化された画像データのストリームを出力する。
FIG. 2 is a block diagram illustrating a configuration of the
符号化部106は、面内予測部201、動き補償部202、差分演算部203、直交変換部204、量子化部205、逆量子化部206、逆直交変換部207、加算部208、スイッチ209、およびエントロピー符号化部210を備える。
The
ピクチャ画像データメモリ101および動きベクトル検出部107は、図1および図2に共通する部位であるため同じ参照符号を付しており、ここでの説明は省略する。
Since the picture
入力画像は、圧縮前の画像である。入力画像は、面内予測部201、ピクチャ画像データメモリ101、および差分演算部203に入力される。
The input image is an image before compression. The input image is input to the in-
動き補償部202は、動きベクトルとローカルデコード画像とを用いて予測画像を生成する。動き補償部202は、動きベクトル検出部107によって検出された動きベクトルを取得し、ピクチャ画像データメモリ101に格納されているローカルデコード画面から予測画像の生成に最適な画像領域を取り出し、取り出した画像領域に動きベクトルを適用して予測画像を生成する。
The
面内予測部201は、同一画面内の画素値を用いて予測画像を生成する。面内予測部201は、入力画像およびローカルデコード画像の画素値を用いて面内予測を行うことにより、予測画像を生成する。
The in-
スイッチ209は、データの入力元の切り替えを行う。スイッチ209は、差分器203および加算器208に入力するデータを、面内予測および面間予測のいずれかに切り替える。
The
差分演算部203は、入力された二つの画像の差分を計算する。差分演算部203は、入力画像に含まれる画素の画素値および予測画像に含まれる画素の画素値の差分を算出し、直交変換部204に出力する。
The
直交変換部204は、画像データを周波数係数に変換する。直交変換部204は、差分演算部203より入力された差分値を周波数係数に変換し、量子化部205に出力する。
The
量子化部205は、周波数係数の量子化を行う。量子化部205は、直行変換部204から入力された周波数係数を量子化し、量子化値をエントロピー符号化部210に出力する。
The quantization unit 205 quantizes the frequency coefficient. The quantization unit 205 quantizes the frequency coefficient input from the
逆量子化部206は、逆量子化を行う。逆量子化部206は、量子化部205から入力された量子化値を逆量子化することにより周波数係数に復元し、逆直交変換部207に出力する。
The
逆直交変換部207は、周波数係数を画素値に変換する。逆直行変換部207は、逆量子化部206から入力された周波数係数を逆周波数変換することで画素差分値に変換し、その画素差分値を加算部208に出力する。
The inverse
加算部208は、入力された2つの画像データの加算することにより画像データを生成する。加算器208は、スイッチ209の切り換えに従って面内予測部201および動き補償部202のいずれかから出力される予測画像と画素差分値とを加算し、ローカルデコード画像を生成する。
The
エントロピー符号化部210は、エントロピー符号化の処理を行う。エントロピー符号化部210は、量子化値および動きベクトル等をエントロピー符号化し、それにより得られるストリームを出力する。
The
次に、このように構成された動きベクトル検出部107を備えた動画像符号化装置100において実行される処理について、図4を参照して説明する。
Next, processing executed in the moving
図4は、本実施の形態に係る動きベクトル検出部107を備える動画像符号化装置100において実行される処理のフローチャートである。
FIG. 4 is a flowchart of processing executed in the
まず、ピクチャ画像データメモリ101は、入力画像である符号化対象ピクチャの画像データ受け付けて、その受け付けた画像データを格納する(S401)。
First, the picture
次に、ピクチャ画像データメモリ101は、符号化部106によってローカルデコードされた参照ピクチャの画像データを符号化部106から受け付けて格納する(S402)。
Next, the picture
次に、探索領域画像データメモリ102は、ピクチャ画像データメモリ101から転送される符号化対象ブロック303を格納する(S403)。
Next, the search area
次に、探索領域画像データメモリ102は、参照ピクチャ301の一部に設定された探索領域302の画像データを格納する(S404)。
Next, the search area
次に、整数精度動きベクトル検出部103および小数精度動きベクトル検出部104は、動きベクトル検出制御部105による制御のもと、動きベクトルの検出を行う(S405)。動きベクトル検出処理(S405)の詳細について、図5から図10までを参照して以下に説明する。
Next, the integer accuracy motion
まず、図5から図7に示す処理において、動きベクトル検出制御部105は、整数精度動きベクトル検出部103により探索された整数位置の画像ブロックの内部および周囲にある小数位置の画素から構成される複数の小数位置の画像ブロックの中に、画素値の算出に探索領域画像データメモリ102が記憶している領域外の画素の画素値が必要となる画素を含む画像ブロックがある場合に、その画像ブロックを探索候補から除外する。以下、図5から図7を参照して、動きベクトル検出部107が行う処理を説明する。
First, in the processing shown in FIGS. 5 to 7, the motion vector
図5は、図4に示す動きベクトル検出処理S405の詳細の第1の例を示すフローチャートである。図5に示す処理において、動きベクトル検出制御部105が行う制御は、符号化対象ブロックに対して整数精度動きベクトル検出部103が検出する整数精度の動きベクトルにより特定される整数位置の画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に探索領域画像データメモリ102が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素を含む画像ブロックを探索候補から除外する制御である。
FIG. 5 is a flowchart showing a first example of the details of the motion vector detection processing S405 shown in FIG. In the processing shown in FIG. 5, the control performed by the motion vector
整数精度動きベクトル検出部103は、動きベクトル検出制御部105の制御にしたがって、探索領域画像データメモリ102が記憶している探索領域から、符号化対象ブロックに最も近似する画像ブロックの位置を1画素精度で探索し、その位置から整数精度の動きベクトルを検出する(S501)。
The integer precision motion
次に、動きベクトル検出制御部105は、整数精度動きベクトル検出部103により探索された画像ブロックおよびその画像ブロックの周囲に位置する小数位置の画素から構成される画像ブロックを探索候補になり得る画像ブロックとして、各々についてS503からS504の処理を行う(S502)。
Next, the motion vector
次に、動きベクトル検出制御部105は、小数位置の画素値の算出に探索領域に含まれない画素値が必要か否かを判断する(S503)。この処理により、整数精度動きベクトル検出部103から得られる整数位置の画素の周囲にある小数位置の画素を含む画像ブロックを動きベクトルの候補から除外するか否かが決定される。
Next, the motion vector
次に、動きベクトル制御部105が小数位置の画素値の算出に探索領域に含まれない画素値が必要でないと判断すると(S503でNo)、小数精度動きベクトル検出部104は、かかる判断を受けて当該小数位置の画素値を含む小数位置の画像ブロックを動きベクトル探索の候補とし、動きベクトルの評価値を算出する。(S504)
Next, when the motion
また、動きベクトル制御部105が小数位置の画素値の算出に探索領域に含まれない画素値が必要であると判断すると(S503でYes)、小数精度動きベクトル検出部104は、かかる判断を受けて当該小数位置の画素値を含む小数位置の画像ブロックを動きベクトル探索の候補から除外する。そのため、その小数位置の画像ブロックについて動きベクトルの評価値は、算出されない。
If the motion
ここで、評価値とは、符号化対象ブロックと探索領域内の画像ブロックとがどれくらい近似しているかを数値化したものである。例えば、符号化対象ブロックに含まれる画素の画素値と探索領域内の画像ブロックに含まれる画素の画素値との差の絶対値の合計である。 Here, the evaluation value is a numerical value representing how close the encoding target block and the image block in the search area are. For example, it is the sum of absolute values of differences between pixel values of pixels included in the encoding target block and pixel values of pixels included in the image block in the search area.
次に、小数精度動きベクトル検出部104は、評価値が最小となる動きベクトルを、検出された動きベクトルとして出力する。(S505)
Next, the decimal precision motion
以下、図11を参照して、図5に示す処理において、動きベクトル検出制御部105が行う制御の具体例を説明する。ここでの補間方法は、6TAPフィルタであるとする。
Hereinafter, a specific example of the control performed by the motion vector
まず、例えば、整数精度動きベクトル検出処理において(S501)、a(4,4)を左上角に含む整数位置の画像ブロックを示す動きベクトルが整数精度動きベクトル検出部103により検出されると、小数精度動きベクトル検出部104において候補となり得る画像ブロックは、a(3,3)、a(4,3)、a(5,3)、a(3,4)、a(4,4)、a(5,4)、a(3,5)、a(4,5)、a(5,5)の9点をそれぞれ左上角に含む9個の画像ブロックである。動きベクトル検出制御部105は、探索候補となり得るこれらの画像ブロックについて、S503およびS504の処理を繰り返す(S502)。
First, for example, in the integer precision motion vector detection process (S501), when a motion vector indicating an image block at an integer position including a (4,4) in the upper left corner is detected by the integer precision motion
動きベクトル検出制御部105は、各画像ブロックに含まれる画素の全てについて、小数位置の画素値の算出に探索領域に含まれない画素値が必要か否かを判断する(S503)。
The motion vector
これらの9点のうち、a(5,4)、a(4,5)、a(5,5)の3点をそれぞれ左上角に含む画像ブロックは、探索領域内の画素値のみから6TAPフィルタを用いて小数位置の画素値を算出することができる(S503でNo)。また、上記の9点のうち、a(3,3)、a(4,3)、a(5,3)、a(3,4)、a(3,5)の5点は、探索領域内の画素値のみから6TAPフィルタを用いて小数位置の画素値を算出することができない(S503でYes)。そのため、小数精度動きベクトル検出部104は、a(5,4)、a(4,5)、a(5,5)にa(4,4)を加えた、4点のそれぞれを左上角に含む4個の画像ブロックについて評価値を計算する(S504)。小数精度動きベクトル検出部104は、評価値が最小のブロックが示す位置と符号化対象ブロックの位置とから動きベクトルを検出する(S505)。
Among these nine points, an image block that includes three points a (5,4), a (4,5), and a (5,5) in the upper left corner is a 6TAP filter based only on the pixel values in the search area. Can be used to calculate the pixel value at the decimal position (No in S503). Of the nine points above, five points a (3,3), a (4,3), a (5,3), a (3,4), a (3,5) The pixel value at the decimal position cannot be calculated from the pixel value alone using the 6TAP filter (Yes in S503). Therefore, the decimal precision motion
次に、例えば整数精度動きベクトル検出処理において(S501)、a(2,2)を左上角に含む整数位置の画像ブロックを示す動きベクトルが整数精度動きベクトル検出部103により検出されると、a(2,2)の周囲にある8点の小数位置の画素を左上角に含む小数位置の画像ブロックについて、S503およびS504の処理を繰り返す(S502)。
Next, for example, in the integer precision motion vector detection process (S501), when the motion vector indicating the image block at the integer position including a (2,2) in the upper left corner is detected by the integer precision motion
a(2,2)の周囲にある8点の小数位置の画素値の算出に、探索領域外の整数位置の画素値が必要となる(S503でYes)。そのためS502の繰り返し処理の結果、探索候補は、a(2,2)を左上角に含む画像ブロックのみとなり、小数精度動きベクトル検出部104は、そのブロックの位置から動きベクトルを検出する(S505)。
The pixel values at the integer positions outside the search area are required to calculate the pixel values at the eight decimal positions around a (2,2) (Yes in S503). Therefore, as a result of the iterative process in S502, search candidates are only image blocks including a (2,2) in the upper left corner, and the decimal precision motion
図6は、図4に示す動きベクトル検出処理S405の詳細の第2の例を示すフローチャートである。図6に示す処理において、動きベクトル検出制御部105が行う制御は、符号化対象ブロックに対して整数精度動きベクトル検出部103が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、探索領域画像データメモリ102が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素を含む画像ブロックを探索候補から除外し、さらに、当該符号化対象ブロックについて、すべての当該小数位置の画像ブロックを探索候補から除外する制御である。
FIG. 6 is a flowchart showing a second example of details of the motion vector detection process S405 shown in FIG. In the processing shown in FIG. 6, the control performed by the motion vector
すなわち、図6に示す処理において動きベクトル検出制御部105は、上記の場合に、整数精度動きベクトル検出部103の結果を、本発明に係る動きベクトル検出部107により検出された動きベクトルとする制御を行う。
That is, in the process shown in FIG. 6, in the above case, the motion vector
整数精度動きベクトル検出部103は、動きベクトルを整数精度で検出する(S601)。この処理は、図5に示すS501と同じであるため、詳細は省略する。
The integer precision motion
次に、動きベクトル検出制御部105は、整数精度で検出された画像ブロックの内部および周囲に位置する小数位置の画素から構成される8個の小数位置の画像ブロックに含まれる全ての画素について、画素値の算出に探索領域に含まれない画素値が必要か否かを判断する(S602)。
Next, the motion vector
次に、動きベクトル制御部105が、上記の8個の画像ブロックに含まれる画素の全てについて、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要でないと判断すると(S602でNo)、小数精度動きベクトル検出部104は、かかる判断を受けて、各画像ブロックの評価値を算出し、評価値が最小となる画像ブロックの位置から動きベクトルを検出する(S603)。
Next, when the motion
また、動きベクトル制御部105が、上記の8個の画像ブロックに含まれる画素のうちの1点でも画素値の算出に探索領域に含まれない整数位置の画素値が必要であると判断すると(S602でYes)、小数精度動きベクトル検出部104は、かかる判断を受けて、整数精度動きベクトル検出部103が検出した動きベクトルを検出された動きベクトルとして出力する(S604)。
Further, when the motion
図11を参照して、図6に示す処理において、動きベクトル検出制御部105が行う制御の具体例を説明する。ここでの補間方法は、6TAPフィルタであるとする。
A specific example of control performed by the motion vector
まず、例えば整数精度動きベクトル検出部103が実行する整数精度動きベクトル検出処理において(S601)、a(6,6)を左上角に含む整数位置の画像ブロックを示す動きベクトルが整数精度動きベクトル検出部103により検出された場合の処理について説明する。a(6,6)の周囲に位置する8個の小数位置の画素は、a(5,5)、a(6,5)、a(7,5)、a(5,6)、a(7,6)、a(5,7)、a(6,7)、a(7,7)の8点である。動きベクトル検出制御部105は、これら8点を左上角に含む8個の小数位置の画像ブロックに含まれる全ての画素について、それらの画素値の算出に探索領域に含まれない整数位置の画素値が必要でないか否かを判断する(S602)。
First, for example, in integer precision motion vector detection processing executed by the integer precision motion vector detection unit 103 (S601), a motion vector indicating an image block at an integer position including a (6,6) in the upper left corner is detected as an integer precision motion vector. A process when detected by the
これらの8点を左上角に含む8個の画像ブロックに含まれる全ての画素の画素値は、探索領域内の画素値のみから6TAPフィルタを用いて小数位置の画素値を算出することができる。そのため、動きベクトル検出制御部105は、整数精度動きベクトル検出部103が検出した整数位置の画像ブロックの周囲に位置する小数位置の画素から構成される8個の画像ブロックに含まれる画素の全てについて、画素値の算出に探索領域に含まれない整数位置の画素値が必要でないと判断する(S602でNo)。
The pixel values of all the pixels included in the eight image blocks including these eight points in the upper left corner can be calculated from the pixel values only in the search region using the 6TAP filter. For this reason, the motion vector
かかる判断を受けた小数精度動きベクトル検出部104は、上記の8個の小数位置の画像ブロックにa(6,6) を左上角に含む整数位置の画像ブロックを加えた、9個の画像ブロックについて評価値を計算し、評価値が最小となるブロックの位置と符号化対象ブロックの位置とから動きベクトルを検出する(S603)。
The decimal precision motion
次に、例えば整数精度動きベクトル検出部103が実行する整数精度動きベクトル検出処理において(S601)、a(4,4) を左上角に含む整数位置の画像ブロックを示す動きベクトルが整数精度動きベクトル検出部103により検出された場合の処理について説明する。a(4,4)の周囲に位置する8個の小数位置の画素は、a(3,3)、a(4,3)、a(5,3)、a(3,4)、a(5,4)、a(3,5)、a(4,5)、a(5,5)の8点である。これらの8点のうち、a(3,3)、a(4,3)、a(5,3)、a(3,4)、a(3,5)の5点は、探索領域内の画素値のみから6TAPフィルタを用いて小数位置の画素値を算出することができない。
Next, for example, in the integer precision motion vector detection processing executed by the integer precision motion vector detection unit 103 (S601), a motion vector indicating an image block at an integer position including a (4,4) in the upper left corner is an integer precision motion vector. Processing when detected by the
そのため、動きベクトル検出制御部105は、整数精度動きベクトル検出部103が検出した整数位置の画素の周囲に位置する小数位置の画素値の算出に探索領域に含まれない整数位置の画素値が必要であると判断する(S602でYes)。
Therefore, the motion vector
かかる判断を受けた小数精度動きベクトル検出部104は、整数精度動きベクトル検出部103が検出したa(4,4)を左上角に含む画像ブロックが示す位置と符号化対象ブロックの位置とから動きベクトルを検出する(S604)。
The decimal precision motion
図7は、図4に示す動きベクトル検出処理S405の詳細の第3の例を示すフローチャートである。図7に示す処理において、動きベクトル検出制御部105が行う制御は、符号化対象ブロックに対して整数精度動きベクトル検出部103が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、探索領域画像データメモリ102が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素を含む画像ブロックを探索候補から除外し、さらに、当該符号化対象ブロックについて、すべての小数位置の画像ブロックを探索候補から除外し、さらに、当該符号化対象ブロックについて、整数位置の画像ブロックを探索候補から除外する制御である。
FIG. 7 is a flowchart illustrating a third example of details of the motion vector detection process S405 illustrated in FIG. In the processing shown in FIG. 7, the control performed by the motion vector
整数精度動きベクトル検出部103は、動きベクトルを整数精度で検出する(S701)。この処理は、図5に示すS501と同じであるため、詳細は省略する。
The integer precision motion
次に、動きベクトル検出制御部105は、整数精度で検出された画像ブロックの内部および周囲に位置する小数位置の画素から構成される8個の小数位置の画像ブロックに含まれる全ての画素について、画素値の算出に探索領域に含まれない画素値が必要か否かを判断する(S702)。
Next, the motion vector
次に、動きベクトル制御部105が、上記の8個の画像ブロックに含まれる画素の全てについて、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要でないと判断すると(S702でNo)、小数精度動きベクトル検出部104は、かかる判断を受けて、各画像ブロックの評価値を算出し、評価値が最小となる画像ブロックの位置から動きベクトルを検出する(S703)。
Next, when the motion
また、動きベクトル制御部105が、上記の8個の画像ブロックに含まれる画素のうちの1点でも画素値の算出に探索領域に含まれない整数位置の画素値が必要であると判断すると(S702でYes)、小数精度動きベクトル検出部104は、かかる判断を受けて、動きベクトルを検出しない(S704)。
Further, when the motion
図11を参照して、図7に示す処理において、動きベクトル検出制御部105が行う制御の具体例を説明する。ここでの補間方法は、6TAPフィルタであるとする。
A specific example of control performed by the motion vector
まず、例えば整数精度動きベクトル検出部103が実行する整数精度動きベクトル検出処理において(S701)、a(6,6)を左上角に含む整数位置の画像ブロックを示す動きベクトルが整数精度動きベクトル検出部103により検出された場合の処理は(S702でNoの後、S703)、動きベクトル検出制御部105が図6に示す制御を行う例において、a(6,6)を左上角に含む整数位置の画像ブロックを示す動きベクトルが整数精度動きベクトル検出部103により検出された場合の処理(S602でNoの後、S603)と同じである。
First, for example, in integer precision motion vector detection processing executed by the integer precision motion vector detection unit 103 (S701), a motion vector indicating an image block at an integer position including a (6,6) in the upper left corner is detected as an integer precision motion vector. The processing in the case of being detected by the unit 103 (after No in S702, S703), in the example in which the motion vector
次に、例えば整数精度動きベクトル検出部103が実行する整数精度動きベクトル検出処理において(S701)、a(4,4)を左上角に含む整数位置の画像ブロックを示す動きベクトルが整数精度動きベクトル検出部103により検出された場合の処理について説明する。a(4,4)の周囲に位置する8個の小数位置の画素は、a(3,3)、a(4,3)、a(5,3)、a(3,4)、a(5,4)、a(3,5)、a(4,5)、a(5,5)の8点である。これらの8点のうち、a(3,3)、a(4,3)、a(5,3)、a(3,4)、a(3,5)の5点は、探索領域内の画素値のみから6TAPフィルタを用いて小数位置の画素値を算出することができない。
Next, for example, in integer precision motion vector detection processing executed by the integer precision motion vector detection unit 103 (S701), a motion vector indicating an image block at an integer position including a (4,4) in the upper left corner is an integer precision motion vector. Processing when detected by the
そのため、動きベクトル検出制御部105は、整数精度動きベクトル検出部103が検出した整数位置の画素の周囲に位置する8個の小数位置の画像ブロックに含まれる全ての小数位置の画素について、画素値の算出に探索領域に含まれない整数位置の画素値が必要であると判断する(S702でYes)。
Therefore, the motion vector
かかる判断をした動きベクトル検出制御部105は、当該符号化対象ブロックについて一切の画像ブロックを探索候補から除外する。そのため、小数精度動きベクトル検出部104による動きベクトルの検出は禁止される(S704)。
The motion vector
以上のように動きベクトル検出部107が図5から図7に示す処理を実行することにより、小数精度動きベクトル検出部104は、探索候補を制限されない限り小数精度の動きベクトルを探索することができる。また、探索候補を制限することにより動きベクトルの検出は、探索領域画像データメモリ102が記憶している画像領域に含まれる画素値のみを用いて行われる。そのため、消費電力の増加や回路規模の増加を抑えながら、圧縮画像の画質や符号化効率の向上を図ることが可能となる。
As described above, the motion
次に、図8から図10に示す処理において、動きベクトル検出制御部105は、整数精度動きベクトル検出部103により検出された整数位置の画像ブロックの内部および周囲にある小数位置の画素から構成される複数の小数位置の画像ブロックの中に、画素値の算出に探索領域画像データメモリ102が記憶している領域外の画素の画素値が必要となる画素を含む画像ブロックがある場合に、補間に用いる整数画素の画素数を調整する制御や不足する画素値に探索領域画像データメモリ102が記憶している画素値を代用する制御を行う。
Next, in the processing shown in FIGS. 8 to 10, the motion vector
このような動きベクトル検出制御部105の制御により、小数精度動きベクトル検出部104は、全ての小数位置の画素値を探索領域画像データメモリ102が記憶している画素値から算出する。以下、図8から図10を参照しながら、動きベクトル検出部107が行う処理を説明する。
Under such control of the motion vector
図8は、図4に示す動きベクトル検出処理S405の詳細の第4の例を示すフローチャートである。図8に示す処理において、動きベクトル検出制御部105が行う制御は、符号化対象ブロックに対して整数精度動きベクトル検出部103が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、探索領域画像データメモリ102が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素の画素値の算出に用いる画素数を、探索領域画像データメモリ102が記憶している画素値から取得できる画素数に減らすことにより前記小数位置の画素値を算出する制御である。
FIG. 8 is a flowchart showing a fourth example of details of the motion vector detection processing S405 shown in FIG. In the processing shown in FIG. 8, the control performed by the motion vector
整数精度動きベクトル検出部103は、動きベクトルを整数精度で検出する(S801)。この処理は、図5に示すS501と同じであるため、詳細は省略する。
The integer precision motion
次に、動きベクトル検出制御部105は、整数精度で検出された画像ブロックの内部および周囲に位置する小数位置の画素から構成される8個の小数位置の画像ブロックに含まれる各画素について、画素値の算出に探索領域に含まれない画素値が必要か否かを判断する(S802)。
Next, the motion vector
次に、動きベクトル制御部105が、上記の8個の小数位置の画像ブロックに含まれる画素について、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要でないと判断すると(S802でNo)、小数精度動きベクトル検出部104は、かかる判断を受けて、所定のTAP数を用いてその画素の画素値を算出する(S803)。
Next, when the motion
また、動きベクトル制御部105が、上記の8個の画像ブロックに含まれる画素について、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要であると判断すると(S802でYes)、その画素について、TAP数を所定のTAP数より少なくすることにより、画素値を算出する。
If the motion
さらに、小数精度動きベクトル検出部104は、算出された小数位置の画素値を用いて各動きベクトルの評価値を算出し、評価値が最小となる動きベクトルを検出された動きベクトルとして出力する(S804)。
Further, the decimal precision motion
図11を参照して、図8に示す動きベクトル検出処理S5において、動きベクトル検出制御部105が行う制御の具体例を説明する。ここでの補間方法は、6TAPフィルタを使用し、6TAPフィルタを使用できない場合、4TAPフィルタまたは2TAPフィルタを使用するとする。
A specific example of control performed by the motion vector
まず、例えば整数精度動きベクトル検出部103が実行する整数精度動きベクトル検出処理において(S801)、a(6,6)を左上角に含む整数位置の画像ブロックを示す動きベクトルが整数精度動きベクトル検出部103により検出された場合の処理について説明する。a(6,6)の周囲に位置する8個の小数位置の画素は、a(5,5)、a(6,5)、a(7,5)、a(5,6)、a(7,6)、a(5,7)、a(6,7)、a(7,7)の8点である。動きベクトル検出制御部105は、これら8点を左上角に含む8個の小数位置の画像ブロックを探索候補とし、各探索候補に含まれる各画素について、それらの画素値の算出に探索領域に含まれない整数位置の画素値が必要でないか否かを判断する(S802)。
First, in integer precision motion vector detection processing executed by, for example, the integer precision motion vector detection unit 103 (S801), a motion vector indicating an image block at an integer position including a (6,6) in the upper left corner is detected as an integer precision motion vector. A process when detected by the
これらの8点を左上角に含む8個の小数位置の画像ブロックに含まれる各画素は、探索領域内の画素値のみから6TAPフィルタを用いて小数位置の画素値を算出することができる。そのため、動きベクトル検出制御部105は、これらの各画素について、画素値の算出に探索領域に含まれない整数位置の画素値が必要でないと判断する(S802でNo)。かかる判断を受けた小数精度動きベクトル検出部104は、各画素の画素値を6TAPフィルタを用いて算出し、上記の8点を左上角に含む小数位置の画像ブロックにa(6,6)を左上角に含む整数位置の画像ブロックを加えた9個の画像ブロックの評価値を計算し、評価値が最小となる画像ブロックの位置と符号化対象ブロックの位置とから動きベクトルを検出する(S804)。
With respect to each pixel included in the eight decimal position image blocks including the eight points in the upper left corner, the pixel value of the decimal position can be calculated from only the pixel value in the search region using the 6TAP filter. Therefore, the motion vector
次に、例えば整数精度動きベクトル検出部103が実行する整数精度動きベクトル検出処理において(S801)、a(4,4)を左上角に含む整数位置の画像ブロックを示す動きベクトルが整数精度動きベクトル検出部103により検出された場合の処理について説明する。a(4,4)の周囲に位置する8個の小数位置の画素は、a(3,3)、a(4,3)、a(5,3)、a(3,4)、a(5,4)、a(3,5)、a(4,5)、a(5,5)の8点である。これらの8点のうち、a(3,3)、a(4,3)、a(5,3)、a(3,4)、a(3,5)の5点は、探索領域内の画素値のみから6TAPフィルタを用いて小数位置の画素値を算出することができない。そのため、動きベクトル検出制御部105は、画素値の算出に探索領域に含まれない整数位置の画素値が必要であると判断する(S802でYes)。かかる判断をした動きベクトル検出制御部105は、フィルタのTAP数を調整する(S803)。
Next, for example, in integer precision motion vector detection processing executed by the integer precision motion vector detection unit 103 (S801), a motion vector indicating an image block at an integer position including a (4,4) in the upper left corner is an integer precision motion vector. Processing when detected by the
各画素におけるTAP数の具体的な調整方法について、説明する。
a(3,3)、a(4,3)、a(5,3)、a(3,4)、a(3,5)の5点については6TAPフィルタにより補間できない。このため、動きベクトル検出制御部105は、これら5点の補間を可能とする4TAPフィルタをa(3,3)、a(4,3)、a(5,3)、a(3,4)、a(5,4)、a(3,5)、a(4,5)、a(5,5)の8点全てにおいて用いるように、小数精度動きベクトル検出部104を制御する。
A specific method for adjusting the number of TAPs in each pixel will be described.
The 5 points a (3,3), a (4,3), a (5,3), a (3,4), a (3,5) cannot be interpolated by the 6TAP filter. For this reason, the motion vector
また、例えば、a(1,2)に位置する画素の画素値を求める場合、動きベクトル検出制御部105は、2TAPフィルタを用いるように小数精度動きベクトル検出部104を制御する。探索領域画像データメモリ102が記憶している画素値からa(1,2)の算出に使用できる整数位置の画素の画素値は、a(0,2)およびa(2,2)に限られており、6TAPフィルタも4TAPフィルタも用いることができないためである。このように、フィルタのTAP数は、算出する小数位置の画素の画素値に使用可能な整数位置の画素の画素値が、どれだけ探索領域画像データメモリ102に格納されているかにより、決定される。
For example, when obtaining the pixel value of the pixel located at a (1, 2), the motion vector
図9は、図4に示す動きベクトル検出処理S405の詳細の第5の例を示すフローチャートである。図9に示す処理において、動きベクトル検出制御部105が行う制御は、符号化対象ブロックに対して整数精度動きベクトル検出部103が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、探索領域画像データメモリ102が記憶している画像領域の外の画素の画素値が必要な場合、その小数位置の画素値を算出するために必要な、探索領域画像データメモリ102が記憶している領域の外に位置する画素の画素値に、画像領域の外に位置する画素の最も近くに位置する画像領域内の画素値を代用して、その小数位置の画素値を算出する制御である。
FIG. 9 is a flowchart illustrating a fifth example of details of the motion vector detection process S405 illustrated in FIG. In the process shown in FIG. 9, the control performed by the motion vector
整数精度動きベクトル検出部103は、動きベクトルを整数精度で検出する(S901)。この処理は、図5に示すS501と同じであるため、詳細は省略する。
The integer precision motion
次に、動きベクトル検出制御部105がS902において行う判断処理は、図8に示すS802と同じであるため、詳細は省略する。
Next, the determination process performed by the motion vector
次に、動きベクトル制御部105が、整数精度で検出された画像ブロックの周囲に位置する8個の小数位置の画像ブロックに含まれる画素について、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要でないと判断すると(S902でNo)、小数精度動きベクトル検出部104は、かかる判断を受けて、その画素の画素値を算出する(S904)。
Next, for the pixels included in the image blocks at the eight decimal positions positioned around the image block detected with integer precision, the motion
また、動きベクトル制御部105が、上記の8個の画像ブロックに含まれる画素について、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要であると判断すると(S902でYes)、小数精度動きベクトル検出部104は、その小数位置の画素値の算出に必要な探索領域外の整数位置の画素値に、探索領域画像データメモリ102に記憶されている整数位置の画素値を代用することにより、画素値を算出する。
If the motion
ここで、代用される画素値は、小数位置の画素値算出に必要である領域外の整数位置の画素から最も近い、探索領域内の境界に位置する整数画素値である。 Here, the pixel value to be substituted is an integer pixel value located at the boundary in the search area closest to the pixel at the integer position outside the area necessary for calculating the pixel value at the decimal position.
さらに、小数精度動きベクトル検出部104は、算出された小数位置の画素値を用いて動きベクトルの評価値を算出し、評価値が最小となる動きベクトルを検出された動きベクトルとして出力する(S904)。
Further, the decimal precision motion
図11を参照して、図9に示す動きベクトル検出処理S505において、動きベクトル検出制御部105が行う制御の具体例を説明する。ここでの補間方法は、6TAPフィルタであるとする。
A specific example of control performed by the motion vector
まず、例えば整数精度動きベクトル検出部103が実行する整数精度動きベクトル検出処理において(S901)、a(6,6)を左上角に含む整数位置の画像ブロックを示す動きベクトルが整数精度動きベクトル検出部103により検出された場合の処理は(S902でNoの後、S904)、図8に示すS801においてa(6,6)を左上角に含む整数位置の画像ブロックを示す動きベクトルが整数精度動きベクトル検出部103により検出された場合の処理(S802でNoの後、S804)と同じである。 First, for example, in integer precision motion vector detection processing executed by the integer precision motion vector detection unit 103 (S901), a motion vector indicating an image block at an integer position including a (6,6) in the upper left corner is detected as an integer precision motion vector. The processing in the case of being detected by the unit 103 (after No in S902, S904), in S801 shown in FIG. 8, the motion vector indicating the image block at the integer position including a (6,6) in the upper left corner is an integer precision motion. This is the same as the processing when it is detected by the vector detection unit 103 (No in S802, then S804).
次に、例えば整数精度動きベクトル検出部103が実行する整数精度動きベクトル検出処理において(S901)、a(4,4)を左上角に含む整数位置の画像ブロックを示す動きベクトルが整数精度動きベクトル検出部103により検出された場合の処理について説明する。
Next, for example, in integer precision motion vector detection processing executed by the integer precision motion vector detection unit 103 (S901), a motion vector indicating an image block at an integer position including a (4,4) in the upper left corner is an integer precision motion vector. Processing when detected by the
a(4,4)の周囲に位置する8個の小数位置の画素は、a(3,3)、a(4,3)、a(5,3)、a(3,4)、a(5,4)、a(3,5)、a(4,5)、a(5,5)の8点である。これらの8点のうち、a(3,3)、a(4,3)、a(5,3)、a(3,4)、a(3,5)の5点は、探索領域内の画素値のみでは6TAPフィルタを用いて小数位置の画素値を算出することができない。そのため、動きベクトル検出制御部105は、これらの5つの各画素について、画素値の算出に探索領域に含まれない整数位置の画素値が必要であると判断する(S902でYes)。
The eight decimal pixels located around a (4,4) are a (3,3), a (4,3), a (5,3), a (3,4), a ( 5,4), a (3,5), a (4,5), a (5,5). Of these 8 points, 5 points a (3,3), a (4,3), a (5,3), a (3,4), a (3,5) are within the search area. With only the pixel value, the pixel value at the decimal position cannot be calculated using the 6TAP filter. Therefore, the motion vector
かかる判断をした動きベクトル検出制御部105は、必要となる探索領域外の画素値に、その画素に最も近い探索領域の境界に位置する画素値を代用する(S903)。必要となる探索領域外の画素に最も近い領域内の画素とは、必要となる探索領域外の画素から探索領域の境界に下ろした垂線と探索領域の境界線との交点の間際に位置する、領域内の画素のことである。
The motion vector
例えば、a(3,4)の画素値を算出するには、a(-2,4)、a(0,4)、a(2,4)、a(4,4)、a(6,4)、a(8,4)の画素値が必要となる。しかし、a(-2,4)は、探索領域外の画素である。そこで動きベクトル検出制御部105は、a(-2,4)の画素値として、a(-2,4)に最も近い探索領域内の画素であるa(0,4)の画素値を代用する(S903)。a(3,3)、a(4,3)、a(5,3)、a(3,5)についても同様である。
For example, to calculate the pixel value of a (3,4), a (-2,4), a (0,4), a (2,4), a (4,4), a (6, 4) The pixel value of a (8,4) is required. However, a (−2, 4) is a pixel outside the search area. Therefore, the motion vector
さらに動きベクトル検出制御部105が実行する境界値の代用処理(S903)について、a(1,2)の画素値の算出を例に説明する。a(1,2)の画素値を算出するには、a(-4,2)、a(-2,2)、a(0,2)、a(2,2)、a(4,2)、a(6,2)の画素値が必要となる。しかし、a(-2,4)およびa(-2,2)は、探索領域外の画素である。そこで動きベクトル検出制御部105は、a(-2,4) およびa(-2,2)の画素値として、a(-2,4)およびa(-2,2)のそれぞれに最も近い探索領域内の画素であるa(0,2)の画素値を代用する(S903)。
Further, calculation of the pixel value of a (1, 2) will be described as an example of the boundary value substitution process (S903) executed by the motion vector
図10は、図4に示す動きベクトル検出処理S405の詳細の第6の例を示すフローチャートである。図10に示す処理において、動きベクトル検出制御部105が行う制御は、符号化対象ブロックに対して整数精度動きベクトル検出部103が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、探索領域画像データメモリ102が記憶している画像領域の外の画素の画素値が必要な場合、その小数位置の画素値を算出するために必要な、探索領域画像データメモリ102が記憶している画像領域の外に位置する画素の画素値に、画像領域の外に位置する画素とその画素に最も近い領域の境界を挟んで線対称の位置に示される画素値を代用して、その小数位置の画素値を算出する制御である。
FIG. 10 is a flowchart illustrating a sixth example of the details of the motion vector detection processing S405 illustrated in FIG. In the process shown in FIG. 10, the control performed by the motion vector
整数精度動きベクトル検出部103は、動きベクトルを整数精度で検出する(S1001)。この処理は、図5に示すS501と同じであるため、詳細は省略する。
The integer precision motion
次に、動きベクトル検出制御部105がS1002において行う判断処理は、図8に示すS802と同じであるため、詳細は省略する。
Next, the determination process performed by the motion vector
次に、動きベクトル検出制御部105が、整数精度で検出された画像ブロックの周囲に位置する8個の小数位置の画像ブロックに含まれる画素について、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要でないと判断すると(S1002でNo)、小数精度動きベクトル検出部104が、かかる判断を受けて、その画素の画素値を算出することは(S1004)、図9に示すS904において行われる処理と同じである。
Next, an integer that is not included in the search area in the calculation of the pixel value of the motion vector
また、動きベクトル制御部105は、上記の8個の画像ブロックに含まれる画素について、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要であると判断すると(S1002でYes)、小数精度動きベクトル検出部104が代用値を用いて画素値を算出し、動きベクトルを検出することも(S1004)、図9に示すS904において行われる処理と同じである。
In addition, when the motion
本図のS1004における処理と図9のS904における処理との違いは、代用される画素の位置である。 The difference between the process in S1004 in this figure and the process in S904 in FIG. 9 is the position of the pixel to be substituted.
すなわち、図9のS904において動きベクトル検出制御部105が、探索領域画像データメモリ102が記憶していない画素値に代用する画素値は、小数位置の画素値算出に必要である領域外の整数位置の画素に最も近くに位置する、探索画像領域データメモリ102が記憶する領域の境界に位置する画素である。
That is, the pixel value that the motion vector
これに対して、本図のS1004において動きベクトル検出制御部105が、探索領域画像データメモリ102が記憶していない画素値に代用する画素値は、小数位置の画素値算出に必要である領域外の整数位置の画素と、探索画像領域データメモリ102が記憶する領域の境界を挟んで対称な位置にある画素の画素値である。
On the other hand, the pixel value that the motion vector
図11を参照して、図10に示す動きベクトル検出処理S5において、動きベクトル検出制御部105が行う制御の具体例を説明する。ここでの補間方法は、6TAPフィルタであるとする。
A specific example of control performed by the motion vector
これまで、本図の説明で述べたように、本図に示す処理と図9に示す処理との違いは、小数位置の画素の画素値を6TAPフィルタで算出するために必要な画素の画素値を探索領域画像データメモリ102が記憶していない場合、探索領域画像データメモリ102が記憶している領域内のどの位置の画素値を代用するかである。
Up to now, as described in the explanation of this figure, the difference between the process shown in this figure and the process shown in FIG. 9 is that the pixel value of the pixel necessary for calculating the pixel value of the pixel at the decimal position by the 6TAP filter. Is not stored in the search area
すなわち、S1001、S1002およびS1004における処理は、S901、S902およびS904における処理と、それぞれ同じである。そのため、これらの処理の詳細は省略する。 That is, the processes in S1001, S1002, and S1004 are the same as the processes in S901, S902, and S904, respectively. Therefore, details of these processes are omitted.
以下、a(3,4)およびa(1,2)の画素値を算出する場合を例に、どの位置の画素値を代用するかを具体的に説明する。 Hereinafter, a specific description will be given of which pixel value is to be substituted, taking as an example the case where the pixel values of a (3,4) and a (1,2) are calculated.
ます、a(3,4)の画素値を算出する場合について説明する。a(3,4)の画素値を算出するには、a(-2,4)、a(0,4)、a(2,4)、a(4,4)、a(6,4)、a(8,4)の画素値が必要となる。しかし、a(-2,4)は、探索領域外の画素である。そこで動きベクトル検出制御部105は、a(-2,4)の画素値として、a(-2,4)と探索領域内の境界を挟んで対称な位置にある画素であるa(0,4)の画素値を代用する(S1003)。
First, a case where the pixel value of a (3,4) is calculated will be described. To calculate the pixel value of a (3,4), a (-2,4), a (0,4), a (2,4), a (4,4), a (6,4) , A (8,4) pixel value is required. However, a (−2, 4) is a pixel outside the search area. Therefore, the motion vector
次に、a(1,2)の画素値を算出する場合について説明する。a(1,2)の画素値を算出するには、a(-4,2)、a(-2,2)、a(0,2)、a(2,2)、a(4,2)、a(6,2)の画素値が必要となる。しかし、a(-4,2)およびa(-2,2)は、探索領域外の画素である。そこで動きベクトル検出制御部105は、a(-2,2)の画素値として、a(-2,2)と探索領域内の境界を挟んで対称な位置にある画素であるa(0,2)の画素値を代用する(S1003)。
Next, a case where the pixel value of a (1,2) is calculated will be described. To calculate the pixel value of a (1,2), a (-4,2), a (-2,2), a (0,2), a (2,2), a (4,2 ), A (6,2) pixel values are required. However, a (-4,2) and a (-2,2) are pixels outside the search area. Therefore, the motion vector
また、a(-4,2)の画素値として、a(-4,2)と探索領域内の境界を挟んで対称な位置にある画素であるa(2,2)の画素値を代用する(S1003)。 In addition, as the pixel value of a (-4,2), the pixel value of a (2,2), which is a pixel located symmetrically across the boundary in the search region with a (-4,2), is substituted. (S1003).
以上のように、動きベクトル検出部107が図8から図10に示す処理を実行することにより、整数精度動きベクトル検出部103により検出された整数位置の画像ブロックの内部および周囲にある小数位置の画素から構成される複数の小数位置の画像ブロックの中に、画素値の算出に探索領域画像データメモリ102が記憶している領域外の画素の画素値が必要となる画素を含む画像ブロックがある場合であっても、小数精度の動きベクトル検出が可能となる。そのため、図5から図7までに説明した方法と比較して、探索領域画像データメモリ102を増やすことなく動きベクトル検出の探索領域を拡大することができる。したがって、消費電力の増加や回路規模の増加を抑えながら、圧縮画像の画質や符号化効率の、より一層の向上を図ることが可能となる。
As described above, the motion
以上、本発明の実施の形態に係る動きベクトル検出部107について説明したが、本発明は、この実施の形態に限定されるものではない。
The motion
例えば、小数位置の画素値の補間に用いるに各フィルタに係る変形例が考えられる。まず、実施の形態において用いるフィルタは、本発明の動きベクトル検出部をH.264符号化装置で用いる場合、規格書記載の6TAPフィルタを動きベクトル検出に用いてもよいし、例えば4TAPフィルタ、2TAPフィルタなどのフィルタを用いてもよい。また、小数精度動きベクトル検出部104で小数位置の画素の補間計算は垂直方向と水平方向で異なる方法を用いてもよい。
For example, a modification of each filter can be considered for use in interpolation of pixel values at decimal positions. First, the filter used in the embodiment is the same as that of the motion vector detection unit of the present invention. When used in an H.264 encoding device, a 6TAP filter described in the standard may be used for motion vector detection, or a filter such as a 4TAP filter or a 2TAP filter may be used. Further, the decimal precision motion
また、図8に示す例では、6TAPフィルタにより算出できない小数位置の画素の画素値を算出する場合、動きベクトル検出制御部105は、当該画素の画素値の算出に使用できる探索領域画像データメモリ102が記憶している画素値の数によりTAP数を4TAP、2TAPと減少させる。しかし、6TAPフィルタにより算出できない場合は、常に2TAPフィルタを適用しても構わない。
In the example illustrated in FIG. 8, when calculating the pixel value of the pixel at the decimal position that cannot be calculated by the 6TAP filter, the motion vector
さらに、4TAPフィルタ、6TAPフィルタを用いる場合に、各整数位置の画素値に係る係数は、例えば、4TAPフィルタでは、−1/8、5/8、5/8、−1/8があり、H.264符号化の規格の6TAPフィルタでは、1/32、−5/32、20/32、20/32、−5/32、1/32がある。しかし、これらの各フィルタで用いられる係数の値は、他の値でも構わない。 Furthermore, when using a 4TAP filter and a 6TAP filter, the coefficients related to the pixel value at each integer position include, for example, -1/8, 5/8, 5/8, and -1/8 in the 4TAP filter. . In the 6TAP filter of the H.264 encoding standard, there are 1/32, −5/32, 20/32, 20/32, −5/32, and 1/32. However, the value of the coefficient used in each of these filters may be another value.
また例えば、探索領域画像データメモリ102は、図12に示すように探索領域が含まれる参照ピクチャのライン全てを記憶していても構わない。
Further, for example, the search area
図12は、探索領域画像データメモリ102が記憶している領域と参照ピクチャとの関係の第2の例を示す図である。符号化対象ブロック303および探索領域302は、図3と同じである。探索領域画像データメモリ102が、図3では参照ピクチャのうち探索領域のみを記憶しているのに対して、図12では参照ピクチャのうち探索領域を含むライン305の全てを記憶している点で異なる。
FIG. 12 is a diagram illustrating a second example of the relationship between the region stored in the search region
この場合、小数位置の画素の画素値の算出は、探索領域302の画素のみならず、探索領域を含むライン305の画素の画素値をも用いても構わない。
In this case, the pixel value of the pixel at the decimal position may be calculated using not only the pixel in the
さらに例えば、本実施の形態では1/2画素精度の生成方法しか記載していないが、任意の1/M画素精度の動きベクトル検出の制御方法も同様にして行なうことが可能であり、小数画素精度の動きベクトル検出は、任意の1/M画素精度として構わない。ここで、「M」は、2のべき乗を表す。 Further, for example, in the present embodiment, only a generation method with 1/2 pixel accuracy is described, but a motion vector detection control method with arbitrary 1 / M pixel accuracy can be performed in the same manner, and decimal pixels The motion vector detection with accuracy may be performed with arbitrary 1 / M pixel accuracy. Here, “M” represents a power of 2.
さらに例えば、1/M画素精度の動きベクトル検出する際に小数精度動きベクトル検出部104が実行する検索の手順は、1/2画素精度の動きベクトル探索を行い、1/4画素精度の動きベクトル検出を行なう、というように段階的に1/M画素精度の動きベクトルを検出しても構わない。また入力された1画素精度動きベクトルの示す位置の周辺に存在する1/M画素精度の位置すべてを探索して1/M画素精度の動きベクトルを検出しても構わない。
Further, for example, the search procedure executed by the decimal-precision motion
なお、図1、図2に示したブロック図の各機能ブロックは典型的には集積回路であるLSIとして実現される。このLSIは1チップ化されても良く、複数チップ化されても良い。複数チップ化される例として、メモリ以外の各機能ブロックが1チップ化されることが考えられる。なおLSIは、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。 Each functional block in the block diagrams shown in FIGS. 1 and 2 is typically realized as an LSI which is an integrated circuit. This LSI may be made into one chip or a plurality of chips. As an example of a plurality of chips, it is conceivable that each functional block other than the memory is formed into one chip. Note that an LSI may be referred to as an IC, a system LSI, a super LSI, or an ultra LSI depending on the degree of integration.
また、本発明に係る動きベクトル検出部107を備える動画像符号化装置100の集積回路化の手法は、LSIに限るものではない。集積化の手法は、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
Further, the method of circuit integration of the moving
さらに、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。 Further, if integrated circuit technology comes out to replace LSI's as a result of the advancement of semiconductor technology or a derivative other technology, it is naturally also possible to carry out function block integration using this technology. Biotechnology can be applied.
さらに、各機能ブロックのうち、データを格納するユニットだけ1チップ化せずに、別構成としても良い。 Further, among the functional blocks, only the unit for storing data may be configured separately without being integrated into one chip.
本発明の動きベクトル検出装置によれば、消費電力の増加や回路規模の増大を抑えながらH.264による映像の符号化が実現でき、パーソナルコンピュータや、HDDレコーダ、DVDレコーダなどの他、ビデオカメラ、カメラ付き携帯電話機等に適用できる。また、この動きベクトル検出装置を備える符号化装置にも適用できる。 According to the motion vector detecting apparatus of the present invention, the H.264 and H.264 circuits are suppressed while suppressing the increase in power consumption and the circuit scale. H.264 video can be encoded, and can be applied to personal computers, HDD recorders, DVD recorders, video cameras, mobile phones with cameras, and the like. Also, the present invention can be applied to an encoding device provided with this motion vector detection device.
100 動画像符号化装置
101 ピクチャ画像データメモリ
102 探索領域画像データメモリ
103 整数精度動きベクトル検出
104 小数精度動きベクトル検出
105 動きベクトル検出制御部
106 符号化部
107 動きベクトル検出部
201 面内予測部
202 動き補償部
203 減算器
204 直交変換部
205 量子化部
206 逆量子化部
207 逆直交変換部
208 加算器
209 スイッチ
210 エントロピー符号化部
DESCRIPTION OF
Claims (10)
探索領域に含まれる画素の画素値を記憶している画像記憶手段と、
前記符号化対象ブロックの整数精度の動きベクトルを検出する第1検出手段と、
前記整数精度の動きベクトルにより特定される画像ブロックに含まれる整数位置の画素の周囲に位置する小数位置の画素から構成される小数位置の画像ブロックのうち、前記画像記憶手段が記憶している画素値のみを用いて画素値を算出できる小数位置の画素から構成される小数位置の画像ブロックのみおよび前記整数精度の動きベクトルにより特定される整数位置の画像ブロックを探索候補として動きベクトルを検出する第2検出手段とを備える
ことを特徴とする動きベクトル検出装置。 A motion vector detection device that detects a motion vector of an encoding target block included in an image to be encoded,
Image storage means for storing pixel values of pixels included in the search area;
First detection means for detecting an integer-precision motion vector of the encoding target block;
Pixels stored in the image storage unit among the decimal position image blocks composed of pixels at the decimal positions located around the integer position pixels included in the image block specified by the integer precision motion vector A motion vector is detected by using only an image block at a decimal position composed of pixels at a decimal position at which a pixel value can be calculated using only the value and an image block at an integer position specified by the integer precision motion vector as search candidates. A motion vector detecting device.
ことを特徴とする請求項1に記載の動きベクトル検出装置。 The second detection unit further includes a pixel at a decimal position located around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection unit with respect to the encoding target block. When a pixel value of a pixel outside the image area stored in the image storage unit is necessary for calculation of the value, an image block including the pixel at the decimal position is excluded from the search candidates. Item 2. The motion vector detection device according to Item 1.
ことを特徴とする請求項1または請求項2に記載の動きベクトル検出装置。 The second detection means is a pixel value of a pixel at a decimal position located around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection means with respect to an encoding target block. When the pixel values of the pixels outside the image area stored in the image storage means are required for the calculation, all the image blocks at the decimal positions are further excluded from the search candidates for the encoding target block. The motion vector detection device according to claim 1 or 2, wherein
ことを特徴とする請求項1または請求項2に記載の動きベクトル検出装置。 The second detection means is a pixel value of a pixel at a decimal position located around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection means with respect to an encoding target block. When the pixel values of the pixels outside the image area stored in the image storage means are required for the calculation, all the image blocks at the decimal positions and the image blocks at the integer positions are further included in the encoding target block. The motion vector detection device according to claim 1, wherein the motion vector detection device is excluded from the search candidates.
ことを特徴とする請求項1に記載の動きベクトル検出装置。 The second detection unit further includes a pixel at a decimal position located around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection unit with respect to the encoding target block. When the pixel value of the pixel outside the image area stored in the image storage unit is necessary for the calculation of the value, the pixel value of the pixel at the decimal position is only the pixel value stored in the image storage unit. The motion vector detection device according to claim 1, wherein the motion vector detection device is calculated from:
ことを特徴とする請求項5に記載の動きベクトル検出装置。 The second detection unit further includes a pixel at a decimal position located around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection unit with respect to the encoding target block. When the pixel value of the pixel outside the image area stored in the image storage unit is necessary for the calculation of the value, the image storage unit stores the number of pixels used for calculating the pixel value of the pixel at the decimal position. The motion vector detection device according to claim 5, wherein the pixel value at the decimal position is calculated by reducing the obtained pixel value to a number of pixels that can be acquired.
ことを特徴とする請求項5に記載の動きベクトル検出装置。 The second detection unit further includes a pixel at a decimal position located around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection unit with respect to the encoding target block. When the pixel value of the pixel outside the image area stored in the image storage unit is necessary for the calculation of the value, the image storage unit stores the pixel value necessary for calculating the pixel value in the decimal position. The pixel value of the decimal position is calculated by substituting the pixel value in the image area located closest to the pixel located outside the image area for the pixel value of the pixel located outside the existing area. The motion vector detection device according to claim 5, wherein
ことを特徴とする請求項5に記載の動きベクトル検出装置。 The second detection unit further includes a pixel at a decimal position located around a pixel included in an image block specified by an integer-precision motion vector detected by the first detection unit with respect to the encoding target block. When the pixel value of the pixel outside the image area stored in the image storage unit is necessary for the calculation of the value, the image storage unit stores the pixel value necessary for calculating the pixel value in the decimal position. The pixel value of the pixel located outside the image area is substituted with the pixel value shown at a line-symmetric position across the boundary between the pixel located outside the area and the image area closest to the pixel. The motion vector detection device according to claim 5, wherein a pixel value at a decimal position is calculated.
前記符号化対象ブロックの整数精度の動きベクトルを検出する第1検出ステップと、
前記整数精度の動きベクトルにより特定される画像ブロックに含まれる整数位置の画素の周囲に位置する小数位置の画素から構成される小数位置の画像ブロックのうち、前記画像記憶手段が記憶している画素値のみを用いて画素値を算出できる小数位置の画素から構成される小数位置の画像ブロックのみおよび前記整数精度の動きベクトルにより特定される整数位置の画像ブロックを探索候補として動きベクトルを検出する第2検出ステップとを含む
ことを特徴とする動きベクトル検出方法。 A motion vector detection method for detecting a motion vector of an encoding target block included in an image to be encoded,
A first detection step of detecting an integer-precision motion vector of the encoding target block;
Pixels stored in the image storage unit among the decimal position image blocks composed of pixels at the decimal positions located around the integer position pixels included in the image block specified by the integer precision motion vector A motion vector is detected by using only an image block at a decimal position composed of pixels at a decimal position at which a pixel value can be calculated using only the value and an image block at an integer position specified by the integer precision motion vector as search candidates. A motion vector detection method comprising: 2 detection steps.
探索領域の画素値を記憶している画像記憶手段と、
前記符号化対象ブロックの整数精度の動きベクトルを検出する第1検出手段と、
前記整数精度の動きベクトルにより特定される画像ブロックに含まれる整数位置の画素の周囲に位置する小数位置の画素から構成される小数位置の画像ブロックのうち、前記画像記憶手段が記憶している画素値のみを用いて画素値を算出できる小数位置の画素から構成される小数位置の画像ブロックのみおよび前記整数精度の動きベクトルにより特定される整数位置の画像ブロックを探索候補として動きベクトルを検出する第2検出手段とを備える
ことを特徴とする集積回路。 An integrated circuit for detecting a motion vector of an encoding target block included in an image to be encoded,
Image storage means for storing pixel values of the search area;
First detection means for detecting an integer-precision motion vector of the encoding target block;
Pixels stored in the image storage unit among the decimal position image blocks composed of pixels at the decimal positions located around the integer position pixels included in the image block specified by the integer precision motion vector A motion vector is detected by using only an image block at a decimal position composed of pixels at a decimal position at which a pixel value can be calculated using only the value and an image block at an integer position specified by the integer precision motion vector as search candidates. An integrated circuit comprising: 2 detection means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005318898A JP2007129370A (en) | 2005-11-01 | 2005-11-01 | Motion vector detecting apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005318898A JP2007129370A (en) | 2005-11-01 | 2005-11-01 | Motion vector detecting apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007129370A true JP2007129370A (en) | 2007-05-24 |
JP2007129370A5 JP2007129370A5 (en) | 2008-11-06 |
Family
ID=38151686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005318898A Pending JP2007129370A (en) | 2005-11-01 | 2005-11-01 | Motion vector detecting apparatus and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007129370A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009122659A1 (en) * | 2008-03-31 | 2009-10-08 | パナソニック株式会社 | Image decoding device, image decoding method, integrated circuit, and reception device |
JP2010119084A (en) * | 2008-11-11 | 2010-05-27 | Korea Electronics Telecommun | High-speed motion search apparatus and method |
JP2011024161A (en) * | 2009-07-21 | 2011-02-03 | Nec Corp | Moving picture decoding system, moving picture decoding apparatus, reference block generating-out method, and reference block generation program |
WO2012077695A1 (en) * | 2010-12-08 | 2012-06-14 | ソニー株式会社 | Image processing device, image processing method, and program |
WO2013065571A1 (en) * | 2011-11-04 | 2013-05-10 | ソニー株式会社 | Image processing device and image processing method |
US8722181B2 (en) * | 2008-04-14 | 2014-05-13 | The Nippon Synthetic Chemical Industry Co., Ltd. | Resin composition and multilayer structure using the same |
JP2014523696A (en) * | 2011-06-30 | 2014-09-11 | エルジー エレクトロニクス インコーポレイティド | Interpolation method and prediction method using the same |
CN111133759A (en) * | 2017-06-30 | 2020-05-08 | 佳能株式会社 | Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory access |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11346368A (en) * | 1998-04-03 | 1999-12-14 | Matsushita Electric Ind Co Ltd | Image processing method, image processing unit and data storage medium |
JP2000165883A (en) * | 1998-11-27 | 2000-06-16 | Matsushita Electric Ind Co Ltd | Motion vector detector |
JP2005303994A (en) * | 2004-03-17 | 2005-10-27 | Matsushita Electric Ind Co Ltd | Moving image coding device |
-
2005
- 2005-11-01 JP JP2005318898A patent/JP2007129370A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11346368A (en) * | 1998-04-03 | 1999-12-14 | Matsushita Electric Ind Co Ltd | Image processing method, image processing unit and data storage medium |
JP2000165883A (en) * | 1998-11-27 | 2000-06-16 | Matsushita Electric Ind Co Ltd | Motion vector detector |
JP2005303994A (en) * | 2004-03-17 | 2005-10-27 | Matsushita Electric Ind Co Ltd | Moving image coding device |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009122659A1 (en) * | 2008-03-31 | 2009-10-08 | パナソニック株式会社 | Image decoding device, image decoding method, integrated circuit, and reception device |
JP5367696B2 (en) * | 2008-03-31 | 2013-12-11 | パナソニック株式会社 | Image decoding apparatus, image decoding method, integrated circuit, and receiving apparatus |
US8722181B2 (en) * | 2008-04-14 | 2014-05-13 | The Nippon Synthetic Chemical Industry Co., Ltd. | Resin composition and multilayer structure using the same |
JP2010119084A (en) * | 2008-11-11 | 2010-05-27 | Korea Electronics Telecommun | High-speed motion search apparatus and method |
US8451901B2 (en) | 2008-11-11 | 2013-05-28 | Electronics And Telecommunications Research Institute | High-speed motion estimation apparatus and method |
JP2011024161A (en) * | 2009-07-21 | 2011-02-03 | Nec Corp | Moving picture decoding system, moving picture decoding apparatus, reference block generating-out method, and reference block generation program |
WO2012077695A1 (en) * | 2010-12-08 | 2012-06-14 | ソニー株式会社 | Image processing device, image processing method, and program |
CN103238330A (en) * | 2010-12-08 | 2013-08-07 | 索尼公司 | Image processing device, image processing method, and program |
JP2014523696A (en) * | 2011-06-30 | 2014-09-11 | エルジー エレクトロニクス インコーポレイティド | Interpolation method and prediction method using the same |
US9460488B2 (en) | 2011-06-30 | 2016-10-04 | Lg Electronics Inc. | Interpolation method and prediction method using same |
WO2013065571A1 (en) * | 2011-11-04 | 2013-05-10 | ソニー株式会社 | Image processing device and image processing method |
US11202076B2 (en) | 2017-06-30 | 2021-12-14 | Canon Kabushiki Kaisha | Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory accesses |
CN111133759A (en) * | 2017-06-30 | 2020-05-08 | 佳能株式会社 | Method and apparatus for encoding or decoding video data in FRUC mode with reduced memory access |
CN111133759B (en) * | 2017-06-30 | 2022-06-24 | 佳能株式会社 | Method and apparatus for encoding or decoding video data |
CN115002478A (en) * | 2017-06-30 | 2022-09-02 | 佳能株式会社 | Method and apparatus for encoding or decoding video data |
CN115002481A (en) * | 2017-06-30 | 2022-09-02 | 佳能株式会社 | Method and apparatus for encoding or decoding video data |
CN115002480A (en) * | 2017-06-30 | 2022-09-02 | 佳能株式会社 | Method and apparatus for encoding or decoding video data |
CN115002479A (en) * | 2017-06-30 | 2022-09-02 | 佳能株式会社 | Method and apparatus for encoding or decoding video data |
CN115037946A (en) * | 2017-06-30 | 2022-09-09 | 佳能株式会社 | Method and apparatus for encoding or decoding video data |
CN115002479B (en) * | 2017-06-30 | 2024-03-12 | 佳能株式会社 | Method and apparatus for encoding or decoding video data |
CN115002480B (en) * | 2017-06-30 | 2024-03-12 | 佳能株式会社 | Method and apparatus for encoding or decoding video data |
CN115002481B (en) * | 2017-06-30 | 2024-03-12 | 佳能株式会社 | Method and apparatus for encoding or decoding video data |
CN115037946B (en) * | 2017-06-30 | 2024-03-12 | 佳能株式会社 | Method and apparatus for encoding or decoding video data |
CN115002478B (en) * | 2017-06-30 | 2024-03-12 | 佳能株式会社 | Method and apparatus for encoding or decoding video data |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7171770B2 (en) | Memory access windowing and padding for motion vector refinement and motion compensation | |
TW202025752A (en) | History-based motion vector prediction for affine mode | |
CN107241605B (en) | Video encoder and video encoding method | |
AU2019204856A1 (en) | Image predictive encoding device, image predictive encoding method, image predictive encoding program, image predictive decoding device, image predictive decoding method, and image predictive decoding program | |
WO2014054267A1 (en) | Image coding device and image coding method | |
JP2007129370A (en) | Motion vector detecting apparatus and method | |
JP2008278091A (en) | Moving picture recording method, and apparatus thereof | |
JP5950541B2 (en) | Motion vector encoding device, motion vector encoding method and program, motion vector decoding device, motion vector decoding method and program | |
JP2007166038A (en) | Device and method for detecting motion vector | |
CN113557732A (en) | Method and apparatus for video encoding | |
JP6593122B2 (en) | Moving picture coding apparatus, moving picture coding method, and program | |
JP5156704B2 (en) | Image coding apparatus, image coding method, integrated circuit, and camera | |
JP2007189276A (en) | Image compression apparatus and image compression program | |
CN110798685A (en) | Video decoding method and device, computer equipment and storage medium | |
TW202017385A (en) | Non-affine blocks predicted from affine motion | |
JP2006311526A (en) | Video decoding device, video decoding method, video decoding program, and video decoding integrated circuit | |
CN114930852A (en) | Method and apparatus for video encoding and decoding | |
JP4284265B2 (en) | Moving picture coding apparatus, moving picture coding method, moving picture decoding apparatus, and moving picture decoding method | |
JP2013048307A (en) | Moving picture decoder and moving picture decoding method | |
JP7064644B2 (en) | Video encoding device | |
JP2009111647A (en) | Apparatus for detecting motion vector and method for detecting motion vector | |
JP6184558B2 (en) | Encoding device, encoding method and program, decoding device, decoding method and program | |
JP2008141407A (en) | Device and method for converting coding system | |
JP2004260251A (en) | Apparatus and program of detecting motion vector | |
JPWO2009095962A1 (en) | Image coding apparatus, image coding method, image coding integrated circuit, and image coding program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080919 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080919 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100706 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100713 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101109 |