JP4998134B2 - Image processing apparatus and image processing method - Google Patents

Image processing apparatus and image processing method Download PDF

Info

Publication number
JP4998134B2
JP4998134B2 JP2007206102A JP2007206102A JP4998134B2 JP 4998134 B2 JP4998134 B2 JP 4998134B2 JP 2007206102 A JP2007206102 A JP 2007206102A JP 2007206102 A JP2007206102 A JP 2007206102A JP 4998134 B2 JP4998134 B2 JP 4998134B2
Authority
JP
Japan
Prior art keywords
block
sad value
reference block
unit
target
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.)
Expired - Fee Related
Application number
JP2007206102A
Other languages
Japanese (ja)
Other versions
JP2009044361A (en
Inventor
怜 沼田
徹 倉田
仁孝 和田
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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2007206102A priority Critical patent/JP4998134B2/en
Publication of JP2009044361A publication Critical patent/JP2009044361A/en
Application granted granted Critical
Publication of JP4998134B2 publication Critical patent/JP4998134B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、2枚の異なる画面の間での動きベクトルを検出する画像処理装置および画像処理方法に関する。この明細書で、画面とは、1フレーム分または1フィールド分の画像データからなり、1枚分としてディスプレイに表示される画像を意味しているものとしている。   The present invention relates to an image processing apparatus and an image processing method for detecting a motion vector between two different screens. In this specification, the screen means an image that is composed of image data for one frame or one field and is displayed on the display as one image.

2つの画面間の動きベクトルを、画像情報自身から求めるブロックマッチング手法は、歴史の古い技術である。テレビジョンカメラのパン・チルト検出や被写体追尾、MPEG(Moving Picture Experts Group)方式の動画符号化などを中心に開発が進み、90年代に入ってからは、画像の重ね合わせによる、センサレス手ブレ補正や低照度撮影時のノイズ除去など多岐に渡って応用が進められている。   A block matching method for obtaining a motion vector between two screens from image information itself is an old technology. Development has been centered on pan / tilt detection of TV cameras, subject tracking, moving picture experts group (MPEG) video coding, and sensorless camera shake correction by superimposing images since the 1990s. Applications are being promoted in various ways, such as noise removal during low-light shooting.

ブロックマッチングは、注目画面である参照画面と、当該参照画面の動きの元となる元画面(ターゲット画面と称する)との間の2画面間の動きベクトルを、所定の大きさの矩形領域のブロックについて、参照画面と元画面との間での相関を算出することにより算出する方法である。元画面が時間的に参照画面よりも前の画面とされる場合(例えば、MPEGにおける動き検出の場合)と、参照画面が時間的に元画面よりも前の画面とされる場合(例えば、後述する画像フレームの重ね合わせによるノイズ低減の場合)の両方がある。   In block matching, a motion vector between two screens between a reference screen that is a target screen and an original screen (referred to as a target screen) that is a source of motion of the reference screen is a block of a rectangular area having a predetermined size. Is calculated by calculating the correlation between the reference screen and the original screen. When the original screen is temporally before the reference screen (for example, in the case of motion detection in MPEG), and when the reference screen is temporally prior to the original screen (for example, described later) Both in the case of noise reduction by superimposing image frames to be performed).

なお、前述したように、この明細書で、画面とは、1フレームまたは1フィールドの画像データからなる画像を意味しているが、この明細書における以下の説明の便宜上、画面は1フレームからなるものとして、画面をフレームと称することとする。したがって、参照画面は参照フレーム、元画面は元フレームと称することとする。   As described above, in this specification, the screen means an image composed of image data of one frame or one field, but for the convenience of the following description in this specification, the screen is composed of one frame. As an example, the screen is referred to as a frame. Therefore, the reference screen is referred to as a reference frame, and the original screen is referred to as an original frame.

図33〜図38は、従来のブロックマッチングの概要を説明するための図である。ここで説明するブロックマッチング手法においては、例えば、図33(A)に示すように、元フレーム(ターゲットフレーム)100を、水平方向および垂直方向のそれぞれについて複数個に分割し、それぞれ水平方向の複数画素および垂直方向の複数ライン分からなる所定の大きさの矩形領域102(ブロックという)に分割する。ターゲットフレームにおけるこれらの複数個のブロック102のそれぞれを、ターゲットブロックという。   33 to 38 are diagrams for explaining the outline of conventional block matching. In the block matching method described here, for example, as shown in FIG. 33A, the original frame (target frame) 100 is divided into a plurality of parts in each of the horizontal direction and the vertical direction, and a plurality of horizontal frames are respectively obtained. A rectangular area 102 (referred to as a block) having a predetermined size composed of pixels and a plurality of lines in the vertical direction is divided. Each of the plurality of blocks 102 in the target frame is referred to as a target block.

ブロックマッチングにおいては、ターゲットブロック102と相関性の高いブロックを、参照フレーム101の中から検索する。この検索の結果、相関性が最も高いとして参照フレーム101内に検出されたブロック103(図33(B)参照)を、動き補償ブロックと呼ぶ。また、ターゲットブロック102と動き補償ブロック103との間の位置ずれ量を、動きベクトル(図33(B)の符号104参照)と称する。   In block matching, a block having a high correlation with the target block 102 is searched from the reference frame 101. As a result of this search, the block 103 (see FIG. 33B) detected in the reference frame 101 as having the highest correlation is referred to as a motion compensation block. Further, the amount of positional deviation between the target block 102 and the motion compensation block 103 is referred to as a motion vector (see reference numeral 104 in FIG. 33B).

ターゲットブロック102と動き補償ブロック103との間の位置ずれ(位置ずれ量と位置ずれ方向を含む)に対応する動きベクトル104は、参照フレーム101において、ターゲットフレーム100の各ターゲットブロック102の位置と同じ位置に、ターゲットブロック102の射影イメージブロック109を想定したとき、このターゲットブロックの射影イメージブロック109の位置(例えば中心位置)と、動き補償ブロック103の位置(例えば中心位置)との間の位置ずれに相当し、位置ずれ量と位置ずれの方向成分も有するものである。   A motion vector 104 corresponding to a position shift (including a position shift amount and a position shift direction) between the target block 102 and the motion compensation block 103 is the same as the position of each target block 102 of the target frame 100 in the reference frame 101. Assuming that the projection image block 109 of the target block 102 is assumed as the position, a positional shift between the position of the projection image block 109 of the target block (for example, the center position) and the position of the motion compensation block 103 (for example, the center position). It also has a positional deviation amount and a positional deviation direction component.

ブロックマッチング処理の概要を説明する。図34において点線で示すように、参照フレーム101において、ターゲットフレーム100の各ターゲットブロック102の位置と同じ位置にターゲットブロックの射影イメージブロック109を想定し、このターゲットブロックの射影イメージブロック109の中心の座標を、動き検出の原点105とする。そして、動きベクトル104が、動き検出の原点105から或る範囲内に存在すると仮定し、この動き検出の原点105を中心した所定の範囲をサーチ範囲106(図34の一点鎖線参照)と設定する。   An outline of the block matching process will be described. As shown by a dotted line in FIG. 34, a projected image block 109 of the target block is assumed at the same position as the position of each target block 102 of the target frame 100 in the reference frame 101, and the center of the projected image block 109 of this target block is assumed. The coordinates are set as a motion detection origin 105. Then, assuming that the motion vector 104 exists within a certain range from the motion detection origin 105, a predetermined range centered on the motion detection origin 105 is set as the search range 106 (see the one-dot chain line in FIG. 34). .

次に、ターゲットブロック102と同じ大きさのブロック(参照ブロックという)108を参照画面において設定する。そして、この参照ブロック108の位置を、サーチ範囲106内において、例えば水平方向および垂直方向に、1画素または複数画素単位で移動させるようにする。したがって、サーチ範囲106においては、複数個の参照ブロック108が設定されることになる。   Next, a block (referred to as a reference block) 108 having the same size as the target block 102 is set on the reference screen. The position of the reference block 108 is moved within the search range 106 in units of one pixel or a plurality of pixels, for example, in the horizontal direction and the vertical direction. Accordingly, a plurality of reference blocks 108 are set in the search range 106.

ここで、参照ブロック108を、サーチ範囲106内を移動させるというのは、この例では、動き検出原点105がターゲットブロックの中心位置であるので、参照ブロック108の中心位置を、サーチ範囲106内を移動させることを意味し、参照ブロック108を構成する画素は、サーチ範囲106よりもはみ出すことがある。   Here, the reference block 108 is moved within the search range 106. In this example, since the motion detection origin 105 is the center position of the target block, the center position of the reference block 108 is moved within the search range 106. This means that the pixels constituting the reference block 108 may protrude beyond the search range 106.

そして、サーチ範囲において、設定される各参照ブロック108に対して、当該各参照ブロック108とターゲットブロック102との位置ずれ量および位置ずれ方向を表すベクトル(参照ベクトルという)107(図(B)参照)を設定し、それぞれの参照ベクトル107が指し示す位置にある参照ブロック108の画像内容と、ターゲットブロック102の画像内容との相関性を評価する。   Then, for each reference block 108 to be set in the search range, a vector (referred to as a reference vector) 107 (refer to FIG. (B)) representing a positional deviation amount and a positional deviation direction between each reference block 108 and the target block 102. ) And the correlation between the image content of the reference block 108 at the position indicated by each reference vector 107 and the image content of the target block 102 is evaluated.

参照ベクトル107は、図35に示すように、参照ブロック108の水平方向(X方向)の位置ずれ量Vxとし、垂直方向(Y方向)の位置ずれ量をVyとしたとき、ベクトル(Vx,Vy)と表すことができ、参照ブロック108の位置座標(例えば中心位置座標)とターゲットブロック102の位置座標(例えば中心位置座標)とが同じときには、参照ベクトル107は、ベクトル(0,0)と表す。   As shown in FIG. 35, the reference vector 107 is a vector (Vx, Vy) where the horizontal displacement (X direction) of the reference block 108 is Vx and the vertical displacement (Y direction) is Vy. When the position coordinates (for example, center position coordinates) of the reference block 108 and the position coordinates (for example, center position coordinates) of the target block 102 are the same, the reference vector 107 is represented as a vector (0, 0). .

例えば、参照ブロック108が、ターゲットブロック102の位置から、X方向に1画素ずれた位置にある場合、参照ベクトル107はベクトル(1,0)となる。また、図36に示すように、参照ブロック108が、ターゲットブロック102の位置から、X方向に3画素、Y方向に2画素ずれた位置にある場合には、参照ベクトル107はベクトル(3,2)となる。   For example, when the reference block 108 is at a position shifted by one pixel in the X direction from the position of the target block 102, the reference vector 107 is a vector (1, 0). As shown in FIG. 36, when the reference block 108 is located at a position shifted by 3 pixels in the X direction and 2 pixels in the Y direction from the position of the target block 102, the reference vector 107 is a vector (3, 2). )

つまり、参照ベクトル107は、図36の例に示すように、ターゲットブロック102および参照ブロック108の位置を、それぞれのブロックの中心位置とした場合、各参照ベクトル108は、対応する各参照ブロック108の中心位置とターゲットブロック102の中心位置との位置ずれ(位置ずれ量と位置ずれの方向を含むベクトルとなる)を意味する。   That is, as shown in the example of FIG. 36, when the positions of the target block 102 and the reference block 108 are set to the center positions of the respective blocks, the reference vector 108 has the reference vector 108 of each corresponding reference block 108. This means a displacement between the center position and the center position of the target block 102 (a vector including a displacement amount and a displacement direction).

参照ブロック108は、サーチ範囲106において移動するものとなるが、その場合に、参照ブロック108の中心位置がサーチ範囲106内を移動する。前述もしたように、参照ブロック108は、水平方向および垂直方向の複数画素からなるので、ターゲットブロック102とブロックマッチング処理される対象となる参照ブロック108が移動する最大範囲は、図36に示すように、サーチ範囲106よりも広いマッチング処理範囲110となる。   The reference block 108 moves within the search range 106. In this case, the center position of the reference block 108 moves within the search range 106. As described above, since the reference block 108 includes a plurality of pixels in the horizontal direction and the vertical direction, the maximum range in which the reference block 108 that is subject to block matching processing with the target block 102 is as shown in FIG. Furthermore, the matching processing range 110 is wider than the search range 106.

そして、ターゲットブロック102の画像内容との相関が最も強いとして検出された参照ブロック108の位置を、ターゲットフレーム100のターゲットブロック102の、参照フレーム101における位置(動いた後の位置)として検出し、検出した参照ブロックを、前述した動き補償ブロック103とする。そして、その検出した動き補償ブロック103の位置と、ターゲットブロック102の位置との間の位置ずれ量を、方向成分を含む量としての動きベクトル104として検出するようにする(図33(B)参照)。   Then, the position of the reference block 108 detected as having the strongest correlation with the image content of the target block 102 is detected as the position of the target block 102 of the target frame 100 in the reference frame 101 (position after moving), The detected reference block is set as the motion compensation block 103 described above. Then, the displacement amount between the detected position of the motion compensation block 103 and the position of the target block 102 is detected as a motion vector 104 as an amount including a direction component (see FIG. 33B). ).

ここで、ターゲットブロック102と、サーチ範囲106において移動する参照ブロック108との相関の強さを表す相関値は、基本的にはターゲットブロック102と参照ブロック108との対応する画素値を用いて算出されるが、その算出方法は、自乗平均を用いる方法やその他種々の方法が提案されている。   Here, the correlation value indicating the strength of correlation between the target block 102 and the reference block 108 moving in the search range 106 is basically calculated using the pixel values corresponding to the target block 102 and the reference block 108. However, as the calculation method, a method using a root mean square and various other methods have been proposed.

そのうち、動きベクトルを算出する際に一般的に用いられる相関値としては、例えば、ターゲットブロック102内の各画素の輝度値と、参照ブロック108内の対応する各画素の輝度値との差分の絶対値の、ブロック内の全画素についての総和(この差分の絶対値の総和を差分絶対値和と呼ぶ。以下、この差分絶対値和をSAD(Sum of Absolute Difference)と記載することとする)が用いられる(図37参照)。   Among them, as a correlation value generally used when calculating a motion vector, for example, the absolute value of the difference between the luminance value of each pixel in the target block 102 and the luminance value of each corresponding pixel in the reference block 108 is used. The sum of the values of all the pixels in the block (the sum of the absolute values of the differences is referred to as the sum of absolute values of the difference. Hereinafter, the sum of the absolute values of the differences is referred to as SAD (Sum of Absolute Difference)). Used (see FIG. 37).

相関値としてSAD値が用いられる場合には、SAD値が小さいほど相関が強いものとされる。したがって、サーチ範囲106において移動する参照ブロック108のうち、SAD値が最小となる位置の参照ブロック108が最も相関が強い最強相関参照ブロックとなり、この最強相関参照ブロックが、動き補償ブロック103として検出され、その検出された動き補償ブロック103のターゲットブロック102の位置に対する位置ずれ量が動きベクトルとして検出される。   When the SAD value is used as the correlation value, the smaller the SAD value, the stronger the correlation. Therefore, among the reference blocks 108 that move in the search range 106, the reference block 108 at the position where the SAD value is minimum becomes the strongest correlation reference block with the strongest correlation, and this strongest correlation reference block is detected as the motion compensation block 103. The amount of displacement of the detected motion compensation block 103 relative to the position of the target block 102 is detected as a motion vector.

前述したように、ブロックマッチングでは、サーチ範囲106において設定される複数個の参照ブロック108のそれぞれの、ターゲットブロック102の位置に対する位置ずれは、方向成分を含むものとしての参照ベクトル107で表現される。各参照ブロック108の参照ベクトル107は、参照ブロック108の参照フレーム101上の位置に応じた値となる。前述したように、ブロックマッチングでは、相関値であるSAD値が最小値となる参照ブロック108の参照ベクトルを、動きベクトル104として検出する。   As described above, in block matching, the positional shift of each of the plurality of reference blocks 108 set in the search range 106 with respect to the position of the target block 102 is expressed by the reference vector 107 that includes a direction component. . The reference vector 107 of each reference block 108 has a value corresponding to the position of the reference block 108 on the reference frame 101. As described above, in block matching, the reference vector of the reference block 108 in which the SAD value that is the correlation value has the minimum value is detected as the motion vector 104.

そこで、ブロックマッチングでは、一般に、図38に示すように、サーチ範囲106において設定される複数個の参照ブロック108のそれぞれとターゲットブロック102との間におけるSAD値(以下、説明の簡単のため参照ブロック108についてのSAD値という)を、それぞれの参照ブロック108の位置に応じた参照ベクトル107(以下、説明の簡単のため、参照ブロック106の位置に応じた参照ベクトル107を参照ブロック108の参照ベクトル107という)のそれぞれに対応させて、メモリに記憶しておき、そのメモリに記憶された全ての参照ブロック108についてのSAD値の中から、最小のSAD値の参照ブロック108を検出することで、動きベクトル104を検出するようにしている。   Therefore, in block matching, generally, as shown in FIG. 38, SAD values between each of a plurality of reference blocks 108 set in the search range 106 and the target block 102 (hereinafter referred to as reference blocks for the sake of simplicity). The reference vector 107 corresponding to the position of each reference block 108 (hereinafter referred to as the reference vector 107 corresponding to the position of the reference block 106 is referred to as the reference vector 107 of the reference block 108 for the sake of simplicity). By detecting the reference block 108 having the smallest SAD value from the SAD values for all the reference blocks 108 stored in the memory. The vector 104 is detected.

サーチ範囲106において設定された複数個の参照ブロック108の位置に応じた参照ベクトル107のそれぞれに対応させて、それぞれの参照ブロック108についての相関値(この例では、SAD値)を記憶したものを相関値テーブルと呼ぶ。この例では、相関値として差分絶対値和であるSAD値を用いるので、この相関値テーブルを、差分絶対値和テーブル(以下SADテーブルという)と呼ぶことにする。   Corresponding to each of the reference vectors 107 corresponding to the positions of the plurality of reference blocks 108 set in the search range 106, a correlation value (in this example, SAD value) for each reference block 108 is stored. This is called a correlation value table. In this example, since the SAD value which is the sum of absolute differences is used as the correlation value, this correlation value table will be referred to as a difference absolute value sum table (hereinafter referred to as SAD table).

図38のSADテーブルTBLが、これを示しており、このSADテーブルTBLにおいて、それぞれの参照ブロック108についての相関値(この例ではSAD値)を相関値テーブル要素という。図38の例では、符号111で指し示すSAD値は、参照ベクトルがベクトル(0,0)のときのSAD値である。そして、図38の例では、符号112で指し示すSAD値の最小値は、参照ベクトルがベクトル(3,2)のときの「7」であるので、求める動きベクトル104は、当該ベクトル(3,2)となる。   This is shown in the SAD table TBL of FIG. 38. In this SAD table TBL, the correlation value (SAD value in this example) for each reference block 108 is referred to as a correlation value table element. In the example of FIG. 38, the SAD value indicated by reference numeral 111 is the SAD value when the reference vector is the vector (0, 0). In the example of FIG. 38, since the minimum value of the SAD value indicated by reference numeral 112 is “7” when the reference vector is the vector (3, 2), the motion vector 104 to be obtained is the vector (3, 2). )

なお、上述の説明において、ターゲットブロック102および参照ブロック108の位置とは、それらのブロックの任意の特定の位置、例えば中心位置を意味するものであり、参照ベクトル107は、参照フレーム101におけるターゲットブロック102の射影イメージブロック109の位置と、参照ブロック108の位置との間のずれ量(方向を含む)を示すものである。   In the above description, the positions of the target block 102 and the reference block 108 mean any specific position of those blocks, for example, the center position, and the reference vector 107 is the target block in the reference frame 101. The amount of deviation (including direction) between the position of the projection image block 109 of 102 and the position of the reference block 108 is shown.

そして、各参照ブロック108に対応する参照ベクトル107は、参照フレーム101上において、ターゲットブロック102に対応する射影イメージブロック109の位置からの、各参照ブロック108の位置ずれとなっているので、参照ブロック108の位置が特定されると、その位置に対応して参照ベクトルの値も特定される。したがって、SADテーブルTBLのメモリにおける参照ブロックの相関値テーブル要素のアドレスが特定されると、対応する参照ベクトルは特定されることになる。   Since the reference vector 107 corresponding to each reference block 108 is a position shift of each reference block 108 from the position of the projection image block 109 corresponding to the target block 102 on the reference frame 101, the reference block When the position 108 is specified, the value of the reference vector is also specified corresponding to the position. Therefore, when the address of the correlation value table element of the reference block in the memory of the SAD table TBL is specified, the corresponding reference vector is specified.

なお、SAD値は、同時に、2つ以上のターゲットブロックについて計算するようにしてもよい。同時に処理するターゲットブロックが増加すると、処理は高速化する。しかし、SAD値を計算するハードウエアの規模が増大するので、処理の高速化と、回路規模の増大のトレードオフになる。   Note that the SAD value may be calculated for two or more target blocks at the same time. As the number of target blocks to be processed simultaneously increases, the processing speed increases. However, since the hardware scale for calculating the SAD value increases, there is a trade-off between speeding up the processing and increasing the circuit scale.

ところで、上述したブロックマッチング手法は、処理対象の画像の解像度が増大すると、2画像間(2画面間)で動きとして検出される画素数が、解像度の増大に応じて大きくなるために、その動きに追従させようとすると、動きベクトルのサーチ範囲を広く取る(サーチ範囲に含まれる画素数を増大させる)必要がある。   By the way, in the block matching method described above, when the resolution of an image to be processed increases, the number of pixels detected as motion between two images (between two screens) increases as the resolution increases. In order to follow the above, it is necessary to widen the search range of the motion vector (increase the number of pixels included in the search range).

ところが、このように、サーチ範囲を広く取ると、処理対象の1ブロック当たりのフレームメモリからの画素の読み込み回数が増大することから、処理時間が長くなるという問題点があった。   However, as described above, when the search range is wide, the number of times of reading pixels from the frame memory per block to be processed increases, so that the processing time becomes long.

また、処理対象の画像の解像度が小さい場合、またはフレームレートが速い場合は、画素間の動きが小さくなるため、1画素未満の微小な動きを検出する必要があり、オーバーサンプルした画像を用いて動きベクトルを求めることによって、1画素未満の動きベクトルを検出する必要があった。しかし、そのようにすると、オーバーサンプルによって、回路規模が増大し、処理時間も長くなるという問題点があった。   In addition, when the resolution of the image to be processed is small or the frame rate is fast, the movement between pixels becomes small, so it is necessary to detect a minute movement of less than one pixel. It was necessary to detect a motion vector of less than one pixel by obtaining a motion vector. However, in such a case, there is a problem in that the circuit scale increases due to oversampling and the processing time becomes long.

上記のように、ブロックマッチング手法は、広い検索範囲および1画素未満の微小な動きの要求に対して、処理時間、回路規模が増大する傾向にあり、これを如何に小さくするかが求められてきた。   As described above, the block matching method tends to increase the processing time and the circuit scale in response to the demand for a wide search range and a minute motion of less than one pixel, and it has been demanded how to reduce this. It was.

また、近年、ハイディフィニション動画(以下、HD動画という)の映像の開発が進み、画像の解像度および画質に対する要求が高まってきている。これに伴い、ブロックマッチング手法にも、広い検索範囲と、1画素未満の微小な動きを検出することの、両技術を実現する要望が高まってきている。   In recent years, the development of high-definition moving images (hereinafter referred to as HD moving images) has progressed, and demands for image resolution and image quality have increased. Along with this, there has been an increasing demand for realizing both techniques of detecting a small motion of a wide search range and less than one pixel in the block matching method.

これらの問題に対して、従来、1画素未満の微小な動きの検出における処理の効率化を図る手法(例えば特許文献1(特開平7−95585号公報)参照)や、参照画像を間引いてフレームメモリおよび演算量を削減する手法(例えば特許文献2(特開2006−160829号公報)参照) など、多くの手法が提案されてきた。   In order to solve these problems, conventionally, a method for improving the efficiency of processing in detecting a minute motion of less than one pixel (see, for example, Patent Document 1 (Japanese Patent Laid-Open No. 7-95585)) or a frame by thinning out a reference image Many methods have been proposed, such as a method for reducing memory and calculation amount (see, for example, Patent Document 2 (Japanese Patent Laid-Open No. 2006-160829)).

中でも、最も実用的な手法が、SADテーブルにおいて、SAD値の最小値位置およびその近傍の複数個のSAD値を用いて、SADテーブルの精度、つまり、ターゲットフレームおよび参照フレームにおける画素ピッチ精度よりも小さい高精度でSAD値の最小値を算出するように補間処理をする手法(例えば特許文献3(特開平05−91492号公報)参照)であり、参照画像を前処理することなく、回路規模のインパクトも小さい。   Among them, the most practical method is to use the SAD table minimum SAD value position and a plurality of SAD values in the vicinity thereof, and to improve the accuracy of the SAD table, that is, the pixel pitch accuracy in the target frame and the reference frame. This is a technique for performing an interpolation process so as to calculate the minimum value of the SAD value with a small and high accuracy (see, for example, Patent Document 3 (Japanese Patent Laid-Open No. 05-91492)). Impact is small.

上記の特許文献は、次の通りである。
特開平7−95585号公報 特開2006−160829号公報 特開平05−91492号公報
The above-mentioned patent documents are as follows.
JP-A-7-95585 JP 2006-160829 A Japanese Patent Laid-Open No. 05-91492

しかしながら、上述した従来の技術では、実際に、HD動画のような解像度が高く、広い検索範囲で精度も求められる画像が対象のブロックマッチング回路に対しては、補間精度の問題、SADテーブルの容量など、の点で実用的ではなかった。   However, in the above-described conventional technique, the problem of interpolation accuracy, the capacity of the SAD table, and the like for the block matching circuit that is actually an image with high resolution such as HD moving images and that requires high accuracy in a wide search range. Etc., was not practical in terms of.

この発明は、ブロックマッチング処理において、SADテーブルの容量など、処理を実行する上で必要となるメモリ容量を小さくでき、また、十分な補間精度を確保でき、さらに、処理の高速化、およびバス帯域削減などを実用上問題の無い程度に実現することができる画像処理装置および方法を提供することを目的とする。   In the block matching process, the memory capacity required for executing the process, such as the capacity of the SAD table, can be reduced, sufficient interpolation accuracy can be secured, and the processing speed can be increased. An object of the present invention is to provide an image processing apparatus and method capable of realizing reduction and the like to a practically satisfactory level.

