CU-SeeMe (tm) for Windows.                                     3/21/96

CU-SeeMe is video conferencing software for the PC and Macintosh on the
Internet.  Obtain by FTP from cu-seeme.cornell.edu/pub/CU-SeeMe.

***WARNING*** This is beta software.  It has been alpha tested, but we
depend on outside users to find some of the bugs for us.  If you pick up 
and use this software, you are volunteering to be a beta tester.  Report
bugs to: cu-seeme-bugs@cornell.edu.

***NOTE*** There is now a commercial version of CU-SeeMe produced by
White Pine software.  Check out their web site at http://www.wpine.com.

Latest PC Windows version: W0.84

-------------------------------------------------------------------------
-----Contents------------------------------------------------------------

- Documentation Files
- New features in the latest release
- Basic Information about CU-SeeMe
- Download Instructions
- Where to get a Camera
- Cards and Letters please
- How to Test CU-SeeMe
- CU-SeeMe Mail list
- WWW - World Wide Web Access
- How to Operate a CU-SeeMe REFLECTOR
- Underlying Concepts
  - Frame differencing
  - Compression
  - Network
  - Reflectors
  - OpenContinue Packets
  - Flow Control
- The Fine Print - Copyright Information

-------------------------------------------------------------------------
-----Documentation Files-------------------------------------------------

* README.TXT - This file - general information.
* CUSEEME.TXT - User's Guide for CU-SeeMe for Windows.
* CHANGES.TXT - Changes from version to version.
* FAQ.TXT - Frequently Asked Questions and Answers.
* COMPAT.TXT - What's Compatible with CU-SeeMe for Windows,
               system requirements, capture cards, etc.
* CUSEEME.HLP - Windows Help file.

-------------------------------------------------------------------------
-----New features in the latest release----------------------------------

The Latest version, W0.84, adds the following over the previous version
W0.70:

* Chat window - Lets you send and receive keyboard messages to and from
  other clients.  There are filters that enable you to hide text from 
  clients that you're not conversing with.

* QuickCam support - We now support the QuickCam parallel port camera
  made by Connectix.

* Inverted Palette fixed - The inverted-looking palette that some capture
  cards had (like the Promovie Spectrum and others) has been fixed.  We
  now support a 64 Gray palette with an 'invert' option for these cards 
  that will not accept the 256 Grays that CU-SeeMe used to insist upon.

* Audio fixes - The popping and clicking noises heard when there are
  imperfections on the network have been much reduced.  Also, when the
  first packet of an audio transmission is lost, the whole transmission
  is no longer ignored.  A new bandwidth manager regulates outgoing 
  video while audio is being sent - this results in better reception.

* New version handling - The application can tell what version is running
  on other client's machines (accurately) for PC or Mac, even when the
  remote client is running a newer version.

Known Bugs Remaining:

* The Participants Window is slow, does not redraw correctly, sometimes
  shows users in the wrong section, etc.  We will have a complete replace-
  ment for this Window in our next release.  Please don't take time to
  note specific problems in the Participants Window.  The same applies
  to the Toolbar under the video windows.
  
* Audio still is fussy about network performance especially on slower
  links.  This results in gaps in sound or popping and 'stuttering'.
  There is still a substantial delay in the audio receive on the PC
  version.  Timing improvements for Audio are next on my list.

* It is often not possible to send audio from a PC that does not have
  video.  There is a new flow control feature that is not fully
  implemented on the PC.

* There are still problems connecting directly TO a PC client that has
  already been connected somewhere else.
  
* Win'95 users often find their local window missing.  It's off-screen
  somewhere - edit /windows/cuseeme.ini and remove (or adjust) the 
  settings for [Video Position] for Window0=x,y.

-------------------------------------------------------------------------
-----Basic Information about CU-SeeMe------------------------------------

