JP2007129370A - Motion vector detecting apparatus and method - Google Patents

Motion vector detecting apparatus and method Download PDF

Info

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
Application number
JP2005318898A
Other languages
Japanese (ja)
Other versions
JP2007129370A5 (en
Inventor
Hisaki Maruyama
悠樹 丸山
Shinya Sumino
眞也 角野
Yoji Shibahara
陽司 柴原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005318898A priority Critical patent/JP2007129370A/en
Publication of JP2007129370A publication Critical patent/JP2007129370A/en
Publication of JP2007129370A5 publication Critical patent/JP2007129370A5/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a motion vector detecting apparatus capable of detecting a motion vector with an accuracy of decimal without increasing the power consumption and upsizing the circuit scale. <P>SOLUTION: The motion vector detecting apparatus includes a decimal accuracy motion vector detection section 104 and a motion vector detection control section 105 that detect a motion vector by using only pixel values stored in a searching region image data memory 102 in a decimal position image block comprising decimal position pixels located around integer position pixels included in an image block particularized by a motion vector with an accuracy of integer to select only the image block at decimal positions comprising decimal position pixels whose pixel values can be calculated and an image block at integer positions particularized by the motion vector with an accuracy of integer for searching objects. <P>COPYRIGHT: (C)2007,JPO&INPIT

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)については、探索領域外の画素値であるため、外部メモリが記憶する画素値を利用する。
「ITU−T Recommendation H.262」 「Draft of Version4 of H.264/AVC」
For example, when calculating the pixel value of a (1,4), a (-4,4), a (-2,4), a (0,4), a (2,4), a (4, 4) The pixel value of a (6, 4) is required. Of these six points, a (−4,4) and a (−2,4) are pixel values outside the search area, and therefore the pixel values stored in the external memory are used.
“ITU-T Recommendation H.262” "Draft of Version4 of H.264 / AVC"

しかしながら、探索領域外の画素値を利用して探索領域内の小数位置の画素値を求める場合に、小数位置の画素値の計算に必要となる領域外の画素値を外部メモリから取得すると、外部メモリから内部メモリへのデータの転送を行うため、メモリバンド幅が増加し、消費電力が増加するという問題がある。   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 image encoding apparatus 100 is an apparatus that encodes an input moving image, and includes a picture image data memory 101, a motion vector detection unit 107, and an encoding unit 106 as shown in FIG.

ピクチャ画像データメモリ101は、符号化対象ピクチャおよび参照ピクチャの画像データを記憶している。符号化対象ピクチャの画像データは、符号化の対象となる画面の画像データである。また、参照ピクチャの画像データは、動きベクトルの検出の際に参照される画面の画像データであり、ローカルデコードされた画面の画像データである。例えば、符号化対象ピクチャおよび参照ピクチャは、ともに1920画素×1088画素で構成される画面である。また、画像データは、画面に含まれる画素の画素値である。   The picture image data memory 101 stores image data of a coding target picture and a reference picture. The image data of the encoding target picture is image data of a screen to be encoded. The image data of the reference picture is image data of a screen that is referred to when detecting a motion vector, and is image data of a locally decoded screen. For example, the encoding target picture and the reference picture are both screens composed of 1920 pixels × 1088 pixels. The image data is a pixel value of a pixel included in the screen.

符号化部106は、動画像をブロック単位で符号化し、符号化されたストリームを出力する。符号化部106は、入力画像、ローカルデコード画面の画像データおよび動きベクトル検出部107により検出された動きベクトルを受け取る。これらを受けた符号化部106は、ローカルデコード画面の画像データおよび動きベクトル検出部107により検出された動きベクトルから、ブロック単位で動き補償をした予測画像を生成し、その予測画像と入力画像との差分の画像データおよび動きベクトルの符号化処理を行い、符号化されたストリームを出力する。   The encoding unit 106 encodes a moving image in units of blocks and outputs an encoded stream. The encoding unit 106 receives the input image, the image data of the local decoding screen, and the motion vector detected by the motion vector detection unit 107. Receiving these, the encoding unit 106 generates a prediction image in which motion compensation is performed in units of blocks from the image data of the local decoding screen and the motion vector detected by the motion vector detection unit 107, and the prediction image, the input image, The difference image data and motion vector are encoded, and an encoded stream is output.

動きベクトル検出部107は、符号化対象ブロックの動きベクトルを検出する部位である。動きベクトル検出部107は、探索領域画像データメモリ102、整数精度動きベクトル検出部103、小数精度動きベクトル検出部104および動きベクトル検出制御部105を備える。   The motion vector detection unit 107 is a part that detects a motion vector of an encoding target block. The motion vector detection unit 107 includes a search area image data memory 102, an integer accuracy motion vector detection unit 103, a decimal accuracy motion vector detection unit 104, and a motion vector detection control unit 105.

探索領域画像データメモリ102は、探索領域に含まれる画素の画素値を記憶している画像記憶手段であって、本実施の形態に係る探索領域画像データメモリ102は、符号化対象ブロックに含まれる画素の画素値をも記憶している。本実施の形態において符号化対象ブロックおよび探索領域の画像データは、ともにピクチャ画像データメモリ101から転送される。   The search area image data memory 102 is an image storage unit that stores pixel values of pixels included in the search area, and the search area image data memory 102 according to the present embodiment is included in the encoding target block. The pixel value of the pixel is also stored. In the present embodiment, both the encoding target block and the image data of the search area are transferred from the picture image data memory 101.

符号化対象ブロックは、動き補償の対象となる画像の単位であり、符号化対象ピクチャに含まれる画像の一部である。符号化対象ブロックは、例えば、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 image data memory 102 includes image data of a search area that is a search target for detecting the motion vector of the encoding target block.

ここで、図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 image data memory 102 and the reference picture 301.

図3の斜線部は探索領域302を示し、参照ピクチャ301の一部である。また図3の黒い四角は、符号化対象ブロック303を示し、符号化対象ピクチャ304の一部である。本実施の形態に係る探索領域画像データメモリ102は、探索領域302および符号化対象ブロック303に含まれる画素の画素値を記憶している。   A hatched portion in FIG. 3 indicates a search area 302 and is a part of the reference picture 301. A black square in FIG. 3 indicates the encoding target block 303 and is a part of the encoding target picture 304. The search area image data memory 102 according to the present embodiment stores pixel values of pixels included in the search area 302 and the encoding target block 303.

整数精度動きベクトル検出部103は、動きベクトル検出制御部105の制御にしたがって、探索領域302に含まれる複数の画像ブロックから符号化対象ブロック303に最も近似する画像ブロックの位置を1画素精度で探索し、その符号化対象ブロック303の動きベクトルを1画素精度で検出する。すなわち、整数精度動きベクトル検出部103は、符号化対象ブロック303の整数精度の動きベクトルを検出する第1検出手段である。   The integer precision motion vector detection unit 103 searches the position of the image block that most closely approximates the encoding target block 303 from the plurality of image blocks included in the search region 302 according to the control of the motion vector detection control unit 105 with one pixel accuracy. Then, the motion vector of the encoding target block 303 is detected with one pixel accuracy. That is, the integer accuracy motion vector detection unit 103 is a first detection unit that detects an integer accuracy motion vector of the encoding target block 303.

ここで、探索領域302に含まれる複数の画像ブロックのうち、符号化対象ブロック303に最も近似する画像ブロックとは、例えば符号化ブロック303に含まれる画素の画素値と、探索領域内302の画像ブロックに含まれる画素の画素値との差分絶対値和が最小となる画像ブロックである。   Here, among the plurality of image blocks included in the search region 302, the image block that is closest to the encoding target block 303 is, for example, the pixel value of the pixel included in the encoding block 303 and the image in the search region 302. This is an image block in which the sum of absolute differences from the pixel values of the pixels included in the block is minimized.

小数精度動きベクトル検出部104は、整数精度動きベクトル検出部103の結果と、動きベクトル検出制御部105の制御にしたがって、探索候補となる画像ブロックの中から符号化対象ブロックに最も近似する画像ブロックの位置を小数画素精度で探索し、小数画素精度で動きベクトルを検出する。   The decimal precision motion vector detection unit 104 is an image block that most closely approximates the encoding target block from among the search candidate image blocks according to the result of the integer precision motion vector detection unit 103 and the control of the motion vector detection control unit 105. Is searched with decimal pixel accuracy, and a motion vector is detected with decimal pixel accuracy.

