Screen Remoting Motion Estimation via Pivot Hashing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional motion estimation techniques for video encoding in screen remoting scenarios are inefficient, particularly when dealing with screen capture content involving scrolling or window movement, as they consume significant processing resources and fail to detect large magnitude movements effectively, leading to increased latency and reduced compression efficiency.
Innovation Solution
A video encoder uses innovative methods such as finding pivot points with hashing functions, calculating derivative sample values, focusing on changed regions, and utilizing global motion metadata to speed up motion estimation while accurately detecting uniform motion, thereby reducing the need for block-based comparisons and improving encoding efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If conventional block-based motion estimation is used for screen capture video, then motion detection can be performed, but processing complexity and time consumption increase significantly
Solution Approach 1:
The screen capture video is divided into multiple blocks, and motion estimation is performed independently for each block. This segmentation allows the system to process only relevant regions with potential motion, rather than analyzing the entire frame, thereby reducing overall processing complexity while maintaining motion detection accuracy.
Solution Approach 2:
Different motion estimation strategies are applied to different blocks based on their characteristics. Blocks identified as containing motion (through techniques like checking for non-zero coefficients or variance thresholds) receive more detailed analysis, while static blocks use simpler methods. This local differentiation optimizes the balance between accuracy and computational cost.
2Measurement precision
If conventional block-based motion estimation is used for screen capture video, then motion detection can be performed, but encoding time increases
Solution Approach 1:
The system performs preliminary analysis on blocks to identify those containing motion before applying full motion estimation. Techniques such as checking for non-zero transform coefficients or calculating variance thresholds serve as preliminary filters that quickly identify candidate blocks, avoiding unnecessary computation on static regions and significantly reducing overall encoding time.
Solution Approach 2:
Blocks determined to be static or containing no significant motion are skipped over using simpler encoding paths. The system rushes through these regions with minimal processing (e.g., using direct copy or simple intra-prediction) rather than applying computationally intensive motion estimation, thereby reducing encoding time while maintaining sufficient quality.
3Quantity of substance
If conventional block-based motion estimation is used for screen capture video, then compression can be applied, but compression efficiency decreases
Solution Approach 1:
The system dynamically adjusts motion estimation parameters such as block size, search range, and precision levels based on the detected motion characteristics. For regions with large magnitude motion (common in screen capture), the system adapts parameters to improve detection accuracy, while for static regions it uses more aggressive compression settings, optimizing the balance between compression efficiency and motion detection precision.
Data Source
AI summary
Innovations in motion estimation adapted for screen remoting scenarios are described herein. For example, as part of motion estimation for a current picture, a video encoder finds a pivot point in the current picture, calculates a hash value for the pivot point, and searches for a matching area in a previous picture. In doing so, the video encoder can calculate a hash index from the hash value and look up the hash index in a data structure to find candidate pivot points in the previous picture. The video encoder can compare the hash value for the pivot point in the current picture to a hash value for a candidate pivot point in the previous picture and, when the hash values match, compare sample values around the respective pivot points. In this way, the video encoder can quickly detect large areas of exact-match blocks having uniform motion.


