28

JPEG は非可逆圧縮方式であるため、通常、解凍 - 操作 - 再圧縮を行うと、ステップごとに画質がさらに低下します。さらに損失を被ることなく JPEG 画像を回転することは可能ですか? JPEG アルゴリズムについて私が知っていることはほとんどありませんが、少しの努力でさらなる損失を回避することは単純に可能であるように思われます。一般的な画像操作プログラム (GIMP、Paint Shop Pro、Windows フォト ギャラリーなど) とグラフィック ライブラリのうち、回転の実行時に品質が低下するのはどれですか?

4

10 に答える 10

17

jpegtranというプログラムがあります

jpegtran – 異なる JPEG フォーマット間のロスレス トランスコーディング用ユーティリティ。

画像を無損失で回転するには、次の操作を実行できます。

$ jpegtran -rotate 180 -perfect -outfile rotated.jpg origin.jpg

IJGコードに基づく JPEG 可逆回転機能を提供するアプリケーションの一覧を次に示します。

于 2009-05-15T16:03:08.373 に答える
14

はい、特定のケースでは可能です: 画像の 90 度回転と反転。JPEG アルゴリズムの心臓部である非可逆部分には、画像を 8x8 ピクセル ブロックに分割し、ブロックに対して離散コサイン変換を実行し、結果を量子化することが含まれます。これに加えて、ブロックの色空間変換と可逆圧縮もあります。

8x8 ブロックを回転または反転すると、同じ基本係数を持つ DCT が得られますが、変換に応じて転置および/または符号が変更される可能性があります。したがって、画像を無損失で回転または反転するための基本的な手順は次のとおりです。

  1. ブロックを解凍して抽出する
  2. 各ブロックの DCT 係数の転置および/または符号反転
  3. ブロックを新しい順序に再シャッフルします (そうしないと、8x8 ブロックは回転しますが、古い場所に残ります)
  4. 無損失圧縮ステップですべてを再圧縮します。
于 2009-02-12T22:23:12.633 に答える
13

もちろん、EXI​​F データの向きの値を変更するだけです。ほとんどの画像プログラムはこの設定を尊重し、画像を「回転」して表示します。

また、特定の条件が満たされている場合、画像を「手動で」(プログラムなどで)無損失で回転させることもできます。回転は 90/180 度で、幅/高さはブロック サイズの倍数でなければなりません。反転/ミラーリングすることもできます。ただし、画像プログラムがこの操作を特殊なケースにできるほど賢いかどうかはわかりません。私はそうではないと思います。

于 2009-02-12T21:40:45.810 に答える
2

はい、可能です。
簡単なグーグル検索で、これを行うプログラムのこのリストが得られました

于 2009-02-12T21:42:07.150 に答える
2

jpg の専門家ではありませんが、90 度、180 度、270 度の回転の場合、答えはイエスのようです。(たぶん360でも!:))

于 2009-02-12T21:41:11.503 に答える
0

それが役立つ場合:

Microsoft (Windows 7) ネイティブの画像ビューアーとその右クリックによる回転オプションよりもうまくやろうとして、次のリンクのいくつかのアプリを試しました: http://jpegclub.org/losslessapps.html

たとえば、FastStone Image Viewer、XnView、Photosurfer、JPEG Lossless Rotator、ExifPro Image Viewer を試しました。

それらのどれも、単純な 90° 回転の後、基本的な Windows 7 画像ビューアーよりも大きな画像を生成しません。すぐに結論を出すのは確かに限られていますが、現時点では実際のロスレス回転.jpegアプリはまだ見つかっておらず、いずれにしても組み込みのWindowsアプリよりも優れていません.

于 2014-04-09T22:09:12.890 に答える
0

Sean McHugh によるデジタル画像補間の理解に関する優れた記事によると、次のようになります。

画像を回転または歪ませるたびに補間も行われます。(...) 2 つのピクセル間の境界にピクセルを再配置する必要がない (したがって分割する) 必要がないため、90° 回転はロスレスです。

そして最後に

可能な限り写真を回転させないでください。平準化されていない写真で必要な場合は、1 回だけ回転してください。

于 2010-01-21T14:21:46.957 に答える
0

JPEG画像の回転について話している場合、それ以上の圧縮はありませんよね? これは、ピクセル位置の回転に関するものです。

任意のプログラムで回転を行うと、元の画像を保持する必要があるため、中間の寸法が変更される可能性があります。これは考慮すべき問題である可能性があります。

于 2009-02-12T21:43:48.440 に答える
0

90 度の倍数で回転しない限り、画像は何らかの補間を実行する必要があり、画像の品質が低下する可能性があります。ここでは、優れた補間アルゴリズムを使用すると役立ちます。

開いて再圧縮することに関しては、実際に品質が低下するかどうかはわかりませんが、JPEG がどのように機能するかは正確にはわかりません。

圧縮、操作、再圧縮を試して、結果が十分かどうかを自分で確認することをお勧めします。何が十分かは、アプリケーション次第です。

于 2009-02-12T21:44:25.630 に答える