annotate FinalMid/FinalMid_165729B.tex @ 36:a2a82eead86f

add new Imanges
author riono <e165729@ie.u-ryukyu.ac.jp>
date Sun, 16 Feb 2020 23:28:04 +0900
parents a95ea8f61214
children f7a79686256d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 \documentclass[twocolumn,twoside,9.5pt]{jarticle}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 \usepackage{picins}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 \usepackage{fancyhdr}
18
c62e7b4ffa54 fix finalMid abstract
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
4 \usepackage{abstract}
35
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
5 \usepackage[dvipdfmx]{graphicx}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
6 \usepackage{multirow}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
7 \usepackage{here}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
8 \usepackage{cite}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
9 \usepackage{url}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
10
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
11 \usepackage{caption}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
12
18
c62e7b4ffa54 fix finalMid abstract
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
13
1
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 \pagestyle{fancy}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 \lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部情報工学科 卒業研究発表会}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 \rhead{}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 \cfoot{}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 \setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 \setlength{\headheight}{0mm}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 \setlength{\headsep}{5mm}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 \setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 \setlength{\textwidth}{181mm}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 \setlength{\textheight}{261mm}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 \setlength{\footskip}{0mm}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 \pagestyle{empty}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
25
f98010ed4fa9 add TileLoop flow img
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
29
f98010ed4fa9 add TileLoop flow img
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
30 \renewcommand{\abstractname}{Abstract}
1
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 \begin{document}
35
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
32 \title{画面配信システム TreeVNC のMulticast 導入}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
33 \author{165729B 氏名 {安田}{亮} 指導教員 : 河野真治}
1
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 \date{}
18
c62e7b4ffa54 fix finalMid abstract
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
35 \twocolumn [
1
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 \maketitle
18
c62e7b4ffa54 fix finalMid abstract
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
37 \centering
c62e7b4ffa54 fix finalMid abstract
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
38 \begin{onecolabstract}
35
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
39 In lectures and seminars,the materials prepared on the PC screen is used.
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
40 Participants need to concentrate on the projector,which can be a burden when cross-referencing with the PC at hand.
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
41 When the presenter is replaced,the cable needs to be replaced by switching the presenter's PC screen,
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
42 depending on the adapter connected to the PC,the PC screen may not be displayed properly.
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
43 TreeVNC,which is being developed in our laboratory,is a screen distribution system that displays the presenter's PC screen on the participant's PC.
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
44 By connecting clients connected to the server in the form of a binary tree and distributing the delivery cost,
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
45 It is designed so that the processing performance does not decrease even if many people connect.
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
46 In addition,there is a mechanism for freely switching the screen of the presenter,which is convenient for presentations at seminars and the like.
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
47 Currently,TreeVNC screen sharing is limited to wired LANs because of the large amount of data.
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
48 To support widely used wireless LAN,
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
49 we evaluate the implementation of data communication in multicast and the data division
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
50 and compression method,and evaluate the possibility of multicast in TreeVNC.
18
c62e7b4ffa54 fix finalMid abstract
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
51 \end{onecolabstract} ]
c62e7b4ffa54 fix finalMid abstract
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
52
1
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 \thispagestyle{fancy}
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54
18
c62e7b4ffa54 fix finalMid abstract
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
55
c62e7b4ffa54 fix finalMid abstract
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
56
35
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
57 \section{画面配信ソフトウェアTreeVNCの活用}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
58 現代の講義やゼミではPC画面で用意した資料をプロジェクタに映しながら進行することが多い。
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
59 発表者のPCを接続するたびにケーブルを差し替える必要があり、発表者のPCによっては接続するアダプターの種類や解像度の設定により、正常にPC画面を表示できない場合がある。また、参加者もプロジェクタに集中を割く必要があり、同時に手元のPCで作業を行う場合、集中の妨げとなってしまう。
1
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60
35
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
61 当研究室で開発している画面配信システムTreeVNC\cite{taninari:2011a}は、発表者のPC画面を参加者のPC画面に表示するソフトウェアである。サーバに接続したクライアントをバイナリツリー状に接続することで、配信コストをクライアントに分散させる仕組みになっている。
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
62 しかし、画面共有は送信するデータ量が多いため、無線LANで接続を行なった際に有線接続よりも遅延が大きくなってしまう。そこで本研究では、Multicastでのデータ通信の考察やデータの分割・圧縮方法の実装、評価を行う。
1
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63
35
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
64 \section{TreeVNCの基本概念}
36
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
65 Virtual Network Computing\cite{vnc}(以下VNC)は、サーバ側とクライアント(ビューワー)側からなるリモートデスクトップソフトウェアである。遠隔操作にはサーバを起動し、クライアント側がサーバに接続することで可能としている。特に画面送信の動作にはRemote Frame Buffer(以下RFB)プロトコル\cite{rfbprotocol}を用いている。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
66
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
67 TreeVNCはjavaを用いて作成されたTight VNC\cite{tightvnc}を元に作成されている。 TreeVNCはVNCを利用して画面配信を行っているが、従来のVNCでは配信(サーバ)側のPCに全ての参加者(クライアント)が接続するため負荷が大きくなってしまう。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
68
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
69 そこでTreeVNCではサーバに接続を行ってきたクライアントをバイナリツリー状(木構造)に接続する。接続してきたクライアントをノードとし、その下に新たなノードを最大2つ接続していく。これにより人数分のデータのコピーと送信の手間を分散することができる(図\ref{fig:TreevncStruct})。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
70
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
71 \begin{figure}[htb] %PDF
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
72 \begin{center}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
73 \includegraphics[scale=0.28]{pic/TreevncStruct.pdf}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
74 \caption{TreeVNCでの接続構造}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
75 \label{fig:TreevncStruct}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
76 \end{center}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
77 \end{figure}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
78
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
79 %\newpage
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
80 \thispagestyle{fancy}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
81
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
82 バイナリツリー状に接続することで、N台のクライアントが接続を行ってきた場合、従来のVNCではサーバ側がN回のコピーを行って画面配信する必要があるが、TreeVNCでは各ノードが最大2回ずつコピーするだけで画面配信が可能となる。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
83
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
84
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
85
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
86 TreeVNCはZRLEE\cite{taninari:2012a}というエンコードタイプでデータのやり取りを行う。ZRLEEはRFBプロトコルで使用できるZLREというエンコードタイプを元に生成される。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
87
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
88 ZLRE(Zlib Run-Length Encoding)とは可逆圧縮可能なZlib形式\cite{zlib}とRun-Length Encoding方式を組み合わせたエンコードタイプである。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
89
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
90
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
91 ZLREはZlibで圧縮されたデータとそのデータのバイト数がヘッダーとして付与され送信される。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
92
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
93 \newpage
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
94
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
95 Zlibはjava.util.zip.deflaterとjava.util.zip.inflaterで圧縮と解凍が行える。しかしjava.util.zip.deflaterは解凍に必要な辞書を書きだす(flush)ことが出来ない。従って、圧縮されたデータを途中から受け取ってもデータを正しく解凍することが出来ない。
35
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
96
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
97
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
98
36
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
99 そこでZRLEEは一度Root Nodeで受け取ったZRLEのデータをunzipし、Update Rectangleと呼ばれる画面ごとのデータに辞書を付与してzipし直すことで、初めからデータを読み込んでいなくても解凍を出来るようになっている(図\ref{fig:ZRLEtoZRLEE})。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
100
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
101 \begin{figure}[htb] %PDF
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
102 \begin{center}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
103 \includegraphics[scale=0.5]{pic/EncodeZRLEtoZRLEE.pdf}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
104 \caption{ZRLEEへ再圧縮されたデータを途中から受け取った場合}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
105 \label{fig:ZRLEtoZRLEE}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
106 \end{center}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
107 \end{figure}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
108
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
109
35
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
110 \section{Multicatに向けたBlockingの実装}
36
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
111 画像配信のデータ量は膨大なため、現在のTreeVNCでVNCサーバに無線LAN接続を行なった場合、画面配信の遅延が大きくなってしまう。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
112
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
113 無線LAN接続時の場合でも画面切り替えの機能は有効であるため、VNCサーバ側が無線LANで接続を行い、クライアント側は有線接続を行うことで画面配信が可能となる。ここで、WifiのMulticastの機能を用いてクライアント側でもWifiを使用することが可能であると考えられる。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
114
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
115 WifiのMulticast Packetのサイズは64KByteが最大となっている。4Kディスプレイを例にとると、4Kディスプレイの大きさの画面更新には8MByte(画素数) \* 8Byte(色情報)で圧縮前で、64MByte程度となる。これを圧縮しつつ、64kbye毎のパケットに変換して送る必要がある。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
116
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
117
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
118 TileLoopはVNCサーバから受け取ったZRLEを図\ref{fig:BlockingUpdateRectangle}のようにRectangleを分割し、ZRLEEに再圧縮を行ったPacketを生成する。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
119
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
120
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
121 \begin{figure}[htb] %PDF
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
122 \begin{center}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
123 \includegraphics[scale=0.3]{pic/Blocking.pdf}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
124 \caption{ZRLEEのPacketの構成と分割されたRectangle}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
125 \label{fig:Packet}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
126 \end{center}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
127 \end{figure}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
128
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
129 Tile内はパレットなどがある場合があるが、通常はRun Length encodeされたRGBデータである。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
130 これまでのTreeVNCではVNCサーバから受け取ったRectangleを分割せずにZRLEEへ再構成を行なっていた。これをMluticastのためにデータを64KByteに収まる最大3つのRectangleに再構成する(図\ref{fig:BlockingUpdateRectangle})。この時にTile内部は変更する必要はないが、Rectangleの構成は変わる。ZLREを展開しつつ、Packetを構成する必要がある。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
131
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
132 \begin{figure}[htb] %PDF
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
133 \begin{center}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
134 \includegraphics[scale=0.4]{pic/FrameUpdateRectangle.pdf}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
135 \caption{Rectangleの分割}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
136 \label{fig:BlockingUpdateRectangle}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
137 \end{center}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
138 \end{figure}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
139
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
140 64KByteのPacketの中には複数のTileが存在するが、連続してRectangleを構成する必要がある。3つの
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
141 Rectangleの構成を下記に示す。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
142
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
143
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
144 TileLoopにはc1Rectと呼ばれるRectangleを持っている。これは読み込んだTile分だけ縦横を拡張していくことによってRectangleの再構成を行なっている。図\ref{fig:TileLoopFlow} 中2の圧縮段階では、読み込んだTileのデータを圧縮用のStreamに格納し、java.util.zip.deflaterを利用して圧縮を行っている。Packetのサイズは60KByteとしているが、一旦の制限として42KByteまでを格納可能としている。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
145
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
146 java.util.zip.deflaterには下記の3種類の圧縮方法がある。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
147
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
148 \begin{itemize}
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
149 \item NO\_FLUSH : Streamに格納されたデータを最高率で圧縮を行う。Streamにある入力データが規定量に満たない場合は圧縮されない
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
150 \item SYNC\_FLUSH : これまでにStreamに格納されたデータの圧縮を行う。ただし圧縮率が低下する可能性がある
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
151 \item FULL\_FLUSH : SYNC\_FLUSH同様、これまでにStreamに格納されたデータの圧縮を行う。異なる点はこれまでの辞書情報がリセットされるため、圧縮率が極端に低くなる可能性がある
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
152 \end{itemize}
1
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154
35
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
155 \section{TreeVNC開発環境やソースコードの修正改善}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
156
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
157 \section{まとめ}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
158
36
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
159 本研究ではTreeVNCにWifi上のMulticast Packetを用いる手法の考察と実装と、Gradle6.1対応、java9以降のRetinaAPI対応、デバッグオプションの修正を行った。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
160
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
161 画面圧縮にHardware supportedなMPEG4などを用いることができればより効率的な転送が可能であるが、ここではJava上で実装できる安易な方法をあえて選択した。Wifiの速度とMulticastの信頼性が高ければこれでも実用になる可能性がある。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
162
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
163 Blocking後のMulticast 送信は実装中であるが、Multicast PacketのPacket loss率は、接続環境に依存すると思われるのでさらなる実験が必要だと思われる。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
164
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
165 有線接続時よりも、画面共有の質が落ちるのはある程度はやむお得ないが、再送が必要である場合には、必要なプロトコルを実装する。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
166
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
167 VNCサーバへの接続方法の分割についても、Node接続時のNetwork Interfacesから有線接続か無線LAN接続かを完全に区別できない。接続時にユーザが選択するか、接続時にある程度区別する処理を実装する必要がある。
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
168
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
169
a2a82eead86f add new Imanges
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
170
35
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
171
1
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
172
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 \thispagestyle{fancy}
35
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
174 \nocite{*}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
175 \bibliographystyle{junsrt}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
176 \bibliography{reference}
a95ea8f61214 update Slide and mid
riono <e165729@ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
177 %\addcontentsline{toc}{chapter}{参考文献}
1
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
178
c1f1f84bb7b6 add template
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 \end{document}