JP4139342B2 - Motion vector detection method, motion vector detection device, motion vector detection program, and computer-readable recording medium recording the program - Google Patents

Motion vector detection method, motion vector detection device, motion vector detection program, and computer-readable recording medium recording the program Download PDF

Info

Publication number
JP4139342B2
JP4139342B2 JP2004066644A JP2004066644A JP4139342B2 JP 4139342 B2 JP4139342 B2 JP 4139342B2 JP 2004066644 A JP2004066644 A JP 2004066644A JP 2004066644 A JP2004066644 A JP 2004066644A JP 4139342 B2 JP4139342 B2 JP 4139342B2
Authority
JP
Japan
Prior art keywords
image
value
sad
motion vector
true
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
JP2004066644A
Other languages
Japanese (ja)
Other versions
JP2005260392A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2004066644A priority Critical patent/JP4139342B2/en
Publication of JP2005260392A publication Critical patent/JP2005260392A/en
Application granted granted Critical
Publication of JP4139342B2 publication Critical patent/JP4139342B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、ディジタル動画像の符号化で用いられる画像ブロックの動きベクトルを検出する動きベクトル検出方法及びその装置と、その動きベクトル検出方法の実現に用いられる動きベクトル検出プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体とに関する。   The present invention records a motion vector detection method and apparatus for detecting a motion vector of an image block used for encoding a digital moving image, a motion vector detection program used for realizing the motion vector detection method, and the program. The present invention relates to a computer-readable recording medium.

従来の動画像圧縮符号化方式(MPEG−1,MPEG−2,MPEG−4等)では、動画像フレーム間の動きベクトル検出を行う。   In a conventional moving image compression encoding method (MPEG-1, MPEG-2, MPEG-4, etc.), motion vector detection between moving image frames is performed.

この動きベクトル検出では、ある画像フレーム(以下、画像フレーム1と呼ぶ)内のあるブロック(以下、ブロックBi と呼ぶ)に対し、別の画像フレーム(以下、画像フレーム2と呼ぶ)に含まれるブロックの中で最も類似度の高いブロック(以下、ブロックB0 と呼ぶ)を求め、ブロックBi とブロックB0 との座標変分を求める処理を行う。 In this motion vector detection, a block (hereinafter referred to as block B i ) in a certain image frame (hereinafter referred to as image frame 1) is included in another image frame (hereinafter referred to as image frame 2). A block having the highest similarity among the blocks (hereinafter referred to as a block B 0 ) is obtained, and a process for obtaining a coordinate variation between the block B i and the block B 0 is performed.

ブロックB0 を求めるには、画像フレーム2からあるブロック(以下、ブロックBj と呼ぶ)を取り出してはブロックBi との類似度を算出し、その算出値が最高か否かを判定することを繰り返す、というブロックマッチング処理が行われる。 In order to obtain the block B 0 , a certain block (hereinafter referred to as the block B j ) is extracted from the image frame 2, the similarity with the block B i is calculated, and it is determined whether or not the calculated value is the highest. The block matching process is repeated.

一般に、類似度にはSAD(Sum of Absolute Difference)を用いる。SADは、ブロックBi とブロックBj がともにN個の画素を含む場合、ブロックBi 内の画素値Ia とブロックBj 内の画素値Ja との絶対差|Ia −Ja |により、Σa |Ia −Ja |で計算される。ここでΣa は、ブロック内の全画素を参照するように添字aを変化させて積算することを意味する。SADを1回求めるのには、N回の絶対差とN−1回の加算とが必要である。類似度にSADを用いた場合、最高の類似度を持つブロックB0 は最小のSADを持つブロックである。 Generally, SAD (Sum of Absolute Difference) is used for the similarity. SAD, when the block B i and the block B j are both containing N pixels, the absolute difference between the pixel value J a in the pixel values I a and the block B j in the block B i | I a -J a | Thus, Σ a | I a −J a | is calculated. Here sigma a means to integration by changing the suffixes a to refer to all the pixels in the block. To obtain SAD once, N absolute differences and N-1 additions are required. When SAD is used for the similarity, the block B 0 having the highest similarity is a block having the minimum SAD.

SADを用いてブロックB0 を求めるには、画像フレーム2からブロックBj を取り出し、ブロックBi とブロックBj とのSAD(以下、SADj と呼ぶ)を計算し、探索中の暫定最小値SADcandと比較して、
SADj =Σa |Ia −Ja |<SADcand (1)式
ならばSADcandをSADj で置き換え、ブロックBj の座標を記録する。この処理を全てのブロックBj について終えた時のSADcandが最小SAD値のSADmin となる。
In order to obtain the block B 0 using SAD, the block B j is extracted from the image frame 2, the SAD of the block B i and the block B j (hereinafter referred to as SAD j ) is calculated, and the provisional minimum value during the search is calculated. Compared to SAD cand ,
If SAD j = Σ a | I a −J a | <SAD cand (1), SAD cand is replaced with SAD j and the coordinates of block B j are recorded. SAD cand when this process is completed for all the blocks B j becomes SAD min of the minimum SAD value.

通常、画素値は8ビットのデータ(値域は0から255)として表される。ゆえに、絶対差|Ia −Ja |は8ビットの演算器で求められ、その積算値であるSADj はブロック内画素数Nで決まるビット数にて表される。 Usually, the pixel value is represented as 8-bit data (value range is 0 to 255). Therefore, the absolute difference | I a −J a | is obtained by an 8-bit computing unit, and the integrated value SAD j is represented by the number of bits determined by the number N of pixels in the block.

この動きベクトル検出を効率的に行う手法としてSEA探索法が知られている(例えば、非特許文献1参照)。   An SEA search method is known as a method for efficiently performing this motion vector detection (see, for example, Non-Patent Document 1).

SEA探索法では、画像フレーム内の隣接画素同士をまとめて粗い画素(粗い画像)を作り、その画素値でSADを求め、それを下限閾値として、真の画素値によるSAD計算を省略するものである。画素を粗くすることでブロック内画素数が減るため、粗い画素値でのSAD計算にかかる演算量は真の画素値でのそれよりも少ない。それゆえ、SAD計算全体に要する演算量を削減できる効果が見込まれる。
"W.Li and E.Sarari, Successive Elimination Algorithm for Motion Estimation, IEEE Trans. Image Proc., vol.4, pp.105-107, Jan.1995”
In the SEA search method, adjacent pixels in an image frame are grouped together to form a rough pixel (coarse image), SAD is obtained from the pixel value, and this is used as a lower limit threshold value, and SAD calculation using a true pixel value is omitted. is there. Since the number of pixels in the block is reduced by making the pixels coarse, the amount of calculation for the SAD calculation with coarse pixel values is smaller than that with the true pixel values. Therefore, it is expected that the amount of calculation required for the entire SAD calculation can be reduced.
"W.Li and E. Sarari, Successive Elimination Algorithm for Motion Estimation, IEEE Trans. Image Proc., Vol.4, pp.105-107, Jan.1995"

上述したことから分かるように、動きベクトル検出では、一つのブロックBi に対してでもブロックB0 を求めるのにSADを多数回計算せねばならない。さらに、この処理は、画像フレーム1内の全ブロックに対して行わねばならず、膨大な回数のSAD計算、すなわち、絶対差とその加算という演算を要する。こうした処理を現実的な量の演算リソースで処理するには非常に多くの処理時間がかかることになる。 As can be seen from the above, in motion vector detection, the SAD must be calculated many times to obtain the block B 0 even for one block B i . Furthermore, this process must be performed for all blocks in the image frame 1, and requires a huge number of SAD calculations, that is, operations of absolute difference and addition. It takes a lot of processing time to process such processing with a realistic amount of computing resources.

処理時間を短縮する方法の一つとして、画素値Ia およびJa を表現するビット数を減らし、一定のビット幅の演算器で一度に演算できる画素数を増やすことで、処理効率の向上を図る方法が考えられる。 One way to shorten the processing time is to reduce the number of bits that represent the pixel values I a and J a , and increase the number of pixels that can be computed at once with a constant bit width computing unit, thereby improving processing efficiency. A method to plan is conceivable.

しかし、画素値Ia およびJa のそれぞれのビット数を減らして値Ya およびZa とし、単純に、これを用いて、(1)式と同様に
Σa |Ya −Za |≦Xmin
という更新式に従って、最小SAD値“Xmin ”を持つブロックを見つけたとしても、それが必ずしも真の最小SAD値“SADmin ”を持つブロックB0 であるとは限らない。
However, the number of bits of each of the pixel values I a and J a is reduced to values Y a and Z a, and this is used simply as in the expression (1).
Σ a | Y a −Z a | ≦ X min
Even if a block having the minimum SAD value “X min ” is found according to the update equation, it is not always the block B 0 having the true minimum SAD value “SAD min ”.

それゆえ、ビット数を減らした画素値でSAD計算を行い、処理の効率化を図る試みはそのままではうまくいかないことになる。この点については、SEA探索法でも同様である。   Therefore, an attempt to increase the processing efficiency by performing SAD calculation with a pixel value with a reduced number of bits will not work as it is. This also applies to the SEA search method.

本発明はかかる事情に鑑みてなされたものであって、画像ブロックの動きベクトルの検出処理時間の短縮を実現する新たな動きベクトル検出技術の提供を目的とする。   The present invention has been made in view of such circumstances, and an object of the present invention is to provide a new motion vector detection technique that realizes a reduction in the processing time for detecting a motion vector of an image block.

〔1〕第1の構成
上記目的を達成するために、本発明の動きベクトル検出装置は、画像ブロック間でSAD値を算出し、それに基づいて、画像ブロックの動きベクトルを検出する処理を行うときにあって、(イ)動きベクトルの検出対象となる画像の画素値を1以上の数で除算し、その商の整数部を新たな画素値とする画像を生成することで、動きベクトルの検出対象となる画像を減ビット画像に変換する変換手段と、(ロ)減ビット画像を処理対象として、画像ブロック間でSAD値を算出し、それらの中で最小値となるものを抽出する抽出手段と、(ハ)抽出手段の抽出した最小SAD値を基準にして、減ビット画像の画素値でのSAD値を評価することで、真のSAD値の算出対象となる画像ブロックであるのか否かを判定する判定手段と、(ニ)真のSAD値の算出対象となる画像ブロックを処理対象として、画像ブロック間で真の画素値でのSAD値を算出し、それらの中で最小値となるものを特定する特定手段と、(ホ)特定手段の特定した真のSAD値の算出元となった画像ブロックに基づいて、画像ブロックの動きベクトルを検出する検出手段とを備えるように構成し、さらに、判定手段は、「X min ≦X j ≦X min +2×N」に基づいて、真のSAD値の算出対象となる画像ブロックであるのか否かを判定するように構成する。ここで、X j は判定対象の画像ブロックの持つ減ビット画像の画素値でのSAD値を表し、X min は減ビット画像の画素値でのSAD値の最小値を表し、Nは画像ブロック内の画素数を表す。
[1] First Configuration To achieve the above object, the motion vector detection device of the present invention calculates a SAD value between image blocks and performs a process of detecting a motion vector of the image block based on the SAD value. Then, (b) detecting a motion vector by dividing the pixel value of an image to be detected by a motion vector by a number of 1 or more and generating an image with the integer part of the quotient as a new pixel value. A conversion means for converting a target image into a reduced bit image; and (b) an extraction means for calculating a SAD value between image blocks with the reduced bit image as a processing target and extracting a minimum value among them. (C) Whether or not the image block is a target for calculating a true SAD value by evaluating the SAD value at the pixel value of the reduced bit image on the basis of the minimum SAD value extracted by the extracting means. Judgment hand to judge (D) The SAD value at the true pixel value is calculated between the image blocks, and the image block that is the target of the true SAD value calculation is calculated, and the minimum value among them is specified. specifying means, form configured to include a (e) based on the specified image block became calculated original true SAD value of the specific means, detecting means for detecting a motion vector of an image block, further, the determination The means is configured to determine whether or not the image block is a true SAD value calculation target based on “X min ≦ X j ≦ X min + 2 × N”. Here, X j represents the SAD value at the pixel value of the reduced bit image of the image block to be determined, X min represents the minimum value of the SAD value at the pixel value of the reduced bit image, and N represents the value in the image block Represents the number of pixels.

