I had asked this in comp.compression, but I muddied the question with the details of how it is implemented, so I'm going to try again in this forum by asking my question better:
I have a system where there is an opportunity to compress a stream of data before it is sent to its destination. The time I have to compress the data is variable; that is, I do not know how much time I have to compress before the data *must* be sent, and that time could arrive while in the middle of the compression process. The output stream can be broken up into variably-sized "compressed" and "non-compressed" frames if necessary for transmission. Given those constraints, is there an algorithm, or a particular way of using an algorithm, that would satisfy this requirement? Specifically, is there a family of algorithms where it is a design requirement to interrupt the compression process, output what has compressed so far, then output the remainder?
I can already think of trivial ways to do this with any LZ77 variant, but was wondering if there was an algorithm or implementation that was already specifically tuned for this behavior.