CU-SeeMe, a desktop videoconferencing program, for Macintosh and PC, 
is available free from Cornell University under copyright of Cornell 
and its collaborators.  Future commercial versions and commercial 
licensing of CU-SeeMe will be available from White Pine Software, 
Cornell's Master Licensee for commercialization of CU-SeeMe.

CU-SeeMe provides a one-to-one conference, or by use of a reflector, a 
one-to-many, a several-to-several, or a several-to-many conference 
depending on user needs and hardware capabilities.  It displays 4-bit 
grayscale video windows at 160x120 pixels or at double that diameter, 
and now includes audio.  So far as we know, CU-SeeMe was the first 
software available for the Macintosh to support real-time multi-party 
videoconferencing on the Internet.

CU-SeeMe is intended to provide useful conferencing at minimal cost.
Receiving requires only a Mac with a screen capable of displaying 16 grays,
or a PC with a screen capable of displaying 256 colors, and a connection 
to the Internet.  Sending requires the same plus a camera and digitizer 
(see specs below) which can cost as little as $100 to add on.

At this time CU-SeeMe runs on the Macintosh and the PC using an IP 
network connection.  With CU-SeeMe each participant can decide to be a 
sender, a receiver, or both.  WARNING: Although being improved with 
each version, CU-SeeMe is not mature production software--USE AT YOUR 
OWN RISK.  And also, PLEASE TREAT THE INTERNET KINDLY--keep b/w limits 
set down under 100kbps, or less if you share limited bandwidth with 
others.  Many, many folks connected to the Internet can use CU-SeeMe 
with default settings and cause no problem to anyone else; but 
unfortunately, not everyone.  If you don't know whether using CU-SeeMe 
will mess up the network for someone else, CHECK IT OUT first, please.

CU-SeeMe was initially written for the Macintosh by Tim Dorcey with design
assistance and sponsorship by Richard Cogger of the Advanced Technology
group in the Network Resources division of Cornell University's Information
Technology department (CIT).  Important early contributions came from:
Cornell University Medical Colleges (CUMC), Scott Brim, and John Lynn.

The first version for Windows was written by Steve Edgar and released
in April 1994.

Since Oct.  1, 1993, the CU-SeeMe Project receives funding from the
National Science Foundation.  A very significant collaborative effort at
Cornell University Medical Colleges (CUMC) is contributing substantial
expertise and code.

Development contributers to Macintosh CU-SeeMe0.83: Cornell: Richard 
Cogger (Project Director/PI), Tim Dorcey, Scott Brim (Co-PI), John 
Lynn, Larry Chace, Jef Han; CUMC: Steve Erde, Aaron Freimark, Aaron Giles, 
Erik Dahl; UIUC: Charley Kline (audio).

Development contributers to Windows CU-SeeMe 0.84:  Cornell: Richard
Cogger (Project Director/PI), Richard Kennerly, Steve Edgar, Larry
Chace;  Independent: Michel Carleer (audio) ;  UIUC: Charley Kline 
(audio).

This material is partially based on work sponsored by the National
Science Foundation under Cooperative Agreement No. NCR-9318337.  The
Government has certain rights in this material.

CU-SeeMe (tm)  Copyright 1993, 1994, 1995, Cornell University
    See Copyright notices at the end of this document.
 

-------------------------------------------------------------------------
-----Download Instructions-----------------------------------------------

CU-SeeMe files are available via FTP from cu-seeme.cornell.edu.  Look
in pub/CU-SeeMe/PC.CU-SeeMeCurrent for CUSEEME.ZIP.  Or look for the
PC.CU-SeeMe???? directory with the highest version number for the latest
version.

Download the cuseeme.zip file in binary mode and unzip using PKUNZIP.EXE.
The other files next to cuseeme.zip are also in the ZIP archive so you 
don't have to download them separately.

If you don't have a copy of the ZIP compression utilities
you can download them from ftp.cit.cornell.edu in the pub/dos/util
directory as pkz204g.exe.  Then execute this file to extract the
zip utilities.  ZIP is also available on lots of other public servers.

