This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Denoising broken in SVT-AV1
#1
Hi Selur,

It looks like we cannot use denoising in SVT-AV1 encoding.
I use Hybrid 2023.02.09.1

SVT-AV1(1pass constant quantizer) processing started...
starting 2023-03-07@19_56_51_0510_01_video@19:56:51.328 - F:\temp\test.av1.denoise1.mkv
"C:\Program Files\Hybrid\64bit\SvtAv1EncApp.exe" --input stdin --width 1920 --height 1080 --fps-num 24000 --fps-denom 1001 --input-depth 10 --profile 0 --tile-rows 0 --tile-columns 0 --rc 0 --qp 18 --aq-mode 0 --preset 7 --irefresh-type 1 --tune 0 --scm 0 --film-grain 1 --enable-dnl-denoising 1 --matrix-coefficients 1 --color-range 0 --output "E:\temp\2023-03-07@19_56_51_0510_01.av1"
Svt[info]: -------------------------------------------
Svt[info]: SVT [version]: SVT-AV1 Encoder Lib v1.4.1-67-g1d99c2682
Svt[info]: SVT [build]  : GCC 12.2.0 64 bit
Svt[info]: LIB Build date: Feb  9 2023 15:57:36
Svt[info]: -------------------------------------------
[b]Unprocessed tokens: --enable-dnl-denoising[/b]
[b]Unprocessed arguments: 1[/b]
Error in configuration, could not begin encoding! ...
Run C:\Program Files\Hybrid\64bit\SvtAv1EncApp.exe --help for a list of options
2023-03-07@19_56_51_0510_01_video finished after 00:00:00.098
finished...

I couldn't find --enable-dnl-denoising on SVT-AV1 parameters page, only --film-grain-denoise

Deprecated setting ?
Thanks
Reply
#2
seems like the command line parameters changed,...
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 [-2-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]
      --compressed-ten-bit-format    Depreciated and ignored, default is 0 [0-1]
      --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 0 when `--ss` is set. Refer to Appendix A.1 of the user guide, default is 1 [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]
      --bias-pct                   CBR/VBR bias, default is 50 [0: CBR-like, 1-99, 100: VBR-like]
      --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]

Multi-pass Options:
      --pass                       Multi-pass selection, pass 3 is only available for VBR, default is 0 [0: single pass encode, 1: first pass, 2: second pass, 3: third 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-1]
      --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], default is 1 [0-1]
      --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 1 [0: no denoising, film grain data is still in frame header, 1: level of denoising is set by the film-grain parameter]
      --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

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
=> will have to go throug all options,.. :/
Reply
#3
Fixed in latest dev version, thanks Selur   Smile
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)