Video coding using adaptive source variance based partitioning
First Claim
1. A method, comprising:
- periodically sampling a plurality of frames of a video stream to obtain a current frame for partitioning at a frame interval;
performing source difference variance based partitioning of the current frame, the source difference variance based partitioning including, for each block of a plurality of blocks of the current frame;
partitioning the block into a plurality of first partitioned blocks having a first partition size, the block having a size at least as large at the first partition size and the first partition size corresponding to one of at least two available partition sizes;
for each first partitioned block having the first partition size;
calculating a variance value based on differences between pixels of the first partitioned block and pixels of a spatially correspondent block in a previous frame;
if the variance value for the first partitioned block is within a first defined range, selecting the first partition size for the pixels of the first partitioned block; and
if the variance value for the first partitioned block is outside the first defined range, selecting a smaller partition size than the first partition size for the pixels of the first partitioned block;
partitioning the current frame according to one or more selected partition sizes for each of the plurality of blocks to form a partitioned current frame; and
encoding the partitioned current frame for inclusion in a bitstream.
2 Assignments
0 Petitions
Accused Products
Abstract
Frames of a video stream can be partitioned using source difference variance based partitioning before encoding. Variances between blocks of a current video frame and blocks of a previous unencoded video frame are determined. The current video frame can be partitioned into varying block sizes depending upon the magnitude of the variances. Blocks with low variance may be combined with other low variance blocks to form larger blocks, while blocks with high variance may be further partitioned into smaller blocks to improve encoding efficiency of the blocks. In cases where partitioning of a frame is unlikely to provide improved efficiency, the variation calculations may be skipped in favor of using fixed partitioning.
-
Citations
20 Claims
-
1. A method, comprising:
-
periodically sampling a plurality of frames of a video stream to obtain a current frame for partitioning at a frame interval; performing source difference variance based partitioning of the current frame, the source difference variance based partitioning including, for each block of a plurality of blocks of the current frame; partitioning the block into a plurality of first partitioned blocks having a first partition size, the block having a size at least as large at the first partition size and the first partition size corresponding to one of at least two available partition sizes; for each first partitioned block having the first partition size; calculating a variance value based on differences between pixels of the first partitioned block and pixels of a spatially correspondent block in a previous frame; if the variance value for the first partitioned block is within a first defined range, selecting the first partition size for the pixels of the first partitioned block; and if the variance value for the first partitioned block is outside the first defined range, selecting a smaller partition size than the first partition size for the pixels of the first partitioned block; partitioning the current frame according to one or more selected partition sizes for each of the plurality of blocks to form a partitioned current frame; and encoding the partitioned current frame for inclusion in a bitstream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 18)
-
-
11. An apparatus, comprising:
-
a memory; and a processor configured to execute instructions stored in the memory to; periodically sample a plurality of frames of a video stream to obtain a current frame for partitioning at a frame interval; perform source difference variance based partitioning of the current frame, the source difference variance based partitioning including, for each block of a plurality of blocks of the current frame; partitioning the block into a plurality of first partitioned blocks having a first partition size, the block having a size at least as large at the first partition size and the first partition size corresponding to one of at least two available partition sizes; for each first partitioned block having the first partition size; calculating a variance value based on differences between pixels of the first partitioned block and pixels of a spatially correspondent block in a previous frame; if the variance value for the first partitioned block is within a first defined range, selecting the first partition size for the pixels of the first partitioned block; and if the variance value for the first partitioned block is outside the first defined range, selecting a smaller partition size than the first partition size for the pixels of the first partitioned block; partition the current frame according to one or more selected partition sizes for each of the plurality of blocks to form a partitioned current frame; and encode the partitioned current frame for inclusion in a bitstream. - View Dependent Claims (12, 13, 14, 15, 16, 17, 19, 20)
-
Specification