MonsterX U3.0Rを導入してからオカシイ動作が…
問題は転送速度か?
MonsterX U3.0Rは1080p/60fpsでのキャプチャが可能&HDCPを○○できるという希有なキャプチャユニットだが、いろいろと条件が限られるのが問題。
特に問題になるのが転送速度で、USB3.0を普通に使うだけでは動作が不安定になる。
それはキャプチャユニットが生成するキャプチャデータが300MB/s程度になる為、それを常時転送し続ける必要があるからだ。
USB3.0の最大転送速度は500MB/sだが、それはあくまでも理論値であって実速度とは異なり、しかもそれはUSB3.0のホストコントローラーの性能に左右されてしまう。だからMonsterX U3.0RではIntel製かRenesas製のホストコントローラーでなければならないとしている。
だが、実際はIntel製もしくはRenesas製コントローラーだというだけでもダメで、USB3.0の一つのコントローラーに対して複数の機器を接続していれば、当然帯域は分割される為、その時点で転送速度が足りなくなる。
しかもPCI Express 1.0に接続されているホストコントローラーではPCI Expressの部分で転送速度が足りず、PCI Express 2.0でなければならない。さらにPCI Express 2.0でもx1スロットの場合は単一接続でギリギリ300MB/s程度である為、複数使用の時点でアウトになる。
結果、安心して使う為にはPCI Express 2.0 x4スロットに複数のRenesas製コントローラーを搭載したUSB3.0ボードを取り付けるという方法しかないわけで、私は何とかその環境を構築した。
だから転送速度で困る事は一切ない。
もし、転送速度が足りないとなると、ほとんどの環境でブルースクリーンが発生するようだ。
これもMonsterX U3.0Rのオカシイ動作の一つだが、私のPCで発生するオカシイ動作とは異なる。
もう一つの問題
ウチのPCで発生している問題というのは、キャプチャ時に一瞬映像と音声が止まるという問題で、長くても数秒、短い時には1秒以下という間、止まるのである。
転送速度が間に合わないのかも…と思ってHDMIケーブルを変えてみたりもしたが、そもそも転送速度が足りないとブルースクリーンという状況になるケースが多いというから、転送速度ではないのかもしれない。
となると…原因は何だ?
いろいろ考えてみて、一つの結論に至ったのが、省電力問題である。
USB3.0のドライバにもよるのだが、一定の条件でUSB3.0で供給する電力を省電力にできるモードを持っている。
だからまずその機能をオフにしてみる。結果変わらず。
同じようにPCI Expressのコントローラーにもそういうものがないかと思い、それらしきものと見えたものを片っ端からオフにするも効果無し。
一体どうすりゃいいんだろ…と「MonsterX U3.0R」と「映像 途切れる」、「省電力」を検索ワードとしてネットで検索してみたら、面白い情報が浮上してきた。
「※プレビューが乱れる人はEIST&C1EもしくはCnQをオフにしましょう。」
これはキャプチャ製品のMonsterシリーズのスレッドに書かれた情報のようで、私と同じような現象に悩んでいる人がいる、という証しでもある。
CPUの省電力モード
まず「EIST」とは何か? という事である。
これは「Enhanced Intel SpeedStep Technology」の略で段階的にCPUの処理性能と消費電力のバランスを取って省電力化を図る技術の事である。つまり、これがONになっていると処理の重さとのバランスで自動的に一定の省電力機能が働く事になる。
次に「C1E」だが、これはC1Eステートと呼ばれるもので、簡易版EISTと言える。元々このC1Eステートが搭載されていたが、このC1Eステートによる省電力機能はミニマムかマックスか?という2段階の省電力機能でしかなかった。つまりアイドル状態だとミニマム、何かしらの処理をしていればマックスという電力の使い方である。だが、当然だがEISTと密接に関係している機能なので、EISTと同じ設定にしておくのが良いのかもしれない。
「CnQ」というにのは、Intel以外のメーカーの機能名なので、基本的にはこれらCPUの省電力機能をカットする事で動作改善ができるかもしれない。
とりあえず、いろんな動作報告を見た上で実験してみた。
実験結果
まずはC1EステートをOFFにすると効果があったという事例に基づき、同じようにC1EステートのみOFFにしてみた。
結果は…NGで、次にEISTとC1EをOFFにしてみた。その結果は…やはりNGで、どうもネットで調べた結果と異なるような感じになってきた。
今度はEISTのみOFFにしてみたが…結果は同じ。本格的に何かが違う…。
これらの機能は基本的にBIOS UEFIを変更する事で修正するのだが、どうもそれだけではダメなのかもしれない。というのはOS側の電源オプションにもそういった省電力機能の項目があるからだ。
だが、そもそも省電力機能はOSが制御するだけでは機能しないハズで、ハードウェアの機能がそれに伴っていなければならないハズだ。
だからとりあえずBIOS UEFIの設定だけを変更しているのだが、OS側機能も見てみる必要はあるかもしれない。
また、最近はマザーボードもいろんなメーカーで味付けしている場合があり、そのメーカー独自の機能を盛り込んだが故にそれらを変更しないと省電力機能をカットできない可能性がある。
例えば私が使用しているASUSのものだと、他にも電力系機能でいくと「EPU Power Saving Mode」というものがあったり、「CPU Power Management E.I.S.T」というものがあったりする。これらもOFFにしないといけない可能性もあるし、他にもレポートするだけだろうと思うが「CPU C3 Report」、「CPU C6 Report」といった項目も存在する。これらもOFFにしないと省電力機能はOFFにならない可能性がある。
今回の実験ではそこまで見ていないため、近日中にそういった項目を変更してみてテストしてみる事にしよう。


MonsterXのブルースクリーン、転送帯域足らずに、バッファオーバーフロー起こしてた可能性あるのか。
だから、LetsNoteだとブルースクリーンたまにでたのかな?
まぁ、そのNotePCも、もうお亡くなりになったので、再検証もできないわけですが。
USB3.0の不安定感は、色んな要素考慮しなけりゃいけないから、大変ですなぁ…
恐らくですが、そちらで使っていた時も映像と音声が途中で途切れている現象が起きているハズです。
それに気付くかどうかは、自分が確認している映像がキャプチャ映像だったり、自分が確認している音声がキャブチャ音声でないかぎりは、そういう現象が起きている事そのものに気付かないと思います。
私はキャプチャしているPCの上でゲーム映像を観ているので、それに容易に気づく事ができました。
しかし、PC上で確認しない場合、例えばカメラで撮影していて、本人は実機を見ている場合などは、その現象が起きている事を確認する事が非常に困難です。
何しろ、途切れるといっても、数分に一度、しかもヒドイ時で1秒~2秒とかの間の出来事なので、ずっとPCでキャプチャ映像を観ていないと見落とす可能性の方が高いです。
この記事の翌日の記事に、問題解決をした結果を書きましたが、紛れもなくCPUの省電力機能がその減少を引き起こしているので、ましてノートPCであるならば、標準設定で省電力機能は確実に[Enable]になっているハズなのでこの現象は起きていたと推測されます。
USB3.0は、普通であればPCI Express2.0 x1の接続で問題ないですし、最近はIntelやRenesas製コントローラーでなくても安定はしています。
ただ、初期の頃のUSB3.0コントローラーには不具合が多いというだけの事なので、そこさえ理解できていれば普通に使えると思いますよ。