上記の課題を解決するために、本発明の画像処理装置は、ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれに基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理装置において、
前記参照ブロック内の複数の画素の画素値と、前記ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記参照ブロックのそれぞれと前記ターゲットブロックとの間の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関参照ブロックの位置を検出する最強相関参照ブロック検出手段と、
前記最強相関参照ブロックについての最強相関値および前記最強相関参照ブロックの位置の近傍の複数個の近傍参照ブロックについての前記相関値を取得する取得手段と、
前記取得手段で取得した、前記最強相関参照ブロックの前記最強相関値および前記複数個の近傍参照ブロックについての前記相関値の複数個を用いて補間処理を行い、前記ターゲット画面の画素ピッチよりも小さい高精度で、前記ターゲットブロックとの相関が最も強い高精細最強相関参照ブロックの位置を検出し、前記高精細最強相関参照ブロックの前記ターゲットブロックからの位置ずれとして前記動きベクトルを算出する補間処理手段と、を備え、前記最強相関参照ブロック検出手段は、前記最強相関参照ブロックについての前記最強相関値およびその位置に関する情報を保持する保持部を備え、新たに算出された前記参照ブロックの前記ターゲットブロックに対する新相関値と、前記保持部の前記最強相関値とを比較して、前記新相関値の方が相関が強いと判別されたときに、前記保持部の前記最強相関値およびその位置に関する情報を、前記新相関値およびその位置に関する情報に更新し、前記取得手段は、少なくとも、前記保持部に保持されている前記最強相関参照ブロックの近傍の複数個の近傍参照ブロックについて、前記相関値を再算出することにより、前記近傍参照ブロックについての相関値を取得することを特徴とする。
In order to solve the above-described problem, an image processing apparatus according to the present invention is configured such that a reference block having the same size as a target block having a predetermined size composed of a plurality of pixels set in a target screen is the target screen. A plurality of search ranges set in different reference screens are set, and the reference block having the strongest correlation with the target block among the plurality of reference blocks is based on the positional deviation on the screen with respect to the target block. In an image processing apparatus for detecting a motion vector for a target block,
A correlation value between each of the reference blocks and the target block is calculated using pixel values of the plurality of pixels in the reference block and pixel values of a plurality of pixels at corresponding positions in the target block. A strongest correlation reference block detecting means for detecting a position of the strongest correlation reference block having the strongest correlation with the target block;
Obtaining means for obtaining the strongest correlation value for the strongest correlation reference block and the correlation values for a plurality of neighboring reference blocks in the vicinity of the position of the strongest correlation reference block;
Interpolation processing is performed using the strongest correlation value of the strongest correlation reference block acquired by the acquisition unit and the plurality of correlation values of the plurality of neighboring reference blocks, and is smaller than the pixel pitch of the target screen. with high accuracy, the interpolation correlation with the target block to detect the position of the strongest high definition strongest correlation reference block, calculates the pre kidou-out vector as positional deviation from the target block of the high-definition strongest correlation reference block Processing means, wherein the strongest correlation reference block detection means includes a holding unit that holds information about the strongest correlation value and the position of the strongest correlation reference block, and the newly calculated reference block of the reference block The new correlation value for the target block is compared with the strongest correlation value of the holding unit, and the new phase When it is determined that the value is stronger in correlation, the information on the strongest correlation value and the position of the holding unit is updated to the information on the new correlation value and the position, and the acquisition means includes at least the for neighboring reference blocks several double of the vicinity of the strongest correlation reference block held in the holding unit, by re-calculating the correlation value, and obtains a correlation value for said neighboring reference blocks .

本発明の画像処理方法は、ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれに基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理方法において、前記参照ブロック内の複数の画素の画素値と、前記ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記参照ブロックのそれぞれと前記ターゲットブロックとの間の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関参照ブロックの位置を検出する最強相関参照ブロック検出工程と、前記最強相関参照ブロックについての最強相関値および前記最強相関参照ブロックの位置の近傍の複数個の近傍参照ブロックについての前記相関値を取得する取得工程と、前記取得工程で取得した、前記最強相関参照ブロックの前記最強相関値および前記複数個の近傍参照ブロックについての前記相関値の複数個を用いて補間処理を行い、前記ターゲット画面の画素ピッチよりも小さい高精度で、前記ターゲットブロックとの相関が最も強い高精細最強相関参照ブロックの位置を検出し、前記高精細最強相関参照ブロックの前記ターゲットブロックからの位置ずれとして前記動きベクトルを算出する補間処理工程と、を画像処理装置が実行するものであって、前記画像処理装置は、前記最強相関参照ブロックについての前記最強相関値およびその位置に関する情報を保持する保持部を備え、前記最強相関参照ブロック検出工程では、新たに算出された前記参照ブロックの前記ターゲットブロックに対する新相関値と、前記保持部の前記最強相関値とを比較して、前記新相関値の方が相関が強いと判別されたときに、前記保持部の前記最強相関値およびその位置に関する情報を、前記新相関値およびその位置に関する情報に更新し、前記取得工程では、少なくとも、前記保持部に保持されている前記最強相関参照ブロックの近傍の複数個の近傍参照ブロックについて、前記相関値を再算出することにより、前記近傍参照ブロックについての相関値を取得することを特徴とする。In the image processing method of the present invention, a reference block having the same size as a target block having a predetermined size composed of a plurality of pixels set in the target screen is set in a search range set in a reference screen different from the target screen. A plurality of reference blocks are set, and a motion vector for the target block is detected based on a positional deviation on the screen of the reference block having the strongest correlation with the target block among the plurality of reference blocks. In the image processing method, between each of the reference blocks and the target block, using pixel values of a plurality of pixels in the reference block and pixel values of a plurality of pixels at corresponding positions in the target block. The correlation value of the target block is the most A strongest correlation reference block detecting step for detecting a position of the strongest correlation reference block, a strongest correlation value for the strongest correlation reference block, and the correlation values for a plurality of neighboring reference blocks in the vicinity of the position of the strongest correlation reference block And interpolating using the strongest correlation value of the strongest correlation reference block and the plurality of correlation values of the plurality of neighboring reference blocks acquired in the acquisition step, The position of the high-definition strongest correlation reference block having the highest correlation with the target block is detected with high accuracy smaller than the pixel pitch of the screen, and the movement is detected as the positional deviation of the high-definition strongest correlation reference block from the target block. An interpolation processing step for calculating a vector is executed by the image processing apparatus, and The image processing apparatus includes a holding unit that holds information about the strongest correlation value and the position of the strongest correlation reference block, and in the strongest correlation reference block detection step, the target block of the newly calculated reference block When the new correlation value is compared with the strongest correlation value of the holding unit and it is determined that the new correlation value has a stronger correlation, information on the strongest correlation value of the holding unit and its position Is updated to information on the new correlation value and its position, and in the obtaining step, the correlation value is determined for at least a plurality of neighboring reference blocks in the vicinity of the strongest correlation reference block held in the holding unit. A correlation value for the neighborhood reference block is obtained by recalculation.

この発明によれば、ターゲットブロックおよび参照ブロックにおける画素精度以上の高精度の動きベクトル検出を、従来よりも小さいハードウエア規模で行うことできる。また、この発明によれば、処理の高速化、およびバス帯域削減などを実用上問題の無い程度に実現することができる。   According to the present invention, it is possible to perform motion vector detection with higher accuracy than the pixel accuracy in the target block and the reference block with a hardware scale smaller than the conventional one. Further, according to the present invention, it is possible to realize speeding up of processing, reduction of bus bandwidth, and the like to a practically satisfactory level.

以下、この発明による画像処理装置および方法の実施の形態を、図を参照しながら説明する。   Embodiments of an image processing apparatus and method according to the present invention will be described below with reference to the drawings.

[この発明による画像処理装置の実施形態]
この発明による画像処理方法を用いた画像処理装置の実施形態として、撮像装置の場合を例にとって、図を参照しながら説明する。以下に説明する実施の形態の撮像装置では、図2に示すように、連続して撮影された複数枚の画像、例えばP1,P2,P3を、動き検出および動き補償を用いて位置合わせをした後、重ね合わせすることで、ノイズが低減された画像Pmixを得ることができるようにしている。すなわち、複数枚の画像のそれぞれにおけるノイズはランダムなものであるので、同一内容の画像を重ね合わせることで、画像に対してノイズが低減されるものである。
[Embodiment of Image Processing Device According to the Invention]
An embodiment of an image processing apparatus using the image processing method according to the present invention will be described with reference to the drawings, taking the case of an imaging apparatus as an example. In the imaging apparatus according to the embodiment described below, as shown in FIG. 2, a plurality of images, for example, P1, P2, and P3, which are continuously captured, are aligned using motion detection and motion compensation. Thereafter, by superimposing, an image Pmix with reduced noise can be obtained. That is, since noise in each of a plurality of images is random, the noise is reduced with respect to the images by superimposing images having the same content.

以下の説明において、動き検出および動き補償を用いて複数枚の画像を重ね合わせて、ノイズを低減するシステムをNR(Noise Reduction)システムと呼び、NRシステムによりノイズ低減された画像をNR画像と称することとする。   In the following description, a system that reduces noise by superimposing a plurality of images using motion detection and motion compensation is referred to as an NR (Noise Reduction) system, and an image in which noise is reduced by the NR system is referred to as an NR image. I will do it.

この明細書では、ノイズ低減を施したい画面(画像)をターゲット画面(ターゲットフレーム)、重ね合わせたい画面を参照画面(参照フレーム)と定義する。連続して撮影された画像は、撮影者の手ブレなどにより、画像の位置がずれており、両画像の重ね合わせを行うには、位置合わせが重要となる。ここで、考慮しなければならないのは、手ブレのような画面全体のブレと共に、画面内における被写体の動きも存在することである。   In this specification, a screen (image) to be subjected to noise reduction is defined as a target screen (target frame), and a screen to be superimposed is defined as a reference screen (reference frame). Images taken consecutively are misaligned due to the camera shake of the photographer, etc., and alignment is important to superimpose both images. Here, it is necessary to consider that there is a movement of the subject in the screen as well as a blur of the entire screen such as a camera shake.

このため、被写体に対してもノイズ低減効果を高めるためには、図3に示すように、ターゲットフレーム100を分割して生成される複数個のターゲットブロック102のそれぞれ単位での位置合わせが必要になる。   For this reason, in order to enhance the noise reduction effect for the subject as well, as shown in FIG. 3, it is necessary to align each of the plurality of target blocks 102 generated by dividing the target frame 100. Become.

したがって、この実施の形態では、複数個のターゲットブロック102の全てについて、ブロック単位の動きベクトル(以下、ブロック動きベクトルという)121を検出し、それぞれのターゲットブロック102について、対応するブロック動きベクトル104Bを用いて位置合わせを行い、画像を重ね合わせるようにする。   Therefore, in this embodiment, a motion vector (hereinafter referred to as a block motion vector) 121 is detected for each of the plurality of target blocks 102, and the corresponding block motion vector 104B is detected for each target block 102. To align the images and superimpose the images.

この実施の形態の撮像装置において、静止画撮影時は、図4に示すように、高速で複数枚の画像の撮影を行い、1枚目の撮影画像をターゲットフレーム100とし、2枚目以降、所定枚数の撮影画像を参照フレーム101とし、重ね合わせを行い、その重ね合わせたものを静止画撮影画像として記録するようにする。すなわち、撮影者が撮像装置のシャッターボタンを押下操作すると、高速で前記所定枚数の画像が撮影され、その1枚目に撮影した画像(フレーム)に対して、時間的に後で撮影された複数枚の画像(フレーム)が、重ね合わされることになる。   In the image pickup apparatus of this embodiment, at the time of still image shooting, as shown in FIG. 4, a plurality of images are shot at high speed, the first shot image is used as the target frame 100, and the second and subsequent frames. A predetermined number of photographed images are used as a reference frame 101 and are superimposed, and the superimposed image is recorded as a still image photographed image. That is, when the photographer depresses the shutter button of the imaging device, the predetermined number of images are photographed at a high speed, and a plurality of images (frames) photographed later in time for the first image (frame). One sheet of image (frame) is superimposed.

また、動画撮影時は、図5のように、撮像素子から出力されている現フレームの画像をターゲットフレーム100の画像とし、その前フレームの画像を参照フレーム101の画像とする。したがって、現フレームの画像のノイズ低減を行うために、現フレームの前フレームの画像を現フレームに重ね合わせるということになる。   Further, at the time of moving image shooting, as shown in FIG. 5, the current frame image output from the image sensor is set as the target frame 100 image, and the previous frame image is set as the reference frame 101 image. Therefore, in order to reduce the noise of the current frame image, the image of the previous frame of the current frame is superimposed on the current frame.

なお、上述の図4および図5の画像の重ね合わせの方法の説明の場合は、記録する動画画像のフレームレートを60fps(flame/second)としたときに、撮像素子から当該60fpsのフレームレートの2枚の画像フレームを重ね合わせて、その結果としてノイズの低減された60fpsのフレームレートで撮像画像信号が得られる場合である。   In the description of the method for superimposing the images in FIGS. 4 and 5 described above, when the frame rate of the moving image to be recorded is 60 fps (frame / second), the frame rate of 60 fps is obtained from the image sensor. This is a case where two image frames are superimposed, and as a result, a captured image signal is obtained at a frame rate of 60 fps with reduced noise.

しかし、撮像素子から、より高速の、例えば240fpsの高フレームレートで、撮像画像が出力されるように構成されている場合において、動画撮影時においても、4枚ずつの画像を重ねて1枚の動画フレームを生成することで、60fpsのフレームレートの撮像画像信号を得るようにすることもできる。もちろん、240fpsの撮像画像を、この例と同様にして、2枚の画像フレームを重ね合わせて、その結果として240fpsのフレームレートのノイズ低減された撮像画像信号を得るようにすることもできる。   However, when the captured image is output from the image sensor at a higher frame rate of, for example, 240 fps, even when capturing a moving image, one image is superimposed on each other. It is also possible to obtain a captured image signal having a frame rate of 60 fps by generating a moving image frame. Of course, a 240 fps picked-up image can be obtained by superimposing two image frames in the same manner as in this example, and as a result, a picked-up image signal with a frame rate of 240 fps can be obtained.

次に、この実施の形態においては、さらに、より高精度で画像の重ね合わせができるように、処理対象画像の画素ピッチの精度(ピクセル精度という)よりも高精度、つまり、元の画面(ターゲットフレーム)の画素ピッチよりも小さいピッチの高精度(この高精度をサブピクセル精度と呼ぶことにする)で、ブロック動きベクトルを検出するようにする。このサブピクセル精度での動きベクトル算出のために、後述するように、この実施の形態の撮像装置においては、ピクセル精度で求めた動きベクトルと、その近傍の参照ベクトルとを用いて補間処理をするようにする。   Next, in this embodiment, in order to be able to superimpose images with higher accuracy, the accuracy of the pixel pitch of the processing target image (referred to as pixel accuracy), that is, the original screen (target The block motion vector is detected with a high accuracy with a pitch smaller than the pixel pitch of the frame (this high accuracy is referred to as sub-pixel accuracy). In order to calculate the motion vector with the sub-pixel accuracy, as will be described later, in the imaging apparatus according to the present embodiment, an interpolation process is performed using the motion vector obtained with the pixel accuracy and a reference vector in the vicinity thereof. Like that.

図1は、この発明の画像処理装置の実施形態としての撮像装置の一例のブロック図を示すものである。   FIG. 1 shows a block diagram of an example of an imaging apparatus as an embodiment of the image processing apparatus of the present invention.

この図1に示すように、この実施形態の撮像装置は、システムバス2にCPU(Central Processing Unit)1が接続されると共に、システムバス2に、撮像信号処理系10や、ユーザ操作入力部3、画像メモリ部4、記録再生装置部5などが接続されて構成されている。なお、この明細書においては、CPU1は、図示は省略するが、種々のソフトウエア処理を行なうプログラムを記憶するROM(Read Only Memory)やワークエリア用RAM(Random Access Memory)などを含むものとしている。   As shown in FIG. 1, in the imaging apparatus of this embodiment, a CPU (Central Processing Unit) 1 is connected to a system bus 2, and an imaging signal processing system 10 and a user operation input unit 3 are connected to the system bus 2. The image memory unit 4 and the recording / reproducing device unit 5 are connected to each other. In this specification, the CPU 1 includes a ROM (Read Only Memory) and a work area RAM (Random Access Memory) that store programs for performing various software processes, although not shown. .

ユーザ操作入力部3を通じた撮像記録開始操作を受けて、図1の撮像装置は、後述するような撮像画像データの記録処理を行なう。また、ユーザ操作入力部3を通じた撮像記録画像の再生開始操作を受けて、図1の撮像装置は、記録再生装置部5の記録媒体に記録された撮像画像データの再生処理を行なう。   Upon receiving an imaging recording start operation through the user operation input unit 3, the imaging apparatus in FIG. 1 performs captured image data recording processing as described later. Further, upon receiving a reproduction start operation of the captured / recorded image through the user operation input unit 3, the imaging apparatus of FIG. 1 performs a reproduction process of the captured image data recorded on the recording medium of the recording / reproducing apparatus unit 5.

図1に示すように、撮像レンズ10Lを備えるカメラ光学系(図示は省略)を通じた被写体からの入射光は、撮像素子11に照射されて撮像される。この例では、撮像素子11は、CCD(Charge Coupled Device)イメージャで構成されている。なお、撮像素子12は、CMOS(Complementary Metal Oxide Semiconductor)イメージャで構成してもよい。   As shown in FIG. 1, incident light from a subject through a camera optical system (not shown) provided with an imaging lens 10 </ b> L is irradiated on an imaging element 11 and imaged. In this example, the imaging device 11 is configured by a CCD (Charge Coupled Device) imager. Note that the image sensor 12 may be a CMOS (Complementary Metal Oxide Semiconductor) imager.

この例の撮像装置においては、撮像記録開始操作がなされると、レンズ10Lを通じて入力された映像が、撮像素子11により撮像画像信号に変換され、タイミング信号発生部12からのタイミング信号に同期した信号として、赤(R)、緑(G)、青(B)の3原色から構成されるベイヤー配列のRAW信号(生の信号)であるアナログ撮像信号が出力される。出力されたアナログ撮像信号は、前処理部13に供給され、欠陥補正やγ補正等の前処理が施され、データ変換部14に供給される。   In the imaging apparatus of this example, when an imaging recording start operation is performed, a video input through the lens 10L is converted into a captured image signal by the imaging element 11, and a signal synchronized with the timing signal from the timing signal generation unit 12 As a result, an analog imaging signal, which is a RAW signal (raw signal) in a Bayer array composed of three primary colors of red (R), green (G), and blue (B), is output. The output analog imaging signal is supplied to the preprocessing unit 13, subjected to preprocessing such as defect correction and γ correction, and supplied to the data conversion unit 14.

データ変換部14は、これに入力されたRAW信号であるアナログ撮像信号を、輝度信号成分Yと、色差信号成分Cb/Crとにより構成されるデジタル撮像信号(YCデータ)に変換し、そのデジタル撮像信号を解像度変換部15に供給する。解像度変換部15では、ユーザ操作入力部3を通じて指定された解像度に、デジタル撮像信号を変換し、システムバスを介して、画像メモリ部4に供給する。   The data converter 14 converts the analog imaging signal, which is a RAW signal input thereto, into a digital imaging signal (YC data) composed of a luminance signal component Y and a color difference signal component Cb / Cr, and the digital image The imaging signal is supplied to the resolution conversion unit 15. The resolution conversion unit 15 converts the digital imaging signal to the resolution designated through the user operation input unit 3 and supplies the converted signal to the image memory unit 4 via the system bus.

ユーザ操作入力部3を通じた撮影指示が、シャッターボタンの押下による静止画撮影指示であったときには、解像度変換部15で解像度変換されたデジタル撮像信号は、前述した複数フレーム分が画像メモリ部4に書き込まれる。そして、複数フレーム分の画像が画像メモリ部4に書き込まれた後、ターゲットフレームの画像データと参照フレームの画像データが、動き検出・動き補償部16によって読み込まれ、画像重ね合わせ部17を経て、コーデック部18においてコーデック変換され、システムバス2を通じて記録再生装置部5の例えばDVD(Digital Versatile Disc)やハードディスクなどの記録媒体に記録される。   When the photographing instruction through the user operation input unit 3 is a still image photographing instruction by pressing the shutter button, the digital imaging signal whose resolution has been converted by the resolution converting unit 15 includes the above-described plurality of frames in the image memory unit 4. Written. Then, after the images for a plurality of frames are written in the image memory unit 4, the image data of the target frame and the image data of the reference frame are read by the motion detection / motion compensation unit 16, and after passing through the image superposition unit 17, The codec unit 18 performs codec conversion, and the data is recorded on a recording medium such as a DVD (Digital Versatile Disc) or a hard disk of the recording / reproducing apparatus unit 5 through the system bus 2.

この静止画撮影時、シャッターボタンが押下操作される前においては、画像重ね合わせ部17からの画像データは、NTSC(National Television System Committee)エンコーダ19によりNTSC方式の標準カラー映像信号に変換され、例えばLCD(Liquid Crystal Display;液晶ディスプレイ)からなるモニターディスプレイ6に供給され、静止画撮影時のモニター画像がその表示画面にモニター表示される。   At the time of taking a still image, before the shutter button is pressed, the image data from the image superimposing unit 17 is converted into an NTSC standard color video signal by an NTSC (National Television System Committee) encoder 19, for example. The image is supplied to a monitor display 6 composed of an LCD (Liquid Crystal Display; liquid crystal display), and a monitor image at the time of still image shooting is displayed on the display screen.

また、ユーザ操作入力部3を通じた撮影指示が、動画記録ボタンの押下による動画撮影指示であったときには、解像度変換された画像データは、画像メモリ部4に書き込まれると共に、リアルタイムに動き検出・動き補償部16へ送られ、画像重ね合わせ部17を経て、NTSCエンコーダ部19を通じてモニターディスプレイ6の表示画面に出力されながら、コーデック部18でコーデック変換され、システムバス2を通じて記録再生装置部5に供給され、DVDやハードディスクなどの記録媒体に記録される。   When the shooting instruction through the user operation input unit 3 is a moving image shooting instruction by pressing the moving image recording button, the resolution-converted image data is written in the image memory unit 4 and the motion detection / movement is performed in real time. It is sent to the compensation unit 16, passes through the image superposition unit 17, is output to the display screen of the monitor display 6 through the NTSC encoder unit 19, is codec converted by the codec unit 18, and is supplied to the recording / reproducing device unit 5 through the system bus 2. And recorded on a recording medium such as a DVD or a hard disk.

この記録再生装置部5の記録媒体に記録された撮像画像データは、ユーザ操作入力部3を通じた再生開始操作に応じて読み出され、コーデック部18に供給されて、再生デコードされる。そして、再生デコードされた画像データはNTSCエンコーダ19を通じてモニターディスプレイ6に供給され、再生画像がその表示画面に表示される。なお、図1では、図示を省略したが、NTSCエンコーダ19からの出力映像信号は、映像出力端子を通じて外部に導出することが可能とされている。   The captured image data recorded on the recording medium of the recording / reproducing apparatus unit 5 is read in response to a reproduction start operation through the user operation input unit 3, supplied to the codec unit 18, and reproduced and decoded. The reproduced and decoded image data is supplied to the monitor display 6 through the NTSC encoder 19, and the reproduced image is displayed on the display screen. Although not shown in FIG. 1, the output video signal from the NTSC encoder 19 can be derived outside through a video output terminal.

上述した手ぶれ動きベクトル検出部16は、ハードウエアにより構成することできるし、また、DSP(Digital Signal Processor)を用いて構成することもできる。さらには、CPU1によりソフトウエア処理とすることもできる。   The above-mentioned camera shake motion vector detection unit 16 can be configured by hardware, or can be configured by using a DSP (Digital Signal Processor). Furthermore, software processing can be performed by the CPU 1.

[動き検出・動き補償部16の説明]
動き検出・動き補償部16では、この実施の形態では、基本的には、図33〜図38を用いて説明した、SAD値を用いてブロックマッチング処理を行うことで、動きベクトル検出を行うようにする。ただし、この実施の形態では、ターゲットブロックに対して、サーチ範囲を移動させる複数個の参照ブロックについてのSAD値の全てを記憶するようにするSADテーブルTBLは用いずに、ハードウエア規模の削減を図るようにしている。そのことに関しては、後で詳述する。
[Description of Motion Detection / Compensation Unit 16]
In this embodiment, the motion detection / compensation unit 16 basically performs motion vector detection by performing block matching processing using the SAD values described with reference to FIGS. To. However, in this embodiment, the hardware scale can be reduced without using the SAD table TBL that stores all of the SAD values for a plurality of reference blocks that move the search range with respect to the target block. I try to figure it out. This will be described in detail later.

図6に、動き検出・動き補償部16の構成例のブロック図を示す。この例では、動き検出・動き補償部16は、ターゲットブロック102の画素データを保持するターゲットブロックバッファ部161と、参照ブロック108の画素データを保持する参照ブロックバッファ部162と、ターゲットブロック102と参照ブロック108との対応する画素についてのSAD値を計算するマッチング処理部163と、マッチング処理部163から出力されるSAD値情報から動きベクトルを算出する動きベクトル算出部164と、それぞれのブロックを制御するコントロール部165と、を備える。   FIG. 6 shows a block diagram of a configuration example of the motion detection / motion compensation unit 16. In this example, the motion detection / compensation unit 16 includes a target block buffer unit 161 that stores pixel data of the target block 102, a reference block buffer unit 162 that stores pixel data of the reference block 108, and the target block 102. A matching processing unit 163 that calculates an SAD value for a pixel corresponding to the block 108, a motion vector calculation unit 164 that calculates a motion vector from the SAD value information output from the matching processing unit 163, and each block is controlled. A control unit 165.

静止画撮像時においては、ターゲットブロックバッファ部161には、画像メモリ4に記憶されているシャッターボタン押下後の最初の撮像フレームが、ターゲットフレーム102として書き込まれ、参照ブロックバッファ部162には、画像メモリ4に記憶されている前記最初の撮像フレームの後の撮像フレームが、参照フレーム108として順次に書き込まれる。   At the time of still image capturing, the first captured frame after pressing the shutter button stored in the image memory 4 is written in the target block buffer unit 161 as the target frame 102, and the image is stored in the reference block buffer unit 162. An imaging frame after the first imaging frame stored in the memory 4 is sequentially written as a reference frame 108.

また、動画撮影時においては、ターゲットブロックバッファ部161には、解像度変換部15からの撮像フレームが、ターゲットフレーム102として書き込まれ、参照ブロックバッファ部162には、前記ターゲットフレームよりも1枚前の、画像メモリ4に記憶されている撮像フレームが、参照フレーム108として書き込まれる。   Further, at the time of moving image shooting, the imaging frame from the resolution conversion unit 15 is written as the target frame 102 in the target block buffer unit 161, and the reference block buffer unit 162 is one frame before the target frame. The imaging frame stored in the image memory 4 is written as the reference frame 108.

マッチング処理部163では、前述の図33〜図38を用いて説明したブロックマッチング処理を、ターゲットブロックバッファ部161に記憶されたターゲットブロックと、参照ブロックバッファ部162に記憶された参照ブロックとについて行う。   In the matching processing unit 163, the block matching processing described with reference to FIGS. 33 to 38 is performed on the target block stored in the target block buffer unit 161 and the reference block stored in the reference block buffer unit 162. .

ここで、ブロックマッチングにおけるターゲットブロックと、参照ブロックとの相関の強さを検出するためには、この実施の形態においても、画像データの輝度情報を用いてSAD値算出を行い、その最小SAD値を検出して、当該最小SAD値を呈する参照ブロックを最強相関参照ブロックとして検出するようにする。   Here, in order to detect the strength of the correlation between the target block and the reference block in block matching, the SAD value is calculated using the luminance information of the image data in this embodiment, and the minimum SAD value is obtained. And the reference block exhibiting the minimum SAD value is detected as the strongest correlation reference block.

なお、SAD値の算出は、輝度情報ではなく、色差信号や、3原色信号R,G,Bの情報を使用しても良いことは言うまでもない。また、SAD値の算出に当たっては、通常は、ブロック内の全画素を用いるようにするが、演算量削減のため、間引き等により、飛び飛びの位置の限られた画素の画素値のみを使用するようにしてもよい。   Needless to say, the SAD value may be calculated by using not only the luminance information but also the color difference signal and the information of the three primary color signals R, G and B. In calculating the SAD value, all the pixels in the block are usually used. However, in order to reduce the amount of calculation, only the pixel value of the pixel with a limited jump position is used by thinning out or the like. It may be.

動きベクトル算出部164は、マッチング処理部163のマッチング処理結果からターゲットブロックに対する参照ブロックの動きベクトルを検出する。この実施形態では、サブピクセル精度の高精度動きベクトルを検出するようにする。   The motion vector calculation unit 164 detects the motion vector of the reference block with respect to the target block from the matching processing result of the matching processing unit 163. In this embodiment, a high-precision motion vector with sub-pixel accuracy is detected.

サブピクセル精度の高精度動きベクトルについて説明する。前述したブロックマッチング手法では、ピクセル単位でブロックマッチングを行っているため、動きベクトルはピクセル精度でしか算出されない。図38に示したように、マッチング処理を行った点、つまり、参照ブロックの位置は、ピクセル精度で存在し、より精度の高い動きベクトルを算出するには、サブピクセル単位でのマッチング処理が必要になる。   A high-precision motion vector with subpixel accuracy will be described. In the block matching method described above, since block matching is performed in units of pixels, the motion vector is calculated only with pixel accuracy. As shown in FIG. 38, the point where the matching process is performed, that is, the position of the reference block exists with pixel accuracy, and in order to calculate a more accurate motion vector, matching processing in sub-pixel units is required. become.

N倍のピクセル精度(画素ピッチは、1/N)の動きベクトルを算出するために、N倍のピクセル単位でマッチング処理を行うと、SADテーブルは約N倍の大きさになり、膨大なメモリが必要になる。また、ブロックマッチング処理のために、N倍にアッパーサンプルした画像を生成しなくてはならず、ハードウエアの規模は飛躍的に増大する。 In order to calculate a motion vector with N times the pixel accuracy (pixel pitch is 1 / N), if the matching process is performed in units of N times the pixel, the SAD table becomes about N 2 times larger, Memory is required. In addition, for the block matching process, an image that is N times the upper sample must be generated, and the scale of hardware increases dramatically.

そこで、二次曲線を用いて、SADテーブルを補間することで、ピクセル単位でマッチング処理を行ったSADテーブルから、サブピクセル精度の動きベクトルを算出することを考える。この場合において、二次曲線近似補間ではなく、線形補間や、3次以上の高次の近似曲線補間を用いても良いが、精度とハードウエア化との兼ね合いから、この例では、二次曲線近似補間を用いている。   Therefore, it is considered that a motion vector with sub-pixel accuracy is calculated from the SAD table that has been subjected to the matching process in units of pixels by interpolating the SAD table using a quadratic curve. In this case, instead of quadratic curve approximation interpolation, linear interpolation or higher-order approximation curve interpolation of cubic or higher may be used. However, in this example, a quadratic curve is used in consideration of the balance between accuracy and hardware implementation. Approximate interpolation is used.

この二次曲線近似補間においては、図7に示すように、ピクセル精度の動きベクトル104が指し示すSADテーブルのSAD値の最小値Smin(図7の113参照)と、当該最小値Sminの位置の近傍位置の複数個のSAD値(近傍SAD値という)、この例では、最小値Sminの位置のX方向およびY方向に隣接する4個の近傍SAD値Sx1、Sx2およびSy1、Sy2(図7の114,115,116,117参照)を使用する。   In this quadratic curve approximate interpolation, as shown in FIG. 7, the SAD value minimum value Smin (see 113 in FIG. 7) indicated by the pixel precision motion vector 104 and the vicinity of the position of the minimum value Smin. A plurality of SAD values at positions (referred to as neighboring SAD values), in this example, four neighboring SAD values Sx1, Sx2 and Sy1, Sy2 (114 in FIG. 7) adjacent to the position of the minimum value Smin in the X and Y directions. 115, 116, 117).

