Shared Buffer Management Between GPU and Media Encoder

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveimage processing efficiencyVSAvoiddevice resource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improvedata integrityVSAvoiddata copying overhead
Core Design Contradiction:
ReliabilityVSLoss of energy

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #26Copying

3Reliability

If process spaces are isolated for security and stability, then system reliability is improved, but buffer sharing between processes becomes complex

Engineering Contradiction:
Improveprocess isolation securityVSAvoidbuffer sharing mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8928680B1Method and system for sharing a buffer between a graphics processing unit and a media encoder
Publication Date: 2015.01.06 GOOGLE LLC
  • US8928680B1 patent drawing
  • US8928680B1 patent drawing
  • US8928680B1 patent drawing

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.