Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

<Overfiend> Joy: Hey, I'm an asshole. Assholes emit odious gas. That's what we do.


devel / comp.protocols.dicom / Re: ParametricMapStorage + JPEG-XL ?

SubjectAuthor
* ParametricMapStorage + JPEG-XL ?Mathieu Malaterre
`* Re: ParametricMapStorage + JPEG-XL ?David Clunie
 `* Re: ParametricMapStorage + JPEG-XL ?Mathieu Malaterre
  `* Re: ParametricMapStorage + JPEG-XL ?Mathieu Malaterre
   `- Re: ParametricMapStorage + JPEG-XL ?h...@apteryx.fr

1
ParametricMapStorage + JPEG-XL ?

<a663ace2-8537-4cfc-b648-bb2fc00cb397n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=406&group=comp.protocols.dicom#406

  copy link   Newsgroups: comp.protocols.dicom
X-Received: by 2002:a05:620a:4706:b0:69c:2e0f:d01f with SMTP id bs6-20020a05620a470600b0069c2e0fd01fmr5772788qkb.631.1649838091062;
Wed, 13 Apr 2022 01:21:31 -0700 (PDT)
X-Received: by 2002:a05:620a:2808:b0:67d:730d:d4e4 with SMTP id
f8-20020a05620a280800b0067d730dd4e4mr5881106qkp.431.1649838090836; Wed, 13
Apr 2022 01:21:30 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.protocols.dicom
Date: Wed, 13 Apr 2022 01:21:30 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=2a01:e0a:343:1a00:1955:1c1d:cbe:49ee;
posting-account=5syELgoAAABMLWsjbxhk8Wo7CLxGgTPG
NNTP-Posting-Host: 2a01:e0a:343:1a00:1955:1c1d:cbe:49ee
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a663ace2-8537-4cfc-b648-bb2fc00cb397n@googlegroups.com>
Subject: ParametricMapStorage + JPEG-XL ?
From: mathieu.malaterre@gmail.com (Mathieu Malaterre)
Injection-Date: Wed, 13 Apr 2022 08:21:31 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 29
 by: Mathieu Malaterre - Wed, 13 Apr 2022 08:21 UTC

Dear all,

I would like your comments on the following issue. Currently ParametricMapStorage can only be stored as Native (uncompressed) Format. However there is on-going discussion to include JPEG-XL as possible new Transfer Syntax. Since JPEG-XL can store arbitrary 32-bit IEEE 754 single-precision floating point values losslessly, it would make sense to support ParametricMapStorage for this use-case.

The major issue is dealing with legacy implementation. There is only one defined mechanism to store Sequence of Fragments: use of Pixel Data (7fe0,0010) with Value Representation = OB. This will conflict with (7fe0,0008) OF (FloatPixelData) data element.

What would be a good path forward ? Extend (7fe0,0008) to support Sequence of Fragments ? Allow conversion from element (7fe0,0008) to (7fe0,0010) ?

For reference, here is my current simple attempt:

* http://gdcm.sf.net/pm-jxl

As mentionned in the README:

* http://gdcm.sourceforge.net/pm-jxl/README.txt

The original ParametricMapStorage was "borrowed" from dicom4qi project.

% du -sh *.dcm
5.1M paramap.dcm
720K paramap-jxl.dcm

Re: ParametricMapStorage + JPEG-XL ?

<6b77af85-c109-49fb-8300-fefa54dff2c6n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=408&group=comp.protocols.dicom#408

  copy link   Newsgroups: comp.protocols.dicom
