Abstract:
An example method of coding video data includes determining, for a current block of video data, a palette that includes a plurality of entries that each corresponds to a respective color value; determining a particular entry in the palette that is predicted to correspond to a color value of a current pixel of the current block; selecting a binarization from a plurality of binarizations; and coding, using the selected binarization, an index that indicates which entry in the palette corresponds to a color value for a current pixel of the current block, wherein coding the index using a first binarization of the plurality of binarizations comprises coding a syntax element that indicates whether the index is equal to the particular entry, and wherein coding the index using a second binarization of the plurality of binarizations comprises coding the index using a variable length code without coding the syntax element.
Abstract:
In an example, a method of processing video data includes determining an input parameter for a truncated binary code that represents a palette index for a pixel of a block of video data based on a number of indices in a palette for the block. The method also includes coding a prefix of the truncated binary code, and determining a palette coding mode for the pixel from a first palette coding mode and a second palette coding mode based only on the prefix of the truncated binary code.
Abstract:
Methods incorporating extensions to copy-above mode for palette mode coding are disclosed. In one aspect, the method includes coding a current pixel of a current block of video data in copy-previous mode via coding a previous line index. The coding of the current pixel in copy-previous mode further including identifying a number of candidate values for the previous line index, identifying a number of escape pixels in a column of pixels above the current pixel in the current block, and reducing a number of candidate values of the previous line index by the number of identified escape pixels.
Abstract:
In an example, a method of coding video data includes determining, for a pixel associated with a palette index that relates a value of the pixel to a color value in a palette of colors used for coding the pixel, a run length of a run of palette indices being coded with the palette index of the pixel, the method also includes determining a maximum run length for a maximum run of palette indices able to be coded with the palette index of the pixel, and coding data that indicates the run length based on the determined maximum run length.
Abstract:
In an example, a method of processing video data includes coding at least one of data that indicates a maximum palette size of a palette of color values for coding a block of video data or data that indicates a maximum palette predictor size of a palette predictor for determining the palette of color values. The method also includes coding the block of video data in accordance with the data.
Abstract:
A system and method for flatness detection for display stream compression (DSC) is disclosed. In one aspect, the method includes determining a first complexity value for a previous block of video data, a second complexity value for a current block of the video data, and a third complexity value for a next block of the video data. The method also includes determining whether the current block includes a transition from a complex region to a flat region based at least in part on the first, second, and third complexity values.
Abstract:
Techniques for encoding a binary prediction vector for predicting a palette for palette-based video coding is described. In one example, a method of decoding video comprises receiving an encoded binary prediction vector for a current block of video data, decoding the encoded binary prediction vector using a run-length decoding technique, generating a palette for the current block of video data based on the binary prediction vector, the binary prediction vector comprising entries indicating whether or not previously-used palette entries are reused for the palette for the current block of video data, and decoding the current block of video data using the palette.
Abstract:
Techniques are described for palette-based coding. In palette-based coding, a video coder may form a palette as a table of colors for representing video data of a given block. Palette-based coding may be useful for coding blocks of video data having a relatively small number of colors. Rather than coding actual pixel values or their residuals for the given block, the video coder may code index values for one or more of the pixels. The index values map the pixels to entries in the palette representing the colors of the pixels. Techniques are described for determining whether to disable filtering, such as deblocking filtering or sample adaptive offset (SAO) filtering, of palette coded blocks at a video encoder or a video decoder. Techniques are also described for modify a palette size and palette entries of a palette at the video encoder based on rate-distortion costs.
Abstract:
In an example, system and method for coding encoded video data. A quantized residue differences block associated with a current block of a picture is generated and a reconstructed prediction residue for each quantized residue difference in the block of quantized residue differences is generated. Each reconstructed prediction residue is added to its corresponding original prediction value to produce a current block of a picture. Generating the reconstructed prediction residue includes performing inverse quantization on blocks of quantized residue differences, wherein the inverse quantization reconstructs data to which uniform quantization residue differential pulse code modulation (RDPCM) has been applied and wherein the quantization is of the form: ΔXq=floor((X+αQ)/Q) where Q is quantization step and α is quantization offset.
Abstract:
In one example, an apparatus is disclosed for coding coefficients associated with a block of video data during a video coding process, wherein the apparatus includes a video coder configured to code x- and y-coordinates that indicate a position of a last non-zero coefficient within the block according to a scanning order associated with the block when the scanning order comprises a first scanning order, and code interchanged x- and y-coordinates that indicate the position of the last non-zero coefficient within the block according to the scanning order when the scanning order comprises a second scanning order, wherein the second scanning order is different than the first scanning order.