JP2KAK—JPEG-2000(基于Kakadu)

司机简称

2千日元

生成依赖项

卡卡杜类库

大多数形式的JPEG2000 JP2和JPC压缩图像(ISO/IEC 15444-1)都可以使用基于Kakadu库的驱动程序用GDAL读取。同样,新的图像可以被书写。无法就地更新现有图像。

JPEG2000文件格式支持带1个或多个频带(组件)的8位和16位图像的有损和无损压缩。通过 GeoJP2 (tm) 机制、GeoTIFF风格的坐标系和地理参考信息可以嵌入到JP2文件中。JPEG2000文件使用的格式和压缩机制与传统的JPEG压缩和JPEG JFIF格式大不相同。它们是由同一组产生的不同压缩机制。JPEG2000是基于小波压缩的。

本页中记录的JPEG2000驱动程序(JP2KAK驱动程序)是在专有的 Kakadu 类库。这是一个高质量和高性能的JPEG2000库,广泛应用于地理空间和通用成像社区。但是,它不是免费的,因此通常从源代码构建GDAL不会包含对该驱动程序的支持,除非构建者购买库的许可证并进行相应的配置。

When reading images this driver will represent the bands as being Byte (8bit unsigned), 16 bit signed/unsigned, and 32 bit signed/unsigned. Georeferencing and coordinate system information will be available if the file is a GeoJP2 (tm) file. Files color encoded in YCbCr color space will be automatically translated to RGB. Paletted images are also supported.

XMP元数据可以从JPEG2000文件中提取,并作为XML原始内容存储在XML:XMP元数据域中。

驱动程序功能

Supports CreateCopy()

This driver supports the GDALDriver::CreateCopy() operation

Supports Georeferencing

This driver supports georeferencing

Supports VirtualIO

This driver supports virtual I/O operations (/vsimem/, etc.)

配置选项

JP2KAK驱动程序支持以下内容 Config Options . 这些运行时选项可用于更改驱动程序的行为。

  • JP2KAK_THREADS =n:默认情况下,我们使用Kakadu库中的默认规则来利用多核计算机上的多线程。此选项可以设置为0值以避免使用其他线程,或者设置为特定计数以创建请求的工作线程数。

  • JP2KAK_FUSSY =是/否:可以将其设置为是,以启用对JPEG2000数据流问题的模糊报告。默认为否。

  • JP2KAK_RESILIENT =是/否:这可以设置为是,以强制Kakadu使用错误创建的JPEG2000数据文件最大限度地提高弹性,这可能会降低性能。这可能是必要的,如果,除其他原因外,您得到一个错误消息,关于“期望在包头之后找到EPH标记”或错误报告,指示需要运行弹性和顺序标志。默认为否。

影像配准

地理参考信息可以来自不同的来源:内部(GeoJP2或GMLJP2框)、worldfile.j2w/.wld sidecar文件或PAM(持久辅助元数据).aux.xml sidecar文件。默认情况下,按以下顺序获取信息(首先列出的是最优先的):PAM、GeoJP2、GMLJP2、WORLDFILE。

从GDAL 2.2开始,可以使用GDAL GEOREF_sources配置选项(或GEOREF_sources打开选项)更改允许的源及其优先级顺序,该选项的值是以下关键字的逗号分隔列表:PAM、GEOJP2、GMLJP2、INTERNAL(GEOJP2的快捷方式,GMLJP2)、WORLDFILE、NONE。首先提到的消息来源是最优先于接下来的消息来源。将忽略未提及的源。

例如,将其设置为“WORLDFILE,PAM,INTERNAL”将使潜在的WORLDFILE优先于PAM或内部JP2框生成地理转换矩阵。将其设置为“PAM,WORLDFILE,GEOJP2”将使用上述源代码并忽略GMLJP2框。

期权

以下打开选项可用:

  • 1BIT_ALPHA_PROMOTION=YES/NO :是否应将1位alpha通道提升为8位。默认为“是”。

  • GEOREF_SOURCES=string :(GDAL>2.2)定义允许哪些地理参考源及其优先级顺序。见 Georeferencing 段落。

创建问题

只能使用CreateCopy机制从现有数据集复制JPEG2000文件。

JPEG2000概述作为图像数学描述的一部分进行维护。概述不能作为一个单独的过程来构建,但在读取时,图像通常表示为具有两个因素的不同幂的概述级别。

