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, a method of coding video data includes determining a first index value associated with a first pixel in a block of video data, wherein the first index value relates a position of the first pixel to an entry of a palette of pixel values, determining, based on the first index value, one or more second index values associated with one or more second pixels in the block of video data, wherein the second index values relate the positions of the one or more second pixels to one or more entries of the palette of pixel values, and coding the first pixel and the one or more second pixels of the block of video data.
Abstract:
A device for decoding video data includes a memory configured to store video data, and at least one processor. The at least one processor is configured to: determine a first bit-depth of luma residual samples for a block of video data, determine a second bit-depth of predicted chroma residual samples for the block of video data, adjust the luma residual samples based on the first bit-depth and the second bit-depth to produce bit-depth adjusted luma residual samples, determine chroma residual samples for the block of video data based on the bit-depth adjusted luma residual samples and the predicted chroma residual samples, and decode the block of video data based on the luma residual samples and the chroma residual samples.
Abstract:
A device and method of decoding video data that includes decoding the video data to generate decoded video data of a current frame of the video data, and extracting an updated regions message from the decoded video data and determining updated region location information of the current frame based on the updated regions message. An updated region of the current frame is identified based on the updated region location information, the updated region being less than a total size of the current frame, and both the identified updated region and decoded video data of the current frame that has not been updated are transmitted for display of the current frame of the video data.
Abstract:
Techniques and systems are provided for encoding video data. For example, restrictions on certain prediction modes can be applied for video coding. A restriction can be imposed that prevents inter-prediction bi-prediction from being performed on video data when certain conditions are met. For example, bi-prediction restriction can be based on whether intra-block copy prediction is enabled for one or more coding units or blocks of the video data, whether a value of a syntax element indicates that one or more motion vectors are in non-integer accuracy, whether both motion vectors of a bi-prediction block are in non-integer accuracy, whether the motion vectors of a bi-prediction block are not identical and/or are not from the same reference index, or any combination thereof. If one or more of these conditions are met, the restriction on bi-prediction can be applied, preventing bi-prediction from being performed on certain coding units or 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. According to the techniques, a video coder determines one or more palette entries in a predictive palette that are copied to the current palette, and a number of new palette entries not in the predictive palette that are included in the current palette. The video coder calculates a size of the current palette equal to the sum of the number of the copied palette entries and the number of the new palette entries, and generates the current palette including the copied palette entries and the new palette entries.
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:
An example method of encoding video data includes determining a resolution that will be used for a motion vector that identifies a predictor block in a current picture of video data for a current block in the current picture of video data; determining, based on the determined resolution, a search region for the current block such that a size of the search region is smaller where the resolution is fractional-pixel than where the resolution is integer-pixel; selecting, from within the search region, a predictor block for the current block; determining the motion vector that identifies the selected predictor block for the current block; and encoding, in a coded video bitstream, a representation of the motion vector.
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:
In an example, a method of decoding video data may include receiving a palette mode encoded block of video data of a picture. The method may include receiving encoded palette mode information for the palette mode encoded block of video data. The encoded palette mode information may include a plurality of instances of a first syntax element and a plurality of syntax elements that are different from the first syntax element. The method may include decoding, using bypass mode, the plurality of instances of the first syntax element before decoding the plurality of syntax elements that are different from the first syntax element using context mode. The method may include decoding, using context mode, the plurality of syntax elements that are different from the first syntax element after decoding the plurality of instances of the first syntax element using bypass mode.