a window decode holds every component's wavelet window buffers until post_decompressT2T1 frees them together
peak memory scales with component count: ~8MB per full-resolution component at a 1024x1024 window, so a 257-component stream holds ~2GB at once
copy each component into the composite and free its windows when its wavelet pass finishes, instead of at tile end
a window decode holds every component's wavelet window buffers until post_decompressT2T1 frees them together
peak memory scales with component count: ~8MB per full-resolution component at a 1024x1024 window, so a 257-component stream holds ~2GB at once
copy each component into the composite and free its windows when its wavelet pass finishes, instead of at tile end