Macroblock Storage in Video Frame Buffer Banks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current DDR-SDRAM technology inefficiencies in storing macroblocks for video data lead to significant memory overhead due to the inability to pack full macro-block rows in one bank, resulting in wasted memory space and increased access time for video decoding, particularly in SD size pictures.

Innovation Solution

A system and method for storing macroblocks by organizing them across multiple rows or banks in a memory subsystem, allowing adjacent macroblocks to be stored in different banks or rows, reducing memory wastage and access overhead by optimizing data placement within the memory hierarchy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If four macro blocks are packed into one bank of DDR-SDRAM, then memory access efficiency is improved for HD size pictures, but memory wastage increases significantly for SD size pictures

Engineering Contradiction:
Improvememory access efficiencyVSAvoidmemory wastage
Core Design Contradiction:
ProductivityVSLoss of substance

Solution Approach 1:

The patent implements dynamic memory organization that adapts to different picture sizes. For HD pictures, it packs four macro blocks into one bank for efficient access. For SD pictures, it reorganizes to store one macro block row per bank to minimize wastage. This dynamic adaptation resolves the contradiction between access efficiency and memory utilization across different resolution requirements.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the memory storage parameters based on picture size detection. When SD size is detected, it switches from the standard 4-macro-block-per-bank configuration to a 1-macro-block-row-per-bank configuration. This parameter change optimizes memory utilization for smaller pictures while maintaining the ability to use the standard configuration for larger pictures.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If macro blocks are stored linearly in the same bank, then memory organization is simplified, but SDRAM overhead increases due to row switching

Engineering Contradiction:
Improvememory organization complexityVSAvoidSDRAM overhead
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent segments the memory bank into distinct row assignments for different frame portions. Specifically, it stores current frame macro block rows in even-numbered rows and previous frame macro block rows in odd-numbered rows within the same bank. This segmentation allows the memory controller to access both current and previous frame data without triggering row switching overhead, thus reducing access time while maintaining organized structure.

Inventive Principle:
Principle #1Segmentation

3Loss of time

If adjacent macro blocks are stored in different banks, then SDRAM overhead is reduced to zero, but memory access complexity increases

Engineering Contradiction:
ImproveSDRAM overheadVSAvoidmemory access complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

Instead of distributing adjacent macro blocks across different banks (horizontal distribution), the patent uses vertical distribution within the same bank by assigning different rows. This dimensional change within the bank structure achieves the benefit of reduced overhead (similar to different bank access) while avoiding the complexity of inter-bank coordination, as all data remains within a single bank's address space.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS7526024B2Storing macroblocks for concatenated frames
Publication Date: 2009.04.28 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US7526024B2 patent drawing
  • US7526024B2 patent drawing
  • US7526024B2 patent drawing

AI summary

Presented herein is a system for storing macroblocks for concatenated frames. A decoder system comprises a frame buffer. The frame buffer comprises one or more rows. A particular one of the rows stores macroblocks from a plurality of frames.