Abstract:
The method includes receiving video blocks that are each associated with a table having entries specifying pixel values used in the blocks. The method further includes dividing the blocks into sub-blocks each having an array of pixels. The method also includes selecting a sub-block scanning order that specifies an order in which the plurality of sub-blocks are to be encoded and a pixel scanning order that specifies an order in which the pixels of each sub-block are to be encoded. The scanning order and the pixel scanning order are selected based at least in part upon pixel value distributions and a bit rate for encoding the block according to the scanning or pixel scanning order, respectively. The blocks are then encoded using the selected scanning order and pixel scanning order and the index values in the table.
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:
In palette-based coding, a video coder may form a so-called “palette” as a table of colors representing the video data of a given block. The video coder may code index values for one or more pixels values of a current block of video data, where the index values indicate entries in the palette that represent the pixel values of the current block. A method includes determining a palette for a block of video data, identifying escape pixel(s) not associated with any palette entries, identifying a single quantization parameter (QP) value for all escape pixels of the block for a given color channel using a QP value for non-palette based coding of transform coefficients, dequantizing each escape pixel using the identified QP value, and determining pixel values of the block using the dequantized escape pixels and index values for any pixel(s) associated with any palette entries.
Abstract:
A method for decoding video data provided in a bitstream, where the bitstream includes a coding unit (CU) coded in palette mode, includes: parsing a palette associated with the CU provided in the bitstream; parsing one or more run lengths provided in the bitstream that are associated with the CU; parsing one or more index values provided in the bitstream that associated with the CU; and parsing one or more escape pixel values provided in the bitstream that are associated with the CU. The escape pixel values may be parsed from consecutive positions in the bitstream, the consecutive positions being in the bitstream after all of the run lengths and the index values associated with the CU. The method may further include decoding the CU based on the parsed palette, parsed run lengths, parsed index values, and parsed escape values.
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:
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:
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 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:
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:
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.