Contents of cuseeme.zip:

readme??.txt    : This file.
cuseeme.txt     ; CU-SeeMe for Windows User's Guide
cuseeme.hlp     ; Hypertext Windows Help file for CU-SeeMe.
cuseeme.exe     ; The CU-SeeMe program itself.
compat.txt      ; List of what's compatible with CU-SeeMe: system 
                  requirements, winsock stacks, capture cards, etc.
faq.txt	        ; Frequently Asked Questions
msvideo.dll     ; Microsoft Video for Windows driver.
ctl3d.dll       ; 3-d controls driver.
ivslider.dll    ; Control for audio panel and other CU-SeeMe features.

Unzip the CU-SeeMe files into a directory.  You must manually install
the free version of CU-SeeMe (The Win'95 "Add/Remove Programs" control
panel will not work with CU-SeeMe).

Here's what we recommend you do with the installation files:

IVSLIDER.DLL - This file needs to be in a directory in your DOS PATH.
               You can put a copy of IVSLIDER.DLL in /WINDOWS.
CTL3D.DLL    - You probably don't have to do anything.  If you don't
               already have CTL3D.DLL installed on your system then
               you can copy CTL3D.DLL into your /WINDOWS directory.
               You may as well try CU-SeeMe and see if it complains
               before doing this.  Windows '95 already has CTL3D.DLL
               so don't install this copy anywhere.
MSVIDEO.DLL  - If you don't already have a copy of msvideo.dll
               installed on your system you can put a copy in your
               /WINDOWS or /WINDOWS/SYSTEM directory.  Windows '95
               comes with MSVIDEO.DLL so you don't want this one.
CUSEEME.EXE  - This is the main CU-SeeMe program.  You can make an
               icon for cuseeme.exe.
CUSEEME.HLP  - This is the Windows help file for CU-SeeMe.  You can
               make an Icon for this also.  I recommend that you
               install CUSEEME.HLP in a directory in your path so 
               that it will be accessible from the CU-SeeMe program.


-------------------------------------------------------------------------
-----Where to get a Camera-----------------------------------------------

A small monochrome CCD camera, suitable for CU-SeeMe is
available from:
     Howard & Associates
     545 Calle San Pablo                 Phone 805-383-7444
     Camarillo, CA 93012-8550          FAX 383-7442
      AOL: HOWENT
for about $200 or a bit more.  The price varies from time to time depending
on the dollar/Yen situation.  Howard Enterprises will fax you complete
specs and the latest price list.   A few specs:
   - The part number/name is: NCK - 9102 TeleCamera
   - 1/3" B/W FT CCD Pixels 400H x 504V (Effective 378H x 486v)
   - Video Out 1.0vpp 75ohm (Negative) RCA connector
   - Electronic Auto Iris (Magnification 260)
   - Resolution: Horiz Lines >230 picture center, >200 edge
   - S/N >40db - Min Illumination: 8 lux or less
   - Focal length 6.1 mm, Focal Distance 600mm
   - Power 12VDC 130mA
   - Dimensions 43 x 67 x 120 mm

Developer Comments: Subjectively, it seems to give a picture somewhat less
crisp than a typical camcorder, but perfectly useable.  At 28-30 inches, it
seems to frame about the right size for my taste.  He has color models too,
which provide better balance of tones even in b&w, but a little less light
sensitivity.  Note with earlier versions of CU-SeeMe, the lower sensitivity
was a problem, but with 0.60, the brightness and contrast controls in the
software allow you to compensate.  The color model is probably a better bet
and worth the small extra cost.

-------------------------------------------------------------------------
-----Cards and Letters please--------------------------------------------

Please send comments and suggestions to rc19@cornell.edu.
Please send BUG REPORTS to: cu-seeme-bugs@cornell.edu.
You can be a great help in making CU-SeeMe a good, stable application.

Be Seeing You.

The CU-SeeMe Development Team

Cornell University Information Technologies (CIT)
Cornell University
Ithaca, New York

