Reduction of visual artifacts in parallel video coding
AssigneeIntel Corporation
InventorsSergei Plotnikov, Jason Tanner
Life of this patent
Estimating the term…
Abstract
Techniques related to reduction of artifacts in parallel block coding mode selection for video are discussed. Such techniques include, for blocks along a parallel processing split boundary of a video frame, coding mode selection that divides a block into sub-blocks, performs motion estimation for the sub-blocks with skip check disabled and using distortion and coefficient coding cost but exclusive of motion vector coding cost, and evaluates a skip check for the block using the sub-block motion vectors.
Claims17
A device for video coding, comprising:
- a memory to store a video;
- and
- one or more processors coupled to the memory, the one or more processors to:
- select first and second coding modes for first and second blocks of a video frame, respectively, at least partially in parallel, wherein the first block is immediately adjacent to a parallel processing split boundary of the video frame, wherein the parallel processing split boundary comprises a wavefront parallel processing split boundary that defines parallel coding mode processing for first blocks above and to the left of the wavefront parallel processing split boundary with second blocks below and to the right of the wavefront parallel processing split boundary, and wherein the one or more processors to select the coding mode for the first block comprises the one or more processors to:
- divide the first block into a plurality of sub-blocks;
- perform, for each of the sub-blocks, motion estimation comprising disablement of skip check for each of the sub-blocks and evaluation of candidate motion vectors for each of the sub-blocks using sub-block to candidate sub-block distortion and transformed and quantized coefficient coding cost but exclusive of motion vector coding cost to select a resultant candidate motion vector for each of the sub-blocks;
- evaluate skip check for the first block using each of the resultant candidate motion vectors for the sub-blocks;
- and
- determine the first coding mode based at least in part on the resultant candidate motion vectors for the sub-blocks and the skip check evaluation for the first block;
- and
- code the first and second blocks using the selected first and second coding modes to generate a bitstream.
A method for video coding comprising:
- selecting first and second coding modes for first and second blocks of a video frame, respectively, at least partially in parallel, wherein the first block is immediately adjacent to a parallel processing split boundary of the video frame, wherein the parallel processing split boundary comprises a wavefront parallel processing split boundary that defines parallel coding mode processing for first blocks above and to the left of the wavefront parallel processing split boundary with second blocks below and to the right of the wavefront parallel processing split boundary, and wherein selecting the coding mode for the first block comprises:
- dividing the first block into a plurality of sub-blocks;
- performing, for each of the sub-blocks, motion estimation comprising disablement of skip check for each of the sub-blocks and evaluation of candidate motion vectors for each of the sub-blocks using sub-block to candidate sub-block distortion and transformed and quantized coefficient coding cost but exclusive of motion vector coding cost to select a resultant candidate motion vector for each of the sub-blocks;
- evaluating skip check for the first block using each of the resultant candidate motion vectors for the sub-blocks;
- and
- determining the first coding mode based at least in part on the resultant candidate motion vectors for the sub-blocks and the skip check evaluation for the first block;
- and
- coding the first and second blocks using the selected first and second coding modes to generate a bitstream.
At least one non-transitory machine readable medium comprising a plurality of instructions that, in response to being executed on a computing device, cause the computing device to code video by:
- selecting first and second coding modes for first and second blocks of a video frame, respectively, at least partially in parallel, wherein the first block is immediately adjacent to a parallel processing split boundary of the video frame, wherein the parallel processing split boundary comprises a wavefront parallel processing split boundary that defines parallel coding mode processing for first blocks above and to the left of the wavefront parallel processing split boundary with second blocks below and to the right of the wavefront parallel processing split boundary, and wherein selecting the coding mode for the first block comprises:
- dividing the first block into a plurality of sub-blocks;
- performing, for each of the sub-blocks, motion estimation comprising disablement of skip check for each of the sub-blocks and evaluation of candidate motion vectors for each of the sub-blocks using sub-block to candidate sub-block distortion and transformed and quantized coefficient coding cost but exclusive of motion vector coding cost to select a resultant candidate motion vector for each of the sub-blocks;
- evaluating skip check for the first block using each of the resultant candidate motion vectors for the sub-blocks;
- and
- determining the first coding mode based at least in part on the resultant candidate motion vectors for the sub-blocks and the skip check evaluation for the first block;
- and
- coding the first and second blocks using the selected first and second coding modes to generate a bitstream.
Dependencies are inferred from the claim text.