changeset 21:fa92cb03dac1

update chapter3 and add Blocking UpdateRectangle image
author riono <e165729@ie.u-ryukyu.ac.jp>
date Thu, 13 Feb 2020 21:01:10 +0900
parents 69ef71aaaca6
children 0f95ad78a36c
files FinalThesis/chapter2.tex FinalThesis/chapter3.tex FinalThesis/fig/FrameUpdateRectangle.graffle FinalThesis/fig/FrameUpdateRectangle.pdf FinalThesis/main.pdf FinalThesis/main.tex riono-thesis.mm
diffstat 7 files changed, 106 insertions(+), 42 deletions(-) [+]
line wrap: on
line diff
--- a/FinalThesis/chapter2.tex	Thu Feb 13 16:31:23 2020 +0900
+++ b/FinalThesis/chapter2.tex	Thu Feb 13 21:01:10 2020 +0900
@@ -132,21 +132,19 @@
 
 \begin{figure}[htb] %PDF
 \begin{center}
-\includegraphics[scale=0.7]{fig/EncodeZRLE.pdf}
+\includegraphics[scale=0.6]{fig/EncodeZRLE.pdf}
 \figcaption{ZRLEでデータを途中から受け取った場合}
 \label{fig:ZRLE}
 \end{center}
 \end{figure}
 
-\newpage
-
-そこでZRLEEは一度Root Nodeで受け取ったZRLEのデータをunzipし、後述するupdate Rectangleと呼ばれる画面ごとのデータに辞書を付与してzipし直すことで、初めからデータを読み込んでいなくても解凍を出来るようになっている(図\ref{fig:ZRLEtoZRLEE})。
+そこでZRLEEは一度Root Nodeで受け取ったZRLEのデータをunzipし、後述するUpdate Rectangleと呼ばれる画面ごとのデータに辞書を付与してzipし直すことで、初めからデータを読み込んでいなくても解凍を出来るようになっている(図\ref{fig:ZRLEtoZRLEE})。
 
 一度ZRLEEに変換してしまえば、子Nodeはそのデータをそのまま流すだけでよい。ただし、deflaterとinflaterでは前回までの通信で得た辞書をクリアしないとけないため、Root Node側とNode側では毎回新しく作る必要がある。辞書をクリアすることにより adaptive compressionを実現していることになり圧縮率が向上する。
 
 \begin{figure}[htb] %PDF
 \begin{center}
-\includegraphics[scale=0.8]{fig/EncodeZRLEtoZRLEE.pdf}
+\includegraphics[scale=0.7]{fig/EncodeZRLEtoZRLEE.pdf}
 \figcaption{ZRLEEへ再圧縮されたデータを途中から受け取った場合}
 \label{fig:ZRLEtoZRLEE}
 \end{center}
@@ -154,28 +152,9 @@
 
 \newpage
 
-TreeVNCではRFBプロトコルによって配信側の画面の変更部分はFRAME\_BUFFER\_UPDATEメッセージとして送られてくる。メッセージの中には変更部分の原点のx,y座標と縦横の幅が含まれており、長方形として展開される。この長方形をupdate Rectangleと呼ぶ。以下の表\ref{tb:updateRectangle}にupdate Rectangleの構成を示す。
-
+TreeVNCではRFBプロトコルによって配信側の画面の変更部分はFRAME\_BUFFER\_UPDATEメッセージとして送られてくる。メッセージの中には変更部分の原点のx,y座標と縦横の幅等が含まれており、長方形として展開される。この長方形をUpdate Rectangleと呼ぶ。
 
