Abstract:
Blocks of a frame of a video stream can be encoded using intra prediction followed by transforming the generated residual blocks. In some cases, coding efficiency can be improved by subdividing large blocks into smaller sub-blocks. Transform modes may be associated with at least one intra prediction mode so as to identify one or more transform modes for the block or its sub-blocks. A scan mode can be identified based on the transform mode. Desirably, each of a plurality of probability models is associated with a transform mode and a block size such that the appropriate model(s) may be selected for a block or its sub-blocks. Each probability model may be associated with only one transform mode and only one block size or may be associated with more than one transform mode and/or more than one block size and may be updated on-the-fly during encoding of a video stream.
Abstract:
A block of a video frame may be predicted and encoded using a local affine motion prediction scheme. At least three points within the video frame are selected, each point being adjacent to a respective corner of the current block to be encoded. For each point, a motion search is performed for a template block centered about the point within a reference frame to find a template reference block. The template reference block has a center point that forms an anchor point pair with the corresponding point adjacent to the current block. Using coordinates of the anchor point pairs, affine coefficients for an affine transformation are generated. Using the affine transformation, a prediction block for the current block is generated and used to encode the current block within a bitstream. Providing the local affine motion prediction scheme can improve the prediction of certain blocks with complex motion, increasing compression.
Abstract:
A method for encoding a transform block in an encoded video bitstream is provided. The method includes encoding a non-zero map indicating positions of the transform block containing non-zero transform coefficients, encoding a respective lower-range level map, and encoding a coefficient residual map. A lower-range level map indicates which values of the non-zero transform coefficients are equal to and which are greater than the map level. Each residual coefficient of the coefficient residual map corresponds to a respective non-zero transform coefficient of the transform block having an absolute value exceeding the maximum map level. An apparatus including a processor and a memory for decoding a transform block is also provided. The memory includes instructions executable by the processor to decode, a non-zero map, decode lower-range level maps up to a maximum map level, and decode a coefficient residual map.
Abstract:
A method and apparatus for video coding using alternating block constrained decision mode coding is provided. Video coding using alternating block constrained decision mode coding may include identifying a current block of a current frame of an input video stream, generating an encoded block by encoding the current block using alternating block constrained decision mode coding, wherein alternating block constrained decision mode coding includes encoding the current block as a constrained decision mode coded block on a condition that a previously coded immediately adjacent block is an unconstrained decision mode coded block, including the encoded block in an output bitstream, and transmitting or storing the output bitstream.
Abstract:
A method for encoding a transform block in an encoded video bitstream is provided. The method includes encoding a non-zero map indicating positions of the transform block containing non-zero transform coefficients, encoding a respective lower-range level map, and encoding a coefficient residual map. A lower-range level map indicates which values of the non-zero transform coefficients are equal to and which are greater than the map level. Each residual coefficient of the coefficient residual map corresponds to a respective non-zero transform coefficient of the transform block having an absolute value exceeding the maximum map level. An apparatus including a processor and a memory for decoding a transform block is also provided. The memory includes instructions executable by the processor to decode, a non-zero map, decode lower-range level maps up to a maximum map level, and decode a coefficient residual map.
Abstract:
Encoding and decoding using prediction dependent transform coding are provided. Encoding and decoding using prediction dependent transform coding may include identifying a current input block from a current input frame from an input video stream, generating a prediction block for the current input block, generating a residual block based on a difference between the current input block and the prediction block, generating, by a processor in response to instructions stored on a non-transitory computer readable medium, an encoded block by encoding the residual block based on the prediction block using the using prediction dependent transform coding, including the encoded block in an output bitstream, and outputting or storing the output bitstream.
Abstract:
Decoding a current frame from an encoded video stream may include identifying a current transform block for decoding the current frame, the current transform block having a first transform block size, generating a reconstructed frame corresponding to the current frame, the current transform block corresponding to a first portion of the reconstructed frame, identifying a first boundary between the first portion and a second portion of the reconstructed frame, the second portion corresponding to a first adjacent transform block that is adjacent to the current transform block, the first adjacent transform block having a second transform block size, identifying first loop filter candidates based on the first transform block size, identifying a first loop filter from the first loop filter candidates based on the second transform block size, and filtering pixels from the reconstructed frame along the first boundary using the first loop filter.
Abstract:
A block of video data can be encoded using intra prediction followed by transforming the generated residual block where the transform size is different from the prediction size. A plurality of transform modes for the residual block is provided whereby the transform subblocks of the residual block are transformed using horizontal and vertical one-dimensional transform types. The transform types may be selected such that their base function corresponds to a pattern in the data of the generated residual block resulting from the intra prediction mode. As a result, the position of each block relative to the peripheral pixels used to generate a prediction block for the block may be used to select the transform types.
Abstract:
A system includes an encoder and a decoder. The encoder selects a first matched template for un-encoded pixels of a video frame using an algorithm for measuring a similarity between image blocks of the video frame, the algorithm being based on a weighted scheme of reconstructed adjacent pixels, generates at least one residual for the un-encoded pixels of the video frame based on the matched template, and encodes residuals as compressed bits using an asymmetric discrete sine transform (ADST). The decoder decodes the compressed video bits as residuals using the ADST, selects a second matched template using an algorithm for measuring a similarity between image blocks of a video frame associated with the compressed video bits, the algorithm being based on a weighted scheme of reconstructed adjacent pixels, and generates reconstructed pixels of the video frame based on the matched template and the decoded compressed video bits.
Abstract:
A method and system may identify a video data block using a video codec and apply a transform kernel of a butterfly asymmetric discrete sine transform (ADST) to the video data block in a pipeline.