【问题标题】:compress dicom files to be sent to a remote server压缩要发送到远程服务器的 dicom 文件
【发布时间】:2016-07-21 05:07:25
【问题描述】:

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

我尝试了 bz2 压缩,它似乎在处理大型 dicom 文件时效果很好(用 10 Mb 文件对其进行了测试,这给了我一个 5Mb 的压缩文件)。

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

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

提前致谢。

【问题讨论】:

  • 您想如何通过互联网传输文件? DICOM C-STORE 还是专有协议?你在说什么类型的图像?彩色/灰度、分辨率?
  • 感谢您的回复,通过http post进行传输,我不确定dicom类型,是否有适用于任何类型的自适应无损压缩方法(?)

标签: image compression dicom bzip2 dcmtk


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    BZ2 是基于图像中经常出现的“颜色”(或灰度值,但我将在本说明中使用“颜色”)编码的比特比颜色少的原理,很少见。因此,根据经验法则:图像越大,压缩率越高。

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

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

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

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

    如果您不想根据图像类型选择压缩算法,JPEG-Lossless 对您来说可能是一个不错的折衷方案。在典型的医学图像中,它实现了大约 1: 的平均压缩比,使用 JPEG-2000 会更高。

    【讨论】:

    • JPEG-Lossless 在大多数情况下可以达到大约 1:2 有时 1:3 的压缩比。对于医学图像,JPEG-Lossless 很常见,而 JPEG-LS 和 JPEG-2000 则不然。
    猜你喜欢
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 2021-07-06
    • 2013-06-05
    • 2016-11-25
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多