Skip to content

Latest commit

 

History

History
141 lines (100 loc) · 12.7 KB

File metadata and controls

141 lines (100 loc) · 12.7 KB

Modern Format Boost (Japanese)

バージョン Rust プラットフォーム ライセンス

次世代メディア最適化エンジン — 画質劣化ゼロ、最大圧縮を実現。


📖 日本語 (Japanese)

Modern Format Boost とは?

Modern Format Boost は、Rust製の高性能メディア最適化エンジンです。古い画像・動画形式(JPEG, PNG, H.264, VP9…)を最新のコーデック(画像は JPEG XL、動画は HEVC/AV1)に変換します。元の画質を維持、あるいはビット単位で一致(bit-exact)させながら、ファイルサイズを劇的に削減します。

メディアを**決して劣化させない「スマートな圧縮機」**と考えてください。

  • 📸 画像: JPEG → JXL(可逆再構築、ビット一致、約20%削減)。PNG/WebP/TIFF/HEIC → JXL。
  • 🎬 動画: H.264/VP9/AV1 → HEVC(GPU加速による最適品質探索)。
  • 🍎 Appleエコシステム優先: Apple完全互換モード、Live Photo検出、AAEサイドカー対応。
  • 🔒 メタデータの守護者: EXIF, XMP, ICCプロファイル, 作成日時, macOS拡張属性 (xattrs), Finderタグを完全に保持。
  • 知覚速度の最適化: 「ディープファースト」ソート戦略。深い階層のディレクトリを優先し、ファイルサイズと形式でソートすることで、効率的なバッチ処理と最大のスループットを実現します。
  • 🎞️ HDR10+ 動的メタデータ: サイドカー抽出と x265 SEI インジェクションにより、SMPTE 2094-40 メタデータを完全に保持。
  • 🌅 HDR ゲインマップ合成: Apple/Samsung/ISO の HEIC ゲインマップから、高精度な32bitリニアHDRバッファを自動合成。JXL 変換時に最大のダイナミックレンジを維持します。
  • 🔍 ベンダーメタデータ認識: HEIC ファイル内の Samsung/Google 固有の XMP ネームスペースをインテリジェントにスキャンし、コンテキストを最大限に保持します。

⚠️ 免責事項と重要な注意点

  1. データ安全第一: データの損失を避けるため、特にかけがえのないメディアについては、上書き変換(--in-place)ではなく、別のディレクトリに出力(-o /path/to/output)することを強く推奨します。
  2. ベータ版ソフトウェア: 本プログラムは画質やデータの損失を防ぐために広範囲にテストおよび最適化されていますが、100%バグがないことを保証するものではありません。問題が発生した場合は GitHub で報告してください。
  3. 計算リソースについて: Apple Silicon Mシリーズなどで効率化されていますが、--ultimate モードでの大規模なバッチ処理には時間がかかり、システムリソースを長時間占有します。計画的に実行してください。
  4. ツールの成熟度: 統合されたツール(img, vid)はデフォルトで HEVC 戦略を使用しており、これは現在 AV1 戦略よりも成熟しており安定しています。高い信頼性が求められるプロダクション作業には、HEVC 戦略(デフォルト)を推奨します。

🔒 プライバシーとデータの完全性

Modern Format Boost は「ローカルファースト」のアーキテクチャを採用しており、クリエイティブな資産を完全に制御下に置くことができます。

  • オフライン動作: 100% オフライン処理。テレメトリ、利用状況追跡、クラウドへの通信は一切行いません。
  • Rust による安全性: メモリ破壊バグ(バッファオーバーフロー等)をネイティブに排除する Rust で構築されています。
  • 安全な統合: FFmpeg や cjxl などの外部ツールは、生のシェル実行ではなく、エスケープされた安全なプリミティブを介して呼び出されるため、コマンド注入を防ぎます。
  • パスの隔離: 高度な正規化により、ディレクトリトラバーサルを防ぎ、無関係なシステムファイルを保護します。
  • システムパス・ブロックリスト: システムの重要ディレクトリに対する偶発的な変更を防ぐシールド機能を内蔵。
  • 動的リソース調整: メモリ/CPU負荷に基づいて処理スレッドを自動調整し、過酷なタスク実行時のシステムクラッシュを防ぎます。
  • 包括的なメタデータ管理: EXIF, XMP, ICC, ファイルシステムタイムスタンプ (btime/mtime) をビット単位で厳密に保持。

🛠️ 技術的な詳細:動作の仕組み

画像パイプライン

各ファイルは多段階の判定パイプラインを通過します。

  • ステージ1 — スマート検出: JPEG DQTテーブル(UltraHDRゲインマップ検出)、WebP VP8Lチャンク、AVIF av1Cボックスをバイナリレベルで解析。
  • ステージ2 — ルートとエンコード: JPEG は JXL VarDCT(ビット一致)、可逆ソース(PNG等)は Modular モードを使用。
  • ステージ3 — 回避経路: TIFF/BMP/HEIC 等は、画質損失を防ぐために一時的に16bit PNGまたは32bit OpenEXRに変換して処理されます。
  • ステージ 4 — HEIC HDR 合成: ゲインマップ(Apple/Google)を含む HEIC ファイルをインターセプトし、中間 OpenEXR パイプラインを介して 32bit リニア光 HDR バッファを合成。真の HDR JXL を出力します。
  • ステージ 5 — 解析・ループ意図 (Loop Intent v3):最新の 7 層階層決定木モデルを採用。Loop Closure (ループ閉合度)Motion Gini (動きの変動率)周期性分析、および KNN 重み付き融合 を総合的に評価し、画像やビデオのループ意図(ミーム、ステッカー、ループ素材)をインテリジェントに識別します。