-\begin{table}[hp]
-    \caption{updateRectangleの構成}
-    \begin{center}
-    \begin{tabular}{|rrr|l|} \hline
-        1 byte & & & messageID    \\
-        1 byte & & & padding   \\
-        2 byte & & & n of rectangles   \\ \hline
-        & 2 byte & & U16 - x-position  \\
-        & 2 byte & &  U16 - y-position  \\
-        & 2 byte & &  U16 - width  \\
-        & 2 byte & &  U16 - height  \\
-        & 4 byte & &  S32 - encoding-type  \\
-        & 4 byte & &  U32 datalengths   \\ \hline
-        &  & 1 byte & subencoding of tile     \\
-        &  & n byte & Run Length Encoded Tile \\ \hline
-    \end{tabular}
-    \end{center}
-    \label{tb:updateRectangle}
-\end{table}
+\newpage
 
 \section{ShareScreen}
 ゼミでは発表者が順々に入れ替わる。発表者が入れ替わるたびに共有する画面の切り替えが必要となる。ゼミを円滑に進めるために、画面の切り替えをスムーズに行いたい。
--- a/FinalThesis/chapter3.tex	Thu Feb 13 16:31:23 2020 +0900
+++ b/FinalThesis/chapter3.tex	Thu Feb 13 21:01:10 2020 +0900
@@ -1,13 +1,63 @@
-\chapter{実験}
+\chapter{MalticastのためのBlockingの実装}
 \label{chap:poordirection}
 
+\section{有線接続と無線LAN接続との違い}
+画像配信のデータ量は膨大なため、現在のTreeVNCでVNCサーバに無線LAN接続を行なった場合、画面配信の遅延が大きくなってしまう。
+
+この場合でも画面切り替えの機能は有効であるため、VNCサーバ(配信)側が無線LANで接続を行い、クライアント側は有線接続を行うことで画面配信が可能となる。ここで、WifiのMulticastの機能を用いてクライアント側でもWifiを使用することが可能であると考えられる。Root Nodeは無線LANに対して、変更するUpdate RectangleをMulticastで一度だけ送信する。
+
+WifiのMulticast Packetのサイズは64KByteが最大となっている。4Kディスプレイを例にとると、4Kディスプレイの大きさの画面更新には8MByte(画素数) \* 8Byte(色情報)で圧縮前で、64MByte程度となる。
+
 
-\section{実験説明}
+\section{Update Rectangleの構成}
+RFBのUpdate Rectangleは以下の表\ref{tb:updateRectangle}の構成となっている。
 
-\section{}
+\begin{table}[htp]
+    \caption{UpdateRectangleの構成}
+    \begin{center}
+    \begin{tabular}{|rrr|l|} \hline
+        1 byte & & & messageID    \\
+        1 byte & & & padding   \\
+        2 byte & & & n of rectangles   \\ \hline
+        & 2 byte & & U16 - x-position  \\
+        & 2 byte & &  U16 - y-position  \\
+        & 2 byte & &  U16 - width  \\
+        & 2 byte & &  U16 - height  \\
+        & 4 byte & &  S32 - encoding-type  \\
+        & 4 byte & &  U32 datalengths   \\ \hline
+        &  & 1 byte & subencoding of tile     \\
+        &  & n byte & Run Length Encoded Tile \\ \hline
+    \end{tabular}
+    \end{center}
+    \label{tb:updateRectangle}
+\end{table}
 
-\section{検証結果}
+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内部は
+
+
+\begin{figure}[htb] %PDF
+\begin{center}
+\includegraphics[scale=0.5]{fig/FrameUpdateRectangle.pdf}
+\figcaption{Rectangleの分割}
+\label{fig:BlockingUpdateRectangle}
+\end{center}
+\end{figure}
+
+
+Zlibは丁度良い所で圧縮をflushする必要がある。
+このためには
 
 
 
-\section{考察}
+
+\section{TileLoop}
+
+\section{Packet Lost}
+WiftのMulticast Packetは確実に送られることが保証されていない。データに通し番号をつけて、欠落を検出することはできるが、再送処理は複雑であることが予想される。そこで、一定時間ごとに全画面のデータを送信することによってPacket Lostしても画面共有に影響はないと考える。
+
+\section{木構造とマルチキャストの共存}
Binary file FinalThesis/fig/FrameUpdateRectangle.graffle has changed
Binary file FinalThesis/fig/FrameUpdateRectangle.pdf has changed
Binary file FinalThesis/main.pdf has changed
--- a/FinalThesis/main.tex	Thu Feb 13 16:31:23 2020 +0900
+++ b/FinalThesis/main.tex	Thu Feb 13 21:01:10 2020 +0900
@@ -6,6 +6,7 @@
 \usepackage{here}
 \usepackage{cite}
 \usepackage{url}
