Microcode Engine Reordering Macro-Blocks for Video Decoding
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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)
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.
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.
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
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.
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.
Data Source
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.


