Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > High Efficiency Video Coding (HEVC)

Reply
 
Thread Tools Search this Thread Display Modes
Old Yesterday, 17:38   #1  |  Link
Ischemia24
Registered User
 
Join Date: Nov 2016
Posts: 4
Highest quality to file size ratio

I didn't see anything about this in the guides or FAQ and googling also hasn't turned up the specific information I'm looking for, so I'm asking here: How can I use H.265 to achieve the highest quality to file size ratio?

A year or two ago I found this post by Ma in the main HEVC thread. Based on that I've been using these Handbrake settings.

1080p
MKV format, 1920x1080, no filters, 10-bit H.265, constant framerate same as source, very slow preset, no encoder tune, auto-profile, 2-pass, 1500 bitrate, Extra Options: rc-lookahead=120:bframes=12:ref=6:subme=7
If it is a dark video then: rc-lookahead=120:bframes=12:ref=6:subme=7:aq-mode=3

720p (only listing what's different here and for subsequent resolutions)
1280x720, 760 bitrate

480p
854x480, 360 bitrate

360p
640x360, 300 bitrate

These are a starting point, and I've had to adjust the bitrate or try CRF instead, depending on the source files. But I've noticed that others have outdone me when it comes to the quality to file size ratio. It seems there should be a better set of options to start with, or I'm missing something in terms of what settings I should know to try to tweak in different scenarios.

I've seen these types of threads before and contributed to them, and they usually have answers like "just find what's right for you", but I would like to at least hear what baseline settings others use and what are the prime candidates for settings to tweak for those that value quality to file size as I do.

Last edited by Ischemia24; Today at 13:18.
Ischemia24 is offline   Reply With Quote
Old Yesterday, 19:54   #2  |  Link
mariush
Registered User
 
Join Date: Dec 2008
Posts: 589
My advice would be to seriously analyze how much time disk space is really worth to you.

We're at the point where you can buy a 8 TB (~ 7250 GiB in real disk space) for $150 ... that's 0.02$ per GB.

At 3 mbps, you're looking at ~ 22 MB per minute or 1.4 GB per hour ...

If you're gonna spend maybe 2-3 hours per one hour of encoding you should at least use a higher bitrate, maybe something like 8-10mbps VBR for 1080p and 4-8 mbps VBR for 720p ... if you end up with around 4-6 GB for a 2h movie, you're still looking at less than 0.1$ in disk space cost.

// also hmm.. you joined nov 2016 but today's your first post?

// ps... also checked the other forum post you mentioned.. hope you realized he used a cartoon for tests... real motion video, bluray with grain etc will behave differently.. make sure you understand why he uses some settings there.
mariush is online now   Reply With Quote
Old Yesterday, 22:48   #3  |  Link
Ischemia24
Registered User
 
Join Date: Nov 2016
Posts: 4
Quote:
Originally Posted by mariush View Post
My advice would be to seriously analyze how much time disk space is really worth to you.

We're at the point where you can buy a 8 TB (~ 7250 GiB in real disk space) for $150 ... that's 0.02$ per GB.

At 3 mbps, you're looking at ~ 22 MB per minute or 1.4 GB per hour ...
I run an ITX media server, and I don't have a lot of room for expandability. But I recently upgraded it to a 3900X, so I am finally in a position to throw a lot of CPU power at H.265 encoding.

Quote:
Originally Posted by mariush View Post
If you're gonna spend maybe 2-3 hours per one hour of encoding you should at least use a higher bitrate, maybe something like 8-10mbps VBR for 1080p and 4-8 mbps VBR for 720p ... if you end up with around 4-6 GB for a 2h movie, you're still looking at less than 0.1$ in disk space cost.
Most of the time the settings I cited in the original post work pretty well for me. But I've seen examples where I'm clearly beaten in quality to file size. I want to know how to improve. Actually, part of that is how to leverage the 3900X, because I started three instances of Handbrake doing 360p and 480p encodes and the CPU is not fully utilized. Maybe should be its own post.

Quote:
Originally Posted by mariush View Post
also hmm.. you joined nov 2016 but today's your first post?

ps... also checked the other forum post you mentioned.. hope you realized he used a cartoon for tests... real motion video, bluray with grain etc will behave differently.. make sure you understand why he uses some settings there.
Yes, I was going to ask then what settings I should use for my goals, but I feared I hadn't done enough of my own research and held off, then forgot all about it.

I think the Big Buck Bunny movie sample he used is something that you would tune for Film if using H.264 rather than Animation. But I admit I don't know why he went with the particular settings he chose. It was just presented as "true placebo" mode for H.265 and I seized on it.
Ischemia24 is offline   Reply With Quote
Old Today, 00:08   #4  |  Link
RanmaCanada
Registered User
 
Join Date: May 2009
Posts: 66
Time to change your media server to something larger. Sorry, but that is the reality. Disk space is cheap, and it will actually cost you more in power to convert your movies, than to just store them. IE the amount it will cost in power to use your computer to "save space" by encoding, is more expensive than storing the original on a hard drive and just buying new drives when you run out of space. Especially if you care about quality in your encodes.
RanmaCanada is offline   Reply With Quote
Old Today, 00:12   #5  |  Link
benwaggoner
Moderator
 
Join Date: Jan 2006
Location: Portland, OR
Posts: 2,874
Turning the nebulous concept of "quality" into a linear value that a ratio can be calculated from is a massive unsolved problem in computer vision and human visual perception. Any scale you could come up with would be specific to a given scenario.
__________________
Ben Waggoner
Principal Video Specialist, Amazon Prime Video

My Compression Book
benwaggoner is offline   Reply With Quote
Old Today, 08:10   #6  |  Link
Ischemia24
Registered User
 
Join Date: Nov 2016
Posts: 4
I don't feel like the substance of my question is being addressed. I'm not looking to re-encode my entire library. Just a few things, and most new titles I add. I get that quality is difficult to quantify in the context of video encoding, but we do have methods for it, however imperfect.

Any input on encoding settings?
Ischemia24 is offline   Reply With Quote
Old Today, 09:12   #7  |  Link
excellentswordfight
Lost my old account :(
 
Join Date: Jul 2017
Posts: 88
Quote:
Originally Posted by Ischemia24 View Post
I don't feel like the substance of my question is being addressed. I'm not looking to re-encode my entire library. Just a few things, and most new titles I add. I get that quality is difficult to quantify in the context of video encoding, but we do have methods for it, however imperfect.

Any input on encoding settings?
Then lets assume that encoding time is pretty much irelevant to the discussion (which sounds crazy to me, but okey). What excactly are you not pleased with? You are talking about examples were you are beaten, how were they beaten? Have you encoded the same content at the same bitrate and compared them? As far as I can see, you are already pretty much throwing everything x265 has to offer at the encode, you can add something like --no-sao and --deblock -1:-1 if you want better detail and noise retention, but other then that, there is not really much more to do, you are already well beyond the diminishing returns point when it comes to compression gains at the cost of cpu cycles.

And for the "Highest quality to file size ratio" part, this is exactly what crf is good for, just start with a baseline crf of 18 or something and increase it until you hit your sweetspot between visual fidelity and size (cause only you can decide at what point you are pleased with quality), at that point you will have found the "best" "quality to fie size ratio". This will also effect your encoding settings, are you looking at maxing out compression with low bitrates and will accept a lot of quality degradation, or should it be close to visually transparent? Cause for example, --no-sao and --deblock -1:-1 is great for the later case, but no that great for the first one.

Last edited by excellentswordfight; Today at 12:09.
excellentswordfight is offline   Reply With Quote
Old Today, 12:35   #8  |  Link
Ischemia24
Registered User
 
Join Date: Nov 2016
Posts: 4
Quote:
Originally Posted by excellentswordfight View Post
You are talking about examples were you are beaten, how are you beaten? Have you encoded the same content at the same bitrate and compared them? As far as I can see, you are already pretty much throwing everything x265 has to offer at the encode, you can add something like --no-sao and --deblock -1:-1 if you want better detail and noise retention, but other then that, there is not really much more to do, you are already well beyond the diminishing returns point when it comes to compression gains at the cost of cpu cycles.

And for the "Highest quality to file size ratio" part, this is exactly what crf is good for, just start with a baseline crf of 18 or something and increase it until you hit your sweetspot between visual fidelity and size (cause only you can decide at what point you are pleased with quality), at that point you will have found the "best" "quality to fie size ratio". This will also effect your encoding settings, are you looking at maxing out compression with low bitrates and will accept a lot of quality degradation, or should it be close to visually transparent? Cause for example, --no-sao and --deblock -1:-1 is great for the later case, but no that great for the first one.
I figured I shouldn't be specific, but, it seems common that the release group PSArips put out something that looks better and is smaller than my encodes. And for a specific example, a release group (individual?) who goes by JoyBell released two seasons of Dollhouse at ~1200 kbps 1080p that look better than most of my 1500 kbps 1080p encodes.

I appreciate the input regarding no-sao and deblock -1:-1, thank you.

I can't see the encoding settings PSArips use, but -- actually, I can see the settings on the Dollhouse episodes. Here's one:

Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main 10@L4@High
Codec ID : V_MPEGH/ISO/HEVC
Duration : 50 min 17 s
Bit rate : 1 200 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 10 bits
Bits/(Pixel*Frame) : 0.024
Stream size : 432 MiB (81%)
Writing library : x265 2.8+19-bcdc610cf5f0:[Windows][MSVC 1914][64 bit] 10bit
Encoding settings : cpuid=1111039 / frame-threads=3 / numa-pools=8 / wpp / no-pmode / no-pme / no-psnr / ssim / log-level=2 / input-csp=1 / input-res=1920x1080 / interlace=0 / total-frames=72337 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=3 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=23 / keyint=250 / gop-lookahead=0 / bframes=8 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=20 / lookahead-slices=6 / scenecut=40 / radl=0 / no-intra-refresh / ctu=64 / min-cu-size=8 / no-rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=1 / dynamic-rd=4.00 / ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=2 / limit-refs=3 / no-limit-modes / me=1 / subme=2 / merange=57 / temporal-mvp / weightp / weightb / analyze-src-pics / deblock=0:0 / sao / sao-non-deblock / rd=3 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=0.00 / psy-rdoq=0.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=abr / bitrate=1200 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=2 / cplxblur=20.0 / qblur=0.5 / vbv-maxrate=12000 / vbv-bufsize=24000 / vbv-init=0.9 / ipratio=1.40 / pbratio=1.30 / aq-mode=3 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=0 / overscan=0 / videoformat=5 / range=0 / colorprim=2 / transfer=2 / colormatrix=2 / chromaloc=0 / display-window=0 / max-cll=0,0 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / no-hdr / no-hdr-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=10 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=0 / limit-sao / ctu-info=0 / no-lowpass-dct / refine-mv-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei
Default : Yes
Forced : No

I don't know what to make of this because they've backed off some of the settings I specify, and I don't know what else they may have specified and what values are defaults. High-tier=1 seems significant, but I'm not seeing anything in the documentation about what benefits that could provide. I'm guessing it means poorer compatibility with decoders, but I'm not concerned about that.
Ischemia24 is offline   Reply With Quote
Old Today, 13:08   #9  |  Link
Forteen88
Herr
 
Join Date: Apr 2009
Location: North Europe
Posts: 363
VMAF is a better video-quality metric than SSIM & PSNR,
https://streaminglearningcenter.com/...af-master.html
Forteen88 is offline   Reply With Quote
Old Today, 13:08   #10  |  Link
excellentswordfight
Lost my old account :(
 
Join Date: Jul 2017
Posts: 88
Quote:
Originally Posted by Ischemia24 View Post
I figured I shouldn't be specific, but, it seems common that the release group PSArips put out something that looks better and is smaller than my encodes. And for a specific example, a release group (individual?) who goes by JoyBell released two seasons of Dollhouse at ~1200 kbps 1080p that look better than most of my 1500 kbps 1080p encodes.

I appreciate the input regarding no-sao and deblock -1:-1, thank you.

I can't see the encoding settings PSArips use, but -- actually, I can see the settings on the Dollhouse episodes. Here's one:

Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main 10@L4@High
Codec ID : V_MPEGH/ISO/HEVC
Duration : 50 min 17 s
Bit rate : 1 200 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 10 bits
Bits/(Pixel*Frame) : 0.024
Stream size : 432 MiB (81%)
Writing library : x265 2.8+19-bcdc610cf5f0:[Windows][MSVC 1914][64 bit] 10bit
Encoding settings : cpuid=1111039 / frame-threads=3 / numa-pools=8 / wpp / no-pmode / no-pme / no-psnr / ssim / log-level=2 / input-csp=1 / input-res=1920x1080 / interlace=0 / total-frames=72337 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=3 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=23 / keyint=250 / gop-lookahead=0 / bframes=8 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=20 / lookahead-slices=6 / scenecut=40 / radl=0 / no-intra-refresh / ctu=64 / min-cu-size=8 / no-rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=1 / dynamic-rd=4.00 / ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=2 / limit-refs=3 / no-limit-modes / me=1 / subme=2 / merange=57 / temporal-mvp / weightp / weightb / analyze-src-pics / deblock=0:0 / sao / sao-non-deblock / rd=3 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=0.00 / psy-rdoq=0.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=abr / bitrate=1200 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=2 / cplxblur=20.0 / qblur=0.5 / vbv-maxrate=12000 / vbv-bufsize=24000 / vbv-init=0.9 / ipratio=1.40 / pbratio=1.30 / aq-mode=3 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=0 / overscan=0 / videoformat=5 / range=0 / colorprim=2 / transfer=2 / colormatrix=2 / chromaloc=0 / display-window=0 / max-cll=0,0 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / no-hdr / no-hdr-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=10 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=0 / limit-sao / ctu-info=0 / no-lowpass-dct / refine-mv-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei
Default : Yes
Forced : No

I don't know what to make of this because they've backed off some of the settings I specify, and I don't know what else they may have specified and what values are defaults. High-tier=1 seems significant, but I'm not seeing anything in the documentation about what benefits that could provide. I'm guessing it means poorer compatibility with decoders, but I'm not concerned about that.
Are you also encoding dollhouse? If not, it doesnt make much sense to compare another source against it, the compressibility of different sources can be very different, you also dont know if the source were filtered to be able to compress better.

Also, the encode that you have sampled is by no means any special, it looks like something like this was used: --preset medium --profile main10 --bframes 8 --aq-mode 3 --sao-non-deblock --limit-sao --bitrate 1200 --vbv-maxrate 12000 --vbv-bufsize 24000. And afaik, main and high teir only effect allowed datarates @ given level, so it doesnt matter that much here, I would think that it is automatically set cause of --vbv-bufsize 24000.

Last edited by excellentswordfight; Today at 13:40.
excellentswordfight is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 14:11.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.