[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