This morning had a thought. We store numbers in a fixed sized memory space. So if we use four bytes to store numbers we would need eight bytes to store the numbers 5 and 6. But, what if we store 5 in four bytes and then 6 in two bit, as a delta? The bits can indicate +1, 0, -1., here an increment of the 5 by one. Larger increments would use more bits of course. Thus, we naturally get compression.
Subject areas: mobile computing, Internet of Things.
True, this wouldn’t work as a ‘live’ memory storage, the I/O would be complex. Or would it? In constrained devices such as Wearable Computing, for example, a smart watch, or in an Internet Of Things remote device, memory limitations may require compressed storage.
As usual, this is not a new idea. It is related to “Delta Encoding” or “Data differencing”. An interesting article on how delta coding could be used for compression is “Effective compression using frame-of-reference and delta coding”.
I have not seen this delta encoding memory approach mentioned anywhere yet.
- Effective compression using frame-of-reference and delta coding
- Delta Encoding – Simple Example
- Data differencing
- Declarative Object Graphs: programs as queries
- Local Variables in the FORTH language
- What is Cloud Computing?
- Hierarchical Storage Management, from drive to cloud
- File ASCII Hex Dump using Groovy