IP Library Granted Patent US 7,158,539
Granted Patent B2
US 7,158,539 · App. 10/125,280 · Granted Jan 2, 2007

Error resilient windows media audio coding

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,158,539
App. No.
10/125,280
Granted
Jan 2, 2007
Kind
B2
Abstract

A unique sync mark is applied by an encoder to the beginning of each frame in a data packet of a Windows Media™ Audio bitstream by a Microsoft® Windows Media™ Audio (WMA) codec. The WMA decoder handles errors at the frame level for each data packet. When a frame in a data packet of a WMA file is corrupted, the decoder can continue to decode the next frame by searching for the next sync mark at the beginning of the next frame. Accordingly, error propagation is confined to a single frame and the decoder can simultaneously handle bit errors and packet erasures when decompressing a received audio bitstream.

Claims (43)

1. A method to encode streaming data into data packets with an encoding algorithm, wherein each said data packet includes a packet header and one or more frames, said method comprising the steps of:

forming the streaming data into a plurality of data packets using the encoding algorithm, wherein the encoding algorithm comprises a coder/decoder;

forming, contiguous with and preceding each said frame, a predetermined unique bit sequence that is not used in the encoding algorithm to encode the streaming data;

examining a combination of:

a fragment of one said frame; and

a fragment of the predetermined unique bit sequence that is a contiguous with and following said fragment of one said frame;

when the combination contains a bit sequence that is identical to the predetermined unique bit sequence, placing a stuffing bit into said fragment of one said frame, whereby the combination does not contain a bit sequence that is identical to the predetermined unique bit sequence.

2. The method as defined in claim 1 , further comprising aligning to a respective byte each said frame in the placing one or more stuffing bits into an end portion thereof.

3. A computer-readable medium having computer-executable instructions, which when executed on a processor, direct a computer to perform the steps of claim 1 .

4. A method to encode streaming data into data packets with an encoding algorithm, wherein each said data packet includes a packet header and one or more frames, said method comprising the steps of:

forming the streaming data into a plurality of data packets using the encoding algorithm, wherein the encoding algorithm comprises a coder/decoder;

forming, contiguous with and preceding each said frame, a predetermined unique bit sequence that is not used in the encoding algorithm to encode the streaming data;

forming the packet header of each said data packet to be contiguous with the predetermined unique bit sequence preceding the first of said one or more frames.

5. The method as defined in claim 4 , wherein the packet header consists of a packet sequence number respective to other said data packets.

6. A method to encode audio streaming data in data packets with a coder/decoder, wherein each said data packet includes a packet header and one or more frames, said method comprising the steps of:

forming a plurality of data packets with the coder/decoder from the audio streaming data; and

forming, contiguous with and preceding each said frame, a bit string that is not used by a encoder to encode a data stream, wherein each said frame is between contiguous fourteen zero bit strings; and

examining a combination of a fragment of one said frame and a contiguous following fragment of a fourteen zero bit string; and

when the combination contains a fourteen zero bit string, placing a non-zero stuffing bit into the fragment of one said frame, whereby the combination does not contain a fourteen zero bit string.

7. The method as defined in claim 6 , further comprising aligning to a respective byte each said frame in the placing one or more zero stuffing bits into an end portion thereof, whereby each said frame is byte aligned.

8. A computer-readable medium having computer-executable instructions, which when executed on a processor, direct a computer to perform the steps of claim 6 .

9. A method to encode audio streaming data in data packets with a coder/decoder, wherein each said data packet includes a packet header and one or more frames, said method comprising the steps of:

forming a plurality of data packets with the coder/decoder from the audio streaming data;

forming, contiguous with and preceding each said frame, a bit string that is not used by a encoder to encode a data stream;

forming the packet header of each said data packet to be contiguous with a fourteen zero bit string preceding the first of said one or more frames.

10. The method as defined in claim 9 , wherein the packet header consists of a packet sequence number respective to other said data packets.

11. A method to encode streaming data with an encoding algorithm into data packets each said including a packet header and one or more frames, the method comprising the steps of:

forming the streaming data into a plurality of data packets using the encoding algorithm, wherein the encoding algorithm comprises a coder/decoder;

forming, contiguous with and preceding each said frame, a predetermined unique bit sequence that is not used in the encoding algorithm to encode the streaming data;

forming the packet header of each said data packet to be contiguous with the predetermined unique bit sequence of the first said frame of said one or more frames;

aligning to a respective byte each said frame by placing one or more stuffing bits into an end portion thereof;

examining a combination of:

a fragment of one said frame; and

a fragment of the predetermined unique bit sequence that is a contiguous with and following said fragment of one said frame;

when the combination contains a bit sequence that is identical to the predetermined unique bit sequence, placing a stuffing bit into said fragment of one said frame, whereby the combination does not contain a bit sequence that is identical to the predetermined unique bit sequence.

12. The method as defined in claim 11 , wherein the packet header consists of a packet sequence number respective to other said data packets.

13. A computer-readable medium having computer-executable instructions, which when executed on a processor, direct a computer to perform the steps of claim 11 .

14. A method of recording information on an information medium which has a data area for recording streaming data using stream packets each of which includes a packet area containing one or more data packets, each data packet including a header and one or more frames, said method comprising the steps of:

distributing the streaming data to the data packet areas in the stream packets so that the distributed streaming data are recorded in the data packet areas using an encoding algorithm, the encoding algorithm comprising a coder/decoder, wherein information recording is performed such that each said frame is preceded by and contiguous with a sync mark having a predetermined unique bit sequence that not used by the encoding algorithm to encode the streaming data;

examining a combination of a fragment of the sync mark of one said frame with a contiguous fragment of the respectively previous said frame; and

when the combination contains a bit sequence that is identical to the predetermined unique bit sequence placing a stuffing bit into said contiguous fragment of the respectively previous said frame, whereby the combination does not contain a bit sequence that is identical to the predetermined unique bit sequence.

15. The method as defined in claim 14 , further comprising aligning each said frame with a respective byte by placing one or more stuffing bits into an end portion thereof.

16. A computer-readable medium having computer-executable instructions, which when executed on a processor, direct a computer to perform the steps of claim 14 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →