Howdy,

On Sun, May 22, 2016 at 5:27 AM, Alexandra Hájková <
alexandra.khirn...@gmail.com> wrote:

> > Do you have a tree for testing somewhere?
>
> Yes, there's github branch:
> https://github.com/sasshka/libav/tree/get_bits3.
>

Thanks!

> If I find decoders that are slower on 32bit after the patch, will you fix
> > it?
> >
> If you'll find something it will be discussed with the other
> developers and potentially fixed.


So, I tested a few decoders for which it's easy to generate test files. It
looks like dnxhd got about 20% slower slower. avconv-new is
5ab5ff1f0783daf0924fdbd25333ea63a7faeb54 (i.e. tip of your get_bits3
branch), and avconv is 3399a26d3f57d462e839c0ee51223ae9aca20852 (branch
point of get_bits3 branch from upstream). Both are compiled using
"../configure --arch=i386 --extra-cflags='-arch i386'
--extra-ldflags='-arch i386' --enable-gpl && make -j4". Input file was
generated from [1], downsampled to 720p30/yuv420p [2] and then encoded
using [3]. This is decoding time (single-threaded) of the two binaries:

bash-4.3$ for n in {1..5}; do ( time ./avconv -threads 1 -i
/tmp/sat-dnxhd.mov -f null -v 0 -nostats - ) 2>&1|grep user; done
user 0m3.138s
user 0m3.057s
user 0m3.122s
user 0m3.120s
user 0m3.095s
bash-4.3$ for n in {1..5}; do ( time ./avconv-new  -threads 1 -i
/tmp/sat-dnxhd.mov -f null -v 0 -nostats - ) 2>&1|grep user; done
user 0m3.769s
user 0m3.767s
user 0m3.761s
user 0m3.711s
user 0m3.745s

I also tested prores (which looks like it got about 5% faster), and
huffyuv, which seems to be about 10% slower (input generated using [4]):

bash-4.3$ for n in {1..5}; do ( time ./avconv -threads 1 -i
/tmp/sat-huvvyuv.avi -f null -v 0 -nostats - ) 2>&1|grep user; done
user 0m3.782s
user 0m3.776s
user 0m3.780s
user 0m3.835s
user 0m3.773s
bash-4.3$ for n in {1..5}; do ( time ./avconv-new -threads 1 -i
/tmp/sat-huvvyuv.avi -f null -v 0 -nostats - ) 2>&1|grep user; done
user 0m4.127s
user 0m4.162s
user 0m4.159s
user 0m4.134s
user 0m4.124s

I think the speed regression in these 2 decoders (dnxhd/huffyuv) should be
addressed, since this might go beyond just x86-32 and affect other 32-bit
platforms also.

Ronald

[1]
https://media.xiph.org/video/derf/ElFuente/Netflix_SquareAndTimelapse_4096x2160_60fps_10bit_420.y4m
[2] ffmpeg -i Netflix_SquareAndTimelapse_4096x2160_60fps_10bit_420.y4m -vf
framestep=2 -s 1280x720 -pix_fmt yuv420p -c:v ffv1
SquareAndTimelapse.ffv1.mkv
[3] ffmpeg -i SquareAndTimelapse.ffv1.mkv -pix_fmt yuv422p -b:v 75M -c:v
dnxhd /tmp/sat-dnxhd.mov
[4] ffmpeg -i SquareAndTimelapse.ffv1.mkv -c:v huffyuv /tmp/sat-huffyuv.avi

(PS ffmpeg in [2-4] is whatever ships by default in the latest macports,
seems to be 2.8.6.)
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to