図8に示すように、SAD値の最小値Sminと、X方向(水平方向)の近傍2点の近傍SAD値Sx1、Sx2を使って、二次の近似曲線118を当てはめ、この二次曲線118の極小を取る座標が、サブピクセル精度のSAD値の最小値SXminとなる動きベクトル(高精度動きベクトル)のX座標Vxとなる。このときの二次曲線近似補間の式を、次式(1)に示す。   As shown in FIG. 8, a quadratic approximate curve 118 is fitted using a minimum value Smin of the SAD value and neighboring SAD values Sx1 and Sx2 of two neighboring points in the X direction (horizontal direction), and this quadratic curve 118 is applied. Is the X coordinate Vx of the motion vector (high-precision motion vector) that is the minimum value SXmin of the SAD value with sub-pixel accuracy. The equation of quadratic curve approximate interpolation at this time is shown in the following equation (1).

SXmin=1/2×(Sx2−Sx1)/(Sx2−2Smin+Sx1)…式(1)
この計算式(1)で求めたサブピクセル精度のSAD値の最小値SXminがSADテーブル上で取るX座標が、サブピクセル精度のSAD値の最小値となるX座標Vxとなる。
SXmin = 1/2 × (Sx2-Sx1) / (Sx2-2Smin + Sx1) (1)
The X coordinate Vx which the minimum value SXmin of the sub-pixel accuracy SAD value obtained by the calculation formula (1) takes on the SAD table is the X coordinate Vx which is the minimum value of the sub-pixel accuracy SAD value.

この計算式(1)の割り算は、複数回の引き算で実現可能である。求めたいサブピクセル精度が、例えば元の画素ピッチの1/4の画素ピッチの精度であれば、僅か2回の引き算でも求められるため、回路規模、演算時間、共に小さく、二次の近時曲線補間よりもかなり複雑な三次曲線補間と殆ど変わらない性能が実現できる。   The division of the calculation formula (1) can be realized by a plurality of subtractions. If the subpixel accuracy to be obtained is, for example, an accuracy of 1/4 pixel pitch of the original pixel pitch, it can be obtained by subtracting only twice, so both the circuit scale and the computation time are small, and the quadratic curve Performance that is almost the same as cubic curve interpolation, which is considerably more complicated than interpolation, can be realized.

同様に、SAD値の最小値Sminと、Y方向(垂直方向)の近傍2点の近傍SAD値Sy1、Sy2を使って、二次の近似曲線を当て嵌め、この二次曲線の極小値SYminを取るY座標が、サブピクセル精度のSAD値の最小値となるY座標Vyとなる。このときの二次曲線近似補間の式を、次式(2)に示す。   Similarly, using a minimum value Smin of the SAD value and neighboring SAD values Sy1 and Sy2 of two neighboring points in the Y direction (vertical direction), a quadratic approximate curve is fitted, and a minimum value SYmin of the quadratic curve is obtained. The Y coordinate taken is the Y coordinate Vy that is the minimum value of the SAD value with subpixel accuracy. The equation of quadratic curve approximate interpolation at this time is shown in the following equation (2).

SYmin=1/2×(Sy2−Sy1)/(Sy2−2Smin+Sy1)…式(2)
以上のようにして、二次曲線の近似を、X方向およびY方向の2回、行うことで、サブピクセル精度の高精度の動きベクトル(Vx、Vy)が求まる。
SYmin = 1/2 × (Sy2−Sy1) / (Sy2−2Smin + Sy1) (2)
As described above, by performing approximation of the quadratic curve twice in the X direction and the Y direction, a highly accurate motion vector (Vx, Vy) with subpixel accuracy is obtained.

以上の説明では、SAD値の最小値と、そのX方向(水平方向)およびY方向(垂直方向)の近傍2点のSAD値を使用したが、各方向の近傍のSAD値は2点以上であってもよい。また、二次曲線をX方向、Y方向に代えて、例えば、斜め方向に近似曲線を当て嵌めてもかまわない。さらに、X方向、Y方向に、斜め方向を加えて近似曲線を当て嵌めてもかまわない。   In the above description, the minimum SAD value and two SAD values in the vicinity in the X direction (horizontal direction) and the Y direction (vertical direction) are used. However, the SAD value in the vicinity in each direction is two points or more. There may be. Further, instead of the quadratic curve in the X direction and the Y direction, for example, an approximate curve may be fitted in an oblique direction. Furthermore, an approximate curve may be applied by adding an oblique direction to the X direction and the Y direction.

以上のような手段、手順を用いることにより、ピクセル単位の精度のSADテーブルの値から、サブピクセル精度のベクトル検出結果が得られることを図9に示す。図9の横軸は、補間倍率であり、1次元方向に分解能を何倍にするかを表している。SADテーブルは2次元のため、テーブル面積は、この2乗の割合で削減されるのに対し、補間による誤差は、線形程度にしか増加しないことから、上述の補間手法の有用性が分かる。   FIG. 9 shows that a vector detection result with sub-pixel accuracy can be obtained from the value of the SAD table with pixel accuracy by using the above means and procedures. The horizontal axis in FIG. 9 is the interpolation magnification and represents how many times the resolution is increased in the one-dimensional direction. Since the SAD table is two-dimensional, the table area is reduced at a ratio of the square, whereas the error due to interpolation increases only to a linear level, so that the usefulness of the above-described interpolation method can be seen.

[撮像画像のノイズ低減処理]
<静止画撮影時>
この実施の形態の撮像装置において、静止画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図10に示す。この図10のフローチャートの各ステップは、CPU1およびこのCPU1により制御される動き検出・動き補償部16のコントロール部165の制御の下に実行されるものである。
[Noise reduction processing for captured images]
<When shooting still images>
In the imaging apparatus of this embodiment, a flowchart of noise reduction processing by image superposition at the time of still image shooting is shown in FIG. Each step of the flowchart of FIG. 10 is executed under the control of the CPU 1 and the control unit 165 of the motion detection / compensation unit 16 controlled by the CPU 1.

まず、シャッターボタンが押下されると、この例の撮像装置においては、CPU1による制御によって、高速で複数枚の画像の撮影が行われる。この例では、静止画撮影時に重ね合わすべきM枚(Mフレーム;Mは2以上の整数)の撮像画像データを取り込み、画像メモリ部4に貼っておく(ステップS1)。   First, when the shutter button is pressed, in the imaging apparatus of this example, a plurality of images are taken at high speed under the control of the CPU 1. In this example, captured image data of M sheets (M frame; M is an integer of 2 or more) to be superimposed at the time of still image shooting is captured and pasted to the image memory unit 4 (step S1).

次に、参照フレームは、画像メモリ部4に蓄積されているM枚の画像フレームのうちの時間的にN番目(Nは2以上の整数で、最大値はM)とするのであるが、コントロール部165は、その何番目とする値Nの初期値を、N=2とする(ステップS2)。そして、次に、コントロール部165は、1枚目の画像フレームをターゲット画像(ターゲットフレーム)とし、N枚目の画像を参照画像(参照フレーム)に設定する(ステップS3)。   Next, the reference frame is Nth in time among the M image frames stored in the image memory unit 4 (N is an integer of 2 or more, and the maximum value is M). The unit 165 sets the initial value of the value N, which is the order, to N = 2 (step S2). Next, the control unit 165 sets the first image frame as a target image (target frame) and sets the Nth image as a reference image (reference frame) (step S3).

次に、コントロール部165は、ターゲットフレームにターゲットブロックを設定し(ステップS4)、動き検出・動き補償部16において、画像メモリ部4から、ターゲットブロックバッファ部161へターゲットブロックを読み込み(ステップS5)、参照ブロックバッファ部162へマッチング処理範囲の画素データを読み込む(ステップS6)。   Next, the control unit 165 sets a target block in the target frame (step S4), and the motion detection / motion compensation unit 16 reads the target block from the image memory unit 4 into the target block buffer unit 161 (step S5). The pixel data in the matching processing range is read into the reference block buffer unit 162 (step S6).

次に、コントロール部165は、参照ブロックバッファ部162から、サーチ範囲内において参照ブロックを読み出し、マッチング処理部163で、後述するようなマッチング処理を行う。そして、この例では、後述するように、マッチング処理部163で算出されたSAD値のうち、後述するSAD値は、SAD値の最小値およびその近傍のSAD値を保持して、二次曲線近似補間処理を行うために、動きベクトル算出部164へ送られる。これをサーチ範囲内のすべての参照ベクトルで繰り返した後、二次曲線近似補間処理部1646で、前述した補間処理を行い、高精度の動きベクトルを出力する(ステップS7)。   Next, the control unit 165 reads the reference block within the search range from the reference block buffer unit 162, and the matching processing unit 163 performs matching processing as described later. In this example, as will be described later, among the SAD values calculated by the matching processing unit 163, the SAD value described later holds the minimum value of the SAD value and the SAD value in the vicinity thereof, and approximates a quadratic curve. In order to perform the interpolation processing, it is sent to the motion vector calculation unit 164. After this is repeated for all reference vectors in the search range, the quadratic curve approximate interpolation processing unit 1646 performs the above-described interpolation processing and outputs a highly accurate motion vector (step S7).

