どうもkohaniiです。
以前、デジタル顕微鏡のHDMI映像をパソコンで見るために購入したUSB HDMIキャプチャなんですが、
Macでも使用できるUVC(USB Video Class)デバイスなのはいいのですが、
HDMIキャプチャとして考えると30fpsまでとゲームなどにはあまり使えません。
他のHDMIキャプチャとしてはAVerMediaの製品を持っているのですが、ドライバーがWindowsの物しかなく、ほとんどの製品ではWindows用でドライバーが無いと使うことができません。
そうなるとUVCデバイスのUSB HDMIキャプチャを探すのですが、真のフルHD 60fpsがキャプチャできる物がまあ見つかりません。
試しにYouTubeで検索してみると、Linux向けのHDMIキャプチャの紹介動画が見つかりました。
タイトルに「Linux Streaming Doesn’t suck anymore」
日本語にすると「Linuxストリーミングはもう嫌じゃない」と前までかなり大変だった様です。
動画で紹介されたデバイスを調べてみると、4K 60fpsと求めていたものよりかなりオーバースペックで、ほとんどの物の値段が高くて買えません。
Wiistar USB3.0 HD CAPTURE
そしてさらに調べると最高にピッタシな商品が見つかりました。
この動画の方はデジタル顕微鏡をパソコンで録画するために購入したそうで、なんと分解して基板も公開しています。
Shenzhen Wii-Star Technologyという中国の映像機器を製造している会社の商品の様です。
概要欄にAliExpressの商品リンクがあります。
Wiistar本社のショップから販売されている正規品のようです。
ほとんどレビューも購入もされていませんが、商品に60fpsと書かれていないのが好感を持てます(そう書いた商品で実質30fpsな事例があります)
このくらいの値段なら試してみる価値がありそうなので、購入してみました。
届いた
届きました。
かなり大きめの袋の中にまた袋が入っていました。
この袋の中に段ボール製の箱が入っていました。
裏面にはMADE IN CHINAなど書いてあります。
箱の中身
箱の中には本体、説明書、USB Type-C Type-Aケーブル、USB Type-C Type-A変換、謎の8センチCDが入っています。
本体は金属製のケース(アルミかな?)でかなりしっかりしてそうです。
ドライバ?が入っているのかわからないですが8センチCDがついてきました。怖いのでパソコンで見ていません。
本体です。
結構チープな感じがしますが、ケースは金属製でしっかりしています。
USB Type-Cとアナログ音声端子です。
フォーンジャックの左右に小さな穴があります。
HDMI 入力、パススルー出力側です。
端子が金色なので金メッキでしょうか。
とりあえず分解
とりあえず分解してみます。
側面のネジを4個外せばパネルが外れて基板が取り出せます。
基板です。
左のHDMIの片方に黒いスポンジが乗っていますがケース内で振動しない様にするための物の様です。
真ん中の放熱版が載っているチップがメンチップでしょうか。
放熱板はありますが空気を通す穴はありません。
基板裏面です。
何個か表面実装のICが乗っています。
右上のダイオードのシルクはなんなのでしょうか、パターンでショートされています。
半田付けが荒いのか電解コンデンサの端子の近くが白くなっています。
おもて面の右下にWS_UHV30_V11 2020/02/24と書かれています。
かなり新しい設計の基板のようです。
乗っているチップを詳しくみてみましょう。
USBまわりと謎のチップV28
USBまわりです。
謎のチップV28が乗っています。これがUSBに映像を送るためのチップでしょうか。
USBからの配線が多いのでおそらくUSB 3.0を使っているのでしょう。
近くに24MHzの水晶発振子がのっています。
CS4344 Delta-Sigma DAC
その近くにあるチップのCS4344 デルタシグマDACです。
フォーンジャックに繋がっているのでフォーンジャックはHDMIの音声出力用です。
謎のチップC22とIT6801FN HDMI Receiver
HDMIの近くにある謎のチップC22(おそらくパススルー用)とIT6801FNです。
IT6801FNはHDMI Receiverチップです。データシートは見つかりませんでした。
HDMIの映像をデコードしてパラレルのRGB24かYCbCr16に変換して出力します。
HDMIの音声にも対応していて192kHz 24bitまでの音声をI2Sで出力することができます。
IT6801FNの近くに27MHzの水晶発振子、C22の近くに24MHzの水晶発振子があります。
IT6801FNと放熱板が付いたチップが接続されているので、放熱板が付いたチップで映像の変換をしているのかもしれません。
MS8005 8051 Core MCU
IT6801FNの裏側にあるMS8005です。
このチップは1T 8051コアのマイコンです。
おそらくIT6801FNの設定を行うために使われています。
24C02 EEPROM
その横にある24C02 2kbit EEPROMです。
おそらく設定を読み出すために使われています。
Pm25LQ512 フラッシュメモリ
謎のV28の裏側周辺にあるPm25LQ512です。
これは512kbitのシリアルフラッシュメモリです。
実はV28か放熱板の付いたチップはFPGAで、これがコンフィグレーションメモリだったりするんでしょうか。
とまあ面白そうなチップはこんなもんでしょうか。
ケースに戻してネジをしめて元に戻しました。
OBSの設定
映像フォーマット
OBSで録画したいので映像キャプチャデバイスを追加すると"FHD Capture"として認識されます。
プリセット
プリセットで選べる解像度は、
1920x1080 1280x720 960x540 640x480 320x240 High
の6種類でした。(1080p 720p以外動作確認していません)
プリセットを使用しない場合
プリセットを使用せず解像度を使用した場合の対応解像度は
1920x1080 1280x1024 1440x900 1400x900 1280x960 1360x768 1280x720 1024x768 800x600 640x480
の10種類です。(1080p 720p以外動作確認していません)
対応フレームレートは
60 59.94 50 48 30 30
の6(5?)種類です。(60fps以外動作確認していません)
おそらく最後の30は29.97の間違いでしょうか。
その下にもさらに設定があります。
対応している入力フォーマットは
YUV2 - 422YpCbCr8_yuvs NV12 - 420YpCbCr8BiPlanar
の2つです。
YUV2(YUV422)は横方向の色解像度が半分になり、
NV12(YUV420)では横方向と縦方向の色解像度が半分になります。
対応色空間は
Rec.601 Rec.709
の2つです。
Rec.601はSD画質用の色空間で、アナログテレビなどで使用されます。
Rec.709はHD画質用の色空間です。現在の映像などではこちらが標準です。
対応している映像のレンジは
一部 全部
の2種類です。
一部の場合は8bitのRGBの値が16 ~ 235の範囲に制限されます。主にテレビなどで使用されます。
全部の場合は8bitのRGBの値が0 ~ 255の全ての値が使用されます。主にパソコンのモニターなどで使用されます。
OBSのデフォルト設定ではかなりフレームを落としてしまって60fpsが出なかったので、詳細設定のカラーフォーマットをRGBにすることで60fpsが出ました。
これは使用しているパソコンのスペックの問題かもしれません。
デフォルトはNV12です。
試しにVLC media playerでキャプチャデバイスのメディア情報を見てみると、無圧縮32bit RGBで映像が出ています。
もちろんビットレートはすごいことになっています。(700Mbit/s 以上)
VLCではカクカクして見れた物ではありませんでした。
以前のHDMIキャプチャでも使用したQuick Cameraで滑らかにプレビューできました。
音声フォーマット
音声は映像とは別で音声入力キャプチャを使う必要があります。
接続するとオーディオデバイスとして"FHD Capture"として認識します。
サンプリングレートに関わらず、ステレオの16bitです。
画像下のCAPTUREはMacBookのHDMI音声出力の物で関係ありません。
対応サンプリングレートは
8000 Hz 11025 Hz 16000 Hz 22050 Hz 24000 Hz 32000 Hz 44100 Hz 48000 Hz
の8種類です。
音声入力キャプチャの設定はありません。
使ってみる
試しにNintendo Switchのドックから出るHDMIを録画してみます。
このデバイスをMacBook Proに接続して、SwitchのHDMIをINに接続、ラグのない画面を見たいのでOUTから出るHDMIを液晶モニタに接続しました。
プリセットの1920x1080 60fpsでSwitchのマリオカート8デラックスのCPU戦を録画してみました。
基本的にアクションゲームはド下手なのでゲームの内容は気にしないでください。
細かい問題点は後で書きますが、ちゃんと1080p 60fpsが出ています。
ちなみに使用中は本体がかなり暖かくなります。
クセ
ただ、かなりのクセがありました。
音と映像がずれる
この問題はショップのFAQに書いてありますが、映像と音声は時間がずれています。
映像と音声のずれを確認するための動画を作ってみました。
1秒ごとにメトロノームの音が鳴り、映像にはタイムコードが表示されます。
(音が出ます)
これをパソコンに映しHDMIキャプチャーをOBSで録画して編集ソフトで確認すると、音声が8フレーム進んでいます。
60fpsなので0.1333333...秒音声が進んで映像との差があります。
これは映像の処理に時間がかかっていて、音声の処理が早いことで起こることなので、仕方ありません。
音声を遅らすことで対処できます。
たまにフレームを落とす
確かに60fpsは出ていますが、たまにフレームを落とすようで少し固まります。
動画を載せておきます。
たまにカクッとなるのが分かると思います。
色がおかしい
Nintendo Switchのキャプチャー機能で撮った画像と、HDMIでキャプチャーした画像を比べてみると、かなり色がおかしいことがわかると思います。
黒沈みが見られるため、Switchの設定でRGBレンジはリミテッドレンジにしています。
MacBookのHDMIに接続して、カラーバー画像を表示してみると確かに色がおかしいです。
参考用に元画像がこちらです。
使用したディスプレイ設定はこちらです。
試しにRGB 64x64x64のLUTを作ってみました。
8x8x8からのトリリニア補間なので、完全には正確ではありません。
左が正常で、右がこのキャプチャーです。
まず、全体的に暗くてガンマがかかっています。
そしてあまりにも赤が出ていません。というか、緑だけ明るめです。
OBSのLUTで使用するため、その逆補正用のLUTも作ってみました。
かなり明るくするフィルターになりました。
PNGはここからダウンロードできるので、ご自由にお使いください。
このLUTを適用したものと比較してみます。
↓がLUT前で
↓がLUT適用後です。
ちなみにこの記事のアイキャッチ画像もこのデバイスで録画したものです。
たまに色がおかしくなる
同じ画面を表示し続けるとわかりますが、たまに色がパッと変わっています。
gifアニメにして比較してみます。
原因は分かりません。接触不良などのハズレを買ったのかもしれません。
画質がガビガビ
これが一番の問題です。
パソコンのHDMI出力を録画してズームしたものです。
上の画像はPNGで保存して最近隣補間で拡大したものです。
無圧縮YUVで映像が送られているのにも関わらず、jpegのモスキートノイズが乗っています。
そして謎のシャープフィルターがかかっていてしかもボケています。
ボケていると言っても、内部の解像度が低いわけではない感じです。
マリオカートの画面から切り取った画像のRec. 709のY(輝度信号)です。
ブロックノイズをシャープが目立ちます。
そしてRec. 709のB-Y信号(Cb、Pbとも言う色差の1つ)です。
上に比べてモザイク柄になっていますので色信号は間引かれています。
なぜか横方向に縞模様が入っています。
細かい模様があると色が滲む
先ほどの画像にも実はありましたが、特に楽とk、rあたりに色がついています。
本来は白い文字なので白くなるはずですが、オレンジ色や水色に滲んでいます。
これはパソコンのサブピクセルレンダリングなどで色がついているのではなく、HDMIキャプチャーのよって色がついています。
試しに1ピクセルごとのチェッカーボード画像を録画してみました。
こんな画像です。(拡大しないと細かすぎて見えません)
表示してみるとあらびっくり、緑か紫一色に染まってしまうではありませんか。
激しい点滅が起こりますので苦手な方は動画を再生しないでください。
ウィンドウを移動して模様の白と黒が入れ替わると紫か緑に変化するようです。
原因はわかりませんが、これは避けられなそうです。
HDMI接続時にノイズ画面が映る
これは特に問題はありませんが、MacBookへHDMIを接続するときにノイズ画面が映ります。
その瞬間を録画してみました。ホワイトノイズの様な映像が映った後、規則性のあるノイズが映り、正常な画面が表示されます。
録画に支障はありませんが、壊れたんじゃないかと少し心配になります。
かなりクセのあるデバイスですが、うまく使えば普通に使用できそうです。
おわり
コメント