Skip to content

ファイルサイズに関するレポート

Y.Yamamoto edited this page Jun 24, 2025 · 2 revisions

概要

Image Shieldライブラリによる画像処理において、ファイルサイズがどのように変化するかを詳細に分析しました。

測定結果

基本的なファイルサイズ変化

処理モード 元画像サイズ 処理後サイズ 変化率 変化量
元画像 92,093 bytes - - -
シャッフルのみ 92,093 bytes 459,896 bytes +399.4% +367,803 bytes
シャッフル + 暗号化 92,093 bytes 1,208,653 bytes +1212.4% +1,116,560 bytes

詳細分析(複数画像による測定)

処理モード 元画像サイズ 処理後サイズ 効率 (bytes/pixel) 変化率
元画像 986,346 bytes - 1.13 bytes/pixel -
シャッフルのみ 986,346 bytes 1,370,678 bytes 1.57 bytes/pixel +39.0%
シャッフル + 暗号化 986,346 bytes 3,528,425 bytes 4.04 bytes/pixel +257.7%

サイズ変化の主要因

増加要因

1. フォーマット統一(最大の要因)

  • 3チャンネル(RGB) → 4チャンネル(RGBA):全ての画像がRGBA形式で処理される
  • JPEG → PNG変換:JPEG画像がPNG形式で出力されることによる大幅な増加

2. フラグメント化オーバーヘッド

  • 各フラグメントが独立したPNGファイルとして保存される
  • PNGヘッダーの重複:各フラグメントにPNGヘッダーが必要
  • ブロック境界での圧縮効率低下:小さなブロックは圧縮効率が悪化

3. マニフェストファイルの追加

  • シャッフル版:約350-800 bytes
  • 暗号化版:約350-800 bytes(暗号化情報の追加により若干増加)

4. 暗号化による追加オーバーヘッド

  • 暗号化倍率:約2.57倍
  • AES-256-CBCによる暗号化処理
  • 追加データ:約157.4%の追加オーバーヘッド

減少要因

1. メタデータの削除

  • EXIF情報の削除
  • 色プロファイルの削除
  • コメント情報の削除
  • 画像によっては、メタデータが大きい場合に効果が顕著

2. 画像再圧縮による最適化

  • PNG最適化による若干のサイズ減少効果

ブロックサイズの影響

100x100ピクセル画像(453 bytes)での分析:

ブロックサイズ ブロック数 シャッフル版 暗号化版 ブロック使用効率
8x8 169個 3,652 bytes (+706%) 41,793 bytes (+9,126%) 92.5%
16x16 49個 2,255 bytes (+398%) 41,645 bytes (+9,093%) 79.7%
32x32 16個 1,783 bytes (+294%) 41,354 bytes (+9,029%) 61.0%

結論:

  • より大きなブロックサイズの方がサイズ効率は良い
  • しかし、ブロック使用効率(画像サイズとブロックサイズの適合度)は低下する
  • 暗号化時のサイズはブロックサイズにあまり依存しない

画像タイプ別影響

高圧縮率画像(チェッカーボードパターンなど)

  • 元画像が非常に小さい場合、処理後のサイズ増加率が極端に高くなる
  • 例:1,644 bytes → 8,500倍以上の増加

低圧縮率画像(ノイズパターンなど)

  • 元画像が大きい場合、相対的なサイズ増加率は抑えられる
  • 例:855,889 bytes → 54%減少(シャッフル時)

グラデーション画像

  • 中程度のサイズ増加
  • PNG圧縮との相性により変動

実用的な考慮事項

サイズ効率の観点

  1. 小さな画像:処理によるオーバーヘッドが相対的に大きい
  2. 大きな画像:処理効率が相対的に良い
  3. JPEG画像:PNG変換により大幅なサイズ増加が発生

セキュリティの観点

  • シャッフルのみ:約40%のサイズ増加でセキュリティ効果を得られる
  • 暗号化追加:約158%の追加オーバーヘッドで強力なセキュリティを実現

推奨事項

  1. 大きな画像での使用:オーバーヘッドの相対的影響を抑制
  2. 適切なブロックサイズ選択:16x16 または 32x32 が効率的
  3. 用途に応じた処理レベル選択
    • 軽度な保護:シャッフルのみ
    • 強力な保護:シャッフル + 暗号化

まとめ

Image Shieldによる処理では、以下の理由でファイルサイズが増加します:

  1. フォーマット統一(RGBA PNG固定)
  2. フラグメント化オーバーヘッド
  3. 暗号化による膨張(暗号化時)

一方で、メタデータ削除による減少効果もありますが、増加要因の方が遥かに大きく、最終的には元画像の1.4倍(シャッフル)〜4倍(暗号化)程度のサイズになることが確認されました。