什么是一 .dng 文件?
DNG 是一种用于存储原始文件的数码相机图像格式。它是由 Adobe 于 2004 年 9 月开发的。它基本上是为数码摄影而开发的。 DNG 是 TIFF/EP 标准格式的扩展,大量使用元数据。为了轻松灵活地和艺术控制地处理来自数码相机的原始数据,摄影师选择相机原始文件。 JPEG 和 TIFF 格式存储由相机处理的图像,因此,此类格式没有太大的更改空间。
DNG 文件格式的历史和版本
到目前为止,DNG 规范已经有 5 个版本。 2004 年 9 月发布了 1.0.0.0 版本,同时发布了“2.3"(ACR 和 DNG 转换器)。 2005 年 2 月 1.1.0.0 版发布。 2008 年 5 月版本 1.2.0.0 发布并用于“4.4"。 1.3.0.0 版于 2009 年 6 月发布。1.4.0.0 版于 2012 年发布。
DNG 文件格式
而相机原始文件直接从传感器捕获未处理或低处理的数据。由于它们类似于胶片负片,因此相机原始格式也称为“数字负片"。原始格式的好处是增加了最终用户的艺术控制。用户可根据白平衡、色调映射、降噪、锐化等要求调整各种参数范围。另一方面,必须通过任何软件或转换器处理相机原始文件以供任何使用。
由于相机原始文件没有可用的标准格式,因此给最终用户带来了多个问题。 Adobe 解决了这些问题,并为相机原始文件定义了一种非专有格式。该格式称为数字负片或 DNG。 DNG 可以被广泛的硬件和软件用于处理原始文件。此外,DNG 还可以用作存储图像的中间格式,这些图像最初由相机捕获,具有自己的专有原始格式。
DNG 文件格式规范
在本节中,我们将 DNG 格式描述为 TIFF 6.0 的扩展。
- 文件扩展名:DNG 使用“.DNG"或“.TIF"扩展名。
- SubIFD 树:DNG 不支持 SubIFD 链,而是 DNG 建议使用 TIFF-EP 规范中提到的 SubIFD 树。最高质量和分辨率可以使用 0 的 NewSubFileType,而降低质量的缩略图应该使用等于 1 的 NewSubFileType。尽管不要求第一个 IFD 必须具有低质量或分辨率的缩略图,但仍建议使用。
- 字节顺序:DNG 阅读器必须支持字节顺序,对于来自特定相机型号的文件也是如此。
- 蒙版像素:大多数相机传感器通过黑色编码计算传感器边缘的完全蒙版像素。在以 DNG 格式存储图像之前,可以包含或修剪这些像素。如果掩蔽像素没有被修剪,那么这些像素的区域必须在 ActiveArea 标签中提及。从这些像素收集的有关黑色编码级别的信息应在存储原始数据之前使用,或者可能包含在指定黑色级别的 DNG 文件中。
- 缺陷像素:在将原始数据存储为 DNG 之前,应排除缺陷像素。
- 元数据:元数据可以通过以下任何方式包含在 DNG 中: ** 通过使用 TIFF-EP 或 EXIF 元数据标签 ** 通过 IPTC 元数据标签 (33723) ** 使用 XMP 元数据标签 (700)
- 专有数据:通常供应商在原始文件中包含专有数据,供他们自己的转换器使用。 DNG 将其专有数据存储在私有标签、私有 IFD 和私有 MakerNote 中。供应商必须使用 DNGPrivateData 和 MakerNoteSafety 标签来确保编辑 DNG 文件的应用程序保留这些专有数据。
以下是一些重要的限制和扩展 TIFF 标签。
BitsPerSample
支持 8 到 32 位/样本。当 SamplesPerPixel 不等于 1 时,每个样本的深度必须相同。但如果 BitsPerSample 不等于 8 或 16 或 32,则必须使用 TIFF 默认的 FillOrder 1(big-endian)将位打包成字节。
压缩
支持两个压缩标签值:
- 值 #1:未压缩的数据。
- 值 #7:JPEG 压缩数据,基线 DCT JPEG 或无损 JPEG 压缩。
光度解释
仅缩略图和预览 IFD 支持以下值:
- 1 = BlackIsZero。假设在 gamma 2.2 颜色空间中。
- 2 = RGB。假设在 sRGB 颜色空间中。
- 6 = YCbCr。用于 JPEG 编码的预览图像。
原始 IFD 支持以下值,并假定为相机的本机色彩空间:
- 32803 # CFA(彩色滤光片阵列)。
- 34892 # 线性原始。
方向
方向标签用于文件浏览器,以便它们可以对 DNG 文件进行无损旋转。 DNG 阅读器必须支持所有可能的方向,包括镜像方向。
最新版本 DNG 中的功能
DNG 版本 1.4 2012 年 10 月具有以下高级功能。
- 默认用户裁剪
- 透明度
- 浮点 (HDR)
- 有损压缩
- 代理