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:
An example method of coding video data includes coding, from a coded video bitstream, a syntax element that indicates whether a transpose process is applied to palette indices of a palette for a current block of video data; decoding, from the coded video bitstream and at a position in the coded video bitstream that is after the syntax element that indicates whether the transpose process is applied to palette indices of the palette for the current block of video data, one or more syntax elements related to delta quantization parameter (QP) and/or chroma QP offsets for the current block of video data; and decoding the current block of video data based on the palette for the current block of video data and the one or more syntax elements related to delta QP and/or chroma QP offsets for the current block of video data.
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:
A device for decoding video data is configured to determine, based on first entropy encoded data in the bitstream, a set of run-related syntax element groups for a current block of a current picture of the video data; determine, based on second entropy encoded data the bitstream, a set of palette index syntax elements for the current block, the first entropy encoded data occurring in the bitstream before the second entropy encoded data, wherein: each respective run-related syntax element group of the set of run-related syntax element groups indicates a respective type of a respective run of identical palette mode type indicators and a respective length of the respective run and each respective palette index syntax element of the set of palette index syntax elements indicates an entry in a palette comprising a set of sample values; and reconstruct, based on the sample values in the palette, the current block.
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:
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 one example, a device for decoding video data includes a memory configured to store video data and a video decoder configured to determine that a value for a right shift parameter for an escape-mode coded pixel of a palette-mode coded block of the video data is less than zero, based on the value for the right shift parameter being less than zero, set a value for a left shift parameter to a positive value having an absolute value equal to an absolute value of the right shift parameter, and inverse quantize the escape-mode coded pixel using the value of the left shift parameter.
Abstract:
An example method of decoding video data includes determining a palette for decoding a block of video data, where the palette includes one or more palette entries each having a respective palette index, determining a first plurality of palette indices for first pixels of the block of video data, enabling a palette coding mode based on a run length of a run of a second plurality of palette indices for second pixels of the block of video data being decoded relative to the first plurality of palette indices meeting a run length threshold, and decoding the run of the second plurality of palette indices relative to the first plurality of palette indices using the palette coding mode.
Abstract:
In an example, a method of decoding video data using palette mode may include receiving, from an encoded video bitstream, a first syntax element defining a value indicative of a scan order. The method may include receiving, from the encoded video bitstream, a second syntax element defining a value indicative of a swap operation. The method may include reconstructing a palette block from a plurality of palette index values based on the value of the second syntax element indicative of the swap operation.