Mercurial > hg > Papers > 2020 > riono-thesis
changeset 23:e18aecd16936
add new chapter4 and add coexistence img
author | riono <e165729@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 14 Feb 2020 18:21:24 +0900 |
parents | 0f95ad78a36c |
children | fce3f9c18d8d |
files | FinalThesis/chapter3.tex FinalThesis/chapter4.tex FinalThesis/fig/FrameUpdateRectangle.graffle FinalThesis/fig/FrameUpdateRectangle.pdf FinalThesis/fig/coexistence.graffle FinalThesis/fig/coexistence.pdf FinalThesis/main.pdf FinalThesis/main.tex riono-thesis.mm |
diffstat | 9 files changed, 42 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/FinalThesis/chapter3.tex Fri Feb 14 03:36:26 2020 +0900 +++ b/FinalThesis/chapter3.tex Fri Feb 14 18:21:24 2020 +0900 @@ -1,10 +1,22 @@ -\chapter{MalticastのためのBlockingの実装} +\chapter{Multicastに向けたBlockingの実装} \label{chap:poordirection} \section{有線接続と無線LAN接続との違い} -画像配信のデータ量は膨大なため、現在のTreeVNCでVNCサーバに無線LAN接続を行なった場合、画面配信の遅延が大きくなってしまう。 +現在のTreeVNCでは有線接続と無線LAN接続のどちらでも、VNCサーバから画面配信の提供を受けることが可能である。しかし画像配信のデータ量は膨大なため、現在のTreeVNCでVNCサーバに無線LAN接続を行なった場合、画面配信の遅延が大きくなってしまう。 + +無線LAN接続時の場合でも画面切り替えの機能は有効であるため、VNCサーバ側が無線LANで接続を行い、クライアント側は有線接続を行うことで画面配信が可能となる。ここで、WifiのMulticastの機能を用いてクライアント側でもWifiを使用することが可能であると考えられる。Root Nodeは無線LANに対して、変更するUpdate RectangleをMulticastで一度だけ送信する。 + +有線接続の場合は従来通り、VNCサーバ、Root Node、Nodeからなるバイナリツリー状に接続されるため、有線接続時と無線LAN接続時でのVNCサーバの接続方法を分割することが可能である(図\ref{fig:coexistence})。こうすることにより、新しいNodeが無線LAN接続であっても有線接続の木構造には影響を及ぼさない。 -この場合でも画面切り替えの機能は有効であるため、VNCサーバ(配信)側が無線LANで接続を行い、クライアント側は有線接続を行うことで画面配信が可能となる。ここで、WifiのMulticastの機能を用いてクライアント側でもWifiを使用することが可能であると考えられる。Root Nodeは無線LANに対して、変更するUpdate RectangleをMulticastで一度だけ送信する。 +\begin{figure}[htb] %PDF +\begin{center} +\includegraphics[scale=0.35]{fig/coexistence.pdf} +\figcaption{接続方法の分割} +\label{fig:coexistence} +\end{center} +\end{figure} + +\newpage WifiのMulticast Packetのサイズは64KByteが最大となっている。4Kディスプレイを例にとると、4Kディスプレイの大きさの画面更新には8MByte(画素数) \* 8Byte(色情報)で圧縮前で、64MByte程度となる。 @@ -32,12 +44,12 @@ \label{tb:updateRectangle} \end{table} -1つのUpdate Rectangleには複数のRectangleが入っており、さらに1つ1つのRectangleにはx,y座標や縦横幅、encoding type が含まれているRectangle Headerを持っている。ここではZRLEで圧縮されたRectangleが1つ、VNCサーバから送られてくる。RectangleにはZlib圧縮されたデータが、datelengthsと呼ばれる指定された長さだけ付いてくる。このデータは、さらに64x64のtileに分割されている\ref{fig:BlockingUpdateRectangle}中 Tile)。 +1つのUpdate Rectangleには複数のRectangleが入っており、さらに1つ1つのRectangleにはx,y座標や縦横幅、encoding type が含まれているRectangle Headerを持っている。ここではZRLEで圧縮されたRectangleが1つ、VNCサーバから送られてくる。RectangleにはZlib圧縮されたデータが、datelengthsと呼ばれる指定された長さだけ付いてくる。このデータは、さらに64x64のtileに分割されている(図\ref{fig:BlockingUpdateRectangle}中 Tile)。 \newpage tile内はパレットなどがある場合があるが、通常はRun Length encodeされたRGBデータである。 -これまでのTreeVNCではVNCサーバから受け取ったRectangleを分割せずにZRLEEへ再構成を行なっていた。これをMluticastのためにデータを64KByteに収まる最大3つのRectangleに再構成する(図\ref{fig:BlockingUpdateRectangle})。この時に、tile内部は +これまでのTreeVNCではVNCサーバから受け取ったRectangleを分割せずにZRLEEへ再構成を行なっていた。これをMluticastのためにデータを64KByteに収まる最大3つのRectangleに再構成する(図\ref{fig:BlockingUpdateRectangle})。この時にtile内部は変更する必要はないが、Rectangleの構成は変わる。ZLREを展開しつつ、Packetを構成する必要がある。 \begin{figure}[htb] %PDF @@ -49,10 +61,16 @@ \end{figure} -Zlibは丁度良い所で圧縮をflushする必要がある。 -このためには +Zlibは丁度良い所で圧縮をflushする必要がある。このためには、ZlibのAPIを用いて、適当なタイミングでflushを呼ぶ。この時に1tileずつflushしてしまうと圧縮率を下げる可能性がある。 + +64KByteのPacketの中には複数のtileが存在するが、連続してRectangleを構成する必要がある。3つの +Rectangleの構成を下記に示す。 - +\begin{itemize} +\item 行の途中から始まり、行の最後までを構成するRectangle(図\ref{fig:BlockingUpdateRectangle}中 Phase0) +\item 行の初めから最後までを構成するRectangle(図\ref{fig:BlockingUpdateRectangle}中 Phase1) +\item 行の初めから、行の途中までを構成するRectangle(図\ref{fig:BlockingUpdateRectangle}中 Phase2) +\end{itemize} \section{TileLoop} @@ -60,4 +78,4 @@ \section{Packet Lost} WiftのMulticast Packetは確実に送られることが保証されていない。データに通し番号をつけて、欠落を検出することはできるが、再送処理は複雑であることが予想される。そこで、一定時間ごとに全画面のデータを送信することによってPacket Lostしても画面共有に影響はないと考える。 -\section{木構造とマルチキャストの共存} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FinalThesis/chapter4.tex Fri Feb 14 18:21:24 2020 +0900 @@ -0,0 +1,10 @@ +\chapter{TreeVNCのソースコードの修正改善} +\label{chap:otherInplementation} + +\section{Gradle 6.1対応} + + +\section{java9以降のRetinaAPI対応} + + +\section{デバッグ環境の構築}
--- a/FinalThesis/main.tex Fri Feb 14 03:36:26 2020 +0900 +++ b/FinalThesis/main.tex Fri Feb 14 18:21:24 2020 +0900 @@ -62,12 +62,12 @@ % 基礎概念 \input{chapter2.tex} -% 実験 +% Blockingの実装 \input{chapter3.tex} % 他の論文との比較 -%\input{chapter4.tex} +\input{chapter4.tex} % 今後の課題 \input{future.tex}
--- a/riono-thesis.mm Fri Feb 14 03:36:26 2020 +0900 +++ b/riono-thesis.mm Fri Feb 14 18:21:24 2020 +0900 @@ -32,7 +32,9 @@ </node> <node CREATED="1580927716648" ID="ID_4678920" MODIFIED="1580927734514" POSITION="right" TEXT="Multicastの導入"/> <node CREATED="1580927735309" ID="ID_457187552" MODIFIED="1580927741703" POSITION="right" TEXT="Blockingの手法"> -<node CREATED="1581580704582" ID="ID_1024302905" MODIFIED="1581581055406" TEXT="有線接続と無線接続の違い"/> +<node CREATED="1581580704582" ID="ID_1024302905" MODIFIED="1581581055406" TEXT="有線接続と無線接続の違い"> +<node CREATED="1581581199650" ID="ID_1429909220" MODIFIED="1581581229650" TEXT="木構造マルチキャストの共存"/> +</node> <node CREATED="1581581055942" ID="ID_630342983" MODIFIED="1581581076180" TEXT="UpdateRectangleの構成"> <node CREATED="1581591179689" ID="ID_1334851042" MODIFIED="1581591185747" TEXT="先行研究"> <node CREATED="1581591189182" ID="ID_194833918" MODIFIED="1581591201877" TEXT="1ラインで半分、半分"/> @@ -46,9 +48,6 @@ <node CREATED="1581580289617" ID="ID_1404765388" MODIFIED="1581580714225" TEXT="ex:MulticastPutのコード貼る?"/> </node> <node CREATED="1581590989597" ID="ID_1277778866" MODIFIED="1581590995262" TEXT="パケットロストについて"/> -<node CREATED="1581581199650" ID="ID_1429909220" MODIFIED="1581581229650" TEXT="木構造マルチキャストの共存"> -<node CREATED="1581581792598" ID="ID_369116373" MODIFIED="1581581803640" TEXT="INITDataはTreeを利用して送信"/> -</node> </node> <node CREATED="1581578986016" ID="ID_953146837" MODIFIED="1581582025419" POSITION="right" TEXT="TreeVNCの修正"> <node CREATED="1581579001483" ID="ID_460490271" MODIFIED="1581579012139" TEXT="Gradleの最新版対応"/>