Skip to content

Fix #303: Bug in virtual boundaries (N0438) code

Incorrect virtual boundary is used on chroma component Cr for SAO.

In SampleAdaptiveOffset.cpp and in EnSampleAdaptiveOffset.cpp, the location of the virtual boundaries horVirBndryPos[] and verVirBndryPos[] are filled. Then in the following "for" loop, these positions are used for the luma component, divided by two for the Cb component, and further divided by two for the Cr component. This second division should not be applied.

For example, if an horizontal virtual boundary is set at position 32 for the luma component, the virtual boundary will be at position 16 for the Cb component and 8 for the Cr component. It should be 16 for Cb and Cr.

Merge request reports