以上の各処理手段が動作することで実現される本発明の動きベクトル検出方法はコンピュータプログラムで実現できるものであり、このコンピュータプログラムは、半導体メモリなどのような適当な記録媒体に記録して提供されたり、ネットワークを介して提供され、本発明を実施する際にインストールされてCPUなどの制御手段上で動作することにより本発明を実現することになる。   The motion vector detection method of the present invention realized by the operation of each of the above processing means can be realized by a computer program, and this computer program is recorded on an appropriate recording medium such as a semiconductor memory and provided. Or provided via a network, installed when implementing the present invention, and operated on a control means such as a CPU, thereby realizing the present invention.

このように構成される本発明の動きベクトル検出装置では、先ず最初に、動きベクトルの検出対象となる画像の画素値を1以上の数で除算し、その商の整数部を新たな画素値とする画像を生成することで、動きベクトルの検出対象となる画像を減ビット画像に変換する。   In the motion vector detection device of the present invention configured as described above, first, the pixel value of the image to be detected as a motion vector is divided by a number of 1 or more, and the integer part of the quotient is determined as a new pixel value. By generating an image to be converted, an image that is a motion vector detection target is converted into a reduced bit image.

続いて、このようにして得た減ビット画像を処理対象として、画像ブロック間でSAD値を算出し、それらの中で最小値となるものを抽出する。   Subsequently, using the reduced bit image obtained in this way as a processing target, SAD values are calculated between the image blocks, and a minimum value among them is extracted.

続いて、この抽出した最小SAD値(減ビット画像の画素値で得たもの)を基準にして、減ビット画像の画素値でのSAD値を評価することで、真のSAD値の算出対象となる画像ブロックであるのか否かを判定する。   Subsequently, by evaluating the SAD value at the pixel value of the reduced bit image on the basis of the extracted minimum SAD value (obtained from the pixel value of the reduced bit image), the true SAD value can be calculated. It is determined whether or not it is an image block.

具体的には、判定対象の画像ブロックの持つ減ビット画像の画素値でのSAD値をXj 、減ビット画像の画素値でのSAD値の最小値をXmin 、画像ブロック内の画素数をNで表すならば、
min ≦Xj ≦Xmin +2×N
という評価式に基づいて、真のSAD値の算出対象となる画像ブロックであるのか否かを判定するのである。
Specifically, the SAD value at the pixel value of the reduced bit image of the image block to be determined is X j , the minimum value of the SAD value at the pixel value of the reduced bit image is X min , and the number of pixels in the image block is If represented by N,
X min ≦ X j ≦ X min + 2 × N
Based on the evaluation formula, it is determined whether or not the image block is a target for calculating a true SAD value.

続いて、このようにして得た真のSAD値の算出対象となる画像ブロックを処理対象として、画像ブロック間で真の画素値でのSAD値を算出し、それらの中で最小値となるものを特定する。   Subsequently, the SAD value at the true pixel value is calculated between the image blocks, with the image block that is the target of calculation of the true SAD value obtained as described above being processed, and the minimum value among them is calculated. Is identified.

そして、最後に、この特定した真のSAD値の算出元となった画像ブロックに基づいて、画像ブロックの動きベクトルを検出する。   Finally, the motion vector of the image block is detected based on the image block from which the specified true SAD value is calculated.

このようにして、本発明によれば、2つの画像フレーム間の動きベクトルを検出する方法として、画素値を表現するビット数を減じた計算が主体となることから、一定のビット幅の演算リソースでの処理効率を向上させることができるようになる。   As described above, according to the present invention, as a method of detecting a motion vector between two image frames, calculation is performed mainly by reducing the number of bits representing a pixel value. It becomes possible to improve the processing efficiency in the process.

〔2〕第2の構成
上記目的を達成するために、本発明の動きベクトル検出装置は、SEA探索法に基づいて画像ブロックの動きベクトルを検出する処理を行うときにあって、(イ)動きベクトルの検出対象となる画像を変換対象として、隣接画素同士をまとめることで、動きベクトルの検出対象となる画像を粗画像に変換する変換手段と、(ロ)粗画像の画素値を1以上の数で除算し、その商の整数部を新たな画素値とする画像を生成することで、粗画像を減ビット画像に変換する変換手段と、(ハ)減ビット画像を処理対象として、画像ブロック間でSAD値を算出する算出手段と、(ニ)算出手段の算出したSAD値と、減ビット画像を得るための除算に用いた数値と、粗画像におけるブロック内画素数と、真のSAD値の暫定最小値とに基づいて、真の画素値でのSAD値の算出を省略できる画像ブロックであるのか否かを判定する判定手段と、(ホ)真の画素値でのSAD値の算出を省略できない画像ブロックを処理対象として、真の画素値でのSAD値を算出し、それに応じて真のSAD値の暫定最小値を更新するのか否かを判断して、更新する必要がある場合には、それを更新する更新手段と、(ヘ)真のSAD値の暫定最小値が最小値として確定するときに、その算出元となった画像ブロックに基づいて、画像ブロックの動きベクトルを検出する検出手段とを備えるように構成し、さらに、判定手段は、「SAD cand <Q×XC j +Q×NC」に基づいて、真の画素値でのSAD値の算出を省略できる画像ブロックであるのか否かを判定するように構成する。ここで、XC j は減ビット画像の画素値でのSAD値を表し、Qは除算に用いた数値を表し、NCは粗画像におけるブロック内画素数を表し、SAD cand は真のSAD値の暫定最小値を表す。
[2] Second Configuration In order to achieve the above object, the motion vector detection device of the present invention performs processing for detecting a motion vector of an image block based on the SEA search method. A conversion means for converting an image to be a motion vector detection target into a coarse image by combining adjacent pixels with an image to be detected as a vector as a conversion target; and (b) a pixel value of the coarse image of 1 or more A conversion means for converting a coarse image into a reduced bit image by dividing the number by a number and generating an image having the integer part of the quotient as a new pixel value; Calculating means for calculating the SAD value between them, (d) the SAD value calculated by the calculating means, the numerical value used for the division to obtain the reduced bit image, the number of pixels in the block in the coarse image, and the true SAD value And provisional minimum And (e) an image block that cannot omit the calculation of the SAD value at the true pixel value. As a processing target, calculate a SAD value with a true pixel value, determine whether or not to update the provisional minimum value of the true SAD value accordingly, and update it if necessary. And (f) detecting means for detecting a motion vector of the image block based on the image block from which the provisional minimum value of the true SAD value is determined as the minimum value. form structure as further determining means, based on the "SAD cand <Q × XC j + Q × NC ", whether or not an image block can be omitted to calculate the SAD value of a true pixel value determination To be configured. Here, XC j represents the SAD value at the pixel value of the reduced bit image, Q represents the numerical value used for the division, NC represents the number of pixels in the block in the coarse image, and SAD cand is a provisional value of the true SAD value. Represents the minimum value.

以上の各処理手段が動作することで実現される本発明の動きベクトル検出方法はコンピュータプログラムで実現できるものであり、このコンピュータプログラムは、半導体メモリなどのような適当な記録媒体に記録して提供されたり、ネットワークを介して提供され、本発明を実施する際にインストールされてCPUなどの制御手段上で動作することにより本発明を実現することになる。   The motion vector detection method of the present invention realized by the operation of each of the above processing means can be realized by a computer program, and this computer program is recorded on an appropriate recording medium such as a semiconductor memory and provided. Or provided via a network, installed when implementing the present invention, and operated on a control means such as a CPU, thereby realizing the present invention.

このように構成される本発明の動きベクトル検出装置では、先ず最初に、動きベクトルの検出対象となる画像を変換対象として、隣接画素同士をまとめることで、動きベクトルの検出対象となる画像を粗画像に変換する。   In the motion vector detection device of the present invention configured as described above, first, an image that is a motion vector detection target is first set as a conversion target, and adjacent pixels are grouped together to roughly coarsen an image that is a motion vector detection target. Convert to image.

続いて、このようにして得た粗画像の画素値を1以上の数で除算し、その商の整数部を新たな画素値とする画像を生成することで、粗画像を減ビット画像に変換する。   Subsequently, by dividing the pixel value of the coarse image obtained in this way by a number of 1 or more and generating an image with the integer part of the quotient as a new pixel value, the coarse image is converted into a reduced bit image. To do.

続いて このようにして得た減ビット画像を処理対象として、画像ブロック間でSAD値を算出する。   Subsequently, SAD values are calculated between image blocks using the reduced bit image obtained in this way as a processing target.

続いて、この算出したSAD値(減ビット画像の画素値で得たもの)と、減ビット画像を得るための除算に用いた数値と、粗画像におけるブロック内画素数と、真のSAD値の暫定最小値とに基づいて、真の画素値でのSAD値の算出を省略できる画像ブロックであるのか否かを判定する。   Subsequently, the calculated SAD value (obtained from the pixel value of the reduced bit image), the numerical value used for division to obtain the reduced bit image, the number of pixels in the block in the coarse image, and the true SAD value Based on the provisional minimum value, it is determined whether or not the image block can omit the calculation of the SAD value with the true pixel value.

具体的には、判定対象の画像ブロックの持つ減ビット画像の画素値でのSAD値をXCj 、減ビット画像を得るための除算に用いた数値をQ、粗画像におけるブロック内画素数をNC、真のSAD値の暫定最小値をSADcandで表すならば、
SADcand<Q×XCj +Q×NC
という評価式に基づいて、真の画素値でのSAD値の算出を省略できる画像ブロックであるのか否かを判定するのである。
Specifically, the SAD value at the pixel value of the reduced bit image of the image block to be determined is XC j , the numerical value used for division to obtain the reduced bit image is Q, and the number of pixels in the block in the coarse image is NC If the provisional minimum value of the true SAD value is represented by SAD cand ,
SAD cand <Q × XC j + Q × NC
Based on the evaluation formula, it is determined whether or not the image block can calculate the SAD value with the true pixel value.

続いて、このようにして得た真の画素値でのSAD値の算出を省略できない画像ブロックを処理対象として、真の画素値でのSAD値を算出し、それに応じて真のSAD値の暫定最小値を更新するのか否かを判断して、更新する必要がある場合には、それを更新する。   Subsequently, the SAD value at the true pixel value is calculated for the image block in which the calculation of the SAD value at the true pixel value obtained in this way cannot be omitted, and the provisional of the true SAD value is correspondingly calculated. It is determined whether or not the minimum value is updated, and if it is necessary to update, it is updated.

