CN1665306A - 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
CN1665306A
CN1665306A CN 200510064627 CN200510064627A CN1665306A CN 1665306 A CN1665306 A CN 1665306A CN 200510064627 CN200510064627 CN 200510064627 CN 200510064627 A CN200510064627 A CN 200510064627A CN 1665306 A CN1665306 A CN 1665306A
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.)
Granted
Application number
CN 200510064627
Other languages
Chinese (zh)
Other versions
CN100373949C (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 invention discloses a hardware accelerating device, comprising: external interface module, memory module, data transmission module and control module, where the external interface module obtains motion estimated data of at least two motion estimation macro blocks to store them to the memory modules; the data transmission module transmits the said motion estimated data in the memory module to the calculating modules corresponding to the motion estimated macro blocks; and it also comprises at least two calculating modules and the comparing modules corresponding to the calculating modules, wherein the said calculating module receives the motion estimated data to calculate and transmits the calculated result to the corresponding comparing module; the comparing module compares the calculated result and output the movement vector corresponding to the motion estimation macro block. The invention also discloses a method for implementing motion estimation, and the method and device simultaneously make the motion estimation on at least two adjacent macro blocks, thus raising the processing speed of motion estimation of each frame of picture and reducing the data transmitting quantity.

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 direct coding to the interframe 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.The macro block data that carries out this estimation in the present frame is called the estimation macro block.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 of nine candidate blocks, 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 0~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:
A, hardware accelerator obtain the motion estimation data of at least two estimation macro blocks from the outside;
B, hardware accelerator carry out estimation according to the motion estimation data of each estimation macro block simultaneously to all estimation macro blocks that step a is obtained.
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 method for carrying out estimation among the step b simultaneously is with each macro block in the adjacency search district data:
B1, hardware accelerator calculate the difference of each candidate blocks in each estimation macro block field of search data corresponding with this estimation macro block respectively according to the motion estimation data of each estimation macro block;
B2, the result of calculation that obtains according to step b1 are selected the candidate blocks with this estimation macro block difference minimum, calculate the motion vector of this estimation macro block with respect to the minimum candidate blocks of difference, the motion estimation process end.
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 b2 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.Fig. 5 is the position view of the first estimation macro block, the second estimation macro block and adjacency search district data.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 blocks of label 1~9 is the candidate blocks of the first estimation macro block, and the data in the rectangular area that above-mentioned candidate blocks 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 401 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 macro block data transport module 4031 and search data transport 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 0~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, for with the candidate blocks of the first estimation macro block difference minimum, calculate first motion vector of the first estimation macro block.Such as: the difference minimum of the first estimation macro block and candidate blocks 9, 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, 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.
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 kind of method that realizes estimation adopts hardware accelerator to realize, it is characterized in that this method may further comprise the steps:
A, hardware accelerator obtain the motion estimation data of at least two estimation macro blocks from the outside;
B, hardware accelerator carry out estimation according to the motion estimation data of each estimation macro block simultaneously to all estimation macro blocks that step a is obtained.
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.
According to claim 3 or 4 described methods, it is characterized in that 6, as candidate blocks, the method for carrying out estimation among the step b simultaneously is with each macro block in the adjacency search district data:
B1, hardware accelerator calculate the difference of each candidate blocks in each estimation macro block field of search data corresponding with this estimation macro block respectively according to the motion estimation data of each estimation macro block;
B2, the result of calculation that obtains according to step b1 are selected the candidate blocks with this estimation macro block difference minimum, calculate the motion vector of this estimation macro block with respect to the minimum candidate blocks of difference, the motion estimation process end.
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 b2 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 true CN1665306A (en) 2005-09-07
CN100373949C 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)

Cited By (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

Family Cites Families (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
JPH0865681A (en) * 1994-08-25 1996-03-08 Sony Corp Motion vector detector and motion compensating prediction encoding system using the detector
KR0171145B1 (en) * 1995-03-20 1999-03-20 배순훈 Improved motion compensation apparatus for use in an iamge encoding system
JP3612360B2 (en) * 1995-04-10 2005-01-19 株式会社大宇エレクトロニクス Motion estimation method using moving object segmentation method

Cited By (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

Also Published As

Publication number Publication date
CN100373949C (en) 2008-03-05

Similar Documents

Publication Publication Date Title
CN1225127C (en) A coding/decoding end bothway prediction method for video coding
CN101500161B (en) Inter-frame prediction method and apparatus based on adaptive block transformation
CN1642282A (en) Video coding system
CN1767644A (en) Non-integer pixel sharing for video encoding
CN1533675A (en) Method and apparatus for sub-pixel motion estimation
CN1633811A (en) Image encoding method, image decoding method, image encoder, image decode, program, computer data signal, and image transmission system
CN103327325A (en) Intra-frame prediction mode rapid self-adaptation selection method based on HEVC standard
CN1993994A (en) Motion vector detecting device, and motion vector detecting method
CN1658675A (en) Method for reading search window data for motion estimation by hardware
CN1823328A (en) Motion estimation with fast search block matching
CN1213613C (en) Prediction method and apparatus for motion vector in video encoding/decoding
US20110310967A1 (en) Method and System for Video and Image Coding Using Pattern Matching for Intra-Prediction
CN1791220A (en) Video decoder and associated methods of operation
CN1144469C (en) Motion-vector coding method
CN1819657A (en) Image coding apparatus and image coding method
CN1491044A (en) Kinematic image coder and decoder
CN1299511C (en) Scalable MPEG-2 video decoder with selective motion compensation
CN1675933A (en) Video encoding and decoding techniques
CN1589022A (en) Macroblock split mode selecting method in multiple mode movement estimation decided by oriented tree
CN1615026A (en) Data processing apparatus and method and encoding device
CN109151467B (en) Screen content coding inter-frame mode rapid selection method based on image block activity
CN1665306A (en) A hardware accelerator and method for realizing motion estimation thereof
CN1115880C (en) Method for processing data by matrix array in movement evaluation system
CN1299510C (en) Moving-picture information compressing method and system
CN101035284A (en) Stream-type video pixel domain code conversion method

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080305

Termination date: 20200415