changeset 27:59e3ff9abfa8

add new English abstract
author e165729 <e165729@ie.u-ryukyu.ac.jp>
date Thu, 09 May 2019 02:25:52 +0900
parents 749c91efcd9b
children ef4d9aff7018
files Paper/riono-sigos.pdf Paper/riono-sigos.tex
diffstat 2 files changed, 26 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
Binary file Paper/riono-sigos.pdf has changed
--- a/Paper/riono-sigos.tex	Thu May 09 02:15:22 2019 +0900
+++ b/Paper/riono-sigos.tex	Thu May 09 02:25:52 2019 +0900
@@ -46,11 +46,11 @@
 \author{河野 真治}{Shinji Kono}{IEUR}[kono@ie.u-ryukyu.ac.jp]
 
 \begin{abstract}
-講義やゼミではPC画面で用意した資料を見ながら進行することが多い。しかし、発表者のPC画面の切り替えでケーブルを差し替えを行う必要や、PCと接続するアダプターによっては正常にPC画面を表示できない場合がある。当研究室で開発しているTreeVNCは、発表者のPC画面を参加者のPCに表示する画面配信システムである。サーバに接続したクライアントをバイナリツリー状に接続し、配信コストを分散させる仕組みを取ることで、多人数が接続しても処理性能が下がらないような設計になっている。しかし、画面共有は送信するデータ量が多いため、無線 LAN 接続の場合、画面の配信に遅延が生じてしまう。そこで、multicast でのデータ通信の実装やデータの分割・圧縮方法の評価を行い、TreeVNC のmulticastの有用性を評価する。
+講義やゼミではPC画面で用意した資料を見ながら進行することが多い。しかし、発表者のPC画面の切り替えでケーブルを差し替えを行う必要や、PCと接続するアダプターによっては正常にPC画面を表示できない場合がある。参加者もプロジェクタに集中を割く必要があり、手元のPCと相互に参照する場合、負担になる場合がある。当研究室で開発しているTreeVNCは、発表者のPC画面を参加者のPCに表示する画面配信システムである。サーバに接続したクライアントをバイナリツリー状に接続し、配信コストを分散させる仕組みを取ることで、多人数が接続しても処理性能が下がらないような設計になっている。しかし、画面共有は送信するデータ量が多いため、無線 LAN 接続の場合、画面の配信に遅延が生じてしまう。そこで、multicast でのデータ通信の実装やデータの分割・圧縮方法の評価を行い、TreeVNC のmulticastの有用性を評価する。
 \end{abstract}
 
 \begin{eabstract}
-In lectures and seminars, it often progresses while looking at the materials prepared on the PC screen. However, it may be necessary to replace the cable by switching the PC screen of the presenter, or the PC screen may not be displayed properly depending on the adapter connected to the PC. TreeVNC, developed by our laboratory, is a screen distribution system that displays the presenter's PC screen on the participant's PC. The client connected to the server is connected in a binary tree, and distribution cost is distributed, so that the processing performance does not decrease even if many people connect. However, since screen sharing involves a large amount of data to be transmitted, in the case of wireless LAN connection, there will be a delay in screen distribution. Therefore, we evaluate the implementation of data communication in multicast and the data division / compression method, and evaluate the usefulness of TreeVNC's multicast.
+In lectures and seminars, it often progresses while looking at the materials prepared on the PC screen. However, it may be necessary to replace the cable by switching the PC screen of the presenter, or the PC screen may not be displayed properly depending on the adapter connected to the PC. Participants also need to focus on the projector, which can be a burden when cross-referencing with a PC at hand. TreeVNC, developed by our laboratory, is a screen distribution system that displays the presenter's PC screen on the participant's PC. The client connected to the server is connected in a binary tree, and distribution cost is distributed, so that the processing performance does not decrease even if many people connect. However, since screen sharing involves a large amount of data to be transmitted, in the case of wireless LAN connection, there will be a delay in screen distribution. Therefore, we evaluate the implementation of data communication in multicast and the data division / compression method, and evaluate the usefulness of TreeVNC's multicast.
 \end{eabstract}
 \maketitle
 