すなわち、小数精度動きベクトル検出部104は、探索候補から動きベクトルを検出する第2検出手段である。   That is, the decimal precision motion vector detection unit 104 is a second detection unit that detects a motion vector from search candidates.

探索候補に小数位置の画素から構成される小数位置の画像ブロックが含まれる場合、小数位置の画素の画素値を算出する必要がある。小数位置の画素の画素値は、小数精度動きベクトル検出部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 vector detection unit 104 interpolating the pixel value of the pixel at the integer position.

例えば、小数精度の動きベクトルは、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 detection control unit 105 controls the integer accuracy motion vector detection unit 103 and the decimal accuracy motion vector detection unit 104.

動きベクトル検出制御部105は、整数精度動きベクトル検出部103に対して、例えば探索領域302を整数精度で探索する際の探索候補を制御する。   For example, the motion vector detection control unit 105 controls the integer precision motion vector detection unit 103 to search candidates when searching the search region 302 with integer accuracy.

また、動きベクトル検出制御部105は、小数精度動きベクトル検出部104に対して、探索領域画像データメモリ102が記憶している画素値のみを用いて画素値を算出できる小数位置の画素から構成される小数位置の画像ブロックのみおよび整数精度の動きベクトルにより特定される整数位置の画像ブロックの中から探索候補を制御する。   Further, the motion vector detection control unit 105 is configured with pixels at decimal positions where the pixel value can be calculated using only the pixel values stored in the search area image data memory 102 with respect to the decimal precision motion vector detection unit 104. Search candidates are controlled from only the image block at the decimal position and the image block at the integer position specified by the motion vector with integer precision.

動きベクトル検出制御部105が小数精度動きベクトル検出部104に対して行う制御の第1の例は、符号化対象ブロック303に対して整数精度動きベクトル検出部103が検出する整数精度の動きベクトルにより特定される整数位置の画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に探索領域画像データメモリ102が記憶している画像領域の外の画素の画素値が必要な場合、その小数位置の画素を含む画像ブロックを前記探索候補から除外する制御である。   A first example of control performed by the motion vector detection control unit 105 on the decimal precision motion vector detection unit 104 is based on an integer precision motion vector detected by the integer precision motion vector detection unit 103 for the encoding target block 303. The pixel value of the pixel outside the image area stored in the search area image data memory 102 is necessary for calculating the pixel value of the pixel at the decimal position located around the pixel included in the image block at the specified integer position. In this case, the image block including the pixel at the decimal position is excluded from the search candidates.

また、動きベクトル検出制御部105が小数精度動きベクトル検出部104に対して行う制御の第2の例は、符号化対象ブロック303に対して整数精度動きベクトル検出部103が検出する整数精度の動きベクトルにより特定される整数位置の画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に探索領域画像データメモリ102が記憶している画像領域の外の画素の画素値が必要な場合、その小数位置の画素の画素値を探索領域画像データメモリ102が記憶している画素値から算出する制御である。   A second example of control performed by the motion vector detection control unit 105 on the decimal precision motion vector detection unit 104 is an integer precision motion detected by the integer precision motion vector detection unit 103 for the encoding target block 303. The pixel value of the pixel outside the image area stored in the search area image data memory 102 is used to calculate the pixel value of the pixel at the decimal position located around the pixel included in the image block at the integer position specified by the vector. When necessary, the pixel value of the pixel at the decimal position is calculated from the pixel value stored in the search area image data memory 102.

なお、動きベクトル検出制御部105の機能は、整数精度動きベクトル検出部103および小数精度動きベクトル検出部104がそれぞれ備えても構わない。   Note that the function of the motion vector detection control unit 105 may be provided by the integer accuracy motion vector detection unit 103 and the decimal accuracy motion vector detection unit 104, respectively.

この場合、例えば整数精度動きベクトル検出部103は、探索領域に含まれる整数位置の画素から構成される整数位置の画像ブロックのうち、符号化対象ブロックと最も近似する画像ブロックを探索することにより、当該符号化対象ブロックの整数精度の動きベクトルを検出する。   In this case, for example, the integer precision motion vector detection unit 103 searches the image block closest to the encoding target block from the image blocks at the integer positions composed of the pixels at the integer positions included in the search region, An integer-precision motion vector of the encoding target block is detected.

また、例えば小数精度動きベクトル検出部104は、整数精度の動きベクトルにより特定される画像ブロックに含まれる整数位置の画素の周囲に位置する小数位置の画素から構成される小数位置の画像ブロックのうち、探索領域画像データメモリ102が記憶している画素値のみを用いて画素値を算出できる小数位置の画素から構成される小数位置の画像ブロックのみおよび前記整数精度の動きベクトルにより特定される整数位置の画像ブロックを探索候補として動きベクトルを検出する。   Further, for example, the decimal precision motion vector detection unit 104 includes a decimal position image block composed of pixels at decimal positions located around the integer position pixels included in the image block specified by the integer precision motion vector. , Only the decimal position image block composed of pixels at the decimal position where the pixel value can be calculated using only the pixel value stored in the search area image data memory 102 and the integer position specified by the integer precision motion vector A motion vector is detected using the image block as a search candidate.

このように動きベクトルを検出することによって、探索領域画像データメモリ102が記憶している画素値のみを使用することができる。そのため、消費電力の増加や回路規模の増大をさせることなく動きベクトルを検出することが可能となる。   By detecting the motion vector in this way, only the pixel value stored in the search area image data memory 102 can be used. Therefore, it is possible to detect a motion vector without increasing the power consumption or the circuit scale.

図2は、動画像符号化装置100に含まれる符号化部106の構成を示すブロック図である。符号化部は106、入力画像、ローカルデコード画像および動きベクトル検出部107により検出された動きベクトルを用いて、符号化された画像データのストリームを出力する。   FIG. 2 is a block diagram illustrating a configuration of the encoding unit 106 included in the moving image encoding apparatus 100. The encoding unit 106 outputs a stream of encoded image data using the motion vector detected by the input image, the local decoded image, and the motion vector detection unit 107.

符号化部106は、面内予測部201、動き補償部202、差分演算部203、直交変換部204、量子化部205、逆量子化部206、逆直交変換部207、加算部208、スイッチ209、およびエントロピー符号化部210を備える。   The encoding unit 106 includes an in-plane prediction unit 201, a motion compensation unit 202, a difference calculation unit 203, an orthogonal transformation unit 204, a quantization unit 205, an inverse quantization unit 206, an inverse orthogonal transformation unit 207, an addition unit 208, and a switch 209. , And an entropy encoding unit 210.

ピクチャ画像データメモリ101および動きベクトル検出部107は、図1および図2に共通する部位であるため同じ参照符号を付しており、ここでの説明は省略する。   Since the picture image data memory 101 and the motion vector detection unit 107 are parts common to FIGS. 1 and 2, the same reference numerals are given, and the description thereof is omitted here.

入力画像は、圧縮前の画像である。入力画像は、面内予測部201、ピクチャ画像データメモリ101、および差分演算部203に入力される。   The input image is an image before compression. The input image is input to the in-plane prediction unit 201, the picture image data memory 101, and the difference calculation unit 203.

動き補償部202は、動きベクトルとローカルデコード画像とを用いて予測画像を生成する。動き補償部202は、動きベクトル検出部107によって検出された動きベクトルを取得し、ピクチャ画像データメモリ101に格納されているローカルデコード画面から予測画像の生成に最適な画像領域を取り出し、取り出した画像領域に動きベクトルを適用して予測画像を生成する。   The motion compensation unit 202 generates a predicted image using the motion vector and the local decoded image. The motion compensation unit 202 acquires the motion vector detected by the motion vector detection unit 107, extracts an optimal image region for generating a predicted image from the local decode screen stored in the picture image data memory 101, and extracts the extracted image. A motion vector is applied to the region to generate a predicted image.

