Wednesday, January 28, 2009

Firefoxのレンダリングの謎

いきものみっけ」のプロジェクトで、調査結果報告のグラフィックを作成し、それを報告サイトに掲載したところ、Photoshopはもとより、ローカル環境で画像を見ることができる、あらゆる画像プレビューアプリケーションでも問題なく表示されていて、さらにウェブブラウザとして、IEでも、Operaでも、Chromeでも、とにかくすべてでまったく問題なく表示されているJPEGファイルが、なぜかFirefoxの上だけで、薄い色の部分がちゃんとレンダリングされずに横筋のボーダーが入った状態で表示されてしまうという事象が起こって、今日の午後、すこしバタバタした。

左のサムネイルをクリックしてもらったら、問題を起こしたJPEGファイルを見てもらえますので、これをFirefoxとIEの両方で開けて見較べてみてください。ええぇ?っていう状態が確認してもらえると思います。でもこれは僕のところだけで起こっている問題というか、僕の環境が悪くて引き起こしている問題かもしれず(環境はWindows XP SP3です)、どこがー?って感じで問題が確認できない可能性もあるので、いま起こっている状態をキャプチャして右下に掲示しておきます。んで、なぜそうなったのかの本当のところは今も謎のままなのですが、Photoshopからの書き出し時点で、何かFirefox的にレンダできない何かの圧縮コーディング記述があったとしか考えられません。問題が起こっているJPEGファイルは、CS3のPhotoshopから「最高品質・圧縮100%」で書き出しで起こっています。念のため同じ元PSDファイルをCS2のPhotoshopで開け、同じ「最高品質・圧縮100%」設定で書き出したところ、問題は回避されました(わかんねー)。

その両方のJPEGファイルのどこが異なったコーディングになっているのかを確認しようと思って、両方のファイルをエディタでリ・コンパイルしてみたところ、Firefoxでのレンダリングでも問題のないCS2で書き出したファイルは、284,173バイトでコードは1,776行で書かれていました。一方、問題を起こしたファイルの方は、284,408バイトありながら、コードは1,734行で書かれていて、問題ありの方がコード的には短縮(圧縮)されているのがわかりました。明らかにコード量は問題ありの方が短いのに、そっちのほうがファイルのバイト数が多いってのもわかんないんですが、そういう事がわかったからと言って何も解決したわけでもないし、こうしたほうがイイというTIPSがあるわけでもありません(すみません)。IEや他のブラウザでは起こらないような、この微妙な差が何なのかもわかりません。だけど、他のブラウザと違って、Firefoxのレンダリングエンジンだけは、何か違うコトが起こる可能性があるということだけはわかったので、エントリーとしてここに残しておきます。今後、ウェブで使用する場合は、書き出したJPEGファイルをFirefoxで問題がないかを確認するのを必須としていきたいと思います。何か情報があったら教えてください。よろしくお願いします。

6 comments:

  1. Firefoxのバージョンは、以下です。「Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5」。関係者に色々検証してもらいましたが、問題が認識できないという場合もありました。とにかく謎って感じですが、Firefoxの画像のレンダリングエンジンには癖があるかもってことで、はい。

    ReplyDelete
  2. いつも読ませてもらってます。非常に勉強になるポストばかりで大変勉強させてもらってます。

    さて、画像の件。Photoshopの最高品質でも色の組み合わせによってはブロックノイズがでることがあるのでそういう場合はPNG 24bitを使用するのがいいと思います。
    Firefoxだけという点は、確信できませんが、プロファイルが関係してるかも知れません。
    http://internet.watch.impress.co.jp/cda/special/2008/06/27/20073.html

    それよりも、海洋の部分の英字ですがAtrantic Oceanではなく、Pacific Oceanですね。
    さらに言うとAtranticではなくAtlantic です。よけいなおせっかいかもしれませんが。。。
    これからもblog楽しみに読ませていただきます。

    ReplyDelete
  3. ぱぱぱぱぱ、ぱしふぃーっく!そうです。あれー!なんで気づいてなかったんだろー。ていうか、なんでアトランティックやねん。さらにスペルも全然違うじゃんよー(大汗;)。ってことで速攻で修正かけさせましたので公開されているものはすぐに直ると思います。

    お名前がわかりませんが、ご指摘ありがとうございました。

    今日は朝から撮影で、ずーっとスタジオにこもってましたので、オフラインでコメントを頂いているのに気づきませんでした。返信が遅くなってしまってすみません。ありがとうございました。

    で、そもそもの画像の件ですが24bitのPNGがよさそうですね。JPEGがどういう圧縮をしているのか、仕様書とか読んでみたんですが良くわからなかったので、いま僕が手掛けてるSIGMAさんのカメラの技術の方に聞いてみたら、JPEGはYCbCr(輝度Y・色差Cb:Cr)をデフォルトでは4:2:2で圧縮してるみたいなんです(一般的なデジカメが記録するJPEG写真なんかも、すべて4:2:2のようです)。で、このYCbCrに変換した後に、色差情報を2:2と半分間引くところにブロック型のパターンを持ってるようで、絵によってはそのパターンが出てしまう場合がある、ということでした。でもFirefoxだけに出た、というところは、いまだに謎であります…。

    ReplyDelete
  4. パシフィックオーシャンの修正が反映されますた。「ツクツクボウシ」が「ツクツクモウシ」になってたりしたのも修正。まいったなぁ。以後、ホントに気をつけよう…。
    http://www.mikke.go.jp/result/2008/summer/kumazemi.html

    ReplyDelete
  5. マップにある「茨城」の英語が「IBARAGI」になってますが正しくは「IBARAKI」かと。
    茨城県民としてはちょっと気になったり...。

    ReplyDelete
  6. ずがーん。ぼろぼろやな(泣)。だれも校正してないというこの体制…。反省します。ご指摘、ありがとうございます。とはいえいまロケ撮影に出てしまっていて、再来週まで修正できませんが、戻り次第、修正したいと思います。信蔵

    ReplyDelete