[FFmpeg-devel] [PATCH] E-AC-3 spectral extension

Michael Niedermayer michaelni
Tue Jun 2 13:49:59 CEST 2009


On Mon, Jun 01, 2009 at 11:37:08PM -0400, Justin Ruggles wrote:
> Michael Niedermayer wrote:
> > On Sat, May 30, 2009 at 11:43:12PM -0400, Justin Ruggles wrote:
> >> Michael Niedermayer wrote:
> >>> On Sun, May 17, 2009 at 02:23:34PM -0400, Justin Ruggles wrote:
> >>>> Hi,
> >>>>
> >>>> I was recently made aware that some French TV station(s) will soon (if
> >>>> not already) start using E-AC-3 streams in their broadcasts which
> >>>> utilize spectral extension.  I was also given some samples (thanks j-b
> >>>> and Anthony), which I uploaded to mphq:
> >>>> http://samples.mplayerhq.hu/A-codecs/AC3/eac3/csi_miami_*
> >>>>
> >>>> So I decided to revisit my SPX patch.  The previous version was done
> >>>> with all integer arithmetic, but it turns out that it's really not
> >>>> accurate enough for spectal extension processing.  The resulting decoded
> >>>> output had a max bandwidth of about 2kHz less when using 24-bit fixed
> >>>> point vs. floating point, and was only slightly higher than without any
> >>>> SPX processing at all.  Making just the square roots floating point
> >>>> raised the bandwidth about 1kHz, and making the rest (noise/signal
> >>>> scaling, spx coords, and notch filters) floating point added about
> >>>> another 1kHz.
> >>>>
> >>>> I was able to compare the output to Nero's E-AC-3 decoder (thanks
> >>>> madshi), and the results are very close considering that AC-3 uses
> >>>> random noise for zero-bit mantissas:
> >>>> stddev:  131.16 PSNR: 53.96
> >>> i wouldnt call 131.16 close
> >> Well, considering I don't know how the Nero decoder differs, it's not
> >> bad.  I don't know how the Nero decoder ends up with higher bandwidth
> >> than it should, it very likely uses a different random noise generator,
> >> and it could do dithering in the float-to-int16 conversion.
> > 
> > dither in float2int might account for ~1.0 stdev maybe but we are 2
> > magnitudes above that.
> > 
> > about the PRNG, well just decode a AC3 with 2 different PRNGS and compare
> > by how much they differ
> 
> LFG vs. MLFG
> stddev:   14.99 PSNR: 72.80 bytes:  3999744/  3999744
> 
> Nero vs. FFAC3
> stddev:   19.75 PSNR: 70.41 bytes:  3998720/  3999744

nice, so we are down to a stddev of ~4.76 that looks alot healthier already
than the >100 of before, still its a little larger than what it should be,
of course that might be a issue in nero as well instead of our decoder ...


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Avoid a single point of failure, be that a person or equipment.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090602/bc4ff837/attachment.pgp>



More information about the ffmpeg-devel mailing list