Microcode Engine Reordering Macro-Blocks for Video Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current digital video decoders require additional memory and bandwidth to perform in-the-loop deblocking of macro-blocks, as they need to be ordered in raster scan order, which is not always received in that order, especially with standards like H.264 that support non-raster scan order transmission.

Innovation Solution

A video decoder architecture that includes a microcode engine to reorder macro-blocks in raster scan order before decoding, eliminating the need for additional memory by buffering compressed data and using a hardware multi-standard video decoder device with in-the-loop deblocking filters to perform deblocking operations without requiring macro-blocks to be in raster scan order initially.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If macro-blocks are received in non-raster scan order (as supported by H.264 standard), then transmission flexibility and compression efficiency are improved, but in-the-loop deblocking cannot be performed until all macro-blocks are received, requiring additional memory storage

Engineering Contradiction:
Improvemacro-block transmission order flexibilityVSAvoidadditional memory storage requirement
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent segments the deblocking operation into two distinct paths: in-the-loop deblocking for raster-scan ordered macro-blocks and out-of-loop deblocking for non-raster-scan ordered macro-blocks. This segmentation allows the system to handle different transmission orders appropriately without requiring additional memory for all cases, as in-the-loop deblocking can be applied immediately when macro-blocks arrive in raster scan order.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary reordering of macro-blocks into raster scan order before decoding when possible, enabling in-the-loop deblocking to be applied during the decoding process itself. This preliminary action eliminates the need to wait for all macro-blocks to be received and stored in memory, thereby reducing the additional memory storage requirement while maintaining deblocking quality.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If one frame is entirely decoded and stored in memory before applying in-the-loop deblocking filter, then deblocking operations can be performed on complete frames, but additional memory bandwidth is required (one frame write and one frame read)

Engineering Contradiction:
Improvedeblocking operation completenessVSAvoidmemory bandwidth consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent performs preliminary reordering of macro-blocks into raster scan order before decoding, enabling the deblocking filter to operate on macro-blocks during the decoding process itself rather than requiring a separate pass after complete frame decoding. This preliminary action reduces memory bandwidth consumption by eliminating the need to write and read entire frames separately.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables continuous in-the-loop deblocking operations by maintaining macro-blocks in raster scan order throughout the decoding process. This continuity allows the deblocking filter to operate continuously on each macro-block as it is decoded, rather than requiring interruption to store and retrieve complete frames, thereby reducing memory bandwidth consumption.

Inventive Principle:
Principle #20Continuity of useful action

3Manufacturing precision

If in-the-loop deblocking filter operates on neighboring macro-block edges, then deblocking quality is improved, but the filter cannot operate until all macro-blocks of the frame are received and decoded when received in non-raster scan order

Engineering Contradiction:
Improvedeblocking operation qualityVSAvoidprocessing delay
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent segments the deblocking operation into in-the-loop and out-of-loop paths, allowing in-the-loop deblocking to operate on macro-blocks with their immediate neighbors as they are decoded in raster scan order. This segmentation enables progressive deblocking quality improvement without requiring waiting for complete frame reception, thereby reducing processing delay while maintaining deblocking quality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary reordering of macro-blocks into raster scan order before decoding, enabling the deblocking filter to access neighboring macro-blocks in the correct sequence during decoding. This preliminary action allows in-the-loop deblocking to operate immediately on each macro-block when its neighbors are available, improving processing speed without sacrificing deblocking quality.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9794593B1Video decoder architecture for processing out-of-order macro-blocks of a video stream
Publication Date: 2017.10.17 NVIDIA CORP
  • US9794593B1 patent drawing
  • US9794593B1 patent drawing
  • US9794593B1 patent drawing

AI summary

A video decoder architecture for processing out-of-order macro-blocks of a video stream. A microcode engine receives compressed data representing macro-blocks of a frame of a video stream, wherein at least one macro-block is received out-of-order. The microcode engine is for buffering the compressed data and for ordering the macro-blocks of the frame in raster scan order. A digital video decoder receives the macro-blocks in raster scan order and is for decoding the macro-blocks.