面内予測部201は、同一画面内の画素値を用いて予測画像を生成する。面内予測部201は、入力画像およびローカルデコード画像の画素値を用いて面内予測を行うことにより、予測画像を生成する。   The in-plane prediction unit 201 generates a predicted image using pixel values within the same screen. The in-plane prediction unit 201 generates a predicted image by performing in-plane prediction using the pixel values of the input image and the local decoded image.

スイッチ209は、データの入力元の切り替えを行う。スイッチ209は、差分器203および加算器208に入力するデータを、面内予測および面間予測のいずれかに切り替える。   The switch 209 switches the data input source. The switch 209 switches the data input to the difference unit 203 and the adder 208 to either intra prediction or inter prediction.

差分演算部203は、入力された二つの画像の差分を計算する。差分演算部203は、入力画像に含まれる画素の画素値および予測画像に含まれる画素の画素値の差分を算出し、直交変換部204に出力する。   The difference calculation unit 203 calculates the difference between the two input images. The difference calculation unit 203 calculates a difference between the pixel value of the pixel included in the input image and the pixel value of the pixel included in the predicted image, and outputs the difference to the orthogonal transform unit 204.

直交変換部204は、画像データを周波数係数に変換する。直交変換部204は、差分演算部203より入力された差分値を周波数係数に変換し、量子化部205に出力する。   The orthogonal transform unit 204 transforms image data into frequency coefficients. The orthogonal transform unit 204 transforms the difference value input from the difference calculation unit 203 into a frequency coefficient and outputs the frequency coefficient to the quantization unit 205.

量子化部205は、周波数係数の量子化を行う。量子化部205は、直行変換部204から入力された周波数係数を量子化し、量子化値をエントロピー符号化部210に出力する。   The quantization unit 205 quantizes the frequency coefficient. The quantization unit 205 quantizes the frequency coefficient input from the direct transform unit 204 and outputs the quantized value to the entropy encoding unit 210.

逆量子化部206は、逆量子化を行う。逆量子化部206は、量子化部205から入力された量子化値を逆量子化することにより周波数係数に復元し、逆直交変換部207に出力する。   The inverse quantization unit 206 performs inverse quantization. The inverse quantization unit 206 restores the frequency coefficient by inverse quantization of the quantized value input from the quantization unit 205, and outputs the frequency coefficient to the inverse orthogonal transform unit 207.

逆直交変換部207は、周波数係数を画素値に変換する。逆直行変換部207は、逆量子化部206から入力された周波数係数を逆周波数変換することで画素差分値に変換し、その画素差分値を加算部208に出力する。   The inverse orthogonal transform unit 207 converts the frequency coefficient into a pixel value. The inverse orthogonal transform unit 207 converts the frequency coefficient input from the inverse quantization unit 206 into a pixel difference value by performing inverse frequency conversion, and outputs the pixel difference value to the addition unit 208.

加算部208は、入力された2つの画像データの加算することにより画像データを生成する。加算器208は、スイッチ209の切り換えに従って面内予測部201および動き補償部202のいずれかから出力される予測画像と画素差分値とを加算し、ローカルデコード画像を生成する。   The adder 208 generates image data by adding the two input image data. The adder 208 adds the predicted image output from either the in-plane prediction unit 201 or the motion compensation unit 202 and the pixel difference value according to the switching of the switch 209, and generates a local decoded image.

エントロピー符号化部210は、エントロピー符号化の処理を行う。エントロピー符号化部210は、量子化値および動きベクトル等をエントロピー符号化し、それにより得られるストリームを出力する。   The entropy encoding unit 210 performs entropy encoding processing. The entropy encoding unit 210 performs entropy encoding on the quantized value, the motion vector, and the like, and outputs a stream obtained thereby.

次に、このように構成された動きベクトル検出部107を備えた動画像符号化装置100において実行される処理について、図4を参照して説明する。   Next, processing executed in the moving image encoding apparatus 100 including the motion vector detection unit 107 configured as described above will be described with reference to FIG.

図4は、本実施の形態に係る動きベクトル検出部107を備える動画像符号化装置100において実行される処理のフローチャートである。   FIG. 4 is a flowchart of processing executed in the video encoding apparatus 100 including the motion vector detection unit 107 according to the present embodiment.

まず、ピクチャ画像データメモリ101は、入力画像である符号化対象ピクチャの画像データ受け付けて、その受け付けた画像データを格納する(S401)。   First, the picture image data memory 101 receives image data of an encoding target picture that is an input image, and stores the received image data (S401).

次に、ピクチャ画像データメモリ101は、符号化部106によってローカルデコードされた参照ピクチャの画像データを符号化部106から受け付けて格納する(S402)。   Next, the picture image data memory 101 receives the image data of the reference picture locally decoded by the encoding unit 106 from the encoding unit 106 and stores it (S402).

次に、探索領域画像データメモリ102は、ピクチャ画像データメモリ101から転送される符号化対象ブロック303を格納する(S403)。   Next, the search area image data memory 102 stores the encoding target block 303 transferred from the picture image data memory 101 (S403).

次に、探索領域画像データメモリ102は、参照ピクチャ301の一部に設定された探索領域302の画像データを格納する(S404)。   Next, the search area image data memory 102 stores the image data of the search area 302 set as a part of the reference picture 301 (S404).

次に、整数精度動きベクトル検出部103および小数精度動きベクトル検出部104は、動きベクトル検出制御部105による制御のもと、動きベクトルの検出を行う(S405)。動きベクトル検出処理(S405)の詳細について、図5から図10までを参照して以下に説明する。   Next, the integer accuracy motion vector detection unit 103 and the decimal accuracy motion vector detection unit 104 detect a motion vector under the control of the motion vector detection control unit 105 (S405). Details of the motion vector detection process (S405) will be described below with reference to FIGS.

まず、図5から図7に示す処理において、動きベクトル検出制御部105は、整数精度動きベクトル検出部103により探索された整数位置の画像ブロックの内部および周囲にある小数位置の画素から構成される複数の小数位置の画像ブロックの中に、画素値の算出に探索領域画像データメモリ102が記憶している領域外の画素の画素値が必要となる画素を含む画像ブロックがある場合に、その画像ブロックを探索候補から除外する。以下、図5から図7を参照して、動きベクトル検出部107が行う処理を説明する。   First, in the processing shown in FIGS. 5 to 7, the motion vector detection control unit 105 is composed of pixels at decimal positions inside and around the image block at the integer position searched by the integer precision motion vector detection unit 103. If there is an image block that includes a pixel that requires a pixel value of a pixel outside the region stored in the search region image data memory 102 for calculation of the pixel value in a plurality of decimal position image blocks. Exclude blocks from search candidates. Hereinafter, processing performed by the motion vector detection unit 107 will be described with reference to FIGS.

図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 detection control unit 105 is performed on the image block at the integer position specified by the integer precision motion vector detected by the integer precision motion vector detection unit 103 for the encoding target block. When the pixel value of the pixel outside the image area stored in the search area image data memory 102 is necessary for calculation of the pixel value of the pixel at the decimal position located around the included pixel, the pixel at the decimal position is included. This is control for excluding image blocks from search candidates.

整数精度動きベクトル検出部103は、動きベクトル検出制御部105の制御にしたがって、探索領域画像データメモリ102が記憶している探索領域から、符号化対象ブロックに最も近似する画像ブロックの位置を1画素精度で探索し、その位置から整数精度の動きベクトルを検出する(S501)。   The integer precision motion vector detection unit 103 determines the position of the image block that most closely approximates the encoding target block from the search region stored in the search region image data memory 102 according to the control of the motion vector detection control unit 105 by one pixel. A search is made with accuracy, and an integer-precision motion vector is detected from the position (S501).

次に、動きベクトル検出制御部105は、整数精度動きベクトル検出部103により探索された画像ブロックおよびその画像ブロックの周囲に位置する小数位置の画素から構成される画像ブロックを探索候補になり得る画像ブロックとして、各々についてS503からS504の処理を行う(S502)。   Next, the motion vector detection control unit 105 can search for an image block composed of the image block searched by the integer precision motion vector detection unit 103 and pixels at decimal positions located around the image block as search candidates. As a block, the processing from S503 to S504 is performed for each (S502).

