Claims
- 44. A method for encoding a plurality of audio channels during play of an electronic game, using at least one encoder, but fewer encoders than audio channels to be encoded, each encoder encoding audio signals in an active audio channel and producing corresponding data packets for transmission to at least one recipient participating in the play of the electronic game, comprising the steps of:
(a) creating a round robin history of the audio channels that have been encoded by the encoders during successive processing intervals; (b) if more than one audio channel per encoder are simultaneously active, selecting an audio channel to encode with each encoder based upon the round robin history and on the audio channels that are then active, so that an audio channel that is active will be skipped and not encoded more frequently than every other processing interval; and (c) updating the round robin history for each processing interval to indicate each audio channel that was encoded during the processing interval.
- 45. The method of claim 44, wherein the step of creating the round robin history comprises the step of indicating each audio channel that has just been encoded during a current processing interval, at a lower priority position in the round robin history.
- 46. The method of claim 45, wherein the round robin history includes indications of the audio channels in successively lower priority positions, from a highest priority to the lowest priority position, and wherein the step of selecting the audio channel to encode comprises the step of checking the audio channels that are indicated in said positions, starting at the highest priority position in the round robin history to determine if the audio channel indicated is active and if so, encoding said audio channel with any available encoder, so that audio channels that are active and have a higher priority position in the round robin history list are selected first for encoding.
- 47. The method of claim 44, wherein if a data packet for a specific audio channel that is still active was not encoded in a processing interval, further comprising the step of duplicating audio data from a data packet that was encoded and transmitted for said specific audio channel during an immediately prior processing interval, to provide audio data to be played for said specific audio channel for the processing interval in which the audio data packet was not encoded.
- 48. The method of claim 47, wherein the step of duplicating the audio data is carried out by a recipient of the data packet for the specific audio channel, when playing the audio data for the specific audio channel.
- 49. The method of claim 48, wherein the duplicate audio packet for the specific audio channel is not transmitted to any recipient.
- 50. The method of claim 44, wherein there are up to two encoders and up to four audio channels to be encoded, each encoder encoding no more than one data packet during each processing interval.
- 51. A memory medium having machine executable instructions for carrying out the steps of claim 44.
- 52. A system for encoding a plurality of audio channels during play of an electronic game, comprising:
(a) a processor; (b) a memory that is coupled to the processor, said memory storing machine instructions for causing the processor to carry out a plurality of functions, said functions including executing an instance of an electronic game; (c) audio input transducers and audio output transducers, coupled to the processor and employed for input and output of audio signals, each audio input transducer providing an audio signal to a corresponding audio channel to be encoded and transmitted to at least one recipient, each audio output transducer being employed to play an audio signal received from another player participating in the play of an electronic game; (d) at least one encoder, but fewer encoders than audio channels to be encoded, each encoder encoding audio signals in an active audio channel and producing corresponding data packets for transmission to at least one recipient participating in the play of an electronic game, wherein said machine instruction cause the processor to carry out a plurality of functions, including:
(i) creating a round robin history of the audio channels that have been encoded by the encoders during successive processing intervals; (ii) if more than one audio channel per encoder are simultaneously active, selecting an audio channel to encode with each encoder based upon the round robin history and on the audio channels that are then active, so that an audio channel that is active will be skipped and not encoded more frequently than every other processing interval; and (iii) updating the round robin history for each processing interval to indicate each audio channel that was encoded during the processing interval.
- 53. The system of claim 52, wherein the machine instructions further cause the processor to indicate each audio channel that has just been encoded during a current processing interval, at a lower priority position in the round robin history.
- 54. The system of claim 53, wherein the round robin history includes indications of the audio channels in successively lower priority positions, from a highest priority to the lowest priority position, and wherein the machine instructions cause the processor to check the audio channels that are indicated in successive positions, starting at the highest priority position in the round robin history to determine if the audio channel indicated is active and if so, encoding said audio channel with any available encoder, so that audio channels that are active and have a higher priority position in the round robin history list are selected first for encoding.
- 55. The system of claim 52, wherein there are up to two encoders and up to four audio channels to be encoded, each encoder encoding no more than one data packet during each processing interval.
- 56. A method for decoding audio channels during play of an electronic game, to produce an audible audio output for at least one player intended as a recipient of audio content from another player participating in playing the electronic game, comprising the steps of:
(a) instantiating a selected number of decoders for decoding data packets received, to recover the audio content conveyed by the data packets, wherein each decoder is associated with a different listening channel; (b) creating queues of data packets received from audio sources in different listening channels, each listening channel including data packets from one or more sources for decoding by the decoder associated with the listening channel; (c) if a data packet for an audio source is missing in a stream of data packets in a listening channel, replicating a content of a previous data packet for said source, for use instead of the data packet that was missing; (d) selecting data packets from the queues to be decoded, but not exceeding the number of decoders available; and (e) decoding the data packets that were selected, using the decoders that were instantiated.
- 57. The method of claim 56, wherein the step of selecting comprises the step of enabling each player to mask any listening channel to which the player does not want to listen.
- 58. The method of claim 56, wherein the step of selecting comprises the step of enabling each player to selectively mute a specific source having data packets in a queue, so that the data packets from the specific source are not selected for decoding for said player.
- 59. The method of claim 56, wherein the step of selecting comprises the step of sorting the data packets that will be decoded for each player according to any priority assigned by the player relative to a source of the data packets.
- 60. The method of claim 56, wherein the step of selecting includes the step of applying a priority defined by the electronic game that is being played, in determining the data packets included in each listening channel to be heard by a player when decoded.
- 61. The method of claim 56, further comprising the step of ordering the data packets as a function of a volume of the content of the data packets, wherein the step of selecting comprises the step of eliminating each data packet in the queues as thus ordered, that includes a substantially silent content.
- 62. The method of claim 61, wherein for each player that will listen to the data packets that are decoded, the step of decoding comprises the step of decoding a first predetermined number of the data packets that were ordered, using silent compressed data for the content that will be heard in place of any inexistent data packets.
- 63. The method of claim 56, further comprising the step of mixing data packets from a plurality of sources before the step of decoding.
- 64. The method of claim 56, further comprising the step of mixing content from a plurality of sources after the step of decoding.
- 65. The method of claim 56, further comprising the steps of:
(a) ordering the data packets to produce an ordered list for each player receiving and listening to the content of the data packets; (b) selecting a data packet at a head of the ordered list of the data packets to be decoded for a current player, if:
(i) a predetermined maximum number of decoded data packets has not yet been reached; (ii) the ordered list is not empty; and (iii) the data packet at the head of the ordered list was not chosen previously; (c) incrementing a counter of decoded data packets that is used to determine if the predetermined maximum number has been reached; (d) eliminating the data packet at the head of the ordered list, in each ordered list in which it appears; and (e) repeating the preceding three steps (b)-(d) for each successive player who will listen to the content of the data packets.
- 66. The method of claim 65, wherein the step of decoding is carried out by a digital signal processor.
- 67. A memory medium having machine executable instructions for carrying out the steps of claim 13.
- 68. A system for decoding compressed data conveyed in data packets in a plurality of listening channels during play of an electronic game, comprising:
(a) a processor; (b) a memory that is coupled to the processor, said memory storing machine instructions for causing the processor to carry out a plurality of functions, said functions including executing an instance of an electronic game; (c) audio input transducers and audio output transducers, coupled to the processor and employed for input and output of audio signals, each audio input transducer providing an audio signal to a corresponding audio channel to be encoded and transmitted to at least one recipient, and each audio output transducer being employed to play an audio signal received from a source comprising another player participating in the play of an electronic game; (d) a selected number of decoders used to decode the data packets received by the system, to recover the audio content conveyed by the data packets, wherein each decoder is associated with a different listening channel, wherein the machine instructions cause the processor to carry out a plurality functions, including;
(i) creating queues of data packets received from audio sources in different listening channels, each listening channel including data packets from one or more sources for decoding by the decoder associated with the listening channel; (ii) if a data packet for an audio source is missing in a stream of data packets in a listening channel, replicating a content of a previous data packet for said source, for use instead of the data packet that was missing; (iii) selecting data packets from the queues to be decoded, but not exceeding the number of decoders available; and (iv) decoding the data packets that were selected, using the decoders.
- 69. The system of claim 68, wherein the machine instructions further cause the processor to enable each player to mask any listening channel to which the player does not want to listen.
- 70. The system of claim 68, wherein the machine instructions further cause the processor to enable each player to selectively mute a specific source having data packets in a queue, so that the data packets from the specific source are not selected for decoding for said player.
- 71. The system of claim 68, wherein the machine instructions further cause the processor to sort the data packets that will be decoded for each player according to any priority assigned by the player relative to a source of the data packets.
- 72. The system of claim 68, wherein the machine instructions further cause the processor to apply a priority defined by the electronic game that is being played, in determining the data packets included in each listening channel to be heard by a player when decoded.
- 73. The system of claim 68, wherein the machine instructions further cause the processor to order the data packets as a function of a volume of the content of the data packets, and eliminate each data packet in the queues as thus ordered that includes a substantially silent content.
- 74. The system of claim 73, wherein for each player that will listen to the data packets that are decoded, the machine instructions cause the processor to decode a first predetermined number of the data packets that were ordered, using silent compressed data for the content that will be heard in place of any inexistent data packets.
- 75. The system of claim 68, wherein the machine instructions further cause the processor to mix the content of data packets from a plurality of sources, before decoding the data packets.
- 76. The system of claim 68, wherein the machine instructions further cause the processor to mix the content received from a plurality of sources, after decoding the data packets.
- 77. The system of claim 68, wherein the machine instructions further cause the processor to
(a) order the data packets to produce an ordered list for each player receiving and listening to the content of the data packets; (b) select a data packet at a head of the ordered list of the data packets to be decoded for a current player, if;
(i) a predetermined maximum number of decoded data packets has not yet been reached; (ii) the ordered list is not empty; and (iii) the data packet at the head of the ordered list was not chosen previously; (b) increment a counter of decoded data packets that is used to determine if the predetermined maximum number has been reached; (c) eliminate the data packet at the head of the ordered list, in each ordered list in which it appears; and (d) repeat the preceding three steps (b)-(d) for each successive player who will listen to the content of the data packets.
- 78. The system of claim 68, wherein each decoder comprises a digital signal processor.
RELATED APPLICATIONS
[0001] This is a divisional application of U.S. Ser. No. 10/147,578, which was filed on May 16, 2002, and the benefit of the filing date thereof is hereby claimed under 35 U.S.C. §120.
Divisions (1)
|
Number |
Date |
Country |
Parent |
10147578 |
May 2002 |
US |
Child |
10406763 |
Apr 2003 |
US |