Erroneous tile-part information in images created by Adobe Photoshop

Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History

Description

The information that defines the number of tile-parts in each tile in JPX files created with Adobe Photoshop is incorrect (tested with CS4 + Adobe JPEG2000 plugin 2.0; other versions may be affected as well). More specifically, this affects the tnsot field in each tile-part's SOT marker segment. The value of this field defines the number of tile-parts within a tile. However, the values of tnsot that are written by Photoshop's plugin are systematically off by one. This means that for 6 tile-parts per tile, the value of tnsot will be 5 (whereas it really should be 6!), and so on.

Risks

Some readers are simply unable to open these images. This includes software that uses the JasPer library (ImageMagick, GraphicsMagick), and OpenJPEG's opj_decompress tool (OpenJPEG 2.0.0). Other readers render the images without any apparent problems, although it's not entirely clear whether all the available image data are rendered in the highest available quality. This implies a risk that a future migration may result in a degradation of image quality.

Assessment

Files that are affected by this will not pass validation by Jpylyzer, and result in failure of the foundExpectedNumberOfTileParts test:

Tool Affected if expression returns True
Jpylyzer "/jpylyzer/isValidJP2 = 'False'"
"/jpylyzer/tests/contiguousCodestreamBox/foundExpectedNumberOfTileParts = 'False'"

Also, if you check the values of tpsot (tile-part index) in images that are affected by this issue, you will see that for some tile-part tpsot equals tnsot. For example:

/jpylyzer/properties/contiguousCodestreamBox/tileParts/tilePart/sot/tpsot = '5'
/jpylyzer/properties/contiguousCodestreamBox/tileParts/tilePart/sot/tnsot = '5'

Since the numbering of tpsot always starts from 0, this is really impossible: a value of 5 implies that there are actually 6 tile-parts per tile (with tpsot consecutively numbered 0,1,2,3,4,5). So tnsot should really be 6 in this case.

Recommendations

Pre-ingest

Identify files that are affected by this problem using Jpylyzer and do not accept them.

Existing collections

  • Identify files that are affected by this problem using Jpylyzer.
  • Document the issue and the associated risks, and mark affected materials in metadata.
  • Normalisation of affected files to 'proper' JP2s may be considered for important collections (but this would require careful planning and risk assessment).

Example files

Both files created with Adobe Photoshop CS4 + Adobe JPEG2000 plugin 2.0.:

References

Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.