1. A method of motion estimation for video coding, comprising: creating a transformed reference image for encoding a frame by sequentially transforming original luma pixels, and storing the transformed image in a frame image buffer; performing rough motion estimation in transformed image space, and storing resulted motion vectors MV for a coding unit CU 16×16 into a MV buffer; generating a merge mode list of MV candidates and an AMVP mode list of MV candidates; removing repetitive vectors from the lists and storing unique merge mode MV according to MV identifiers; storing fractional parts of MV according to an index number of a prediction unit PU inside a coding tree unit CTU; loading reference blocks from a reference buffer into a merge motion estimator; defining SAD for 5 partitions (1×(16×16), 2×(8×16), 2×(16×8)), which are calculated using a current CU and its prediction from a reference picture; comparing a weighted SAD of a current MV candidate to a weighted SAD of a previous MV candidate for each of the 5 partitions and storing the best merge mode MV candidates with SAD; repeating steps of loading reference blocks, defining SADs and comparing weighted SADs until all MM candidates are considered, or until the end of predetermined calculation time; loading resulting MV of rough estimation from MV buffer into AMVP list of candidates; loading a search window from the reference buffer according to the MV candidates from the AMVP list; performing a full search of best MV candidates inside the loaded window; comparing the weighted SAD of the current MV candidate with the weighted SAD of the previous MV candidate for each 5 CU partitions, and storing the best AMVP candidates with SAD; repeating steps of loading search window to storing the best AMVP candidates until all of the AMVP candidates are considered, or until the end of predetermined calculation time; comparing estimation results of the Merge Mode and the AMVP Mode and selecting best decisions for each of the 5 CU partitions; repeating motion estimation for all 16×16 CU in the Coding Tree Unit (CTU); and merging neighboring partitions according to MV identifiers using entire list of best MV candidates.