Moving Image Slice Switching for Multi-Core Decoding
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


