こんにちは、I.Tak.です。 From: Hidemi KAWAI <kawai !Atmark! imasy.org> Subject: [osask 6709] Re: Jenny2. Date: Sun, 30 Nov 2003 00:24:02 +0900 > > i*は入力に対して忠実だが、n*はコントラストが強くなってい > >る、というのが私の見解です。入力をx軸、出力をy軸にしてプロッ > >トすると分かると思いますが、i*の方が全体的に誤差が小さくなり > >ます。 > > その見解は一理あります。 ということは、コントラストを強くしているという認識はしているわけ ですね。川合さんはそれを「めりはりがある」と評価しているわけです。 しかし、それは誤解です。コントラストを強くする処理はかなり慎重に 行わなければなりません。n8でめりはりが出るのは中間色の部分だけであり Noiz2_BGのように明るい画像を減色するとかえってめりはりが損なわれます。 暗い画像の場合も同様です。 画像全体の輝度分布を分析するのでもない限り、無暗にコントラストを 操作するのは危険です。上下の部分が飽和して全然リニアじゃなくなります。 本当にリニアなのはi8の方です。 > 僕の方式はそもそも誤差という考えがないのです。最終的にパレット > でどの色に変換されるかということをほとんど考えず、リニアなものを > リニアに変換しようというだけです。最大がffだとか最小が00だという > ことには全く関心がないわけです。画面モードが違えば、同じ00で同じ > 暗さにならないかもしれませんし、ffにも同じ事がいえます。だから僕 > は気にしないことにしました。 i8の実装は、「入力最大値と出力最大値を一致させるリニア変換」とも 言えます。その点ではn8と同じです。 画面モードが違うと同じRGB値でも違う値になるかもしれないと言って RGB値が変わってもいいやと最初から投げ出すのは問題がある姿勢だと思い ます。減色ルーチンに求められているのは「RGBで入力しRGBで精度良く出力 すること」なのではないのでしょうか。そうであるならパレットの設定を 考慮して減色しなければなりません。 川合さんは基本発想がどうのとかパレットを変えたらどうのとか机上の 空論を振り回している気がします。一体、画面モードによって発色が大い に変化するモニタがあるのですか。OSASKのパレット設定を毎回ころころ 変えたりするのですか。 > 僕は高速性も確かに重要だと思います。でも、高速モードが別にある > 以上、変換速度によほどの大差が付かない限りは、「変換結果の見栄え > の良い(=元の絵を見てうける印象に近い)」アルゴリズムを使おうと > 思います。プログラムやアルゴリズムが美しいかどうかは別です。誤差 > が大きいか小さいかも全く考えていません。 誤差が大きい減色処理をしたら受ける印象もまるで変わってしまいます。 逆に「受ける印象が元の絵に近い」減色処理はすなわち誤差の少ない 減色であるはずです。客観的に「近さ」を評価する手段も、誤差の大きさ によるしかありません。 > パレット8個しか使わない件に関しては、結局、入れたらかえって汚 > くなるから入れないということであって、それ以外の理由はありません > (汚いというのは、印象が違うという意味です)。だから特定の色にだ 上記のように、印象が近い減色結果は誤差も小さいはずであり、したが って部分的に階調を細かくすると受ける印象がかわってしまうという意見 は誤りだと思います。i4による富士の裾野の減色結果が元に近いというこ とは川合さんも認められたはずです。空の色に悪影響があるのはi4の実装 が悪いだけで、これは改善可能です。 ところで私が分析した結果、n8とi8は多少の違いしかないことが分かり ました。その違いとは四捨五入と切り捨てです。どちらも、入力値に適当 な係数をかけて、それから丸めているだけです。少なくとも、そういう 方法で実装できます。だから、発想がどうのとかいう話はi8とn8の比較で は無意味です。結局、同じようなところに行き着いたのです。 I.Tak. <g240845 !Atmark! mail.ecc.u-tokyo.ac.jp> http://user.ecc.u-tokyo.ac.jp/~g240845/