人間の視点、JPEGの視点 デジカメで撮った写真を見ていると、たまに飛び抜けてファイルサイズが大きい画像が混じっている。写真趣味の人や、ウェブ制作している人なんかにはおなじみの光景だろう。

旅行中に撮った写真を見返していると、同じカメラ、同じ画質設定で撮ったJPEGでも、ファイルサイズに2倍以上の差が出ていた

なぜ同じ設定でもファイルサイズが大きくなるのか。それは単純に言えば、JPEGにとって「圧縮しづらい」写真だからである。JPEGは画質を保ったまま画像サイズを小さくするための技術だけど、どんな画像でも一律に圧縮できるわけではなくて、被写体によって得手不得手がある。



ここで面白いのは、JPEGにとって苦手な画像が、すなわち人間にとって苦手な画像……というわけでは全くない、というところである。

たとえば木漏れ日が美しい庭園の写真。自分ならつい見とれてしまうけど、JPEGからすると「やめてくれ～」というレベルで嫌な（圧縮しづらい）被写体だったりする

同じ風景を見ていても、鳥や昆虫の目で感じられる世界は、人間の感覚とは違っている。それと同じように、「JPEGの目だけに感じられる世界」というのがあるのだ。あとで紹介するけれど、JPEGは森が苦手だし、光が乱反射した水面なんかも辛そうだ。逆に人間には直視できないような激しい閃光なんかは、待ってました！ とばかりに楽々と圧縮してしまう。



私たちが普段見ている何気ない風景が、JPEGの目にはどう映っているのだろう？ そこには人間とは全く違った価値観が存在しているはずだ。この記事では、人間的な物の見方はいったん忘れて、JPEGになった気持ちで周りを見渡してみたい。

「JPEG圧縮しづらい度」を測るカメラ とはいえ、人間にはJPEGの気持ちが分からない。厳密にはJPEGも人間が発明した技術なので、仕組みを知っていればある程度は予想できる。でもそうやって分かった風な気持ちになるのが一番よくないのだ。もっと真摯な気持ちでJPEGに寄り添うべきである。



というわけで、測定器をつくってみた。

この箱がそう。正面にはカメラが付いていて、これを被写体に向けると

背面の小さなディスプレイに「JPEG圧縮しづらい度」が表示される

JPEG圧縮が簡単な被写体を見せると、数値は小さくなる。「こんなのは楽勝！」っていう声が聞こえる

逆にJPEG圧縮が難しい被写体を見せると、苦戦している様子が見てとれる。なんとなく「ぐぬぬ……」って言ってる気がする

この測定器は「バウリンガル」（犬の気持ちを解析する装置）みたいなものだ。人間には分かりづらいJPEGの気持ちを代弁してくれる、まさに人間とJPEGとのコミュニケーションツールである。

仕組みは単純で、「JPEG圧縮が超簡単な画像」のファイルサイズを0%、逆に「超難しい画像」のファイルサイズを100%として、いま見えている景色がどれくらいのファイルサイズになるかを0～100%で表示している。ちなみに箱の中身はRaspberryPi

これがあれば、街の見え方が一変するはずだ。我々は第三の目として「JPEGの目」を得たのだ。それに何の意味があるのかは深く考えてはいけない。街に出よう。

JPEG圧縮しづらい風景とは？ とその前に、「どんな風景がJPEG圧縮しづらいか」という傾向をあらかじめ知っておきたい。すでにうっすらと紹介済みではあるのだけど、大ざっぱに言うとJPEGは「ごちゃごちゃした風景」が苦手である。

JPEGは「すっきりした風景」が得意で、「ごちゃごちゃした風景」が苦手

デジタル画像の世界では、人間の目には感じにくい（変化しても気付きにくい）情報だけを削ることで、あまり画質を落とさずにファイルサイズをグッと縮めている。