@@ -82,6 +82,7 @@
 これにより、人数分のコピーと送信の手間を分散することができる。(図\ref{fig:TreeStructure})。
 バイナリツリー状に接続することで、N台のクライアントが接続しにきた場合、従来のVNCではサーバ側がN回のコピーを行なって配信をする必要があるが、TreeVNCでは各ノードが2回ずつコピーをするだけで配信が可能となる。
 送信されるデータは従来の方法ではNノードに対してN-1の通信が必要であるが、木構造を用いても通信の数は変わらない。
+
 バイナリツリーのルートのノードをRoot Nodeと呼び、そこに接続されるノードをNodeと呼ぶ。Root Nodeは子Nodeにデータを渡す機能、各Nodeの管理、VNCサーバから送られてきたデータの管理を行なっている。各Nodeは、親Nodeから送られてきたデータを自身の子Nodeに渡す機能、子Nodeから送られてきたデータを親Nodeに渡す機能がある。
 
 \begin{figure}[htb] %PDF
@@ -152,12 +153,6 @@
 
 TreeVNCの木構造のネットワークトポロジーはRoot Nodeが持っているnodeListで管理している。Nodeの接続が切れた場合、Root Nodeに切断を知らせなければならない。TreeVNCはLOST\_CHILDというメッセージ通信で、Nodeの切断を検知および木構造の再構成を行なっている。LOST\_CHILDの検出方法にはMulticastQueueを使用しており、ある一定時間MulticastQueueから画像データが取得されない場合、MemoryOverFlowを回避するためにTimeoutスレッドが用意されている。そして、Timeoutを検知した際にNodeとの接続が切れたと判断する。
 
-\subsection{ZRLEE}
-TreeVNCでは、ZRLEE\cite{taninari:2012a}というエンコード方法でデータの圧縮を行う。ZRLEEはRFBプロトコルで使用できるZRLEというエンコードタイプを元に生成される。
-
-ZRLEはZlib\cite{zlib}で圧縮されたデータとそのデータのバイト数がヘッダーとして送信される。Zlibはjava.util.zip.deflaterとjava.util.zip.inflaterで圧縮と解凍が行える。しかしjava.util.zip.deflaterはデコードに必要な辞書を書き出す(flush)ことが出来ない。従って、圧縮されたデータを途中から受け取るとデータを正しく解凍することが出来ない。そこでZRLEEは一度Root Nodeで受け取ったZRLEのデータをunzipし、データをupdate rectangleと呼ばれる画面ごとのデータに辞書を付与してzipし直すことで初めからデータを読み込んでいなくても解凍できるようにした(図\ref{fig:ZRLEE})。
-辞書をクリアすることによりadaptive compressionを実現していることになり圧縮率はむしろ向上する。
-
 \begin{figure}[htb] %PDF
 \begin{center}
 \includegraphics[width=8cm]{Image/EncodeZRLEE.pdf}
@@ -166,10 +161,21 @@
 \end{center}
 \end{figure}
 
+\subsection{ZRLEE}
+TreeVNCでは、ZRLEE\cite{taninari:2012a}というエンコード方法でデータの圧縮を行う。ZRLEEはRFBプロトコルで使用できるZRLEというエンコードタイプを元に生成される。
+
+ZRLEはZlib\cite{zlib}で圧縮されたデータとそのデータのバイト数がヘッダーとして送信される。Zlibはjava.util.zip.deflaterとjava.util.zip.inflaterで圧縮と解凍が行える。しかしjava.util.zip.deflaterはデコードに必要な辞書を書き出す(flush)ことが出来ない。従って、圧縮されたデータを途中から受け取るとデータを正しく解凍することが出来ない。
+
+そこでZRLEEは一度Root Nodeで受け取ったZRLEのデータをunzipし、データをupdate rectangleと呼ばれる画面ごとのデータに辞書を付与してzipし直すことで初めからデータを読み込んでいなくても解凍できるようにした(図\ref{fig:ZRLEE})。
+辞書をクリアすることによりadaptive compressionを実現していることになり圧縮率はむしろ向上する。
+
+
+
 \subsection{ShareScreen}
 従来のVNCでは、配信者が切り替わるたびにVNCの再起動、サーバ、クライアント間の再接続を行う必要がある。TreeVNCは配信者の切り替えのた度に生じる問題を解決している。
 
 TreeVNCを立ち上げることで、ケーブルを使用する必要なしに、各参加者の手元のPCに発表者の画面を共有することができる。画面の切り替えについてはユーザがVNCサーバへの再接続を行うことなく、ビューワー側のShare Screenボタンを押すことで配信者の切り替えが可能になっている。
