忍者ブログ

AMD Fluid Motion(流体モーション)対応DirectShowフィルタ その2

当方の環境下でAMD Fluid Motionによる動作を確認出来ました。

また、Radeonユーザーさんからの報告でCatalyst Omegaドライバにおいて既にAMD Fluid Motionが24p->60p変換だけでなく、30p->60p変換にも対応している事が確認出来たので(IntelのiGPUも対応している様です)、後者の変換にも対応したテストバージョンを新たに公開しました。

http://bluesky23.yu-nagi.com/bfrc/BlueskyFRC_0.0.3.zip
(すいません、ファイルの直リンが出来ないのでお手数ですがブラウザのアドレス欄にコピー&ペーストして下さい)

MPC-HCでの導入方法等については前回の「AMD Fluid Motion(流体モーション)対応DirectShowフィルタ」をご覧下さい。


追伸:
Tac 様
こちらでもコメント投稿を試みましたがNGワード等問題ないのに何故か拒否されてしまい書き込めませんでしたので、お礼だけでもここでさせて頂きます。ありがとうございました。

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

0.0.3での検証報告

更新お疲れ様です。
例によってIntelHD4600環境での報告ですが、BlueskyFRC 0.0.3を試してみたところ、
0.0.2では2-3周期のリピートフレームで再生されていた24pのMP4やMOVの再生が、
0.0.3だとおかしくなってしまいました。
フレームの繰り返し方の違いを示すと以下のようになります。
(MPC-HC1.7.7で一度停止ボタンを押してからコマ送りした結果)
  0.0.2の場合: 1-1- 2-2-3-3-3- 4-4-5-5-5- 6-6-7-7-7- 8-8-9-9-9- ・・・
  0.0.3の場合: 1-1-2-3-4- 3-3-4-5-6- 5-5-6-7-8- 7-7-8-9-10- ・・・
つまり0.0.3ではフレーム先行とフレーム戻りが発生するため、ガクガクになってしまいます。

その代わりというか、0.0.2で報告した
  「5フレームに1枚しか動かず12fps相当に落ち込んでしまう24pのmkvサンプル」
は、0.0.3だと2-3周期のリピートフレームで表示されるようになりました。
自分で作ったmkvではMP4と同じ結果になるので、なぜあれらのmkvサンプルだけが
異なる挙動になるのかさっぱりわかりませんが・・・。

なお30pについては、0.0.3で2枚ずつのリピートフレームで表示されるのを確認しました。
  1-1-2- 3-3- 4-4- 5-5-・・・

テストに使った24pと30pのMP4ファイルをアップしておきました。
フレーム番号のカウントと、左右対称で動き回る図形の動画となっています。
適当に作ったものですが、自由にご利用ください。
  http://www1.axfc.net/u/3374968.zip
ついでに、右半分だけSVP(SmoothVideoProject)でフレーム補間したサンプルも入れてあります。
FluidMotionが効いているなら、この動画の左半分のような単純なリピートフレームではなく、
右半分のように中間フレームが生成されているはずというサンプルです。
SVPの設定は高スペック向けの設定5gをそのまま使いました。
FluidMotionが生成する中間フレームの精度や特性なども気になるところですね。

Re:0.0.3での検証報告

検証およびサンプルのご提供ありがとうございます。

30p->60p変換の結果からするとフレーム補間自体が機能してないですね。
AMDとIntelでこうも違うとは・・・。

お手数をおかけして大変申し訳ないのですが、以下のバージョンで3パターン(フォルダ0、フォルダ1、フォルダ2)について30pについてのみで結構ですので検証していただけないでしょうか?

http://bluesky23.yu-nagi.com/bfrc/BlueskyFRC_0.0.4.zip

よろしくお願いします。

  • Bluesky
  • 2014/12/17(Wed.)

0.0.4での検証報告

IntelHD4600環境で上に上げたサンプルMP4でBlueskyFRC_0.0.4を試してみたところ、
フォルダ0,1,2の全てでフレームの繰り返し方は0.0.3と同じになりました。
  24p: 1-1-2-3-4- 3-3-4-5-6- 5-5-6-7-8- 7-7-8-9-10- ・・・
  30p: 1-1-2- 3-3- 4-4- 5-5- 6-6- 7-7- 8-8- 9-9- 10-10- ・・・

