This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Level of decomposition of H.264 HP encoder for C6678 platform

Hi,

H.264 encoding can be parallelized either by a task-level or data-level decomposition.

In a task-level decomposition the functional partitions of the algorithm assigned to different processors. For example, Inverse Quantization (IQ) and IDCT can be done in parallel with the Motion Compensation (MC) stage.

In a data-level decomposition the work (data) is divided into smaller partseach assigned to a different processor. Each core runs the same program but on different (multiple) data elements. In H.264 data decomposition can be applied at different levels of the data structure: GOP level, frame-level, slice-level, macroblock-level, and block-level.

Can you describe (or point to documentation) level of decomposition of H.264 HP encoder for C6678 platform when running on multiple cores.

Regards,

Andrey Lisnevich

  • Andrey,

    Regarding partitioning, there are two approaches to partition a codec across more than one core/chip. Viz. data partitioning and function partitioning. In case of data partitioning, all cores execute the same code, but operate on different non-overlapping regions in the picture (aka slices in H264 terminology). For example, our H264 Encoder uses data partitioning. In case of function partitioning, cores execute different program as well as consume different data. You can think of this as an assembly line processing, where one core finishes half the job, passes it off to another core and the second core finishes the job. Our H264 Decoder is partitioned to do function partitioning.

    The decision to pick either partitioning strategy, or even a combination of both, is purely dependent on the data dependencies. For Encoder, complete input frame is available and multiple cores can independently execute. 

    Let me know if you have any questions.

    Regards,

    Vivek