rav1e
rav1e copied to clipboard
Performance comparison for marketing
I'm really excited about this project and want to introduce it to my work. But to do that, I have to persuade my coworkers (and myself). Can we have performance comparison between various encoders of range of encodings, including this project? I think some graphs of bitrate-encoding time tradeoff will be definitely helpful.
Related: #648
@HyeonuPark do you have a specific use-case in mind? We are currently looking for samples we can use to tune some details of the encoder, so the timing would be great :)
To be specific, what I need is a realtime encoder with dynamic bitrate limit, usually hundreds of kbps. I know it's hard for AV1, but it will be awesome if rav1e can be used under such requirements.
@lu-zero @tdaede @HyeonuPark Right now there are 3 av1 encoders (open-source) available. rav1e, SvtAv1 and libaom. libaom is the reference and the output looks very good (to the naked eye) for most use cases, whether using 2-pass vbr or 2-pass crf mode. But its quite slow
Svt is much faster. But their 2-pass mode is still in development (it seems that work has progressed quite a bit in a separate branch, but merge back to master is pending). Also Svt does'nt have a crf-mode (but it does have a constrained vbr (CVBR) mode). For similar parameters (bitrates/resolution) svt is about 2 or more times faster than libaom, but the output quality suffers at low target bitrates. Once their 2-pass code is merged back to master (end of the year maybe), and more of AV1 features are implemented (same time scale) the quality might start rivaling libaom.
Rav1e is the fastest of all. And it has a 2-pass mode. But in my tests, the 2-pass vbr had a lot of undershoot/overshoot (compared to target bit-rate) unlike libaom/libx265/libnx264 (which come very close to target bitrate in 2-pass mode). Ideally, one would want an AV1 encoder to beat atleast libx265. By this, I mean it should produce a lower bitrate for 'similar' visual quality. In my tests, libaom can now achieve that most of the time in 2-pass crf mode .In my tests, I get lower bitrate than x265 with crf=40 along with similar or better visual quality. The drawback is that it is about 15-20 times slower( on my machine) than libx265 (for 360p/480p tests) I would really like to use rav1e in place of libaom because it is "much" faster. . But I have'nt yet seen rav1e beat libx265 in bitrate at similar quality. In most cases, I have to reduce visual quality with rav1e to get similar bitrates. So for 360p/480p encoding I use libaom nowadays (splitting input video into 20-minute chunks and encoding in parallel in the cloud). And for 720p/1080p videos I still use libx265. I hope I can start using rav1e, especially 2-pass mode sometime soon.
@lu-zero regarding samples for benchmarks, lots of people on r/av1 use "tears of steel" and "sintel" open movies for their tests/benchmarks. There are `1080p versions on youtube, or .yuv files hosted by xiph IIRC. Did you mean something else ?
@HyeonuPark regarding somethin with dynamic bitrates, in the 100s of kbs, you can already achieve that in crf-mode with libaom. For instance, I just finished encoding Game of thrones season 8 in 720 with libaom with a bitrate of around 300-350k (on average). The video quality is pretty good too. Low speed is the only problem. For 480p videos, you can already get bitrates of between 150-220k with excellent quality in libaom (2 pass crf-mode). For me, rav1e becomes useful for production purposes when it can get somewhat close to these numbers,. without sacrificing too much in terms of video quality. Svt is also improving very fast. So hopefully, by the end of this year, between svt and rav1e, we'll have atleast one 'reasonably' fast av1 encoder that can beat x265 in bitrate (at the same quality) :)
FYI, I adapted https://github.com/Kagami/av1-bench to try to match encoding time and bit-rate for still images. Just one luma-only metric does not tell the whole story but this gives an indication of comparable presets.