Abstract:
A video decoder, method and computer program product allow for processing of a video frame encoded in rectangular tiles. An interface receives a bit stream in tile order within a video frame that was encoded into rectangular tiles. A processor decodes the video frame while respecting dependency breaks at tile boundaries; the rectangular tiles include an integer number of two-dimensional blocks of pixels. A tile shape is defined by N×M two-dimensional blocks of pixels, respective values of N and M need not be identical for each of the rectangular tiles, and information regarding tile shape for each tile being conveyed from an encoder to the decoder. The decoder determines N and M for each tile from the information, and tiles have dependency breaks therebetween.
Abstract:
Video transform coefficient encoding and decoding methods are provided. A two-dimensional array of quantized transform coefficients are obtained for a block of a video frame. The two-dimensional array of quantized transform coefficients are converted to a one-dimensional array of integer samples using a scan pattern, wherein each sample is represented with a level that is an absolute value of the sample and a sign bit if the level is greater than zero. The one-dimensional array of samples is converted to a bit-stream by processing the one-dimensional array of samples in sequential order. A switch is adaptively made between multiple coding modes, where each coding mode is characterized by how consecutive coefficients are jointly coded as a single event. For each mode, a switch may be adaptively made between various variable length code (VLC) tables.
Abstract:
Techniques for direct mode video coding/decoding techniques. According to one embodiment, various blocks in B frames may use motion vectors from different reference frames (P frames or B frames), according to what is referred to herein as a patchwork motion field. Different blocks of a given frame may use motion vectors inherited from different frames for purposes of computing a predicted block for the given frame.
Abstract:
A video coding/decoding system, method and computer program product employ an integer transform matrix for transforming to/from transform coefficients and residual pixel data in moving pictures by a set of semi-orthonormal basis vectors. The basis vectors are derived from conventional DCT or KTL matrixes, but relaxes to some extent the requirements for orthogonality, norm equality and element size limitation. In this way improved coding efficiency and lower complexity compared to previously used integer transforms are possible.
Abstract:
Techniques for direct mode video coding/decoding techniques. According to one embodiment, various blocks in B frames may use motion vectors from different reference frames (P frames or B frames), according to what is referred to herein as a patchwork motion field. Different blocks of a given frame may use motion vectors inherited from different frames for purposes of computing a predicted block for the given frame.
Abstract:
A target sample x(i,j) of a two-dimensional array of reconstructed samples is filtered based on values of samples in a neighboring region of the target sample to produce a two-dimensional array of modified reconstructed samples, according to the equation: y(i,j)=round(x(i,j)+g(Σm,n∈Ra(m,n)ƒ(x(i,j)−b(m,n)x(m,n)))), where y(i,j) is a modified target sample value, R is the neighboring region of the target sample, a(m,n) and b(m,n) are real-valued coefficients, round(x) is a function that maps the value x to an integer value in the range [0,2B−1], B is the number of bits representing each sample of the two-dimensional array of modified reconstructed samples, ƒ(x) and g(x) are functions, wherein (a) ƒ(x) is a non-linear function, or (b) g(x) is a non-linear function and both a width and a height of R is more than one sample.
Abstract:
A target sample x(i,j) of a two-dimensional array of reconstructed samples is filtered based on values of samples in a neighboring region of the target sample to produce a two-dimensional array of modified reconstructed samples, according to the equation: y(i,j)=round (x(i, j)+g(Σm,n∈Ra(m, n)f(x(i,j)−b(m,n)x(m,n)))), where y(i,j) is a modified target sample value, R is the neighboring region of the target sample, a(m,n) and b(m,n) are real-valued coefficients, round(x) is a function that maps the value x to an integer value in the range [0,2B-1], B is the number of bits representing each sample of the two-dimensional array of modified reconstructed samples, f(x) and g(x) are functions, wherein (a) f(x) is a non-linear function, or (b) g(x) is a non-linear function and both a width and a height of R is more than one sample.
Abstract:
Techniques for direct mode video coding/decoding techniques. According to one embodiment, various blocks in B frames may use motion vectors from different reference frames (P frames or B frames), according to what is referred to herein as a patchwork motion field. Different blocks of a given frame may use motion vectors inherited from different frames for purposes of computing a predicted block for the given frame.
Abstract:
A target sample x(i,j) of a two-dimensional array of reconstructed samples is filtered based on values of samples in a neighboring region of the target sample to produce a two-dimensional array of modified reconstructed samples, according to the equation: y(i,j)=round(x(i,j)+g(Σm,n∈Ra(m,n)ƒ(x(i,j)−b(m,n)×(m,n)))), where y(i,j) is a modified target sample value, R is the neighboring region of the target sample, a(m,n) and b(m,n) are real-valued coefficients, round(x) is a function that maps the value x to an integer value in the range [0,2B−1], B is the number of bits representing each sample of the two-dimensional array of modified reconstructed samples, ƒ(x) and g(x) are functions, wherein (a) ƒ(x) is a non-linear function, or (b) g(x) is a non-linear function and both a width and a height of R is more than one sample.
Abstract:
A block of size N×M of a video frame can be either split into smaller blocks in n different ways (e.g. horizontal, vertical, quad, etc.), or alternatively it can be coded using one out of m different coding modes (e.g. intra, inter, bi-prediction, etc.). Since splitting into smaller sub-blocks and coding the N×M block in one of the m possible ways are mutually exclusive, there are n+m distinct possibilities for processing the block further. The n+m possible ways of processing the N×M blocks are assigned a code (e.g., a number) and coded with a codeword derived from a VLC table. This achieves efficient combined coding of split information and other block-level parameters.