Camera Processing Pipeline Interface for Low-Latency Engine Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing camera interfaces lack a standardized way to control the operation of camera pipelines, limiting developers' ability to utilize the full processing power of available engines for image processing, especially in low-latency applications, due to the absence of a coordinated method to manage data flow across various processing engines and sensor blocks.

Innovation Solution

A combined camera application programming interface (API) and driver that allows flexible selection and routing of processing engines, including those internal and external to the camera processor, such as DSP and GPU, to build custom image processing pipelines without requiring specific code for each engine, enabling low-latency and easy programming of camera processing pipelines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a standardized camera interface is implemented, then ease of operation is improved, but adaptability to different processing engines deteriorates

Engineering Contradiction:
Improveease of programmingVSAvoidadaptability to processing engines
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The camera interface is designed as a universal framework that can control multiple types of processing engines (ISP pipeline engines, DSP, GPU) through a single standardized API. The interface provides a unified way to define processing pipelines that works across different engine types without requiring separate code for each engine, thereby achieving both ease of operation and adaptability.

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

Solution Approach 2:

The processing pipeline is segmented into discrete processing stages or nodes that can be independently selected and configured. Each stage represents a specific processing function that can be implemented by different engines. This segmentation allows developers to build custom pipelines by combining standard stages in different ways, maintaining simplicity while enabling versatility.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If flexible engine selection is allowed, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improveflexibility in engine selectionVSAvoidcomplexity of pipeline management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

An intermediary pipeline management layer is introduced between the developer's high-level pipeline definition and the actual processing engines. This intermediary layer handles the complexity of engine selection, data routing, and coordination automatically. Developers simply define their processing needs at a high level, and the intermediary manages the underlying complexity of connecting multiple engines and managing data flow between them.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If low-latency processing is implemented, then speed is improved, but ease of operation deteriorates

Engineering Contradiction:
Improveprocessing latencyVSAvoidease of programming
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The pipeline configuration is made dynamic, allowing developers to adjust processing parameters and engine selections based on real-time requirements. The interface supports both optimized low-latency paths for performance-critical applications and standard processing paths for general use cases. Developers can dynamically configure the pipeline to balance between speed and complexity based on their specific needs without sacrificing ease of programming.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3685345B1Fully extensible camera processing pipeline interface
Publication Date: 2024.07.17 QUALCOMM INC
  • EP3685345B1 patent drawingFigure 1
  • EP3685345B1 patent drawingFigure 2
  • EP3685345B1 patent drawingFigure 3

AI summary

A method for camera processing using a camera application programming interface (API) is described. A processor executing the camera API may be configured to receive instructions that specify a use case for a camera pipeline, the use case defining at least one or more processing engines of a plurality of processing engines for processing image data with the camera pipeline, wherein the plurality of processing engines includes one or more of fixed-function image signal processing nodes internal to a camera processor and one or more processing engines external to the camera processor. The processor may be further configured to route image data to the one or more processing engines specified by the instructions and return the results of processing the image data with the one or more processing engines to the application.