[FFmpeg-devel] WMV2 decoding performance
Diego Biurrun
diego
Sun Nov 11 11:16:42 CET 2007
On Sat, Nov 10, 2007 at 04:44:38PM -0700, Loren Merritt wrote:
> On Sat, 10 Nov 2007, Diego Biurrun wrote:
>
> > I notice that our WMV2 decoder is vastly faster for most of the samples
> > I try it on, for example all the stuff from
> >
> > http://samples.mplayerhq.hu/V-codecs/WMV8/
> >
> > except for the following sample:
> >
> > http://samples.mplayerhq.hu/V-codecs/WMV8/vandread_ep13_op_wm8_ver.wmv
> >
> > Any clues what could be the reason? Benjamin suspects a non-optimized
> > IDCT. The only difference I notice right off is that the above sample
> > is much higher resolution that the others.
>
> It's fast for me.
> Core2 Duo 2.4GHz, gcc 4.2.2, Gentoo.
>
> time mplayer-32 vandread_ep13_op_wm8_ver.wmv -nosound -benchmark -vo null -vfm vfw
> 5.41 +/- .03 sec
>
> time mplayer-32 vandread_ep13_op_wm8_ver.wmv -nosound -benchmark -vo null -vfm dmo
> 3.49 +/- .03 sec
>
> time mplayer-32 vandread_ep13_op_wm8_ver.wmv -nosound -benchmark -vo null -vfm ffmpeg
> 2.66 +/- .01 sec
>
> time mplayer-64 vandread_ep13_op_wm8_ver.wmv -nosound -benchmark -vo null -vfm ffmpeg
> 2.38 +/- .02 sec
>
> oprofile says:
> samples % symbol name
> 178079 31.5680 msmpeg4_decode_block
> 48905 8.6694 ff_simple_idct_put_mmx
> 46937 8.3205 simple_idct84_add
> 43316 7.6786 wmv2_decode_mb
> 36894 6.5402 simple_idct48_add
> 25971 4.6039 dct_unquantize_h263_intra_mmx
> 22512 3.9907 ff_simple_idct_add_mmx
> 16078 2.8501 mpeg4_pred_ac
> 14519 2.5738 clear_blocks_mmx
> 12089 2.1430 wmv2_add_block
> 11930 2.1148 MPV_decode_mb
> 10293 1.8246 ff_emulated_edge_mc
> 10099 1.7902 MPV_motion
> 8504 1.5075 msmpeg4_decode_motion
> 6429 1.1397 decode_slice
> 6268 1.1111 put_pixels16_mmx
> 5881 1.0425 put_pixels_clamped_mmx
> 5071 0.8989 put_pixels16_xy2_mmx
> 5033 0.8922 ff_h263_update_motion_val
> 4694 0.8321 put_no_rnd_pixels16_xy2_mmx
> 4281 0.7589 add_pixels_clamped_mmx
> 4229 0.7497 ff_wmv2_add_mb
> 4094 0.7257 put_pixels8_xy2_mmx
> 3770 0.6683 put_no_rnd_pixels8_xy2_mmx
> 3452 0.6119 prefetch_mmx2
> 2932 0.5198 put_pixels8_mmx
I get very different numbers:
samples % symbol name
2238 20.2150 wmv2_idct_col
1946 17.5775 wmv2_idct_row
1133 10.2339 ff_msmpeg4_decode_block
805 7.2712 ff_wmv2_idct_put_c
576 5.2028 simple_idct84_add
558 5.0402 simple_idct48_add
453 4.0918 MPV_motion
359 3.2427 ff_wmv2_decode_mb
354 3.1975 put_pixels16_mmx
308 2.7820 ff_wmv2_idct_add_c
263 2.3756 mpeg4_pred_ac
237 2.1407 MPV_decode_mb
229 2.0685 dct_unquantize_h263_intra_mmx
163 1.4723 put_pixels8_mmx
129 1.1652 ff_emulated_edge_mc
103 0.9304 put_no_rnd_pixels16_xy2_mmx
98 0.8852 put_pixels16_xy2_mmx
83 0.7497 put_no_rnd_pixels8_xy2_mmx
82 0.7407 clear_blocks_mmx
82 0.7407 wmv2_add_block
80 0.7226 put_pixels8_xy2_mmx
76 0.6865 decode_slice
56 0.5058 ff_h263_update_motion_val
54 0.4878 ff_msmpeg4_decode_motion
46 0.4155 ff_wmv2_add_mb
42 0.3794 fast_memcpy
39 0.3523 ff_clean_intra_table_entries
36 0.3252 put_mspel8_mc00_c
35 0.3161 put_dct
34 0.3071 put_no_rnd_pixels16_x2_3dnow
30 0.2710 prefetch_3dnow
28 0.2529 put_pixels16_y2_3dnow
26 0.2348 ff_msmpeg4_coded_block_pred
23 0.2077 put_no_rnd_pixels16_y2_3dnow
22 0.1987 ff_wmv2_decode_secondary_picture_header
22 0.1987 wmv2_mspel8_v_lowpass
21 0.1897 ff_mspel_motion
21 0.1897 put_pixels16_x2_3dnow
18 0.1626 put_no_rnd_pixels8_y2_3dnow
18 0.1626 put_pixels8_x2_3dnow
16 0.1445 put_no_rnd_pixels8_x2_3dnow
15 0.1355 .plt
15 0.1355 put_pixels8_y2_3dnow
14 0.1265 wmv2_mspel8_h_lowpass
10 0.0903 ff_h263_decode_frame
Diego
More information about the ffmpeg-devel
mailing list