Motion Vector Sign Bit Hiding in Video Encoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current video encoding standards, such as H.264 and the developing HEVC/H.265, face challenges in efficiently encoding and decoding motion vectors due to the need to explicitly encode sign bits, which increases complexity and reduces compression efficiency.
Innovation Solution
The method involves sign bit hiding by inferring the sign of motion vector difference components based on parity calculations, reducing the search space for motion vectors and eliminating the need to encode sign bits, thereby simplifying the encoding process and improving compression efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If sign bits are explicitly encoded for motion vector difference components, then the motion vector information is complete and accurate, but the bitstream size increases and compression efficiency decreases
Solution Approach 1:
The patent extracts and removes the sign bit from the explicit encoding process. Instead of encoding the sign bit separately in the bitstream, the sign information is derived implicitly through parity checking of the magnitude bits. This extraction eliminates redundant sign bit transmission while preserving complete motion vector information through the relationship between magnitude parity and sign determination.
Solution Approach 2:
The magnitude bits serve a dual function: they represent the absolute value of the motion vector difference component and simultaneously provide parity information that enables sign determination. The magnitude encoding itself generates the information needed for sign recovery, making the system self-sufficient without requiring separate sign bit encoding.
2Loss of information
If sign bits are explicitly encoded for motion vector difference components, then the motion vector information is complete and accurate, but the encoder complexity increases
Solution Approach 1:
The patent removes the sign bit encoding operation from the encoder workflow. The encoder only needs to encode the magnitude of the motion vector difference component, and the sign bit generation is automatically handled at the decoder side through parity checking, thereby simplifying the encoder's functional requirements.
Solution Approach 2:
The decoder uses the magnitude bits themselves to generate the sign information through parity checking, eliminating the need for the encoder to perform separate sign bit generation and insertion operations. The system leverages the existing magnitude encoding to serve the additional function of sign information provision.
3Loss of information
If sign bits are explicitly encoded for motion vector difference components, then the motion vector information is complete and accurate, but the decoding process becomes more complex
Solution Approach 1:
The decoder performs parity checking on the decoded magnitude bits to automatically determine the sign of the motion vector difference component. This self-service mechanism uses the already-decoded magnitude information to generate the sign bit, eliminating the need for separate sign bit decoding operations and simplifying the overall decoding process.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Methods of encoding and decoding for video data for encoding or decoding motion vector difference components for inter-coded video are described. The sign of one of the components is hidden within the parity of the sum of the magnitudes of the horizontal and vertical difference components. The sign of the other of the components is explicitly signaled in the bitstream. The hidden sign may be assigned to the larger in magnitude of the two components. In other cases, the hidden sign may always be assigned to the horizontal or vertical component. In another case, the hidden sign may always be assigned to one component, unless that component is zero, in which case the hidden sign is assigned to the other component. In another case, both components may have their signs hidden, in which case the sign hiding is based on their respective parity, rather than the parity of their sum.