I need to figure out what resolution will give the card enough headroom to write at that resolution continuously at least 90-95% of the time
Latest update estimates compression ratio on the fly, from the current scene and exposure settings. Also a few minor bug-fixes.
To get the best possible compression, all you need is to set ISO to maximum, shutter to 1/FPS, aperture wide-open and use a bright scene. You'll get close to 35%
(apparently the limit for this codec, or maybe just for Canon's implementation).
Generally, if pixel values are predictable (from their neighbors), the image will compress well. That usually means low noise levels (low ISO, shadows, fully clipped highlights) and few details (large out-of-focus and/or low-contrast areas). Note that absolute noise values are higher in highlights, and the SNR is higher too, so exposing to the right will give higher file sizes (but that shouldn't stop you from using it).
Fast motion probably gives better compression, because of motion blur (didn't test, but that's my understanding with this codec).
Invalid image data (that includes e.g. 14-bit raw data interpreted as 10-bit, or pure noise, or machine code if you want) will give compressed output larger than initial size. In current implementation, this gives memory overflow. For some unknown reason (alignment issues? no idea), setting a maximum size for compressed output causes camera lock-up at certain resolutions, with no apparent logic (see this commit
; minimal example here