Powered by OPF
OPF WIKI STATIC ARCHIVE
2,681 pages · 153 spaces · 776 tags · 4,025 history records · 96.2% of the original wiki recovered
Archived copy. This page was recovered from the Internet Archive snapshot of /display/TR/Erroneous tile-part information in images created by Adobe Photoshop taken on 2014-12-08. The original wiki at wiki.opf-labs.org is being decommissioned.

Erroneous tile-part information in images created by Adobe Photoshop

Created by Johan van der Knijff on Apr 09, 2013 · last edited by Johan van der Knijff · on Apr 09, 2013 (view history) · 3 versions

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-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.

Recommendations

Pre-ingest

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

Existing collections

Example files

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

References