プロが教える店舗&オフィスのセキュリティ対策術

皆様、お世話になります。

JPEG画像に何らかの変更を加えて、再度JPEGで出力すると
当然もとの画像より劣化します。
これはJPEGデータをレタッチソフトで開いた時に展開し
出力するときに再度圧縮するからです。
これを展開→(編集)→圧縮ではなく圧縮データのまま
編集することはできないのでしょうか?

圧縮のアルゴリズムを解析すれば、中間で展開する必要はない
と思うのですが?また、ブロック単位で手の加えられていない部分
をそのままコピーすることはできないのでしょうか?

駄文で申し訳ありませんがよろしくお願いいたします

A 回答 (6件)

編集の内容にもよりますが、


バイナリエディタ等で編集してみては?
    • good
    • 0

>JPEG画像に何らかの変更を加えて、再度JPEGで出力すると


>当然もとの画像より劣化します。

劣化しません。

 画面一杯が白いデータがあったとします、中央に黒いゴミが1個
それをレタッチソフトで消して再保存して、次に開いたらゴミが増えていた

なんて、ありえないでしょ?

Windowsのペイントを除き、ほとんどの画像レタッチソフトは保存時に画像の圧縮率をコントロールできますので「目で見て判らない」程度に圧縮して保存すればいいんですよ。
    • good
    • 0
この回答へのお礼

ありがとうございます。

確かにそうですがそのような使われ方をするシーンはないかと
思われます。ただ具体的な使用例を書かなかった私もいけないと
思いました。

お礼日時:2010/03/24 10:57

質問者様の言う通り工夫次第で無劣化の処理も可能らしいです。


そういうソフトも公開されています。

http://www.geocities.co.jp/SiliconValley/1367/
JPEGファイル切り出しプログラム buff
http://www.vector.co.jp/soft/win95/art/se276932. …
JPEGファイル圧縮プログラム carmine
http://www.vector.co.jp/soft/win95/art/se279366. …
JPEGファイル回転プログラム azure
http://www.vector.co.jp/soft/win95/art/se171449. …

ただし、部分的な編集は編集部分のプログラムを組むのが面倒ですし、そういう要望も作っている人も皆無だと思います。
上の切り出しプログラムで複数に分割して編集して合成できれば、そういう要望に沿ったソフトも出来そうなのですけどね。
そんな面倒な事をするなら原版や編集中の画像を高画質にするか、PNGなど劣化しない可逆圧縮で保存する方が簡単ですから。
ちなみにJPEGでも全く劣化しない、可逆圧縮なJPEGもありデジカメや画像編集ソフトでも使用されている物もあります。
http://ja.wikipedia.org/wiki/Lossless_JPEG
    • good
    • 0

まず、


>JPEG画像に何らかの変更を加えて、再度JPEGで出力すると
>当然もとの画像より劣化します。
当然ではありませんよ。私は未だにこの劣化の原因が分かりません。
zipなどでは解凍して圧縮しても劣化はありません。jpegも同様に解凍・再圧縮だけなら無劣化でできても良いはずです。
圧縮で劣化するのは数字を丸める作業によります。
例えば933という数字を100単位に丸めて9×100と記録するようなものです。
これを解凍すると900になり、この時点では劣化しますが、これを再度圧縮しても最初の圧縮時と同じ9×100になってしかるべきです。すなわち解凍・再圧縮の時点では劣化はありません。
これがなぜか実際のjpegではかなりの確率で劣化します。この原因が私には分かりません。演算を繰り返すことで誤差が溜まっているのかなと推測しています。

さて本題ですが、圧縮データのまま処理して、ブロック単位の切り貼りを無劣化で行うことは原理的には可能です。
しかしそのようなソフトはNo3さんの示すような切り出し・回転程度しかなく、2つの画像を無劣化で合成するようなソフトは見たことがありません。
私が思うに、画像を合成するためには2つの画像のブロックサイズと圧縮率の設定が同じでなければなりませんので、そのようなソフトがあっても使いづらいからという考えで誰も作らないのではないでしょうか。
私は暇があったら作りたいと思いますが…。

あるいは上記のように再圧縮で劣化するのは理由のないことですから、これを劣化しないようなソフトがあればいいのですけどね。
    • good
    • 0

どういう目的でJPEG画像を編集したいのか不明ですが、運用で劣化を回避することは可能です。



例えば、オリジナルのJPEGが手元にあるのなら可逆圧縮形式で保存し直します。TIFF(16)であればJPEG(8)よりはレタッチ耐性に優れています。

あとはレタッチが終了したら改めてJPEGとして保存するだけ。

デジカメの写真を作品として仕上げている人にとっては常識の運用手順です。
    • good
    • 0

データの圧縮方法には可逆圧縮、非可逆圧縮があり、JPEGは非可逆圧縮です。



可逆圧縮の例:ZIP、PNG、GIF
非可逆圧縮の例:JPEG、MPEG、MP3

可逆圧縮は、圧縮前の状態に1bitも狂い無く正確に復元できます。
非可逆圧縮は、圧縮前の状態から(人間には理解できない程度に)情報を欠落させることで、大幅に圧縮率を高められる方法です。

元画像→JPEGに変換した瞬間に、元画像には戻りません。
「JPEGにする」行為は、圧縮というより、情報が欠落させる(=元には戻せない状態にする)行為と考えてください。

ご質問の件ですが、JPEG に編集を加えて劣化させずに保存するには、

JPEG→(編集)→PNGなどの非可逆圧縮で保存

しか無いと思います。どうしてもJPEGからJPEGで劣化を最小限に抑えたい場合は、圧縮パラメータを100にすれば、ほとんど劣化がなく保存できます。しかしファイルサイズは元のJPEGより大きくなると思います。(元のJPEGの圧縮パラメータによりますが)

非可逆圧縮は、ネット上でのトラフィックを軽くするための最終仕上げで行われるもので、編集段階では可逆圧縮方式を使って保存するのが一般的です。

>た、ブロック単位で手の加えられていない部分をそのままコピーすることはできないのでしょうか?

理屈上はできますね。対応しているソフトは私は知りませんがあるかもしれません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!