縁側 > カメラ > カメラアクセサリ > レンズ > CANON > EFマウント単焦点レンズ寸評
「縁側」-みんなが作る掲示板-からのお知らせ
縁側からのお知らせ

縁側をご利用いただく際のルール&マナー集を用意いたしました
ユーザーの皆様に楽しくご参加いただけるよう、主に投稿時の注意点などをまとめています。
ご投稿の前には必ずご一読をお願いいたします。詳しくはこちら⇒「縁側 ルール&マナー

紹介文

所有しているEFマウント(アダプタ経由除く)レンズについて
雑多 気まま 勝手に寸評してみます

ええー!とか そうそう 思ったら書き込んで下さい

  • EFマウント単焦点レンズ寸評の掲示板
  • EFマウント単焦点レンズ寸評の伝言板
  • EFマウント単焦点レンズ寸評の投稿画像
EFマウント単焦点レンズ寸評の掲示板に
EFマウント単焦点レンズ寸評の掲示板に新規書き込み

書くところがない表にスレたてると色々面倒だし
添削も面倒なのでここに書いちゃいます(笑)
レンズの話じゃなくてすいません


スレたてしても何なんでここに書いちゃう


1.まず入れ物

キヤノンのRAWってまず入れ物はTIFFです

入れ物って何かってことなんですけど
それを説明するにはまず「ファイルって何?」ってところから

ファイルっていうのは0と1のカタマリでしかありません
これじゃあ何が何だかわからないのでルールを決めます
例えばDPPに間違ってテキストファイルとか読ませて
CR2だと勘違いして展開されると大変なんで
頭の2バイト(0か1かが16個)の0000000000000000だったら
CANONのRAWだとか決めておきます

ちなみに0と1だけだと大変面倒なので普通16進数で話したりします
16進数なので0123456789ABCDEFと行ってFまで行ったら
繰り上がりです



で実際にはCR2はTIFFなのでまず最初の2バイトが「4949」
次は「002A」って決まってます(16進数)

さて頭4バイトが固定で次に何が書いてあるかって言うと
最初の「IFD」の場所がどこなのか書いてあります
4バイト分でその場所が書いてあるわけです
いわゆるアドレスってやつです

IFDとはImage File or Directoryのことで
EXIFみたいに「何が」「いくつ」というものが
いくつかセットになったカタマリです

ここまで(4949と002Aと最初のIFDのアドレス)をヘッダと言ってます



というわけで最初のIFDの場所に飛びます
例えば最初のIFDの場所が「0010」ならば
(16進数なので)17バイト目が最初のIFDの頭です

最初のIFDまで行ったらIFDの構造どおりに読み取っていきます
まず最初の2バイトに「タグ」が何個あるかが書いてあります

タグとは正にEXIFみたいに「F値 が 16」とか
そういう一つのカタマリです

実際には最初の2バイトでタグ名(番号)
次の2バイトでデータの型
次の4バイトでデータの長さ
次の4バイトが値

ということになっています

そしてIFDの最後には次のIFDのアドレスが書いてあります
なのでこの構造を繰り返すことでいくらでも情報を詰め込むことが
出来るわけです



さて肝心なのはタグの中身なんですが
これは何番が何かが決まっています

色んなものがあるんですがここではRAWの話なので肝心なところだけ
お話します

『タグ「273」StripOffset』これが肝心のRAWデータそのもののありかです
(16進数で「0111」です)

「RAWデータそのもの」というのはホワイトバランスだの
幅だの高さだのとかの付帯情報ではなく
RがいくつGがいくつBがいくつという実際の画素情報という意味です

StripOffsetの値(Value)に直接RAW本体が入ってるわけじゃありません
またまた「場所」が記載されてます
というわけでその場所に行ってようやく「RAW」にたどり着きます



2.RAW本体

さてこっからは自分も正確にはわかってません(笑)

先ほどの場所に何が入っているかだけ説明します
まず基本的にCANONのRAW(本体)は可逆圧縮されています

可逆圧縮といっても色々ありますよね
ZipだとかLZHだとか

CANONの場合はLosslessJpegというコーデックで圧縮されています
でじゃあそれで解凍すればいいかっていうとそう単純でも無い

まずRAW本体自体がいくつかに分割されています
恐らく読み出しチャンネル数で分割されているのでは?といわれています

でどのように分割されているかが先ほどの「タグ」のうち
「C640」に書かれています
で値(Value)は
分割数/分割後の幅ピクセル数/分割で半端がある場合は半端のピクセル数
という風になっています


3.まとめ

というわけでキヤノンのRAWをデコードするには

 1.まずRAWの場所を見つける
 2.分割数にしたがってロスレスJpegを取り出す
 (他にも実際にはRAWの幅とか深度とかも当然必要ですのでタグからとります)
 3.そのロスレスjpegを展開する

とこれだけやって取り出せるのはもちろんCFAデータ(カラーフィルタアレイ)
つまりRGGBのままのデータでまだ全然画像じゃありません

これをいわゆる補間したりホワイトバランスをあてたり
なんやかんやしてやっと画像となります



 
4.でっていう

まことしやかにRAWにNRとか色々言われてますが
この程度の構造を理解していれば
RAWにNRかけてるのでは?と疑うのは無理があるよなーと言いたくなる
はずだと思います

NRをかけるためにはわざわざ一回展開してぜーーんぶやってから
バイラテラルだかトリラテラルだか重み付けしつつボカす的なことをやって
それをさらに「わざわざRAWの形に戻す」ってことになります
(実際に静的に画像化したところで保存する必要は無いけど
計算の中身としてはそうなる)


なのでRAWにNRをかけるなら少なくともlosslessjpeg圧縮をかける前の段階で
GならGという風に(補間によって導きだされた仮想のGではない)
飛び飛びの画素どうしで何かしなくてはいけないと思います

そう考えるとハード側のなんらかの手助け無しにはやれないんじゃないか?
と思えます

そこで一つ思い浮かぶのが「カラムAD変換」です
SONY(NIKON)のCMOSで採用されているこの方式ですが
縦横一方読み出した段階で量子化されています

なのでCFAの並びにする前に手を入れやすいのは間違いなく
逆に言えばそういうことが出来ることに絶大なメリットがあるというのが
そもそものこの方式のメリットの一つなんじゃないかとなーと

2012/4/5 17:35  [197-70]   

 三車線左折中さん  

BABY BLUE SKYさん初めまして。

このスレを見て、前から気になっていた"DCRAW"のソースを見てみました。

詳細は全く理解できていませんが、DNGとCR2が同じようなルーチンを使って
デコード?しているみたいでしたが、作者も"完全ではないけど、DNGとCR2には十分"
みたいなことを言ってるようでした。

ロスレスJPEGのエンコード/デコードエンジンがどこかに落ちてるとRAW現像ソフトの
自作で色々と楽しめそうなのですが・・・

余談:
NETで探す範囲では、この辺りは外国語が当たり前になってきて結構大変だなと
思っています。
そーいえば、"DCRAW"はLinuxベースのソースなのでWinに持ってくるのはメンドーだ
とか、素人プログラマがやりもしないのに妄想しています。

2012/11/23 21:58  [197-74]   


この掲示板の新着スレッド

全員投稿可
EFマウント単焦点レンズ寸評
EFマウント単焦点レンズ寸評をお気に入り登録
運営者:
BABY BLUE SKYさん
設立日:
2010年3月29日
  • 注目度:

    529(お気に入り登録数:16件)

該当掲示板はありません

ページの先頭へ