S2TC - a subset of a wellknown texture compression scheme (actually Color Cell Compression)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
m4
tests
.gitignore
COPYING
Makefile.am
README.txt
autogen.sh
configure.ac
s2tc_algorithm.cpp
s2tc_algorithm.h
s2tc_common.h
s2tc_compress.1
s2tc_compress.c
s2tc_decompress.1
s2tc_decompress.c
s2tc_from_s3tc.1
s2tc_from_s3tc.cpp
s2tc_libtxc_dxtn.cpp
s2tc_license.h
txc_dxtn.h
txc_dxtn.pc.in

README.txt

S2TC Environment Variables
==========================

Color Distance Function
-----------------------
The following color distance functions can be selected by setting the
environment variable `S2TC_COLORDIST_MODE`:

*   `RGB`: weighted YCbCr difference assuming linear input
*   `YUV`: weighted Y'Cb'Cr' difference assuming sRGB input
*   `SRGB`: weighted YCbCr difference assuming sRGB input
*   `SRGB_MIXED`: weighted "Y'(Y)Cb'Cr'" difference assuming sRGB input
*   `AVG`: standard average of component difference (generic)
*   `WAVG`: weighted RGB average of component difference
*   `W0AVG`: superfast weighted RGB average of component difference
*   `NORMALMAP`: vector distance after normalization

The default is `WAVG`, which is a good compromise between speed and quality for
RGB and sRGB data. For optimum quality on sRGB input, try `SRGB_MIXED`.

The color distance function defines how "closeness" of pixel values is judged
when the pixel color values are evaluated, colors are selected, or during
refinement.

Color Selection
---------------
The environment variable `S2TC_RANDOM_COLORS` can be set the following way:

*   `-1`: quick selection (darkest and brightest color are chosen, which is
    similar to the method in the Color Cell Compression paper)
*   `0`: all 16 input colors of a block are considered
*   greater than `0`: additionally, that many random color values in the range
    of the input color values are considered

The default is `-1`, which is fast but poor quality, however ideally suited for
online compression. For optimum quality, try `64`.

A bad color selection can later be compensated for by color refinement.

Color Refinement
----------------
The environment variable `S2TC_REFINE_COLORS` can be set to the following values:

*   `NEVER`: never run color refinement
*   `ALWAYS`: unconditionally perform color refinement
*   `LOOP`: perform color refinement, evaluate its output and discard it if it
    didn't improve quality, re-evaluate the pixel color values, and repeat
    until no improvement could be made

The default is `ALWAYS`, which is fast and decent quality, and usually doesn't
make things worse. For optimum quality, try `LOOP`.

Color refinement recalculates the color palette of a block after the pixel
value decision by averaging the color values of those encoded as c0 or c1, and
is a technique that helps a lot of the initial color selection was poor (e.g.
if `S2TC_RANDOM_COLORS` was not set, or set to `-1`).