次に、動きベクトル検出制御部105は、小数位置の画素値の算出に探索領域に含まれない画素値が必要か否かを判断する(S503)。この処理により、整数精度動きベクトル検出部103から得られる整数位置の画素の周囲にある小数位置の画素を含む画像ブロックを動きベクトルの候補から除外するか否かが決定される。   Next, the motion vector detection control unit 105 determines whether or not a pixel value that is not included in the search region is necessary for calculating the pixel value at the decimal position (S503). With this process, it is determined whether or not to exclude the image block including the pixel at the decimal position around the pixel at the integer position obtained from the integer precision motion vector detection unit 103 from the motion vector candidates.

次に、動きベクトル制御部105が小数位置の画素値の算出に探索領域に含まれない画素値が必要でないと判断すると(S503でNo)、小数精度動きベクトル検出部104は、かかる判断を受けて当該小数位置の画素値を含む小数位置の画像ブロックを動きベクトル探索の候補とし、動きベクトルの評価値を算出する。(S504)   Next, when the motion vector control unit 105 determines that a pixel value that is not included in the search region is not necessary for calculation of the pixel value at the decimal position (No in S503), the decimal accuracy motion vector detection unit 104 receives this determination. Then, the image block at the decimal position including the pixel value at the decimal position is set as a candidate for motion vector search, and an evaluation value of the motion vector is calculated. (S504)

また、動きベクトル制御部105が小数位置の画素値の算出に探索領域に含まれない画素値が必要であると判断すると(S503でYes)、小数精度動きベクトル検出部104は、かかる判断を受けて当該小数位置の画素値を含む小数位置の画像ブロックを動きベクトル探索の候補から除外する。そのため、その小数位置の画像ブロックについて動きベクトルの評価値は、算出されない。   If the motion vector control unit 105 determines that a pixel value that is not included in the search region is necessary for calculation of the pixel value at the decimal position (Yes in S503), the decimal accuracy motion vector detection unit 104 receives the determination. Then, the image block at the decimal position including the pixel value at the decimal position is excluded from the motion vector search candidates. Therefore, the motion vector evaluation value is not calculated for the image block at the decimal position.

ここで、評価値とは、符号化対象ブロックと探索領域内の画像ブロックとがどれくらい近似しているかを数値化したものである。例えば、符号化対象ブロックに含まれる画素の画素値と探索領域内の画像ブロックに含まれる画素の画素値との差の絶対値の合計である。   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 vector detection unit 104 outputs the motion vector having the minimum evaluation value as the detected motion vector. (S505)

以下、図11を参照して、図5に示す処理において、動きベクトル検出制御部105が行う制御の具体例を説明する。ここでの補間方法は、6TAPフィルタであるとする。   Hereinafter, a specific example of the control performed by the motion vector detection control unit 105 in the process shown in FIG. 5 will be described with reference to FIG. The interpolation method here is assumed to be a 6TAP filter.

