Method and apparatus for offset interleaving of vocoder frames
The disclosed embodiments provide methods and apparatus for offset interleaving of media frames for transmission over a communication network. In one aspect, a method for interleaving a stream of media frames for transmission over a communication network includes the acts of defining a plurality of packets and interleaving a stream of media frames among the packets.
Latest QUALCOMM Incorporated Patents:
The present Application for Patent claims priority to Provisional Application No. 60/523,476 entitled “Method and Apparatus for Offset Interleaving” filed Nov. 18, 2003, and assigned to the assignee hereof and hereby expressly incorporated by reference herein.
STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENTThe described embodiments were made with government support under United States government contract MDA904-01-G-0620/J.O. 0002 awarded by the National Security Agency (NSA), Maryland Procurement Office. The government may have certain rights in these described embodiments.
FIELDThe present invention relates to offset interleaving of media frames in a lossy communication network.
BACKGROUNDPresent interleaving schemes of vocoder frames improve voice quality under packet loss conditions when multiple frames are bundled in a single packet; however, they generally add undesirable voice latency. Furthermore, these schemes require tracking state information in order to de-interleave the frames in the received packets.
There is a need, therefore, for interleaving mechanisms that are robust to dropped packets, minimize added voice latency, and do not require tracking state information for de-interleaving the frames in the received packets.
SUMMARYThe disclosed embodiments provide novel and improved methods and apparatus for offset interleaving of media frames to improve media quality and transmission latency. In one aspect, a method for interleaving a stream of media frames for transmission over a communication network includes the acts of defining a plurality of packets and interleaving a stream of media frames among the packets.
In another aspect, an apparatus for interleaving a stream of media frames for transmission over a communication network includes a processor carrying out the acts for implementing the above described methods.
The features and advantages of the present invention will become more apparent from the detailed description of the embodiments set forth below:
Before several embodiments are explained in detail, it is to be understood that the scope of the invention should not be limited to the details of the construction and the arrangement of the components set forth in the following description or illustrated in the drawings. Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting.
In one embodiment, given a time sequence of output vocoder frames numbered 0 . . . n, and a bundling factor “B,” the frame number “f” that goes in the “i”th location of the “k”th packet may be determined using the following formulae:
If B is odd:
f=kB+2i
If B is even:
f=kB+2i i<B/2
f=kB+2i−1 i>=B/2
Where:
B is the bundling factor (e.g. 4 or 5 vocoder frames per packet, as in
f is the frame number, numbered from 0,
k is the packet number, numbered from 0, and
i is the location of the vocoder frame in the packet, numbered from 0 to B−1.
The first few packets for various bundling factors are shown in Table 1:
Note that for bundling factors, e.g., 3 and above, some initial frames may not be transmitted. For example, with a bundling factor of 5, frames 1 and 3 are not transmitted, as shown in
For example for B=4, as shown in
For B=4, as shown in
For B=5, as shown in
For B=5, as shown in
The offset interleaving as disclosed above reduces the undesired time delay while improving quality in the case of packet loss. Therefore, other embodiments of filling the packets with offset portions of the odd-even interleaved packets would be equivalent to the disclosed embodiment.
For the reverse link, at communication device 306, voice and/or packet data (e.g., from a data source 310) and messages (e.g., from a controller 330) are provided to a transmit (TX) data processor 312, which formats and encodes the data and messages with one or more coding schemes to generate coded data. Each coding scheme may include any combination of cyclic redundancy check (CRC), convolutional, turbo, block, and other coding, or no coding at all. The voice, packet data, and messages may be coded using different schemes, and different types of messages may be coded differently.
The coded data is then provided to a modulator (MOD) 314 and further processed (e.g., covered, spread with short PN sequences, and scrambled with a long PN sequence assigned to the communication device). The modulated data is then provided to a transmitter unit (TMTR) 316 and conditioned (e.g., converted to one or more analog signals, amplified, filtered, and quadrature modulated) to generate a reverse link signal. The reverse link signal is routed through a duplexer (D) 318 and transmitted via an antenna 320 to BS/BSC 304.
At BS/BSC 304, the reverse link signal is received by an antenna 350, routed through a duplexer 352, and provided to a receiver unit (RCVR) 354. Alternatively, the antenna may be part of the wireless operator network, and the connection between the antenna and the BS/BSC may be routed through the Internet. BS/BSC 304 may receive media information and alert messages from communication device 306. Receiver unit 354 conditions (e.g., filters, amplifies, down converts, and digitizes) the received signal and provides samples. A demodulator (DEMOD) 356 receives and processes (e.g., despreads, decovers, and pilot demodulates) the samples to provide recovered symbols. Demodulator 356 may implement a rake receiver that processes multiple instances of the received signal and generates combined symbols. A receive (RX) data processor 358 then decodes the symbols to recover the data and messages transmitted on the reverse link. The recovered voice/packet data is provided to a data sink 360 and the recovered messages may be provided to a controller 370. Controller 370 may include instructions for receiving and sending information, receiving and sending responses to messages, interleaving a stream of media frames for transmission over a communication network, comprising, defining a plurality of packets, and distributing a stream of media frames among the packets. The processing by demodulator 356 and RX data processor 358 are complementary to that performed at remote access device 306. Demodulator 356 and RX data processor 358 may further be operated to process multiple transmissions received via multiple channels, e.g., a reverse fundamental channel (R-FCH) and a reverse supplemental channel (R-SCH). Also, transmissions may be simultaneously from multiple communication devices, each of which may be transmitting on a reverse fundamental channel, a reverse supplemental channel, or both.
On the forward link, at BS/BSC 304, voice and/or packet data (e.g., from a data source 362) and messages (e.g., from controller 370) are processed (e.g., formatted and encoded) by a transmit (TX) data processor 364, further processed (e.g., covered and spread) by a modulator (MOD) 366, and conditioned (e.g., converted to analog signals, amplified, filtered, and quadrature modulated) by a transmitter unit (TMTR) 368 to generate a forward link signal. The forward link signal is routed through duplexer 352 and transmitted via antenna 350 to remote access device 306. Forward link signals include paging signals.
At communication device 306, the forward link signal is received by antenna 320, routed through duplexer 318, and provided to a receiver unit 322. Receiver unit 322 conditions (e.g., down converts, filters, amplifies, quadrature modulates, and digitizes) the received signal and provides samples. The samples are processed (e.g., despreaded, decovered, and pilot demodulated) by a demodulator 324 to provide symbols, and the symbols are further processed (e.g., decoded and checked) by a receive data processor 326 to recover the data and messages transmitted on the forward link. The recovered data is provided to a data sink 328, and the recovered messages may be provided to controller 330. Controller 330 may include instructions for receiving and sending information, receiving and sending responses to messages, interleaving a stream of media frames for transmission over a communication network, comprising, defining a plurality of packets, and distributing a stream of media frames among the packets.
Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and protocols. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor, such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
The description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments may be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments, e.g., in an instant messaging service or any general wireless data communication applications, without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein. The word “exemplary” is used exclusively herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
Claims
1. A method for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the stream of media frames into received packets, comprising:
- defining a plurality of packets, each packet having a size determined by a bundling factor; and
- distributing a stream of media frames among the plurality of packets, such that each packet includes non-consecutive frames of the media stream and at least one packet is different from an odd-even interleaved packet;
- wherein each packet has the same size and at least one media frame of the stream of media frames is not distributed in any packet, and wherein the at least one media frame is omitted based on the bundling factor.
2. A method for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the stream of media frames into received packets, comprising:
- defining a plurality of packets, each packet having a size determined by a bundling factor; and
- interleaving a stream of media frames among the plurality of packets, such that each packet includes successively sequenced odd or even interleaved frames, respectively, each packet including a starting frame that is offset in sequence number with respect to the starting frame in a previous packet, wherein the starting frame of each packet depends on the bundling factor;
- wherein each packet has the same size.
3. A method for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for deinterleaving the frames into the received packets, comprising:
- defining a plurality of packets, each packet having a predetermined size (bundling factor) and a packet number; and
- interleaving a stream of media frames among the packets, wherein each packet has a packet number and each frame has a frame number, such that each packet includes frames of the media stream at a location chosen according to the following scheme: If B is odd, f=kB+2i If B is even: f=kB+2i i<B/2 f=kB+2i−1 i>=B/2
- Where: B is the bundling factor,
- f is the frame number, numbered from 0,
- k is the packet number, numbered from 0, and
- i is the location of the vocoder frame in the packet, numbered from 0 to B−1.
4. An apparatus for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the stream of media frames into received packets, comprising:
- means for defining a plurality of packets, each packet having a size determined by a bundling factor; and
- means for distributing a stream of media frames among the plurality of packets, such that each packet includes non-consecutive frames of the media stream and at least one packet is different from an odd-even interleaved packet;
- wherein: each packet has the same size and at least one media frame of the stream of media frames is not distributed in any packet, and wherein the at least one media frame is omitted based on the bundling factor.
5. An apparatus for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the stream of media frames into received packets, comprising:
- means for defining a plurality of packets, each packet having a size determined by a bundling factor; and
- means for interleaving a stream of media frames among the packets, such that each packet includes successively sequenced odd or even interleaved frames, respectively, each packet including a starting frame that is offset in sequence number with respect to the starting frame in a previous packet, wherein the starting frame of each packet depends on the bundling factor;
- wherein each packet has the same size.
6. An apparatus for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the frames into the received packets, comprising:
- means for defining a plurality of packets, each packet having a predetermined size (bundling factor) and a packet number; and
- means for interleaving a stream of media frames among the packets, wherein each packet has a packet number and each frame has a frame number, such that each packet includes frames of the media stream at a location chosen according to the following scheme: If B is odd, f=kB+2i If B is even, f=kB+2i i<B/2 f=kB+2i−1 i>=B/2
- Where: B is the bundling factor,
- f is the frame number, numbered from 0,
- k is the packet number, numbered from 0, and
- i is the location of the vocoder frame in the packet, numbered from 0 to B−1.
7. A non-transitory computer-readable medium encoded thereon with instructions that when executed cause an apparatus to carry out a method for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the stream of media frames into received packets, the method comprising:
- define a plurality of packets, each packet having a size determined by a bundling factor; and
- distribute a stream of media frames among the plurality of packets, such that each packet includes non-consecutive frames of the media stream and at least one packet is different from an odd-even interleaved packet;
- wherein: each packet has the same size and at least one media frame of the stream of media frames is not distributed in any packet, and wherein the at least one media frame is omitted based on the bundling factor.
8. A non-transitory computer-readable medium encoded thereon with instructions that when executed cause an apparatus to carry out a method for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the stream of media frames into received packets, the method comprising:
- distribute a plurality of packets, each packet having a size determined by a bundling factor; and
- distribute a stream of media frames among the packets, such that each packet includes successively sequenced odd or even interleaved frames, respectively, each packet including a starting frame that is offset in sequence number with respect to the starting frame in a previous packet, wherein the starting frame of each packet depends on the bundling factor; wherein each packet has the same size.
9. A non-transitory computer-readable medium encoded thereon with instructions that when executed cause an apparatus to carry out a method for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the frames into the received packets, the method comprising:
- distribute a plurality of packets, each packet having a size determined by a bundling factor and a packet number; and
- distribute a stream of media frames among the packets, wherein each packet has a packet number and each frame has a frame number, such that each packet includes frames of the media stream at a location chosen according to the following scheme: If B is odd, f=kB+2i If B is even, f=kB+2i i<B/2 f=kB+2i−1 i>=B/2
- Where: B is the bundling factor,
- f is the frame number, numbered from 0,
- k is the packet number, numbered from 0, and
- i is the location of the vocoder frame in the packet, numbered from 0 to B−1.
10. A processor programmed with executable instructions for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the stream of media frames into received packets, the instructions comprising:
- defining a plurality of packets, each packet having a size determined by a bundling factor; and
- distributing a stream of media frames among the plurality of packets, such that each packet includes non-consecutive frames of the media stream and at least one packet is different from an odd-even interleaved packet;
- wherein each packet has the same size and at least one media frame of the stream of media frames is not distributed in any packet, and wherein the at least one media frame is omitted based on the bundling factor.
11. A processor programmed with executable instructions for interleaving a stream of media frames for transmission over a communication that minimize latency and require no tracking state information for de-interleaving the stream of media frames into received packets, the instructions comprising:
- defining a plurality of packets, each packet having a size determined by a bundling factor; and
- distributing a stream of media frames among the packets, such each packet includes successively sequenced odd or even interleaved frames, respectively, each packet including a starting frame that is offset in sequence number with respect to the starting frame in a previous packet, wherein the starting frame of each packet depends on the bundling factor; wherein each packet has the same size.
12. A processor programmed with executable instructions for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the frames into the received packets, the instructions comprising:
- defining a plurality of packets, each packet having a size determined by a bundling factor and a packet number; and
- distributing a stream of media frames among the packets, wherein each packet has a packet number and each frame has a frame number, such that each packet includes frames of the media stream at a location chosen according to the following scheme: If B is odd, f=kB+2i If B is even, f=kB+2i i<B/2 f=kB+2i−1 i>=B/2
- Where: B is the bundling factor,
- f is the frame number, numbered from 0,
- k is the packet number, numbered from 0, and
- i is the location of the vocoder frame in the packet, numbered from 0 to B−1.
13. A communication device comprising:
- a controller and
- a transmitter coupled to the controller;
- wherein the controller includes instructions for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the stream of media frames into received packets, the instructions comprising:
- defining a plurality of packets, each packet having a size determined by a bundling factor; and
- distributing a stream of media frames among the plurality of packets, such that each packet includes non-consecutive frames of the media stream and at least one packet is different from an odd-even interleaved packet; wherein each packet has the same size and at least one media frame of the stream of media frames is not distributed in any packet, and wherein the at least one media frame is omitted based on the bundling factor.
14. A communication device comprising:
- a controller and
- a transmitter coupled to the controller;
- wherein the controller includes instructions for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the stream of media frames into received packets, the instructions comprising:
- defining a plurality of packets, each packet having a size determined by a bundling factor; and
- interleaving a stream of media frames among the plurality of packets, such that each packet includes successively sequenced odd or even interleaved frames, respectively, each packet including a starting frame that is offset in sequence number with respect to the starting frame in a previous packet, wherein the starting frame of each packet depends on the bundling factor; and wherein each packet has the same size.
15. A communication device comprising:
- a controller and
- a transmitter coupled to the controller;
- wherein the controller includes instructions for interleaving a stream of media frames for transmission over a communication network that minimize latency and require no tracking state information for de-interleaving the frames into the received packets, the instructions comprising:
- defining a plurality of packets, each packet having a predetermined size (bundling factor) and a packet number; and
- interleaving a stream of media frames among the packets, wherein each packet has a packet number and each frame has a frame number, such that each packet includes frames of the media stream at a location chosen according to the following scheme: If B is odd, f=kB+2i If B is even, f=kB+2i i<B/2 f=kB+2i−1 i>=B/2
- Where: B is the bundling factor,
- f is the frame number, numbered from 0,
- k is the packet number, numbered from 0, and
- i is the location of the vocoder frame in the packet, numbered from 0 to B−1.
3652998 | March 1972 | Forney, Jr. |
4394642 | July 19, 1983 | Currie et al. |
4559625 | December 17, 1985 | Berlekamp et al. |
4742517 | May 3, 1988 | Takagi et al. |
5056105 | October 8, 1991 | Darmon et al. |
5483541 | January 9, 1996 | Linsky |
5517492 | May 14, 1996 | Spear |
5566183 | October 15, 1996 | Partyka |
5572532 | November 5, 1996 | Fimoff et al. |
5592492 | January 7, 1997 | Ben-Efraim et al. |
5742612 | April 21, 1998 | Gourgue et al. |
5898698 | April 27, 1999 | Bross |
5933431 | August 3, 1999 | Ko |
5991857 | November 23, 1999 | Koetje et al. |
6067646 | May 23, 2000 | Starr |
6151690 | November 21, 2000 | Peeters |
6233079 | May 15, 2001 | Miyamori |
6282677 | August 28, 2001 | Inoue |
6334197 | December 25, 2001 | Eroz et al. |
6463556 | October 8, 2002 | Shaffner et al. |
6493815 | December 10, 2002 | Kim et al. |
6502200 | December 31, 2002 | Kashiwagi et al. |
6543013 | April 1, 2003 | Li et al. |
6560748 | May 6, 2003 | Li |
6598202 | July 22, 2003 | Kim et al. |
6631491 | October 7, 2003 | Shibutani et al. |
6668350 | December 23, 2003 | Kim |
6721908 | April 13, 2004 | Kim et al. |
6754202 | June 22, 2004 | Sun et al. |
6782504 | August 24, 2004 | Berrou et al. |
6871302 | March 22, 2005 | Kawahara et al. |
6895011 | May 17, 2005 | Lassers |
6947491 | September 20, 2005 | Shahrier |
6956842 | October 18, 2005 | Okumura et al. |
6961324 | November 1, 2005 | Kilgore |
7013412 | March 14, 2006 | Becker et al. |
7039069 | May 2, 2006 | Hayashi |
7069490 | June 27, 2006 | Niu et al. |
7146545 | December 5, 2006 | Ohbuchi et al. |
7263637 | August 28, 2007 | Ha et al. |
7272769 | September 18, 2007 | Botha |
7343530 | March 11, 2008 | Shin |
7394828 | July 1, 2008 | Wu |
7586949 | September 8, 2009 | Barany et al. |
7953062 | May 31, 2011 | Sindhushayana et al. |
20020044612 | April 18, 2002 | Sipola |
20020083248 | June 27, 2002 | Uto |
20020149496 | October 17, 2002 | Dabak et al. |
20020159423 | October 31, 2002 | Yao et al. |
20030053435 | March 20, 2003 | Sindhushayana et al. |
20030108086 | June 12, 2003 | Rastello et al. |
20030189956 | October 9, 2003 | Tong et al. |
20030225985 | December 4, 2003 | Suzuki et al. |
20040210812 | October 21, 2004 | Cameron et al. |
20040257250 | December 23, 2004 | Sebire |
20050226272 | October 13, 2005 | Luby et al. |
20060007950 | January 12, 2006 | Okumura et al. |
20060165131 | July 27, 2006 | Sebire |
61115272 | June 1986 | JP |
- G. David Forney, Jr., Burst-Correcting Codes for the Classic Bursty Channel, Oct. 1, 1971, pp. 772-781.
- John L. Ramsey, Realization of Optimum Interleavers, May 1, 1970, pp. 338-345.
- International Search Report and Written Opinion—PCT/US2004/039129, International Search Authority—European Patent Office—Apr. 28, 2005.
Type: Grant
Filed: Nov 17, 2004
Date of Patent: Dec 13, 2011
Patent Publication Number: 20060067328
Assignee: QUALCOMM Incorporated (San Diego, CA)
Inventors: Peter Belding (San Diego, CA), James T. Determan (Encinitas, CA), Ronald Bloom (San Diego, CA)
Primary Examiner: Warner Wong
Attorney: Abdollah Katbab
Application Number: 10/991,618
International Classification: H04J 3/00 (20060101); H04J 3/24 (20060101);