自己満足日記。
飽きっぽいので期待しないでください。
[1]
[2]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
少なくともnVidia環境の場合、propertiesがNULLだとCL_INVALID_PLATFORMが返ってくるので、propertiesを指定する。
PR
タイトル変えよう。
※プラグイン作成の解説記事ではないです。
独学でCとかC++とかやってみてたんだし
何かそれっぽいものを作ってみようということで、
Aviutlで拡大縮小をするプラグインを作ってみることにした。
用いるアルゴリズムは平均画素法(面積平均法・積分法とも)。
大まかな解説は以下のURLを参照の事。
まるも製作所 Diary 12月20日(水) 縮小アルゴリズム(3)- 平均画素法
陶見の窓 画像リサイズ「面積平均法」
開発に使うのはVisual C++ 2008 Express Edition。別に2010でも良い。
あとはAviutlのお部屋からAviUtl Plugin SDKを落とす。
ビルド時についてはまるも製作所 Diary 1月6日(木) VC.NET での拡張 AVI 出力ビルド方法を参照。
マニュアル代わりに永遠に工事中 AviUtlプラグインの作り方。
マイルール
○モチベーション維持のため他で見られない点をどこかに混ぜる
・間引きはしない:普通はほとんど差が出ないのでやります
○適当に間隔開けてから読んでも分かるようにする
・マジックナンバーは可能な限り避ける:あとから見ると何の数字だかワカラン
・とりあえず動くように書く:これ重要
・最適化(笑)は後回しにする:カッコつけちゃいけませんぜ
・変数名・関数名等は長くて良い:略しすぎると後で読んだときイミフ
○細かいところはコンパイラに投げる
・constは可能な限り使う:何かあるとコンパイラが教えてくれる
・変数は初期化する:うっかり未初期化のまま使うと嫌なので
・警告レベルは最大にする:コンパイラは友達だよ
・C++で書く:Better C 的な
どうしても処理が遅い時の解決法
・除算を避ける:クソ遅いと評判
・同じ計算を何度もしない:同じ出力なら定数を宣言しておきましょう
・分散処理する:OpenMPとかOpenCLとか使ってみたいじゃなーい
今回用いる平均画素法は10pxからの6pxにリサイズしたいのなら、一度3倍して最小公倍数である30pxに拡大し、その後5px毎に区切りそこの総和を3で割っていく感じです。
そして最初にまともに動いたのがこんな感じのもの。
当時のコードは残ってないので記憶で書いてますが無駄なところは再現出来てるかと。
独学でCとかC++とかやってみてたんだし
何かそれっぽいものを作ってみようということで、
Aviutlで拡大縮小をするプラグインを作ってみることにした。
用いるアルゴリズムは平均画素法(面積平均法・積分法とも)。
大まかな解説は以下のURLを参照の事。
まるも製作所 Diary 12月20日(水) 縮小アルゴリズム(3)- 平均画素法
陶見の窓 画像リサイズ「面積平均法」
開発に使うのはVisual C++ 2008 Express Edition。別に2010でも良い。
あとはAviutlのお部屋からAviUtl Plugin SDKを落とす。
ビルド時についてはまるも製作所 Diary 1月6日(木) VC.NET での拡張 AVI 出力ビルド方法を参照。
マニュアル代わりに永遠に工事中 AviUtlプラグインの作り方。
マイルール
○モチベーション維持のため他で見られない点をどこかに混ぜる
・間引きはしない:普通はほとんど差が出ないのでやります
○適当に間隔開けてから読んでも分かるようにする
・マジックナンバーは可能な限り避ける:あとから見ると何の数字だかワカラン
・とりあえず動くように書く:これ重要
・最適化(笑)は後回しにする:カッコつけちゃいけませんぜ
・変数名・関数名等は長くて良い:略しすぎると後で読んだときイミフ
○細かいところはコンパイラに投げる
・constは可能な限り使う:何かあるとコンパイラが教えてくれる
・変数は初期化する:うっかり未初期化のまま使うと嫌なので
・警告レベルは最大にする:コンパイラは友達だよ
・C++で書く:Better C 的な
どうしても処理が遅い時の解決法
・除算を避ける:クソ遅いと評判
・同じ計算を何度もしない:同じ出力なら定数を宣言しておきましょう
・分散処理する:OpenMPとかOpenCLとか使ってみたいじゃなーい
今回用いる平均画素法は10pxからの6pxにリサイズしたいのなら、一度3倍して最小公倍数である30pxに拡大し、その後5px毎に区切りそこの総和を3で割っていく感じです。
そして最初にまともに動いたのがこんな感じのもの。
当時のコードは残ってないので記憶で書いてますが無駄なところは再現出来てるかと。