Selur's Little Message Board

Full Version: Denoising broken in SVT-AV1
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi Selur,

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

Code:
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
seems like the command line parameters changed,...
Code:
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,.. :/
Fixed in latest dev version, thanks Selur   Smile