• LCU vs. Sub-CU
–All CUs are handled throughTComDataCU* pointer(所有CU是通过 TComDataCU *指针操作处理)
–From the LCU (largest CU), Sub-CUis processed recursively by z-scan(CU通过Z顺序扫描)
•
TComDataCU class has all information we need
– Actual data storage is allocated only at LCU (largest CU) level
• In Sub-CUs, data storage points to suitable position in LCU storage
• Every information in CU is accessed by index (CU中信息的
访问方式依靠索引号
)
–Basically, every index is the storage unit number within the CU
–In source-code,AbsPartIdx means absolute index in the given CU (代码中AbsPartIdx代表CU内单元的索引号)
•
How to obtain absolute index in LCU?(LCU内单元的索引获取方式(通过m_uiAbsIdxInLCU))
– EachTComDataCU class hasm_uiAbsIdxInLCU, which means the absolute z-scanindex in LCU basis
– Useful to derive index ofneighbouring CUs
•
How to convert between z-scan and raster scan in LCU-basedindex?(Z扫描与光栅扫描转换)
–Two arrays,g_auiZscanToRaster andg_auiRasterToZscan
–g_auiZscanToRaster[ z-scan index ] = raster scanindex
–g_auiRasterToZscan[ raster index ] = z-scan index
Raster scan is useful to derive index ofneighbouring CUs
• Transform coefficient data structure (变换后系数数据结构)
–1D arrays,m_pcTrCoeffY,m_pcTrCoeffCb andm_pcTrCoeffCr are allocated in LCU
For each CU, getCoeffY, getCoeffCb and getCoeffCr give the starting point of coefficients. They are arranged using raster-scan