Shared Buffer Management Between GPU and Media Encoder
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Resource-limited mobile devices face challenges in capturing, processing, and storing image data due to high resource consumption by image processing and storage.
Innovation Solution
A program module manages buffer sharing between a graphics processing unit (GPU) and a hardware media encoder, allowing for efficient image data processing and encoding without data copying, by assigning buffers across isolated process spaces and utilizing hardware components for real-time image processing and encoding.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If image data is processed and stored using traditional methods, then image processing and encoding can be performed, but device resources are consumed excessively
Solution Approach 1:
The patent merges the buffer management functions of the graphics driver and media encoder driver into a single shared buffer pool. This allows both drivers to access the same memory resources without duplication, reducing overall device resource consumption while maintaining processing efficiency.
Solution Approach 2:
The shared buffer pool serves multiple functions: it stores image data for the GPU, provides encoding input for the media encoder, and enables seamless data transfer between processes. This multi-functional approach eliminates the need for separate buffer allocations, reducing resource usage.
2Reliability
If buffers are allocated separately for graphics processing and media encoding, then each component has dedicated memory, but data copying is required and resource utilization is suboptimal
Solution Approach 1:
The shared buffer pool acts as an intermediary between the graphics driver and media encoder driver. It receives image data from the GPU and provides it to the media encoder without requiring explicit data copying between processes, reducing energy consumption while maintaining data integrity through proper memory management.
Solution Approach 2:
The patent eliminates unnecessary data copying by implementing a shared buffer system where the same memory region is accessed by both the graphics driver and media encoder driver. This reduces the copying overhead and energy consumption associated with traditional separate buffer allocations.
3Reliability
If process spaces are isolated for security and stability, then system reliability is improved, but buffer sharing between processes becomes complex
Solution Approach 1:
The operating system's memory management system serves as an intermediary that enables buffer sharing between isolated process spaces. It provides secure memory mapping and access control mechanisms that allow the graphics driver and media encoder driver to share buffers while maintaining process isolation for security and stability.
Solution Approach 2:
The shared buffer pool implementation provides universal access mechanisms that work across different process spaces. It abstracts the complexity of inter-process communication by providing a unified interface for buffer allocation and sharing, simplifying the overall system architecture while maintaining security.
Data Source
AI summary
A program module executing in a first process space of a mobile computing device receives a buffer request from a graphics driver running in a second process space of the mobile computing device, wherein the second process space is isolated from the first process space. The program module assigns a buffer to the graphics driver to store image data processed by a graphical processing unit (GPU) controlled by the graphics driver. The program module receives a release of the buffer from the graphics driver. The program module assigns the buffer to a media encoder driver for a hardware media encoder to encode the image data in the buffer into a file.


