@(#) $Header: README,v 1.10 94/12/04 22:40:17 mccanne Exp $ (LBL)

VIC 2.6 BETA
vic@ee.lbl.gov
Lawrence Berkeley Laboratory
Network Research Group
ftp://ftp.ee.lbl.gov/conferencing/vic/vic-*.tar.Z
	and
University of California, Berkeley
ftp://tenet.cs.berkeley.edu/pub/src/vic-*.tar.Z

This directory contains a BETA release of the source code to vic,
the UCB/LBL tool for video conferencing over the Internet.  Vic was
designed with a flexible and extensible architecture to support
heterogeneous environments and configurations.  For example, in high
bandwidth settings, multi-megabit full-motion JPEG streams can be 
sourced using hardware assisted compression, while over lower bandwidth
environments like the Internet, aggressive low bit-rate coding can
be carried out in software.

Vic is based on version 2 of the Real-time Transport Protocol (RTP),
which provides basic real-time media communication support.  RTP
is an application-level protocol and is implemented entirely within
vic -- you need no special system enhancements to run RTP.  Although
vic can be run point-to-point using standard unicast IP addresses,
it is primarily intended as a multiparty conferencing application.
To make use of the conferencing capabilities, your system must support
IP Multicast, and ideally, your network should be connected to the
IP Multicast Backbone (MBONE).  For more information on the MBONE,
check out ftp://ftp.isi.edu/mbone/faq.txt.  (Vic also runs over the
experimental real-time networking protocols from U.C. Berkeley's
Tenet group.  See http://tenet.berkeley.edu for more information.)

Vic supports only the video portion of a multimedia conference; audio,
whiteboard, and session control tools are implemented as separate
applications.  Our audio tool is called ``vat'', our whiteboard tool ``wb'',
and our session directory tool ``sd''.  All of these tools are available
via ftp to ftp.ee.lbl.gov in the ``conferencing'' subdirectory.  Other
related applications include ISI's Multimedia Conference Control, mmcc,
in ftp://ftp.isi.edu/confctrl/mmcc/mmcc*; the Xerox PARC Network Video
tool, nv, in ftp://ftp.parc.xerox.com/pub/net-research/nv*; and the INRIA
Video-conferencing System, ivs, in ftp://avahi.inria.fr/pub/videoconference.
Vic is backward compatible with RTPv1 and can interoperate with both
nv (v3.3) and ivs (v3.3).

Features unique to vic include a ``Robust H.261'' video encoder and
voice-activated video switching.  The Robust-H.261 encoder combines
the advantages of nv's block-based conditional replenishment scheme
(i.e., robustness to loss) with those of H.261 (i.e., higher compression
gain and compatibility with hardware codecs).  This is achieved by
coding only ``intra-mode'' macroblocks and using macroblock skip codes
to replenish only the blocks that change.  For a fixed bit rate, the
H.261 coder achieves frame rates typically 2-4 times that of the nv
coding format.

In voice-activated switching, a viewing window can be configured
to ``follow the speaker''.  Using cues from vat, vic will switch
the viewing window to whichever source is speaking.  More than
one window can be configured in this manner, which causes the
most recent N speakers to be displayed.

To build vic from source, simply run the ./configure script in
the top-level of the distribution directory.  Then run 'make'.
You'll need to have tcl/tk (v7.3/3.6) installed (or built in
the directory above the vic tree), and the "BLT" library (v1.7)
available via anonymous ftp to ftp.aud.alcatel.com, in the
directory tcl/extensions.

Supported configurations include:

	sparc		SunOS 4.x		videopix
	sparc		Solaris 2.4		sunvideo
	sparc		NetBSD 1.x		none
	DEC/MIPS	Ultrix 4.3		jvideo, Xv (tx/pip)
	DEC/AXP		OSF/1 v2.x		j300, jvideo
	SGI		IRIX 5.x		vl
	i386		BSD/386			none (yet)
	HP/PA		HP-UX 9.x		Xv

Notes:
	o For the DEC/j300, you will need Lance Berc's (berc@src.dec.com)
	  jvdriver server.  See http://chocolate.pa.dec.com/mbone.

	o Solaris-2 has ridiculously small limits on shared memory
	  segments.  If you want to display full sized 24-bit video
	  windows and more than one or two, add this line to /etc/system
	  and reboot:

	        set shmsys:shminfo_shmmax=2097152
		set shmsys:shminfo_shmseg=24

	  If you have a cg14 frame buffer (the built-in frame buffer
	  on sparc-20), it's a good idea to run 
		/usr/kvm/cg14config -g 2.2 -u 2.2
	  from your X startup script.  The default display gamma
	  is not appropriate for video (even though the man page
	  says the default is 2.2).

	o The BSD/386 X server does not support the shared memory extension.
	  Display performance is quite pathetic.

	o tx/pip support is currently broken.

	o sparc/parallax support is on the to-do list (we would love
	  for someone to do this and send us back the changes).

	o Due to bugs in the Solaris-2.3 poll system call, vic is
	  pretty much useless under 2.3.  You should upgrade to 2.4.

This work was co-sponsored by the the Lawrence Berkeley Laboratory
and the Tenet Group of the University of California Berkeley and of
the International Computer Science Institute.  Support was provided by

	(1) an AT&T Graduate Fellowship;
	(2) for the Lawrence Berkeley Laboratory:
		   i. the Director, Office of Energy Research, Scientific
		      Computing Staff, of the U.S. Department of Energy,
		      Contract No. DE-AC03-76SF00098,
		  ii. Sun Microsystems, and
		 iii. Digital Equipment Corporation; and
	(3) for the Tenet Research Group:
		   i. the National Science Foundation and the Advanced
		      Research Projects Agency (ARPA) under Cooperative
		      Agreement NCR-8919038 with the Corporation for
		      National Research Initiatives, and
		  ii. Digital Equipment Corporation.

As always, we very much want to hear about bugs and problems.  Please
don't hesitate to offer suggestions or other feedback.  Send all vic
related correspondence to vic@ee.lbl.gov (this list includes only the
developers and is not distributed beyond our site).  Thanks.

 - Steve McCanne (mccanne@ee.lbl.gov)
   Van Jacobson  (van@ee.lbl.gov)

