コンピューターはどのようにして1024x768の解像度を1920x1080にアップスケールしますか?


8

つまり、黒いバーがないということです。1080は768の倍数ではないので、何らかのデータ損失がありますか?


5
バイキュービックスケーリングのようなスケーリングアルゴリズムがあり、任意のサイズにスケーリングされたときにスプラインを使用してピクセルの色を近似します。
EvilTak 2016年

@EvilTak、コメントを小さな答えに拡張できますか?
2016年

@glampertはそれをしました。コメントを削除してもよろしいですか?
EvilTak

@EvilTak、お任せください。ところで、いい答え、ありがとう!
グランペラント

回答:


8

本質的に、画像は点サンプルのグループです(ピクセルは小さな正方形ではありません3を読んでください)。画像を変換またはスケーリングする場合は、画像をリサンプリングする必要があります。したがって、理論的には、ポイントサンプルを取得して連続関数に変換します。次に、その連続関数をサンプリングして信号を再構築します。したがって、ここには2つまたは3つの異なるフェーズがあります。

  1. サンプルを連続関数に変換する(関数再構成)。
  2. (変身)
  3. 信号を再サンプリングする

これらの手順のいずれにも固定形式はありません。実際には、最適化されたときにステップがあることを認識することは不可能です。変換は実際には単純である必要はなく、形状をらせん状にマッピングすることなどが考えられます。

信号の再構成

画像1:さまざまなフィルターによって再構成された1次元信号。

実際には、信号処理分野での信号再構成については、かなりの知識が必要です。これらのフィルターを設計して適切なフィルターを選択することは、それ自体がアートフォームです。ただし、本質的に、フィルターの選択は、ぼかしとリンギングのトレードオフです。もちろん、このアルゴリズムには、実装に必要な命令の数、必要なメモリの速度など、他の品質もあります。これは、リアルタイムアプリケーションや組み込みアプリケーションでは非常に重要です。

プロセス

画像2:プロセス全体の概要。


5

画像を任意の解像度から他の任意の解像度に拡大縮小するために利用できる、多数のアップスケーリングおよびダウンスケーリングアルゴリズムがあります。各アルゴリズムは、通常、効率、滑らかさ、鮮明度の間のトレードオフを伴い、異なるアルゴリズムの各トレードオフの程度は異なります。

そのようなアルゴリズムとそのようなアルゴリズムの例についてはこのWikipediaの記事をチェックしてください。

最も一般的に知られている(そして使用されている)アルゴリズムは、バイキュービック補間アルゴリズムです。長方形グリッド上の2Dポイント間を補間します。3 次スプライン(または3次補間)を使用して、最初に1つの次元で補間(補間された行/列を検出)し、次に、補間された行/列を他の次元で補間します。

バイリニア補間はバイキュービック補間に似ていますが、前者は線形関数を使用して補間し、2つの値の間でのみ補間でき、後者はキュービック関数を使用して4つの値の間で補間できる点が異なります。

バイキュービック補間の簡単な関数は次のとおりです。

f(f(p00, p01, p02, p03, y),
  f(p10, p11, p12, p13, y),
  f(p20, p21, p22, p23, y),
  f(p30, p31, p32, p33, y),
  x)

ここで、(x、y)は補間された位置であり、p [] []は4 * 4グリッドを表す2d配列です。

詳細とサンプルコードについては、このリンクを確認してください。


0

与えられた他の答えは正しいですが、それらがあなたの質問に完全に答えているかどうかはわかりません。黒いバーが表示されないようにするには、宛先がソースと同じ形状(またはアスペクト比)でない場合に2つのオプションがあります。

  1. ソースからのいくつかのピクセルをデスティネーションの外に残して、デスティネーションを塗りつぶします。この例では、ソースは1024x768、宛先は1920x1080です。元の画像を1920x1440に拡大する場合は、上部と下部を切り取って1920x1080にすることができます。
  2. 目的の画像を拡大して収まります。したがって、1080/768 = 1.40625で垂直方向にスケーリングし、1920/1024 = 1.875で水平方向にスケーリングします。これはあなたが望むものではほとんどなく、ほとんどの場合ひどいものに見えます。(これにより、人々は必要以上に広く見えるようになり、円を楕円に、回転を鋏に変えます。)

別のオプションがありますが、それは基準に適合しません。均一にスケーリングしますが、1次元が宛先と同じ大きさになるまでのみです。この場合、水平方向と垂直方向の両方に1.40625でスケーリングして、1440x1080の結果を取得します。これは通常「スケールに合わせる」と呼ばれます。

これらのオプションのいずれについても、ニーズを満たすスケーリングアルゴリズムを使用できます。


1
また、白いバーを使用することもできます。また、いくつかの画像合成機能を使用して、たとえば、トリミングされたものや引き伸ばされたものなど、画像をオーバーレイすることができるピクセルを塗りつぶすこともできます。ここには、データを処理しないための無限の方法があります。私たちのほとんどは、それが不均一なスケールになると想定しただ​​けだと思います。
joojaa

とても本当です。元のポスターは特に単色で塗りたくないので、拡大縮小の側面だけに関心があると思っていました。しかし、他にもたくさんのfillメソッドがあります。たとえば、中心がそのアスペクト比を維持し、エッジが引き伸ばされる非線形スケーリング方法もあります。
user1118321
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.