ZuruyasumiNekoのほーむぺーじ
English page click here
MySoundにMP3アップしてます。
zurunekoのMySoundページ
掲示板(よかったら書き込んでね)
このホームページは、ある勘違い人間の記録である。わかってる人にとっては、お笑い記事であるし、わかってない人にとっては、同じてつを踏まないための道しるべとなるでしょう。よって、修正は加えないでそのまま残しておきます。ではスタート。理想フィルタに最も近いフィルタによるリサイズソフトと有名なLanczos3リサイズソフトのソースをおいてます。
このスペースは、画像拡大縮小回転のページです。減色(誤差拡散法)についてちょっとだけ書いてます。
1.画像拡大縮小
リサイズ、リサンプル、スケーリング、インターポーレーション、解像度変換、デシメーション、リサンプリング、スケーリング、アップコンバート、ダウンコンバート、アップサンプル、ダウンサンプル、アップサンプリング、ダウンサンプリング、サブサンプル、サブサンプリング、マルチレート、補間 etc.という言葉がありますが全部画像のサイズ変換のキーワードです。
1.1.空間領域での拡大縮小
Lanczos3-lobed sinc Filter方式などが高画質拡大縮小アルゴリズムとして一般に知られています。次のリサイズ原理というリンクには、Lanczos3-lobed sinc Filter方式を含めた一般
の画像拡大縮小方式をサンプリング定理から説明したPDFファイルがあります。是非ご覧下さい。
リサイズ原理
ここで有理数倍縮小の解説を4/5縮小を例にとって説明します。



SIN(x)/xの形の関数は一般にsinc関数と呼ばれており、サンプリング定理を象徴する関数です。この関数を左右に引き伸ばすとそのLPFとしての遮断周波数は低くなります。画像を縮小することは、sinc関数を左右に引き伸ばして畳み込み積分をすることにほかなりません。画像を縮小すればするほど高周波成分は失われていき、極端な場合
1個の点だけで画像をあらわすと全画素の平均つまり直流分になり周波数0の成分だけになります。画像の縮小が帯域制限だと直感的に理解できるたとえです。
そして有理数倍縮小操作というものは、上の図のように係数がステップごとに変化するFIRフィルタという結果になります。またときどきデータを読み飛ばすことも必要です。(拡大ではデータは同じで係数だけかえてもう一度計算ということがあります。)以下は、なぜそうなるか、原理的なところを示す図です。先に、後で述べるサンプリング定理の解説を先に読むことをお勧めします。




サンプリング定理の解説で任意の位置の補間値を求める方法を中心に述べます。




1.2.空間周波数領域での拡大縮小
理論的にはサンプリング定理の理想フィルタに近い偶関数化DFTリサイザーとDCTリサイザーのCソースを載せました。
Lanczos3lobed sincフィルターより高画質でリサイズをしたいかたご利用くださいませ。縦方向横方向にそれぞれ
増やしたい減らしたい画素数を指定すればOK1画素単位で拡大縮小ができます。BMP画像に対応しています。
JPEG画像をBMPに変換したものを拡大するとJPEG画像の汚さがよくわかります。
リサイズがおわるのが割とはやいのがDCTリサイザー遅いのが偶関数化DFTリサイザーです。高画質な分時間がかかります。
このリサイズ方法についてなぜ高画質かを次のリサイズ原理2というリンクにのせました。是非ごらんください
リサイズ原理2







