# Presentation: 028586

## Slide 1

## AccessGrid-to-Go : Providing AccessGrid access onPersonal Digital Assistants

- Michael Thorson1, Jason Leigh1, Gabriel Maajid2,
- Kyoung Park1, Atul Nayak1, Paul Salva2, Shirley Berry2
- 1-Electronic Visualization Laboratory (EVL),University of Illinois at Chicago
- 2-Chicago Public Schools- Medill Technical and Professional Development Center

## Slide 3

## Problem

- How does one display dozens of Access Grid video streams on a small screen, over a low bandwidth wireless network, with a small amount of processing power

## Implementation

- Hardware
- Compaq IPaq 3765 (206MHz)
- HP Jornada 548 (133MHz)
- PC
- Software
- Microsoft Embedded Visual Tools 3.0
- Provides Visual Studio interface for PocketPC development
- Embedded Visual BASIC
- Embedded Visual C++
- GAPI (Game API)

## Implementation

- 2 pieces of software developed:
- VVP – Vic Video for PocketPC
- VVP Proxy – Filter Vic streams to reduce traffic to PPC
- 2 possible modes of operation:
- 1 to 1 : direct Unix/Windows VIC to VVP
- N to 1 : multicast Unix/Windows VIC to proxy to VVP

## VVP

- Specify
- VVP Proxy
- or unicast Vic Address

- Select from a list of available Vic streams

- Video

- Stats

**VVP**

## VVP Proxy

**Specify bridge or mcast address**

**Address of PPC**

**IP address of Proxy**

**List of detected RTP****streams**

**Stats**

## VVP Processing Threads

**VVP Processing Threads**

## User Interface

- PPC API for interface development very similar to Windows development
- Need to consider aspect ratio of PPC- portrait for PPC vs landscape for Windows
- VVP provides viewing in both portrait & landscape mode.
- Landscape mode supports full 320x200
- Portait mode- crop 320x200 to 238x206

## Network Interface

- 2 threads – 1 for RTP, 1 for RTCP
- RTP thread captures data into a shadow buffer which decoding thread can use when ready
- RTCP’s Source Descriptor used by Proxy to build video list
- PPC network API similar to Winsock API similar to Berkeley sockets
- Important differences:
- PPC API does not provide asynchronous socket events like in Winsock – simulate this with threading and synchronous calls
- PPC API does not allow enlarging of socket buffers - locked at 4K bytes- enough for 3 to 4 RTP packets depending on codec.
- For high quality Mjpeg (quality setting > 30 in Vic) more than 4K buffers are needed.
- 4K buffer means it can’t tolerate traffic bursts.
- Solution was to apply traffic shaping at the proxy- ie add 1ms sleep between packet transmissions to smooth out bursts.

## Video Decoding

- Implemented codecs (by borrowing code from Vic directly):
- Xerox Parc Network Video (NV)
- Motion JPEG
- ITU h.261
- Sun Microsystems Cell B
- BVC

## Video Rendering

- Use Microsoft’s Game API (GAPI)- freely downloadable from _[www.pocketpc.com](http://www.pocketpc.com/)_
- Alternative is Graphics Device Interface (GDI)
- GAPI provides direct access to graphics memory on PPC.
- Frame rendering is reduced by 50% using GDI vs GAPI.

## Performance

## ToDos / Hurdles

- Improve Proxy to handle multiple VVP clients
- Provide audio streaming
- Providing bi-directional video or audio
- Possible uses:
- Video not necessarily for seeing faces but to convey what’s in the real world
- Remote monitoring – of experiments, medical patients, etc.
- Real time in-the-field data gathering especially when coupled with GPS,e.g. for emergency response
- Hurdles:
- How to get more wireless bandwidth while out in the field
- Upcoming faster CPUs: 400MHz Intel chip (Spring 2002)
- Thanks to Microsoft Corporation, HP Corporation, Medill Technical and Professional Development Center and the Illinois State Board of Education Learning Technology Center 7
- www.evl.uic.edu/cavern/continuum