Interleaved Motion Vector Difference Coding for Parallel Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing image coding methods face inefficiencies in processing and decoding due to insufficient parallel processing of motion vector differences, leading to delays in image processing and decoding.

Innovation Solution

The proposed method codes a motion vector difference by combining parts of the horizontal and vertical components into a code string, allowing for increased parallelism in decoding processing through context adaptive binary arithmetic coding and bypass decoding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If motion vector difference is coded by sequentially processing horizontal and vertical components, then coding simplicity is maintained, but processing speed and parallelism are reduced

Engineering Contradiction:
Improveprocessing speedVSAvoidcoding structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The motion vector difference is segmented into multiple portions (first portion, second portion, third portion, fourth portion) corresponding to different bit components of horizontal and vertical components. These portions are coded in parallel using context adaptive binary arithmetic coding, enabling simultaneous processing of multiple segments rather than sequential processing of entire horizontal and vertical components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The coding structure transitions from a sequential one-dimensional processing approach (horizontal component then vertical component) to a multi-dimensional parallel processing approach where portions from both horizontal and vertical components are interleaved and processed simultaneously in the code string.

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

2Loss of time

If conventional sequential coding method is used, then implementation simplicity is maintained, but processing delay increases

Engineering Contradiction:
Improveprocessing delayVSAvoiddecoding complexity
Core Design Contradiction:
Loss of timeVSEase of operation

Solution Approach 1:

The decoding apparatus is pre-configured with context models for context adaptive binary arithmetic decoding. The interleaved code string structure is designed in advance to enable parallel decoding of multiple portions simultaneously, reducing processing delay without requiring complex runtime decision-making during decoding operations.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If motion vector difference components are coded separately, then decoding simplicity is maintained, but parallel processing capability is limited

Engineering Contradiction:
Improveparallel processing degreeVSAvoidcode string structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Portions from the horizontal component (first and third portions) and vertical component (second and fourth portions) are merged into a single interleaved code string. This combining enables the decoding apparatus to process multiple portions in parallel using context adaptive binary arithmetic coding, significantly increasing the degree of parallelism compared to separate coding of components.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP3309969B1Image coding method and apparatus
Publication Date: 2023.04.19 SUN PATENT TRUST
  • EP3309969B1 patent drawingFigure 1
  • EP3309969B1 patent drawingFigure 2
  • EP3309969B1 patent drawingFigure 3~4

AI summary

An image coding method includes (S801) coding a motion vector difference indicating a difference between the motion vector and a predicted motion vector, wherein the coding (S801) includes: coding a first portion that is a part of a first component which is one of a horizontal component and a vertical component of the motion vector difference; coding a second portion that is a part of a second component which is different from the first component and is the other one of the horizontal component and the vertical component; coding a third portion that is a part of the first component and is different from the first portion; coding a fourth portion that is a part of the second component and is different from the second portion; and generating a code string which includes the first portion, the second portion, the third portion, and the fourth portion in the stated order.