Killing time.

Because I’m stuck waiting on the post, I’m very very bored.  And when I’m bored, I get very frustrated until I have something to do.  That something is looking at macro-blocks calibration versus calculation.

There’s 3 sides to this:

  1. What do the macro-block vectors actually mean?  i.e. what are the units for the values?  I’m currently assuming is the number of macro-blocks that a frame has moved base upon the fact that the values are only a single byte, so can only cover 255 pieces of movement; based on that assumption, the maximum frame size would be 255 x 16 (pixels per macro-block) = 4080 pixel maximum screen resolution which is plausible.  Zoe is shooting to 400 x 400 resolution, so she should get ±25 as the output values.  I need to test this theory..
  2. I need to work out how to use the SAD readings; the low the value, the more confidence there is that the shift in the macro-blocks is accurate.  I need to look into this in more detail.
  3. Finally, I need to know the units of macro-blocks, and how to convert the values to meters.  This is where I’ve made progress.
                    v
                   /|\        ^
                  / | \       |
                 /  |  \      |
                /\__θ__/\     |
               /    |    \    h
              /     |     \   |
             /      |      \  |
            /       |       \ |
           /________|________\v
          |                   |
          |<--------d---------|

I’ve found out that the camera angle of view is 62.2 x 48.8 degrees for the V2 camera.  As I’m videoing a square frame, the angle θ in the diagram is 48.8°.

d can be calculated

  • in meters as 2 h tan(48.8 / 2) where h is also measured in meters
  • in macro blocks as frame size (400) / macro block size (16) = 25

So 1 macro block is 2 h tan(48.8 / 2) / 25 = 0.03628960 x h meters.  At one meter height, d works out as ≈0.907m which matches up with my testing.

Leave a Reply

Your email address will not be published. Required fields are marked *