libheif icon indicating copy to clipboard operation
libheif copied to clipboard

Change list-encoders & show_parameters

Open Jamaika1 opened this issue 3 years ago • 7 comments

Jamaika1 avatar Oct 14 '22 22:10 Jamaika1

SVT is no new compression format, it is just a different encoder for AV1. Hence, I do not understand the change.

farindk avatar Oct 14 '22 22:10 farindk

I believe that show_parameters 'P' should display all functions for all added codecs. I believe that list-encoders function should show all available codecs and their versions. I think adding an encoder function should show specific av1 codec, not all of them. It is a matter of taste. For aom I miss information that codec has turned on. heifenc_avx.exe -P

Encoders (HEIF is default):
Parameters for encoder `x265 HEVC encoder (3.5+41-0b75c44)`:
  quality, default=50, [0;100]
  lossless, default=false
  preset, default=slow, { ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow,placebo }
  tune, default=ssim, { psnr,ssim,grain,fastdecode }
  tu-intra-depth, default=2, [1;4]
  complexity, [0;100]
  chroma, default=420, { 420,422,444 }
Parameters for encoder `AOMedia Project AV1 Encoder 3.5.0-3981dcb`:
  realtime, default=false
  speed, default=5, [0;9]
  threads, default=4, [1;16]
  quality, default=50, [0;100]
  lossless, default=false
  chroma, default=420, { 420,422,444 }
  tune, default=ssim, { psnr,ssim,butteraugli }
  min-q, default=1, [1;62]
  max-q, default=63, [0;63]
  alpha-quality, [0;100]
  alpha-min-q, [1;62]
  alpha-max-q, [0;63]
  lossless-alpha, default=false
Parameters for encoder `SVT-AV1 encoder 1.2.1-dddda74`:
  speed, default=12, [0;13]
  threads, default=4, [1;16]
  tile-rows, default=4, {1, 2, 4, 8, 16, 32, 64}
  tile-cols, default=4, {1, 2, 4, 8, 16, 32, 64}
  chroma, default=420, { 420,422,444 }
  qp, default=50, [0;63]

heifenc_avx.exe --list-encoders

- x265 = x265 HEVC encoder (3.5+41-0b75c44)
- aom = AOMedia Project AV1 Encoder 3.5.0-3981dcb
- svt = SVT-AV1 encoder 1.2.1-dddda74

heifenc_avx.exe image_21447_24bit.png -v -L -q 100 --avif --no-alpha -p chroma=444 -p threads=4 -p speed=5 --matrix_coefficients=0 --full_range_flag=1 -o image_21447_24bit.avif

Encoders (AVIF is default):
- aom = AOMedia Project AV1 Encoder 3.5.0-3981dcb

not like with heif_compression_AV1 are all codec versions

Encoders (AVIF is default):
- aom = AOMedia Project AV1 Encoder 3.5.0-3981dcb
- svt = SVT-AV1 encoder 1.2.1-dddda74

Jamaika1 avatar Oct 15 '22 06:10 Jamaika1

How about this: --list-encoders only shows the short list with the IDs of the encoders, but if we have both "--list-encoders -P", all encoders are shown with their parameters?

farindk avatar Oct 15 '22 09:10 farindk

I understand that in your solution I only have: heifenc_avx.exe --list-encoders -P Where are the AOM codecs?

Encoders (HEIF is default):
Parameters for encoder `x265 HEVC encoder (3.5+41-0b75c44)`:
  quality, default=50, [0;100]
  lossless, default=false
  preset, default=slow, { ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow,placebo }
  tune, default=ssim, { psnr,ssim,grain,fastdecode }
  tu-intra-depth, default=2, [1;4]
  complexity, [0;100]
  chroma, default=420, { 420,422,444 }

Jamaika1 avatar Oct 15 '22 11:10 Jamaika1

We don't have that yet. It was a proposal to design is such that "--list-encoders -P" would in the future list all encoders and parameters.

farindk avatar Oct 15 '22 11:10 farindk

Hmm, but you have to guess the --list-encoders -P configuration. I tried to make something simple, but the SVT codec doesn't work with heif_compression_SVT. AOM lossless works for PNG, but lossy does not. It's probably a bug but not in my fix anymore.

Jamaika1 avatar Oct 15 '22 11:10 Jamaika1

Test codec heifenc_avx.exe image_21447_24bit.png -v -L -q 100 --avif --no-alpha -p chroma=444 -p threads=4 -p speed=5 --matrix_coefficients=0 --full_range_flag=1 -o image_21447_24bita.avif

  libavutil      57. 39.101 / 57. 39.101
  libavcodec     59. 50.100 / 59. 50.100
  libavformat    59. 34.101 / 59. 34.101
  libavdevice    59.  8.101 / 59.  8.101
  libavfilter     8. 49.101 /  8. 49.101
  libswscale      6.  8.112 /  6.  8.112
  libswresample   4.  9.100 /  4.  9.100
  libpostproc    56.  7.100 / 56.  7.100
[libdav1d @ 000002022d807900] libdav1d 1.0.0-83-gcac76e4 0B f=0/0
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002022d7f5f80] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'image_21447_24bita.avif':
  Metadata:
    major_brand     : avif
    minor_version   : 0
    compatible_brands: avifmif1miaf
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0[0x1]: Video: av1 (High), yuv444p(pc, smpte170m/unknown/unknown), 4000x3000 [SAR 1:1 DAR 4:3], 1 fps, 1 tbr, 1 tbn

Why is colormatrix smpte170m?

heifenc_avx.exe image_21447_24bit.png -v -q 90 --avif --no-alpha -p chroma=420 -p threads=4 -p speed=5 --matrix_coefficients=0 --full_range_flag=1 -o image_21447_24bitaa.avif

Codec isn't created. Probably AOM problem. Error is not displayed.

av1enc_avx.exe -avif -q 90 -420 -size 4000x3000 -effort 5 -thread 4 -tune ssim image_21447_24bit.png -d image_21447_24bitaw.avif

Codec isn't created. Probably AOM problem. Error is not displayed.

heifenc_avx.exe image_21447_24bit.png -v -e svt --avif --no-alpha -p qp=26 -p chroma=420 -p threads=4 -p speed=5 --matrix_coefficients=6 --full_range_flag=0 -o image_21447_24bitsa.avif

Codec is created but not displayed. Why is quality inactive for svt?

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000022e358b5f40] moov atom not found0
image_21447_24bitsa.avif: Invalid data found when processing input

avifenc_avx.exe -c svt --min 24 --max 26 -d 8 -y 420 -r limited -s 5 -j 4 image_21447_24bit.jpg image_21447_24bitsaw_svt.avif It's OK. heifenc_avx.exe image_21447_24bit.png -v -L -q 100 --no-alpha -p preset=placebo -p chroma=444 -p x265:thread=4 --matrix_coefficients=0 --full_range_flag=1 -o image_21447_24bit.heif It's OK heifenc_avx.exe image_21447_24bit.png -v -q 90 --no-alpha -p preset=placebo -p chroma=420 -p x265:thread=4 --matrix_coefficients=6 --full_range_flag=0 -o image_21447_24bit.heif

Codec is created but not displayed.

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000020550d75f00] moov atom not found0 image_21447_24bit.heif: Invalid data found when processing input

Jamaika1 avatar Oct 16 '22 11:10 Jamaika1