低遅延ビデオキャプチャ製品
遅延の原因
ビデオキャプチャにおける遅延の原因はほぼ「データ圧縮」である。
必要な帯域
- フルHD, 60fps = 1920 x 1080 x 4 x 60 = 475MB/s
USBの帯域
- USB 2.0 = 60MB/s
- USB 3.0 = 625MB/s
- USB 3.1 = 1250MB/s
見ての通り「フルHD60fps」を流すにはUSB 2.0では帯域が全然足りない。USB 3.0になると理論値ではフルHD60fpsを流せるが、現実問題として理論値ギリギリの数値など出るはずもなく、やっぱり足りない。
この問題を解決すべく、安いビデオキャプチャ製品ではUSBの狭い帯域に大きなデータを流す手法として「Motion JPEGなどで圧縮して送信する」ということが行われている。大雑把にいえばJPEGに圧縮して送信しているわけだ。これによりUSB 2.0の60MB/sという狭い帯域でもフルHDの動画を流すことができる。
ただJPEG圧縮に時間がかかる。表示するパソコン側もJPEG伸張に時間がかかる。これが遅延である。
解決策:圧縮速度を上げる
ビデオキャプチャ製品のハードウェアを高性能にしてJPEG圧縮の速度を高速化する手法である。1万円前後の製品に多い。
利点はJPEGの伸張はさほど重くないのでPC側が低性能でも良い。 ほぼどんなポンコツPCでも利用できるため家電量販店などで売りやすい。
欠点はJPEG圧縮されているので映像の劣化は避けられない。
解決策:圧縮しない
USB 3.1やUSB 3.2の広い帯域を使って無圧縮で力任せにデータを垂れ流す手法である。
2万円以上する製品はほぼこれ。構造的には非常にシンプルなので安くできそうなものだが、「ほぼ業務用」とあまり需要がないので価格は高い傾向にある。
利点はPC側で表示するだけなら「ほぼ遅延ゼロ」にできる。また無圧縮なので劣化も一切ない。
欠点はハイスペックなPC側が必要な点であり、ポンコツな社畜PCなどに繋いだバカから「使えない」と苦情が殺到しかねないため、家電量販店などでは売りにくいという問題を抱えている。
またUSBケーブルなどにノイズが乗ると映像が映らないことがある。デジタルなので「劣化」ではなく「断線」のような状態になる。1メートル以上のケーブルを使うとでのエラー率は結構高い。