MCPcopy Create free account
hub / github.com/GPUOpen-Tools/compressonator / GetCovarianceVector

Function GetCovarianceVector

cmp_core/shaders/bc7_encode_kernel.cpp:532–548  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

530}
531
532void GetCovarianceVector(CGV_FLOAT covariance_out[MAX_CHANNELS * MAX_CHANNELS], // OUT: Covariance vector
533 CGV_FLOAT image_centered[SOURCE_BLOCK_SIZE * MAX_CHANNELS],
534 CGV_INT numEntries, // < 16
535 CGU_UINT8 channels3or4)
536{ // IN: 3 = RGB or 4 = RGBA (4 = MAX_CHANNELS)
537 for (CGU_UINT8 ch1 = 0; ch1 < channels3or4; ch1++)
538 for (CGU_UINT8 ch2 = 0; ch2 <= ch1; ch2++)
539 {
540 covariance_out[ch1 + ch2 * 4] = 0;
541 for (CGV_INT k = 0; k < numEntries; k++)
542 covariance_out[ch1 + ch2 * 4] += image_centered[k + (ch1 * SOURCE_BLOCK_SIZE)] * image_centered[k + (ch2 * SOURCE_BLOCK_SIZE)];
543 }
544
545 for (CGU_UINT8 ch1 = 0; ch1 < channels3or4; ch1++)
546 for (CGU_UINT8 ch2 = ch1 + 1; ch2 < channels3or4; ch2++)
547 covariance_out[ch1 + ch2 * 4] = covariance_out[ch2 + ch1 * 4];
548}
549
550void GetProjecedImage(CGV_FLOAT projection_out[SOURCE_BLOCK_SIZE], //output projected data
551 CGV_FLOAT image_centered[SOURCE_BLOCK_SIZE * MAX_CHANNELS],

Callers 1

GetQuantizeIndexFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected