[FFmpeg-cvslog] r24864 - trunk/libavcodec/truemotion1.c

Kostya kostya.shishkov
Sun Aug 22 09:10:58 CEST 2010


On Sun, Aug 22, 2010 at 08:11:40AM +0200, Reimar D?ffinger wrote:
> On Sun, Aug 22, 2010 at 08:02:38AM +0300, Kostya wrote:
> > On Sat, Aug 21, 2010 at 09:50:37PM +0200, reimar wrote:
> > > Author: reimar
> > > Date: Sat Aug 21 21:50:36 2010
> > > New Revision: 24864
> > > 
> > > Log:
> > > The 24-bit ydt also should not depend on endianness,
> > > since all of it ends up in a single 32-bit pixel.
> > > This seems likely to be wrong though, since it is different
> > > from the 15 and 16 bit modes and might explain the half-width
> > > issue for 24 bit truemotion.
> > 
> > If you've looked into TM1 decoder source you'd notice that
> > compression_type structure list them as {colourspace, width, height}
> > format. This allows coded to encode it in up to quarter resolution and
> > then scale black - real blocks are always 8x8 IIRC.
> > 
> > Since our decoder ignores scaling, it decodes only (real) half of image
> > and it doesn't help that we have only one 24-bit sample.
> 
> I don't think that's it, it's more likely that when I coded it I munged
> two Y values into a single pixel.
> That's quite obviously silly, but it worked without extensive changes to
> the prediction code.

Still, I remember trying to fix this, looking at the reference decoder
(what do you know, it's still at
http://duck.com/vpvision/source/vpvision0.5_source.zip ), found that
wonderful case with scaling and somehow I was lazy to add scalers. So
I'm pretty sure TM1 decoder is correct, just lacks scaling.



More information about the ffmpeg-cvslog mailing list