RFC 14:图像结构元数据

作者:弗兰克·温特丹

联系方式:warmerdam@pobox.com

状态:通过

总结

这个RFC试图将元数据的“图像结构”域的语义形式化。此元数据域用于保存有关图像组织的结构信息,这些信息在转换为其他格式时通常不会与图像一起携带。图像结构元数据可能出现在GDALDataset或单个频带上,并且大多数项在这两种上下文中都是有意义的。当在数据集上找到NBITS这样的项时,假设它们应用于该数据集的所有波段。

图像结构项

压缩:用于此数据集或带区的压缩类型。压缩类型名称没有固定的目录,但是如果给定的格式包含压缩创建选项,则此处应使用与此处相同的值列表。

NBITS::用于此频带或此数据集的频带的实际位数。通常只有当数据类型的位数不是标准的时才出现,例如当1位TIFF通过GDAL表示为GDT_Byte时。

INTERLEAVE::这只适用于数据集,值应该是像素、线或波段之一。它可以用作数据访问提示。

PIXELTYPE::这可能出现在GDT_字节带(或相应的数据集)上,并且具有SIGNEDBYTE值以指示128到255之间的无符号字节值,对于识别SIGNEDBYTE类型的应用程序,应将其解释为-128到-1之间的值。

兼容性问题

此RFC与现有做法相比有两个可能导致兼容性问题的更改:

  1. 传统上,NBITS元数据出现在数据集的默认元数据域中,而不是在图像结构域中。

  2. 传统上,压缩元数据只出现在数据集上,而不是一个波段。

我只知道以前有一个应用程序系统地使用了这些项,它将随着GDAL 1.5.0的采用而更新以反映新的用法。

开发

除了对图像结构元数据的语义进行定义外,还将采取以下开发步骤:

  1. PNG、GTiff、NITF和EHdr驱动程序将更新,以将NBITS放在图像结构元数据域中。

  2. HFA驱动程序将被更新以返回NBITS元数据。

  3. HFA、GTiff、JP2KAK、ECW、JPEG和PNG驱动程序将被更新以返回交织元数据。

  4. HFA和GTiff驱动程序将被更新以返回PIXELTYPE元数据。

开发工作将由frankwartemdam在trunk中完成,并及时发布GDAL/OGR 1.5.0。当感兴趣的开发人员在时间允许的情况下对这些定义可能有用的其他驱动程序进行更改时,不一定要及时对GDAL/OGR 1.5.0进行更改。

笔记

  • 当gdalinfo实用程序可用时,它已经报告图像结构元数据。

  • GTiff和HFA drivers CreateCopy()方法检查源中的NBITS和PIXELTYPE元数据,以创建专用的输出文件类型。

  • GTiff、HFA和默认的CreateCopy()实现已被重新设计为使用新的gdaldatasetcopywholerater()函数,该函数使用交织元数据作为线索,在源数据集被交织时是否进行交织复制。