跟好朋友討論了一下關於VNC的傳輸問題
首先每個projector畫面是 1024 * 768,所以每個frame的大小是 1024*768*2 (16 bit) = 1.5 MB.
而整個環場是12個畫面,也就是 1.5 MB * 12 = 18 MB per frame
也就是說當30 fps時需要傳輸的資料量是 540 MB/s.
Ethernet正常傳輸速度是 30 MB/s.
所以要讓VNC畫面傳輸速度看起來ok有兩個方向: 1. 用Gigabit Ethernet 並且 2. 減少畫面的pixel, 或再加上 3. 壓縮
影響VNC圖片傳輸速度的條件有 1. CPU, 2. 傳輸速度
如果使用gigabit ethernet,有兩種解決方式:
1. 用支援gigabit ethernet的switch把展場裡面會用到的電腦全部連接起來,但目前國美館提供的switch並不支援到gigabit ethernet
同時使用CAT6 wire,而內部網路IP必須手動設定。又要考慮到電腦的位置(互動桌與環場投影控制電腦位置的距離),會影響速度。正常狀況gigabit ethernet的速度為 70~80 MB/s, 而距離大於50m以上會降到 40~50 MB/s。最快速度為 90 MB/s。
2. 產生動畫的那台電腦同時直接連接到環場投影電腦與switch。由於互動桌與動畫電腦之間只需要傳送座標,所以可以用目前有的switch就好。環場投影與動畫電腦以CAT 6線連接。但這種情況會需要動畫電腦上面有兩張ethernet card。
另外就是所有的網路卡必須都支援gigabit ethernet
如果不想手動設定IP則會需要router,但聽說gigabit ethernet routers都很貴 :P
CPU的話則在當CPU為dual-core & 程式是single thread的時候才不會因為放在同一台電腦上速度被影響到
假設把速度提升到 50 MB/s
而像素減少到640*480, 每個frame約為 0.6 MB
設每秒15 fps, 則資料量為 0.6 * 12 * 15 = 108 MB/s
明顯的還需要壓縮,也要考慮到壓縮的運算時間問題,也要查壓縮比例
而當640*480 的resolution投影在 3.4m 高的螢幕上會變成每個pixel都有 0.7公分高... (默)
VNC支援的壓縮方式有: CopyRect (raw data), RLE (run-length encoding), HexTile, zlib (cpu expensive)
TightVNC支援更多方式可以試試
總結:
1. switch有沒有可能買新的,網路線要換成CAT 6
2. VNC server & client 要用哪種,TightVNC可能會因為環場投影電腦內部軟體無法讀取tightVNC壓縮而不能使用
3. 環場投影電腦的規格要問清楚
4. 環場投影電腦的擺放位置要問清楚
5. 不同的resolution測試
6. 是否要更改設計 (very important!)
Sunday, January 4, 2009
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment