Caching Encoded Graphical Objects for Video Stream Composition
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer graphics display memory systems face challenges in efficiently rendering and encoding sub-frame images for interactive applications, as prior art systems require re-rendering and re-encoding, which is computationally expensive and not optimized for caching mechanisms due to state-based data compression limitations.
Innovation Solution
The implementation of a method that inserts a software hook between application execution layers to intercept rendering commands, allowing for caching and composition of encoded images, using techniques like slice cutting and slice linking to optimize image transmission by determining if images are already cached and applying predictive encoding for animations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If sub-frame images are re-rendered and re-encoded for each video frame, then image freshness and accuracy are maintained, but computational expense and processing time increase significantly
Solution Approach 1:
The system pre-renders and pre-encodes sub-frame images into a cache before they are actually needed in the video stream. When a sub-frame image is required, the system retrieves it from the pre-computed cache rather than performing real-time rendering and encoding, thus maintaining image freshness while significantly reducing processing time and computational expense.
Solution Approach 2:
The system creates a cache copy of pre-rendered and pre-encoded sub-frame images that can be rapidly retrieved and inserted into the video stream. This copying approach allows the system to reuse identical images across multiple video frames without performing expensive rendering and encoding operations each time, thereby maintaining image accuracy while improving processing speed.
2Productivity
If caching mechanisms are used to reuse audiovisual content, then bandwidth and processing resources are saved, but state-based data compression systems cannot insert images into existing data streams
Solution Approach 1:
The system segments the video stream into discrete frames or time intervals, allowing cached sub-frame images to be inserted at specific boundaries rather than attempting to embed them within the continuous compressed data stream. This segmentation approach maintains compatibility with state-based compression systems while enabling efficient reuse of cached images, thus achieving resource efficiency without sacrificing stream integration capability.
Solution Approach 2:
The system introduces an intermediary layer between the cached images and the compressed video stream. This intermediary mechanism handles the insertion of cached sub-frame images into the data stream at appropriate positions, bridging the gap between caching efficiency and stream compatibility. The intermediary allows cached images to be integrated without disrupting the state-based compression process, thus maintaining both resource efficiency and ease of stream integration.
3Quantity of substance
If full frame video content is cached and reused, then bandwidth requirements are reduced, but applications requiring smaller sub-frame images cannot benefit from caching
Solution Approach 1:
The system implements local quality caching by storing and reusing only the specific sub-frame images that are actually needed for each application, rather than caching entire frames. This allows different applications to retrieve only the relevant portions of cached content, maintaining adaptability to various image size requirements while still benefiting from bandwidth and processing resource savings through caching.
Data Source
AI summary
System and methods are provided to cache encoded graphical objects that may be subsequently combined with other encoded video data to form a data stream decodable by a client device according to a format specification. Paint instructions relating to a graphical object are sent from a layout engine to a rendering library. A shim intercepts these instructions and determines whether the graphical object already has been rendered and encoded. If so, a cached copy of the object is transmitted to the client device. If not, the shim transparently passes the instructions to the rendering library, and the object is rendered, encoded, and cached. Hash values are used for efficiency. Methods are disclosed to detect and cache animations, and to cut and splice cached objects into encoded video data.


