[MPlayer-dev-eng] MIPS and colorspace conversion

Josh Green jgreen at users.sourceforge.net
Wed Dec 17 01:27:21 CET 2003

I wrote this list just recently about getting higher performance with an
FPU-less 400MHz MIPS board. I did some profiling with mplayer on a P-II
366 laptop, and disabled MMX in mplayer to try get the same code path
(report at end of email). The summary of this test is essentially what I
was told before, that the colorspace conversion (to the fbdev) is likely
killing most of the CPU time.

I've looked over the macros for creating the yuv2rb_c_* routines, but I
have yet jumped into the MIPS assembler to see if any optimization can
be done (I doubt much can be gained there, but I will check out the
assembler output for that routine).

Before seeing about assembler optimization for the mips, I wanted to ask
if anyone knows of a good quality video format that could be played with
mplayer that has native BGR output? Looking through the codecs.conf it
appears there are lots of codecs that have BGR output, but I didn't find
one that I could encode to easily, to see if colorspace conversion could
be done away with.

Thanks in advance for any ideas about how I can get some decent
resolution video (640x480 or larger) to play on this thing :) Cheers.
	Josh Green

Top ten CPU eaters from an oprofile report running 1200 frames of a
640x480 MPEG 2 file 24fps.
mplayer -benchmark -vo fbdev -nosound benchmark.avi

CPU: CPU with RTC device, speed 364.744 MHz (estimated)
Counted RTC_INTERRUPTS events (RTC interrupts/sec (rounded up to power
of two))
count 1024
samples  %        symbol name
13623    37.0876  yuv2rgb_c_16
5342     14.5432  idct_col
2725      7.4186  MC_put_o_16_c
2635      7.1736  idct_row
2238      6.0928  mpeg2_idct_add_c
1541      4.1953  MC_put_o_8_c
1457      3.9666  get_mpeg1_non_intra_block
1443      3.9285  mpeg2_idct_copy_c
1263      3.4384  MC_put_xy_16_c
679       1.8485  mpeg2_slice

More information about the MPlayer-dev-eng mailing list