Sample adaptive offset control
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.
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.