[x264-devel] Some preliminary test results

Tuukka Toivonen tuukkat at ee.oulu.fi
Wed Jun 29 11:14:27 CEST 2005


On Mon, 20 Jun 2005, Tuukka Toivonen wrote:

> I'm preparing uber-tests that will try all x264
> parameters and also compare them to lavc's mpeg-4.

Well, test encodings are now mostly done. All 23192
of them, each 245 frames at CIF size, or 64.4 hours
of encoded video in total, using 13 different test sequences and 10 
different qp_constant values for each tested parameter combination, giving 
in total around 178 different tested combinations.

End result: best encoding is obtained (for these videos) with

/home/tuukkat/bin/mencoder -quiet -endpos 10
-rawvideo on:format=i420:fps=25:w=352:h=288 -ovc x264
-x264encopts log=3:psnr:qp_constant=20:frameref=15:nob_adapt:
b_bias=0:bframes=3:b_pyramid:ip_factor=1.4:pb_factor=1.6:
direct_pred=1:noweight_b:i4x4:i8x8:b8x8mv:8x8mv:4x4mv:8x8dct:
me=3:me_range=24:subq=6:chroma_me:chroma_qp_offset=0 -o test.10274.avi 
/video/std-video/bridge_close-352x288.yuv

> Bad thing: RDO with --subme 6 is not really better than
> --subme 5. Well, maybe 0.1%, but it varies, some sequences

Well, RDO seems after all to help quite much after enabling
many of the other options too (B-frames most likely).

I'll prepare a web page with some of the results but that will take some 
time. Now I'll just point out some interesting things:
(and I'm still running some tests with larger and noisier
self-captured videos)

- What to do if the best options are too slow? Hard to say, because
   there are no obvious candidates for speeding up.
- Decreasing frameref->10 will increase bit rate by about 0.4% but will
   decrease only by 15% of encoding time.
- Decreasing me_range->16 will increase bit rate by about 0.1-0.2% but
   only decreases by 11% of encoding time.
- Using nochroma_me increases bit rate around 0.4-0.5% but decreases quite
   little encoding time.
- Using subq=5 will decrease encoding time pretty much to half,
   but it does increase bit rate (at the same quality) by 4.2-6%.
- Using me=2 will increase bit rate by about 2.1-4% and
   decrease encoding time by 36%.
- bframes=3 was optimal, which is quite large value. Adaptive
   number of bframes was never even nearly as good (I tried
   adaptive bframes with maximum of 3, 4, and 6 B-frames
   and with different biases, of course).
- pb_factor=1.6 is larger than the default 1.3.
- ip_factor=1.4 is probably inconclusive, as it matters only
   at intra frames and with short sequences there aren't many of them.
- direct_pred=1 was clearly better in PSNR than the recommended
   direct_pred=2 but as the docs say, the latter might have better
   visual quality (I didn't look that).
- (no)weight_b didn't really affect much either encoding speed or
   quality, so I'd prefer without it.
- b_pyramid definitely helps
- me=4 was very, very slow :) and not really even better than me=3
   Might be useful to get encoding times which are comparable to JM ;)
- I didn't try ratecontrol

> I was using these 13 CIF sequences, each 250 frames:
> bridge_close coastguard flower highway news foreman mobile_and_calendar 
> munchener_hall paris stefan tempete tourists_in_san_fransisco waterfall
> The computer is Athlon 2 GHz, gcc version 3.3.5 (Debian 1:3.3.5-13).

Worth to see also:
http://lists.mpegif.org/pipermail/mp4-tech/2005-June/005626.html
they mention about x264 that
"Developers declare "early development stage", but encode results are one 
of the best."

-- 
This is the x264-devel mailing-list
To unsubscribe, go to: http://developers.videolan.org/lists.html



More information about the x264-devel mailing list