Thursday, April 9, 2020

BC1 encoding initial endpoint determination benchmark

Benchmark of BC1 encoders using different methods to determine the initial endpoints: 

stb_dxt.h PCA: 35.754 dB, .551 us/block 
rgbcx.h PCA: 35.794, .651 
rgbcx.h PCA+inset: 35.925, .640 
rgbcx.h 2D LS+inset+opt round: 35.920 dB, .541 
rgbcx.h bounds+inset+XY covar: 35.836 dB, .472

This is across 100 textures, so even small avg. improvements are significant. Amazingly, the inset method (a few lines of code) buys rgbcx.h PCA .131 dB! All encoders should be doing this. You *must* pay attention to every little detail in these texture encoders.

Quality is performance in competitive texture block encoding, so even small boosts in quality allow us to dial down the # of total orders to check for the same average quality. This leads to a more competitive encoder.

Methods:

- bounds+inset+XY covar method is Castano's/van Waveren's. 
All encoders should be applying the "inset" method describes in this paper, because from a quantization perspective it makes perfect sense.

- 2D LS is Humus's method, ported to mostly integer math, with added inset+optimal rounding to 565: 

- stb_dxt.h and rgbcx.h PCA is 3D integer PCA (3x3 covar+4 power iters, pick 2 colors along principle axis). 

- PCA+inset+optimal rounding does PCA, picks 2 colors, then lerps the 2 colors by 1/16 or 15/16, then optimal rounds to 565.

Wednesday, April 8, 2020

AMD GPU BC1 decoding lookup tables

Here are the lookup tables you can use to determine how AMD GPU's decode BC1 textures: https://pastebin.com/raw/LSgn0ent

These tables were gathered straight from a Radeon RX 580 by using a small D3D9 app that rendered a textured BC1 quad with point sampling and did a CPU readback. I used this same D3D9 app on an NVidia 1080 and the pixels I read back exactly matched what the NV BC1 formulas on the web predicted, so I'm confident in the approach.

For selectors 0 and 1, the 5->8 and 6->8 endpoint conversion just uses bitshifts/OR's (same as ideal BC1). For 4-color selector 2, use the tables. For selector 3, just invert the low/high endpoints. (I've verified you can do this.) For 3-color selector 2, use the tables.

To access the tables, use [color0_component*32+color1_component], or *64 for 6-bits:
Block Compression (Direct3D 10) - Win32 appsdocs.microsoft.com

Converting the tables to formulas sounds like an interesting puzzle.

Example showing exactly how to use the tables to decode AMD BC1:


Tuesday, April 7, 2020

CPU BC1 Encoding Pareto Frontier

