Macroblock-Based Image Scaling Reducing Memory Bandwidth

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional image scaling methods require high memory bandwidth, which limits the speed of scaling and transcoding processes due to the need for separate horizontal and vertical scaling operations and memory access, especially when dealing with macroblocks.

Innovation Solution

The method involves using macroblock scalers that process entire macroblocks rather than individual pixels, reducing memory bandwidth by generating scaled pixel data without accessing memory, and scaling transcoder parameters to streamline the transcoding process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional pixel-based scaling is used with separate horizontal and vertical scaling operations, then image scaling can be performed, but memory bandwidth requirements increase significantly

Engineering Contradiction:
Improvescaling speedVSAvoidmemory bandwidth
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent segments the image into macroblocks (16x16 pixel blocks) and processes them as units rather than individual pixels. This segmentation allows the scaler to handle multiple pixels simultaneously within each macroblock, reducing the total number of memory accesses required while maintaining scaling quality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges horizontal and vertical scaling operations into a single macroblock-based processing step. Instead of performing separate horizontal scaling followed by vertical scaling (or vice versa), the invention scales both dimensions simultaneously within the macroblock structure, eliminating the need for sequential memory accesses and reducing overall memory bandwidth requirements.

Inventive Principle:
Principle #5Merging (Combining)

2Speed

If images are stored in memory and retrieved for scaling operations, then scaling can be performed, but memory bandwidth is consumed and process speed is limited

Engineering Contradiction:
Improvescaling speedVSAvoidmemory bandwidth
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent performs preliminary organization of image data into macroblock structures during the decoding process. This preliminary structuring allows the scaler to access and process data in a more efficient manner without requiring frequent memory read/write operations, thereby increasing scaling speed while reducing memory bandwidth consumption.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If macroblocks are written to memory before scaling, then scaling can be performed, but memory bandwidth is required and processing time increases

Engineering Contradiction:
Improvetranscoding efficiencyVSAvoidmemory bandwidth
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent extracts the scaling operation from the traditional memory-write-then-scale sequence. By implementing macroblock-based scaling that processes data directly from the decoded stream without requiring intermediate memory storage, the invention eliminates the memory bandwidth bottleneck and reduces processing time while maintaining transcoding efficiency.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8872856B1Macroblock based scaling of images using reduced memory bandwidth
Publication Date: 2014.10.28 NXP USA INC
  • US8872856B1 patent drawing
  • US8872856B1 patent drawing
  • US8872856B1 patent drawing

AI summary

A method and/or system of scaling images by providing a horizontal macroblock scaler with pixels of the images in units of macroblocks and a vertical macroblock scaler where the pixels of the output image are in units of macroblocks. For the horizontal macroblock scaler macroblocks decoded or vertically scaled are read into the horizontal scaler to generate horizontally scaled macroblocks of pixels. The horizontal scaler need not access data stored in a memory, which reduces the memory bandwidth need for scaling the image. For the vertical macroblock scaler macroblocks decoded or horizontally scaled are read into the vertical scaler from memory to generate vertical scaled macroblocks of pixel. The output of the vertical scaler can be sent directly to an encoder without going through memory first, which reduces the memory bandwidth need for scaling the image. A transcoder parameter may also be provided to scale transcoder parameters such as quantization step sizes and motion vectors that are received from the decoder. The scaled transcoder parameters may be fed to an encoder or a transcoder to encode or transcode the scaled images without motion estimation that is computationally expensive.