Patent ID: 8548061

Claim:
An image decoding apparatus which receives a compressed image stream as an input signal and decodes the input signal, comprising: a plurality of decoders, each decoder configured to decode the input signal by decoding a predetermined data unit; and a task controller configured to divide a decoding process for decoding a single frame from the compressed image stream received as the input signal into a plurality of process steps for decoding the single frame and to allocate a data unit to be processed to a decoder for each process step, each process step having a dependency on an order of processing, wherein the task controller detects a processing status of the decoder, determines a processing order of the plurality of process steps for a plurality of slices belonging to different frames based on the detected processing status, a dependency between the process steps, and a dependency between the different frames included in the image stream, and allocates the data unit and a process step to be processed to the decoder in accordance with the determination of the processing order of the plurality of process steps, and wherein the plurality of process steps includes: an arithmetic decoding step of decoding coefficient data required to create a difference image from the received image stream and prediction data required to create a prediction image, the prediction data containing a prediction mode or motion vectors; a process difference image creating step of creating the difference image by performing inverse quantization and inverse orthogonal transformation to the coefficient data; and a decoded image creating step of creating the prediction image from the prediction data and the decoded image required for reference, and synthesizing the prediction image with the difference image to create a decoded image; and when a priority of a data unit which is currently being decoded by the decoder is lower than a priority of a data unit waiting to be decoded by a decoding process and when another process required for the data unit waiting to be decoded by the decoding process is completed, the task controller interrupts a process for the data unit currently being decoded and allocates the data unit waiting to be decoded by the decoding process to the decoder.