X-Received: by 2002:a05:6214:508a:b0:440:f824:3d55 with SMTP id kk10-20020a056214508a00b00440f8243d55mr36042050qvb.26.1649856691559;
Wed, 13 Apr 2022 06:31:31 -0700 (PDT)
X-Received: by 2002:ad4:5be3:0:b0:441:7bd1:29bd with SMTP id
k3-20020ad45be3000000b004417bd129bdmr35825726qvc.14.1649856691333; Wed, 13
Apr 2022 06:31:31 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.protocols.dicom
Date: Wed, 13 Apr 2022 06:31:31 -0700 (PDT)
In-Reply-To: <a663ace2-8537-4cfc-b648-bb2fc00cb397n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=50.32.222.172; posting-account=rKkGZwkAAADOuxQ23uuHnmKt95j-5iL6
NNTP-Posting-Host: 50.32.222.172
References: <a663ace2-8537-4cfc-b648-bb2fc00cb397n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6b77af85-c109-49fb-8300-fefa54dff2c6n@googlegroups.com>
Subject: Re: ParametricMapStorage + JPEG-XL ?
From: dclunie@dclunie.com (David Clunie)
Injection-Date: Wed, 13 Apr 2022 13:31:31 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 56
 by: David Clunie - Wed, 13 Apr 2022 13:31 UTC

Hi Mathieu

Thanks for sharing the suggestion and the experiments.

Something like that would certainly be necessary if we are going to add compression support for floating point data. The same would theoretically be true for 64-bit floats in Double Float Pixel Data (7FE0,0009), even though there don't seem to be a whole bunch of 64 bit float codecs out there.

The presence, absence or improvement of the Basic Offset Table for would also need to be considered.

An interesting question is whether this effort is worthwhile though, in that the there may not be a pressing use case for lossy (irreversible) floating point compression, and lossless (reversible) compression of floating point data in an image-specific manner may not gain that much over a dumb approach like deflate applied to the whole dataset (or a better dumb codec than deflate like bzip2, if we were to add that as a new Transfer Syntax).

Anyway, something to raise with DICOM WG 4 if you want to join that group and pursue this.

David

On Wednesday, April 13, 2022 at 4:21:32 AM UTC-4, Mathieu Malaterre wrote:
> Dear all,
>
> I would like your comments on the following issue. Currently ParametricMapStorage can only be stored as Native (uncompressed) Format. However there is on-going discussion to include JPEG-XL as possible new Transfer Syntax. Since JPEG-XL can store arbitrary 32-bit IEEE 754 single-precision floating point values losslessly, it would make sense to support ParametricMapStorage for this use-case.
>
> The major issue is dealing with legacy implementation. There is only one defined mechanism to store Sequence of Fragments: use of Pixel Data (7fe0,0010) with Value Representation = OB. This will conflict with (7fe0,0008) OF (FloatPixelData) data element.
>
> What would be a good path forward ? Extend (7fe0,0008) to support Sequence of Fragments ? Allow conversion from element (7fe0,0008) to (7fe0,0010) ?
>
> For reference, here is my current simple attempt:
>
> * http://gdcm.sf.net/pm-jxl
>
> As mentionned in the README:
>
> * http://gdcm.sourceforge.net/pm-jxl/README.txt
>
> The original ParametricMapStorage was "borrowed" from dicom4qi project.
>
> % du -sh *.dcm
> 5.1M paramap.dcm
> 720K paramap-jxl.dcm

Re: ParametricMapStorage + JPEG-XL ?

<95e82e9f-bf46-4179-90f7-578aec3bbaben@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=409&group=comp.protocols.dicom#409

  copy link   Newsgroups: comp.protocols.dicom