24p→60p変換の挙動はフレーム先行とフレーム戻りという問題がありますが、
30p→60p変換はこの動作で正しいと思うのですが違うのでしょうか?

 1.DXVA-HDの「フレームレート変換」には「リピートフレーム方式」「補間フレーム方式」の
   どちらかが指定できる。
 2.BlueskyFRCはデバイスに「補間フレーム方式」のフレームレート変換を命じるもの。
 3.AMDのFluidMotion対応環境だと、「補間フレーム方式ならまかせろー」ということで
     24p: 1-1'-2-2'-2''- 3-3'-4-4'-4''- 5-5'-6-6'-6''- 7-7'-8-8'-8''- 9-9'-10-10'-10''- ・・・
     30p: 1-1'- 2-2'- 3-3'- 4-4'- 5-5'- 6-6'- 7-7'- 8-8'- 9-9'- 10-10'- ・・・
   という感じで新たに中間フレームを生成して24/30→60fpsのフレームレート変換を行う。
   (数字は元の24p動画でのフレーム番号。'や''つきの数字は新たに生成された中間フレーム。
    並び方はイメージなので、実際に元フレームや中間フレームがこのように配置されるとは限らない。)
 4.IntelHDだと「補間フレーム方式は無理。リピートフレーム方式で勘弁して。」ということで例えば
     24p: 1-1-2-2-2- 3-3-4-4-4- 5-5-6-6-6- 7-7-8-8-8- 9-9-10-10-10- ・・・
     30p: 1-1- 2-2- 3-3- 4-4- 5-5- 6-6- 7-7- 8-8- 9-9- 10-10- ・・・
   という感じで同じフレームを繰り返して24/30→60fpsのフレームレート変換を行う。

という動作になるものと思っていました。
なので30p→60p変換の動作は0.0.3の時から正しく、
24p→60p変換の動作は、特定mkvを除けば0.0.2の時の
動作が正しかったのかなと思っていました。

元々の目的はAMD Fluid Motion Videoの利用ですから、
IntelHDでの挙動はあまり気にしなくていいかもしれませんが、
他に検証したい点などあれば遠慮なく仰って下さい。

Re:0.0.4での検証報告

ありがとうございます。

最初のバージョンで「2個のフレームレート変換が利用可能です」と表示されたと言う事は中間フレームを生成する事による24p->60pと30p->60pの変換に対応しているという事になるので、30pで期待しているパターンはIntelHD4600でも1,1',2,2',3,3'になります。

当初、Fluid Motionによる24p->60p変換がうまくいかず、Tacさんの書き込みによりIntelも対応している事が分かったので原因が切り分けられると思い検証をお願いしたしだいで、Fluid Motionの方は問題なくなったのですが、Intelについても対応出来たらと思っています(せっかくのDXVA対応ですので)。


>他に検証したい点などあれば遠慮なく仰って下さい。

ありがとうございます。早速お言葉に甘えさせて下さい。

以下のバージョンで2パターン(フォルダ0、フォルダ1)について前回同様30pについてのみで結構ですのでお願いします。なお、24pについては最初のバージョンでの動作に戻っていると思います。
http://file.bluesky23.blog.shinobi.jp/BlueskyFRC_0.0.5.zip


追伸:
ご提供いただいたファイルを使って24pを60pに変換してみました。

Catalyst Control Centerでデモモードを有効にした状態なので、画面左半分がFluid Motion無効、右半分が有効になります。なお、サイズ制限のため冒頭15秒間のみとなります。また、公式には非対応のRadeon 7750での結果なので、公式に対応しているGCN1.1以降の世代のGPUやAPUとは結果が異なるかもしれません。ご了承下さい。
http://file.bluesky23.blog.shinobi.jp/FluidMotion.zip

  • Bluesky
  • 2014/12/18(Thu.)

BlueskyFRC_0.0.5での検証報告

IntelHD4600でBlueskyFRC_0.0.5を試してみました。フォルダ0、フォルダ1ともに
  24p: 1-1- 2-2-3-3-3- 4-4-5-5-5- 6-6-7-7-7- 8-8-9-9-9-
  30p: 1-1-2- 3-3- 4-4- 5-5- 6-6- 7-7- 8-8- 9-9- 10-10-
となり、冒頭の乱れを除けば
  24p: 2-3-2-3-周期のリピートフレーム(コピーフレーム)
  30p: 2-2-2-2-周期のリピートフレーム(コピーフレーム)
となっています。
フォルダ1を利用した場合の再生画面キャプチャを上げておきました。
  http://www1.axfc.net/u/3375531.zip

