Starting with GDAL 1.9.0, XMP metadata can be extracted from JPEG2000 files, and will be stored as XML raw content in the xml:XMP metadata domain.
Georeferencing information can come from different sources : internal (GeoJP2 or GMLJP2 boxes), worldfile .j2w/.wld sidecar files, or PAM (Persitant Auxiliary metadata) .aux.xml sidecar files. By default, information is fetched in following order (first listed is the most prioritary): PAM, GeoJP2, GMLJP2, WORLDFILE.
Starting with GDAL 2.2, the allowed sources and their priority order can be changed with the GDAL_GEOREF_SOURCES configuration option (or GEOREF_SOURCES open option) whose value is a comma-separated list of the following keywords : PAM, GEOJP2, GMLJP2, INTERNAL (shortcut for GEOJP2,GMLJP2), WORLDFILE, NONE. First mentioned sources are the most prioritary over the next ones. A non mentioned source will be ignored.
For example setting it to "WORLDFILE,PAM,INTERNAL" will make a geotransformation matrix from a potential worldfile prioritary over PAM or internal JP2 boxes. Setting it to "PAM,WORLDFILE,GEOJP2" will use the mentioned sources and ignore GMLJP2 boxes.
1BIT_ALPHA_PROMOTION=YES/NO: Whether a 1-bit alpha channel should be promoted to 8-bit. Defaults to YES.
GEOREF_SOURCES=string: (GDAL > 2.2) Define which georeferencing sources are allowed and their priority order. See Georeferencing paragraph.
``The following options are supported by the encoder:
|imgareatlx=x||Set the x-coordinate of the top-left corner of the image area to x.|
|imgareatly=y||Set the y-coordinate of the top-left corner of the image area to y.|
|tilegrdtlx=x||Set the x-coordinate of the top-left corner of the tiling grid to x.|
|tilegrdtly=y||Set the y-coordinate of the top-left corner of the tiling grid to y.|
|tilewidth=w||Set the nominal tile width to w.|
|tileheight=h||Set the nominal tile height to h.|
|prcwidth=w||Set the precinct width to w. The argument w must be an integer power of two. The default value is 32768.|
|prcheight=h||Set the precinct height to h. The argument h must be an integer power of two. The default value is 32768.|
|cblkwidth=w||Set the nominal code block width to w. The argument w must be an integer power of two. The default value is 64.|
|cblkheight=h||Set the nominal code block height to h. The argument h must be an integer power of two. The default value is 64.|
|mode=m||Set the coding mode to m. The argument m must have
one of the following values:
|rate=r||Specify the target rate. The argument r is a positive real number. Since a rate of one corresponds to no compression, one should never need to explicitly specify a rate greater than one. By default, the target rate is considered to be infinite.|
|ilyrrates=[, ,. . . , ]||Specify the rates for any intermediate layers. The argument to this option is a comma separated list of N rates. Each rate is a positive real number. The rates must increase monotonically. The last rate in the list should be less than or equal to the overall rate (as specified with the rate option).|
|prg=p||Set the progression order to p. The argument
p must have one of the following values:
|nomct||Disallow the use of any multicomponent transform.|
|numrlvls=n||Set the number of resolution levels to n. The argument n must be an integer that is greater than or equal to one. The default value is 6.|
|sop||Generate SOP marker segments.|
|eph||Generate EPH marker segments.|
|lazy||Enable lazy coding mode (a.k.a. arithmetic coding bypass).|
|termall||Terminate all coding passes.|
|segsym||Use segmentation symbols.|
|vcausal||Use vertically stripe causal contexts.|
|pterm||Use predictable termination.|
|resetprob||Reset the probability models after each coding pass.|
|numgbits=n||Set the number of guard bits to n.''|