IP Library Granted Patent US 12695868
Granted Patent B2
US 12695868 · App. 18/961,302 · Granted Jul 28, 2026

Sample adaptive offset control

Inventor: Alexandros Tourapis (Los Gatos, CA)
Assignee: APPLE INC.
H04N19/117H04N19/136H04N19/186H04N19/44H04N19/463H04N19/70H04N19/82H04N19/86
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 12695868
App. No.
18/961,302
Granted
Jul 28, 2026
Kind
B2
Abstract

Offset values, such as Sample Adaptive Offset (SAO) values in video coding standards such as the High Efficiency Video Coding standard (HEVC), may be improved by performing calculations and operations that improve the preciseness of these values without materially affecting the signal overhead needed to transmit the more precise values. Such calculations and operations may include applying a quantization factor to a video sample and at least some of its neighbors, comparing the quantized values, and classifying the video sample as a minimum, maximum, or one of various types of edges based on the comparison. Other sample range, offset mode, and/or offset precision parameters may be calculated and transmitted with metadata to improve the precision of offset values.

Claims (29)

1 . A computer readable memory containing instructions that, when executed by a processor, cause the processor to:

extract parameters, from a picture parameter set in a coded video stream, for derivation of sample adaptive offset (SAO) offset values for coded luma data and for derivation of SAO offset values for coded chrominance data,

derive a first SAO offset value by shifting a default SAO offset value by an amount specified in the extracted parameter for coded luma data,

perform SAO filtering on reconstructed luma data obtained from the coded video stream using the first SAO offset value as an offset in the SAO filtering operation,

derive a second SAO offset value by shifting the default SAO offset value by an amount specified in the extracted parameter for coded chroma data, and

sample adaptive offset (SAO) filtering on reconstructed chroma data obtained from the coded video stream using the second SAO offset value as an offset in the SAO filtering operation.

2 . The memory of claim 1 , wherein the derivation of one of the first and second SAO offset values occurs by:

saoOffsetVal=offsetSign*saoOffsetAbs<<saoShiftOffset,

wherein offsetSign represents a sign specified for the respective one SAO offset value, saoOffsetAbs represents the default SAO offset value, and “<<” represents a bit shift operation, and saoShiftOffset is derived from the parameter extracted from the picture parameter set respectively for the coded luma or coded chroma data.

3 . The memory of claim 1 , wherein, for luma, saoShiftOffset is derived from an sao_luma_bit_shift field provided in the picture parameter set.

4 . The memory of claim 1 , wherein, for luma, saoShiftOffset is taken to be zero if an sao_luma_bit_shift field is not provided in the picture parameter set.

5 . The memory of claim 1 , wherein, for chroma, saoShiftOffset is derived from an sao_chroma_bit_shift field provided in the picture parameter set.

6 . The memory of claim 1 , wherein, for chroma, saoShiftOffset is taken to be zero if an sao_chroma_bit_shift field is not provided in the picture parameter set.

7 . A computer readable memory containing instructions that, when executed by a processor, cause the processor to:

extract a parameter, from a picture parameter set in a coded video stream, for derivation of sample adaptive offset (SAO) offset values for coded luma data,

derive an SAO offset value by:

saoOffsetVal=offsetSign*saoOffsetAbs<<saoShiftOffset,

 wherein offsetSign represents a sign specified for the respective one SAO offset value, saoOffsetAbs represents a default SAO offset value, “<<” represents a bit shift operation, and saoShiftOffset is derived from the extracted parameter, and

sample adaptive offset (SAO) filtering on reconstructed luma data obtained from the coded video stream using the SAO offset value as an offset in the SAO filtering operation.

8 . The memory of claim 7 , wherein saoShiftOffset is derived from an sao_luma_bit_shift field provided in the picture parameter set.

9 . The memory of claim 7 , wherein saoShiftOffset is taken to be zero if an sao_luma_bit_shift field is not provided in the picture parameter set.

10 . A computer readable memory containing instructions that, when executed by a processor, cause the processor to:

extract a parameter, from a picture parameter set in a coded video stream, for derivation of sample adaptive offset (SAO) offset values for coded chroma data,

derive an SAO offset value by:

saoOffsetVal=offsetSign*saoOffsetAbs<<saoShiftOffset,

 wherein offsetSign represents a sign specified for the respective one SAO offset value, saoOffsetAbs represents a default SAO offset value, “<<” represents a bit shift operation, and saoShiftOffset is derived from the extracted parameter, and

perform sample adaptive offset (SAO) filtering on reconstructed chroma data obtained from the coded video stream using the SAO offset value as an offset in the SAO filtering operation.

11 . The memory of claim 10 , wherein saoShiftOffset is derived from an sao_chroma_bit_shift field provided in the picture parameter set.

12 . The memory of claim 10 , wherein saoShiftOffset is taken to be zero if an sao_chroma_bit_shift field is not provided in the picture parameter set.