Method and system for memory usage in real-time audio systems
First Claim
1. A method of encoding a data stream, comprising:
- (a) maintaining a plurality of code tables, each code table implementing a different coding scheme;
(b) receiving a data stream;
(c) determining which of the plurality of code tables would encode the data stream most efficiently;
(d) encoding the data stream using the code table determined to encode the data stream most efficiently.
5 Assignments
0 Petitions
Accused Products
Abstract
System and method for encoding, transmitting and decoding audio data. Audio bit steam syntax is re-organized to allow system optimizations that work well with memory latency and memory burst operations. Multiple small entropy coding tables are stored in RAM and loaded to on-chip memory as needed. Audio prediction is pipelined in the bitstream syntax. Intra frames, independent of other frames in the bitstream, are included in the bitstream for error recovery and channel change. New algorithms are implemented in legacy syntax by including the new information in the user data space of the audio frame. The new decoder can use projection to determine where the new information is and read ahead in the stream. Audio prediction from the immediately previous frame is restricted. Audio prediction is performed across channels within a single audio frame. A variable re-order function comprises storing channels of data to DRAM in the order they are decoded and reading them out in presentation order.
-
Citations
43 Claims
-
1. A method of encoding a data stream, comprising:
-
(a) maintaining a plurality of code tables, each code table implementing a different coding scheme;
(b) receiving a data stream;
(c) determining which of the plurality of code tables would encode the data stream most efficiently;
(d) encoding the data stream using the code table determined to encode the data stream most efficiently. - View Dependent Claims (2, 3)
-
-
4. A method of decoding a data stream in a system comprising a data processor, comprising:
-
(a) storing a plurality of code tables in memory external to the data processor, each of the code tables implementing a different coding scheme;
(b) receiving an encoded data stream;
(c) loading an appropriate code table from the external memory to a memory module in the data processor based on the coding scheme used to encode the encoded data stream; and
(d) decoding the encoded data stream using the code table loaded to the memory module in the data processor. - View Dependent Claims (5, 6)
-
-
7. A method of processing media data, comprising:
-
performing prediction on a first clip of media data to produce a media frame comprising a reference to a previous media clip and difference data representing a difference between the first clip and the previous clip;
transmitting the media frame;
receiving the media frame at a decoder;
decoding the difference data;
accessing stored prediction data referred to by the reference, the prediction data representing said previous media clip; and
adding the decoded difference data to the stored prediction data to produce data representing the first media clip;
wherein the first media clip and the previous media clip are each at least 256 bytes in size. - View Dependent Claims (8)
-
-
9. A method of transmitting media data, comprising:
-
determining a difference value between a first media clip and a previous media clip;
transmitting a reference to the previous media clip; and
after transmitting the reference, transmitting the difference value. - View Dependent Claims (10, 11, 12)
-
-
13. A method of decoding media data, comprising:
-
receiving a reference to a previous media clip;
retrieving data corresponding to the previous media clip from memory;
after receiving the reference, receiving difference data corresponding to a first media clip;
decoding the difference data, at least a portion of said retrieving occurring substantially in parallel with at least a portion of said decoding; and
adding the data retrieved from memory to the decoded difference data to produce a decoded value corresponding to the first media clip. - View Dependent Claims (14, 15, 16)
-
-
17. A method of transmitting media data, comprising:
-
utilizing prediction wherein transmitted media data frames include a difference value between a first media clip and a previous media clip and further include a reference to the previous media clip; and
periodically transmitting an intra media data frame wherein all of the data needed to decode the intra frame is included in said intra frame, and wherein no frames transmitted after the intra frame refer to frames transmitted prior to the intra frame. - View Dependent Claims (18, 19)
-
-
20. A method of transmitting and processing media data, comprising:
-
including, in a media data portion of a media data frame structured according to a first media standard, media data corresponding to said first media standard;
including, in a user data portion of the media data frame structured according to said first media standard, media data corresponding to a second media standard;
decoding the media data in the media data portion of the frame according to the first media standard; and
decoding the media data in the user data portion of the frame according to the second media standard. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A method of transmitting a media data stream comprising media data frames, comprising:
-
utilizing prediction wherein transmitted media data frames include a difference value between a first media clip and a previous media clip and further include a reference to the previous media clip; and
restricting frames from utilizing prediction based upon the immediately preceding frame. - View Dependent Claims (26)
-
-
27. A method of transmitting a media data stream comprising media data frames, comprising:
-
utilizing prediction wherein transmitted media data frames include a difference value between a first media clip and a previous media clip and further include a reference to the previous media clip; and
restricting frames from utilizing prediction based upon the immediately preceding two frames. - View Dependent Claims (28)
-
-
29. A method of transmitting audio data, comprising:
-
determining a difference value between a first audio clip of a first audio channel and a previous audio clip of a second audio channel;
transmitting a reference to the previous audio clip of the second audio channel; and
transmitting the difference value.
-
-
30. A method of decoding a first audio clip of a first audio channel, comprising:
-
receiving a reference to a previous audio clip of a second audio channel;
receiving difference data indicating a difference value between the first audio clip and the previous audio clip;
retrieving previous clip data, referred to by the reference, from memory;
decoding the difference data; and
adding the previous clip data to the decoded difference data to produce a decoded value corresponding to the first audio clip. - View Dependent Claims (31)
-
-
32. A method of transmitting audio data, comprising:
-
determining a difference value between a first audio clip of a first audio channel and a second audio clip of a second audio channel, the first and second audio clips being part of a single audio data frame;
transmitting a reference to the second audio clip of the second audio channel; and
transmitting the difference value.
-
-
33. A method of decoding a first audio clip of a first audio channel, comprising:
-
receiving a reference to a second audio clip of a second audio channel, the first and second audio clips being part of a single audio data frame;
receiving difference data indicating a difference value between the first audio clip and the second audio clip;
retrieving data corresponding to the second audio clip, referred to by the reference, from memory;
decoding the difference data; and
adding the retrieved second audio clip data to the decoded difference data to produce a decoded value corresponding to the first audio clip.
-
-
34. A method of transmitting audio data corresponding to a first audio clip of a first audio channel, comprising:
-
phase-shifting a second audio clip of a second audio channel;
determining a difference value between said first audio clip of said first audio channel and the phase-shifted second audio clip of said second audio channel;
transmitting a reference to the second audio clip of said second audio channel; and
transmitting the difference value. - View Dependent Claims (35, 36)
-
-
37. A method of decoding a first audio clip of a first channel, comprising:
-
receiving a reference to a second audio clip of a second audio channel;
receiving difference data indicating a difference value between the first audio clip and the second audio clip;
receiving phase shift data indicating a difference in phase between the first audio clip and the second audio clip;
retrieving previous clip data, referred to by the reference, from memory;
phase-shifting the second clip data by an amount indicated by the phase shift data;
decoding the difference data; and
adding the phase-shifted second clip data to the decoded difference data to produce a decoded value corresponding to the first audio clip. - View Dependent Claims (38, 39)
-
-
40. A method of decoding audio data, comprising:
-
performing intra-frame, inter-channel prediction to determine decoded values of a plurality of audio clips corresponding to a plurality of channels based on decoded values of other audio channels within the same audio data frame, whereby the audio clips are decoded in channel order;
storing in memory the decoded values for the plurality of audio clips in the order they are decoded; and
reading the decoded values for the plurality of audio clips from memory in an order of presentation. - View Dependent Claims (41, 42, 43)
-
Specification