我有一个关于DICOM标准和libjpeg库的问题。在DICOM标准中,除其他外,转移语法:
JPEG无损、无层次、一阶预测(进程14选择值1):无损JPEG图像压缩的默认传输语法
据我所知,这种传输语法符合JPEG-1损失格式.我开始研究libjpeg库,发现它不支持(?)无损JPEG,如下所述:DICOM中的JPEG无损
此外,在libjpeg文档中有一部分说:
不支持的 ISO选项包括:*分层存储*无损JPEG * DNL标记*非整次采样比率
但是,在库代码中,在压缩参数结构jpeg_compress_struct中有一个字段:
boolean lossless; /* TRUE=lossless encoding, FALSE=lossy */一切都意味着什么?我真的很困惑。有人能描述库支持哪些JPEG标准吗?此外,如何设置参数以使压缩与DICOM JPEG无损标准兼容?
发布于 2016-07-21 06:30:34
让我们先做一些澄清。您应该从著名的JPEG 6b (又名62)发行版开始。从从这里读取代码开始。您会发现没有提到您的boolean lossless。libjpeg 6b是提供两个分叉的参考代码库:
SmartScale扩展dcommander libjpeg-turbo,特别是阅读来自这里的评论。因此,如果这是您正在讨论的libjpeg,那么是的,它不支持标准中指定的无损模式。无损补丁是由创建的,您应该仍然能够找到它(例如。这里)。它应该直接适用于libjpeg 6b。如果您不想自己修补库,请快速查看GDCM和或DCMTK,因为它们都使用了libjpeg +著名的无损修补程序的方便副本(感谢DCMTK团队的进一步修补程序)。
在这一点上,这应该回答你的问题。
关于libjpeg (IJG)和libjpeg-turbo信息的更多细节,我建议您阅读以下信息:
如果您还在阅读,我希望您也可以快速查看另一个库(故意),也称为libjpeg,在github这里可以看到它。特别是查看README文件(这里)。您将发现,这个libjpeg是完全实现ITU-81(有损的、无损的、8/12/16位甚至分层的所有代码都在一个代码中,而不需要进行多个编译!)
为了完整起见,我发现以下链接非常有用:
https://stackoverflow.com/questions/38391049
复制相似问题