+
 TreeVNCのRoot Nodeは配信者のVNCサーバと通信を行なっている。VNCサーバから画面データを受信し、そのデータを子Nodeへと送信している。配信者切り替え時にShare Screenを実行すると、Root Nodeに対し SERVER\_CHANGE\_REQUESTというメッセージが送信される。このメッセージにはShare Screenボタンを押したNodeの番号やディスプレイ情報が付加されている。メッセージを受け取ったRoot Nodeは配信を希望しているNodeのVNCサーバと通信を始める。
 
 \begin{figure}[htb] %PDF
@@ -184,12 +190,14 @@
 TreeVNCはRoot Nodeが複数のネットワークに接続している場合、図\ref{fig:multinetworktree}のようにネットワーク別に木構造を形成する。TreeVNCはRoot NodeがTreeManagerというオブジェクトを持っている。TreeManagerはTreeVNCの接続部分を管理しており、木構造を管理するnodeListを生成する。このnodeListを元に、新しいNodeの接続や、切断検出時の接続の切り替え等を行う。Tree ManagerはRoot Nodeの保持しているネットワーク毎に生成される。新しいNodeが接続してきた際、interfacesからNodeのネットワークと一致するTree Managerを取得し、Node接続の処理を任せる。
 
 
+
 %\section{マルチキャストの導入}
 \section{有線接続との接続形式の違い}
 画面配信のデータ量は膨大なため、現在のTreeVNCでVNCServerに無線LAN接続を行なった場合、画面配信の遅延が大きくなってしまう。
 この場合でも画面切り替えの機能は有効である。つまり、画面を提供するPCのみを無線経由で接続し、配信を希望する側は有線を使用することができる。ここで、Wifi のMulticast の機能を用いて配信側にもWifiを使用することが可能であると考えられる。Tree Root は無線LANに対して、変更する UpdateRectangle を Multicast で一度だけ送信する。
 
 Wifi のMulticast packet のサイズは 64kbyte が最大となっている。HDや4Kの大きさの画面更新は8Mb * 8byteで圧縮前で64MB程度になる。
+
 これを圧縮しつつ、64kbye 毎のパケットに変換して送る必要がある。
 Wifi のMulticast packet は確実に送られること保証されていない。通し番号を付けて欠落を検出することはできるが、再送処理は複雑であることが予想される。
 
@@ -199,11 +207,18 @@
 
 \section{RFBのUpdateRectangle の構成}
 
-RFB のUpdateRectangle は以下の表\ref{tb:updateRectangle}の構成になっている。一つのupdateRectangleには複数のRectangleは入っていて、
-さらに一つ一つのRectangleの encoding type がある。ここでは ZRLEで encode された rectangle  が一つサーバから送られてくる。
+RFB のUpdateRectangle は以下の表\ref{tb:updateRectangle}の構成になっている。一つのupdateRectangleには複数のRectangleは入っていて、さらに一つ一つのRectangleの encoding type がある。ここでは ZRLEで encode された rectangle  が一つサーバから送られてくる。
 rectangle には zlib で圧縮されたデータが指定された長さだけ付いてくる。このデータは、64x64 の tile にさらに分割されている(図\ref{fig:rectangle})。
 tile 内はパレットとかがある場合があるが、Run length encode されたRGBデータである。
 
+\begin{figure}[htb] %PDF
+\begin{center}
+\includegraphics[width=8cm]{Image/FrameUpdateRectangle.pdf}
+\caption{Rectangleの分割}
+\label{fig:rectangle}
+\end{center}
+\end{figure}
+
 
 このパケットを64kbyteに収まる三つのRectangleに再構成する。この時に、tile 内部は変更する必要はないが、Rectangleの構成は変わる。
 ZRLE を展開しつつ、パケットを構成する必要がある。
@@ -213,13 +228,7 @@
 
 64kbyte のpacketの中には複数の tile が存在するが、連続して Rectangle を構成する必要がある。行の途中から始まり、途中で終わる可能性があるので、三つのRectangleが必要になる。
 
-\begin{figure}[htb] %PDF
-\begin{center}
-\includegraphics[width=8cm]{Image/FrameUpdateRectangle.pdf}
-\caption{Rectangleの分割}
-\label{fig:rectangle}
-\end{center}
-\end{figure}
+
 
 \begin{table}[hp]
     \caption{updateRectangleの構成}