+\usepackage{scalefnt}
 
 
 
--- a/riono-thesis.mm	Thu Feb 13 16:31:23 2020 +0900
+++ b/riono-thesis.mm	Thu Feb 13 21:01:10 2020 +0900
@@ -22,16 +22,39 @@
 <node CREATED="1581238785261" ID="ID_1471975800" MODIFIED="1581238795962" TEXT="ZRLE">
 <node CREATED="1581517294185" ID="ID_748832937" MODIFIED="1581517312731" TEXT="&#x3068;&#x306f;&#x3000;Zlib run length encoding"/>
 </node>
-<node CREATED="1581238796711" ID="ID_1608135079" MODIFIED="1581238799700" TEXT="ZRLEE"/>
+<node CREATED="1581238796711" ID="ID_1608135079" MODIFIED="1581238799700" TEXT="ZRLEE">
+<node CREATED="1581581132773" ID="ID_156833284" MODIFIED="1581581144161" TEXT="64*64&#x306e;Tile&#x5206;&#x5272;"/>
+</node>
 </node>
 </node>
 <node CREATED="1581237491121" ID="ID_1312560790" MODIFIED="1581237502156" TEXT="ShareScreen"/>
+<node CREATED="1581580586272" ID="ID_1888266375" MODIFIED="1581580606369" TEXT="&#x8907;&#x6570;&#x306e;&#x30cd;&#x30c3;&#x30c8;&#x30ef;&#x30fc;&#x30af;&#x6642;&#x306e;&#x63a5;&#x7d9a;"/>
 </node>
 <node CREATED="1580927716648" ID="ID_4678920" MODIFIED="1580927734514" POSITION="right" TEXT="Multicast&#x306e;&#x5c0e;&#x5165;"/>
