Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prototype Add HTJ2K TransferSyntax to GDCM #5020

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

blowekamp
Copy link
Member

@blowekamp blowekamp commented Dec 6, 2024

Relates to #3983

PR Checklist

  • No API changes were made (or the changes have been approved)
  • No major design changes were made (or the changes have been approved)
  • Added test (or behavior not changed)
  • Updated API documentation (or API not changed)
  • Added license to new files (if any)
  • Added Python wrapping to new files (if any) as described in ITK Software Guide Section 9.5
  • Added ITK examples for all new major features (if any)

Refer to the ITK Software Guide for
further development details if necessary.

@github-actions github-actions bot added type:Infrastructure Infrastructure/ecosystem related changes, such as CMake or buildbots area:IO Issues affecting the IO module area:ThirdParty Issues affecting the ThirdParty module labels Dec 6, 2024
Copy link
Member

@dzenanz dzenanz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of this should eventually go into GDCM upstream?

Modules/ThirdParty/GDCM/src/gdcm/CMakeLists.txt Outdated Show resolved Hide resolved
@dzenanz dzenanz mentioned this pull request Dec 6, 2024
7 tasks
@blowekamp
Copy link
Member Author

Some of this should eventually go into GDCM upstream?

Yes this should definitely go upstream. This effort was less than expected to get something functional, but there are likely details in the DICOM specs that I am not aware of that may may it more complicated for complete decoding support.

@thewtex
Copy link
Member

thewtex commented Dec 9, 2024

Great!!

TSField == MPEG4AVCH264BDcompatibleHighProfileLevel4_1
TSField == MPEG4AVCH264BDcompatibleHighProfileLevel4_1 ||
TSField == HTJ2KLossless ||
TSField == HTJ2KRPCLLossless
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

E.g. IsLossless() will return false for HTJ2KLossless, isn't it? Something is wrong here.

P.S. Just FYI, I don't plan to step into this stuff (I don't use GDCM / GDCMIO for my app), sorry.

@issakomi
Copy link
Member

Yes this should definitely go upstream.

AFAIK, upstream GDCM has internal OpenJPEG version 2.3, decoding of HTJ2K requires 2.5. Just FYI.

DICOM Supplement 235 describes HTJ2K Transfer Syntax.

OpenJPEG>=2.2 supports decoding HTJ2K. Update GDCM with additional
HTJ2K transfer syntaxes and use existing JPEG200Codec to decode.
Clarify documentation for support compression types for writing.
Added test images from:
https://www.aliza-dicom-viewer.com/download/datasets

These may be a little large.
@blowekamp
Copy link
Member Author

Draft of GDCM changes submitted upstream: malaterre/GDCM#187

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:IO Issues affecting the IO module area:ThirdParty Issues affecting the ThirdParty module type:Infrastructure Infrastructure/ecosystem related changes, such as CMake or buildbots
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants