#include <string.h>\r
#include <stdlib.h>\r
\r
+#include "opj_config.h"\r
#include "openjp3d.h"\r
-#include "getopt.h"\r
+#include "opj_getopt.h"\r
#include "convert.h"\r
\r
#ifdef _WIN32\r
/* parse the command line */\r
\r
while (1) {\r
- int c = getopt(argc, argv, "i:m:o:r:q:f:t:n:c:b:x:p:s:d:hP:S:E:M:D:R:l:T:C:A:I");\r
+ int c = opj_getopt(argc, argv, "i:m:o:r:q:f:t:n:c:b:x:p:s:d:hP:S:E:M:D:R:l:T:C:A:I");\r
if (c == -1)\r
break;\r
switch (c) {\r
case 'i': /* input file */\r
{\r
- char *infile = optarg;\r
+ char *infile = opj_optarg;\r
parameters->decod_format = get_file_format(infile);\r
switch(parameters->decod_format) {\r
case PGX_DFMT:\r
/* ----------------------------------------------------- */\r
case 'm': /* input IMG file */\r
{\r
- char *imgfile = optarg;\r
+ char *imgfile = opj_optarg;\r
int imgformat = get_file_format(imgfile);\r
switch(imgformat) {\r
case IMG_DFMT:\r
/* ----------------------------------------------------- */\r
case 'o': /* output file */\r
{\r
- char *outfile = optarg;\r
+ char *outfile = opj_optarg;\r
parameters->cod_format = get_file_format(outfile);\r
switch(parameters->cod_format) {\r
case J3D_CFMT:\r
\r
case 'r': /* define compression rates for each layer */\r
{\r
- char *s = optarg;\r
+ char *s = opj_optarg;\r
while (sscanf(s, "%f", ¶meters->tcp_rates[parameters->tcp_numlayers]) == 1) {\r
parameters->tcp_numlayers++;\r
while (*s && *s != ',') {\r
\r
case 'q': /* define distorsion (PSNR) for each layer */\r
{\r
- char *s = optarg;\r
+ char *s = opj_optarg;\r
while (sscanf(s, "%f", ¶meters->tcp_distoratio[parameters->tcp_numlayers]) == 1) {\r
parameters->tcp_numlayers++;\r
while (*s && *s != ',') {\r
/*int *row = NULL, *col = NULL;\r
int numlayers = 0, matrix_width = 0;\r
\r
- char *s = optarg;\r
+ char *s = opj_optarg;\r
sscanf(s, "%d", &numlayers);\r
s++;\r
if (numlayers > 9)\r
\r
case 't': /* tiles */\r
{\r
- if (sscanf(optarg, "%d,%d,%d", ¶meters->cp_tdx, ¶meters->cp_tdy, ¶meters->cp_tdz) !=3) {\r
+ if (sscanf(opj_optarg, "%d,%d,%d", ¶meters->cp_tdx, ¶meters->cp_tdy, ¶meters->cp_tdz) !=3) {\r
fprintf(stdout, "[ERROR] '-t' 'dimensions of tiles' argument error ! [-t tdx,tdy,tdz]\n");\r
return 1;\r
}\r
case 'n': /* resolution */\r
{\r
int aux;\r
- aux = sscanf(optarg, "%d,%d,%d", ¶meters->numresolution[0], ¶meters->numresolution[1], ¶meters->numresolution[2]);\r
+ aux = sscanf(opj_optarg, "%d,%d,%d", ¶meters->numresolution[0], ¶meters->numresolution[1], ¶meters->numresolution[2]);\r
if (aux == 2) \r
parameters->numresolution[2] = 1;\r
else if (aux == 1) {\r
char sep;\r
int res_spec = 0;\r
int aux;\r
- char *s = optarg;\r
+ char *s = opj_optarg;\r
do {\r
sep = 0;\r
aux = sscanf(s, "[%d,%d,%d]%c", ¶meters->prct_init[0][res_spec], ¶meters->prct_init[1][res_spec], ¶meters->prct_init[2][res_spec], &sep);\r
case 'b': /* code-block dimension */\r
{\r
int cblockw_init = 0, cblockh_init = 0, cblockl_init = 0;\r
- if (sscanf(optarg, "%d,%d,%d", &cblockw_init, &cblockh_init, &cblockl_init) != 3) {\r
+ if (sscanf(opj_optarg, "%d,%d,%d", &cblockw_init, &cblockh_init, &cblockl_init) != 3) {\r
fprintf(stdout, "[ERROR] '-b' 'dimensions of codeblocks' argument error ! [-b cblkx,cblky,cblkz]\n");\r
return 1;\r
}\r
\r
case 'x': /* creation of index file */\r
{\r
- char *index = optarg;\r
+ char *index = opj_optarg;\r
strncpy(parameters->index, index, MAX_PATH);\r
parameters->index_on = 1;\r
}\r
{\r
char progression[4];\r
\r
- strncpy(progression, optarg, 4);\r
+ strncpy(progression, opj_optarg, 4);\r
parameters->prog_order = give_progression(progression);\r
if (parameters->prog_order == -1) {\r
fprintf(stdout, "[ERROR] Unrecognized progression order [LRCP, RLCP, RPCL, PCRL, CPRL] !!\n");\r
\r
case 's': /* subsampling factor */\r
{\r
- if (sscanf(optarg, "%d,%d,%d", ¶meters->subsampling_dx, ¶meters->subsampling_dy, ¶meters->subsampling_dz) != 2) {\r
+ if (sscanf(opj_optarg, "%d,%d,%d", ¶meters->subsampling_dx, ¶meters->subsampling_dy, ¶meters->subsampling_dz) != 2) {\r
fprintf(stdout, "[ERROR] '-s' sub-sampling argument error ! [-s dx,dy,dz]\n");\r
return 1;\r
}\r
\r
case 'd': /* coordonnate of the reference grid */\r
{\r
- if (sscanf(optarg, "%d,%d,%d", ¶meters->volume_offset_x0, ¶meters->volume_offset_y0, ¶meters->volume_offset_z0) != 3) {\r
+ if (sscanf(opj_optarg, "%d,%d,%d", ¶meters->volume_offset_x0, ¶meters->volume_offset_y0, ¶meters->volume_offset_z0) != 3) {\r
fprintf(stdout, "[ERROR] -d 'coordonnate of the reference grid' argument error !! [-d x0,y0,z0]\n");\r
return 1;\r
}\r
int numpocs = 0; /* number of progression order change (POC) default 0 */\r
opj_poc_t *POC = NULL; /* POC : used in case of Progression order change */\r
\r
- char *s = optarg;\r
+ char *s = opj_optarg;\r
POC = parameters->POC;\r
\r
fprintf(stdout, "/----------------------------------\\\n");\r
{\r
fprintf(stdout, "[INFO] Mode switch option not fully tested !!\n");\r
value = 0;\r
- if (sscanf(optarg, "%d", &value) == 1) {\r
+ if (sscanf(opj_optarg, "%d", &value) == 1) {\r
for (i = 0; i <= 6; i++) {\r
int cache = value & (1 << i);\r
if (cache)\r
\r
case 'D': /* DCO */\r
{\r
- if (sscanf(optarg, "%d", ¶meters->dcoffset) != 1) {\r
+ if (sscanf(opj_optarg, "%d", ¶meters->dcoffset) != 1) {\r
fprintf(stdout, "[ERROR] DC offset error !! [-D %d]\n",parameters->dcoffset);\r
return 1;\r
}\r
\r
case 'R': /* ROI */\r
{\r
- if (sscanf(optarg, "OI:c=%d,U=%d", ¶meters->roi_compno, ¶meters->roi_shift) != 2) {\r
+ if (sscanf(opj_optarg, "OI:c=%d,U=%d", ¶meters->roi_compno, ¶meters->roi_shift) != 2) {\r
fprintf(stdout, "[ERROR] ROI error !! [-ROI:c='compno',U='shift']\n");\r
return 1;\r
}\r
\r
case 'l': /* Tile offset */\r
{\r
- if (sscanf(optarg, "%d,%d,%d", ¶meters->cp_tx0, ¶meters->cp_ty0, ¶meters->cp_tz0) != 3) {\r
+ if (sscanf(opj_optarg, "%d,%d,%d", ¶meters->cp_tx0, ¶meters->cp_ty0, ¶meters->cp_tz0) != 3) {\r
fprintf(stdout, "[ERROR] -l 'tile offset' argument error !! [-l X0,Y0,Z0]");\r
return 1;\r
}\r
{\r
char transform[4];\r
\r
- strncpy(transform, optarg, 4);\r
+ strncpy(transform, opj_optarg, 4);\r
parameters->transform_format = give_transform(transform);\r
if (parameters->transform_format == -1) {\r
fprintf(stdout, "[ERROR] -T 'Transform domain' argument error !! [-T 2DWT, 3DWT, 3RLS or 3LSE only]");\r
{\r
char coding[3];\r
\r
- strncpy(coding, optarg, 3);\r
+ strncpy(coding, opj_optarg, 3);\r
parameters->encoding_format = give_coding(coding);\r
if (parameters->encoding_format == -1) {\r
fprintf(stdout, "[ERROR] -C 'Coding algorithm' argument error !! [-C 2EB, 3EB, 2GR, 3GR or GRI only]");\r
break;\r
\r
default:\r
- fprintf(stdout, "[ERROR] This option is not valid \"-%c %s\"\n", c, optarg);\r
+ fprintf(stdout, "[ERROR] This option is not valid \"-%c %s\"\n", c, opj_optarg);\r
return 1;\r
}\r
}\r
#include <stdlib.h>\r
#include <math.h>\r
\r
+#include "opj_config.h"\r
#include "openjp3d.h"\r
-#include "getopt.h"\r
+#include "opj_getopt.h"\r
#include "convert.h"\r
\r
#ifdef _WIN32\r
return -1.0;\r
\r
return total;\r
- //return 20 * log10((max - 1) / sqrt(sum));\r
+ /*return 20 * log10((max - 1) / sqrt(sum));*/\r
}\r
\r
static double calc_SSIM(opj_volume_t *original, opj_volume_t *decoded)\r
int max, i, compno = 0, size, sizeM;\r
double sum;\r
double mux = 0.0, muy = 0.0, sigmax = 0.0, sigmay = 0.0,\r
- sigmaxy = 0.0, structx = 0.0, structy = 0.0;\r
+ sigmaxy = 0.0/*, structx = 0.0, structy = 0.0*/;\r
double lcomp,ccomp,scomp;\r
double C1,C2,C3;\r
\r
max = (original->comps[compno].prec <= 8) ? 255 : (1 << original->comps[compno].prec) - 1;\r
size = (original->x1 - original->x0) * (original->y1 - original->y0) * (original->z1 - original->z0);\r
\r
- //MSSIM\r
+ /*MSSIM*/\r
\r
-// sizeM = size / (original->z1 - original->z0);\r
+/* sizeM = size / (original->z1 - original->z0);*/\r
\r
sizeM = size; \r
for(sum = 0, i = 0; i < sizeM; ++i) {\r
- // First, the luminance of each signal is compared.\r
+ /* First, the luminance of each signal is compared.*/\r
mux += original->comps[compno].data[i];\r
muy += decoded->comps[compno].data[i];\r
}\r
mux /= sizeM;\r
muy /= sizeM;\r
\r
- //We use the standard deviation (the square root of variance) as an estimate of the signal contrast.\r
+ /*We use the standard deviation (the square root of variance) as an estimate of the signal contrast.*/\r
for(sum = 0, i = 0; i < sizeM; ++i) {\r
- // First, the luminance of each signal is compared.\r
+ /* First, the luminance of each signal is compared.*/\r
sigmax += (original->comps[compno].data[i] - mux) * (original->comps[compno].data[i] - mux);\r
sigmay += (decoded->comps[compno].data[i] - muy) * (decoded->comps[compno].data[i] - muy);\r
sigmaxy += (original->comps[compno].data[i] - mux) * (decoded->comps[compno].data[i] - muy);\r
sigmay = sqrt(sigmay);\r
sigmaxy = sqrt(sigmaxy);\r
\r
- //Third, the signal is normalized (divided) by its own standard deviation, \r
- //so that the two signals being compared have unit standard deviation.\r
+ /*Third, the signal is normalized (divided) by its own standard deviation, */\r
+ /*so that the two signals being compared have unit standard deviation.*/\r
\r
- //Luminance comparison\r
+ /*Luminance comparison*/\r
C1 = (0.01 * max) * (0.01 * max);\r
lcomp = ((2 * mux * muy) + C1)/((mux*mux) + (muy*mux) + C1);\r
- //Constrast comparison\r
+ /*Constrast comparison*/\r
C2 = (0.03 * max) * (0.03 * max);\r
ccomp = ((2 * sigmax * sigmay) + C2)/((sigmax*sigmax) + (sigmay*sigmay) + C2);\r
- //Structure comparison\r
+ /*Structure comparison*/\r
C3 = C2 / 2;\r
scomp = (sigmaxy + C3) / (sigmax * sigmay + C3);\r
- //Similarity measure\r
+ /*Similarity measure*/\r
\r
sum = lcomp * ccomp * scomp;\r
return sum;\r
/* parse the command line */\r
\r
while (1) {\r
- int c = getopt(argc, argv, "i:o:O:r:l:B:m:h");\r
+ int c = opj_getopt(argc, argv, "i:o:O:r:l:B:m:h");\r
if (c == -1) \r
break;\r
switch (c) {\r
case 'i': /* input file */\r
{\r
- char *infile = optarg;\r
+ char *infile = opj_optarg;\r
parameters->decod_format = get_file_format(infile);\r
switch(parameters->decod_format) {\r
case J3D_CFMT:\r
\r
case 'm': /* img file */\r
{\r
- char *imgfile = optarg;\r
+ char *imgfile = opj_optarg;\r
int imgformat = get_file_format(imgfile);\r
switch(imgformat) {\r
case IMG_DFMT:\r
\r
case 'o': /* output file */\r
{\r
- char *outfile = optarg;\r
+ char *outfile = opj_optarg;\r
parameters->cod_format = get_file_format(outfile);\r
switch(parameters->cod_format) {\r
case PGX_DFMT:\r
\r
case 'O': /* Original image for PSNR computing */\r
{\r
- char *original = optarg;\r
+ char *original = opj_optarg;\r
parameters->orig_format = get_file_format(original);\r
switch(parameters->orig_format) {\r
case PGX_DFMT:\r
\r
case 'r': /* reduce option */\r
{\r
- //sscanf(optarg, "%d, %d, %d", ¶meters->cp_reduce[0], ¶meters->cp_reduce[1], ¶meters->cp_reduce[2]);\r
+ /*sscanf(opj_optarg, "%d, %d, %d", ¶meters->cp_reduce[0], ¶meters->cp_reduce[1], ¶meters->cp_reduce[2]);*/\r
int aux;\r
- aux = sscanf(optarg, "%d,%d,%d", ¶meters->cp_reduce[0], ¶meters->cp_reduce[1], ¶meters->cp_reduce[2]);\r
+ aux = sscanf(opj_optarg, "%d,%d,%d", ¶meters->cp_reduce[0], ¶meters->cp_reduce[1], ¶meters->cp_reduce[2]);\r
if (aux == 2) \r
parameters->cp_reduce[2] = 0;\r
else if (aux == 1) {\r
\r
case 'l': /* layering option */\r
{\r
- sscanf(optarg, "%d", ¶meters->cp_layer);\r
+ sscanf(opj_optarg, "%d", ¶meters->cp_layer);\r
}\r
break;\r
\r
/* ----------------------------------------------------- */\r
\r
default:\r
- fprintf(stdout,"[WARNING] This option is not valid \"-%c %s\"\n",c, optarg);\r
+ fprintf(stdout,"[WARNING] This option is not valid \"-%c %s\"\n",c, opj_optarg);\r
break;\r
}\r
}\r