-------------------------------------------------------------------------
-----How to Test CU-SeeMe------------------------------------------------

To connect for a CU-SeeMe video conference, you must have the IP address of
another CU-SeeMe user or the address of a CU-SeeMe reflector.  If calling
another user, the user must have CU-SeeMe running in *WAITING* status on
their desktop.  Use Connect or Connect to > in the Connections menu.  

You will need to use a reflector to have a multiparty conference on the
Internet.  The CU-SeeMe reflector program is a Unix program which we have
tested on a number of Unix OS's.  If you are not familiar with
IP networks, reflectors and/or your particular network set-up, ask your
system administrator for help in operating a CU-SeeMe reflector.
Instructions on how to operate a reflector follow.

As of January, 1995, Cornell regularly runs a reflector for testing 
at 132.236.91.204.  It is usually very busy, so consider NOT having 
the Open Windows Automatically preferences item checked, especially 
if you are on a modem link.  (Still at 132.236.91.204 as of 2/13/96 :) )

-------------------------------------------------------------------------
-----CU-SeeMe Maillist---------------------------------------------------

For anyone interested in following developments in CU-SeeMe or its use,
an automated maillist has been established.  The list is provided for
unrestricted discussion of the CU-SeeMe packet video software under
development by the Cornell CU-SeeMe project and its collaborators.
Developers and project management all read the list.  Currently, there
are over 1000 members on the list, and there are usually around 25
messages each day.  We, and other users, would also like to hear about
and discuss innovative uses of CU-SeeMe.  Please write and tell us your
story.
     To join the list, send a message with the following line as the entire
message body to listserv@cornell.edu:

subscribe CU-SEEME-L  <first name> <last name>

(Substitute your actual name, please; it's amazing how many don't.)
You should receive a confirming message with extensive instructions on
use of the list.

You can send mail to be distributed to the list to:
cu-seeme-l@cornell.edu.  Please be sure to send to this address ONLY
when you want your message redistributed to everyone.

TO UNSUBSCRIBE:

   Send a message to listserv@cornell.edu with no "subject:" with
the message body:

UNSUB CU-SEEME-L

-------------------------------------------------------------------------
-----World Wide Web Access-----------------------------------------------

   We maintain a CU-SeeMe WEB page at:

http://cu-seeme.cornell.edu/Welcome.html

   The latest Windows files for download can be found at:

http://cu-seeme.cornell.edu/PC.CU-SeeMeCurrent.html

   For information concerning White Pine's commercial version of CU-SeeMe:

http://goliath.wpine.com/cu-seeme.html

-------------------------------------------------------------------------
-----How to Operate a CU-SeeMe REFLECTOR---------------------------------

Obtain software and documentation -- a tar files with binary 
executables for many flavors of unix may be obtained via anonymous ftp 
from cu-seeme.cornell.edu in directory /pub/cu-seeme/reflector.  Untar 
and install in the usual way.  The README is available as txt file 
seperately if you want to read about it first before downloading.

We have carried up to 30-some participants on a reflector (a real 
bash).  But give some thought to how reflectors are linked together 
and how many streams are flowing on which paths.  Currently, CU-SeeMe 
limits open windows to 8, but trying to have 8 folks each send one 
stream and receive 7 thru the same reflector, assuming it has just one 
ethernet interface, would mean 8 streams in and 56 out.  If each tries 
to get 100Kbps through at some point in time, you would be trying to 
get 6.4 Mbit/sec thru the ethernet.  That would probably be deep into 
the collision realm.  With reflector networking features, you can set 
up a reflector net which could give a fairly large conference; PLEASE 
PAY ATTENTION TO THE LOAD YOU PUT ON THE INTERNET.

-------------------------------------------------------------------------
-----Underlying Concepts--------------------------------------------RBK--

* Frame differencing

   One of the ways that CU-SeeMe minimizes the amount of data it must
