Adaptive coding: Difference between revisions

Content deleted Content added
Add citation
 
(24 intermediate revisions by 21 users not shown)
Line 1:
{{unreferencedMore citations needed|date=JuneMarch 2009|bot=yes2025}}
 
'''Adaptive coding''' refers to variants of [[entropy encoding]] methods of [[lossless data compression]].{{Citation needed|date=March 2025}} They are particularly suited to [[streaming data]], as they adapt to localized changes in the characteristics of the data,{{Citation needed|date=March 2025}} and don't require a first pass over the data to calculate a probability model.<ref name=":0">{{Cite book |last=Williams |first=Ross N. |url=https://www.google.com/books/edition/Adaptive_Data_Compression/lBY6CcXU59EC?hl=en&gbpv=1&pg=PR11&printsec=frontcover |title=Adaptive Data Compression |date=1991 |publisher=Springer Science & Business Media |isbn=978-0-7923-9085-5 |language=en}}</ref> The cost paid for these advantages is that the encoder and decoder must be more complex to keep their states synchronized, and more computational power is needed to keep adapting the encoder/decoder state.
 
Almost all [[data compression]] methods involve the use of a ''model'', a prediction of the composition of the data. When the data matches the prediction made by the model, the encoder can usually transmit the content of the data at a lower information cost, by making reference to the model.
This general statement is a bit misleading as general data compression algorithmalgorithms would include the popular [[LZW]] and [[LZ77]] algorithms,
which are hardly comparable to compression techniques typically called ''adaptive''.
[[Run -length encoding]] and the typical [[JPEG]] compression with run length encoding and predefined Huffman codes do not transmit a model.
A lot of other methods adapt their model to the current file and need to transmit it in addition to the encoded data, because both the encoder and the decoder need to use the model.
 
In adaptive coding, the encoder and decoder are instead equipped with a predefined meta-model about how they will alter their models in response to the actual content of the data, and otherwise start with a blank slate, meaning that no initial model needs to be transmitted. As the data is transmitted, both encoder and decoder adapt their models, so that unless the character of the data changes radically, the model becomes better-adapted to the data itsit is handling and compresses it more efficiently approaching the efficiency of the static coding.
 
==Adaptive method==
The operating method of adaptive encoding algorithms is as follows:<ref name=":0" />
 
===Encoder===
# Initialize the data model as per agreement.
Line 26 ⟶ 29:
 
==Static method==
 
===Encoder===
# Initialize the data model based on a first pass over the data.
Line 38 ⟶ 42:
 
== Examples ==
Adaptive image coding is currently beingwas used by the [[Cassini-HyugensHuygens]] craft to relay images from [[Saturn]]. Only about 5% of the images show any visual signs of damage. As the spacecraft has aan error correcting [[Solid-state drive|Flash drive]] and long timeframes between image taking events, damaged images like this can be resentpresent. It is assumed that the number of damaged, but unrecoverable images from the Cassini mission is about 0.01% or less.{{Update inline|date=December 2019|reason=How many of the images were actually damaged, now that the mission has ended?}}
 
[[Image:Damaged_N00153918Damaged N00153918.jpg‎jpg|thumb|center|450px|The Cassini camera was pointing toward DIONE[[Dione (moon)|Dione]] at a distance of approximately 548,210 kilometers. The image was taken using the CL1 and CL2 filters on May 17, 2010.|alt=]]
 
=== Cassini Lossless Compression ===
[[Image:Damaged_N00153918.jpg‎|thumb|center|450px|The Cassini camera was pointing toward DIONE at a distance of approximately 548,210 kilometers. The image was taken using the CL1 and CL2 filters on May 17, 2010.]]
{{-}}
Cassini Lossless Compression
* Both converted (8-bit) and unconverted (12-bit) data can be losslessly compressed. The Cassini hardware data compressor uses a modified Huffman encoding scheme as part of its adaptive compressor.
* Each compressed image can be reconstructed on the ground with no loss to the information content of the image, provided the image entropy does not exceed the threshold where 2:1 compression is reached.
* Due to camera problems and the need to reduce file size, there is a slight modification to the image coding scheme so that each compressed line is effectively bandwidth limited on the number of bits available to encode it.
 
==References==
{{-}}
{{Reflist}}
 
{{Compression Methods}}
{{CCSDS}}
 
[[Category:Lossless compression algorithms]]
[[Category:Data compression]]