Template-Matching Block Vector Prediction for Screen Content Coding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video encoding and decoding technologies face challenges in efficiently compressing and decompressing large video sequences, particularly for scenes with screen content, due to the high redundancy and complexity of computer-generated graphics, leading to inefficiencies in storage and transmission.
Innovation Solution
The implementation of template matching prediction (TMP) modes, which utilize candidate templates flipped in various directions to adjust block vectors for improved prediction accuracy and efficiency, particularly in intra and inter prediction processes, enhancing the coding and decoding of video sequences with screen content.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional video encoding methods are used for screen content, then encoding simplicity is maintained, but coding efficiency and compression ratio deteriorate due to high redundancy in computer-generated graphics
Solution Approach 1:
The patent segments the video content into different types (natural video vs. screen content) and applies different encoding strategies to each. For screen content, it further segments blocks into intra-blocks and inter-blocks, and divides inter-blocks into template-matched regions and non-template-matched regions, allowing optimized processing for each segment
Solution Approach 2:
The patent introduces template matching as an intermediary process between conventional prediction modes. Templates are generated from various sources (spatial neighbors, temporal references, flipped versions) and used as intermediaries to find matching blocks, enabling more efficient compression for screen content without requiring complete redesign of the encoding architecture
2Measurement precision
If template matching with flipped templates is implemented, then prediction accuracy for screen content improves, but computational complexity and processing time increase
Solution Approach 1:
The patent performs preliminary actions by generating multiple candidate templates (including flipped versions) in advance before the actual block matching process. These pre-generated templates are stored and readily available when needed, reducing the computational burden during the actual encoding/decoding process
Solution Approach 2:
The patent dynamically adjusts the template matching process by selectively applying flipped templates based on the block type and content characteristics. Not all blocks require flipped template matching, and the process adapts to different scenarios (intra vs. inter prediction, different block positions), optimizing the balance between accuracy and processing time
3Productivity
If multiple template types and flipped templates are used, then compression ratio for screen content improves, but device complexity and implementation difficulty increase
Solution Approach 1:
The patent applies different template strategies to different local regions and block types. Intra-blocks use spatial neighbor templates, inter-blocks use temporal reference templates, and specific regions may use flipped templates. This localized approach allows high compression ratios where needed while keeping the overall system manageable
Solution Approach 2:
The patent changes key parameters of the template matching process including template direction (original vs. flipped), template source (spatial vs. temporal), and matching criteria based on block type and content characteristics. These parameter changes enable adaptive optimization of compression ratio without requiring a completely complex system redesign
Data Source
AI summary
A previous block vector (BV) of a previous block is selected for coding a current block. The previous block was previously coded using template matching with templates flipped in a direction. The previous BV includes a first BV component along the direction and a second BV component not along the direction. A candidate block vector predictor (BVP) is determined that includes: a first BVP component set equal to the first BV component adjusted based on a distance, along the direction, between the centers of the previous block and the current block; and a second BVP component set equal to the second BV component. A BV of the current block is coded using a list of candidate BVPs including the candidate BVP.


