Hi, So I have almost completed a new VP3 decoder implementation. In the course of doing so, I have encountered something odd about macroblock coding. As a quick overview, VP3 has a notion of fragments (8x8 pixels) and superblocks (32x32 pixels, 4x4 fragments). These apply to each individual plane (e.g., a 64x64 video will have 4 Y superblocks and 1+1 C superblocks, 64 Y fragments and 16+16 C fragments). VP3 also has a notion of macroblocks which are the same as MPEG. I.e., 1 macroblock encompasses 4 Y fragments and 1+1 C fragments. IOW, 1 macroblock applies to all 3 planes, whereas one fragment or superblock applies to 1 and only 1 plane. The confusion comes in the fact that when VP3 initializes, it allocates enough space for macroblocks to cover each of the 3 planes (notion that macroblock applies to 1 plane). When VP3 is unpacking the block coding information and discovers that a particular fragment is coded, it sets the "macroblock coded" flag corresponding to that fragment. It does this for the C planes as well, using space allocated for the C macroblock arrays, even though a C plane should match up with a Y plane macroblock. However, when unpacking coding modes and motion vectors, VP3 only uses the first segment of "MB coded" flags (for the Y plane) and marks the C plane fragments according to those flags. This strikes me as a discrepancy in the VP3 coding method and possibly even a bug. Any clarifications? Thanks.. -- -Mike Melanson --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'theora-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.