X-Received: by 2002:a05:6214:20cb:b0:443:da69:ed48 with SMTP id 11-20020a05621420cb00b00443da69ed48mr8233336qve.131.1649860267928;
Wed, 13 Apr 2022 07:31:07 -0700 (PDT)
X-Received: by 2002:a05:6214:20eb:b0:441:4623:9459 with SMTP id
11-20020a05621420eb00b0044146239459mr36505049qvk.18.1649860267694; Wed, 13
Apr 2022 07:31:07 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!1.us.feeder.erje.net!3.us.feeder.erje.net!feeder.erje.net!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.protocols.dicom
Date: Wed, 13 Apr 2022 07:31:07 -0700 (PDT)
In-Reply-To: <6b77af85-c109-49fb-8300-fefa54dff2c6n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a01:e0a:343:1a00:1955:1c1d:cbe:49ee;
posting-account=5syELgoAAABMLWsjbxhk8Wo7CLxGgTPG
NNTP-Posting-Host: 2a01:e0a:343:1a00:1955:1c1d:cbe:49ee
References: <a663ace2-8537-4cfc-b648-bb2fc00cb397n@googlegroups.com> <6b77af85-c109-49fb-8300-fefa54dff2c6n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <95e82e9f-bf46-4179-90f7-578aec3bbaben@googlegroups.com>
Subject: Re: ParametricMapStorage + JPEG-XL ?
From: mathieu.malaterre@gmail.com (Mathieu Malaterre)
Injection-Date: Wed, 13 Apr 2022 14:31:07 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 19
 by: Mathieu Malaterre - Wed, 13 Apr 2022 14:31 UTC

On Wednesday, April 13, 2022 at 3:31:33 PM UTC+2, dcl...@dclunie.com wrote:
> An interesting question is whether this effort is worthwhile though, in that the there may not be a pressing use case for lossy (irreversible) floating point compression, and lossless (reversible) compression of floating point data in an image-specific manner may not gain that much over a dumb approach like deflate applied to the whole dataset (or a better dumb codec than deflate like bzip2, if we were to add that as a new Transfer Syntax).

This comment also applies for integer based compressor, why bother with JPEG-LS when you can simply gzip the octet stream. Based on my limited experiments:
1. I found JPEG-XL very powerful with color transform (even superior to the hp1/hp2/hp3 from the original LOCO implementation),
2. I believe there is a small use case where float point is in the range [0..0 - 1.0] is very neat to handle (implementation comes for free in most JPEG-XL implementation since rendering is perfectly defined)
3. gzip Transfer Syntax is pretty good for archival, but it is really bad at http-byte-range support (I believe there are some hack around to get things working). But in any case I see a natural fit for DICOMWeb and JPEG-XL (multi-frames).

Re: ParametricMapStorage + JPEG-XL ?

<40205756-66e2-40e9-80ca-9a5384eee136n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=410&group=comp.protocols.dicom#410

  copy link   Newsgroups: comp.protocols.dicom
X-Received: by 2002:a05:620a:6cc:b0:69b:dd1b:3235 with SMTP id 12-20020a05620a06cc00b0069bdd1b3235mr6984095qky.374.1649860772559;
Wed, 13 Apr 2022 07:39:32 -0700 (PDT)
X-Received: by 2002:a37:ba45:0:b0:69b:e728:34b7 with SMTP id
k66-20020a37ba45000000b0069be72834b7mr6795077qkf.606.1649860772361; Wed, 13
Apr 2022 07:39:32 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.protocols.dicom
Date: Wed, 13 Apr 2022 07:39:32 -0700 (PDT)
In-Reply-To: <95e82e9f-bf46-4179-90f7-578aec3bbaben@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a01:e0a:343:1a00:1955:1c1d:cbe:49ee;
posting-account=5syELgoAAABMLWsjbxhk8Wo7CLxGgTPG
NNTP-Posting-Host: 2a01:e0a:343:1a00:1955:1c1d:cbe:49ee
References: <a663ace2-8537-4cfc-b648-bb2fc00cb397n@googlegroups.com>
<6b77af85-c109-49fb-8300-fefa54dff2c6n@googlegroups.com> <95e82e9f-bf46-4179-90f7-578aec3bbaben@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <40205756-66e2-40e9-80ca-9a5384eee136n@googlegroups.com>
Subject: Re: ParametricMapStorage + JPEG-XL ?
From: mathieu.malaterre@gmail.com (Mathieu Malaterre)
Injection-Date: Wed, 13 Apr 2022 14:39:32 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 28
 by: Mathieu Malaterre - Wed, 13 Apr 2022 14:39 UTC

