A simple way to reduce memory pressure on Unity iOS (and maybe Android) titles
Here's how to control the tradeoff between memory collection frequency and Mono memory headroom in Unity titles. I've tested this on iOS but it should work on any platform that uses LibGC to manage the...
View Article15 Reasons why developers won't use your awesome codec
Getting other developers to use your code in their products is surprisingly difficult. A lot of this applies to open source development in general:1. "Nobody's ever been fired for choosing IBM."The...
View ArticleA few observations about Unity
I've only been at Unity Technologies for a month, and obviously I have much to learn. Here are a few things I've picked up so far:High programmer empathy, low ego developers tend to be successful...
View ArticleMore on bsdiff and delta compression
bsdiff is a simple delta compression algorithm, and it performs well compared to its open and closed source competitors. (Note bsdiff doesn't scale to large files due to memory, but that's somewhat...
View ArticleVisualization of file contents using LZ compression
I love tools that can create cool looking images out of piles of raw bits. An alternative title for this blog post could have been "A data block content similarity metric using LZ compression".These...
View ArticleVisualizing the Calgary compression corpus
The Calgary corpus is a collection of text and binary files commonly used to benchmark and test lossless compression programs. It's now quite dated, but it still has some value because the corpus is so...
View ArticleLZHAM custom codec plugin for 7-zip v15.12
7-zip is a powerful and reliable command line and GUI archiver. I've been privately using 7-zip to thoroughly test the LZHAM codec's streaming API for several years. There's been enough interest in...
View ArticleQuick Survey of the Lossless Decompression Pareto Frontier
I first learned about the compression "Pareto Frontier" concept on Matt Mahoney's Large Text Compression Benchmark page. Those charts are for compression throughput vs. ratio, not decompression...
View ArticleFuture Directions in Lossless Compression
My current guesses on where this field could go. This is biased towards asymmetric codecs (offline compression for data distribution, not real-time compression/decompression).Short TermLZ4: Higher...
View ArticleImportant aspects of LZHAM's design
I'm going to go through many of the major lossless codecs (LZMA, Zstd, LZ4, Deflate, bzip2, PAQ, etc.) and list the features and properties that made them unique or interesting, especially when first...
View ArticleThe Key Missing API in Lossless Data Compressors
There's a key streaming API missing from every lossless codec I've seen. This is the next API going into lzham_codec_devel (what will be LZHAM v1.1). This API bridges the gap between the lossless and...
View ArticleA graph submission API for lossless data compression
Earlier today I was talking with John Brooks (CEO of Blue Shift Inc.) about my previous blog post (adding a new CompressQuery()API to lossless compressors). It's an easy API to understand and add to...
View ArticleOne test showing the performance of miniz vs. zlib
miniz (was here, now migrating to github here) is my single source file zlib-alternative. It's a complete from scratch reimplementation, and my 5th Deflate/Inflate implementation so far. It has an...
View ArticleHow to deeply integrate a data compressor into a game engine
IntroWe're still in a "path finding into the future" mode here at Unity. We are now thinking about breaking down the "Berlin Wall" between game engines like Unity and the backend data compressor. We...
View ArticleMobile-friendly binary delta compression
This is basically a quick research report, summarizing what we currently know about binary delta compression. If you have any feedback or ideas, please let us know.Binary delta compression (or here) is...
View ArticleThe future of GPU texture compression
Google engineers were the first to realize the value of crunch (original site here), my advanced lossy texture compression library and command line toolset for DXTc textures that was recently...
View ArticleThe awesomeness that is ClangFormat
While working on the Linux project at Valve we started using this code formatting tool from the LLVM folks:http://clang.llvm.org/docs/ClangFormat.htmlMike Sartain (now at Rad) recommended we try it....
View ArticleOkumura's "ar002" and reverse engineering the internals of Katz's PKZIP
Sometime around 1992, still in high school, I upgraded from my ancient 16-bit OS/9 computer to a 80286 DOS machine with a hard drive. I immediately got onto some local BBS's at the blistering speed of...
View ArticleWhy by-convention read-only shared state is bad
I'm going to switch topics from my usual stuff to something else I find interesting: multithreading.Multithreading Skinning on Age of Empires 3Back at Ensemble Studios, I remember working on the...
View ArticleCrunch texture compression library has moved
To github here:https://github.com/richgel999/crunch
View Article