日本語

画像と写真 · Social Image Resizer

偶数ピクセル寸法とクロマサブサンプリング: 奇数サイズが問題を引き起こす理由

· 背景

画像寸法 画像エンコーディング ビデオワークフロー

ビデオ エンコーダーに入る前に境界で調整された奇数サイズの画像グリッド
オリジナル ToolAcre ベクトル イラスト

JPEG とほとんどのビデオ エンコーダーは、4:2:0 クロマ サブサンプリングを使用して色を半分の解像度で保存します。そのため、一部のパイプラインで奇数のピクセル寸法によりエラーやエッジ アーティファクトが発生します。この投稿では、そのメカニズムと、サイズを 1 ピクセルずつ微調整することが適切な場合がある理由について説明します。

奇数次元の障害は、特定のダウンストリーム エンコーダに属します。 ToolAcre はここでは再現しません

奇数の幅または高さは特定のビデオ エンコーダーによって拒否される場合がありますが、Social Image Resizer 自体はピクセル バジェットに適合する任意の正の整数ターゲットを受け入れます。現在のプリセットは偶数の整数次元を使用しています。このアプリでは、1 ピクセルの障害やエッジ アーティファクトを示すテストはありません。

エンコーダ エラーを、画像の普遍的なプロパティとしてではなく、そのダウンストリーム コントラクトに関する証拠として扱います。正確なメッセージ、コーデック設定、サイズをキャプチャします。次に、次のツールが明示的に偶数ペアを必要とする場合は、ToolAcre カスタム出力を調整します。この修正により、原因と救済策が同じパイプライン内に維持されます。

Luma と Chroma の概念は背景であり、このツールによって公開されるコントロールではありません

画像およびビデオ コーデックは、色情報とは別に明るさ情報を表すことができます。人間の視覚は、輝度の詳細よりも空間的な色の詳細を許容しないことが多く、これがクロマ サブサンプリング設計の動機となります。この背景は、一部のフォーマットが隣接するピクセル全体でカラー サンプルをグループ化する理由を説明しています。

ToolAcre は、ルマ プレーン、クロマ プレーン、またはサンプリング コントロールを公開しません。キャンバスと MIME リクエストをブラウザー エンコーダーに渡します。結果として得られる実装の詳細はそのエンコーダーに依存し、品質スライダーから導き出すことはできません。概念的なコーデックの教育は、製品の宣伝文句とは切り離して行う必要があります。

ToolAcre は、JPEG、WebP、またはビデオの 4:2:0 エンコードを保証しません

4:2:0 表現では、通常、クロマは 2 行 2 列の輝度領域に関連しており、多くの実装にとって偶数次元が便利です。正確なストレージ、パディング、境界ルールはコーデックとエンコーダーに属します。 「すべての JPEG とほとんどのビデオがこれを使用している」などのスローガンは、ここで入手できる証拠としては範囲が広すぎます。

render.js もそのテストも、JPEG または WebP 出力のサブサンプリング マーカーを検査しません。このアプリケーションは、ビデオではなく静止画像もエクスポートします。サブサンプリングを知る必要がある場合は、サイズから推測するのではなく、フォーマット対応ツールを使用して実際のエンコードされたファイルを分析するか、文書化されたダウンストリーム エンコーダーを参照してください。

奇数のサイズが失敗する場合は、実際のダウンストリーム パイプラインで検証する必要があります

パイプラインによっては、奇数のサイズがサポートされなかったり、埋め込まれたり、通常どおりに処理されたりすることがあります。このリポジトリには、最後の行または列のぼやけを証明するテストが含まれていないため、この記事ではその主張されている症状が省略されています。失敗したハンドオフは、ディメンションを変更する前に、正確なファイルとコンシューマを使用して再現する必要があります。

ToolAcre の出力テーブルは幅と高さをレポートするため、ハンドオフ チェックが簡単になります。受信ビデオ ツールで 2 で割り切れる両方の値が必要な場合は、その要件を制作チェックリストに追加します。目的地にそのような制約がない場合、すべてのソーシャルイメージを黙って微調整しないでください。

アスペクト比と偶数ピクセル — 数学的に正確な比率が時々偶数の寸法にならなければならない理由

カスタム寸法を四捨五入すると、アスペクト比と割り算が競合する可能性があります。 sizeFromRatio は、最長エッジを固定した後、短いエッジを丸めます。その結果は奇妙である可能性があります。下流のコントラクトで偶数ペアが必要な場合は、偶数の最長エッジを選択し、結果として生じる比率の差を測定しながら、近くの偶数の対応するエッジを計算します。

メタデータのみを変更して既存の出力を拡大しないでください。選択した寸法で新しいキャンバスを作成し、フレームを検査します。 1 つのジョブでは 1 ピクセルの調整は視覚的に無視できるかもしれませんが、受け入れは普遍的な主張ではなく、実際の下流の要件とプレビューから得られるべきです。

有効な例: エンコーダアーティファクトを発生させずに、偶数の 9:16 ペアを計算します。

9:16 の場合、1080×1920 はすでに正確な偶数ペアであり、現在の汎用フルスクリーン ツール プリセットです。 540×960 のカスタムの半角ペアでも、比率が正確に維持され、均等なままになります。どちらの例も、発明されたエンコーダ品質ルールからではなく、算術から来ています。

要求された最長エッジが奇数の丸められた対応物を生成する場合、隣接する偶数の値を幅で割った高さで比較し、文書化された消費者の要件を満たすペアを選択します。それをエクスポートし、結果テーブルを確認して、受信ツールを実行します。その引き継ぎが成功することが重要な証拠となります。

これでカバーされないもの — 4:4:4 および 4:2:2 ワークフロー、プロフェッショナル ビデオ カラー パイプライン

Professional 4:4:4、4:2:2 およびビデオ カラー パイプラインは、この静止画クロッパーの外側にあります。コーデック プロファイル、ピクセル フォーマット、ハードウェア エンコーダの制約も同様です。ブラウザ エンコーダは、JPEG、PNG、または WebP リクエストを受け入れます。これらの実稼働フォーマットを保証するために必要なスイッチは公開されません。

ビデオ ツールを使用して、ビデオのサンプリングと色を制御します。 Social Image Resizer を使用して、既知の寸法と構成の静止フレームを準備します。その境界を維持することで、有用な偶数次元チェックが、エンコードされたクロマ構造に関する誤った保証になるのを防ぎます。

要点: 無料の場合は偶数を推奨します。Social Image Resizer は比率に合わせてトリミングし、ブラウザーでサイズを変更します。ファイルをビデオツールに渡す前に最終的な寸法を確認してください

文書化された下流のワークフローにメリットがあり、調整にコストがかからない場合は、偶数の寸法を優先しますが、優先順位をイメージの法則にまで高めないでください。受信側エンコーダはその制約を所有します。 ToolAcre の仕事は、検査可能な整数出力寸法と予測可能なフレームを提供することです。

ハンドオフ前にファイルをチェックし、意図した比率を維持して実際のコンシューマを実行します。失敗した場合は、エラーとドキュメントを使用して別のペアを選択してください。この証拠優先の方法は、エンコードされたファイルをまったく調べずに、すべての奇数サイズのアーティファクトを 4:2:0 に起因させるよりも信頼性が高くなります。