1

私は、異なるフォーカス プレーンの画像が取得され、現在複数ページの tif 内に保存されているアプリケーションに取り組んでいます。残念ながら、tif ベースの圧縮技術は、異なるフォーカス プレーンでの信号の冗長性の恩恵を受けません。

これに関するリソースをいくつか見つけました ここ ZPEG および ここ JPEG2000 Addon

残念ながら、それらはすべて標準からかけ離れています。

このシナリオで優れた圧縮率を実現できるビデオ コーデックがあるのではないかと考えていました。

私は他のアイデアも非常にオープンです。

4

2 に答える 2

1

tiff の問題は、ベースラインでコンポーネント間の非相関がサポートされていないことです。他のファイル圧縮形式 (完全な JPEG2000 JP2 ファイル、拡張子 0x8798 など) を格納できる拡張子 (あまり広くサポートされていない) がいくつかありますが、標準のデコーダーがそれを正しく処理することは保証されていません。

必要なツールを使用できる場合、最適なコーディング パフォーマンスに近いものは、適切なスペクトル相関除去変換 (非可逆圧縮用の KLT と可逆圧縮用の RKLT - http://gici.uab.cat/GiciWebPage/downloadsを参照) で得られる可能性があります。これらの変換の Java 実装の場合は.php#spectral )、次に JPEG2000 などの優れた圧縮アルゴリズムを使用します。一方で、このアプローチは実装が少し複雑で、KLT/RKLT 変換が原因で遅くなる可能性があります。

他のより単純なアプローチは、スペクトル相関除去のために DWT で JPEG2000 を使用することです。たとえば、Kakadu の実装 (kakadusoftware.com) を使用する場合、圧縮時に適切なパラメーターを使用するだけで済みます。ここにhttp://kakadusoftware.com/wp-content/uploads/2014/06/Usage_Examples.txtから抽出された呼び出しの例があります。

Ai) kdu_compress -i catscan.rawl*35@524288 -o catscan.jpx -jpx_layers *
             -jpx_space sLUM Creversible=yes Sdims={512,512} Clayers=16
             Mcomponents=35  Msigned=no  Mprecision=12
             Sprecision=12,12,12,12,12,13  Ssigned=no,no,no,no,no,yes
             Mvector_size:I4=35 Mvector_coeffs:I4=2048
             Mstage_inputs:I25={0,34}  Mstage_outputs:I25={0,34}
             Mstage_collections:I25={35,35}
             Mstage_xforms:I25={DWT,1,4,3,0}
             Mnum_stages=1  Mstages=25
-- Compresses a medical volume consisting of 35 slices, each 512x512,
   represented in raw little-endian format with 12-bits per sample,
   packed into 2 bytes per sample.  This example follows example (x)
   above, but adds a multi-component transform, which is implemented
   using a 3 level DWT, based on the 5/3 reversible kernel (the kernel-id
   is 1, which is found in the second field of the `Mstage_xforms' record.

-- To decode the above parameter attributes, note that:

   a) There is only one multi-component transform stage, whose instance

      index is 25 (this is the I25 suffix found on the descriptive

      attributes for this stage).  The value 25 is entirely  arbitrary.  I

      picked it to make things interesting.  There can, in general, be

      any number of transform stages.

   b) The single transform stage consists of only one transform block,

      defined by the `Mstage_xforms:I25' attribute -- there can be

      any number of transform blocks, in general.

   c) This block takes 35 input components and produces 35 output

      components, as indicated by the `Mstage_collections:I25' attribute.

   d) The stage inputs and stage outputs are not permuted in this example;

      they are enumerated as 0-34 in each case, as given by the

      `Mstage_inputs:I25' and `Mstage_outputs:I25' attributes.

   e) The transform block itself is implemented using a DWT, whose kernel

      ID is 1 (this is the Part-1 5/3 reversible DWT kernel).  Block

      outputs are added to the offset vector whose instance index is 4

      (as given by `Mvector_size:I4' and `Mvector_coeffs:I4') and the

      DWT has 3 levels.  The final field in the `Mstage_xforms' record

      is set to 0, meaning that the canvas origin for the multi-component

      DWT is to be taken as 0.

   f) Since a multi-component transform is being used, the precision

      and signed/unsigned properties of the final decompressed (or

      original compressed) image components are given by `Mprecision'

      and `Msigned', while their number is given by `Mcomponents'.

   g) The `Sprecision' and `Ssigned' attributes record the precision

      and signed/unsigned characteristics of what we call the codestream

      components -- i.e., the components which are obtained by block

      decoding and spatial inverse wavelet transformation.  In this

      case, the first 5 are low-pass subband components, at the bottom

      of the DWT tree; the next 4 are high-pass subband components

      from level 3; then come 9 high-pass components from level 2 of

      the DWT; and finally the 17 high-pass components belonging to

      the first DWT level.  DWT normalization conventions for both

      reversible and irreversible multi-component transforms dictate

      that all high-pass subbands have a passband gain of 2, while

      low-pass subbands have a passband gain of 1.  This is why all

      but the first 5 `Sprecision' values have an extra bit -- remember

      that missing entries in the `Sprecision' and `Ssigned' arrays

      are obtained by replicating the last supplied value.
于 2016-01-11T13:35:27.447 に答える
1

これは別のアプローチです。クロスプレーンの冗長性を空間的な冗長性に変えてから、標準の画像圧縮を使用します。

最も簡単な方法では、すべての平面から幅× 1 ピクセルのストリップを取り、それらを積み重ねるだけです。画像として、それは奇妙な方法で垂直方向に汚れて見えます. これを DCT ブロック (該当する場合) と並べて、ブロックを通る鋭い水平エッジを回避するのが最善であるため、プレーンを複製して (通常は) 8 プレーンの倍数にパディングする必要があります。最小限のエネルギーでパディングを最適化することで、もう少し多くを得ることができますが、それは複雑ですが、複製はすでにかなり良くて些細なことです.

フィルタリングされていない可逆圧縮では明らかにうまく圧縮されませんが、適切なフィルター (アップ、平均、パス) を使用した PNG は機能するはずです。

于 2015-12-23T21:30:15.240 に答える