LZ=virtual machine driven by compressed opcodes (match or literal usually). Basisu/CRN=Basically same thing, just different opcodes, with static dictionaries, and with the encoder aware and the opcodes tuned to output 2D textures. Also the encoder is lossy, plain LZ isn’t.
You can make LZ aware that it has more degrees of freedom, so it can pick and choose between different texture encodings. Or you can simulate LZ in your texture encoder and try to give plain LZ encodings which maximize matches/popular literals. Both work.
All the publically available data says that Unity CRN+LZ or basisu compresses so much better than RDO plus plain LZ that it seems silly to keep investing in LZ codecs for compressed texture data. We have three systems now that beat RDO+LZ: original CRN, Unity CRN, and Basisu.
Basisu has a small selector history buffer in there, which helps it gain a few percent. So it’s already adopting some LZ-like techniques.
(On some videos the history buffer makes a big difference. Depends on content.)
You can follow @richgel999.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.