次に、コントロール部165は、この高精度の動きベクトルにしたがって、参照ブロックバッファ部162から動き補償画ブロックを読み出し((ステップS8)、ターゲットブロックと同期して、後段の画像重ね合わせ部17へ送る(ステップS9)。   Next, the control unit 165 reads out the motion compensated image block from the reference block buffer unit 162 according to the high-precision motion vector ((Step S8), and synchronizes with the target block to the subsequent image superimposing unit 17. Send (step S9).

次に、CPU1の制御に従って、画像重ね合わせ部17は、ターゲットブロックと動き補償画ブロックの重ね合わせを行い、重ね合わせたブロックの画像データを画像メモリ部4に貼る。すなわち、画像重ね合わせ部17は、重ね合わせたブロックの画像データを画像メモリ部4に書き込む(ステップS10)。   Next, under the control of the CPU 1, the image superimposing unit 17 superimposes the target block and the motion compensation image block, and pastes the image data of the superimposed block on the image memory unit 4. That is, the image superimposing unit 17 writes the image data of the superimposed block in the image memory unit 4 (step S10).

次に、コントロール部165は、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したか否か判別し(ステップS11)、すべてのターゲットブロックについては未だブロックマッチングの処理が終了していないと判別したときには、ステップS4に戻って、次のターゲットブロックを設定して、ステップS4〜ステップS11までの処理を繰り返す。   Next, the control unit 165 determines whether or not block matching has been completed for all target blocks in the target frame (step S11), and block matching processing has not been completed for all target blocks. When it is determined, the process returns to step S4, the next target block is set, and the processes from step S4 to step S11 are repeated.

また、コントロール部165は、ステップS11で、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したと判別したときには、重ね合わすべきすべての参照フレームについての処理が終了したか否か、つまり、M=Nであるか否か判別し(ステップS12)。   Further, when the control unit 165 determines in step S11 that the block matching for all target blocks in the target frame has ended, whether or not the processing for all reference frames to be superimposed has ended, that is, It is determined whether or not M = N (step S12).

ステップS12で、M=Nではないと判別したときには、N=N+1とし(ステップS13)、ステップS3に戻って、このステップS3以降の処理を繰り返す。つまり、Mが3以上の場合は、全てのターゲットブロックにおいて重ね合わせを行った画像を次のターゲット画像とし、3枚目の画像を参照フレームとして、上記の処理を繰り返して行く。これをM枚目の重ね合わせが終わるまで繰り返す。そして、ステップS12で、M=Nであると判別したときには、この処理ルーチンを終了する。   If it is determined in step S12 that M = N is not satisfied, N = N + 1 is set (step S13), the process returns to step S3, and the processes after step S3 are repeated. In other words, when M is 3 or more, the above processing is repeated with the image that has been superimposed in all target blocks as the next target image and the third image as the reference frame. This is repeated until the Mth overlap is completed. If it is determined in step S12 that M = N, this processing routine is terminated.

なお、以上の静止画のノイズ低減処理方法は、M枚の画像データを画像メモリ部4に貼っておく手法であるが、1枚撮影するたびに重ね合わせを行っても良い。その場合には、画像メモリ部4に記憶する画像フレームは、1枚でよいので、図10の処理ルーチンのノイズ低減処理方法に比べて、撮影間隔は長くなるが、メモリコストを最小にすることが可能である。   The above-described still image noise reduction processing method is a method of pasting M pieces of image data on the image memory unit 4, but the image may be superimposed each time one image is taken. In that case, since only one image frame may be stored in the image memory unit 4, the shooting interval is longer than the noise reduction processing method of the processing routine of FIG. 10, but the memory cost is minimized. Is possible.

<動画撮影時>
次に、この実施の形態の撮像装置において、動画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図11に示す。この図11のフローチャートの各ステップも、CPU1およびこのCPU1により制御される動き検出・動き補償部16のコントロール部165の制御の下に実行されるものである。動画記録ボタンがユーザにより操作されると、CPU1は、図11の処理をスタートから開始するように指示する。
<When shooting movies>
Next, in the imaging apparatus of this embodiment, a flowchart of noise reduction processing by image superposition at the time of moving image shooting is shown in FIG. Each step of the flowchart of FIG. 11 is also executed under the control of the CPU 1 and the control unit 165 of the motion detection / compensation unit 16 controlled by the CPU 1. When the moving image recording button is operated by the user, the CPU 1 instructs the process of FIG. 11 to start from the start.

この実施の形態では、動き検出・動き補償部16は、ターゲットブロック単位でマッチング処理をするのに適した構成とされている。そこで、解像度変換部15は、CPU1の制御に従って、フレーム画像を保持し、ターゲットブロック単位で、動き検出・動き補償部16へ画像データを送る(ステップS21)。   In this embodiment, the motion detection / compensation unit 16 has a configuration suitable for performing matching processing in units of target blocks. Therefore, the resolution conversion unit 15 holds the frame image and sends the image data to the motion detection / compensation unit 16 in units of target blocks according to the control of the CPU 1 (step S21).

動き検出・動き補償部16に送られたターゲットブロックの画像データは、ターゲットブロックバッファ部161に格納される。次に、コントロール部165は、ターゲットブロックに対応した参照ベクトルを設定し(ステップS22)、画像メモリ部4から、マッチング処理範囲の画像データを参照ブロックバッファ部162へ読み込む(ステップS23)。   The target block image data sent to the motion detection / motion compensation unit 16 is stored in the target block buffer unit 161. Next, the control unit 165 sets a reference vector corresponding to the target block (step S22), and reads image data in the matching processing range from the image memory unit 4 into the reference block buffer unit 162 (step S23).

次に、マッチング処理部163および動きベクトル算出部164は、ブロックマッチングによる動き検出処理を行う(ステップS24)。すなわち、マッチング処理部163は、ターゲットブロックの画素値と参照ブロックの画素値との間のSAD値を算出し、算出したSAD値を動きベクトル算出部164へ送る。マッチング処理部163は、この処理をサーチ範囲内のすべての参照ブロックで繰り返す。サーチ範囲内のすべての参照ブロックについてのSAD値の算出が終了した後、動きベクトル算出部164は、最小のSAD値を特定すると共に、その近傍のSAD値を特定し、それらのSAD値を用いて、前述した二次曲線近似補間処理を行い、サブピクセル精度の高精度の動きベクトルを出力する。   Next, the matching processing unit 163 and the motion vector calculation unit 164 perform motion detection processing by block matching (step S24). That is, the matching processing unit 163 calculates an SAD value between the pixel value of the target block and the pixel value of the reference block, and sends the calculated SAD value to the motion vector calculation unit 164. The matching processing unit 163 repeats this process for all reference blocks in the search range. After the calculation of the SAD values for all the reference blocks in the search range is finished, the motion vector calculation unit 164 specifies the minimum SAD value, specifies the SAD value in the vicinity thereof, and uses those SAD values. Then, the above-described quadratic curve approximate interpolation process is performed, and a high-precision motion vector with sub-pixel accuracy is output.

次に、コントロール部165は、ステップS24で算出された高精度の動きベクトルにしたがって、参照ブロックバッファ部162から動き補償画ブロックの画像データを読み出し(ステップS25)、ターゲットブロックと同期して、後段の画像重ね合わせ部17へ送る(ステップS26)。   Next, the control unit 165 reads out the image data of the motion compensated image block from the reference block buffer unit 162 according to the high-precision motion vector calculated in step S24 (step S25), and synchronizes with the target block. To the image superimposing unit 17 (step S26).

画像重ね合わせ部17においては、ターゲットブロックと動き補償画ブロックの重ね合わせを行う。そして、画像重ね合わせ部17は、その重ね合わせた結果のNR画像の画像データを、NTSCエンコーダ19を通じてモニターディスプレイ6に出力することで、動画記録モニターをすると共に、コーデック部18を通じて記録再生装置部6に送り、記録媒体に記録するようにする(ステップS27)。   The image superimposing unit 17 superimposes the target block and the motion compensation image block. Then, the image superimposing unit 17 outputs the image data of the superimposed NR image to the monitor display 6 through the NTSC encoder 19 so as to monitor the moving image recording and the recording / reproducing device unit through the codec unit 18. 6 to be recorded on the recording medium (step S27).

画像重ね合わせ部17で重ね合わせされた画像は、また、画像メモリ部4に格納し、次のフレーム(ターゲットフレーム)での参照フレームとなるようにする(ステップS28)。   The image superimposed by the image superimposing unit 17 is also stored in the image memory unit 4 so that it becomes a reference frame in the next frame (target frame) (step S28).

そして、CPU1は、動画記録停止操作がユーザによりなされたか否か判別し(ステップS29)、当該動画記録停止操作がユーザによりなされていないと判別したときには、ステップS21に戻って、このステップS21以降の処理を繰り返すように指示する。また、ステップS29で、動画記録停止操作がユーザによりなされたと判別したときには、CPU1は、この処理ルーチンを終了するようにする。   Then, the CPU 1 determines whether or not the moving image recording stop operation has been performed by the user (step S29). When it is determined that the moving image recording stop operation has not been performed by the user, the CPU 1 returns to step S21, and after this step S21. Instruct to repeat the process. If it is determined in step S29 that the moving image recording stop operation has been performed by the user, the CPU 1 ends this processing routine.

以上の動画のノイズ低減処理の処理ルーチンにおいては、1フレーム前の画像フレームを参照フレームとするようにしたが、1フレームよりもさらに過去のフレームの画像を参照フレームとして用いるようにしても良い。また、1フレーム前と2フレーム前の画像を、画像メモリ部4に格納しておき、それらの2枚の画像情報の内容から、どちらの画像フレームを参照フレームにするかを選択しても良い。(どちらかの画像を選択するかのためには、どのような画像内容の識別をするのか、また、どのような識別処理をするのかについて、例を記載してください)
上記のような手段、手順、システム構成を用いることで、一つの共通したブロックマッチング処理のハードウエアで、静止画ノイズ低減処理および動画ノイズ低減処理を行うことが可能になる。
In the above-described processing routine for noise reduction processing of a moving image, an image frame one frame before is used as a reference frame. However, an image of a frame earlier than one frame may be used as a reference frame. In addition, the image before the first frame and the image before the second frame may be stored in the image memory unit 4, and the image frame to be used as the reference frame may be selected from the contents of the two pieces of image information. . (Please give an example of what kind of image content you want to identify and what kind of identification process to do to select which image)
By using the means, procedure, and system configuration as described above, it is possible to perform still image noise reduction processing and moving image noise reduction processing with one common block matching processing hardware.

[動きベクトル算出部164について]
次に、動きベクトル算出部164の構成例およびその動作について説明する。まず、この発明の実施形態における動きベクトル算出部164の構成例およびその動作を説明する前に、従来と同様に、SADテーブルを用いる比較例について説明する。
[About the motion vector calculation unit 164]
Next, a configuration example and operation of the motion vector calculation unit 164 will be described. First, before describing the configuration example and the operation of the motion vector calculation unit 164 according to the embodiment of the present invention, a comparative example using an SAD table will be described as in the prior art.

<比較例>
図12に、動きベクトル算出部164の比較例の構成図を示す。この比較例の動きベクトル算出部164は、SAD値書き込み部1641と、SADテーブルTBLと、SAD値比較部1642と、SAD値保持部1643と、X方向(水平方向)近傍値抽出部1644と、Y方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646とからなる。
<Comparative example>
FIG. 12 shows a configuration diagram of a comparative example of the motion vector calculation unit 164. The motion vector calculation unit 164 of this comparative example includes an SAD value writing unit 1641, an SAD table TBL, an SAD value comparison unit 1642, an SAD value holding unit 1643, an X direction (horizontal direction) neighborhood value extraction unit 1644, A Y-direction (vertical direction) neighborhood value extraction unit 1645 and a quadratic curve approximation interpolation processing unit 1646 are included.

この比較例の動きベクトル算出部164においては、SAD値書き込み部1641は、マッチング処理部163から送られてくる、参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値をSADテーブルTBLに格納する。マッチング処理部163でサーチ範囲の全てのマッチング処理が終わったら、SAD値比較部1642は、SADテーブルTBLのすべてのSAD値について比較処理を行って、最小のSAD値を探索し、検出した最小のSAD値およびそのSAD値を呈する参照ブロックの位置情報(参照ベクトル)をSAD値保持部1643に保持する。   In the motion vector calculation unit 164 of the comparative example, the SAD value writing unit 1641 receives the position information (reference vector) of the reference block and the SAD value of the reference block sent from the matching processing unit 163 as the SAD table TBL. To store. When all the matching processes in the search range are completed in the matching processing unit 163, the SAD value comparison unit 1642 performs a comparison process for all the SAD values in the SAD table TBL, searches for the minimum SAD value, and detects the minimum detected value. The SAD value and the position information (reference vector) of the reference block exhibiting the SAD value are held in the SAD value holding unit 1643.

次に、検出した最小のSAD値の近傍4個のSAD値およびそれぞれのSAD値を呈する参照ブロックの位置情報(参照ベクトル)をSADテーブルTBLから読み出して、SAD値保持部1643に保持する。   Next, four SAD values in the vicinity of the detected minimum SAD value and reference block position information (reference vector) representing each SAD value are read from the SAD table TBL and held in the SAD value holding unit 1643.

次に、X方向(水平方向)近傍値抽出部1644は、SAD値保持部1643に保持された、前記検出した最小のSAD値とそのX方向(水平方向)の近傍値とを、それぞれの参照ブロックの位置情報(参照ブロック)と共に読み出し、二次曲線近似補間処理部1646に送る。二次曲線近似補間処理部1646は、二次曲線による補間処理を、X方向(水平方向)について、前述したようにして実行する。   Next, the X direction (horizontal direction) neighborhood value extraction unit 1644 refers to the detected minimum SAD value and the X direction (horizontal direction) neighborhood value held in the SAD value holding unit 1643, respectively. This is read together with the block position information (reference block) and sent to the quadratic curve approximation interpolation processing unit 1646. The quadratic curve approximate interpolation processing unit 1646 performs the interpolation process using the quadratic curve in the X direction (horizontal direction) as described above.

次に、Y方向(垂直方向)近傍値抽出部1645は、SAD値保持部1643に保持された、前記検出した最小のSAD値とそのY方向(垂直方向)の近傍値とを、それぞれの参照ブロックの位置情報(参照ブロック)と共に読み出し、二次曲線近似補間処理部1646に送る。二次曲線近似補間処理部1646は、二次曲線による補間処理を、Y方向(垂直方向)について、前述したようにして実行する。   Next, the Y direction (vertical direction) neighborhood value extraction unit 1645 refers to the detected minimum SAD value and the neighborhood value in the Y direction (vertical direction) held in the SAD value holding unit 1643, respectively. This is read together with the block position information (reference block) and sent to the quadratic curve approximation interpolation processing unit 1646. The quadratic curve approximate interpolation processing unit 1646 executes the interpolation process using the quadratic curve in the Y direction (vertical direction) as described above.

こうして、二次曲線近似補間処理部1646は、二次曲線による補間処理を、X方向およびY方向の2回行い、サブピクセル精度の高精度の動きベクトルを算出する。   In this way, the quadratic curve approximate interpolation processing unit 1646 performs interpolation processing by the quadratic curve twice in the X direction and the Y direction, and calculates a high-precision motion vector with subpixel accuracy.

この比較例におけるブロックマッチング処理の流れの例を、図13のフローチャートに示す。この比較例のフローチャートの各ステップは、マッチング処理部163および動きベクトル算出部164においてなされるものである。   An example of the flow of block matching processing in this comparative example is shown in the flowchart of FIG. Each step of the flowchart of this comparative example is performed by the matching processing unit 163 and the motion vector calculation unit 164.

先ず、マッチング処理部163は、参照ベクトル(Vx,Vy)を設定して、SAD値を計算する参照ブロック位置を設定し(ステップS31)、設定した参照ブロックの画素データを、参照ブロックバッファ部162から読み込む(ステップS32)と共に、ターゲットブロックバッファ部161のターゲットブロックの画素データを読み込んで、ターゲットブロックおよび参照ブロックの各画素データの差分の絶対値の総和、つまり、SAD値を求め(ステップS33)、求めたSAD値を動きベクトル算出部164に送出する。動きベクトル算出部164では、SAD値書き込み部1641が、受け取ったSAD値を、対応する参照ブロックの位置、つまり、参照ベクトルに対応する位置に格納する(ステップS34)。   First, the matching processing unit 163 sets the reference vector (Vx, Vy), sets the reference block position for calculating the SAD value (step S31), and sets the reference block pixel data as the reference block buffer unit 162. (Step S32), the pixel data of the target block in the target block buffer unit 161 is read, and the sum of absolute values of differences between the pixel data of the target block and the reference block, that is, the SAD value is obtained (step S33). The obtained SAD value is sent to the motion vector calculation unit 164. In the motion vector calculation unit 164, the SAD value writing unit 1641 stores the received SAD value at the position of the corresponding reference block, that is, the position corresponding to the reference vector (step S34).

次に、マッチング処理部163は、サーチ範囲の全ての参照ブロックの位置(参照ベクトル)でマッチング処理を終了したか否か判別し(ステップS35)、未だ、サーチ範囲においては、未処理の参照ブロックがあると判別したときには、ステップS31に戻り、前述したステップS31以降の処理を繰り返す。   Next, the matching processing unit 163 determines whether or not the matching process has been completed at the positions (reference vectors) of all reference blocks in the search range (step S35), and the unprocessed reference block is still in the search range. When it is determined that there is, the process returns to step S31, and the processes after step S31 described above are repeated.

また、マッチング処理部163は、ステップS35で、サーチ範囲の全ての参照ブロックの位置(参照ベクトル)でマッチング処理を終了したと判別したときには、その旨を動きベクトル算出部164に伝える。   If the matching processing unit 163 determines in step S35 that the matching processing has been completed at the positions (reference vectors) of all the reference blocks in the search range, the matching processing unit 163 notifies the motion vector calculation unit 164 accordingly.

動きベクトル算出部164では、これに応じて、SAD値比較部1642が、SADテーブルTBLの各SAD値を比較して、SADテーブルTBLにおいて最小となるSAD値を検出し、検出したSAD値の最小値Sminを、その参照ベクトル(参照ブロック位置の情報)と共にSAD値保持部1643の最小値格納部に保持する。そして、SAD値保持部1643は、検出された最小のSAD値Sminの位置の近傍位置の近傍SAD値Sx1、Sx2、Sy1、Sy2を、SADテーブルTBLから取得して、それぞれの格納部に保持する(ステップS36)。   In response to this, in the motion vector calculation unit 164, the SAD value comparison unit 1642 compares each SAD value in the SAD table TBL, detects the SAD value that is the smallest in the SAD table TBL, and minimizes the detected SAD value. The value Smin is held in the minimum value storage unit of the SAD value holding unit 1643 together with the reference vector (information of the reference block position). Then, the SAD value holding unit 1643 acquires neighboring SAD values Sx1, Sx2, Sy1, and Sy2 near the detected position of the minimum SAD value Smin from the SAD table TBL and holds them in the respective storage units. (Step S36).

次に、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する(ステップS37)。以上で、1枚の参照フレームについての比較例のブロックマッチング処理を終了する。   Next, the X direction (horizontal direction) neighborhood value extraction unit 1644 and the Y direction (vertical direction) neighborhood value extraction unit 1645 hold the detected minimum SAD value Smin and its neighborhood SAD held in the SAD value holding unit 1643. The values Sx1, Sx2, Sy1, Sy2 and their position information are read out and sent to the quadratic curve approximation interpolation processing unit 1646. Receiving this, the quadratic curve approximation interpolation processing unit 1646 performs interpolation by the quadratic curve twice in the X direction and the Y direction, and calculates a high-precision motion vector with subpixel accuracy as described above ( Step S37). Thus, the block matching process of the comparative example for one reference frame is completed.

以上説明した比較例は、SADテーブルTBLを生成し、当該生成したSADテーブルTBLから二次曲線近似補間用の最小のSAD値と、その近傍の4個のSAD値を抽出するようにするので、SADテーブルTBLの分だけ、大規模なメモリを必要とする。   In the comparative example described above, the SAD table TBL is generated, and the minimum SAD value for quadratic curve approximation interpolation and four SAD values in the vicinity thereof are extracted from the generated SAD table TBL. A large memory is required for the SAD table TBL.

この実施形態では、SADテーブルTBLを生成しないことにより、より回路規模を削減するとともに、処理時間も削減することができるようにする。   In this embodiment, by not generating the SAD table TBL, the circuit scale can be further reduced and the processing time can be reduced.

<実施形態の動きベクトル算出部164の第1の例>
上述したように、ブロックマッチング処理は、参照ベクトルの示す位置を参照ブロックの位置とし、各参照ブロックの各画素とターゲットブロックの各画素のSAD値を計算し、その計算処理を、サーチ範囲内のすべての参照ベクトルの示す位置の参照ブロックについて行う。
<First Example of Motion Vector Calculation Unit 164 of Embodiment>
As described above, the block matching process uses the position indicated by the reference vector as the position of the reference block, calculates the SAD value of each pixel of each reference block and each pixel of the target block, and performs the calculation process within the search range. This is performed for reference blocks at positions indicated by all reference vectors.

ここで、サーチ範囲内において参照ブロックの位置を変えて、動き補償ブロックをサーチする場合に、サーチを画面(フレーム)の端から順番に行う、画面(フレーム)の中心から外側に向かって行う、などいろいろな方法が考えられるが、この実施の形態では、サーチ方向は、図14(A)で矢印120に示すように設定され、サーチ範囲の左上端から水平方向にサーチを開始し、1ライン分のサーチが終わった後、垂直方向に1ライン下のラインを、左端から水平方向にサーチする、という手順を繰り返すサーチ方法を採用する。   Here, when searching for a motion compensation block by changing the position of the reference block within the search range, the search is performed in order from the end of the screen (frame), and from the center of the screen (frame) to the outside. In this embodiment, the search direction is set as indicated by an arrow 120 in FIG. 14A, and the search is started in the horizontal direction from the upper left end of the search range. After the minute search is completed, a search method is adopted in which a procedure is repeated in which a line one line below in the vertical direction is searched in the horizontal direction from the left end.

すなわち、図14(B)に示すように、サーチ範囲106において、当該サーチ範囲106の左上から水平方向に参照ブロック108を順次に設定してサーチして、各参照ブロック108についてのSAD値の計算を行う。すると、図14(C)に示すように、対応するSADテーブルも左上から水平方向に埋まっていく。このとき、実際にマッチング処理に使用される画素データの範囲は、参照ブロック108の大きさに応じたマッチング処理範囲110となるのは、前述した通りである。   That is, as shown in FIG. 14B, in the search range 106, the reference block 108 is sequentially set and searched in the horizontal direction from the upper left of the search range 106, and the SAD value for each reference block 108 is calculated. I do. Then, as shown in FIG. 14C, the corresponding SAD table is also buried in the horizontal direction from the upper left. At this time, the pixel data range actually used for the matching process becomes the matching processing range 110 corresponding to the size of the reference block 108 as described above.

図7に示したように、この例のサブピクセル精度の二次曲線近似補間処理を行うためには、SAD値の最小値Smin、およびその近傍のSAD値Sx1、Sx2、Sy1、Sy2が求まれば良い。   As shown in FIG. 7, in order to perform the sub-pixel accuracy quadratic curve approximate interpolation processing of this example, the minimum value Smin of the SAD value and SAD values Sx1, Sx2, Sy1, and Sy2 in the vicinity thereof are obtained. It ’s fine.

各参照ブロックについてのSAD値を算出した際に、その算出したSAD値と、その時点までのSAD値の最小値とを比較して、算出したSAD値がその時までのSAD値の最小値よりも小さければ、算出したSAD値を最小値として保持すると共に、そのSAD値とそのときの参照ベクトルを保持することにより、SAD値の最小値および当該最小値を取る参照ブロックの位置情報(参照ベクトルの情報)とを、SADテーブルを生成することなく、求めることができる。   When the SAD value for each reference block is calculated, the calculated SAD value is compared with the minimum value of the SAD value up to that point, and the calculated SAD value is greater than the minimum value of the SAD value up to that point. If it is smaller, the calculated SAD value is held as the minimum value, and the SAD value and the reference vector at that time are held, so that the minimum value of the SAD value and the position information of the reference block that takes the minimum value (reference vector Information) can be obtained without generating the SAD table.

そして、検出したSAD値の最小値を保持すると共に、その最小SAD値となる参照ブロック位置の近傍の参照ブロックのSAD値を、近傍SAD値として保持するようにすれば、近傍SAD値をも、SADテーブルを生成することなく、保持することができる。   Then, if the minimum value of the detected SAD value is held and the SAD value of the reference block near the reference block position that becomes the minimum SAD value is held as the neighboring SAD value, the neighboring SAD value is also obtained. The SAD table can be held without being generated.

このとき、この例では、図15(A)に示すように、上述の図14(A)に示したようなサーチ方法を採用しているので、従来のSADテーブルTBLにおいて水平方向の1ライン分のSAD値を記憶する容量のメモリ(以下、ラインメモリという)を設ければ、新たに参照ブロックのSAD値が算出されたときには、SADテーブルTBL上では、図15(B)で斜線を付して示すように、当該新たに算出されたSAD値121に対して、それより前に算出されたSADテーブルTBLの1ライン分の複数個の参照ブロックのSAD値が、格納データ122として前記ラインメモリに格納されていることになる。   At this time, in this example, as shown in FIG. 15 (A), the search method as shown in FIG. 14 (A) described above is adopted, so that one line in the horizontal direction in the conventional SAD table TBL is used. If a memory having a capacity for storing the SAD value (hereinafter referred to as a line memory) is provided, when the SAD value of the reference block is newly calculated, the SAD table TBL is hatched in FIG. As shown, the SAD values of a plurality of reference blocks for one line of the SAD table TBL calculated before the newly calculated SAD value 121 are stored as the storage data 122 in the line memory. Will be stored.

そこで、新たに算出された参照ブロックのSAD値が、最小のSAD値として検出されたときには、SADテーブルTBL上において、前記最小SAD値121を呈する参照ブロックの位置の1ライン上の位置の参照ブロックのSAD値123(近傍SAD値(Sy1))と、前記最小SAD値121を呈する参照ブロックの位置の左横の位置の参照ブロックのSAD値124(近傍SAD値(Sx1))は、前記ラインメモリから取得することができる。   Therefore, when the newly calculated SAD value of the reference block is detected as the minimum SAD value, the reference block at a position on one line of the position of the reference block exhibiting the minimum SAD value 121 on the SAD table TBL. SAD value 123 (neighboring SAD value (Sy1)) and the SAD value 124 (neighboring SAD value (Sx1)) of the reference block on the left side of the position of the reference block exhibiting the minimum SAD value 121 are the line memory. Can be obtained from.

そして、SADテーブルTBL上において、最小SAD値の参照ブロックの位置の右横の位置の参照ブロックのSAD値である近傍SAD値(Sx2)(図15(C)の125参照)は、後で、その参照ブロック位置で算出されたSAD値を保持すればよい。同様に、SADテーブルTBL上において、新たに算出された最小SAD値の参照ブロックの位置の1ライン下の位置の参照ブロックのSAD値である近傍SAD値(Sy2)(図15(C)の126参照)も、後で、その参照ブロック位置で算出されたSAD値を保持すればよい。   Then, on the SAD table TBL, the neighboring SAD value (Sx2) (see 125 in FIG. 15C) that is the SAD value of the reference block at the position to the right of the reference block position of the minimum SAD value is The SAD value calculated at the reference block position may be held. Similarly, in the SAD table TBL, the neighborhood SAD value (Sy2) which is the SAD value of the reference block at a position one line below the position of the reference block of the newly calculated minimum SAD value (126 in FIG. 15C). (Reference) may also hold the SAD value calculated at the reference block position later.

以上のことを考慮して、この動きベクトル算出部164の第1の例は、図16に示すようなハードウエア構成とする。   Considering the above, the first example of the motion vector calculation unit 164 has a hardware configuration as shown in FIG.

すなわち、この動きベクトル算出部164の第1の例においては、図12の比較例のSADテーブルTBLは備えず、SAD値書き込み部1641と、SAD値比較部1642と、SAD値保持部1643と、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646と、SADテーブルTBLの1ライン分のメモリ(ラインメモリという)1647とを備えてなる。   That is, in the first example of the motion vector calculation unit 164, the SAD table TBL of the comparative example of FIG. 12 is not provided, the SAD value writing unit 1641, the SAD value comparison unit 1642, the SAD value holding unit 1643, X direction (horizontal direction) neighborhood value extraction unit 1644, Y direction (vertical direction) neighborhood value extraction unit 1645, quadratic curve approximation interpolation processing unit 1646, and memory (referred to as line memory) 1647 for one line of the SAD table TBL. And comprising.

そして、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646とは、前述した比較例と同様の動作を行うが、SAD値書き込み部1641、SAD値比較部1642、SAD値保持部1643およびラインメモリ1647の部分は、前述の比較例とは、異なる動作を行う。   The X direction (horizontal direction) neighborhood value extraction unit 1644, the Y direction (vertical direction) neighborhood value extraction unit 1645, and the quadratic curve approximation interpolation processing unit 1646 perform the same operations as in the comparative example described above. The SAD value writing unit 1641, the SAD value comparison unit 1642, the SAD value holding unit 1643, and the line memory 1647 perform different operations from the above-described comparative example.

SAD値保持部1643は、図12の比較例と同様に、最小SAD値Sminおよび近傍SAD値Sx1、Sx2、Sy1、Sy2の保持部(メモリ)を備える。そして、この第1の例においては、SAD値保持部1643は、その最小SAD値保持部からの最小SAD値SminをSAD値比較部1642に供給する共に、保持している近傍SAD値のうち、最小SAD値Sminの右側の近傍SAD値Sx2の参照ブロックの位置情報(参照ベクトル)と、最小SAD値Sminの下側の近傍SAD値Sy2の参照ブロックの位置情報(参照ベクトル)とを、SAD値書き込み部1641に供給する。   Similar to the comparative example of FIG. 12, the SAD value holding unit 1643 includes a holding unit (memory) for the minimum SAD value Smin and the neighboring SAD values Sx1, Sx2, Sy1, and Sy2. In this first example, the SAD value holding unit 1643 supplies the minimum SAD value Smin from the minimum SAD value holding unit to the SAD value comparison unit 1642, and among the stored nearby SAD values, The position information (reference vector) of the reference block of the neighboring SAD value Sx2 on the right side of the minimum SAD value Smin and the position information (reference vector) of the reference block of the neighboring SAD value Sy2 on the lower side of the minimum SAD value Smin The data is supplied to the writing unit 1641.

SAD値比較部1642は、この第1の例においては、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを受けると共に、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminとを受ける。   In this first example, the SAD value comparison unit 1642 receives the position information (reference vector) of the reference block from the matching processing unit 163 and the SAD value Sin of the reference block, and the SAD value holding unit 1643 The minimum SAD value Smin from the minimum SAD value holding unit is received.

そして、SAD値比較部1642は、マッチング処理部163からの当該時点で算出されたSAD値Sinと、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminとの両者を比較し、マッチング処理部163からの当該時点で算出されたSAD値Sinの方が小さいときには、当該時点で、そのSAD値を最小SAD値であるとして検出し、また、SAD値Sinの方が小さいときには、当該時点では、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminが未だ最小値であると検出する。そして、SAD値比較部1642は、その検出結果の情報DETをSAD値書き込み部1641およびSAD値保持部1643に供給する。   Then, the SAD value comparison unit 1642 compares both the SAD value Sin calculated at that time from the matching processing unit 163 and the minimum SAD value Smin from the minimum SAD value holding unit of the SAD value holding unit 1643, When the SAD value Sin calculated at the time from the matching processing unit 163 is smaller, the SAD value is detected as the minimum SAD value at the time, and when the SAD value Sin is smaller, At the time, it is detected that the minimum SAD value Smin from the minimum SAD value holding unit of the SAD value holding unit 1643 is still the minimum value. The SAD value comparison unit 1642 supplies the detection result information DET to the SAD value writing unit 1641 and the SAD value holding unit 1643.

SAD値書き込み部1641は、マッチング処理部163からの算出されたSAD値Sinおよびその位置情報(参照ベクトル)を一時保持するための1画素分のバッファメモリを備え、この第1の例においては、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、ラインメモリ1647に書き込む。この場合、ラインメモリ1647は、シフトレジスタと同様の動作を行い、空きスペースが無いときには、新規の位置情報およびSAD値が記憶されると、ラインメモリ1647において最も古い前記位置情報およびSAD値が廃棄される。   The SAD value writing unit 1641 includes a buffer memory for one pixel for temporarily storing the SAD value Sin calculated from the matching processing unit 163 and its position information (reference vector). In this first example, The reference block position information (reference vector) from the matching processing unit 163 and the SAD value Sin of the reference block are written in the line memory 1647. In this case, the line memory 1647 performs the same operation as that of the shift register, and when there is no empty space, when the new position information and SAD value are stored, the oldest position information and SAD value in the line memory 1647 are discarded. Is done.

また、SAD値書き込み部1641は、算出されたSAD値Sinおよびその位置情報をラインメモリ1647に書き込む前に、この第1の例においては、次のような処理を行う。   In addition, the SAD value writing unit 1641 performs the following processing in the first example before writing the calculated SAD value Sin and its position information into the line memory 1647.

すなわち、SAD値書き込み部1641は、SAD値比較部1642からの比較検出結果の情報DETが、SAD値Sinが最小値であることを示しているときには、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、SAD値保持部1643に送る。   That is, the SAD value writing unit 1641, when the comparison detection result information DET from the SAD value comparison unit 1642 indicates that the SAD value Sin is the minimum value, the position information of the reference block from the matching processing unit 163. (Reference vector) and the SAD value Sin of the reference block are sent to the SAD value holding unit 1643.

SAD値保持部1643は、SAD値比較部1642からの比較検出結果の情報DETにより、SAD値Sinが最小値であることを検知し、SAD値書き込み部1641から送られてくる参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、最小SAD値保持部に格納する。   The SAD value holding unit 1643 detects that the SAD value Sin is the minimum value based on the comparison detection result information DET from the SAD value comparison unit 1642, and the position information of the reference block transmitted from the SAD value writing unit 1641. (Reference vector) and the SAD value Sin of the reference block are stored in the minimum SAD value holding unit.

また、SAD値書き込み部1641は、この第1の例においては、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)が、SAD値保持部1643から受け取った近傍SAD値Sx2またはSy2の位置情報と一致したときにも、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、SAD値保持部1643に送る。   In the first example, the SAD value writing unit 1641 uses the position information (reference vector) of the reference block from the matching processing unit 163 as the position of the neighboring SAD value Sx2 or Sy2 received from the SAD value holding unit 1643. Even when the information matches, the reference block position information (reference vector) from the matching processing unit 163 and the SAD value Sin of the reference block are sent to the SAD value holding unit 1643.

SAD値保持部1643は、受け取った参照ブロックの位置情報(参照ベクトル)から、いずれの近傍SAD値に関する情報かを認識して、対応する近傍SAD値保持部に格納する。   The SAD value holding unit 1643 recognizes which neighboring SAD value is information from the received reference block position information (reference vector), and stores it in the corresponding neighboring SAD value holding unit.

以上の処理をサーチ範囲における全ての参照ブロックについて終了すると、SAD値保持部1643には、前述したように、最小SAD値およびその位置情報ならびに4個の近傍SAD値およびその位置情報が保持される。   When the above processing is completed for all the reference blocks in the search range, the SAD value holding unit 1643 holds the minimum SAD value and its position information, and the four neighboring SAD values and its position information, as described above. .

そこで、比較例と同様にして、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する。   Therefore, in the same manner as in the comparative example, the X direction (horizontal direction) neighborhood value extraction unit 1644 and the Y direction (vertical direction) neighborhood value extraction unit 1645 are stored in the SAD value holding unit 1643 and the detected minimum SAD. The value Smin and its neighboring SAD values Sx1, Sx2, Sy1, Sy2 and their position information are read out and sent to the quadratic curve approximation interpolation processing unit 1646. Receiving this, the quadratic curve approximation interpolation processing unit 1646 performs interpolation by the quadratic curve twice in the X direction and the Y direction, and calculates a high-precision motion vector with sub-pixel accuracy as described above.

以上のようにして、第1の例においては、SADテーブルTBLの代わりに、SADテーブルTBLの1ライン分のラインメモリを用いることにより、サブピクセル精度の動きベクトルの検出ができる。   As described above, in the first example, by using a line memory for one line of the SAD table TBL instead of the SAD table TBL, it is possible to detect a motion vector with sub-pixel accuracy.

図17および図18に、上述の図16に示した第1の例の動きベクトル算出部164と、マッチング処理部163におけるブロックマッチング手法のフローチャートを示す。   17 and 18 are flowcharts of the block matching technique in the motion vector calculation unit 164 and the matching processing unit 163 of the first example shown in FIG.

はじめに、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値を設定する(図17のステップS41)。この最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。   First, an initial value of the minimum SAD value Smin of the SAD value holding unit 1643 of the motion vector calculation unit 164 is set (step S41 in FIG. 17). As the initial value of the minimum SAD value Smin, for example, the maximum value of the pixel difference is set.

次に、マッチング処理部163では、参照ベクトル(Vx,Vy)を設定して、SAD値を計算する参照ブロック位置を設定し(ステップS42)、設定した参照ブロックの画素データを、参照ブロックバッファ部162から読み込む(ステップS43)と共に、ターゲットブロックバッファ部161のターゲットブロックの画素データを読み込んで、ターゲットブロックおよび参照ブロックの各画素データの差分の絶対値の総和、つまり、SAD値を求め(ステップS44)、求めたSAD値を動きベクトル算出部164に送出する。   Next, the matching processing unit 163 sets reference vectors (Vx, Vy), sets reference block positions for calculating SAD values (step S42), and sets the reference block pixel data as reference block buffer units. At the same time as reading from 162 (step S43), the pixel data of the target block of the target block buffer unit 161 is read to obtain the sum of absolute values of differences between the pixel data of the target block and the reference block, that is, the SAD value (step S44). ), And sends the obtained SAD value to the motion vector calculation unit 164.

