Block Level Geometric Partitioning for Video Encoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video compression technologies face challenges in efficiently encoding and decoding video data due to high computational complexity and inefficiencies in block partitioning methods, particularly when dealing with non-rectangular regions and pixel-level geometric partitioning, which increases processing power and memory access times.
Innovation Solution
Implementing block-level geometric partitioning, where a rectangular block is divided into non-overlapping rectangular sub-blocks and further partitioned into non-rectangular regions using line segments characterized by indices, reducing the number of possible partitions and improving computational efficiency by signaling starting and ending sub-block indices in the bitstream.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If pixel-level geometric partitioning is used to divide blocks into non-rectangular regions, then motion representation accuracy is improved, but encoding and decoding complexity increases significantly
Solution Approach 1:
The patent divides a block into multiple rectangular sub-blocks first, then applies geometric partitioning only at the sub-block level rather than at the pixel level. This segmentation approach reduces the computational complexity while maintaining motion representation accuracy by allowing different motion vectors for different sub-block regions.
Solution Approach 2:
The patent introduces a new dimension of partitioning by combining traditional rectangular block division with geometric line-based partitioning. By adding the geometric partitioning dimension at the sub-block level, the patent achieves more accurate motion representation without the full complexity of pixel-level geometric partitioning.
2Productivity
If pixel-level geometric partitioning is applied to all blocks, then compression efficiency is improved, but processing power requirements and memory access times increase
Solution Approach 1:
The patent applies geometric partitioning selectively to specific sub-blocks rather than uniformly to all blocks. By identifying regions that benefit from geometric partitioning and applying the technique locally, the patent improves compression efficiency for those specific areas while reducing overall processing power requirements and memory access times.
Solution Approach 2:
The patent implements partial geometric partitioning by applying the technique to only certain sub-blocks within a block rather than to all pixels. This partial action approach maintains the compression efficiency benefits where needed while avoiding the excessive processing power and memory access requirements of full pixel-level application.
3Manufacturing precision
If the number of possible partitions is increased to improve motion representation, then encoding precision is improved, but the complexity of determining optimal partitions increases
Solution Approach 1:
The patent segments the block into multiple rectangular sub-blocks and applies geometric partitioning at this coarser level rather than at the pixel level. This segmentation reduces the number of possible partitions that need to be evaluated, thereby reducing the complexity of determining optimal partitions while maintaining encoding precision through the use of multiple sub-blocks with different motion vectors.
Solution Approach 2:
The patent employs dynamic selection of partitioning modes by evaluating both rectangular and geometric partitioning options at the sub-block level. This dynamic approach allows the encoder to choose the most appropriate partitioning method for each sub-block based on local characteristics, improving encoding precision without exhaustively searching all possible pixel-level partitions.
Data Source
AI summary
A decoder is configured to decode a bitstream having a block based geometric partition having a plurality of orthogonal block boundaries by assigning a first plurality blocks on one side of an angled line segment a first common motion vector and by assigning a second plurality of blocks on the other side of the angled line segment a second common motion vector different than the first common motion vector. The decoder reconstructs the first plurality of blocks using the first common motion vector and the blocks in the second plurality of blocks using the second common motion vector.


