Intel HD Graphicsのフレーム補間は効かない…
Tac様にコメントいただいたので、少し確認してみました。
結論から言うと、Intel HD Graphicsでフレーム補間ができるようなことが書いてあるのですが、現状、実際にはフレーム補間は効かないようです。
Intel Media SDKのvpp処理の中に、フレーム補間機能は存在し、MFX_FRCALGM_FRAME_INTERPOLATIONを指定することでフレーム補間ができそうに書いてあります。(マニュアルおよびこのへん)
しかし、実際にQSVEnc 1.27で実装してみたところ、うまく動かず、補間ではなく単純にフレーム水増しで処理されてしまうため、この機能はQSVEnc 1.27公開時には無効化してありました。(コードに残骸は残ってます、そしてそのまま忘れてました)
そして今日もう一度よく調べてみたのですが、Media SDK 2015のRelease NotesのKnown Limitationsの中に以下のようにあるのを見つけてしまいました…。
VPP always uses simple FRC algorithm based on repeat/drop frames and ignores MFX_FRCALGM_FRAME_INTERPOLATION flag.
(VPPはいつも単純なコピー/ドロップによってフレームレートを変更するので、MFX_FRCALGM_FRAME_INTERPOLATIONは無視されるよ。)
ということだそうです…。じゃあそのフラグ、マニュアルに書かなくていいじゃんよ…。
結論から言うと、Intel HD Graphicsでフレーム補間ができるようなことが書いてあるのですが、現状、実際にはフレーム補間は効かないようです。
Intel Media SDKのvpp処理の中に、フレーム補間機能は存在し、MFX_FRCALGM_FRAME_INTERPOLATIONを指定することでフレーム補間ができそうに書いてあります。(マニュアルおよびこのへん)
しかし、実際にQSVEnc 1.27で実装してみたところ、うまく動かず、補間ではなく単純にフレーム水増しで処理されてしまうため、この機能はQSVEnc 1.27公開時には無効化してありました。(コードに残骸は残ってます、そしてそのまま忘れてました)
そして今日もう一度よく調べてみたのですが、Media SDK 2015のRelease NotesのKnown Limitationsの中に以下のようにあるのを見つけてしまいました…。
VPP always uses simple FRC algorithm based on repeat/drop frames and ignores MFX_FRCALGM_FRAME_INTERPOLATION flag.
(VPPはいつも単純なコピー/ドロップによってフレームレートを変更するので、MFX_FRCALGM_FRAME_INTERPOLATIONは無視されるよ。)
ということだそうです…。じゃあそのフラグ、マニュアルに書かなくていいじゃんよ…。