rgbcx.h now defines the BC1 Pareto Frontier for high quality CPU BC1 encoding (i.e. it's stronger than all other available practical high quality CPU encoders for both performance and quality):


Data:

Image

I didn't include AMD Compressonator's encoder because in previous benchmarks (conducted by others) it was beaten by a weaker version of rgbcx.h for both perf. and quality.

The overall CPU BC1 Pareto frontier is defined by ispc_texcomp (at low quality: ~33.1 dB) and rgbcx for any higher quality level. We're going to need SIMD to compete against ispc_texcomp BC1 (a weak stb_dxt clone), which is my next major goal.

To get rgbcx to compete against icbc for max. quality I had to add prioritized cluster fit support for 3-color blocks (not just 4).

It's possible to permit rgbcx to go to even higher quality levels by enlarging the total ordering tables. They're currently limited to 32 entries per total ordering.

I think rgbcx.h's max quality is slightly higher than icbc's HQ mode because prioritized cluster fit can afford to do optimal rounding and evaluate accurate MSE errors in every trial. Regular cluster fit can't afford to do so because it has to evaluate so many total orderings.

Links:
rgbcx: https://github.com/richgel999/bc7enc
libsquish: https://github.com/richgel999/libsquish
icbc: https://github.com/castano/icbc/blob/master/icbc.h

Saturday, April 4, 2020

New BC1 benchmark

Optimizing BC1 encoding is still useful and interesting because the same core algorithms are used in BC7 and ASTC/UASTC encoders. Most improvements made to BC1 encoding carry over nicely to the 2-bit and 3-bit selector modes of other formats.

Here's my latest benchmark:



The highest performing samples (above 37 dB) are rgbcx in 3-color block mode, where it can use transparent black colors (selector 3) for opaque black or very dark texels. (The only other BC1 encoder that might support this mode is the one in NVidia Texture Tools, but I'm not sure.) This technically turns opaque textures into textures with a useless alpha channel, but if the engine or shader just ignores alpha then this mode performs exceptionally well in the average case. The flags are cEncodeBC1Use3ColorBlocksForBlackPixels | cEncodeBC1Use3ColorBlocks

This mode is super useful because it allows the 3-color block encoder to focus the endpoints on the brighter texels within the block, potentially greatly increasing quality. Blocks with very dark or black texels are common in practice.

If your engine supports ignoring the alpha channel in sampled BC1 textures then everyone using BC1 should be using encoders that support this.

Data:

rgbcx.h flags:

- h is cEncodeBC1HighQuality
- ut is cEncodeBC1UseLikelyTotalOrderings
- ub is cEncodeBC1Use3ColorBlocksForBlackPixels
- 3 is cEncodeBC1Use3ColorBlocks

From the benchmarks I've seen it appears NVidia Texture Tools BC1 is around the same perf. as libsquish at slightly higher quality:


I believe this was rgbcx using 10 total orderings (the default setting). The max is 32, and every additional total ordering increases average quality. So at higher settings rgbcx is likely competitive against nvtt while being faster.

I'm currently working on integrating NVTT into my test app.

Friday, February 28, 2020

UASTC benchmark

RGB PSNR over a 1,048,576 4x4 block compression torture test (random blocks from 81 test textures):
                                     
    Near-opt BC7 (BC7E slower):   41.743
    astcenc_thorough:             40.892
    UASTC (veryslow)->ASTC        40.373
    UASTC (veryslow)->BC7         39.965
    UASTC (slower)->ASTC          40.163
    UASTC (slower)->BC7:          39.782
    UASTC (default)->ASTC         39.372
    UASTC (default)->BC7:         39.171
    UASTC (faster)->ASTC          39.269
    UASTC (fastest)->ASTC         34.654
    UASTC (fastest)->BC7          34.554
    ispc_texcomp ASTC alpha_slow: 39.768
    stb_dxt BC1 HIGHQUAL:         32.479
    UASTC (slower)->BC1:          32.148
    UASTC (fastest)->BC1          32.256
    UASTC (slower)->ETC1:         30.956
    UASTC (fastest)->ETC1:        30.113
    UASTC (slower)->R11:          37.942

The 4096x4096 .PNG is here.

The EAC R11 format is R PSNR, and is included for comparison purposes.

Notice that the UASTC->BC1 quality actually increased when going from "slower" to "fastest" mode. This is because in "fastest" mode, almost all the blocks used UASTC mode 0, which is more compatible with BC1. (UASTC has 1-2 bits of BC1 hints per block that allow the UASTC block to be converted directly to BC1 blocks, skipping real-time encoding.)


Monday, February 24, 2020

LDR ASTC mode list (all CEM's the same)

ASTC is a very complex format. There are 407 valid 4x4 LDR ASTC encodings (or configurations?) that meet the following criteria:

- LDR only, 4x4 block size
- Planes: 1 or 2
- Subsets: 1-4 (one plane) or 1-3 (dual plane)
- CEM's: LDR only (0, 1, 4, 5, 6, 8, 9, 10, 12, 13), all CEM's the same for each subset
- Weight Ranges: 0-11
- Endpoint Ranges: 0-19

If the "all CEM's the same" rule was relaxed there would be a ridiculous number of modes to list (in the thousands).

Here's the list. I generated it by iterating through all the various configurations and trying to encode each to a valid ASTC block. To double check I used an open source ASTC decompressor to ensure the block was decodable without errors. I went through this list to determine the 18 modes UASTC uses.

DualPlane: 0, Subsets: 1, WeightRange: 1 (3 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 1 (3 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 1 (3 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 1 (3 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 1 (3 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 1 (3 levels), CEM: 8 (RGB Direct   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 1 (3 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 1 (3 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 1 (3 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 1 (3 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 2 (4 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 2 (4 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 2 (4 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 2 (4 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 2 (4 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 2 (4 levels), CEM: 8 (RGB Direct   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 2 (4 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 2 (4 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 2 (4 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 2 (4 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 3 (5 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 3 (5 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 3 (5 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 3 (5 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 3 (5 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 3 (5 levels), CEM: 8 (RGB Direct   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 3 (5 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 3 (5 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 3 (5 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 3 (5 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 4 (6 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 4 (6 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 4 (6 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 4 (6 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 4 (6 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 4 (6 levels), CEM: 8 (RGB Direct   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 4 (6 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 4 (6 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 4 (6 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 4 (6 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 5 (8 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 5 (8 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 5 (8 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 5 (8 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 5 (8 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 5 (8 levels), CEM: 8 (RGB Direct   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 5 (8 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 5 (8 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 5 (8 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 1, WeightRange: 5 (8 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 1, WeightRange: 6 (10 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 6 (10 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 6 (10 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 6 (10 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 6 (10 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 6 (10 levels), CEM: 8 (RGB Direct   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 6 (10 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 6 (10 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 6 (10 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 17 (128 levels)
DualPlane: 0, Subsets: 1, WeightRange: 6 (10 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 17 (128 levels)
DualPlane: 0, Subsets: 1, WeightRange: 7 (12 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 7 (12 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 7 (12 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 7 (12 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 7 (12 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 7 (12 levels), CEM: 8 (RGB Direct   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 7 (12 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 7 (12 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 7 (12 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 16 (96 levels)
DualPlane: 0, Subsets: 1, WeightRange: 7 (12 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 16 (96 levels)
DualPlane: 0, Subsets: 1, WeightRange: 8 (16 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 8 (16 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 8 (16 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 8 (16 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 8 (16 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 8 (16 levels), CEM: 8 (RGB Direct   ), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 1, WeightRange: 8 (16 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 1, WeightRange: 8 (16 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 1, WeightRange: 8 (16 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 13 (48 levels)
DualPlane: 0, Subsets: 1, WeightRange: 8 (16 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 13 (48 levels)
DualPlane: 0, Subsets: 1, WeightRange: 9 (20 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 9 (20 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 9 (20 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 9 (20 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 9 (20 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 9 (20 levels), CEM: 8 (RGB Direct   ), EndpointRange: 16 (96 levels)
DualPlane: 0, Subsets: 1, WeightRange: 9 (20 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 16 (96 levels)
DualPlane: 0, Subsets: 1, WeightRange: 9 (20 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 16 (96 levels)
DualPlane: 0, Subsets: 1, WeightRange: 9 (20 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 1, WeightRange: 9 (20 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 1, WeightRange: 10 (24 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 10 (24 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 10 (24 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 10 (24 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 10 (24 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 10 (24 levels), CEM: 8 (RGB Direct   ), EndpointRange: 14 (64 levels)
DualPlane: 0, Subsets: 1, WeightRange: 10 (24 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 14 (64 levels)
DualPlane: 0, Subsets: 1, WeightRange: 10 (24 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 14 (64 levels)
DualPlane: 0, Subsets: 1, WeightRange: 10 (24 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 10 (24 levels)
DualPlane: 0, Subsets: 1, WeightRange: 10 (24 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 10 (24 levels)
DualPlane: 0, Subsets: 1, WeightRange: 11 (32 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 11 (32 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 1, WeightRange: 11 (32 levels), CEM: 4 (LA Direct    ), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 1, WeightRange: 11 (32 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 1, WeightRange: 11 (32 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 1, WeightRange: 11 (32 levels), CEM: 8 (RGB Direct   ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 1, WeightRange: 11 (32 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 1, WeightRange: 11 (32 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 1, WeightRange: 11 (32 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 1, WeightRange: 11 (32 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 2, WeightRange: 1 (3 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 1 (3 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 1 (3 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 1 (3 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 1 (3 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 1 (3 levels), CEM: 8 (RGB Direct   ), EndpointRange: 14 (64 levels)
DualPlane: 0, Subsets: 2, WeightRange: 1 (3 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 14 (64 levels)
DualPlane: 0, Subsets: 2, WeightRange: 1 (3 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 14 (64 levels)
DualPlane: 0, Subsets: 2, WeightRange: 1 (3 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 9 (20 levels)
DualPlane: 0, Subsets: 2, WeightRange: 1 (3 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 9 (20 levels)
DualPlane: 0, Subsets: 2, WeightRange: 2 (4 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 2 (4 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 2 (4 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 2 (4 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 2 (4 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 2 (4 levels), CEM: 8 (RGB Direct   ), EndpointRange: 12 (40 levels)
DualPlane: 0, Subsets: 2, WeightRange: 2 (4 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 12 (40 levels)
DualPlane: 0, Subsets: 2, WeightRange: 2 (4 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 12 (40 levels)
DualPlane: 0, Subsets: 2, WeightRange: 2 (4 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 2, WeightRange: 2 (4 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 2, WeightRange: 3 (5 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 3 (5 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 3 (5 levels), CEM: 4 (LA Direct    ), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 2, WeightRange: 3 (5 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 2, WeightRange: 3 (5 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 2, WeightRange: 3 (5 levels), CEM: 8 (RGB Direct   ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 2, WeightRange: 3 (5 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 2, WeightRange: 3 (5 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 2, WeightRange: 3 (5 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 2, WeightRange: 3 (5 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 2, WeightRange: 4 (6 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 4 (6 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 4 (6 levels), CEM: 4 (LA Direct    ), EndpointRange: 17 (128 levels)
DualPlane: 0, Subsets: 2, WeightRange: 4 (6 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 17 (128 levels)
DualPlane: 0, Subsets: 2, WeightRange: 4 (6 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 17 (128 levels)
DualPlane: 0, Subsets: 2, WeightRange: 4 (6 levels), CEM: 8 (RGB Direct   ), EndpointRange: 10 (24 levels)
DualPlane: 0, Subsets: 2, WeightRange: 4 (6 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 10 (24 levels)
DualPlane: 0, Subsets: 2, WeightRange: 4 (6 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 10 (24 levels)
DualPlane: 0, Subsets: 2, WeightRange: 4 (6 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 2, WeightRange: 4 (6 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 2, WeightRange: 5 (8 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 5 (8 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 5 (8 levels), CEM: 4 (LA Direct    ), EndpointRange: 15 (80 levels)
DualPlane: 0, Subsets: 2, WeightRange: 5 (8 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 15 (80 levels)
DualPlane: 0, Subsets: 2, WeightRange: 5 (8 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 15 (80 levels)
DualPlane: 0, Subsets: 2, WeightRange: 5 (8 levels), CEM: 8 (RGB Direct   ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 2, WeightRange: 5 (8 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 2, WeightRange: 5 (8 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 2, WeightRange: 5 (8 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 2, WeightRange: 5 (8 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 2, WeightRange: 6 (10 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 6 (10 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 6 (10 levels), CEM: 4 (LA Direct    ), EndpointRange: 13 (48 levels)
DualPlane: 0, Subsets: 2, WeightRange: 6 (10 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 13 (48 levels)
DualPlane: 0, Subsets: 2, WeightRange: 6 (10 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 13 (48 levels)
DualPlane: 0, Subsets: 2, WeightRange: 6 (10 levels), CEM: 8 (RGB Direct   ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 2, WeightRange: 6 (10 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 2, WeightRange: 6 (10 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 2, WeightRange: 6 (10 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 2, WeightRange: 6 (10 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 2, WeightRange: 7 (12 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 7 (12 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 7 (12 levels), CEM: 4 (LA Direct    ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 2, WeightRange: 7 (12 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 2, WeightRange: 7 (12 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 2, WeightRange: 7 (12 levels), CEM: 8 (RGB Direct   ), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 2, WeightRange: 7 (12 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 2, WeightRange: 7 (12 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 2, WeightRange: 8 (16 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 8 (16 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 2, WeightRange: 8 (16 levels), CEM: 4 (LA Direct    ), EndpointRange: 9 (20 levels)
DualPlane: 0, Subsets: 2, WeightRange: 8 (16 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 9 (20 levels)
DualPlane: 0, Subsets: 2, WeightRange: 8 (16 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 9 (20 levels)
DualPlane: 0, Subsets: 2, WeightRange: 8 (16 levels), CEM: 8 (RGB Direct   ), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 2, WeightRange: 8 (16 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 2, WeightRange: 8 (16 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 2, WeightRange: 9 (20 levels), CEM: 0 (L Direct     ), EndpointRange: 17 (128 levels)
DualPlane: 0, Subsets: 2, WeightRange: 9 (20 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 17 (128 levels)
DualPlane: 0, Subsets: 2, WeightRange: 9 (20 levels), CEM: 4 (LA Direct    ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 2, WeightRange: 9 (20 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 2, WeightRange: 9 (20 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 2, WeightRange: 10 (24 levels), CEM: 0 (L Direct     ), EndpointRange: 14 (64 levels)
DualPlane: 0, Subsets: 2, WeightRange: 10 (24 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 14 (64 levels)
DualPlane: 0, Subsets: 2, WeightRange: 10 (24 levels), CEM: 4 (LA Direct    ), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 2, WeightRange: 10 (24 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 2, WeightRange: 10 (24 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 2, WeightRange: 11 (32 levels), CEM: 0 (L Direct     ), EndpointRange: 10 (24 levels)
DualPlane: 0, Subsets: 2, WeightRange: 11 (32 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 10 (24 levels)
DualPlane: 0, Subsets: 3, WeightRange: 1 (3 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 3, WeightRange: 1 (3 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 3, WeightRange: 1 (3 levels), CEM: 4 (LA Direct    ), EndpointRange: 14 (64 levels)
DualPlane: 0, Subsets: 3, WeightRange: 1 (3 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 14 (64 levels)
DualPlane: 0, Subsets: 3, WeightRange: 1 (3 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 14 (64 levels)
DualPlane: 0, Subsets: 3, WeightRange: 1 (3 levels), CEM: 8 (RGB Direct   ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 3, WeightRange: 1 (3 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 3, WeightRange: 1 (3 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 3, WeightRange: 2 (4 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 3, WeightRange: 2 (4 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 3, WeightRange: 2 (4 levels), CEM: 4 (LA Direct    ), EndpointRange: 12 (40 levels)
DualPlane: 0, Subsets: 3, WeightRange: 2 (4 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 12 (40 levels)
DualPlane: 0, Subsets: 3, WeightRange: 2 (4 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 12 (40 levels)
DualPlane: 0, Subsets: 3, WeightRange: 2 (4 levels), CEM: 8 (RGB Direct   ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 3, WeightRange: 2 (4 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 3, WeightRange: 2 (4 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 3, WeightRange: 3 (5 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 3, WeightRange: 3 (5 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 3, WeightRange: 3 (5 levels), CEM: 4 (LA Direct    ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 3, WeightRange: 3 (5 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 3, WeightRange: 3 (5 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 3, WeightRange: 3 (5 levels), CEM: 8 (RGB Direct   ), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 3, WeightRange: 3 (5 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 3, WeightRange: 3 (5 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 3, WeightRange: 4 (6 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 3, WeightRange: 4 (6 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 3, WeightRange: 4 (6 levels), CEM: 4 (LA Direct    ), EndpointRange: 10 (24 levels)
DualPlane: 0, Subsets: 3, WeightRange: 4 (6 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 10 (24 levels)
DualPlane: 0, Subsets: 3, WeightRange: 4 (6 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 10 (24 levels)
DualPlane: 0, Subsets: 3, WeightRange: 4 (6 levels), CEM: 8 (RGB Direct   ), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 3, WeightRange: 4 (6 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 3, WeightRange: 4 (6 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 3, WeightRange: 5 (8 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 3, WeightRange: 5 (8 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 3, WeightRange: 5 (8 levels), CEM: 4 (LA Direct    ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 3, WeightRange: 5 (8 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 3, WeightRange: 5 (8 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 3, WeightRange: 5 (8 levels), CEM: 8 (RGB Direct   ), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 3, WeightRange: 5 (8 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 3, WeightRange: 5 (8 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 3, WeightRange: 6 (10 levels), CEM: 0 (L Direct     ), EndpointRange: 18 (160 levels)
DualPlane: 0, Subsets: 3, WeightRange: 6 (10 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 18 (160 levels)
DualPlane: 0, Subsets: 3, WeightRange: 6 (10 levels), CEM: 4 (LA Direct    ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 3, WeightRange: 6 (10 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 3, WeightRange: 6 (10 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 3, WeightRange: 7 (12 levels), CEM: 0 (L Direct     ), EndpointRange: 16 (96 levels)
DualPlane: 0, Subsets: 3, WeightRange: 7 (12 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 16 (96 levels)
DualPlane: 0, Subsets: 3, WeightRange: 7 (12 levels), CEM: 4 (LA Direct    ), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 3, WeightRange: 7 (12 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 3, WeightRange: 7 (12 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 3, WeightRange: 8 (16 levels), CEM: 0 (L Direct     ), EndpointRange: 13 (48 levels)
DualPlane: 0, Subsets: 3, WeightRange: 8 (16 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 13 (48 levels)
DualPlane: 0, Subsets: 3, WeightRange: 8 (16 levels), CEM: 4 (LA Direct    ), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 3, WeightRange: 8 (16 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 3, WeightRange: 8 (16 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 3, WeightRange: 9 (20 levels), CEM: 0 (L Direct     ), EndpointRange: 10 (24 levels)
DualPlane: 0, Subsets: 3, WeightRange: 9 (20 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 10 (24 levels)
DualPlane: 0, Subsets: 3, WeightRange: 10 (24 levels), CEM: 0 (L Direct     ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 3, WeightRange: 10 (24 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 3, WeightRange: 11 (32 levels), CEM: 0 (L Direct     ), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 3, WeightRange: 11 (32 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 4, WeightRange: 1 (3 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 4, WeightRange: 1 (3 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 4, WeightRange: 1 (3 levels), CEM: 4 (LA Direct    ), EndpointRange: 9 (20 levels)
DualPlane: 0, Subsets: 4, WeightRange: 1 (3 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 9 (20 levels)
DualPlane: 0, Subsets: 4, WeightRange: 1 (3 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 9 (20 levels)
DualPlane: 0, Subsets: 4, WeightRange: 2 (4 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 4, WeightRange: 2 (4 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 0, Subsets: 4, WeightRange: 2 (4 levels), CEM: 4 (LA Direct    ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 4, WeightRange: 2 (4 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 4, WeightRange: 2 (4 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 8 (16 levels)
DualPlane: 0, Subsets: 4, WeightRange: 3 (5 levels), CEM: 0 (L Direct     ), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 4, WeightRange: 3 (5 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 19 (192 levels)
DualPlane: 0, Subsets: 4, WeightRange: 3 (5 levels), CEM: 4 (LA Direct    ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 4, WeightRange: 3 (5 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 4, WeightRange: 3 (5 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 4, WeightRange: 4 (6 levels), CEM: 0 (L Direct     ), EndpointRange: 17 (128 levels)
DualPlane: 0, Subsets: 4, WeightRange: 4 (6 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 17 (128 levels)
DualPlane: 0, Subsets: 4, WeightRange: 4 (6 levels), CEM: 4 (LA Direct    ), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 4, WeightRange: 4 (6 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 4, WeightRange: 4 (6 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 6 (10 levels)
DualPlane: 0, Subsets: 4, WeightRange: 5 (8 levels), CEM: 0 (L Direct     ), EndpointRange: 15 (80 levels)
DualPlane: 0, Subsets: 4, WeightRange: 5 (8 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 15 (80 levels)
DualPlane: 0, Subsets: 4, WeightRange: 5 (8 levels), CEM: 4 (LA Direct    ), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 4, WeightRange: 5 (8 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 4, WeightRange: 5 (8 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 4, WeightRange: 6 (10 levels), CEM: 0 (L Direct     ), EndpointRange: 13 (48 levels)
DualPlane: 0, Subsets: 4, WeightRange: 6 (10 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 13 (48 levels)
DualPlane: 0, Subsets: 4, WeightRange: 6 (10 levels), CEM: 4 (LA Direct    ), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 4, WeightRange: 6 (10 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 4, WeightRange: 6 (10 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 4 (6 levels)
DualPlane: 0, Subsets: 4, WeightRange: 7 (12 levels), CEM: 0 (L Direct     ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 4, WeightRange: 7 (12 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 11 (32 levels)
DualPlane: 0, Subsets: 4, WeightRange: 8 (16 levels), CEM: 0 (L Direct     ), EndpointRange: 9 (20 levels)
DualPlane: 0, Subsets: 4, WeightRange: 8 (16 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 9 (20 levels)
DualPlane: 0, Subsets: 4, WeightRange: 9 (20 levels), CEM: 0 (L Direct     ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 4, WeightRange: 9 (20 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 7 (12 levels)
DualPlane: 0, Subsets: 4, WeightRange: 10 (24 levels), CEM: 0 (L Direct     ), EndpointRange: 5 (8 levels)
DualPlane: 0, Subsets: 4, WeightRange: 10 (24 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 5 (8 levels)
DualPlane: 1, Subsets: 1, WeightRange: 0 (2 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 0 (2 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 0 (2 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 0 (2 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 0 (2 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 0 (2 levels), CEM: 8 (RGB Direct   ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 0 (2 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 0 (2 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 0 (2 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 0 (2 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 1 (3 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 1 (3 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 1 (3 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 1 (3 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 1 (3 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 1 (3 levels), CEM: 8 (RGB Direct   ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 1 (3 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 1 (3 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 1 (3 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 17 (128 levels)
DualPlane: 1, Subsets: 1, WeightRange: 1 (3 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 17 (128 levels)
DualPlane: 1, Subsets: 1, WeightRange: 2 (4 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 2 (4 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 2 (4 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 2 (4 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 2 (4 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 2 (4 levels), CEM: 8 (RGB Direct   ), EndpointRange: 18 (160 levels)
DualPlane: 1, Subsets: 1, WeightRange: 2 (4 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 18 (160 levels)
DualPlane: 1, Subsets: 1, WeightRange: 2 (4 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 18 (160 levels)
DualPlane: 1, Subsets: 1, WeightRange: 2 (4 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 13 (48 levels)
DualPlane: 1, Subsets: 1, WeightRange: 2 (4 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 13 (48 levels)
DualPlane: 1, Subsets: 1, WeightRange: 3 (5 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 3 (5 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 3 (5 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 3 (5 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 3 (5 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 3 (5 levels), CEM: 8 (RGB Direct   ), EndpointRange: 13 (48 levels)
DualPlane: 1, Subsets: 1, WeightRange: 3 (5 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 13 (48 levels)
DualPlane: 1, Subsets: 1, WeightRange: 3 (5 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 13 (48 levels)
DualPlane: 1, Subsets: 1, WeightRange: 3 (5 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 8 (16 levels)
DualPlane: 1, Subsets: 1, WeightRange: 3 (5 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 8 (16 levels)
DualPlane: 1, Subsets: 1, WeightRange: 4 (6 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 4 (6 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 1, WeightRange: 4 (6 levels), CEM: 4 (LA Direct    ), EndpointRange: 14 (64 levels)
DualPlane: 1, Subsets: 1, WeightRange: 4 (6 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 14 (64 levels)
DualPlane: 1, Subsets: 1, WeightRange: 4 (6 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 14 (64 levels)
DualPlane: 1, Subsets: 1, WeightRange: 4 (6 levels), CEM: 8 (RGB Direct   ), EndpointRange: 8 (16 levels)
DualPlane: 1, Subsets: 1, WeightRange: 4 (6 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 8 (16 levels)
DualPlane: 1, Subsets: 1, WeightRange: 4 (6 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 8 (16 levels)
DualPlane: 1, Subsets: 1, WeightRange: 4 (6 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 5 (8 levels)
DualPlane: 1, Subsets: 1, WeightRange: 4 (6 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 5 (8 levels)
DualPlane: 1, Subsets: 1, WeightRange: 5 (8 levels), CEM: 0 (L Direct     ), EndpointRange: 15 (80 levels)
DualPlane: 1, Subsets: 1, WeightRange: 5 (8 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 15 (80 levels)
DualPlane: 1, Subsets: 1, WeightRange: 5 (8 levels), CEM: 4 (LA Direct    ), EndpointRange: 5 (8 levels)
DualPlane: 1, Subsets: 1, WeightRange: 5 (8 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 5 (8 levels)
DualPlane: 1, Subsets: 1, WeightRange: 5 (8 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 5 (8 levels)
DualPlane: 1, Subsets: 2, WeightRange: 0 (2 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 2, WeightRange: 0 (2 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 2, WeightRange: 0 (2 levels), CEM: 4 (LA Direct    ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 2, WeightRange: 0 (2 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 2, WeightRange: 0 (2 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 2, WeightRange: 0 (2 levels), CEM: 8 (RGB Direct   ), EndpointRange: 12 (40 levels)
DualPlane: 1, Subsets: 2, WeightRange: 0 (2 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 12 (40 levels)
DualPlane: 1, Subsets: 2, WeightRange: 0 (2 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 12 (40 levels)
DualPlane: 1, Subsets: 2, WeightRange: 0 (2 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 8 (16 levels)
DualPlane: 1, Subsets: 2, WeightRange: 0 (2 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 8 (16 levels)
DualPlane: 1, Subsets: 2, WeightRange: 1 (3 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 2, WeightRange: 1 (3 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 2, WeightRange: 1 (3 levels), CEM: 4 (LA Direct    ), EndpointRange: 13 (48 levels)
DualPlane: 1, Subsets: 2, WeightRange: 1 (3 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 13 (48 levels)
DualPlane: 1, Subsets: 2, WeightRange: 1 (3 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 13 (48 levels)
DualPlane: 1, Subsets: 2, WeightRange: 1 (3 levels), CEM: 8 (RGB Direct   ), EndpointRange: 7 (12 levels)
DualPlane: 1, Subsets: 2, WeightRange: 1 (3 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 7 (12 levels)
DualPlane: 1, Subsets: 2, WeightRange: 1 (3 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 7 (12 levels)
DualPlane: 1, Subsets: 2, WeightRange: 1 (3 levels), CEM: 12 (RGBA Direct  ), EndpointRange: 4 (6 levels)
DualPlane: 1, Subsets: 2, WeightRange: 1 (3 levels), CEM: 13 (RGBA Base+Ofs), EndpointRange: 4 (6 levels)
DualPlane: 1, Subsets: 2, WeightRange: 2 (4 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 2, WeightRange: 2 (4 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 2, WeightRange: 2 (4 levels), CEM: 4 (LA Direct    ), EndpointRange: 8 (16 levels)
DualPlane: 1, Subsets: 2, WeightRange: 2 (4 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 8 (16 levels)
DualPlane: 1, Subsets: 2, WeightRange: 2 (4 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 8 (16 levels)
DualPlane: 1, Subsets: 2, WeightRange: 2 (4 levels), CEM: 8 (RGB Direct   ), EndpointRange: 4 (6 levels)
DualPlane: 1, Subsets: 2, WeightRange: 2 (4 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 4 (6 levels)
DualPlane: 1, Subsets: 2, WeightRange: 2 (4 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 4 (6 levels)
DualPlane: 1, Subsets: 2, WeightRange: 3 (5 levels), CEM: 0 (L Direct     ), EndpointRange: 12 (40 levels)
DualPlane: 1, Subsets: 2, WeightRange: 3 (5 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 12 (40 levels)
DualPlane: 1, Subsets: 2, WeightRange: 3 (5 levels), CEM: 4 (LA Direct    ), EndpointRange: 4 (6 levels)
DualPlane: 1, Subsets: 2, WeightRange: 3 (5 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 4 (6 levels)
DualPlane: 1, Subsets: 2, WeightRange: 3 (5 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 4 (6 levels)
DualPlane: 1, Subsets: 2, WeightRange: 4 (6 levels), CEM: 0 (L Direct     ), EndpointRange: 5 (8 levels)
DualPlane: 1, Subsets: 2, WeightRange: 4 (6 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 5 (8 levels)
DualPlane: 1, Subsets: 3, WeightRange: 0 (2 levels), CEM: 0 (L Direct     ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 3, WeightRange: 0 (2 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 20 (256 levels)
DualPlane: 1, Subsets: 3, WeightRange: 0 (2 levels), CEM: 4 (LA Direct    ), EndpointRange: 12 (40 levels)
DualPlane: 1, Subsets: 3, WeightRange: 0 (2 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 12 (40 levels)
DualPlane: 1, Subsets: 3, WeightRange: 0 (2 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 12 (40 levels)
DualPlane: 1, Subsets: 3, WeightRange: 0 (2 levels), CEM: 8 (RGB Direct   ), EndpointRange: 7 (12 levels)
DualPlane: 1, Subsets: 3, WeightRange: 0 (2 levels), CEM: 9 (RGB Base+Ofs ), EndpointRange: 7 (12 levels)
DualPlane: 1, Subsets: 3, WeightRange: 0 (2 levels), CEM: 10 (RGB Base+Sc2A), EndpointRange: 7 (12 levels)
DualPlane: 1, Subsets: 3, WeightRange: 1 (3 levels), CEM: 0 (L Direct     ), EndpointRange: 18 (160 levels)
DualPlane: 1, Subsets: 3, WeightRange: 1 (3 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 18 (160 levels)
DualPlane: 1, Subsets: 3, WeightRange: 1 (3 levels), CEM: 4 (LA Direct    ), EndpointRange: 7 (12 levels)
DualPlane: 1, Subsets: 3, WeightRange: 1 (3 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 7 (12 levels)
DualPlane: 1, Subsets: 3, WeightRange: 1 (3 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 7 (12 levels)
DualPlane: 1, Subsets: 3, WeightRange: 2 (4 levels), CEM: 0 (L Direct     ), EndpointRange: 12 (40 levels)
DualPlane: 1, Subsets: 3, WeightRange: 2 (4 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 12 (40 levels)
DualPlane: 1, Subsets: 3, WeightRange: 2 (4 levels), CEM: 4 (LA Direct    ), EndpointRange: 4 (6 levels)
DualPlane: 1, Subsets: 3, WeightRange: 2 (4 levels), CEM: 5 (LA Base+Ofs  ), EndpointRange: 4 (6 levels)
DualPlane: 1, Subsets: 3, WeightRange: 2 (4 levels), CEM: 6 (RGB Base+Sc  ), EndpointRange: 4 (6 levels)
DualPlane: 1, Subsets: 3, WeightRange: 3 (5 levels), CEM: 0 (L Direct     ), EndpointRange: 7 (12 levels)
DualPlane: 1, Subsets: 3, WeightRange: 3 (5 levels), CEM: 1 (L Base+Ofs   ), EndpointRange: 7 (12 levels)