Error resilient windows media audio coding
AssigneeMicrosoft Corporation
InventorsQian Zhang, Jianping Zhou, Wenwu Zhu
Life of this patent
Estimating the term…
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.
Claims38
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;
- and
- 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.
A method to encode audio streaming data in data packets with a Microsoft® Windows Media™ Audio (WMA) codec, 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 WMA codec from the audio streaming data;
- and
- forming, contiguous with and preceding each said frame, a bit string that is not used by a WMA encoder to encode a WMA data stream.
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;
- 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.
A method to encode audio streaming data into data packets with a WMA codec, each said data packet including a packet header and one or more frames, the method comprising the steps of:
- forming the audio streaming data into a plurality of data packets;
- forming a fourteen zero bit string contiguous with and preceding each said frame;
- forming the packet header of each said data packet to:
- consist of a packet sequence number respective to other said data packets;
- and
- be contiguous with the fourteen zero bit string of the first said frame of said one or more frames;
- aligning to a respective byte each said frame by placing one or more zero stuffing bits into an end portion thereof;
- examining a combination of a fragment of each said frame and a fragment of the fourteen zero bit string that contiguously follows;
- for each said combination that contains a fourteen zero bit string, placing a stuffing bit into the fragment of the respective frame, whereby the combination does not contain a fourteen zero bit string.
A computer-readable medium having computer-executable instructions, which when executed on a processor, direct a computer to perform the steps of claim 18.
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, 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.
A method of recording a WMA data stream from an audio data stream on an information medium which has a data area for recording audio 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:
- recording the audio streaming data to the data packet areas in the stream packets so that the recorded audio streaming data is encoded by a WMA codec as WMA data in the data packet areas;
- wherein recording the audio streaming data is performed such that each said frame is preceded by and contiguous with a sync mark that includes a bit string that is not used by a WMA encoder to encode a WMA data stream.
A WMA data structure comprising:
- a data area for recording a WMA data stream;
- a plurality of stream packs having the WMA data stream distributed therein, wherein:
- each said stream pack includes a packet area containing one or more data packets;
- and
- each said data packet includes a header and one or more frames of WMA streaming data;
- a sync mark contiguously following and preceding each said frame and including a bit string that is not used by a WMA encoder to encode a WMA data stream.
A system comprising:
- a client computer coupled to a network;
- and
- a server computer coupled to transmit a plurality of stored WMA audio data streams to the client computer via the network, wherein each said WMA audio data stream has a plurality of data packets each including:
- a packet header consisting of a packet sequence number respective to other said data packets;
- one or more frames of encoded WMA data;
- and
- a sync mark preceding each said frame and containing a bit string not used by a WMA encoder to encode an audio data stream.
Dependencies are inferred from the claim text.