LeanImg

画像スケーラー:アップスケーラーとリサイズのどちらが必要ですか?

リサイズはピクセルを補間し、アップスケーリングはそれらを再構築します。どちらが必要か、2倍および4倍の測定結果と実際のブラウザの制限について。

"画像スケーラー"は、ファイルに対して逆のことを行う2つのツールをカバーしています。リサイズは、すでに持っているピクセルを再サンプリングし、4000 pxの幅が1080 pxの幅になり、詳細が少ないサンプルに平均化されます。アップスケーラーは、画像をトレーニングされたモデルに通し、元のデータには保存されていなかったエッジやテクスチャを再構築します。どちらも寸法ボックスの数値を変更します。詳細を追加できるのは1つだけで、それは2倍または4倍のいずれかです。

私たちの両方はブラウザタブ内で動作します。アップスケーラーは、モデルを一度あなたのマシンにダウンロードし、その後はすべてのタイルがあなた自身のGPUで計算されます。どこにも投稿されることはなく、投稿するためのAPIルートもなく、コードベース内にサーバーアクションもありません(それが私たちのプライバシーページで説明されている全体のアーキテクチャです)。このカテゴリの他のスケーラーは、ファイルをアップロードし、その後1時間または2時間後に削除すると約束します。

リサイズとアップスケーリングの違いは何ですか?

リサイズは補間です。私たちのリサイズツールは、ブラウザに作業を任せ、createImageBitmapを使用して`resizeQuality: "high"`を指定するか、キャンバスの`drawImage`を使用してimageSmoothingQualityを高に設定します。いずれにせよ、出力ピクセルはその周りの入力ピクセルの加重平均です。平均化ではソースデータに存在しなかったエッジを生成することはできないため、補間による拡大は同じ情報のより大きく、柔らかいコピーを提供します。

アップスケーリングは再構築です。私たちのものは、4倍で信頼できる詳細を幻覚するようにトレーニングされた生成モデルであるReal-ESRGAN realesr-general-x4v3を実行します。2021年の論文で説明されています。画像は256 pxのタイルで処理され、各側に16 pxのオーバーラップがあるため、タイルは常にコア領域が書き出される前に隣接するコンテキストを確認します。モデルは推測します。それらの推測は通常、顔、布、テキストに対して正しいですが、細かい繰り返しパターンには大きく間違えることがあります。

実際にはどちらが必要ですか?

ターゲットサイズがソースより小さい場合、リサイズツールが必要で、議論の余地はありません。ターゲットが大きい場合、以下の制約を受け入れられるかどうかが問題です。以下は、マーケティングコピーではなく、私たちのビルドで実際に2つのツールが行うことです。

リサイズツールアップスケーラー
方向任意のターゲットサイズ、上または下2倍または4倍のみ
方法ブラウザキャンバス補間Real-ESRGAN realesr-general-x4v3
出力形式ソース形式を保持(GIFおよびAVIFはPNGとして出力)常にPNG
品質管理PNGロスレス、その他は品質90で再エンコードなし、PNGには品質ダイヤルがありません
バッチ制限10ファイル、合計50 MB1ファイル
入力上限バッチキャップのみWebGPUで約32 MP、なしで約1.1 MP
プリセット15のソーシャルサイズと25/50/75パーセントなし、2倍と4倍のボタンのみ

1行には警告が必要です。リサイズツールはデフォルトで「拡大しない」がチェックされており、入力されたターゲットを元の寸法に制限します。名前付きのソーシャルプリセットは、その制限を意図的にオーバーライドします。なぜなら、制限された1080x1920のストーリーフレームは、どのプラットフォームの仕様にも一致しないからです。

アップスケールするとファイルはどのくらい大きくなりますか?

かなり大きくなります、そしてPNGがその理由です。私たちはsmall.png、400x269および177.1 KBを両方の設定で実行しました。2倍では800x538および782.8 KBになりました。4倍では1600x1076および2.7 MBになりました。これは、16倍のピクセルに対して入力バイトの約15倍であり、モデルがすべての平坦な領域を新しいマイクロテクスチャで埋めたときのロスレス出力の見た目です。アップスケーラーはすべてのケースでPNGを書き込むため、トレードオフする品質スライダーはありません。

400x269のソース画像とその800x538のアップスケール結果の分割ビュー
small.pngの2倍:400x269および177.1 KBの入力、800x538および782.8 KBの出力。同じファイルの4倍の実行は1600x1076および2.7 MBになります。

どこかで使用する前に、結果をコンプレッサーに送信してください。私たちのPNG「圧縮なし」モードはoxipngレベル3で、実際にロスレスであり、942.4 KBのalpha.pngを383.9 KBに削減しました。パレットモード(imagequant)は同じファイルを98.3 KBにしました。これはフラットなグラフィックには適していますが、写真のアップスケールには不適切です。

なぜ2倍のオプションは4倍よりも柔らかく見えるのですか?

2倍は別のモデルではないからです。realesr-general-x4v3には正確に1つの出力スケールがあり、それは4倍です。2倍を選択すると、同じ推論を実行し、その後キャンバス補間器で各タイルを高いスムージング品質で半分のサイズにダウンスケールします。したがって、GPUの作業は両方のボタンで同じであり、2倍は再構築の後に再サンプリングが行われます。ダウンスケールはタイルごとに行われるため、フル4倍の画像は2倍の作業中にメモリ内に存在しません。モデルの生の出力が必要な場合は、4倍を選択し、その後リサイズツールで自分で縮小してください。各倍率が3840 pxに到達するために必要なソース幅は別に計算されています。

なぜアップスケーラーは私の24 MPの写真を受け取らないのですか?

それは完全にあなたのブラウザがWebGPUを開始するかどうかに依存します。WebGPUが実行されている場合、4倍のジョブは約32メガピクセルの入力を受け入れます。これがない場合、onnxruntime-webは単一スレッドのWASMにフォールバックし、入力上限は約1.1メガピクセルに低下します。これはほとんどの電話の写真よりも小さいです。それは恣意的な制限ではありません。このモデルのCPU推論はメガピクセルごとに数分かかり、24 MPのジョブは午後の残りの間タブをフリーズさせます。常に1ファイルずつです。

リサイズツールはピクセル数以外に何を変更しますか?

人々が期待する以上に多くのことです。PNGソースはPNGのままでロスレスです。それ以外のすべてはデフォルトで品質90で再エンコードされるため、JPEGをリサイズすることは、望むかどうかにかかわらず再圧縮でもあります。GIFソースはPNGとして出力され、もしそのGIFがアニメーションであれば、最初のフレーム以外はすべて失われます。AVIFソースもPNGとして出力されます。ソースとターゲットのアスペクト比が異なる場合、3つのフィットモードが重要です:カバーはセンタークロップ、ストレッチは歪み、コンテインはバーでパディングするのではなく、フィットしたエリアにキャンバスを縮小します。特定のサイズではなく特定の領域が必要な場合は、クロッパーが適切なツールですが、1ファイルずつ処理し、ロスのあるフォーマットをハードコーディングされた品質92で再エンコードします。

今すぐファイルで何をすべきですか?

まず長い辺を確認してください。約1600 px未満で、より大きくする必要がある場合は、アップスケーラーを開き、2倍を実行し、その後PNGをロスレスモードでコンプレッサーに通してください。それ以上、またはすでに必要な解像度に達している場合は、リサイズツールを使用し、ソーシャルプリセットを選択して寸法を調べる必要がないようにしてください。ターゲットがフィードの場合は、Instagramが受け入れる4つの形状とその背後にある1080 pxの上限が作業するリストです。