Abstract:
Motion vectors are predicted for a current block of a current frame using motion vectors from previous frames in the video stream. Temporal distances between a current frame and the one or more reference frames used to predict a current block and temporal distances between the previous frame and its reference frames are determined. Temporal distances for current frames and previous frames can be combined to weight the motion vectors and improve motion vector prediction.
Abstract:
Encoding and decoding using advance coded reference prediction may include identifying a sequence of temporally adjacent frames from the plurality of frames, wherein each frame in the sequence of temporally adjacent frames is associated with a respective frame position indicating a temporal location the sequence, encoding a first frame from the sequence as an intra-coded frame, generating an alternate reference frame by reconstructing the first encoded frame, encoding a second frame from the sequence with reference to a reference frame, the second frame associated with a second frame position, including the first encoded frame in a compressed bitstream at a first bitstream position, and including the second encoded frame in the compressed bitstream at a second bitstream position, wherein the second bitstream position is later than the first bitstream position and wherein the first frame position is later than the second frame position.
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 mask is generated from a residual that is a difference between pixel values of at least two frames other than a current frame in a video sequence. The mask is then used to encode or decode a current block by inter-prediction. The mask forms an edge of an object within its bounds and can be used to combine different portions of a reference frame into a single block. This can increase coding efficiency.
Abstract:
Second-order orthogonal spatial intra-prediction may include generating a reconstructed frame by generating a plurality of reconstructed blocks by decoding a portion of the current encoded frame, generating a decoded residual block by decoding a current block from the current encoded frame, identifying a current pixel location in the current block, identifying reconstructed pixels in respective reconstructed blocks, wherein first and second reconstructed pixels are at respective oblique angle to the current pixel location, and a third reconstructed pixel at the second oblique angle to the first reconstructed pixel or at the first oblique angle to the second reconstructed pixel, determining a predictor pixel for the current pixel location using a difference between the third reconstructed pixel and a sum of the first reconstructed pixel and the second reconstructed pixel, and identifying a reconstructed pixel as a sum of the predictor pixel and a corresponding residual pixel.
Abstract:
Techniques described use a reference motion vector to reduce the amount of bits needed to encode motion vectors for inter prediction. One method includes determining a reference motion vector used to encode a current block of a current frame. The reference motion vector was selected by identifying, multiple candidate motion vectors used to inter predict blocks, and identifying a set of reconstructed pixel values from at least one block adjacent to the current block. For each candidate motion vector, a set of predicted pixel values for the set of reconstructed pixel value is generated using the candidate motion vector and a first reference frame, and an error value is calculated based on a difference between the sets of pixel values. Finally, a reference motion vector from the candidates is selected based on the error values. The method also includes decoding the current block using the reference motion vector.
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:
Decoding an encoded video stream may include generating, by a processor in response to instructions stored on a non-transitory computer readable medium, a decoded video for presentation to a user, and outputting the decoded video. Generating the decoded video may include receiving an encoded video stream, generating a decoded constructed reference frame by decoding an encoded constructed reference frame from the encoded video stream, generating a decoded current frame by decoding an encoded current frame from the encoded video stream using the decoded constructed reference frame as a reference frame, and including the decoded current frame in the decoded video such that the decoded constructed reference frame is omitted from the decoded video.
Abstract:
An apparatus for decoding frames of a compressed video data stream having at least one frame divided into partitions, includes a memory and a processor configured to execute instructions stored in the memory to read partition data information indicative of a partition location for at least one of the partitions, decode a first partition of the partitions that includes a first sequence of blocks, decode a second partition of the partitions that includes a second sequence of blocks identified from the partition data information using decoded information of the first partition.
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.