Patent classifications
H04N19/43
Video Coding Using Intra Block Copy
A method for decoding encoded blocks of pixels from an encoded video bit stream is provided that includes decoding a block vector corresponding to an encoded block of pixels from the encoded bit stream, verifying that the block vector indicates a block of reconstructed pixels in a search area including reconstructed pixels of a largest coding unit (LCU) including the encoded block of pixels and N left neighboring reconstructed LCUs of the LCU, and decoding the encoded block of pixels, wherein the block of reconstructed pixels is used as a predictor for the encoded block of pixels.
Video decoding implementations for a graphics processing unit
Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the areas of inverse transforms, inverse quantization, fractional interpolation, intra prediction using waves, loop filtering using waves, memory usage and/or performance-adaptive loop filtering. Innovations are also described in the areas of error handling and recovery, determination of neighbor availability for operations such as context modeling and intra prediction, CABAC decoding, computation of collocated information for direct mode macroblocks in B slices, reduction of memory consumption, implementation of trick play modes, and picture dropping for quality adjustment.
Video decoding implementations for a graphics processing unit
Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the areas of inverse transforms, inverse quantization, fractional interpolation, intra prediction using waves, loop filtering using waves, memory usage and/or performance-adaptive loop filtering. Innovations are also described in the areas of error handling and recovery, determination of neighbor availability for operations such as context modeling and intra prediction, CABAC decoding, computation of collocated information for direct mode macroblocks in B slices, reduction of memory consumption, implementation of trick play modes, and picture dropping for quality adjustment.
Video decoding implementations for a graphics processing unit
Video decoding innovations for multithreading implementations and graphics processor unit (“GPU”) implementations are described. For example, for multithreaded decoding, a decoder uses innovations in the areas of layered data structures, picture extent discovery, a picture command queue, and/or task scheduling for multithreading. Or, for a GPU implementation, a decoder uses innovations in the areas of inverse transforms, inverse quantization, fractional interpolation, intra prediction using waves, loop filtering using waves, memory usage and/or performance-adaptive loop filtering. Innovations are also described in the areas of error handling and recovery, determination of neighbor availability for operations such as context modeling and intra prediction, CABAC decoding, computation of collocated information for direct mode macroblocks in B slices, reduction of memory consumption, implementation of trick play modes, and picture dropping for quality adjustment.
VIDEO ENCODING AND DECODING
Motion vectors of a first reference frame are permitted to point to a plurality of further reference frames. A method of storing the motion vectors comprises, when a block of the first reference frame has two motion vectors (V2A, V2B) initially, selecting one of the two motion vectors, the non-selected motion vector not being stored. The selected motion vector may be scaled. This can reduce the motion vector memory size.
VIDEO ENCODING AND DECODING
Motion vectors of a first reference frame are permitted to point to a plurality of further reference frames. A method of storing the motion vectors comprises, when a block of the first reference frame has two motion vectors (V2A, V2B) initially, selecting one of the two motion vectors, the non-selected motion vector not being stored. The selected motion vector may be scaled. This can reduce the motion vector memory size.
Saving minimum macroblock data for subsequent encoding of other macroblocks
A video encoder including a first buffer containing a plurality of data values defining a macroblock of pixels of a video frame. The video encoder also includes a second buffer and an entropy encoder coupled to the first and second buffers and configured to encode a macroblock based on another macroblock. The entropy encoder identifies a subset of the data values from the first buffer defining a given macroblock and copies the identified subset to the second buffer, the subset of data values being just those data values used by the entropy encoder when subsequently encoding another macroblock.
Saving minimum macroblock data for subsequent encoding of other macroblocks
A video encoder including a first buffer containing a plurality of data values defining a macroblock of pixels of a video frame. The video encoder also includes a second buffer and an entropy encoder coupled to the first and second buffers and configured to encode a macroblock based on another macroblock. The entropy encoder identifies a subset of the data values from the first buffer defining a given macroblock and copies the identified subset to the second buffer, the subset of data values being just those data values used by the entropy encoder when subsequently encoding another macroblock.
Method and apparatus for processing video signal based on history based motion vector prediction
The disclosure discloses a method for processing video signals and an apparatus therefor. Specifically, the method of processing video signals based on inter prediction, comprising: configuring a merge candidate list based on a spatial neighboring block and a temporal neighboring block to a current block; adding a history-based merge candidate of the current block to the merge candidate list; obtaining a merge index indicating a merge candidate used for an inter prediction of the current block within the merge candidate list; generating a prediction sample of the current block based on motion information of the merge candidate indicated by the merge index; and updating a history-based merge candidate list based on the motion information.
Methods and Apparatuses of High Throughput Video Encoder
Video encoding methods and apparatuses for performing rate-distortion optimization by a hierarchical architecture include receiving input data associated with a current block in a current picture, determining a block partitioning structure to split the current block into coding blocks and determining a corresponding coding mode for each coding block by multiple Processing Element (PE) groups, and entropy encoding the coding blocks in the current block according to the coding modes determined by the PE groups. Each PE group has parallel PEs and is associated with a particular block size. The parallel PEs in each PE group test a number of coding modes on each partition or sub-partition of the current block to derive rate-distortion costs. The block partitioning structure and corresponding coding modes are then decided based on the rate-distortion costs derived by the PE groups.