-
Timothy B. Terriberry authored
reset_skip_context() was always clearing the entropy contexts for all three color planes, using a block size that corresponded with the luma plane. However, when chroma_2x2 is disabled, then for sub-8x8 luma block sizes, the corresponding chroma block size is always 4x4, and the skip flag only affects the chroma blocks corresponding to the upper-left luma block. This patch makes reset_skip_context() reset the contexts that actually correspond to the chroma blocks that are skipped (if any). It also moves reset_skip_context() to av1_reset_skip_context() in blockd.c, because blockd.h gets included before onyx_int.h, which declares the required is_chroma_reference() function. reset_skip_context() was too large and used in too many places to be a reasonable candidate for inlining, anyway. AWCY results on objective-1-fast: cb4x4-fix-base@2017-05-11T06:26:50.159Z -> cb4x4-fix-reset_skip@2017-05-11T06:28:45.482Z PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 0.0301 | 0.1068 | 0.1463 | 0.0359 | 0.0260 | 0.0347 | 0.0479 A regression (near the noise range), but without this fix, the line buffer size required by the entropy contexts will be doubled. Change-Id: I12fa6e60d9c1c7c85927742775a346ea22b3193f
a2d5cdef