DICOM中的JPEG无损

时间:2015-01-13 00:49:52

标签: jpeg dicom pillow

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

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

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位都没有。从技术上讲,12bits有损应该是可能的,但是因为它需要重新编译大多数发行版而不发布这个库。

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

我有一个类似的问题,我以这种方式使用@JohnnyQ提示解决了

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

您还可以使用pip install ...安装 gdcm 枕头。 看看https://pydicom.github.io/pydicom/stable/image_data_handlers.html