上图中 四周邻域像素由数字0-29表示。这30个点是sao过程可能会用到的点。
假设sao按照lcu 顺序进行,则这些邻域像素点可以分成以下几类:
需要备份的点:
top 0-9, left 24-29。因为 0-9, 25-29 这些点在做当前lcu的sao时,其所在的lcu已经进行完sao操作,所以需要保持这点在sao之前的结果。24是个特殊的点,它其实在这个时刻是没有做过sao 的,依然保持是lft后的结果。不过为了计算方便,通常会将24 与 25-29按照水平顺序组合好。
无需备份的点:
10-15,这些点在此时刻,其所在的lcu没有进行sao,他们的结果自然就是lft后。所以无需备份。
x265中,需要备份的这点,
0-9这些点是通过 m_tmpU1 m_tmpU2 交替更换来实现的。
29-24 这些点是通过 m_tmpL1, m_tmpL2交替更换来实现的。