もしかするとリピートフレームという言葉で行き違ってしまったような気もしますが、
同じフレームを周期的にコピーしての24/30コマ→60コマ化はされていますし、
AMD Fluid Motion Videoのような映像のベクトル解析等を利用した
新規中間フレーム生成機能がIntelHDで実装されているとは思えませんので、
コピーでの水増しという結果になるのかなと。
引き続き何かありましたら仰って下さいませ。

FluidMotion.zipのほうも拝見いたしました。ありがとうございます。
AMD Fluid Motion Videoとは異なる、単純なフレームブレンド等による
フレーム補間がされているという可能性も考えていたのですが、
たしかにAMD Fluid Motion Videoと呼んで差し支えない補間がされているように見えますね。
Radeon 7750で効いているというのは、どう捉えればいいのでしょう・・・。
CatalystOMEGAのCCCのビデオ→品質で「流体モーション」のチェック項目が出るのも
A10や290等のFluidMotion公式対応APU/GPUだけだと思っていた
(別のブログで、FX-7500だとチェック項目が出てこないと書かれていた)のですが、
Radeon 7750では出ているということですよね。
何らかの性能条件を満たしていれば出現して、FluidMotionの利用も可能ということなのでしょうか。
差し支えなければ参考までにCPU等のPC構成も教えていただけると嬉しく思います。

多くのAMDユーザーには朗報になりそうですね。
しかし「PowerDVDが頑張って仕事してるんだよ!」という
CyberLink社のアピールは一体なんだったのか・・・。
BDへのFluidMotion適用には引き続きPowerDVDが必要なのは確かだとは思いますが、
BD以外への対応をしなかった理由がよくわからないですね。

今後Nvidiaでの挙動を検証して下さる方も出てくると面白そうです。

Re:BlueskyFRC_0.0.5での検証報告

ありがとうございます。駄目な様ですね。

以下のバージョンで2パターン(フォルダ0、フォルダ1)について前回同様30pについてのみで結構ですので検証していただけますか?
http://file.bluesky23.blog.shinobi.jp/BlueskyFRC_0.0.6.zip

これで変化がなければ大変申し訳ないのですがIntelについてはあきらめたいと思います。


>新規中間フレーム生成機能がIntelHDで実装されているとは思えませんので、

ちょっと調べてみたので、そのソースを貼っておきます。

IntelでもHaswell世代から対応している様です。
http://news.mynavi.jp/articles/2012/09/25/idf03/001.html(Photo27)

おそらくMedia SDKにも記述があると思うので、興味がおありでしたら調べてみて下さい。


>Radeon 7750では出ているということですよね。
>何らかの性能条件を満たしていれば出現して、FluidMotionの利用も可能ということなのでしょうか。
>差し支えなければ参考までにCPU等のPC構成も教えていただけると嬉しく思います。

これは強制的に有効にしたもので条件によるものではありません。方法については、今は公式対応機種での動作確認をお願いしている段階なので、それが終了したらあらためて記事を書くつもりです。


>しかし「PowerDVDが頑張って仕事してるんだよ!」という
>CyberLink社のアピールは一体なんだったのか・・・。

そこは画質面の事を言ってるのだと思います。同一ソースで比較すればさすがにPowerDVDの方が優れていると。これで同等か劣っている事になればそれこそなんだったのか、という事になると同時にAMD開発陣ががんばってくれたと言う事でしょう。

  • Bluesky
  • 2014/12/20(Sat.)

無題

R290Xを使用しています。
このフィルタに興味があって動作を試してみたいのですが、Windows7の為に確認が出来ません。
万が一、と思い試してみましたが「24pコンテンツを検出しました」のダイアログが2回でるだけで効いていませんでした…
もし可能であればWindows7に対応して頂けるとありがたいです

Re:無題

もちろん出来るなら対応したいのですが、残念ながら出来ません。これはAMD側のDXVA対応による制限となるのでBlueskyFRC側ではどうする事も出来ない部分となります。ご了承下さい。

  • Bluesky
  • 2014/12/20(Sat.)

BlueskyFRC0.0.6+IntelHD4600での検証報告

BlueskyFRC 0.0.6を試してみました。
フォルダ0については、24p/30pともに0.0.5と変わらずフレームコピーによる水増しでした。
フォルダ1については、エラーが発生してMPC-HCが落ちてしまうという結果になりました。
イベントビューアでログを見てみたところ、BlueskyFRC32/64.dllで障害が発生しているようです。

Intelのフレーム補間のURLありがとうございます。
まさかそんな話があったとは思いもよりませんでした。
あらためて調べてみましたが、
  https://software.intel.com/en-us/articles/frame-rate-conversion-frc-in-intel-media-sdk