-<node CREATED="1580927735309" ID="ID_457187552" MODIFIED="1580927741703" POSITION="right" TEXT="Blocking&#x306e;&#x624b;&#x6cd5;"/>
-<node CREATED="1581578986016" ID="ID_953146837" MODIFIED="1581578993084" POSITION="right" TEXT="&#x305d;&#x306e;&#x4ed6;&#x3084;&#x3063;&#x305f;&#x3053;&#x3068;">
+<node CREATED="1580927735309" ID="ID_457187552" MODIFIED="1580927741703" POSITION="right" TEXT="Blocking&#x306e;&#x624b;&#x6cd5;">
+<node CREATED="1581580704582" ID="ID_1024302905" MODIFIED="1581581055406" TEXT="&#x6709;&#x7dda;&#x63a5;&#x7d9a;&#x3068;&#x7121;&#x7dda;&#x63a5;&#x7d9a;&#x306e;&#x9055;&#x3044;"/>
+<node CREATED="1581581055942" ID="ID_630342983" MODIFIED="1581581076180" TEXT="UpdateRectangle&#x306e;&#x69cb;&#x6210;">
+<node CREATED="1581591179689" ID="ID_1334851042" MODIFIED="1581591185747" TEXT="&#x5148;&#x884c;&#x7814;&#x7a76;">
+<node CREATED="1581591189182" ID="ID_194833918" MODIFIED="1581591201877" TEXT="1&#x30e9;&#x30a4;&#x30f3;&#x3067;&#x534a;&#x5206;&#x3001;&#x534a;&#x5206;"/>
+</node>
+<node CREATED="1581581091049" ID="ID_108796196" MODIFIED="1581581112405" TEXT="Rectangle&#x306e;&#x500b;&#x6570;&#x304c;1~N&#x500b;&#x304b;&#x3089;1~3&#x500b;&#x306b;&#x306a;&#x308b;">
+<node CREATED="1581581176641" ID="ID_1331144395" MODIFIED="1581581193708" TEXT="&#x5404;Phase&#x306e;&#x8aac;&#x660e;"/>
+</node>
+</node>
+<node CREATED="1581581779321" ID="ID_675537287" MODIFIED="1581581784763" TEXT="TileLoop&#x306e;&#x8aac;&#x660e;">
+<node CREATED="1581581832167" ID="ID_535530605" MODIFIED="1581581868617" TEXT="ex: &#x30d5;&#x30ed;&#x30fc;&#x56f3;&#x3092;&#x63cf;&#x304f;?"/>
+<node CREATED="1581580289617" ID="ID_1404765388" MODIFIED="1581580714225" TEXT="ex:MulticastPut&#x306e;&#x30b3;&#x30fc;&#x30c9;&#x8cbc;&#x308b;?"/>
+</node>
+<node CREATED="1581590989597" ID="ID_1277778866" MODIFIED="1581590995262" TEXT="&#x30d1;&#x30b1;&#x30c3;&#x30c8;&#x30ed;&#x30b9;&#x30c8;&#x306b;&#x3064;&#x3044;&#x3066;"/>
+<node CREATED="1581581199650" ID="ID_1429909220" MODIFIED="1581581229650" TEXT="&#x6728;&#x69cb;&#x9020;&#x30de;&#x30eb;&#x30c1;&#x30ad;&#x30e3;&#x30b9;&#x30c8;&#x306e;&#x5171;&#x5b58;">
+<node CREATED="1581581792598" ID="ID_369116373" MODIFIED="1581581803640" TEXT="INITData&#x306f;Tree&#x3092;&#x5229;&#x7528;&#x3057;&#x3066;&#x9001;&#x4fe1;"/>
+</node>
+</node>
+<node CREATED="1581578986016" ID="ID_953146837" MODIFIED="1581582025419" POSITION="right" TEXT="TreeVNC&#x306e;&#x4fee;&#x6b63;">
 <node CREATED="1581579001483" ID="ID_460490271" MODIFIED="1581579012139" TEXT="Gradle&#x306e;&#x6700;&#x65b0;&#x7248;&#x5bfe;&#x5fdc;"/>
-<node CREATED="1581579013064" ID="ID_972768773" MODIFIED="1581579025263" TEXT="RetinaAPI&#x3092;java11&#x306b;&#x5bfe;&#x5fdc;"/>
+<node CREATED="1581579013064" ID="ID_972768773" MODIFIED="1581579025263" TEXT="RetinaAPI&#x3092;java11&#x306b;&#x5bfe;&#x5fdc;">
+<node CREATED="1581579888471" ID="ID_1588121025" MODIFIED="1581581880187" TEXT="ex: &#x5909;&#x66f4;&#x3057;&#x305f;&#x30b3;&#x30fc;&#x30c9;&#x3092;&#x8cbc;&#x308b;"/>
+</node>
 <node CREATED="1581579027357" ID="ID_1166848043" MODIFIED="1581579046272" TEXT="-p &#x30aa;&#x30d7;&#x30b7;&#x30e7;&#x30f3;&#x3067;&#x30c7;&#x30d0;&#x30c3;&#x30b0;&#x53ef;&#x80fd;&#x306b;&#x306a;&#x3063;&#x305f;"/>
 </node>
 <node CREATED="1580927837214" ID="ID_1190992597" MODIFIED="1580927838740" POSITION="right" TEXT="&#x307e;&#x3068;&#x3081;"/>
@@ -89,12 +112,9 @@
 </node>
 </node>
 <node CREATED="1580972138303" ID="ID_1699294426" MODIFIED="1581006128968" TEXT="&#x4eca;&#x56de;&#x8a2d;&#x8a08;&#x3059;&#x308b;TreeVNC">
