2017年7月21日金曜日

不可逆なJPEG圧縮で足元を見られる人間たち【回路、デジタル自己満説明】

専門外の方に回路、コンピュータの動作原理を解説し興味を持ってもらうためのカテゴリ。
ホームページ、ブログを作る際に大抵使用するのが画像。そのうちのJPEG画像について少しだけ詳しく解説してみました。

話の内容

○JPEG圧縮ってどんな圧縮

ブログを書いてると図を使って伝えたい、きれいな写真を見せたいなど画像を使用することがよくあります。結構興味を持たれてる方をお見受けしますので、最もよく使用するJPEG画像(拡張子が.jpg、.jpeg)について少し詳しく解説してみます。


画像の容量ってデッカイんだ

このカテゴリ「デジタルの世界って」の二記事価値ある情報-画像データデジタルはデータが膨大で、コンピュータが画像というものをどう記録しているかを紹介しています。

“画素(ピクセル、ドット)”一つ一つに対して何色?とすべて記録してあるものが画像ファイル。“何色”を表すためには通常はR(赤)G(緑)B(青)の三要素で表し、RGBそれぞれ256段階で表すものを24ビットカラー(1600万色)=8ビット(256段階)X3と呼んでいます。
32ビットカラーという設定がパソコンの設定にありますが、メモリのバス幅が32ビットなのでそう呼んでるだけで24ビット以外の残り8ビットは使用していません。(αチャンネルとして使用するグラフィックカードは存在するらしいですが。)

最近流行の4Kテレビの1画面(3840X2160ドット)の情報量(容量)は、
38402160X8ビットX323.7MB

大容量メディアと呼ばれたCD-Rに30枚しか入らない大きな情報量です。たかが写真一枚でそんなに大きいとインターネットや通信上でやり取りするのが大変です。

そこで、画像圧縮という方法を使用して容量を小さくします。圧縮方法の内、最も一般的なのが不可逆圧縮の一つ、JPEG圧縮。


JPEGはふきゃぎゃきゅ圧縮

皆さんもご一緒に。
とーきょーとっきょきょきゃきょきょ!
ごめんなさい。ガラにもなくふざけてしまいました。

上のようにバカ正直にすべての情報を保持していたらとてもじゃないですがパンクしてしまいます。そこであることに目を付けます。

上で書いた記録方法は機械の表現。でも、画像を見るのは人間の目。人間の目は少し事情が違います。魚から爬虫類、哺乳類と歩んできた人間の目は色の明るさ成分には敏感ですが、色の違いに対してはすごく鈍感という特徴があります。

そこで、RGBを別の表現Y(明るさ)Cb(青の色差)Cr(赤の色差)で表します。これはRGBの値をある変換式に代入し計算するだけなのでRGBYCbCrはそれぞれ1対1に対応します。

が、大事なのは、Y(明るさ)成分を取り出していること。Y(明るさ)成分の違いは人間の目が敏感な成分、逆に色を表すCb(青の色差)Cr(赤の色差)の違いは鈍感な成分。

そこで、人間様の目が厳しい明るさ成分は先ほどのようにバカ正直に全画素を記録、人間様の鈍感な色の成分は周辺画素一まとめにした平均値だけ(例えば8コX8コ=64コ)記録しておいて、同じ色として表示してやれば騙せるんじゃね?

これがJPEG圧縮。“圧縮”という表現を使っていますが、“欠落”させていると言う方が適切かもしれませんね。と言うわけでJPEGは元には戻せない“不可逆圧縮”方式と呼ばれています。


ブロックノイズで実感

文章では分かりにくいので、実際のJPEG画像を見ながら記録されているデータを見てみます。以下がJPEG特有のブロックノイズ。圧縮率をガンガン上げて↓の画像を作ってみました。

不可逆圧縮であるJPEG画像の圧縮率を一番下げてブロックノイズがどんなものか確認する。

この四角形のドット数を数えてみると8コX8コでした。この画像全域にうっすら現れているのにお気付きでしょうか。(分かりにくい部分もありますが。)

この四角形内部は先ほど書いたCb(青の色差)Cr(赤の色差)は同じ値であるとして表示しています。違うのはのY(明るさ)値だけ。ブロック内部に黒線が走ってたりしますが、あくまでブロック内は同じ色で黒線部分はY(明るさ)を最小値にすることで表現されています。

つまり、先ほどの例では、
すべての画素に対してR(数値)G(数値)B(数値)と3つの数値を記録
していたのに対し、JPEGは、
すべての画素に対してY(数値)を記録し、8X8=64コに一つだけCb(数値)Cr(数値)を記録

こうすることで、記録しないといけない数値の数が格段に減ります。=容量が激減。

ここでは最も圧縮率の大きな汚い画像(8コX8コ)を例に出しましたが、その大きさを調整してやることで人間の目には綺麗に見えるが、容量が小さい画像ファイルとして利用できます。

それがJPEG画像です。
綴りをみてお気づきかと思いますが、動画のMPEGファイルも同じように色情報を欠落させています。(MPEGは動画なのでさらに画像の移り変わりの部分でさらに情報を欠落させる技術も採用。)


前回、あくどい人間たちは機械に嘘八百並べてこき使っているという話を書きましたが、機械は「どうせお前ら気付かねーんだろw」とこうやって足元を見て仕返しをしています。
ぉーぉー、嫌だ、嫌だ、キツネとタヌキの化かし合い、おーっほっほっほっほっ。


話の内容

こんな話でしたが内容は伝わりましたでしょうか。
○JPEG圧縮ってどんな圧縮


ポク太郎の「俺の説明聞いてくれ」-デジタルの世界って
前の記事次の記事
素直でケナゲな機械とあくどい人間たち執筆中…


スポンサーリンク



ブログ村へ blogramのブログランキング

ポク太郎の「俺の説明聞いてくれ」 コンテンツ
ポク太郎の「俺の説明聞いてくれ」最キラー記事 コンピュータ(ハード/ソフト)
映画・ドラマ・芸能
変人のつぶやきとトラブル
ホームへ戻る


0 件のコメント:

コメントを投稿