Multi-threaded Pipeline Scheduling for SoC Multimedia Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Designing a multi-threaded processing pipeline for multimedia encoding/decoding in architectures with multiple co-processors and hardware accelerators is challenging due to shared resource limitations and varying processing complexities, requiring efficient resource allocation and timing optimization to minimize idle time and maximize throughput.

Innovation Solution

A method involving identifying processing stages and their interdependencies, assigning them to suitable processors, staggering processing to accommodate dependencies, and selecting a pipeline that offers the best average processing time while considering statistical variations and constraints, such as shared memory access and cycle overheads, to achieve efficient parallel processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple co-processors and hardware accelerators are used for multimedia processing, then processing throughput is improved, but resource allocation complexity and idle time management become worse

Engineering Contradiction:
Improveprocessing throughputVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The processing pipeline is segmented into multiple independent stages (motion estimation, motion compensation, DCT, quantization, entropy encoding) that can be executed in parallel across different co-processors and hardware accelerators. Each stage is assigned to specific processing units based on their capabilities, allowing simultaneous execution of multiple processing tasks while maintaining manageable resource allocation through stage-based organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically allocates processing tasks to available co-processors and hardware accelerators based on current resource availability and stage completion status. The pipeline scheduler adjusts task distribution in real-time to balance load across processors, minimizing idle time while adapting to varying processing complexities of different video sequences and resolution requirements.

Inventive Principle:
Principle #15Dynamics

2Productivity

If processing stages are executed in parallel to reduce processing time, then productivity is improved, but timing synchronization and interdependencies between stages become more difficult to manage

Engineering Contradiction:
Improveprocessing speedVSAvoidtiming synchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary analysis of the video sequence characteristics (resolution, frame rate, motion complexity) before executing the processing pipeline. Based on this analysis, it pre-configures the pipeline depth, selects appropriate co-processors for each stage, and pre-allocates buffer memory. This preliminary setup enables subsequent parallel execution to proceed smoothly with minimized timing conflicts and synchronization overhead.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Buffer memory acts as an intermediary between parallel processing stages, decoupling their execution timelines. Each stage writes its output to a buffer that the next stage reads from, allowing stages to operate at different speeds without direct timing constraints. The buffer management system handles data transfer coordination, ensuring that inter-stage dependencies are satisfied while maintaining parallel execution efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If the pipeline is optimized for average processing time, then overall throughput is improved, but performance consistency under statistical variations in processing complexity becomes worse

Engineering Contradiction:
Improveaverage throughputVSAvoidperformance consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system dynamically adjusts pipeline parameters (such as pipeline depth, buffer sizes, and processor allocation) based on statistical analysis of processing time variations across different video sequences. By modeling the probabilistic nature of processing complexity and adapting parameters accordingly, the system optimizes average throughput while maintaining acceptable performance consistency across varying workloads.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system implements multiple pipeline configurations with varying degrees of parallelism and buffering capacity. Depending on the specific application requirements and resource availability, it selects the appropriate pipeline depth and resource allocation strategy. This allows the system to achieve optimal average performance for different scenarios without requiring perfect consistency in all conditions.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7634776B2Multi-threaded processing design in architecture with multiple co-processors
Publication Date: 2009.12.15 ITTIAM SYST P
  • US7634776B2 patent drawing
  • US7634776B2 patent drawing
  • US7634776B2 patent drawing

AI summary

A method for designing a multi-threaded processing operation that includes, e.g., multimedia encoding/decoding, uses an architecture having multiple processors and optional hardware accelerators. The method includes the steps of: identifying a desired chronological sequence of processing stages for processing input data including identifying interdependencies of said processing stages; allotting each said processing sage to a processor; staggering the processing to accommodate the interdependencies; selecting a processing operation based on said allotting to arrive at a subset of possible pipelines that offer low average processing time; and, choosing one design pipeline from said subset to result in overall timing reduction to complete said processing operation. The invention provides a multi-threaded processing pipeline that is applicable in a System-on-Chip (SoC) using a DSP and shared resources such as DMA controller and on-chip memory, for increasing the throughput. The invention also provides an article which is programmed to execute the method.