[XviD-devel] rrv decoding

Marc FD xvid-devel@xvid.org
Mon, 9 Dec 2002 14:25:25 +0100


> On Sun, 8 Dec 2002 10:14:56 +0100 "Marc FD" <marcfd@free.fr> wrote:
> > damn !! the first time XviD can decode something that he is unable to
encode
> > !!!
>
> we can also decode (but cant encode) resync packets.

i didn't know that ^^

> >
> > > i will now investigate encoding support.
>
> i've just commited rrv i-vop encoding and "incomplete" p-vop encoding.
> to enable RRV mode, you must set
> xparam.global |= XVID_GLOBAL_REDUCED
> during codec creation, and set
> xframe.general |= XVID_REDUCED
> to encode the frame as rrv.

cool, CVS is up again, i'm gonna load it ASAP.

> > cool. lemme know if i can help.
>
> okay, iam having problem implementing p-vop rrv motion compensation.
> the p-vop coeffs are messed up,

not having a problem would have been surprising ^_^

> ie. to compensate rrv MODE_INTER macroblocks, we must:
> a) grab the reference 32x32 pixel block, from the refernce frame

? skal said you have still the same number of blocks in rrvs.
you compensate 4 blocks to one rrv block ??
i don't understand, do you have 4x less blocs ?
how do you do with MVs, ect.. ?

> b) subtract the reference block from the current block
> c) filter/scale-down the remainder of the subtration, from 32x32 ->
> 16x16 pixels. use skal's filter_18x18_to_8x8() function.
> d) transfer scaled down block into FOUR 8x8 16-bit coeffient arrays

four ?? and chroma ??

> i believe its something todo with the scale-down and the 18x18 pixel
> requirement. anyway, to enable the 'buggy' p-vop encoding, goto
> encoder.c/FrameCodeP(), and replace [...]

okay i'll see that. but i'll need to understand how it works first ^^

Cheers,
MarcFD