[FFmpeg-devel] [PATCH] avfilter/dctdnoiz: rewrite [f/i]dct

Clément Bœsch u at pkh.me
Mon Aug 4 17:42:12 CEST 2014


On Mon, Aug 04, 2014 at 11:17:29AM -0400, Ronald S. Bultje wrote:
> Hi,
> 
> On Sun, Aug 3, 2014 at 4:27 PM, Clément Bœsch <u at pkh.me> wrote:
> 
> > This removes the avcodec dependency and make the code almost twice as
> > fast. More to come.
> >
> > The DCT factorization is based on "Fast and numerically stable
> > algorithms for discrete cosine transforms" from Gerlind Plonkaa &
> > Manfred Tasche (DOI: 10.1016/j.laa.2004.07.015).
> 
> 
> I have no comments on the patch itself, but can you explain why we're
> re-implementing a custom f/idct rather than using the one provided in
> lavcodec? It seems to me that going from fixedpoint/simd'ed to float/c
> would be slower, not faster, so there must be more to this patch than what
> I'm getting from it...
> 

OK so as said in private, I didn't find an accurate (not wrongly "JPEG"
like I originally said) 16x16 DCT in libavcodec.

You suggested to use the HEVC or VP9 DCT. That's indeed one solution, but
we currently have only IDCT for those (AFAIK), and I needed a float
implementation.

Now I also like the idea of implementing a specific [F/I]DCT for the
filter and not something codec specific, where the accuracy might have
been adjusted for very specific cases/environment. The algorithm I
followed is supposed to be very stable numerically (and it indeed looks
like so according to my tests), and still propose a nice optimized
factorization form. Basically, it looked like to me like a really good
trade-off between speed and ideal DCT.

> Ronald

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140804/7540ff59/attachment.asc>


More information about the ffmpeg-devel mailing list