あぷらなーと


あぷらなーとの写真ブログ
by あぷらなーと
あぷらなーと
「自然写真大好き」
HNあぷらなーと が

いろんな写真ネタを
のんびり語ります。

気合い入れすぎると
続かないので、
「ぼちぼち」いきます。

生息地:香川・徳島
カテゴリ
最新のコメント
> kem2017さん ..
by supernova1987a at 23:18
子供の科学は読んでなかっ..
by kem2017 at 16:39
> オヤジさん オヤジ..
by supernova1987a at 07:38
あぷらなーとさんも、子供..
by オヤジ at 06:19
> kem2017さん ..
by supernova1987a at 23:59
藤井旭先生の「星雲星団ガ..
by kem2017 at 21:40
> にゃあさん 設..
by supernova1987a at 02:22
> HIROPONさん ..
by supernova1987a at 23:13
もっと気軽に遊べるソフト..
by にゃあ at 23:01
> kem2017さん ..
by supernova1987a at 22:58
以前の記事
お気に入りブログ

2016年 10月 03日 ( 1 )

ASI1600MC-COOLの謎③

★最新のDelphiでは

以前使っていたDelphiから10年以上が経過していますので当然進化しているのですが、細かいことでちょっと感動したのが、エディタのブロック強調表示機能。
昔、印刷したソースコードを読む時に、どこからどこまでが1ブロックなのかを見やすくするため、よく手書きで線を入れていましたが、最近のエディタは賢いのですね。なんと、勝手にブロックを認識して線を引いてくれるとは!
f0346040_04420549.jpg
近年プログラミングから完全に遠ざかっていたので、びっくり。これだけでもバグが減りますね。「Delphiリハビリ」中の身としてはありがたい♪



★読み取り段階で致命的ミス

前回、まさかのBigEndianで記録されていることが発覚したASI1600MC-COOLのFITSデータですが、よく見ると輝度分布が変なことに気づきました。
ベイヤーFITSから、RGBそれぞれの素子についての輝度データを分離して読み出すところまでは成功したのですが、幅広く分布を見るために対数表示させてみると
f0346040_04495629.jpg
ぎゃー!
これ、絶対にバグってますよね。ちょうど3万2千あたりでどの色も不連続になっているのが分かります。
あ〜あ。完全に「見切った」と思っていたんですが、甘かったようです。

グラフをよく見ると、左半分のトーンカーブがちょうど左右逆転してるような印象。
ベイヤー画像を表示させると所々諧調が反転してるように見える現象が起こっていたのは、これが原因のようです。



★そもそも符号付き16ビット整数とは・・・・

よくよく調べてみると、そもそも符号付き16ビット整数の値は、そのままの値ではなく2の補数表現で記録されていることが判明(汗)。・・・これはもう、「FITSがどうのこうの」という以前の根本的な勘違いでした。
まず正の数、これは普通に記録されているだけです。
ところが、負の数は、次のような手順で記録されていることが分かりました。

 ①絶対値をとる
 ②絶対値を普通に2進数で表す
 ③最上位ビットに0を記録する
 ④全ビットの数値を反転(0は1に、1は0に)させる
 ⑤1を加算する

したがって、ASI1600MC-COOLが出力した値から32768を引いた数値はそのまま記録されるのでなく、さらに補数表現に変換されているというわけです。
たとえば、13298という輝度データは、BZEROシフトで-19380と変換された後、さらに補数表現変換して46156と記録されているのです。

こ、こんなん思いつかんわ~!!(泣)



★というわけで、読み込みのロジック考え直し

というわけで、今度こそ正しい値を読めるようにロジックを考え直します。
変な汗をかきながら(笑)すっかりアホになっている頭で計算した結論だけを書くと、

<前回までに考案した『誤り』ロジック>
最上位ビットが1なら上位バイトから128を減じたのち符号反転
下位バイトについても符号反転

<今回修正した新ロジック>
上位バイトについて、最上位ビットが1なら256を減じるのみ
下位バイトはそのまま

たった、これだけで復元できることが分かりました。
興味のある人はあんまり居ないかもしれませんが、前回「大ウソ」を書いちゃったので、流れを載せておきます。
f0346040_20213600.jpg


★今度こそ!!

早速、読み込みプログラムに上記のロジックを実装して走らせてみます。
f0346040_20223896.jpg
f0346040_20225600.jpg

おお、ブラボー!!
見事につながった♪


たぶん、これで大丈夫でしょう。ベイヤー表示もウソのようにきれいになりました。




★ASI1600MC-COOLの新たな謎

さて、12ビットでADCを駆動したASI1600MC-COOLはデータを吐き出すときに16ビットに変換しているのですが、いったいどのように変換しているのでしょう?

 ○4ビット分は空データ?
 ○16ビットの空間に「散らす」?
 ○それとも何らかの形で「補完」してる?
 ○色チャンネルによって差はある?


こればかりは、ステライメージでトーンカーブ見て(グラフが荒すぎて)分かりません。

・・・で、1ステップごとに輝度分布が見れるようなコードを書いて、RGB各色ごとに解析してみた!

★★★以下続きます★★★


by supernova1987a | 2016-10-03 20:34 | 天体写真 | Comments(4)


タグ
最新の記事
記事ランキング
ファン
ブログジャンル
画像一覧
外部リンク