ГОСТ Р 56047—2014
if (size <= 0)
return 0;
I = (Readlnt(fp. size-1)« 8):
11= ((int) fgetcffp)) & 255:
return I;
}
#endif
Б.З Листинг программы расчета метрики PSNR на языке Matlab
function PSNR = cataPSNR(X.Y)
% чем больше значение PNSR. тем более похожи сигналы
m = max(X):
d = var(X-Y);
R = m/sqrt(d):
PSNR = 20* log10(R):
end
Б.4 Листинг программы расчета метрики PSNR на языке С
^include <math.h>
double var(doubte* arr. int size)
{
if(!arr || !size)
return 0.0;
double v = 0.0;
double avg = 0.0;
for(int i = 0; i < size; ++i)
avg+= arr(ij;
avg/= size;
for(int i = 0; i < size; ++i)
{
v+= (arrfi] - avg) * (arrli) - avg);
)
return v / (size -1);
}
double calcPSNR(double’ X. int sizeX. double’ Y. kit sizeY )
{
if(!X ||!sizeX || !Y || IsrzeY || (sizeX != sizeY))
return 0.0;
double DfsizeXJ;
double maxX = Xfl)];
for(int i = 0; i < sizeX; ++i)
{
if(X[i] > maxX)
maxX = X[i);
Dp] = X(i] - Yffl:
}
double v = var(D. sizeX);
if(v == 0)
return 0.0:
return 20 ’ tog10(maxX / sqrt(v));
}
Б.5 Листинг программы расчета метрики «Коэффициент различия форм сигналов» на языке Matlab
function val = catcMeasureBasedOnSingalsForms(X.Y)
% чем меньше результирующее значение, тем более похожи сигналы
89