自動フィールドシフト 高速化版 7.5a+22

・前回の更新(7.5a+21)でAVX2のコードを動かすと異常終了する問題を修正。
ご報告ありがとうございました。



更新の場合の注意点
※7.5a+19以前から更新すると、Aviutlのプロファイルに保存されている自動フィールドシフトの設定が消えてしまいます。

プロファイルの設定を保存するには、7.5a+20の導入前に、Aviutlフォルダの中にsave_stg_afs.exeをコピーして、ダブルクリックして実行してください。「プロファイル名.cfg.afs.ini」という名前で設定が保存されるので、新しいバージョンを導入後、これを読み込んでください。

ダウンロード>>
ダウンロード (ミラー) >>



ソースはこちら。


スポンサーサイト



自動フィールドシフト 高速化版 7.5a+21

・フル解析のほうにAVX512の実装を追加。
・フル解析のほうのAVX2版の実装を改良。

最近やっとAVX512の不具合が取れたので、公開。

それなりに頑張ってAVX512の実装をしてみたけど、残念ながら、あまり速くなっているようには見えない。VCコンパイラのAVX512の組み込み関数の扱いは微妙そうだったので、一番重いところはxbyakを使って手作業でアセンブラ書くのに近いことやってるけど、それでも微妙。AVX512版だけでなく、AVX2版のほうでもいろいろやって命令数を減らそうと頑張ってみたけど、こちらも残念ながら特に速くなってないかも。

やはりもう演算自体は十分に速く、メモリ帯域で引っかかってるっぽい…。



更新の場合の注意点
※7.5a+19以前から更新すると、Aviutlのプロファイルに保存されている自動フィールドシフトの設定が消えてしまいます。

プロファイルの設定を保存するには、7.5a+20の導入前に、Aviutlフォルダの中にsave_stg_afs.exeをコピーして、ダブルクリックして実行してください。「プロファイル名.cfg.afs.ini」という名前で設定が保存されるので、新しいバージョンを導入後、これを読み込んでください。

ダウンロード>>
ダウンロード (ミラー) >>



ソースはこちら。


自動フィールドシフト 高速化 7.5a+20

この前は、自動フィールドシフトではいろいろやってだいぶ速くなったのだけど、これ以上は速くするのが難しくなってきているという話だった。

ただ、実はまだ方法が残っているといえば残っていて、実際にコメントを頂いたこともあった。そこで、もう少しやってみたというのが今回。やったのは2つで、

・YUY2フィルタモードへの対応して高速化。
・通常(YC48)モードで高速な簡易解析モードを追加。


どういうことなのかをちょっと書いていく。

自動フィールドシフト 高速化 (振り返り編)

自動フィールドシフトはaji様によるとても素晴らしいAviutlプラグインである。なんならrigayaがAviutlを使い始めたのは自動フィールドシフトがあったからだったりする。

ただ残念ながら唯一の欠点として、処理速度が遅いという問題があったので、これをいろんな方法で高速化してきた。まあ試行錯誤とかでだいぶ時間も突っ込んできたし、自動フィールドシフト高速化は(おそらくあまり期待してる人はいないと思うけど)結構いろいろやってみているもののひとつ。

今回は、これを振り返ってみる。

自動フィールドシフト 高速化版 +19

解除Lv1の状態でシーンチェンジ検出(解除Lv1)にチェックを入れると落ちる問題を修正。
ご指摘いただきありがとうございました。



ダウンロード>> (skydrive) (dropbox)



自動フィールドシフト 高速化版 +18

去年(2015年)は自動フィールドシフトを高速化できず、まことに遺憾であった。

でも、やっぱり執念深く高速化しようとは思っているわけで、やっとネタを思いついて、実装してみた。ところが、演算量が少し減るぐらいの話だったので、計っても全く分からない程度という情けない結果に終わった。

やはり演算量なんぞよりメモリアクセスを減らさないと速くならないようだ。全く残念だ。

なので、メインはプリセットボタンの追加、コンパイルオプションの修正など。

自動フィールドシフト 高速化版 +17

今回は高速化ではないけど更新。

解析用バッファも確保を分割して行うことで、メモリ確保エラーを低減。
さすがにこれでメモリ確保エラーが出たら、メモリブロックサイズの問題ではなく、本当にメモリが足りないか、AviutlのVirtual Sizeが2GB(or 4GB)超えてるんだと思う…。



にしても速くするネタがもう尽きた。全体並列化もやってしまったのでネタがそろそろ本当にない…。

もうハードウェアに期待するしかないんだけど…Skylakeはどうなんでしょ。

・AVX512BW / AVX512DQはSkylakeに載るのかな? (AVX512Fはどうでもいいのですよ…)
・Skylakeでシャッフル系のスループットの悪さは治るかな?
・Skylakeで256bitシャッフルのレイテンシの悪さは治るかな?
・そもそも本当に来年出るのかな?

出る出る詐欺で遅れに遅れたBroadwellちゃんにはあんまり興味ないです…。



ダウンロード>> (skydrive) (dropbox)



自動フィールドシフト 高速化版 +16

+16
フレームバッファ確保を分割して行うことで、メモリ確保エラーを減らし、安定性を向上。
提案してくださったHayatePP様、ありがとうございました。

+15
2つの処理を統合することで高速化。(2% 前後)

これまで並列化されていなかった部分も並列化(サブスレッド)。
これにより、Sandy-E / Ivy-E / Haswell-E などで、~25% 高速化。

自動フィールドシフト 高速化版+14

懲りずにさらに高速化。

といってもごくわずか。

今回は、並列化して高速化しようとしてみたのだけど、結局そんなに速くならなかった。



ダウンロード>> (skydrive) (dropbox)



自動フィールドシフト 高速化版+13

例外"0xc0000005"で落ちてしまう問題を修正。

メモリ確保に失敗した時のチェックが正しく行われていなかったのを修正。「フレームキャッシュの確保に失敗しました」ときちんと出すように。

…やっと見つけました…。見つけたらアホなバグだったわけですが…。今回、そしてこれまで報告してくださった方々、本当にありがとうございました。また、これまで長らく原因不明ですみませんでした。

ただ、メモリ確保に失敗してしまうことがあり得るのは相変わらずです(メモリ確保の失敗はどうにもなりません)。そのため結局「フレームキャッシュの確保に失敗しました」と出てエンコードが中断してしまうかもしれません。この場合は、x64 OSでしたらLargeAddressAwareをオンにして、Aviutlの使えるメモリ領域を拡大していただければ改善すると思います。



ダウンロード>> (skydrive) (dropbox)



プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: rigaya34589@live.jp
github twitter

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

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

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

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

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

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

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

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

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


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

clfilters 
- OpenCLベースの複数の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対応版

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

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