そして、最後に、真のSAD値の暫定最小値が最小値として確定するときに、その算出元となった画像ブロックに基づいて、画像ブロックの動きベクトルを検出する。   Finally, when the provisional minimum value of the true SAD value is determined as the minimum value, the motion vector of the image block is detected based on the image block that is the calculation source.

このようにして、本発明によれば、SEA探索法に基づいて画像ブロックの動きベクトルを検出する処理を行うときにあって、2つの画像フレーム間の動きベクトルを検出する方法として、画素値を表現するビット数を減じた計算が主体となることから、一定のビット幅の演算リソースでの処理効率を向上させることができるようになる。   Thus, according to the present invention, when performing a process of detecting a motion vector of an image block based on the SEA search method, a pixel value is used as a method of detecting a motion vector between two image frames. Since the calculation is performed mainly by reducing the number of bits to be expressed, it is possible to improve the processing efficiency with a calculation resource having a certain bit width.

〔3〕本発明の理論的根拠
〔3−1〕第1の構成の理論的根拠
本発明の第1の構成では、従来技術の問題を解決するために、ビット数を減じた画素値で得られるSAD値と、真の画素値により得られるSAD値との間にある関係を導出し、これを利用することで動きベクトル検出処理を効率化するという方法を採っている。
[3] Theoretical basis of the present invention [3-1] Theoretical basis of the first configuration In the first configuration of the present invention, in order to solve the problem of the prior art, the pixel value obtained by reducing the number of bits is obtained. A method of deriving a relationship between the SAD value to be obtained and the SAD value obtained from the true pixel value and utilizing this is used to make the motion vector detection process more efficient.

まず、画素値Ia およびJa (ともに非負の整数)を、それぞれ定数Q(1以上の実数)で除算し、その整数部を取り出してUa およびVa とする。以後、ビット数削減のこのやり方を、定数Qで減ビットする、と呼ぶことにする。 First, pixel values I a and J a (both are non-negative integers) are respectively divided by a constant Q (a real number of 1 or more), and the integer parts are taken out to be U a and V a . Hereinafter, this method of reducing the number of bits will be referred to as decrementing by a constant Q.

適当な定数Qを用いれば、値Ua およびVa は、それぞれ、真の画素値Ia およびJa よりも少ないビット数で表現できる。 With an appropriate constant Q, the values U a and V a can be expressed with fewer bits than the true pixel values I a and J a , respectively.

このとき、後述するように、
|Ia −Ja |−Q≦Q×|Ua −Va |≦|Ia −Ja |+Q (2)式
が成り立つ。
At this time, as will be described later,
| I a -J a | -Q ≦ Q × | U a -V a | ≦ | a -J a | + Q (2) expression holds.

この(2)式をΣa で積算すると、
Σa |Ia −Ja |−Q×N≦Q×Σa |Ua −Va
≦Σa |Ia −Ja |+Q×N (3)式
を得る。ここで、Nはブロック内の画素数である。
When integrating the equation (2) in sigma a,
Σ a | I a -J a | -Q × N ≦ Q × Σ a | U a -V a |
≦ Σ a | I a −J a | + Q × N (3) is obtained. Here, N is the number of pixels in the block.

この(3)式は、定数Qで減ビットして得るSAD値“Σa |Ua −Va |”のQ倍に対して、真のSAD値“Σa |Ia −Ja |”を使って、その上限値と下限値を与えるものである。 This expression (3) indicates that the SAD value “Σ a | U a −V a |” obtained by subtracting a bit by a constant Q is Q times the true SAD value “Σ a | I a −J a |”. Is used to give the upper and lower limits.

この(3)式から、減ビット後のSAD値を用いてブロックB0 を求める方法が導ける。 From this equation (3), a method of obtaining the block B 0 using the SAD value after the reduced bit can be derived.

いま、ブロックB0 に対して、定数Qで減ビットして得られるSAD値をXとすると、後述するように、Xは下記の(4)式で示す範囲にある。ここで、Xmin は定数Qで減ビットして得たSAD値の中での最小の値、Nはブロック内の画素数である。 Assuming that the SAD value obtained by subtracting bits from the block B 0 by a constant Q is X, as described later, X is in the range represented by the following equation (4). Here, X min is the minimum value among the SAD values obtained by subtracting bits with a constant Q, and N is the number of pixels in the block.

min ≦X≦Xmin +2×N (4)式
この関係を利用してブロックB0 を求めるには、まず、画像フレーム2からブロックBj を参照し、ブロックBi とブロックBj の各画素値を定数Qで減ビットしてSAD値“Xj ”を得て、Xj をメモリに記録した後、探索中に減ビットにより得たSAD値についての暫定最小値Xcandと比較し、
j ≦Xcand (5)式
ならばXcandをXj に置き換える。
X min ≦ X ≦ X min + 2 × N (4) In order to obtain the block B 0 using this relationship, first, the block B j is referred to from the image frame 2, and each of the block B i and the block B j is determined. The pixel value is decremented by a constant Q to obtain the SAD value “X j ”, and X j is recorded in the memory, and then compared with the provisional minimum value X cand for the SAD value obtained by the decrement bit during the search
If X j ≦ X cand (5), X cand is replaced with X j .

この処理を、ブロックBj の全てについて終えたときのXcandが、減ビットで得られる最小SAD値“Xmin ”である。 This process, X cand when finished for all the blocks B j is the minimum SAD value obtained at reduced bit "X min".

次に、全てのブロックBj に対して、メモリに記録された減ビット後のSAD値“Xj ”とこのXmin とを比較し、(4)式を満たすブロックBj についてのみ、真の画素値Ia 、Ja を用いて真のSAD値を計算する。 Next, the SAD value “X j ” after bit reduction recorded in the memory is compared with this X min for all the blocks B j , and only the block B j satisfying the expression (4) is true. A true SAD value is calculated using the pixel values I a and J a .

そして、(1)式に基づいて、真の最小SAD値“SADmin ”を持つブロックB0 を求める。 Then, a block B 0 having a true minimum SAD value “SAD min ” is obtained based on the equation (1).

このようにして、本発明の第1の構成では、ビット数を減じた画素値で得られるSAD値と、真の画素値により得られるSAD値との間にある関係を導出し、これを利用することで動きベクトル検出処理を効率化するという方法を採るのである。   In this way, in the first configuration of the present invention, a relationship between the SAD value obtained by the pixel value obtained by subtracting the number of bits and the SAD value obtained by the true pixel value is derived and used. By doing so, a method of improving the efficiency of motion vector detection processing is adopted.

〔3−2〕第2の構成の理論的根拠
本発明の第2の構成は、従来技術の問題を解決するために、SEA探索法を利用して動きベクトルを検出する。
[3-2] Theoretical basis of the second configuration The second configuration of the present invention detects a motion vector using the SEA search method in order to solve the problems of the prior art.

SEA探索法は、画像フレーム内の隣接画素同士をまとめて粗い画素(粗い画像)を作り、その画素値でSADを求め、それを下限閾値として、真の画素値によるSAD計算を省略する方法であり、本発明の第2の構成は、この粗い画像を減ビットして、SEA探索法を適用するということを基本的構成とする。   The SEA search method is a method in which adjacent pixels in an image frame are grouped together to form a coarse pixel (coarse image), SAD is obtained from the pixel value, and this is used as a lower limit threshold, and SAD calculation using a true pixel value is omitted. In the second configuration of the present invention, the basic configuration is to apply the SEA search method by reducing the bit of the coarse image.

粗画像フレーム1からあるブロックBC(1) i 、粗画像フレーム2からあるブロックBC(2) j を参照し、そのSAD値をCj とし、各々のブロックに含まれる画素値を定数Qで減ビットし、その画素値で計算したSAD値をXCj とすると、SEA探索法では、真のSAD値の暫定最小値“SADcand”と比較して、
SADcand<Cj (6)式
が成り立つブロックについては、真の画素値でのSAD計算を省略できる。
The block BC (1) i from the coarse image frame 1 and the block BC ( 2) j from the coarse image frame 2 are referred to, and the SAD value is C j, and the pixel value included in each block is reduced by a constant Q. If the bit and the SAD value calculated with the pixel value is XC j , the SEA search method compares it with the provisional minimum value “SAD cand ” of the true SAD value,
For blocks where SAD cand <C j (6) holds, SAD calculation with true pixel values can be omitted.

いま、減ビットして得たSAD値“XCj ”についても同様の条件式を考える。上述の(3)式が減ビットで得たSAD値と元のSAD値との間で上限値を定める式であることから、
j ≦Q×XCj +Q×NC (7)式
が導かれる。ここで、NCは粗画像でのブロック内画素数である。
A similar conditional expression is considered for the SAD value “XC j ” obtained by subtracting bits. Since the above equation (3) is an equation for determining an upper limit value between the SAD value obtained by subtracting bits and the original SAD value,
C j ≦ Q × XC j + Q × NC (7) is derived. Here, NC is the number of pixels in the block in the coarse image.

すると、(6)式と(7)式とから、
SADcand<Q×XCj +Q×NC (8)式
が減ビット後の条件式であることがわかる。
Then, from Equation (6) and Equation (7),
It can be seen that SAD cand <Q × XC j + Q × NC (8) is a conditional expression after the bit reduction.

本発明の第2の構成は、SEA探索法と減ビット画像への変換とを組み合わせることで動きベクトルを検出するときにあって、この(7)式に従って、真の画素値でのSAD計算を省略できるブロックであるのか否かを判定しつつ、SEA探索法を利用して動きベクトルを検出するのである。   The second configuration of the present invention is to detect a motion vector by combining the SEA search method and the conversion to a reduced bit image. According to this equation (7), SAD calculation with a true pixel value is performed. The motion vector is detected using the SEA search method while determining whether the block can be omitted.

〔3−3〕(2)式の導出
次に、(2)式を導出する。
[3-3] Derivation of Expression (2) Next, Expression (2) is derived.

非負の整数Ia とJa を定数Qで割り、その整数部をそれぞれUa とVa とし、
a =Ia /Q−di (A1−1)
a =Ja /Q−dj (A1−2)
と表す。ここで、0≦di ≦1、0≦dj ≦1である。
Divide the non-negative integers I a and J a by the constant Q, and let the integer parts be U a and V a , respectively.
U a = I a / Qd i (A1-1)
V a = J a / Q−d j (A1-2)
It expresses. Here, 0 ≦ d i ≦ 1 and 0 ≦ d j ≦ 1.

このとき、minkowsky 不等式の定理から、
|Ia −Ja |=Q×|(Ua +di )−(Va +dj )|
≦Q×|Ua −Va |+Q×|di −dj | (A1−3)
となる。
Then, from the minkowsky inequality theorem,
| I a −J a | = Q × | (U a + d i ) − (V a + d j ) |
≦ Q × | U a −V a | + Q × | d i −d j | (A1-3)
It becomes.

また、0≦di ≦1、0≦dj ≦1なので、
|di −dj |≦1 (A1−4)
が成り立つ。
Since 0 ≦ d i ≦ 1 and 0 ≦ d j ≦ 1,
| D i −d j | ≦ 1 (A1-4)
Holds.

よって、(A1−3)と(A1−4)とから、
|Ia −Ja |≦Q×|Ua −Va |+Q×|di −dj
≦Q×|Ua −Va |+Q (A1−5)
が成り立つ。
Therefore, from (A1-3) and (A1-4),
| I a −J a | ≦ Q × | U a −V a | + Q × | d i −d j |
≦ Q × | U a −V a | + Q (A1-5)
Holds.

