Reduce data and messaging costs through compression.

Use compression to reduce the size of data streams, multi-part messages and the volume of SMS messages needing to be sent. By doing so you can greatly reduce the cost of data transmission and potentially reduce IoT device power consumption.

Text is highly compressible. With SMS being charged per SMS sent, it is economically sensible to minimise the number of SMS being used to convey a textual message. A text message of 702 characters and spanning 5 SMS can be reduced to 2 SMS. In this case, the saving using compression is 60% in terms of the number of SMS used and the consequent SMS cost.

When sending data or SMS to a device, you can use the Compression API that is part of the Melrose Labs Compression service to compress the data prior to transmission. The compressed data can then be communicated to the device via satellite, mobile SMS, mobile data, internet or other means. On receiving the compressed communication, the mobile or IoT device uses the decompression algorithm to decompress the data.

Comparison of Compression Algorithms

The following is a comparison of compression and decompression of the same text using different algorithms. The textual message used in this comparison is 702 characters in length and if conveyed as SMS would require 5 SMS.

Method/AlgorithmDesktop Memory (bytes)Desktop Duration (s)Compression Service Duration (s)Size (bytes)Saving
lz4/LZ77 1,167,360 ~0 TBC6408.8%
bzip2/BWT 712,704 ~0 TBC46433.9%
gzip/LZ77 933,888 ~0 TBC42839.0%
cmix 6,209,183,744 7.94 3.48²*37047.3%
cmix (dictionary 100)n/a 3.7432853.3%
cmix (dictionary 1k)n/a 8.8330656.4%
cmix (dictionary 2k)n/a 12.8129857.5%
cmix (dictionary 3k) ↔n/a 16.0427860.4%
cmix (dictionary 4k)n/a 19.2927261.3%
cmix (dictionary 5k)n/a 23.2027461.0%
cmix (dictionary 10k)n/a 40.9927061.5%
cmix (dictionary 20k)n/a 72.5426861.8
cmix (dictionary 35k)n/a 115.6026562.3%
cmix (dictionary 44.88k)16,036,384,768171.29 164.18¹
Method/AlgorithmDesktop Memory (bytes)Desktop Duration (s)Compression Service Duration (s)
lz4/LZ77 864,256~0 TBC
bzip2/BWT 724,992~0 TBC
gzip/LZ77 667,648~0 TBC
cmix 6,209,290,2407.6 4.77
cmix (dictionary) 17,986,785,280165.97 164.72

Note: "Desktop" timings are for compression/decompression running on a 2.9GHz 6-Core Intel Core i9. Compression Service timings are achieved when using the Melrose Labs Compression Service (¹ c5n.4xlarge ² c5n.9xlarge ³ c5n.18xlarge * Optimised for Compression Service † 35k lines English dictionary).

The Melrose Labs Compression service is available using the following API:

Service snapshot

  • Data and message compression for IoT and other captive applications
  • Reduce the number of SMS parts in a long/concatenated SMS
  • Use IoT narrowband channels to carry more data

Find out more...

Please provide your name.
Please provide a valid company name.
Please type your message.
Please provide a valid email address.