Camera Motion Vector Pre-computation for Video Compression Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Block motion estimation in digital video compression is computationally intensive, posing challenges for real-time video processing in webcams used for Internet communications, where pre-processing can only generate limited motion vectors for basic functions.

Innovation Solution

A camera computes motion vectors and associated metadata, which are then used directly or as seeds in the video compression engine's algorithms to reduce complexity and enhance compression efficiency, allowing for faster and more efficient video compression with lower computational requirements for the computing platform.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If block motion estimation is performed in the video compression engine, then compression efficiency is improved, but computational complexity increases

Engineering Contradiction:
Improvecompression efficiencyVSAvoidcomputational complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The camera performs preliminary motion estimation and generates motion vectors before video compression. This preliminary action reduces the computational burden on the video compression engine, as it can use the pre-computed motion vectors directly or as seeds for refined estimation, thereby maintaining compression efficiency while reducing complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The motion estimation function is extracted from the video compression engine and relocated to the camera. This separation allows the camera to handle the computationally intensive motion estimation task using its own processor, while the video compression engine focuses on compression operations, thus reducing overall system complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

2Speed

If motion estimation is performed in real-time in webcams, then real-time video processing is achieved, but computational load increases

Engineering Contradiction:
Improvereal-time processing speedVSAvoidcomputational load
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

Motion vectors are computed in advance by the camera's processor before video frames are transmitted for compression. This preliminary computation enables real-time processing at the compression stage while distributing the computational load to the camera device, reducing the energy burden on the receiving system.

Inventive Principle:
Principle #10Preliminary action

3Ease of manufacture

If pre-processing is performed by webcam processor, then basic motion vectors are generated, but functionality is limited to basic parameters

Engineering Contradiction:
Improvepre-processing capabilityVSAvoidmotion vector functionality
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The camera's processor is designed to perform multiple functions: it not only generates basic motion vectors for compression but also produces motion vectors for face tracking and other advanced features. This multi-functionality allows a single pre-processing stage to serve multiple purposes, enhancing versatility without requiring separate processing systems.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8571106B2Digital video compression acceleration based on motion vectors produced by cameras
Publication Date: 2013.10.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8571106B2 patent drawing
  • US8571106B2 patent drawing
  • US8571106B2 patent drawing

AI summary

Architecture for accelerating video compression by using the motion vectors produced locally by a camera is disclosed. Video frames are captured by the camera (e.g., a webcam) which also computes a motion vector for the frames. Metadata can also be generated that represent an index of motion quality associated with the motion vector. The motion vector is passed to a video compression engine which selectively uses the motion vector directly or alternatively as a seed for a compression and encoding algorithm. This algorithm produces a compressed video frame representing a motion estimate having a selected motion quality index value. In this way, complexity is reduced in the video compression engine, resulting in faster and more efficient video compression. Alternatively, the webcam sends a compressed video bitstream to reduce throughput on the connection and the receiving computing system processes residual information to derive an estimate of the quality index for each macroblock/kernel.