专利汇可以提供Apparatus for estimating real-time motion and a method thereof专利检索,专利查询,专利分析的服务。并且,下面是Apparatus for estimating real-time motion and a method thereof专利的具体信息内容。
The present invention relates to an apparatus for estimating motion and a method thereof, and more particularly to an apparatus for estimating real-time motion in a motion-compensated predictive coder for data compression of a motion image and a method suitable for the apparatus.
A predictive coding technique is utilized to heighten data compression efficiency during transmitting or recording of motion image data on a recording medium. Especially in data having great motion, a motion-compensated predictive coding technique is generally employed to prevent the degradation of the data compression efficiency which is caused by a simple predictive coding. In the motion-compensated predictive coding, an error signal is not solely transmitted or recorded as in the simple predictive coding, but motion information is extracted to thereby transmit and record both the error signal and motion information. Here, the block most similar to a certain block of a current frame is searched in a fixed search area of a previous frame, so that the searched block is used as a predicted value during the predictive coding. The search area is constituted by all the surrounding areas centering around the certain block of the current frame, and the relative distance from the current position to the position of the similar block within the search area is termed as a "motion vector" or "displacement vector." That is, the motion vector is the relative distance of the current block position and the position of the most similar previous block. Thus, an absolute value of the motion vector becomes large when the motion is great, it becomes small when the motion is slight, and becomes (0, 0) when there is no motion. The search of the motion vector of the previous block having a minimum error value is called as a motion estimation. and generally adopts a block-matching algorithm (BMA). The BMA commonly utilizes a full search technique wherein the most similar previous block is obtained by a comparative operation in the ratio of 1:1 with the current block, with respect to all blocks formable in the search area. Such a BMA is disclosed in "IEEE Transactions on Circuits and Systems for Video Technology", vol.2, nº 2, June 1992, p. 169-175; HSIEH et al.: "VLSI Architecture for Block-Matching Motion Estimation Algorithm". However, since all blocks are compared one-to-one in the full search, both the overflow of the operation and the need for many I/O pins impede the hardware realization of a real-time motion vector estimator.
The similarity calculation of the compared blocks uses a minimum absolute error D(i, j), which can be written as:
Among the thus-obtained D(i, j) values, the relative position of the previous block having the minimum error value with respect to the current block becomes the motion vector. An example of the operation amount and processing speed required for realizing the hardware for real-time motion estimation can be give as a set of circumstances:
The present invention is contrived to solve the above-described problem of the prior art. It is an object of the present invention to provide an apparatus for estimating real-time motion of a motion-compensated predictive coder capable of real-time processing, and a method suitable for the apparatus.
It is another object of the present invention to provide an apparatus for estimating real-time motion capable of minimizing the number of I/O pins in a single chip.
To achieve the above objects according to the present invention, there is provide a real-time motion estimation apparatus for performing one-to-one comparison of a plurality of previous pixel blocks having a size of Mlines×Ndots within a search window having a size of (2M - 1)lines × (2N - 1)dots with a current pixel block having a size of Mlines×Ndots in order to extract relative position information between the current pixel block and the previous pixel block most similar to the current pixel block as motion information, which comprises:
That is, through the above-described construction in the present invention, the pixel values of the current block and the previous block within the search are sequentially input to thereby minimize the I/O pin numbers, so that the realization of a VLSI is facilitated. Also, by including processing elements which are the same as the previous block numbers, the operation simultaneously begins and ends in parallel, thereby performing a real time operation. Here, the transmission of pixel data required for each processing element is carried out such that pixel data of the current block is simultaneously transmitted, and the pixel data of the previous block is transmitted by means of a horizontal and vertical pipeline system. By this transmission line structure, the apparatus for estimating motion has a systematic bus structure and the I/O pin number can be minimized. Furthermore, in order to produce a minimum absolute error, the error data is divided into a plurality of groups, the divided error data is simultaneously compared per group, and then each minimum absolute error of each group is compared, thereby producing the final minimum absolute error. Thus, the circuitry is simplified and the signal delay is shortened, which realizes effective hardware.
Moreover, according to the present invention, an error value with respect to a certain motion vector from external unit can be output.
The above objects and other advantages of the present invention will become more apparent by describing in detail a preferred embodiment thereof with reference to the attached drawings in which:
In FIG. 1, a reference symbol CB designates a current block size of Mlines×Ndots in the current frame, wherein M=N=16. SW is a search area in a previous frame, i.e., a search window size of (2M-1)lines×(2N-1)dots. Therefore, the search window includes M×N previous blocks (PB) having the same size as current block CB. Search window SW sets the left uppermost pixel position of current block CB as reference coordinates (0, 0), and has respective coordinates from -8 to M+6 in the vertical direction and from -8 to N+6 in the horizontal direction. Accordingly, i and j of motion vector MV(i,j) which represents the relative displacement from the left uppermost pixel position of current block CB to the left uppermost pixel position of each previous block PB, exist within the range of -8≤i, j≤7. The motion estimation is carried out in such a manner that a subtraction operation is performed for the 256 pixels in current block CB and the corresponding 256 pixels in the previous block, and then absolute values of the difference values are obtained, whereby a previous block whose sum of 256 absolute values is minimum is assumed to be in the 145° oblique-lined portion, and motion vector MV(i,j) and a minimum absolute error D(i,j) which is the above sum are provided as motion estimation data.
FIG. 2 illustrates a block diagram showing an apparatus for estimating real-time motion according to the present invention. The apparatus includes a previous block formation unit 100, a block-matching algorithm (BMA) processor 200, a minimum absolute error (MAE) detector 300, a motion vector (MV) generator 400, an output controller 500, and a control signal generator 600.
Previous block formation unit 100 receives first and second serial pixel data strings SPD1 and SPD2 within a search window, and sequentially outputs block pixel data strings PBD in parallel respectively corresponding to all previous blocks PB(i,j) within the search window. Referring to FIG. 3, previous block formation unit 100 includes a first demultiplexer 110, a first latch 120, an M×N first shift register matrix 130, a second demultiplexer 140, a second latch 150, and an (M-1)×N second shift register matrix 160. First demultiplexer 110 sequentially receives the pixel data string of upper sixteen rows of the search window for each column and demultiplexes the received pixel data strings to be supplied to first latch 120. First latch 120 parallel outputs the latched pixel data of the upper sixteen rows by a first predetermined clock period. M×N first shift register matrix 130 leftward-horizontally shifts the parallel pixel data of the upper sixteen rows supplied from first latch 120 by a second predetermined clock period, and upward-vertically shifts them by a third predetermined clock period. Corresponding to each previous block PB within the search window, each first shift register SRA forms the M×N pixel data of the corresponding previous block PB into serial data PBD(x, y) to thereby output the serial data.
Accordingly, M×N first shift register matrix 130 simultaneously outputs each serial data string of M×N previous blocks in parallel. Second multiplexer 140 sequentially inputs pixel data strings of the lower fifteen rows of the search window per column, and demultiplexes the input pixel data strings to be supplied to second latch 150. Second latch 150 parallel outputs latched pixel data of the lower fifteen rows by the first predetermined clock period. (M-1)×N second shift register matrix 160 leftward-horizontally shifts the parallel pixel data of the lower fifteen rows supplied from second latch 150 by the second predetermined clock period, and upward-vertically and recursively shifts them by the third predetermined clock period. The second shift registers SRB at the uppermost line are connected to supply data to the first shift registers SRA at the lowest line of M×N first shift register matrix 160.
Referring to FIG. 4, first shift register SRA has a first flip-flop FF1 for horizontal-shifting, a second flip-flop FF2 for vertical-shifting and a multiplexer MUX1 for selectively outputting the outputs of first and second flip-flops FF1 and FF2.
Referring to FIG. 5, second shift register SRB has a multiplexer MUX2 for selecting data supplied from registers on the right and lower parts of multiplexer MUX2 and a flip-flop FF3 for supplying the data which is selected in multiplexer MUX2 to the registers on the left and upper parts of multiplexer MUX2 according to a clock signal.
Referring to FIG. 6, BMA operation processor 200 includes an M×N processing element PE matrix corresponding to M×N previous blocks. Referring to FIG. 7, each processing element PE has a subtractor SUB for performing the subtraction of a pixel data string CBD of current block CB and pixel data string PBD(x, y) of a previous block PB(x, y), an absolute value producer ABS for obtaining the absolute value of the output from subtractor SUB, an accumulator ACC for accumulating absolute values with respect to M×N pixel data. and an output latch LT1 for outputting the accumulated value of accumulator ACC as an error BE(i, j) with respect to current block CB off previous block PB. Accumulator ACC has an adder ADD and a vertical latch LT2.
Therefore, BMA operation processor 200 simultaneously generates M × N errors BE(i, j) of M × N previous blocks PB with respect to current blocks CB by real-time processing.
Referring to FIG. 8. MAE detector 300 has four group minimum detectors 310, 320, 330 and 340 to produce group minimum error per group which are obtained by dividing the error into four groups, a first group of BE(1, 1) ∼ BE(
Therefore, in order to speed up the comparing detection, MAE detector 300 performs the comparison per four groups, and outputs final minimum absolute error MAE by comparing the minimum values of respective blocks with each other per blocks.
Referring to FIG. 9, MV generator 400 includes a motion vector (MV) look-up table 410 for sequentially generating the motion vectors corresponding to previous blocks PB of each group, group motion vector selectors 420, 430, 440 and 450 respectively corresponding to the group minimum detectors of MAE detector 300, and an output latch LT5. The group MV selectors respectively include a first multiplexer MUX6 for selecting the motion vectors supplied from MV look-up table 410 and another group in response to group selection signal GPS, a second multiplexer MUX7 for selecting the input motion vector and the latched motion vector in response to each selection signal GSA through GSD supplied from MAE detector 300, and a latch LT4 for latching the motion vector selected in second multiplexer MUX7. First group MV selector 420 further has a third multiplexer MUX8 for selecting one between motion vectors selected from the second group and another group to thereby supply the selected motion vector to first multiplexer MUX6 thereof as the motion vector of another group. The output from second multiplexer MUX7 of first group MV selector 420 is supplied to output latch LT5. The output from latch LT4 of first group MV selector 420 is supplied to third group MV selector 440, and the output from latch LT4 of third group MV selector 440 is supplied to fourth group MV selector 450. The output from latch LT4 of third group MV selector 440 is supplied to fourth group MV selector 450, and the output from latch LT4 of fourth group MV selector 440 is supplied to second and first group MV selectors 430 and 420.
Thus, MV generator 400 selects the previous block's motion vector corresponding to the minimum value detected by being synchronized to the minimum value detecting operation of MAE detector 300, thereby simultaneously producing and outputting motion vector MV(i,j) of the previous block PB having the final minimum error and the minimum absolute error.
Referring to FIG. 10, output controller 500 includes an I/O bus interface 510, a counter CNT, a first multiplexer MUX9 and a second multiplexer MUX10. Counter CNT which is a 64-mode counter for counting to 64 by inputting a clock signal, generates error selection signal BES. In response to a group selection signal GPS, first multiplexer MUX9 selects error selection signal BES generated from 64-mode counter CNT and an error selection signal input from an external portion, thereby outputting error selection control signal BES of MAE detector 300. Second multiplexer MUX10 selects block errors ERA, ERB, ERC and ERD of each group from MAE detector 300 in response to the externally input selection signal, and provides the selected one to I/O bus interface 510. I/O bus interface 510 receives the reference block error BE(
Control signal generator 600 receives a clock signal to thereby supply various control signals to respective units described above.
According to the present invention as described above, in order to minimize the number of I/O pins, a serial input system is utilized for data input from an external unit, all previous blocks and current blocks are simultaneously processed in parallel by means of a pipeline system in internal processing, and a minimum value or each group is detected together with the selection of the corresponding motion vector. As a result, a high processing speed can be achieved which enables the estimation of real-time motion.
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
一种基于类Haar视觉特征感知的运动估计方法 | 2020-05-08 | 874 |
帧间运动估计方法、装置及电子设备 | 2020-05-13 | 589 |
HEVC整像素运动估计方法及装置 | 2020-05-11 | 347 |
基于中智学理论的乳腺超声视频图像实时分割系统 | 2020-05-12 | 155 |
一种语义驱动的相机定位与地图重建方法和系统 | 2020-05-15 | 328 |
石化工厂巡检机器人环境建模与地图构建装置和方法 | 2020-05-08 | 577 |
一种视频图像超分辨率重建方法及装置 | 2020-05-11 | 422 |
一种智能监控机器人 | 2020-05-11 | 1040 |
用于兴趣区编码的运动约束图块集合 | 2020-05-15 | 572 |
一种连续图像的目标检测方法、装置、设备及存储介质 | 2020-05-08 | 943 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。