Multithreaded Image Coding via Perpendicular Band Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for coding and decoding digital images, particularly in video sequences, face inefficiencies in computing time due to spatial dependence contexts, where processing one macroblock requires knowledge of previous macroblocks, and multithreading techniques struggle to achieve optimal load distribution and synchronization in such contexts.

Innovation Solution

The method involves separating the image into perpendicular bands based on sequential processing directions (vertical or horizontal) and using synchronization signals between processors to ensure that dependent macroblocks are processed only after their prerequisites are completed, allowing for optimal load distribution and synchronization in spatial dependence contexts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multithreading is applied to process macroblocks in parallel, then computing time is reduced, but synchronization complexity increases due to spatial dependence constraints

Engineering Contradiction:
Improvecomputing timeVSAvoidsynchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The image is divided into N vertical bands, with each band assigned to a separate processor for parallel processing. This segmentation allows macroblocks within each vertical band to be processed independently and in parallel, while maintaining the required spatial dependence constraints through synchronization mechanisms between processors.

Inventive Principle:
Principle #1Segmentation

2Productivity

If the image is divided into horizontal bands for parallel processing, then load distribution is improved, but processing correctness deteriorates due to spatial dependence violations

Engineering Contradiction:
Improveload distributionVSAvoidprocessing correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Instead of dividing the image into horizontal bands (parallel to processing lines), the invention inverts the approach by dividing the image into vertical bands (perpendicular to processing lines). This inversion allows processors to work independently on vertical strips while respecting the horizontal sequential processing requirements, thereby maintaining both load distribution and processing correctness.

Inventive Principle:
Principle #13The other way round (Inversion)

3Reliability

If sequential processing is used to maintain spatial dependence, then processing correctness is ensured, but computing time increases

Engineering Contradiction:
Improvespatial dependence complianceVSAvoidcomputing time
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The invention transitions from one-dimensional sequential processing along horizontal lines to a two-dimensional parallel processing architecture using vertical bands. By introducing the vertical dimension as the parallelization axis while maintaining horizontal sequential processing within each band, the system achieves both spatial dependence compliance and improved computing time through parallel execution across multiple processors.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS7885334B2Image coding or decoding device and method involving multithreading of processing operations over a plurality of processors, and corresponding computer program and synchronisation signal
Publication Date: 2011.02.08 MK SYST USA INC
  • US7885334B2 patent drawing
  • US7885334B2 patent drawing

AI summary

A method and apparatus are provided for coding or decoding an image comprising macro-blocks which are distributed in lines and columns. The processing of at least one given macro-block requires the pre-processing of at least one other macro-block on which said dependent macro-block depends. Moreover, the macro-blocks are processed sequentially line by line or column by column. Processing of the macro-blocks is multithreaded over N processors, N≧2. The image is separated into N vertical bands each comprising a plurality of lines and at least one column of macro-blocks if the macro-block is processed sequentially line by line, or into N horizontal bands each comprising a plurality of columns and at least one line of macro-blocks if the macro-block is processed sequentially column by column. One of the N bands is processed by each processor, and the processing operations performed by the N processors is synchronized.