# HG changeset patch # User riono # Date 1581836976 -32400 # Node ID a5e11f973269ae11a9e11da560840fdf0873fceb # Parent f93a34243a0be9b88ec11a1e6c3359573b3f36e5 add Slide diff -r f93a34243a0b -r a5e11f973269 Slide/dummy.txt diff -r f93a34243a0b -r a5e11f973269 Slide/fig/AppleTVRogo.pdf Binary file Slide/fig/AppleTVRogo.pdf has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/AppleTVRogo.png Binary file Slide/fig/AppleTVRogo.png has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/AppleTVRogo.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Slide/fig/AppleTVRogo.svg Sun Feb 16 16:09:36 2020 +0900 @@ -0,0 +1,9 @@ + + + + + + + + + diff -r f93a34243a0b -r a5e11f973269 Slide/fig/EncodeZRLEtoZRLEE.pdf Binary file Slide/fig/EncodeZRLEtoZRLEE.pdf has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/EncodeZRLEtoZRLEE.png Binary file Slide/fig/EncodeZRLEtoZRLEE.png has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/FrameUpdateRectangleColor.graffle Binary file Slide/fig/FrameUpdateRectangleColor.graffle has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/FrameUpdateRectangleColor.pdf Binary file Slide/fig/FrameUpdateRectangleColor.pdf has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/FrameUpdateRectangleColor.png Binary file Slide/fig/FrameUpdateRectangleColor.png has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/FrameUpdateRectangleColor.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Slide/fig/FrameUpdateRectangleColor.svg Sun Feb 16 16:09:36 2020 +0900 @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f93a34243a0b -r a5e11f973269 Slide/fig/ShareScreenSS.pdf Binary file Slide/fig/ShareScreenSS.pdf has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/ShareScreenSS.png Binary file Slide/fig/ShareScreenSS.png has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/ShareScreenSS.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Slide/fig/ShareScreenSS.svg Sun Feb 16 16:09:36 2020 +0900 @@ -0,0 +1,9 @@ + + + + + + + + + diff -r f93a34243a0b -r a5e11f973269 Slide/fig/UpdateRectangleStruct.graffle Binary file Slide/fig/UpdateRectangleStruct.graffle has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/UpdateRectangleStruct.pdf Binary file Slide/fig/UpdateRectangleStruct.pdf has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/UpdateRectangleStruct.png Binary file Slide/fig/UpdateRectangleStruct.png has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/UpdateRectangleStruct.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Slide/fig/UpdateRectangleStruct.svg Sun Feb 16 16:09:36 2020 +0900 @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f93a34243a0b -r a5e11f973269 Slide/fig/UstreamRogo.pdf Binary file Slide/fig/UstreamRogo.pdf has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/UstreamRogo.png Binary file Slide/fig/UstreamRogo.png has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/UstreamRogo.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Slide/fig/UstreamRogo.svg Sun Feb 16 16:09:36 2020 +0900 @@ -0,0 +1,9 @@ + + + + + + + + + diff -r f93a34243a0b -r a5e11f973269 Slide/fig/ZlibTiling.graffle Binary file Slide/fig/ZlibTiling.graffle has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/ZlibTiling.pdf Binary file Slide/fig/ZlibTiling.pdf has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/ZlibTiling.png Binary file Slide/fig/ZlibTiling.png has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/ZlibTiling.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Slide/fig/ZlibTiling.svg Sun Feb 16 16:09:36 2020 +0900 @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f93a34243a0b -r a5e11f973269 Slide/fig/interface-crop.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Slide/fig/interface-crop.svg Sun Feb 16 16:09:36 2020 +0900 @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f93a34243a0b -r a5e11f973269 Slide/fig/treevnc-crop.pdf Binary file Slide/fig/treevnc-crop.pdf has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/treevnc-crop.png Binary file Slide/fig/treevnc-crop.png has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/treevnc-crop.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Slide/fig/treevnc-crop.svg Sun Feb 16 16:09:36 2020 +0900 @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f93a34243a0b -r a5e11f973269 Slide/fig/vnc-crop.pdf Binary file Slide/fig/vnc-crop.pdf has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/vnc-crop.png Binary file Slide/fig/vnc-crop.png has changed diff -r f93a34243a0b -r a5e11f973269 Slide/fig/vnc-crop.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Slide/fig/vnc-crop.svg Sun Feb 16 16:09:36 2020 +0900 @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r f93a34243a0b -r a5e11f973269 Slide/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Slide/slide.md Sun Feb 16 16:09:36 2020 +0900 @@ -0,0 +1,203 @@ +title: 画面配信システム TreeVNC のマルチキャストの導入 +author: Ryo Yasuda, Shinji Kono +profile: 並列信頼研 +lang: Japanese +code-engine: coderay + + + + + + + + + + + + + + + + + +## 画面配信システムの活用 +- 講義やゼミではプロジェクタを使用して、先生が用意した資料を見ることが多い。その際接続不良など、物理的アクシデントが起きる恐れがある +- 画面配信システムで代用する場合がある。画面配信システムのとしてはAppleTVやUstreamなどが挙げられる + - AppleTVは画面共有先がTVに限定されている + - Ustreamは画面の切り替えを行うことができない + +
message +message
+ + +## 画面配信システムの活用 +- 画面配信システムTreeVNCは、自身のPC画面を他者のPCと共有できるソフトウェアである +- javaで書かれているためOSに依存せず、物理的な制限なしに使用可能 +- TreeVNCを使用することで、参加者は手元のPCを使用しながら講義を受ける事が可能になる。切り替えの際も、ボタン一つで共有する画面の切替を可能としている + +## TreeVNCの講義等での活用 +- 講義では先生のPC画面を手元のPCで見ることで、コマンドを手元で打ち間違えや、メモを取る際にPCのみに集中を向けることができるようになった +- ゼミにおいてもコードをつなげるために移動する必要がなく、各自の席で発表者の画面を見ることができる +- 以上のようにTreeVNCは従来のプロジェクタなどよりも利便性が高い + +## VNC +- VNC(Virtual Network Computing)は、RFB(Remote Frame Buffer)プロトコルを用いてPCの遠隔操作を行うことを目的としたリモートデスクトップソフトウェア +- サーバー側とクライアント側に分かれており、起動したサーバーにクライアントが接続することで遠隔操作を可能にしている +- 全てのNodeが一台のサーバーに接続するため負担が大きい + +
message
+ + +## TreeVNCとは +- TreeVNCは本研究室で開発している画面配信システム +- 木構造の接続方式によりNode間で画像データのやりとりを行う +- 各ノードが2回ずつ画像データをコピーすることで配信側の負荷を分散し、大人数での画面配信が可能 + +
message
+ + +## 本研究の概要 +- 画面配信は送信するデータ量が多いため、TreeVNCでは無線接続の場合、画面配信の遅延が大きくなってしまう +- 現在のTreeVNCのデータ転送方法だと、無線接続で送信するには大きすぎる +- 本研究ではMulticastを導入することで、Wifi環境下における画面配信の遅延対策の検討を行なった + +## TreeVNCの画面配信方法 +- RFB (Remote Frame Buffer) プロトコルを利用し、自身の画面をネットワークを通じて送信し他者の画面に表示する +- 他人のPC画面が表示される側と、FrameBufferへの更新が行われる(自身のPC画面を送信する)側に分かれ、それぞれをRFBクライアント、RFBサーバと呼ぶ +- FrameBufferは、メモリ上に置かれた画像データのこと +- RFBクライアントに送信するデータは画面全てではなく、変更があった部分のFrameBufferを送る + + +## Multicastによる画面配信 +- 配信PC画面の変更があった部分のみをUpdateRectangleとしてマルチキャストで一度のみ送信する +- RFBプロトコルでは画像データをRectangleで送信しているため、UpdateRectangleには複数のRectangleが入るような構成をとる + +
message
+ +## Multicastの問題点 +- wifiのMulticast Paketの最大サイズは64KBである +- HDや4Kの画面を更新するためのサイズは大きい + - 4Kの場合8MB x 8Byteで64MB +- 送信データの圧縮と64KB毎のパケット変換が必要 + +## RFBプロトコルのエンコードタイプ +- ZRLEとはRFBプロトコルでサポートされているエンコードタイプの1つ +- zlib圧縮、タイリング、run lengthエンコードを組み合わせている +- 解凍に必要な辞書を書き出すことができないため、途中からデータを受け取ると正確に解凍できなくなる + +
message
+ + +## TreeVNCの画像データ圧縮方法 +- ZRLEを改変したZRLEEを使用している +- 辞書の書き出しを行えるようにし、データを途中から受け取っても解凍することが可能 +- ZRLEを一度解凍し、辞書を書き出して再圧縮を行う +- zlibは適当なタイミングで圧縮を書き出し(flush)を行う必要がある + - zlibのAPIを用いて、適当なタイミングでflushを行なっている + - 1tileずつflushしてしまうと圧縮率を下げてしまう可能性がある + +
message
+ +## Blockingの考察 +- 64KBのパケットに収めるため、ZRLEEで圧縮する前にBlockingを行い、Rectangleの再構成を行う +- ZRLEを解凍したデータのRectangleは以下のような状況になっていると考えられ、Phaseで区別する + - 行の途中から行の最後まで  Phase0 + - 行の最初から最後まで    Phase1 + - 行の最初から行の途中まで  Phase2 + +
message
+ +## Blockingの考察 +- 最大3つのRectangleの再構成を行いつつ、ZRLEEで変換を行いパケットの構成をする +- UpdateRectangleには3つのRectangleが入る + +
message
+ + +## paket lossする可能性 +- wifiのMulticast paketは確実に送信されることが保証されておらず、paket lossする可能性がある +- その対策としては以下の2つが取れる + - 何もしない、定期的に全画面のデータが送信されるため問題ない考える + - 再送要求を行う、処理が複雑であることが予想される +- 現状では何もせず、全画面のデータの送信を待つ方式でも十分実用に耐えると考える + + + + +## まとめ +- WifiでMulticast paketを利用する手法についての考察を行なった + - Wifiの速度とMulticastの信頼性が高ければ実用的である可能性がある + - Blockingは実装中、再圧縮の時間は実用的な時間で済むと予想されている + +- 今後の課題 + - Blockingの実装 + - WifiのMulticast paket lossは接続環境や状況に依存すると思われるためさらなる実験が必要 + - Node接続じの有線接続と無線接続の判断、区別処理の実装 + \ No newline at end of file