BMP任意サイズ拡大ソフトソース(偶関数化DFTリサイザー)
BMP任意サイズ縮小ソフトソース(偶関数化DFTリサイザー)
BMP任意サイズ拡大ソフトソース(DCTリサイザー)
BMP任意サイズ縮小ソフトソース(DCTリサイザー)
BMP任意サイズ拡大ソフトをDOSプロンプト(コマンドプロンプト)で実行できるようなものを作りました。
使い方は
DCT_UP_RESIZE2 -i nantyara.bmp -o kakudai(.bmpはつけなくていいです)-sizexminus (拡大後の画像と原画像の水平方向の画素数の差 640->720 だったら80を入れる)-sizexminusy (拡大後の画像と原画像の垂直方向の画素数の差 400->480だったら80を入れる)
例
320x180のgazou.bmp を 400x200のkakudai.bmpにする場合で、Cドライブの直下でやる場合
c:\ にDCT_UP_RESIZE2.exeをコピーして、gazou.bmpもc:\において
C:\>DCT_UP_RESIZE2 -i gazou.bmp -o kakudai -sizexminus 80 -sizexminusy 20
とやれば、c:\にkakudai.bmpができます。
BMP任意拡大ソフト実行ファイル(DCTリサイザー)
縮小のほうもアップしました。
使い方は
DCT_DOWN_RESIZE -i nantyara.bmp -o syukusyou(.bmpはつけなくていいです)-sizexminus (縮小後の画像と原画像の水平方向の画素数の差 720->640 だったら80を入れる)-sizexminusy (縮小後の画像と原画像の垂直方向の画素数の差 480->400だったら80を入れる)
例
400x200のgazou.bmp を の320x180のsyukusyou.bmpにする場合で、Cドライブの直下でやる場合
c:\ にDCT_DOWN_RESIZE.exeをコピーして、gazou.bmpもc:\において
C:\>DCT_DOWN_RESIZE -i gazou.bmp -o syukusyou -sizexminus 80 -sizexminusy 20
とやれば、c:\にsyukusyou.bmpができます。
BMP任意縮小ソフト実行ファイル(DCTリサイザー)
原画像640x480
DCTリサイザーによる縮小画像376x282
DCTリサイザーによる拡大画像800x600
ゾーンプレートによる縮小の評価画像
原画720x480 SD
DCTリサイザーによる縮小640x420
DCTリサイザーによる縮小352x288 CIF 縞模様の間隔が1画素以下になると灰色になりますこれがフィルターの効果です
2.画像の回転
画像の回転は語るまでもありません。ソースだけ載せておきます。回転すると、画像は長方形のことが多いので額縁をつけて回転しないとはみでてしまいます。
ここでは、額縁付けソフトと回転させるソフトを分けています。アルゴリズムはバイリニアです。いずれサンプリング定理を考慮したやつを載せます。
BMP画像回転するときの額縁付けソフトソース
BMP画像回転ソフトソース
BMP画像回転するときの額縁付けソフトをDOSプロンプト(コマンドプロンプト)で実行できるようなものを作りました。
使い方は
GAKUBUTI -i nantyara.bmp -o gakubuti(.bmpはつけなくていいですさらに画像サイズがファイル名につきます)
例
320x180のgazou.bmp を ???x???_gakubuti.bmpにする場合で、Cドライブの直下でやる場合
c:\ にGAKUBUTI.exeをコピーして、gazou.bmpもc:\において
C:\>GAKUBUTI -i gazou.bmp -o gakubuti
とやれば、c:\に???x???_gakubuti.bmpができます。
BMP画像回転するときの額縁付けソフト実行ファイル
回転ソフトのほうですが、
使い方は
rotate -i nantyara.bmp -o kaiten -angle 36.5(.bmpはつけなくていいですさらに画像サイズがファイル名につきます)
例
400x400の400x400_gakubuti.bmp を 31.4度左回りに回転させた画像400x400_kaiten.bmpにする場合で、Cドライブの直下でやる場合
c:\ にrotate.exeをコピーして、400x400_gakubuti.bmpもc:\において
C:\>rotate -i 400x400_gakubuti.bmp -o kaiten -angle 31.4
とやれば、c:\に400x400_kaiten.bmpができます。
BMP画像回転ソフト実行ファイル
30度回転
125度回転
ちょっと音楽→
Live ROOM335
Live We Are All Alone
ちょっと一言
空間領域のリサイズと空間周波数領域のリサイズは、密接な関係があります。
それがどういうことか述べる前にちょっと一言。
まず、空間領域での拡大縮小の話ですが画像の端でFIRフィルタをかけるときには
問題があります。
画像の端ではフィルタの片半分のタップに対応する画素がないことです。
どうしたらよいでしょうか?答えを言うと、鏡像対称になるように画像を拡張するのです。
物理的意味は、これだけでは不明ですが、空間周波数領域の拡大縮小で、DCTリサイズがベストといったことと関係があります。
実は、鏡像展開してFIRフィルタをかけるリサイズを行うことは、空間周波数領域でDCTを使ったリサイズを行うことと本質的に同じことだからです。
鏡像展開っていうのは偶関数展開なのです。
JPEG2000の規格でも画像のはしっこで、鏡像展開しているのは、DCTの考え方と同等です。
おまけ 誤差拡散法について
線形量子化で、誤差拡散法(拡散ディザ法)の実装をしてみました。
Floyd & Steinbergの係数を使っています。
24bit true color 原画
21bit 減色
18bit 減色
15bit 減色
12bit 減色
9bit 減色
6bit 減色
3bit 減色
ヒストグラムメディアンカット非線形量子化3bit減色
の画像を下に載せます。
簡略版アルゴリズム
@RGBそれぞれについて、0〜255の256種類の画素値のヒストグラムを求める。
A総画素数の半分のところの輝度値をMとする。
Bその画像の最高輝度をHとする。
C最低輝度Lとする。
D(L+M)/2と(H+M)/2の2値を1bit量子化値とする。
E画素値の値がどっちに近いかで量子化を行う。
FFloyd & Steinbergの誤差拡散を行う。
本格派アルゴリズム
@RGBそれぞれについて、0〜255の256種類の画素値のヒストグラムを求める。
A総画素数の半分のところの輝度値をMとする。
Bその画像の最高輝度をHとする。
C最低輝度Lとする。
DRGBそれぞれMより大きい輝度値の領域小さい輝度の領域に分け8領域にわける。
E各領域の画素の集合の重心を求め、8個のパレットを決める
FFloyd & Steinbergの誤差拡散を行い、8個のパレット値をきめていく。
8色 減色(Fをやってない)
ちょいとでかい画像で比較してみましょう。
8色 減色 線形量子化 F&S
8色 減色 簡略版 F&S メディアンカット非線形量子化
8色 減色 本格派 メディアンカット非線形量子化 F&S
8色 減色 CIE_Lab空間 メディアンカット非線形量子化 F&S
8色 減色 メディアンカット非線形量子化
いかがでしょう。F&Sは絶対はずせないアルゴリズムですね。
またメディアンカットを行うことで画像が改善されました。
1677万色の画像をたった8色に減色してこれだけきれいにできるということに
驚きを隠しえません。
メディアンカットを行っても、誤差拡散を行わないと、一番下の画像のとおりあまりきれいではありません。
均等色空間CIELABで量子化してみましたが、ご覧のように色がでません。
CIELAB空間を使う場合は、画像によって適応的にパレット値を可変させる場合には有効ではなく、画像によらず固定的にパレットを決めうちにする場合に有効だと考えられます。
今回の実装でわかったことといえば、万能な色パレットの選び方はなく、画像によって最適な方法を取捨選択していくのが良いと思われます。
原画
8色 減色 本格派メディアンカット非線形量子化 F&S
Lanczos3,Hanning,Hamming,Blackman,などなどのウィンドウは理想フィルタ関数をコンパクトサポートフィルタにするウィンドウ関数です。
これらを使った有理数倍リサイズソフトをのせます。
しかしこのソフトは研究用で実用的ではありません
水平垂直、有理数倍に対応してます。2/3倍とか4/5倍とかもいけます。
水平方向はタップ数を十分大きくしてるので、量子化誤差マジックで窓を矩形窓にしてもリンギングがきになりません。
量子化誤差マジックで理想フィルタができちゃうのです。
教科書に書いてることを信じていたら進歩はありません。
自分でかんがえださなきゃだめよ!なのです。
例えば、ハード化は現状では無理っていう評論家の言葉くらいいいかげんなものはありません
やってみなきゃわからんのです。
LINUXまたはCygwinを入れてGCCなどでコンパイルすれば動きます。
窓関数をいろいろ選べる縮小リサイズソフトソース
720x480のSDのゾーンプレート画像(上のほうに画像があります)を水平方向、垂直方向ともに2/5縮小した画像です。
Lanczos3 2/5縮小
sinc rectangle window(水平方向は理想 LPF) 2/5縮小
sinc rectangle window は水平方向で21tapで(垂直方向5tap)LPFの遮断特性が鋭いので、外側に向かって急激に灰色になってるのがわかる。
比較のために、偶関数化DFTリサイザー、DCTリサイザーの結果ものせます。
DCT 2/5縮小
偶関数化DFT 2/5縮小
偶関数化DFTとDCTは同じにみえますね。TYPE2のDCTをかけTYPE3のDCT(IDCT)でもどしてるので若干違うはずです。0.5画素分ずれているため。
ほぼ理想LPFなので急激に灰色になります。
拡大ではこの性質が、高画質の要因になります。縮小はLanczos3がきれいですね。
ついでだから、拡大ソフトものせちゃいます
窓関数をいろいろ選べる拡大リサイズソフトソース
さらについでに本格派メディアンカット非線形量子化&フロイドとスタインバーグによる誤差拡散で24ビットゥルーカラーBMPから8色減色するCソースをのせます。
誤差拡散8色に減色Cソース
本当のメディアンカットアルゴリズムは、1677万の色パレットの統計をとるらしいです。それでもRGB各8ビットの上位5ビット32x32x32で簡略化して
統計をとるらしいですが。
さらに2色に減色しようということで、大津の方法で閾値をきめて、2値化してみました。
大津の方法で2値化
さて、2値化を誤差拡散でやってみました。量子化値は0と255、ピンとキリですフロイド&スタインバーグの係数です。
F&S誤差拡散で2値化
sinc rectangle window タップ数を自由に変えられる縮小ソフト拡大ソフトの
ソースを載せます。現在300タップに設定しています。
量子化誤差マジックでほぼ理想フィルタとなっていると思われます
鏡像処理をしているので、DCTリサイズみたいなものです。
DCTリサイズよりけた違いに速いです。
補足説明 ブログ「ずるやすみねこのリサイズ研究」より抜粋
24ビットトゥルーカラーはRGBそれぞれ0〜255の値をもつしたがって画素値が255のときでも
係数値が1/255のとき量子化間隔1となる。このときでも高々誤差1くらいしかフィルター結果に影響はおよぼさない、サンプリング定理での理想フィルタはSIN(πX)/(πX)(Xは整数)である。
SINの絶対値の最大値は1である。したがってπ=3として255/3=85 左右あわせて170タップ
のフィルタにすれば、ほぼ理想フィルタとなる。エイリアシングを起こさない縮小フィルタを考えたとき
SINC関数は横方向に伸びるのでもっとタップ数をふやさねばならない。拡大では170タップで十分である。2倍の340タップとれば万全であろう。ソフトウェアでは簡単だが、ハードでは結構なハード量である。しかしFPGAにはらくらくはいるのである。実際世の中には300タップくらいのハードウェアフィルタの製品はある。世の中には理想フィルタの量子化誤差マジックに気づいてる人は何人かいるのである。
このように拡大のときは、340タップくらいとれば、理想フィルタとみなしてよい縮小の場合は縮小率に応じてタップ数はかわる。
DCTリサイズと同等画質の高速バージョン画像縮小ソース
DCTリサイズと同等画質の高速バージョン画像拡大ソース
300tapフィルターで2/5縮小
DCTリサイズとほぼ同じ画質ですね。
最後に、Lanczos3に特化した拡大縮小ソフトをのせます。
実用に使うには、これがいいと思います。
画像サイズをいれるだけで動き簡単です
実用Lanczos3縮小リサイズソフトソース(縮小率大のとき下のよりこっちのほうが早い。画質は下のより落ちる)
実用Lanczos3拡大リサイズソフトソース(old)
縮小率大のとき高画質に縮小率小のとき画質は変わらず高速化された実用Lanczos3縮小リサイズソフトソース
高速化実用Lanczos3拡大リサイズソフトソース(画質はoldと同じなのに速い)
研究課題
これまで述べてきた方法は、線光源(Sinc)2次元フーリエ変換の離散化で
碁盤の目のような2次元空間の離散化座標に最も適切な方法である。
一方、バイキュービック法は、点光源(Jinc)をシミュレートしようと
しているが、碁盤の目のような座標系では実現できないような気がする。
この2つのアプローチの違いの本質を見つけるのが課題である。
相関という言葉がまだわかっていない。
画像は、縦方向と横方向が直交してないらしい。
レンズがわからないから、さっぱりわからない
夢
カルーネンレーブ変換でリサイズできないか?
カルーネンレーブ変換は無相関成分に分解することができる。
離散コサイン変換もカルーネンレーブ変換も多次元空間で座標回転すれば
同じものである。離散コサイン変換は扱い安いが、カルーネンレーブ変換
は、主成分分析ともいわれ、固有値の計算が必要である。
もしカルーネンレーブ変換でリサイズできれば、最強なような気がする。
研究課題で縦方向と横方向が直交していないといったのは
この変換がひっかかっているからである。
多次元行列の固有値を求めるには、数値計算の知識が必要である。
おいおい勉強していこうと思う。
離散化空間と連続空間を結ぶサンプリング定理は、重要であることに
変わりはないが、フルーエンシ情報理論のような実用上有用な研究成果
もある。まだまだ、基本画像処理の未来は明るいと思う。
超解像理論について述べて見る。
古典的なのは、ウィーナーフィルタである。本質的には、逆コンボリューション
と同じである。デジタル画像の拡大においては無謀だと今は思っている。0で割る
ことはできないからである。
ベイズの定理を使った確率論からのアプローチもある。RL−Methodなど。
情報がないところから情報をつくるというのは、明らかに無理だと思う。
しかし、ハッブル宇宙望遠鏡など天体写真の高解像度化に利用されているので
なんともいえないところである。
情報理論的に情報は増やせないと思う。
有望なのはもうひとつの超解像、複数枚のボケ画像から解像度をあげる方法
情報理論的に高解像度化は可能である。
したがって複数枚の縮小画像からくっきりとした拡大画像をつくることは可能
だと思われる。それにはそれぞれの画像は微妙に手ぶれしていることが必要である。
たぶん偵察衛星にこの技術は使われていると思われる。
別口で
ひそかにウェーブレット変換のこともたまに考えている。
ドベシーほか2人の考えたウェーブレットカーネルの形状には
フラクタルらしきものが垣間見られる。自己相似性である。
流体力学も離散数学の世界である。流体の世界では補間理論を
知る人が少ないようである。衝撃波の解析には、高度な補間理論
が必要そうである。
これから、創造的な発明をしていくには、専門にこだわらず
幅広い分野にすべて精通していく必要がありそうだ。
最後に
フーリエ変換で複素数を導入したことで、表現は簡単になったが
2倍の冗長度をもってしまったことを解決したのがDCTである
ということもできる。DCTはDFTからはいったほうがわかり易い
が、DCTのほうが先にみつけられるべきものであった。
複素数を導入することで、とてもきれいな数学的表現になるので
フーリエ級数からフーリエ変換に拡張した人は、こっちにしてしまったような気がする。
同じサンプル数のDFTとDCTの違い
DFTの2倍の周波数分解能をもっているのがDCTである。
DCTでは鏡像展開しているために一番周波数の低い基底正弦波の周波数がDCTと同じサンプル数のDFTの1/2である。従ってこの周波数の正弦波の高調波に分解される。
よってDCTでは、すべての変換係数がナイキスト周波数までのデータとなりDFTのように冗長なデータは発生しない
さらに2倍の周波数分解能にすることもできる。同じデータを鏡像展開して偶関数化DCTを行えばいい。
このような鏡像展開をくりかえしていけば、いくらでも周波数分解能はあがってい く。
これによって、空間だけでなく空間周波数領域も離散化されてしまう影響を抑えることができる。
新しいトピック
サンプリング定理で注意すべき点
サンプリングする前の関数が無限に続いていなくてはならない
サンプリングにあたり、ナイキスト周波数以下に帯域制限されていなくてはならない。
この2つの条件が、みたされていないと、帯域制限された元のアナログ関数は、再
構成できない。
ところが実際の関数は、有限である。
音で言えば、1曲の長さで1次元信号はとぎれる。
画像でいえばディスプレイに表示する画像は矩形で有限である。
離散コサイン変換を有限長のサンプルに対して行うと
分解した各余弦波の山もしくは谷が、右と左の端っこに当たる部分にくる。
正弦波の山と谷は微分すると0になる。
すなわち傾き0である。
離散コサイン変換は、有限長の関数を鏡像展開
したものを正弦波に分解する。
このことより、鏡像の対称の中心では、関数の傾きは
0にならなくてはならない。
ところが一般の有限長の関数は
端点で微係数が0にならない
ことが多い。
これは、いいかえると、サンプリング定理でいうところの
帯域制限が、端点でされていないことになる。
DCTリサイズの画質が荒れる原因は、画像の境界
の微係数が0になっていなかったことによる。
帯域制限された関数を有限長できりとった瞬間、帯域制限は、破綻する。
したがって、有限長の関数を帯域制限する場合、鏡像展開して、長さを長くした関数に対して
帯域制限する必要がある。
この場合、つなぎ目のとんがった部分はLPFにより、微係数0に変換される。
という文章をつくりあげたあと、実証しようと、鏡像関数に対して、ナイキストフィルターをかけてみた。
(デジカメでとった写真は、CCDのサンプリング間隔にあわせた光学ローパスフィルターがかけられており、すでに帯域制限がされているが、画像の端っこがどうなっているかはわからない。鏡像関数に対するLPFは端っこの微係数を0にするためである。)
すると640X480の画像でわずか14画素、原画像と画素値が1違うだけだった。
ということで、自然画の画像境界で、鏡像をとるとほとんどつなぎ目はなめらかであるということがわかった。
どうやら、DCT拡大リサイズで画像が乱れる原因として、DCTの基底関数の一番低い周波数の正弦波より低い周波数成分(トレンド)とか、空間周波数離散化間隔の影響も考えなくてはいけないようだ。
というわけで、2倍データDCTリサイズ(偶関数化DCTリサイズだが偶関数を鏡像展開するので2倍データDCTリサイズといった)を実装して、DCTリサイズと比較してみるのが次の課題である。周波数分解能を2倍にしてみる実験である。
なおLanczos3拡大リサイズでは、DCTリサイズででる画像の乱れは、発生しない。
現段階でベストを争うのは、フルーエンシ拡大か、LanczosN(N>=2)拡大かということになる。
あときづいたこととして、バイリニア拡大は、フルーエンシと同じように、高周波成分を作ることができる。したがって、フルーエンシとはまた違った高周波付加ができ人間には切れのよい拡大画像ができる。しかしバイリニア縮小はエイリアシングを
誘発するので禁じ手である。もちろん、画像のナイキスト周波数よりずっと低い周波数成分しかふくまれない画像に対しては有効である。
後記
2倍データのDCTリサイズでも、DCTリサイズと結果は変わらなかったです。
そこで300TAPsinc_rectangle_windowでもやってみたら、DCTリサイズと同じ結果になりました
結論として、このしわしわはGIBS現象だと思われます(調べたわけではない)
GIBS現象はフーリエつまり正弦波合成では本質的なもので、現実界ではさけることができない現象だということだと考えました。
コンパクトサポートのフィルタでも(近似的な)理想フィルタでも、拡大の際は
解像感はかわらないように思われるというのが、今までいろいろやってきた感想です。
今後、フルーエンシ拡大とLanczos3拡大とフラクタル拡大とバイリニア拡大のどれが、デファクトスタンダードになるかが見ものだと思う。
ぼく個人の意見では、人間の目の特性から、フルーエンシ拡大が人気がでると考えています。
フルーエンシオーディオは、原音に忠実という固定観念が一般的なので、普及は難しいと考えています
ここから、正しいか間違ってるかわからない記事
映像情報符号化という本がオーム社からでています。この本をよんだおかげで、このホームページの内容が間違っていることがわかりました。
まず、JPEGで8x8でDCTをかける理由。これは、自然画像では8画素はなれると
相関がなくなることが統計的にいえるということ。
自然画像というのは、相関がないエッジと相関があるオブジェクトから構成されておりエッジを越えると別の相関になっちゃう。オブジェクトどうしは相関がないことが多いということ。正弦波が途中で急に位相がかわっちゃった場合を考えるとわかりやすい。もちろん位相がかわちゃった点がエッジである。たぶんフーリエ変換できないと思う。そして、理想フィルタに近いフィルタによる画像拡大でもやもやがでる理由と思われることが書いてあった。8x8より大きいサイズでDCTをかけて逆変換するともやもやがでる。ということ。これを見て自分が井の中のかわずだということが
わかった。オブジェクトがたくさんある画像全体でDCTをかけていたからもやもやがでたのである。そしてこの8という数字は、Lanczos3がBESTということを示す数字である。Lanczos4だとちょっとだめということである。Lanczos3拡大ではタップ数は7であるLanczos4は9である。相関がなくなる8を越えない最大数だから、高画質なのである。Lanczos3拡大がきれいなのは、この理由によるのだと考えた。したがって
窓関数は7か8タップになるように減衰すればなんでもよいのではないかと思った。HammingだろうがBlackmanだろうが
そして、8x8DCTでリサイズしようとしている理由が理解できなかったが、やっと理解できたというわけである。さらにオーバラップを許すDCTが開発されたのも
有理数倍任意リサイズをするためもあるということが理解できた。
本当の最後に海外ではやりのLanczos4拡大ソフトのソースを載せます。
実用Lanczos4拡大リサイズソフトソース
次の実行ファイルWindowsプログラム初心者の作品です。
問題たくさんありですが一応目的を果たすことができます。
縮小率大のとき高画質に縮小率小のとき画質は変わらず高速化された実用Lanczos3縮小リサイズソフト実行ファイル(Windows版)
さらに拡大を付け加えました。
実用Lanczos3拡大縮小リサイズソフト実行ファイル(Windows版)
いきなりですが、1677万色のビットマップ画像を8色(8パレット色)に減色するWindows版ソフト(コマンドラインのソフトのソースは、上のほうにおいてある)
の実行ファイルをおきます。おまけで、2色(白黒)に減色することもできるようにしてあります。
8色2色減色ソフト実行ファイル(Windows版)
応用ソフトとして、2つのサイズの違う画像をくっつけるソフトをアップします。
上下にくっつける左右にくっつける。そのとき縮小してくっつける拡大してくっつ
ける。を選べます。
リサイズドッキング実行ファイル(24ビットBMP専用、WINDOWS版)
こんなことができます。
9枚の画像を順次くっつけて最後にリサイズして調整した画像
こちらへ続く
Zuruyauminekoのホームページ2
このページのCopyright(著作権)については、うるさいことをいいません。
自由に引用して結構です。リンクも行って構いません。学校の講義の題材として
資料を改変して、学生さんに教えたり、課題にしたりすることもOKです。
マルチレート信号処理を身近に感じられるようになれば幸いです。
フーリエ変換に興味をもたせてくれた恩師 吉田利信 現電通大教授に心から感謝致します。
Special Thanks to
Dr. Ken Turkowski,
Ohio University,
Dr. Kazuo Toraichi,
Mr. Kazuhiro Mogi,
,my wife and my daughter.
順不同
ご質問、お問い合わせ、お叱りなどは
zuruyasumineko2002@yahoo.co.jp
まで、お気軽にメールください。
from 2006.08.06
2006.08.14第1次更新
2006.08.15第2次更新 DOSプロンプト実行ファイルを追加
2006.08.19第3次更新 リサイズ原理2を追加,ゾーンプレート画像を追加
2006.09.13第4次更新 リサイズ原理1,2をpdfのリンクをたどらなくても良いようにした
2006.11.15第5次更新 空間領域の縮小について説明の図を7枚増やした
2006.11.16第6次更新 空間領域の縮小について構成を変更した
2006.12.15第7次更新 ちょっと一言を追加
2006.12.16第8次更新 英語のページを追加
2006.12.19第9次更新 英語のページでDCTリサイズの説明を英語にした
2006.12.19第10次更新英語のページでサンプリング定理の説明を英語にした
2006.12.20第11次更新英語のページ用で4/5縮小の説明を英語にした
2006.12.22第12次更新アナログ波形復元の式の誤記訂正
2007.01.06第13次更新誤差拡散法について記述追加
2007.01.07第14次更新メディアンカット非線形1bit量子化画像を追加
2007.01.15第15次更新1bit線形、非線形量子化のでっかい画像をのっけた
2007.01.19第16次更新本格派メディアンカットのアルゴリズムと画像をのせた
2007.01.19第17次更新CIELAB空間でのメディアンカットのアルゴリズムと画像をのせた
2007.01.20第18次更新拡大ソフトの宣伝を載せた
2007.01.22第19次更新減色画像のサンプルを増やした
2007.01.28第20次更新Lanczos3縮小ソフトのソースをのせた
2007.01.31第21次更新Lanczos3と理想LPFによる縮小画像をのせた
2007.02.01第22次更新DCT,DFT縮小の画像をのせた。Lanczos3拡大ソフトのソースをのせた
2007.02.01第23次更新誤差拡散のソフトのソースをのせた
2007.02.15第24次更新大津の方法での2値化画像をのせた
2007.02.17第25次更新誤差拡散での2値化画像をのせた
2007.03.09第26次更新DCTリサイズと同等画質高速バージヨンCソースと画像をのせた
2007.03.10第27次更新実用Lanczos3拡大縮小Cソースをのせた。いろいろ文章を修正
2007.04.21第28次更新回転ソフトの使用法に抜け(回転角の指定)あり修正、著作権FREEを宣言
2007.05.18第29次更新夢と別口でを追加
2007.06.26第30次更新Lanczos3拡大を高速化,縮小を縮小率大のとき高画質化、縮小率小のとき高速化
2007.06.27第31次更新同じサンプル数のDFTとDCTの違いを追加
2007.07.17第32次更新新しいトピックを追加
2007.07.21第33次更新後記を追加
2007.08.15第34次更新Lanczos4拡大を追加
2007.09.13第35次更新サブホームページをGeocityに新設。5倍拡大の画質比較追加
2007.09.21第36次更新サブホームページに8x8マクロブロックDCT5倍拡大の画像追加
2007.09.29第37次更新サブホームページに4x4マクロブロックDCT5倍拡大の画像追加
2007.10.14第38次更新Windows版Lanczos3縮小プログラム実行ファイルと拡大縮小プログラム実行ファイルをおいた
2007.10.26第39次更新Windows版減色プログラム実行ファイルをおいた
2008.04.29第40次更新Windows版ドッキングリサイズ実行ファイルをおいた
2008.10.21最新更新 理想フィルタにするためのフィルタタップ数の説明を追加