Reference Motion Vector Selection for Video Coding Bit Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing video compression schemes face inefficiencies in encoding and decoding due to the significant number of bits required to encode motion vectors, especially at lower data rates or higher compression ratios, which can increase transmission and storage bandwidth requirements.

Innovation Solution

The use of reference motion vectors is proposed, where candidate motion vectors are selected based on a match score, with the motion vector having the best predictor being used to encode the actual motion vector, reducing the number of bits needed to encode the motion vector by encoding the difference between the reference and actual vectors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If motion vectors are encoded using traditional methods, then video compression is achieved, but the number of bits required increases significantly, especially at lower data rates or higher compression ratios

Engineering Contradiction:
Improvenumber of bits required for encodingVSAvoidcoding efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The motion vector encoding is segmented into two parts: the reference motion vector (which is reused from previous frames) and the difference component (which is encoded explicitly). This segmentation allows the majority of the motion vector information to be transmitted efficiently by reference rather than by full re-encoding, directly reducing the bit count while maintaining compression effectiveness

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The reference motion vector is determined in advance from previously decoded blocks before encoding the current block. By pre-determining the reference motion vector and storing it in a buffer, the system avoids the need to recompute or re-encode the same motion vector information, thereby reducing the bits required for current block encoding

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If more bits are used to encode motion vectors, then encoding accuracy is maintained, but transmission and storage bandwidth requirements increase

Engineering Contradiction:
Improvemotion vector encoding accuracyVSAvoidtransmission and storage bandwidth
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

Instead of encoding the complete motion vector from scratch, the system copies the reference motion vector from previously decoded blocks and uses it as the basis for the current block encoding. Only the difference between the reference and actual motion vectors is encoded, which maintains accuracy while significantly reducing the bandwidth required for transmission and storage

Inventive Principle:
Principle #26Copying

3Quantity of substance

If reference motion vectors are used to reduce bit count, then transmission and storage bandwidth are decreased, but the complexity of the encoding process increases

Engineering Contradiction:
Improvetransmission and storage bandwidthVSAvoidencoding process complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The encoding system uses its own previously decoded motion vectors as references for current encoding operations. The buffer stores and reuses motion vector information that the system has already processed, allowing the system to serve its own encoding needs by recycling its own data rather than requiring external reference information or complex inter-frame processing

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10986361B2Video coding using reference motion vectors
Publication Date: 2021.04.20 GOOGLE LLC
  • US10986361B2 patent drawing
  • US10986361B2 patent drawing
  • US10986361B2 patent drawing

AI summary

Decoding a video sequence may include generating decoded video data by decoding encoded video data from an encoded bitstream, wherein decoding the encoded video data includes identifying candidate reference motion vectors used to decode previously decoded blocks, identifying reconstructed pixel values from a block spatially adjacent to a current block in the current frame, for each candidate reference motion vector, determining a respective score based on a difference between the reconstructed pixel values and pixel values obtained using the candidate reference motion vector, identifying a candidate reference motion vector having the minimal score from the candidate reference motion vectors as the reference motion vector, decoding a motion vector from the encoded bitstream using the reference motion vector, and decoding the current block from the encoded bitstream using the motion vector.