Method and apparatus for multiple media digital communication system
First Claim
1. A method for communicating between first, second and third callers over a packet switched network, said method comprising:
- invoking at least one connection routine at said first caller to cause control messages to be sent to respective connection routines at said second and third callers to enable a media type selection for each of said second and third callers, at least one of said media type selections including a selection of at least two different media types; and
generating at said first caller digital media packets corresponding to each of said at least two different media types;
wherein, for each of said at least two media types, said plurality of corresponding digital packets are formed into a common data stream, which is transmitted from said first caller to be delivered to and processed by said second and third callers in accordance with said media type selections, said common data stream being transmitted over said network via one or more packet switched communication channels, said one or more communication channels providing indeterminate system delays and bandwidth limitations that give rise to indeterminate packet loss.
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.
153 Citations
27 Claims
-
1. A method for communicating between first, second and third callers over a packet switched network, said method comprising:
-
invoking at least one connection routine at said first caller to cause control messages to be sent to respective connection routines at said second and third callers to enable a media type selection for each of said second and third callers, at least one of said media type selections including a selection of at least two different media types; and
generating at said first caller digital media packets corresponding to each of said at least two different media types;
wherein, for each of said at least two media types, said plurality of corresponding digital packets are formed into a common data stream, which is transmitted from said first caller to be delivered to and processed by said second and third callers in accordance with said media type selections, said common data stream being transmitted over said network via one or more packet switched communication channels, said one or more communication channels providing indeterminate system delays and bandwidth limitations that give rise to indeterminate packet loss. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
assigning a priority to each of said digital media packets at said first caller;
wherein said digital media packets are transmitted from said first caller in substantially said order of said assigned priorities.
-
-
3. A method in accordance with claim 1, wherein said selections are made by said first and second callers.
-
4. A method in accordance with claim 1, wherein said digital media data packets include video packets and audio packets.
-
5. A method in accordance with claim 2, wherein said step of transmitting said plurality of digital packets over said communication system in substantially said order of said assigned priority further comprises:
-
providing a queue for holding said plurality of digital packets respectively corresponding to each of said plurality of digital media prior to transmission over said communication system;
placing successive ones of said plurality of digital packets in said queue in order said assigned priority; and
transmitting the first digital packet of said queue over said communication system.
-
-
6. A method in accordance with claim 1, wherein said digital media data packets include video packets, audio packets, and collaborative data packets.
-
7. A method in accordance with claim 1, wherein said media type selections are bidirectional media type selections.
-
8. A method in accordance with claim 1, wherein said media type selection for said second caller is the same as said media type selection for said third caller.
-
9. A method in accordance with claim 1, wherein said media type selection for said second caller is different than said media type selection for said third caller.
-
10. A method in accordance with claim 4, wherein said video packets are assigned a lower priority than said audio packets.
-
11. A method in accordance with claim 6, wherein said collaborative data packets are assigned a lower priority than said video packets.
-
12. A method in accordance with claim 11, wherein said collaborative data packets comprise collaborative application data packets, and said video packets are assigned a lower priority than said audio packets.
-
13. An apparatus for communicating with a remote processing machine over a packet switched network, said apparatus comprising:
-
at least one processor; and
at least one connection routine running on said at least one processor, said at least one connection routine being operative to negotiate with said remote processing machine a selection of at least one media type from a plurality of media types including audio, video and data, and to configure, according to said selection, at least one media routine running on said at least one processor to process media data packets received from and to be transmitted to said remote processing machine over said packet switched network via one or more packet switched communication channels, said one or more communication channels providing indeterminate system delays and bandwidth limitations that give rise to indeterminate packet loss;
wherein a number of media types that said apparatus is capable of processing and a number of media types that said remote processing machine selects may be the same or different, and wherein the apparatus sends a first message to the remote processing machine indicating an available set of media types and the remote processing machine sends back an indication of the selection in a second message sent in response to the first message.
-
-
14. An apparatus for communicating with a remote processing machine over a packet switched network, said apparatus comprising:
-
at least one processor; and
at least one connection routine running on said at least one processor, said at least one connection routine being operative to negotiate with said remote processing machine a selection of at least one media type from a plurality of media types including audio, video and data, and to configure, according to said selection, at least one media routine running on said at least one processor to process media data packets received from and to be transmitted to said remote processing machine over said packet switched network via one or more packet switched communication channels, said one or more communication channels providing indeterminate system delays and bandwidth limitations that give rise to indeterminate packet loss;
wherein said selection is of only audio, and said negotiation comprises sending a first message and receiving a response message, said negotiation involving a message format that supports the description and selection of the audio, video and data media types. - View Dependent Claims (15)
-
-
16. A method of transmitting data packets from a first processing machine to one or more of a plurality of remote processing machines in data communication therewith, comprising:
-
providing at least one source of media data;
processing said media data to produce a plurality of data packets, each of said packets having a plurality of data fields associated therewith, at least one of said data fields comprising at least one destination address associated with a respective one of said plurality of remote processing machines; and
transmitting each of said plurality of packets to at least one of said plurality of remote processing machines over switched packet network via one or more packet switched communication channels, said one or more communication channels providing indeterminate system delays and bandwidth limitations that give rise to indeterminate packet loss;
wherein a first number of said plurality of packets may be transmitted for delivery to a first subset of said plurality of remote processing machines while a second number of said plurality of packets may be transmitted for delivery to a second subset of said plurality of remote processing machines, said first and second subsets not being identical. - View Dependent Claims (17, 18)
-
-
19. A method of controlling the transmission of media data packets across a switched packet network from a first processing machine to a remote processing machine, said method comprising:
-
generating a first plurality of media data packets based on media data received from a media data source;
transmitting said first plurality of packets from said first processing machine to said remote processing machine over said network via one or more packet switched communication channels, said one or more communication channels providing indeterminate system delays and bandwidth limitations that give rise to indeterminate packet loss;
for at least one of said first plurality of media data packets, determining a delay from transmission of said packet from the first processing machine to receipt of said packet by the remote processing machine; and
adjusting the sampling rate of said media data packets at said remote processing machine based on said delay. - View Dependent Claims (20, 21, 22)
-
-
23. A method of controlling the transmission of media data packets across a digital data network from a first processing machine to a remote processing machine, comprising:
-
generating a first plurality of media data packets based on media data received from a media data source;
transmitting said first plurality of packets from said first processing machine to said remote processing machine;
determining a parameter associated with transmission quality associated with at least one of said first plurality of packets; and
adjusting a playback rate of said media data packets at said remote processing machine based on said parameter. - View Dependent Claims (24)
-
-
25. A method for communicating over a packet switched network, said method comprising:
-
invoking a connection routine at a first caller to cause control messages to be sent to respective second and third callers to enable a media type selection for each of said second and third callers, and in response to said selections, receiving from said second and third callers media type selection control messages used to negotiate respective sets of media type selections, at least one of said sets of media type selections including at least a selection of two different media types;
generating at said first caller digital media packets corresponding to each of said at least two different media types; and
transmitting from said first caller said digital media packets for delivery to and processing by said second and third callers in accordance with said media type selections, wherein said media packets are transmitted over said network via one or more packet switched communication channels, said one or more communication channels providing indeterminate system delays and bandwidth limitations that give rise to indeterminate packet loss. - View Dependent Claims (26, 27)
-
Specification