[MPlayer-dev-eng] [PATCH]Add support for CoreAVC h264 codec

Alan Nisota alannisota at gmail.com
Thu Oct 5 05:00:15 CEST 2006


On 10/4/06, Corey Hickey wrote:
> Alan Nisota wrote:
> > On 10/3/06, Michael Niedermayer wrote:
> >> things to test
> >> * low resolution where all reference frames+1 _easily_ fit in the L2 cache
> >> * CABAC / CAVLC
> >> * high bitrate / low bitrate
> >> * intra only
> >> * B frames vs. no B frames
> >> * loop filter / disabled loop filter
> >>
> >> and also check if the output of coreavc is binary identical to ffh264
> >> if not that would explain why they are faster
> >>
> >> also try to compile (i386)/dsputil* with -O2 that will make lavc
> >> faster depending on the gcc version
I used the same input file for all runs (1280x720, 55secs, 3242 video frames)
I resized the stream to 320x180, 640x360, 960x540, and 1280x720
For each of those I ran for encodings:
high-bitrate, no b-frames
low-bitrate, no b-frames
high-bitrate, 2 b-frames
high-bitrate, only I-frames
which gives a total of 16 streams to benchmark.
'high-bitrate' is defined as ~8.9 bits/(sec * pixel) = 500 kb/s at 320x180
'low-bitrate' is defined as ~2.2 bits/(sec * pixel)  = 100 kb/s at 320x180
audio was fixed at 48kb/s CBR MP3 (though this really shouldn't matter)

Each stream was benchmarked 3 times with the average result used
(reproducibilty was very good)
encoding was done using:
mencoder -ovc x264 -oac mp3lame -vf scale=320x180 -srate 8000
-lameopts cbr:br=48 -x264encopts xxxx

decoding was done using:
mplayer -vc coreavc/ffh264 -vo null -nosound -benchmark

frame comparison was done using:
mplayer -vc coreavc/ffh264 -vo md5sum -nosound
every frame was different.  I guess the next step would be to do a
frame diff but let's do this one step at a time.  The one thing I can
say is that the output from CoreAVC looks very good.

Also, I recompiled libavcodec/i386/dsputil* with -O2 instead of -O4 with no sign
ificant runtime change.

I believe I've covered most of what you asked for, but I don't know
what you mean by:
> >> * CABAC / CAVLC
> >> * loop filter / disabled loop filter

These runs were done on a Pentium 4 2.8GHz (Northwood) with
hyper-threading disabled, and a 512K cache.

If you'd like additional benchmarks, I'll be ahppy to run them, but it
would be helpful if you could be explicit about what you are asking
for.

320x180_lo_no_b.avi:  AVC:   1.6983 FFh264:   2.1397 Diff:  20.63%
320x180_no_b.avi:     AVC:   2.5720 FFh264:   3.6647 Diff:  29.82%
320x180_2_b.avi:      AVC:   3.0217 FFh264:   4.3490 Diff:  30.52%
320x180_only_i.avi:   AVC:   3.6400 FFh264:   5.5330 Diff:  34.21%

640x360_lo_no_b.avi:  AVC:   7.4727 FFh264:   9.0733 Diff:  17.64%
640x360_no_b.avi:     AVC:  11.6083 FFh264:  15.1547 Diff:  23.40%
640x360_2_b.avi:      AVC:  13.2737 FFh264:  17.6897 Diff:  24.96%
640x360_only_i.avi:   AVC:  13.9900 FFh264:  20.8660 Diff:  32.95%

960x540_lo_no_b.avi:  AVC:  16.3263 FFh264:  19.5637 Diff:  16.55%
960x540_no_b.avi:     AVC:  25.7600 FFh264:  34.7473 Diff:  25.86%
960x540_2_b.avi:      AVC:  29.5473 FFh264:  40.3160 Diff:  26.71%
960x540_only_i.avi:   AVC:  32.3753 FFh264:  47.0533 Diff:  31.19%

1280x720_lo_no_b.avi: AVC:  28.5677 FFh264:  34.8783 Diff:  18.09%
1280x720_no_b.avi:    AVC:  46.9833 FFh264:  62.9510 Diff:  25.36%
1280x720_2_b.avi:     AVC:  51.2857 FFh264:  70.2810 Diff:  27.01%
1280x720_only_i.avi:  AVC:  56.2217 FFh264:  81.0200 Diff:  30.61%



More information about the MPlayer-dev-eng mailing list