動画パイプライン:三段階の飽和探索

  1. フェーズ1: GPU 粗探索: ハードウェアエンコーダ(VideoToolbox/NVENC)による二分探索で「品質の膝(曲がり角)」を特定。
  2. フェーズ2: CPU 微調整: GPU の CRF を x265 スケールにマッピング。Sprint & Backtrack 戦略を採用。
  3. フェーズ3: 究極の3D品質ゲート: VMAF-Y ≥ 92.0, CAMBI ≤ 6.0, PSNR-UV ≥ 34.0 dB の同時クリアを要求。
    • フュージョンスコア: MS-SSIM + SSIM_All を組み合わせた堅牢な構造解析。
    • 注意: --ultimate モードでは、50サンプル連続で品質向上が見られない場合のみ探索を終了し、絶対的な飽和を保証します。

🖥️ 実行画面

Runtime

2つの統合ツール

ツール 用途 ターゲットコーデック
img 画像最適化 → JXL (静止画) / HEVC / AV1 (アニメーション)
vid 動画最適化 → HEVC / AV1

さらに、ドラッグ&ドロップで処理可能な macOS用アプリ (Modern Format Boost.app) も付属しています。

📉 圧縮例(実測値)

入力形式 元のサイズ 出力形式 出力サイズ 削減率 方法
風景 JPEG 4.2 MB JXL 3.3 MB ~21% 可逆コンポーネント再構築
スクリーンショット PNG 2.5 MB JXL 1.1 MB ~56% Modular d=0.0
アクションカメラ H.264 1.2 GB HEVC 480 MB ~60% GPU/CPU CRF 探索

⬇️ インストール

プリコンパイル済みバイナリ

Rust の環境構築が不要な方は、Releases ページからダウンロードしてください。

# macOS/Linux 用(例: macOS ARM64)
curl -LO https://github.com/nowaytouse/modern-format-boost/releases/latest/download/modern-format-boost-aarch64-apple-darwin.tar.gz
tar -xzf modern-format-boost-aarch64-apple-darwin.tar.gz

必要条件

ツール 必須? 目的 インストールコマンド
Rust (1.75+) ビルドとインストール curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
FFmpeg (5.0+) 動画処理とメトリクス brew install ffmpeg / apt install ffmpeg
libjxl JXL エンコーディングコア brew install jpeg-xl
ExifTool メタデータ保持 brew install exiftool
ImageMagick 画像デトアパス brew install imagemagick
libwebp WebP ネイティブデコード brew install webp
dovi_tool Dolby Vision RPU 抽出 cargo install dovi_tool
libheif HEIC/HEIF デコード brew install libheif
hdr10plus_tool HDR10+ メタデータ抽出 cargo install hdr10plus_tool

❓ FAQ

1. JXL フォーマットの現在の互換性は?
macOS 14 (Sonoma) / iOS 17+、Chrome 91+、Firefox 128+ ではネイティブサポートされています。ただし、Apple エコシステムには既知の制限があります:

  • アニメーションプレビュー:JXL/AV1/HEIF などの最新のアニメーション形式は、macOS/iOS の標準写真アプリや Finder ではアニメーションとして再生されない(静止画として表示される)ことが多く、特に iCloud 同期後のファイルで顕著です。プレビューにはコマンドラインツールや最新のブラウザの使用を推奨します。
  • サムネイルの黒画面:JXL ファイルが グレースケール (Grayscale) ICC プロファイル を使用している場合、Finder/iCloud のサムネイルが真っ黒に表示されることがありますが、ファイル自体には影響せず、ブラウザ等で開くと正常に表示されます。 JXL は、ビット精度の無損アーカイブおよび高忠実度 HDR ストレージにとって、依然として最適な選択肢です。

2. HDR10+ 動的メタデータはどうなりますか?
完全にサポートされています。hdr10plus_tool を使用して SMPTE 2094-40 動적メタデータを抽出し、libx265--dhdr10-info パラメータを介して HEVC ストリームに注入します。この機能を使用するには、ツールがインストールされていることを確認してください。

3. なぜ WebP / AVIF / HEIC などの最新形式がスキップされるのですか?
これらの形式はすでに現代的な非可逆圧縮が行われています。再エンコードすると画質の世代劣化 (Generational Loss) が発生するため、プログラムは品質保護のためにデフォルトでこれらをスキップします。 例外:Apple/Google の高忠実度 HDR Gainmap が検出された場合、JXL への合成出力が行われます。また、アニメーションファイルが 解析・ループ意図 (Loop Intent) 最適化メカニズムをトリガーした場合も、適切に処理されます。


⚖️ ライセンス

MIT ライセンスの下で公開されています。