Patent ID: 7930184

Claim:
A method of encoding multi-channel audio with random access points (RAPs) into a lossless variable bit-rate (VBR) audio bitstream, comprising: receiving an encode timing code that specifies desired random access points (RAPs) in the audio bitstream; blocking the multi-channel audio including at least one channel set into frames of equal time duration, each frame including a header and a plurality of segments; blocking each frame into a plurality of analysis blocks of equal duration, each said segment having a duration of one or more analysis blocks; synchronizing the encode timing code to the sequence of frames to align desired RAPs to analysis blocks, the encode timing code being received and executed on a computing device; for each successive frame, determining up to one RAP analysis block that is aligned with a desired RAP in the encode timing code; fixing the start of a RAP segment whereby the RAP analysis block lies within M analysis blocks of the start; determining at least one set of prediction parameters for the frame for each channel in the channel set; compressing the audio frame for each channel in the channel set in accordance with the prediction parameters, said prediction being disabled for the first samples up to the prediction order following the start of the RAP segment to generate original audio samples preceded and/or followed by residual audio samples; determining a segment duration and entropy coding parameters for each segment from the original and residual audio samples to reduce a variable sized encoded payload of the frame subject to constraints that each segment must be fully and losslessly decodable, have a duration less than the frame duration and have an encoded segment payload less than a maximum number of bytes less than the frame size; packing header information including segment duration, RAP parameters indicating the existence and location of the RAP, prediction and entropy coding parameters and bitstream navigation data into the frame header in the bitstream; and packing the compressed and entropy coded audio data for each segment into the frame segments in the bitstream.