にそれっぽい記述があるくらいで、なかなか情報が見当たらないですね。
MFX_FRCALGM_FRAME_INTERPOLATIONはソフトウェアモードだと無視される(?)というような
記述が気になりますが、残念ながら自分にはよくわかりませんでした・・・。

また、最新のドライバ3960のリリースノートに
  ・Improved video playback experience with enhanced Frame Rate Conversion based on global motion vectors
という一文があることに気づき、3907から3960に更新した上で
BlueskyFRC0.0.3~0.0.6を試してみましたが、結果は3907の時と同様でした。
この一文を見つけた時にはかなり期待したのですが無念。
何らかの設定が必要なのか、それともこの方法では使えないのか・・・。

Re:BlueskyFRC0.0.6+IntelHD4600での検証報告

ありがとうございます。

>イベントビューアでログを見てみたところ、BlueskyFRC32/64.dllで障害が発生しているようです。

ご不便をおかけして申し訳ありません。フォルダ0は今まで通りDirect3D11を使っていたのですが、フォルダ1はDXVA-HDを使っているので関係ないところでエラーが出てしまった様です。ちょっとコードを見直してみます。

追記:
「例外オフセット」が表示されていますか?されていたら教えて下さい。


>また、最新のドライバ3960のリリースノートに
>  ・Improved video playback experience with enhanced Frame Rate Conversion based on global motion vectors

という事はドライバは対応しているって事になりますね・・・。

  • Bluesky
  • 2014/12/21(Sun.)

Re:BlueskyFRC0.0.6+IntelHD4600での検証報告

>「例外オフセット」が表示されていますか?されていたら教えて下さい。

例外コード:0xc0000005
障害オフセット:0x00003b64

一応イベントログのSSを上げておきました。
 http://2sen.dip.jp/cgi-bin/upgun/up1/source/up1176.jpg

Re:Re:BlueskyFRC0.0.6+IntelHD4600での検証報告

ありがとうございます。

修正したものをアップしておきました。
http://file.bluesky23.blog.shinobi.jp/BlueskyFRC_0.0.7.zip

今回は1パターンのみとなります。よろしくお願いします。

  • Bluesky
  • 2014/12/21(Sun.)

BlueskyFRC0.0.7+IntelHD4600での検証報告

BlueskyFRC0.0.7を試してみたところ、x86/x64ともに
「~を検出しました」「~変換に対応しています」のダイアログの後に
「引数が無効です」というダイアログが表示され、OKを押しても
「引数が無効です」のダイアログが出続けるという状態となりました。
映像は最初のフレームで止まったままとなります。

一応DXVACheckerのトレースログを貼っておきます。

DXVA2_ProcessDeviceCreated, mpc-hc, 00:00:05.6583824
 Device: ProgressiveDevice
 RenderTarget: A8R8G8B8
 Size: 1280x720
DXVAHD_CreateVideoProcessor, mpc-hc, 00:00:07.1803320
 VideoProcessor: 7DD2D599-41DB-4456-9395-8B3D18CEDCAE
DXVAHD_VideoProcessStreamState, mpc-hc, 00:00:07.1928752
 StreamNumber: 0
 State: D3DFormat
 DataSize: 4
 SetState: False
DXVAHD_VideoProcessStreamState, mpc-hc, 00:00:07.1928760
 StreamNumber: 0
 State: FrameFormat
 DataSize: 4
 SetState: False
DXVAHD_VideoProcessStreamState, mpc-hc, 00:00:07.1928776
 StreamNumber: 0
 State: FrameFormat
 DataSize: 16
 SetState: False
DXVAHD_VideoProcessStreamState, mpc-hc, 00:00:07.1928784
 StreamNumber: 0
 State: FilterBrightness
 DataSize: 8
 SetState: False
DXVAHD_VideoProcessStreamState, mpc-hc, 00:00:07.1928792
 StreamNumber: 0
 State: FilterHue
 DataSize: 8
 SetState: False
DXVAHD_VideoProcessStreamState, mpc-hc, 00:00:07.1928800
 StreamNumber: 0
 State: FilterSaturation
 DataSize: 8
 SetState: False
DXVAHD_VideoProcessStreamState, mpc-hc, 00:00:07.1928808
 StreamNumber: 0
 State: FilterNoiseReduction
 DataSize: 8
 SetState: False
