【问题标题】:JPEG Lossless in DICOMDICOM 中的 JPEG 无损
【发布时间】:2015-03-10 21:18:50
【问题描述】:

DICOM spec 中,传输语法之一是1.2.840.10008.1.2.4.70,定义为JPEG Lossless, Nonhierarchical, First- Order Prediction (Processes 14 [Selection Value 1])

“JPEG 无损、非分层、一阶预测(过程 14 [选择值 1])”是什么意思?这种格式是否与 JPEG-LS 相同? This page 似乎表明存在一些差异(JPEG-LS 列在底部)。

是否可以在 Python 中读取或写入这种格式?查看Pillow 的文档对我来说并不清楚该格式是否受支持。

This post is somewhat relevant.

【问题讨论】:

    标签: jpeg dicom pillow


    【解决方案1】:

    JPEG 无损一阶

    Identical to the main JPEG lossless, but with a constrained value for the
    predictor, giving a slightly simplified algorithm, with slightly greater
    speed, but slightly less compression on most images (2-5% typically)
    (from medicalconnections wiki)
    

    您可以查看 GDCM 来编码 jpeg 压缩的 dicom 图像。 GDCM Wiki Link

    【讨论】:

      【解决方案2】:

      JPEG Lossless 和 JPEG-LS 是非常不同的图像压缩实现。 JPEG 无损在标准文档中定义:ITU-T T.81、ISO/IEC IS 10918-1,而 JPEG-LS 在 ITU-T T.87、ISO/IEC IS 14495-1 中定义。

      JPEG-LS 是一种与所有其他 JPEG-* 压缩系列非常不同的方法,因为在其有损形式中,它设置为与原始像素的最大偏差。因此,您可以从输入文件生成有损 JPEG-LS,其中生成的像素与原始像素之间的最大差异为 -say- 2。

      UNIX 上的大多数工具包最初不支持 JPEG Lossless,因为算术编解码器存在一些专利问题:

      因此,IJG(又名 libjpeg)是 ITU T.81 的一个非常有限的实现,并且默认情况下仅在 UNIX 分发中提供标准的有损 8 位压缩形式(顺序和渐进,但 not hierarchical)。有损 12 位和无损 16 位均不可用。从技术上讲,12 位有损应该是可能的,但由于它需要重新编译,大多数(全部?)发行版不提供这个“双”库。

      在使用新的libjpeg-turbo 实现时,上述所有内容也是正确的,因为 libjpeg-turbo 只是原始 libjpeg(准确地说是版本 6b)的优化(二进制兼容)版本。

      【讨论】:

      • 是否有任何库可以处理 ITU-T T.81、ISO/IEC IS 10918-1 无损解码?我知道 GDCM 可以,但它需要一个完整的 DICOM 文件,而不仅仅是图像数据。
      • @AlexRothberg GDCM 在某种程度上是模块化的,因此您可以将 GDCM 中使用的 JPEG 库完美地重用于您自己的项目(这都是很好的 BSD 风格许可证)
      【解决方案3】:

      DICOM 提供了支持 JPEG-LS 图像压缩的机制,并且 DICOM 标准 PS 3.5 附件 A 定义了两种不同的传输语法,它们引用了 JPEG-LS 标准 (ISO/IS-14495-1 (JPEG-LS Part 1)。传输语法UID 为“1.2.840.10008.1.2.4.80”的语法是无损的(位保留),而 UID 为“1.2.840.10008.1.2.4.81”的传输语法是有损(近乎无损)压缩方案。

      【讨论】:

        【解决方案4】:

        我遇到了类似的问题,我通过这种方式使用@JohnnyQ 提示解决了:

        conda install -n myenv -c clinicalgraphics gdcm
        conda install -n myenv -c anaconda pillow
        

        你也可以使用pip install ...来安装gdcmpillow。 看看https://pydicom.github.io/pydicom/stable/image_data_handlers.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-11-18
          • 2014-09-28
          • 2011-09-06
          • 2013-02-07
          • 2013-06-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多