Method and apparatus for multiple media digital communication system
First Claim
1. A method of communicating media data packets from a first processing machine to at least one remote processing machine over a communication system, said method comprising the steps of:
- enabling at said first processing machine a connection processing stream for said remote processing machine with which said first processing machine communicates over said system during a connection;
enabling at said first processing machine at least one media processing stream associated with said connection processing stream;
establishing a relationship in said first processing machine which associates a media processing stream located in said remote processing machine with said connection processing stream in said first processing machine;
processing with said media processing stream in said first processing machine at least one type of media data to produce media data packets;
determining a communication path for sending said media data packets to said media processing stream located at said one remote processing machine and through said connection stream at said first processing machine based on said established relationship;
transmitting said media data packets to said media processing stream in said remote processing machine through said communication path;
recording in said first processing machine a time of transmission for at least one of said media data packets;
receiving an acknowledgment message from said remote processing machine containing information representing when said at least one media data packet sent from said first processing machine was processed at said remote processing machine; and
determining at said first processing machine an end to end system delay based on said recorded time of transmission of said at least one data media packet and said information in said acknowledgment message.
6 Assignments
0 Petitions
Accused Products
Abstract
The present invention is embodied in a digital communication system where multiple media data sources are time multiplexed into a packetized data stream, each packet having an assigned priority and the packetized data stream transmitted in substantially the order of assigned priority. At both the transmit side, and the receive side, audio packets are given priority processing over video packets, which in turn have priority over text/graphics data packets. Continuous real time audio playback is maintained at the receiver by delaying the playback of received audio in a first in/first out (FIFO) buffer providing a delay at least equal to the predicted average packet delay for the communication system. Optionally, the average system delay is continuously monitored, and the audio playback delay time is adjusted accordingly. Audio playback is slowed or accelerated in order to shrink or grow the difference in time between the sender and receiver. In another aspect of the invention, a conference of three or more callers is created by broadcasting a common packetized data stream to all conference callers.
152 Citations
44 Claims
-
1. A method of communicating media data packets from a first processing machine to at least one remote processing machine over a communication system, said method comprising the steps of:
-
enabling at said first processing machine a connection processing stream for said remote processing machine with which said first processing machine communicates over said system during a connection; enabling at said first processing machine at least one media processing stream associated with said connection processing stream; establishing a relationship in said first processing machine which associates a media processing stream located in said remote processing machine with said connection processing stream in said first processing machine; processing with said media processing stream in said first processing machine at least one type of media data to produce media data packets; determining a communication path for sending said media data packets to said media processing stream located at said one remote processing machine and through said connection stream at said first processing machine based on said established relationship; transmitting said media data packets to said media processing stream in said remote processing machine through said communication path; recording in said first processing machine a time of transmission for at least one of said media data packets; receiving an acknowledgment message from said remote processing machine containing information representing when said at least one media data packet sent from said first processing machine was processed at said remote processing machine; and determining at said first processing machine an end to end system delay based on said recorded time of transmission of said at least one data media packet and said information in said acknowledgment message. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of communicating media data packets from a first processing machine to at least one remote processing machine over a communication system, said method comprising the steps of:
-
enabling at said first processing machine a connection processing stream for said remote processing machine with which said first processing machine communicates over said system during a connection; enabling at said first processing machine at least one media processing stream associated with said connection processing stream; establishing a relationship in said first processing machine which associates a media processing stream located in said remote processing machine with said connection processing stream in said first processing machine; processing with said media processing stream in said first processing machine at least one type of media data to produce media data packets; determining a communication path for sending said media data packets to said media processing stream located at said remote processing machine and through a connection stream at said first process machine based on said established relationship; transmitting said media data packets to said media processing stream in said remote processing machine through said communication path; receiving at said connection processing stream in said first processing machine a media data packet directed thereto from said remote processing machine; directing said received media data packet from said receiving connection processing stream to a receiving media data processing stream for processing the same; determining if the received media data packet is an audio or video data packet; and
if so, then;detecting errors in said received audio or video data packet; and if an error is detected, determining if there is sufficient time for a retransmission of a receiving audio or video data packet based on a delay time in the transmission path for said received audio or video data packet. - View Dependent Claims (12, 13, 14)
-
-
15. A recorded medium containing a program for operating a first processing machine to enable a method of communicating media data packets from said first processing machine to at least one remote processing machine over a communication system, said method comprising the steps of:
-
enabling at said first processing machine a respective connection processing stream for each remote processing machine with which said first processing machine communicates over said system during a connection; enabling at said first processing machine at least one media processing stream associated with each said connection processing stream; establishing an address table in said first processing machine which associates a media processing stream located in said at least one remote processing machine with a respective connection processing stream in said first processing machine; processing with said media processing stream in said first processing machine at least one type of media data to produce media data packets; consulting said address table to determine a communication path for sending said media data packets to a media processing stream located at said remote processing machine; and transmitting said media data packets to said media processing machine through a said connection stream associated with said media processing stream in said first processing machine and with an address of said media processing stream at said remote processing machine. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. A recorded medium containing a program for operating a first processing machine to enable a method of communicating media data packets from said first processing machine to at least one remote processing machine over a communication system, said method comprising the steps of:
-
enabling at said first processing machine a connection processing stream for said remote processing machine with which said first processing machine communicates over said system during a connection; enabling at said first processing machine at least one media processing stream associated with said connection processing stream; establishing a relationship in said first processing machine which associates a media processing stream located in said remote processing machine with said connection processing stream in said first processing machine; processing with said media processing stream in said first processing machine at least one type of media data to produce media data packets; determining a communication path for sending said media data packets to said media processing stream located at said remote processing machine and through a connection stream at said first process machine based on said established relationship; transmitting said media data packets to said media processing stream in said remote processing machine through said communication path; receiving at said connection processing stream in said first processing machine a media data packet directed thereto from said remote processing machine; directing said received media data packet from said receiving connection processing stream to a receiving media data processing stream for processing the same; determining if the received media data packet is an audio or video data packet; and
if so, then;detecting errors in said received audio or video packet; and if an error is detected, determining if there is sufficient time for a retransmission of a received audio or video data packet based on a delay time in the transmission path said received audio or video data packet. - View Dependent Claims (43, 44)
-
Specification