Dynamic Slice-to-Frame Ratio for Single-Threaded Rendering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In single-threaded environments, large workloads during video or media rendering can cause frames to be skipped, leading to choppy or unresponsive video playback due to processing time exceeding frame duration, resulting in frustration for users.
Innovation Solution
The workload is divided into slices and scheduled using a dynamic slice-to-frame ratio, which is adjusted based on effective frame and slice rates to maximize workload execution while minimizing frame skips, by assigning workload slices to upcoming frames in a way that ensures consistent rendering.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If workload is executed in single-threaded environment during frame rendering, then workload processing is completed, but frame rate decreases and frames are skipped
Solution Approach 1:
The patent divides the workload into multiple workload slices that can be distributed across multiple frames. Instead of executing the entire workload in a single frame, the workload is segmented into smaller units (slices) that are processed across successive frames, allowing frame rendering to continue without being blocked by large workload execution.
Solution Approach 2:
The patent implements a dynamic slice-to-frame ratio that adjusts based on system conditions and workload characteristics. The ratio of workload slices per frame is not fixed but dynamically determined to optimize both workload processing efficiency and frame rendering performance, allowing the system to adapt to varying load conditions.
2Productivity
If large workload is assigned to a single frame, then workload is processed efficiently, but subsequent frames are delayed or skipped
Solution Approach 1:
The workload is divided into multiple slices that are assigned to different frames, preventing any single frame from being overloaded. This segmentation ensures that each frame contains a manageable amount of workload, completing within its allocated time and preventing delays to subsequent frames.
Solution Approach 2:
The system proactively divides and distributes workload slices to upcoming frames before execution begins. By pre-planning the workload distribution across multiple frames, the system avoids the situation where a large workload would cause frame delays, ensuring smooth continuous rendering.
3Productivity
If workload slices are processed in every frame, then workload completion rate increases, but frame rendering time increases causing choppiness
Solution Approach 1:
The slice-to-frame ratio is dynamically adjusted based on system performance and workload characteristics. Rather than processing workload slices in every frame at a fixed rate, the system adapts the ratio to balance workload completion with maintaining smooth frame rendering, preventing choppiness while maximizing productivity.
Solution Approach 2:
The system changes the parameter of slice-to-frame ratio to optimize performance. By adjusting this ratio, the system can control how much workload is processed per frame, finding the optimal balance between workload completion rate and frame rendering duration to eliminate choppiness.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A computer implemented method for assigning workload slices from a workload to upcoming frames to be processed during the rendering of the upcoming frames. The processing time of upcoming frames and workload slices varies at runtime according to system resources The method determines an effective frame rate that estimates the duration of an upcoming frame and also determines an effective slice rate that estimates the time it takes to complete an upcoming workload slice. Based on the effective frame rate and the effective slice rate, the method then calculates the slice-to-frame ratio which defines the rate in which slices are assigned to upcoming frames. The slice-to-frame ratio can dynamically change to accommodate for changes to the processing time of rendered frames and completed workload slices.