Log in

View Full Version : Compression Experiments - The Wolverine: 33.10 mbps Blu-ray vs 1.80 mbps encode


tonemapped
27th August 2021, 00:31
Introduction
I've continued to play with x265 and thought I'd try a simple experiment: how much can a film be compressed until it's subjectively unwatchable, and at what point does the encode remain watchable and retain most details, but with the lowest possible bitrate? (far lower bitrate than any reasonable person would use to encode a film)

Video Rationale
I chose The Wolverine as it's relatively modern, contains a diverse range of studio sets and locations, and has modern, 'natural' grain (by this I mean there is a small amount of grain).

Figures
- Source
Video: Blu-ray AVC @ 33.10 mbps
Audio: DTS-HD Master Audio 7.1 @ 5.34 mbps
Total Size: 42.65 GB

- Encode
Video: x265 (modified Fast profile, 3-pass) @ 1.8 mbps
Audio: E-AC3 @ 640 kbps
Total Size: 1.96 GB

Conclusion
I'm incredibly impressed considering it's a 138 minute film under 2GB with 640 kbps 5.1 audio and, for the most part, acceptable quality - certainly when watching on a TV and not comparing individuals frames on a 32" professional calibrated 10-bit 4K display. It's certainly not transparent and not something I would encode for my physical -> digital archive, but this was just a test.

I chose 1.8 mbps after doing a number of tests and settled on a 3-pass encode in order to make sure sure I extracted every bit of detail possible, given the heavily restricted bitrate.

I welcome your views. Again, this was just an experiment I found to be a fun project, but also a needed distraction whilst experiencing a trigeminal neuralgia (https://www.urmc.rochester.edu/neurosurgery/services/conditions/trigeminal-neuralgia.aspx) attack.

Screenshots
I deliberately looked for scenes where the compression is noticeable (e.g. textures missing detail or having a flat appearance). A good example of this is the scene with the bear (fifth set of images). And yes, there are 'dirty borders' that I would fix for an encode I intend to keep.

https://i.ibb.co/KLwB6b6/01-bluray.png (https://ibb.co/pRyN2b2) https://i.ibb.co/VMkxDB5/02-encode.png (https://ibb.co/5sJkvcw)

https://i.ibb.co/0Q4mXCG/03-bluray.png (https://ibb.co/CWCmtbH) https://i.ibb.co/k4rjffR/04-encode.png (https://ibb.co/3p82qqD)

https://i.ibb.co/QYcjqgm/05-bluray.png (https://ibb.co/nQ08VGk) https://i.ibb.co/KX09KNV/06-encode.png (https://ibb.co/drWQmbk)

https://i.ibb.co/bWmdcfR/07-bluray.png (https://ibb.co/X2LJcwk) https://i.ibb.co/ssx1G1b/08-encode.png (https://ibb.co/j30w2wb)

https://i.ibb.co/vc7rg75/09-bluray.png (https://ibb.co/10DphDV) https://i.ibb.co/nb53x6Z/10-encode.png (https://ibb.co/bP8HcQq)

https://i.ibb.co/4S9LDqM/11-bluray.png (https://ibb.co/fNBWKgt) https://i.ibb.co/JKb83Zj/12-encode.png (https://ibb.co/MsjKBdk)

https://i.ibb.co/dWzZ982/13-bluray.png (https://ibb.co/NVHRhcj) https://i.ibb.co/PZWQL5d/14-encode.png (https://ibb.co/VWCm1vs)

benwaggoner
2nd September 2021, 18:50
Can you share the command line? I'm not sure what "modified fast would entail."

My intuition is that you'd get better quality in the same time by doing a two-pass encode with a medium-ish second pass. Did you do a comparison?

tonemapped
3rd September 2021, 07:27
Can you share the command line? I'm not sure what "modified fast would entail."

Sorry, by "modified fast", I mean using the x265 fast preset with some modifications to the predefined options (e.g. greater subme than would normally be used with simply using the fast preset).

My intuition is that you'd get better quality in the same time by doing a two-pass encode with a medium-ish second pass. Did you do a comparison?

I no longer have the exact command line I used as it was completed a couple of weeks ago and I clear test encodes from that drive about shortly after encoding (it's only a 4TB drive for test encodes and that includes some ProRes), but here's the output from mediainfo (encoded using a slightly older build of x265 as I forgot to change the executables.)


wpp / ctu=64 / min-cu-size=8 / max-tu-size=32 / tu-intra-depth=1 / tu-inter-depth=1 / me=1 / subme=2 / merange=57 / no-rect / no-amp / max-merge=2 / temporal-mvp / no-early-skip / recursion-skip / rdpenalty=0 / no-tskip / no-tskip-fast / strong-intra-smoothing / no-lossless / no-cu-lossless / no-constrained-intra / no-fast-intra / open-gop / no-temporal-layers / interlace=0 / keyint=250 / min-keyint=23 / scenecut=40 / rc-lookahead=20 / lookahead-slices=5 / bframes=4 / bframe-bias=0 / b-adapt=2 / ref=3 / limit-refs=3 / no-limit-modes / weightp / no-weightb / aq-mode=1 / qg-size=32 / aq-strength=1.00 / cbqpoffs=0 / crqpoffs=0 / rd=3 / psy-rd=2.00 / rdoq-level=0 / psy-rdoq=0.00 / no-rd-refine / signhide / deblock=0:0 / sao / no-sao-non-deblock / b-pyramid / cutree / no-intra-refresh / rc=2 / pass / bitrate=2500 / qcomp=0.60 / qpmin=0 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ipratio=1.40 / pbratio=1.30