Moving Image Slice Switching for Multi-Core Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for processing moving images using multiple cores or CPUs face inefficiencies due to non-proportional processing efficiency, uneven workload distribution, and overhead from frequent CPU switching, especially when the number of image slices is not an integer multiple of the number of processing units, leading to potential delays in playback.

Innovation Solution

A method that divides a moving image frame into slices where the number is not a multiple of processing units, with a switching mechanism that uses event generation and standby instructions to manage slice processing, allowing efficient and smooth decoding by adjusting switching intervals without relying heavily on the operating system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If processing is distributed to multiple CPUs using conventional OS control, then processing speed increases, but processing efficiency does not scale proportionally due to frequent re-distribution when new processing is generated

Engineering Contradiction:
Improveprocessing speedVSAvoidprocessing efficiency
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent segments the moving image into slices that can be independently processed by different CPUs. Each CPU is assigned a specific slice and processes it continuously without interruption, eliminating the need for frequent re-distribution. This segmentation allows linear scaling of processing efficiency with the number of CPUs.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary assignment of slices to CPUs before processing begins. The OS assigns slices to CPUs in advance, and once assigned, CPUs process their assigned slices continuously without interruption. This preliminary action eliminates the need for dynamic re-distribution during processing, maintaining stable and proportional efficiency.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If CPU switching interval is not sufficiently small, then certain CPUs have heavier workload, but if switching interval is overly small, then switching overhead increases and performance deteriorates

Engineering Contradiction:
Improveworkload balanceVSAvoidswitching overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides the processing workload into distinct slices assigned to different CPUs. Each CPU processes its assigned slice independently and continuously, eliminating the need for frequent switching. This segmentation naturally balances workload while minimizing switching overhead to essential OS-level coordination.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If the number of slices is not an integer multiple of the number of CPUs, then slices cannot be evenly distributed, but this causes certain slices to be decoded later and may interrupt playback

Engineering Contradiction:
Improveflexibility in slice distributionVSAvoidplayback stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent performs preliminary slice-to-CPU assignment before processing begins. The OS assigns slices to CPUs in advance, ensuring that all slices are distributed even when the number of slices is not an integer multiple of CPUs. This preliminary assignment prevents playback interruption by ensuring continuous processing of all slices from the start.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9258569B2Moving image processing method, program and apparatus including slice switching
Publication Date: 2016.02.09 GRASS VALLEY CANADA
  • US9258569B2 patent drawing
  • US9258569B2 patent drawing
  • US9258569B2 patent drawing

AI summary

It is an object of the present invention to provide a method, a program, and an apparatus for processing a moving image, allowing efficient and smooth decoding in a simple configuration without heavily depending on the functions of an OS. Herein disclosed is a method for processing a moving image using a plurality of processing units, comprising: a step of dividing a frame of the moving image into a plurality of slices, where a number of the plurality of slices is not a multiple of a number of the plurality of processing units; a processing step, assigned to each of the plurality of slices, for processing each of the plurality of slices; and a switching step for executing slice switching, which switches between the slices to be processed, in the processing step. The method according to the present invention, not limited to the processing of moving images, allows efficient and smooth decoding in a simple configuration, even if the number of slices is not an integer multiple of the number of the processing units, without heavily depending on the functions of an OS.