「Scale2x」の版間の差分

編集の要約なし
 
(同じ利用者による、間の2版が非表示)
4行目: 4行目:
画像の拡大縮小の[[アルゴリズム]]としては[[ニアレストネイバー]]や[[バイリニア]]、[[バイキュービック]]、[[Lanczos]]、[[NoHalo]]、[[LoHalo]]などが有名だ。
画像の拡大縮小の[[アルゴリズム]]としては[[ニアレストネイバー]]や[[バイリニア]]、[[バイキュービック]]、[[Lanczos]]、[[NoHalo]]、[[LoHalo]]などが有名だ。


一方、Scale2xは「2の倍数」の大きさに拡大するときに非常に高画質を得られる。[[ペイントソフト]]に搭載されているような「パーセンテージで拡大率を指定する」用途にはまったく向いていないが、「2の倍数」に拡大するのであれば非常に高速かつ高画質を得られるというものである。
一方、Scale2xは「整数倍」の大きさに拡大するときに非常に高画質を得られる。[[ペイントソフト]]に搭載されているような「パーセンテージで拡大率を指定する」用途にはまったく向いていないが、「整数倍」に拡大するのであれば非常に高速かつ高画質を得られるというものである。


この特性から低解像度な[[ディスプレイ]]の時代の古い[[ゲーム]]を、最近の高解像度なディスプレイが前提の[[ゲーム機]]に移植する際などに広く採用されている。
この特性から低解像度な[[ディスプレイ]]の時代の古い[[ゲーム]]を、最近の高解像度なディスプレイが前提の[[ゲーム機]]に移植する際などに広く採用されている。[[家庭用ゲーム機]]の[[エミュレーター]]でも定番の[[アルゴリズム]]となっている。




33行目: 33行目:
|I
|I
|}
|}
中央のピクセルEを4分割する。
中央のピクセルEを4分割する。この4ピクセルが拡大先である。
{| class="wikitable"
{| class="wikitable"
|+
|+
57行目: 57行目:
E2 = D == H && D!= B && H!= F?D:E;
E2 = D == H && D!= B && H!= F?D:E;
E3 = H == F && D!= H && B!= F?F:E;
E3 = H == F && D!= H && B!= F?F:E;
</syntaxhighlight>これは次のように書き換えることができる。この僅かながら最適化されたコードは2001年ごろに各種ゲーム機のエミュレーターとして有名な「MAME」に搭載されたものであり、 「AdvMAME2x」と呼ばれる。<syntaxhighlight lang="c++">
</syntaxhighlight>これは次のように書き換えることができる。この僅かながら最適化されたコードは2001年ごろに各種ゲーム機の[[エミュレーター]]として有名な「[[MAME]]」で改良考案されたものであり、 「AdvMAME2x」とも呼ばれる。結果は同じである。<syntaxhighlight lang="c++">
E0 = D == B && B!= H && D!= F?D:E;
E0 = D == B && B!= H && D!= F?D:E;
E1 = B == F && B!= H && D!= F?F:E;
E1 = B == F && B!= H && D!= F?F:E;