まず、例えば、整数精度動きベクトル検出処理において(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 vector detection unit 103, a decimal number is calculated. Image blocks that can be candidates in the precision motion vector detection unit 104 are a (3,3), a (4,3), a (5,3), a (3,4), a (4,4), a These are nine image blocks each including nine points (5,4), a (3,5), a (4,5), and a (5,5) in the upper left corner. The motion vector detection control unit 105 repeats the processing of S503 and S504 for these image blocks that can be search candidates (S502).

動きベクトル検出制御部105は、各画像ブロックに含まれる画素の全てについて、小数位置の画素値の算出に探索領域に含まれない画素値が必要か否かを判断する(S503)。   The motion vector detection control unit 105 determines whether or not a pixel value not included in the search region is necessary for calculation of the pixel value at the decimal position for all the pixels included in each image block (S503).

これらの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 vector detection unit 104 adds a (4,4) to a (5,4), a (4,5), a (5,5), and sets each of the four points to the upper left corner. Evaluation values are calculated for the four image blocks included (S504). The decimal precision motion vector detection unit 104 detects a motion vector from the position indicated by the block having the smallest evaluation value and the position of the encoding target block (S505).

次に、例えば整数精度動きベクトル検出処理において(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 vector detection unit 103, a The processing of S503 and S504 is repeated for the image block at the decimal position including the eight decimal positions around (2, 2) at the upper left corner (S502).

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 vector detection unit 104 detects a motion vector from the position of the block (S505). .

図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 detection control unit 105 is a pixel included in an image block specified by an integer precision motion vector detected by the integer precision motion vector detection unit 103 for the encoding target block. If the pixel value of the pixel outside the image area stored in the search area image data memory 102 is necessary for calculating the pixel value of the pixel at the decimal position located around the image block, the image block including the pixel at the decimal position Is excluded from the search candidates, and for the encoding target block, all the image blocks at the decimal position are excluded from the search candidates.

すなわち、図6に示す処理において動きベクトル検出制御部105は、上記の場合に、整数精度動きベクトル検出部103の結果を、本発明に係る動きベクトル検出部107により検出された動きベクトルとする制御を行う。   That is, in the process shown in FIG. 6, in the above case, the motion vector detection control unit 105 controls the result of the integer precision motion vector detection unit 103 as the motion vector detected by the motion vector detection unit 107 according to the present invention. I do.

整数精度動きベクトル検出部103は、動きベクトルを整数精度で検出する(S601)。この処理は、図5に示すS501と同じであるため、詳細は省略する。   The integer precision motion vector detection unit 103 detects the motion vector with integer precision (S601). This process is the same as S501 shown in FIG.

次に、動きベクトル検出制御部105は、整数精度で検出された画像ブロックの内部および周囲に位置する小数位置の画素から構成される8個の小数位置の画像ブロックに含まれる全ての画素について、画素値の算出に探索領域に含まれない画素値が必要か否かを判断する(S602)。   Next, the motion vector detection control unit 105 performs the processing for all the pixels included in the eight decimal position image blocks configured from the decimal position pixels located inside and around the image block detected with integer precision. It is determined whether or not a pixel value that is not included in the search area is necessary for calculating the pixel value (S602).

次に、動きベクトル制御部105が、上記の8個の画像ブロックに含まれる画素の全てについて、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要でないと判断すると(S602でNo)、小数精度動きベクトル検出部104は、かかる判断を受けて、各画像ブロックの評価値を算出し、評価値が最小となる画像ブロックの位置から動きベクトルを検出する(S603)。   Next, when the motion vector control unit 105 determines that pixel values of integer positions that are not included in the search region are not necessary for calculation of pixel values for all of the pixels included in the above eight image blocks ( In step S602, the decimal precision motion vector detection unit 104 receives the determination, calculates an evaluation value of each image block, and detects a motion vector from the position of the image block having the minimum evaluation value (S603).

また、動きベクトル制御部105が、上記の8個の画像ブロックに含まれる画素のうちの1点でも画素値の算出に探索領域に含まれない整数位置の画素値が必要であると判断すると(S602でYes)、小数精度動きベクトル検出部104は、かかる判断を受けて、整数精度動きベクトル検出部103が検出した動きベクトルを検出された動きベクトルとして出力する(S604)。   Further, when the motion vector control unit 105 determines that a pixel value at an integer position that is not included in the search region is necessary for calculation of the pixel value even at one of the pixels included in the eight image blocks. In response to the determination, the decimal precision motion vector detection unit 104 outputs the motion vector detected by the integer precision motion vector detection unit 103 as the detected motion vector (S604).

図11を参照して、図6に示す処理において、動きベクトル検出制御部105が行う制御の具体例を説明する。ここでの補間方法は、6TAPフィルタであるとする。   A specific example of control performed by the motion vector detection control unit 105 in the process shown in FIG. 6 will be described with reference to FIG. The interpolation method here is assumed to be a 6TAP filter.

まず、例えば整数精度動きベクトル検出部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 unit 103 will be described. The eight decimal pixels located around a (6,6) are a (5,5), a (6,5), a (7,5), a (5,6), a ( 7,6), a (5,7), a (6,7), a (7,7). The motion vector detection control unit 105 calculates pixel values of integer positions that are not included in the search area for calculating the pixel values of all the pixels included in the eight decimal positions of the image block including the eight points in the upper left corner. Is determined whether it is not necessary (S602).

これらの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 detection control unit 105 performs the processing for all the pixels included in the eight image blocks including the pixels at the decimal positions located around the image block at the integer position detected by the integer precision motion vector detection unit 103. Then, it is determined that pixel values at integer positions not included in the search area are not necessary for the calculation of pixel values (No in S602).

かかる判断を受けた小数精度動きベクトル検出部104は、上記の8個の小数位置の画像ブロックにa(6,6) を左上角に含む整数位置の画像ブロックを加えた、9個の画像ブロックについて評価値を計算し、評価値が最小となるブロックの位置と符号化対象ブロックの位置とから動きベクトルを検出する(S603)。   The decimal precision motion vector detection unit 104 having received such a determination adds nine image blocks obtained by adding the image block at the integer position including a (6,6) in the upper left corner to the above-described eight decimal position image blocks. An evaluation value is calculated for, and a motion vector is detected from the position of the block having the smallest evaluation value and the position of the encoding target block (S603).

次に、例えば整数精度動きベクトル検出部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 detection unit 103 will be described. 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. The pixel value at the decimal position cannot be calculated from the pixel value alone using the 6TAP filter.

そのため、動きベクトル検出制御部105は、整数精度動きベクトル検出部103が検出した整数位置の画素の周囲に位置する小数位置の画素値の算出に探索領域に含まれない整数位置の画素値が必要であると判断する(S602でYes)。   Therefore, the motion vector detection control unit 105 needs a pixel value at an integer position that is not included in the search region to calculate a pixel value at a decimal position located around the pixel at the integer position detected by the integer precision motion vector detection unit 103. (Yes in S602).

かかる判断を受けた小数精度動きベクトル検出部104は、整数精度動きベクトル検出部103が検出したa(4,4)を左上角に含む画像ブロックが示す位置と符号化対象ブロックの位置とから動きベクトルを検出する(S604)。   The decimal precision motion vector detection unit 104 that has received this determination moves from the position indicated by the image block including the a (4,4) detected by the integer precision motion vector detection unit 103 in the upper left corner and the position of the encoding target block. A vector is detected (S604).

図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 detection control unit 105 is a pixel included in an image block specified by an integer precision motion vector detected by the integer precision motion vector detection unit 103 for the encoding target block. If the pixel value of the pixel outside the image area stored in the search area image data memory 102 is necessary for calculating the pixel value of the pixel at the decimal position located around the image block, the image block including the pixel at the decimal position Are excluded from the search candidates, and all the image blocks at the decimal positions are excluded from the search candidates for the encoding target block, and further, the image blocks at the integer positions are excluded from the search candidates for the encoding target block. Control.

整数精度動きベクトル検出部103は、動きベクトルを整数精度で検出する(S701)。この処理は、図5に示すS501と同じであるため、詳細は省略する。   The integer precision motion vector detection unit 103 detects the motion vector with integer precision (S701). This process is the same as S501 shown in FIG.

次に、動きベクトル検出制御部105は、整数精度で検出された画像ブロックの内部および周囲に位置する小数位置の画素から構成される8個の小数位置の画像ブロックに含まれる全ての画素について、画素値の算出に探索領域に含まれない画素値が必要か否かを判断する(S702)。   Next, the motion vector detection control unit 105 performs the processing for all the pixels included in the eight decimal position image blocks configured from the decimal position pixels located inside and around the image block detected with integer precision. It is determined whether or not a pixel value that is not included in the search area is necessary for calculating the pixel value (S702).

次に、動きベクトル制御部105が、上記の8個の画像ブロックに含まれる画素の全てについて、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要でないと判断すると(S702でNo)、小数精度動きベクトル検出部104は、かかる判断を受けて、各画像ブロックの評価値を算出し、評価値が最小となる画像ブロックの位置から動きベクトルを検出する(S703)。   Next, when the motion vector control unit 105 determines that pixel values of integer positions that are not included in the search region are not necessary for calculation of pixel values for all of the pixels included in the above eight image blocks ( In response to this determination, the decimal precision motion vector detection unit 104 calculates an evaluation value of each image block and detects a motion vector from the position of the image block having the minimum evaluation value (S703).

また、動きベクトル制御部105が、上記の8個の画像ブロックに含まれる画素のうちの1点でも画素値の算出に探索領域に含まれない整数位置の画素値が必要であると判断すると(S702でYes)、小数精度動きベクトル検出部104は、かかる判断を受けて、動きベクトルを検出しない(S704)。   Further, when the motion vector control unit 105 determines that a pixel value at an integer position that is not included in the search region is necessary for calculation of the pixel value even at one of the pixels included in the eight image blocks. In response to the determination, the decimal precision motion vector detection unit 104 does not detect a motion vector (S704).

図11を参照して、図7に示す処理において、動きベクトル検出制御部105が行う制御の具体例を説明する。ここでの補間方法は、6TAPフィルタであるとする。   A specific example of control performed by the motion vector detection control unit 105 in the process shown in FIG. 7 will be described with reference to FIG. The interpolation method here is assumed to be a 6TAP filter.

まず、例えば整数精度動きベクトル検出部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 detection control unit 105 performs the control shown in FIG. 6, an integer position including a (6,6) in the upper left corner This is the same as the processing when the motion vector indicating the image block is detected by the integer precision motion vector detection unit 103 (No in S602, then S603).

次に、例えば整数精度動きベクトル検出部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 detection unit 103 will be described. 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. The pixel value at the decimal position cannot be calculated from the pixel value alone using the 6TAP filter.

そのため、動きベクトル検出制御部105は、整数精度動きベクトル検出部103が検出した整数位置の画素の周囲に位置する8個の小数位置の画像ブロックに含まれる全ての小数位置の画素について、画素値の算出に探索領域に含まれない整数位置の画素値が必要であると判断する(S702でYes)。   Therefore, the motion vector detection control unit 105 performs pixel values for all the decimal position pixels included in the eight decimal position image blocks located around the integer position pixels detected by the integer precision motion vector detection unit 103. It is determined that a pixel value at an integer position that is not included in the search region is necessary for the calculation of (Yes in S702).

かかる判断をした動きベクトル検出制御部105は、当該符号化対象ブロックについて一切の画像ブロックを探索候補から除外する。そのため、小数精度動きベクトル検出部104による動きベクトルの検出は禁止される(S704)。   The motion vector detection control unit 105 that has made such a determination excludes all image blocks from the search candidates for the encoding target block. Therefore, the detection of the motion vector by the decimal precision motion vector detection unit 104 is prohibited (S704).

以上のように動きベクトル検出部107が図5から図7に示す処理を実行することにより、小数精度動きベクトル検出部104は、探索候補を制限されない限り小数精度の動きベクトルを探索することができる。また、探索候補を制限することにより動きベクトルの検出は、探索領域画像データメモリ102が記憶している画像領域に含まれる画素値のみを用いて行われる。そのため、消費電力の増加や回路規模の増加を抑えながら、圧縮画像の画質や符号化効率の向上を図ることが可能となる。   As described above, the motion vector detection unit 107 executes the processing shown in FIGS. 5 to 7 so that the decimal precision motion vector detection unit 104 can search for a decimal precision motion vector unless the search candidates are limited. . In addition, the motion vector is detected by limiting the search candidates by using only the pixel values included in the image area stored in the search area image data memory 102. Therefore, it is possible to improve the image quality and coding efficiency of the compressed image while suppressing an increase in power consumption and an increase in circuit scale.

次に、図8から図10に示す処理において、動きベクトル検出制御部105は、整数精度動きベクトル検出部103により検出された整数位置の画像ブロックの内部および周囲にある小数位置の画素から構成される複数の小数位置の画像ブロックの中に、画素値の算出に探索領域画像データメモリ102が記憶している領域外の画素の画素値が必要となる画素を含む画像ブロックがある場合に、補間に用いる整数画素の画素数を調整する制御や不足する画素値に探索領域画像データメモリ102が記憶している画素値を代用する制御を行う。   Next, in the processing shown in FIGS. 8 to 10, the motion vector detection control unit 105 is composed of pixels at the decimal positions inside and around the image block at the integer position detected by the integer precision motion vector detection unit 103. If there is an image block that includes pixels that require pixel values of pixels outside the area stored in the search area image data memory 102 for calculation of pixel values, among the plurality of decimal position image blocks Control for adjusting the number of integer pixels used for the control, and control for substituting the pixel value stored in the search area image data memory 102 for the insufficient pixel value.

このような動きベクトル検出制御部105の制御により、小数精度動きベクトル検出部104は、全ての小数位置の画素値を探索領域画像データメモリ102が記憶している画素値から算出する。以下、図8から図10を参照しながら、動きベクトル検出部107が行う処理を説明する。   Under such control of the motion vector detection control unit 105, the decimal precision motion vector detection unit 104 calculates the pixel values of all the decimal positions from the pixel values stored in the search area image data memory 102. Hereinafter, the processing performed by the motion vector detection unit 107 will be described with reference to FIGS.

図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 detection control unit 105 is a pixel included in an image block specified by an integer precision motion vector detected by the integer precision motion vector detection unit 103 for the encoding target block. If the pixel value of the pixel outside the image area stored in the search area image data memory 102 is necessary for calculating the pixel value of the pixel at the decimal position located around the pixel area, the pixel value of the pixel at the decimal position is calculated. This is control for calculating the pixel value at the decimal position by reducing the number of pixels used for the calculation to the number of pixels that can be acquired from the pixel values stored in the search area image data memory 102.

整数精度動きベクトル検出部103は、動きベクトルを整数精度で検出する(S801)。この処理は、図5に示すS501と同じであるため、詳細は省略する。   The integer precision motion vector detection unit 103 detects the motion vector with integer precision (S801). This process is the same as S501 shown in FIG.

次に、動きベクトル検出制御部105は、整数精度で検出された画像ブロックの内部および周囲に位置する小数位置の画素から構成される8個の小数位置の画像ブロックに含まれる各画素について、画素値の算出に探索領域に含まれない画素値が必要か否かを判断する(S802)。   Next, the motion vector detection control unit 105 calculates a pixel for each pixel included in the eight decimal positions of the image block including the pixels within and around the image block detected with integer precision. It is determined whether or not a pixel value that is not included in the search area is necessary for calculating the value (S802).

次に、動きベクトル制御部105が、上記の8個の小数位置の画像ブロックに含まれる画素について、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要でないと判断すると(S802でNo)、小数精度動きベクトル検出部104は、かかる判断を受けて、所定のTAP数を用いてその画素の画素値を算出する(S803)。   Next, when the motion vector control unit 105 determines that the pixel value of the pixel at the integer position not included in the search region is not necessary for the calculation of the pixel value for the pixel included in the above-described eight decimal position image blocks. (No in S802), the decimal precision motion vector detection unit 104 receives the determination and calculates the pixel value of the pixel using a predetermined number of TAPs (S803).

また、動きベクトル制御部105が、上記の8個の画像ブロックに含まれる画素について、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要であると判断すると(S802でYes)、その画素について、TAP数を所定のTAP数より少なくすることにより、画素値を算出する。   If the motion vector control unit 105 determines that the pixel value of the pixel at the integer position not included in the search region is necessary for the calculation of the pixel value for the pixel included in the eight image blocks (S802). Yes) For the pixel, the pixel value is calculated by making the number of TAPs smaller than the predetermined number of TAPs.

さらに、小数精度動きベクトル検出部104は、算出された小数位置の画素値を用いて各動きベクトルの評価値を算出し、評価値が最小となる動きベクトルを検出された動きベクトルとして出力する(S804)。   Further, the decimal precision motion vector detection unit 104 calculates an evaluation value of each motion vector using the calculated pixel value of the decimal position, and outputs a motion vector having the smallest evaluation value as a detected motion vector ( S804).

図11を参照して、図8に示す動きベクトル検出処理S5において、動きベクトル検出制御部105が行う制御の具体例を説明する。ここでの補間方法は、6TAPフィルタを使用し、6TAPフィルタを使用できない場合、4TAPフィルタまたは2TAPフィルタを使用するとする。   A specific example of control performed by the motion vector detection control unit 105 in the motion vector detection process S5 illustrated in FIG. 8 will be described with reference to FIG. In this interpolation method, a 6TAP filter is used. When the 6TAP filter cannot be used, a 4TAP filter or a 2TAP filter is used.

まず、例えば整数精度動きベクトル検出部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 unit 103 will be described. The eight decimal pixels located around a (6,6) are a (5,5), a (6,5), a (7,5), a (5,6), a ( 7,6), a (5,7), a (6,7), a (7,7). The motion vector detection control unit 105 uses the eight decimal positions including these eight points in the upper left corner as search candidates, and for each pixel included in each search candidate, the pixel value is included in the search area for calculation. It is determined whether or not a pixel value at a non-integer integer position is necessary (S802).

これらの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 detection control unit 105 determines that a pixel value at an integer position that is not included in the search region is not necessary for the calculation of the pixel value for each of these pixels (No in S802). The decimal precision motion vector detection unit 104 that has received such determination calculates the pixel value of each pixel using a 6TAP filter, and adds a (6,6) to the image block at the decimal position including the above eight points in the upper left corner. The evaluation values of the nine image blocks including the image block at the integer position included in the upper left corner are calculated, and a motion vector is detected from the position of the image block having the smallest evaluation value and the position of the encoding target block (S804). ).

次に、例えば整数精度動きベクトル検出部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 detection unit 103 will be described. 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. The pixel value at the decimal position cannot be calculated from the pixel value alone using the 6TAP filter. Therefore, the motion vector detection control unit 105 determines that a pixel value at an integer position that is not included in the search area is necessary for calculating the pixel value (Yes in S802). The motion vector detection control unit 105 that has made such a determination adjusts the number of TAPs of the filter (S803).

各画素における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 detection control unit 105 uses a (3,3), a (4,3), a (5,3), a (3,4) as 4TAP filters that enable interpolation of these five points. , A (5,4), a (3,5), a (4,5), a (5,5), the decimal precision motion vector detection unit 104 is controlled so as to be used at all eight points.

また、例えば、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 detection control unit 105 controls the decimal precision motion vector detection unit 104 to use a 2TAP filter. The pixel values of pixels at integer positions that can be used to calculate a (1,2) from the pixel values stored in the search area image data memory 102 are limited to a (0,2) and a (2,2). This is because neither a 6TAP filter nor a 4TAP filter can be used. As described above, the number of TAPs of the filter is determined by how many pixel values of pixels at integer positions that can be used as pixel values of pixels at the decimal positions to be calculated are stored in the search area image data memory 102. .

図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 detection control unit 105 is a pixel included in an image block specified by an integer precision motion vector detected by the integer precision motion vector detection unit 103 for the encoding target block. If the pixel value of the pixel outside the image area stored in the search area image data memory 102 is required for calculating the pixel value of the pixel at the decimal position located around the pixel, the pixel value at the decimal position is calculated. For the pixel value of the pixel located outside the area stored in the search area image data memory 102 necessary for the purpose, the pixel value in the image area located closest to the pixel located outside the image area is substituted. In this way, the pixel value at the decimal position is calculated.

整数精度動きベクトル検出部103は、動きベクトルを整数精度で検出する(S901)。この処理は、図5に示すS501と同じであるため、詳細は省略する。   The integer precision motion vector detection unit 103 detects the motion vector with integer precision (S901). This process is the same as S501 shown in FIG.

次に、動きベクトル検出制御部105がS902において行う判断処理は、図8に示すS802と同じであるため、詳細は省略する。   Next, the determination process performed by the motion vector detection control unit 105 in step S902 is the same as that in step S802 illustrated in FIG.

次に、動きベクトル制御部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 vector control unit 105 does not include the search region in the pixel value calculation. If it is determined that the pixel value of this pixel is not necessary (No in S902), the decimal precision motion vector detection unit 104 receives this determination and calculates the pixel value of that pixel (S904).

また、動きベクトル制御部105が、上記の8個の画像ブロックに含まれる画素について、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要であると判断すると(S902でYes)、小数精度動きベクトル検出部104は、その小数位置の画素値の算出に必要な探索領域外の整数位置の画素値に、探索領域画像データメモリ102に記憶されている整数位置の画素値を代用することにより、画素値を算出する。   If the motion vector control unit 105 determines that the pixel value of the pixel at the integer position not included in the search region is necessary for the calculation of the pixel value for the pixel included in the eight image blocks (S902). Yes), the decimal precision motion vector detection unit 104 adds the pixel value at the integer position stored in the search area image data memory 102 to the pixel value at the integer position outside the search area necessary for calculating the pixel value at the decimal position. The pixel value is calculated by substituting.

ここで、代用される画素値は、小数位置の画素値算出に必要である領域外の整数位置の画素から最も近い、探索領域内の境界に位置する整数画素値である。   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 vector detection unit 104 calculates an evaluation value of the motion vector using the calculated pixel value at the decimal position, and outputs the motion vector having the minimum evaluation value as the detected motion vector (S904). ).

