自動フィールドシフト 高速化 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)



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

さらに高速化を試みた。

+11
・要らないメモリ確保を行わないようにした。fullHD時に4MB程度の節約。

+12
・フレームバッファへの書き込み方法を変更して高速化。
・ソフトウェアプリフェッチ再投入により高速化。

それほど大きな高速化ではないので、実際にはx264の比重が大きいと殆ど変わらないかも。QSV+afsとかなら変わると思う。



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



続きは高速化のメモ書き。

自動フィールドシフト 高速化 (まとめ)

この前高速化版+10を公開したのだけど、自動フィールドシフト高速化で実際どのくらい速くなっているのか…という話。
プロフィール

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

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

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

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

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

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

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

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

○その他
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 (ミラー)

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

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

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