← ブログに戻る

Windowsの可逆画像圧縮:LocalFluxの「検証済みロスレス」とは

Windowsの検証済み可逆画像圧縮を、92%小さくなったGIF、完全コピーになったPNG、LocalFlux 1.0.7の実測データで解説します。

執筆 LocalFlux Editorial Team

Windows画像
LocalFluxで検証済みロスレスGIFが92パーセント小さくなった結果
この記事の内容
  1. すぐに試す手順
  2. 「検証済みロスレス」の意味
  3. 形式ごとの検証内容
  4. 個人情報を使わないテスト環境
  5. LocalFluxで実行する
  6. 結果1:検証に合格し、小さくなったファイル
  7. 結果2:完全コピーへのフォールバック
  8. プリセット、目標サイズ、ロスレスの違い
  9. 公開している検証資料
  10. よくある質問
  11. まとめ
  12. 変換前後の実用的な確認

内容を変えずに画像ファイルを小さくしたい場合、単にロスレスという設定を選ぶだけでは十分ではありません。新しいファイルが同じ内容を表していることを確認し、同一性を証明できないときに安全な判断をする必要があります。

LocalFlux 1.0.7は安全側に倒す方式を採用しています。PC上で最適化候補を作成し、形式ごとの内容とメタデータの条件を検証します。変更後の候補を公開するのは、検証に合格し、かつ元より小さい場合だけです。検証できない場合や小さくならない場合は、元ファイルを完全にコピーし、_optimized付きの新しい出力として保存します。

C:\tmpに置いた合成ファイルで両方の結果を確認しました。

これは2つの動作を示すために作った合成ファイルの実測値です。一般的な画像で同じ削減率になることを保証するものではありません。

LocalFluxで検証済みロスレス最適化を試す

すぐに試す手順

  1. LocalFluxを開き、圧縮を選びます。
  2. 対応するJPEG、TIFF、静止PNG/WebP、GIF、APNG、SVGを追加します。
  3. オプションを開き、ロスレスを選びます。
  4. 最適化を実行します。
  5. 各行でロスレス確認済みと、削減結果または最適化済みを確認します。

LocalFluxは元ファイルを残し、_optimized付きの新しいファイルを作成します。処理はWindows PC上で実行され、Web変換サービスへファイルをアップロードしません。

C:\tmpの合成ファイル2件を追加し、ロスレスを選択したLocalFlux。

「検証済みロスレス」の意味

変更された候補は、次の3条件を満たす必要があります。

  1. 形式に応じた内容検証に合格すること。デコード後のピクセル、TIFFの全ページ、アニメーションの全描画フレーム、タイミング、寸法などが対象です。
  2. その処理ルートで保持対象となる埋め込みメタデータが維持されること。
  3. 候補が実際に元ファイルより小さいこと。

どれか1つでも満たさない場合、変更された候補は採用されません。LocalFluxは出力先に元のバイト列を復元し、最適化済みと表示します。見た目が同じように見える未証明の変更より、完全コピーを優先します。

形式ごとの検証内容

形式LocalFlux 1.0.7での主な検証
JPEGデコード後のピクセル署名とAPP/COMメタデータ。値の一致を証明できなければ完全コピーになります。
静止PNGピクセルと、対応する色・EXIF・XMP・テキスト・物理解像度メタデータ。
静止WebPデコード後のピクセルと対応メタデータチャンク。
TIFF全ページ、ピクセル、ページ形状、対応タグ。未確認タグがある場合は完全コピーを選びます。
GIF合成後の全描画フレーム、遅延、ループ回数、保持対象の拡張ブロック。
APNGフレームごとの正規化ハッシュ、タイミング、フレーム数、ループ、PNGメタデータ。
SVGロスレスモードではバイト単位でコピーします。

ここでの「検証済み」は、明示された条件を確認したという意味です。あらゆるコンテナのすべての性質を無制限に証明するという意味ではありません。

個人情報を使わないテスト環境

Microsoft Storeで公開されているLocalFlux 1.0.7.0を使用しました。個人写真、顧客ファイル、ユーザー名を含むフォルダーは使っていません。画面に見えるパスはすべて次で始まります。

C:\tmp\LocalFlux-lossless-proof-v107\input