また、三角不等式の定理と(A1−4)とから、
Q×|Ua −Va |=|(Ia −Ja )+Q×(dj −di )|
≦|Ia −Ja |+Q×|dj −di
≦|Ia −Ja |+Q (A1−6)
も成り立つ。
From the triangle inequality theorem and (A1-4),
Q × | U a −V a | = | (I a −J a ) + Q × (d j −d i ) |
≦ | I a −J a | + Q × | d j −d i |
≦ | I a −J a | + Q (A1-6)
Also holds.

したがって、(A1−5)と(A1−6)とから、
|Ia −Ja |−Q≦Q×|Ua −Va |≦|Ia −Ja |+Q (A1−7)
という(2)式が導かれる(証明終了)。
Therefore, from (A1-5) and (A1-6),
| I a −J a | −Q ≦ Q × | U a −V a | ≦ | I a −J a | + Q (A1-7)
The following equation (2) is derived (end of proof).

〔3−4〕(4)式の導出
次に、(3)式が成り立つときに、真の最小SADを持つブロックB0 について、減ビットして得たSAD値“X”が(4)式を満たすことについて証明する。
[3-4] Derivation of Expression (4) Next, when Expression (3) holds, the SAD value “X” obtained by subtracting the bit B 0 having the true minimum SAD is expressed by Expression (4). Prove about meeting.

まず、(3)式を再掲する。   First, formula (3) is re-displayed.

Σa |Ia −Ja |−Q×N≦Q×Σa |Ua −Va
≦Σa |Ia −Ja |+Q×N (3)式
この(3)式は、あるブロックに対して、減ビットして得られるSAD値“Σa |Ua −Va |”の上限値と下限値を、真のSAD値“Σa |Ia −Ja |”を使って与えるものである。すなわち、上限値は“Σa |Ia −Ja |+Q×N”であり、下限値は“Σa |Ia −Ja |−Q×N”である。
Σ a | I a -J a | -Q × N ≦ Q × Σ a | U a -V a |
≦ Σ a | I a −J a | + Q × N (3) Expression (3) is an expression for the SAD value “Σ a | U a −V a |” obtained by subtracting bits from a certain block. The upper limit value and the lower limit value are given by using a true SAD value “Σ a | I a −J a |”. That is, the upper limit value is "Σ a | + Q × N | I a -J a", the lower limit value is "Σ a | -Q × N | I a -J a".

(3)式を変形すると、
Q×Σa |Ua −Va |−Q×N≦Σa |Ia −Ja
≦Q×Σa |Ua −Va |+Q×N (A2−l)
となる。
When the equation (3) is transformed,
Q × Σ a | U a −V a | −Q × N ≦ Σ a | I a −J a |
≦ Q × Σ a | U a −V a | + Q × N (A2−1)
It becomes.

(A2−1)式は、(3)式とは逆に、真のSAD値“Σa |Ia −Ja |”の値域を定めるものである。上限が“Q×Σa |Ua −Va |+Q×N”であり、下限値が“Q×Σa |Ua −Va |−Q×N”である。 In contrast to equation (3), equation (A2-1) defines the true SAD value “Σ a | I a −J a |”. The upper limit is “Q × Σ a | U a −V a | + Q × N”, and the lower limit is “Q × Σ a | U a −V a | −Q × N”.

いま、最小の真のSAD値“SADmin ”を持つブロックB0 に対して、減ビットして得るSAD値をXとする。また、減ビットで得られたSAD値の中で最小の値をXmin とする。 Now, let X be the SAD value obtained by subtracting bits from the block B 0 having the smallest true SAD value “SAD min ”. Further, the minimum value among the SAD values obtained by subtracting bits is set to X min .

まず、SADmin が“Q×Xmin +Q×N”より大きいとしてみる。このとき、Xmin を与えたブロックの真のSAD値は、最大でも“Q×Xmin +Q×N”であることが(A2−2)式で明らかなので、SADmin より小さい値を持つ。これはSADmin が最小であるという仮定に反する。ゆえに、SADmin は“Q×Xmin +Q×N”以下でなければならない。 First, it is assumed that SAD min is larger than “Q × X min + Q × N”. At this time, the true SAD value of the block to which X min is given is “Q × X min + Q × N” at the maximum, which is apparent from the equation (A2-2), and therefore has a value smaller than SAD min . This is contrary to the assumption that SAD min is minimal. Therefore, SAD min must be equal to or less than “Q × X min + Q × N”.

さらに、ブロックB0 について得たXは、その上限値が“SADmin +Q×N”であることが(3)式でわかるので、
Q×X≦SADmin +Q×N≦Q×Xmin +2×Q×N (A2−2)
が成り立つ。
Furthermore, since X obtained for the block B 0 can be seen from the equation (3), the upper limit value is “SAD min + Q × N”.
Q × X ≦ SAD min + Q × N ≦ Q × X min + 2 × Q × N (A2-2)
Holds.

また、いかなるブロックに対しても、減ビットで得られるSAD値がXmin より小さくなることはないので、明らかに、
min ≦X (A2−3)
である。
Also, for any block, since it is not possible SAD value obtained in reduced bits is less than X min, obviously,
X min ≦ X (A2-3)
It is.

ゆえに、(A2−2)と(A2−3)とから、
min ≦X≦Xmin +2×N (A2−4)
という(4)式が満たされることがわかる(証明終了)。
Therefore, from (A2-2) and (A2-3),
X min ≦ X ≦ X min + 2 × N (A2-4)
It can be seen that the following equation (4) is satisfied (end of proof).

以上説明したように、本発明は、2つの画像フレーム間の動きベクトルを検出する方法として、画素値を表現するビット数を減じた計算を主体とすることから、一定のビット幅の演算リソースでの処理効率を向上させることができるようになる。   As described above, the present invention mainly uses a calculation in which the number of bits representing a pixel value is reduced as a method for detecting a motion vector between two image frames. The processing efficiency can be improved.

以下、実施の形態に従って本発明を詳細に説明する。   Hereinafter, the present invention will be described in detail according to embodiments.

ここで、以下に説明する実施の形態では、各画像フレームにおいて全てのブロックは順序付けが成されており、1個の参照変数により順序参照が可能であるものとする。また、ブロック内の画素についても順序付けがなされており、1個の参照変数で順序参照が可能であるとする。   Here, in the embodiment described below, it is assumed that all blocks are ordered in each image frame and can be referred to by one reference variable. Further, it is assumed that the pixels in the block are also ordered, and can be referred to by one reference variable.

最初に、上述した第1の構成に従う本発明の動きベクトル検出装置1の実施の形態について説明する。   First, an embodiment of the motion vector detection device 1 of the present invention according to the first configuration described above will be described.

図1に、第1の構成に従う本発明の動きベクトル検出装置1の装置構成を図示する。   FIG. 1 shows a device configuration of a motion vector detection device 1 of the present invention according to the first configuration.

この図に示すように、本発明の動きベクトル検出装置1は、第1の構成を実現する場合には、画像フレーム1と画像フレーム2という動きベクトルの検出対象となる2つの画像フレームを格納する画像フレーム用メモリ10と、画像フレーム1と画像フレーム2との間の動きベクトルを検出する動きベクトル検出機構11aと、動きベクトル検出機構11aが生成する減ビット画像を格納する減ビット画像用メモリ12と、作業用に用意される作業用メモリ13と、検出結果の動きベクトルを格納する動きベクトル用メモリ14とを備える。   As shown in this figure, when realizing the first configuration, the motion vector detection device 1 of the present invention stores two image frames, which are motion vector detection targets, an image frame 1 and an image frame 2. An image frame memory 10, a motion vector detection mechanism 11a that detects a motion vector between the image frame 1 and the image frame 2, and a reduced bit image memory 12 that stores a reduced bit image generated by the motion vector detection mechanism 11a. And a work memory 13 prepared for work, and a motion vector memory 14 for storing the motion vector of the detection result.

ここで、後述するメモリM(1) ,M(2) は減ビット画像用メモリ12に該当し、後述するメモリMXは作業用メモリ13に該当し、後述するメモリMVは動きベクトル用メモリ14に該当する。 Here, memories M (1) and M (2) described later correspond to the reduced bit image memory 12, a memory MX described later corresponds to the work memory 13, and a memory MV described later corresponds to the motion vector memory 14. Applicable.

この動きベクトル検出機構11aは、減ビット画像への変換を実行する減ビット画像生成部と、減ビット画素値でのSAD値を算出して、その中の最小のものを抽出する最小減ビットSAD値抽出部と、その抽出結果に基づいて、真の画素値でのSAD値を算出する必要のあるブロックであるのか否かを判定する真SAD値算出要否判定部と、その判定結果に基づいて、真の画素値でのSAD値を算出して、その中の最小のものを特定する最小真SAD値特定部と、その特定結果に基づいて、動きベクトルを検出する動きベクトル検出部とを備える。   The motion vector detection mechanism 11a includes a reduced bit image generation unit that performs conversion into a reduced bit image, and a minimum reduced bit SAD that calculates an SAD value at the reduced bit pixel value and extracts a minimum one of them. Based on the value extraction unit, the true SAD value calculation necessity determination unit that determines whether the SAD value at the true pixel value needs to be calculated based on the extraction result, and the determination result A minimum true SAD value specifying unit for calculating a SAD value with a true pixel value and specifying a minimum one of them, and a motion vector detecting unit for detecting a motion vector based on the specifying result Prepare.

図2及び図3に、動きベクトル検出機構11aの実行するフローチャートを図示する。次に、このフローチャートに従って、このように構成される本発明の動きベクトル検出装置1の実行する動きベクトル検出処理について詳細に説明する。   2 and 3 show flowcharts executed by the motion vector detection mechanism 11a. Next, according to this flowchart, the motion vector detection process executed by the motion vector detection device 1 of the present invention configured as described above will be described in detail.

動きベクトル検出機構11aは、先ず最初に、ステップ10で、変数iを初期化し、変数Nにブロック内画素数を入れる。   First, the motion vector detection mechanism 11a initializes the variable i in step 10 and puts the number of pixels in the block into the variable N.

続いて、ステップ11で、変数jを初期化する。また、画像フレーム1の第i番目のブロックB(1) i 内の画素値を順次参照し、定数Qで減ビットした値を求めてメモリM(1) に順次記憶しておく。さらに、変数Xmin に十分大きな値を入れておく。 Subsequently, in step 11, the variable j is initialized. Further, the pixel values in the i-th block B (1) i of the image frame 1 are sequentially referred to, and the value obtained by decrementing by the constant Q is obtained and stored in the memory M (1) sequentially. In addition, it puts a sufficiently large value to a variable X min.

続いて、ステップ12で、画像フレーム2の第j番目のブロックB(2) j 内の画素値を順次参照し、定数Qで減ビットした値を求めてメモリM(2) に順次記憶しておく。 Subsequently, in step 12, the pixel values in the j-th block B (2) j of the image frame 2 are sequentially referred to, and the value reduced by the constant Q is obtained and stored in the memory M (2) sequentially. deep.

