Effects of bit and byte corruption

compared with
Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (4)

View Page History
|foundEOCMarker|: Last 2 bytes in codestream constitute an end of codestream (EOC) marker segment|

In addition, [Jpylyzer] checks the actual length (in bytes) of each tile part against the length information in the tile part header. A limitation of this approach is that the standard permits encoders to _exclude_ this length information in the header of the _last_ tile part in the codestream. Most encoders appear to include this information anyway, but this leaves the possibility that [Jpylyzer] may not detect missing (or extra) bytes in the last tile part of an image.
In addition, [Jpylyzer] checks the actual length (in bytes) of each tile part against the length information in the tile part header (_Psot_ field in the _Start of tile-part_ marker segment). A limitation of this approach is that the standard permits encoders to _exclude_ this length information in the header of the _last_ tile part in the codestream (i.e. _Psot_ is set to 0, in which case the tile part is assumed to contain all the remaining data in the codestream, up to the end of codestream (EOC) marker). Most encoders appear to include this information anyway, but this leaves the possibility that [Jpylyzer] may not detect missing (or extra) bytes in the last tile part of an image.

h3. Bit-level corruption
h3. Image creation
# Encode using JPEG 2000's error resilience features (start-of-packet markers, end-of-packet markers and segmentation symbols). In case of damaged codestreams this will at least allow decoders to recover from errors and limit their impact on the rendered image. See also [this paper by Volker Heydegger|http://www.planets-project.eu/docs/papers/Heydegger_JustOneBit_ECDL2009.pdf].
# Do not encode the whole image as one single tile (as this may limit the possibilities for verifying the completeness of the codestream in some cases).
# Do not encode the whole image as one single tile (as, depending on the encoder's defaults, this may limit the possibilities for verifying the completeness of the codestream).
# Use Jpylyzer to establish that files are valid JP2
# Do exact (lossless) or approximate (lossy) pixel-wise comparison between source and destination images