図11を参照して、図9に示す動きベクトル検出処理S505において、動きベクトル検出制御部105が行う制御の具体例を説明する。ここでの補間方法は、6TAPフィルタであるとする。   A specific example of control performed by the motion vector detection control unit 105 in the motion vector detection process S505 illustrated in FIG. 9 will be described with reference to FIG. The interpolation method here is assumed to be a 6TAP filter.

まず、例えば整数精度動きベクトル検出部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 detection unit 103 will be described.

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 detection control unit 105 determines that a pixel value at an integer position that is not included in the search region is necessary for calculation of the pixel value for each of these five pixels (Yes in S902).

かかる判断をした動きベクトル検出制御部105は、必要となる探索領域外の画素値に、その画素に最も近い探索領域の境界に位置する画素値を代用する(S903)。必要となる探索領域外の画素に最も近い領域内の画素とは、必要となる探索領域外の画素から探索領域の境界に下ろした垂線と探索領域の境界線との交点の間際に位置する、領域内の画素のことである。   The motion vector detection control unit 105 that has made such a determination substitutes a pixel value located at the boundary of the search region closest to the pixel as a pixel value outside the required search region (S903). The pixel in the region closest to the pixel outside the required search region is located between the intersection of the vertical line drawn from the pixel outside the required search region to the boundary of the search region and the boundary line of the search region, A pixel in a region.