続いて、ステップ13で、メモリM(1) およびメモリM(2) から減ビット後の画素値を順次読み出し、減ビット後のSAD値“Xj ”を算出して、メモリMXの第j番目に記憶しておく。 Subsequently, in step 13, the pixel values after the reduced bit are sequentially read from the memory M (1) and the memory M (2) , the SAD value “X j ” after the reduced bit is calculated, and the jth of the memory MX is calculated. Remember it.

続いて、ステップ14で、暫定最小値“Xmin ”とXj とを比較して、“Xmin >Xj ”であることを判断するときには、ステップ15に進んで、Xmin をXj で置き換え、一方、“Xmin >Xj ”でないことを判断するときには、この置き換え処理を省略する。 Subsequently, in step 14, when the provisional minimum value “X min ” is compared with X j and it is determined that “X min > X j ”, the process proceeds to step 15 where X min is set to X j . On the other hand, when it is determined that “X min > X j ” is not satisfied, this replacement process is omitted.

続いて、ステップ16で、変数jを更新し、その更新したjの値が画像フレーム2のブロック数より小さいことを判断するときには、画像フレーム2に未処理のブロックが残されているので、ステップ12に戻る。   Subsequently, in step 16, when the variable j is updated and it is determined that the updated value of j is smaller than the number of blocks of the image frame 2, since unprocessed blocks remain in the image frame 2, Return to 12.

このようにして、ステップ12〜ステップ16の処理を繰り返していくことで、減ビット後のSAD値“Xj ”の中の最小値“Xmin ”が求められることになる。 In this way, by repeating the processing of step 12 to step 16, the minimum value “X min ” in the SAD value “X j ” after the reduced bit is obtained.

これから、ステップ16で、画像フレーム2の全てのブロックを処理したことで最小値“Xmin ”が求められたことを判断すると、ステップ17に進んで、変数jを初期化する。また、変数SADmin に十分大きな値を入れておく。さらに、変数idxを初期化しておく。 When it is determined in step 16 that the minimum value “X min ” has been obtained by processing all the blocks of the image frame 2, the process proceeds to step 17 to initialize the variable j. Also, a sufficiently large value is set in the variable SAD min . Further, the variable idx is initialized.

続いて、ステップ18で、メモリMXの第j番目にある減ビット後のSAD値“Xj ”を参照する。 Subsequently, in step 18, the SAD value “X j ” after the decrementing bit in the memory MX is referred to.

続いて、ステップ19で、参照したXj と最小値“Xmin ”とを比較して、
min ≦Xj ≦Xmin +2×N
であるのか否かを判断して、この式が成立しないことを判断するときには、これから説明するステップ20〜ステップ22の処理を省略して、ステップ23に進む。
Subsequently, in step 19, the referred X j is compared with the minimum value “X min ”.
X min ≦ X j ≦ X min + 2 × N
When it is determined whether or not this equation is satisfied, the processing of step 20 to step 22 to be described below is omitted and the processing proceeds to step 23.

一方、ステップ19で、“Xmin ≦Xj ≦Xmin +2×N”が成立することを判断するときには、真の画素値でのSAD値を算出する必要のあるブロックであることを判断して、ステップ20に進んで、画像フレーム1の第i番目のブロックB(1) i 内の画素値と、画像フレーム2の第j番目のブロックB(2) j 内の画素値とを順次参照して、真のSAD値“SADj ”を算出する。 On the other hand, when it is determined in step 19 that “X min ≦ X j ≦ X min + 2 × N” is satisfied, it is determined that the block needs to calculate the SAD value at the true pixel value. Then, the process proceeds to step 20, and sequentially refers to the pixel values in the i-th block B (1) i of the image frame 1 and the pixel values in the j-th block B (2) j of the image frame 2. Thus, the true SAD value “SAD j ” is calculated.

続いて、ステップ21で、暫定最小値“SADmin ”とSADj とを比較して、“SADmin >SADj ”であることを判断するときには、ステップ22に進んで、SADmin をSADj で置き換えるとともに、変数idxにjを入れ、一方、“SADmin >SADj ”でないことを判断するときには、この置き換え処理を省略する。 Subsequently, in step 21, when the provisional minimum value “SAD min ” is compared with SAD j and it is determined that “SAD min > SAD j ”, the process proceeds to step 22 where SAD min is set to SAD j . At the same time, j is inserted into the variable idx. On the other hand, when it is determined that “SAD min > SAD j ” is not satisfied, this replacement process is omitted.

続いて、ステップ23で、変数jを更新し、その更新したjの値が画像フレーム2のブロック数より小さいことを判断するときには、画像フレーム2に未処理のブロックが残されているのでステップ18に戻る。   Subsequently, in step 23, when the variable j is updated and it is determined that the updated value of j is smaller than the number of blocks of the image frame 2, since unprocessed blocks remain in the image frame 2, step 18 Return to.

このようにして、ステップ18〜ステップ23の処理を繰り返していくことで、真のSAD値“SADj ”の中の最小値“SADmin ”が求められることになる。 In this way, by repeating the processing from step 18 to step 23, the minimum value “SAD min ” in the true SAD value “SAD j ” is obtained.

これから、ステップ23で、画像フレーム2の全てのブロックを処理したことで真のSAD値の最小値“SADmin ”が求められたことを判断すると、ステップ24に進んで、画像フレーム1におけるブロックB(1) i の座標と、画像フレーム2における第idx番目のブロックB(2) idx の座標との変分を求め、メモリMVの第i番地に格納する。 If it is determined in step 23 that the minimum value “SAD min ” of the true SAD value has been obtained by processing all the blocks of the image frame 2, the process proceeds to step 24, and the block B in the image frame 1 is determined. (1) A variation between the coordinates of i and the idx-th block B (2) idx in the image frame 2 is obtained and stored in the i-th address of the memory MV.

このステップ24の段階で、ブロックB(1) i に対する動きベクトルが求まることになる。 In step 24, a motion vector for block B (1) i is obtained.

続いて、ステップ25で、変数iを更新し、その更新したiの値が画像フレーム1のブロック数より小さいことを判断するときには、画像フレーム1に未処理のブロックが残されているので、ステップ11に戻る。   Subsequently, in step 25, when the variable i is updated and it is determined that the updated value of i is smaller than the number of blocks of the image frame 1, since unprocessed blocks remain in the image frame 1, Return to 11.

このようにして、本発明の動きベクトル検出装置1は、図2及び図3のフローチャートに従って、画素値を表現するビット数を減じた計算を主体として2つの画像フレーム間の動きベクトルを検出するように処理するので、一定のビット幅の演算リソースでの処理効率を向上させることができるようになる。   In this way, the motion vector detection apparatus 1 according to the present invention detects a motion vector between two image frames based on a calculation in which the number of bits representing a pixel value is reduced according to the flowcharts of FIGS. Therefore, it is possible to improve the processing efficiency with an operation resource having a constant bit width.

次に、上述した第2の構成に従う本発明の動きベクトル検出装置1の実施の形態について説明する。   Next, an embodiment of the motion vector detection device 1 of the present invention according to the second configuration described above will be described.

本発明の動きベクトル検出装置1は、上述した第2の構成に従うには、SEA探索法を利用して動きベクトルを検出する処理を行う。   In order to follow the second configuration described above, the motion vector detection device 1 of the present invention performs a process of detecting a motion vector using the SEA search method.

SEA探索法では、画像フレーム内の隣接画素同士をまとめて粗い画素(粗い画像)を作り、その画素値でSADを求め、それを下限閾値として、真の画素値によるSAD計算を省略するものである。画素を粗くすることでブロック内画素数が減るため、粗い画素値でのSAD計算にかかる演算量は真の画素値でのそれよりも少ない。それゆえ、SAD計算全体に要する演算量を削減できる効果が見込まれる。   In the SEA search method, adjacent pixels in an image frame are grouped together to form a coarse pixel (coarse image), SAD is obtained from the pixel value, and this is used as a lower limit threshold value, and SAD calculation using a true pixel value is omitted. is there. Since the number of pixels in the block is reduced by making the pixels coarse, the amount of calculation for the SAD calculation with coarse pixel values is smaller than that with the true pixel values. Therefore, it is expected that the amount of calculation required for the entire SAD calculation can be reduced.

例えば、画像フレーム1の2つの画素(画素値a1,a2)を、1画素(画素値a1 +a2 )にまとめて粗画像フレーム1を作成し、同様に、画像フレーム2についても2つの画素(画素値b1,b2)を、1画素(画素値b1 +b2 )にまとめて粗画像フレーム2を作成したとする。このとき、粗画像フレームでのブロック内画素数NCは、元の画像フレームでのブロック内画素数Nの2分の1である。 For example, two pixels (pixel values a 1 and a 2 ) of the image frame 1 are combined into one pixel (pixel value a 1 + a 2 ) to create a coarse image frame 1. It is assumed that the rough image frame 2 is created by combining two pixels (pixel values b 1 and b 2 ) into one pixel (pixel value b 1 + b 2 ). At this time, the number of pixels NC in the block in the coarse image frame is a half of the number N of pixels in the block in the original image frame.

いま、粗画像フレーム1および粗画像フレーム2に対して、あるブロック間でSAD値を得たとすると、この値については、minkowsky 不等式
|(a1 +a2 )−(b1 +b2 )|≦|a1 −b1 |+|a2 −b2
が成り立つことから、元の画像フレーム1および画像フレーム2の対応するブロック間での真のSAD値に対して、その下限を与えていることになる。
Now, assuming that the SAD value is obtained between certain blocks for the coarse image frame 1 and the coarse image frame 2, the minkowsky inequality | (a 1 + a 2 ) − (b 1 + b 2 ) | ≦ | a 1 −b 1 | + | a 2 −b 2 |
Therefore, the lower limit is given to the true SAD value between the corresponding blocks of the original image frame 1 and the image frame 2.

ゆえに、探索中の真のSAD値の暫定最小値をSADcandとし、粗画像フレーム1および粗画像フレーム2のあるブロック間で計算したSAD値をCとすると、
SADcand<C
であれば、このブロック間に関して真のSAD値を計算する必要はない。
Therefore, if the provisional minimum value of the true SAD value being searched is SAD cand and the SAD value calculated between certain blocks of coarse image frame 1 and coarse image frame 2 is C,
SAD cand <C
If so, it is not necessary to calculate a true SAD value for this block.

これがSEA探索法の基本原理である。このことから分かるように、SEA探索法では、粗画像フレームの画素値を用いたSAD計算が主となる。これらの画素値は、元の画像フレームの画素値を加算することで得られるので、その表現に用いるビット数は元の画素値のそれよりも多い。それゆえ、SEA探索法でのSAD計算には、真の画素値でのSAD計算よりも、ビット幅の大きい演算リソースが必要となる。   This is the basic principle of the SEA search method. As can be seen from this, the SEA search method mainly performs SAD calculation using the pixel values of the coarse image frame. Since these pixel values are obtained by adding the pixel values of the original image frame, the number of bits used for the expression is larger than that of the original pixel values. Therefore, the SAD calculation in the SEA search method requires a calculation resource having a larger bit width than the SAD calculation with a true pixel value.

そこで、第2の構成に従う本発明の動きベクトル検出装置1では、粗画像フレームを減ビットすることで、SEA探索法で要求されるSAD計算の効率化を図るものである。   Therefore, in the motion vector detection device 1 according to the second configuration according to the second configuration, the coarse image frame is subtracted to improve the efficiency of the SAD calculation required in the SEA search method.

