特に意味のない更新

その1 ダウンロードリンク集

以前自分用ダウンロードリンク集を作ったけど、HTMLを編集するのもだんだん面倒になってきたので、エクセルファイルにしていろいろ追加。ちょっと表示に時間がかかるのが難点だけど・・・。


その2 透過性ロゴ SIMD版

まあ、特に意味はないです。当たり前だけどSIMDにしても特に速くならないです。もともと速いので。血迷いました。


コメントの投稿

非公開コメント

透過性ロゴSIMDについて

まさかロゴ解析ではなく透過性ロゴをSIMD化するとは思わなかったので想定外でした・・・。
rcファイル見るとバージョンが
VALUE "FileVersion", "0.1.2.1\0"
となっていてホンの少し不安になったのですが、元にしてるのはMakki氏のdelogo ver0.13(2009-01-24)でいいんですよね?
Makki氏がどうも0.13にするときにrcを更新し忘れたみたいで、それに末尾「.1」をつけたからこうなってるんだとは思いますし、一応filter.cを見比べたりしたのでこの認識で間違いないと思うのですが、これは
VALUE "FileVersion", "0.1.3.1\0"
と考えていいのでしょうか?

Re: 透過性ロゴSIMDについて

元にしたソースはdelogo_src20090124.zipなので間違いなく0.13ベースのはずです。

参考までにSIMDはロゴ消し部分だけで、SSE2 / SSE4.1 / AVX2+FMA3 の3バージョンからの自動選択です。

ロゴ解析はまあ、使う頻度が低すぎるので、さすがにやりません(笑)。ロゴ変わらないとやらないですからねえ…

No title

すみません…このフィルタって元々4スレッド以上のMT対応のものでしょうか?
使用率見てると4スレッドくらいしか使ってないような気がしたので…

それと、SIMD対応版有難うございます!
あまり速くならない可能性が高いということですが、早速使わせて頂きますm(__)m

…私の環境だとSSE4.1しか適用されない…仕方無いか。。。


あと、もしよろしければ「ノイズ表示」フィルタのSIMD・MT化をお願い出来ますでしょうか?
あのフィルタ凄まじく重いので、何とかならないものかと思っておりまして…

Re: No title

透過性ロゴですが、もともとこれは1スレッドで処理されています。4スレッドに見えるのは他の部分で並列が効いているからではないでしょうか。

処理面積が狭いため、SIMD化しても何も変わらないぐらい速いので、MT化はさらに意味が無いと思います。同期待ちとかで遅くなりそうな気もします…。

ノイズ表示の高速化は…すみません、ソースコードがないうえに、どういう仕組なのか全く理解できていないので、難しいです。ソースがあればMT化はわりと簡単なはずですが…。

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

No title

MakKi氏の最終バージョンでもあるバグなのですが、
iniの[int]セクションで前のバージョンで512まで設定できた
min、max設定が256までしか効果なくなっています。
もしお時間があれば修正をお願いできませんでしょうか?

Re: No title

わかりました。時間あるとときに少し調べてみます。

track_s,track_eはどこで使用されるか(便乗質問)

ちょっとyomogiさんの質問に便乗質問させてください。

ver0.13.1の場合、まずlogodef.hで
#define LOGO_STED_MAX 256
#define LOGO_STED_MIN -256
と定義されている状態でfilter.cppの214~219行目で
static int track_s[track_N] = { LOGO_XY_MIN, LOGO_XY_MIN, 0, -100, -100, -100, LOGO_STED_MIN, 0, 0, LOGO_STED_MIN };
static int track_e[track_N] = { LOGO_XY_MAX, LOGO_XY_MAX, 256, 100, 100, 100, LOGO_STED_MAX, LOGO_FADE_MAX, LOGO_FADE_MAX, LOGO_STED_MAX };
のように初期値が設定され、同247~281行目でFILTER_DLL型の変数filterのメンバーtrack_s,track_e(int*型)に先の配列の先頭要素へのポインターを代入し、
同1290~1299行目でGetPrivateProfileIntを利用してiniの[int]セクションにそれぞれキーがあればそこで設定された値にtrack_s[i],track_e[i]を変更している
のはわかるのですが、
(例えばiniに
[int]
track6_max=512
とあると、track_s[6] = -256, track_e[6] = 512 となるということですよね?)

こうして設定されたFILTER_DLL型の変数filterのメンバーtrack_s,track_e(int*型)はどこで使用されているのでしょうか?私の力では追いきれませんでした。

一回でもAviUtlのフィルタを作った人なら常識なのかもしれませんが、作ったことがないもので。

手が空いて、"気が向いたら"教えて頂けると幸いです。

delogoについて

>iniの[int]セクションで前のバージョンで512まで設定できたmin、max設定が256までしか効果なくなっています。

実際に試してみましたが、以下のようにdelogo.auf.iniをdelogo.aufと同じフォルダに配置すると、正しくトラックバーで反映されました…。

[int]
track3_min=-512
track3_max=512
track3_def=0
track4_min=-512
track4_max=512
track4_def=0
track5_min=-512
track5_max=512
track5_def=0
track6_min=-512
track6_max=512
track6_def=0

また、設定値もきちんと動作に反映されていると思います。念のため、コードでもチェックしましたが、ファイルの設定値をきちんと読めていました。

申し訳ありませんが、うまくいかない具体的な設定値を教えていただけないでしょうか?

>> yumetodo様
>例えばiniに
>[int]
>track6_max=512
>とあると、track_s[6] = -256, track_e[6] = 512 となるということですよね?
おっしゃるとおりです。

