PSNR (dB)
Peak signal-to-noise ratio over R, G and B. Every 3 dB roughly halves the squared error. Above about 40 dB differences are hard to see; below about 30 dB artifacts are usually obvious.
Format comparison lab
Encode one image into BC, ETC, ASTC and Basis Universal with the same encoders our tools use, then compare quality, file size and GPU memory with real measurements.
Drop an image here, or choose one
Loading image…
Larger images are scaled down, never up, and cropped to whole 4×4 blocks.
Images never leave your browser.
Each format is encoded and decoded in a background worker.
Choose formats and run the comparison to see measurements here.
Peak signal-to-noise ratio over R, G and B. Every 3 dB roughly halves the squared error. Above about 40 dB differences are hard to see; below about 30 dB artifacts are usually obvious.
Structural similarity of luma, from 0 to 1. It tracks blur and blocking better than PSNR but ignores colour shifts, so read the two together.
What the texture occupies after upload, without mipmaps. It depends only on format and size; add about 33% for a full mip chain.
The encoded container on disk. Basis files are supercompressed and can be far smaller than their GPU footprint; DDS, PKM and ASTC files are their GPU data plus a small header.
Zoom in and turn on the grid to see block boundaries. Artifacts that line up with the grid come from decisions the encoder made per block.
Each format uses the defaults of its encoder page, such as ASTC at medium quality. For final assets, open the dedicated encoder to tune quality, colour space and mipmaps.
Yes. The tool runs the same WebAssembly encoders and decoders as our encoder and decoder pages and measures the decoded pixels. GPU hardware can round some formats slightly differently, so treat differences under about 1 dB as a tie.
Basis files are transcoded on each device. ETC1S usually becomes BC1 or ETC1 at 4 bits per texel, and UASTC becomes BC7 or ASTC 4×4 at 8 bits per texel. Quality here is measured on a direct decode to RGBA; transcoding to a GPU format can add a small extra loss.
Alpha is kept and measured in its own PSNR column. Formats that cannot keep it are marked in the format list: the BC1 encoder rejects transparent images, and ETC1 and ETC2 RGB drop alpha. Use BC3, BC7, ETC2 RGBA, ASTC or Basis for transparent textures.
No. Images are decoded, encoded and measured in your browser, and nothing is sent to a server.