動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出されたSAD値Sinと、SAD値保持部1643に保持されている最小SAD値Sminとを比較して、算出されたSAD値Sinが、それまで保持されている最小SAD値Sminよりも小さいか否か判別する(ステップS45)。   In the motion vector calculation unit 164, the SAD value comparison unit 1642 is calculated by comparing the SAD value Sin calculated by the matching processing unit 163 with the minimum SAD value Smin held in the SAD value holding unit 1643. It is determined whether or not the SAD value Sin is smaller than the minimum SAD value Smin held so far (step S45).

このステップS45で、算出されたSAD値Sinが最小SAD値Sminより小さいと判別したときには、ステップS46に進み、SAD値保持部1643に保持される最小SAD値Sminの情報および当該最小SAD値Sminを呈する参照ブロック位置の1ピクセル上および1ピクセル左の位置の参照ブロックのSAD値およびその位置情報(参照ベクトル)の更新がなされる。   When it is determined in step S45 that the calculated SAD value Sin is smaller than the minimum SAD value Smin, the process proceeds to step S46, and information on the minimum SAD value Smin held in the SAD value holding unit 1643 and the minimum SAD value Smin are obtained. The SAD value and the position information (reference vector) of the reference block at the position one pixel above and one pixel to the left of the reference block position to be presented are updated.

すなわち、SAD値比較部1642は、算出されたSAD値Sinが最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出されたSAD値Sinおよびその位置情報(参照ベクトル)を、新たな最小SAD値Sminの情報としてSAD値保持部1643に送ると共に、図15(B)から分かるように、ラインメモリ1647の最も古いSAD値およびその位置情報(参照ベクトル)と、最も新しいSAD値およびその位置情報(参照ベクトル)とを、最小SAD値の位置の1ピクセル上の位置の参照ブロックのSAD値Sy1の情報および1ピクセル左の位置の参照ブロックのSAD値Sx1の情報として、SAD値保持部1643に送る。SAD値保持部1643は、受け取った新たな最小SAD値Sminの情報および1ピクセル上の位置の参照ブロックのSAD値Sy1の情報および1ピクセル左の位置の参照ブロックのSAD値Sx1の情報により、それぞれ対応する保持情報を更新する。   That is, the SAD value comparison unit 1642 sends the comparison result information DET to the SAD value writing unit 1641 that the calculated SAD value Sin is smaller than the minimum SAD value Smin. Then, the SAD value writing unit 1641 sends the calculated SAD value Sin and its position information (reference vector) to the SAD value holding unit 1643 as information of a new minimum SAD value Smin, and from FIG. As can be seen, the oldest SAD value and its position information (reference vector) in the line memory 1647 and the newest SAD value and its position information (reference vector) are referenced to the position one pixel above the position of the minimum SAD value. The information is sent to the SAD value holding unit 1643 as information on the SAD value Sy1 of the block and information on the SAD value Sx1 of the reference block located one pixel to the left. The SAD value holding unit 1643 receives the new minimum SAD value Smin information, the SAD value Sy1 information of the reference block at the position one pixel above, and the SAD value Sx1 information of the reference block at the position one pixel left, respectively. Update the corresponding retention information.

ステップS46の後には、SAD値書き込み部1641は、ラインメモリ1647に、算出されたSAD値Sinを書き込む(ステップS47)。   After step S46, the SAD value writing unit 1641 writes the calculated SAD value Sin in the line memory 1647 (step S47).

また、ステップS45で、算出されたSAD値Sinが最小SAD値Sminより大きいと判別したときには、ステップS46の保持情報の更新処理は行わずにステップS47に進み、SAD値書き込み部1641は、ラインメモリ1647に、算出されたSAD値Sinを書き込む。   If it is determined in step S45 that the calculated SAD value Sin is greater than the minimum SAD value Smin, the process advances to step S47 without performing the update process of the retained information in step S46, and the SAD value writing unit 1641 In 1647, the calculated SAD value Sin is written.

