IP Library Granted Patent US 12684152
Granted Patent B1
US 12684152 · App. 19/064,372 · Granted Jul 14, 2026

Multi-filter video decoding with reduced top line buffer size

Inventors: Anil Kumar (Bhiwani, IN); Arvind Sudharsan (Bangalore, IN); Sandeep Nellikatte Srivatsa (Bangalore, IN); Ashish Mishra (Bhubaneswar, IN)
Assignee: QUALCOMM Incorporated
H04N19/44H04N19/117H04N19/174H04N19/176H04N19/423H04N19/80
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12684152
App. No.
19/064,372
Granted
Jul 14, 2026
Kind
B1
Abstract

Systems and techniques are described herein for processing video data. For example, a process can include applying a deblocking (DB) filter to generate a DB-filtered plurality of sub-blocks with a bottom pixel row offset by a sub-block height from a bottom boundary of the block. The DB filter can be applied to a top pixel row in an additional, adjacent sub-block to generate an additional DB-filtered pixel row. A sample adaptive offset (SAO) filter applied to the DB-filtered plurality of sub-blocks can generate an SAO-filtered plurality of sub-blocks having a bottom pixel row offset from the bottom pixel row in the DB-filtered plurality of sub-blocks by the sub-block height. The SAO filter applied to the additional DB-filtered pixel row can generate an additional SAO-filtered sub-block between the bottom pixel row in the SAO-filtered plurality of sub-blocks and the bottom pixel row in the DB-filtered plurality of sub-blocks.

Claims (41)

1 . An apparatus for decoding video data, the apparatus comprising:

at least one memory; and

at least one processor coupled to the at least one memory, the at least one processor configured to:

apply a deblocking (DB) filter to a plurality of sub-blocks of a block of video data to generate a DB-filtered plurality of sub-blocks, wherein the plurality of sub-blocks is less than an entirety of sub-blocks within the block, and wherein a bottom pixel row in the DB-filtered plurality of sub-blocks is offset from a bottom boundary of the block by a sub-block height;

apply the DB filter to a top pixel row in an additional sub-block of the block to generate an additional DB-filtered pixel row, wherein the additional sub-block is adjacent to the bottom boundary of the block; and

apply a sample adaptive offset (SAO) filter to the DB-filtered plurality of sub-blocks and the additional DB-filtered pixel row, wherein:

the DB-filtered plurality of sub-blocks is used to generate an SAO-filtered plurality of sub-blocks, where a bottom pixel row in the SAO-filtered plurality of sub-blocks is offset from the bottom pixel row in the DB-filtered plurality of sub-blocks by the sub-block height; and

the additional DB-filtered pixel row is used to generate an additional SAO-filtered sub-block between the bottom pixel row in the SAO-filtered plurality of sub-blocks and the bottom pixel row in the DB-filtered plurality of sub-blocks.

2 . The apparatus of claim 1 , wherein the at least one processor is configured to apply the SAO filter using a top line buffer (TLB) storage with a height of one pixel row.

3 . The apparatus of claim 1 , wherein the at least one processor is configured to apply the SAO filter to an extended DB-filtered input, the extended DB-filtered input comprising the filtered plurality of sub-blocks and the additional filtered pixel row.

4 . The apparatus of claim 1 , wherein the at least one processor is configured to apply the SAO filter to an input comprising the DB-filtered plurality of sub-blocks and the additional DB-filtered pixel row, and wherein the input to the SAO filter comprises a quantity of DB-filtered pixel rows equal to one plus a multiple of the sub-block height.

5 . The apparatus of claim 1 , wherein the at least one processor is further configured to:

apply an adaptive loop filter (ALF) to an input comprising the SAO-filtered plurality of sub-blocks and the additional SAO-filtered sub-block; and

generate a set of ALF-filtered pixels corresponding to pixel rows between a block height of the block and an ALF line buffer boundary.

6 . The apparatus of claim 5 , wherein:

the ALF line buffer boundary and the bottom pixel row in the DB-filtered plurality of sub-blocks are the same; and

the ALF line buffer boundary and the bottom pixel row in the SAO-filtered plurality of sub-blocks are the same.

7 . The apparatus of claim 5 , wherein the at least one processor is configured to generate the set of ALF-filtered pixels without using a top line buffer (TLB) storage.

8 . The apparatus of claim 5 , wherein the ALF is associated with a top line buffer (TLB) height of zero pixel rows.

9 . The apparatus of claim 1 , wherein the DB filter is not applied to a set of pixel rows between the top pixel row in the additional sub-block and the bottom boundary of the block, the set of pixel rows included in the additional sub-block.

10 . The apparatus of claim 1 , wherein, to apply the DB filter to the top pixel row in the additional sub-block, the at least one processor is configured to:

filter the top pixel row in the additional sub-block without applying the DB filter to one or more pixel rows below the top pixel row in the additional sub-block, wherein the one or more pixel rows below the top pixel row comprise a set of unfiltered pixel rows for the additional sub-block.

11 . The apparatus of claim 1 , wherein the block of video data is a coding tree block (CTB) of encoded video data, and wherein the bottom boundary of the block is a CTB bottom boundary.

12 . The apparatus of claim 11 , wherein the additional sub-block is adjacent to the CTB bottom boundary and the bottom pixel row in the DB-filtered plurality of sub-blocks.

13 . A method for decoding video data, comprising:

applying a deblocking (DB) filter to a plurality of sub-blocks of a block of video data to generate a DB-filtered plurality of sub-blocks, wherein the plurality of sub-blocks is less than an entirety of sub-blocks within the block, and wherein a bottom pixel row in the DB-filtered plurality of sub-blocks is offset from a bottom boundary of the block by a sub-block height;

applying the DB filter to a top pixel row in an additional sub-block of the block to generate an additional DB-filtered pixel row, wherein the additional sub-block is adjacent to the bottom boundary of the block; and

applying a sample adaptive offset (SAO) filter to the DB-filtered plurality of sub-blocks and the additional DB-filtered pixel row, wherein:

the DB-filtered plurality of sub-blocks is used to generate an SAO-filtered plurality of sub-blocks, where a bottom pixel row in the SAO-filtered plurality of sub-blocks is offset from the bottom pixel row in the DB-filtered plurality of sub-blocks by the sub-block height; and

the additional DB-filtered pixel row is used to generate an additional SAO-filtered sub-block between the bottom pixel row in the SAO-filtered plurality of sub-blocks and the bottom pixel row in the DB-filtered plurality of sub-blocks.

14 . The method of claim 13 , further comprising applying the SAO filter using a top line buffer (TLB) storage with a height of one pixel row.

15 . The method of claim 13 , further comprising applying the SAO filter to an extended DB-filtered input, the extended DB-filtered input comprising the filtered plurality of sub-blocks and the additional filtered pixel row.

16 . The method of claim 13 , further comprising applying the SAO filter to an input comprising the DB-filtered plurality of sub-blocks and the additional DB-filtered pixel row, and wherein the input to the SAO filter comprises a quantity of DB-filtered pixel rows equal to one plus a multiple of the sub-block height.

17 . The method of claim 13 , further comprising:

applying an adaptive loop filter (ALF) to an input comprising the SAO-filtered plurality of sub-blocks and the additional SAO-filtered sub-block; and

generating a set of ALF-filtered pixels corresponding to pixel rows between a block height of the block and an ALF line buffer boundary.

18 . The method of claim 17 , wherein:

the ALF line buffer boundary and the bottom pixel row in the DB-filtered plurality of sub-blocks are the same; and

the ALF line buffer boundary and the bottom pixel row in the SAO-filtered plurality of sub-blocks are the same.

19 . The method of claim 17 , further comprising generating the set of ALF-filtered pixels without using a top line buffer (TLB) storage.

20 . The method of claim 17 , wherein the ALF is associated with a top line buffer (TLB) height of zero pixel rows.