IP Library Granted Patent US 9,888,249
Granted Patent B2
US 9,888,249 · App. 15/643,795 · Granted Feb 6, 2018

Devices and methods for sample adaptive offset coding and/or selection of edge offset parameters

Inventors: Koohyar Minoo (San Diego, CA); David Baylon (San Diego, CA); Yue Yu (San Diego, CA); Limin Wang (San Diego, CA)
Assignee: GOOGLE TECHNOLOGY HOLDINGS LLC
H04N19/182H04N19/117H04N19/14H04N19/176H04N19/82
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 9,888,249
App. No.
15/643,795
Granted
Feb 6, 2018
Kind
B2
Abstract

In one embodiment, a method for encoding sample adaptive offset (SAO) values in a video encoding process is provided, the method comprising: selecting an edge offset type; selecting one of one or more edge offset sub-classes; within at least one of the edge offset sub-classes, generating an interpolated pixel value that is related to a current pixel value; generating an offset value that is related to the interpolated pixel value; and optionally applying the offset value to at least the current pixel value to form an SAO compensated value.

Claims (30)

1. A method for decoding an encoded block of an encoded video frame, the method comprising:

decoding the encoded block using a sample adaptive offset compensated value generated by applying an offset value to a current pixel value of the encoded block, the sample adaptive offset compensated value limited by an interpolated pixel value generated using vertically deblocked left and right neighboring pixel values of the current pixel value.

2. The method of claim 1 , further comprising:

determining an edge offset type based on a codeword signaled within an encoded bitstream including the encoded video frame;

selecting an edge offset sub-class for the current pixel value, the edge offset sub-class corresponding to the edge offset type; and

determining the offset value based on the edge offset sub-class.

3. The method of claim 2 , wherein the edge offset sub-class is selected based on comparisons between the current pixel value and each of the left and right neighboring pixel values.

4. The method of claim 2 , wherein a different edge offset sub-class is selected for the current pixel value responsive to determining that the current pixel value is different from a weighted combination of the left and right neighboring pixel values.

5. The method of claim 2 , wherein the edge offset type is not signaled within the encoded bitstream when an offset applied for encoding the encoded block is negative.

6. The method of claim 1 , wherein the left and right neighboring pixel values are averaged to generate the interpolated pixel value.

7. An apparatus for decoding an encoded block of an encoded video frame, the apparatus comprising:

a processor configured to execute instructions stored in a non-transitory storage medium to:

decode the encoded block using a sample adaptive offset compensated value generated by applying an offset value to a current pixel value of the encoded block, the sample adaptive offset compensated value limited by an interpolated pixel value generated using vertically deblocked left and right neighboring pixel values of the current pixel value.

8. The apparatus of claim 7 , wherein the instructions include instructions to:

determine an edge offset type based on a codeword signaled within an encoded bitstream including the encoded video frame;

select an edge offset sub-class for the current pixel value, the edge offset sub-class corresponding to the edge offset type; and

determine the offset value based on the edge offset sub-class.

9. The apparatus of claim 8 , wherein the edge offset sub-class is selected based on comparisons between the current pixel value and each of the left and neighboring pixel values.

10. The apparatus of claim 8 , wherein a different edge offset sub-class is selected for the current value pixel responsive to a determination that the current pixel value is different from a weighted combination of the left and right neighboring pixel values.

11. The apparatus of claim 8 , wherein the edge offset type is not signaled within the encoded bitstream when an offset applied for encoding the encoded block is negative.

12. The apparatus of claim 7 , wherein the left and right neighboring pixel values are averaged to generate the interpolated pixel value.

13. A method, comprising:

applying, to a current pixel value, an offset value limited by a weighted combination of vertically deblocked left and right neighboring pixel values of the current pixel value.

14. The method of claim 13 , further comprising:

encoding a block including the current pixel value using a sample adaptive offset compensated value generated responsive to the applying.

15. The method of claim 13 , further comprising:

decoding an encoded block including the current pixel value using a sample adaptive offset compensated value generated responsive to the applying.

16. The method of claim 13 , wherein the offset value is determined based on an edge offset sub-class for the current pixel value.

17. The method of claim 16 , wherein the edge offset sub-class is selected based on a codeword representing an edge offset type within an encoded bitstream including an encoded block, the encoded block including the current pixel value.

18. The method of claim 17 , wherein the encoded bitstream does not include codewords representing edge offset types for blocks encoded using a negative offset.

Continuity (5)
Continuation 13734774 · Jan 4, 2013
Provisional Application 61583555 · Jan 5, 2012
Provisional Application 61589297 · Jan 21, 2012
Provisional Application 61597041 · Feb 9, 2012
Related Publication 20170310980A1 · Oct 26, 2017