[Ffmpeg-devel] Re: [RFC] mpeg2 422 encoding.
Baptiste COUDURIER
baptiste.coudurier
Thu Apr 13 14:56:38 CEST 2006
Hi
Michael Niedermayer wrote:
>[...]
>
> you did, but gcc doesnt like your code, the mpeg4 mb encode code is 7%
> slower now (meassured with START/STOP_TIMER)
>
> the problem with gcc likely is that there are various limits on inlining
> and gcc includes the manual inlining from always_inline so that
> forcing a function to be inlined will cause another function to no longer
> be inlined
>
> either
> A. add always_inline everywhere (not realistic)
> B. change the limits via command line paramaters to gcc
> C. inline fewer functions
> D. reduce the size of the inlined stuff
> E. use the preprocessor to do the inlineing so that gcc doesnt know (ugly)
> F. combination of the above
>
> note, "nm mpegvideo.o" shows which functions are in there (the missing ones
> where inlined everywhere), and IIRC there is a option for gcc too which
> prints warnings if something wasnt inlined which had a inline keyword ...
>
All right. I added -Winline to gcc parameters and indeed, even atm some
functions are not inlined. Basically add_dct, put_dct.
Im not feeling really confortable in code optimization. I miss the basics.
I'll only check for 420 in the code for now. May I ask what is the exact
performance test you are using ? START/STOP_TIMER around encode_mb ?
What is a "significant" number of runs ?
Btw, I still have a bug with -mbd bits, and it's a bit annoying (green
bottom chroma macroblock in P frames, if using -bf > 8 the bug vanish).
Since you best know mpegvideo.c, do you see where it could be located ?
I fixed INTERLACED_DCT for 422, wrap_c need to be /2 as wrap_y.
Thanks a lot,
--
Baptiste COUDURIER GnuPG Key Id: 0x5C1ABAAA
SMARTJOG S.A. http://www.smartjog.com
Key fingerprint 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
Phone: +33 1 49966312
More information about the ffmpeg-devel
mailing list