例えば、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 detection control unit 105 substitutes the pixel value of a (0,4), which is the pixel in the search region closest to a (-2,4), as the pixel value of a (-2,4). (S903). The same applies to a (3,3), a (4,3), a (5,3), and a (3,5).

さらに動きベクトル検出制御部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 detection control unit 105. 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 (−2, 4) and a (−2, 2) are pixels outside the search area. Therefore, the motion vector detection control unit 105 searches for the pixel values of a (-2,4) and a (-2,2) that are closest to a (-2,4) and a (-2,2), respectively. The pixel value of a (0,2), which is a pixel in the area, is substituted (S903).

図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 detection control unit 105 is a pixel included in an image block specified by an integer precision motion vector detected by the integer precision motion vector detection unit 103 for the encoding target block. If the pixel value of the pixel outside the image area stored in the search area image data memory 102 is required for calculating the pixel value of the pixel at the decimal position located around the pixel, the pixel value at the decimal position is calculated. The pixel value of the pixel located outside the image area stored in the search area image data memory 102 necessary for the line between the pixel located outside the image area and the area closest to the pixel This is a control for substituting the pixel value shown at the symmetrical position and calculating the pixel value at the decimal position.

整数精度動きベクトル検出部103は、動きベクトルを整数精度で検出する(S1001)。この処理は、図5に示すS501と同じであるため、詳細は省略する。   The integer precision motion vector detection unit 103 detects the motion vector with integer precision (S1001). This process is the same as S501 shown in FIG.

次に、動きベクトル検出制御部105がS1002において行う判断処理は、図8に示すS802と同じであるため、詳細は省略する。   Next, the determination process performed by the motion vector detection control unit 105 in S1002 is the same as that in S802 shown in FIG.

次に、動きベクトル検出制御部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 detection control unit 105 for the pixels included in the image blocks at the eight decimal positions positioned around the image block detected with integer precision. When it is determined that the pixel value of the pixel at the position is not necessary (No in S1002), the decimal precision motion vector detection unit 104 receives the determination and calculates the pixel value of the pixel (S1004). This is the same as the processing performed in S904 shown.

また、動きベクトル制御部105は、上記の8個の画像ブロックに含まれる画素について、画素値の算出に探索領域に含まれない整数位置の画素の画素値が必要であると判断すると(S1002でYes)、小数精度動きベクトル検出部104が代用値を用いて画素値を算出し、動きベクトルを検出することも(S1004)、図9に示すS904において行われる処理と同じである。   In addition, when the motion vector control unit 105 determines that the pixel values of the pixels at the integer positions not included in the search region are necessary for the calculation of the pixel values for the pixels included in the above eight image blocks (S1002). Yes), the decimal precision motion vector detection unit 104 calculates a pixel value using a substitute value and detects a motion vector (S1004), which is the same as the processing performed in S904 shown in FIG.

本図の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 detection control unit 105 substitutes for the pixel value not stored in the search area image data memory 102 in S904 of FIG. 9 is an integer position outside the area that is necessary for calculating the pixel value at the decimal position. This pixel is located at the boundary of the area stored in the search image area data memory 102 that is located closest to the other pixel.

これに対して、本図のS1004において動きベクトル検出制御部105が、探索領域画像データメモリ102が記憶していない画素値に代用する画素値は、小数位置の画素値算出に必要である領域外の整数位置の画素と、探索画像領域データメモリ102が記憶する領域の境界を挟んで対称な位置にある画素の画素値である。   On the other hand, the pixel value that the motion vector detection control unit 105 substitutes for the pixel value that is not stored in the search area image data memory 102 in S1004 in this figure is out of the area necessary for calculating the pixel value at the decimal position. The pixel value of the pixel at the integer position and the pixel at the symmetrical position across the boundary of the area stored in the search image area data memory 102.

図11を参照して、図10に示す動きベクトル検出処理S5において、動きベクトル検出制御部105が行う制御の具体例を説明する。ここでの補間方法は、6TAPフィルタであるとする。   A specific example of control performed by the motion vector detection control unit 105 in the motion vector detection process S5 illustrated in FIG. 10 will be described with reference to FIG. The interpolation method here is assumed to be a 6TAP filter.

これまで、本図の説明で述べたように、本図に示す処理と図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 image data memory 102, the pixel value at which position in the area stored in the search area image data memory 102 is to be substituted.

すなわち、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 detection control unit 105 uses a (0,4) which is a pixel at a symmetrical position with respect to a (-2,4) as a pixel value of a (-2,4) across the boundary in the search area. ) Is substituted (S1003).

次に、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 detection control unit 105 uses a (0,2) which is a pixel at a symmetrical position with respect to a (-2,2) as a pixel value of a (-2,2) across the boundary in the search area. ) Is substituted (S1003).

また、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 vector detection unit 107 executes the processing shown in FIGS. 8 to 10, so that the decimal positions in and around the image block at the integer position detected by the integer precision motion vector detection unit 103 are detected. Among the plurality of decimal position image blocks made up of pixels, there is an image block that includes pixels that require pixel values of pixels outside the region stored in the search region image data memory 102 for calculation of pixel values. Even in such a case, it is possible to detect a motion vector with decimal precision. Therefore, as compared with the method described with reference to FIGS. 5 to 7, the search area for motion vector detection can be expanded without increasing the search area image data memory 102. Therefore, it is possible to further improve the image quality and coding efficiency of the compressed image while suppressing an increase in power consumption and an increase in circuit scale.

以上、本発明の実施の形態に係る動きベクトル検出部107について説明したが、本発明は、この実施の形態に限定されるものではない。   The motion vector detection unit 107 according to the embodiment of the present invention has been described above, but the present invention is not limited to this embodiment.

