Image Processing Apparatus Sub-block Encoding Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In the H.265/HEVC encoding system, acquiring motion vectors for adjacent blocks becomes complex due to varying block sizes after quadtree spatial splitting, requiring frequent calculations of offset positions for efficient encoding.

Innovation Solution

An image processing apparatus and method that acquires and stores encoding information for sub-blocks within a memory, allowing for efficient retrieval and use of encoding information from adjacent sub-blocks to perform encoding processes without calculating constant offset values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If quadtree spatial splitting is used to divide image regions into blocks of varying sizes, then encoding efficiency and image quality are improved, but the complexity of acquiring motion vectors from adjacent blocks increases due to non-constant offset calculations

Engineering Contradiction:
Improveencoding efficiencyVSAvoidcomplexity of acquiring motion vectors
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the image region into sub-blocks of uniform size (e.g., 8×8 pixels) within each variable-sized block. This segmentation allows motion vectors to be stored and accessed at fixed intervals corresponding to sub-block positions, eliminating the need for complex offset calculations when blocks have different sizes. The uniform sub-block structure provides a regular memory access pattern while maintaining the flexibility of variable block sizes for encoding efficiency.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If motion vectors of adjacent blocks are referenced for encoding, then encoding precision is improved, but processing time increases due to frequent offset position calculations

Engineering Contradiction:
Improveencoding precisionVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary organization of motion vector data by storing them in memory at fixed positions corresponding to uniform sub-block intervals. This preliminary structuring allows adjacent blocks to reference each other's motion vectors through simple address calculations based on sub-block positions, rather than calculating offsets for each reference. The preprocessing of data layout eliminates repeated calculation overhead during the encoding process.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If variable block sizes are used after quadtree spatial splitting, then adaptability to image content is improved, but memory access complexity increases due to non-uniform block structures

Engineering Contradiction:
Improveadaptability to image contentVSAvoidmemory access complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a nested structure where uniform-sized sub-blocks are contained within variable-sized blocks. Each block of varying size (determined by quadtree splitting) is composed of multiple sub-blocks of fixed size. This nesting allows the system to maintain the adaptability of variable block sizes for different image content while using the regular sub-block structure to simplify memory access patterns and reduce complexity in referencing adjacent blocks.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS10834421B2Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
Publication Date: 2020.11.10 CANON KK
  • US10834421B2 patent drawing
  • US10834421B2 patent drawing
  • US10834421B2 patent drawing

AI summary

Encoding information associated with encoding is acquired for each of a plurality of blocks that are obtained by recursively dividing an image region by quadtree spatial splitting. The encoding information of a target block and sub-blocks that belong to the target block if the image region is divided into units of the sub-blocks that are each smaller than the block are stored in a memory in association with each other. Encoding information that is associated with an adjacent sub-block that is adjacent to a first block among the sub-blocks that belong to a second block that is adjacent to the first block in the image region is acquired from the memory. Then, an encoding process is performed using this acquired encoding information and encoding information of the first block.