Encoding strategies for adaptive switching of color spaces, color sampling rates and/or bit depths
AssigneeMicrosoft Technology Licensing, LLC
InventorsBin Li, Jizheng Xu, Feng Wu
Life of this patent
Estimating the term…
Abstract
Innovations in adaptive encoding for units of a video sequence can improve coding efficiency. For example, some of the innovations relate to encoding that includes adaptive switching of color spaces between units within a video sequence. Other innovations relate encoding that includes adaptive switching of color sampling rates between units within a video sequence. Still other innovations relate encoding that includes adaptive switching of bit depths between units within a video sequence.
Claims20
One or more non-transitory computer-readable media having stored thereon computer-executable instructions for causing one or more processing units, when programmed thereby, to perform operations for a video encoder, the operations comprising:
- encoding video in a sequence, thereby producing encoded data, wherein the encoding the video includes:
- determining that color space conversion operations between a first color space and a second color space are permitted, the second color space being different than the first color space;
- setting a value of a syntax element, for a parameter set, that indicates the color space conversion operations between the first color space and the second color space are permitted;
- and
- encoding multiple units of the video within the sequence, wherein the encoding the multiple units includes:
- setting one or more coding parameters that apply for a given unit, among the multiple units, when the given unit is in the first color space, including performing motion estimation to set, as one of the one or more coding parameters, a motion vector value or performing intra block copy estimation to set, as one of the one or more coding parameters, a block vector value;
- determining whether or not to switch color spaces for the given unit, including performing the color space conversion operations between the first color space and the second color space, wherein the one or more coding parameters are reused when evaluating the given unit in the second color space;
- setting a flag value for the given unit, the flag value indicating a selection between the first color space and the second color space for the given unit;
- and
- entropy coding the flag value using context-adaptive binary arithmetic coding;
- and
- outputting the encoded data in a bitstream, the encoded data including the parameter set and the flag value for the given unit.
In a computer system that implements a video encoder, a method comprising:
- encoding video in a sequence, thereby producing encoded data, wherein the encoding the video includes:
- determining that color space conversion operations between a first color space and a second color space are permitted, the second color space being different than the first color space;
- setting a value of a syntax element, for a parameter set, that indicates the color space conversion operations between the first color space and the second color space are permitted;
- and
- encoding multiple units of the video within the sequence, wherein the encoding the multiple units includes:
- setting one or more coding parameters that apply for a given unit, among the multiple units, when the given unit is in the first color space, wherein the given unit includes a luma block and multiple chroma blocks, and wherein the one or more coding parameters include an intra prediction direction that applies for the luma block and the multiple chroma blocks of the given unit;
- determining whether or not to switch color spaces for the given unit, including performing the color space conversion operations between the first color space and the second color space, wherein the one or more coding parameters are reused when evaluating the given unit in the second color space;
- setting a flag value for the given unit, the flag value indicating a selection between the first color space and the second color space for the given unit;
- and
- entropy coding the flag value using context-adaptive binary arithmetic coding;
- and
- outputting the encoded data in a bitstream, the encoded data including the parameter set and the flag value for the given unit.
A computer system comprising:
- a video encoder, implemented with one or more processing units of the computer system, configured to encode video in a sequence, thereby producing encoded data, by performing operations that include:
- determining that color space conversion operations between a first color space and a second color space are permitted, the second color space being different than the first color space;
- setting a value of a syntax element, for a parameter set, that indicates the color space conversion operations between the first color space and the second color space are permitted;
- and
- encoding multiple units of the video within the sequence, wherein the encoding the multiple units includes:
- setting one or more coding parameters that apply for a given unit, among the multiple units, when the given unit is in the first color space, including performing motion estimation to set, as one of the one or more coding parameters, a motion vector value or performing intra block copy estimation to set, as one of the one or more coding parameters, a block vector value;
- determining whether or not to switch color spaces for the given unit, including performing the color space conversion operations between the first color space and the second color space, wherein the one or more coding parameters are reused when evaluating the given unit in the second color space;
- setting a flag value for the given unit, the flag value indicating a selection between the first color space and the second color space for the given unit;
- and
- entropy coding the flag value using context-adaptive binary arithmetic coding;
- and
- a buffer, implemented with memory of the computer system, configured to store the encoded data for output in a bitstream, the encoded data including the parameter set and the flag value for the given unit.
Dependencies are inferred from the claim text.