リククーブログ

ARTICLE PAGE

ラッセルキルシュの可変形状ピクセル技術をやっとモノにした

何年も前から気になっていたんですよ。
Make:Japan|方形ピクセルの50年
最初にデジタル画像を作り上げたラッセルキルシュ博士が後悔の末作り上げた可変形状ピクセルという技術を
やっと実用できるようにしました。
この技術の画像拡大が実は一番いいのではないのかと思っていました。
実際できてみて、まあ そこそこでしょう。
ただしLinuxでlibgdを使ってgccでコンパイルして使うようになっていますので、普通の人には敷居が高いでしょうが、
MITライセンスで公開したのでいろいろなソフトに組み込むことができます。

改良点

6x6ピクセルから2つの可変形状ピクセルを作るやり方から、
7x7ピクセルで作るようにしました。これには理由があって、
周辺ピクセルを平等に統合するのではなくて、もとの中心ピクセルとそのすぐ周りのピクセルの明るさを光の逆二乗則を適用して重ね合わせているのです。
このために内部では3x3の画像を7x7にする処理が動いています。
だから、たった1ピクセルしかない模様もうまく拾うことができます。
マスクの種類も多いほうが良さそうですが、変な画像がいっぱいできてしまい、台形マスクだけ追加になりました。
それと、可変形状ピクセルは意外と気になるものです。しかもいきなり7倍拡大は用途がないでしょう。
でもコマンドラインのvsp7aでは2〜4倍程度に再縮小できます。これによって人間が違和感なく見ることができます。

vsp7a <拡大倍率> <入力画像ファイル> <出力画像ファイル>


拡大倍率は1-7倍で、1にするとJPEG画像の粒子ノイズをだいぶ取ってくれます。
このときなんと「絵心」でリサンプルアルゴリズムを色々選んで「ヘルマイトスプライン」がlibgdにあったのでそうしました。
このプログラムは基本的なC言語のレベルでしょうがまあ処理は遅くはないと思います。
元画像
元画像
By Ivar Leidus (Own work) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons
拡大後
4倍に拡大
恐るべき特徴として、vsp7aで2か3倍ずつ画像拡大を繰り返しても、他のアルゴリズムで一気に拡大するよりそう画像が見づらくならないはずです。

リポジトリーはこちら https://github.com/t-site/VSP7
スポンサーサイト

0 Comments

Leave a comment

テンプレートに関するご質問・不具合のご報告の際はご自身のブログアドレス記載必須です
ご質問の前に必ずお読みください ↓
FC2テンプレート ご利用時のお願い