Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)