Data structure and access method (1)
-
Upload
jenette-bailey -
Category
Documents
-
view
22 -
download
1
description
Transcript of Data structure and access method (1)
Samsung Electronics Co. Ltd. and British Broadcasting Corporation, 2010
Data structure and access method (1)
• LCU vs. Sub-CU– All CUs are handled through TComDataCU* pointer
– From the LCU (largest CU), Sub-CU is processed recursively by z-scan
0
1 2
3 4
5 6
7 89
10 11
12 1314
15
LCU (e.g. 64x64) Sub-CU: TComDataCU*
Sub-CU: TComDataCU*
Processing order
Samsung Electronics Co. Ltd. and British Broadcasting Corporation, 2010
Data structure and access method (2)
• 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
LCU (e.g. 64x64)
4
Basic unit for storage
Samsung Electronics Co. Ltd. and British Broadcasting Corporation, 2010
Data structure and access method (3)
• Every information in CU is accessed by index– Basically, every index is the storage unit number within the CU
– In source-code, AbsPartIdx means absolute index in the given CU
LCU (e.g. 64x64)
Index in CU
0 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
Sub-CU: TComDataCU* pcCU
pcCU->getPredictionMode(0)
Basic unit for storage
Samsung Electronics Co. Ltd. and British Broadcasting Corporation, 2010
Data structure and access method (4)
• How to obtain absolute index in LCU?– Each TComDataCU class has m_uiAbsIdxInLCU, which means the
absolute z-scan index in LCU basis
– Useful to derive index of neighbouring CUs
0 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 21
22 23
24 25
26 27
28 29
30 31
32 33
34 35
36 37
38 39
40 41
42 43
44 45
46 47
48 49
50 51
52 53
54 55
56 57
58 59
60 61
62 63
LCU (e.g. 64x64)
Sub-CU: TComDataCU* pcCU
pcCU->m_uiAbsIdxInLCU
Samsung Electronics Co. Ltd. and British Broadcasting Corporation, 2010
Data structure and access method (5)
• How to convert between z-scan and raster scan in LCU-based index?– Two arrays, g_auiZscanToRaster and g_auiRasterToZscan
– g_auiZscanToRaster[ z-scan index ] = raster scan index
– g_auiRasterToZscan[ raster index ] = z-scan index
– Raster scan is useful to derive index of neighbouring CUs
LCU (e.g. 64x64, z-scan)
0 1
8 9
2 3
10 11
16 17
24 25
18 19
26 27
4 5
12 13
6 7
14 15
20 21
28 29
22 23
30 31
32 33
40 41
34 35
42 43
48 49
56 57
50 51
58 59
36 37
44 45
38 39
46 47
52 53
60 61
54 55
62 63
LCU (e.g. 64x64, raster)
g_auiZscanToRaster
g_auiRasterToZscan
0 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 21
22 23
24 25
26 27
28 29
30 31
32 33
34 35
36 37
38 39
40 41
42 43
44 45
46 47
48 49
50 51
52 53
54 55
56 57
58 59
60 61
62 63
Samsung Electronics Co. Ltd. and British Broadcasting Corporation, 2010
Data structure and access method (6)
• Transform coefficient data structure– 1D arrays, m_pcTrCoeffY, m_pcTrCoeffCb and m_pcTrCoeffCr are
allocated in LCU
– For each CU, getCoeffY, getCoeffCb and getCoeffCr give the starting point of coefficients. They are arranged using raster-scan
0
1 2
3 4
LCU (e.g. 64x64)
16
LCU, m_pcTrCoeffY (64x64 = 4096 entries)
Sub-CU: TComDataCU* pcCU
pcCU->getCoeffY()
16x16 = 256 entries