WO2002037860A1 - Moving vector detector - Google Patents
Moving vector detector Download PDFInfo
- Publication number
- WO2002037860A1 WO2002037860A1 PCT/JP2000/007598 JP0007598W WO0237860A1 WO 2002037860 A1 WO2002037860 A1 WO 2002037860A1 JP 0007598 W JP0007598 W JP 0007598W WO 0237860 A1 WO0237860 A1 WO 0237860A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- search
- pixel
- motion vector
- vector
- block
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/557—Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
Definitions
- each block obtained by dividing a frame in an image sequence is subjected to a motion estimation with respect to an already encoded frame.
- the present invention relates to a motion vector detecting device that detects a vector.
- FIG. 1 is a block diagram showing a configuration of a conventional motion vector detecting device.
- FIG. 2 is a block diagram showing an example of a circuit for controlling the input / output of a memory in the search window memory unit of FIG.
- FIG. 3 is a block diagram showing an example of the configuration of the exchanger shown in FIG. 1
- FIG. 4 is a block diagram showing an example of the configuration of a selector unit in the horizontal switching unit shown in FIG.
- FIG. 4 is a block diagram showing a configuration example of a selector unit in the vertical exchange unit in FIG. 3.
- FIG. 6 is a block diagram showing an example of a circuit for controlling input / output of a memory in the reference memory unit of FIG.
- This conventional motion vector detection device is for the case where the reference block is 16 rows and 16 columns, and the division block when the reference block is divided is 4 rows and 4 columns.
- reference numeral 1 denotes pixel data of a frame that has already been coded by inter-frame predictive coding in an image processing method such as the H.261 method or the MPEG method, and the frame to be coded at the current time.
- This is a pre-coded frame memory that stores pixel data for prediction in.
- a motion vector for each block obtained by dividing the frame to be encoded is detected. That is, the horizontal and vertical distances between the position of the block in the currently encoded frame and the position of the block corresponding to the block in the already encoded frame are detected as motion vectors.
- a pixel 141 is supplied with a write address at the time of writing pixel data to the memory 111 (I, J), and a pixel data from the memory 111 (I, J) is supplied.
- a selector that is supplied with a read address at the time of reading and supplies one of those addresses to the memory 111 (I, J) according to the value of the write detection switch signal.
- 13 1 is an adder that calculates the sum of the horizontal component of the search vector and the horizontal position of the upper left corner of the reference block from the upper left corner of the search window, and outputs the calculation result It is.
- 1 32 is a subtractor that subtracts the column number I of the memory 1 1 1 (I, J) from the output value of the adder 13 1 and outputs the calculation result.
- 1 33 is an adder that calculates the sum of the output value of the subtractor 1 32 and the constant 3 and outputs the calculation result.
- 1 4 2 is 4 times the output value of the adder 1 3 3 and the horizontal address q (described later) of the divided process An adder that calculates the sum of the values and outputs the result.
- 1 34 is a divider that outputs an integer part of a value obtained by dividing the output value of the adder 14 2 by a constant 4.
- 1 35 calculates the sum of the vertical component of the search vector and the vertical position of the upper left corner of the reference project from the upper left corner of the search window, and outputs the calculation result.
- It is. 136 is a subtracter for subtracting the row number J of the memory 111 (I, J) from the output value of the adder 135, and outputting the calculation result.
- 13 7 is an adder that calculates the sum of the output value of the subtractor 13 6 and the constant 3 and outputs the calculation result.
- Reference numeral 150 denotes an adder that calculates the sum of the output value of the adder 1337 and a value obtained by multiplying the vertical address (described later) of the divided block by 0.4, and outputs the calculation result.
- a divider 38 outputs an integer part of a value obtained by dividing an output value of the adder 150 by a constant 4.
- 13 9 is a multiplier that calculates the product of the output value of the divider 13 8 and the constant 14 and outputs the calculation result.
- reference numeral 103 denotes the pixel data stored in the memory 1 1 1— (0, 0) to 1 1 1 1 3, 3) of the search window memory section 102.
- the pixel blocks included in the search block that is the same size as the divided block of the reference block and that is separated from the position of the divided block of the reference block by the search vector are supplied and searched.
- This is an exchanger that outputs each pixel data whose coordinate value is (I, J) to the pixel comparison unit 113- (I, J) of the evaluation unit 104.
- 114 1 stores pixel data from memory 111 1 (0, J) to: L 1 1— (3, J) for each row J of the search division block. -Even the pixel is supplied, and the built-in selector section 1.5 1-(0, J)-15 1-(3, J) is used to search all pixel data from one pixel data to one pixel data.
- This is a horizontal exchange unit that selects and outputs according to the value of the horizontal component of the torque.
- 1 15 is a selector section 15 2 — (I, 0) of the horizontal switching section 1 14 from the L 5 1-1 (I, 3). 0) to 15 2 _ (I, 3) and the selector section 15 2 — (I, 0) to 1
- 5 2-(1, 3) is a vertical switching unit that selects and outputs one pixel data from each pixel data according to the value of the vertical component of the search vector.
- 123 is the sum of the column number I of the selector section 151- (I, J) and the horizontal component of the search vector.
- I an adder that calculates the result and outputs the calculation result to the ROM 124.
- Reference numeral 124 denotes a ROM that supplies the value of the remainder obtained by dividing the value from the adder 123 by 4 to the selector 125 as a selection signal.
- a selector 125 selects a value from the memory 111 (S S, J) according to the value S S of the selection signal from the ROM 124 and outputs the selected value.
- 126 is the sum of the row number J of the selector section 152- (I, J) and the vertical component of the search vector. , And outputs the calculation result to ROM127.
- Reference numeral 127 denotes a ROM which supplies the value of the remainder obtained by dividing the value from the adder 126 by 4 to the selector 128 as a selection signal.
- Reference numeral 128 denotes a selector for selecting and outputting a value from the selector section 151- (1, SS) in accordance with the value S S of the selection signal from the ROM 127.
- reference numeral 5 denotes an encoded frame memory for storing pixel data of a frame to be encoded at the present time.
- the 106 is a 16-by-16 column that divides the frame currently encoded
- the memory stores the pixel data of the same row I and the same column J in the divided blocks.
- each memory 1 16— (1 , J) store M pixel data of the same row I and the same column J in each divided block.
- 145 is a multiplication that calculates the product of the vertical address of the divided block supplied from the vertical quaternary counter 144 of the block accumulator 108 and the constant 4, and outputs the calculation result. It is a vessel. 146 calculates the sum of the output value of the multiplier 144 and the horizontal address q of the divided block supplied from the horizontal quaternary counter 143 of the block accumulator 108, and stores the result in the memory. 1 16—Adder that outputs to selector 147 as a read address for (I, J).
- the horizontal block 143 and the vertical quaternary counter 144 shown in Fig. 6 divide the divided blocks in the reference block in the horizontal direction. And the vertical direction, and those count values are used as the vertical address r and the horizontal address q of the divided block in the search window memory section 102, the switchboard 103, and the reference memory section 106.
- the comparison result of each pixel comparison unit 1 13 — (I, J) of the evaluation unit 104 is temporarily stored for each divided block, and the above comparison results for all divided blocks constituting the block are stored.
- each pixel comparison unit 1 13-(I, J) calculates the difference between two pixel data, and searches the reference block when the sum of the absolute values of those differences in the reference block is minimum.
- the toll is the motion vector.
- FIG. 7 is a diagram showing an example of a search window and a search division block
- FIG. 8 is a diagram showing a search division block and a horizontal address and a vertical address of the search division block in the second embodiment.
- the pre-coded frame memory 1 stores the same window I in the same row I and the same column J in the divided area when the search window is divided into areas of the same size as the divided blocks of the reference block.
- the pixel data is output to the memory 1 1 1— (I, J) of the search window memory section 102.
- the horizontal address q and the vertical address r in the block are allocated to each divided block when the block is divided into 16, and the horizontal address in the search window is assigned.
- memory 1 1 1 1 (I, J) Stores the pixel data of the J-th row and the I-th column in the divided block of the horizontal address h and the vertical address V at an address having a value (14 XV + h).
- the search vector is supplied from the motion vector detection unit 107 to the search window memory unit 102 and the exchanger 103, and the block accumulator is also stored.
- the horizontal address q and the vertical address r of the search division block are sequentially supplied to the search window memory section 102, the exchange 103 and the reference memory section 106.
- the water component of the search vector is supplied to the adder 131, and the vertical component of the search vector is supplied to the adder 135.
- the value obtained by quadrupling the horizontal address q of the search division block is supplied to the adder 142, and the value obtained by quadrupling the vertical address r of the split block is supplied to the adder 150.
- the adders 131, 1.33, 135, 137, 140, 142, 150, the subtractors 1332, 1336, the dividers 134, 133 and the multiplier 139 the read address for the memory 1 1 1— (I, J) corresponding to the supplied search vector and the horizontal address q and the vertical address r of the divided block is calculated.
- the memory 1 1 1— (I, J) stores the pixel data stored in the supplied read address into the selector section 15 1— (0, J) to 15 1— (3, J ).
- the read address A (I, J) for the memory 111 (1, J) is such that X is the horizontal component of the search vector, y is the vertical component of the search vector, and SWH 0 is the search component.
- the calculation is performed according to the following equation by the calculators 13 2, 1 36, the dividers 134, 1 38 and the multiplier 1 39.
- a (I, J) (int ((SWV 0 + y- J + r x4 + 3) / 4)) x 14 + int ((SWH 0 + x- I + q x4 + 3) / 4)
- i n t () is a function or an operator that truncates the decimal part of its argument.
- the selectors 151- (I, J) of the horizontal exchanger 114 are used to determine the horizontal components of the search vector supplied from the motion vector detector 107. Select one of the values from the memory 1 1 1— (0, J) to: L 1 1— (3, J), and replace the selected value ′ with the selector 1 of the vertical exchange unit 1 1 5 5 2— (1, 0) to: Output to 1 5 2 (1, 3).
- each selector section 151- (1, J) the addition section 123 and the ROM 124 cause the column number I of the selector section 151- (1, J) and the search vector.
- a selection signal is calculated based on the horizontal component and supplied to the selector 125.
- the value from the memory 111 (S S, J) is output according to the value S S of the selection signal.
- the value SS of the selection signal is calculated based on the column number I of the selector section 151- (1, J) and the horizontal component X of the search vector by the addition section 123 and the ROM 124 according to the following equation. Is calculated.
- each selector section 15 2— (I, J) of the vertical exchange section 115 becomes a selector section according to the vertical component of the search vector supplied from the moving vector detection section 107. 1 5 1— (1, 0) to: L 5 1—Select one of the values from (I, 3), and select the value.
- the row number J of the selector section 152- (1, J) and the search vector are determined by the adder section 126 and the ROM 127.
- a selection signal is calculated based on the vertical component of the torque and supplied to the selector 1 28. Then, in accordance with the value SS of the selection signal, the value from the selection section 15 1— (I, SS) is output.
- the value SS of the selection signal is determined by the addition unit 126 and the ROM 127 based on the row number J of the selector unit 152- (I, J) and the vertical component y of the search vector. It is calculated according to the formula. '
- the encoding frame memory 105 stores the pixel data of one of the blocks obtained by dividing the frame to be encoded in the same row I and the same column J in the divided program. Each pixel is stored in memory 1 16-(I, J) every night.
- the memory 1 16— (0, 0) to 1 16— (3, 3) of the reference memory section 106 stores the divided blocks corresponding to the supplied horizontal address q and vertical address r.
- the pixel data is supplied to the pixel comparison unit 113- (0, 0) -113- (3, 3) of the evaluation unit 104 every clock.
- the pixel comparison section 113- (I, J) of the evaluation section 104 converts the pixel data from the selector section 152- (1, J) of the converter 103 into: The difference from the pixel data from the memory 1 16— (I, J) of the reference memory unit 106 is calculated, and the difference is supplied to the block accumulation unit 108.
- the block accumulating unit 108 When the pixel data difference is supplied, the block accumulating unit 108 outputs a horizontal address q and a vertical address r for designating the next divided block, and outputs the pixel data difference for one block. When is accumulated, the difference between the pixel data is output to the motion vector detection unit 107.
- the motion vector detection unit 107 stores, as an evaluation value, the sum of absolute values of the differences between the pixel data supplied from the evaluation unit 104 in association with the search vector at that time.
- the motion vector detecting unit 107 searches the search window for a new search vector based on the predetermined order or based on the relationship between the search vector already calculated and the evaluation value. It is supplied to the dough memory section 102 and the exchanger 103.
- the motion vector detection unit 107 updates the search vector until the predetermined order is completed or until the evaluation value becomes equal to or less than the predetermined value.
- the search vector when small is determined to be the motion vector.
- the reference memory unit 106 stores the pixel data constituting the divided block obtained by dividing the reference block
- the search window memory unit 102 stores the pixel data.
- the search window of the encoded frame is divided into regions of the same size as the divided block, encoding is performed for each pixel data in the same row and the same column in the divided region.
- the pixel data of the search window of the divided frame is stored, and the same row in the divided area stored in the memory 111 (I, J) of the search window memory unit 102 is stored.
- the conventional motion vector detection device is configured as described above, the number of pixel comparison units 113- (I, J) of the evaluation unit 104 is reduced to reduce the circuit scale, Although it is possible to reduce the cost of the device, it is necessary to perform comparison of pixel data for all divided blocks constituting the entire block, and in this regard, it is necessary to reduce the time required to detect a motion vector. There was a problem that it was difficult.
- the conventional motion vector detection device when performing bidirectional prediction, a device for detecting a forward motion vector and a device for detecting a backward motion vector are used. There were problems, such as the necessity of two devices for detection, and an increase in the size of the device.
- the present invention has been made in order to solve the above-described problems, and includes a first storage unit ′ for storing data of pixels constituting a plurality of pixel patterns constituting a block.
- the predetermined A second storage means for storing data of pixels in a range specified by a predetermined search vector, and selecting one pixel pattern in a block designated by the search vector in the predetermined range Means for comparing the pixel pattern selected by the selection means with the same pixel pattern stored in the first storage means for each pixel; So as to comprise a detecting means for detect the motion base-vector based on the result of comparison by means of the comparison result for each pixel patterns is approximated to a comparison result of the proc throughout required comparison result It is not necessary to compare all the pixel patterns that make up the entire block, depending on the accuracy with which the blocks are obtained, and the comparison result for
- the present invention has been made to solve the above-mentioned problem, and has a first storage means for storing a plurality of pixel patterns constituting a work or a data of pixels constituting a plurality of divided work.
- the data of the pixels in the predetermined range of the coded frame are obtained.
- a plurality of search vectors which are motion vector candidates, and the same pixel pattern or the same pixel pattern in a block designated by each search vector within a predetermined range.
- Selection means for sequentially selecting a division block, a pixel pattern or division block selected by the selection means, and a pixel pattern or division block stored in the first storage means identical to the pixel pattern or division block Means for comparing each pixel with each other, and comparison of all pixel patterns or all divided blocks by the comparison means for one search vector
- the processing by the selection means and the comparison means for the search vector is stopped according to the comparison result of the pixel pattern or the divided vector up to that point, and the search vector is moved to the motion vector.
- a motion vector detection device that cuts off the search vector that is unlikely to be detected, reduces the amount of calculation required to detect the motion vector, and can detect the motion vector in a short time.
- the present invention has been made to solve the above-mentioned problem, and has a first storage means for storing a predetermined number of pixel data among the pixel data constituting a block; Second storage means for storing pixel data within a first range for detecting a forward motion vector and a second range for detecting a backward motion vector of the frames obtained
- the search vector in the forward direction and the search vector in the backward direction are supplied, and the search vector is separated from the position of the block in the pixel data stored in the second storage means by the search vector.
- Selecting means for selecting a predetermined number of pixel data among the pixel data in the same size range as the block at the set position, and a predetermined number of pixel data stored in the first storage means And a predetermined number of pixel data selected by the selection means.
- Storage means required for the second storage means comprising: comparison means; and detection means for detecting a forward movement vector and a backward movement vector based on a result of the comparison by the comparison means.
- a motion vector detection device includes: a first storage unit configured to store data of pixels constituting a plurality of pixel patterns constituting a block; and a predetermined range of an encoded frame.
- a first storage unit configured to store data of pixels constituting a plurality of pixel patterns constituting a block
- a predetermined range of an encoded frame In a plurality of pixel patterns composed of a predetermined number of pixels every predetermined number of pixels, each pixel of the same position in the pixel pattern has a predetermined range of pixels in the encoded frame.
- a second storage unit for storing data, a selection unit supplied with a predetermined search vector, and selecting one pixel pattern in a block specified by the search vector within a predetermined range; and a selection unit Selected by Comparing means for comparing, for each pixel, the selected pixel pattern with the same pixel pattern stored in the first storage means, and a motion vector based on a result of the comparison by the comparing means.
- a detecting means for detecting As a result, the comparison result for each pixel pattern approximates the comparison result for the entire block, and the comparison is not necessarily performed for all pixel patterns constituting the entire block depending on the accuracy required for the comparison result. This eliminates the need to perform the operation, and the comparison result for each block can be obtained in a short time, so that the effect that the motion vector can be detected in a short time can be obtained.
- a motion vector detection device includes: a first storage unit that stores a plurality of pixel patterns constituting a block or data of pixels constituting a plurality of divided blocks; For each pixel of the same position in a plurality of pixel patterns or a plurality of divided blocks constituting the predetermined range, the data of the pixels in the predetermined range in the encoded frame are stored.
- the second storage means and a plurality of search vectors that are motion vector candidates are supplied, and within the predetermined range, the same pixel pattern or each division in a block specified by each search vector is provided.
- Selecting means for sequentially selecting blocks; a pixel pattern or a divided block selected by the selecting means; and a first storage means identical to the pixel pattern or the divided block.
- a comparison means for comparing the pixel pattern or the divided block stored in each pixel with each pixel, and a comparison means for comparing all pixel patterns or all divided blocks by the comparison means for one search vector before the comparison is completed.
- the processing by the selection means and the comparison means for the search vector is stopped, and the search vector is deleted from the motion vector candidates.
- a detection means for detecting a motion vector from candidates of the vector. This has the effect of terminating the search vector that is unlikely to be a motion vector, reducing the amount of calculation required to detect the motion vector, and enabling the motion vector to be detected in a short time. can get.
- the search vector narrowing-down unit performs the same pixel pattern or the same pixel pattern for a plurality of search vectors for each of the same pixel pattern or the same divided block. After each comparison of the same divided block is completed, at least one of the plurality of search vectors is deleted from the motion vector candidates if a predetermined condition is satisfied. This has the effect of simplifying the process for terminating the accumulation of evaluation values.
- the comparing means calculates an evaluation value as a comparison result
- the search vector narrowing means sets the evaluation value of each of the search vectors in a plurality of pixel patterns.
- the cumulative values are calculated, and the cumulative values of the evaluation values for the plurality of search vectors are arranged and stored in ascending or descending order, and one or more search vectors are determined based on the order of the evaluation values in the array. Is removed from the motion vector candidates.
- the comparing means calculates the evaluation value as a comparison result
- the search vector narrowing means calculates the evaluation value based on the cumulative value of the evaluation values for the plurality of search vectors.
- the search vector corresponding to the minimum or maximum evaluation value is selected, the evaluation value is accumulated for the selected search vector, and the detecting means is the cumulative number of the minimum or maximum evaluation value. But If the number is a predetermined number, the search vector is set as a motion vector. As a result, the accumulation of the evaluation values of the search vector that is likely to become a motion vector progresses more, so that the effect that the motion vector can be detected in a shorter time can be obtained. .
- the search vector narrowing down means stores the cumulative values of the evaluation values of the plurality of search vectors in ascending or descending order, and stores The search vector corresponding to the top of the array is selected, the evaluation values are accumulated for the selected search vectors, and the accumulated evaluation values for multiple search vectors are re-ordered in ascending or descending order. If the cumulative number of evaluation values at the beginning of the array is a predetermined number, the search vector is used as the motion vector. Thus, when selecting the next search vector for executing the accumulation of evaluation values, it is sufficient to simply select the first search vector in the array, and accumulate the evaluation values for each search vector. There is no need to refer to the value, and the effect is obtained that the search vector that terminates the accumulation of the evaluation values can be selected quickly.
- the motion vector detecting device includes a pixel data forming a block.
- a first storage means for storing a predetermined number of pixel data in the evening; a first range of encoded frames within a first range for detecting a forward motion vector; and a backward direction.
- a second storage means for storing pixel data within a second range for detecting a motion vector of the motion vector, a forward search vector and a backward search vector, and A predetermined number of pixel data in the pixel data in the same size range as the block at a position separated by the search vector from the position of the block in the pixel data stored in the storage means of (2).
- Selecting means for selecting one night comprising: comparing means for comparing a predetermined number of pixel data stored in the first storage means with a predetermined number of pixel data selected by the selecting means; Forward and backward motion vectors based on the results of the comparison And a detecting means for detecting the direction of the movement vector.
- This increases the storage capacity required for the second storage means, but has the effect of detecting vectors moving in the forward and backward directions without increasing other components.
- FIG. 1 is a block diagram showing a configuration of a conventional motion vector detecting device.
- FIG. 2 is a block diagram showing an example of a circuit for controlling the input and output of the memory in the search window memory section of FIG.
- FIG. 3 is a block diagram showing a configuration example of the exchanger of FIG.
- FIG. 4 is a block diagram showing a configuration example of a selector unit in the horizontal exchange unit of FIG.
- FIG. 5 is a block diagram showing a configuration example of a selector unit in the vertical exchange unit of FIG.
- FIG. 6 is a block diagram showing an example of a circuit for controlling input / output of a memory in the reference memory unit of FIG. 1.
- FIG. 7 is a diagram showing an example of a search window and a search division block. '
- FIG. 8 is a diagram showing a horizontal address and a vertical address of a search division block and a search division block according to the second embodiment.
- FIG. 9 is a block diagram showing a configuration of a motion vector detecting device according to the first embodiment of the present invention.
- FIG. 10 is a block diagram showing an example of a circuit for controlling the input and output of the memory in the search window memory section of FIG.
- FIG. 11 is a block diagram showing a configuration example of the exchanger in FIG.
- FIG. 12 is a block diagram showing a configuration example of a selector unit in the horizontal exchange unit of FIG.
- FIG. 13 is a block diagram showing a configuration example of a selector unit in the vertical exchange unit of FIG.
- Fig. 14 shows an example of the correspondence between the address of each pixel in the search window memory section and the memory in which each pixel is stored, and an example of the pixel pattern in the search window.
- FIG. 15 shows an example of a correspondence relationship between an address of each pixel data in the reference memory unit and a memory in which each pixel data is stored, and an example of a pixel pattern in a search window.
- FIG. 16 is a diagram showing an example of a pixel pattern selection order.
- FIG. 17 is a diagram showing an example of pixels used by a divided block and pixels used by a pixel pattern.
- FIG. 18 is a block diagram showing a configuration of a motion vector detecting device according to Embodiment 2 of the present invention.
- FIG. 19 is a block diagram showing a configuration example of a motion vector detecting unit and a pixel pattern accumulating unit according to the second embodiment.
- FIG. 20 is a view showing an example of the cumulative number of evaluation values and the cumulative value of each search vector stored in the storage means.
- FIG. 21 is a diagram illustrating an example of discontinuing the accumulation of evaluation values according to the third embodiment.
- FIG. 22 is a block diagram showing a configuration of a motion vector detection unit and a storage unit of a pixel pattern accumulator according to the fourth embodiment.
- FIG. 23 is a block diagram showing a configuration example of each storage unit in FIG. 22 ⁇ ) o
- FIG. 24 shows an example of the order of accumulation of evaluation values in the fifth embodiment.
- FIG. 25 is a block diagram showing a configuration example of a motion vector detection unit in the motion vector detection device according to the sixth embodiment.
- FIG. 26 is a diagram showing an example of a forward search window and a forward search block.
- FIG. 27 is a diagram showing an example of a backward search window and a backward search block. Best mode for carrying out the invention
- FIG. 9 is a block diagram showing a configuration of the motion vector detecting device according to the first embodiment of the present invention.
- FIG. 10 is a block diagram showing an example of a circuit for controlling the input / output of the memory in the search window memory unit of FIG.
- FIG. 11 is a block diagram showing a configuration example of the exchanger of FIG. 9, and
- FIG. 12 is a block diagram showing a configuration example of a selector unit in the horizontal exchange unit of FIG.
- FIG. 13 is a block diagram showing a configuration example of a selector unit in the vertical exchange unit of FIG.
- the motion vector detecting device is a device in which the reference block has 16 rows and 16 columns, and the reference block has 16 pixel patterns.
- reference numeral 1 denotes pixel data of a frame that has already been encoded by inter-frame predictive encoding in an image processing system such as the H.261 system, the MPEG system, etc. This is a pre-coded frame memory that stores pixel data for prediction in.
- a motion vector for each block obtained by dividing the frame to be encoded is detected. That is, the horizontal and vertical distances between the position of the block in the frame currently coded and the position of the range corresponding to the block in the already coded frame are defined as the motion vector. Is detected.
- a search window memory unit (second storage unit, selection unit) that stores the data of the pixels constituting the search window.
- 11-(I, J) represents a plurality of pixel patterns constituting each divided block obtained by dividing the search window into the same size as the reference block.
- This is a memory for storing pixel data at the same position.
- the size of the search window is 64 pixels x 32 pixels
- the size of the reference block is 16 pixels x 16 pixels
- each pixel pattern is a pixel every three pixels in the vertical and horizontal directions.
- the search window is first divided into eight blocks, two vertically and four horizontally, and each pixel (16 pixels vertically and 16 pixels horizontally) is a 16-pixel area of 4 pixels vertically and horizontally.
- each pixel pattern is represented by a pixel (, 0 + p, 0). + q), pixel (4 + p, 0 + q), pixel (8 + p, 0 + q), pixel (12 + p, 0 + q), pixel (0 + p, 4 + q), pixel (4 + p, 4 + q), pixel (8 + p, 4 + q), pixel (12 + p, 4 + q), image Element (0 + p, 8 + q), pixel (4 + p, 8 + q), pixel (8 + p, 8 + q), pixel (12 + p, 8 + q), pixel (0 + p, 1 2 + q), pixel (4 + p, 1 2 + q), pixel (8 + p, 1 2 + q), and pixel (1 2 + p, 1 2 + q) Is done.
- 41 is supplied with a write address when writing pixel data to memory 11— (I, J), and is a read address when reading pixel data from memory 11— (I, J).
- 42 is a memory 11 1 (I, J) readout for simultaneously outputting pixel data constituting one pixel pattern from the memory 1 1— (0, 0) to: 1 1 1 (3, 3).
- This is a read address calculation unit that calculates the address A (I, J) according to the equation (1).
- a (1, J) (int ((yl + 1 2-4 xj) / 16) x 4 + mod (yl, 4)) xl 6 + int ((xl + 1 2-4 xi) / 16 ) x4 + mod (xl, 4) (1)
- x l 24 + x + p
- y l 8 + y + q
- (x, y) is a search vector. Note that this equation is for the case where the position where the motion is 0 with respect to the origin of the search window is (24, 8).
- reference numeral 3 denotes a search from the position of the reference block in the pixel data stored in the memory 11— (0, 0) to: L1— (3, 3) of the search window memory unit 2.
- the pixel data constituting one of the pixel patterns in the search block at a position separated by a vector is supplied, and the 16 pixel data constituting the pixel pattern are arranged in a predetermined order and the evaluation unit (3)
- the pixel comparators 1 3 exchangers (selectors) that output to (I, J) Means).
- the pixel 14 is supplied with pixel data from the memory 11 (0, J) to 11 (3, J) for each row J, and has a built-in selector section. From 5 1— (0, J) to 5 1— (3, J), one pixel data is selected from all pixel data according to the value of the horizontal component of the search vector.
- Output horizontal exchange unit. 15 is the selector section 5 2— (1,0) with a built-in pixel decoder from the selector section 5 1— (1,0) to 51— (1,3) of the horizontal exchange section 14.
- To 5 2— (I, 3), and the selector section 52— (I, 0) to 52— (1, 3) converts one pixel data from all pixel data
- the vertical exchange unit selects and outputs according to the value of the vertical component of the search vector.
- 21 is the number I of the selector section 51— (I, J), the horizontal component X of the search vector, and the pixel pattern of the pixel pattern.
- a selection signal generation unit that generates a selection signal having a value Sh calculated based on the horizontal offset p according to the equation (2).
- Reference numeral 2 denotes a selector for selecting a value from the memory 11 (S h, J) in accordance with the value S h of the selection signal from the selection signal generation unit 21 and outputting the selected value.
- 26 is the number J of the selector section 52— (1, J), the vertical component y of the search vector, and the pixel pattern of the pixel pattern.
- a selection signal generation unit that generates a selection signal having a value SV calculated according to the equation (3) based on the vertical offset q.
- reference numeral 5 denotes an encoded frame memory for storing pixel data of a frame to be encoded at the present time.
- each memory 16— (I, J) is provided.
- J.) store M pixel data at the same position in each pixel pattern.
- a pixel pattern accumulator (detection means) that collectively outputs the above comparison results for the pixel pattern of the pixel vector to the motion vector detection unit 7.
- a motion vector detection unit that detects motion as a torque. For example, each pixel comparison unit 1 3— (I , J), the difference between the two pixel data is calculated, and the search vector when the sum of the absolute values of the differences in the reference block is the minimum is taken as the motion vector.
- FIG. 14 shows an example of the correspondence between the address of each pixel data in the search window memory section and the memory in which each pixel data is stored, and an example of the pixel pattern in the search window
- FIG. 15 is a diagram showing an example of a correspondence relationship between each pixel address in the reference memory unit and a memory in which each pixel data is stored, and an example of a pixel pattern in a search window It is.
- FIG. 16 is a diagram showing an example of a selection order of pixel patterns.
- the search window memory unit 2 stores the data of the pixels constituting the search window in the coded frames in the pre-coded frame memory 1 every time the pixels at the same position in the plurality of pixel patterns are decoded. You. That is, the pixels constituting one pixel pattern are stored in different memories 11 1-(I, J).
- the memory 11— (1, J) in the search window memory unit 2 includes a plurality of pixel patterns constituting each divided block obtained by dividing the search window into the same size as the reference block.
- the pixel data at the same position in is stored.
- the size of the search window is 64 pixels ⁇ 32 pixels
- the size of the reference block is 16 pixels ⁇ 16 pixels.
- the search window is first divided into eight blocks, two by two, four by six, and each block (16 pixels by 16 pixels)
- the read address calculation unit 42 of the search window memory unit 2 calculates the offset (p, q) of the pixel pattern from the pixel pattern accumulation unit 8 and the search vector (X) from the motion vector detection unit 7. , y), the read address A (I, J) of the memory 11— (I, J) is calculated according to the equation (1), and is supplied to the selector 41.
- the read address is supplied to the memory 11-(I, J) via the selector 41, and the pixel data at that address is supplied to the switch 3.
- FIG. 14 shows a pixel pattern when the search vector is (19, 16) and the offset is (2, 1).
- the exchanger 3 arranges the pixel data constituting the pixel pattern from the search window memory unit 2 in a predetermined order, and outputs the pixel data to the pixel comparison unit 13 1 (I, J) of the evaluation unit 4.
- the horizontal exchange section 14 is first supplied with pixel data from the memory 11— (0, J) to: LI— (3, J) for each row J. From the pixel selectors 5 1— (0, J) to 51— (3, J), one pixel data is searched for each pixel data. Select according to the value and output to the vertical exchange unit 15. At this time, in each of the selector sections 51-(I, J), a selection signal having a value Sh calculated by the selection signal generation section 21 according to the equation (2) is supplied to the selector 22. The selector 22 selects a value from the memory 11 (Sh, J) according to the value Sh of the selection signal.
- the vertical exchange unit 15 converts the pixel data from the selector units 51- (I, 0) to 51- (I, 3) of the horizontal exchange unit 14 into each of the built-in selectors.
- Part 5 2 From (1, J), select all pixel data from each pixel data according to the value of the vertical component of the search vector and output.
- the selector unit 52-(I, J) the selection signal having the value Sv calculated according to the equation (3) by the selection signal generation unit 26 is supplied to the selector 27, and the selector 27 Accordingly, the value from the selector section 51-(1, Sv) is selected according to the value SV of the selection signal.
- the data of the pixels constituting the pixel pattern selected according to the search vector (X, y) and the offset (p,) are supplied to the evaluation unit 4.
- the reference memory unit 6 stores one of the 16-row / 16-column processes (reference blocks) obtained by dividing the frame to be coded at this time from the coding frame memory 5.
- One pixel at the same position in a plurality of pixel patterns is read out and stored in the built-in memory 16- (I, J). That is, each pixel constituting one pixel pattern is stored in different memories 16- (I, J).
- the pixel pattern specified by is output to the pixel comparison unit 13-(I, J) of the evaluation unit 4 in an array similar to the array of the pixel data from the exchanger 3 to the evaluation unit 4.
- the evaluation unit 4 includes a pixel data from each memory 16— (I, J) of the reference memory unit 6 and a pixel data from the selector unit 52— (I, J) of the exchanger 3.
- the pixel comparison section 13 — (I, J) compares the evening and the evening with each other, and supplies an evaluation value as a comparison result to the pixel pattern accumulator 8.
- the evaluation value at this time is, for example, the pixel data from each memory 16— (I, J) of the reference memory unit 6 and the pixel data from the selector unit 52— (I, J) of the exchanger 3.
- the evaluation value at this time may be the sum of the squares of the difference between the two pixel values.
- the pixel pattern accumulator 8 sequentially selects the horizontal component p and the vertical component q of the offset value of the pixel pattern in a predetermined order, and stores those values P and q in the search window memory unit 2, the exchange 3, and It is supplied to the reference memory unit 6 and accumulates the evaluation values from the pixel comparison units 13— (I, J) of the evaluation unit 4 in the case of each of the offset values p and q, and for each search vector, The evaluation values for all the pixel patterns constituting the block are collectively output to the motion vector detection unit 7.
- the pixel pattern accumulator 8 selects offsets (p, q) of the pixel pattern without offset, for example, as shown in FIG. 16 (a).
- three pixel patterns corresponding to the offset selected three times are as shown in FIG. 16 (b).
- the motion vector detection unit 7 sets the next search vector in the search window memory unit 2 and the exchange 3 based on the evaluation value of one block from the pixel pattern accumulator 8, and performs an optimal search.
- the vector is detected as a motion vector.
- the reference memory unit 6 stores the data of the pixels forming the plurality of pixel patterns forming the blocks
- the search window memory unit 2 stores the codes in the search window memory unit 2.
- a predetermined search window of the structured frames a predetermined number of pixels at a predetermined number of pixels is provided.
- the pixel data is stored, one pixel pattern is selected by the search window memory unit 2 and the exchanger 3 according to the search vector from the motion vector detection unit 7, and the selection is performed by the evaluation unit 4.
- the pixel pattern obtained is compared with the same pixel pattern stored in the reference memory unit 6 for each pixel, and the pixel pattern is accumulated.
- the vessel 8, the evaluation unit 4 for a plurality of pixel patterns The comparison results are summarized and the motion vector detection unit 7 detects the motion vector based on the results of those comparisons, so that the pixels used for comparison among the pixels in the block are Since the pixel pattern is distributed over the entire block, the comparison result for each pixel pattern approximates the comparison result for the entire block, and depending on the accuracy required for the comparison result, the pixel pattern that necessarily constitutes the entire block This eliminates the need to perform comparisons for all of the blocks, so that the comparison result for each block can be obtained in a short time, and the effect that a motion vector can be detected in a short time can be obtained.
- FIG. 17 is a diagram showing an example of a pixel used by a divided block and a pixel used by a pixel pattern. That is, as shown in FIG. 17, when comparison is performed on a divided block as in the related art (FIG. 17 (a)), pixel data is locally referred to in the block, In the case where comparison is performed for the above-described pixel pattern as in the first embodiment (FIG. 17 (b)), pixel data is uniformly referred to in the block.
- Embodiment 2 is a diagram showing an example of a pixel used by a divided block and a pixel used by a pixel pattern. That is, as shown in FIG. 17, when comparison is performed on a divided block as in the related art (FIG. 17 (a)), pixel data is locally referred to in the block, In the case where comparison is performed for the above-described pixel pattern as in the first embodiment (FIG. 17 (b)), pixel data is uniformly referred to in the block.
- the motion vector detection device calculates the accumulation of the evaluation values in a plurality of search vectors for one pixel pattern, and searches for the search vector having the small cumulative value of the evaluation values.
- the evaluation value for is stopped, and the search vector is deleted from the motion vector candidates.
- FIG. 18 is a block diagram showing a configuration of a motion vector detecting device according to Embodiment 2 of the present invention.
- 7A operates in the same manner as the motion vector detection unit 7 and calculates the evaluation value by the evaluation unit 4 for all pixel patterns or all divided blocks for one search vector. But Before completion, according to the evaluation value of the pixel pattern up to that point, the processing by the exchanger 3 and the evaluation unit 4 for the search vector is stopped, and the search vector is changed to the motion vector. It is a motion vector detection unit (detection means, search vector narrowing means) to delete from candidates.
- FIG. 19 is a block diagram showing a configuration example of a motion vector detection unit 7A and a pixel pattern accumulator 8 according to the second embodiment.
- 61 is an adder for adding the evaluation value from the evaluation unit 4 and the cumulative value of the past evaluation values from the storage means 66, and 66 is each search vector.
- Storage means such as a memory and a memory for storing the cumulative number of evaluation values and the cumulative value of the evaluation value, and 67 represents the evaluation value based on the cumulative number of evaluation values and the cumulative value of each search vector. It is an arithmetic means such as a sequencer or processor that determines a search vector that terminates the calculation of.
- FIG. 18 The other components in FIG. 18 are the same as those according to the first embodiment, and a description thereof will not be repeated.
- the motion vector detector 7A does not continuously calculate the cumulative value of the evaluation values for all pixel patterns for each search vector, but searches for the offset (p,) of each pixel pattern. By changing the vector (x, y), the calculation is performed in parallel for a plurality of search vectors at the offset (p, q) of each pixel pattern.
- the calculating means 67 changes the search vector (X, y) for the offset (p, q) of each pixel pattern, and stores the offset (p, q) in the search window memory section 2,
- the search vector (x, y) is supplied to the exchange 3 and the reference memory unit 6, and the search vector (x, y) is supplied to the search window memory unit 2 and the exchange 3, and the cumulative value of the evaluation values of the search vector is calculated.
- the data is supplied from the storage means 66 to the adder 61. Then, the evaluation values for the offset and the search vector are calculated by the evaluation unit.
- FIG. 20 is a diagram showing an example of the cumulative number of evaluation values and the cumulative value of each search vector stored in the storage means 66.
- the calculating means 67 selects a search vector for which the accumulation of the evaluation values is stopped based on the cumulative value of the evaluation values for each search vector. Does not execute the calculation and deletes it from motion vector candidates.
- the motion vector detector 8A sequentially selects a plurality of search vectors for each pixel pattern, and for each search vector, Before the comparison of all the pixel patterns for one search vector is completed, the comparison of the search vector is performed according to the comparison result of the pixel patterns up to that point. Since the comparison of the pixel patterns of the search vectors was terminated, the search vector was deleted from the motion vector candidates, and the motion vector was detected from the remaining search vectors based on the result of the comparison. The search vector that is unlikely to become a motion vector is aborted, the amount of calculation required to detect the motion vector is reduced, and the motion vector can be detected in a short time. The effect is obtained that. '
- the block is divided into a plurality of divided blocks as in the conventional technology instead of a plurality of pixel patterns, and the accumulation of the evaluation values in a plurality of search vectors for one divided block is calculated.
- the search vector with a low cumulative value of the search vector stops accumulating the evaluation values, and the search vector is moved to the motion vector.
- a similar effect can be obtained by deleting the file from the file candidates.
- the motion vector detecting device is characterized in that the calculating means 67 of the motion vector detecting unit 7A performs the calculation based on the cumulative value of the evaluation value for each search vector at each cumulative number of times. Then, a search vector that terminates the accumulation of the evaluation values is selected and deleted from the motion vector candidates.
- the configuration of the motion vector detecting device according to the third embodiment is the same as that according to the second embodiment, and a description thereof will not be repeated.
- FIG. 21 is a diagram illustrating an example of discontinuing evaluation value accumulation according to the third embodiment.
- the calculating means 67 of the motion vector detecting unit 7A firstly accumulates the first evaluation value of a predetermined number of search vectors, and then evaluates the evaluation value of those search vectors. Smaller than 1 Delete anything other than 6. For example, in FIG. 21, the accumulation of evaluation values for search vectors other than the search vectors (xO, yO) to (xl5, yl5) is terminated.
- the calculating means 67 of the motion vector detection unit 7A executes the second accumulation of the evaluation values for the 16 search vectors.
- the calculating means 67 calculates the accumulation of the evaluation values of the search vectors for which the accumulation of the evaluation values is continued.
- the accumulation of evaluation values for search vectors that have a cumulative value of 1.5 times or more the average value is discontinued.
- the accumulation of the evaluation values for the search vector (X4, 4) and the search vector (X7, y7) is terminated. No.
- search vectors (xl1, y11), search vectors (xl3, y13), and search vectors (X15, y15) are obtained.
- the search vector (xl, y1) s search vector (X12, 12) and the search vector (xl4 , 14)
- the accumulation of evaluation values for the search vector (x9, y9) is terminated after the accumulation of evaluation values for the fifth time.
- the calculating means 67 determines that one of the search vectors in which the accumulation of the evaluation values is continued is one of the search vectors having the largest cumulative value of the evaluation values. The accumulation of evaluation values for is terminated. However, if the number of search vectors that continue to accumulate evaluation values becomes 2, the accumulation of evaluation values for the search vectors is not terminated. Then, among the search vectors remaining until the end, the one with the smallest evaluation value is regarded as the motion vector.
- the operation of the other components is the same as that according to the second embodiment, and a description thereof will not be repeated.
- the rating The conditions for terminating the accumulation of the value are not limited to the above-described method, and the number of search vectors in the first and last rounds, the cumulative number of times for changing the conditions, and the like may of course be changed.
- the calculating means 67 of the motion vector detecting unit 7A calculates the evaluation value based on the cumulative value of the evaluation value for each search vector at each cumulative number. Since the search vector for terminating the accumulation of the motion vectors is selected and deleted from the motion vector candidates, the effect of simplifying the process for terminating the accumulation of the evaluation values is obtained.
- the motion vector detecting device is the motion vector detecting device according to the third embodiment, wherein the accumulated values of the evaluation values for the plurality of search vectors are arranged in ascending or descending order. In this way, one or more search vectors are deleted from the motion vector candidates based on the order of the evaluation values in the array.
- FIG. 22 is a block diagram showing a configuration of a motion vector detection unit 7A and a storage means 66 of a pixel pattern accumulator 8A according to the fourth embodiment.
- 7 1 ⁇ 1 to 7 1 ⁇ (n + 1) constitute a shift register as storage means 66 (n + 1) pieces ( For example, 17 storage units.
- FIG. 23 is a block diagram showing a configuration example of each storage unit in FIG. In each storage unit ⁇ 1 shown in FIG. 23, reference numeral 81 denotes the accumulated value E (i) of the accumulated data stored in the register 84 and the accumulated value E (i) of the accumulated data from the pixel pattern accumulator 8 A.
- a comparator for comparing the accumulated value E (new) with a comparator 8 2 is a comparison result from the comparator 81 of the built-in storage unit 7 1-i, and a comparison result of the storage unit 7 1-(i _ 1) of the preceding stage. Comparison result from comparator 81, and comparison of storage unit 7 1 — (i + 1) at the subsequent stage Based on the comparison result from the storage unit 81, the accumulated data from the preceding storage unit 7 1— (i-1) and the accumulated data from the subsequent storage unit 7 1— (i + 1) are stored.
- a selection signal for selecting one of the accumulated data of the storage unit 71 1-i, the new accumulated data from the pixel pattern accumulator 8A, and the accumulated data having a predetermined maximum value as the accumulated value is generated.
- Reference numeral 83 denotes a selector for selecting any one of the accumulated data based on the selection signal from the control circuit 82, and reference numeral 84 denotes a register for storing the accumulated data.
- the arithmetic means 67 controls the control circuit 82 of each storage unit 71-i to cause the selector 83 to select accumulated data having a predetermined maximum value, and to cause the register 84 to select. .
- each storage unit 7 1—i stores the accumulated value E (i) of the accumulated data stored in the register 84 and the accumulated value E (i) of the accumulated data from the pixel pattern accumulator 8A. It compares with the accumulated value E (new), That is, the control circuit 82, and the storage units 7 1-(i-1) and 7 1-(i + 1) of the preceding and succeeding stages determine whether or not E (i)> E (new). To the control circuit 82.
- the control circuit 82 when E (i)> E (new) is not satisfied, the control circuit 82 generates a selection signal for selecting the accumulated data of the register 84, and when E (i)> E (new) is satisfied. If E (i-1)> E (new) for i> l, a selection signal for selecting new accumulated data from the pixel pattern accumulator 8A is generated, and for i> l If E (i-1)> E (new), a selection signal for selecting the accumulated data from the register 84 in the memory 71-(i-1) in the preceding stage is generated. The control circuit 82 generates the selection signal and supplies it to the selector 83.
- the selector 83 In response to the selection signal, the selector 83 accumulates the accumulated data from the register 84 and the accumulated data from the pixel pattern accumulator 8 A—the evening and previous storage units 7 1-(i-1) and 7 1-(i + Select one of the cumulative data from 1) and supply it to Regis 84.
- the register 84 updates the stored cumulative data with the supplied cumulative data in synchronization with a predetermined clock signal CLK.
- the evaluation values for the n search vectors are stored in the storage unit 66 in ascending order by the accumulation of the first evaluation values.
- the accumulated data is supplied to the arithmetic means 67 and the pixel pattern accumulator 8A from the first storage unit 71-1, that is, the storage unit having the accumulated data having the smallest accumulated value.
- the calculating means 67 specifies the search vector and the next pixel pattern in the accumulated data to calculate the evaluation value.
- the pixel pattern accumulator 8A stores the evaluation value from the storage unit 66.
- the evaluation value from the evaluation unit 4 is accumulated to the evaluation value in the accumulated data of, and the accumulation count is increased by one to generate a new accumulated data. Supply to i.
- the arithmetic means 67 controls the (n + 1) -th control circuit 82 of the storage sections 71-1 to 71- (n + 1) to store the (n + 1) -th storage section 71- (n + 1 ),
- the new cumulative data is memorized in the regis 84.
- the arithmetic means 67 shifts the accumulated data stored in the register 84 of the storage units 7 1-1 to 7 1-(n + 1), and the storage unit 7 1-(i +1)
- the storage unit 7 1— 1 to 7 1— (n ⁇ 1) stores the accumulated data with the accumulated count of 1, and the storage unit 7 1—n has the accumulated count of 2 and A certain accumulated data is stored.
- the accumulated data (the accumulated data having the smallest accumulated value among the accumulated data whose accumulation count is 1) is stored in the first storage unit 71-1—1 by the arithmetic means 67 and the pixel pattern accumulator 8A. Supplied.
- the calculating means 67 specifies the search vector and the next pixel pattern in the accumulated data and calculates the evaluation value.
- the pixel pattern accumulator 8A accumulates the evaluation value from the evaluation unit 4 on the evaluation value in the accumulated data from the storage unit 66, and The number of times is increased by 1 to generate new accumulated data, which is supplied to each storage unit 7 1-i of the storage unit 66.
- the arithmetic means 67 operates only the control circuit 82 of the storage unit ⁇ 1-n for storing the accumulated data whose accumulation number is 2, and the new accumulated value E (new) is stored in the register 8
- the new cumulative value E (new) is greater than or equal to the cumulative value E (n) of Reg.
- the accumulated data of the register section 84 of the storage section 7 1-2 to 7 1-n is sequentially stored in the register section 84 of the storage section 7 1-1 to 7 1-(n-1).
- the accumulated data is stored in the register 84 of the storage unit 7 1-n.
- the calculating means 67 calculates the register value of the storage unit 71-2-71- (n-1).
- the accumulated data in the evening 84 is shifted, and is sequentially stored in the register 84 of the storage unit 7 1-l to 7 1-(n-2), and the new accumulated data is stored in the storage unit 7 1-(n- 1)
- the calculating means 67 calculates the register value of the storage unit 71-2-71- (n-1).
- the memory 7 1; 7 7 1— (n ⁇ 2) stores the accumulated data whose cumulative number is 1.
- the storage units 7 1-(n ⁇ 1) and 7 1 ⁇ n store the accumulated data whose cumulative number is 2. One night is remembered.
- the evaluation values are calculated for the m-th search vector sequentially shifted to the storage unit 71-1, and the new accumulated data is calculated.
- the generated arithmetic means 67 operates the control circuit 82 of the storage unit 7 1— (n—m + l) to 71—n to store the accumulated data having the accumulated number of 2 to obtain the new accumulated value.
- the storage unit 7 1 1 2 to 7 1—j is shifted the accumulated data of the evening of 84, and is sequentially stored in the memory unit 7 1—1 to 7 1— (j-1) at the evening of 84.
- the new cumulative data is stored in the storage unit 7 1 —J Regis E 84 To ⁇ .
- the calculating means 67 calculates the value of the number n of the search vectors as Update to the value (n-D).
- the third and subsequent accumulations are performed in the same way as the accumulation of the second evaluation value.
- the motion vector detecting device includes a search vector corresponding to the minimum or maximum evaluation value in the cumulative evaluation value of the plurality of search vectors by the evaluation unit 4. Select the search vector, accumulate the evaluation values for the selected search vector, and if the number of accumulations of the minimum or maximum evaluation value is a predetermined number, move the search vector to the It is intended to be a supplement.
- the configuration of the motion vector detecting device according to the fifth embodiment is the same as that according to the second embodiment, and the operation of the motion vector detecting unit 7A Only different.
- FIG. 24 is a diagram illustrating an example of an order of accumulation of evaluation values according to the fifth embodiment.
- the calculating means 67 of the motion vector detection unit 7A firstly accumulates the first evaluation value of a predetermined number of search vectors, and then calculates the evaluation value of the search vectors. Small ones Delete anything but six.
- the calculating means 67 of the motion vector detecting unit 7A causes the second and subsequent evaluation values to be accumulated for the 16 search vectors.
- the calculating means 67 selects the search vector having the smallest cumulative value of the evaluation values from the 16 search vectors regardless of the cumulative number. Then, for the search vector, an evaluation value is calculated by designating the next pixel pattern at an offset, the evaluation value is accumulated, and the accumulated evaluation value is updated.
- the calculating means 67 calculates the accumulation of the evaluation value until a search vector having a predetermined number of times (the same number as the number of pixel patterns) of the search vector with the minimum value of the evaluation value appears. For the search vector having the minimum value, the evaluation value of the next pixel pattern is accumulated, the cumulative value of the evaluation value is updated, and the cumulative number of search vectors having the minimum evaluation value is a predetermined number.
- the search vector that is (the number of pixel patterns) is the motion vector.
- the search vector corresponding to the minimum value or the maximum value in the cumulative value of the evaluation values by the evaluation unit 4 for a plurality of search vectors is selected. Then, the evaluation value is accumulated for the selected search vector, and if the cumulative number of the minimum or maximum evaluation value is a predetermined number, the search vector is set as a motion vector candidate. In this way, the accumulation of evaluation values for search vectors that are likely to become motion vectors progresses further, so that motion vectors can be detected in a shorter time. The effect is obtained. Further, since the search vector having the smallest cumulative value is always selected, the search vector having the smallest cumulative value at the predetermined cumulative number of times is surely regarded as the motion vector. Implementation form ⁇ 6.
- the motion vector detection device is the motion vector detection device according to the fifth embodiment, wherein the accumulated values of the evaluation values for the plurality of search vectors are arranged in ascending or descending order.
- the search vector corresponding to the top of the array is selected, the evaluation values are accumulated for the selected search vector, and the accumulated evaluation values for a plurality of search vectors are calculated. Rearranged in ascending or descending order, and when the cumulative number of evaluation values at the top of the array is a predetermined number, the search vector is set as a motion vector. Things.
- FIG. 25 is a block diagram showing a configuration example of a motion vector detection unit 7A in the motion vector detection device according to the sixth embodiment.
- 7 1 ⁇ 1 to 7 1 ⁇ n represent n accumulated data so that the accumulated values of the evaluation values for n (for example, 16) search vectors are in ascending order.
- N is a storage unit that constitutes a shift register that stores the evaluation values.
- 67 is a unit for executing the accumulation of the evaluation value for the search vector in the accumulated data of the storage unit 71-1-1.
- the accumulated evaluation values of the search vector are rearranged in ascending order, and when the cumulative number of evaluation values at the head of the array is a predetermined number, the search vector is calculated as a motion vector. is there.
- the other components of the motion vector detecting device according to the sixth embodiment are the same as those according to the fifth embodiment, and a description thereof will not be repeated.
- the storage unit 71-i is the same as the storage unit 71-i shown in FIG.
- the arithmetic means 67 controls the control circuit 82 of each storage unit 71 1 i to cause the selector 83 to select accumulated data having a predetermined maximum value, and to cause the register 84 to select. .
- each storage unit 7 1—i stores the accumulated value E (i) in the accumulated data stored in the register 84 and the accumulated data in the accumulated data from the pixel pattern accumulator 8A.
- the control circuit 82 compares the accumulated value E (n ew) with the accumulated value E (n ew), that is, whether or not E (i)> E (n ew), and the storage sections at the preceding and subsequent stages. It is supplied to the control circuits 82 of 7 1— (i-1) and 7 1— (i + 1).
- the control circuit 82 when E (i)> E (new) is not satisfied, the control circuit 82 generates a selection signal for selecting the accumulated data of the register 84, and when E (i)> E (new) is satisfied. If E (i-1)> E (new) for i> l, a selection signal for selecting new accumulated data from the pixel pattern accumulator 8A is generated, and for i> l If E (i-1)> E (new), a selection signal for selecting the accumulated data from the register 84 of the storage unit 7 1-(i-1) in the preceding stage is generated. The control circuit 82 generates the selection signal and supplies it to the selector 83.
- the selector 83 In response to the selection signal, the selector 83 accumulates the accumulated data from the register 84 and the accumulated data from the pixel pattern accumulator 8 A—the evening and previous storage units 7 1— (i ⁇ 1), 7 1— (i + 1) Select one of the accumulated data from and supplies it to Regis 84.
- the register 84 updates the stored cumulative data with the supplied cumulative data in synchronization with a predetermined clock signal CLK.
- the accumulated data of the n search vectors is stored in the storage means 66 in the ascending order of the evaluation values (accumulated values) by the first accumulation of the evaluation values.
- the calculating means 67 calculates the accumulated data stored in the first storage unit 711, that is, the accumulation data having the smallest accumulated value.
- the next pixel pattern is specified by offset for the search vector in the night, and the next evaluation value is calculated.
- the evaluation value is supplied from the evaluation unit 4 to the pixel pattern accumulator 8A.
- the new accumulated data is supplied from the pixel pattern accumulator 8 A to the comparators 81 and selectors 83 of the storage units 71-1 to 71-n.
- each storage unit 7 1 i stores the accumulated value E (i) of the accumulated data stored in the register 84 and the accumulated value E (new) of the accumulated data from the pixel pattern accumulator 8 A. ) And the result of the comparison, that is, whether or not E (i)> E (new) is determined by the control circuit 82 and the preceding and succeeding storage units 7 1— (i ⁇ 1), 7 1— (i + 1) are supplied to the control circuit 82.
- the storage unit 7 1- Generate a selection signal to select the accumulated data from (i + 1), and if E (i + 1)> E (new) and not E (i)> E (new), Generate a selection signal from the pattern accumulator 8 A for selecting a new accumulated data, and E (i)> E (new) and E (i + 1)> E (new) If the Regis 84 generates a selection signal to select the cumulative de-night.
- the control circuit 82 of the storage unit 71-n When E (n)> E (n ew) is not satisfied, the control circuit 82 of the storage unit 71-n generates a selection signal for selecting new accumulated data from the pixel pattern accumulator 8A.
- the control circuit 82 generates a selection signal and supplies it to the selector 83.
- the selector 83 selects one of the accumulated data from the register 84, the accumulated data from the pixel pattern accumulator 8A, and the accumulated data from the memory 71- (i + 1) in the subsequent stage. Choose one and supply to Regis Evening 84.
- the register 84 updates the stored accumulated data with the supplied accumulated data in synchronization with a predetermined clock signal CLK.
- the accumulation of the evaluation values for the second and subsequent times the accumulation of the evaluation values for the search vector having the smallest cumulative value is sequentially performed, and a new accumulated data for the search vector is obtained.
- the data is supplied to the storage means 66, the original accumulated data of the search vector is discarded, and n accumulated data including the new accumulated data are arranged in ascending order of the accumulated value. .
- the accumulated data are arranged in ascending order of the accumulated values of the evaluation values, but may be arranged in descending order depending on how the evaluation values are calculated.
- the cumulative values of the evaluation values for a plurality of search vectors are arranged and stored in ascending or descending order, and the search corresponding to the top of the array is performed.
- Select a vector accumulate the evaluation values for the selected search vector, rearrange the accumulated evaluation values for multiple search vectors in ascending or descending order, and evaluate the top of the array.
- the search vector is set as a motion vector, so the next time a search vector for executing evaluation value accumulation is selected, an array
- the search vector at the beginning of the search vector only needs to be selected, and there is no need to refer to the cumulative value of the evaluation values for each search vector, and the accumulation of the evaluation values is terminated. This has the effect of being able to do so.
- the motion vector detecting device when performing bidirectional prediction as in the MPEG 2 method, performs a predetermined row and a predetermined line from a block position in an encoded frame. Rows of forward movement
- the pixel data of the first search window for detecting the vector and the second search window for detecting the backward motion vector are stored in the search window memory unit 2 in the same manner as described above. Thus, a forward motion vector and a backward motion vector are detected.
- the configuration of the motion vector detecting device according to the seventh embodiment is the same as that according to any one of the first to sixth embodiments.
- the memory 111 of the search window memory unit 2 (I , J) stores pixel data in the forward and backward search windows.
- FIG. 26 is a diagram showing an example of a forward search window and a forward search block.
- FIG. 27 shows an example of a backward search window and a backward search block.
- the memory 11-(I, J) of the search window memory unit 2 stores pixel data in the forward search window, and thereafter, The pixel data in the backward search window is stored at the address.
- the forward motion vector is searched and detected as in the above-described first to sixth embodiments.
- a backward motion vector is searched and detected in the backward search window as in the above-described first to sixth embodiments.
- the first search window for detecting a forward motion vector in a predetermined row and a predetermined column from a block position in an encoded frame is stored in the search window memory unit 2 and the forward motion vector and the backward motion vector are stored from the data. Since the motion vector is detected, the search window Although the storage capacity required for the memory section 2 is increased, an effect is obtained that the forward and backward motion vectors can be detected without increasing other components.
- the seventh embodiment is applied to any of the first to sixth embodiments, it may be applied to a conventional motion vector detecting device.
- the number of pixels in the above search window, blocks and pixel patterns, and the number of memories 11- (I, J) and 16- (I, J) are only examples and may be changed as necessary. May be other numbers.
- the present invention is suitable for detecting a motion vector in an image processing method for performing motion prediction.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002540466A JPWO2002037860A1 (ja) | 2000-10-27 | 2000-10-27 | 動きベクトル検出装置 |
CN00817874.7A CN1415171A (zh) | 2000-10-27 | 2000-10-27 | 运动矢量检测装置 |
EP00970180A EP1331826A1 (en) | 2000-10-27 | 2000-10-27 | Moving vector detector |
PCT/JP2000/007598 WO2002037860A1 (en) | 2000-10-27 | 2000-10-27 | Moving vector detector |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2000/007598 WO2002037860A1 (en) | 2000-10-27 | 2000-10-27 | Moving vector detector |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2002037860A1 true WO2002037860A1 (en) | 2002-05-10 |
Family
ID=11736634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2000/007598 WO2002037860A1 (en) | 2000-10-27 | 2000-10-27 | Moving vector detector |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1331826A1 (ja) |
JP (1) | JPWO2002037860A1 (ja) |
CN (1) | CN1415171A (ja) |
WO (1) | WO2002037860A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4610523B2 (ja) * | 2006-06-13 | 2011-01-12 | Okiセミコンダクタ株式会社 | 動画処理装置 |
EP2665271A4 (en) * | 2011-01-12 | 2014-06-18 | Panasonic Corp | VIDEO CODING METHOD AND VIDEO CODING METHOD |
KR101878008B1 (ko) | 2011-03-03 | 2018-07-13 | 선 페이턴트 트러스트 | 동화상 부호화 방법, 동화상 복호 방법, 동화상 부호화 장치, 동화상 복호 장치 및 동화상 부호화 복호 장치 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02274083A (ja) * | 1989-04-17 | 1990-11-08 | Nec Corp | 動ベクトル検出装置 |
JPH02295288A (ja) * | 1989-05-10 | 1990-12-06 | Nec Corp | 動ベクトル検出装置 |
JPH04180382A (ja) * | 1990-11-14 | 1992-06-26 | Matsushita Electric Ind Co Ltd | 動ベクトル検出方法 |
JPH05260460A (ja) * | 1992-03-09 | 1993-10-08 | Matsushita Electric Ind Co Ltd | 動き検出装置 |
JPH07162864A (ja) * | 1993-12-08 | 1995-06-23 | Ricoh Co Ltd | 動きベクトル検出方法 |
JP2000069484A (ja) * | 1998-08-21 | 2000-03-03 | Sony Corp | 動きベクトル算出方法及び動きベクトル算出プログラムを記録した記録媒体 |
-
2000
- 2000-10-27 WO PCT/JP2000/007598 patent/WO2002037860A1/ja not_active Application Discontinuation
- 2000-10-27 EP EP00970180A patent/EP1331826A1/en not_active Withdrawn
- 2000-10-27 JP JP2002540466A patent/JPWO2002037860A1/ja active Pending
- 2000-10-27 CN CN00817874.7A patent/CN1415171A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02274083A (ja) * | 1989-04-17 | 1990-11-08 | Nec Corp | 動ベクトル検出装置 |
JPH02295288A (ja) * | 1989-05-10 | 1990-12-06 | Nec Corp | 動ベクトル検出装置 |
JPH04180382A (ja) * | 1990-11-14 | 1992-06-26 | Matsushita Electric Ind Co Ltd | 動ベクトル検出方法 |
JPH05260460A (ja) * | 1992-03-09 | 1993-10-08 | Matsushita Electric Ind Co Ltd | 動き検出装置 |
JPH07162864A (ja) * | 1993-12-08 | 1995-06-23 | Ricoh Co Ltd | 動きベクトル検出方法 |
JP2000069484A (ja) * | 1998-08-21 | 2000-03-03 | Sony Corp | 動きベクトル算出方法及び動きベクトル算出プログラムを記録した記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
EP1331826A1 (en) | 2003-07-30 |
JPWO2002037860A1 (ja) | 2004-03-11 |
CN1415171A (zh) | 2003-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6690730B2 (en) | Motion estimator | |
US5450553A (en) | Digital signal processor including address generation by execute/stop instruction designated | |
JPH06334980A (ja) | 動画像の動きベクトル検出装置 | |
US6687299B2 (en) | Motion estimation method and apparatus for interrupting computation which is determined not to provide solution | |
WO2002037860A1 (en) | Moving vector detector | |
JPH0965339A (ja) | 画像ブロック動き検出装置 | |
JP4695124B2 (ja) | 動画像符号化における動き探索装置 | |
JP2004048512A (ja) | 動画像符号化方法と動画像符号化回路 | |
JP2002152750A (ja) | 動きベクトル検出方法および装置 | |
KR0178302B1 (ko) | 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기 | |
US6931066B2 (en) | Motion vector selection based on a preferred point | |
KR20010052624A (ko) | 움직임 추정 | |
CN111968151A (zh) | 一种运动估计精细搜索方法及装置 | |
JP4859168B2 (ja) | 動き検出装置及び動き検出方法 | |
JP2885039B2 (ja) | 動きベクトル検出回路 | |
JPH10304371A (ja) | 動きベクトル検出装置 | |
JP2866325B2 (ja) | 動きベクトル探索装置 | |
JPH0993581A (ja) | 動画像符号化装置の動き検出装置 | |
JP2618146B2 (ja) | 動きベクトル検出回路 | |
WO2009074947A1 (en) | Instruction set for parallel calculation of sad values for motion estimation | |
JP2901848B2 (ja) | ベクトル相関検出回路 | |
KR100223052B1 (ko) | 비디오 움직임 추정장치 | |
JP2931789B2 (ja) | 動きベクトル探索装置 | |
JPH10164586A (ja) | 動きベクトル検出回路 | |
JPH1079943A (ja) | 動きベクトル検出装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 10130257 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2000970180 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref country code: JP Ref document number: 2002 540466 Kind code of ref document: A Format of ref document f/p: F |
|
WWE | Wipo information: entry into national phase |
Ref document number: 008178747 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWP | Wipo information: published in national office |
Ref document number: 2000970180 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2000970180 Country of ref document: EP |