﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
798	algorithm of deciding block availability doesn't work well if in a dependent slice	kimduckyeon		"
{{{
  if ( (bEnforceSliceRestriction && (m_pcCUAbove==NULL || m_pcCUAbove->getSlice()==NULL || m_pcCUAbove->getSCUAddr()+uiAPartUnitIdx < m_pcPic->getCU( getAddr() )->getSliceStartCU(uiCurrPartUnitIdx)))
      ||
       (bEnforceDependentSliceRestriction && (m_pcCUAbove==NULL || m_pcCUAbove->getSlice()==NULL || m_pcCUAbove->getSCUAddr()+uiAPartUnitIdx < m_pcPic->getCU( getAddr() )->getDependentSliceStartCU(uiCurrPartUnitIdx)))
      ||
       (bEnforceTileRestriction &&(m_pcCUAbove==NULL || m_pcCUAbove->getSlice()==NULL || (m_pcPic->getPicSym()->getTileIdxMap( m_pcCUAbove->getAddr() ) != m_pcPic->getPicSym()->getTileIdxMap(getAddr()))))
      )
  {
    return NULL;
  }
}}}


The function '''TComDataCU::getPUAbove''' returns NULL when the slice of current LCU is dependent slice, the slice of above LCU is dependent/independent slice and the slice of above-right LCU is '''independet'''.
It is a mismatch with the clause 6.4 in WD.

The start CU address of the slice(getSliceStartCU) is referred when deciding block availability as you can confirm in the following code.
I think that it affects to make wrong decision.

In addition, it seems that #643 ticket and this problem are caused by same reason.

It need to be correct in the view of HM stabiliy testing as well as clearing mismatch with WD."	defect	closed	major	HM-9.0	HM	HM-8.0	duplicate	availability, multiple slice, dependent slice	fbossen ksuehring davidf jct-vc@…
