Posts: 258
Threads: 34
Joined: Aug 2022
Last Sunday I checked a three-minute H.264 4k60fps-82k Bitrate:
1. SVT-AV1 quantizer 8-bit yuv 420 with PSNR effect = used auto-26k Bitrate
2. x265-ultrafast 8-bit yuv 420 with PSNR effect = specified 22k bitrate
at 1 I noticed = fast processing but with image degradation
and at 2 I noticed = processing slower than 1 but without quality loss
how to activate PSNR?
SVT-AV1 calls but does not use
Posts: 10.598
Threads: 57
Joined: May 2017
Quote:how to activate PSNR?
SVT-AV1 calls but does not use
I'm not sure what you mean when you write 'with PSNR effect', do you mean you used 'x265 ... --tune psnr' and 'SvtAv1EncApp --tune 1' ?
('--tune 1' is the default for SVT-AV1, so it used by default and not shown in the command line, while 'minimize command line' is enabled.)
Not sure what to do with your question, you might want to ask the SVT AV1 developers, over at https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues since I have don't think I can help.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 258
Threads: 34
Joined: Aug 2022
Is this codec profile “original” or modified?
and which version is it worth?
Posts: 10.598
Threads: 57
Joined: May 2017
Quote:Is this codec profile “original” or modified?
codec = coder and decoder
Assuming you are asking whether the default settings for in Hybrid are the default settings of SvtAv1EncApp:
short answer: Aside from the tile settings, Hybrid does use SvtAv1EncApps default values.
long answer:
Usage: SvtAv1EncApp <options> <-b dst_filename> -i src_filename
Examples:
Multi-pass encode (VBR):
SvtAv1EncApp <--stats svtav1_2pass.log> --passes 2 --rc 1 --tbr 1000 -b dst_filename -i src_filename
Multi-pass encode (CRF):
SvtAv1EncApp <--stats svtav1_2pass.log> --passes 2 --rc 0 --crf 43 -b dst_filename -i src_filename
Single-pass encode (VBR):
SvtAv1EncApp --passes 1 --rc 1 --tbr 1000 -b dst_filename -i src_filename
Options:
--help Shows the command line options currently available
--version Shows the version of the library that's linked to the library
-i, --input Input raw video (y4m and yuv) file path, use `stdin` or `-` to read from pipe
-b, --output Output compressed (ivf) file path, use `stdout` or `-` to write to pipe
-c, --config Configuration file path
--errlog Error file path, defaults to stderr
-o, --recon Reconstructed yuv file path
--stat-file PSNR / SSIM per picture stat output file path, requires `--enable-stat-report 1`
--progress Verbosity of the output, default is 1 [0: no progress is printed, 2: aomenc style output]
--no-progress Do not print out progress, default is 0 [1: `--progress 0`, 0: `--progress 1`]
--preset Encoder preset, presets < 0 are for debugging. Higher presets means faster encodes, but with a quality tradeoff, default is 10 [-1-13]
--svtav1-params colon separated list of key=value pairs of parameters with keys based on config file options
Encoder Global Options:
-w, --width Frame width in pixels, inferred if y4m, default is 0 [64-16384]
-h, --height Frame height in pixels, inferred if y4m, default is 0 [64-8704]
--forced-max-frame-width Maximum frame width value to force, default is 0 [64-16384]
--forced-max-frame-height Maximum frame height value to force, default is 0 [64-8704]
--n Number of frames to encode. If `n` is larger than the input, the encoder will loop back and continue encoding, default is 0 [0: until EOF, 1-`(2^63)-1`]
--skip Number of frames to skip. Default is 0 [0: don`t skip, 1-`(2^63)-1`]
--frames Number of frames to encode. If `n` is larger than the input, the encoder will loop back and continue encoding, default is 0 [0: until EOF, 1-`(2^63)-1`]
--nb Buffer `n` input frames into memory and use them to encode, default is -1 [-1: no frames buffered, 1-`(2^31)-1`]
--color-format Color format, only yuv420 is supported at this time, default is 1 [0: yuv400, 1: yuv420, 2: yuv422, 3: yuv444]
--profile Bitstream profile, default is 0 [0: main, 1: high, 2: professional]
--level Bitstream level, defined in A.3 of the av1 spec, default is 0 [0: autodetect from input, 2.0-7.3]
--enable-hdr Enable writing of HDR metadata in the bitstream, default is 0 [0-1]
--fps Input video frame rate, integer values only, inferred if y4m, default is 60 [1-240]
--fps-num Input video frame rate numerator, default is 60000 [0-2^32-1]
--fps-denom Input video frame rate denominator, default is 1000 [0-2^32-1]
--input-depth Input video file and output bitstream bit-depth, default is 8 [8, 10]
--inj Inject pictures to the library at defined frame rate, default is 0 [0-1]
--inj-frm-rt Set injector frame rate, only applicable with `--inj 1`, default is 60 [0-240]
--enable-stat-report Calculates and outputs PSNR SSIM metrics at the end of encoding, default is 0 [0-1]
--asm Limit assembly instruction set, only applicable to x86, default is max [c, mmx, sse, sse2, sse3, ssse3, sse4_1, sse4_2, avx, avx2, avx512, max]
--lp Target (best effort) number of logical cores to be used. 0 means all. Refer to Appendix A.1 of the user guide, default is 0 [0, core count of the machine]
--pin Pin the execution to the first --lp cores. Overwritten to 1 when `--ss` is set. Refer to Appendix A.1 of the user guide, default is 0 [0-1]
--ss Specifies which socket to run on, assumes a max of two sockets. Refer to Appendix A.1 of the user guide, default is -1 [-1, 0, -1]
Rate Control Options:
--rc Rate control mode, default is 0 [0: CRF or CQP (if `--aq-mode` is 0), 1: VBR, 2: CBR]
-q, --qp Initial QP level value, default is 35 [1-63]
--crf Constant Rate Factor value, setting this value is equal to `--rc 0 --aq-mode 2 --qp x`, default is 35 [1-63]
--tbr Target Bitrate (kbps), only applicable for VBR and CBR encoding, default is 7000 [1-100000]
--mbr Maximum Bitrate (kbps) only applicable for CRF encoding, default is 0 [1-100000]
--use-q-file Overwrite the encoder default picture based QP assignments and use QP values from `--qp-file`, default is 0 [0-1]
--qpfile Path to a file containing per picture QP value separated by newlines
--max-qp Maximum (highest) quantizer, only applicable for VBR and CBR, default is 63 [1-63]
--min-qp Minimum (lowest) quantizer, only applicable for VBR and CBR, default is 1 [1-63]
--aq-mode Set adaptive QP level, default is 2 [0: off, 1: variance base using AV1 segments, 2: deltaq pred efficiency]
--use-fixed-qindex-offsets Overwrite the encoder default hierarchical layer based QP assignment and use fixed Q index offsets, default is 0 [0-2]
--key-frame-qindex-offset Overwrite the encoder default keyframe Q index assignment, default is 0 [-256-255]
--key-frame-chroma-qindex-offset Overwrite the encoder default chroma keyframe Q index assignment, default is 0 [-256-255]
--qindex-offsets list of luma Q index offsets per hierarchical layer, separated by `,` with each offset in the range of [-256-255], default is `0,0,..,0`
--chroma-qindex-offsets list of chroma Q index offsets per hierarchical layer, separated by `,` with each offset in the range of [-256-255], default is `0,0,..,0`
--luma-y-dc-qindex-offset Luma Y DC Qindex Offset
--chroma-u-dc-qindex-offset Chroma U DC Qindex Offset
--chroma-u-ac-qindex-offset Chroma U AC Qindex Offset
--chroma-v-dc-qindex-offset Chroma V DC Qindex Offset
--chroma-v-ac-qindex-offset Chroma V AC Qindex Offset
--lambda-scale-factors list of scale factor for lambda values used for different frame types defined by SvtAv1FrameUpdateType, separated by `,` with each scale factor as integer. value divided by 128 is the actual scale factor in float, default is `128,128,..,128`
--undershoot-pct Only for VBR and CBR, allowable datarate undershoot (min) target (percentage), default is 25, but can change based on rate control [0-100]
--overshoot-pct Only for VBR and CBR, allowable datarate overshoot (max) target (percentage), default is 25, but can change based on rate control [0-100]
--mbr-overshoot-pct Only for Capped CRF, allowable datarate overshoot (max) target (percentage), default is 50, but can change based on rate control [0-100]
--gop-constraint-rc Enable GoP constraint rc. When enabled, the rate control matches the target rate for each GoP, default is 0 [0-1]
--buf-sz Client buffer size (ms), only applicable for CBR, default is 6000 [0-10000]
--buf-initial-sz Client initial buffer size (ms), only applicable for CBR, default is 4000 [0-10000]
--buf-optimal-sz Client optimal buffer size (ms), only applicable for CBR, default is 5000 [0-10000]
--recode-loop Recode loop level, refer to "Recode loop level table" in the user guide for more info [0: off, 4: preset based]
--minsection-pct GOP min bitrate (expressed as a percentage of the target rate), default is 0 [0-100]
--maxsection-pct GOP max bitrate (expressed as a percentage of the target rate), default is 2000 [0-10000]
--enable-qm Enable quantisation matrices, default is 0 [0-1]
--qm-min Min quant matrix flatness, default is 8 [0-15]
--qm-max Max quant matrix flatness, default is 15 [0-15]
--roi-map-file Enable Region Of Interest and specify a picture based QP Offset map file, default is off
Multi-pass Options:
--pass Multi-pass selection, pass 2 is only available for VBR, default is 0 [0: single pass encode, 1: first pass, 2: second pass]
--stats Filename for multi-pass encoding, default is "svtav1_2pass.log"
--passes Number of encoding passes, default is preset dependent but generally 1 [1: one pass encode, 2: multi-pass encode]
GOP size and type Options:
--keyint GOP size (frames), default is -2 [-2: ~5 seconds, -1: "infinite" and only applicable for CRF, 0: same as -1]
--irefresh-type Intra refresh type, default is 2 [1: FWD Frame (Open GOP), 2: KEY Frame (Closed GOP)]
--scd Scene change detection control, default is 0 [0-1]
--lookahead Number of frames in the future to look ahead, not including minigop, temporal filtering, and rate control, default is -1 [-1: auto, 0-120]
--hierarchical-levels Set hierarchical levels beyond the base layer, default is <=M12: 5, else: 4 [2: 3 temporal layers, 3: 4 temporal layers, 4: 5 layers, 5: 6 layers]
--pred-struct Set prediction structure, default is 2 [1: low delay frames, 2: random access]
--force-key-frames Force key frames at the comma separated specifiers. `#f` for frames, `#.#s` for seconds
--startup-mg-size Specify another mini-gop configuration for the first mini-gop after the key-frame, default is 0 [0: OFF, 2: 3 temporal layers, 3: 4 temporal layers, 4: 5 temporal layers]
AV1 Specific Options:
--tile-rows Number of tile rows to use, `TileRow == log2(x)`, default changes per resolution but is 1 [0-6]
--tile-columns Number of tile columns to use, `TileCol == log2(x)`, default changes per resolution but is 1 [0-4]
--enable-dlf Deblocking loop filter control, default is 1 [0-1]
--enable-cdef Enable Constrained Directional Enhancement Filter, default is 1 [0-1]
--enable-restoration Enable loop restoration filter, default is 1 [0-1]
--enable-tpl-la Temporal Dependency model control, currently forced on library side, only applicable for CRF/CQP, default is 1 [0-1]
--enable-mfmv Motion Field Motion Vector control, default is -1 [-1: auto, 0-1]
--enable-dg Dynamic GoP control, default is 1 [0-1]
--fast-decode Fast Decoder levels, default is 0 [0-2]
--enable-tf Enable ALT-REF (temporally filtered) frames, default is 1 [0-1]
--enable-overlays Enable the insertion of overlayer pictures which will be used as an additional reference frame for the base layer picture, default is 0 [0-1]
--tune Specifies whether to use PSNR or VQ as the tuning metric [0 = VQ, 1 = PSNR, 2 = SSIM], default is 1 [0-2]
--scm Set screen content detection level, default is 2 [0: off, 1: on, 2: content adaptive]
--rmv Restrict motion vectors from reaching outside the picture boundary, default is 0 [0-1]
--film-grain Enable film grain, default is 0 [0: off, 1-50: level of denoising for film grain]
--film-grain-denoise Apply denoising when film grain is ON, default is 0 [0: no denoising, film grain data is still in frame header, 1: level of denoising is set by the film-grain parameter]
--fgs-table Set the film grain model table path
--superres-mode Enable super-resolution mode, refer to the super-resolution section in the user guide, default is 0 [0: off, 1-3, 4: auto-select mode]
--superres-denom Super-resolution denominator, only applicable for mode == 1, default is 8 [8: no scaling, 9-15, 16: half-scaling]
--superres-kf-denom Super-resolution denominator for key frames, only applicable for mode == 1, default is 8 [8: no scaling, 9-15, 16: half-scaling]
--superres-qthres Super-resolution q-threshold, only applicable for mode == 3, default is 43 [0-63]
--superres-kf-qthres Super-resolution q-threshold for key frames, only applicable for mode == 3, default is 43 [0-63]
--sframe-dist S-Frame interval (frames) (0: OFF[default], > 0: ON)
--sframe-mode S-Frame insertion mode ([1-2], 1: the considered frame will be made into an S-Frame only if it is an altref frame, 2: the next altref frame will be made into an S-Frame[default])
--resize-mode Enable resize mode [0: none, 1: fixed scale, 2: random scale, 3: dynamic scale, 4: random access]
--resize-denom Resize denominator, only applicable for mode == 1 [8-16]
--resize-kf-denom Resize denominator for key frames, only applicable for mode == 1 [8-16]
--frame-resz-events Resize frame events, in a list separated by ',', a reference scaling process starts from the given frame number with new denominators, only applicable for mode == 4
--frame-resz-kf-denoms Resize denominator for key frames in event, in a list separated by ',', only applicable for mode == 4
--frame-resz-denoms Resize denominator in event, in a list separated by ',', only applicable for mode == 4
--lossless Enable lossless coding, default is 0 [0-1]
Color Description Options:
--color-primaries Color primaries, refer to Appendix A.2 of the user guide, default is 2 [0-12, 22]
--transfer-characteristics Transfer characteristics, refer to Appendix A.2 of the user guide, default is 2 [0-22]
--matrix-coefficients Matrix coefficients, refer to Appendix A.2 of the user guide, default is 2 [0-14]
--color-range Color range, default is 0 [0: Studio, 1: Full]
--chroma-sample-position Chroma sample position, default is 'unknown' ['unknown', 'vertical'/'left', 'colocated'/'topleft']
--mastering-display Mastering display metadata in the format of "G(x,y)B(x,y)R(x,y)WP(x,y)L(max,min)", refer to the user guide Appendix A.2
--content-light Set content light level in the format of "max_cll,max_fall", refer to the user guide Appendix A.2
Variance Boost Options:
--enable-variance-boost Enable variance boost, default is 0 [0-1]
--variance-boost-strength Variance boost strength, default is 2 [1-4]
--variance-octile Octile for variance boost, default is 6 [1-8]
source: 'SvtAv1EncApp --help'
lists all options SvtAv1EncApp supports, the numbers in the '[]'-brackets are the defaults.
Looking at the default settings:
--profile 0 --tile-rows 0 --tile-columns 0 --rc 0 --crf 35 --mbr 0 --aq-mode 2 --preset 10
"--profile 0" = default
"--tile-rows 0 --tile-columns 0", default is "--tile-rows 1 --tile-columns 1"
"--rc 0" = default
"--crf 35" = default
"--mbr 0" = default
"--aq-mode 2" = default
"--preset 10" = default
=> Aside from the tile settings, Hybrid does use SvtAv1EncApps default values.
If that was not your question, please try rephrasing it.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 258
Threads: 34
Joined: Aug 2022
(Yesterday, 12:38)humanoid86 Wrote: which version is it worth?
You didn't answer.
Posts: 10.598
Threads: 57
Joined: May 2017
Yesterday, 13:36
(This post was last modified: Yesterday, 14:05 by Selur.)
I have no clue what 'version' you are referring to? Hybrid basically does use the defaults.
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
|