annotate chapter4.tex @ 3:63ae5aaa2a7a

update
author oc
date Sat, 14 Feb 2015 14:25:36 +0900
parents dc17ac172c7d
children 14e96778c600
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
1 \chapter{TreeVNC の新機能}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
2
3
oc
parents: 1
diff changeset
3
oc
parents: 1
diff changeset
4 \section{表示画面サイズ調整機能}
oc
parents: 1
diff changeset
5 TreeVNC は、配信側の解像度を配信するので画質が荒くなることはない。
oc
parents: 1
diff changeset
6 しかし、配信側とクライアントで画面サイズに差がある場合、
oc
parents: 1
diff changeset
7 画面に入らない、或いは表示画面が小さすぎる等の問題が生じる。
oc
parents: 1
diff changeset
8
oc
parents: 1
diff changeset
9 今までは、ユーザが viewer に用意されている拡大・縮小ボタンを使用し調整していた。
oc
parents: 1
diff changeset
10
oc
parents: 1
diff changeset
11 今回、ビューワに HD ボタンと fit screen ボタンを追加した。
oc
parents: 1
diff changeset
12 HD ボタンを押すと、画面サイズが 1920x1080 サイズに拡大・縮小される。
oc
parents: 1
diff changeset
13 fit screen ボタンを押すと、クライアントの画面サイズに合わせてフルサイズで拡大・縮小される。
oc
parents: 1
diff changeset
14
oc
parents: 1
diff changeset
15 更に、rootとして起動し viewer も表示される -d オプションを使用した場合は、
oc
parents: 1
diff changeset
16 表示される画面が常にフルサイズに調整されるよう実装した。
oc
parents: 1
diff changeset
17
oc
parents: 1
diff changeset
18
oc
parents: 1
diff changeset
19 \section{配信画面サイズ指定機能}
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
20
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
21 配信する画面サイズを指定できるオプションを追加した。
3
oc
parents: 1
diff changeset
22 TreeVNC 起動時にオプション(${\mathchar`-}$${\mathchar`-}$fixSize)を追加することによって、
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
23 指定した幅・高さの画面サイズのみを配信することができる。
3
oc
parents: 1
diff changeset
24 起動方法をソースコード\ref{fixsize}に記述する。
oc
parents: 1
diff changeset
25
oc
parents: 1
diff changeset
26 \begin{lstlisting}[caption=オプション--fixSize,label=fixsize]
oc
parents: 1
diff changeset
27 $ java -jar TreeVNC.java -d --fixSize 1920 1080
oc
parents: 1
diff changeset
28 \end{lstlisting}
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
29
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
30 VNCServer からは、配信する側の画面全体のデータが送信される。
3
oc
parents: 1
diff changeset
31 root は指定したサイズ領域のデータのみを表示するため、
oc
parents: 1
diff changeset
32 領域内の更新のみを node に送信し、領域内のみを描画している。
oc
parents: 1
diff changeset
33 そして、VNCServer へ更新データを要求する際は、
oc
parents: 1
diff changeset
34 領域内のみの画像データを要求する。
oc
parents: 1
diff changeset
35 これにより、node に指定された領域以外は表示されない。
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
36
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
37
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
38 \newpage
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
39
3
oc
parents: 1
diff changeset
40
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
41 \section{マルチディスプレイ対応}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
42
3
oc
parents: 1
diff changeset
43 画面配信側がマルチディスプレイの場合でも、
oc
parents: 1
diff changeset
44 VNCServer からは全画面データが送信されるので、
oc
parents: 1
diff changeset
45 配信側の保持している画面全てが共有される。
oc
parents: 1
diff changeset
46 しかし、プレゼンテーションを行う際、複数枚の画面表示が要らない場合がある。
oc
parents: 1
diff changeset
47
oc
parents: 1
diff changeset
48 そこで、一画面のみをフィルタリングし表示するためのオプション機能(${\mathchar`-}$${\mathchar`-}$filterSingleDisplay)を追加した。
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
49 オプションを追加した起動方法をソースコード\ref{filtersingledisplay}に記述する。
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
50
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
51 \begin{lstlisting}[caption=オプション--filterSingleDisplay,label=filtersingledisplay]
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
52 $ java -jar TreeVNC.java -d --filterSingleDisplay
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
53 \end{lstlisting}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
54
3
oc
parents: 1
diff changeset
55 root は全画面データから一画面のみをフィルタリングする必要がある。
oc
parents: 1
diff changeset
56 シングルディスプレイサイズは、個々のクライアントでしか取得できない。
oc
parents: 1
diff changeset
57 配信側は画面切り替えを行う際に、シングルディスプレイサイズを取得する。
oc
parents: 1
diff changeset
58 そして、画面切り替えを行う際に root へ送信する serverChangeRequset message に
oc
parents: 1
diff changeset
59 シングルディスプレイサイズを付加する。
oc
parents: 1
diff changeset
60
oc
parents: 1
diff changeset
61 root はメッセージを受け取り initData を変更する。
oc
parents: 1
diff changeset
62 本来 initData は、RFB プロトコルで行われる通信中に VNCServer から受信する ServerInit message から生成される。
oc
parents: 1
diff changeset
63 マルチディスプレイの場合、ServerInit message をそのまま使用すると、複数画面全体を描画してしまう。
oc
parents: 1
diff changeset
64 それを避けるため、initData をシングルディスプレイサイズ用に生成し直す(oritinalInitData)。
oc
parents: 1
diff changeset
65 そして、接続されている node へも originalInitData を送信する(図\ref{fig:initdata})。
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
66
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
67 \begin{figure}[htpd]
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
68 \begin{center}
3
oc
parents: 1
diff changeset
69 \includegraphics[scale=0.8]{./images/chapter4/sendInitData.pdf}
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
70 \end{center}
3
oc
parents: 1
diff changeset
71 \caption{シングルディスプレイサイズ用の initData}
oc
parents: 1
diff changeset
72 \label{fig:initdata}
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
73 \end{figure}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
74
3
oc
parents: 1
diff changeset
75 さらに VNCServer から送信されてきた全画面データをそのまま node に流すのではなく、
oc
parents: 1
diff changeset
76 シングルディスプレイサイズの領域の更新部分のみを root 側でフィルタリングし流す。
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
77
3
oc
parents: 1
diff changeset
78 これにより、一画面のみの表示が可能となる。
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
79
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
80
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
81 \newpage
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
82
3
oc
parents: 1
diff changeset
83
oc
parents: 1
diff changeset
84 \section{Retina のマルチディスプレイ対応}
oc
parents: 1
diff changeset
85
oc
parents: 1
diff changeset
86
oc
parents: 1
diff changeset
87
oc
parents: 1
diff changeset
88
1
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
89 \section{遠隔地からの接続}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
90
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
91 \begin{figure}[htpd]
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
92 \begin{center}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
93 \includegraphics[scale=0.4]{./images/chapter4/remotenetwork.pdf}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
94 \end{center}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
95 \caption{Remote Network Tree}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
96 \label{fig:remotenetworktree1}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
97 \end{figure}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
98
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
99 \begin{figure}[htpd]
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
100 \begin{center}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
101 \includegraphics[scale=0.4]{./images/chapter4/remotenetwork2.pdf}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
102 \end{center}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
103 \caption{Remote Network Tree}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
104 \label{fig:remotenetworktree2}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
105 \end{figure}
dc17ac172c7d add thesis in production.
oc
parents:
diff changeset
106