logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

avifenc - compress an image file to an AVIF file

Description

avifenc  compresses  an  image  file  to an AVIF file.  Input format can be either JPEG, PNG or YUV4MPEG2
       (Y4M).

Examples

       Compress a PNG file to an AVIF file:
              $ avifencinput.pngoutput.avif

Name

       avifenc - compress an image file to an AVIF file

Options

-h, --help
              Show syntax help.

       -V, --version
              Show the version number.

   BASICOPTIONS-q, --qcolorQ
              Quality for color in 0..100 where 100 is lossless.

       --qalphaQ
              Quality for alpha in 0..100 where 100 is lossless.

       -s, --speedS
              Encoder speed in 0..10 where 0 is the slowest, 10 is the fastest.  Or `default' or `d'  for  codec
              internal defaults.  (Default: 6).

   ADVANCEDOPTIONS-j, --jobsJ
              Number of jobs (worker threads), or `all' to potentially use as many cores as possible.  (Default:
              all).

       --no-overwrite
              Never overwrite existing output file.

       -o, --outputFILENAME
              Instead of using the last filename given as output, use this filename.

       -l, --lossless
              Set all defaults to encode losslessly, and emit warnings when settings/input don’t allow for it.

       -d, --depthD
              Output depth, one of 8, 10 or 12.  (JPEG/PNG only; For y4m or stdin, depth is retained).

       -y, --yuvFORMAT
              Output  format,  one  of  `auto'  (default),  444, 422, 420 or 400.  Ignored for y4m or stdin (y4m
              format is retained).

              For JPEG, auto honors the JPEG’s internal format, if possible.  For grayscale PNG,  auto  defaults
              to 400.
              For all other cases, auto defaults to 444.

       -p, --premultiply
              Premultiply color by the alpha channel and signal this in the AVIF.

       --sharpyuv
              Use sharp RGB to YUV420 conversion (if supported).  Ignored for y4m or if output is not 420.

       --stdin
              Read  y4m frames from stdin instead of files; no input filenames allowed, must set before offering
              output filename.

       --cicp, --nclxP/T/M
              Set CICP values (nclx colr box) (3 raw numbers, use -r to set range flag).

              • P = color primaries

              • T = transfer characteristics

              • M = matrix coefficients

              Use 2 for any you wish to leave unspecified.

       -r, --rangeRANGE
              YUV range, one of `limited' or `l', `full' or `f'.  (JPEG/PNG only,  default:  full;  For  y4m  or
              stdin, range is retained).

       --target-sizeS
              Set target file size in bytes (up to 7 times slower)

       --progressive
              EXPERIMENTAL:  Auto  set  parameters  to  encode  a  simple  layered  image supporting progressive
              rendering from a single input frame.

       --layered
              EXPERIMENTAL: Encode a layered AVIF.  Each input is encoded as one layer and at most 4 layers  can
              be encoded.

       -g, --gridMxN
              Encode  a  single-image grid AVIF with M cols & N rows.  Either supply MxN identical W/H/D images,
              or a single image that can be  evenly  split  into  the  MxN  grid  and  follow  AVIF  grid  image
              restrictions.  The grid will adopt the color profile of the first image supplied.

       -c, --codecC
              Codec to use.

              Possible  values  depend  on  the  codecs  enabled  at build time (see --help or --version for the
              available codecs).  Default is auto-selected from the available codecs.

              Possible values are:

              • aomrav1esvt--exifFILENAME
              Provide an Exif metadata payload to be associated with the primary item (implies --ignore-exif).

       --xmpFILENAME
              Provide an XMP metadata payload to be associated with the primary item (implies --ignore-xmp).

       --iccFILENAME
              Provide an ICC profile payload to be associated with the primary item (implies --ignore-icc).

       --timescale, --fpsV
              Timescale for image sequences.  If all frames are 1 timescale in length,  this  is  equivalent  to
              frames  per second.  (Default: 30) If neither duration nor timescale are set, avifenc will attempt
              to use the framerate stored in a y4m header, if present.

       -k, --keyframeINTERVAL
              Maximum keyframe interval for image sequences (any set of INTERVAL consecutive frames will have at
              least one keyframe).  Set to 0 to disable (default).

       --ignore-exif
              If the input file contains embedded Exif metadata, ignore it (no-op if absent).

       --ignore-xmp
              If the input file contains embedded XMP metadata, ignore it (no-op if absent).

       --ignore-profile, --ignore-icc
              If the input file contains an embedded color profile, ignore it (no-op if absent).

       --ignore-gain-map
              If the input file contains an embedded gain map, ignore it (no-op if absent).

       --qgain-mapQ
              Quality for the gain map in 0..100 where 100 is lossless.

       --paspH,V
              Add pasp property (aspect ratio).  H=horizontal spacing, V=vertical spacing.

       --cropCROPX,CROPY,CROPW,CROPH
              Add clap property (clean aperture), but calculated from a crop rectangle.

       --clapWN,WD,HN,HD,HON,HOD,VON,VOD
              Add clap property (clean aperture).  Width, Height,  HOffset,  VOffset  (in  numerator/denominator
              pairs).

       --irotANGLE
              Add irot property (rotation) in 0..3.  Makes (90 * ANGLE) degree rotation anti-clockwise.

       --imirAXIS
              Add imir property (mirroring).  0=top-to-bottom, 1=left-to-right.

       --clliMaxCLL,MaxPALL
              Add clli property (content light level information).

       --repetition-countN
              Number  of  times  an  animated  image  sequence  will  be  repeated,  or  `infinite' for infinite
              repetitions.  (Default: infinite).

       --     Signal the end of options.  Everything after this is interpreted as file names.

   UPDATABLEOPTIONS
       The following options can optionally have a :u (or :update) suffix like -q:uQ, to apply  only  to  input
       files appearing after the option:

       -q, --qcolorQ
              Quality for color in 0..100 where 100 is lossless.

       --qalphaQ
              Quality for alpha in 0..100 where 100 is lossless.

       --qgain-mapQ
              Quality for the gain map in 0..100 where 100 is lossless.

       --tilerowslog2R
              log2 of number of tile rows in 0..6.  (Default: 0).

       --tilecolslog2C
              log2 of number of tile columns in 0..6.  (Default: 0).

       --autotiling
              Set --tilerowslog2 and --tilecolslog2 automatically.

       --scaling-modeN[/D]
              EXPERIMENTAL:  Set  frame  (layer)  scaling  mode  as given fraction.  If omitted, the denominator
              defaults to 1.  (Default: 1/1).

       --durationD
              Frame durations (in timescales) (default: 1).  This option always applies to following inputs with
              or without the :u suffix.

       -a, --advancedKEY[=VALUE]
              Pass an advanced, codec-specific key/value string pair directly to the codec.  avifenc  will  warn
              on any not used by the codec.

   AOM-SPECIFICADVANCEDOPTIONS
       1. <key>=<value> applies to both the color (YUV) planes and the alpha plane (if present).

       2. color:<key>=<value> or c:<key>=<value> applies only to the color (YUV) planes.

       3. alpha:<key>=<value>  or a:<key>=<value> applies only to the alpha plane (if present).  Since the alpha
          plane is encoded as a monochrome image,  the  options  that  refer  to  the  chroma  planes,  such  as
          enable-chroma-deltaq=B,  should not be used with the alpha plane.  In addition, the film grain options
          are unlikely to make sense for the alpha plane.

       When used with libaom 3.0.0 or  later,  any  key-value  pairs  supported  by  the  aom_codec_set_option()
       function can be used.  When used with libaom 2.0.x or older, the following key-value pairs can be used:

       aq-mode=M
              Adaptive quantization mode.  0=off (default), 1=variance, 2=complexity, 3=cyclic refresh.

       cq-level=Q
              Constant/Constrained Quality level in 0..63, end-usage must be set to cq or q.

       enable-chroma-deltaq=B
              Enable delta quantization in chroma planes.  0=disable (default), 1=enable.

       end-usage=MODE
              Rate control mode, one of `vbr', `cbr', `cq', or `q'

       sharpness=S
              Bias  towards  block  sharpness in rate-distortion optimization of transform coefficients in 0..7.
              (Default: 0).

       tune=METRIC
              Tune the encoder for distortion metric, one of `psnr' or `ssim'.  (Default: psnr).

       film-grain-test=TEST
              Film grain test vectors in 0..16.  0=none (default), 1=test1, 2=test2, ...  16=test16.

       film-grain-table=FILENAME
              Path to file containing film grain parameters.

Reporting Bugs

       Bugs can be reported on GitHub at:
              https://github.com/AOMediaCodec/libavif/issues

See Also

avifdec(1)

libavif 1.2.1                                      2022-04-30                                         AVIFENC(1)

Synopsis

avifenc [options] input.[jpg|jpeg|png|y4m] output.avif

See Also