次に、SAD値書き込み部1641は、算出されたSAD値Sinについての位置情報(参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている参照ブロックの位置の1ピクセル下の参照ブロックの位置であるか否か判別し(ステップS51)、1ピクセル下の参照ブロックの位置であると判別したときには、算出されたSAD値Sinおよびその位置情報(参照ベクトル)をSAD値保持部1643に送る。SAD値保持部1643は、受け取ったSAD値およびその位置情報により、前記1ピクセル下の位置の参照ブロックについての近傍SAD値Sy2の保持情報を更新する(ステップS52)。   Next, the SAD value writing unit 1641 indicates the position of the reference block one pixel below the position of the reference block where the position indicated by the position information (reference vector) for the calculated SAD value Sin is held as the minimum SAD value Smin. It is determined whether or not it is a position (step S51), and when it is determined that it is the position of a reference block one pixel below, the calculated SAD value Sin and its position information (reference vector) are sent to the SAD value holding unit 1643. . The SAD value holding unit 1643 updates the holding information of the neighboring SAD value Sy2 for the reference block at the position one pixel below by using the received SAD value and its position information (step S52).

ステップS51で、算出されたSAD値Sinについての位置情報(参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている参照ブロックの位置の1ピクセル下の参照ブロックの位置でないと判別したときには、SAD値書き込み部1641は、算出されたSAD値Sinについての位置情報(参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている参照ブロックの位置の1ピクセル下の参照ブロックの位置であるか否か判別する(ステップS53)。   When it is determined in step S51 that the position indicated by the position information (reference vector) for the calculated SAD value Sin is not the position of the reference block one pixel below the position of the reference block held as the minimum SAD value Smin In the SAD value writing unit 1641, the position indicated by the position information (reference vector) about the calculated SAD value Sin is the position of the reference block one pixel below the position of the reference block held as the minimum SAD value Smin. It is determined whether or not there is (step S53).

このステップS53で、算出されたSAD値Sinについての位置情報(参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている参照ブロックの位置の1ピクセル右の参照ブロックの位置であると判別したときには、SAD値書き込み部1641は、算出されたSAD値Sinおよびその位置情報(参照ベクトル)をSAD値保持部1643に送る。SAD値保持部1643は、受け取ったSAD値およびその位置情報により、前記1ピクセル右の位置の参照ブロックについての近傍SAD値Sx2の保持情報を更新する(ステップS54)。   In step S53, it is determined that the position indicated by the position information (reference vector) for the calculated SAD value Sin is the position of the reference block one pixel to the right of the position of the reference block held as the minimum SAD value Smin. In this case, the SAD value writing unit 1641 sends the calculated SAD value Sin and its position information (reference vector) to the SAD value holding unit 1643. The SAD value holding unit 1643 updates the holding information of the neighboring SAD value Sx2 for the reference block at the position one pixel to the right based on the received SAD value and its position information (step S54).

ステップS53で、算出されたSAD値Sinについての位置情報(参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている参照ブロックの位置の1ピクセル右の参照ブロックの位置でないと判別したときには、SAD値書き込み部1641は、算出されたSAD値Sinおよびその位置情報(参照ベクトル)は、ラインメモリ1647にのみ書き込み(前述のステップS47)、SAD値保持部1643に送らない。   When it is determined in step S53 that the position indicated by the position information (reference vector) for the calculated SAD value Sin is not the position of the reference block one pixel to the right of the position of the reference block held as the minimum SAD value Smin The SAD value writing unit 1641 writes the calculated SAD value Sin and its position information (reference vector) only in the line memory 1647 (step S47 described above) and does not send it to the SAD value holding unit 1643.

そして、マッチング処理部163は、サーチ範囲の全ての参照ブロックの位置(参照ベクトル)でマッチング処理を終了したか否か判別し(ステップS55)、未だ、サーチ範囲においては、未処理の参照ブロックがあると判別したときには、図17のステップS42に戻り、前述したステップS42以降の処理を繰り返す。   Then, the matching processing unit 163 determines whether or not the matching process has been completed at the positions (reference vectors) of all the reference blocks in the search range (step S55), and an unprocessed reference block is still in the search range. If it is determined that there is, the process returns to step S42 in FIG. 17 to repeat the processes after step S42 described above.

また、マッチング処理部163は、ステップS55で、サーチ範囲の全ての参照ブロックの位置(参照ベクトル)でマッチング処理を終了したと判別したときには、その旨を動きベクトル算出部164に伝える。   If the matching processing unit 163 determines in step S55 that the matching processing has been completed at the positions (reference vectors) of all the reference blocks in the search range, the matching processing unit 163 notifies the motion vector calculation unit 164 accordingly.

動きベクトル算出部164では、これを受けて、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する(ステップS56)。以上で、1枚の参照フレームについての第1の例のブロックマッチング処理を終了する。   In response to this, the motion vector calculation unit 164 detects that the X direction (horizontal direction) neighborhood value extraction unit 1644 and the Y direction (vertical direction) neighborhood value extraction unit 1645 are held in the SAD value holding unit 1643. The minimum SAD value Smin and its neighboring SAD values Sx1, Sx2, Sy1, Sy2 and their position information are read out and sent to the quadratic curve approximation interpolation processing unit 1646. Receiving this, the quadratic curve approximation interpolation processing unit 1646 performs interpolation by the quadratic curve twice in the X direction and the Y direction, and calculates a high-precision motion vector with subpixel accuracy as described above ( Step S56). This completes the block matching process of the first example for one reference frame.

以上のように、この第1の例においては、SADテーブルを保持することなく、SADテーブルの1ライン分を設けると共に、SAD値書き込み部1641に1画素分のSAD値を保持しておくだけで、補間処理によるサブピクセル精度の動きベクトル検出を行うことができる。   As described above, in the first example, only one line of the SAD table is provided without holding the SAD table, and the SAD value writing unit 1641 only holds the SAD value for one pixel. Thus, motion vector detection with sub-pixel accuracy by interpolation processing can be performed.

この第1の例の方法は、SADテーブルを保持する手法と比べて、ブロックマッチング回数は同じであるため、処理時間は変わらず、ハードウエア規模を削減できるという効果を奏する。   The method of the first example has the effect that the processing time is not changed and the hardware scale can be reduced because the number of times of block matching is the same as the method of holding the SAD table.

なお、上述した第1の例の説明においては、SAD値比較部1642は、マッチング処理部163からの算出されたSAD値Sinと、SAD値保持部163に保持されている最小SAD値Sminとを比較するようにしたが、SAD値比較部1642が最小SAD値の保持部を備え、その保持した最小SAD値と、算出されたSAD値Sinとを比較し、算出されたSinの方が小さいときには、保持した最小SAD値を更新すると共に、その位置情報と共に、SAD値書き込み部1641を通じてSAD値保持部1643に送って、SAD値保持部1643の最小SAD値保持部に保持させるようにしても良い。   In the description of the first example described above, the SAD value comparison unit 1642 uses the calculated SAD value Sin from the matching processing unit 163 and the minimum SAD value Smin held in the SAD value holding unit 163. Although the comparison is made, the SAD value comparison unit 1642 includes a holding unit for the minimum SAD value, and the held minimum SAD value is compared with the calculated SAD value Sin. When the calculated Sin is smaller The held minimum SAD value is updated, and the position information is sent to the SAD value holding unit 1643 through the SAD value writing unit 1641 so as to be held in the minimum SAD value holding unit of the SAD value holding unit 1643. .

<実施形態の動きベクトル算出部164の第2の例>
この動きベクトル算出部164の第2の例においては、第1の例の場合のラインメモリ1647も省略して、より、ハードウエア規模の削減を図るようにした例である。
<Second Example of Motion Vector Calculation Unit 164 of Embodiment>
The second example of the motion vector calculation unit 164 is an example in which the line memory 1647 in the case of the first example is also omitted to further reduce the hardware scale.

この第2の例においては、サーチ範囲における参照ブロックのSAD値の最小値Sminおよびその位置情報(参照ベクトル)の検出および保持は、上述した第1の例と全く同様に行う。しかし、近傍SAD値およびその位置情報の取得および保持に関しては、第1の例のように、SAD値Sminの検出時と同時には行わず、検出された最小SAD値Sminの位置情報を、マッチング処理部163に返して、マッチング処理部163で、最小SAD値Sminの近傍4点位置の参照ブロックについてのSAD値を再度、算出して、動きベクトル算出部164に供給するようにする。   In the second example, the minimum value Smin of the SAD value of the reference block in the search range and its position information (reference vector) are detected and held in the same manner as in the first example described above. However, the acquisition and holding of the neighboring SAD value and its position information are not performed simultaneously with the detection of the SAD value Smin, as in the first example, and the position information of the detected minimum SAD value Smin is matched. Returning to the unit 163, the matching processing unit 163 again calculates the SAD values for the reference blocks at the four point positions in the vicinity of the minimum SAD value Smin, and supplies them to the motion vector calculation unit 164.

動きベクトル算出部164では、当該マッチング処理部163からの再度のブロックマッチング処理により算出された前記近傍4点位置のSAD値およびその位置情報(参照ベクトル)を受け取って、SAD値保持部1643のそれぞれの保持部に格納するようにする。   The motion vector calculation unit 164 receives the SAD values of the four neighboring positions calculated by the block matching process again from the matching processing unit 163 and its position information (reference vector), and each of the SAD value holding units 1643 Store in the holding part.

この動きベクトル算出部164の第1の例のハードウエア構成例を、図19に示す。すなわち、この動きベクトル算出部164の第2の例においては、SADテーブルTBLやラインメモリ1647は備えずに、図19に示すように、SAD値書き込み部1641と、SAD値比較部1642と、SAD値保持部1643と、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646とを備えてなる。   A hardware configuration example of the first example of the motion vector calculation unit 164 is shown in FIG. That is, in the second example of the motion vector calculation unit 164, the SAD table TBL and the line memory 1647 are not provided, but as shown in FIG. 19, the SAD value writing unit 1641, the SAD value comparison unit 1642, and the SAD A value holding unit 1643, an X direction (horizontal direction) neighborhood value extraction unit 1644, a Y direction (vertical direction) neighborhood value extraction unit 1645, and a quadratic curve approximation interpolation processing unit 1646 are provided.

この第2の例においても、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646とは、前述した第1の例と同様の動作を行うが、SAD値書き込み部1641、SAD値比較部1642、SAD値保持部1643およびラインメモリ1647の部分は、前述の第1の例とは、異なる動作を行う。   Also in the second example, the X direction (horizontal direction) neighborhood value extraction unit 1644, the Y direction (vertical direction) neighborhood value extraction unit 1645, and the quadratic curve approximation interpolation processing unit 1646 are the same as those in the first example described above. The SAD value writing unit 1641, the SAD value comparison unit 1642, the SAD value holding unit 1643, and the line memory 1647 perform different operations from those in the first example.

SAD値保持部1643は、第1の例と同様に、最小SAD値Sminおよび近傍SAD値Sx1、Sx2、Sy1、Sy2の保持部(メモリ)を備える。そして、この第2の例においても、SAD値保持部1643は、その最小SAD値保持部からの最小SAD値SminをSAD値比較部1642に供給する。しかし、この第2の例においては、SAD値保持部1643は、第1の例とは異なり、近傍SAD値の位置情報を、SAD値書き込み部1641に供給することしない。   Similar to the first example, the SAD value holding unit 1643 includes a holding unit (memory) for the minimum SAD value Smin and the neighboring SAD values Sx1, Sx2, Sy1, and Sy2. Also in this second example, the SAD value holding unit 1643 supplies the minimum SAD value Smin from the minimum SAD value holding unit to the SAD value comparison unit 1642. However, in the second example, unlike the first example, the SAD value holding unit 1643 does not supply the position information of the neighboring SAD value to the SAD value writing unit 1641.

SAD値比較部1642は、この第2の例においても、マッチング処理部163からの当該時点で算出されたSAD値Sinと、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminとの両者を比較し、マッチング処理部163からの当該時点で算出されたSAD値Sinの方が小さいときには、当該時点で、そのSAD値を最小SAD値であるとして検出し、また、SAD値Sinの方が小さいときには、当該時点では、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminが未だ最小値であると検出する。そして、SAD値比較部1642は、その検出結果の情報DETをSAD値書き込み部1641およびSAD値保持部1643に供給する。   In this second example, the SAD value comparison unit 1642 also calculates the SAD value Sin calculated at that time from the matching processing unit 163 and the minimum SAD value Smin from the minimum SAD value storage unit of the SAD value storage unit 1643. When the SAD value Sin calculated at the time from the matching processing unit 163 is smaller, the SAD value is detected as the minimum SAD value at the time, and the SAD value Sin When the value is smaller, it is detected that the minimum SAD value Smin from the minimum SAD value holding unit of the SAD value holding unit 1643 is still the minimum value at that time. The SAD value comparison unit 1642 supplies the detection result information DET to the SAD value writing unit 1641 and the SAD value holding unit 1643.

SAD値書き込み部1641は、前述例と同様に、マッチング処理部163からの算出されたSAD値Sinおよびその位置情報(参照ベクトル)を一時保持するための1画素分のバッファメモリを備える。そして、この第2の例においては、SAD値書き込み部1641は、SAD値比較部1642からの比較検出結果の情報DETが、SAD値Sinが最小値であることを示しているときには、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、SAD値保持部1643に送る。   Similar to the above example, the SAD value writing unit 1641 includes a buffer memory for one pixel for temporarily storing the SAD value Sin calculated from the matching processing unit 163 and its position information (reference vector). In this second example, when the SAD value writing unit 1641 indicates that the comparison detection result information DET from the SAD value comparison unit 1642 indicates that the SAD value Sin is the minimum value, the matching processing unit The reference block position information (reference vector) from 163 and the SAD value Sin of the reference block are sent to the SAD value holding unit 1643.

SAD値保持部1643は、SAD値比較部1642からの比較検出結果の情報DETにより、SAD値Sinが最小値であることを知り、SAD値書き込み部1641から送られてくる参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、最小SAD値保持部に格納する。   The SAD value holding unit 1643 knows that the SAD value Sin is the minimum value based on the comparison detection result information DET from the SAD value comparison unit 1642, and the position information of the reference block sent from the SAD value writing unit 1641 ( Reference vector) and the SAD value Sin of the reference block are stored in the minimum SAD value holding unit.

以上の処理を、サーチ範囲内の全ての参照ブロックについてマッチング処理部163で算出されたSAD値について、行う。そして、この第2の例においては、サーチ範囲内の全ての参照ブロックについてのSAD値の算出が終了したときに、SAD値保持部1643は、保持している最小SAD値Sminの位置情報(参照ベクトル)Vminを、マッチング処理部163に供給して、当該位置情報の近傍の4点の参照ブロックについてのSAD値の再算出を依頼する。   The above processing is performed on the SAD values calculated by the matching processing unit 163 for all reference blocks in the search range. In the second example, when the calculation of the SAD values for all the reference blocks within the search range is completed, the SAD value holding unit 1643 stores the position information (reference (reference) of the held minimum SAD value Smin. Vector) Vmin is supplied to matching processing section 163 to request recalculation of SAD values for four reference blocks in the vicinity of the position information.

マッチング処理部163では、SAD値保持部1643から最小SAD値Sminの位置情報(参照ベクトル)Vminを含む近傍参照ブロックについてのSAD値の再算出の依頼を受け取ると、前記最小SAD値Sminの位置情報(参照ベクトル)Vminから、その近傍4点の近傍参照ブロックの位置を検出し、検出した位置の参照ブロックについて、SAD値の算出を行う。そして、算出したSAD値を、その位置情報(参照ベクトル)と共に、SAD値書き込み部1641に順次に供給する。   When the matching processing unit 163 receives from the SAD value holding unit 1643 a request for recalculation of the SAD value for the neighborhood reference block including the position information (reference vector) Vmin of the minimum SAD value Smin, the position information of the minimum SAD value Smin From the reference vector Vmin, the positions of the four neighboring reference blocks are detected, and the SAD value is calculated for the reference block at the detected position. Then, the calculated SAD value is sequentially supplied to the SAD value writing unit 1641 together with the position information (reference vector).

この場合、マッチング処理部163は、サーチ方向の順にブロックマッチング処理を行うので、近傍SAD値は、SAD値Sy1、Sx1、Sx2、Sy2の順に算出される。SAD値書き込み部1641は、受け取った再算出されたSAD値およびその位置情報(参照ベクトル)を、順次にSAD値保持部1643に供給する。   In this case, since the matching processing unit 163 performs block matching processing in the order of the search direction, the neighboring SAD values are calculated in the order of SAD values Sy1, Sx1, Sx2, and Sy2. The SAD value writing unit 1641 sequentially supplies the received recalculated SAD value and its position information (reference vector) to the SAD value holding unit 1643.

SAD値保持部1643は、この再算出されたSAD値およびその位置情報(参照ベクトル)を、順次に、対応する格納部に書き込んで保持する。   The SAD value holding unit 1643 sequentially writes and holds the recalculated SAD value and its position information (reference vector) in the corresponding storage unit.

こうして、近傍参照ブロックについてのSAD値の再算出が終了すると、前述例と同様にして、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する。   When the recalculation of the SAD value for the neighborhood reference block is thus completed, the X direction (horizontal direction) neighborhood value extraction unit 1644 and the Y direction (vertical direction) neighborhood value extraction unit 1645 perform the SAD value in the same manner as in the above example. The detected minimum SAD value Smin and its neighboring SAD values Sx1, Sx2, Sy1, Sy2 and their position information held in the holding unit 1643 are read out and sent to the quadratic curve approximation interpolation processing unit 1646. Receiving this, the quadratic curve approximation interpolation processing unit 1646 performs interpolation by the quadratic curve twice in the X direction and the Y direction, and calculates a high-precision motion vector with sub-pixel accuracy as described above.

以上のようにして、第2の例においては、SADテーブルTBLやラインメモリを用いずに、サブピクセル精度の動きベクトルの検出ができる。   As described above, in the second example, the motion vector can be detected with sub-pixel accuracy without using the SAD table TBL or the line memory.

図20に、上述の図19に示した第2の例の動きベクトル算出部164と、マッチング処理部163におけるブロックマッチング手法のフローチャートを示す。   FIG. 20 is a flowchart of the block matching technique in the motion vector calculation unit 164 and the matching processing unit 163 of the second example shown in FIG.

はじめに、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値を設定する(ステップS61)。この最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。   First, an initial value of the minimum SAD value Smin of the SAD value holding unit 1643 of the motion vector calculation unit 164 is set (step S61). As the initial value of the minimum SAD value Smin, for example, the maximum value of the pixel difference is set.

次に、マッチング処理部163では、参照ベクトル(Vx,Vy)を設定して、SAD値を計算する参照ブロック位置を設定し(ステップS62)、設定した参照ブロックの画素データを、参照ブロックバッファ部162から読み込む(ステップS63)と共に、ターゲットブロックバッファ部161のターゲットブロックの画素データを読み込んで、ターゲットブロックおよび参照ブロックの各画素データの差分の絶対値の総和、つまり、SAD値を求め、求めたSAD値を動きベクトル算出部164に送出する(ステップS64)。   Next, the matching processing unit 163 sets reference vectors (Vx, Vy), sets reference block positions for calculating SAD values (step S62), and sets reference block pixel data as reference block buffer units. In addition to reading from 162 (step S63), the pixel data of the target block in the target block buffer unit 161 is read, and the sum of absolute values of differences between the pixel data of the target block and the reference block, that is, the SAD value is obtained. The SAD value is sent to the motion vector calculation unit 164 (step S64).

動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出されたSAD値Sinと、SAD値保持部1643に保持されている最小SAD値Sminとを比較して、算出されたSAD値Sinが、それまで保持されている最小SAD値Sminよりも小さいか否か判別する(ステップS65)。   In the motion vector calculation unit 164, the SAD value comparison unit 1642 is calculated by comparing the SAD value Sin calculated by the matching processing unit 163 with the minimum SAD value Smin held in the SAD value holding unit 1643. It is determined whether or not the SAD value Sin is smaller than the minimum SAD value Smin held so far (step S65).

このステップS65で、算出されたSAD値Sinが最小SAD値Sminより小さいと判別したときには、ステップS66に進み、SAD値保持部1643に保持される最小SAD値Sminおよびその位置情報の更新がなされる。   When it is determined in step S65 that the calculated SAD value Sin is smaller than the minimum SAD value Smin, the process proceeds to step S66, and the minimum SAD value Smin held in the SAD value holding unit 1643 and its position information are updated. .

すなわち、SAD値比較部1642は、算出されたSAD値Sinが最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出されたSAD値Sinおよびその位置情報(参照ベクトル)を、新たな最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき最小SAD値Sminおよびその位置情報を、受け取った新たなSAD値Sinおよびその位置情報に更新する。   That is, the SAD value comparison unit 1642 sends the comparison result information DET to the SAD value writing unit 1641 that the calculated SAD value Sin is smaller than the minimum SAD value Smin. Then, the SAD value writing unit 1641 sends the calculated SAD value Sin and its position information (reference vector) to the SAD value holding unit 1643 as new minimum SAD value Smin information. The SAD value holding unit 1643 updates the minimum SAD value Smin to be held and its position information to the received new SAD value Sin and its position information.

ステップS66の後には、ステップS67に進む。また、ステップS65で、算出されたSAD値Sinが最小SAD値Sminより大きいと判別したときには、ステップS66の保持情報の更新処理は行わずにステップS67に進む。   After step S66, the process proceeds to step S67. If it is determined in step S65 that the calculated SAD value Sin is greater than the minimum SAD value Smin, the process advances to step S67 without performing the holding information update process in step S66.

ステップS67では、マッチング処理部163は、サーチ範囲の全ての参照ブロックの位置(参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、サーチ範囲においては、未処理の参照ブロックがあると判別したときには、ステップS62に戻り、前述したステップS62以降の処理を繰り返す。   In step S67, the matching processing unit 163 determines whether or not the matching process has been completed at the positions (reference vectors) of all reference blocks in the search range. If there is still an unprocessed reference block in the search range. When it is determined, the process returns to step S62, and the processes after step S62 are repeated.

また、マッチング処理部163は、ステップS67で、サーチ範囲の全ての参照ブロックの位置(参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの最小SAD値Sminの位置情報を受け取り、その近傍4点の位置の参照ブロックについてのSAD値の再算出を行い、再算出した近傍SAD値をSAD値書き込み部1641を通じてSAD値保持部1643に供給し、保持させるようにする(ステップS68)。   If the matching processing unit 163 determines in step S67 that the matching processing has been completed at the positions (reference vectors) of all reference blocks in the search range, the position information of the minimum SAD value Smin from the SAD value holding unit 1643. , The SAD value is recalculated for the reference block at the position of the four neighboring points, and the recalculated neighboring SAD value is supplied to the SAD value holding unit 1643 through the SAD value writing unit 1641 so as to be retained ( Step S68).

次に、動きベクトル算出部164では、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する(ステップS69)。以上で、1枚の参照フレームについての第2の例のブロックマッチング処理を終了する。   Next, in the motion vector calculation unit 164, the X direction (horizontal direction) neighborhood value extraction unit 1644 and the Y direction (vertical direction) neighborhood value extraction unit 1645 are stored in the SAD value holding unit 1643 and the detected minimum The SAD value Smin and its neighboring SAD values Sx1, Sx2, Sy1, Sy2 and their position information are read out and sent to the quadratic curve approximation interpolation processing unit 1646. Receiving this, the quadratic curve approximation interpolation processing unit 1646 performs interpolation by the quadratic curve twice in the X direction and the Y direction, and calculates a high-precision motion vector with subpixel accuracy as described above ( Step S69). This completes the block matching process of the second example for one reference frame.

この第2の例においては、上述した第1の例に比較して、SAD値を再算出する分だけ、処理時間が増加するが、ラインメモリをも必要としないので、回路規模を、第1の例よりも削減することができる。しかも、SAD値の再算出は、近傍SAD値のみであるので、上述の例では、高々4回であるので、処理時間の増加は少ない。   In this second example, the processing time is increased by recalculating the SAD value as compared with the first example described above, but since no line memory is required, the circuit scale is reduced to the first. It can be reduced more than the example. In addition, since the SAD value is recalculated only for the neighborhood SAD value, in the above example, since the number of times is at most four, the increase in the processing time is small.

なお、上述した第2の例の説明では、最小SAD値は、検出しながらSAD値保持部1643に保持するようにしたが、SAD値比較部1642において、最小SAD値を呈する参照ブロックの位置情報(参照ベクトル)を検出して保持するように構成し、1回目のブロックマッチングが終了したら、SAD値比較部1642から、当該最小SAD値の位置情報をマッチング処理部163に供給するようにしてもよい。   In the description of the second example described above, the minimum SAD value is held in the SAD value holding unit 1643 while being detected. However, in the SAD value comparison unit 1642, the position information of the reference block that exhibits the minimum SAD value. (Reference vector) is detected and held, and when the first block matching is completed, the position information of the minimum SAD value is supplied from the SAD value comparison unit 1642 to the matching processing unit 163. Good.

その場合には、マッチング処理部163でのSAD値の再算出においては、近傍4点のSAD値に加えて、最小SAD値をも再算出するようにする。この場合には、SAD値の再算出回数が5回となり、1回増加するが、1回目のブロックマッチングでは、SAD値比較部1642のみが動作すればよく、SAD値書き込み部1641およびSAD値保持部1643は、再算出されたSAD値を保持するように動作すればよいので、処理動作が簡略化されるというメリットがある。   In this case, in the recalculation of the SAD value in the matching processing unit 163, the minimum SAD value is recalculated in addition to the SAD values of the four neighboring points. In this case, the number of recalculations of the SAD value is 5 and increases by 1. However, in the first block matching, only the SAD value comparison unit 1642 needs to operate, and the SAD value writing unit 1641 and the SAD value holding Since the unit 1643 only needs to operate so as to hold the recalculated SAD value, there is an advantage that the processing operation is simplified.

また、動き検出および動き補償部16での処理は、ターゲットフレームにおいて設定された複数個のターゲットブロックについて、並列および並行して、実行することができる。その場合には、以上説明した動き検出および動き補償部16のハードウエアの系を、当該並列・並行処理するターゲットブロック数に応じた数だけ、設ける必要がある。   Further, the processing in the motion detection and motion compensation unit 16 can be executed in parallel and in parallel for a plurality of target blocks set in the target frame. In that case, it is necessary to provide as many hardware systems as the motion detection and motion compensation unit 16 described above in accordance with the number of target blocks to be processed in parallel and in parallel.

比較例のように、SADテーブルを生成する方法の場合には、当該ターゲットブロック数分だけのSADテーブルを生成する必要があり、非常に大きなメモリが必要となってしまう。しかし、第1の例では、1ターゲットブロック当たりについて、SADテーブルの1ライン分でよく、メモリ容量を非常に少なくすることができる。さらに、第2の例の場合には、ラインメモリをも必要としないので、メモリ容量の大幅な削減をすることができる。   In the case of a method for generating SAD tables as in the comparative example, it is necessary to generate as many SAD tables as the number of target blocks, and a very large memory is required. However, in the first example, one line of the SAD table is sufficient for one target block, and the memory capacity can be greatly reduced. Furthermore, in the case of the second example, since no line memory is required, the memory capacity can be greatly reduced.

[第2の実施の形態]
以上説明した第1の実施の形態の動きベクトル検出処理は、ピクセル単位で参照ブロックを移動させて、SAD値を算出し、算出したSAD値に基づいてサブピクセル精度の動きを算出することで、マッチング処理時間と回路規模を削減するようにする有効な手法である。
[Second Embodiment]
In the motion vector detection process of the first embodiment described above, the reference block is moved in units of pixels, the SAD value is calculated, and the motion with sub-pixel accuracy is calculated based on the calculated SAD value. This is an effective technique for reducing the matching processing time and circuit scale.

しかしながら、上述の第1の実施の形態では、サーチ範囲内をピクセル単位で参照ブロックを移動させるようにするので、検索するサーチ範囲に比例して、マッチング処理時間が大きくなると共に、第1の例のようにラインメモリを用いる場合には、ラインメモリの容量も大きくなるという問題があった。   However, in the first embodiment described above, since the reference block is moved in the search range in units of pixels, the matching processing time increases in proportion to the search range to be searched, and the first example When the line memory is used as described above, there is a problem that the capacity of the line memory increases.

そこで、この第2の実施の形態では、ターゲット画像(ターゲットフレーム)に対して縮小画像を作成し、作成した縮小画像でブロックマッチングを行い、縮小画像での動き検出結果を基に、もとのターゲット画像でのブロックマッチングを行う。ここで、縮小画像のことを縮小面、縮小化をしていない元の画像のことを基底面と呼ぶことにする。したがって、この第2の実施の形態では、縮小面でのブロックマッチングを行ったあと、そのマッチング結果を用いて基底面でのブロックマッチングを行う。   Therefore, in the second embodiment, a reduced image is created for the target image (target frame), block matching is performed on the created reduced image, and the original motion is detected based on the motion detection result in the reduced image. Perform block matching on the target image. Here, the reduced image is referred to as a reduced surface, and the original image that has not been reduced is referred to as a base surface. Therefore, in the second embodiment, after performing block matching on the reduced surface, block matching on the base surface is performed using the matching result.

図21および図22に、ターゲットフレーム(画像)および参照フレーム(画像)の画像縮小化のイメージを示す。すなわち、この第2の実施の形態においては、例えば図21に示すように、基底面ターゲットフレーム130は、水平方向および垂直方向のそれぞれを、1/n(nは正の数)に縮小して、縮小面ターゲットフレーム132とする。したがって、基底面ターゲットフレーム130を複数個に分割して生成した基底面ターゲットブロック131は、縮小面ターゲットフレームでは、水平方向および垂直方向のそれぞれが1/n×1/nに縮小された縮小面ターゲットブロック133となる。   FIG. 21 and FIG. 22 show images of image reduction of the target frame (image) and the reference frame (image). That is, in the second embodiment, for example, as shown in FIG. 21, the basal plane target frame 130 is reduced to 1 / n (n is a positive number) in the horizontal direction and the vertical direction. The reduction plane target frame 132 is assumed. Accordingly, the basal plane target block 131 generated by dividing the basal plane target frame 130 into a plurality is a reduced plane in which each of the horizontal direction and the vertical direction is reduced to 1 / n × 1 / n in the reduced plane target frame. The target block 133 is obtained.

そして、ターゲットフレームの画像縮小倍率nに合わせて、参照フレームを縮小する。すなわち、図22に示すように、基底面参照フレーム134は、水平方向および垂直方向のそれぞれを、1/nに縮小して、縮小面参照フレーム135とする。そして、基底面参照フレーム134上で検出された動き補償ブロック103についての動きベクトル104は、縮小面参照フレーム135では、1/n×1/nに縮小された縮小面動きベクトル136として検出される。   Then, the reference frame is reduced in accordance with the image reduction magnification n of the target frame. That is, as shown in FIG. 22, the base surface reference frame 134 is reduced to 1 / n in each of the horizontal direction and the vertical direction to form a reduced surface reference frame 135. The motion vector 104 for the motion compensation block 103 detected on the base plane reference frame 134 is detected as a reduced plane motion vector 136 reduced to 1 / n × 1 / n in the reduced plane reference frame 135. .

なお、上記の例では、ターゲットフレームと参照フレームとの画像縮小倍率は同じとしたが、演算量削減のため、ターゲットフレーム(画像)と参照フレーム(画像)とで異なる画像縮小倍率を用い、画素補間等の処理で、両フレームの画素数を合わせて、マッチングを行うようにしてもよい。   In the above example, the image reduction magnification of the target frame and the reference frame is the same. However, in order to reduce the calculation amount, different image reduction magnifications are used for the target frame (image) and the reference frame (image). Matching may be performed by matching the number of pixels in both frames by processing such as interpolation.

また、水平方向および垂直方向のそれぞれの縮小倍率を同一としたが、水平方向と垂直方向とで、縮小倍率を異ならせるようにしても良い。例えば水平方向は1/nに縮小し、垂直方向は、1/mに縮小する場合には、縮小画面は、元の画面の1/n×1/mの大きさになる。   Further, although the reduction ratios in the horizontal direction and the vertical direction are the same, the reduction ratios may be different between the horizontal direction and the vertical direction. For example, when the horizontal direction is reduced to 1 / n and the vertical direction is reduced to 1 / m, the reduced screen has a size of 1 / n × 1 / m of the original screen.

図23に、縮小面参照ベクトルと基底面参照ベクトルの関係を示す。基底面参照フレーム134において、動き検出原点105と、サーチ範囲106が、図23(A)に示すように決定されたとすると、1/n×1/nに画像縮小された縮小面参照フレーム135上では、図23(B)に示すように、サーチ範囲は、1/n×1/nに縮小された縮小面サーチ範囲37とされる。   FIG. 23 shows the relationship between the reduced plane reference vector and the base plane reference vector. Assuming that the motion detection origin 105 and the search range 106 are determined in the basal plane reference frame 134 as shown in FIG. 23A, the reduced plane reference frame 135 is reduced to 1 / n × 1 / n. Then, as shown in FIG. 23B, the search range is a reduced plane search range 37 reduced to 1 / n × 1 / n.

そして、この第2の実施の形態では、縮小面サーチ範囲137内において、縮小面参照フレーム135での動き検出原点105からの位置ズレ量を表す縮小面参照ベクトル138を設定し、それぞれの縮小面参照ベクトル138が指し示す位置にある縮小面参照ブロック139と、縮小面ターゲットブロック131との相関性を評価する。   In the second embodiment, within the reduction plane search range 137, the reduction plane reference vector 138 representing the amount of positional deviation from the motion detection origin 105 in the reduction plane reference frame 135 is set, and each reduction plane is displayed. The correlation between the reduced surface reference block 139 at the position indicated by the reference vector 138 and the reduced surface target block 131 is evaluated.

この場合、縮小画像において、ブロックマッチングを行うので、縮小面参照フレームにおいてSAD値を算出すべき縮小面参照ブロック位置(縮小面参照ベクトル)の数を少なくすることができ、SAD値の算出回数が少なくなる分だけ、処理を高速化することができる。   In this case, since block matching is performed on the reduced image, the number of reduced surface reference block positions (reduced surface reference vectors) from which SAD values should be calculated in the reduced surface reference frame can be reduced, and the number of times the SAD value is calculated. The processing can be speeded up as much as it decreases.

縮小面参照ブロック139と縮小面ターゲットブロック131とのブロックマッチングによる相関性評価により、図22に示した、縮小面参照フレーム135における縮小面動きベクトル136が算出される。この縮小面動きベクトル136の精度は、画像が1/n×1/nに縮小されているので、1ピクセルのn倍の低精度となっている。そこで、この算出された縮小面動きベクトル136をn倍しても、基底面参照フレーム134において、1ピクセル精度の動きベクトル104は得られない。   A reduction plane motion vector 136 in the reduction plane reference frame 135 shown in FIG. 22 is calculated by evaluating the correlation by block matching between the reduction plane reference block 139 and the reduction plane target block 131. The accuracy of the reduced plane motion vector 136 is as low as n times one pixel because the image is reduced to 1 / n × 1 / n. Therefore, even if the calculated reduced plane motion vector 136 is multiplied by n, the motion vector 104 with 1 pixel accuracy cannot be obtained in the base plane reference frame 134.

しかし、基底面参照フレーム134においては、縮小面動きベクトル136をn倍した動きベクトルの近傍に、1ピクセル精度の基底面動きベクトル141が存在することは明らかである。   However, in the base plane reference frame 134, it is clear that the base plane motion vector 141 with 1 pixel accuracy exists in the vicinity of the motion vector obtained by multiplying the reduced plane motion vector 136 by n.

そこで、この第2の実施の形態では、図23(C)に示すように、基底面参照フレーム134において、縮小面動きベクトル136をn倍した動きベクトルが指し示す位置を中心として、基底面動きベクトル141が存在するであろうと考えられる狭い範囲に、基底面サーチ範囲140を設定する。   Therefore, in the second embodiment, as shown in FIG. 23C, the base plane motion vector is centered on the position indicated by the motion vector obtained by multiplying the reduced plane motion vector 136 by n in the base plane reference frame 134. The basal plane search range 140 is set to a narrow range in which 141 may be present.

そして、図23(C)に示すように、この基底面サーチ範囲内の位置を示すものとして、基底面参照フレーム134における基底面参照ベクトル141を設定し、各基底面参照ベクトル141が指し示す位置に基底面参照ブロック139を設定して、基底面参照フレーム134におけるブロックマッチングを行うようにする。   Then, as shown in FIG. 23C, a basal plane reference vector 141 in the basal plane reference frame 134 is set to indicate the position within the basal plane search range, and the position indicated by each basal plane reference vector 141 is set. A basal plane reference block 139 is set to perform block matching in the basal plane reference frame 134.

ここで設定されるサーチ範囲140は、算出した縮小面動きベクトル136をn倍した動きベクトルが指し示す位置を中心とした狭い範囲でよいので、基底面参照フレーム134においてSAD値を算出すべき基底面参照ブロック位置(基底面参照ベクトル)の数を少なくすることができ、SAD値の算出回数が少なくなる分だけ、処理を高速化することができる。   Since the search range 140 set here may be a narrow range centered on the position indicated by the motion vector obtained by multiplying the calculated reduced plane motion vector 136 by n, the base plane for which the SAD value should be calculated in the base plane reference frame 134. The number of reference block positions (base plane reference vectors) can be reduced, and the processing can be speeded up as the number of SAD value calculations is reduced.

こうして、基底面参照フレーム134において、ピクセル精度の基底面動きベクトル136が検出できたら、この第2の実施の形態においても、前述した第1の実施の形態と同様にして、基底面動きベクトル136が指し示す参照ブロックのSAD値、すなわち、最小SAD値と、その近傍の近傍SAD値とを用いて、この例においても二次曲線近似補間処理を行って、サブピクセル精度の動きベクトルを算出するようにする。   Thus, if the pixel-basis motion vector 136 can be detected in the base-surface reference frame 134, the base-surface motion vector 136 is also obtained in the second embodiment in the same manner as in the first embodiment described above. In this example, a quadratic curve approximation interpolation process is also performed in this example using the SAD value of the reference block pointed to, that is, the minimum SAD value and the neighboring SAD value in the vicinity thereof, to calculate a motion vector with subpixel accuracy. To.

そして、この第2の実施の形態においても、ハードウエア構成は、図1に示したものと同様に構成することができる。ただし、この第2の実施の形態においては、動き検出・動き補償部16でのブロックマッチング処理において、上述したように、一旦、縮小画像にしてマッチング処理を行って縮小面動きベクトルを検出し、その縮小面動きベクトルに基づいた狭サーチ範囲において、元の大きさの基底面において動きベクトルを算出し、さらに、補間処理を行う構成が、第1の実施の形態とは異なる。   In the second embodiment, the hardware configuration can be the same as that shown in FIG. However, in the second embodiment, in the block matching process in the motion detection / compensation unit 16, as described above, a reduced image motion vector is detected by performing a matching process once on a reduced image, In the narrow search range based on the reduced plane motion vector, the configuration in which the motion vector is calculated on the base plane of the original size and the interpolation process is performed is different from that of the first embodiment.

そして、ブロックマッチング処理において、上述したSADテーブルTBLを用いない第1の例または第2の例が用いられるのは、第1の実施の形態と同様である。   In the block matching process, the first example or the second example that does not use the above-described SAD table TBL is used as in the first embodiment.

図24および図25に、この第2の実施の形態における動き検出・動き補償部16でのブロックマッチング処理の動作例のフローチャートを示す。この動作例は、動きベクトル算出方法として、前述した第2の例を用いた場合である。動きベクトル算出方法として、前述した第1の例をも用いることができることは言うまでもない。   FIG. 24 and FIG. 25 show a flowchart of an operation example of the block matching processing in the motion detection / motion compensation unit 16 in the second embodiment. This operation example is a case where the second example described above is used as the motion vector calculation method. It goes without saying that the first example described above can also be used as the motion vector calculation method.

はじめに、動き検出・動き補償部16において、ターゲットブロックバッファ部161から、ターゲットブロックの縮小画、つまり、縮小面ターゲットブロックを読み込む(図24のステップS71)。次に、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値として、縮小面最小SAD値の初期値を設定する(ステップS72)。この縮小面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。   First, the motion detection / compensation unit 16 reads a reduced image of the target block, that is, a reduced surface target block, from the target block buffer unit 161 (step S71 in FIG. 24). Next, the initial value of the reduced surface minimum SAD value is set as the initial value of the minimum SAD value Smin of the SAD value holding unit 1643 of the motion vector calculation unit 164 (step S72). As an initial value of the reduced surface minimum SAD value Smin, for example, a maximum value of pixel difference is set.

次に、マッチング処理部163では、縮小面サーチ範囲を設定すると共に、設定した縮小サーチ範囲において、縮小面参照ベクトル(Vx/n,Vy/n)を設定して、SAD値を計算する縮小面参照ブロック位置を設定する(ステップS73)。そして、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部162から読み込み(ステップS74)、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、縮小面SAD値を求め、求めた縮小面SAD値を動きベクトル算出部164に送出する(ステップS75)。   Next, the matching processing unit 163 sets a reduction plane search range, sets a reduction plane reference vector (Vx / n, Vy / n) in the set reduction search range, and calculates a SAD value. A reference block position is set (step S73). Then, the pixel data of the set reduction plane reference block is read from the reference block buffer unit 162 (step S74), and the sum of absolute values of differences between the pixel data of the reduction plane target block and the reduction plane reference block, that is, the reduction plane The SAD value is obtained, and the obtained reduced surface SAD value is sent to the motion vector calculation unit 164 (step S75).

動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出された縮小面SAD値Sinと、SAD値保持部1643に保持されている縮小面最小SAD値Sminとを比較して、算出された縮小面SAD値Sinが、それまで保持されている縮小面最小SAD値Sminよりも小さいか否か判別する(ステップS76)。   In the motion vector calculation unit 164, the SAD value comparison unit 1642 compares the reduced surface SAD value Sin calculated by the matching processing unit 163 with the reduced surface minimum SAD value Smin held in the SAD value holding unit 1643. Then, it is determined whether or not the calculated reduced surface SAD value Sin is smaller than the reduced surface minimum SAD value Smin held so far (step S76).

このステップS76で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さいと判別したときには、ステップS77に進み、SAD値保持部1643に保持される縮小面最小SAD値Sminおよびその位置情報の更新がなされる。   If it is determined in step S76 that the calculated reduction surface SAD value Sin is smaller than the reduction surface minimum SAD value Smin, the process proceeds to step S77, and the reduction surface minimum SAD value Smin held in the SAD value holding unit 1643 and its position. Information is updated.

すなわち、SAD値比較部1642は、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出された縮小面SAD値Sinおよびその位置情報(参照ベクトル)を、新たな縮小面最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき縮小面最小SAD値Sminおよびその位置情報を、受け取った新たな縮小面SAD値Sinおよびその位置情報に更新する。   That is, the SAD value comparison unit 1642 sends the comparison result information DET to the SAD value writing unit 1641 that the calculated reduction surface SAD value Sin is smaller than the reduction surface minimum SAD value Smin. Then, the SAD value writing unit 1641 sends the calculated reduced surface SAD value Sin and its position information (reference vector) to the SAD value holding unit 1643 as information on a new reduced surface minimum SAD value Smin. The SAD value holding unit 1643 updates the reduced reduction surface minimum SAD value Smin and its position information to be held to the received new reduction surface SAD value Sin and its position information.

ステップS77の後には、ステップS78に進む。また、ステップS76で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより大きいと判別したときには、ステップS77の保持情報の更新処理は行わずにステップS78に進む。   After step S77, the process proceeds to step S78. If it is determined in step S76 that the calculated reduced surface SAD value Sin is larger than the reduced surface minimum SAD value Smin, the process advances to step S78 without performing the holding information update process in step S77.

ステップS78では、マッチング処理部163は、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、縮小面サーチ範囲においては、未処理の縮小面参照ブロックがあると判別したときには、ステップS73に戻り、前述したステップS73以降の処理を繰り返す。   In step S78, the matching processing unit 163 determines whether or not the matching process has been completed at the positions of all reduced surface reference blocks (reduced surface reference vectors) in the reduced surface search range. When it is determined that there is an unprocessed reduced surface reference block, the process returns to step S73, and the processes after step S73 are repeated.

また、マッチング処理部163は、ステップS78で、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの縮小面最小SAD値Sminの位置情報(縮小面動きベクトル)を受け取り、受け取った縮小面動きベクトルをn倍したベクトルが指し示す位置座標を中心とした比較的狭い範囲として、基底面サーチ範囲を、基底面ターゲットフレームに設定し(ステップS79)、ターゲットブロックバッファ部161から、基底面ターゲットブロックの画素データを読み込む(ステップS80)。   If the matching processing unit 163 determines in step S78 that the matching process has been completed at the positions of all reduced surface reference blocks (reduced surface reference vectors) in the reduced surface search range, the reduction processing from the SAD value holding unit 1643 is performed. The position information (reduced surface motion vector) of the surface minimum SAD value Smin is received, and the base surface search range is set as a relatively narrow range centered on the position coordinate indicated by the vector obtained by multiplying the received reduced surface motion vector by n times. The target frame is set (step S79), and the pixel data of the basal plane target block is read from the target block buffer unit 161 (step S80).

そして、次に、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値として、基底面最小SAD値の初期値を設定する(図25のステップS81)。この基底面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。   Next, the initial value of the base surface minimum SAD value is set as the initial value of the minimum SAD value Smin of the SAD value holding unit 1643 of the motion vector calculation unit 164 (step S81 in FIG. 25). As the initial value of the basal plane minimum SAD value Smin, for example, the maximum value of the pixel difference is set.

次に、マッチング処理部163では、ステップS79で設定した基底面縮小サーチ範囲において、基底面参照ベクトル(Vx,Vy)を設定して、SAD値を計算する基底面参照ブロック位置を設定する(ステップS82)。そして、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部162から読み込み(ステップS83)、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、基底面SAD値を求め、求めた基底面SAD値を動きベクトル算出部164に送出する(ステップS84)。   Next, the matching processing unit 163 sets the basal plane reference vector (Vx, Vy) in the basal plane reduction search range set in step S79, and sets the basal plane reference block position for calculating the SAD value (step). S82). Then, the set pixel data of the base plane reference block is read from the reference block buffer unit 162 (step S83), and the sum of absolute values of differences between the pixel data of the base plane target block and the base plane reference block, that is, the base plane The SAD value is obtained, and the obtained basal plane SAD value is sent to the motion vector calculation unit 164 (step S84).

動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出された基底面SAD値Sinと、SAD値保持部1643に保持されている基底面最小SAD値Sminとを比較して、算出された基底面SAD値Sinが、それまで保持されている基底面最小SAD値Sminよりも小さいか否か判別する(ステップS85)。   In the motion vector calculation unit 164, the SAD value comparison unit 1642 compares the basal plane SAD value Sin calculated by the matching processing unit 163 with the basal plane minimum SAD value Smin held in the SAD value holding unit 1643. Then, it is determined whether or not the calculated basal plane SAD value Sin is smaller than the basal plane minimum SAD value Smin held so far (step S85).

このステップS85で、算出された基底面SAD値Sinが基底面最小SAD値Sminより小さいと判別したときには、ステップS86に進み、SAD値保持部1643に保持される基底面最小SAD値Sminおよびその位置情報の更新がなされる。   When it is determined in this step S85 that the calculated basal plane SAD value Sin is smaller than the basal plane minimum SAD value Smin, the process proceeds to step S86, and the basal plane minimum SAD value Smin held in the SAD value holding unit 1643 and its position. Information is updated.

すなわち、SAD値比較部1642は、算出された基底面SAD値Sinが基底面最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出された基底面SAD値Sinおよびその位置情報(参照ベクトル)を、新たな基底面最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき基底面最小SAD値Sminおよびその位置情報を、受け取った新たな基底面SAD値Sinおよびその位置情報に更新する。   That is, the SAD value comparison unit 1642 sends the comparison result information DET to the SAD value writing unit 1641 that the calculated basal plane SAD value Sin is smaller than the basal plane minimum SAD value Smin. Then, the SAD value writing unit 1641 sends the calculated base surface SAD value Sin and its position information (reference vector) to the SAD value holding unit 1643 as information of a new base surface minimum SAD value Smin. The SAD value holding unit 1643 updates the base surface minimum SAD value Smin to be held and its position information to the received new base surface SAD value Sin and its position information.

ステップS86の後には、ステップS87に進む。また、ステップS85で、算出された基底面SAD値Sinが基底面最小SAD値Sminより大きいと判別したときには、ステップS86の保持情報の更新処理は行わずにステップS87に進む。   After step S86, the process proceeds to step S87. If it is determined in step S85 that the calculated basal plane SAD value Sin is greater than the basal plane minimum SAD value Smin, the process proceeds to step S87 without performing the holding information update process in step S86.

ステップS87では、マッチング処理部163は、基底面サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、基底面サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、ステップS82に戻り、前述したステップS82以降の処理を繰り返す。   In step S87, the matching processing unit 163 determines whether or not the matching process has been completed at the positions of all base plane reference blocks (base plane reference vectors) in the base plane search range. When it is determined that there is an unprocessed base plane reference block, the process returns to step S82, and the processes after step S82 are repeated.

また、マッチング処理部163は、ステップS87で、基底面サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの基底面最小SAD値Sminの位置情報(基底面動きベクトル)を受け取り、その近傍4点の位置の基底面参照ブロックについての基底面SAD値の再算出を行い、再算出した近傍基底面SAD値をSAD値書き込み部1641を通じてSAD値保持部1643に供給し、保持させるようにする(ステップS88)。   When the matching processing unit 163 determines in step S87 that the matching processing has been completed at all base plane reference block positions (base plane reference vectors) in the base plane search range, the basis from the SAD value holding unit 1643 is determined. The position information (base plane motion vector) of the surface minimum SAD value Smin is received, the base plane SAD value is recalculated for the base plane reference block at the positions of the four neighboring points, and the recalculated vicinity base plane SAD value is SAD. The value is supplied to the SAD value holding unit 1643 through the value writing unit 1641 and held (step S88).

次に、動きベクトル算出部164では、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小の基底面SAD値Sminとその近傍基底面SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の基底面動きベクトルを算出する(ステップS69)。以上で、1枚の参照フレームについてのこの例のブロックマッチング処理を終了する。   Next, in the motion vector calculation unit 164, the X direction (horizontal direction) neighborhood value extraction unit 1644 and the Y direction (vertical direction) neighborhood value extraction unit 1645 are stored in the SAD value holding unit 1643 and the detected minimum The basal plane SAD value Smin and its neighboring basal plane SAD values Sx1, Sx2, Sy1, Sy2 and their position information are read out and sent to the quadratic curve approximation interpolation processing unit 1646. Receiving this, the quadratic curve approximation interpolation processing unit 1646 performs interpolation by the quadratic curve twice in the X direction and the Y direction, and calculates a high-precision basal plane motion vector with subpixel accuracy as described above. (Step S69). This completes the block matching process of this example for one reference frame.

上述した図24および図25は、動き検出・動き補償部16の動きベクトル算出部164として、前述の第2の例を用いた場合であるが、第1の例も用いることができることは言うまでもない。   FIGS. 24 and 25 described above are cases where the second example described above is used as the motion vector calculation unit 164 of the motion detection / compensation unit 16, but it goes without saying that the first example can also be used. .

次に、この第2の実施の形態による画像処理方法の効果を、具体例を挙げて説明する。   Next, the effect of the image processing method according to the second embodiment will be described with a specific example.

図26に、上述の実施の形態の説明で用いた基底面、縮小面での、参照ブロック、サーチ範囲、マッチング処理範囲の具体例を示す。図26の例は、水平方向および垂直方向の縮小倍率nは、n=4に設定した場合である。   FIG. 26 shows specific examples of reference blocks, search ranges, and matching processing ranges on the base plane and reduced plane used in the description of the above-described embodiment. In the example of FIG. 26, the reduction ratio n in the horizontal direction and the vertical direction is set to n = 4.

比較例として、図26(A)および(B)に示すように、例えば、縮小画像を用いない第1の実施の形態における参照ブロック108は、横(水平)×縦(垂直)=32×32ピクセルとし、また、サーチ範囲106は、横(水平)×縦(垂直)=144×64ピクセル、マッチング処理範囲110は、横(水平)×縦(垂直)=176×96ピクセルとする。   As a comparative example, as shown in FIGS. 26A and 26B, for example, the reference block 108 in the first embodiment that does not use a reduced image is horizontal (horizontal) × vertical (vertical) = 32 × 32. The search range 106 is horizontal (horizontal) × vertical (vertical) = 144 × 64 pixels, and the matching processing range 110 is horizontal (horizontal) × vertical (vertical) = 176 × 96 pixels.

すると、上述した第2の実施の形態において、水平方向および垂直方向に、1/n=1/4に縮小された縮小面では、図26(C)および(D)に示すように、縮小面参照ブロック139は、横(水平)×縦(垂直)=8×8ピクセル、縮小面サーチ範囲137は、横(水平)×縦(垂直)=36×16ピクセル、縮小面マッチング処理範囲143は、横(水平)×縦(垂直)=44×24ピクセルとなる。   Then, in the second embodiment described above, the reduced surface reduced to 1 / n = 1/4 in the horizontal direction and the vertical direction, as shown in FIGS. 26C and 26D, The reference block 139 is horizontal (horizontal) × vertical (vertical) = 8 × 8 pixels, the reduction plane search range 137 is horizontal (horizontal) × vertical (vertical) = 36 × 16 pixels, and the reduction plane matching processing range 143 is Horizontal (horizontal) × vertical (vertical) = 44 × 24 pixels.

水平方向および垂直方向に、1/4に縮小された縮小面で、ブロックマッチングを行った場合、縮小面動きベクトルは、4ピクセル精度の動きベクトルであり、単純に4倍しただけでは、1ピクセル精度の動きベクトルに対して誤差が生じる。すなわち、基底面での画素が図27に示すようなものとした場合、基底面でのマッチング処理点148は、当該基底面の全ての画素が対象となるが、1/4に縮小された縮小面で、ブロックマッチングを行う場合のマッチング処理点は、図27において、黒丸で示す4ピクセル単位のものとなっているからである。   When block matching is performed with a reduction plane reduced to ¼ in the horizontal direction and the vertical direction, the reduction plane motion vector is a motion vector with a precision of 4 pixels. An error occurs with respect to the precision motion vector. That is, if the pixels on the base surface are as shown in FIG. 27, the matching processing point 148 on the base surface covers all pixels on the base surface, but is reduced to ¼. This is because the matching processing points when performing block matching on the surface are in units of 4 pixels indicated by black circles in FIG.

しかし、少なくとも、1ピクセル精度の動きベクトルは、縮小面動きベクトルが指し示す縮小面でのマッチング処理点の周囲、4ピクセル範囲以内に存在するであろうことは予測できる。   However, it can be predicted that at least a 1-pixel precision motion vector will exist within a 4-pixel range around the matching processing point on the reduced plane indicated by the reduced plane motion vector.

そこで、この第2の実施の形態では、算出された縮小面動きベクトルを元に基底面サーチ範囲を定める基底面マッチングでは、縮小面動きベクトルを4倍した参照ベクトルが指し示すピクセル位置を中心に、4ピクセル分のサーチ範囲(基底面サーチ範囲140)を決定して、基底面ブロックマッチングを行い、再度動きベクトルを算出する。   Therefore, in the second embodiment, in the basal plane matching that determines the basal plane search range based on the calculated reduced plane motion vector, the pixel position indicated by the reference vector indicated by 4 times the reduced plane motion vector is centered. A search range for 4 pixels (base plane search range 140) is determined, base plane block matching is performed, and a motion vector is calculated again.

したがって、図26(E)および(F)に示すように、基底面参照ブロック142は、横(水平)×縦(垂直)=32×32ピクセル、基底面サーチ範囲140は、横(水平)×縦(垂直)=4×4ピクセル、基底面マッチング処理範囲144は、横(水平)×縦(垂直)=40×40ピクセルとなる。   Therefore, as shown in FIGS. 26E and 26F, the basal plane reference block 142 has horizontal (horizontal) × vertical (vertical) = 32 × 32 pixels, and the basal plane search range 140 has horizontal (horizontal) × The vertical (vertical) = 4 × 4 pixels and the basal plane matching processing range 144 is horizontal (horizontal) × vertical (vertical) = 40 × 40 pixels.

図28に、この第2の実施の形態のように、縮小面マッチングと、基底面マッチングの2階層マッチングを行う場合において、SADテーブルを使用すると仮定した場合における、基底面、縮小面での、SADテーブルのサイズを示す。なお、図28の例は、図26に示した具体例に対応したものである。   In FIG. 28, in the case of performing two-layer matching of reduced plane matching and basal plane matching as in the second embodiment, in the case of assuming that the SAD table is used, Indicates the size of the SAD table. The example in FIG. 28 corresponds to the specific example shown in FIG.

縮小する前の144×64のサーチ範囲(図26(B)参照)の場合におけるSADテーブルTBLは、図28(A)に示すように、145×65点である。   The SAD table TBL in the case of the 144 × 64 search range (see FIG. 26B) before reduction is 145 × 65 points as shown in FIG.

これに対して、36×16の縮小面サーチ範囲(図26(D)参照)の場合における縮小面SADテーブルは、図28(B)に示すように、37点×17点となる。   On the other hand, the reduced surface SAD table in the case of a 36 × 16 reduced surface search range (see FIG. 26D) is 37 points × 17 points as shown in FIG.

また、4×4の基底面サーチ範囲(図26(F)参照)の場合における基底面SADテーブルは5点×5点となる。   In addition, in the case of the 4 × 4 basal plane search range (see FIG. 26F), the basal plane SAD table is 5 points × 5 points.

したがって、階層マッチングを施さない場合のマッチング処理回数は145×65=9425回であるのに対し、階層マッチングを適用した場合のマッチング回数は37×17+5×5=654回となり、処理時間を大幅に短縮できることが分かる。   Therefore, the number of matching processes when layer matching is not performed is 145 × 65 = 9425 times, whereas the number of matching processes when layer matching is applied is 37 × 17 + 5 × 5 = 654 times, which greatly increases the processing time. It can be seen that it can be shortened.

そして、前述した動きベクトル検出方法の第1の例の場合におけるラインメモリは、縮小面SADテーブルの1ライン分でよいので、37個のSAD値およびその位置情報を格納できるものでよく、SADテーブルTBLの場合の、9425個のSAD値およびその位置情報を格納するメモリに対して非常に小さいメモリでよくなる。   The line memory in the case of the first example of the motion vector detection method described above may be one line in the reduced-surface SAD table, so that it can store 37 SAD values and their position information. In the case of TBL, a very small memory is sufficient for the memory storing 9425 SAD values and their position information.

また、前述した動きベクトル検出方法の第2の例の場合には、37個のSAD値およびその位置情報を格納する縮小面SADテーブルさえも不要となるので、さらに回路規模を小さくすることができる。   Further, in the case of the second example of the motion vector detection method described above, even the reduced surface SAD table for storing the 37 SAD values and the position information thereof becomes unnecessary, so that the circuit scale can be further reduced. .

以上のようにして、上記の第2の実施の形態によれば、階層化したマッチング処理を行った後、基底面において補間処理をすることにより、広いサーチ範囲で、サブピクセル精度の動きベクトル検出を行うことが可能になる。   As described above, according to the second embodiment, after performing the hierarchical matching process, the interpolation process is performed on the basal plane, so that motion vector detection with sub-pixel accuracy can be performed in a wide search range. It becomes possible to do.

[第3の実施の形態]
動画のNRシステムでは、精度とともにリアルタイム性、すなわちスピードが要求される。また、図1に示したような、システムバス2に各種処理部が接続されていて、様々な処理を並列に行うシステムでは、バス帯域も重要視される。ここで、バス帯域とは、システムバス上で、輻輳を回避して転送することができるデータレートである。
[Third Embodiment]
A moving image NR system requires real-time performance, that is, speed as well as accuracy. Further, in a system in which various processing units are connected to the system bus 2 as shown in FIG. 1 and perform various processes in parallel, the bus bandwidth is also regarded as important. Here, the bus bandwidth is a data rate that can be transferred while avoiding congestion on the system bus.

スピードおよびバス帯域と、動き検出の精度とは、トレードオフの関係にあり、動き検出の精度も求めながら、処理の高速化またはバス帯域の削減を図ろうとすれば、コスト対効果の問題も考えなくてはいけない。   Speed and bus bandwidth and motion detection accuracy are in a trade-off relationship. While seeking motion detection accuracy, trying to increase processing speed or reduce bus bandwidth may also be a cost-effective problem. It must be.

上述の第2の実施の形態では、広いサーチ範囲で、サブピクセル以下の動きベクトル検出を行う例を示したが、この第3の実施の形態では、動き検出の精度を落として、処理の高速化およびバス帯域の削減を行う方法について説明する。   In the second embodiment described above, an example of performing motion vector detection of sub-pixels or less in a wide search range has been shown. However, in the third embodiment, the accuracy of motion detection is lowered and the processing speed is increased. A method for reducing the bus bandwidth will be described.

上述した第2の実施の形態では、基底面でのピクセル精度のブロックマッチングをした後、補間処理により、サブピクセル精度の動きベクトル検出をした。これに対して、この第3の実施の形態では、縮小面でブロックマッチングをした後、算出された縮小面動きベクトルで指し示される縮小面参照ブロック位置の近傍の縮小面参照ブロックのSAD値およびその位置情報を用いて、補間処理を行い、ピクセル精度の動きベクトル検出を行うようにする。   In the second embodiment described above, after performing block matching with pixel accuracy on the base surface, motion vector detection with sub-pixel accuracy is performed by interpolation processing. On the other hand, in the third embodiment, after performing block matching on the reduction plane, the SAD value of the reduction plane reference block near the reduction plane reference block position indicated by the calculated reduction plane motion vector and Interpolation processing is performed using the position information, and motion vector detection with pixel accuracy is performed.

図27に示したように、縦および横、ともに1/4に縮小された縮小面でブロックマッチングを行った場合、縮小面動きベクトルは、4ピクセル精度の動きベクトルである。したがって、図29に示すように、縮小面での最小SAD値149が求まった場合、その近傍のSAD値150,151,152,153を用いて補間処理を行い、ピクセル精度の動きベクトルの検出をしようとする場合には、補間倍率は4倍必要ということになる。   As shown in FIG. 27, when block matching is performed on a reduced surface that is reduced to ¼ both vertically and horizontally, the reduced surface motion vector is a motion vector with 4-pixel accuracy. Therefore, as shown in FIG. 29, when the minimum SAD value 149 in the reduction plane is obtained, interpolation processing is performed using the SAD values 150, 151, 152, and 153 in the vicinity thereof to detect a motion vector with pixel accuracy. When trying to do so, the interpolation magnification needs to be four times.

例えば、補間処理として、図30に示すように、二次曲線120による近似補間処理を行う場合には、補間倍率の4倍は、前述した式(1)および式(2)において、割り算(減算)を2ビット分行うことと等価である。図30において、二次曲線120上の極小値(SAD値)154は、縮小面における補間処理により求められたピクセル精度の最小SAD値を示している。   For example, as shown in FIG. 30, when the approximate interpolation process using the quadratic curve 120 is performed as the interpolation process, four times the interpolation magnification is divided (subtracted) in the above-described equations (1) and (2). ) Is equivalent to performing 2 bits. In FIG. 30, a minimum value (SAD value) 154 on the quadratic curve 120 indicates a minimum SAD value with pixel accuracy obtained by interpolation processing on the reduction plane.

なお、上述の説明では、ピクセル精度の動きベクトルを算出するために、縮小倍率と補間倍率は同じにしているが、両者が同じでなくても良い。補間倍率を縮小倍率よりも大きくすれば、ピクセル精度よりも高精度の動きベクトルを算出することができる。   In the above description, in order to calculate a motion vector with pixel accuracy, the reduction magnification and the interpolation magnification are the same, but the two may not be the same. If the interpolation magnification is larger than the reduction magnification, a motion vector with higher accuracy than the pixel accuracy can be calculated.

図31に、この第3の実施の形態の場合における動き検出・動き補償部16でのブロックマッチングおよび動きベクトル検出処理の一例のフローチャートを示す。   FIG. 31 is a flowchart showing an example of block matching and motion vector detection processing in the motion detection / compensation unit 16 in the case of the third embodiment.

はじめに、動き検出・動き補償部16において、ターゲットブロックバッファ部161から、ターゲットブロックの縮小画、つまり、縮小面ターゲットブロックを読み込む(図31のステップS91)。次に、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値として、縮小面最小SAD値の初期値を設定する(ステップS92)。この縮小面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。   First, the motion detection / compensation unit 16 reads a reduced image of the target block, that is, a reduced surface target block from the target block buffer unit 161 (step S91 in FIG. 31). Next, the initial value of the reduced surface minimum SAD value is set as the initial value of the minimum SAD value Smin of the SAD value holding unit 1643 of the motion vector calculation unit 164 (step S92). As an initial value of the reduced surface minimum SAD value Smin, for example, a maximum value of pixel difference is set.

次に、マッチング処理部163では、縮小面サーチ範囲を設定すると共に、設定した縮小サーチ範囲において、縮小面参照ベクトル(Vx/n,Vy/n)を設定して、SAD値を計算する縮小面参照ブロック位置を設定する(ステップS93)。そして、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部162から読み込み(ステップS94)、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、縮小面SAD値を求め、求めた縮小面SAD値を動きベクトル算出部164に送出する(ステップS95)。   Next, the matching processing unit 163 sets a reduction plane search range, sets a reduction plane reference vector (Vx / n, Vy / n) in the set reduction search range, and calculates a SAD value. A reference block position is set (step S93). Then, the pixel data of the set reduction plane reference block is read from the reference block buffer unit 162 (step S94), and the sum of absolute values of differences between the pixel data of the reduction plane target block and the reduction plane reference block, that is, the reduction plane The SAD value is obtained, and the obtained reduced surface SAD value is sent to the motion vector calculation unit 164 (step S95).

動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出された縮小面SAD値Sinと、SAD値保持部1643に保持されている縮小面最小SAD値Sminとを比較して、算出された縮小面SAD値Sinが、それまで保持されている縮小面最小SAD値Sminよりも小さいか否か判別する(ステップS96)。   In the motion vector calculation unit 164, the SAD value comparison unit 1642 compares the reduced surface SAD value Sin calculated by the matching processing unit 163 with the reduced surface minimum SAD value Smin held in the SAD value holding unit 1643. Then, it is determined whether or not the calculated reduced surface SAD value Sin is smaller than the reduced surface minimum SAD value Smin held so far (step S96).

このステップS96で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さいと判別したときには、ステップS97に進み、SAD値保持部1643に保持される縮小面最小SAD値Sminおよびその位置情報の更新がなされる。   When it is determined in this step S96 that the calculated reduced surface SAD value Sin is smaller than the reduced surface minimum SAD value Smin, the process proceeds to step S97, and the reduced surface minimum SAD value Smin held in the SAD value holding unit 1643 and its position. Information is updated.

すなわち、SAD値比較部1642は、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出された縮小面SAD値Sinおよびその位置情報(参照ベクトル)を、新たな縮小面最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき縮小面最小SAD値Sminおよびその位置情報を、受け取った新たな縮小面SAD値Sinおよびその位置情報に更新する。   That is, the SAD value comparison unit 1642 sends the comparison result information DET to the SAD value writing unit 1641 that the calculated reduction surface SAD value Sin is smaller than the reduction surface minimum SAD value Smin. Then, the SAD value writing unit 1641 sends the calculated reduced surface SAD value Sin and its position information (reference vector) to the SAD value holding unit 1643 as information on a new reduced surface minimum SAD value Smin. The SAD value holding unit 1643 updates the reduced reduction surface minimum SAD value Smin and its position information to be held to the received new reduction surface SAD value Sin and its position information.

ステップS97の後には、ステップS98に進む。また、ステップS96で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより大きいと判別したときには、ステップS97の保持情報の更新処理は行わずにステップS98に進む。   After step S97, the process proceeds to step S98. If it is determined in step S96 that the calculated reduced surface SAD value Sin is larger than the reduced surface minimum SAD value Smin, the process advances to step S98 without performing the holding information update process in step S97.

ステップS98では、マッチング処理部163は、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、縮小面サーチ範囲においては、未処理の縮小面参照ブロックがあると判別したときには、ステップS93に戻り、前述したステップS93以降の処理を繰り返す。   In step S98, the matching processing unit 163 determines whether or not the matching process has been completed at the positions of all reduced surface reference blocks (reduced surface reference vectors) in the reduced surface search range. When it is determined that there is an unprocessed reduced-surface reference block, the process returns to step S93, and the processes after step S93 are repeated.

また、マッチング処理部163は、ステップS98で、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの縮小面最小SAD値Sminの位置情報(縮小面動きベクトル)を受け取り、その近傍4点の位置の縮小面参照ブロックについての縮小面SAD値の再算出を行い、再算出した近傍縮小面SAD値をSAD値書き込み部1641を通じてSAD値保持部1643に供給し、保持させるようにする(ステップS99)。   If the matching processing unit 163 determines in step S98 that the matching process has been completed at the positions of all the reduced surface reference blocks (reduced surface reference vectors) in the reduced surface search range, the reduction processing from the SAD value holding unit 1643 is performed. The position information (reduced surface motion vector) of the surface minimum SAD value Smin is received, the reduced surface SAD value is recalculated for the reduced surface reference block at the positions of the four neighboring points, and the recalculated neighboring reduced surface SAD value is calculated as SAD. The value is supplied to the SAD value holding unit 1643 through the value writing unit 1641 and held (step S99).

次に、動きベクトル算出部164では、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小の縮小面SAD値Sminとその近傍縮小面SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、縮小面において、X方向およびY方向の2回行い、前述したようにして、ピクセル精度の動きベクトルを算出する(ステップS100)。以上で、1枚の参照フレームについてのこの例のブロックマッチング処理を終了する。   Next, in the motion vector calculation unit 164, the X direction (horizontal direction) neighborhood value extraction unit 1644 and the Y direction (vertical direction) neighborhood value extraction unit 1645 are stored in the SAD value holding unit 1643 and the detected minimum The reduced surface SAD value Smin and its adjacent reduced surface SAD values Sx1, Sx2, Sy1, Sy2 and their position information are read out and sent to the quadratic curve approximation interpolation processing unit 1646. Receiving this, the quadratic curve approximation interpolation processing unit 1646 performs the interpolation by the quadratic curve twice in the X direction and the Y direction on the reduction plane, and calculates the pixel precision motion vector as described above ( Step S100). This completes the block matching process of this example for one reference frame.

前述の第2の実施の形態と、この第3の実施の形態で、処理速度とバス帯域の比較を行う。この第3の実施の形態の画像処理方法によれば、処理速度とバス帯域において、下記の3つの利点がある。   The processing speed and the bus bandwidth are compared in the second embodiment and the third embodiment. According to the image processing method of the third embodiment, there are the following three advantages in processing speed and bus bandwidth.

第1に、第3の実施の形態では、縮小面でのみ、SAD値の計算を行い、基底面でのSAD値の計算は行わないので、SAD値の計算回数が削減されるため、処理速度が速くなる。   First, in the third embodiment, the SAD value is calculated only on the reduction plane, and the SAD value is not calculated on the base plane. Will be faster.

すなわち、図28に示したように、第2の実施の形態のように、階層マッチングと、基底面での補間処理を用いた動きベクトル検出方法を適用した場合のSAD値計算回数は37×17+5×5=654回となるのに対して、第3の実施の形態のように、縮小面での補間処理を適用した場合のSAD値計算回数は629回となり、25回削減することができる。   That is, as shown in FIG. 28, as in the second embodiment, the number of SAD value calculations when applying the motion vector detection method using the hierarchical matching and the interpolation processing on the base plane is 37 × 17 + 5. In contrast to x5 = 654 times, the number of SAD value calculations when the interpolation process on the reduction plane is applied as in the third embodiment is 629 times, which can be reduced by 25 times.

第2に、この第3の実施の形態では、基底面でのブロックマッチングを行っていないため、基底面ターゲットブロックと、基底面マッチング処理範囲を、画像メモリから読み込まなくて済む。したがって、上記の25回のSAD値の計算だけではなく、基底面のターゲットブロックの読み込み時間と、基底面マッチング処理範囲の全画素分の転送時間が短縮されている。同時に、基底面25回分のバス帯域も削減されている。   Secondly, in the third embodiment, since block matching is not performed on the basal plane, the basal plane target block and the basal plane matching processing range need not be read from the image memory. Therefore, not only the above 25 times of SAD value calculation, but also the reading time of the base block target block and the transfer time for all the pixels in the base plane matching processing range are shortened. At the same time, the bus bandwidth for 25 base planes is also reduced.

第3に、基底面ブロックマッチングと縮小面ブロックマッチングは、SAD値の計算にかかる時間は同じだが、ターゲットブロックバッファ部161および参照ブロックバッファ部162から、マッチング処理部163へ転送する画素の数が異なる。   Third, the basal plane block matching and the reduced plane block matching have the same time for calculating the SAD value, but the number of pixels transferred from the target block buffer unit 161 and the reference block buffer unit 162 to the matching processing unit 163 is the same. Different.

例えば、前述の例の比較では、図26に示したように、縮小面参照ブロック139は、8×8ピクセル、基底面参照ブロック142は、32×32ピクセルで、転送画素数は16倍になるため、基底面ブロックマッチングの有無は、処理時間に大きな影響を与えている。   For example, in the comparison of the above example, as shown in FIG. 26, the reduction plane reference block 139 is 8 × 8 pixels, the base plane reference block 142 is 32 × 32 pixels, and the number of transfer pixels is 16 times. Therefore, the presence / absence of basal plane block matching has a great influence on the processing time.

また、縮小面ブロックマッチングで、複数ブロックについて並列にSAD値を計算することにより、処理の高速化を図ることができる。並列処理を行うと、参照ブロックバッファ部162に取り込むマッチング処理範囲が大きくなるが、図32(A)に示すように、隣り合う縮小面参照ブロック171,172を並列処理すれば、大半のマッチング処理範囲は共有することができる。このため、バス帯域も削減することができる。   In addition, the processing speed can be increased by calculating SAD values in parallel for a plurality of blocks by reduction plane block matching. When the parallel processing is performed, the matching processing range to be taken into the reference block buffer unit 162 becomes large. However, as shown in FIG. 32A, if the adjacent reduced surface reference blocks 171 and 172 are processed in parallel, most of the matching processing is performed. Ranges can be shared. For this reason, the bus bandwidth can also be reduced.

図32(B),(C)は、図26(D)の場合と同じサイズの縮小面参照ブロック、縮小面サーチ範囲で、2個の縮小面参照ブロック171,172のブロックマッチングを並列に処理したときの縮小面サーチ範囲およびマッチング処理範囲の例である。   FIGS. 32B and 32C process block matching of two reduced plane reference blocks 171 and 172 in parallel in the reduced plane reference block and reduced plane search range of the same size as in FIG. It is an example of a reduction plane search range and a matching processing range at the time.

図26(D)に示したように、並列処理しない場合の縮小面サーチ範囲137は、36×16ピクセル、縮小面マッチング処理範囲143は、44×24ピクセルであったのに対して、図32(B),(C)に示すように、縮小面参照ブロック171の縮小面サーチ範囲173は、40×16ピクセル、縮小面参照ブロック172の縮小面サーチ範囲174は、40×16ピクセル、そして、縮小面参照ブロック171,172の両方に対応した縮小面マッチング処理範囲175は、52×24ピクセルとなっている。   As shown in FIG. 26D, the reduction plane search range 137 without parallel processing is 36 × 16 pixels, and the reduction plane matching processing range 143 is 44 × 24 pixels, whereas FIG. As shown in (B) and (C), the reduction plane search range 173 of the reduction plane reference block 171 is 40 × 16 pixels, the reduction plane search range 174 of the reduction plane reference block 172 is 40 × 16 pixels, and The reduction plane matching processing range 175 corresponding to both the reduction plane reference blocks 171 and 172 is 52 × 24 pixels.

前述したように、第2の実施の形態で行う基底面ブロックマッチングは、縮小面動きベクトルの値によって基底面マッチング処理範囲が決まるため、並列処理時にマッチング処理範囲を共有することができない。したがって、第2の実施の形態の場合において、SAD値の計算の並列化による高速化を図った場合、基底面マッチング処理にかかる処理時間、バス帯域が支配的になる。   As described above, in the basal plane block matching performed in the second embodiment, since the basal plane matching processing range is determined by the value of the reduced plane motion vector, the matching processing range cannot be shared during parallel processing. Therefore, in the case of the second embodiment, when the speed is increased by parallelizing the calculation of the SAD value, the processing time and the bus band required for the basal plane matching process become dominant.

これに対して、この第3の実施の形態によれば、上記のように、階層化したマッチング処理において、縮小面ブロックマッチングを行った後、基底面ブロックマッチングを行わずに、縮小面における補間処理をすることにより、処理の高速化およびバス帯域の削減を実現することができる。   On the other hand, according to the third embodiment, as described above, in the hierarchical matching process, after the reduced surface block matching is performed, the base surface block matching is not performed, and the interpolation on the reduced surface is performed. By performing the processing, it is possible to realize a high-speed processing and a reduction in bus bandwidth.

[その他の実施の形態および変形例]
上述の実施の形態において、動きベクトル算出部の第1の例においては、サーチ範囲におけるサーチ方向を水平ライン方向に取り、例えばサーチ範囲の左上から順に参照ブロックを移動させるようにしてサーチを行うようにすると共に、SADテーブルの1ライン分のメモリを設けるようにしたが、サーチ範囲におけるサーチ方向を垂直方向に取り、例えばサーチ範囲の左上端から垂直方向にサーチを開始し、垂直方向の1列分のサーチが終わった後、水平方向に、参照ブロックの位置を1つ分、例えば1画素分右の垂直方向の列に移動し、その列の上端から垂直方向にサーチする、という手順を繰り返すサーチ方法を採用するようにしても良い。このようにサーチ範囲の左上端から順に、垂直方向に参照ブロックを移動させるようにしてサーチを行うようにする場合には、SADテーブルの垂直方向の一列分のメモリを設けるようにすれば良い。
[Other Embodiments and Modifications]
In the first embodiment, in the first example of the motion vector calculation unit, the search direction in the search range is set to the horizontal line direction, and the search is performed by moving the reference block in order from the upper left of the search range, for example. In addition, a memory for one line of the SAD table is provided, but the search direction in the search range is set to the vertical direction, for example, the search is started in the vertical direction from the upper left end of the search range, and one column in the vertical direction is set. After the search for minutes is completed, the procedure is repeated in which the position of the reference block is moved to the vertical column on the right by one pixel, for example, one pixel in the horizontal direction, and the search is performed in the vertical direction from the upper end of the column. You may make it employ | adopt a search method. As described above, when the search is performed by moving the reference block in the vertical direction sequentially from the upper left end of the search range, a memory for one column in the vertical direction of the SAD table may be provided.

ここで、水平方向にサーチ方向を取るか、垂直方向にサーチ方向を取るかは、マッチング処理部、動きベクトル算出部の回路規模を考慮して、より回路規模が小さくなる方を採用するのが好ましい。   Here, whether the search direction is taken in the horizontal direction or the search direction in the vertical direction is determined by taking into account the circuit scales of the matching processing unit and the motion vector calculation unit and adopting the one with a smaller circuit scale. preferable.

なお、前述もしたように、参照ブロックの移動は、1画素毎、また、1ライン毎ではなく、複数画素毎、また、複数ライン毎でもよい。したがって、前者の場合の水平方向の1ライン分メモリは、水平方向における参照ブロックの移動位置分だけでよく、また、後者の場合の垂直方向の一列分のメモリは、垂直方向における参照ブロックの移動位置分だけでよい。つまり、参照ブロックの移動を1画素毎、また、1ライン毎に行う場合には、1ライン分メモリは、1ラインの画素数分の容量のメモリが必要であり、また、垂直方向の一列分メモリは、ライン数分の容量のメモリが必要である。しかし、複数画素毎、また、複数ライン毎に、参照ブロックを移動させる場合には、1画素毎、また、1ライン毎に参照ブロックを移動させる場合よりも、1ライン分メモリおよび1列分メモリの容量は少なくなる。   As described above, the reference block may be moved not for each pixel and for each line, but for each of a plurality of pixels and for each of a plurality of lines. Therefore, the memory for one line in the horizontal direction in the former case only needs to correspond to the movement position of the reference block in the horizontal direction, and the memory for one column in the vertical direction in the latter case moves the reference block in the vertical direction. Just the position. That is, when the reference block is moved for each pixel or for each line, the memory for one line needs a memory having the capacity corresponding to the number of pixels for one line, and for one column in the vertical direction. As the memory, a memory having a capacity corresponding to the number of lines is required. However, when the reference block is moved for each of a plurality of pixels and for each of a plurality of lines, the memory for one line and the memory for one column are compared with the case where the reference block is moved for each pixel and for each line. Less capacity.

また、補間処理の方法は、上述した二次曲線近似補間処理に限られるものではなく、前述もしたように、3次曲線や、より高次の曲線を用いた補間処理を行っても良い。   Further, the interpolation processing method is not limited to the above-described quadratic curve approximation interpolation processing, and as described above, interpolation processing using a cubic curve or a higher order curve may be performed.

また、上述の実施の形態は、この発明による画像処理装置を撮像装置に適用した場合であるが、この発明は、撮像装置に限られるわけではなく、画像フレーム間の動きを検出する場合に、ブロックマッチングを使用する場合の全てに適用可能である。   Moreover, although the above-mentioned embodiment is a case where the image processing apparatus by this invention is applied to an imaging device, this invention is not necessarily restricted to an imaging device, When detecting the motion between image frames, It is applicable to all cases where block matching is used.

また、上述の実施の形態は、画像の重ね合わせによるノイズ低減処理のために、ブロック単位に動きベクトルを検出する場合に、この発明を適用した場合であるが、撮像時の手ぶれによる動きベクトルを検出するためにも用いることができることは言うまでもない。手ぶれによる動きベクトルは、例えば、複数のブロック動きベクトルの平均値として求めることができる。   The above-described embodiment is a case where the present invention is applied when detecting a motion vector in units of blocks for noise reduction processing by image superposition. It goes without saying that it can also be used for detection. The motion vector due to camera shake can be obtained, for example, as an average value of a plurality of block motion vectors.

この発明による画像処理装置の一実施の形態である撮像装置の構成例を示すブロック図である。1 is a block diagram illustrating a configuration example of an imaging apparatus that is an embodiment of an image processing apparatus according to the present invention. 実施の形態の図1の撮像装置における撮像画像のノイズ低減処理を説明するための図である。It is a figure for demonstrating the noise reduction process of the captured image in the imaging device of FIG. 1 of embodiment. 実施の形態の図1の撮像装置におけるブロックマッチング処理の説明のために用いる図である。It is a figure used for description of the block matching process in the imaging device of FIG. 1 of embodiment. 実施の形態の図1の撮像装置における撮像画像のノイズ低減処理を説明するための図である。It is a figure for demonstrating the noise reduction process of the captured image in the imaging device of FIG. 1 of embodiment. 実施の形態の図1の撮像装置における撮像画像のノイズ低減処理を説明するための図である。It is a figure for demonstrating the noise reduction process of the captured image in the imaging device of FIG. 1 of embodiment. 実施の形態の図1の撮像装置における動き検出・動き補償部の構成例を示すブロック図である。It is a block diagram which shows the structural example of the motion detection and the motion compensation part in the imaging device of FIG. 1 of embodiment. 実施の形態の図1の撮像装置における動き検出・動き補償部における動作を説明するために用いる図である。It is a figure used in order to demonstrate the operation | movement in the motion detection and the motion compensation part in the imaging device of FIG. 1 of embodiment. 実施の形態の図1の撮像装置における動き検出・動き補償部における動作を説明するために用いる図である。It is a figure used in order to demonstrate the operation | movement in the motion detection and the motion compensation part in the imaging device of FIG. 1 of embodiment. 実施の形態の図1の撮像装置における動き検出・動き補償部における処理による効果を説明するための図である。It is a figure for demonstrating the effect by the process in the motion detection and the motion compensation part in the imaging device of FIG. 1 of embodiment. この発明による画像処理方法の第1の実施の形態を説明するためのフローチャートを示す図である。It is a figure which shows the flowchart for demonstrating 1st Embodiment of the image processing method by this invention. この発明による画像処理方法の第1の実施の形態を説明するためのフローチャートを示す図である。It is a figure which shows the flowchart for demonstrating 1st Embodiment of the image processing method by this invention. 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の構成と、比較する構成例を示すブロック図である。It is a block diagram which shows the structural example compared with the structure of the motion vector calculation part of the motion detection / motion compensation part in the imaging device of FIG. 1 of embodiment. 図12の比較例の処理動作を説明するためのフローチャートを示す図である。It is a figure which shows the flowchart for demonstrating the processing operation of the comparative example of FIG. 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の例を説明するために用いる図である。It is a figure used in order to demonstrate the example of the motion vector calculation part of the motion detection / motion compensation part in the imaging device of FIG. 1 of embodiment. 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第1の例を説明するために用いる図である。It is a figure used in order to demonstrate the 1st example of the motion vector calculation part of the motion detection / motion compensation part in the imaging device of Drawing 1 of an embodiment. 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第1の例の構成例を示すブロック図である。It is a block diagram which shows the structural example of the 1st example of the motion vector calculation part of the motion detection / motion compensation part in the imaging device of FIG. 1 of embodiment. 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第1の例における処理動作を説明するためのフローチャートの一部を示す図である。It is a figure which shows a part of flowchart for demonstrating the processing operation in the 1st example of the motion vector calculation part of the motion detection / motion compensation part in the imaging device of FIG. 1 of embodiment. 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第1の例における処理動作を説明するためのフローチャートの一部を示す図である。It is a figure which shows a part of flowchart for demonstrating the processing operation in the 1st example of the motion vector calculation part of the motion detection / motion compensation part in the imaging device of FIG. 1 of embodiment. 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第1の例の構成例を示すブロック図である。It is a block diagram which shows the structural example of the 1st example of the motion vector calculation part of the motion detection / motion compensation part in the imaging device of FIG. 1 of embodiment. 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第1の例における処理動作を説明するためのフローチャートを示す図である。It is a figure which shows the flowchart for demonstrating the processing operation in the 1st example of the motion vector calculation part of the motion detection / motion compensation part in the imaging device of FIG. 1 of embodiment. この発明の第2の実施の形態の画像処理方法を説明するために用いる図である。It is a figure used in order to explain the image processing method of a 2nd embodiment of this invention. この発明の第2の実施の形態の画像処理方法を説明するために用いる図である。It is a figure used in order to explain the image processing method of a 2nd embodiment of this invention. この発明の第2の実施の形態の画像処理方法を説明するために用いる図である。It is a figure used in order to explain the image processing method of a 2nd embodiment of this invention. この発明の第2の実施の形態の画像処理方法を説明するためのフローチャートの一部を示す図である。It is a figure which shows a part of flowchart for demonstrating the image processing method of 2nd Embodiment of this invention. この発明の第2の実施の形態の画像処理方法を説明するためのフローチャートの一部を示す図である。It is a figure which shows a part of flowchart for demonstrating the image processing method of 2nd Embodiment of this invention. この発明の第2の実施の形態の画像処理方法における具体例を説明するために用いる図である。It is a figure used in order to demonstrate the specific example in the image processing method of the 2nd Embodiment of this invention. この発明の第2の実施の形態の画像処理方法における具体例を説明するために用いる図である。It is a figure used in order to demonstrate the specific example in the image processing method of the 2nd Embodiment of this invention. この発明の第2の実施の形態の画像処理方法の効果を説明するために用いる図である。It is a figure used in order to demonstrate the effect of the image processing method of the 2nd Embodiment of this invention. この発明の第3の実施の形態の画像処理方法の説明のために用いる図である。It is a figure used for description of the image processing method of the 3rd Embodiment of this invention. この発明の第3の実施の形態の画像処理方法の説明のために用いる図である。It is a figure used for description of the image processing method of the 3rd Embodiment of this invention. この発明の第3の実施の形態の画像処理方法を説明するためのフローチャートを示す図である。It is a figure which shows the flowchart for demonstrating the image processing method of 3rd Embodiment of this invention. この発明の第3の実施の形態の画像処理方法の説明のために用いる図である。It is a figure used for description of the image processing method of the 3rd Embodiment of this invention. ブロックマッチング処理を説明するために用いる図である。It is a figure used in order to explain block matching processing. ブロックマッチング処理を説明するために用いる図である。It is a figure used in order to explain block matching processing. ブロックマッチング処理を説明するために用いる図である。It is a figure used in order to explain block matching processing. ブロックマッチング処理を説明するために用いる図である。It is a figure used in order to explain block matching processing. ブロックマッチング処理を説明するために用いる図である。It is a figure used in order to explain block matching processing. ブロックマッチング処理を説明するために用いる図である。It is a figure used in order to explain block matching processing.

符号の説明Explanation of symbols

16…動き検出・動き補償部、17…画像重ね合わせ部、100…ターゲット画像(ターゲットフレーム)、101…参照画像(参照フレーム)、102…ターゲットブロック、104…動きベクトル106…サーチ範囲、107…参照ベクトル、108…参照ブロック、163…マッチング処理部、164…動きベクトル算出部、1643…SAD値保持部、1646…二次曲線近似補間処理部   DESCRIPTION OF SYMBOLS 16 ... Motion detection / motion compensation part, 17 ... Image superimposition part, 100 ... Target image (target frame), 101 ... Reference image (reference frame), 102 ... Target block, 104 ... Motion vector 106 ... Search range, 107 ... Reference vector 108... Reference block 163 Matching processing unit 164 Motion vector calculation unit 1643 SAD value holding unit 1646 Quadratic curve approximation interpolation processing unit

Claims (4)

ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれに基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理装置において、
前記参照ブロック内の複数の画素の画素値と、前記ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記参照ブロックのそれぞれと前記ターゲットブロックとの間の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関参照ブロックの位置を検出する最強相関参照ブロック検出手段と、
前記最強相関参照ブロックについての最強相関値および前記最強相関参照ブロックの位置の近傍の複数個の近傍参照ブロックについての前記相関値を取得する取得手段と、
前記取得手段で取得した、前記最強相関参照ブロックの前記最強相関値および前記複数個の近傍参照ブロックについての前記相関値の複数個を用いて補間処理を行い、前記ターゲット画面の画素ピッチよりも小さい高精度で、前記ターゲットブロックとの相関が最も強い高精細最強相関参照ブロックの位置を検出し、前記高精細最強相関参照ブロックの前記ターゲットブロックからの位置ずれとして前記動きベクトルを算出する補間処理手段と、
を備え、
前記最強相関参照ブロック検出手段は、
前記最強相関参照ブロックについての前記最強相関値およびその位置に関する情報を保持する保持部を備え、
新たに算出された前記参照ブロックの前記ターゲットブロックに対する新相関値と、前記保持部の前記最強相関値とを比較して、前記新相関値の方が相関が強いと判別されたときに、前記保持部の前記最強相関値およびその位置に関する情報を、前記新相関値およびその位置に関する情報に更新し、
前記取得手段は、少なくとも、前記保持部に保持されている前記最強相関参照ブロックの近傍の複数個の近傍参照ブロックについて、前記相関値を再算出することにより、前記近傍参照ブロックについての相関値を取得する
ことを特徴とする画像処理装置。
A plurality of reference blocks having the same size as a target block of a predetermined size composed of a plurality of pixels set in the target screen are set in a search range set in a reference screen different from the target screen, and the plurality In the image processing apparatus for detecting a motion vector for the target block based on a positional deviation of the reference block having the strongest correlation with the target block on the screen with respect to the target block.
A correlation value between each of the reference blocks and the target block is calculated using pixel values of the plurality of pixels in the reference block and pixel values of a plurality of pixels at corresponding positions in the target block. A strongest correlation reference block detecting means for detecting a position of the strongest correlation reference block having the strongest correlation with the target block;
Obtaining means for obtaining the strongest correlation value for the strongest correlation reference block and the correlation values for a plurality of neighboring reference blocks in the vicinity of the position of the strongest correlation reference block;
Interpolation processing is performed using the strongest correlation value of the strongest correlation reference block acquired by the acquisition unit and the plurality of correlation values of the plurality of neighboring reference blocks, and is smaller than the pixel pitch of the target screen. with high accuracy, the interpolation correlation with the target block to detect the position of the strongest high definition strongest correlation reference block, calculates the pre kidou-out vector as positional deviation from the target block of the high-definition strongest correlation reference block Processing means;
With
The strongest correlation reference block detection means includes:
A holding unit for holding information on the strongest correlation value and the position of the strongest correlation reference block;
The newly calculated new correlation value of the reference block with respect to the target block is compared with the strongest correlation value of the holding unit, and when the new correlation value is determined to have a stronger correlation, Update the information on the strongest correlation value and its position of the holding unit to the information on the new correlation value and its position,
It said acquisition means, at least, about double several adjacent reference blocks in the vicinity of the strongest correlation reference block held in the holding portion, by re-calculating the correlation value, the correlation value for the neighborhood reference block An image processing apparatus characterized by acquiring
請求項1に記載の画像処理装置において、
前記ターゲット画面を複数個に分割して、前記ターゲットブロックを複数個設定し、
前記複数個のターゲットブロックのそれぞれについて、前記動きベクトルを検出し、
検出した前記複数個のターゲットブロックについての動きベクトルをそれぞれ用いて、前記分割した画面単位で、複数枚の画像を重ね合わせることで、低ノイズの画像情報を得る
ことを特徴とする画像処理装置。
The image processing apparatus according to claim 1 .
Dividing the target screen into a plurality of pieces, setting a plurality of the target blocks,
Detecting the motion vector for each of the plurality of target blocks;
An image processing apparatus, wherein low-noise image information is obtained by superimposing a plurality of images in units of the divided screens using the detected motion vectors for the plurality of target blocks.
請求項1に記載の画像処理装置において、
前記相関値として、前記参照ブロック内の複数の画素の画素値と、前記ターゲットブロック内で対応する位置の複数の画素の画素値との差分の絶対値の総和を算出する
ことを特徴とする画像処理装置。
The image processing apparatus according to claim 1 .
The sum of absolute values of differences between pixel values of a plurality of pixels in the reference block and pixel values of a plurality of pixels at corresponding positions in the target block is calculated as the correlation value. Processing equipment.
ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれに基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理方法において、
前記参照ブロック内の複数の画素の画素値と、前記ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記参照ブロックのそれぞれと前記ターゲットブロックとの間の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関参照ブロックの位置を検出する最強相関参照ブロック検出工程と、
前記最強相関参照ブロックについての最強相関値および前記最強相関参照ブロックの位置の近傍の複数個の近傍参照ブロックについての前記相関値を取得する取得工程と、
前記取得工程で取得した、前記最強相関参照ブロックの前記最強相関値および前記複数個の近傍参照ブロックについての前記相関値の複数個を用いて補間処理を行い、前記ターゲット画面の画素ピッチよりも小さい高精度で、前記ターゲットブロックとの相関が最も強い高精細最強相関参照ブロックの位置を検出し、前記高精細最強相関参照ブロックの前記ターゲットブロックからの位置ずれとして前記動きベクトルを算出する補間処理工程と、
を画像処理装置が実行するものであって、
前記画像処理装置は、
前記最強相関参照ブロックについての前記最強相関値およびその位置に関する情報を保持する保持部を備え、
前記最強相関参照ブロック検出工程では、
新たに算出された前記参照ブロックの前記ターゲットブロックに対する新相関値と、前記保持部の前記最強相関値とを比較して、前記新相関値の方が相関が強いと判別されたときに、前記保持部の前記最強相関値およびその位置に関する情報を、前記新相関値およびその位置に関する情報に更新し、
前記取得工程では、
少なくとも、前記保持部に保持されている前記最強相関参照ブロックの近傍の複数個の近傍参照ブロックについて、前記相関値を再算出することにより、前記近傍参照ブロックについての相関値を取得する
ことを特徴とする画像処理方法。
A plurality of reference blocks having the same size as a target block of a predetermined size composed of a plurality of pixels set in the target screen are set in a search range set in a reference screen different from the target screen, and the plurality In the image processing method for detecting a motion vector for the target block based on a positional shift of the reference block having the strongest correlation with the target block on the screen relative to the target block.
A correlation value between each of the reference blocks and the target block is calculated using pixel values of the plurality of pixels in the reference block and pixel values of a plurality of pixels at corresponding positions in the target block. A strongest correlation reference block detecting step for detecting a position of the strongest correlation reference block having the strongest correlation with the target block;
Obtaining the strongest correlation value for the strongest correlation reference block and the correlation values for a plurality of neighboring reference blocks in the vicinity of the position of the strongest correlation reference block;
Interpolation is performed using the strongest correlation value of the strongest correlation reference block acquired in the acquisition step and the plurality of correlation values of the plurality of neighboring reference blocks, and is smaller than the pixel pitch of the target screen. An interpolation process step of detecting a position of a high-definition strongest correlation reference block having the strongest correlation with the target block with high accuracy and calculating the motion vector as a positional deviation of the high-definition strongest correlation reference block from the target block When,
Is executed by the image processing apparatus,
The image processing apparatus includes:
A holding unit for holding information on the strongest correlation value and the position of the strongest correlation reference block;
In the strongest correlation reference block detection step,
The newly calculated new correlation value of the reference block with respect to the target block is compared with the strongest correlation value of the holding unit, and when the new correlation value is determined to have a stronger correlation, Update the information on the strongest correlation value and its position of the holding unit to the information on the new correlation value and its position,
In the acquisition step,
At least, the plurality of near-neighbor reference blocks in the vicinity of the strongest correlation reference block held in the holding portion, by re-calculating the correlation values, to obtain a correlation value for said neighboring reference blocks A featured image processing method.
JP2007206102A 2007-08-08 2007-08-08 Image processing apparatus and image processing method Expired - Fee Related JP4998134B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007206102A JP4998134B2 (en) 2007-08-08 2007-08-08 Image processing apparatus and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007206102A JP4998134B2 (en) 2007-08-08 2007-08-08 Image processing apparatus and image processing method

Publications (2)

Publication Number Publication Date
JP2009044361A JP2009044361A (en) 2009-02-26
JP4998134B2 true JP4998134B2 (en) 2012-08-15

Family

ID=40444637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007206102A Expired - Fee Related JP4998134B2 (en) 2007-08-08 2007-08-08 Image processing apparatus and image processing method

Country Status (1)

Country Link
JP (1) JP4998134B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6147172B2 (en) * 2013-11-20 2017-06-14 キヤノン株式会社 Imaging apparatus, image processing apparatus, image processing method, and program
JP6192507B2 (en) * 2013-11-20 2017-09-06 キヤノン株式会社 Image processing apparatus, control method thereof, control program, and imaging apparatus
US20220188988A1 (en) * 2019-03-29 2022-06-16 Sony Group Corporation Medical system, information processing device, and information processing method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07123417A (en) * 1993-10-25 1995-05-12 Sony Corp Motion vector detector
JPH07131790A (en) * 1993-10-28 1995-05-19 Sony Corp Motion vector detector
JPH11239350A (en) * 1998-02-23 1999-08-31 Oki Electric Ind Co Ltd Motion vector detection method for moving image signal and motion vector detection circuit in inter-frame encoding device
JP2006319784A (en) * 2005-05-13 2006-11-24 Olympus Corp Image processing apparatus and imaging apparatus

Also Published As

Publication number Publication date
JP2009044361A (en) 2009-02-26

Similar Documents

Publication Publication Date Title
JP4882956B2 (en) Image processing apparatus and image processing method
JP2009071689A (en) Image processing apparatus, image processing method, and imaging apparatus
JP4544334B2 (en) Image processing apparatus and image processing method
JP4340915B2 (en) Captured image signal distortion correction method, captured image signal distortion correction apparatus, imaging method, and imaging apparatus
JP4623111B2 (en) Image processing apparatus, image processing method, and program
US7821540B2 (en) Imager-created image signal-distortion compensation method, imager-created image signal-distortion compensation apparatus, image taking method and image taking apparatus
JP4178480B2 (en) Image processing apparatus, image processing method, imaging apparatus, and imaging method
US8031232B2 (en) Image pickup apparatus including a first image formation system and a second image formation system, method for capturing image, and method for designing image pickup apparatus
JP2009105533A (en) Image processing device, imaging device, image processing method, and picked-up image processing method
JP2009055410A (en) Image processing device and image processing method
US20110096143A1 (en) Apparatus for generating a panoramic image, method for generating a panoramic image, and computer-readable medium
WO2011129249A1 (en) Image processing device, image capture device, program, and image processing method
JP2012142865A (en) Image processing apparatus and image processing method
JP2007215114A (en) Method of correcting distortion of taken image and device of correcting distortion of taken image, and imaging apparatus
JP2004336106A (en) Image processing apparatus, image processing method, and imaging apparatus
JP2015049402A (en) Defocus-amount detection device, and control method of the same, and imaging device
US8723969B2 (en) Compensating for undesirable camera shakes during video capture
JP4998134B2 (en) Image processing apparatus and image processing method
JP2009116763A (en) Image processing apparatus, and memory access method for image data
JP4670630B2 (en) Image processing apparatus, image processing method, imaging apparatus, and imaging method
JP2012004710A (en) Motion vector detection circuit, moving image encoding apparatus, and motion vector detection method
JP4888306B2 (en) Image processing apparatus and image processing method
JP2009130489A (en) Image device, imaging/recording method, picked-up image recording and reproducing device, and picked-up image recording and reproducing method
JP2009065323A (en) Image processing device, image processing method, imaging apparatus, and imaging method
JP2009140046A (en) Image processing apparatus and memory access method for image data

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090807

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091005

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120417

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120430

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees