Adaptive deblocking filter
AssigneeAlibaba Group Holding Limited
InventorsYu-Chen Sun, Jian Lou
Life of this patent
Estimating the term…
Abstract
Systems and methods are provided for selecting and applying an appropriate deblocking filter for improved coding efficiency and compression performance by partitioning a frame into a plurality of rectangular coding units (CUs) according to the QTBT frame partitioning scheme, selecting a first and a second CUs of the plurality of rectangular CUs, where the second CU is adjacent to the first CU, identifying a CU boundary shared by the first and second CUs, determining that at least one of the first or the second CU is non-square in shape, determining a first shape of the first CU and a second shape of the second CU, adaptively selecting a deblocking filter based on the first shape and the second shape, and applying the selected deblocking filter to pixels across the CU boundary.
Claims20
A method comprising:
- partitioning a frame into a plurality of rectangular coding units;
- selecting a first coding unit and a second coding unit of the plurality of rectangular coding units, the second coding unit being adjacent to the first coding unit;
- identifying a coding unit boundary shared by the first coding unit and second coding unit;
- determining a first shape of the first coding unit and a second shape of the second coding unit;
- upon determining that at least one of the first coding unit or the second coding unit is non-square in shape,
- adaptively selecting a deblocking filter based on the first shape and the second shape by:
- determining whether the first shape and the second shape are both non-square in shape or only one of the first shape or the second shape is non-square in shape,
- upon determining that the first shape and the second shape are both non-square in shape, selecting a first deblocking filter as the deblocking filter, or
- upon determining that only one of the first shape or the second shape is non-square in shape, selecting a second deblocking filter as the deblocking filter;
- and
- applying the selected deblocking filter to pixels across the coding unit boundary.
A non-transitory computer-readable storage medium storing computer-readable instructions executable by one or more processors, that when executed by the one or more processors, cause the one or more processors to perform operations comprising:
- partitioning a frame into a plurality of rectangular coding units;
- selecting a first coding unit and a second coding unit of the plurality of rectangular coding units, the second coding unit being adjacent to the first coding unit;
- identifying a coding unit boundary shared by the first coding unit and second coding unit;
- determining whether at least one of the first coding unit or the second coding unit is non-square in shape;
- upon determining that at least one of the first coding unit or the second coding unit is non-square in shape,
- determining a first shape of the first coding unit and a second shape of the second coding unit;
- adaptively selecting a deblocking filter based on the first shape and the second shape by:
- determining whether the first shape and the second shape are both non-square in shape or only one of the first shape or the second shape is non-square in shape,
- upon determining that the first shape and the second shape are both non-square in shape, selecting a first deblocking filter as the deblocking filter, or
- upon determining that only one of the first shape or the second shape is non-square, selecting a second deblocking filter as the deblocking filter;
- and
- applying the selected deblocking filter to pixels across the coding unit boundary.
A computing device comprising:
- one or more processors;
- and
- memory communicatively coupled to the one or more processors, the memory storing computer-executable modules executable by the one or more processors, that when executed by the one or more processors, perform associated operations, the computer-executable modules including:
- a partition module configured to partition a frame into a plurality of rectangular coding units;
- a selection module configured to select a first coding unit and a second coding unit of the plurality of rectangular coding units, the second coding unit being adjacent to the first coding unit;
- a determination module configured to:
- determine whether at least one of the first coding unit or the second coding unit is non-square in shape,
- upon determining that at least one of the first coding unit or the second coding unit is non-square in shape, identify a coding unit boundary shared by the first and second coding units,
- determine a first shape of the first coding unit and a second shape of the second coding unit, and
- determine whether the first shape and the second shape are both non-square in shape or only one on of the first shape or the second shape is non-square in shape;
- and
- a decoder module configured to:
- adaptively select a deblocking filter based on the first shape and the second shape by
- selecting a first deblocking filter as the deblocking filter upon the determination module determining that the first shape and the second shape are both non-square in shape, or
- selecting a second deblocking filter as the deblocking filter upon the determination module determining that only one of the first shape or the second shape is non-square, and
- apply the selected deblocking filter to pixels across the coding unit boundary.
Dependencies are inferred from the claim text.