Skip to end of metadata
Go to start of metadata
Title SO1 Simple JP2 file structure checker
Detailed description
Note that this development has now been replaced by: [SO15 JP2 validator and properties extractor (jpylyzer)]

Assuming that a Preservation Plan has already been devised, a complete solutions for this issue would be:

Create a migration and quality assurance workflow (based on taverna workflows in the beginning and on hadoop later on). The wf should be composed by the following steps:

1. The first step would be to use one of the TIFF to JPEG2000 migration services provided by the AS WP.
2. The second step would be to do an image comparison service to assess how much pixel information has been changed between the original tiff and the recently coverted jp2 file. This service should be provided by QA WP.
3. The results of the evaluation would dictate what to do next, that being: a) archive and add preservation metadata or b) repeat the process.

Other things that should be considered are:
In brief, when jp2StructCheck analyses a file, it first parses the top-level box structure, and collects the unique identifiers (or marker codes) of all boxes. If it encounters the box that contains the code stream, it checks if the code stream is terminated by a valid end-of-codestream marker. Finally, it checks if the file contains all the compulsory/required top-level boxes. These are: JPEG 2000 signature box, File Type box, JP2 Header box, Contiguous Codestream box.

For more information see this blog post:

Solution Champion
Johan van der Knijff (KB)
Miguel Ferreira (KEEPS)
Corresponding Issue(s)
myExperiment Link
Not yet available
Tool Registry Link
Simple JP2 file structure checker
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Sep 28, 2011

    Some additional info: in November I will have a go at extending the functionality of the JP2 structure checker to do a full validation. For a brief outline of the additional checks that I want to include see my comment to the OPF blog post: