通信中の状況を確認する方法(接続ステータスの確認)

ビデオ会議の利用者から良く言われることで「音声が途切れる」「映像が乱れる」というのがあります。
音声の途切れに関しては、マイクの場所や、テレビのスピーカーボリューム、部屋の音響特性、雑音環境 etc、いろいろな要因が影響を与えるのですが、映像の乱れに関しては、映像データが相手にうまく届いていない事(=ネットワークの問題)が多々あります。
いずれにしても、「今現在接続先との通信状況はどのようになっているのか?」を確認することにより、トラブルシューティングのきっかけになるとおもいます。

VSXの場合、通信中にリモコンの「?」ボタン(Helpボタン・黄色)を押すと、ステータスの確認画面が表示されます。
HDXの場合、通信中にリモコンの「i」ボタン(Infoボタン・青色)を2回押すと、ステータスの確認画面が表示されます。
ブラウザから管理画面へアクセスして確認することもできます。(「通話の発信」をクリックすると表示されます)
下の画像はWEB管理画面から通信中のステータスを確認したものです。
sshot-2

どのような情報が表示されているか順番に見ていきましょう。
・Call Speed: 「通話」スピードです。よく「通信帯域」と混同されるのですが、ビデオ会議でいうところの「通話スピード」なので、1024Kbpsの通話スピードの場合、IPのヘッダも通信帯域を使うので、ネットワーク上には1.2Mbps~1.4Mbpsくらいのデータが流れたりします。つまり使用されるネットワーク帯域は通話スピードよりも大きくなります。

・Video Protocol: 映像をどのように圧縮するか?の規格です。上記の場合だとH.264という圧縮方式で圧縮しているのがわかります。その他にH.263やH.261があります。圧縮率の高さは H.264>H.263>H.261となります。最近はさらに圧縮率の高いH.264HP(HighProfile)がありますね。圧縮率が高いと、低い帯域で高解像度の動画を送ることができます。720Pの動画を512Kbpsで送信したりできます。ビデオ会議の動画は動画の中の変更があった箇所だけ差分データを送るので、画面全体が大きく変化した場合、ギリギリの帯域だとデータを送りきることができません。その場合は後述のVideo Frame Rateの値を下げることにより対応します。通常は30frame送ろうと努力します。

・Video Annex: ビデオ圧縮に拡張規格がある場合は表示されます。 H.263 Annex.Fみたいな表記になります。Annexがまとまって付いている場合H.263+(I~Tがまとまって付いている)/H.263++(H.263+とU~Wがまとまって付いている)と表記されます。

・Video Format: ビデオの解像度です。QCIF(176×144)、CIF(352×288)、SIF(352×240)、4CIF(704×576)=SD、720P(1280×720)、1080P(1920×1080)などです。

・Audio Protocol: 音声をどのプロトコルで送っているかが表示されます。上記だとSiren22という22KHzの帯域(音声の帯域です、一番下の低い音から、一番上の高い音までの間が22Khzという幅で、この範囲の音を送ることができます)を送れるプロトコルで、LPRというパケットロスのリカバリー技術が使用されているSirenLPRが使用されていることがわかります。その他にSiren14(これはVSXの能力です。14Khzの幅を持った音を送信できます)やG.711/G.722/G.722.1/G.722.1Cなどがあります。ちなみに一般加入電話の帯域は3.5Khzなので、高い音はほとんど聞こえていません。7Khzの音(ViewStationの能力です)が聞こえるとかなりクリアに聞こえ、相手の声は聞き取りやすくなります。

・Total Packets Lost: 通信開始から現在までのパケットロスの数です。パケットロスの値は、自分が送ったデータが相手に届かなかったときにカウントされます。ビデオ会議の場合、通信相手に対し、「100個のデータを送ったけど届きましたか?」「90個しか届いていません」など、通信中にお互いにレポートのやり取りをしています。この値がカウントされます。ビデオ会議が相手に送っているのは音声や映像のUDPデータです。ネットワーク経路上のどこかでパケットロスが起こっているわけですが、端末からはどこでパケットロスしているかまではわかりません。とにかく~個送ったのに~個しか届いていないという結果だけが把握できます。

・% Packet Loss: 上記パケットロスが、一定間隔内でどのくらいの割合で発生しているかの%表示です。(つまり一定間隔でのサンプリング値です。5秒間隔のサンプリング値になります。)1%とか10%といった形式で表示されます。パケットロスのリカバリーの仕組みが無い場合2%程度のパケットロスでも映像の乱れや音声の途切れが発生し、非常に気になります。PolycomのLPR(パケットロスのリカバリー機能)がある場合、5%程度のパケットロスが発生していても気づかない(そう)です。こういったパケットロスのリカバリー機能は、メーカー独自の実装になるので、PolycomとSonyの接続といったような異メーカー間の場合は機能しません。VSXの場合はLPRの前身のPVEC機能が使えます。PVEC(Polycom Video Error Concealment)よりもLPR(Lost Packet Recovery)の方が高機能とのこと。

・Call Encryption: 通信の暗号化方式です。ビデオ会議の暗号化はAESが使用されます。これもPolycomとSonyではAESの方式の違いで暗号化通信ができないことがあるようです。暗号化していない場合、ネットワーク上にはRAWデータが流れますので、理論上はパケットを拾えばデコードが可能です。G.711の様なレガシーなプロトコルは、エンコーダー/デコーダー共に入手しやすいので結構簡単に再生できたりします。Polycom同士の通信なら映像にH.264HP、音声にSiren22などを使用しているので「簡単には」デコーダーは手に入らないかもしれませんね。しかしながらAESで暗号化をかけておけばまずデコードは不可能ということになります。ちなみにビデオ会議の本体は、エンコードとデコードを行う機械という意味でCODEC(コーデック)と呼ぶそうです。

・Call Type: H.323(IPの通信)、H.320(ISDNの通信)、SIP(IPの通信)などが表示されます

・Audio Rate: 上記Call Speedの内、音声のデータを送信するために割り当てられている帯域です。上記の場合だと64Kbpsが音声のデータ用に割り当てられているので1024-64=960Kbpsを映像データの送信に使うことができます。映像データの量は可変です(映像が全く動かない時などは送信されるデータ量も小さくなります)が音声のデータは一定です。パケットサイズも固定で一定の量のパケットが送信され続けます。無音でも大きな音でも関係なく一定です。よく「パケットロスが発生していても音声は途切れないように頑張るんですよ」などと説明してくださることがあるのですが、実際はそのような仕組みはなく、サイズの小さな固定長のパケットが定量送信されているので音声のパケットは網内で破棄されないことが多いだけです。映像のデータサイズは可変で、量も変動するため一定以上のサイズのパケットが破棄される(ミリ秒よりも小さな単位でみるとデータ量がはねるときがあるのでポリシングに引っかかる(秒単位でみるとコールスピード内にはおさまっています))ことがあるためです。実際VoIPの世界では音声のパケットはQoSがかけられ優先処理/帯域保証されることはあるのですが、これはネットワーク側の仕組みになります。ビデオ会議の端末にはその仕組みはありません。(ネットワーク側QoSで使用するToS値などのフラグを送出パケットに付けることはできます。)混同しちゃってる感じですね。

・Video Rate: 上記Call Speedの内Audio Rateを差し引いた帯域が映像の送信に使用されます。ここの値は最大値で、実際に使用している帯域はVideo Rate Usedの方に表示されます。後述のH.239やPeople+Contentプロトコルを使用してPCの画像送信を行うと、ここの帯域が減らされます。トータルでCall Speed以上の帯域を使用しないように調整されます。ここの帯域表示が Call Speed ー Audio Rate 以下になることがあります。これは通信中にパケットロスが発生していると、自動的に帯域を下げるDBA(動的帯域割当)という機能が動作している場合です。DBAはパケットロスが発生すると映像送信に使用する帯域を下げます。しばらく様子をみて依然パケットロスが発生しているとさらに下げます。パケットロスが発生しなくなると少し帯域を上げます。しかしながらパケットロスが発生するネットワークは帯域以外に原因がある場合が多いので、DBAがうまく機能しているイメージはありません。

・Video Rate Used: 実際に映像送信に使用している帯域です。上記Video Rate以上に使用することはありません。

・Video Frame Rate: 映像のフレームレートです。通常は30fps(一秒間に30枚の映像)を送信しようと頑張りますが、映像に使用できる帯域と、送らないといけないデータ量の兼ね合いで30fps送信することができない場合、ここの数値が落ちます。FPSが低くなると、映像がコマ送りの様になります。最近の機器(Group700など)は(それなりに帯域があれば)1080Pで60フレームの送信ができたりします。すごいですね・・・

・Video Packets Lost: パケットロスの内、映像パケットがどれだけロスしたか表示されます。

・Video Jitter: 映像パケットのJitter値です。AからBの通信を考えた場合、Aから送信されたパケットがBに届くまでの時間を遅延(Latency)といいますが、その次のパケットが届くまでの間の時間を揺らぎ(jitter)として計算します。次のパケットが届くまでの時間は一定でなく、早く届く時もあれば、少し遅れて届く時もあります。その平均値をJitter値として表示します。(サンプリングはHDXの場合、1分間隔)あまりにJitterが大きいと、映像を作るのに必要なパケットをバッファしておくことが困難になり、映像を作ることができません。(Jitter値が小さい(揺らぎがあまりない)環境で遅延だけが大きい場合、あまり問題になりません、相手からの映像や音声が遅延分遅く再現されるだけです)

・Audio Packets Lost: パケットロスの内、音声パケットがどれだけロスしたか表示されます。

・Audio Jitter: 音声パケットのJitter値です。Jitterはリアルタイムにパケットを処理するシステムでは厄介な問題です。

・Maximum Audio Jitter: 上記Jitter値はサンプリング値ですが、そのうちの最大値が表示されます。

・Content Protocol: H.239やPeople+Contentプロトコルを使用してPCの画像送信を行う時、そのPC画像をどの圧縮形式で送っているかが表示されます。H.264/H.263などが表示されます。一昔前はH.263で圧縮を行い、1024×768の解像度のPC画面を送信するのが一般的な規格でしたが、HDXなどはH.264圧縮を使用して720pのコンテンツ(PC画像)送信が行えます。コンテンツはカメラの映像とは別に2つ目のデータとして送信されます。つまりデュアルストリームとして2つのデータが送られることになります。このためコンテンツを送信するために使用するネットワーク帯域は、上記Video Rateから拝借され、都合Call Speed以上に帯域が使用されないように調整されます。どの程度コンテンツに帯域が割り当てられるかはHDXの設定に依存します。割り当てが少ない場合PCコンテンツのフレームレートは低下します(つまりコマ送りっぽくなる)が解像度は低下しません。

・Content Format: コンテンツの解像度が表示されます。1024×768、720pなどが表示されます。

・Content Rate: コンテンツの送信にどれだけの帯域が割り当てられているかが表示されます。最大値です。

・Content Rate Used: 上記割り当ての内、実際にどれだけ使用されているかが表示されます。

・Content Frame Rate: コンテンツのフレームレートです。H.263で1024×768の画像が送信されている時はだいたい7fpsが最大地でしたが、最近は720pで30fpsのコンテンツが送信できたりします。これまた最新のGroup700では1080p/60fpsなどというコンテンツ送信ができる能力があります。(受け手側も当然能力が必要になります)

・Content Packets Lost: パケットロスの内、コンテンツパケットがどれだけロスしたか表示されます

・Video FEC Errors: この値は謎です。(ドキュメントをあさってみましたが明確な記述がありません)FEC Errorsなので映像データの順方向誤り訂正数(LPRの補正数)だと思うのですが、パケットロスの数値が上がっている時でもここの数値は0のままでした。どういった要因で数値が上がるのか謎です。

・Far Site Name: 接続先の機器のシステム名(H.323名)などが表示されます。

・Far Site System: 接続先システムの機器種やバージョンが表示されます。

・Far Site Number: IPで通信している時は接続先システムのIPアドレスやE.164番号、ISDNの場合は電話番号が表示されます。