Suppose that we have two codecs, LZMA with 50MB/s decoding speed,

and CCM with 5MB/s decoding speed, and have to choose one of them

for data transfer via a channel with 300KB/s speed.

Also lets define some compression ratios, via enwik8:

lzma: 0.24557177

ccm: 0.22003958

Now, suppose that decoding can be done in parallel with download, so

block_decoding_time = max( blocksize/ratio/dec_speed, blocksize/down_speed )

filetime = filesize*ratio/blocksize*block_decoding_time

filetime = filesize*max( 1/dec_speed, ratio/down_speed )

So for dec_speed>down_speed/ratio:

filetime = filesize * ratio / down_speed

Now lets compute enwik9 transfer time:

Code:

In[1]:= filetime[filesize_, ratio_, decspeed_, downspeed_] := filesize*Max[1/decspeed, ratio/downspeed]
In[2]:= filetime[1000000000, 0.24557177, 50000000, 300000]
Out[2]= 818.573
In[3]:= filetime[1000000000, 0.22003958, 5000000, 300000]
Out[3]= 733.465

Question: are LZ codecs really that good?