粗画像フレーム1からあるブロックBC(1) i 、粗画像フレーム2からあるブロックBC(2) j を参照し、そのSAD値をCj とし、各々のブロックに含まれる画素値を定数Qで減ビットし、その画素値で計算したSAD値をXCj とすると、SEA探索法では、真のSAD値の暫定最小値“SADcand”と比較して、
SADcand<Cj (6)式
が成り立つブロックについては、真の画素値でのSAD計算を省略できる。
The block BC (1) i from the coarse image frame 1 and the block BC ( 2) j from the coarse image frame 2 are referred to, and the SAD value is C j, and the pixel value included in each block is reduced by a constant Q. If the bit and the SAD value calculated with the pixel value is XC j , the SEA search method compares it with the provisional minimum value “SAD cand ” of the true SAD value,
For blocks where SAD cand <C j (6) holds, SAD calculation with true pixel values can be omitted.

いま、減ビットして得たSAD値“XCj ”についても同様の条件式を考える。上述の(3)式が減ビットで得たSAD値と元のSAD値との間で上限値を定める式であることから、
j ≦Q×XCj +Q×NC (7)式
が導かれる。ここで、NCは粗画像でのブロック内画素数である。
A similar conditional expression is considered for the SAD value “XC j ” obtained by subtracting bits. Since the above equation (3) is an equation for determining an upper limit value between the SAD value obtained by subtracting bits and the original SAD value,
C j ≦ Q × XC j + Q × NC (7) is derived. Here, NC is the number of pixels in the block in the coarse image.

すると、(6)式と(7)式とから、
SADcand<Q×XCj +Q×NC (8)式
が減ビット後の条件式であることがわかる。
Then, from Equation (6) and Equation (7),
It can be seen that SAD cand <Q × XC j + Q × NC (8) is a conditional expression after the bit reduction.

第2の構成に従う本発明の動きベクトル検出装置1は、この(7)式に従って、真の画素値でのSAD計算を省略できるブロックであるのか否かを判定しつつ、SEA探索法を利用して動きベクトルを検出するのである。   The motion vector detection apparatus 1 of the present invention according to the second configuration uses the SEA search method while determining whether or not the block can omit the SAD calculation with the true pixel value according to the equation (7). Thus, the motion vector is detected.

図4に、第2の構成に従う本発明の動きベクトル検出装置1の装置構成を図示する。   FIG. 4 illustrates a device configuration of the motion vector detection device 1 of the present invention according to the second configuration.

この図に示すように、本発明の動きベクトル検出装置1は、第2の構成を実現する場合には、画像フレーム1と画像フレーム2という動きベクトルの検出対象となる2つの画像フレームを格納する画像フレーム用メモリ10と、画像フレーム1と画像フレーム2との間の動きベクトルを検出する動きベクトル検出機構11bと、動きベクトル検出機構11bが生成する粗画像を格納する粗画像フレーム用メモリ15と、動きベクトル検出機構11bが生成する減ビット画像を格納する減ビット画像用メモリ12と、作業用に用意される作業用メモリ13と、検出結果の動きベクトルを格納する動きベクトル用メモリ14とを備える。   As shown in this figure, when realizing the second configuration, the motion vector detection device 1 of the present invention stores two image frames, which are motion vector detection targets, an image frame 1 and an image frame 2. An image frame memory 10, a motion vector detection mechanism 11b for detecting a motion vector between the image frame 1 and the image frame 2, a coarse image frame memory 15 for storing a coarse image generated by the motion vector detection mechanism 11b, and A reduced bit image memory 12 for storing a reduced bit image generated by the motion vector detection mechanism 11b, a working memory 13 prepared for work, and a motion vector memory 14 for storing a motion vector of a detection result. Prepare.

ここで、後述するメモリMC(1) ,MC(2) は減ビット画像用メモリ12に該当し、後述するメモリMVは動きベクトル用メモリ14に該当する。 Here, memories MC (1) and MC (2) to be described later correspond to the reduced bit image memory 12, and a memory MV to be described later corresponds to the motion vector memory 14.

この動きベクトル検出機構11bは、粗画像への変換を実行する粗画像生成部と、減ビット画像への変換を実行する減ビット画像生成部と、減ビット画素値でのSAD値を算出する減ビットSAD値算出部と、その算出結果と真のSAD値の暫定最小値とに基づいて、真の画素値でのSAD値を算出する必要のあるブロックであるのか否かを判定する真SAD値算出要否判定部と、その判定結果に基づいて、真の画素値でのSAD値を算出して、それに応じて真のSAD値の暫定最小値を更新する真SAD暫定最小値更新部と、真のSAD値の暫定最小値が確定するときに、それに基づいて、動きベクトルを検出する動きベクトル検出部とを備える。   The motion vector detection mechanism 11b includes a coarse image generation unit that performs conversion to a coarse image, a reduced bit image generation unit that performs conversion to a reduced bit image, and a reduction that calculates an SAD value with a reduced bit pixel value. A true SAD value that determines whether or not the block needs to calculate the SAD value at the true pixel value based on the bit SAD value calculation unit, the calculation result, and the provisional minimum value of the true SAD value A calculation necessity determination unit, a true SAD provisional minimum value update unit that calculates a SAD value at a true pixel value based on the determination result, and updates a provisional minimum value of the true SAD value accordingly, And a motion vector detection unit that detects a motion vector based on the provisional minimum value of the true SAD value.

図5及び図6に、動きベクトル検出機構11bの実行するフローチャートを図示する。次に、このフローチャートに従って、このように構成される本発明の動きベクトル検出装置1の実行する動きベクトル検出処理について詳細に説明する。   5 and 6 show flowcharts executed by the motion vector detection mechanism 11b. Next, according to this flowchart, the motion vector detection process executed by the motion vector detection device 1 of the present invention configured as described above will be described in detail.

動きベクトル検出機構11bは、先ず最初に、ステップ30で、画像フレーム1および画像フレーム2をそれぞれ、粗画像フレーム1および粗画像フレーム2に変換し、粗画像フレーム用メモリ15に格納する。さらに、変数Nに元の画像フレームでのブロック内画素数を入れ、変数NCに粗画像フレームでのブロック内画素数を入れる。   First, in step 30, the motion vector detection mechanism 11b converts the image frame 1 and the image frame 2 into the coarse image frame 1 and the coarse image frame 2, respectively, and stores them in the coarse image frame memory 15. Further, the number of pixels in the block in the original image frame is entered in the variable N, and the number of pixels in the block in the coarse image frame is entered in the variable NC.

続いて、ステップ31で、変数iを初期化する。   Subsequently, in step 31, the variable i is initialized.

続いて、ステップ32で、変数jを初期化する。そして、粗画像フレーム1の第i番目のブロックBC(1) i 内の画素値を順次参照し、その値を定数Qで減ビットしてメモリMC(1) に順次記憶する。さらに、真のSAD値の暫定最小値を示す変数SADcandに十分大きな値を入れるとともに、変数idxを初期化する。 Subsequently, in step 32, the variable j is initialized. Then, the pixel values in the i-th block BC (1) i of the coarse image frame 1 are sequentially referred to, and the values are decremented by a constant Q and sequentially stored in the memory MC (1) . Further, a sufficiently large value is entered into the variable SAD cand indicating the provisional minimum value of the true SAD value, and the variable idx is initialized.

続いて、ステップ33で、粗画像フレーム2の第j番目のブロックBC(2) j 内の画素値を順次参照し、その値を定数Qで減ビットしてメモリMC(2) に順次記憶する。 Subsequently, in step 33, the pixel values in the j-th block BC (2) j of the coarse image frame 2 are sequentially referred to, and the values are decremented by a constant Q and sequentially stored in the memory MC (2). .

続いて、ステップ34で、メモリMC(1) およびメモリMC(2) から減ビット後の画素値を順次読み出し、減ビット後のSAD値“XCj ”を算出する。 Subsequently, in step 34, the pixel values after the reduced bit are sequentially read from the memory MC (1) and the memory MC (2), and the SAD value “XC j ” after the reduced bit is calculated.

続いて、ステップ35で、算出したXCj とSADcandとQとNCとに基づいて、
SADcand<Q×XCj +Q×NC
という式が成立するのか否かを判断して、この式が成立することを判断するときには、これから説明するステップ36〜ステップ38の処理を省略して、ステップ39に進む。
Subsequently, in step 35, based on the calculated XC j , SAD cand , Q and NC,
SAD cand <Q × XC j + Q × NC
When it is determined whether or not the above equation is established, and it is determined that this equation is established, the processing of step 36 to step 38 described below is omitted, and the process proceeds to step 39.

一方、ステップ35で、“SADcand<Q×XCj +Q×NC”が成立しないことを判断するときには、真の画素値でのSAD値を算出する必要のあるブロックであることを判断して、ステップ36に進んで、画像フレーム1の第i番目のブロックB(1) i 内の画素値と、画像フレーム2の第j番目のブロックB(2) j 内の画素値とを順次参照して、真のSAD値“SADj ”を算出する。 On the other hand, when it is determined in step 35 that “SAD cand <Q × XC j + Q × NC” does not hold, it is determined that the block needs to calculate the SAD value at the true pixel value, Proceeding to step 36, the pixel values in the i-th block B (1) i of the image frame 1 and the pixel values in the j-th block B (2) j of the image frame 2 are sequentially referred to. The true SAD value “SAD j ” is calculated.

続いて、ステップ37で、暫定最小値“SADcand”とSADj とを比較して、“SADcand>SADj ”であることを判断するときには、ステップ38に進んで、SADcandをSADj で置き換えるとともに、変数idxにjを入れ、一方、“SADcand>SADj ”でないことを判断するときには、この置き換え処理を省略する。 Subsequently, in step 37, when the provisional minimum value “SAD cand ” is compared with SAD j and it is determined that “SAD cand > SAD j ”, the routine proceeds to step 38, where SAD cand is set to SAD j . At the same time, j is entered in the variable idx, and when it is determined that “SAD cand > SAD j ” is not satisfied, this replacement process is omitted.

続いて、ステップ39で、変数jを更新し、その更新したjの値が画像フレーム2のブロック数より小さいことを判断するときには、画像フレーム2に未処理のブロックが残されているので、ステップ33に戻る。   Subsequently, in step 39, when the variable j is updated, and it is determined that the updated value of j is smaller than the number of blocks of the image frame 2, an unprocessed block remains in the image frame 2. Return to 33.

このようにして、ステップ33〜ステップ39の処理を繰り返していくことで、真のSAD値の最小値“SADmin ”が求められることになる。 In this manner, the minimum value “SAD min ” of the true SAD value is obtained by repeating the processing of step 33 to step 39.

これから、ステップ39で、画像フレーム2の全てのブロックを処理したことで真のSAD値の最小値“SADmin ”が求められたことを判断すると、ステップ40に進んで、画像フレーム1におけるブロックB(1) i の座標と、画像フレーム2における第idx番目のブロックB(2) idx の座標との変分を求め、メモリMVの第i番地に格納する。 If it is determined in step 39 that the minimum value “SAD min ” of the true SAD value has been obtained by processing all the blocks of the image frame 2, the process proceeds to step 40 to block B in the image frame 1. (1) A variation between the coordinates of i and the idx-th block B (2) idx in the image frame 2 is obtained and stored in the i-th address of the memory MV.