例えば、小数位置の画素値の補間に用いるに各フィルタに係る変形例が考えられる。まず、実施の形態において用いるフィルタは、本発明の動きベクトル検出部を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 vector detection unit 104 may use different methods for interpolation calculation of pixels at decimal positions in the vertical direction and the horizontal direction.

また、図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 detection control unit 105 can use the search area image data memory 102 that can be used to calculate the pixel value of the pixel. The number of TAPs is reduced to 4 TAP and 2 TAP according to the number of pixel values stored. However, if the calculation cannot be performed using the 6TAP filter, the 2TAP filter may always be applied.

さらに、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 image data memory 102 may store all the lines of the reference picture including the search area as shown in FIG.

図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 image data memory 102 and the reference picture. The encoding target block 303 and the search area 302 are the same as those in FIG. The search area image data memory 102 stores only the search area of the reference picture in FIG. 3, whereas FIG. 12 stores all the lines 305 including the search area in the reference picture. Different.

この場合、小数位置の画素の画素値の算出は、探索領域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 search area 302 but also the pixel value of the pixel in the line 305 including the search area.

さらに例えば、本実施の形態では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 vector detection unit 104 when detecting a motion vector with 1 / M pixel accuracy performs a motion vector search with 1/2 pixel accuracy, and a motion vector with 1/4 pixel accuracy. A motion vector with 1 / M pixel accuracy may be detected step by step, such as detection. Alternatively, a 1 / M pixel precision motion vector may be detected by searching all positions with 1 / M pixel precision existing around the position indicated by the input one pixel precision motion vector.

なお、図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 picture coding apparatus 100 including the motion vector detection unit 107 according to the present invention is not limited to LSI. The integration method may be realized by a dedicated circuit or a general-purpose processor. An FPGA (Field Programmable Gate Array) that can be programmed after the manufacture of the LSI or a reconfigurable processor that can reconfigure the connection and setting of the circuit cells inside the LSI may be used.

さらに、半導体技術の進歩又は派生する別技術により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.

本発明の実施の形態に係る動きベクトル検出部を備えた動画像符号化装置の構成を示すブロック図である。It is a block diagram which shows the structure of the moving image encoding apparatus provided with the motion vector detection part which concerns on embodiment of this invention. 動画像符号化装置に含まれる符号化部の構成を示すブロック図である。It is a block diagram which shows the structure of the encoding part contained in a moving image encoder. 探索領域画像データメモリが記憶している画像と参照ピクチャとの関係の第1の例を示す図である。It is a figure which shows the 1st example of the relationship between the image which the search area | region image data memory has memorize | stored, and a reference picture. 本実施の形態に係る動きベクトル検出装置を備える動画像符号化装置において実行される処理のフローチャートである。It is a flowchart of the process performed in a moving image encoder provided with the motion vector detection apparatus which concerns on this Embodiment. 図4に示す動きベクトル検出処理S405の詳細の第1の例を示すフローチャートである。5 is a flowchart showing a first example of details of motion vector detection processing S405 shown in FIG. 4. 図4に示す動きベクトル検出処理S405の詳細の第2の例を示すフローチャートである。6 is a flowchart showing a second example of details of motion vector detection processing S405 shown in FIG. 4. 図4に示す動きベクトル検出処理S405の詳細の第3の例を示すフローチャートである。6 is a flowchart showing a third example of details of motion vector detection processing S405 shown in FIG. 4. 図4に示す動きベクトル検出処理S405の詳細の第4の例を示すフローチャートである。It is a flowchart which shows the 4th example of the detail of the motion vector detection process S405 shown in FIG. 図4に示す動きベクトル検出処理S405の詳細の第5の例を示すフローチャートである。It is a flowchart which shows the 5th example of the detail of motion vector detection process S405 shown in FIG. 図4に示す動きベクトル検出処理S405の詳細の第6の例を示すフローチャートである。It is a flowchart which shows the 6th example of the detail of motion vector detection process S405 shown in FIG. 探索領域内の画素値により、算出できる小数位置の画素値および算出できない小数位置の画素値の位置関係を示す図である。It is a figure which shows the positional relationship of the pixel value of the decimal position which can be calculated with the pixel value in a search area | region, and the pixel value of the decimal position which cannot be calculated. 探索領域画像データメモリが記憶している領域と参照ピクチャとの関係の第2の例を示す図である。It is a figure which shows the 2nd example of the relationship between the area | region which the search area | region image data memory has memorize | stored, and a reference picture.

符号の説明Explanation of symbols

100 動画像符号化装置
101 ピクチャ画像データメモリ
102 探索領域画像データメモリ
103 整数精度動きベクトル検出
104 小数精度動きベクトル検出
105 動きベクトル検出制御部
106 符号化部
107 動きベクトル検出部
201 面内予測部
202 動き補償部
203 減算器
204 直交変換部
205 量子化部
206 逆量子化部
207 逆直交変換部
208 加算器
209 スイッチ
210 エントロピー符号化部
DESCRIPTION OF SYMBOLS 100 Moving image encoder 101 Picture image data memory 102 Search area image data memory 103 Integer precision motion vector detection 104 Decimal precision motion vector detection 105 Motion vector detection control part 106 Encoding part 107 Motion vector detection part 201 In-plane prediction part 202 Motion compensator 203 Subtractor 204 Orthogonal transformer 205 Quantizer 206 Inverse quantizer 207 Inverse orthogonal transformer 208 Adder 209 Switch 210 Entropy encoder

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.
前記第2検出手段は、さらに、符号化対象ブロックに対して前記第1検出手段が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、前記画像記憶手段が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素を含む画像ブロックを前記探索候補から除外する
ことを特徴とする請求項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.
前記第2検出手段は、符号化対象ブロックに対して前記第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
前記第2検出手段は、符号化対象ブロックに対して前記第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 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.
前記第2検出手段は、さらに、符号化対象ブロックに対して前記第1検出手段が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、前記画像記憶手段が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素の画素値を、前記画像記憶手段が記憶している画素値のみから算出する
ことを特徴とする請求項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:
前記第2検出手段は、さらに、符号化対象ブロックに対して前記第1検出手段が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、前記画像記憶手段が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素の画素値の算出に用いる画素数を、前記画像記憶手段が記憶している画素値から取得できる画素数に減らすことにより前記小数位置の画素値を算出する
ことを特徴とする請求項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.
前記第2検出手段は、さらに、符号化対象ブロックに対して前記第1検出手段が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、前記画像記憶手段が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素値を算出するために必要な、前記画像記憶手段が記憶している領域の外に位置する画素の画素値に、当該画像領域の外に位置する画素の最も近くに位置する前記画像領域内の画素値を代用して前記小数位置の画素値を算出する
ことを特徴とする請求項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
前記第2検出手段は、さらに、符号化対象ブロックに対して前記第1検出手段が検出する整数精度の動きベクトルにより特定される画像ブロックに含まれる画素の周囲に位置する小数位置の画素の画素値の算出に、前記画像記憶手段が記憶している画像領域の外の画素の画素値が必要な場合、当該小数位置の画素値を算出するために必要な、前記画像記憶手段が記憶している画像領域の外に位置する画素の画素値に、当該領域の外に位置する画素と当該画素に最も近い前記画像領域の境界を挟んで線対称の位置に示される画素値を代用して前記小数位置の画素値を算出する
ことを特徴とする請求項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.
JP2005318898A 2005-11-01 2005-11-01 Motion vector detecting apparatus and method Pending JP2007129370A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
CN115002479A (en) * 2017-06-30 2022-09-02 佳能株式会社 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
CN115037946A (en) * 2017-06-30 2022-09-09 佳能株式会社 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
CN115037946B (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
CN115002479B (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

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
TW202041002A (en) Constraints on decoder-side motion vector refinement
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
JP2006311526A (en) Video decoding device, video decoding method, video decoding program, and video decoding integrated circuit
JP4284265B2 (en) Moving picture coding apparatus, moving picture coding method, moving picture decoding apparatus, and moving picture decoding method
JP2024023885A (en) Video encoding device and video encoding method
CN114930852A (en) Method and apparatus for video encoding and decoding
JP2013048307A (en) Moving picture decoder and moving picture decoding method
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