创建选项:

  • CODEC=JP2/J2K 要使用的编解码器。如果未指定,请根据文件扩展名进行猜测。如果未知,则默认为JP2

  • QUALITY=n :将压缩大小比率设置为未压缩图像大小的百分比。默认值为20,表示生成的图像应为未压缩图像大小的20%。实际的最终图像大小可能与请求的大小不完全匹配,具体取决于各种因素。值为100将导致使用无损压缩算法。对于典型的图像数据,如果指定的值大于65,则可能值得尝试使用QUALITY=100,因为无损压缩可能产生比有损压缩更好的压缩。

  • BLOCKXSIZE=n :设置要使用的平铺宽度。默认为20000。

  • BLOCKYSIZE=n :设置要使用的平铺高度。默认为图像高度。

  • FLUSH=TRUE/FALSE :在写入文件时启用/禁用增量刷新。要求RLPC和LRPC Corder为FALSE。在编写大型图像时,如果为FALSE,可能会使用大量内存。默认为TRUE。

  • GMLJP2=YES/NO :指示文件中是否应包含符合JPEG2000规范中OGC GML的GML框。除非使用GMLJP2V2_DEF,否则GMLJP2框的版本将为版本1。默认为“是”。

  • GMLJP2V2_DEF=filename :表示GML框是否符合 OGC GML in JPEG2000, version 2 文件中应包含规范。 文件名 必须指向一个包含JSon内容的文件,该文件定义了如何构建GMLJP2 v2框。见 GMLJP2v2 definition file section JSon配置文件语法的JP2OpenJPEG驱动程序的文档中。还可以直接传递作为字符串内联的JSon内容。如果filename设置为YES,则将生成最小实例。

  • GeoJP2=YES/NO :指示文件中是否应包含符合GeoJP2(JPEG2000中的GeoTIFF)规范的UUID/GeoTIFF框。默认为“是”。

  • LAYERS=n :控制生成的层数。它们有点像分辨率层,但不完全是。默认值是12,在大多数情况下都可以正常工作。

  • ROI=xoff,yoff,xsize,ysize :选择一个区域作为要处理的具有更高数据质量的感兴趣区域。下面的各种“R”标记可用于更好地控制量。例如,设置“ROI=0,0100100”,“Rweight=7”将对图像的左上角100x100区域进行编码,与图像的其余部分相比,具有相当高的质量。

以下创建选项与Kakadu库紧密绑定,仅被视为高级使用。查阅Kakadu文档以更好地理解它们的含义。

  • 录音机 :默认为“PRCL”。

  • Cprecincts: Defaults to "{512,512},{256,512},{128,512},{64,512},{32,512},{16,512},{8,512},{4,512},{2,512}".

  • ORGgen_plt :默认为“是”。

  • ORGgen_tlm :Kakadu库默认使用。

  • ORGtparts :Kakadu库默认使用。

  • 代码 :Kakadu库默认使用。

  • 聪明的 :Kakadu库默认使用。

  • R换档 :Kakadu库默认使用。

  • 雷维尔 :Kakadu库默认使用。

  • 跑道 :Kakadu库默认使用。

  • Qguard公司 :Kakadu库默认使用。

  • Creversible: If not set and QUALITY >= 99.5, set to "yes", otherwise to "false".

  • Sprofile文件 :Kakadu库默认使用。

  • RATE: Kakadu library default used. One or more bit-rates, expressed in terms of the ratio between the total number of compressed bits (including headers) and the product of the largest horizontal and vertical image component dimensions. A dash, -, may be used in place of the first bit-rate in the list to indicate that the final quality layer should include all compressed bits. If Clayers is not used, the number of layers is set to the number of rates specified here. If Clayers is used to specify an actual number of quality layers, one of the following must be true: 1) the number of rates specified here is identical to the specified number of layers; or 2) one or two rates are specified using this argument. When two rates are specified, the number of layers must be 2 or more and intervening layers will be assigned roughly logarithmically spaced bit-rates. When only one rate is specified, an internal heuristic determines a lower bound and logarithmically spaces the layer rates over the range. The rates have to be in ASC order.

已知的卡卡杜问题

v7.8中的Alpha通道写入

Kakadu v7.8在jp2_通道中有一个bug::set_opacity_mapping在使用alpha通道写入图像时可能会导致错误。请升级到7.9版。

Error: GdalIO: Error in Kakadu File Format Support: Attempting to
create a Component Mapping (cmap) box, one of whose channels refers to
a non-existent image component or palette lookup table. (code = 1)

对于某些平台,kdu-get-num-u处理器总是返回0

在非windows/non-mac安装(例如Linux)上,Kakadu可能不在kdu arch.cpp中包含unistd.h。这意味着没有定义“SC_NPROCESSORS”u ONLN和“SC_NPROCESSORS”u CONF,kdu get_num_处理器将始终返回0。因此,jp2kak驱动程序可能不会默认创建工作线程。

也见

  • Implemented as gdal/frmts/jp2kak/jp2kakdataset.cpp.

  • 如果您使用的是v7.5之前的Kakadu版本,请使用eg配置和编译GDAL。 CXXFLAGS="-DKDU_MAJOR_VERSION=7 -DKDU_MINOR_VERSION=3 -DKDU_PATCH_VERSION=2" 适用于Kakadu 7.3.2版。

  • 候补 JP2OpenJPEG——基于OpenJPEG库的JPEG2000驱动程序 驱动程序。