コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
未作成ページ
おまかせ表示
ヘルプ
MonoBook
検索
検索
ログイン
個人用ツール
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
「
Scale2x
」を編集中
ページ
議論
日本語
閲覧
編集
ソースを編集
履歴表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
編集
ソースを編集
履歴表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
2020年3月27日 (金) 02:31時点における
Administrator
(
トーク
|
投稿記録
)
による版
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''Scale2x'''とは、[[アップスケーリング]]の[[アルゴリズム]]のひとつである。 == 概要 == 画像の拡大縮小の[[アルゴリズム]]としては[[ニアレストネイバー]]や[[バイリニア]]、[[バイキュービック]]、[[Lanczos]]、[[NoHalo]]、[[LoHalo]]などが有名だ。 一方、Scale2xは「整数倍」の大きさに拡大するときに非常に高画質を得られる。[[ペイントソフト]]に搭載されているような「パーセンテージで拡大率を指定する」用途にはまったく向いていないが、「整数倍」に拡大するのであれば非常に高速かつ高画質を得られるというものである。 この特性から低解像度な[[ディスプレイ]]の時代の古い[[ゲーム]]を、最近の高解像度なディスプレイが前提の[[ゲーム機]]に移植する際などに広く採用されている。[[家庭用ゲーム機]]の[[エミュレーター]]でも定番の[[アルゴリズム]]となっている。 Scale2xは1992年頃にルーカスアーツで働くEric Johnstonによって開発されたものであり、「Eric's Pixel Expansion (EPX) 」とも呼ばれる。ルーカスアーツの[[ゲームエンジン]]「[[SCUMM]]」を[[IBM PC]] (320x200x256色)から[[Macintosh]] (640x480)に移植する際に考案したとされている。 現在scale2xの[[ソースコード]]は[[オープンソース]]となっている。[[ライセンス]]は[[GPL]]である。 * http://scale2x.sourceforge.net/ その後、Scale3xなどの拡張アルゴリズムも続々と考案されている。 == アルゴリズム == まず以下のような9[[ピクセル]]の画像があるとする。 {| class="wikitable" |+ |A |B |C |- |D |E |F |- |G |H |I |} 中央のピクセルEを4分割する。 {| class="wikitable" |+ |A | colspan="2" |B |C |- | rowspan="2" |D |E0 |E1 | rowspan="2" |F |- |E2 |E3 |- |G | colspan="2" |H |I |} 4分割されたピクセルE群の各値は以下のように計算する。<syntaxhighlight lang="c"> E0 = D == B && B!= F && D!= H?D:E; E1 = B == F && B!= D && F!= H?F:E; E2 = D == H && D!= B && H!= F?D:E; E3 = H == F && D!= H && B!= F?F:E; </syntaxhighlight>これは次のように書き換えることができる。この僅かながら最適化されたコードは2001年ごろに各種ゲーム機のエミュレーターとして有名な「MAME」に搭載されたものであり、 「AdvMAME2x」と呼ばれる。<syntaxhighlight lang="c++"> E0 = D == B && B!= H && D!= F?D:E; E1 = B == F && B!= H && D!= F?F:E; E2 = D == H && B!= H && D!= F?D:E; E3 = H == F && B!= H && D!= F?F:E; </syntaxhighlight>さらに次のように書き換えることができる。<syntaxhighlight lang="c"> if(B!= H && D!= F){ E0 = D == B?D:E; E1 = B == F?F:E; E2 = D == H?D:E; E3 = H == F?F:E; } else { E0 = E; E1 = E; E2 = E; E3 = E; } </syntaxhighlight>分割対象となるピクセルEが境界線上の場合は、境界線上にもっとも近いピクセルの値を利用して計算される。たとえばピクセルEが画像の右端にあり、ピクセルCFIがない状態の場合は、ピクセルBEHの値をピクセルCFIとして計算する。 == 関連項目 == * [[SAA5050]] * [[Scale2x]] * [[Scale3x]] * [[waifu2x]]
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)
本文の横幅制限を有効化/無効化