﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
734	HM8.0 bug in SAO + PCM + lossless	madhukar		"1) In HM8.0, when ALF is removed from the software, TComAdaptiveLoopFilter::PCMLFDisableProcess() was also removed, although it is necessary to prevent SAO from altering PCM or lossless-coded CUs.

2) Even if we revert the function, it has a bug as discribed below.

   PCMLFDisableProcess() calls xPCMRestoration().
   xPCMRestoration() calls xPCMCURestoration() for each CU if (pcm_enabled_flag = 1 and pcm_loop_filter_disable_flag = 1) OR transquant_bypass_enable_flag = 1.
   xPCMCURestoration() restores the unfiltered pixel values with the following condition:

       if ((pcCU->getIPCMFlag(uiAbsZorderIdx)) || pcCU->isLosslessCoded( uiAbsZorderIdx))

   This should be corrected as follows:

       if ((pcCU->getIPCMFlag(uiAbsZorderIdx) && pcPic->getSlice(0)->getSPS()->getPCMFilterDisableFlag()) || pcCU->isLosslessCoded( uiAbsZorderIdx))
   
   The current condition ignores pcm_loop_filter_disable_flag, so it misjudges when
            pcm_enabled_flag = 1
            pcm_loop_filter_disable_flag = 0
            transquant_bypass_enable_flag = 1
            pcm_flag = 1
            cu_transquant_bypass_flag = 0
    
   Because pcm_loop_filter_disable_flag = 0, this I_PCM CU should be SAO filtered, but with the current condition it won't.
"	defect	closed	minor	HM-8.1	HM	HM-8.0	fixed		fbossen ksuehring davidf jct-vc@…
