107
ETC2: Texture Compression using Invalid Combinations Jacob Ström, Martin Pettersson Ericsson Research

ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

ETC2 Texture Compression using

Invalid Combinations

Jacob Stroumlm Martin PetterssonEricsson Research

2

Outline

Motivation Previous workETC1 advantages and shortcomingsInvalid Codes and their useETC 2 = ETC1 + three new modesResults compared to ETC 1 and DXTC

3

Why 3D Graphics on a Mobile Phone

Man-Machine InterfacesScreen SaversGamesMaps Messaging Browsing and more

4

Why is 3D Graphics Hard on a Mobile Phone

Limited resources

5

Why is 3D Graphics Hard on a Mobile Phone

Limited resourcesSmall amount of memoryLittle memory bandwidthLittle chip area for special purposePowered by batteries

6

Texture Compression Helps

Small amount of memoryndash More texture data can fit in the limited amount of memory

Little memory bandwidthndash More texturing possible for same amount of bandwidth

Little chip area for special purposendash A texture cache using compressed data can be made

smaller

Powered by batteriesndash Reduced bandwidth means lower energy consumption

7

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

8

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

9

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

10

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

11

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

12

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 2: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

2

Outline

Motivation Previous workETC1 advantages and shortcomingsInvalid Codes and their useETC 2 = ETC1 + three new modesResults compared to ETC 1 and DXTC

3

Why 3D Graphics on a Mobile Phone

Man-Machine InterfacesScreen SaversGamesMaps Messaging Browsing and more

4

Why is 3D Graphics Hard on a Mobile Phone

Limited resources

5

Why is 3D Graphics Hard on a Mobile Phone

Limited resourcesSmall amount of memoryLittle memory bandwidthLittle chip area for special purposePowered by batteries

6

Texture Compression Helps

Small amount of memoryndash More texture data can fit in the limited amount of memory

Little memory bandwidthndash More texturing possible for same amount of bandwidth

Little chip area for special purposendash A texture cache using compressed data can be made

smaller

Powered by batteriesndash Reduced bandwidth means lower energy consumption

7

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

8

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

9

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

10

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

11

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

12

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 3: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

3

Why 3D Graphics on a Mobile Phone

Man-Machine InterfacesScreen SaversGamesMaps Messaging Browsing and more

4

Why is 3D Graphics Hard on a Mobile Phone

Limited resources

5

Why is 3D Graphics Hard on a Mobile Phone

Limited resourcesSmall amount of memoryLittle memory bandwidthLittle chip area for special purposePowered by batteries

6

Texture Compression Helps

Small amount of memoryndash More texture data can fit in the limited amount of memory

Little memory bandwidthndash More texturing possible for same amount of bandwidth

Little chip area for special purposendash A texture cache using compressed data can be made

smaller

Powered by batteriesndash Reduced bandwidth means lower energy consumption

7

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

8

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

9

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

10

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

11

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

12

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 4: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

4

Why is 3D Graphics Hard on a Mobile Phone

Limited resources

5

Why is 3D Graphics Hard on a Mobile Phone

Limited resourcesSmall amount of memoryLittle memory bandwidthLittle chip area for special purposePowered by batteries

6

Texture Compression Helps

Small amount of memoryndash More texture data can fit in the limited amount of memory

Little memory bandwidthndash More texturing possible for same amount of bandwidth

Little chip area for special purposendash A texture cache using compressed data can be made

smaller

Powered by batteriesndash Reduced bandwidth means lower energy consumption

7

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

8

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

9

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

10

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

11

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

12

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 5: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

5

Why is 3D Graphics Hard on a Mobile Phone

Limited resourcesSmall amount of memoryLittle memory bandwidthLittle chip area for special purposePowered by batteries

6

Texture Compression Helps

Small amount of memoryndash More texture data can fit in the limited amount of memory

Little memory bandwidthndash More texturing possible for same amount of bandwidth

Little chip area for special purposendash A texture cache using compressed data can be made

smaller

Powered by batteriesndash Reduced bandwidth means lower energy consumption

7

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

8

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

9

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

10

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

11

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

12

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 6: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

6

Texture Compression Helps

Small amount of memoryndash More texture data can fit in the limited amount of memory

Little memory bandwidthndash More texturing possible for same amount of bandwidth

Little chip area for special purposendash A texture cache using compressed data can be made

smaller

Powered by batteriesndash Reduced bandwidth means lower energy consumption

7

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

8

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

9

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

10

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

11

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

12

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 7: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

