
OptiPNG - The complete list of features
=======================================

The main purpose of OptiPNG is to *optimize* PNG files, i.e. to
reduce their size to a minimum, without losing any information.
In order to achieve this goal, OptiPNG performs the following
tasks:

- It losslessly reduces the bit depth, the color type and the
  color palette of the image. This step reduces the size of the
  uncompressed image, which, indirectly, reduces the size of the
  compressed image (i.e. the size of the PNG file).

- It runs a suite of compression methods and strategies, and
  selects the compression parameters that yield the smallest
  output file.


In addition, OptiPNG has the following capabilities:

- It offers a suite of optimization level presets. Given the
  number of trials that the user is willing to run, these presets
  will select the range of compression parameters that are most
  likely to yield the smallest output.
  The optimization level presets are for the benefit of regular
  users.

- It offers a high degree of freedom to choose among all kinds
  of compression parameters, for the benefit of advanced users.
  The optimization level presets, and the custom compression
  parameters, may be used in any combination.

- It concatenates all the IDAT data in a single chunk. Unlike
  other PNG encoders, OptiPNG performs this task successfully,
  regardless how big is the final IDAT, and without using an
  extra (usually large) amount of memory.

- It allows the users to disable certain image reductions.
  This feature is for the benefit of advanced users.

- It corrects integrity errors found in the input files.
  Bad CRCs, invalid data in ancillary chunks, incomplete PNG
  files, or extraneous data in IDAT, are examples of such
  integrity errors.