On Wednesday, April 13, 2022 at 4:31:09 PM UTC+2, Mathieu Malaterre wrote:
> On Wednesday, April 13, 2022 at 3:31:33 PM UTC+2, dcl...@dclunie.com wrote:
> > An interesting question is whether this effort is worthwhile though, in that the there may not be a pressing use case for lossy (irreversible) floating point compression, and lossless (reversible) compression of floating point data in an image-specific manner may not gain that much over a dumb approach like deflate applied to the whole dataset (or a better dumb codec than deflate like bzip2, if we were to add that as a new Transfer Syntax).
> This comment also applies for integer based compressor, why bother with JPEG-LS when you can simply gzip the octet stream. Based on my limited experiments:
> 1. I found JPEG-XL very powerful with color transform (even superior to the hp1/hp2/hp3 from the original LOCO implementation),
> 2. I believe there is a small use case where float point is in the range [0.0 - 1.0] is very neat to handle (implementation comes for free in most JPEG-XL implementation since rendering is perfectly defined)
> 3. gzip Transfer Syntax is pretty good for archival, but it is really bad at http-byte-range support (I believe there are some hack around to get things working). But in any case I see a natural fit for DICOMWeb and JPEG-XL (multi-frames).

For reference, using `% dcmconv --write-xfer-deflated paramap.dcm paramap-gz.dcm`. Here is what I get:

% du -sh *.dcm
5.1M paramap.dcm
1.3M paramap-gz.dcm
720K paramap-jxl.dcm

Re: ParametricMapStorage + JPEG-XL ?

<347a567d-eb86-43d0-9de0-39baa4752e79n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=411&group=comp.protocols.dicom#411

  copy link   Newsgroups: comp.protocols.dicom
X-Received: by 2002:a05:620a:3191:b0:69c:6841:263 with SMTP id bi17-20020a05620a319100b0069c68410263mr951599qkb.408.1649924611011;
Thu, 14 Apr 2022 01:23:31 -0700 (PDT)
X-Received: by 2002:ac8:7498:0:b0:2ed:c85:c9e1 with SMTP id
v24-20020ac87498000000b002ed0c85c9e1mr901157qtq.258.1649924610870; Thu, 14
Apr 2022 01:23:30 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.protocols.dicom
Date: Thu, 14 Apr 2022 01:23:30 -0700 (PDT)
In-Reply-To: <40205756-66e2-40e9-80ca-9a5384eee136n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2a01:cb04:cf:6e00:6d9:f5ff:fef7:76fe;
posting-account=9zxpKwoAAAAK0emwNpNFa5b9_tA2RobK
NNTP-Posting-Host: 2a01:cb04:cf:6e00:6d9:f5ff:fef7:76fe
References: <a663ace2-8537-4cfc-b648-bb2fc00cb397n@googlegroups.com>
<6b77af85-c109-49fb-8300-fefa54dff2c6n@googlegroups.com> <95e82e9f-bf46-4179-90f7-578aec3bbaben@googlegroups.com>
<40205756-66e2-40e9-80ca-9a5384eee136n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <347a567d-eb86-43d0-9de0-39baa4752e79n@googlegroups.com>
Subject: Re: ParametricMapStorage + JPEG-XL ?
From: hg@apteryx.fr (h...@apteryx.fr)
Injection-Date: Thu, 14 Apr 2022 08:23:31 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 14
 by: h...@apteryx.fr - Thu, 14 Apr 2022 08:23 UTC

The deflate transfer syntax, because it's the only one compressing non-pixel data elements, is a bit unique, and not handy in many use case.
Also decompressing (compressing too, I believe) using deflate cannot benefit from multi-core architectures.

OTOH, the fact that JPEG-XL includes floats but not doubles is really a pity. I wonder why the specifications didn't go this bit further.

Concerning the data element that could contain compressed float pixel data: using the original PixelData seems the most natural. There is already no relation between the underlying data type (eg signed 12-bits) and the VR (OB or OW). FloatPixelData and DoubleFloatPixelData were introduced because we needed data elements with the new FL and FD VR. Allowing encapsulated data in them would require to change their VR to OB when using an encapsulated transfer syntax.

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor