浮動小数データの量子化

浮動小数の image はロスレス圧縮できる場合もあるがノイジーな image は往々にしてあまり圧縮できない。 有用な情報を損ねずにノイズ除去できれば高圧縮も可能となる。 ノイズ低減のための一般的なテクニックとして浮動小数値を前節の式(10)で量子化された整数にスケーリングする手がある。 指定量のノイズ低減のための効果的なアルゴリズムは White & Greenfield (1999) と Pence et al. (2009) に述べられている。 それによれば ZSCALE の値は image のバックグラウンド領域で測った RMS ノイズのある割合 $ Q$ から計算される。 Pence et al.(2009) は各ピクセル値に含まれるノイズのバイナリ bit 数は $ log_2(Q)+1.792$ となることを示した。 $ Q$ 値は圧縮ファイルサイズに直接影響し、$ Q$ を半分に減らせばピクセルあたり 1 bit ファイルサイズを減らせる。 従って高圧縮を達成するには image に要求される測光的・位置天文的精度を保ちつつ最小の $ Q$ を使えばよい。

天体 image にこのスケーリング法を適用する時の潜在的問題は image 中の faint 領域の光度測定時にシステマチックなバイアスが生じる可能性があることだ。 image の量子化が粗いと sky のバックグラウンド領域の測定光度は直近の量子化レベルにバイアスがかかるだろう。 こうした潜在的なバイアスを低減する効果的テクニックの 1つが、量子化のプロセス中にランダムノイズを導入し量子化されたピクセル値をディザリングすることだ。 このためには全てのピクセルを単に式(10)でスケーリングする代わりに少し改良した次式で量子化レベルをランダマイズすればよい。



$\displaystyle I_i = \mathrm{round}\left (\frac{F_i - \mathtt{\texttt{ZZERO}}} {\mathtt{\texttt{ZSCALE}}} + R_i - 0.5\right )$     (11)

ここで $ R_i$ は 0.0 から 1.0 の間の乱数で 0.5 を引くことで平均値を 0.0 にしている。 元の浮動小数に戻すには同じ $ R_i$を使って次のようにすればよい。



$\displaystyle F_i = ((I_i - R_i + 0.5) * \mathtt{\texttt{ZSCALE}}) + \mathtt{\texttt{ZZERO}}.$     (12)

この引算ディザリングテクニックを使う肝は、整数に量子化する時と浮動小数に戻すときに正確に同じ乱数系列を使うことであり、こうした再現可能な疑似乱数系列生成のアルゴリズムは Standard 4.0 の Appendix I にある。



Subsections

Osamu Kanamitsu
2019-02-15