Dictionary encoding and decoding of screen content
AssigneeMicrosoft Technology Licensing, LLC
InventorsBin Li, Jizheng Xu, Feng Wu
Life of this patent
Estimating the term…
Abstract
Innovations are provided for encoding and/or decoding video and/or image content using dictionary modes. For example, some innovations predict current pixel values from previous pixel values stored in a 1-D dictionary. Other innovations predict current pixel values from previous pixel values using a pseudo 2-D dictionary mode. Yet other innovations predict current pixel values from previous pixel values in a reference picture using an inter pseudo 2-D dictionary mode. Pixel values can be predicted from previous pixel values (e.g., stored in a dictionary) that are identified by an offset and a length. Yet other innovations encode pixel values using hash matching of pixel values.
Claims13
A computing device comprising a processing unit and memory implementing a video decoder or image decoder configured to perform operations comprising:
- receiving encoded data for a picture in a bit stream;
- and
- decoding one or more current pixel values from the encoded data, comprising:
- decoding an offset from the encoded data indicating an offset location within a one-dimensional dictionary of previously decoded pixel values, wherein the one-dimensional dictionary is a horizontal scanning one-dimensional dictionary, and wherein decoding the offset comprises:
- decoding an offset range code indicating a range of offset values and a number of bits to decode for an offset value;
- and
- based on the offset range code, decoding the offset value from the indicated number of bits for the offset value, wherein the offset location within the one-dimensional dictionary is identified by the offset value;
- decoding a length from the encoded data, wherein decoding the length comprises:
- decoding a length range code indicating a range of length values and a number of bits to decode for a length value;
- and
- based on the length range code, decoding the length value from the indicated number of bits for the length value;
- predicting the one or more current pixel values from one or more corresponding pixel values in the previously decoded pixel values at the offset location, wherein a number of pixels being predicted is indicated by the length value;
- adding the decoded one or more current pixel values to the horizontal scanning one-dimensional dictionary in horizontal scanning order;
- and
- adding the decoded one or more current pixel values to a vertical scanning one-dimensional dictionary in vertical scanning order.
In a computing device with a video decoder or image decoder, a method comprising:
- receiving encoded data for a picture in a bit stream;
- and
- decoding a number of current pixel values from the encoded data using a 1-D dictionary mode, comprising:
- decoding an offset range code, wherein the offset range code indicates a number of bits for an offset value code;
- decoding the offset value code from the indicated number of bits to produce an offset value, wherein the offset value identifies a location in at least one dictionary of previously decoded pixel values, wherein the at least one dictionary comprises a horizontal scanning one-dimensional dictionary and a vertical scanning one-dimensional dictionary;
- decoding a length range code, wherein the length range code indicates a number of bits for a length value code;
- decoding the length value code from the indicated number of bits to produce a length value;
- and
- predicting the current pixel values from corresponding pixel values at the location, in the at least one dictionary, identified by the offset value with the number of current pixel values being predicted indicated by the length value;
- adding the decoded number of current pixel values to the horizontal scanning one-dimensional dictionary in horizontal scanning order;
- and
- adding the decoded number of current pixel values to the vertical scanning one-dimensional dictionary in vertical scanning order;
- and
- reconstructing at least a portion of the picture in one of a horizontal scanning order and a vertical scanning order using, at least in part, the decoded number of current pixel values.
In a computing device with a video encoder or image encoder, a method comprising:
- encoding data for a picture, including using a dictionary mode for encoding one or more current pixel values, the encoding comprising:
- calculating hash values for previously encoded pixel values;
- calculating a hash value for the one or more current pixel values to be encoded;
- determining if the hash value for the one or more current pixel values matches a hash value for the previously encoded pixel values;
- when a match is found, encoding the one or more current pixel values using an offset and length that predicts the one or more current pixel values from the matching previously encoded pixel values, comprising:
- encoding an offset range code, wherein the offset range code indicates a number of bits for an offset value code;
- encoding the offset value code from the indicated number of bits to produce an offset value, wherein the offset value identifies a location in at least one dictionary of previously encoded pixel values, wherein the at least one dictionary comprises a horizontal scanning one-dimensional dictionary and a vertical scanning one-dimensional dictionary;
- encoding a length range code, wherein the length range code indicates a number of bits for a length value code;
- encoding the length value code from the indicated number of bits to produce a length value;
- and
- encoding the one or more current pixel values using corresponding pixel values at the location, in the at least one dictionary, identified by the offset value with a number of current pixel values being encoded indicated by the length value;
- adding the encoded number of current pixel values to the horizontal scanning one-dimensional dictionary in horizontal scanning order;
- and
- adding the encoded number of current pixel values to the vertical scanning one-dimensional dictionary in vertical scanning order.
Dependencies are inferred from the claim text.