libx264 vs libopenh264 Dataset¶
Compare the libx264 and the libopenh264 encoders.
Download¶
mendevi download x264_vs_openh264.db.xz.torrent
x264_vs_openh264.json.xz (18 Mo).
x264_vs_openh264.db.xz.torrent (6.8 Go).
Plots¶
Distortion as a function of bitrate¶
mendevi plot '<x264_vs_openh264.db>' -x rate -y psnr -y vmaf -wx category -c '(encoder, profile)' -m effort
Consumption as a function of bitrate¶
mendevi plot '<x264_vs_openh264.db>' -x rate -y energy -wx category -wy profile -c encoder -m effort -f "category in {'4K-TV', 'Gaming'}"
Compression efficiency for PSNR=35dB¶
mendevi plot '<x264_vs_openh264.db>' -x rate -y energy -c '(encoder, profile)' -m category -f '34.5<psnr<35.5'
Compression efficiency for rate=2Mb/s¶
mendevi plot '<x264_vs_openh264.db>' -x rate -y energy -c '(encoder, profile)' -m category -f '1.8e6<rate<2.2e6'
Compression efficiency for fixed energy¶
mendevi plot '<x264_vs_openh264.db>' -x rate -y psnr -wx 'round(energy/nbr_frames, 1)' -c encoder -m '(profile, effort)' -f "0.29<energy/nbr_frames<0.31 or 2.45<energy/nbr_frames<2.55"
Conclusion¶
The main consumption factor is the resolution, not the encoder.
At equal resolution and quality,
libopenh264consumes less energy thanlibx264.libx264has a large variance in energy consumption depending on the preset and the video content. It is therefore much less predictable thanlibopenh264.
Ressources¶
this paper (Performance comparison among popular implementations of H.264 encoders) compare the distortion of that codecs.
Reproduce¶
for video in ctc/*.mkv; do
mendevi prepare $video -p sd
mendevi prepare $video -p fhd
done
mendevi encode reference* -e fast -e medium -e slow -m cbr -m vbr -c libx264 -c libopenh264
mendevi probe sample_* --psnr --ssim --vif --vmaf