一般に利用されている目の特性としては、例えば「緑の変化に比べて、赤や青の変化には気付きにくい」だったり、「明るさの変化に比べて、色の変化には気付きにくい」といったものがある。まさに人間に最適化された技術であり、「え、これに気付いた人すごい……」って月並みなことをいつも思っている。



そういう特性のひとつに「低周波成分の変化に比べて、高周波成分の変化には気付きにくい」というのがある。JPEGではこれを利用し、画像内の高周波成分を削ることで圧縮を実現している。しかし高周波成分が多すぎると、削りきれずに圧縮率が落ちてしまうのだ（かなりざっくりした説明）。

先ほどの説明をより正確な表現に言い換えると、「高周波成分が多い風景」が苦手、ということになる。なんとなーく、画像から雰囲気が分かってもらえれば

JPEG圧縮しづらい風景を探す

そんなわけで、測定器を持って公園にやってきた。さっそく測定を開始する

まわりの人は気付いていない「秘密」が、測定器を持った自分にだけ見えている。この何気ない散歩道が、かなりJPEGに厳しいことを君は知っているか

この日の天気が良すぎるせいもあってか、色とりどりの花を撮影すると、いきなりメーターが振り切れてしまった（想定していたMAXサイズを超えた）。いきなりこの仕打ちとは、なんてJPEG圧縮しづらい公園なんだ……。軽くめまいがする

そんなときは、ふいに空を見上げる。どこまでもJPEGに優しい、おだやかな世界が広がっていた

現実世界を「JPEGの目」で見る。やっているうちに、これってAR（拡張現実）なんじゃないかと感じ始めた。どういうことかと言うと、

なんとなく厳しそうな被写体が分かっているので、こういう森があると近づきたくなる

測ってみると、やはりJPEGにとっては辛い景色が広がっている

いや、でもこんなもんじゃないだろう。もっといけるはずだ。そう思って、いまより数値が高いところを無意識に探し始める

微妙にカメラ位置をずらしながら探っていくと、さらにJPEGに厳しいアングルを発見！ この特に意味のない数値の増加が、なぜだか無性にうれしいのだ

これって客観的にみると、目には見えない何かを探しているのと同じである。「測定器の数字」というすごく抽象化された情報を頼りに、数字が増える場所を探し歩く。でも手がかりが何もないわけではなくて、より「ごちゃごちゃした風景」を探せばいいという指標が与えられている。



つまりこの測定器を持つことによって、どこにも存在しないものが見えているのだ。自分の視界とは違うレイヤーの情報が頭の中に構築され、それを頼りに現実世界を動き回る。これってまさにAR的だなあと感じたのであった。

頭の中では、よりJPEG圧縮しづらい風景へといざなう導線が見えている。普段は気にも留めない地面のジャリジャリした部分も、無意識のARによって発見できた

強い被写体、弱い被写体 「JPEGの目」で見ると、JPEG圧縮しづらい被写体は、すなわち強い被写体である。圧縮に抗う力が強いので、JPEGにとってみれば強敵ということになるのだ。

「強い」「弱い」という尺度を導入すると、物体を見るのが面白くなる。見るからに強そうな太陽の塔、おまえは一体どれほどの強さなんだ？

測定器はズームができないため、少し近づいて測定。「戦闘力……たったの36%か……」 予想通りではあるけれど、見た目に反して弱い被写体だった

これってまさにスカウターである。目に見えない、そして人間には分からない被写体の強さが見える。昔「バーコードバトラー」という、バーコードを読み込ませて戦うゲームがブームになった。あれに倣うならば「JPEGバトラー」といったところか。

ちょうどいいところにガンダムとザクがいた。どっちが強いか「JPEGバトラー」で決着をつけよう

まずはガンダム。戦闘力（あえてそう呼ぶ）は43という、まずまずの強さ

対するシャアザクはというと、わずかに及ばず戦闘力40

戦闘ではなく「JPEG圧縮のしづらさ」で勝敗をつける世界線があったなら、この勝負は接戦のすえガンダムに軍配が上がる（背景部分の差もあるので、厳密ではないけれど）。



