HIPerSender

Send what?

The screen of any PC running Windows, Mac OS X, or Linux.

Why?

The need for custom software has been a problem for all tiled displays from Day 1. In order to make the HIPerWall usable to other scientists, they have to prepare their data for us and we have to create a view object that displays that special data. Good examples are NDVI, MRI scans, and SOAR. What if those scientists have such a complex application or very specialized application? How much effort do both sides put in to make some data visible on the HIPerWall?

A very reasonable solution is that just letting scientists use their application on a PC and send the screen of the PC to the display wall. This allows proprietary applications to be used on HIPerWall. It allows several such applications to be shown simultaneously, thus supporting collaboration and various views of information.

What's the point?

HOLD ON HOLD ON HOLD. What's the point of sending 1280x1024 (1Mpixel) PC screen to the 200Mpixel HIPerWall? Well, the point is not to send a single or two screens, which is no different from having one or two projectors. The point is sending 10 or more WITH the capability of rearranging them at will (read: at real-time).

Also a PC screen can go beyond the resolution of most projectors.

DSC00218DSC00217DSC00220DSC00281

The left picture shows a small 3x3 wall driven by nine PCs. Each PC is running a HIPerSender. The second pciture shows the same 3x3 screen displayed on HIPerWall using HIPerSender and TileViewer. The last two pictures show that how those screens can be rearranged and displayed with other objects in TileViewer.

What's the catch?

Nothing is free and this is no exception. We compress the screen and send through the network. The PC that sends the screen has to have a decent CPU power to compress the data. It turns out the compression is most likely the bottleneck of the framerate. We recommend at least dual-core system.

Ugh..VNC, hello?

VNC is an excellent a protocol/application that can send PC screen AND control the PC. However, it sends the difference between each screen. When there is very little movement it sends very small amount of data, but, when things go crazy, it consumes more bandwidth AND more time to deliver those screen resulting worse frames-per-second than our approach.

Bandwidth?

Since we are using the compressed stream, TileViewer dynamically disconnect/connect the stream per node based on whether the stream is necessary for the display or not. When a PC screen is on a single display node, the screen is sent to the display node only.

For a 1Mpixel screen (1280x1024), rougly 1% of gigabit network is used to display on a single monitor of HIPerWall. Which means, for HIPerWall, if the screen is sized to cover whole display wall space (25 display nodes), around 25% of gigabit network is used.

Ace in the hole

Basically an user can browse, let say, 10 PC screens on the display wall, using 3D mouse for example. How about controlling those PCs using that single mouse? The HIPerSender and TileViewer can work together to relay the control event such as mouse movements and keyboards from the control node to the PC that sends it.

Article written with much help from Sung-Jin Kim