I also wonder if the new type of compression is dictionary based, as wouldn't that make it harder to work well on GPUs?
The DEFLATE algorithm - i.e. LZ77/LZSS+Huffman coding, used in the ZIP format (RFC 1951) - is already a combination of
dictionary coding and entropy coding (
Huffman). Dictionary coder works well with repeating patterns of bytes (i.e. text data), while entropy coding uses a smaller 'prefix code', a 3-4 bit integer, to encode bytes with high occurrence.
Modern lossless image and audio compression formats also use entropy coding, specifically
arithmetic coding.
Other lossless compression methods are
run-length encoding (RLE), which only works for streams of repetitive data, and
wavelet encoding which is good in decoding transients (i.e. audio signals and smooth gradients) but is computationally expensive. These are not supported by DEFLATE though.
How much details do we have on BCPack?
Still not much. GameStack's
DirectStorage for Windows session featured a slide where texture compression method is described as DEFLATE over standard BC (i.e. S3TC/DXTC); they didn't specifically name it BCPACK though (see
11:50 time mark in the video, and
slide #12 in the PDF file).
I'd still stand by my earlier assumption that
BCPACK uses a two-stage process similar to
Oodle Leviathan/Kraken, i.e. the LZ-family compression pass over a "lossless transform" step, which reorders bytes in a BCn texture to improve compression ratio of LZ pass. It could also include an improved
lossy texture compression algorithm, similar to Oodle Texture Rate Distortion Optimization (RDO) processing, with finer control of quality/compression ratios, which decodes to BCn formats.