v2.2.6 — Transfer-syntax negotiation list + backend/lossless reporting fixes
·
61 commits
to main
since this release
Shared transfer-syntax negotiation token list for dicom-retrieve/dicom-qr, plus two reporting-accuracy fixes (--backend, dicom-compress info lossless state). No association-negotiation or encode-behavior changes — this release only corrects what tools report and what token lists they offer.
Added
TransferSyntax.negotiableImageSyntaxTokens/negotiableImageTokens(DICOMCore) is now the single source of truth for the transfer-syntax lists offered bydicom-retrieve/dicom-qr— the negotiation analogue ofCompressionManager.supportedCodecs()(dicom-compress) andDICOMConverter.cliTokens(dicom-convert). Every token round-trips throughTransferSyntax.parse().- The DICOMStudio CLI Workshop
dicom-retrieve/dicom-qrpickers and the CLI--transfer-syntaxhelp now derive from that shared list, adding the previously-missing JPEG-LS, JPEG XL, and JPEG 2000 Part 2 (plusexplicit-vr-be,deflate,jpeg-extended,jpeg-lossless-sv1) syntaxes the old hand-maintained lists stopped short of. - CLI Workshop: the
dicom-converttransfer-syntax dropdown now shows the short kebab aliases (e.g.jpeg2000-lossless,htj2k-lossy) instead of CamelCase, matching the other tool pickers. The CLI resolves the alias identically, so generated commands are unchanged.
Fixed
dicom-compress info: for theboth-capable general J2K/HTJ2K/JXL UIDs (.91/.93/.203/.112),isLosslessand the transfer-syntax display name are now derived from Lossy Image Compression (0028,2110) instead of the UID-level flag, which always reported "Lossy". A file reversibly encoded into a general UID now reportsTransfer Syntax: JPEG 2000 Lossless/Lossless: Yesconsistently instead of contradicting itself.--backendreporting now reflects the backend an encode actually dispatches to, not the best available hardware. Metal (GPU) is only used for genuinely lossy JPEG 2000/HTJ2K encodes (the lossless GPU path isn't bit-exact on 12/16-bit medical data), soauto/--backend metalpreviously reported "Metal (GPU)" for lossless/non-J2K encodes that actually ran on the CPU. An explicit--backend metalrequest that can't use the GPU is now downgraded with an explanatory note.CodecBackend.accelerate.displayNamereports "Accelerate (CPU)" instead of the stale "Accelerate (not available)" now that the old J2KAccelerate SIMD probe has been removed upstream (J2KSwift v11.0.0) while Accelerate itself remains available.