JPEG画像がデファクトスタンダード
デジタル画像のページでビットマップ画像はデータ量が大きすぎてそのままでは使いにくいので圧縮技術を使ってデータ量を小さくしていることは述べました。
画像の圧縮技術はいくつか存在します。(別の機会に述べます)
ほとんどのデジタルカメラ、スマートフォン内蔵カメラは、JPEG形式で画像を保存します。(中・高級機ではRAWデータ形式保存や、ごく一部のデジカメではTIFF形式で保存可能な機種も存在します)またAppleのiPhone8以降の内蔵カメラは独自形式のデータ(heic)でiPhone内に保存しています。データを他のストレージにコピーしたり添付して送るときにJPEG変換しているようです。 つまりJPEG形式がデファクトスタンダード(事実上の標準)です。なおheic形式に関しては別に書くつもりです。
JPEGを知ることから始まる
Digital image Forensicsデジタルイメージフォレンジック「デジタル画像の真贋鑑定」はJPEGを知ることからはじまります。
JPEG に関して詳しく解説すると1冊の本で足りるかどうかの量になります。(運営者に詳細説明の能力はありません)
当サイトではJPEGの全体像と、真贋鑑定≒フェイク画像を見破るために重要な事項の解説にとどめます。 JPEGの概要は知っているという方は読み飛ばしていただいてかまいせん。(メタデータは理解してください)
JPEGとは
JPEG(Joint Photographic Experts Group)とは静止画像データの圧縮方式の一種です。規格を制定した組織の略称が方式名として使用されています。
拡張子はJPGかjpeg が使われます。(WEB・写真や・デザインの現場では、一般的にjpgが使われ、iPhone(iOS)が絡んでくるとjpegの拡張子のデータが出てきます。
JPEGの最大の利点は、ビットマップ画像で書いた1677万色=フルカラーを扱えることと保存時に画像サイズを約半分から10分の1程度に縮小できます。品質を下げると100分の1近くまで圧縮も可能です。
欠点としてJPEGは非可逆圧縮技術であり、一度保存すると最高品質保存であっても元には戻りません。必ず劣化します。(圧縮の度合い、下記に詳細)
JPEGデータの構造
JPEGのファイルの中身は上のイメージです。あくまでも理解のための図であって、実際のデータは、数値と記号の集合体です。
重要、イメージデータ本体以外をメタデータ(データのためのデータ)と言います
セグメントとは、JPEGのファイル情報を種類別に分けた一つの領域の事です。
セグメントそのものと中の情報は、デジカメ撮影時・画像加工ソフトウエアで加工し保存した時・クラウドに保存・メール添付した時などに書き込まれます。逆にWEBにアップした時などに一部削除されます。
セグメントには名前(APPタグ)が付けてあり、
必須セグメントには量子化テーブル定義とかハフマン表とか重要な情報が書いてあり、この情報が無いとJPEGとして開けません。
APP-0にはJFIFという互換性アップのための情報とサムネイル画像が保存(ない場合もある)されています。
APP1という部分にExifデータが格納されています。
他のセグメントはメタデータのところで解説しますが、 デジタル画像の真贋鑑定 ではAPP12やAPP14が重要な役割を持ちます。
デジカメのJPEGデータの規則性
デジタルカメラやその他の画像撮影機器のJPEGデータには次の規則性があります。画像の縦横比が、3:2 4:3 5:2 1:1 16:9のいずれかに一致します。
(特殊な産業用カメラや、古いガラパゴス携帯のカメラなどには異なる比率で撮影できるものがあるかもしれません。)
ピクセルサイズが8の倍数になります。JPEGの計算上(離散コサイン変換)8×8ピクセルのブロックが基本になり 離散コサイン変換が適用されます。 例iPhone1200万画素カメラの長辺画素数4032×短辺画素数3024pxを8で割ると504:378になりきれいに割り切れます。
上記2つの特徴から外れる画像データは、トリミングと言われる画像の切り抜き加工が施されています。
圧縮保存に関して
JPEGは圧縮技術と書きました。この圧縮の度合いは、固定されたものではなく、Quality90%とか品質83%とか%で表わされます。
JPEG Qalityの%(圧縮率)も、Digital image Forensicsの重要な手がかりになります。( PhotoShop には独特の保存方式がある)
ただややこしいのはAdobe PhotoShopは保存時に0低画質~12最高画質の数値を選択するようになっています。
(メール添付やWEBサイトにアップしただけで圧縮されることがある)
保存時の劣化度合いは、大まかにいうとJPEG Q uality90%程度であれば、目視では劣化は、ほとんど感じません。80%程度になると注意してみると劣化がわかるようになります。 留意点は 保存を繰り返すと加速度的に劣化することです。数式通りではありませんが、90%で1回保存し、80%で再保存すると、元画像の72%程度まで下がります。
JPEG画像の劣化
前の項の圧縮すると品質が下がるは画像が劣化するのはお分かりいただけると思います。画像劣化は保存だけでなくピクセルサイズ変更時に大きくなります。画像サイズ縮小・拡大時とトリミング(切り抜き)時です。
例えば100×100pxの画像を10×10pxに縮小した場合、100×100=10000の点(ピクセル)で表示していた情報を10×10px=100(ピクセル)の点だけで表現しなければなりません。大幅に情報を間引きする必要があるわけです。
元画像からピクセルを間引きして縮小画像を作りだすのと、さらに人間の目があまり感じない成分を差し引いたり、同じ色の部分の情報を省略記述して保存すると劇的にサイズを小さく保存(圧縮保存)できます。サイズ変更・圧縮保存の度合いが大きいと、画質は低下します。情報を間引き(ピクセルを間引き)すると輪郭を表示しているピクセルも当然減ります。
鮮明さが失われるため鮮鋭化(輪郭強調等)の処理が行われます。また色の差が大きくなって階段状になったピクセルの色を混ぜるような補間処理も行われます。
画像サイズを拡大する時は、存在しない画素を上下左右の画素のデータ(各種の方式がある)を使い疑似的に作り出して使います。これを補間処理と言います。 画像サイズを拡大 すると鮮明さがなくなりぼやけた画像になります。そのため高確率でシャープ加工がおこなわれこれも画質劣化の元になります。( PhotoShop には、近年スーパー解像度という機能が追加されました)
参考資料
JPEG圧縮英文サイト https://www.fileformat.info/mirror/egff/ch09_06.htm
数式まで知りたい方向け 圧縮アルゴリズムJPEG法 (1)