MadSci Network: Computer Science
Query:

Re: How do the reflector sites used for Cu-SeeMe work?

Date: Tue Feb 9 14:50:11 1999
Posted By: David Ehnebuske, Sr. Technical Staff Member, Software, IBM Corporation
Area of science: Computer Science
ID: 916877090.Cs
Message:

As you probably know, you can use CU-SeeMe in two basic ways. You can connect one computer running the CU-SeeMe program over the Internet to another that's also running the program to hold a one-on-one video/audio conference. Or you can connect several computers running the CU-SeeMe program to a computer running a special program called the "reflector" to hold a multi-person conference.

To understand how CU-SeeMe works when using a reflector it is helpful to start by understanding how it works for the simpler one-on-one conference. Let's follow what happens when one computer, let's call it Alice's, is connected one-on-one over the Internet to another, say Bob's.

The camera attached to Alice's computer takes thirty pictures of Alice each second. Each of the pictures, called a "frame", is converted, by the camera and software in Alice's computer, into a grid of little squares, arranged like the squares on a piece of graph paper 160 squares wide and 120 squares high. Each square is assigned a number that tells how light or dark the picture is at that point. Zero is assigned to completely black squares, and 63 is assigned to completely white ones. Numbers in between are assigned to squares that are the various shades of gray. (If the picture is in color, as is possible with the newer versions of CU-SeeMe, each square is assigned three numbers to tell how bright the square is in each of the three primary colors -- red, green, and blue. But we'll ignore that extra complication.)

A grid that's 160 squares wide and 120 high contains 19,200 squares altogether. If the CU-SeeMe program on Alice's computer could send the 19,200 numbers that represent a frame to Bob's computer and do it thirty times each second, the CU-SeeMe program on Bob's computer could turn all those numbers back into the correct black, white, and gray squares on Bob's computer screen and Bob would see a moving picture of Alice. CU-SeeMe would be much simpler than it it if this were possible but unfortunately you can't send 19,200 numbers thirty times each second through a modem. It would take about 40 modems running at 28.8 to transmit that many numbers. To get around this inconvenient fact, CU-SeeMe does lots of work to "compress" the frames it sends so that the number of numbers is easily small enough to be sent by modem. CU-SeeMe compresses the frames in two ways.

First, it compresses frames using a program called a CODEC (for COmpress/DECompress). It is possible to compress a frame because the little squares that make it up tend to have similar brightness when they are near to each other. Because they have similar brightness, they have similar numbers assigned to them. By manipulating the numbers mathematically it is possible to reduce the number of numbers to much less than one per square. For example, suppose a whole bunch of squares in some part of the picture have nearly the same value, the CODEC could find the average and say that this one number applies to the whole area. Using tricks similar to this, the CODEC can compress the picture quite a bit. But even so, the amount of data to be sent is too much for a modem.

So second, as the frames arrive in Alice's computer from her camera thirty times a second, CU-SeeMe compares each one to the one that came before. When Alice is sitting in front of her computer, the camera sees both Alice and the background behind her. Generally Alice is moving but the background is the same in each frame. CU-SeeMe figures out what's different from frame to frame and, after sending the first complete frame to get things started, only sends the numbers corresponding to the parts that change. In fact, it is often the case that there is no difference between one frame and the next, for example when Alice sits still. In this case nothing needs to be sent. On Bob's computer, his CU-SeeMe program reverses the process, reconstructing complete frames from the partial ones and decompressing the compressed numbers.

If every thing were perfect, Alice's reconstructed picture would look just the same to Bob as if every frame had been completely sent. If you've used CU-SeeMe, you'll notice that everything isn't perfect -- but it's good enough to work!

Audio is handled in much the same way as the video. Alice's microphone and sound card turn the sound waves of her voice into numbers which CU-SeeMe then compresses and sends along with the numbers that describe the video frames. CU-SeeMe on Bob's computer decompresses the numbers representing the audio and sends them to his sound card which converts the numbers back into the sound of Alice's voice.

Of course, at the same time all this is happening, Bob's camera is sending frames to his computer, and his microphone is picking up the sound waves of his voice. These are converted to numbers in exactly the same way as on Alice's end and sent from his computer to hers. Alice sees Bob's picture and hears his voice.

Now, at last, we come to the question you asked. How does the reflector work? Let's say Alice, Bob, and Chris decide to hold a three-way conference using Doug's high powered computer hooked up directly to the internet as a reflector. First, Doug has to run the reflector program in his fancy computer and set it up so that Alice, Bob, and Chris are allowed to access it. We'll assume he's done that. Again, let's see what happens with Alice.

Suppose Alice is the first one to connect to the conference. All of the stuff that happens in Alice's computer when she connected to Bob still happens. But instead of connecting to Bob, she connects to Doug's reflector computer. Since there are no other computers to send to, the reflector simply throws Alice's numbers away. Now suppose Bob connects to Doug's reflector. His computer also starts sending the reflector numbers representing his video and audio just the same way that it did when he was connected directly to Alice. Since there are now two computers attached to the conference, the reflector sends all the numbers it receives from Bob's computer to Alice and all the numbers it gets from Alice to Bob. It "reflects" the numbers from Bob to Alice and from Alice to Bob. Alice sees and hears Bob, and the other way around.

Now suppose Chris connects. Since there are now three computers, the reflector sends all the numbers it gets from Alice to both Bob and Chris, letting both of them see and hear her. The reflector also sends all Bob's numbers to Alice and Chris, allowing both of them to see and hear him. Chris's numbers are similarly sent to both Alice and Bob, putting Chris's picture and voice on each of their computers. Presto! Three-way conference.

If Emily, Frank, and Gail connect, the reflector simply sends more and more copies of the numbers it receives to more and more computers. Eventually, of course, even Doug's fancy computer and direct Internet connection are working as hard as they can and there is simply no more capacity to add people. Hopefully Doug has set up the reflector to refuse more connections that his computer can handle.

I hope this helps answer your question. If you'd like more or need clarification of something, just e-mail me.


Current Queue | Current Queue for Computer Science | Computer Science archives

Try the links in the MadSci Library for more information on Computer Science.



MadSci Home | Information | Search | Random Knowledge Generator | MadSci Archives | Mad Library | MAD Labs | MAD FAQs | Ask a ? | Join Us! | Help Support MadSci


MadSci Network, webadmin@www.madsci.org
© 1995-1999. All rights reserved.