Example #1
0
func (this *TEncEntropy) encodeSaoUnitInterleaving(compIdx int, saoFlag bool, rx, ry int, saoLcuParam *TLibCommon.SaoLcuParam, cuAddrInSlice, cuAddrUpInSlice int, allowMergeLeft, allowMergeUp bool) {
	if saoFlag {
		if rx > 0 && cuAddrInSlice != 0 && allowMergeLeft {
			this.m_pcEntropyCoderIf.codeSaoMerge(uint(TLibCommon.B2U(saoLcuParam.MergeLeftFlag)))
		} else {
			saoLcuParam.MergeLeftFlag = false
		}
		if saoLcuParam.MergeLeftFlag == false {
			if (ry > 0) && (cuAddrUpInSlice >= 0) && allowMergeUp {
				this.m_pcEntropyCoderIf.codeSaoMerge(uint(TLibCommon.B2U(saoLcuParam.MergeUpFlag)))
			} else {
				saoLcuParam.MergeUpFlag = false
			}
			if saoLcuParam.MergeUpFlag == false {
				this.encodeSaoOffset(saoLcuParam, uint(compIdx))
			}
		}
	}
}