Abstract:
Mode searching and early termination of a video picture may include determining the cost value of a simple intra-mode prediction of the video picture; determining the cost value of an inter-mode prediction of the video picture; determining a threshold value based on a given quantization parameter (QP); comparing the cost value of the simple intra-mode prediction to the sum of the cost value of the inter-mode prediction and the threshold value; and performing a mode-prediction of the video picture in accordance with the result obtained. Fast compression of variable length symbols may include receiving a variable length symbol with one or more tokens; combining the one or more tokens in the variable length symbol to form a token combination; and determining a bit representation of the token combination in correspondence to a probability threshold associated with the token combination.
Abstract:
Apparatus and Method for parallel digital picture encoding are disclosed. A digital picture is partitioned into two or more vertical sections. An encoder unit is selected to serve as a master and one or more encoder units are selected to serve as slaves. The total number of encoder units used equals the number of vertical sections. A mode search is performed on the two or more vertical sections on a row-by-row basis. Entropy coding is performed on the two or more vertical sections on a row-by-row basis. The entropy coding of each vertical section is performed in parallel such that each encoder unit performs entropy coding on its respective vertical section. De-blocking is performed on the two or more vertical sections in parallel on a row-by-row basis.
Abstract:
Parallel coding of digital pictures is described. A digital picture is divided into two or more vertical sections. Two or more corresponding Stage 1 encoder units can perform a first stage of entropy coding on the two or more vertical sections on a row-by-row basis. The entropy coding of the vertical sections can be performed in parallel such that each Stage 1 encoder unit performs entropy coding on its respective vertical section and returns a partially coded Stage 1 output to a Stage 2 encoder unit. Each partially coded Stage 1 output includes a representation of data for a corresponding vertical section that has been compressed by a compression factor greater than 1. The Stage 2 encoder unit can generate a final coded bitstream from the partially encoded Stage 1 output as a Stage 2 output.
Abstract:
Apparatus and Method for parallel digital picture encoding are disclosed. A digital picture is partitioned into two or more vertical sections. An encoder unit is selected to serve as a master and one or more encoder units are selected to serve as slaves. The total number of encoder units used equals the number of vertical sections. A mode search is performed on the two or more vertical sections on a row-by-row basis. Entropy coding is performed on the two or more vertical sections on a row-by-row basis. The entropy coding of each vertical section is performed in parallel such that each encoder unit performs entropy coding on its respective vertical section. De-blocking is performed on the two or more vertical sections in parallel on a row-by-row basis.
Abstract:
Parallel coding of digital pictures is described. A digital picture is divided into two or more vertical sections. Two or more corresponding Stage 1 encoder units can perform a first stage of entropy coding on the two or more vertical sections on a row-by-row basis. The entropy coding of the vertical sections can be performed in parallel such that each Stage 1 encoder unit performs entropy coding on its respective vertical section and returns a partially coded Stage 1 output to a Stage 2 encoder unit. Each partially coded Stage 1 output includes a representation of data for a corresponding vertical section that has been compressed by a compression factor greater than 1. The Stage 2 encoder unit can generate a final coded bitstream from the partially encoded Stage 1 output as a Stage 2 output.
Abstract:
In aspects of the present disclosure, a software encoder augments a hardware encoder by implementing portions of a video encoding task that are not supported by the hardware encoder while the hardware encoder implements other portions of the encoding task. The use of a software encoder to augment a hardware encoder in this manner can extend the useful life of a hardware encoder, allow the system to adapt to changes in video coding standards, and in some cases improve performance of encoding implemented by hardware or software alone. It is emphasized that this abstract is provided to comply with the rules requiring an abstract that will allow a searcher or other reader to quickly ascertain the subject matter of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.
Abstract:
Digital pictures may be encoded by padding all un-processed pixels within a currently processing picture with temporary pixel values; searching the picture for a matching section for use as a reference in pixel reconstruction of a section of the picture independent of whether the picture is intra-coded or inter-coded; and using the matching section to perform pixel prediction on the section to generate one or more predicted pixels for the section.
Abstract:
A method and apparatus for decoding an input MPEG video stream are provided that includes a core processor with a very long instruction word (VLIW) processor and a co-processor that includes a variable length decoder (VLD) for decoding the MPEG video stream. The input MPEG video stream is organized into macroblocks, wherein each macroblock includes a header for a macroblock that is not decoded, and encoded data for a macroblock whose header is previously decoded by VLD. Thereafter, VLD decodes the encoded video data of a first macroblock whose header has been decoded, and decodes the header of a second (current) macroblock. VLIW then performs motion compensation on a current macroblock based upon reference data of a previously decoded macroblock. VLIW also adds a fake slice start code and fake macroblock data at the end of each picture into the input MPEG video data stream; and utilizes the fake slice start code and fake macroblock data to skip to a next slice. The fake macroblock data indicates an error to the VLD stopping the decoding process until the core processor clears the interrupt and reinitiates decoding of a selected macroblock.
Abstract:
A method and system for decoding and reconstructing an incoming MPEG video data stream for producing decoded MPEG video data is provided. The method and system utilizes a first memory storage device with at least two memory buffers associated with a co-processor, and a second memory device with a plurality of memory buffers associated with a core-processor. Also provided is a first data transfer unit coupled to the first memory storage device and the second memory device. The first data transfer unit in response to a first signal from the core processor selects one of the first memory storage device buffer (B0) as a source and a buffer in the second memory storage device as a destination buffer (MB_B0′). The data transfer unit is adapted to read content from B0 and write the content of B0 to MB_B0′. Simultaneously, data transfer unit also selects the other buffer of the first memory storage device (B1) as a second source buffer and a second destination buffer (MB-B1′) from the plurality of buffers in the second memory storage device. Again the data transfer unit is adapted to read the content of B1 and write the content of B1 to MB_B1′, wherein the transfer from B1 to MB_B1′ comprises a wait indicating that a transfer from B0 to MB-B0′ is complete.
Abstract:
Prediction of and recovery from display buffer underflow are described. A first time delay for displaying a first group of one or more frames of a video picture stream located in an output frame buffer is calculated. A second time delay for displaying a second group of one or more frames in the picture stream is calculated. The second group directly follows the first group in the output buffer and is currently decoded by a decoder, but not yet deposited into the output frame buffer. A third time delay for decoding a third group of one or more frames in the picture stream is calculated. The third group directly follows the second group and is not yet decoded by the decoder. The decoder switches to or remains in a fast decoding mode if the sum of the first and second time delays is less than the third time delay.