7

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

8

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

9

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

10

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

11

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

12

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 8: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

8

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

9

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

10

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

11

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

12

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 9: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

9

Previous Work

CCC [Campbell et al rsquo86]col 0

col 1

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

10

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

11

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

12

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 10: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

10

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

11

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

12

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 11: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

11

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

12

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 12: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

12

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 13: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

13

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 14: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

14

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 15: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

15

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 16: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

16

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 17: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

17

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 18: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

18

Previous Work

CCC [Campbell et al rsquo86]

S3TCDXTC [Iourcha et al rsquo99]

PVR-TC [Fenney rsquo03]

Compressed Lossless Texture Representation and Caching [Inada and McCool 06rsquo]

ndash uses special purpose caches to allow for variable bit rate

col 0

col 1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

col 0

col 3

col 1

col 2

0 0 1 1

0 1 1 1

0 1 1 1

0 1 1 1

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 19: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

19

Previous Work continued

Of the fixed rate systems S3TCDXTC achieved the best qualityCould a equally good system of lower complexity be builtPACKMAN [Strom and Akenine-Moller rsquo03]

ndash very simple but considerably lower quality (around 25 dB)

iPACKMANEricsson Texture Compression (ETC) [Strom and Akenine-Moller rsquo05]

ndash still simple and quality on par with S3TCDXTC

Could ETC be enhanced to surpass S3TCDXTC in quality

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 20: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

20

Recap ETC1

The human visual system is more sensitive to luminance than to chrominanceThe idea is to specify the base color for an entire 2x4 block (base color marked with a blue circle)The luminance can then be changed per pixel by moving along the intensity direction (111)

R

Gdirection (111)

or

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 21: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

21

ETC1 Recap

On a macro level it can look like this

+ =per-pixel

luminanceresulting imageldquobase colorrdquo

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 22: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

22

ETC1 Recap

This is all fine if the variation inside a sub-block is aligned more or less with the intensity direction

G

Bdirection (111)

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 23: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

23

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

originalblock

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 24: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

24

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 25: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

25

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

good fit with intensity dir

G

B

originalblock

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 26: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

26

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 27: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

27

However if the block contains a number of pixels with very different chrominance the results will be poor

ETC1 Weaknesses

poor fit

G

B

originalblock

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 28: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

28

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminance

original S3TCDXTC ETC 10

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 29: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

29

Weaknesses ETC 10

Another weakness is smooth transitions between two colors of equal luminanceSince only one color per sub-block is possible block artifacts are more pronounced than for S3TCDXTC for such blocks

original S3TCDXTC ETC1

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 30: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

30

How to Improve ETC1

We have realized the need to improve ETC1 for certain blocks but how do we do itEach 4x4 blocks takes 64 bits in ETC1 One way would be to add another bit to signal new modes for problematic blocksBut 65 bits per block is less than ideal

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 31: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

31

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 32: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

32

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 33: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

33

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 34: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

34

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 35: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

35

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being black

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 36: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

36

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquo

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 37: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

37

Redundant Bit Sequences

In S3TC there are coded bit sequences that produce exactly the same output block

This is of course wasteful so instead the rdquodarkestrdquocolour is forced to be the first one If not the block is decoded with one color being blackThis technique was also used by Munkberg et al under the name the rdquoordering trickrdquoWe looked for redundant bit combinations in ETC1

0 2 3 3

1 3 3 3

2 3 3 3

3 3 3 3

col 0

col 3

col 1

col 2

3 1 0 0

2 0 0 0

1 0 0 0

0 0 0 0

col 0

col 3

col 1

col 2

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 38: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

38

Invalid Bit Sequences and their use

and found nothing exploitable

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 39: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

39

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 40: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

40

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modes

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 41: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

41

Invalid Bit Sequences and their use

and found nothing exploitableBut what if some 64-bit sequences do not produce valuable blocks They can then be used for new modesSo we started to look for invalid bit sequences instead

All 64-bit sequences

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00010000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00100010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 10111111 0010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010 01101111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111

invalid

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 42: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

42

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 43: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

43

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 44: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

44

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block

leftencode asRGB555

rightencode asleft + dRGB333

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 45: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

45

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dR

leftencode asRGB555

rightencode asleft + dRGB333

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 46: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

46

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoder

leftencode asRGB555

rightencode asleft + dRGB333

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 47: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

47

Invalid Bit Sequences in ETC1

