すべての記事

PiPic 画像圧縮ベンチマーク(2026年第3四半期)

PiPic team
再現可能なベンチマーク
12入力
72実行結果
4画像形式
2ツール構成

公開データセット

順位ではなく根拠を確認する

ライセンス確認済みの入力、正確なバージョンとコマンド、全実行結果、中央値、保持した失敗、目視確認の記録を下から取得できます。

このデータセットは「最良の圧縮ツール」を主張しません。記録したワークフローを比較し、不利な結果も保持して、測定値と制約を一緒に公開します。

方法

  • 入力を PNG、JPEG、WebP、AVIF に分けて構成する。
  • 公開再配布が許可された画像だけを使い、出典とライセンスを manifest.csv に記録する。
  • ツール名、正確なバージョン、コマンド、実行日、マシン、設定をすべて記録する。
  • 入力と出力の形式をそろえる。形式変換は圧縮として扱わない。
  • 入力バイト数、出力バイト数、削減バイト数、所要時間、失敗、縮小しなかったファイルを記録する。
  • 外れ値を削除せず、原因を記載する。
  • 各ケースを同じマシンで3回続けて実行し、所要時間の中央値を報告する。
  • 各形式から少なくとも3出力を無作為に選び、デコードと目視確認を行う。
  • results.csv はランナーから生成し、測定値を手作業で編集しない。
  • 制約と、比較対象のツールが優れていたケースを公開する。

入力

風景、料理、建築の3枚の写真を使用した。各出典は CC0 またはパブリックドメインで、PNG、JPEG、WebP、AVIF にエンコードして全12入力とした。すべて同一形式で処理し、PNG は PNG のまま出力する。他の形式も同様である。manifest.csv には、コミットした各入力の公開出典ページ、ライセンス、バイト数、SHA-256 を記録した。SOURCES.md には作者と、派生ファイル作成前に確認した Wikimedia 出典の SHA-1 を記録した。

派生ファイルは意図的に高品質な入力として作成したもので、すべてのウェブ画像を代表するものではない。各被写体は4形式で同じ画素寸法を持ち、全ファイルが PiPic の公開上限である 8 MB 未満である。

ツールと設定

  • PiPic Agent CLI 1.0.6 は公開済み CLI と遠隔圧縮サービスを使い、-o--json--concurrency 1 で1ファイルずつ処理した。
  • sharp 0.35.3 はローカルライブラリを明示的な設定で呼び出した。PNG はパレット変換なし、圧縮レベル6。JPEG は品質80、4:2:0 クロマ、最適化符号化。WebP は品質80、effort 4。AVIF は品質50、effort 4、4:4:4 クロマ、8ビット出力とした。

command 列には各実行で使った実行ファイルの正確なパスと引数が入っている。sharp の設定は公開再現パッケージに含まれる scripts/sharp-compress.mjs にある。

記録された結果

  • 12入力、2ツール、連続3回の実行から全72行を生成した。
  • PiPic は36回中35回を完了した。food.webp の2回目は fetch failed を返した。この行は出力0、削減0のエラーとして保持し、再実行していない。
  • 上記の非パレット PNG 設定では、sharp が3つの PNG 入力すべてで3回とも大きいファイルを生成した。この9行は not_smaller として保持し、削減量にも失敗にも数えていない。
  • それ以外の出力は入力形式でデコードできた。各形式で異なる3被写体を含む決定的な標本が目視確認に合格した。

これはデータセットから読み取れる結果であり、「最良の圧縮ツール」を示す主張ではない。summary.csv は中央値を報告し、失敗と変動の根拠は results.csv に残している。

再現手順

必要な環境は次のとおり。

  • Node.js 20+、npm、ffprobe が利用できる macOS または他の環境。
  • コミット済み入力を再生成する場合に限り、libsvtav1 対応の ffmpegcwebp
  • 月間操作数が36回以上残っている、ユーザーが認証した PiPic CLI セッション。ランナーは認証情報を読んだり表示したりしないが、PiPic は遠隔サービスなので実際の CLI 枠を消費する。

このディレクトリで次を実行する。

# Optional: re-download the three sources, verify their Wikimedia SHA-1,
# and recreate all 12 inputs and manifest rows.
node scripts/prepare-inputs.mjs

# Install exact tool versions into ignored .tools/, check PiPic quota,
# execute three runs, decode outputs and generate the CSV files.
node scripts/run.mjs

# Run after completing the selected visual review.
node scripts/validate.mjs

記録時のマシンは macOS 26.5.1、Apple M5、24 GiB RAM だった。PiPic の所要時間には遠隔リクエストが含まれ、sharp はローカル実行である。CPU 速度の比較として扱ってはならない。

制約

  • 知覚品質を一致させた比較ではなく、文書化されたワークフロー同士を比較している。ファイルサイズの差には品質判断の違いが含まれうる。
  • データセットは3つの写真被写体だけで、イラスト、アルファ成分の多い画像、スクリーンショット、アニメーション、あらゆるカメラ画像を代表しない。
  • PiPic は遠隔、sharp はローカルで動く。ネットワーク、サービス負荷、地域は PiPic の所要時間に影響し、マシン負荷は両方に影響する。
  • 目視確認は選択した出力が使用可能であることを確かめるもので、数値的な知覚品質スコアではない。PSNR、SSIM、SSIMULACRA2 に関する主張は行わない。
  • PiPic の fetch 失敗を1件保持しているため、この実行の完了率は100%ではない。後の実行は別に公開し、この結果を上書きしてはならない。

再現チェック

データセットはローカルの再現チェックを通過した。すべての入力に公開ライセンスと SHA-256 があり、各生データ行にコマンドが記録され、エラー以外の出力はすべてデコードできた。各形式で異なる3出力が目視確認に合格し、中央値も生の CSV から再計算できる。

このデータから「最速」「最小」「最高」または同等の表現を導いてはならない。

自分の画像で試してみる
無料、登録不要、保存も一切なし。
画像を圧縮する