===jp2structcheck has been superceded by [Jpylyzer]=== 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:
Basic testing described here:
SCAPE Solution page here: SO1 Simple JP2 file structure checker