[FFmpeg-devel] [PATCH] Indeo5 decoder

Maxim max_pole
Mon Mar 30 12:57:42 CEST 2009


John Cox schrieb:
>> Hmm, there are three different macroblock sizes: 16x16, 8x8 and 4x4.
>> Otherwise the term "macroblock" has the same meaning as by the MPEG...
>> No idea how to make it more descriptive...
>>     
>
> In which standard is a Macroblock not 16x16?  I'll certainly grant block sizes
> of 8x8 and 4x4 but in MPEG-1/2, MPEG4-2, H.263, H.264 they all combine to give
> a macroblock size of 16x16.
>   

It's abit different in the Indeo5: there are 3 macroblock sizes as I
mentioned above. A macroblock can include one or four blocks depending
on its size. The relation between macroblocks and blocks is the following:

For luminance plane
mb_size = 16x16 -> block_size = 8x8 -> blocks_per_mb = 4
mb_size = 8x8     -> block_size = 8x8 -> blocks_per_mb = 1

For chrominance planes
mb_size = 8x8     -> block_size = 4x4 -> blocks_per_mb = 4
mb_size = 4x4     -> block_size = 8x8 -> blocks_per_mb = 1

As you can see above there are two cases where mb_size == block_size.
The main difference between those is that a macroblock can have a motion
vector/quant delta associated with it and these are shared between all
blocks in the same mb...

Regards
Maxim



More information about the ffmpeg-devel mailing list