CN100373949C - A hardware accelerator and method for realizing motion estimation thereof - Google Patents

A hardware accelerator and method for realizing motion estimation thereof Download PDF

Info

Publication number
CN100373949C
CN100373949C CNB2005100646274A CN200510064627A CN100373949C CN 100373949 C CN100373949 C CN 100373949C CN B2005100646274 A CNB2005100646274 A CN B2005100646274A CN 200510064627 A CN200510064627 A CN 200510064627A CN 100373949 C CN100373949 C CN 100373949C
Authority
CN
China
Prior art keywords
estimation
data
macro block
module
candidate blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100646274A
Other languages
Chinese (zh)
Other versions
CN1665306A (en
Inventor
白锋
怀千江
夏煜
王浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vimicro Corp
Original Assignee
Vimicro Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CNB2005100646274A priority Critical patent/CN100373949C/en
Publication of CN1665306A publication Critical patent/CN1665306A/en
Application granted granted Critical
Publication of CN100373949C publication Critical patent/CN100373949C/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The present invention discloses a hardware acceleration device which comprises an external interface module, a memory module, a data transmission module and a control module, wherein the motion estimation data of at least two motion estimation macro blocks is obtained by the external interface module and is saved to the memory module; the data transmission module is used for transmitting the motion estimation data of each of the motion estimation macro blocks to one corresponding calculating module of the motion estimation macro block. The present invention also comprises at least two calculating modules and the corresponding comparison modules of the calculating modules, wherein each of the calculating modules receives the motion estimation data of each of the motion estimation macro blocks for calculating, calculating results are sent to the corresponding comparison modules which are used for comparing the calculating results, and the motion vectors of the corresponding motion estimation macro blocks are output. The present invention also discloses a method for realizing motion estimation. Motion estimation is carried out to at least two of the adjacent macro blocks simultaneously by the device and the method, so the processing speed of the motion estimation of each frame of images is increased, and the amount of the data transmission is reduced.

Description

The method of a kind of hardware accelerator and realization estimation thereof
Technical field
The present invention relates to image processing field, refer to the method for a kind of hardware accelerator and realization estimation thereof especially.
Background technology
In image processing, generally adopt mpeg standard that view data is carried out encoding and decoding, mpeg standard comprises MPEG2, H263, MPEG4 and H264 etc.Mpeg standard is only encoded to the interframe fresh information, thereby avoid frame is asked the direct coding of redundant information, realize the compression of view data, the basic thought of this standard is: belong to the interframe movement displacement if interframe changes, the most information of present frame (PresentFrame) still can be derived from the view data of previous frame and be obtained, and then needing to carry out information encoded only is the motion vector that characterizes the interframe movement displacement.
Because mpeg standard only to interframe movement displacement coding, has consequence so calculate the motion vector of present frame in image processing, account for 60% of whole cataloged procedure operand.The method of described calculation of motion vectors is called estimation, after the employing method for estimating calculates motion vector, just can go out present frame information according to the moving displacement relation derivation between present frame and the previous frame, saves amount of coded data.
The method of current frame image being carried out estimation is: current frame image is divided into several macro blocks (Block), each macro block is carried out estimation, promptly find out in numerous of the previous frames piece with certain macro block difference minimum, and calculate moving displacement between the minimum differentiation piece of this macro block of present frame and previous frame, just obtain the motion vector of this macro block.The previous frame of present frame is called reference frame (ReferenceFrame), the piece of selecting the field of search (Search Area) in the reference frame is as candidate blocks (CandidateBlock), the macro block of each candidate blocks and present frame is compared, find out the piece of difference minimum.Definite method of the described field of search is comparatively flexible.
Because the amount of calculation of estimation is big, if allow CPU carry out this operation meeting occupying system resources, make the image processing speed of CPU slack-off, therefore adopt special hardware accelerator to finish estimation, this hardware accelerator carries out the execution speed of the speed of estimation much larger than CPU.Fig. 1 is the composition structure chart of hardware accelerator in the prior art.This hardware accelerator comprises:
External interface module 101 is used to receive the motion estimation data of the single macro block of sending the outside and is saved in memory module 102.
This motion estimation data comprises the macro block data and the field of search data of this macro block in reference frame of carrying out this estimation in the present frame.It is grand certainly that the macro block data that carries out this estimation in the present frame is called estimation.External interface module 101 is saved in estimation macro block memory module 1021 with the estimation macro block, and field of search data are saved in field of search data memory module 1022.
Memory module 102 comprises estimation macro block memory module 1021 and field of search data memory module 1022, is respectively applied for storing moving and estimates macro block and field of search data, thereby provide the data of carrying out estimation for computing module 105.
Data transmission module 103 comprises macro block data transport module 1031 and search data transport module 1032.Described macro block data transport module 1031 is used for the estimation macro block of estimation macro block memory module 1021 storages is transferred to computing module 105.Described search data transport module 1032 is used for the field of search transfer of data of field of search data memory module 1022 storages is arrived computing module 105.
Control module 104 is used to control the reception of the motion estimation data of sending 101 pairs of outsides of external interface module, and the transfer of data of schedule data transmission module 103.
Computing module 105 is used to receive estimation macro block and field of search data, calculates the difference of estimation macro block and field of search data, and result of calculation is sent to comparison module 106.
Comparison module 106 is used to receive and the result of calculation of computing module 105 relatively, estimates the motion vector of macro block according to the comparative result output movement.
Macro block with 16 * 16 sizes is an example below, and the method for hardware accelerator realization estimation shown in Figure 1 is described, the detailed process of this method for estimating as shown in Figure 2.
Step 201, hardware accelerator obtain the motion estimation data of single macro block by external interface module 101 and preserve from the outside.
Hardware accelerator can obtain motion estimation data from external register by the CPU that is used for image processing.
Fig. 3 is the position view of estimation macro block and field of search data.Wherein, grey block is the estimation macro block of present frame; The piece of label from 1 to 9 is referred to as field of search data, and each piece in this data field is called candidate blocks.The system of selection of field of search data is comparatively various, and Fig. 3 only is a kind of system of selection, and following description will be illustrated with field of search data instance shown in Figure 3.
Step 202, control module 104 control data transmission modules 103 arrive computing module 105 with the transfer of data in the memory module 102.
Described data transmission module 103 comprises macro block data transport module 1031 and search data transport module 1032.
Wherein, macro block data transport module 1031 is used for by row transmitting moving estimation macro block first line data being transferred to PE0, and second line data is transferred to PE1, and the like, the 16 line data is transferred to PE15.Perhaps transport the moving macro block of estimating, first columns reportedly is passed to PE0 by biographies, and the like, the 16 columns reportedly is passed to PE15.Following narration is all transmitted data instance with macro block data transport module 1031 by row.
Search data transport module 1032 is used for by row transmission field of search data, field of search data have nine candidate blocks, the size of each candidate blocks all is 16 * 16, so search data transport module 1032 is transferred to PE0 with first line data that nine candidates determine, second line data is transferred to PE1, and the like, the 16 line data is transferred to PE15.Perhaps press the defeated field of search of biographies data, first columns reportedly is passed to PE0, and the like, the 16 columns reportedly is passed to PE15.Following narration is all transmitted data instance with search data transport module 1032 by row.
Step 203, computing module 105 calculate the difference of each candidate blocks in estimation macro block and the field of search data, and the result is outputed to comparison module 106.Wherein, the difference of estimation macro block and candidate blocks is usually expressed as summed absolute difference.
Computing module 105 can comprise a plurality of calculating sub module PE, and each calculating sub module PE is used for delegation/columns according to calculating usually.Because the macroblock size of handling in this example is 16 * 16, so 16 calculating sub module PEi are set, wherein i can be any integer of O~15.The corresponding line data of supposing to be transferred to the estimation macro block among the PEi are S (i+1, n), the corresponding line data of candidate blocks 1 shown in Figure 3 are R (i+1+16, n-16), the corresponding line data of candidate blocks 2 be R (i+1+16, n), and the like, the corresponding line data of candidate blocks 9 be R (i+1-16, n+16).Calculating estimation macro block i+1 is capable with the method candidate blocks 1 capable difference of i+1 to be: (i+1 is n) with R (i+1+16, summed absolute difference n-16) to calculate S according to formula (1).
Sum = Σ n | S ( i + 1 , n ) - R ( i + 1 + 16 , n - 16 ) | - - - ( 1 )
It is capable similar with method and the said method capable difference of other candidate blocks i+1 to calculate estimation macro block i+1, repeats no more herein.After calculating finished, PEi exported nine result of calculations altogether to comparison module 106.
In actual applications, the method to set up of calculating sub module is comparatively flexible, can calculating sub module be set according to the number of candidate blocks, is calculated difference of estimation macro block and one of them candidate blocks or the like by each calculating sub module.
The result that step 204,106 pairs of computing modules 105 of comparison module calculate compares, and obtains the motion vector and the output of estimation macro block.
Comparison module 106 obtains the summed absolute difference of estimation macro block the 1st row and nine candidate blocks the 1st row from PE0, obtain the summed absolute difference of estimation macro block the 2nd row and nine candidate blocks the 2nd row from PE1, and the like, obtain the summed absolute difference of estimation macro block the 16th row and nine candidate blocks the 16th row from PE15, and summed absolute difference additions of all row of each candidate blocks are obtained the difference of this candidate blocks and estimation macro block, the difference size that compares nine candidate blocks, for with the candidate blocks of estimation macro block difference minimum, can calculate the motion vector of estimation macro block according to the moving displacement between estimation macro block and the minimum candidate blocks of difference.Suppose the difference minimum of candidate blocks 9 among Fig. 3, the motion vector that then can calculate this estimation macro block is (16,16).
For the macro block of sizes such as 16 * 8 or 8 * 8, this hardware accelerator realizes that the method for estimation is similar, repeats no more herein.
Hardware accelerator shown in Figure 1 once only can carry out estimation to a macro block, and the estimation of finishing a macro block need obtain the motion estimation data of this macroblock size more than ten from the register of CPU.Because every two field picture is divided into many macro blocks, finish the estimation of a two field picture and need carry out great amount of data transmission, thereby the disposed of in its entirety speed and the power consumption that have reduced motion estimation algorithm is big.
Summary of the invention
In view of this, main purpose of the present invention is to provide a kind of hardware accelerator, improves the processing speed of every two field picture being carried out estimation.
Another purpose of the present invention is to provide a kind of method that realizes estimation, reduces volume of transmitted data when every two field picture is carried out estimation, improves the processing speed of estimation.
For achieving the above object, technical scheme of the present invention specifically is achieved in that
A kind of hardware accelerator, comprise: external interface module, memory module, data transmission module, control module, described control module are used to control motion estimation data and the control data transmission module that external interface module receives the estimation macro block and carry out the transmission of motion estimation data;
It is characterized in that described external interface module is obtained the motion estimation data of at least two estimation macro blocks from the outside, be saved in memory module;
Described data transmission module is used for the motion estimation data of each estimation macro block of memory module is transferred to the computing module of this estimation macro block correspondence;
This device also comprises:
At least two computing modules and the comparison module corresponding with each computing module, described each computing module receive the motion estimation data of each estimation macro block and calculate, and result of calculation is sent to corresponding comparison module; Comparison module compares result of calculation, exports the motion vector of corresponding estimation macro block.
Further, described each computing module comprises at least one calculating sub module, and data transmission module is transferred to different calculating sub module respectively with the motion estimation data of the corresponding estimation macro block of each computing module; Each calculating sub module is calculated according to the data that receive, and result of calculation is sent to the comparison module of computing module correspondence under self.
A kind of method that realizes estimation adopts hardware accelerator to realize, it is characterized in that this method may further comprise the steps: at least two estimation macro blocks corresponding computing module and comparison module are set in hardware accelerator;
A, obtain the motion estimation data of at least two estimation macro blocks from the outside, be transferred to and the corresponding computing module of described each estimation macro block;
The computing module of b, described each estimation macro block generates result of calculation according to the motion estimation data of correspondence, sends to corresponding comparison module, compares result of calculation by comparison module, obtains the motion vector corresponding to each estimation macro block.
Preferably, the motion estimation data of described at least two the estimation macro blocks of step a comprises: at least two estimation macro blocks and adjacency search district data thereof.
Preferably, the adjacency search district data of described at least two estimation macro blocks are: the data in the rectangular area that estimation macro block described in the previous frame of frame and adjacent macroblocks thereof form under the estimation macro block.
Further, as candidate blocks, the described method of step b comprises with each macro block in the adjacency search district data:
B1, computing module calculate the difference of each candidate blocks in the described estimation macro block field of search data corresponding with this estimation macro block according to the motion estimation data of corresponding estimation macro block;
The result of calculation that b2, comparison module obtain according to step b1 is selected the candidate blocks with this estimation macro block difference minimum, calculates the motion vector of this estimation macro block with respect to the minimum candidate blocks of difference, and motion estimation process finishes.
Further, the field of search data of the described estimation macro block of step b1 correspondence are: the data in the rectangular area that this estimation macro block and adjacent macroblocks thereof form in the adjacency search district data.
Preferably, the method for calculating estimation macro block and each candidate blocks difference among the step b1 is: calculate in the estimation macro block summed absolute difference of respective pixel point data in each pixel number certificate and this candidate blocks by row:
Then the method for the minimum candidate blocks of selection differential described in the step b2 is: with the summed absolute difference addition of all row of each candidate blocks, and judge that the candidate blocks of summed absolute difference sum minimum is the minimum candidate blocks of difference.
Preferably, the method for calculating estimation macro block and each candidate blocks difference among the step b1 is: by the summed absolute difference of respective pixel point data in each pixel number certificate in the column count estimation macro block and this candidate blocks;
Then the method for the minimum candidate blocks of selection differential described in the step b2 is: with the summed absolute difference addition of each all row of candidate blocks, and judge that the candidate blocks of summed absolute difference sum minimum is the minimum candidate blocks of difference.
As seen from the above technical solution, this hardware accelerator of the present invention carries out estimation simultaneously at least two adjacent in every two field picture macro blocks, thereby improves the motion estimation process speed of every two field picture.
Method for estimating of the present invention carries out estimation simultaneously at least two adjacent in every two field picture macro blocks.For two adjacent in every two field picture macro blocks, its field of search has more than 90% overlapping, thus originally finished the data that the estimation of two macro blocks need be transmitted 20 macroblock size, and the present invention only need be transmitted the data of 14 macroblock size.Compared with prior art, the present invention significantly reduces volume of transmitted data.
Description of drawings
Fig. 1 is the composition structure chart of hardware accelerator in the prior art;
Fig. 2 is a flow chart of realizing estimation in the prior art;
Fig. 3 is the position view of estimation macro block and field of search data in the prior art;
Fig. 4 is the composition structure chart of hardware accelerator in a preferred embodiment of the present invention;
Fig. 5 is the position view of estimation macro block and adjacency search district data in a preferred embodiment of the present invention:
Fig. 6 is a flow chart of realizing estimation in a preferred embodiment of the present invention.
Embodiment
For making purpose of the present invention, technical scheme and advantage clearer, below with reference to the accompanying drawing embodiment that develops simultaneously, the present invention is described in more detail.
Fig. 4 is the composition structure chart of hardware accelerator in a preferred embodiment of the present invention, and this hardware accelerator can carry out estimation simultaneously to adjacent two macro blocks.Described hardware accelerator comprises:
External interface module 401 is used to receive the motion estimation data of sending the outside and is saved in memory module 402.
Described motion estimation data comprises the first estimation macro block, the second estimation macro block and adjacency search district data.To be that the first estimation macro block, second estimation are grand determine and the position view of adjacency search district data Fig. 5.Wherein, adjacent grey block 5 and 6 is respectively the first estimation macro block and the second estimation macro block, and these two macro blocks are positioned at present frame; Label is referred to as adjacency search district data from 1~12 piece, and this data field is the data in the reference frame, and wherein each piece is called candidate blocks.The candidate of label 1~9 certainly is the candidate blocks of the first estimation macro block, and the data in the rectangular area that above-mentioned candidate certainly forms are first field of search data of the first estimation macro block; Label 2,3,10,5,6,11,8,9 and 12 candidate blocks are the candidate blocks of the second estimation macro block, and the data in the frame of broken lines that above-mentioned candidate blocks forms are second field of search data of the second estimation macro block.For the method for once only a macro block being carried out estimation in the prior art, estimation to the second estimation macro block shown in first estimation macro block shown in the grey block 5 and the grey block 6 is separately carried out, label 2,3,5,6,8 and 9 candidate blocks need transmit twice so, cause the transmission that repeats of data.In the present embodiment, hardware accelerator once obtains the adjacency search district data of two macro blocks, makes two macro blocks when carrying out estimation, can obtain required separately field of search data from adjacency search district data.
The system of selection of adjacency search district data is comparatively various, such as: select 2,3,5,6, the 8 and 9 adjacency search district data as the first estimation macro block and the second estimation macro block, the adjacency search district shown in Fig. 5 only is a kind of preferable system of selection of present embodiment.External interface module 40 1 is saved in estimation macro block memory module 4021 with the first estimation macro block and the second estimation macro block, and adjacency search district data are saved in field of search data memory module 4022.
Memory module 402, comprise estimation macro block memory module 4021 and field of search data memory module 4022, be respectively applied for storing moving and estimate macro block and adjacency search district data, thereby provide the data of carrying out estimation for first computing module 405 and second computing module 406.
Data transmission module 403 comprises macro block data transport module 4031 and search data transport module 4032.Described macro block data transport module 4031 is used for the first estimation macro block and the second estimation macro block of 4021 storages of estimation macro block memory module are transferred to first computing module 405 and second computing module 406 respectively.Described search data transport module 4032 is used for the corresponding data in the adjacency search district data of field of search data memory module 4022 storages is transferred to first computing module 405 and second computing module 406.
Control module 404 is used to control the reception of the motion estimation data of sending 401 pairs of outsides of external interface module, and the transfer of data of schedule data transmission module 403.
First computing module 405 is used to receive the first estimation macro block and first field of search data, calculates the difference of all candidate blocks in the first estimation macro block and first field of search data, and result of calculation is sent to first comparison module 407.
First comparison module 407 is used to receive and the result of calculation of first computing module 405 relatively, exports first motion vector of the first estimation macro block according to comparative result.
Second computing module 406 is used to receive the second estimation macro block and second field of search data, calculates the difference of all candidate blocks in the second estimation macro block and second field of search data, and result of calculation is sent to second comparison module 408.
Second comparison module 408 is used to receive and the result of calculation of second computing module 406 relatively, exports second motion vector of the second estimation macro block according to comparative result.
Hardware accelerator shown in Figure 4 can expand to adjacent three or three above macro blocks are carried out estimation simultaneously, the number that described in this case hardware accelerator only needs to increase computing module and comparison module on the basis of Fig. 4 gets final product, and repeats no more herein.
Macro block with 16 * 16 sizes is an example below, contrasts adjacency search district data declaration shown in Figure 5 hardware accelerator shown in Figure 4 two adjacent macro blocks are carried out the method for estimation simultaneously, and the detailed process of this method for estimating as shown in Figure 6.
Step 601, hardware accelerator obtain motion estimation data by external interface module 401 and preserve from the outside.
Hardware accelerator can obtain required motion estimation data from external register by the control of CPU.
Step 602, control module 404 control data transmission modules 403 are transferred to first computing module 405 and second computing module 406 respectively with the data in the memory module 402.
Described data transmission module 403 comprises that macro block data transport module 4031 and search data pass elm module 4032.
Wherein, macro block data transport module 4031 is used for estimating macro block by the row transmitting moving.The method of macro block data transport module 4031 transmission data is:
Macro block data transport module 4031 sets in advance the source address and the destination address of each transfer of data, and wherein source address is the address of preserving corresponding data in the memory module 402, and destination address is the address of depositing corresponding data in the computing module.Macro block data transport module 4031 takes out data from source address, is transferred to destination address.Because every row/columns is according to storing continuously according to address information, so in the present embodiment, macro block data transport module 4031 can be transferred to PE0 with first line data of the first estimation macro block according to address information, and second line data is transferred to PE1, and the like, the 16 line data is transferred to PE15.Simultaneously, macro block data transport module 4031 is transferred to PE16 with first line data of the second estimation macro block, and second line data is transferred to PE17, and the like, the 16 line data is transferred to PE31.
Perhaps macro block data transport module 4031 transports the moving macro block of estimating according to address information by biographies, and first columns of the first estimation macro block reportedly is passed to PE0, and the like, the 16 columns reportedly is passed to PE15; First columns of the second estimation macro block reportedly is passed to PE16, and the like, the 16 columns reportedly is passed to PE31.Following narration is all transmitted data instance with macro block data transport module 4031 by row.
Search data transport module 4032 is used for by being about to first field of search transfer of data to first computing module 405, with second field of search transfer of data to second computing module 406.Because the field of search data of each macro block correspondence have nine candidate blocks, the size of each candidate blocks all is 16 * 16, and every row/columns is according to storing continuously according to address information, so search data transport module 4032 is transferred to PE0 according to address information with first line data of nine candidate blocks in first field of search data, second line data is transferred to PE1, and the like, the 16 line data is transferred to PE15; First line data of nine candidate blocks in second field of search data is transferred to PE16, and second line data is transferred to PE17, and the like, the 16 line data is transferred to PE31.The method of search data transport module 4032 transmission data is identical with macro block data transport module 4031, repeats no more herein.
Perhaps search data transport module 4032 is pressed the defeated field of search of biographies data according to address information, and first columns of nine candidate blocks in first field of search data reportedly is passed to PE0, and the like, the 16 columns reportedly is passed to PE15.Following narration is all transmitted data instance with search data transport module 4032 by row.
Step 603, first computing module 405 calculate the difference of each candidate blocks in the first estimation macro block and first field of search data, and the result is sent to first comparison module 407.Simultaneously, second computing module 406 calculates the difference of each candidate blocks in the second estimation macro block and second field of search data, and the result is sent to second comparison module 408.
The computational process of above-mentioned first computing module 405 and second computing module 406 is independent fully, and promptly the motion estimation process of the first estimation macro block and the second estimation macro block is independent fully, and these two motion estimation process parallel processings.
In this step, the difference of estimation macro block and candidate blocks is usually expressed as summed absolute difference.Be example with PEi below, specify the computational process of the first estimation macro block and candidate blocks difference, i can be any integer of O~15.
The corresponding line data of supposing to be transferred to the first estimation macro block among the PEi are S (i+1, n), the corresponding line data of candidate blocks 1 shown in Figure 5 are R (i+1+16, n-16), the corresponding line data of candidate blocks 2 be R (i+1+16, n), and the like, the corresponding line data of candidate blocks 9 be R (i+1-16, n+16).Calculate that the first estimation macro block i+1 is capable with the method candidate blocks 1 capable difference of i+1 to be: (i+1 is n) with R (i+1+16, summed absolute difference n-16) to calculate S according to formula (1).
It is capable similar with method and the said method capable difference of other candidate blocks i+1 to calculate the first estimation macro block i+1, repeats no more herein.After calculating finished, PEi exported nine result of calculations altogether to first comparison module 407.
The computational process and the said process of the second estimation macro block and candidate blocks difference are similar, repeat no more herein.
The result that step 604,407 pairs first computing modules 405 of first comparison module calculate compares, and obtains first motion vector and the output of the first estimation macro block.Simultaneously, the result that 408 pairs second computing modules 406 of second comparison module calculate compares, and obtains second motion vector and the output of the second estimation macro block.
First comparison module 406 obtains the summed absolute difference of the first estimation macro block the 1st row and nine candidate blocks the 1st row from PE0, obtain the summed absolute difference of the first estimation macro block the 2nd row and nine candidate blocks the 2nd row from PE1, and the like, obtain the summed absolute difference of the first estimation macro block the 16th row and nine candidate blocks the 16th row from PE15, and summed absolute difference additions of all row of each candidate blocks are obtained the difference of each candidate blocks and the first estimation macro block, the difference size that compares nine candidate blocks, determine for candidate, calculate first motion vector of the first estimation macro block with the first estimation macro block difference minimum.Such as the grand difference minimum of determining with candidate blocks 9 of: first estimation, then first motion vector of the first estimation macro block is (16,16).
The processing procedure and the said process of second comparison module 407 are similar, repeat no more herein.
For the macro block of sizes such as 16 * 8 or 8 * 8, this hardware accelerator realizes that the method for estimation is similar, repeats no more herein.
Method for estimating shown in Figure 6 can expand to adjacent three or three above macro blocks are carried out estimation simultaneously, and is identical to the motion estimation process of each macro block, and the motion estimation process parallel processing of all macro blocks, repeats no more herein.
By the above embodiments as seen, the method for this hardware accelerator of the present invention and realization estimation thereof is carried out estimation simultaneously at least two adjacent macro blocks, thereby improves the motion estimation process speed of every two field picture, and reduces volume of transmitted data.

Claims (9)

1. hardware accelerator, comprise: external interface module, memory module, data transmission module, control module, described control module are used to control motion estimation data and the control data transmission module that external interface module receives the estimation macro block and carry out the transmission of motion estimation data;
It is characterized in that described external interface module is obtained the motion estimation data of at least two estimation macro blocks from the outside, be saved in memory module;
Described data transmission module is used for the motion estimation data of each estimation macro block of memory module is transferred to the computing module of this estimation macro block correspondence;
This device also comprises:
At least two computing modules and the comparison module corresponding with each computing module, described each computing module receive the motion estimation data of each estimation macro block and calculate, and result of calculation is sent to corresponding comparison module; Comparison module compares result of calculation, exports the motion vector of corresponding estimation macro block.
2. device according to claim 1, it is characterized in that, described each computing module comprises at least one calculating sub module, and data transmission module is transferred to different calculating sub module respectively with the motion estimation data of the corresponding estimation macro block of each computing module; Each calculating sub module is calculated according to the data that receive, and result of calculation is sent to the comparison module of computing module correspondence under self.
3. a method that realizes estimation adopts hardware accelerator to realize, it is characterized in that this method may further comprise the steps: at least two estimation macro blocks corresponding computing module and comparison module are set in hardware accelerator;
A, obtain the motion estimation data of at least two estimation macro blocks from the outside, be transferred to and the corresponding computing module of described each estimation macro block;
The computing module of b, described each estimation macro block generates result of calculation according to the motion estimation data of correspondence, sends to corresponding comparison module, compares result of calculation by comparison module, obtains the motion vector corresponding to each estimation macro block.
4. method according to claim 3 is characterized in that, the motion estimation data of described at least two the estimation macro blocks of step a comprises: at least two estimation macro blocks and adjacency search district data thereof.
5. method according to claim 4, it is characterized in that the adjacency search district data of described at least two estimation macro blocks are: the data in the rectangular area that estimation macro block described in the previous frame of frame and adjacent macroblocks thereof form under the estimation macro block.
6. according to claim 3 or 4 described methods, it is characterized in that as candidate blocks, the described method of step b comprises with each macro block in the adjacency search district data:
B1, computing module calculate the difference of each candidate blocks in the described estimation macro block field of search data corresponding with this estimation macro block according to the motion estimation data of corresponding estimation macro block;
The result of calculation that b2, comparison module obtain according to step b1 is selected the candidate blocks with this estimation macro block difference minimum, calculates the motion vector of this estimation macro block with respect to the minimum candidate blocks of difference, and motion estimation process finishes.
7. method according to claim 6 is characterized in that, the field of search data of the described estimation macro block of step b1 correspondence are: the data in the rectangular area that this estimation macro block and adjacent macroblocks thereof form in the adjacency search district data.
8. method according to claim 6, it is characterized in that the method for calculating estimation macro block and each candidate blocks difference among the step b1 is: calculate in the estimation macro block summed absolute difference of respective pixel point data in each pixel number certificate and this candidate blocks by row;
Then the method for the minimum candidate blocks of selection differential described in the step b2 is: with the summed absolute difference addition of all row of each candidate blocks, and judge that the candidate blocks of summed absolute difference sum minimum is the minimum candidate blocks of difference.
9. method according to claim 6, it is characterized in that the method for calculating estimation macro block and each candidate blocks difference among the step b1 is: by the summed absolute difference of respective pixel point data in each pixel number certificate in the column count estimation macro block and this candidate blocks;
Then the method for the minimum candidate blocks of selection differential described in the step b2 is: with the summed absolute difference addition of each all row of candidate blocks, and judge that the candidate blocks of summed absolute difference sum minimum is the minimum candidate blocks of difference.
CNB2005100646274A 2005-04-15 2005-04-15 A hardware accelerator and method for realizing motion estimation thereof Expired - Fee Related CN100373949C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100646274A CN100373949C (en) 2005-04-15 2005-04-15 A hardware accelerator and method for realizing motion estimation thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100646274A CN100373949C (en) 2005-04-15 2005-04-15 A hardware accelerator and method for realizing motion estimation thereof

Publications (2)

Publication Number Publication Date
CN1665306A CN1665306A (en) 2005-09-07
CN100373949C true CN100373949C (en) 2008-03-05

Family

ID=35036161

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100646274A Expired - Fee Related CN100373949C (en) 2005-04-15 2005-04-15 A hardware accelerator and method for realizing motion estimation thereof

Country Status (1)

Country Link
CN (1) CN100373949C (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101461161B (en) * 2006-06-13 2012-12-19 艾利森电话股份有限公司 Method and arrangement for preamble detection
CN103051889A (en) * 2011-10-14 2013-04-17 安凯(广州)微电子技术有限公司 Image motion estimation method and system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06261309A (en) * 1993-03-08 1994-09-16 Ricoh Co Ltd Moving vector detection
CN1129882A (en) * 1994-08-25 1996-08-28 索尼公司 Method vector detection apparatus and predictive coding system for compensating for movement with the apparatus
CN1134084A (en) * 1995-03-20 1996-10-23 大宇电子株式会社 Improved motion compensation apparatus for use in image encoding system
US5734737A (en) * 1995-04-10 1998-03-31 Daewoo Electronics Co., Ltd. Method for segmenting and estimating a moving object motion using a hierarchy of motion models

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06261309A (en) * 1993-03-08 1994-09-16 Ricoh Co Ltd Moving vector detection
CN1129882A (en) * 1994-08-25 1996-08-28 索尼公司 Method vector detection apparatus and predictive coding system for compensating for movement with the apparatus
CN1134084A (en) * 1995-03-20 1996-10-23 大宇电子株式会社 Improved motion compensation apparatus for use in image encoding system
US5734737A (en) * 1995-04-10 1998-03-31 Daewoo Electronics Co., Ltd. Method for segmenting and estimating a moving object motion using a hierarchy of motion models

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
国防工业出版社. 俞斯乐,侯正信,冯启明,李文元.电视原理,第5卷. 2000 *

Also Published As

Publication number Publication date
CN1665306A (en) 2005-09-07

Similar Documents

Publication Publication Date Title
US11134263B2 (en) Moving picture decoding method and moving picture encoding method
CN101573984A (en) Method and apparatus for estimating motion vector using plurality of motion vector predictors, encoder, decoder, and decoding method
KR20010071705A (en) Motion estimation for digital video
JP3791922B2 (en) Moving picture decoding apparatus and method
CN101518084A (en) Method for the compression of data in a video sequence
WO2012092045A1 (en) Block based sampling coding systems
US20040032987A1 (en) Method for estimating motion by referring to discrete cosine transform coefficients and apparatus therefor
US8184709B2 (en) Low-power and high-throughput design of fast motion estimation VLSI architecture for multimedia system-on-chip design
CN100373949C (en) A hardware accelerator and method for realizing motion estimation thereof
US20030118104A1 (en) System, method, and software for estimation of motion vectors
CN105100799A (en) Method for reducing intraframe coding time delay in HEVC encoder
KR100490730B1 (en) Method and apparatus for motion estimation using of adaptive search pattern for video sequence compression
JP4405367B2 (en) Reference field determination method in predictive coding of video signal
CN1568009A (en) Motion vector prediction method used for video coding
US20220217378A1 (en) Computer Software Module, a Device and a Method for Accelerating Inference for Compressed Videos
JP2011199868A (en) Adaptive search area in motion estimation process
US20070064810A1 (en) Variable shape motion estimation in video sequence
KR20080102947A (en) Apparatus and method for calculating sum of absolute differences for motion estimation of variable block
JP2608909B2 (en) Video predictive coding
JP3946722B2 (en) Video encoding device
JP3946721B2 (en) Video decoding device
JP3946758B1 (en) Moving picture decoding method and moving picture decoding apparatus
JP3946723B2 (en) Video encoding device
JP3946759B1 (en) Moving picture decoding method and moving picture decoding apparatus
JP3946761B1 (en) Moving picture coding method and moving picture coding apparatus

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080305

Termination date: 20200415

CF01 Termination of patent right due to non-payment of annual fee