98 lines
2.6 KiB
C++
98 lines
2.6 KiB
C++
#pragma once
|
|
|
|
#include <cstring>
|
|
#include <iostream>
|
|
|
|
typedef struct
|
|
{
|
|
int DataSize;
|
|
|
|
float TotalError;
|
|
float AbsError; //< Total Absolute Error
|
|
float SqError; //< Total Squared Error
|
|
float MeanError;
|
|
float MeanAbsError;
|
|
|
|
// Test results
|
|
float MSE; // Mean Square Error
|
|
float RMSError; //< Root Mean Square Error
|
|
|
|
float SSIM;
|
|
float SSIM_Red;
|
|
float SSIM_Green;
|
|
float SSIM_Blue;
|
|
|
|
float PSNR;
|
|
float PSNR_Red;
|
|
float PSNR_Green;
|
|
float PSNR_Blue;
|
|
|
|
char srcdecodePattern[17];
|
|
char destdecodePattern[17];
|
|
|
|
float encodeTime;
|
|
|
|
// Pass Conditions
|
|
float pMSE; // Mean Square Error
|
|
float pRMSError; //< Root Mean Square Error
|
|
float pSSIM_Red;
|
|
float pSSIM_Green;
|
|
float pSSIM_Blue;
|
|
float pPSNR;
|
|
float pencodeTime;
|
|
|
|
// SQL data
|
|
int maxcount; // Maxumiun number of test items in the data base
|
|
int test;
|
|
|
|
// BC7 options
|
|
int nCompressionSpeed;
|
|
int dwnumThreads;
|
|
float fquality;
|
|
int brestrictColour;
|
|
int brestrictAlpha;
|
|
unsigned long dwmodeMask;
|
|
|
|
// Compression Type
|
|
char Compression[128];
|
|
|
|
// The source file to test on
|
|
char SourceFile[128];
|
|
char FullSourceFile[128];
|
|
char FullTargetBMP[128];
|
|
char FullSourceBMP[128];
|
|
char FullSourceDDS[128];
|
|
char ext[128]; // file extension
|
|
char fname[128]; // just the file name without extension and path
|
|
char dir[128]; // Typically null! But in some special cases user may define a full path for Source File, overiding configuration defaults
|
|
char drive[128]; // Typically null!
|
|
|
|
} REPORT_DATA;
|
|
|
|
class MY_REPORT_DATA
|
|
{
|
|
public:
|
|
MY_REPORT_DATA()
|
|
{
|
|
memset(&data, 0, sizeof(REPORT_DATA));
|
|
};
|
|
friend std::ostream &operator<<(std::ostream &os, const MY_REPORT_DATA &dt)
|
|
{
|
|
REPORT_DATA my_data = dt.data;
|
|
//os << "Absolute Error: \t" << my_data.AbsError << "\n";
|
|
os /*<< "MSE: \t" */ << my_data.MSE << "\n";
|
|
os /*<< "SSIM: \t" */ << my_data.SSIM << "\n";
|
|
os /*<< "SSIM Blue: \t" */ << my_data.SSIM_Blue << "\n";
|
|
os /*<< "SSIM Green: \t" */ << my_data.SSIM_Green << "\n";
|
|
os /*<< "SSIM Red: \t" */ << my_data.SSIM_Red << "\n";
|
|
/* */
|
|
os /*<< "PSNR: \t" */ << my_data.PSNR << "\n";
|
|
os /*<< "PSNR Blue: \t" */ << my_data.PSNR_Blue << "\n";
|
|
os /*<< "PSNR Green: \t" */ << my_data.PSNR_Green << "\n";
|
|
os /*<< "PSNR Red: \t" */ << my_data.PSNR_Red << "\n";
|
|
return os;
|
|
};
|
|
|
|
REPORT_DATA data;
|
|
};
|