JPEGの画質劣化の神話と、JPEGが劣化しやすいアドビフォトショップなどのアドビ系ソフトの独自JPEG解析保存機能: JPEGかRAWか Degradation of Jpeg File

Oda Nobunaga
11 min readJan 1, 2024

--

JPEG画像は保存を繰り返すと、劣化するという話、実際は画像編集ソフトが、JPEGの標準規格に従わないことでも起き、画像編集ソフトが劣化を加速している場合もあるのが普通という話

というのもアドビのソフトは、Jpegを再保存を繰り返すと画質劣化させやすい構造で、そのアドビのソフトが大部分標準として使われているのが現状だから

カメラ情報サイトFstoppers

About JPEG Images and Their Quality Degradation

by Nando Harmsen December 5, 2019 61 Comments

アドビのソフトを使って、一回以上JPEGの再保存をすると、JPEG画像が目に見えて劣化するという話

コメント欄には MITの教授もやっていたことがある、

Fredo Durandさんがコメントしていて、

Apparently one factor is that Photoshop tries to do some magic when opening a JPEG file to try to reduce JPEG artifacts. When iterating the combination of JPEG lossy compression and Photoshop’s magic fix, you end up with an unstable system. Otherwise, JPEG on its own would converge to a fixed point that would not have these types of artifacts. You can find a good discussion at https://www.hackerfactor.com/blog/index.php?/archives/355-How-I-Met-Your...(上記FSTOPPERS記事より)どうやら、原因の 1 つは、JPEG ファイルを開くときに Photoshop が JPEG アーティファクト(ゴミ)を軽減するために何らかの魔法を実行しようとすることです。 JPEG 非可逆圧縮と Photoshop の魔法の修正の組み合わせを繰り返すと、システムが不安定になってしまいます。そうでないとすれば、JPEG 自体が固定点に収束し、このような種類のアーティファクト【ゴミ】が生じなくなります。 https://www.hackerfactor.com/blog/index.php?/archives/355-How-I-Met-Your... で優れたディスカッションを見つけることができます。

と、アドビがJPEG画像をよく見せようと小細工をすることが、アドビのソフトでJPEGを再保存すると、変な四角いブロックのようなゴミができる理由と指摘

JPEGは、例えば情報234のものであれば、四捨五入で、230、あるいは239を240に変換して、保存データ数の量を減らします まあ人間の目には分からないのですが、アドビのソフトは、よりそれを正確に表現しようとして、230とJPEGのデーターになっているものを、本当は、226だろうとかに解釈することがあり得、この場合、繰り返しJPEG保存するときにアドビのソフトは、226と解釈した、元の230のデーターを220とかで保存することもあり得、逆に元のJpegの画像を壊して人間の目におかしく見える場合があると以下で説明

Now the problem is that when photoshop reads your image, it tries to be smarter than what the JPEG standard says you should do. JPG says: just add zero to the first two digits, that’s it (again I am way oversimplifying here). Photoshop thinks: JPG tells me that the first two digits are 23 and I am going to try to be super smart to guess what the true number is and make things “look better” based on secret sauce. In many cases it may guess, say, 229 or 234 and that’s fine. But it may go overboard and guess 237 (apparently it does not even try to guess a number that actually rounds to 23.) Now when you save, it gets rounded to 240 instead of 230. And this kind of error apparently tends to accumulate, because the next round your 240 may be guessed as, say, 246m, etc.ここで問題となるのは、Photoshop が画像を読み取るときに、JPEG 標準で定められている処理よりも賢く処理しようとすることです。 JPG では、最初の 2 桁に 0 を追加するだけです、それだけです (ここでもかなり単純化しすぎています)。 Photoshop は次のように考えます。JPG は最初の 2 桁が 23 であることを、私に教えてくれるので、私【フォトショップ】は実際の数字が何であるかを非常に賢く推測し、秘密のソースに基づいて物事を「より良く見せる」つもりでいます。 多くの場合、たとえば 229 や 234 などを推測しても問題ありません。 しかし、行き過ぎて 237 を推測する可能性があります (実際には 、23* に【Jpeg画像データ規格で定められた決まり事で】四捨五入される、数値(234-225)を、推測しようともしないようです)。【こうしたわけでアドビのフォトショップでJPEGを】保存すると、【データーは本来あるべき】230 ではなく 240 に換算されます。そして、この種のエラーは明らかに【繰り返し保存作業で】蓄積する傾向があります。 なぜなら、次のラウンドでは、あなたの[Jpeg画像のデータ] 240は、たとえば 246などと推測されるかもしれないからです。

と、MITでJPGの講義を行っていた彼は説明

GIMPや他のソフトでは、アドビのフォトショップほど保存を繰り返したJPEGの画質が荒れることは少ないだろうとし

より正確さを求めるなら、

libjpeg

を使うだろうと言っています

まあ、アドビ系のソフトは、Jpegの保存を繰り返すと、妙に画質劣化が早いことは以前から報告があり、

のサイトでは、他のソフトで500回再保存を繰り返してもほぼ劣化がわからないJPEGの画像を、アドビのPhotoshopで20回くらい保存すると、

写真の女性の壁の明るいところがより明るく、暗いところがより暗くなるブロックノイズの出現といった画質の変化が生じることを報告

以下https://www.hackerfactor.comの上の記事How I Met Your Mother Through Photoshopから引用

Photoshop does some undocumented, proprietary magic to make high frequency areas appear a little sharper. (I think they are trying to mitigate loss from JPEG artifacts.) I’ve known about this for a few years and call it “rainbowing” — it is a separation between the red and blue color channels that shows up during an error level analysis. (It’s a tell-tale sign that an Adobe application, like Photoshop, was used.) Gimp does rainbowing a little; Photoshop does it a lot. Photoshop は、高周波領域を少し鮮明に見せるために【アドビによって公開】文書化されていない独自の魔法を実行します。 (JPEG アーティファクトによる損失を減らそうとしているのだと思います。) 私はこれについて数年前から知っており、これを「レインボー」と呼んでいます。これは、エラー レベル分析のときに現れる赤と青のカラー チャネル間の分離です。 (これは、Photoshop などの Adobe アプリケーションが使用されたことを示す証拠です。) Gimp では、少し虹色が見えます。 Photoshop は【赤と青の分離になること】をたくさんやってくれちゃうんだよね。

Now we have multiple JPEG resaves plus something other than JPEG happening between each resave. That “something other than JPEG” from Photoshop is enough to keep the image degradation from terminating after a dozen or more resaves.これで、複数の JPEG 再保存が行われ、各再保存の間に JPEG 以外の何かが発生します。 Photoshop の「JPEG【で定められた】 以外の【得体のしれない処理】もの」は、十数回あるいはそれ以上再保存した画像の劣化を進行させるには十分なんです。

以下の動画は500回再保存を繰り返したJpegの画質劣化とされる動画ですが、本来のJPEG標準規格ではありえない劣化であり(ブロックノイズが出るのはJPEG規格での劣化ではありえない)、JPEG標準規格を部分的に無視していると思われるアドビのフォトショップ系以外のソフトでは、こんな劣化は出ないというのが上の記事の検証

High Quality JPEG Recompression Artifacts — 500 saves

アドビのソフトは、JPEG標準処理ではないので、画像によっては、JPEG再保存による劣化が、最高画質にしても、他のソフトより早く、更に本来あり得ないブロックノイズが出るという話は、2024年のアドビのフォトショップでやっても同じという、当ブログの追従実験も行いました

--

--