DXVAHD_VideoProcessStreamState, mpc-hc, 00:00:07.1928816
 StreamNumber: 0
 State: FilterEdgeEnhancement
 DataSize: 8
 SetState: False
DXVAHD_VideoProcessBltHD, mpc-hc, 00:00:07.2102168
 TargetRect: 0, 0, 1280, 720
 OutputFormat: YUY2
 ColorSpace: 0
 OutputFrame: 0
 StreamCount: 1
DXVAHD_VideoProcessBltHD_Stream, mpc-hc, 00:00:07.2102192
 SourceRect: 0, 0, 1280, 720
 DestinationRect: 0, 0, 1280, 720
 InputFormat: NV12
 FrameFormat: Progressive
 ColorSpace: 0
 StreamNumber: 0
 OutputIndex: 0
 InputFrameOrField: 0
 PastFrames: 1
 FutureFrames: 3
DXVAHD_VideoProcessBltHD, mpc-hc, 00:00:07.2189664
 TargetRect: 0, 0, 1280, 720
 OutputFormat: YUY2
 ColorSpace: 0
 OutputFrame: 1
 StreamCount: 1
DXVA2_ProcessBlt, mpc-hc, 00:00:07.2252080
 TargetFrameTime: 0
 Rect: 0, 0, 738, 415
DXVAHD_VideoProcessBltHD, mpc-hc, 00:00:09.0695112
 TargetRect: 0, 0, 1280, 720
 OutputFormat: YUY2
 ColorSpace: 0
 OutputFrame: 1
 StreamCount: 1
DXVAHD_VideoProcessBltHD, mpc-hc, 00:00:09.8142216
 TargetRect: 0, 0, 1280, 720
 OutputFormat: YUY2
 ColorSpace: 0
 OutputFrame: 1
 StreamCount: 1
DXVAHD_VideoProcessBltHD, mpc-hc, 00:00:11.4498224
 TargetRect: 0, 0, 1280, 720
 OutputFormat: YUY2
 ColorSpace: 0
 OutputFrame: 1
 StreamCount: 1

Re:BlueskyFRC0.0.7+IntelHD4600での検証報告

ありがとうございます。
DXVA Checkerのログまで貼っていただき恐縮です。

今回はフォルダが二つありますが、「0」で前回と同じ様に「引数が無効です」と表示された場合にのみ「1」も試していただけると幸いです。

http://file.bluesky23.blog.shinobi.jp/BlueskyFRC_0.0.8.zip


別件ですが、以前コメント内で貼っていただいたサンプルファイルの以下のリンクを新たに書く記事に記載してもよろしいでしょうか?
http://www1.axfc.net/u/3374968.zip

よろしくお願いします。

  • Bluesky
  • 2014/12/21(Sun.)

BlueskyFRC0.0.8+IntelHD4600での検証報告

BlueskyFRC0.0.8での検証結果です。
0でもエラーは出ませんでしたが、0も1もフレームの順序がバラバラになっているようです。
フレームの繰り返しパターンやDXVACheckerのログを以下に貼っておきました。
  http://pastebin.com/w5BDphx4

>サンプルファイルの以下のリンクを新たに書く記事に記載してもよろしいでしょうか?

はい。自由に使っていただいて構いません。
ただ、最初にアップした3374968.zipの方は公開期限を2015/3/31に設定してしまいました。
後でアップした
  http://www1.axfc.net/u/3375495.zip
の方は公開期限を設定していませんし、フレーム番号表示を左右両方にするなどの
映像改善や諸々の内容追加もしていますので、そちらの方が良いかもしれません。
改変や再配布等も自由としていますので、自由に使っていただいて構いません。

Re:BlueskyFRC0.0.8+IntelHD4600での検証報告

さすがに万策尽きたのでIntelの対応は諦めたいと思います。長々と検証にお付き合いいただき本当にありがとうございました。また、対応出来ずに終わった事をお詫び申し上げます。

サンプルの件、ありがとうございます。次の記事に貼らせていただきます。

ありがとうございました。

  • Bluesky
  • 2014/12/21(Sun.)

Re:BlueskyFRC0.0.8+IntelHD4600での検証報告

恥ずかしながらDXVAでFluidMotionが効くようになるという
4gamerの情報は正直眉唾物だと思っていたので、
実際に効くことを証明なさったのは素晴らしいことだと思います。
IntelHDにもフレーム補間機能があるらしいという情報も
初めて知りましたし、こちらも色々と勉強になりました。
ありがとうございました。

カレンダー

05 2017/06 07
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

ブログ内検索

忍者 P R

PR