x265 Difficult Settings, common and slow

  • x265 Common Hard (more control, less no-brainer settings, but makes things complex...)

    [

    Note: all unlisted settings are default

    Warning: laptop users, remember connect to power


    Split Block: --ctu < <1600x900=16; 1600x900~2080x1170=32; >2080x1170=64> --min-cu-size 16 --limit-tu 1 --tu-intra-depth 2 --tu-inter-depth 2


    Motion search: --me umh --subme 5 --merange <minimum(52 or ctu minus 4 and minus subme)> --analyze-src-pics

    *Alternative M. Search*: --hme-search umh --subme 5 --hme-range <Cm4mS÷4,Cm4mS÷2,ctu minus 4 minus subme>


    Intra-frame Search: --max-merge 2 --early-skip --b-intra


    Rate/frame Control: --no-open-gop --min-keyint 5 --ref 3 --fades --pbratio <1.2 for grain-less anime only, keep default in any other situation> --bframes 14 --b-adapt 2 --no-strong-intra-smoothing --frame-dup --dup-threshold 59


    Transitions: --scenecut-aware-qp --max-qp-delta 6


    Quantization: --crf <17~20, or any> --crqpoffs -3 --cbqpoffs -1


    RDO-Quantization: --rdoq-level 1


    Adaptive Quantize: --aq-mode 1 --aq-strength <grain-less anime=0.8, film=1> --qg-size 16


    Mode Decision: --rd 5 --limit-modes --limit-refs 3 --rect --rskip 1 --rc-lookahead <triple framerate (whole number)> --tskip-fast


    Rate Distort Optimize: --psy-rd <film=1.6, no-grain anime=0.6 *add or minus 0.6 if ctu is 64 or ctu is 16*>

    *Note here I've disabled psy-rdoq by default as type II recommendation, suggests it has duplicated function as psy-rd, which there's only 1 needed

    *Type III recommendation suggests to use psy-rdoq only, as psy-rd is currently slow for no CPU assembly written, --psy-rdoq <film=3.4, no-grain anime=2.3, *add or minus 0.2 if ctu is 64 or ctu is 16*>


    Deblock: <as default, or --deblock 0:0 for less filtering strength>


    Sample Accommodating Offset: --limit-sao --sao-non-deblock


    Data Perspective Lossless: <disabled as default>


    Picture/Sequence/Rate Parameter Set: --opt-qp-pps --opt-ref-list-length-pps --repeat-headers <for playing unmultiplexed h.265 video normally>


    Input and Output (maybe consistency?): --hash crc --allow-non-conformance <use when writing custom parameters like here> --idr-recovery-sei <use when playing through network like from nas>


    Processor Workload: --pools <if you have multiple CPU-RAMs, check x265.readthedocs.io for this parameter>


    Multi-thread referencing: <as default>


    HDR Support-step1: find out you video color space

    G(x0.265, y0.690), B(x0.150, y0.060), R(x0.680, y0.320), WP(x0.3127, y0.329) is DCI-P3

    G(x0.30, y0.60), B(x0.150, y0.060), R(x0.640, y0.330), WP(x0.3127,y0.329) is bt709

    G(x0.170, y0.797), B(x0.131, y0.046), R(x0.708, y0.292), WP(x0.3127,y0.329) is bt2020


    HDR Support-step2: --master-display <write the correct param as the above information that matches:

    For HDR DCI-P3: G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(?,1)

    For HDR bt709: G(15000,30000)B(7500,3000)R(32000,16500)WP(15635,16450)L(?,1)

    For HDR bt2020: G(8500,39850)B(6550,2300)R(35400,14600)WP(15635,16450)L(?,1)


    HDR Support-step3: Check source HDR video's luminance, and replace the "?" above with the exact amount as is. There is no standard, so each HDR video could be different on that


    HDR Support-step4: --max-cll <maximum content light level, use only when source video is specified, or discovered by ffprobe while source video did not specify>

    --hdr10 <increase bitrate for HDR10 videos>

    --colormatrix <choose one according to source video INFO: GBR bt709 fcc bt470bg smpte170m smpte240m YCgCo

    bt2020nc bt2020c smpte2085 ictcp>

    --transfer <transfer characteristics, choose one or keep unspecified, if source video is unspecified: GBR bt709 fcc bt470bg smpte170m smpte240m YCgCo

    bt2020nc bt2020c smpte2085 ictcp>


    Windows export log: 2>D:\folder\log.txt

    Linux export log: 2>&1 | tee D:\folder\log.txt

    ]


    x265 Slow Hard (gives extra compression... or less compression trades to more quality)

    [

    Note: all unlisted settings are default

    Warning: laptop users, remember connect to power


    Split Block: --ctu < <1600x900=16; 1600x900~2080x1170=32; >2080x1170=64> --limit-tu 1


    Motion search: --me star --subme 5 --merange <minimum(52 or ctu minus 4 and minus subme)> --analyze-src-pics

    *Alternative M. Search*: --hme-search star --subme 5 --hme-range <CmS÷4,CmS÷2,ctu minus subme>


    Intra-frame Search: --max-merge 4 --early-skip --b-intra


    Rate/frame Control: --no-open-gop --min-keyint 1 --ref 3 --fades --bframes 16 --b-adapt 2 --no-strong-intra-smoothing --frame-dup --dup-threshold 70


    Transitions: --scenecut-aware-qp --scenecut-window 650 --max-qp-delta 6


    Quantization: --crf <17~20, or any> --crqpoffs -3 --cbqpoffs -1


    RDO-Quantization: --rdoq-level 2


    Adaptive Quantize: --aq-mode 1 --aq-strength <grain-less anime=0.8, film=1> --qg-size 16


    Mode Decision: --rd 5 --limit-modes --limit-refs 3 --rect --rskip 1 --rc-lookahead <quadruple framerate (whole number)>


    Rate Distort Optimize: --psy-rd <film=1.6, no-grain anime=0.6 *add or minus 0.6 if ctu is 64 or ctu is 16*> --rdpqnalty 1 --splitrd-skip

    *Note here I've disabled psy-rdoq by default as type II recommendation, suggests it has duplicated function as psy-rd, which there's only 1 needed

    *Type III recommendation suggests to use psy-rdoq only, as psy-rd is currently slow for no CPU assembly written, --psy-rdoq <film=3.4, no-grain anime=2.3, *add or minus 0.2 if ctu is 64 or ctu is 16*>


    Deblock: <as default, or --deblock 0:0 for less filtering strength>


    Sample Accommodating Offset: --limit-sao --sao-non-deblock --selective-sao 2


    Data Perspective Lossless: <disabled as default>


    Picture/Sequence/Rate Parameter Set: --opt-qp-pps --opt-ref-list-length-pps --repeat-headers <for playing unmultiplexed h.265 video normally>


    Input and Output (maybe consistency?): --hash crc --allow-non-conformance <use when writing custom parameters like here> --idr-recovery-sei <use when playing through network like from nas> --nr-inter 20 --nr-inter 10 (nrs' are applied very lightly, so it should increase compression with a little trade off)


    Processor Workload: --pools <if you have multiple CPU-RAMs, check x265.readthedocs.io for this parameter>


    Multi-thread referencing: <as default>


    HDR Video Support Setp 1,2,3,4: <same as above>


    Windows export log: 2>D:\folder\log.txt

    Linux export log: 2>&1 | tee D:\folder\log.txt

    ]

    Done... sorry for the delay, I had final exams to do and staying home at the same time<X

    Take care

  • iAvoe

    Changed the title of the thread from “x265 Hard Common and Slow Settings” to “x265 Difficult Settings, common and slow”.