The invention relates generally to encoding and decoding of video information, especially such a used for the transmission of video information, and more particularly to systems and methods for video conferencing.
There are many systems and techniques for transmitting video information. The most effective conventional techniques involve special transmission and reception systems and require dedicated communication links to encode, transmit, receive and decode video information. The encoding, transmission, and decoding operations are generally resource intensive in terms of the processing (e.g., memory, CPU speed) and transmission requirements (e.g., communication link bandwidth) necessary to provide an adequate video presentation. Such special systems also are generally expensive to own and operate and therefore are not available to an average consumer.
Conventional methods for sending video data are shown and described in U.S. Pat. Nos. 5,740,278, entitled FACSIMILE-BASED VIDEO COMPRESSION METHOD AND SYSTEM, and 5,973,626, entitled BYTE-BASED PREFIX ENCODING, each of which are incorporated by reference herein by their entirety and form a part of this specification.
As discussed in U.S. Pat. No. 5,740,278, and in other conventional systems such as MPEG, video data is encoded in either what is referred to herein as “intra” frames (key frames) that hold a single frame image (which only refers to itself) or “inter” frames (delta or difference frames) that refer to another frame (either an intra frame or another inter frame). There are problems with such methods in that:
(1) network traffic associated with transmission of the two different types of frames is bursty, sometimes requiring a high available bandwidth and other times requiring only a lower available bandwidth due to the extraordinary amount of data transmitted in intra frames vs. inter frames (data in intra frames represents an entire image and are generally larger than inter frames which include more repetitive data and therefore can be compressed more easily, i.e. data rate and required bandwidth vary widely);
(2) loss of a single intra frame causes loss of quality, and inter frames subsequent to such a loss have no meaning, as they are only meaningful in reference to an intra frame to which they refer or another inter frame (which can also be lost) to which they refer;
(3) if an intra frame is lost, recovery is very inefficient because the encoder must transmit a new intra frame to regain synchronization, as the entire frame needs to be transmitted, even to replace only a lost portion of the frame; and
(4) the encoding technique produces an image which is initially very good (intra frame), but the quality of the image slowly degrades over time until transmission of next intra frame.
In conventional fax-based video encoding, first a difference frame is generated representing the difference in intensity of each pixel location in two succeeding image frames. On a line-by-line basis, the difference values are encoded. In order to prevent loss of image data or loss of image synchronization (that is, where each line starts and ends), each line of the transmitted video signal has an end-of-line code appended to the end of each line. In the case of conventional fax systems, this end-of-line code is used to protect against bit errors. Consequently, the end-of-line code is large in order to provide sufficient redundancy to correct random bit errors to the degree desired.
With the advent of public networks such as the Internet, many commercial products are available to the average consumer for transmitting video information over public networks. These systems may be, for example, coupled with a personal computer for use over the Internet or other public or private communication network. For example, a video conferencing or video distribution system may be configured to transmit video information over the Internet among a group of PCs. Due to the intense resource requirements necessary for transmitting such information, and the limited and/or unreliable resources available on public networks, however, performance of such systems falls short of expectations, and such systems are rendered less usable than more expensive specialized systems. What is needed, therefore, are improved methods for communicating video information.