この理屈でいくと、ものすごく緻密なデザインにすればするほど強くなるだろう。全身にノイズが乗った「ノイズマン」というキャラを出したら、間違いなくそいつが一番強い。さらにノイズがランダムで動く「ホワイトノイズマン」が出てきたら、JPEGだけでなくH.264みたいな動画圧縮も相当つらくなる。だからどうした、という話ではあるが。



JPEG圧縮で寿司の価値を決める JPEGにとっての価値観は、人間の持つ価値観とはほとんど相関がないはずだ。たとえば高級な寿司を見たとして、JPEGにはその良さが分かるだろうか。いや、きっと分からないだろう。

回転寿司にやってきた。人間が考える寿司の価値、それは皿の模様を見れば分かる。500円の皿（に乗っている寿司）には、500円の価値があるのだ

一方で、JPEGにとっては寿司なんてどうでもいいはず。きっと「皿の模様がどれだけ圧縮しづらいか」によって、強い寿司か弱い寿司かを区別するだろう。果たしてこの500円皿は、JPEGにとっては価値があるのか否か

自分で言っていて意味が分からなくなりかけている。結局のところ、すでに人間によって価値が決められている回転寿司の皿を、新しい価値観「JPEG圧縮のしづらさ」によって順位付けしてみよう、ということだ。

具体的には、100円～500円までの各皿について「圧縮しづらさ」を測定していった

期待していたのは「500円の皿よりも、100円の皿の方が強い！」みたいな、人間の価値基準とは無関係な世界である。しかし蓋を開けてみると……

なぜか、皿の値段とJPEG圧縮しづらさとの間に相関があった。偶然にしても出来すぎである

皿の模様をJPEG圧縮しづらい順に並べると、偶然にも寿司の値段と一致してしまった。この寿司屋は、JPEG圧縮しづらい順に皿の値段をつけていることが分かった。もともと特に意味のない調査なので、何の教訓も得られない空虚な結論である。



とはいえ、この結果には少し違和感がある。自分の考えるJPEG圧縮しづらさとのズレを感じたので、追調査してみた。

100円の皿は、細くて明暗差の大きい線がいっぱい入っている。JPEG圧縮しづらそうに見えるのだけど……

測定器に写っていたのは、薄暗くてピントの合っていない皿だった（実際の写真）。白い被写体の影響で露出がアンダーになり、さらにカメラ性能の問題で近距離でのピントが合わず。それらが原因で数値が下がってしまったようだ

一方、500円の皿がやけに圧縮しづらいのはなぜか。どうやら黒っぽい皿は蛍光灯の光を反射して輝度ムラができるため、白っぽい皿よりも圧縮しづらいという理屈のようだった

この測定器はカメラなので、被写体の写り方や撮影場所によって測定値に影響が出る。たとえば暗いところで撮影すると感度が上がってノイズが増え、結果として圧縮難度が上がったりする。厳密さを求めるならば、改良すべき点はいろいろとあるのが見えてきた。

一番JPEG圧縮しづらかった風景 最後に、私が公園をうろうろして探し回った結果、一番JPEG圧縮しづらかった風景を紹介したい。

これが一位の、日光が照りつける芝生だ！ 測定器の設計が悪くてメーターが振り切れてしまったが、％に直すと「135％」に相当する

ちなみに、最も「JPEG圧縮しやすい景色」がこれだった。ちょっと反則っぽい気もするので、自然物のなかで一番を探すなど、対象を限定した方が見つけ甲斐があるかも

目に見えない概念でも、考え方次第では遊びに変えることもできるのだ。

いずれこの測定器を持ったみんなで集まって、JPEG圧縮しづらい場所を一緒に探したりしてみたい。きっと探索の末に「日本記録」となる場所が発見されたり、いきなりJPEG圧縮しづらい服装の人が現れてパニックになったりと、いろんなことがあるのだろう。妄想するだけでも楽しい。