57
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
3
|
|
4 <html xmlns="http://www.w3.org/1999/xhtml">
|
|
5
|
|
6 <head>
|
|
7 <style>
|
|
8 .center {
|
|
9 margin-left: auto;
|
|
10 margin-right: auto;
|
|
11 text-align: center;
|
|
12 }
|
|
13 .textcenter {
|
|
14 text-align: center;
|
|
15 }
|
|
16 .taninaritop {
|
|
17 margin: auto;
|
|
18 width: 95%;
|
|
19 font-weight: bold;
|
|
20 }
|
|
21 </style>
|
|
22 <title>2011/9/27</title>
|
|
23 <!-- metadata -->
|
|
24 <meta name="generator" content="S5" />
|
|
25 <meta name="version" content="S5 1.1" />
|
|
26 <meta name="presdate" content="20110910" />
|
|
27 <meta name="author" content="Nobuyasu Oshiro" />
|
|
28 <meta name="company" content="University of the Ryukyu" />
|
|
29 <!-- meta temporary -->
|
|
30 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
|
31 <meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
32 <meta http-equiv="Content-Style-Type" content="text/css" />
|
|
33 <!-- configuration parameters -->
|
|
34 <meta name="defaultView" content="slideshow" />
|
|
35 <meta name="controlVis" content="hidden" />
|
|
36 <!-- configuration extensions -->
|
|
37 <meta name="tranSitions" content="true" />
|
|
38 <meta name="fadeDuration" content="500" />
|
|
39 <meta name="incrDuration" content="250" />
|
|
40 <!-- configuration autoplay extension -->
|
|
41 <meta name="autoMatic" content="false" />
|
|
42 <meta name="playLoop" content="true" />
|
|
43 <meta name="playDelay" content="10" />
|
|
44 <!-- configuration audio extension -->
|
|
45 <meta name="audioSupport" content="false" />
|
|
46 <meta name="audioVolume" content="100" />
|
|
47 <meta name="audioError" content="false" />
|
|
48 <!-- configuration audio debug -->
|
|
49 <meta name="audioDebug" content="false" />
|
|
50 <!-- style sheet links -->
|
|
51 <link rel="stylesheet" href="ui/default_utf/slides.css" type="text/css" media="projection" id="slideProj" />
|
|
52 <link rel="stylesheet" href="ui/default_utf/outline.css" type="text/css" media="screen" id="outlineStyle" />
|
|
53 <link rel="stylesheet" href="ui/default_utf/print.css" type="text/css" media="print" id="slidePrint" />
|
|
54 <link rel="stylesheet" href="ui/default_utf/opera.css" type="text/css" media="projection" id="operaFix" />
|
|
55 <!-- embedded styles -->
|
|
56 <style type="text/css" media="all">
|
|
57 .imgcon {width: 100%; margin: 0 auto; padding: 0; text-align: center;}
|
|
58 #anim {width: 33%; height: 320px; position: relative;}
|
|
59 #anim img {position: absolute; top: 0px; left: 0px;}
|
|
60 </style>
|
|
61 <!-- S5 JS -->
|
|
62 <script src="ui/default_utf/slides.js" type="text/javascript"></script>
|
|
63 </head>
|
|
64 <body>
|
|
65
|
|
66 <div class="layout">
|
|
67 <div id="controls"><!-- DO NOT EDIT --></div>
|
|
68 <div id="currentSlide"><!-- DO NOT EDIT --></div>
|
|
69 <div id="header"></div>
|
|
70 <div id="footer">
|
|
71 <h1>セミナー: 2011/ 9/ 27</h1>
|
|
72 <h2>並列信頼研</h2>
|
|
73 </div>
|
|
74 </div>
|
|
75
|
|
76 <div class="presentation">
|
|
77 <div class="slide">
|
|
78 <h1>Java による授業向け画面共有システムの設計と実装 </li>
|
|
79 <h3></h3>
|
|
80 <li>谷成 雄</li>
|
|
81 <h4><a href="http://ie.u-ryukyu.ac.jp/" rel="external">琉球大学 並列信頼研究室</a></h4>
|
|
82 <div class="handout"></div>
|
|
83 </div>
|
|
84 <!-- PAGE -->
|
|
85 <div class="slide">
|
|
86 <h1>目的と背景</h1>
|
|
87 <li>大学の講義中、スクリーンに映されている画面は後ろの席程見えずらい。 </li>
|
|
88 <li>その問題を手元のPCにも写せるようにすることで解決しようと考えた。</li>
|
|
89 <li class="incremental">60人以上での画面共有を行うシステムを目標とする。</li>
|
|
90 </div>
|
|
91 <!-- PAGE -->
|
|
92 <div class="slide">
|
|
93 <h1>VNCによる画面共有</h1>
|
|
94 <li>今回、VNCを用いて画面共有システムを作成する。</li>
|
|
95 <li>VNC: Virtual Network Computing </br>ネットワークを介してコンピュータを遠隔操作するプログラム </li>
|
|
96 <li class="incremental">VNC用いた授業用画面共有システムTreeVNCの設計と実装を行った。</li>
|
|
97 </div>
|
|
98 <!-- PAGE -->
|
|
99 <div class="slide">
|
|
100 <h1>通常のVNCの問題点</h1>
|
|
101 <table class="center">
|
|
102 <tr>
|
|
103 <td width=50% >
|
|
104 <p style="text-aline: center;" >
|
|
105 <img clas="scale" src="./pix/NormalVNC3.png" width="450">
|
|
106 </p>
|
|
107 </td>
|
|
108 <td width=50% style="text-align: left;">
|
|
109 <li><small>VNC Serverの負荷が重い。</small></li>
|
|
110 <li><small>Server側の通信網1本への通信負荷が高い。</small></li>
|
|
111 </td>
|
|
112 </tr>
|
|
113 </table>
|
|
114 </div>
|
|
115 <!-- PAGE -->
|
|
116 <div class="slide">
|
|
117 <h1>通常のVNCの問題点</h1>
|
|
118 <p style="text-align: center;">
|
|
119 <li>
|
|
120 <samll>1台と48台でVNCをかけた時のスループットとサーバ側のCPU使用率</small>
|
|
121 </li>
|
|
122 </p>
|
|
123 <table class="center" class="incremental" border=1>
|
|
124 <tr>
|
|
125 <td></td>
|
|
126 <td>スループット(単位:Byte)</td>
|
|
127 <td>CPU使用率</td>
|
|
128 </tr>
|
|
129
|
|
130 <tr>
|
|
131 <td>1台</td>
|
|
132 <td>20M<small>(VNCでの最大速度)</small></td>
|
|
133 <td>55%</td>
|
|
134 </tr>
|
|
135
|
|
136 <tr>
|
|
137 <td>48台</td>
|
|
138 <td>4M(1台あたりのスループット)</td>
|
|
139 <td>100%</td>
|
|
140 </tr>
|
|
141 </table>
|
|
142 <li>VNCに使われるCPUの使用率が100%になり、スループットが5分の1まで下がっている。</li>
|
|
143
|
|
144 </div>
|
|
145 <!-- PAGE -->
|
|
146 <div class="slide">
|
|
147 <h1>通常のVNCの問題点</h1>
|
|
148 <li>サーバへのCPU負荷が高い</li>
|
|
149 <li>1本の通信網への負荷が高い</li>
|
|
150 </div>
|
|
151 <!-- PAGE -->
|
|
152 <!--
|
|
153 <div class="slide">
|
|
154 <h1>VNCの問題点の解決策</h1>
|
|
155 <p style="text-align: center;">
|
|
156 <small>クライアントを木構造で接続させるTreeVNC</samll><br>
|
|
157 <img class="scale" src="./pix/TreeVNC0.png" width="500" heigth="500"><br>
|
|
158 </p>
|
|
159 </div>
|
|
160 -->
|
|
161 <!-- PAGE -->
|
|
162 <div class="slide">
|
|
163 <h1>TreeVNCの設計</h1>
|
|
164 <li>木構造での接続</li>
|
|
165 <li>クライアントの管理を行うTop Proxyを置く。</li>
|
|
166 <li>データは木の下へと流していくようにする。</li>
|
|
167 <!-- <li>tightVNC ViewerのJava版を元にTreeVNCの実装を行う。</li> -->
|
|
168 <p style="text-align: center;">
|
|
169 <img class="scale" src="./pix/TreeVNC0.png" width="500" heigth="500">
|
|
170 </p>
|
|
171 </div>
|
|
172
|
|
173 <!-- PAGE -->
|
|
174 <div class="slide">
|
|
175 <div class="taninaritop">
|
|
176 <h1>木の構成手順</h1>
|
|
177 <table class="tanitable">
|
|
178 <tr>
|
|
179 <td width=50%>
|
|
180 <center><img class="scale" style="display: block; width: 100%; margin: auto;" src="pix/connect1.png" alt=""></center>
|
|
181 </td>
|
|
182 <td valign="top">
|
|
183 <Font size="6">
|
|
184 TはTopProxy<br>
|
|
185 クライアントが接続する際に一旦Topに接続して、新しい接続先を
|
|
186 </td>
|
|
187 </tr>
|
|
188 </table>
|
|
189 </div>
|
|
190 </div>
|
|
191
|
|
192 <div class="slide">
|
|
193 <div class="taninaritop">
|
|
194 <h1>木の構成手順</h1>
|
|
195 <table class="tanitable">
|
|
196 <tr>
|
|
197 <td>
|
|
198 <center><img class="scale" src="pix/connect2.png" alt=""></center>
|
|
199 </td>
|
|
200 <td valign="top" style="display: block; width: 100%; margin: auto;">
|
|
201 <Font size="6">
|
|
202 接続先を決定する際に<br>
|
|
203 <Font color="red">
|
|
204 parentNum = (treeNum - 2) / treebranch<br>
|
|
205 </Font>
|
|
206 を計算して接続先を決定している。
|
|
207 </td>
|
|
208 </tr>
|
|
209 </table>
|
|
210 </div>
|
|
211 </div>
|
|
212
|
|
213 <div class="slide">
|
|
214 <div class="taninaritop">
|
|
215 <h1>木の構成手順</h1>
|
|
216 <table class="tanitable">
|
|
217 <tr>
|
|
218 <td>
|
|
219 <center><img class="scale" src="pix/connect3.png" alt=""></center>
|
|
220 </td>
|
|
221 <td valign="top">
|
|
222 <Font size="6">
|
|
223
|
|
224 </Font>
|
|
225 </Font>
|
|
226 </td>
|
|
227 </tr>
|
|
228 </table>
|
|
229 </div>
|
|
230 </div>
|
|
231
|
|
232
|
|
233
|
|
234 <!--PAGE-->
|
|
235 <div class="slide">
|
|
236 <div class="taninaritop">
|
|
237 <h1>木の再構成手順</h1>
|
|
238 <table class="tanitable">
|
|
239 <tr>
|
|
240 <td>
|
|
241 <center><img class="scale" src="pix/reconnection1.png" alt=""></center>
|
|
242 </td>
|
|
243 <td valign="top">
|
|
244 <Font size="6">
|
|
245 </Font>
|
|
246 </Font>
|
|
247 </td>
|
|
248 </tr>
|
|
249 </table>
|
|
250 </div>
|
|
251 </div>
|
|
252
|
|
253 <!--PAGE-->
|
|
254 <div class="slide">
|
|
255 <div class="taninaritop">
|
|
256 <h1>木の再構成手順</h1>
|
|
257 <table class="tanitable">
|
|
258 <tr>
|
|
259 <td>
|
|
260 <center><img class="scale" src="pix/reconnection2.png" alt=""></center>
|
|
261 </td>
|
|
262 <td valign="top">
|
|
263 <Font size="6">
|
|
264 </Font>
|
|
265 </td>
|
|
266 </tr>
|
|
267 </table>
|
|
268 </div>
|
|
269 </div>
|
|
270
|
|
271 <!-- PAGE -->
|
|
272 <div class="slide">
|
|
273 <h1>TreeVNCの設計</h1>
|
|
274 <table class="center" width=100% style="text-align: center;">
|
|
275 <tr>
|
|
276 <td><small>通常のVNC</small></td>
|
|
277 <td><small>TreeVNC</small></td>
|
|
278 </tr>
|
|
279 <tr>
|
|
280 <td>
|
|
281 <img class="scale" src="./pix/NormalVNC3.png" width="300">
|
|
282 </td>
|
|
283 <td>
|
|
284 <img src="./pix/TreeVNC3.png" width="300">
|
|
285 </td>
|
|
286 </tr>
|
|
287 </p>
|
|
288 </table>
|
|
289 <li>クライアントが増えてもかかる負荷一定。</li>
|
|
290 <li>通信網1本に対する負荷が減り、安定した通信ができる(有線)。</li>
|
|
291 </div>
|
|
292 </div>
|
|
293 <!-- PAGE -->
|
|
294 <div class="slide">
|
|
295 <h1>TreeVNCの設計</h1>
|
|
296 <table class="center" width=100% style="text-align: center;">
|
|
297 <tr>
|
|
298 <td><small>通常のVNC</small></td>
|
|
299 <td><small>TreeVNC</small></td>
|
|
300 </tr>
|
|
301 <tr>
|
|
302 <td>
|
|
303 <img class="scale" src="./pix/NormalVNC3.png" width="300">
|
|
304 </td>
|
|
305 <td>
|
|
306 <img src="./pix/TreeVNC3.png" width="300">
|
|
307 </td>
|
|
308 </tr>
|
|
309 </p>
|
|
310 </table>
|
|
311 <table class="center" border=1 cellspacing="0" width=100%>
|
|
312 <tr>
|
|
313 <td></td>
|
|
314 <td>通常のVNC</td>
|
|
315 <td>TreeVNC</td>
|
|
316 </tr>
|
|
317 <tr>
|
|
318 <td>通信量</td>
|
|
319 <td> N*データ量 (クライアントの数に比例) </td>
|
|
320 <td> (M+1) * データ量</td>
|
|
321 </tr>
|
|
322 </table>
|
|
323 <p style="text-align: center;"><small>クライアントの数をN、木構造の子供の数をMとする</small> </p>
|
|
324 </div>
|
|
325 </div>
|
|
326
|
|
327
|
|
328 <!--RFBPROTOCOL説明-->
|
|
329
|
|
330
|
|
331 <!-- PAGE -->
|
|
332 <div class="slide">
|
|
333 <h1>画像の更新(FramebufferUpdate)</h1>
|
|
334 <li>転送される画面(フレームバッファ)のデータは変更があった部分(差分)だけが矩形単位で送られる。</li>
|
|
335 <table class="center" width=100%>
|
|
336 <tr>
|
|
337 <td>
|
|
338 <img src="./pix/hadesScreen1.png">
|
|
339 </td>
|
|
340 <td>
|
|
341 <img src="./pix/rightArrow.png">
|
|
342 </td>
|
|
343 <td>
|
|
344 <img src="./pix/hadesScreen2.png">
|
|
345 </td>
|
|
346 </tr>
|
|
347 </table>
|
|
348 <small>
|
|
349 <p style="text-align: center;"><font color=red>赤枠 </font>で囲まれている矩形のデータだけが送られてくる。 </p>
|
|
350 </small>
|
|
351 </div>
|
|
352 <!-- PAGE -->
|
|
353 <div class="slide">
|
|
354 <h1>データの転送</h1>
|
|
355 <li>クライアントから接続されるとsenderスレッドが作られる。</li>
|
|
356 <li>senderスレッドによりデータの転送は並列に行われる。</li>
|
|
357 <p class="textcenter">
|
|
358 <img src="./pix/MulticastQueue3.png">
|
|
359 </p>
|
|
360 <li class="incremental">MulticastQueueクラスを用いた並列な転送を行った。</li>
|
|
361 </div>
|
|
362
|
|
363 <!--MulticastQueueが必要になった経緯-->
|
|
364 <div class="slide">
|
|
365 <h1>MulticastQueue</h1>
|
|
366 <li>クライアントは、自分のペースでデータを読み込みたい。</li>
|
|
367 <li></li>
|
|
368 <li class="incremental">TreeVNCではVNCサーバとの接続はこのZRLEを扱う。</li>
|
|
369 </div>
|
|
370
|
|
371 <!-- PAGE -->
|
|
372 <div class="slide">
|
|
373 <h1>MulticastQueue</h1>
|
|
374 <table class="textcenter" style="margin-top: 50px" width=100% border=1 cellspacing="0">
|
|
375 <tr>
|
|
376 <td>
|
|
377 <img src="./pix/MulticastQueue_proxy2.png" width="600">
|
|
378 </td>
|
|
379 <td style="text-align: left;" width=50%>
|
|
380 <li>putでデータの入力</li>
|
|
381 <li>pollでデータの取り出し</li>
|
|
382 <li>Proxyは常に最新のデータの参照を渡す</li>
|
|
383 </td>
|
|
384 </tr>
|
|
385 <tr>
|
|
386 <td width=50%>
|
|
387 <img src="./pix/MulticastQueue_proxy3.png" width="600">
|
|
388 </td>
|
|
389 <td style="text-align: left;">
|
|
390 <li>クライアントは最新のデータから読み込み始める。</li>
|
|
391 </td>
|
|
392 </tr>
|
|
393 </table>
|
|
394 </div>
|
|
395 <!-- PAGE -->
|
|
396 <div class="slide">
|
|
397 <h1>MulticastQueueの問題点</h1>
|
|
398 <li>クライアントがデータを読み込まない時...
|
|
399 <table class="textcenter" width=100% style="margin-top: 50px; margin-bottom: 50px;">
|
|
400 <tr>
|
|
401 <td width=50%>
|
|
402 <img src="./pix/MCTimeOut1.png">
|
|
403 </td>
|
|
404 <td>
|
|
405 <img src="./pix/MCTimeOut2.png">
|
|
406 </td>
|
|
407 </tr>
|
|
408 </table>
|
|
409 <li>読み込まれないデータはProxyのメモリに残り続ける。</li>
|
|
410 </div>
|
|
411 <!-- PAGE -->
|
|
412 <div class="slide">
|
|
413 <h1>MulticastQueueの問題点</h1>
|
|
414 <li>TimeOut(TO)スレッドを走らせ、最新のデータから取得できるようする。</li>
|
|
415 <table class="textcenter" width=100% style="margin-top: 50px; margin-bottom: 50px;">
|
|
416 <tr>
|
|
417 <td width=50%>
|
|
418 <img src="./pix/MCTimeOut3.png">
|
|
419 </td>
|
|
420 <td>
|
|
421 <img src="./pix/MCTimeOut4.png">
|
|
422 </td>
|
|
423 </tr>
|
|
424 </table>
|
|
425 <li>どこからも参照されないデータはProxyのメモリから削除される。</li>
|
|
426 </div>
|
|
427 <!-- PAGE -->
|
|
428 <div class="slide">
|
|
429 <h1>エンコード</h1>
|
|
430 <li>MAC OS XではZRLEを使ってVNCを行うことができる</li>
|
|
431 <li>ZRLEはデータ量がRAWデータの約4分の1ですむ。</li>
|
|
432 <li class="incremental">TreeVNCではVNCサーバとの接続はこのZRLEを扱う。</li>
|
|
433 </div>
|
|
434 <!-- PAGE -->
|
|
435 <div class="slide">
|
|
436 <h1>ZRLE</h1>
|
|
437 <li>ZRLE : Zlib Run-Length Encoding </li>
|
|
438 <ul>
|
|
439 <li>Zlib圧縮(gzip)されたデータ扱うエンコーディング。</li>
|
|
440 </ul>
|
|
441 <li>最初の4バイトにはZlibのデータの長さが、続いてZlibのデータが送られてくる。</li>
|
|
442 <small>
|
|
443 <table border=1 width=50% cellspacing="0">
|
|
444 <tr>
|
|
445 <td>バイト数</td>
|
|
446 <td><pre>型 </pre></td>
|
|
447 <td>説明 </td>
|
|
448 </tr>
|
|
449 <tr>
|
|
450 <td>4</td>
|
|
451 <td>U32</td>
|
|
452 <td>length</td>
|
|
453 </tr>
|
|
454 <tr>
|
|
455 <td>length</td>
|
|
456 <td>U8 array</td>
|
|
457 <td>ZlibData</td>
|
|
458 </tr>
|
|
459 </table>
|
|
460 </small>
|
|
461 <li class="incremental">Zlibデータは辞書を元にデータの解凍を行う</li>
|
|
462 <li class="incremental">辞書がなければデータを正しく解凍できない</li>
|
|
463 </div>
|
|
464 <!-- PAGE -->
|
|
465 <div class="slide">
|
|
466 <h1>ZRLEE</h1>
|
|
467 <li>そこで、ProxyがZRLEを使ってデータを受け取り圧縮し直して木の下へ流していくことにした。</li>
|
|
468 <li><small>この圧縮し直したデータはZRLEEと名付けた。</small></li>
|
|
469 <table class="textcenter" width=100%>
|
|
470 <tr>
|
|
471 <td>
|
|
472 <img src="./pix/ZRLEE2.png" width="600">
|
|
473 </td>
|
|
474 <td>
|
|
475 <img src="./pix/ZRLEE3.png" width="600">
|
|
476 </td>
|
|
477 </tr>
|
|
478 </table>
|
|
479 </div>
|
|
480 <!-- PAGE -->
|
|
481 <div class="slide">
|
|
482 <h1>ZRLEEの疑問点</h1>
|
|
483 <li>ZRLEEには毎回辞書が付与されている。</li>
|
|
484 <p class="textcenter">
|
|
485 <img src="./pix/ZRLEE2.png" width="600">
|
|
486 </p>
|
|
487 <li class="incremental">ZRLEに比べるとデータ量は増えないのか...?</li>
|
|
488 <li class="incremental">-> ZRLEと比較してみるとデータ量は少なくなった。</li>
|
|
489 </div>
|
|
490 <!-- PAGE -->
|
|
491 <div class="slide">
|
|
492 <h1>ZRLEEのデータ量</h1>
|
|
493 <p style="text-align: center;">
|
|
494 <small>1920*1080の描画にかかったデータ量</small>
|
|
495 </p>
|
|
496 <table class="textcenter" width=100%>
|
|
497 <tr>
|
|
498 <td width=50%>
|
|
499 <img src="./pix/dataLength.png" width="450" heigth="325">
|
|
500 </td>
|
|
501 <td>
|
|
502 <table border=1 cellspacing="0" width=100%>
|
|
503 <tr>
|
|
504 <td></td>
|
|
505 <td>ZRLE</td>
|
|
506 <td>ZRLEE</td>
|
|
507 </tr>
|
|
508 <tr>
|
|
509 <td>データ量</td>
|
|
510 <td>3.4M</td>
|
|
511 <td>3.2M</td>
|
|
512 </tr>
|
|
513 </table>
|
|
514 </td>
|
|
515 </tr>
|
|
516 </table>
|
|
517 <li>ZRLEよりデータ量が多くなるどころか少ない。</li>
|
|
518 <li>原因</li>
|
|
519 <ul>
|
|
520 <li>ZRLEEは送られるデータ毎で最適な辞書が使われる。</li>
|
|
521 </ul>
|
|
522 </div>
|
|
523
|
|
524
|
|
525 <!-- PAGE -->
|
|
526 <div class="slide">
|
|
527 <h1>データ転送量</h1>
|
|
528 <p style="text-align: center;">
|
|
529 <small>矩形の大きさと描画に必要なデータ量(単位:Byte)</small>
|
|
530 </p>
|
|
531 <table class="center" border=1 cellspacing="0" width=80%>
|
|
532 <tr>
|
|
533 <td>矩形の大きさ \ エンコード</td>
|
|
534 <td>RAW</td>
|
|
535 <td>ZRLE</td>
|
|
536 </tr>
|
|
537
|
|
538 <tr>
|
|
539 <td>724 * 449</td>
|
|
540 <!--
|
|
541 <td>1300304</td>
|
|
542 <td>796642</td>
|
|
543 -->
|
|
544 <td>1.3M</td>
|
|
545 <td>0.8M</td>
|
|
546 </tr>
|
|
547
|
|
548 <tr>
|
|
549 <td>1920 * 64</td>
|
|
550 <!--
|
|
551 <td>491520</td>
|
|
552 <td>309602</td>
|
|
553 -->
|
|
554 <td>0.5M</td>
|
|
555 <td>0.15M</td>
|
|
556 </tr>
|
|
557
|
|
558 <tr>
|
|
559 <td>1920 * 1080</td>
|
|
560 <!--
|
|
561 <td>8294400</td>
|
|
562 <td>3472780</td>
|
|
563 -->
|
|
564 <td>8.2M</td>
|
|
565 <td>3.4M</td>
|
|
566 </tr>
|
|
567
|
|
568 </table>
|
|
569
|
|
570 <p style="text-align: center;">
|
|
571 <img src="./pix/dataLength.png" width="450" heigth="325"> <br>
|
|
572 <small>RAW、ZRLE、ZRLEEエンコードのデータ量の比較</small>
|
|
573 </p>
|
|
574 </div>
|
|
575 <!-- PAGE -->
|
|
576 <div class="slide">
|
|
577 <h1>既存のプログラムとの比較</h1>
|
|
578 <li>VNC Reflector</li>
|
|
579 <ul>
|
|
580 <li>tightVNCの作者が作成したプログラム</li>
|
|
581 <li>VNC Reflecotrにクライアントが接続することでVNCを行うことができる</li>
|
|
582 </ul>
|
|
583 </div>
|
|
584 <!-- PAGE -->
|
|
585 <!-- PAGE -->
|
|
586 <div class="slide">
|
|
587 <h1>質問タイム</h1>
|
|
588 </div>
|
|
589 </body>
|
|
590 </html>
|