I know this has been discussed a lot. Which do you prefer?
Using a Full BD source to encode
rc=2pass / bitrate=3000
rc=crf / crf=18.5
Does CRF create a little bit better quality during the encode vs 2pass and choosing a bitrate?
Let me know, thank you!
+ Reply to Thread
Results 1 to 19 of 19
Thread: CRF vs 2pass/bitrate
It's going to depend on the source.
Most of the time a full BD will look worse at 2pass 3000kb/s .
Because most of the time crf 18.5 will yield much higher bitrate from a BD source , thus much larger filesize(so you're not comparing "apples to apples" properly)
The file sizes have been pretty close. Within 1/5 of a gig
If you did multiple enodes, changing the CRF until the bitrate was exactly the same as your 2pass encode (eg. 18.1, 18.2, 18.3 etc...) then the result will be very similar . Another way of saying this. If you do a CRF encode and take whatever bitrate is achieved by that encode then do a 2pass encode with that bitrate, it will be very similar
With bitrate based encoding you are picking the bitrate (and hence the file size). The encoder delivers whatever quality it can at that bitrate.
Different videos will require different bitates to maintain quality. When the two methods give the same bitrate the quality is nearly identical.
Some extreme examples:
That's xvid, not x264. But the issue is the same.
Apparently the x264 encoder encodes in exactly the same way using CRF as it does when running 2 passes if the two file sizes are exactly the same. ie if you run a CRF encode and use the resulting bitrate/file size for a 2 pass encode the result will be identical. So if you've picked a smaller file size for the 2 pass encode the quality will be lower etc.
Well.... the way I understand it there are minor differences between CRF and 2 pass, but nothing that really matters. I've run comparison encodes between CRF and 2 pass (same average bitrate) and checked the bitrate for each as the encodes played side by side. As an example the 2 pass encode used a constantly lower bitrate for a while (only around 10Kb/s, I think), then it'd use a slightly higher bitrate for a bit (same tiny amount), then slightly lower etc, but nothing which resulted in a visual difference.
I think you'll find most people here use CRF in preference to 2 pass unless they have a particular need to achieve a certain file size. I know I prefer to pick the quality rather than pick a file size and hope for the best.
I will post two separate encode settings of the same movie using the same source. This will help you get a better idea of what I am talking about and trying to accomplish.
Bitrate around 3022 Kbps
Size: 2.24 GB (just video)
Encoding settings : cabac=1 / ref=8 / deblock=1:-3:-3 / analyse=0x3:0x133 / me=umh / subme=11 / psy=1 / psy_rd=1.00:0.15 / mixed_ref=1 / me_range=64 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=6 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=2 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=18.5 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
2 pass with set bitrate
Size: 2.17 GB (just video)
Encoding settings : cabac=1 / ref=5 / deblock=1:-1:-1 / analyse=0x3:0x133 / me=umh / subme=10 / psy=1 / psy_rd=1.30:0.00 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=6 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=1 / keyint=240 / keyint_min=23 / scenecut=50 / intra_refresh=0 / rc_lookahead=50 / rc=2pass / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.30
Between the two, you really can't see a difference in quality. They are both strong encode settings. Just wondering which was better and why...
For me there isn't an enormous difference per se between the two.
The big advantage, I've found, with crf is that you can use more advanced encoding options and get get much better quality in the same time as with 2 pass without those extra encoding goodies.
It's only coincidence that the two encodings have nearly the same bitrate. Go encode a bunch of other movies at CRF 18.5. You'll find out the all turn out different bitrates.
LOL everybody, just try to encode CRF=18 and set --qpmax 30, you will got hudge increase on bitrate, so you usually encode with --qpmax 50 and bitrate will be much lower, so where is the CRF=18 ha ha ha , CRF 18 is between --qpmax 30 and --qpmax 50 tra la la
i use 2 pass encoding a little bit slower indeed but ........
You can' t tell from the settings alone. Not only that, you're using different encoding settings (there are a dozen other things different than 2pass vs. CRF)
Majority of my encodes are rc=2pass / birate=#
Just started using rc=crf / crf=18.5
--qpmax 30 and 50 will make almost no difference at CRF=18.
just make a try .........i can make a bet on 50% increase upon bitrate
Last edited by jagabo; 25th Nov 2012 at 17:33.
I agree, changing the qpmax does not make a big difference.