[FFmpeg-devel] ffvorbis, inverted output

Siarhei Siamashka siarhei.siamashka
Sun Sep 28 02:00:39 CEST 2008


On Saturday 27 September 2008, Siarhei Siamashka wrote:
> On Sunday 14 September 2008, Michael Niedermayer wrote:
> > On Sun, Sep 14, 2008 at 04:50:59AM +0300, Siarhei Siamashka wrote:
> > > Hi,
> > >
> > > I tried to do PSNR comparison of libvorbis/ffvorbis/tremor and noticed
> > > that output from ffvorbis is actually inverted (ex. output 0xFFFF in
> > > libvorbis corresponds to 0x0001 in ffvorbis and so on) when compared to
> > > the output from the other decoders.
> > >
> > > Should this be fixed?
> >
> > yes, if all (/most) other vorbis decoders match and we differ from that
>
> Can these two patches be used as a fix? The first one adds support for
> scaled imdct output. The second one inverts output of the decoder (to match
> libvorbis and tremor) using negative scale factor.
>
> As additional bonus, 'copy_normalize' function from vorbis decoder is
> simplified. Though I get some inconsistent benchmark results (performance
> difference is negligible with one or another variant getting ahead
> randomly) and would like someone to confirm that there is no performance
> regression.
>
> Getting scaled imdct output involves sqrt operation and scale factor uses
> odd power of two, so there is some difference in PSNR compared to SVN
> trunk (taking inversion into account):
>
> stddev:    0.02 PSNR:127.97 bytes: 22057216/ 22057216

Oops, an extra patch to ensure tables alignment is also needed. It is
attached.

Regarding performance, it really provides a visible improvement on some files
(the ones which have lots of block size switching and consequently lots
of 'copy_normalize' calls). After having done more tests, I observed vorbis
decoding speedup up to 1%. In any case, output scaling support in IMDCT with
zero overhead should be a good thing to have and might be useful in other
decoders too.

-- 
Best regards,
Siarhei Siamashka
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 03_vorbis_vwin_tables_align.diff
Type: text/x-diff
Size: 3241 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080928/ac47b480/attachment.diff>



More information about the ffmpeg-devel mailing list