このステップ40の段階で、ブロックB(1) i に対する動きベクトルが求まることになる。 In step 40, a motion vector for the block B (1) i is obtained.

続いて、ステップ41で、変数iを更新し、その更新したiの値が画像フレーム1のブロック数より小さいことを判断するときには、画像フレーム1に未処理のブロックが残されているので、ステップ32に戻る。   Subsequently, in step 41, when the variable i is updated and it is determined that the updated value of i is smaller than the number of blocks of the image frame 1, an unprocessed block remains in the image frame 1, Return to 32.

このようにして、本発明の動きベクトル検出装置1は、図5及び図6のフローチャートに従って、SEA探索法を使って動きベクトルを検出するときに、画素値を表現するビット数を減じた計算を主体として2つの画像フレーム間の動きベクトル量を検出するように処理するので、一定のビット幅の演算リソースでの処理効率を向上させることができるようになる。   In this way, the motion vector detection device 1 according to the present invention performs a calculation by reducing the number of bits representing a pixel value when detecting a motion vector using the SEA search method according to the flowcharts of FIGS. 5 and 6. Since processing is performed so as to detect a motion vector amount between two image frames as a main subject, it is possible to improve processing efficiency with a calculation resource having a constant bit width.

本発明の動きベクトル検出装置1は、減ビットした画素値に対してSAD値を計算することを基本的な構成としている。このSAD値の計算はハードウェアで実現することも可能であるし、ソフトウェアで計算することも可能である。   The motion vector detection device 1 according to the present invention is basically configured to calculate an SAD value for a reduced bit value. The calculation of the SAD value can be realized by hardware or can be calculated by software.

図7に、ハードウェアを使って、減ビットした画素値に対してSAD値を計算する構成の一例を示す。   FIG. 7 shows an example of a configuration for calculating the SAD value for the reduced pixel value using hardware.

上述したように、ブロックB(1) i の各画素値を定数Qで減ビットした値はメモリMC(1) に格納され、ブロックB(2) j の各画素値を減ビットした値はメモリMC(2) に格納されている。 As described above, a value obtained by subtracting each pixel value of the block B (1) i by the constant Q is stored in the memory MC (1) , and a value obtained by subtracting each pixel value of the block B (2) j is stored in the memory. Stored in MC (2) .

図7に示すハードウェアにおいて、入力端子1にメモリMC(1) から画素値が与えられ、入力端子2にメモリMC(2) からの画素値が与えられて、減算器100は、入力端子1と入力端子2との差信号を端子3に出力する。 In the hardware shown in FIG. 7, the pixel value from the memory MC (1) is given to the input terminal 1, the pixel value from the memory MC (2) is given to the input terminal 2, and the subtracter 100 And a difference signal between the input terminal 2 and the input terminal 2 are output to the terminal 3.

これを受けて、符号判定器101は、端子3の信号の符号を端子4に出力し、一方、符号反転器102は、端子3の信号の符号を反転して端子5に出力する。   In response to this, the sign determination unit 101 outputs the sign of the signal at the terminal 3 to the terminal 4, while the sign inverter 102 inverts the sign of the signal at the terminal 3 and outputs it to the terminal 5.

これを受けて、選択器103は、端子4の符号が正を示すときには、端子3と出力端子6との間を結線し、端子4の符号が負を示すときには、端子5と出力端子6との間を結線する。   In response to this, the selector 103 connects the terminal 3 and the output terminal 6 when the sign of the terminal 4 is positive, and the terminal 103 and the output terminal 6 when the sign of the terminal 4 shows negative. Connect between the two.

この後段に、ハードウェア構成の累積加算器が設けられており、この構成に従って、減ビットした画素値についてのSAD値が計算されることになる。   In this subsequent stage, a cumulative adder having a hardware configuration is provided, and the SAD value for the reduced bit value is calculated according to this configuration.

図8に、ソフトウェアを使って、減ビットした画素値に対してSAD値を計算する構成の一例を示す。   FIG. 8 shows an example of a configuration for calculating the SAD value for the reduced pixel value using software.

画像フレーム1および画像フレーム2の画素値がともに8より多いビット数で表現されている場合を例にとる。このとき、定数Qを適当にとれば、ブロックB(1) i およびブロックB(2) j の各画素値の表現ビット数を8まで減らすことができる。そのような定数Qで減ビットして、メモリM(1) とメモリM(2) のそれぞれに8ビットデータが格納されているものとする。 The case where the pixel values of the image frame 1 and the image frame 2 are both expressed by the number of bits greater than 8 is taken as an example. At this time, if the constant Q is appropriately set, the number of expression bits of each pixel value of the block B (1) i and the block B (2) j can be reduced to 8. It is assumed that 8-bit data is stored in each of the memory M (1) and the memory M (2) after being decremented by such a constant Q.

いま、市販の計算機に搭載されている一般的なCPUの多くが持つ並列演算命令(アセンブラ命令)の利用を考える。例えば、あるCPUにはpsadbw命令という命令があり、8ビット画素値8個分同士のSAD計算を一度に計算できる。   Consider the use of parallel operation instructions (assembler instructions) possessed by many common CPUs installed in commercially available computers. For example, a certain CPU has an instruction called psadbw instruction, and can calculate SAD calculations for eight 8-bit pixel values at a time.

本発明を応用すれば、8以上の多ビット画素値に対しても、減ビットにより、上記のような汎用の並列演算命令が利用可能となる。   If the present invention is applied, the general-purpose parallel operation instruction as described above can be used for multi-bit pixel values of 8 or more by subtracting bits.

図8では、このpsadbw命令を用いる構成を示しており、
(1)メモリM(1) の先頭アドレスM1から数えてAバイト目からA+7バイト目まで に置かれた8ビット画素値8個分をレジスタmm0にロードし、
(2)メモリM(2) の先頭アドレスM2から数えてAバイト目からA+7バイト目まで に置かれた8ビット画素値8個分をレジスタmm1にロードし、
(3)並列演算命令psadbwにより、レジスタmm0とmm1とに置かれた画素8個同志 のSAD値をレジスタmm0に得る。
という手順に従って、減ビットした画素値についてのSAD値が計算されることになる。
FIG. 8 shows a configuration using this psadbw instruction.
(1) Load eight 8-bit pixel values from the Ath byte to the A + 7th byte counted from the start address M1 of the memory M (1) into the register mm0.
(2) Eight 8-bit pixel values placed from the Ath byte to the A + 7th byte counted from the start address M2 of the memory M (2) are loaded into the register mm1.
(3) By the parallel operation instruction psadbw, the SAD value of eight pixels placed in the registers mm0 and mm1 is obtained in the register mm0.
According to the above procedure, the SAD value for the reduced pixel value is calculated.

本発明は動画像の画像を符号化を行う画像符号化装置に適用することができ、本発明を適用することで、従来よりも高速な符号化処理が実現できるようになる。   The present invention can be applied to an image encoding apparatus that encodes an image of a moving image. By applying the present invention, an encoding process that is faster than the conventional one can be realized.

本発明の動きベクトル検出装置の装置構成図である。It is an apparatus block diagram of the motion vector detection apparatus of this invention. 動きベクトル検出機構の実行するフローチャートである。It is a flowchart which a motion vector detection mechanism performs. 動きベクトル検出機構の実行するフローチャートである。It is a flowchart which a motion vector detection mechanism performs. 本発明の動きベクトル検出装置の装置構成図である。It is an apparatus block diagram of the motion vector detection apparatus of this invention. 動きベクトル検出機構の実行するフローチャートである。It is a flowchart which a motion vector detection mechanism performs. 動きベクトル検出機構の実行するフローチャートである。It is a flowchart which a motion vector detection mechanism performs. SAD値の計算を実現するハードウェアの一例を示す図である。It is a figure which shows an example of the hardware which implement | achieves calculation of a SAD value. SAD値の計算を実現するソフトウェアの一例を示す図である。It is a figure which shows an example of the software which implement | achieves calculation of a SAD value.

符号の説明Explanation of symbols

10 画像フレーム用メモリ
11 動きベクトル検出機構
12 減ビット画像用メモリ
13 作業用メモリ
14 動きベクトル用メモリ
15 粗画像フレーム用メモリ
DESCRIPTION OF SYMBOLS 10 Memory for image frames 11 Motion vector detection mechanism 12 Memory for reduced bit images 13 Memory for work 14 Memory for motion vectors 15 Memory for coarse image frames

Claims (6)