-<node CREATED="1581006132547" ID="ID_1283469608" MODIFIED="1581006165955" TEXT="wifi&#x3067;&#x63a5;&#x7d9a;&#x3057;&#x3066;&#x3044;&#x308b;Node&#x306b;&#x5bfe;&#x3057;&#x3066;&#x30de;&#x30eb;&#x30c1;&#x30ad;&#x30e3;&#x30b9;&#x30c8;&#x3067;&#x753b;&#x9762;&#x30c7;&#x30fc;&#x30bf;&#x3092;&#x9001;&#x4fe1;&#x3059;&#x308b;">
-<node CREATED="1581006932829" ID="ID_1199079922" MODIFIED="1581006949185" TEXT="&#x6709;&#x7dda;&#x306f;&#x3053;&#x308c;&#x307e;&#x3067;&#x901a;&#x308a;TreeStructure&#x3067;&#x884c;&#x3046;"/>
-</node>
-<node CREATED="1581006166891" ID="ID_1328359305" MODIFIED="1581006647986" TEXT="Blocking">
-<node CREATED="1581006801761" ID="ID_131044893" MODIFIED="1581006813529" TEXT="&#x30c7;&#x30fc;&#x30bf;&#x304c;&#x5927;&#x304d;&#x3044;&#x3068;&#x9045;&#x5ef6;&#x304c;&#x8d77;&#x3053;&#x308b;"/>
-<node CREATED="1581006759051" ID="ID_1942933589" MODIFIED="1581006793797" TEXT="&#x66f4;&#x65b0;&#x90e8;&#x5206;&#x306e;Rectangle&#x3092;&#x3055;&#x3089;&#x306b;phase&#x3067;&#x5206;&#x5272;"/>
+<node CREATED="1581006849387" ID="ID_689949897" MODIFIED="1581580842731" TEXT="&#x6709;&#x7dda;&#x3068;&#x7121;&#x7dda;&#x306e;&#x9055;&#x3044;">
+<node CREATED="1581580884370" ID="ID_1614997699" MODIFIED="1581580897837" TEXT="1&#x56de;&#x3067;&#x9001;&#x4fe1;&#x3067;&#x304d;&#x308b;&#x30c7;&#x30fc;&#x30bf;&#x91cf;&#x306b;&#x5236;&#x9650;&#x304c;&#x3042;&#x308b;"/>
+<node CREATED="1581585700884" ID="ID_998861523" MODIFIED="1581586054262" TEXT="VNC&#x30b5;&#x30fc;&#x30d0;&#x5074;(&#x914d;&#x4fe1;&#x5074;)&#x304c;&#x7121;&#x7dda;&#x3067;"/>
 </node>
 <node CREATED="1581006799890" ID="ID_664832366" MODIFIED="1581006848789" TEXT="&#x30d1;&#x30b1;&#x30c3;&#x30c8;&#x30ed;&#x30b9;&#x30c8;">
 <node CREATED="1581006851477" ID="ID_440308584" MODIFIED="1581006865847" TEXT="wifi&#x306a;&#x306e;&#x3067;&#x30d1;&#x30b1;&#x30c3;&#x30c8;&#x304c;&#x843d;&#x3061;&#x308b;&#x53ef;&#x80fd;&#x6027;&#x304c;&#x3042;&#x308b;"/>
@@ -102,7 +122,16 @@
 <node CREATED="1581006883852" ID="ID_727521301" MODIFIED="1581006902983" TEXT="&#x4e00;&#x5b9a;&#x6642;&#x9593;&#x3067;&#x5168;&#x753b;&#x9762;&#x3092;&#x9001;&#x4fe1;&#x3059;&#x308b;&#x3053;&#x3068;&#x3067;&#x30d1;&#x30b1;&#x30c3;&#x30c8;&#x30ed;&#x30b9;&#x30c8;&#x306b;&#x5bfe;&#x5fdc;&#x3059;&#x308b;"/>
 </node>
 </node>
