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.
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.
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-parts 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.
Identify files that are affected by this problem using Jpylyzer and do not accept them.
- 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).
Both files created with Adobe Photoshop CS4 + Adobe JPEG2000 plugin 2.0.: