Patentable/Patents/US-9473784
US-9473784

Sample adaptive offset (SAO) filtering in video coding

PublishedOctober 18, 2016
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A method for sample adaptive offset (SAO) filtering of largest coding units (LCUs) of a video frame in an SAO component is provided that includes receiving, by the SAO component, an indication that deblocked pixel blocks of an LCU are available, and applying SAO filtering, by the SAO component, to each pixel block of pixel blocks of an SAO processing area corresponding to the LCU responsive to the indication, wherein pixels of each pixel block of the SAO processing area are filtered in parallel.

Patent Claims
16 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for sample adaptive offset (SAO) filtering of largest coding units (LCUs) of a video frame in an SAO component, the method comprising: receiving, by the SAO component, an indication that deblocked pixel blocks of an LCU are available; and applying SAO filtering, by the SAO component, to each pixel block of pixel blocks of an SAO processing area corresponding to the LCU responsive to the indication, wherein pixels of each pixel block of the SAO processing area are filtered in parallel, and wherein the SAO processing area consists of all pixel blocks of the LCU except a rightmost column of pixel blocks in the LCU and a bottom row of pixel blocks in the LCU, a bottom row of pixel blocks of a top neighboring LCU of the LCU except for a rightmost pixel block of the bottom row, a rightmost column of pixel blocks of a left neighboring LCU of the LCU except for a bottom pixel block of the rightmost column, and a bottom rightmost pixel block of a top left neighboring LCU of the LCU.

2

2. The method of claim 1 , wherein a pixel block is a 4×4 block of pixels.

3

3. The method of claim 1 , wherein a pixel block is one selected from a group consisting of a luminance pixel block, a Cr pixel block, and a Cb pixel block.

4

4. The method of claim 1 , wherein applying SAO filtering comprises: filtering each pixel block of the SAO processing area according to a scan order in which the SAO processing area is divided into non-overlapping sub-processing areas that are scanned in Z-scan order and pixel blocks within a sub-processing area block are scanned in raster scan order.

5

5. The method of claim 4 , wherein a sub-processing area is a 16×16 block of pixels.

6

6. The method of claim 1 , wherein applying SAO filtering comprises filtering the pixel blocks in the SAO processing area in a scan order selected from a group consisting of raster scan order and column by column scan order in which each column is scanned top to bottom.

7

7. The method of claim 1 , wherein the pixel blocks of the LCU in the SAO processing area are stored in a memory comprised in the SAO component, the pixel blocks of the left neighboring LCU are stored in a first work buffer comprised in the SAO component, pixel blocks of a left neighboring column of the rightmost column of pixel blocks of the left neighboring LCU are stored in a second work buffer comprised in the SAO component, and pixel blocks of a top neighboring row of the bottom row of pixel blocks of the top neighboring LCU are stored in a third work buffer comprised in the SAO component.

8

8. The method of claim 7 , wherein applying SAO filtering comprises: storing pixel blocks of a rightmost column of pixel blocks of the LCU in the first work buffer; storing pixel blocks of a left neighboring column of pixel blocks of the rightmost column in the second work buffer; and storing pixel blocks of a top neighboring row of pixel blocks of the bottom row of pixel blocks of the LCU in the third work buffer.

9

9. An apparatus for sample adaptive offset (SAO) filtering, the apparatus comprising: a memory; a controller coupled to the memory and configured to sequence loading of pixel blocks of an SAO processing area into the memory, filtering of the pixel blocks by a filter engine, and storing of the filtered pixel blocks, wherein the SAO processing area corresponds to a largest coding unit (LCU) of a video frame, and wherein the loading, filtering, and storing is performed responsive to an indication that deblocked pixel blocks of the LCU are available; and a filter engine coupled to the controller and the memory, wherein the filter engine is configured to apply SAO filtering to a pixel block of the SAO processing area stored in the memory, wherein all pixels in the pixel block are filtered in parallel, and wherein the SAO processing area consists of all pixel blocks of the LCU except a rightmost column of pixel blocks in the LCU and a bottom row of pixel blocks in the LCU, a bottom row of pixel blocks of a top neighboring LCU of the LCU except for a rightmost pixel block of the bottom row, a rightmost column of pixel blocks of a left neighboring LCU of the LCU except for a bottom pixel block of the rightmost column, and a bottom rightmost pixel block of a top left neighboring LCU of the LCU.

10

10. The apparatus of claim 9 , wherein a pixel block is a 4×4 block of pixels.

11

11. The apparatus of claim 9 , wherein a pixel block is one selected from a group consisting of a luminance pixel block, a Cr pixel block, and a Cb pixel block.

12

12. The apparatus of claim 9 , wherein the controller is configured to load pixel blocks of the SAO processing area into the memory for filtering by the filter engine according to a scan order in which the SAO processing area is divided into non-overlapping sub-processing areas that are scanned in Z-scan order and pixel blocks within a sub-processing area block are scanned in raster scan order.

13

13. The apparatus of claim 12 , wherein a sub-processing area is a 16×16 block of pixels.

14

14. The apparatus of claim 9 , wherein the controller is configured to load pixel blocks of the SAO processing area into the memory for filtering by the filter engine in a scan order selected from a group consisting of raster scan order and column by column scan order in which each column is scanned top to bottom.

15

15. The apparatus of claim 9 , wherein the memory comprises a first work buffer for storing the pixel blocks of the left neighboring LCU, a second work buffer for storing pixel blocks of a left neighboring column of the rightmost column of pixel blocks of the left neighboring LCU, and a third work buffer for storing pixel blocks of a top neighboring row of the bottom row of pixel blocks of the top neighboring LCU.

16

16. The apparatus of claim 15 , wherein the controller is configured to cause first pixel blocks of a rightmost column of pixel blocks of the LCU to be stored in the first work buffer, second pixel blocks of a left neighboring column of pixel blocks of the rightmost column to be stored in the second work buffer, and third pixel blocks of a top neighboring row of pixel blocks of the bottom row of pixel blocks of the LCU to be stored in the third work buffer.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

May 16, 2014

Publication Date

October 18, 2016

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Sample adaptive offset (SAO) filtering in video coding” (US-9473784). https://patentable.app/patents/US-9473784

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.