In some blocks in ETC1 the base color of the right sub-block is coded differentially wrt the left sub-block Right_RED = Left_RED + dRBut if Left_RED is 0 a negative dR would mean a negative color (physically impossible) Such a bit sequence is possible but would never be used by the encoderThese bit sequences can be detected and the bits can be decoded a different way

leftencode asRGB555

rightencode asleft + dRGB333

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 48: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

48

Schematic of a ETC2 decoder

ETC1decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 49: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

49

Schematic of a ETC2 decoder

ETC1decoder

auxiliarymode

decoder

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

ETC2 decoder

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 50: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

50

Schematic of a ETC2 decoder

ETC1 can always be used ndash ETC2 better or sameDecoder is backward compatible

ETC1decoder

auxiliarymode

decoder

overflowdetector

11110010 1110 0110 1100 1001 0010 0110 1100 1001 0010 0110 1100 1011 0010

compressedbits

mux

ETC2 decoder

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 51: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

51

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 52: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

52

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflow remaining bits can be used for a new mode

55 bits

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 53: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

53

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 54: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

54

How many bits can we recover

How much data can be transmitted using bit sequences that overflow in the red component But R+dR can overflow (or underflow) in exactly 16 ways which means we can signal 4 more bits for the new mode

R dR

signals differentialmode

signals overflowand carriesfour bits

remaining bits can be used for a new mode

55 bits

59 bits can be used for new mode

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 55: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

55

More Modes

But the Green Component can also overflow so we can get another mode

R dR

signals diffe-rential mode

G dG 48 bits

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 56: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

56

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that mode

R dR

signals diffe-rential mode

G dG 48 bits

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 57: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

57

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dR

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG 48 bits

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 58: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

58

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 59: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

59

More Modes

But the Green Component can also overflow so we can get another modeWe must first make sure the red does not overflow otherwise the decoder will think it is that modeR+dR can avoid to overflow in 256-16 ways so we can safely store 7 bits in R+dRAnd 4 bits in G+dG

R dR

signals diffe-rential mode

signals non-overflow and carries 7 bits

G dG

signals overflow and carries 4 bits

48 bits

altogether 58 bits

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 60: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

60

More Modes continued

The same can be done for the blue component and we have three new modes

ndash Mode 1 59 bits payloadndash Mode 2 58 bits payloadndash Mode 3 57 bits payload

We want three new modes that targets blocks that ETC1 has most problems with

ndash Colors in block have very different chrominancesndash Smooth transitions between several colors in the block

The first problem was addressed by us in a previous paper published at a small national conference

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 61: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

61

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominance

G

B

originalblock

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 62: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

62

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 63: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

63

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 64: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

64

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the block

G

B

originalblock

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 65: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

65

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 66: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

66

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 67: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

67

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 68: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

68

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 69: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

69

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 70: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

70

Mode 1 The rdquoT-Moderdquo

The first mode targets blocks where some pixels are of a very different chrominanceTwo colors are stored in the blockTwo more colors are obtained by modulating the first color along the intensity direction

G

B

originalblock

T-mode ETC1

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 71: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

71

T-Mode Decompression

The first color is expanded from RGB444 to RGB888

12 bit RGB444

12 10 3

12 bit RGB444

20417051

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 72: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

72

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers

12 bit RGB444

5

12 bit RGB444

20417051[36111623324164]

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 73: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

73

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051

+32[36111623324164]

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 74: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

74

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 75: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

75

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colors

12 bit RGB444 12 bit RGB444

20417051 20417051

+32-32

17213819

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 76: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

76

T-Mode Decompression

The first color is expanded from RGB444 to RGB888Three bits are then used to select one of eight intensity modifiers This value is then used additively and subtractively to get two more colorsThe second color is then expanded to RGB888

12 bit RGB444 12 bit RGB444

4 4 4

20417051 20417051

+32-32

17213819 686868

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 77: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

77

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 78: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

78

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

2

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 79: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

79

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

1

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 80: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

80

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 81: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

81

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 82: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

82

T-Mode Decompression

Two bits per pixel decides which of the four colors to choose from All in all 59 bits which fits into the first mode

12 bit RGB444 12 bit RGB444

20417051 2041705117213819 686868

col0 col2col1 col3

3

3 bits 32 bits pixel indices

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 83: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

83

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulated

originalblock R

G

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 84: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

84

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the block

originalblock R

G

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 85: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

85

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction

originalblock R

G

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 86: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

86

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped

originalblock R

G

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 87: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

87

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 88: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

88

Mode 2 The rdquoH-Moderdquo

