压缩要发送到远程服务器的dicom文件

时间:2016-07-21 05:07:26

标签: image compression dicom bzip2 dcmtk

我正在寻找一种方法来压缩dicom文件并将它们发送到远程服务器(在我的情况下是nodejs)

我尝试了bz2压缩,它似乎在大型dicom文件上运行得很好(用10 Mb文件测试它给了我一个5Mb压缩文件)。

当谈到小尺寸(如250Kb文件)时,我的尺寸减少了几kb(大多数情况下为5到10 kb),这是不值得的

有人可以解释一下为什么bz2能够很好地处理大型dicom文件,并且有更好的方法来压缩我可以使用的dicom文件,以便通过互联网发送它们。

提前谢谢。

2 个答案:

答案 0 :(得分:0)

如果要使用图像压缩DICOM数据集,建议使用DICOM Standard支持的压缩类型之一。这包括有损和无损JPEG,JPEG 2000,JPEG-LS和RLE等等。 Standard还支持使用基于标准的压缩技术对扩展灰度(12-16位灰度)进行编码。

传输语法元素(0002,0010)将指示DICOM数据集中的图像是否已经压缩。例如,与原始图像相比,重新压缩已经压缩的图像将显得具有较小的压缩率。因此,最佳测量方法是与原始未压缩图像进行比较。如果原始图像已经压缩,则可以使用(行x列x分配的位数/ 8 x每像素采样数x帧数)计算未压缩的图像大小。此外,压缩比将根据所使用的图像类型(颜色与灰度)和压缩技术而变化。通常,在处理真彩色图像与灰度图像(如X-RAY)时,您将获得更好的压缩效果。

至于使用HTTP上传文件,您还可以使用DICOM标准定义的服务,如DICOMWeb(STOW-RS)REST服务。

我为LEAD Technologies工作,如果你想在你的DICOM文件上测试各种压缩,我们有一个演示exe(传输语法),它附带我们免费的60天评估SDK,你可以用它进行测试。此外,还有一个用于测试DICOMWeb REST服务的演示。您可以从我们的网站下载评估版。

答案 1 :(得分:0)

没有一种解决方案完全适合所有人......

BZ2 基于以下原则:图像中经常出现的“颜色”(或灰度值,但我将使用“颜色”)在编码中使用比颜色更少的位编码很少见。因此,根据经验:图像越大,压缩比越好。

JPEG 是一种不同的方法,可将图像分解为图块并优化每个图块的编码。因此,压缩比对图像尺寸的依赖性小于对BZ2的影响。 JPEG有不同的风格(有损,无损,JPEG 2000,它可以为不同的目的创建不同的压缩数据序列,例如渐进式细化)。

在DICOM中有效但不受DICOM产品广泛支持的不太流行的压缩算法是:

RLE (运行长度编码) - 像素数据由颜色对和像素数量描述,因此当图像中有大的同质区域时,它会很好地压缩。在所有其他情况下,它正在增加“压缩”图像的大小

JPEG-LS - 我不知道它是如何在内部工作的,但它提供了无损算法和有损算法,您可以在其中控制信息的丢失(像素值的最大差异)压缩到原始像素值后)。据说比传统的JPEG有更好的比例,但由于它没有得到广泛的支持,我还没有在实践中使用它。

如果您不想根据图像类型选择压缩算法,JPEG-Lossless可能是一个很好的折衷方案。在典型的医学图像中,它实现了大约1:1的平均压缩比,与JPEG-2000相比更多。