transmit is to only send parts of the frame that are sufficiently different 
from the previous frame to warrant use of bandwidth.  The 120 x 160 pixel
video window is divided into 8 x 8 pixel 'squares'.  Every time a frame
is captured, CU-SeeMe uses a 'differencing algorithm' (written by Tim
Dorcey) that compares the pixels in the new square to those in the previous
square sent.  If they are sufficiently different, the square is sent on
the network.  What this means is that, if you're looking at a person
speaking, you get more frequent update of their face (which moves and 
changes rapidly) and less frequent updates of the background which doesn't
change often and is not the center of attention anyway.  

   Frames that don't change are sent every so often anyway to correct 
for the effects of lost packets.  If a square changes and the new square
is sent, but you lose the packet, you'll see what looks like a flaw in the
image - sometimes you'll see an image of a hand off to the side, hanging
in the air while the person's real hand is somewhere else.  After a while
the phantom hand disappears when the square is sent again.

   This form of 'compression' is not lossless, but we believe the visual
effects are minimal considering the substantial improvement in perceptible
motion.  In practice we achieve as much as a 10:1 ratio quite routinely.

* Video Compression

   Another way that CU-SeeMe minimizes the amount of data it must
transmit is to compress the data that it sends.  The scheme used by
CU-SeeMe is relatively simple so it can operate in real-time.  Each
'square' of 8 x 8 pixels is handled as 8 rows.  The first row of eight
pixels is sent (in four bytes).  Each of the next seven rows is sent
in one of several ways depending on how different it is from the previous
row.  If the row is exactly the same as the previous row or only differs
in brightness level, only a 4-bit code is sent.  If it is slightly more
different from the previous row, and is only zero or one brightness level
different the row can be sent as a 4-bit code and one byte of differences.
If it is yet more different it can be sent as a 4-bit code and two bytes
of extra data.  If the row is too different from the one above it, the
whole row is just sent.
   We achieve a compression rate of about 2:1 using this technique.
This compression scheme is lossless - the data received and displayed
is exactly what would have been received if compression were not used.


* Network

   CU-SeeMe uses the UDP protocol.  This is different from most TCP/IP
applications which use TCP.  UDP is used by NFS (Network File System)
and PING and a few other programs.

   CU-SeeMe uses UDP socket 7648.  Some network providers have "firewalls"
installed that prevent UDP traffic such as CU-SeeMe from flowing.  Some
of these providers are willing to remove the firewall for you if you
ask, some are not.  There is more information about firewalls in FAQ.TXT.

   CU-SeeMe for Windows requires a Winsock TCP/IP stack.  See COMPAT.TXT
for details.  Win '95 comes with a TCP/IP client that is Winsock compatible
that works with CU-SeeMe.

   Macintosh CU-SeeMe uses MacTCP.  Compatibility with OpenTransport is
expected, although we don't know when - it depends on a new release from
Apple.


* Open Continue Packets

   In addition to Video, Audio, and AuxData (for Chat, Slide Projector),
CU-SeeMe needs to send 'control' data back and forth.  OpenContinue 
packets serve several purposes and contain several types of information:

- Session Initiation and 'Keep Alive' - The same packet serves to open
  a new connection or to keep an existing one current.

- Indicates Sender capability and information.  OpenContinue packets
  contain the sender's IP address, Name, Video and Audio Send capability,
  version information and more.

- Information Specific to other clients.  Each OpenContinue packet
  contains information about other clients - Am I getting your audio / 
  video, Chat, and more.

- Receive Rate Data.  Information about how much data we've receiving
  is sent out so the sender knows how succesfull they're being in sending
  to us.


* Flow control

   Flow control is an important part of successful video conferencing
on the Internet.  Here are three methods of flow control being used
by CU-SeeMe currently:

- Packet Loss Reports

  Every CU-SeeMe client sends information to video senders concerning
  packet loss.  The sender averages the results of packet loss reports
  from all clients and if more than 5 percent of outgoing packets are not 
  being received, it will reduce it Send Cap.  To reduce the Send Cap
  the applications will grab video frames less frequently.  If the
  percent packet loss becomes less than 5 percent the application will
  increase the send cap slightly.