The second mode targets blocks where there are two groups of pixels that can be intensity modulatedTwo colors are stored in the blockBoth colors are modulated in the intensity direction and clamped These four colors are used to build up the block

originalblock

H-modeR

G

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 89: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

89

H-mode Ordering Trick

The H mode needs 59 bits just as the T-modeHowever only 58 bits are availableBut since the two colors are interchangeable we can use the ldquoordering trickrdquo to signal an extra bit

ndash ldquoDarkestrdquo color first signals a 0ndash ldquoBrightestrdquo color first signals a 1

This way we can fit the H-mode into the 58 bit slot

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 90: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

90

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTC

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 91: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

91

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special mode

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 92: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

92

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 93: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

93

Last Mode The Planar mode

Some blocks have very slowly varying colors These are not always well approximated with ETC or S3TCDXTCSuch blocks contain very little information ndash can be handled well with a special modeThree colors are stored per block C0 CH and CV in RGB676 The color is interpolated colinearly (using a planar model) in between

three points define a plane

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 94: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

94

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe textures were both photographic images and game texturesThe system has been compared to

ndash ETC1 ndash S3TCDXTCndash ATI-TC

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 95: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

95

Results

For the highest mipmap ndash 08 dB higher quality than S3TCDXTC (same bitrate)ndash 10 dB higher quality than ETC1 (same bitate)ndash 18 dB higher quality than ATI-TC (same bitrate)

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 96: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

97

Results ndash All Mipmaps margin to next best varies between 08 dB and 13 dB

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 97: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

98

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 98: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

99

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 99: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

100

Results ETC1T-modeH-modePlanar

original S3TCDXTC ETC 1 ETC2

original S3TCDXTC ETC1 ETC2

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 100: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

101

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 101: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

102

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 102: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

103

Results cont

ETC1T-modeH-modePlanar

original S3TCDXTC ETC1 ETC2

original S3TCDXTC ETC1 ETC2

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 103: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

104

Conclusion

We have presented ETC2It is backward compatible with ETC1 ndash new hardware will automatically decompress both correctlyThree new modes are added without changing the old modes ndash thus it is guaranteed to always be better or equal to ETC1Tests show that it is 08 dB better than S3TCDXTC which is a significant improvementVisual improvements are especially pronounced for blocks with sharp chrominance changes and for smooth regions

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 104: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

Thank You

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 105: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

106

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 106: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

107

Decompression Complexity

Due to the new modes ETC2 is more complex than ETC1 We have not implemented the two algorithms in VHDL in order to compare their complexityThe extra cost for the T- and H- mode is mostly control logic (which is simple) seven multiplexors per color channel and one 12-bit comparatorThe extra cost for the planar mode is five adders per color channel and multiplexors

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results
Page 107: ETC2: Texture Compression Using Invalid Combinations · Texture Compression Helps Small amount of memory – More texture data can fit in the limited amount of memory Little memory

108

Results

ETC2 was tested on 64 textures each texture on all mipmap sizes between 512x512 and 8x8 pixelsThe images were contained both photographic images and game texturesThe system has been compared to

ndash ETC1 (compressed exhaustively)ndash S3TCDXTC (compressed using ATIrsquos The Compressonator

with weights set to 111 to maximize PSNR)ndash ATI-TC (compressed with ATIrsquos The Compressonator)

  • ETC2 Texture Compression using Invalid Combinations
  • Outline
  • Why 3D Graphicson a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Why is 3D Graphics Hardon a Mobile Phone
  • Texture Compression Helps
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Work
  • Previous Workcontinued
  • Recap ETC1
  • ETC1 Recap
  • ETC1 Recap
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • ETC1 Weaknesses
  • WeaknessesETC 10
  • WeaknessesETC 10
  • How to Improve ETC1
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Redundant Bit Sequences
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequencesand their use
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Invalid Bit Sequences in ETC1
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • Schematic of a ETC2 decoder
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • How many bits can we recover
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modes
  • More Modescontinued
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • Mode 1 The rdquoT-Moderdquo
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • T-Mode Decompression
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • Mode 2 The rdquoH-Moderdquo
  • H-mode Ordering Trick
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Last Mode The Planar mode
  • Results
  • Results
  • Results ndash All Mipmapsmargin to next best varies between 08 dB and 13 dB
  • Results
  • Results
  • Results
  • Resultscont
  • Resultscont
  • Resultscont
  • Conclusion
  • Thank You
  • Slide Number 106
  • Decompression Complexity
  • Results