>filterのメンバーtrack_s,track_e(int*型)はどこで使用されているのでしょうか?
その後の動作としては、
EXTERN_C FILTER_DLL __declspec(dllexport) * __stdcall GetFilterTable( void )
{
return &filter;
}
のところで、Aviutl側にプラグイン情報がFILTER_DLLのポインタとして渡されます。

あとは、Aviutl側が、このポインタを介して、フィルタ情報を読み取っていっているはずです。この読み取り部分はAviutl側で行われる処理のため、フィルタ側のコードには存在しません。

具体的には、Aviutl側では以下のように使うことができるのだと思います(非常に単純化してますし、Aviutl側のコードを見たことはないので推定です)

typedef FILTER_DLL * (__stdcall *func_get_filter_dll)();

//delogo.aufをロード
HANDLE h_filter = LoadLibrary("delogo.auf");

//delogo.aufのGetFilterTableのアドレスを取得
func_get_filter_dll get_filter_dll = (func_get_filter_dll)GetProcAddress(h_filter, "GetFilterTable");

//delogo.aufのGetFilterTableを呼び出し、FILTER_DLLへのポインタを取得
const FILTER_DLL *ptr_filter_dll = get_filter_dll();

//ptr_filter_dllを介しフィルタの情報を取得
printf("%sn", ptr_filter_dll->filter_name); //"透過性ロゴ"
printf("%dn", ptr_filter_dll->track_s[0]); //"-500"


x264guiEx/x265guiExには、デフォルトの出力拡張子をmp4から他の拡張子に変更する機能が存在しますが、これも同様にOUTPUT_PLUGIN_TABLEのfilefilter部分をGetOutputPluginTable内で動的に変更してから、AviutlのポインタをOUTPUT_PLUGIN_TABLEの渡すことで対応しています。(出力プラグインの場合はさらに小細工が必要ですが…)

No title

すみません、とてもとても中途半端な説明でした
スライダー自体は512には出来るんですが、オプションで
各ロゴごとに初期値を設定できるんですけど、ここで330とか入れても
256に戻されてしまうんです

そんな機能があったのですね

ini FileでRangeを変更できるとは知りませんでした。
Pluginを作ったり改造する場合には気をつけないとですね。

yomogiさんのおっしゃっている問題は、editdlg.cppのon_IDOK()内で定数でClipしている処理のせいかな?

delogoたぶん直しました。

>yomogi様
ご指摘の件、修正できているかと思います。お試しいただければと思います。
http://rigaya34589.blog135.fc2.com/blog-entry-565.html

>HayatePP様
おっしゃるとおりそこの処理だったようです。ありがとうございます。

No title

257以上の数値を入力しても保存されるようになりました!
ありがとうございました。
直接数値を入力するのでほとんど問題ないのですが、
数値を入れるボックス横の上下ボタンは256制限が
かかっているようです
(500と入力した後上のボタンを押すと256になる)

Re:delogoについて

「時間あるとときに」とおっしゃってたから一週間後くらいかなと思ってのんきに構えていたせいで返信が遅れました。
AviUtl側での扱われ方まで教えていただき、便乗質問にもかかわらずこんなに丁寧に回答していただき、ありがとうございました。

その後の処理は(exportしたら)AviUtl側でやってるんですね、フィルター側でやってるんだとばかり思っていました。そりゃいくら探しても見つからないはずで。FILTER_DLL型の構造体に入れている時点で気づくべきでした。

これを参考に自分なりに勉強してみます。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: [email protected]
github twitter

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutl 出力プラグイン
x264guiEx 3.xx
- x264を使用したH264出力
- x264guiExの導入紹介動画>
- x264guiExの導入
- x264guiExのエラーと対処方法>
- x264.exeはこちら&gt

x265guiEx
- x265を使用したH.265/HEVC出力
- x265guiExの導入>
- x265.exeはこちら&gt

QSVEnc + QSVEncC
- QuickSyncVideoによるHWエンコード
- QSVEnc 導入/使用方法&gt
- QSVEncCオプション一覧&gt

NVEnc + NVEncC
- NVIDIAのNVEncによるHWエンコード
- NVEnc 導入/使用方法&gt
- NVEncCオプション一覧&gt

VCEEnc + VCEEncC
- AMDのVCE/VCNによるHWエンコード
- VCEEnc 導入/使用方法&gt
- VCEEncCオプション一覧&gt

svtAV1guiEx
- SVT-AV1によるAV1出力
- svtAV1guiExの導入>
- SVT-AV1単体はこちら&gt

VVenCguiEx
- VVenCによるVVC出力
- VVenCguiExの導入>

ffmpegOut
- ffmpegを使用した出力
- ffmpegOutの導入>


○Aviutl フィルタプラグイン
自動フィールドシフト
- SSE2~AVX512による高速化版
- オリジナル: aji様

clcufilters 
- OpenCL/CUDAのGPUフィルタ集
- 対応フィルタの一覧等はこちら

エッジレベル調整MT
- エッジレベル調整の並列化/高速化
- SSE2~AVX512対応
- オリジナル: まじぽか太郎様

バンディング低減MT
- SSE2~AVX512による高速化版
- オリジナル: まじぽか太郎様

PMD_MT
- SSE2~AVX512による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
Amatsukaze改造版
- AmatsukazeのAV1対応版

tsreplace
- tsの映像のみを置き換えて圧縮

rkmppenc
- Rockchip系SoCのhwエンコーダ

fawutil
- FAW(FakeAACWave)⇔aac変換
- 二重音声の取り扱いにも対応

x264afs (ミラー)
- x264のafs対応版

aui_indexer (使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (使い方)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定
- これまでの測定結果はこちら

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)
SVT-AV1 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR