6
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 8 9 10 11 12 13 14 15 LCU (e.g. 64x64) Sub-CU: TComDataCU* Sub-CU: TComDataCU* Processing order

Data structure and access method (1)

Embed Size (px)

DESCRIPTION

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. LCU (e.g. 64x64). Sub-CU: TComDataCU*. 0. 1. 2. 3. 4. 9. 5. 6. 15. Sub-CU: TComDataCU*. 7. 8. 10. 11. 14. - PowerPoint PPT Presentation

Citation preview

Page 1: 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

Page 2: Data structure and access method (1)

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

Page 3: Data structure and access method (1)

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

Page 4: Data structure and access method (1)

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

Page 5: Data structure and access method (1)

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

Page 6: Data structure and access method (1)

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