-<node CREATED="1581006849387" ID="ID_689949897" MODIFIED="1581006849387" TEXT=""/>
+<node CREATED="1581580847680" ID="ID_1957703225" MODIFIED="1581580862176" TEXT="UpdateRectangle&#x306e;&#x69cb;&#x6210;&#x3092;&#x5909;&#x3048;&#x308b;">
+<node CREATED="1581006166891" ID="ID_1328359305" MODIFIED="1581006647986" TEXT="Blocking">
+<node CREATED="1581006801761" ID="ID_131044893" MODIFIED="1581006813529" TEXT="&#x30c7;&#x30fc;&#x30bf;&#x304c;&#x5927;&#x304d;&#x3044;&#x3068;&#x9045;&#x5ef6;&#x304c;&#x8d77;&#x3053;&#x308b;"/>
+<node CREATED="1581006759051" ID="ID_1942933589" MODIFIED="1581006793797" TEXT="&#x66f4;&#x65b0;&#x90e8;&#x5206;&#x306e;Rectangle&#x3092;&#x3055;&#x3089;&#x306b;phase&#x3067;&#x5206;&#x5272;"/>
+</node>
+</node>
+<node CREATED="1581006132547" ID="ID_1283469608" MODIFIED="1581006165955" TEXT="wifi&#x3067;&#x63a5;&#x7d9a;&#x3057;&#x3066;&#x3044;&#x308b;Node&#x306b;&#x5bfe;&#x3057;&#x3066;&#x30de;&#x30eb;&#x30c1;&#x30ad;&#x30e3;&#x30b9;&#x30c8;&#x3067;&#x753b;&#x9762;&#x30c7;&#x30fc;&#x30bf;&#x3092;&#x9001;&#x4fe1;&#x3059;&#x308b;">
+<node CREATED="1581006932829" ID="ID_1199079922" MODIFIED="1581006949185" TEXT="&#x6709;&#x7dda;&#x306f;&#x3053;&#x308c;&#x307e;&#x3067;&#x901a;&#x308a;TreeStructure&#x3067;&#x884c;&#x3046;"/>
+<node CREATED="1581580751565" ID="ID_1346689312" MODIFIED="1581580769667" TEXT="INIT&#x30c7;&#x30fc;&#x30bf;&#x306f;TreeStructure&#x3067;&#x9001;&#x4fe1;&#x3055;&#x308c;&#x308b;"/>
+</node>
 </node>
 </node>
 <node CREATED="1580926577657" ID="ID_1208584088" MODIFIED="1580926589549" POSITION="left" TEXT="&#x3084;&#x3063;&#x305f;&#x3053;&#x3068;">
@@ -115,6 +144,11 @@
 </node>
 <node CREATED="1580926503596" ID="ID_897446703" MODIFIED="1580926564774" POSITION="left" TEXT="&#x4eca;&#x5f8c;&#x306e;&#x8ab2;&#x984c;">
 <node CREATED="1581006615333" ID="ID_1685770077" MODIFIED="1581006629545" TEXT="&#x306a;&#x305c;&#x304d;&#x3061;&#x3093;&#x3068;&#x52d5;&#x304b;&#x306a;&#x304b;&#x3063;&#x305f;&#x306e;&#x304b;"/>
+<node CREATED="1581580787364" ID="ID_1892578207" MODIFIED="1581580807636" TEXT="MulticastPacket&#x306b;&#x3057;&#x3066;&#x9001;&#x4fe1;&#x3059;&#x308b;"/>
+</node>
+<node CREATED="1581580212005" ID="ID_1576561703" MODIFIED="1581580215582" POSITION="right" TEXT="&#x4ed8;&#x9332;">
+<node CREATED="1581580229848" ID="ID_1678283284" MODIFIED="1581580246386" TEXT="sigos&#x306e;&#x8ad6;&#x6587;"/>
+<node CREATED="1581580246795" ID="ID_1185515363" MODIFIED="1581580266770" TEXT="&#x5352;&#x8ad6;&#x767a;&#x8868;&#x306e;&#x30b9;&#x30e9;&#x30a4;&#x30c9;&#x8cc7;&#x6599;"/>
 </node>
 </node>
 </map>