GIFには、1920 × 1080の同一フルフレームを12枚入れています。これは意図的な構成です。期待する描画内容を明確にしたまま、フレーム間最適化で大きな削減が可能なケースを作れます。小さなPNGは削減できない場合の対照データです。

LocalFluxで実行する

ファイルを追加し、圧縮モードを確認してオプションを開きます。ロスレスを選ぶと、実行ボタンが最適化に変わります。

このテストでは安全に共有をオフにします。目的が異なるためです。

出力が元と同じ場所の場合、新しいファイルは入力の隣に保存されます。たとえばimage.pngからimage_optimized.pngが作られます。元ファイルは上書きされませんが、重要なデータには別途バックアップが必要です。

結果1:検証に合格し、小さくなったファイル

測定項目入力出力
正確なサイズ658,785バイト54,329バイト
フレーム数1212
寸法1920 × 10801920 × 1080
フレーム遅延12個すべて1012個すべて10
削減該当なし604,456バイト(91.8%)

検証済みロスレスGIFが92パーセント小さくなったLocalFluxの結果。

入力と出力のSHA-256は異なります。圧縮コンテナのバイト配置が変わったためです。これはロスレス検証と矛盾しません。描画後の全フレーム署名は一致しました。ファイルハッシュの違いはバイト表現が変わったことを示し、内容検証は対応するアニメーション条件が保持されたことを示します。

91.8%は一般的なGIFの目安ではありません。同じフルフレームを12回繰り返した、非常に冗長なテストファイルです。

結果2:完全コピーへのフォールバック

8,290バイトのPNGでは、より小さく検証可能な候補が得られませんでした。LocalFluxは次のように表示しました。

ロスレス確認済み · 8.1 KB → 8.1 KB · 最適化済み

8.1 KBのPNGをロスレス確認済み、最適化済みと表示するLocalFlux。

入力と出力のSHA-256は同一でした。

F287BBCE8EB98A9F19416DCE1A74A759F3AC8DDA69ADB338022CB1B8F90BD937

したがって出力は完全コピーです。最適化済みは失敗ではありません。検証に合格する、より小さな表現がなかったという安全な完了結果です。

プリセット、目標サイズ、ロスレスの違い

方法主な目的
プリセット見た目の品質とサイズを調整します。形式や設定により内容を意図的に変える場合があります。
目標サイズ品質や寸法を調整し、指定バイト数以下を試みます。達成できない場合もあります。
ロスレス検証に合格した変更だけを公開します。完全コピーも正しい結果です。

Web配信用コピーで見た目の調整を許容できるならプリセット、アップロード上限には目標サイズ、検証済みの保持を最優先するならロスレスを選びます。

公開している検証資料

よくある質問

すべてのファイルが小さくなりますか?

いいえ。小さく検証可能な候補がない場合、最適化済みとして完全コピーが作成されます。

元ファイルは上書きされますか?

このテスト手順では上書きされません。新しい_optimizedファイルが作られます。

EXIFや位置情報は削除されますか?

ロスレスは保持を目的とします。個人メタデータを削除する場合は安全に共有を使い、公開前に実際のファイルを確認してください。

オフラインで動作しますか?

対応する最適化はPC上で実行され、変換サーバーへ入力を送信しません。Microsoft Storeのインストール、ライセンス、更新にはネットワークが使われる場合があります。

まとめ

LocalFlux 1.0.7のテストでは、合成GIFが検証対象のアニメーション条件を保ったまま91.8%小さくなりました。すでに効率的なPNGは0%削減で完全コピーになりました。どちらも正しい結果です。一方は冗長性を削減し、もう一方は不要または未証明の変更を拒否しています。

LocalFluxで画像をローカル最適化する

変換前後の実用的な確認

信頼できる手順では、可逆を見た目が似ているだけでなく復号ピクセルが同一と定義し、形式、寸法、アルファ、メタデータ方針、必要ならハッシュを比較する。拡張子を変えるだけでは、元ファイルのすべての性質は保持されません。受け取り先の要件を決め、元ファイルをマスターとして残し、大量処理の前に代表的な1ファイルで試してください。

開始前

出力の確認

完了表示は出力が書き込まれたことを示すだけです。フォント、フレーム、チャンネル、ページ、数式、プロファイル、タグ、アクセシビリティ機能がすべて残った証明ではありません。重要な用途では代表的な出力を確認し、納品物が受け入れられるまで元ファイルを保持してください。