Non-transform coding
AssigneeMicrosoft Technology Licensing, LLC
InventorsJizheng Xu, Cuiling Lan
Life of this patent
Estimating the term…
Abstract
Techniques for selectively transforming one or more coding units when coding video content are described herein. The techniques may include determining whether or not to transform a particular coding unit. The determination may be based on a difference in pixel values of the particular coding unit and/or one or more predefined rate-distortion constraints. When it is determined to not perform a transform, the particular coding unit may be coded without transforming the particular coding unit.
Claims20
One or more computer memory or storage devices having stored thereon computer-executable instructions for causing a computer system, when programmed thereby, to perform operations comprising:
- encoding one or more frames of video to produce encoded data, wherein the encoding includes, for a current block of pixel values of a transform unit (TU) for a coding unit (CU) of a current frame among the one or more frames of video:
- if the TU is a leaf TU:
- setting a flag for the current block, the flag indicating whether or not a frequency transform is used during the encoding for the current block;
- selectively performing the frequency transform on residual information for the current block, thereby producing transform coefficients, wherein the frequency transform is performed when the flag indicates the frequency transform is used during the encoding for the current block but skipped when the flag indicates the frequency transform is not used during the encoding for the current block;
- and
- entropy coding the flag;
- and
- if the TU is not a leaf TU, performing the frequency transform on the residual information for the current block, thereby producing the transform coefficients;
- and
- quantizing residual values for the current block, wherein if the frequency transform is used during the encoding for the current block the residual values are the transform coefficients, and otherwise the residual values are the residual information;
- and
- outputting the encoded data as part of a bitstream.
In a computing device that implements a video encoder, a method comprising:
- encoding one or more frames of video to produce encoded data, wherein the encoding includes, for a current block of pixel values of a transform unit (TU) for a coding unit (CU) of a current frame among the one or more frames of video:
- if the TU is a leaf TU:
- setting a flag for the current block, the flag indicating whether or not a frequency transform is used during the encoding for the current block;
- selectively performing the frequency transform on residual information for the current block, thereby producing transform coefficients, wherein the frequency transform is performed when the flag indicates the frequency transform is used during the encoding for the current block but skipped when the flag indicates the frequency transform is not used during the encoding for the current block;
- and
- entropy coding the flag;
- and
- if the TU is not a leaf TU, performing the frequency transform on the residual information for the current block, thereby producing the transform coefficients;
- and
- quantizing residual values for the current block, wherein if the frequency transform is used during the encoding for the current block the residual values are the transform coefficients, and otherwise the residual values are the residual information;
- and
- outputting the encoded data as part of a bitstream.
A computing device comprising one or more processors and memory, wherein the computing device implements a video encoder configured to perform operations comprising:
- encoding one or more frames of video to produce encoded data, wherein the encoding includes, for a current block of pixel values of a transform unit (TU) for a coding unit (CU) of a current frame among the one or more frames of video:
- if the TU is a leaf TU:
- setting a flag for the current block, the flag indicating whether or not a frequency transform is used during the encoding for the current block;
- selectively performing the frequency transform on residual information for the current block, thereby producing transform coefficients, wherein the frequency transform is performed when the flag indicates the frequency transform is used during the encoding for the current block but skipped when the flag indicates the frequency transform is not used during the encoding for the current block;
- and
- entropy coding the flag;
- and
- if the TU is not a leaf TU, performing the frequency transform on the residual information for the current block, thereby producing the transform coefficients;
- and
- quantizing residual values for the current block, wherein if the frequency transform is used during the encoding for the current block the residual values are the transform coefficients, and otherwise the residual values are the residual information;
- and
- outputting the encoded data as part of a bitstream.
Dependencies are inferred from the claim text.