Re[3]: [XviD-devel] GMC

Christoph Lampert xvid-devel@xvid.org
Tue, 5 Nov 2002 14:54:40 +0100 (CET)


On Tue, 5 Nov 2002, Radek 'sysKin' Czyz wrote:

> AGGGGHHHHHHHHHHRRRRRRRR..............
> 
> Hi,
> 
> I found the problem
> 
>   if ( (pEnc->current->GMC_MV.x == 0) && (pEnc->current->GMC_MV.y == 0) )
>          pEnc->current->coding_type = P_VOP;             /* no global motion -> no GMC */
> 
> Can we really turn off GMC at any frame? If we can, then ethier
> decoders can't handle it, or we do it in a buggy way. 

We cannot "turn off" GMC. But if GMC is enabled we still can choose to use
P_VOPs (which don't have support for GMC) or S_VOPs (which have support). 
This _must_ be supported by the decoder! 

 
> Anyway, it seems we can't turn GMC off for the time being...

Maybe your routine didn't check if the VOP was S-VOP or P-VOP? 
The _decoder_ surely should check, because S-VOPs have to be decoded 
differently. Btw. which decoder do you use? 

> My function works correctly now. I'll play with some thresholds to
> make GMC improve anything - it doesn't improve now.
>
> Hooray, it works! :-)

In my oppinion any frame with GMC should have at least as many NOT_CODED
blocks as without GMC. Otherwise it's "bad".

gruel