Check it yourself
One command runs both encoders on the same clips. It prints how fast each was, how big the files came out and how good they look. This page explains those three numbers.
Run it
scripts/fetch_corpus.sh --review
X264_ASM=$(command -v x264) make review
The first line fetches the four test clips (about 250 MB). The second encodes them twice, once with yah264 and once with x264. Both
aim at the same bitrate. Then it prints how long each took, how big each file
came out and how good each looked. make review-720 and
make review-1080 run half of it.
You need x264 and ffmpeg on your path, and a float-enabled libvmaf 3.x
vmaf CLI with Netflix’s VMAF v1.0.16 model files. They’re looked for at
~/.local/opt/vmaf-v1/bin/vmaf and ~/.local/share/vmaf/model, or wherever
VMAF_V1_BIN and VMAF_V1_MODELS point. Getting started covers
the build.
What comes back
clip time VMAF size PSNR-Y
ours/x264 ours-x264 vs x264 ours-x264
bbb_720p 0.88x -0.51 -7.1% +1.32
perseverance_720p 0.86x +0.10 -2.5% -0.09
bbb10s_1080p_o120 0.74x -0.15 -1.8% -0.88
perseverance_1080p 0.78x +0.12 -3.1% -0.81
MEDIAN 0.82x
These numbers come from one real run on an idle 18-core Apple M5 Max. Each clip ran at its own bitrate over a six-second window. Both encoders got twelve threads, and x264 ran at its defaults. Your run will differ by a few hundredths. Ignore the second decimal.
time is our encode time over x264’s. Below 1.00 we’re faster: 0.82x
means we took about four fifths of x264’s time.
VMAF is quality: our score minus x264’s, on VMAF v1 scored at display
resolution. v1 doesn’t reward free sharpening, and it also sees banding and
chroma. Positive means ours looks better.
size is how much bigger our file is than x264’s. Negative means ours is
smaller.
PSNR-Y is a second, simpler quality score in decibels. The site’s floor
is that no clip may fall more than 1 dB behind x264.
perseverance_1080p can dip just past it and print PSNR-FLOOR FAIL. Our file
there is about 6% smaller at equal VMAF, so the gap is mostly bits we didn’t
spend.
Reading size and quality together
You can always make a smaller file by accepting a worse picture, so neither number means much on its own.
When both point the same way, the answer is clear. perseverance_1080p came
out 3.1% smaller and scored slightly better. That’s a real win.
When they point opposite ways, one run can’t tell you. bbb_720p came out 7.1%
smaller and scored half a point worse. That might be better or worse value.
Answering it needs the whole size-against-quality curve for both encoders.
A BD-rate measures that curve. The results page uses BD-rate
for exactly this reason.
This page and the results page
This board is the quick check. It runs four HD clips through the two encoders as separate programs at twelve threads each, and asks both for a bitrate. The results page is the full test. It covers clips from CIF to 4K and real titles up to ten minutes, runs each encoder at its own default thread count, and compares them at the same file size across a range of rates.
Why these four clips
720p 1080p
CGI bbb_720p bbb10s_1080p_o120
camera perseverance_720p perseverance_1080p
Resolution and how synthetic the content is move a speed comparison more than anything else. Computer-generated frames are clean and compress unusually well. An encoder measured only on them looks better than it is. Real camera footage has sensor noise and real motion.
Big Buck Bunny is an open-source animated film. Perseverance is footage from NASA’s Mars rover. Each appears at both resolutions, so the 720p and 1080p rows differ by resolution and nothing else. Four clips keeps the run to a few minutes. The long titles are on the results page.
Don’t settle anything on one run. A speed ratio moves by up to about 0.10 between machines and between days.