What is currentMV and predMV in SearchData struct

Chien Tran <[email protected]> Mon, 21 May 2012 19:57:44 +0700
Newsgroups gmane.comp.video.xvid.devel
Message-ID <CAC4iO9NF6x3GNDBT8LzSm5J_w-isFyGxLu2XwDLDoirBMBjXKg@mail.gmail.com>
Hi everyone,
I am new to Xvid and I am doing a research about video compression. When I
look at the SearchData struct, I saw two important fields: currentMV and
predMV. I guessed it stored the information about the motion vector of
Macroblock, but I don't know what it really means to have 2 fields like
that. Its comment said currentMV is "best vectors found so far"
(currentMV[0] would be the MV for the 16x16 MB, I think) and the predMV is
"vector which predicts current vector". Could you guys please tell me what
currentMV and predMV are really used for?
Let's say I have the x, y of the current Macroblock. How can I know the
location of the matching Macroblock in previous Frame that were found in
Motion Estimation? Is it: match_x = x + currentMV[0].x; match_y = y +
currentMV[0].y? I did some tests and found that it sometimes has the value
that is out of the Macroblock array (more specifically, match_x < 0).

-- 
Best wishes,

Tran Xuan Chien
University of Information Technology
Phone: (+84) 1692 468 154