Multicore Video Decoding with Shared Sample Completion Tracking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multicore video coding systems, performing intra frame prediction processes, such as intra block copy, is challenging because samples in the same frame may not be readily available for use by all cores due to parallel coding of frame regions, leading to inefficiencies and potential delays.
Innovation Solution
Implementing a shared memory system where video coding cores track the completion of sample coding and store this information, allowing cores to access it to determine if necessary samples are available before proceeding with prediction processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple regions of a frame are coded in parallel using a multicore video coding system, then coding speed and productivity are improved, but sample availability for intra frame prediction deteriorates because samples may not be ready when needed
Solution Approach 1:
The patent implements a tracking mechanism that monitors sample completion status in advance before intra frame prediction is attempted. Each coding core writes completion information to shared memory as samples are decoded, allowing other cores to check availability before using samples for prediction, thus preventing wasted processing on unavailable data
Solution Approach 2:
The patent establishes a feedback loop where coding cores continuously update and read sample completion status from shared memory. This feedback mechanism ensures that cores can dynamically adjust their prediction operations based on real-time sample availability, resolving the conflict between parallel processing speed and sample readiness
2Manufacturing precision
If a video coding core waits for samples to be completed before performing prediction, then prediction accuracy is improved, but processing time and productivity deteriorate
Solution Approach 1:
The patent allows coding cores to proceed with partial prediction operations using available samples while continuing to track completion of remaining samples. Cores can perform prediction on regions where samples are ready and defer or supplement processing for regions where samples are still being coded, avoiding complete idle waiting while ensuring final prediction accuracy
Solution Approach 2:
The tracking of sample completion status is performed preliminarily and continuously in the background, so when a core needs samples for prediction, the availability information is already prepared and immediately accessible in shared memory, eliminating the need for time-consuming availability checks during critical prediction paths
3Reliability
If a shared memory system is implemented to track sample completion, then sample availability and reliability are improved, but system complexity increases
Solution Approach 1:
The patent implements a self-service tracking system where each coding core autonomously writes its own sample completion status to shared memory and reads the status of samples it needs without requiring centralized coordination. This decentralized approach maintains reliability while minimizing the complexity of control mechanisms
Solution Approach 2:
The shared memory structure is designed to serve multiple functions: storing sample completion status, tracking decoding progress, and enabling inter-core communication. This multi-functionality reduces the need for separate dedicated mechanisms for each purpose, thereby limiting the increase in overall system complexity while achieving the reliability goal
Data Source
AI summary
An apparatus configured to decode video data includes a shared memory and one or more processors configured to execute a plurality of video decoding cores. At least one of the plurality of video decoding cores in communication with the shared memory, and each of plurality of video decoding cores are configured to track completion of decoding samples of one or more regions of a frame of video data, write information to the shared memory, the information indicative of the completion of decoding the samples of the one or more regions of the frame of video data, read, prior to decoding a subsequent region of the frame of video data, the information in the shared memory, and determine whether to decode the subsequent region of the frame of video data based on the information.