画像ブロック間でSAD値を算出し、それに基づいて、画像ブロックの動きベクトルを検出する動きベクトル検出方法であって、
動きベクトルの検出対象となる画像の画素値を1以上の数で除算し、その商の整数部を新たな画素値とする画像を生成することで、該画像を減ビット画像に変換する過程と、
上記減ビット画像を処理対象として、画像ブロック間でSAD値を算出し、それらの中で最小値となるものを抽出する過程と、
上記最小SAD値を基準にして、上記算出したSAD値を評価することで、真のSAD値の算出対象となる画像ブロックであるのか否かを判定する過程と、
上記真のSAD値の算出対象となる画像ブロックを処理対象として、画像ブロック間で真の画素値でのSAD値を算出し、それらの中で最小値となるものを特定する過程と、
上記特定した真のSAD値の算出元となった画像ブロックに基づいて、画像ブロックの動きベクトルを検出する過程とを備え、
上記判定する過程では、
min ≦X j ≦X min +2×N
ただし、X j :判定対象の画像ブロックの持つ減ビット画像
の画素値でのSAD値
min :減ビット画像の画素値でのSAD値の最小値
N :画像ブロック内の画素数
に基づいて、真のSAD値の算出対象となる画像ブロックであるのか否かを判定することを、
特徴とする動きベクトル検出方法。
A motion vector detection method for calculating a SAD value between image blocks and detecting a motion vector of the image block based on the SAD value,
A process of converting the image into a reduced bit image by dividing the pixel value of the image to be detected by the motion vector by a number of 1 or more and generating an image having the integer part of the quotient as a new pixel value; ,
A process of calculating SAD values between image blocks using the reduced bit image as a processing target, and extracting a minimum value among them;
Determining whether the image block is a true SAD value calculation target by evaluating the calculated SAD value with reference to the minimum SAD value;
The process of calculating the SAD value at the true pixel value between the image blocks with the image block that is the calculation target of the true SAD value as the processing target, and specifying the minimum value among them;
Based on the image block was the calculated original true SAD values specified above, Bei example a process of detecting a motion vector of an image block,
In the above determination process,
X min ≦ X j ≦ X min + 2 × N
Where X j : reduced bit image of the image block to be determined
SAD value at the pixel value of
X min : Minimum SAD value at the pixel value of the reduced bit image
N: Number of pixels in the image block
Based on, and this determines whether or not an image block to be calculated subject to the true SAD value,
A feature motion vector detection method.
画像ブロック間でSAD値を算出し、それに基づいて、画像ブロックの動きベクトルを検出する動きベクトル検出装置であって、
動きベクトルの検出対象となる画像の画素値を1以上の数で除算し、その商の整数部を新たな画素値とする画像を生成することで、該画像を減ビット画像に変換する手段と、
上記減ビット画像を処理対象として、画像ブロック間でSAD値を算出し、それらの中で最小値となるものを抽出する手段と、
上記最小SAD値を基準にして、上記算出したSAD値を評価することで、真のSAD値の算出対象となる画像ブロックであるのか否かを判定する手段と、
上記真のSAD値の算出対象となる画像ブロックを処理対象として、画像ブロック間で真の画素値でのSAD値を算出し、それらの中で最小値となるものを特定する手段と、
上記特定した真のSAD値の算出元となった画像ブロックに基づいて、画像ブロックの動きベクトルを検出する手段とを備え、
上記判定する手段は、
min ≦X j ≦X min +2×N
ただし、X j :判定対象の画像ブロックの持つ減ビット画像
の画素値でのSAD値
min :減ビット画像の画素値でのSAD値の最小値
N :画像ブロック内の画素数
に基づいて、真のSAD値の算出対象となる画像ブロックであるのか否かを判定することを、
特徴とする動きベクトル検出装置。
A motion vector detection device for calculating a SAD value between image blocks and detecting a motion vector of the image block based on the SAD value,
Means for converting the image into a reduced bit image by dividing the pixel value of the image to be detected by the motion vector by one or more and generating an image having a new pixel value as an integer part of the quotient. ,
Means for calculating the SAD value between image blocks with the reduced bit image as a processing target, and extracting a minimum value among them;
Means for evaluating whether the image block is a true SAD value calculation target by evaluating the calculated SAD value with reference to the minimum SAD value;
Means for calculating the SAD value at the true pixel value between the image blocks, with the image block that is the calculation target of the true SAD value as a processing target, and specifying the minimum value among them;
Based on the image block was the calculated original true SAD values specified above, Bei example a means for detecting a motion vector of an image block,
The determination means is
X min ≦ X j ≦ X min + 2 × N
Where X j : reduced bit image of the image block to be determined
SAD value at the pixel value of
X min : Minimum SAD value at the pixel value of the reduced bit image
N: Number of pixels in the image block
Based on, and this determines whether or not an image block to be calculated subject to the true SAD value,
A featured motion vector detection device.
SEA探索法に基づいて、画像ブロックの動きベクトルを検出する動きベクトル検出方法であって、
動きベクトルの検出対象となる画像を変換対象として、隣接画素同士をまとめることで、該画像を粗画像に変換する過程と、
上記粗画像の画素値を1以上の数で除算し、その商の整数部を新たな画素値とする画像を生成することで、上記粗画像を減ビット画像に変換する過程と、
上記減ビット画像を処理対象として、画像ブロック間でSAD値を算出する過程と、
上記算出したSAD値と、上記除算に用いた数値と、上記粗画像におけるブロック内画素数と、真のSAD値の暫定最小値とに基づいて、真の画素値でのSAD値の算出を省略できる画像ブロックであるのか否かを判定する過程と、
上記省略できない画像ブロックを処理対象として、真の画素値でのSAD値を算出し、それに応じて上記暫定最小値を更新するのか否かを判断して、更新する必要がある場合には、それを更新する過程と、
上記暫定最小値が最小値として確定するときに、その算出元となった画像ブロックに基づいて、画像ブロックの動きベクトルを検出する過程とを備え、
上記判定する過程では、
SAD cand <Q×XC j +Q×NC
ただし、XC j :減ビット画像の画素値でのSAD値
Q :除算に用いた数値
NC :粗画像におけるブロック内画素数
SAD cand :真のSAD値の暫定最小値
に基づいて、真の画素値でのSAD値の算出を省略できる画像ブロックであるのか否かを判定することを、
特徴とする動きベクトル検出方法。
A motion vector detection method for detecting a motion vector of an image block based on a SEA search method,
A process for converting an image into a coarse image by combining adjacent pixels with an image to be detected as a motion vector as a conversion target;
Dividing the coarse image into a reduced bit image by dividing the pixel value of the coarse image by a number equal to or greater than 1 and generating an image with the integer part of the quotient as a new pixel value;
A process of calculating SAD values between image blocks using the reduced bit image as a processing target;
Calculation of the SAD value at the true pixel value is omitted based on the calculated SAD value, the numerical value used for the division, the number of pixels in the block in the coarse image, and the provisional minimum value of the true SAD value. A process of determining whether or not the image block can be performed,
If it is necessary to update the SAD value at the true pixel value for the image block that cannot be omitted, and determine whether or not to update the provisional minimum value accordingly, The process of updating
When the temporary minimum value is determined as the minimum value, based on the image block from which it calculates source Bei example a process of detecting a motion vector of an image block,
In the above determination process,
SAD cand <Q × XC j + Q × NC
XC j : SAD value at the pixel value of the reduced bit image
Q: Numerical value used for division
NC: Number of pixels in block in coarse image
SAD cand : provisional minimum value of true SAD value
Based on, and this determines whether or not an image block can be omitted to calculate the SAD value of the true pixel values,
A feature motion vector detection method.
SEA探索法に基づいて、画像ブロックの動きベクトルを検出する動きベクトル検出装置であって、
動きベクトルの検出対象となる画像を変換対象として、隣接画素同士をまとめることで、該画像を粗画像に変換する手段と、
上記粗画像の画素値を1以上の数で除算し、その商の整数部を新たな画素値とする画像を生成することで、上記粗画像を減ビット画像に変換する手段と、
上記減ビット画像を処理対象として、画像ブロック間でSAD値を算出する手段と、
上記算出したSAD値と、上記除算に用いた数値と、上記粗画像におけるブロック内画素数と、真のSAD値の暫定最小値とに基づいて、真の画素値でのSAD値の算出を省略できる画像ブロックであるのか否かを判定する手段と、
上記省略できない画像ブロックを処理対象として、真の画素値でのSAD値を算出し、それに応じて上記暫定最小値を更新するのか否かを判断して、更新する必要がある場合には、それを更新する手段と、
上記暫定最小値が最小値として確定するときに、その算出元となった画像ブロックに基づいて、画像ブロックの動きベクトルを検出する手段とを備え、
上記判定する手段は、
SAD cand <Q×XC j +Q×NC
ただし、XC j :減ビット画像の画素値でのSAD値
Q :除算に用いた数値
NC :粗画像におけるブロック内画素数
SAD cand :真のSAD値の暫定最小値
に基づいて、真の画素値でのSAD値の算出を省略できる画像ブロックであるのか否かを判定することを、
特徴とする動きベクトル検出装置。
A motion vector detection device that detects a motion vector of an image block based on a SEA search method,
Means for converting an image into a coarse image by grouping adjacent pixels with an image to be detected as a motion vector as a conversion target;
Means for converting the coarse image into a reduced bit image by dividing the pixel value of the coarse image by a number of 1 or more and generating an image having the integer part of the quotient as a new pixel value;
Means for calculating the SAD value between image blocks with the reduced bit image as a processing target;
Calculation of the SAD value with the true pixel value is omitted based on the calculated SAD value, the numerical value used for the division, the number of pixels in the block in the coarse image, and the provisional minimum value of the true SAD value. Means for determining whether the image block is a possible image block;
If it is necessary to update the SAD value at the true pixel value for the image block that cannot be omitted, and determine whether or not to update the provisional minimum value accordingly, A means of updating
When the temporary minimum value is determined as the minimum value, based on the image block from which it calculates source Bei example a means for detecting a motion vector of an image block,
The determination means is
SAD cand <Q × XC j + Q × NC
XC j : SAD value at the pixel value of the reduced bit image
Q: Numerical value used for division
NC: Number of pixels in block in coarse image
SAD cand : provisional minimum value of true SAD value
Based on, and this determines whether or not an image block can be omitted to calculate the SAD value of the true pixel values,
A featured motion vector detection device.
請求項1又は3に記載の動きベクトル検出方法の実現に用いられる処理をコンピュータに実行させるための動きベクトル検出プログラム。 A motion vector detection program for causing a computer to execute processing used to realize the motion vector detection method according to claim 1 . 請求項1又は3に記載の動きベクトル検出方法の実現に用いられる処理をコンピュータに実行させるための動きベクトル検出プログラムを記録したコンピュータ読み取り可能な記録媒体。 A computer-readable recording medium on which a motion vector detection program for causing a computer to execute processing used to realize the motion vector detection method according to claim 1 or 3 is recorded.
JP2004066644A 2004-03-10 2004-03-10 Motion vector detection method, motion vector detection device, motion vector detection program, and computer-readable recording medium recording the program Expired - Fee Related JP4139342B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004066644A JP4139342B2 (en) 2004-03-10 2004-03-10 Motion vector detection method, motion vector detection device, motion vector detection program, and computer-readable recording medium recording the program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004066644A JP4139342B2 (en) 2004-03-10 2004-03-10 Motion vector detection method, motion vector detection device, motion vector detection program, and computer-readable recording medium recording the program

Publications (2)

Publication Number Publication Date
JP2005260392A JP2005260392A (en) 2005-09-22
JP4139342B2 true JP4139342B2 (en) 2008-08-27

Family

ID=35085723

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004066644A Expired - Fee Related JP4139342B2 (en) 2004-03-10 2004-03-10 Motion vector detection method, motion vector detection device, motion vector detection program, and computer-readable recording medium recording the program

Country Status (1)

Country Link
JP (1) JP4139342B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8358696B2 (en) * 2008-12-31 2013-01-22 Intel Corporation Motion estimation techniques
CN116208777A (en) * 2019-02-28 2023-06-02 华为技术有限公司 Encoder, decoder and corresponding inter prediction method

Also Published As

Publication number Publication date
JP2005260392A (en) 2005-09-22

Similar Documents

Publication Publication Date Title
JP5045320B2 (en) Image processing apparatus, image processing method, and computer program
JP5662429B2 (en) Method for encoding / decoding a 3D mesh model composed of one or more components
US8204123B2 (en) Motion vector searching apparatus, motion vector searching method and storage medium for storing motion vector searching program
JP2009147807A (en) Image processing apparatus
WO1998018073A1 (en) A sum of the absolute values generator
US7143126B2 (en) Method and apparatus for implementing power of two floating point estimation
US6594375B1 (en) Image processing apparatus, image processing method, and storage medium
JP4139342B2 (en) Motion vector detection method, motion vector detection device, motion vector detection program, and computer-readable recording medium recording the program
WO2000018135A1 (en) Fractional-pel motion estimation using estimated distortion values
US20120269451A1 (en) Information processing apparatus, information processing method and program
JP2007259306A (en) Predictor and image encoder
JP2018191246A (en) Moving image encoding device, moving image encoding method and program
JP3627872B2 (en) Motion vector detection method and apparatus
CN101268623B (en) Method and device for creating shape variable blocks
JP4973591B2 (en) Motion vector detection apparatus and motion vector detection method
Alatan et al. Estimation of depth fields suitable for video compression based on 3-D structure and motion of objects
WO2021093059A1 (en) Method, system and device for recognizing region of interest
KR101679508B1 (en) Sad calculation device and method
JP4142600B2 (en) Motion vector estimation method, motion vector estimation device, motion vector estimation program, and motion vector estimation program recording medium
JP2000333183A (en) Method for detecting motion vector
KR100207650B1 (en) Motion estimation apparatus of image compression system
JP2901848B2 (en) Vector correlation detection circuit
JP4158736B2 (en) Prediction coefficient generation apparatus and generation method
JP2599375B2 (en) Vector quantization method
CN117376582A (en) Integer linear equation solving acceleration method and device for affine motion estimation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060410

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080422

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080514

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080514

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: 20080603

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: 20080606

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110613

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110613

Year of fee payment: 3

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

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

Free format text: PAYMENT UNTIL: 20120613

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130613

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees