Neighbor Context Processing in Block Pipelines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional block processing methods in video encoding pipelines face inefficiencies due to the sequential processing of blocks, which leads to latency issues when adjacent blocks are not concurrently at adjacent stages, hindering the use of neighbor pixel data for efficient processing.

Innovation Solution

Implementing a block processing pipeline where blocks are processed in a manner that allows neighbor pixel data from previously processed blocks to be fed back upstream, using techniques like knight's order processing and caching neighbor data to reduce latency and enhance efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If blocks are processed sequentially in scan order through the pipeline, then each block is processed in a simple linear fashion, but neighbor pixel data becomes unavailable when needed, causing processing delays

Engineering Contradiction:
Improveprocessing throughputVSAvoidprocessing latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent reorders block processing so that blocks are processed in an sequence that anticipates future needs for neighbor pixel data. By processing blocks in a specific pattern (e.g., processing block (i,j) before block (i,j-1) in certain cases), the system ensures that neighbor pixel data is already available when needed by subsequent processing stages, eliminating waiting time and improving throughput.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms where processed neighbor pixel data is fed back to earlier pipeline stages. When a block is processed and its neighbor pixel data becomes available, this data is fed back upstream to stages that need it for their processing, allowing concurrent processing without data unavailability delays.

Inventive Principle:
Principle #23Feedback

2Productivity

If adjacent blocks are processed concurrently at adjacent stages, then pipeline utilization is maximized, but neighbor pixel data cannot be made available upstream in time for processing

Engineering Contradiction:
Improvepipeline utilizationVSAvoidavailability of neighbor pixel data
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent processes blocks in a reordered sequence that performs preliminary processing of blocks whose neighbor pixel data will be needed by other concurrently processed blocks. This preliminary action ensures that when blocks are processed concurrently at adjacent stages, the necessary neighbor pixel data is already available in the pipeline, maintaining both high utilization and data availability.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If blocks are processed in knight's order or similar non-sequential patterns, then neighbor pixel data availability is improved, but the processing complexity and pipeline control become more difficult

Engineering Contradiction:
Improvedata availability timeVSAvoidpipeline control complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent divides the frame into segments or rows that can be processed in manageable units. By segmenting the processing into row-based or block-based units with systematic reordering within each segment, the complexity of knight's order processing is reduced while still achieving the benefit of improved neighbor pixel data availability. Each segment can be processed independently with controlled reordering.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9299122B2Neighbor context processing in block processing pipelines
Publication Date: 2016.03.29 APPLE INC
  • US9299122B2 patent drawing
  • US9299122B2 patent drawing
  • US9299122B2 patent drawing

AI summary

A block processing pipeline in which blocks are input to and processed according to row groups so that adjacent blocks on a row are not concurrently at adjacent stages of the pipeline. A stage of the pipeline may process a current block according to neighbor pixels from one or more neighbor blocks. Since adjacent blocks are not concurrently at adjacent stages, the left neighbor of the current block is at least two stages downstream from the stage. Thus, processed pixels from the left neighbor can be passed back to the stage for use in processing the current block without the need to wait for the left neighbor to complete processing at a next stage of the pipeline. In addition, the neighbor blocks may include blocks from the row above the current block. Information from these neighbor blocks may be passed to the stage from an upstream stage of the pipeline.