Neighbor Context Processing in Block Pipelines
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


