Abstract:
In general, techniques for coding video data are described. An example device for coding video data includes a memory configured to store at least a portion of the video data, and one or more processors. The one or more processors are configured to determine whether a palette run starts at a beginning of a scan-line of a block of the video data, when the palette run starts at the beginning of the scan-line, code, for the palette run, a flag that indicates whether the palette run concludes at an end of a scan-line of the block, and code the palette run based on a value of the flag.
Abstract:
Receiving a plurality of syntax elements that are indicative of a palette that was used to encode a block of video data, the plurality of syntax elements including a first syntax element that indicates a number of palette values for the palette that are explicitly signaled in the encoded video bitstream, wherein the first syntax element is encoded using one or more Golomb codes such that the length of the encoded first syntax element is less than or equal to a predetermined maximum number of bits, decoding the plurality of syntax elements, including decoding the first syntax element using the one or more Golomb codes, reconstructing the palette based on the decoded plurality of syntax elements, and decoding the block of video data using the reconstructed palette.
Abstract:
Techniques are described to extend palette-mode coding techniques to cases where chroma components are at a different resolution than luma components. The entries of the palette table includes three color values and the three color values or a single one of the three color values are selected based on whether a pixel includes both a luma component and chroma components or only a luma component.
Abstract:
Techniques for coding video data include determining that a block of a first component of the video data is intra-predicted using one of a DC mode, a horizontal mode, or a vertical mode, determining that a corresponding block of a second component of the video data is intra-predicted using the same mode as the block of the first component according to a direct mode to form a predicted block for the second component, and boundary filtering the predicted block in response to the determinations. In some examples, the first component is a luma component, and the second component is a chroma component.
Abstract:
A video decoder may obtain a syntax element from a bitstream comprising an encoded representation of a block of video data. The block comprises a series of runs, each of which may consist of one pixel or two or more consecutive pixels. Furthermore, the video decoder may obtain a set of palette run length syntax elements indicating lengths of one or more of the runs. The video decoder may determine, based on the syntax element, that the palette run length syntax elements do not include a palette run length syntax element indicating a length of the first run. Rather, the video decoder determines, based on the lengths indicated by the set of palette run syntax elements, the length of the first run. The video decoder may determine, based on the palette sample modes of the pixels, palette indices of the pixels, each indicating an entry in a palette.
Abstract:
An example method of decoding video data includes determining a palette for decoding a block, the palette including entries each having a respective palette index, determining a reference run of palette indices for first pixels of the block, and determining a current run of palette indices for second pixels of the block, based on the reference run. Determining the second plurality of palette indices includes locating a reference index of the reference run, the reference index being spaced at least one line from an initial index of the current run, determining a run length of the reference run, a final index of the reference run being separated from the initial index of the current run by at least one index, copying the palette indices of the reference run as the current run of palette indices, and decoding pixels of the copied current run using the palette.
Abstract:
In an example, a method of coding video data includes determining, by a video coder and for a block of video data, a palette having a plurality of entries indicating a plurality of respective color values, wherein a first line of the block of video data includes a pixel located adjacent to an edge of the block of video data, and wherein a second line of the block of video data includes a pixel located adjacent to the edge of the block and adjacent to the pixel of the first line. In this example, the method also includes coding, in a scan order, index values that map pixels of the block to entries in the palette, wherein the pixel of the second line immediately follows the pixel of the first line in the scan order.
Abstract:
According to aspects of this disclosure, a device for decoding video data includes a memory configured to store the video data and a video decoder comprising one or more processor configured to determine that a current block of the video data is to be decoded using a 1D dictionary mode; receive, for a current pixel of the current block, a first syntax element indicating a starting location of reference pixels and a second syntax element identifying a number of reference pixels; based on the first syntax element and the second syntax element, locate a plurality of luma samples corresponding to the reference pixels; based on the first syntax element and the second syntax element, locate a plurality of chroma samples corresponding to the reference pixels; and copy the plurality of luma samples and the plurality of chroma samples to decode the current block.
Abstract:
An example device includes a memory to store the video data, and processing circuitry in communication with the memory. The processing circuitry is configured to compare a value of a dimension of a current block of the stored video data to a value of a corresponding dimension of a neighboring block of the current block to obtain a relative dimension value. The processing circuitry is further configured to determine, based on the relative dimension value, that the current block is to be partitioned according to a prediction tree (PT) portion of a multi-type tree-based partitioning scheme. The PT portion comprises partitioning according to one of a binary tree structure or a center-side triple tree structure. The processing circuitry is further configured to partition, based on the determination, the current block according to the PT portion, to form a plurality of sub-blocks.
Abstract:
An example method includes determining, without receiving explicit signaling, whether motion compensation for a current block of a current picture of video data is to be performed using a four-parameter affine motion model (AMM) defined by two motion vectors (MVs) or using a six-parameter AMM defined by three MVs; deriving values of predictors for MVs of the AMM of the current block; decoding a representation of differences between the values of the MVs of the AMM for the current block and the values of the predictors; determining the values of the MVs of the AMM for the current block from the values of the predictors and the decoded differences; determining, based on the determined values of the MVs of the AMM for the current block of video data, a predictor block of video data; and reconstructing the current block based on the predictor block.