- Recvrate Reports

  As CU-SeeMe clients receive data they regularly send back information
  indicating how much data they've successfully received.  The sender
  uses this information to determine if data is being lost and can slow
  down sending if needed.  This protocol detects data loss only on the
  local link whereas Packet Loss Reports detect loss from end-point to
  end-point.

- Rate Control

  The reflector sends out Rate Control Query packets every so often
  and expects a Rate Control Reply packet to be returned immediately.
  It can then measure the round trip time to see if there is a delay
  existing in the network.  It can then reduce the cap until the delay
  is acceptable.

* Reflectors

   Reflectors are Unix machines running the CU-SeeMe Reflector program.
A CU-SeeMe client can connect directly to another client (Mac or PC) but
in order to have a conference of more than two clients a reflector must
be used.  A reflector accepts up to 24 (configurable) video conference 
clients.  There is more information on reflectors on the web page (but
not much, yet).


-------------------------------------------------------------------------
-----The Fine Print - Copyright Information------------------------------

The "two faces" Logo is a trademark of Cornell University.  It is an 
original design by Aaron Freimark.

The name "CU-SeeMe" is a trademark of Cornell University.

 CU-SeeMe(tm) Copyright (c) 1993, 1994, 1995, Cornell University

Cornell hereby grants permission to use and copy, for any purpose, and 
to redistribute this binary executable version of the CU-SeeMe (tm) 
program (whole and unmodified), all without fee, provided that (1) any 
such redistribution shall realize no profit or gain, direct or 
indirect, (2) these copyright and permission notices, and those of 
Cornell's collaborators included below, appear on all copies and 
supporting documentation, (3) the name of Cornell not be used in 
advertising or publicity pertaining to distribution of the program 
without specific prior permission, and (4) notice be given in 
supporting documentation that copying and distribution is by 
permission of Cornell.  Cornell reserves the right to modify this 
grant of permission in future releases.  Decompiling, disassembling, 
or reverse engineering this program is not permitted.  This notice 
makes no grant of permission or access to the source code for this 
program; such access is available by specific seperate license only.  
CORNELL MAKES NO REPRESENTATIONS OR WARRANTEES, EXPRESS OR IMPLIED.  
By way of example, but not limitation, CORNELL MAKES NO 
REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY 
PARTICULAR PURPOSE OR THAT THE USE OF THIS SOFTWARE OR DOCUMENTATION 
WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS, OR OTHER 
RIGHTS.  Cornell shall not be held liable for any liability with 
respect to any claim by the user or any other party arising from use 
of the program.

The audio portion of CU-SeeMe was provided by Charley Kline's 
Maven.  The following are notices of Charley Kline and UIUC and 
apply only to the Maven code contained in CU-SeeMe.  These are 
generic notices; the reference to source code is inapplicable to 
this binary distribution:

 Charley Kline, cvk@uiuc.edu
 University of Illinois Computing and Communication Services
 28 Feb 1994

 Copyright (c) 1994 by Charley Kline and the 
      University of Illinois Board of Trustees.

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
  are met:

  1. Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  3. All advertising materials mentioning features or use of this software
     must display the following acknowledgement:
       This product includes software developed by the University of
       Illinois, Urbana and its contributors.
  4. Neither the name of the University nor the names of its contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE TRUSTEES AND CONTRIBUTORS ``AS IS'' AND
  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  ARE DISCLAIMED.  IN NO EVENT SHALL THE TRUSTEES OR CONTRIBUTORS BE LIABLE
  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  SUCH DAMAGE.

Portions of the audio code for Windows CU-SeeMe were provided by 
Michel Carleer.

Michel Carleer
Laboratoire de Chimie Physique Moleculaire
Universite Libre de Bruxelles CPi-160/09