VLC Table Array Selection Memory Reduction via Difference Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing video coding technologies require significant memory to store VLC table array selection tables, which can be inefficient in terms of memory usage, especially when dealing with different block characteristics such as prediction types and sizes.

Innovation Solution

The approach involves storing only one VLC table array selection table and using an indication of the difference between this table and another to reconstruct the necessary entries, thereby reducing memory usage by eliminating the need to store multiple tables.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple VLC table array selection tables are stored to support different block characteristics, then coding performance is maintained, but memory usage increases

Engineering Contradiction:
Improvecoding performanceVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The VLC table array selection tables are segmented into a base table and difference tables. The base table contains common entries, while difference tables contain only the specific modifications needed for different block characteristics. This segmentation allows the system to maintain multiple table configurations without storing complete redundant tables, thus reducing memory usage while preserving coding performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The difference tables are nested within the base table structure. The decoder reconstructs full VLC tables by combining the base table with the appropriate difference tables, similar to nested dolls where smaller elements are contained within larger structures. This nesting allows compact storage of multiple table configurations in a hierarchical manner.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Adaptability or versatility

If multiple complete VLC tables are stored for different prediction types and block sizes, then all coding scenarios are supported, but memory requirements increase significantly

Engineering Contradiction:
Improvecoding scenario supportVSAvoidmemory requirements
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The base VLC table array selection table serves as a universal foundation that can be adapted to support multiple coding scenarios through the application of different difference tables. This universal base table contains common entries applicable to all block types, while the difference tables provide scenario-specific modifications, allowing one base table to fulfill multiple functions.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

Instead of storing completely different tables for different scenarios, the patent applies local quality changes through difference tables that contain only the specific entries that differ for each scenario. This allows the system to maintain adaptability for different prediction types and block sizes by modifying only the necessary local entries rather than storing entirely separate tables.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9338456B2Coding syntax elements using VLC codewords
Publication Date: 2016.05.10 QUALCOMM INC
  • US9338456B2 patent drawing
  • US9338456B2 patent drawing
  • US9338456B2 patent drawing

AI summary

This disclosure describes techniques for coding transform coefficients for a block of video data. According to these techniques, a video coder (a video encoder or video decoder) stores a first VLC table array selection table in memory, and an indication of at least one difference between the first VLC table array selection table and a second VLC table array selection table. The video coder reconstructs at least one entry of the second VLC table array selection table based on the first VLC table array selection table using the stored indication of the difference between the first VLC table array selection table and a second VLC table array selection table. The video coder uses the reconstructed at least one entry of the second VLC table array selection table to code at least one block of video data.