Wednesday, December 5, 2018

image processing - How do the motion vectors work in predictive coding for MPEG?


In MPEG, there is a process where an image is broken up into macroblocks and a motion vector is computed for each of those macro blocks. You then transmit these vectors, along with the prediction errors, to reconstruct the next image in the video sequence.


I'm trying to get a firm grasp on how this works. Each macroblock has a motion vector associated with it, which (if vector is [1,0]), says all the pixels in this block move 1 in the x direction and 0 in the y direction for the next frame. If all the motion vectors don't align correctly, won't this leave areas of the image unaccounted for (like the area where that macroblock was in the first place)?


For example, I have the following question I found.


Consider the following image at time t:


7   7   7   7           
7 7 5 5
7 5 5 8
8 8 8 8
9 9 9 9

9 9 9 9

This image was broken up into 2x2 macroblocks and the following motion vectors were sent along to recreate it:


(0,0)  (0,0)  (0,1)  (-1,1)  (0,0)  (0,0)

The image at the previous time step, t - 1, looked like this:


7   7   7   7           
7 7 5 4
7 7 7 7
7 5 8 8

8 9 8 9
9 9 9 9

What were the errors transmitted?


How would you solve this?




No comments:

Post a Comment

digital communications - Understanding the Matched Filter

I have a question about matched filtering. Does the matched filter maximise the SNR at the moment of decision only? As far as I understand, ...