Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CWEBP(1)		    General Commands Manual		      CWEBP(1)

NAME
       cwebp - compress	an image file to a WebP	file

SYNOPSIS
       cwebp [options] input_file -o output_file.webp

DESCRIPTION
       This manual page	documents the cwebp command.

       cwebp  compresses  an image using the WebP format.  Input format	can be
       either PNG, JPEG, TIFF, WebP or raw Y'CbCr samples.  Note: Animated PNG
       and WebP	files are not supported.

OPTIONS
       The basic options are:

       -o string
	      Specify the name of the output WebP file.	If omitted, cwebp will
	      perform compression but only report statistics.	Using  "-"  as
	      output name will direct output to	'stdout'.

       -- string
	      Explicitly  specify the input file. This option is useful	if the
	      input file starts	with a '-' for instance. This option must  ap-
	      pear last.  Any other options afterward will be ignored.

       -h, -help
	      A	short usage summary.

       -H, -longhelp
	      A	summary	of all the possible options.

       -version
	      Print the	version	number (as major.minor.revision) and exit.

       -lossless
	      Encode  the image	without	any loss. For images with fully	trans-
	      parent area, the invisible pixel values (R/G/B or	Y/U/V) will be
	      preserved	only if	the -exact option is used.

       -near_lossless int
	      Specify the level	of near-lossless image preprocessing. This op-
	      tion adjusts pixel values	to help	compressibility, but has mini-
	      mal impact on the	visual quality.	It triggers lossless  compres-
	      sion  mode automatically.	The range is 0 (maximum	preprocessing)
	      to 100 (no preprocessing,	the default).  The  typical  value  is
	      around 60. Note that lossy with -q 100 can at times yield	better
	      results.

       -q float
	      Specify  the  compression	 factor	for RGB	channels between 0 and
	      100. The default is 75.
	      In case of lossy compression (default), a	small factor  produces
	      a	 smaller  file with lower quality. Best	quality	is achieved by
	      using a value of 100.
	      In case of lossless compression (specified by the	-lossless  op-
	      tion), a small factor enables faster compression speed, but pro-
	      duces a larger file.  Maximum compression	is achieved by using a
	      value of 100.

       -z int Switch on	lossless compression mode with the specified level be-
	      tween 0 and 9, with level	0 being	the fastest, 9 being the slow-
	      est.  Fast  mode	produces  larger file size than	slower ones. A
	      good default is -z 6.  This option is actually  a	 shortcut  for
	      some  predefined	settings for quality and method. If options -q
	      or -m are	subsequently used, they	will invalidate	the effect  of
	      this option.

       -alpha_q	int
	      Specify  the  compression	factor for alpha compression between 0
	      and 100.	Lossless compression of	 alpha	is  achieved  using  a
	      value  of	100, while the lower values result in a	lossy compres-
	      sion. The	default	is 100.

       -preset string
	      Specify a	set of pre-defined parameters  to  suit	 a  particular
	      type  of	source material. Possible values are:  default,	photo,
	      picture, drawing,	icon, text. Since -preset overwrites the other
	      parameters' values (except  the  -q  one),  this	option	should
	      preferably appear	first in the order of the arguments.

       -m int Specify  the  compression	method to use. This parameter controls
	      the trade	off between encoding speed  and	 the  compressed  file
	      size  and	 quality.   Possible values range from 0 to 6. Default
	      value is 4.  When	higher values are used,	the encoder will spend
	      more time	inspecting additional encoding possibilities  and  de-
	      cide on the quality gain.	 Lower value can result	in faster pro-
	      cessing  time  at	the expense of larger file size	and lower com-
	      pression quality.

       -crop x_position	y_position width height
	      Crop the source to a rectangle with top-left corner  at  coordi-
	      nates  (x_position,  y_position)	and size width x height.  This
	      cropping area must be fully contained within the source  rectan-
	      gle.  Note: the cropping is applied before any scaling.

       -resize width height
	      Resize  the  source to a rectangle with size width x height.  If
	      either (but not both) of the width or height  parameters	is  0,
	      the  value will be calculated preserving the aspect-ratio. Note:
	      scaling is applied after cropping.

       -mt    Use multi-threading for encoding,	if possible.

       -low_memory
	      Reduce memory usage of lossy encoding by saving four  times  the
	      compressed  size (typically). This will make the encoding	slower
	      and the output slightly different	in size	and  distortion.  This
	      flag  is	only effective for methods 3 and up, and is off	by de-
	      fault. Note that leaving this flag off will have some  side  ef-
	      fects  on	 the  bitstream:  it forces certain bitstream features
	      like number of partitions	(forced	to 1). Note that  a  more  de-
	      tailed  report  of bitstream size	is printed by cwebp when using
	      this option.

   LOSSY OPTIONS
       These options are only effective	when doing  lossy  encoding  (the  de-
       fault, with or without alpha).

       -size int
	      Specify  a  target size (in bytes) to try	and reach for the com-
	      pressed output.  The compressor will make	several	passes of par-
	      tial encoding in order to	get as close as	possible to this  tar-
	      get. If both -size and -psnr are used, -size value will prevail.

       -psnr float
	      Specify  a  target  PSNR	(in  dB) to try	and reach for the com-
	      pressed output.  The compressor will make	several	passes of par-
	      tial encoding in order to	get as close as	possible to this  tar-
	      get. If both -size and -psnr are used, -size value will prevail.

       -pass int
	      Set  a maximum number of passes to use during the	dichotomy used
	      by options -size or -psnr. Maximum value is 10,  default	is  1.
	      If options -size or -psnr	were used, but -pass wasn't specified,
	      a	 default  value	of '6' passes will be used. If -pass is	speci-
	      fied, but	neither	-size nor -psnr	are, a	target	PSNR  of  40dB
	      will be used.

       -qrange int int
	      Specifies	 the permissible interval for the quality factor. This
	      is particularly useful when using	multi-pass (-size or -psnr op-
	      tions).  Default is 0 100.  If the  quality  factor  is  outside
	      this  range,  it	will be	clamped.  If the minimum value must be
	      less or equal to the maximum one.

       -af    Turns auto-filter	on. This algorithm will	spend additional  time
	      optimizing the filtering strength	to reach a well-balanced qual-
	      ity.

       -jpeg_like
	      Change  the  internal  parameter mapping to better match the ex-
	      pected size of JPEG compression. This flag will  generally  pro-
	      duce  an output file of similar size to its JPEG equivalent (for
	      the same -q setting), but	with less visual distortion.

       Advanced	options:

       -f int Specify the strength of the deblocking  filter,  between	0  (no
	      filtering)  and  100 (maximum filtering).	A value	of 0 will turn
	      off any filtering.  Higher value will increase the  strength  of
	      the  filtering  process  applied after decoding the picture. The
	      higher the value the smoother the	picture	will  appear.  Typical
	      values are usually in the	range of 20 to 50.

       -sharpness int
	      Specify  the  sharpness  of the filtering	(if used).  Range is 0
	      (sharpest) to 7 (least sharp). Default is	0.

       -strong
	      Use strong filtering (if filtering is being used thanks  to  the
	      -f option). Strong filtering is on by default.

       -nostrong
	      Disable  strong  filtering (if filtering is being	used thanks to
	      the -f option) and use simple filtering instead.

       -sharp_yuv
	      Use more accurate	and sharper  RGB->YUV  conversion.  Note  that
	      this  process is slower than the default 'fast' RGB->YUV conver-
	      sion.

       -sns int
	      Specify the amplitude of	the  spatial  noise  shaping.  Spatial
	      noise  shaping (or sns for short)	refers to a general collection
	      of built-in algorithms used to decide which area of the  picture
	      should use relatively less bits, and where else to better	trans-
	      fer  these  bits.	 The  possible range goes from 0 (algorithm is
	      off) to 100 (the maximal effect).	The default value is 50.

       -segments int
	      Change the number	of partitions to use during  the  segmentation
	      of  the  sns  algorithm. Segments	should be in range 1 to	4. De-
	      fault value is 4.	 This option has no effect for methods	3  and
	      up, unless -low_memory is	used.

       -partition_limit	int
	      Degrade quality by limiting the number of	bits used by some mac-
	      roblocks.	 Range is 0 (no	degradation, the default) to 100 (full
	      degradation).  Useful values are usually around 30-70 for	moder-
	      ately  large  images.   In the VP8 format, the so-called control
	      partition	has a limit of 512k and	is used	to store the following
	      information: whether the macroblock is skipped, which segment it
	      belongs to, whether it is	coded as  intra	 4x4  or  intra	 16x16
	      mode,  and  finally  the prediction modes	to use for each	of the
	      sub-blocks.  For a very large image, 512k	only leaves room for a
	      few bits per 16x16 macroblock.  The absolute minimum is  4  bits
	      per  macroblock.	Skip, segment, and mode	information can	use up
	      almost all these 4 bits (although	the case is  unlikely),	 which
	      is problematic for very large images. The	partition_limit	factor
	      controls	how  frequently	 the  most bit-costly mode (intra 4x4)
	      will be used. This is useful in case the 512k limit  is  reached
	      and  the	following  message is displayed: Error code: 6 (PARTI-
	      TION0_OVERFLOW: Partition	#0 is too big to fit 512k).  If	 using
	      -partition_limit	is not enough to meet the 512k constraint, one
	      should use less segments in order	to save	more header  bits  per
	      macroblock.   See	 the  -segments	option.	Note the -m and	-q op-
	      tions also influence the encoder's decisions and ability to  hit
	      this limit.

   LOGGING OPTIONS
       These options control the level of output:

       -v     Print extra information (encoding	time in	particular).

       -print_psnr
	      Compute and report average PSNR (Peak-Signal-To-Noise ratio).

       -print_ssim
	      Compute  and  report average SSIM	(structural similarity metric,
	      see https://en.wikipedia.org/wiki/SSIM for additional details).

       -print_lsim
	      Compute and report local similarity metric (sum of lowest	 error
	      amongst the collocated pixel neighbors).

       -progress
	      Report encoding progress in percent.

       -quiet Do not print anything.

       -short Only  print  brief  information  (output file size and PSNR) for
	      testing purposes.

       -map int
	      Output additional	ASCII-map of  encoding	information.  Possible
	      map  values range	from 1 to 6. This is only meant	to help	debug-
	      ging.

   ADDITIONAL OPTIONS
       More advanced options are:

       -s width	height
	      Specify that the input file actually consists of raw Y'CbCr sam-
	      ples following the ITU-R BT.601 recommendation, in 4:2:0	linear
	      format.  The luma	plane has size width x height.

       -pre int
	      Specify  some  preprocessing  steps.  Using  a value of '2' will
	      trigger	quality-dependent   pseudo-random   dithering	during
	      RGBA->YUVA conversion (lossy compression only).

       -alpha_filter string
	      Specify the predictive filtering method for the alpha plane. One
	      of  'none', 'fast' or 'best', in increasing complexity and slow-
	      ness order. Default is 'fast'. Internally,  alpha	 filtering  is
	      performed	 using	four  possible	predictions (none, horizontal,
	      vertical,	gradient). The 'best' mode will	try each mode in  turn
	      and  pick	 the one which gives the smaller size. The 'fast' mode
	      will just	try to form an a  priori  guess	 without  testing  all
	      modes.

       -alpha_method int
	      Specify  the algorithm used for alpha compression: 0 or 1. Algo-
	      rithm 0 denotes no compression, 1	uses WebP lossless format  for
	      compression. The default is 1.

       -exact Preserve	RGB values in transparent area.	The default is off, to
	      help compressibility.

       -blend_alpha int
	      This option blends the  alpha  channel  (if  present)  with  the
	      source  using  the  background color specified in	hexadecimal as
	      0xrrggbb.	The alpha channel is afterward	reset  to  the	opaque
	      value 255.

       -noalpha
	      Using this option	will discard the alpha channel.

       -hint string
	      Specify  the  hint  about	input image type. Possible values are:
	      photo, picture or	graph.

       -metadata string
	      A	comma separated	list of	metadata to copy from the input	to the
	      output if	present.  Valid	values:	all,  none,  exif,  icc,  xmp.
	      The default is none.

	      Note: each input format may not support all combinations.

       -noasm Disable all assembly optimizations.

EXIT STATUS
       If  there were no problems during execution, cwebp exits	with the value
       of the C	constant EXIT_SUCCESS. This is usually zero.

       If an error occurs, cwebp exits	with  the  value  of  the  C  constant
       EXIT_FAILURE. This is usually one.

EXAMPLES
       cwebp -q	50 -lossless picture.png -o picture_lossless.webp
       cwebp -q	70 picture_with_alpha.png -o picture_with_alpha.webp
       cwebp -sns 70 -f	50 -size 60000 picture.png -o picture.webp
       cwebp -o	picture.webp --	---picture.png

AUTHORS
       cwebp is	a part of libwebp and was written by the WebP team.
       The   latest  source  tree  is  available  at  https://chromium.google-
       source.com/webm/libwebp

       This  manual  page  was	written	 by  Pascal   Massimino	  <pascal.mas-
       simino@gmail.com>, for the Debian project (and may be used by others).

REPORTING BUGS
       Please  report  all  bugs to the	issue tracker: https://issues.webmpro-
       ject.org
       Patches welcome!	See this page  to  get	started:  https://www.webmpro-
       ject.org/code/contribute/submitting-patches/

SEE ALSO
       dwebp(1), gif2webp(1)
       Please  refer  to  https://developers.google.com/speed/webp/  for addi-
       tional information.

			      September	17, 2024		      CWEBP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=cwebp&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help