Video Encoder Configuration via Memory Pointers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current video processing systems face limitations in configurability due to large configuration message sizes, which restrict the number of regions of interest that can be encoded, especially in resource-constrained devices like smartphones, limiting finer grain encoding options.

Innovation Solution

The system reduces configuration message data by storing encoding configuration data in memory and using pointers within configuration messages to indicate data locations, allowing for more regions of interest to be encoded without increasing message size, and enabling context-dependent encoding configurability through executable instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If configuration data for regions of interest is included directly in configuration messages, then encoding configurability is improved, but configuration message size increases

Engineering Contradiction:
Improveencoding configurabilityVSAvoidconfiguration message size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The configuration data is segmented into two parts: region of interest definitions are stored in a separate data structure in memory, while configuration messages only contain pointers to these definitions. This segmentation allows the system to maintain high encoding configurability while minimizing configuration message size, as the messages only need to reference pre-stored data rather than contain complete configuration information.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The solution moves configuration data from the message dimension to the memory dimension. Instead of embedding all configuration data within configuration messages (one-dimensional approach), the system stores detailed ROI definitions in memory and uses pointers in messages to reference them (adding a spatial dimension). This dimensional shift allows the system to support more regions of interest without increasing message size.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If more regions of interest are encoded, then encoding configurability is improved, but configuration message size increases

Engineering Contradiction:
Improvenumber of regions of interestVSAvoidconfiguration message size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The system creates a master copy of region of interest definitions stored in memory that can be referenced by multiple configuration messages. Instead of including duplicate ROI definition data in each configuration message, the system uses pointers to reference the master copy, allowing unlimited regions of interest to be supported without increasing message size proportionally.

Inventive Principle:
Principle #26Copying

3Quantity of substance

If configuration data is stored in memory with pointers in messages, then configuration message size is reduced, but system complexity increases

Engineering Contradiction:
Improveconfiguration message sizeVSAvoidsystem complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The separate data structure in memory serves multiple configuration messages simultaneously. A single ROI definition can be referenced by multiple configuration messages through pointers, making the memory-stored data universal and multi-functional. This reduces overall system complexity compared to duplicating configuration data in each message, as the same data structure serves multiple purposes.

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

Data Source

PatentUS10582207B2Video processing systems
Publication Date: 2020.03.03 ARM LTD
  • US10582207B2 patent drawing
  • US10582207B2 patent drawing
  • US10582207B2 patent drawing

AI summary

A video processing system includes a host processor, a video encoder and a memory. The host processor sends a configuration message to the video encoder that indicates to the video encoder how to encode a video frame and that includes information indicating the location of encoding configuration data that is stored in the memory. The video encoder receives the configuration message, uses the location indicating information to read the encoding configuration data from the memory, and encodes the video frame in accordance with the encoding configuration data read from the memory.