DICOM 放气显式 VR 小字节序 (1.2.840.10008.1.2.1.99)

DICOM Deflated Explicit VR Little Endian (1.2.840.10008.1.2.1.99)

这种传输语法中的数据是如何组织的?标准描述:

This Transfer Syntax applies to the encoding of the entire DICOM Data Set. The entire Data Set is first encoded according to the rules specified in Section A.2. The entire byte stream is then compressed using the "Deflate" algorithm defined in Internet RFC 1951.

最初我认为这意味着整个 DICOM 文件本身被 gzip 压缩了。但是,如果整个文件都被 gzip 压缩,包括 header,其中包含标识传输语法,parser/viewer 如何能够读取传输语法以知道它被 gzip 压缩了?

从给定这种类型文件的查看者的角度来看,它如何知道它是这种传输语法?寻找 GZIP header?

是否有使用此传输语法的公开示例图像?

您可以从此处下载一些以 1.2.840.10008.1.2.1.99 传输语法编码的测试 DICOM 图像:

http://www.dclunie.com/images/compressed/

当您解压缩存档时,使用 Deflated 传输语法的图像被命名为:name_dfl

传输语法只是一种压缩整个 DICOM 数据的语法,但是当我在十六进制编辑器 XVI32 中打开它时,看起来 dicom 文件的元数据未压缩,因此您可以阅读传输语法,但我找不到其他图像以该传输语法编码,所以我不确定。

对于@Springfield762 指出的示例,每个 _dfl 文件都有一个从末尾开始的 300-some-odd 字节到八个字节的有效压缩流。他们每个人都解压到压缩包中相应文件的长度,没有 _dfl 后缀,但数据不一样。从解压缩数据到原始数据需要额外的解码。

image_dfl 有一个 deflate 流,从偏移量 334 开始,report_dfl 在 348,wave_dfl 在 314。它们分别解压缩到 262682、6178 和 62408 字节。

每个 deflate 流后的最后八个字节与 gzip 尾部相同,即解压缩数据的 CRC-32(四个字节)后跟小端顺序的未压缩长度。它们都与解压缩 deflate 流产生的数据相匹配。

deflate 数据之前的字节不是 gzip header。

如果我没记错的话,DICOM 将大多数流分为两个数据集,第一个是 DICOM 文件元信息,它始终编码为显式 VR 小端传输语法,第二个数据集按照文件元中的指示进行编码信息。

发件人:

http://medical.nema.org/dicom/2013/output/chtml/part10/chapter_7.html

"Transfer Syntax UID" 标签描述为:

Uniquely identifies the Transfer Syntax used to encode the following Data Set. This Transfer Syntax does not apply to the File Meta Information.