[trunk] Fix a set of warnings about C90 issues
This commit is contained in:
parent
aa6b4b4970
commit
abdb8ee3f7
|
@ -709,10 +709,10 @@ int parse_cmdline_encoder(int argc, char **argv, opj_cparameters_t *parameters)
|
||||||
|
|
||||||
if(parameters->numresolution[2] != 1) {
|
if(parameters->numresolution[2] != 1) {
|
||||||
parameters->transform_format = TRF_3D_DWT;
|
parameters->transform_format = TRF_3D_DWT;
|
||||||
//fprintf(stdout, "[Warning] Resolution level in axial dim > 1 : 3D-DWT will be performed... \n");
|
/*fprintf(stdout, "[Warning] Resolution level in axial dim > 1 : 3D-DWT will be performed... \n");*/
|
||||||
} else if (parameters->numresolution[2] == 1) {
|
} else if (parameters->numresolution[2] == 1) {
|
||||||
parameters->transform_format = TRF_2D_DWT;
|
parameters->transform_format = TRF_2D_DWT;
|
||||||
//fprintf(stdout, "[Warning] Resolution level in axial dim == 1 : 2D-DWT will be performed... \n");
|
/*fprintf(stdout, "[Warning] Resolution level in axial dim == 1 : 2D-DWT will be performed... \n");*/
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((parameters->cod_format == J2K_CFMT) && (parameters->transform_format != TRF_2D_DWT || parameters->encoding_format != ENCOD_2EB)) {
|
if ((parameters->cod_format == J2K_CFMT) && (parameters->transform_format != TRF_2D_DWT || parameters->encoding_format != ENCOD_2EB)) {
|
||||||
|
@ -860,7 +860,7 @@ int main(int argc, char **argv) {
|
||||||
cio = opj_cio_open((opj_common_ptr)cinfo, NULL, 0);
|
cio = opj_cio_open((opj_common_ptr)cinfo, NULL, 0);
|
||||||
|
|
||||||
/* encode the volume */
|
/* encode the volume */
|
||||||
//fprintf(stdout, "[INFO] Encode the volume\n");
|
/*fprintf(stdout, "[INFO] Encode the volume\n");*/
|
||||||
bSuccess = opj_encode(cinfo, cio, volume, parameters.index);
|
bSuccess = opj_encode(cinfo, cio, volume, parameters.index);
|
||||||
if (!bSuccess) {
|
if (!bSuccess) {
|
||||||
opj_cio_close(cio);
|
opj_cio_close(cio);
|
||||||
|
|
|
@ -257,10 +257,10 @@ int main(int argc, char **argv)
|
||||||
memset(&mj2_parameters, 0, sizeof(mj2_cparameters_t));
|
memset(&mj2_parameters, 0, sizeof(mj2_cparameters_t));
|
||||||
/* default value */
|
/* default value */
|
||||||
/* ------------- */
|
/* ------------- */
|
||||||
mj2_parameters.w = 352; // CIF default value
|
mj2_parameters.w = 352; /* CIF default value*/
|
||||||
mj2_parameters.h = 288; // CIF default value
|
mj2_parameters.h = 288; /* CIF default value*/
|
||||||
mj2_parameters.CbCr_subsampling_dx = 2; // CIF default value
|
mj2_parameters.CbCr_subsampling_dx = 2; /* CIF default value*/
|
||||||
mj2_parameters.CbCr_subsampling_dy = 2; // CIF default value
|
mj2_parameters.CbCr_subsampling_dy = 2; /* CIF default value*/
|
||||||
mj2_parameters.frame_rate = 25;
|
mj2_parameters.frame_rate = 25;
|
||||||
mj2_parameters.prec = 8; /* DEFAULT */
|
mj2_parameters.prec = 8; /* DEFAULT */
|
||||||
mj2_parameters.enumcs = ENUMCS_SYCC; /* FIXME: ENUMCS_YUV420 */
|
mj2_parameters.enumcs = ENUMCS_SYCC; /* FIXME: ENUMCS_YUV420 */
|
||||||
|
@ -700,7 +700,7 @@ int main(int argc, char **argv)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// One sample per chunk
|
/* One sample per chunk*/
|
||||||
movie->tk[0].chunk = (mj2_chunk_t*)
|
movie->tk[0].chunk = (mj2_chunk_t*)
|
||||||
malloc(movie->tk[0].num_samples * sizeof(mj2_chunk_t));
|
malloc(movie->tk[0].num_samples * sizeof(mj2_chunk_t));
|
||||||
movie->tk[0].sample = (mj2_sample_t*)
|
movie->tk[0].sample = (mj2_sample_t*)
|
||||||
|
@ -711,8 +711,8 @@ int main(int argc, char **argv)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Writing JP, FTYP and MDAT boxes
|
/* Writing JP, FTYP and MDAT boxes */
|
||||||
// Assuming that the JP and FTYP boxes won't be longer than 300 bytes:
|
/* Assuming that the JP and FTYP boxes won't be longer than 300 bytes:*/
|
||||||
buf = (unsigned char*)
|
buf = (unsigned char*)
|
||||||
malloc (300 * sizeof(unsigned char));
|
malloc (300 * sizeof(unsigned char));
|
||||||
|
|
||||||
|
@ -773,7 +773,7 @@ int main(int argc, char **argv)
|
||||||
cio = opj_cio_open((opj_common_ptr)movie->cinfo, buf, buflen);
|
cio = opj_cio_open((opj_common_ptr)movie->cinfo, buf, buflen);
|
||||||
|
|
||||||
cio_skip(cio, 4);
|
cio_skip(cio, 4);
|
||||||
cio_write(cio, JP2_JP2C, 4); // JP2C
|
cio_write(cio, JP2_JP2C, 4); /* JP2C*/
|
||||||
|
|
||||||
/* encode the image */
|
/* encode the image */
|
||||||
#if 0 /* MM: FIXME */
|
#if 0 /* MM: FIXME */
|
||||||
|
@ -793,7 +793,7 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
tk->sample[sampleno].sample_size = len+8;
|
tk->sample[sampleno].sample_size = len+8;
|
||||||
tk->sample[sampleno].offset = offset;
|
tk->sample[sampleno].offset = offset;
|
||||||
tk->chunk[sampleno].offset = offset; // There is one sample per chunk
|
tk->chunk[sampleno].offset = offset; /* There is one sample per chunk */
|
||||||
fwrite(buf, 1, len+8, mj2file);
|
fwrite(buf, 1, len+8, mj2file);
|
||||||
offset += len+8;
|
offset += len+8;
|
||||||
|
|
||||||
|
@ -812,14 +812,14 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
buf = (unsigned char*) malloc(4*sizeof(unsigned char));
|
buf = (unsigned char*) malloc(4*sizeof(unsigned char));
|
||||||
|
|
||||||
// Init a cio to write box length variable in a little endian way
|
/* Init a cio to write box length variable in a little endian way */
|
||||||
cio = opj_cio_open(NULL, buf, 4);
|
cio = opj_cio_open(NULL, buf, 4);
|
||||||
cio_write(cio, offset - mdat_initpos, 4);
|
cio_write(cio, offset - mdat_initpos, 4);
|
||||||
fwrite(buf, 4, 1, mj2file);
|
fwrite(buf, 4, 1, mj2file);
|
||||||
fseek(mj2file,0,SEEK_END);
|
fseek(mj2file,0,SEEK_END);
|
||||||
free(buf);
|
free(buf);
|
||||||
|
|
||||||
// Writing MOOV box
|
/* Writing MOOV box */
|
||||||
buf = (unsigned char*)
|
buf = (unsigned char*)
|
||||||
malloc ((TEMP_BUF+numframes*20) * sizeof(unsigned char));
|
malloc ((TEMP_BUF+numframes*20) * sizeof(unsigned char));
|
||||||
cio = opj_cio_open(movie->cinfo, buf, (TEMP_BUF+numframes*20));
|
cio = opj_cio_open(movie->cinfo, buf, (TEMP_BUF+numframes*20));
|
||||||
|
@ -830,7 +830,7 @@ int main(int argc, char **argv)
|
||||||
fprintf(stdout,"Total encoding time: %.2f s for %d frames (%.1f fps)\n",
|
fprintf(stdout,"Total encoding time: %.2f s for %d frames (%.1f fps)\n",
|
||||||
total_time, numframes, (float)numframes/total_time);
|
total_time, numframes, (float)numframes/total_time);
|
||||||
|
|
||||||
// Ending program
|
/* Ending program */
|
||||||
|
|
||||||
fclose(mj2file);
|
fclose(mj2file);
|
||||||
/* free remaining compression structures */
|
/* free remaining compression structures */
|
||||||
|
|
|
@ -110,9 +110,9 @@ static int test_image(const char *fname, mj2_cparameters_t *cp)
|
||||||
&& (image->comps[2].dx == 2)
|
&& (image->comps[2].dx == 2)
|
||||||
&& (image->comps[0].dy == 1)
|
&& (image->comps[0].dy == 1)
|
||||||
&& (image->comps[1].dy == 2)
|
&& (image->comps[1].dy == 2)
|
||||||
&& (image->comps[2].dy == 2))// horizontal and vertical
|
&& (image->comps[2].dy == 2))/* horizontal and vertical*/
|
||||||
{
|
{
|
||||||
// Y420
|
/* Y420*/
|
||||||
cp->enumcs = ENUMCS_SYCC;
|
cp->enumcs = ENUMCS_SYCC;
|
||||||
cp->CbCr_subsampling_dx = 2;
|
cp->CbCr_subsampling_dx = 2;
|
||||||
cp->CbCr_subsampling_dy = 2;
|
cp->CbCr_subsampling_dy = 2;
|
||||||
|
@ -123,9 +123,9 @@ static int test_image(const char *fname, mj2_cparameters_t *cp)
|
||||||
&& (image->comps[2].dx == 2)
|
&& (image->comps[2].dx == 2)
|
||||||
&& (image->comps[0].dy == 1)
|
&& (image->comps[0].dy == 1)
|
||||||
&& (image->comps[1].dy == 1)
|
&& (image->comps[1].dy == 1)
|
||||||
&& (image->comps[2].dy == 1))// horizontal only
|
&& (image->comps[2].dy == 1))/* horizontal only*/
|
||||||
{
|
{
|
||||||
// Y422
|
/* Y422*/
|
||||||
cp->enumcs = ENUMCS_SYCC;
|
cp->enumcs = ENUMCS_SYCC;
|
||||||
cp->CbCr_subsampling_dx = 2;
|
cp->CbCr_subsampling_dx = 2;
|
||||||
cp->CbCr_subsampling_dy = 1;
|
cp->CbCr_subsampling_dy = 1;
|
||||||
|
@ -138,14 +138,14 @@ static int test_image(const char *fname, mj2_cparameters_t *cp)
|
||||||
&& (image->comps[1].dy == 1)
|
&& (image->comps[1].dy == 1)
|
||||||
&& (image->comps[2].dy == 1))
|
&& (image->comps[2].dy == 1))
|
||||||
{
|
{
|
||||||
// Y444 or RGB
|
/* Y444 or RGB */
|
||||||
|
|
||||||
if(image->color_space == CLRSPC_SRGB)
|
if(image->color_space == CLRSPC_SRGB)
|
||||||
{
|
{
|
||||||
cp->enumcs = ENUMCS_SRGB;
|
cp->enumcs = ENUMCS_SRGB;
|
||||||
|
|
||||||
// cp->CbCr_subsampling_dx = 0;
|
/* cp->CbCr_subsampling_dx = 0; */
|
||||||
// cp->CbCr_subsampling_dy = 0;
|
/* cp->CbCr_subsampling_dy = 0; */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -163,8 +163,8 @@ static int test_image(const char *fname, mj2_cparameters_t *cp)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cp->enumcs = ENUMCS_GRAY;
|
cp->enumcs = ENUMCS_GRAY;
|
||||||
// cp->CbCr_subsampling_dx = 0;
|
/* cp->CbCr_subsampling_dx = 0; */
|
||||||
// cp->CbCr_subsampling_dy = 0;
|
/* cp->CbCr_subsampling_dy = 0; */
|
||||||
}
|
}
|
||||||
if(image->icc_profile_buf)
|
if(image->icc_profile_buf)
|
||||||
{
|
{
|
||||||
|
@ -295,7 +295,7 @@ static void setparams(opj_mj2_t *movie, opj_image_t *image) {
|
||||||
|
|
||||||
movie->tk[0].sample_rate = 25;
|
movie->tk[0].sample_rate = 25;
|
||||||
|
|
||||||
movie->tk[0].jp2_struct.numcomps = image->numcomps; // NC
|
movie->tk[0].jp2_struct.numcomps = image->numcomps; /* NC */
|
||||||
|
|
||||||
/* Init Standard jp2 structure */
|
/* Init Standard jp2 structure */
|
||||||
|
|
||||||
|
@ -336,7 +336,7 @@ static void setparams(opj_mj2_t *movie, opj_image_t *image) {
|
||||||
movie->tk[0].jp2_struct.meth = 2;
|
movie->tk[0].jp2_struct.meth = 2;
|
||||||
|
|
||||||
if (image->numcomps == 1)
|
if (image->numcomps == 1)
|
||||||
movie->tk[0].jp2_struct.enumcs = 17; // Grayscale
|
movie->tk[0].jp2_struct.enumcs = 17; /* Grayscale */
|
||||||
|
|
||||||
else
|
else
|
||||||
if ((image->comps[0].dx == 1)
|
if ((image->comps[0].dx == 1)
|
||||||
|
@ -345,7 +345,7 @@ static void setparams(opj_mj2_t *movie, opj_image_t *image) {
|
||||||
&& (image->comps[0].dy == 1)
|
&& (image->comps[0].dy == 1)
|
||||||
&& (image->comps[1].dy == 1)
|
&& (image->comps[1].dy == 1)
|
||||||
&& (image->comps[2].dy == 1))
|
&& (image->comps[2].dy == 1))
|
||||||
movie->tk[0].jp2_struct.enumcs = 16; // RGB
|
movie->tk[0].jp2_struct.enumcs = 16; /* RGB */
|
||||||
|
|
||||||
else
|
else
|
||||||
if ((image->comps[0].dx == 1)
|
if ((image->comps[0].dx == 1)
|
||||||
|
@ -354,10 +354,10 @@ static void setparams(opj_mj2_t *movie, opj_image_t *image) {
|
||||||
&& (image->comps[0].dy == 1)
|
&& (image->comps[0].dy == 1)
|
||||||
&& (image->comps[1].dy == 2)
|
&& (image->comps[1].dy == 2)
|
||||||
&& (image->comps[2].dy == 2))
|
&& (image->comps[2].dy == 2))
|
||||||
movie->tk[0].jp2_struct.enumcs = 18; // YUV
|
movie->tk[0].jp2_struct.enumcs = 18; /* YUV */
|
||||||
|
|
||||||
else
|
else
|
||||||
movie->tk[0].jp2_struct.enumcs = 0; // Unkown profile */
|
movie->tk[0].jp2_struct.enumcs = 0; /* Unkown profile */
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
|
@ -430,56 +430,58 @@ int main(int argc, char *argv[]) {
|
||||||
fwrite(buf,cio_tell(cio),1,mj2file);
|
fwrite(buf,cio_tell(cio),1,mj2file);
|
||||||
free(buf);
|
free(buf);
|
||||||
|
|
||||||
// Insert each j2k codestream in a JP2C box
|
/* Insert each j2k codestream in a JP2C box */
|
||||||
snum=0;
|
snum=0;
|
||||||
offset = 0;
|
offset = 0;
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
|
mj2_sample_t * new_sample;
|
||||||
|
mj2_chunk_t * new_chunk;
|
||||||
sample = &movie->tk[0].sample[snum];
|
sample = &movie->tk[0].sample[snum];
|
||||||
sprintf(j2kfilename,"%s_%05d.j2k",argv[1],snum);
|
sprintf(j2kfilename,"%s_%05d.j2k",argv[1],snum);
|
||||||
j2kfile = fopen(j2kfilename, "rb");
|
j2kfile = fopen(j2kfilename, "rb");
|
||||||
if (!j2kfile) {
|
if (!j2kfile) {
|
||||||
if (snum==0) { // Could not open a single codestream
|
if (snum==0) { /* Could not open a single codestream */
|
||||||
fprintf(stderr, "failed to open %s for reading\n",j2kfilename);
|
fprintf(stderr, "failed to open %s for reading\n",j2kfilename);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else { // Tried to open a inexistant codestream
|
else { /* Tried to open a inexistant codestream */
|
||||||
fprintf(stdout,"%d frames are being added to the MJ2 file\n",snum);
|
fprintf(stdout,"%d frames are being added to the MJ2 file\n",snum);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculating offset for samples and chunks
|
/* Calculating offset for samples and chunks */
|
||||||
offset += cio_tell(cio);
|
offset += cio_tell(cio);
|
||||||
sample->offset = offset;
|
sample->offset = offset;
|
||||||
movie->tk[0].chunk[snum].offset = offset; // There will be one sample per chunk
|
movie->tk[0].chunk[snum].offset = offset; /* There will be one sample per chunk */
|
||||||
|
|
||||||
// Calculating sample size
|
/* Calculating sample size */
|
||||||
fseek(j2kfile,0,SEEK_END);
|
fseek(j2kfile,0,SEEK_END);
|
||||||
sample->sample_size = ftell(j2kfile) + 8; // Sample size is codestream + JP2C box header
|
sample->sample_size = ftell(j2kfile) + 8; /* Sample size is codestream + JP2C box header */
|
||||||
fseek(j2kfile,0,SEEK_SET);
|
fseek(j2kfile,0,SEEK_SET);
|
||||||
|
|
||||||
// Reading siz marker of j2k image for the first codestream
|
/* Reading siz marker of j2k image for the first codestream */
|
||||||
if (snum==0)
|
if (snum==0)
|
||||||
read_siz_marker(j2kfile, &img);
|
read_siz_marker(j2kfile, &img);
|
||||||
|
|
||||||
// Writing JP2C box header
|
/* Writing JP2C box header */
|
||||||
frame_codestream = (unsigned char*) malloc (sample->sample_size+8);
|
frame_codestream = (unsigned char*) malloc (sample->sample_size+8);
|
||||||
cio = opj_cio_open(movie->cinfo, frame_codestream, sample->sample_size);
|
cio = opj_cio_open(movie->cinfo, frame_codestream, sample->sample_size);
|
||||||
cio_write(cio,sample->sample_size, 4); // Sample size
|
cio_write(cio,sample->sample_size, 4); /* Sample size */
|
||||||
cio_write(cio,JP2_JP2C, 4); // JP2C
|
cio_write(cio,JP2_JP2C, 4); /* JP2C */
|
||||||
|
|
||||||
// Writing codestream from J2K file to MJ2 file
|
/* Writing codestream from J2K file to MJ2 file */
|
||||||
fread(frame_codestream+8,sample->sample_size-8,1,j2kfile);
|
fread(frame_codestream+8,sample->sample_size-8,1,j2kfile);
|
||||||
fwrite(frame_codestream,sample->sample_size,1,mj2file);
|
fwrite(frame_codestream,sample->sample_size,1,mj2file);
|
||||||
cio_skip(cio, sample->sample_size-8);
|
cio_skip(cio, sample->sample_size-8);
|
||||||
|
|
||||||
// Ending loop
|
/* Ending loop */
|
||||||
fclose(j2kfile);
|
fclose(j2kfile);
|
||||||
snum++;
|
snum++;
|
||||||
mj2_sample_t * new_sample = (mj2_sample_t*)
|
new_sample = (mj2_sample_t*)
|
||||||
realloc(movie->tk[0].sample, (snum+1) * sizeof(mj2_sample_t));
|
realloc(movie->tk[0].sample, (snum+1) * sizeof(mj2_sample_t));
|
||||||
mj2_chunk_t * new_chunk = (mj2_chunk_t*)
|
new_chunk = (mj2_chunk_t*)
|
||||||
realloc(movie->tk[0].chunk, (snum+1) * sizeof(mj2_chunk_t));
|
realloc(movie->tk[0].chunk, (snum+1) * sizeof(mj2_chunk_t));
|
||||||
if (new_sample && new_chunk) {
|
if (new_sample && new_chunk) {
|
||||||
movie->tk[0].sample = new_sample;
|
movie->tk[0].sample = new_sample;
|
||||||
|
@ -491,7 +493,7 @@ int main(int argc, char *argv[]) {
|
||||||
free(frame_codestream);
|
free(frame_codestream);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Writing the MDAT box length in header
|
/* Writing the MDAT box length in header */
|
||||||
offset += cio_tell(cio);
|
offset += cio_tell(cio);
|
||||||
buf = (unsigned char*) malloc (4 * sizeof(unsigned char));
|
buf = (unsigned char*) malloc (4 * sizeof(unsigned char));
|
||||||
cio = opj_cio_open(movie->cinfo, buf, 4);
|
cio = opj_cio_open(movie->cinfo, buf, 4);
|
||||||
|
@ -501,18 +503,18 @@ int main(int argc, char *argv[]) {
|
||||||
fseek(mj2file,0,SEEK_END);
|
fseek(mj2file,0,SEEK_END);
|
||||||
free(buf);
|
free(buf);
|
||||||
|
|
||||||
// Setting movie parameters
|
/* Setting movie parameters */
|
||||||
movie->tk[0].num_samples=snum;
|
movie->tk[0].num_samples=snum;
|
||||||
movie->tk[0].num_chunks=snum;
|
movie->tk[0].num_chunks=snum;
|
||||||
setparams(movie, &img);
|
setparams(movie, &img);
|
||||||
|
|
||||||
// Writing MOOV box
|
/* Writing MOOV box */
|
||||||
buf = (unsigned char*) malloc ((TEMP_BUF+snum*20) * sizeof(unsigned char));
|
buf = (unsigned char*) malloc ((TEMP_BUF+snum*20) * sizeof(unsigned char));
|
||||||
cio = opj_cio_open(movie->cinfo, buf, (TEMP_BUF+snum*20));
|
cio = opj_cio_open(movie->cinfo, buf, (TEMP_BUF+snum*20));
|
||||||
mj2_write_moov(movie, cio);
|
mj2_write_moov(movie, cio);
|
||||||
fwrite(buf,cio_tell(cio),1,mj2file);
|
fwrite(buf,cio_tell(cio),1,mj2file);
|
||||||
|
|
||||||
// Ending program
|
/* Ending program */
|
||||||
free(img.comps);
|
free(img.comps);
|
||||||
opj_cio_close(cio);
|
opj_cio_close(cio);
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ opj_bool opj_bio_bytein(opj_bio_t *bio) {
|
||||||
|
|
||||||
void opj_bio_putbit(opj_bio_t *bio, OPJ_UINT32 b) {
|
void opj_bio_putbit(opj_bio_t *bio, OPJ_UINT32 b) {
|
||||||
if (bio->ct == 0) {
|
if (bio->ct == 0) {
|
||||||
opj_bio_byteout(bio); // TODO_MSD: check this line
|
opj_bio_byteout(bio); /* TODO_MSD: check this line */
|
||||||
}
|
}
|
||||||
bio->ct--;
|
bio->ct--;
|
||||||
bio->buf |= b << bio->ct;
|
bio->buf |= b << bio->ct;
|
||||||
|
@ -102,7 +102,7 @@ void opj_bio_putbit(opj_bio_t *bio, OPJ_UINT32 b) {
|
||||||
|
|
||||||
OPJ_UINT32 opj_bio_getbit(opj_bio_t *bio) {
|
OPJ_UINT32 opj_bio_getbit(opj_bio_t *bio) {
|
||||||
if (bio->ct == 0) {
|
if (bio->ct == 0) {
|
||||||
opj_bio_bytein(bio); // TODO_MSD: check this line
|
opj_bio_bytein(bio); /* TODO_MSD: check this line */
|
||||||
}
|
}
|
||||||
bio->ct--;
|
bio->ct--;
|
||||||
return (bio->buf >> bio->ct) & 1;
|
return (bio->buf >> bio->ct) & 1;
|
||||||
|
|
|
@ -711,7 +711,7 @@ typedef struct opj_packet_info {
|
||||||
/**
|
/**
|
||||||
* Marker structure
|
* Marker structure
|
||||||
* */
|
* */
|
||||||
typedef struct opj_marker_info_t {
|
typedef struct opj_marker_info {
|
||||||
/** marker type */
|
/** marker type */
|
||||||
unsigned short int type;
|
unsigned short int type;
|
||||||
/** position in codestream */
|
/** position in codestream */
|
||||||
|
|
|
@ -143,7 +143,7 @@ static opj_bool opj_t2_init_seg( opj_tcd_cblk_dec_v2_t* cblk,
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
|
|
||||||
/* #define RESTART 0x04 */
|
/* #define RESTART 0x04 */
|
||||||
// TODO MSD->LHE
|
/* TODO MSD->LHE */
|
||||||
static void t2_putcommacode(opj_bio_t *bio, int n) {
|
static void t2_putcommacode(opj_bio_t *bio, int n) {
|
||||||
while (--n >= 0) {
|
while (--n >= 0) {
|
||||||
bio_write(bio, 1, 1);
|
bio_write(bio, 1, 1);
|
||||||
|
@ -232,7 +232,7 @@ opj_bool opj_t2_encode_packets( opj_t2_v2_t* p_t2,
|
||||||
for (poc = 0; poc < pocno ; ++poc) {
|
for (poc = 0; poc < pocno ; ++poc) {
|
||||||
OPJ_UINT32 l_tp_num = compno;
|
OPJ_UINT32 l_tp_num = compno;
|
||||||
|
|
||||||
// TODO MSD : check why this function cannot fail (cf. v1)
|
/* TODO MSD : check why this function cannot fail (cf. v1) */
|
||||||
pi_create_encode_v2(l_pi, l_cp,p_tile_no,poc,l_tp_num,p_tp_pos,p_t2_mode);
|
pi_create_encode_v2(l_pi, l_cp,p_tile_no,poc,l_tp_num,p_tp_pos,p_t2_mode);
|
||||||
|
|
||||||
while (pi_next(l_current_pi)) {
|
while (pi_next(l_current_pi)) {
|
||||||
|
|
|
@ -121,7 +121,7 @@ Read a bit
|
||||||
@return Returns the read bit
|
@return Returns the read bit
|
||||||
*/
|
*/
|
||||||
/* MOD antonin */
|
/* MOD antonin */
|
||||||
//int bio_getbit(opj_bio_t *bio);
|
/*int bio_getbit(opj_bio_t *bio);*/
|
||||||
/* DOM */
|
/* DOM */
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
|
@ -26,9 +26,9 @@
|
||||||
|
|
||||||
#include "opj_includes.h"
|
#include "opj_includes.h"
|
||||||
|
|
||||||
// ==========================================================
|
/* ==========================================================
|
||||||
// Utility functions
|
// Utility functions
|
||||||
// ==========================================================
|
// ==========================================================*/
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
static char*
|
static char*
|
||||||
|
|
|
@ -471,7 +471,7 @@ static void j3d_read_zsi(opj_j3d_t *j3d) {
|
||||||
volume->comps[i].dz = cio_read(cio, 1); /* ZRsiz_i */
|
volume->comps[i].dz = cio_read(cio, 1); /* ZRsiz_i */
|
||||||
}
|
}
|
||||||
|
|
||||||
//Initialization of volume
|
/*Initialization of volume*/
|
||||||
cp->tw = int_ceildiv(volume->x1 - cp->tx0, cp->tdx);
|
cp->tw = int_ceildiv(volume->x1 - cp->tx0, cp->tdx);
|
||||||
cp->th = int_ceildiv(volume->y1 - cp->ty0, cp->tdy);
|
cp->th = int_ceildiv(volume->y1 - cp->ty0, cp->tdy);
|
||||||
cp->tl = int_ceildiv(volume->z1 - cp->tz0, cp->tdz);
|
cp->tl = int_ceildiv(volume->z1 - cp->tz0, cp->tdz);
|
||||||
|
@ -538,7 +538,7 @@ static void j3d_read_dco(opj_j3d_t *j3d){
|
||||||
opj_cp_t *cp = j3d->cp;
|
opj_cp_t *cp = j3d->cp;
|
||||||
|
|
||||||
len = cio_read(cio, 2); /* Lsiz */
|
len = cio_read(cio, 2); /* Lsiz */
|
||||||
dcotype = cio_read(cio, 1); //offset 8bit unsigned / 16bit signed integers
|
dcotype = cio_read(cio, 1); /*offset 8bit unsigned / 16bit signed integers*/
|
||||||
if (dcotype == 0) {
|
if (dcotype == 0) {
|
||||||
for (i = 0; i < volume->numcomps; i++) {
|
for (i = 0; i < volume->numcomps; i++) {
|
||||||
volume->comps[i].dcoffset = cio_read(cio, 1);
|
volume->comps[i].dcoffset = cio_read(cio, 1);
|
||||||
|
@ -660,7 +660,7 @@ static void j3d_write_siz(opj_j3d_t *j3d) {
|
||||||
cio_write(cio, J3D_MS_SIZ, 2); /* SIZ */
|
cio_write(cio, J3D_MS_SIZ, 2); /* SIZ */
|
||||||
lenp = cio_tell(cio);
|
lenp = cio_tell(cio);
|
||||||
cio_skip(cio, 2);
|
cio_skip(cio, 2);
|
||||||
//cio_write(cio, 0, 2); /* Rsiz (capabilities of 15444-1 only) */
|
/*cio_write(cio, 0, 2);*/ /* Rsiz (capabilities of 15444-1 only) */
|
||||||
Rsiz = J3D_RSIZ_DCO | J3D_RSIZ_ATK; /** | J3D_RSIZ_MCT | J3D_RSIZ_NONLT (not implemented yet)*/
|
Rsiz = J3D_RSIZ_DCO | J3D_RSIZ_ATK; /** | J3D_RSIZ_MCT | J3D_RSIZ_NONLT (not implemented yet)*/
|
||||||
cio_write(cio, Rsiz, 2); /* capabilities of WDv5.2*/
|
cio_write(cio, Rsiz, 2); /* capabilities of WDv5.2*/
|
||||||
cio_write(cio, volume->x1, 4); /* Xsiz */
|
cio_write(cio, volume->x1, 4); /* Xsiz */
|
||||||
|
@ -725,7 +725,7 @@ static void j3d_read_siz(opj_j3d_t *j3d) {
|
||||||
for (i = 0; i < volume->numcomps; i++)
|
for (i = 0; i < volume->numcomps; i++)
|
||||||
volume->comps[i].dz = 1;
|
volume->comps[i].dz = 1;
|
||||||
|
|
||||||
//Initialization of volume
|
/*Initialization of volume*/
|
||||||
cp->tw = int_ceildiv(volume->x1 - cp->tx0, cp->tdx);
|
cp->tw = int_ceildiv(volume->x1 - cp->tx0, cp->tdx);
|
||||||
cp->th = int_ceildiv(volume->y1 - cp->ty0, cp->tdy);
|
cp->th = int_ceildiv(volume->y1 - cp->ty0, cp->tdy);
|
||||||
cp->tl = int_ceildiv(volume->z1 - cp->tz0, cp->tdz);
|
cp->tl = int_ceildiv(volume->z1 - cp->tz0, cp->tdz);
|
||||||
|
@ -767,10 +767,10 @@ static void j3d_write_com(opj_j3d_t *j3d) {
|
||||||
cio_write(cio, J3D_MS_COM, 2);
|
cio_write(cio, J3D_MS_COM, 2);
|
||||||
lenp = cio_tell(cio);
|
lenp = cio_tell(cio);
|
||||||
cio_skip(cio, 2);
|
cio_skip(cio, 2);
|
||||||
//cio_write(cio, 0, 2);
|
/*cio_write(cio, 0, 2);*/
|
||||||
cio_write(cio, j3d->cp->transform_format,1);
|
cio_write(cio, j3d->cp->transform_format,1);
|
||||||
cio_write(cio, j3d->cp->encoding_format,1);
|
cio_write(cio, j3d->cp->encoding_format,1);
|
||||||
//opj_event_msg(j3d->cinfo, EVT_INFO, "TRF %D ENCOD %d\n",j3d->cp->transform_format,j3d->cp->encoding_format);
|
/*opj_event_msg(j3d->cinfo, EVT_INFO, "TRF %D ENCOD %d\n",j3d->cp->transform_format,j3d->cp->encoding_format);*/
|
||||||
if (j3d->cp->comment != NULL) {
|
if (j3d->cp->comment != NULL) {
|
||||||
char *comment = j3d->cp->comment;
|
char *comment = j3d->cp->comment;
|
||||||
for (i = 0; i < strlen(comment); i++) {
|
for (i = 0; i < strlen(comment); i++) {
|
||||||
|
@ -791,9 +791,9 @@ static void j3d_read_com(opj_j3d_t *j3d) {
|
||||||
|
|
||||||
j3d->cp->transform_format = (OPJ_TRANSFORM) cio_read(cio, 1);
|
j3d->cp->transform_format = (OPJ_TRANSFORM) cio_read(cio, 1);
|
||||||
j3d->cp->encoding_format = (OPJ_ENTROPY_CODING) cio_read(cio, 1);
|
j3d->cp->encoding_format = (OPJ_ENTROPY_CODING) cio_read(cio, 1);
|
||||||
//opj_event_msg(j3d->cinfo, EVT_INFO, "TRF %D ENCOD %d\n",j3d->cp->transform_format,j3d->cp->encoding_format);
|
/*opj_event_msg(j3d->cinfo, EVT_INFO, "TRF %D ENCOD %d\n",j3d->cp->transform_format,j3d->cp->encoding_format);*/
|
||||||
|
|
||||||
cio_skip(cio, len - 4); //posible comments
|
cio_skip(cio, len - 4); /*posible comments*/
|
||||||
}
|
}
|
||||||
|
|
||||||
static void j3d_write_cox(opj_j3d_t *j3d, int compno) {
|
static void j3d_write_cox(opj_j3d_t *j3d, int compno) {
|
||||||
|
@ -871,7 +871,7 @@ static void j3d_read_cox(opj_j3d_t *j3d, int compno) {
|
||||||
tccp->dwtid[1] = tccp->dwtid[0]; /* SPcox (L) */
|
tccp->dwtid[1] = tccp->dwtid[0]; /* SPcox (L) */
|
||||||
tccp->dwtid[2] = tccp->dwtid[0]; /* SPcox (M) */
|
tccp->dwtid[2] = tccp->dwtid[0]; /* SPcox (M) */
|
||||||
}
|
}
|
||||||
tccp->reversible = (tccp->dwtid[0]>=1 && tccp->dwtid[1]>=1 && tccp->dwtid[2]>=1); //TODO: only valid for irreversible 9x7 WTs
|
tccp->reversible = (tccp->dwtid[0]>=1 && tccp->dwtid[1]>=1 && tccp->dwtid[2]>=1); /*TODO: only valid for irreversible 9x7 WTs*/
|
||||||
if (tccp->csty & J3D_CP_CSTY_PRT) {
|
if (tccp->csty & J3D_CP_CSTY_PRT) {
|
||||||
for (i = 0; i < tccp->numresolution[0]; i++) {
|
for (i = 0; i < tccp->numresolution[0]; i++) {
|
||||||
int tmp = cio_read(cio, 2); /* SPcox (N_i) */
|
int tmp = cio_read(cio, 2); /* SPcox (N_i) */
|
||||||
|
@ -1494,7 +1494,7 @@ static void j3d_read_eoc(opj_j3d_t *j3d) {
|
||||||
j3d_dump_cp(stdout, tcd->volume, tcd->cp);*/
|
j3d_dump_cp(stdout, tcd->volume, tcd->cp);*/
|
||||||
for (i = 0; i < j3d->cp->tileno_size; i++) {
|
for (i = 0; i < j3d->cp->tileno_size; i++) {
|
||||||
tileno = j3d->cp->tileno[i];
|
tileno = j3d->cp->tileno[i];
|
||||||
//opj_event_msg(j3d->cinfo, EVT_INFO, "tcd_decode_tile \n");
|
/*opj_event_msg(j3d->cinfo, EVT_INFO, "tcd_decode_tile \n");*/
|
||||||
tcd_decode_tile(tcd, j3d->tile_data[tileno], j3d->tile_len[tileno], tileno);
|
tcd_decode_tile(tcd, j3d->tile_data[tileno], j3d->tile_len[tileno], tileno);
|
||||||
opj_free(j3d->tile_data[tileno]);
|
opj_free(j3d->tile_data[tileno]);
|
||||||
j3d->tile_data[tileno] = NULL;
|
j3d->tile_data[tileno] = NULL;
|
||||||
|
@ -1696,7 +1696,7 @@ opj_volume_t* j3d_decode(opj_j3d_t *j3d, opj_cio_t *cio) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
e = j3d_dec_mstab_lookup(id);
|
e = j3d_dec_mstab_lookup(id);
|
||||||
//opj_event_msg(cinfo, EVT_INFO, "MARKER %x PREVSTATE %d E->STATE %d\n",e->id,j3d->state,e->states);
|
/*opj_event_msg(cinfo, EVT_INFO, "MARKER %x PREVSTATE %d E->STATE %d\n",e->id,j3d->state,e->states);*/
|
||||||
if (!(j3d->state & e->states)) {
|
if (!(j3d->state & e->states)) {
|
||||||
opj_volume_destroy(volume);
|
opj_volume_destroy(volume);
|
||||||
opj_event_msg(cinfo, EVT_ERROR, "%.8x: unexpected marker %x\n", cio_tell(cio) - 2, id);
|
opj_event_msg(cinfo, EVT_ERROR, "%.8x: unexpected marker %x\n", cio_tell(cio) - 2, id);
|
||||||
|
@ -1705,7 +1705,7 @@ opj_volume_t* j3d_decode(opj_j3d_t *j3d, opj_cio_t *cio) {
|
||||||
if (e->handler) {
|
if (e->handler) {
|
||||||
(*e->handler)(j3d);
|
(*e->handler)(j3d);
|
||||||
}
|
}
|
||||||
//opj_event_msg(cinfo, EVT_INFO, "POSTSTATE %d\n",j3d->state);
|
/*opj_event_msg(cinfo, EVT_INFO, "POSTSTATE %d\n",j3d->state);*/
|
||||||
if (j3d->state == J3D_STATE_MT) {
|
if (j3d->state == J3D_STATE_MT) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1898,7 +1898,7 @@ void j3d_setup_encoder(opj_j3d_t *j3d, opj_cparameters_t *parameters, opj_volume
|
||||||
tccp->cblk[1] = int_floorlog2(parameters->cblock_init[1]);
|
tccp->cblk[1] = int_floorlog2(parameters->cblock_init[1]);
|
||||||
tccp->cblk[2] = int_floorlog2(parameters->cblock_init[2]);
|
tccp->cblk[2] = int_floorlog2(parameters->cblock_init[2]);
|
||||||
assert (tccp->cblk[0]+tccp->cblk[1]+tccp->cblk[1] <= T1_MAXWHD);
|
assert (tccp->cblk[0]+tccp->cblk[1]+tccp->cblk[1] <= T1_MAXWHD);
|
||||||
tccp->cblksty = parameters->mode; //Codeblock style --> Table A.19 (default 0)
|
tccp->cblksty = parameters->mode; /*Codeblock style --> Table A.19 (default 0)*/
|
||||||
|
|
||||||
/*ATK / transform */
|
/*ATK / transform */
|
||||||
tccp->reversible = parameters->irreversible ? 0 : 1; /* 0 => DWT 9-7 || 1 => DWT 5-3 */
|
tccp->reversible = parameters->irreversible ? 0 : 1; /* 0 => DWT 9-7 || 1 => DWT 5-3 */
|
||||||
|
@ -1946,7 +1946,7 @@ void j3d_setup_encoder(opj_j3d_t *j3d, opj_cparameters_t *parameters, opj_volume
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Calcular stepsize for each subband (if NOQNT -->stepsize = 1.0)
|
/*Calcular stepsize for each subband (if NOQNT -->stepsize = 1.0)*/
|
||||||
dwt_calc_explicit_stepsizes(tccp, volume->comps[i].prec);
|
dwt_calc_explicit_stepsizes(tccp, volume->comps[i].prec);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2051,8 +2051,8 @@ static int j3d_create_index(opj_j3d_t *j3d, opj_cio_t *cio, opj_volume_info_t *v
|
||||||
*/
|
*/
|
||||||
for (resno = 0; resno < volume_info->decomposition[0] + 1; resno++) {
|
for (resno = 0; resno < volume_info->decomposition[0] + 1; resno++) {
|
||||||
/* I suppose components have same XRsiz, YRsiz */
|
/* I suppose components have same XRsiz, YRsiz */
|
||||||
//int x0 = volume_info->tile_Ox + tileno - (int)floor( (float)tileno/(float)volume_info->tw ) * volume_info->tw * volume_info->tile_x;
|
/*int x0 = volume_info->tile_Ox + tileno - (int)floor( (float)tileno/(float)volume_info->tw ) * volume_info->tw * volume_info->tile_x;*/
|
||||||
//int y0 = volume_info->tile_Ox + (int)floor( (float)tileno/(float)volume_info->tw ) * volume_info->tile_y;
|
/*int y0 = volume_info->tile_Ox + (int)floor( (float)tileno/(float)volume_info->tw ) * volume_info->tile_y;*/
|
||||||
int x0 = volume_info->tile_Ox + (int)floor( (float)tileno/(float)volume_info->tw ) * volume_info->tile_x;
|
int x0 = volume_info->tile_Ox + (int)floor( (float)tileno/(float)volume_info->tw ) * volume_info->tile_x;
|
||||||
int y0 = volume_info->tile_Oy + (int)floor( (float)tileno/(float)volume_info->th ) * volume_info->tile_y;
|
int y0 = volume_info->tile_Oy + (int)floor( (float)tileno/(float)volume_info->th ) * volume_info->tile_y;
|
||||||
int z0 = volume_info->tile_Ox + (int)floor( (float)tileno/(float)volume_info->tl ) * volume_info->tile_z;
|
int z0 = volume_info->tile_Ox + (int)floor( (float)tileno/(float)volume_info->tl ) * volume_info->tile_z;
|
||||||
|
@ -2300,7 +2300,7 @@ bool j3d_encode(opj_j3d_t *j3d, opj_cio_t *cio, opj_volume_t *volume, char *inde
|
||||||
if (cp->tcps[tileno].numpocs) {
|
if (cp->tcps[tileno].numpocs) {
|
||||||
j3d_write_poc(j3d);
|
j3d_write_poc(j3d);
|
||||||
}
|
}
|
||||||
j3d_write_sod(j3d, tcd); //--> tcd_encode_tile
|
j3d_write_sod(j3d, tcd); /*--> tcd_encode_tile*/
|
||||||
|
|
||||||
/* INDEX >> */
|
/* INDEX >> */
|
||||||
if(volume_info && volume_info->index_on) {
|
if(volume_info && volume_info->index_on) {
|
||||||
|
|
|
@ -81,7 +81,7 @@ The functions in J3D.C have for goal to read/write the several parts of the code
|
||||||
#define J3D_MS_EPH 0xff92 /**< EPH marker value */
|
#define J3D_MS_EPH 0xff92 /**< EPH marker value */
|
||||||
#define J3D_MS_CRG 0xff63 /**< CRG marker value */
|
#define J3D_MS_CRG 0xff63 /**< CRG marker value */
|
||||||
#define J3D_MS_COM 0xff64 /**< COM marker value */
|
#define J3D_MS_COM 0xff64 /**< COM marker value */
|
||||||
//15444-2
|
/*15444-2*/
|
||||||
#define J3D_MS_DCO 0xff70 /**< DCO marker value */
|
#define J3D_MS_DCO 0xff70 /**< DCO marker value */
|
||||||
#define J3D_MS_VMS 0xff71 /**< VMS marker value */
|
#define J3D_MS_VMS 0xff71 /**< VMS marker value */
|
||||||
#define J3D_MS_DFS 0xff72 /**< DFS marker value */
|
#define J3D_MS_DFS 0xff72 /**< DFS marker value */
|
||||||
|
|
|
@ -75,7 +75,4 @@
|
||||||
#include "int.h"
|
#include "int.h"
|
||||||
#include "fix.h"
|
#include "fix.h"
|
||||||
|
|
||||||
//#include "pred.h"
|
|
||||||
//#include "golomb.h"
|
|
||||||
|
|
||||||
#endif /* OPJ_INCLUDES_H */
|
#endif /* OPJ_INCLUDES_H */
|
||||||
|
|
|
@ -99,7 +99,7 @@ static bool pi_next_lrcp(opj_pi_iterator_t * pi) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
res = &comp->resolutions[pi->resno];
|
res = &comp->resolutions[pi->resno];
|
||||||
//for (pi->precno = 0; pi->precno < (res->prctno[0] * res->prctno[1]); pi->precno++) {
|
/*for (pi->precno = 0; pi->precno < (res->prctno[0] * res->prctno[1]); pi->precno++) {*/
|
||||||
for (pi->precno = 0; pi->precno < (res->prctno[0] * res->prctno[1] * res->prctno[2]); pi->precno++) {
|
for (pi->precno = 0; pi->precno < (res->prctno[0] * res->prctno[1] * res->prctno[2]); pi->precno++) {
|
||||||
index = pi->layno * pi->step_l
|
index = pi->layno * pi->step_l
|
||||||
+ pi->resno * pi->step_r
|
+ pi->resno * pi->step_r
|
||||||
|
@ -140,7 +140,7 @@ static bool pi_next_rlcp(opj_pi_iterator_t * pi) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
res = &comp->resolutions[pi->resno];
|
res = &comp->resolutions[pi->resno];
|
||||||
//for (pi->precno = 0; pi->precno < (res->prctno[0] * res->prctno[1]); pi->precno++) {
|
/*for (pi->precno = 0; pi->precno < (res->prctno[0] * res->prctno[1]); pi->precno++) {*/
|
||||||
for (pi->precno = 0; pi->precno < (res->prctno[0] * res->prctno[1] * res->prctno[2]); pi->precno++) {
|
for (pi->precno = 0; pi->precno < (res->prctno[0] * res->prctno[1] * res->prctno[2]); pi->precno++) {
|
||||||
index = pi->layno * pi->step_l + pi->resno * pi->step_r + pi->compno * pi->step_c + pi->precno * pi->step_p;
|
index = pi->layno * pi->step_l + pi->resno * pi->step_r + pi->compno * pi->step_c + pi->precno * pi->step_p;
|
||||||
if (!pi->include[index]) {
|
if (!pi->include[index]) {
|
||||||
|
|
|
@ -117,9 +117,9 @@ typedef struct opj_t1 {
|
||||||
int lut_nmsedec_ref[1 << T1_NMSEDEC_BITS];
|
int lut_nmsedec_ref[1 << T1_NMSEDEC_BITS];
|
||||||
int lut_nmsedec_ref0[1 << T1_NMSEDEC_BITS];
|
int lut_nmsedec_ref0[1 << T1_NMSEDEC_BITS];
|
||||||
/** Codeblock data */
|
/** Codeblock data */
|
||||||
int data[T1_CBLKD][T1_CBLKH][T1_CBLKW];//int ***data;
|
int data[T1_CBLKD][T1_CBLKH][T1_CBLKW];/*int ***data;*/
|
||||||
/** Context information for each voxel in codeblock */
|
/** Context information for each voxel in codeblock */
|
||||||
int flags[T1_CBLKD + 2][T1_CBLKH + 2][T1_CBLKH + 2];//int ***flags;
|
int flags[T1_CBLKD + 2][T1_CBLKH + 2][T1_CBLKH + 2];/*int ***flags;*/
|
||||||
} opj_t1_t;
|
} opj_t1_t;
|
||||||
|
|
||||||
/** @name Exported functions */
|
/** @name Exported functions */
|
||||||
|
|
|
@ -79,9 +79,9 @@ The functions in T1_3D.C are used by some function in TCD.C.
|
||||||
#define T1_3D_SGN_B 0x8000
|
#define T1_3D_SGN_B 0x8000
|
||||||
#define T1_3D_SGN (T1_3D_SGN_N|T1_3D_SGN_E|T1_3D_SGN_S|T1_3D_SGN_W|T1_3D_SGN_F|T1_3D_SGN_B)
|
#define T1_3D_SGN (T1_3D_SGN_N|T1_3D_SGN_E|T1_3D_SGN_S|T1_3D_SGN_W|T1_3D_SGN_F|T1_3D_SGN_B)
|
||||||
|
|
||||||
#define T1_3D_SIG 0x0001 //Significance state
|
#define T1_3D_SIG 0x0001 /*Significance state*/
|
||||||
#define T1_3D_REFINE 0x0002 //Delayed significance
|
#define T1_3D_REFINE 0x0002 /*Delayed significance*/
|
||||||
#define T1_3D_VISIT 0x0004 //First-pass membership
|
#define T1_3D_VISIT 0x0004 /*First-pass membership*/
|
||||||
|
|
||||||
#define T1_3D_NUMCTXS_AGG 1
|
#define T1_3D_NUMCTXS_AGG 1
|
||||||
#define T1_3D_NUMCTXS_ZC 16
|
#define T1_3D_NUMCTXS_ZC 16
|
||||||
|
@ -90,11 +90,11 @@ The functions in T1_3D.C are used by some function in TCD.C.
|
||||||
#define T1_3D_NUMCTXS_UNI 1
|
#define T1_3D_NUMCTXS_UNI 1
|
||||||
|
|
||||||
#define T1_3D_CTXNO_AGG 0
|
#define T1_3D_CTXNO_AGG 0
|
||||||
#define T1_3D_CTXNO_ZC (T1_3D_CTXNO_AGG+T1_3D_NUMCTXS_AGG) //1
|
#define T1_3D_CTXNO_ZC (T1_3D_CTXNO_AGG+T1_3D_NUMCTXS_AGG) /*1*/
|
||||||
#define T1_3D_CTXNO_MAG (T1_3D_CTXNO_ZC+T1_3D_NUMCTXS_ZC) //17
|
#define T1_3D_CTXNO_MAG (T1_3D_CTXNO_ZC+T1_3D_NUMCTXS_ZC) /*17*/
|
||||||
#define T1_3D_CTXNO_SC (T1_3D_CTXNO_MAG+T1_3D_NUMCTXS_MAG) //20
|
#define T1_3D_CTXNO_SC (T1_3D_CTXNO_MAG+T1_3D_NUMCTXS_MAG) /*20*/
|
||||||
#define T1_3D_CTXNO_UNI (T1_3D_CTXNO_SC+T1_3D_NUMCTXS_SC) //26
|
#define T1_3D_CTXNO_UNI (T1_3D_CTXNO_SC+T1_3D_NUMCTXS_SC) /*26*/
|
||||||
#define T1_3D_NUMCTXS (T1_3D_CTXNO_UNI+T1_3D_NUMCTXS_UNI) //27
|
#define T1_3D_NUMCTXS (T1_3D_CTXNO_UNI+T1_3D_NUMCTXS_UNI) /*27*/
|
||||||
|
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
|
|
|
@ -156,7 +156,7 @@ void tcd_destroy(opj_tcd_t *tcd) {
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
void tcd_malloc_encode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp, int curtileno) {
|
void tcd_malloc_encode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp, int curtileno) {
|
||||||
int compno, resno, bandno, precno, cblkno, i, j;//, k;
|
int compno, resno, bandno, precno, cblkno, i, j;/*, k;*/
|
||||||
|
|
||||||
opj_tcd_tile_t *tile = NULL; /* pointer to tcd->tile */
|
opj_tcd_tile_t *tile = NULL; /* pointer to tcd->tile */
|
||||||
opj_tcd_tilecomp_t *tilec = NULL; /* pointer to tcd->tilec */
|
opj_tcd_tilecomp_t *tilec = NULL; /* pointer to tcd->tilec */
|
||||||
|
@ -239,7 +239,7 @@ void tcd_malloc_encode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp, int
|
||||||
res_max = 0;
|
res_max = 0;
|
||||||
for (i = 0;i < 3; i++){
|
for (i = 0;i < 3; i++){
|
||||||
tilec->numresolution[i] = tccp->numresolution[i];
|
tilec->numresolution[i] = tccp->numresolution[i];
|
||||||
//Greater of 3 resolutions contains all information
|
/*Greater of 3 resolutions contains all information*/
|
||||||
res_max = (tilec->numresolution[i] > res_max) ? tilec->numresolution[i] : res_max;
|
res_max = (tilec->numresolution[i] > res_max) ? tilec->numresolution[i] : res_max;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -272,7 +272,7 @@ void tcd_malloc_encode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp, int
|
||||||
res->x1 = int_ceildivpow2(tilec->x1, levelnox);
|
res->x1 = int_ceildivpow2(tilec->x1, levelnox);
|
||||||
res->y1 = int_ceildivpow2(tilec->y1, levelnoy);
|
res->y1 = int_ceildivpow2(tilec->y1, levelnoy);
|
||||||
res->z1 = int_ceildivpow2(tilec->z1, levelnoz);
|
res->z1 = int_ceildivpow2(tilec->z1, levelnoz);
|
||||||
//if (res->z1 < 0)fprintf(stdout,"Res: %d %d/%d --> %d\n",resno,tilec->z1, levelnoz, int_ceildivpow2(tilec->z1, levelnoz));
|
/*if (res->z1 < 0)fprintf(stdout,"Res: %d %d/%d --> %d\n",resno,tilec->z1, levelnoz, int_ceildivpow2(tilec->z1, levelnoz));*/
|
||||||
|
|
||||||
res->numbands = (resno == 0) ? 1 : (resno <= diff) ? 3 : 7; /* --> 3D */
|
res->numbands = (resno == 0) ? 1 : (resno <= diff) ? 3 : 7; /* --> 3D */
|
||||||
|
|
||||||
|
@ -323,9 +323,9 @@ void tcd_malloc_encode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp, int
|
||||||
cbglengthexpn = pdz - 1;
|
cbglengthexpn = pdz - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
cblkwidthexpn = int_min(tccp->cblk[0], cbgwidthexpn); //6
|
cblkwidthexpn = int_min(tccp->cblk[0], cbgwidthexpn); /*6*/
|
||||||
cblkheightexpn = int_min(tccp->cblk[1], cbgheightexpn); //6
|
cblkheightexpn = int_min(tccp->cblk[1], cbgheightexpn); /*6*/
|
||||||
cblklengthexpn = int_min(tccp->cblk[2], cbglengthexpn); //6
|
cblklengthexpn = int_min(tccp->cblk[2], cbglengthexpn); /*6*/
|
||||||
|
|
||||||
res->bands = (opj_tcd_band_t *) opj_malloc(res->numbands * sizeof(opj_tcd_band_t));
|
res->bands = (opj_tcd_band_t *) opj_malloc(res->numbands * sizeof(opj_tcd_band_t));
|
||||||
for (bandno = 0; bandno < res->numbands; bandno++) {
|
for (bandno = 0; bandno < res->numbands; bandno++) {
|
||||||
|
@ -414,7 +414,7 @@ void tcd_malloc_encode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp, int
|
||||||
prc->cblks = (opj_tcd_cblk_t *) opj_malloc((prc->cblkno[0] * prc->cblkno[1] * prc->cblkno[2]) * sizeof(opj_tcd_cblk_t));
|
prc->cblks = (opj_tcd_cblk_t *) opj_malloc((prc->cblkno[0] * prc->cblkno[1] * prc->cblkno[2]) * sizeof(opj_tcd_cblk_t));
|
||||||
prc->incltree = tgt_create(prc->cblkno[0], prc->cblkno[1], prc->cblkno[2]);
|
prc->incltree = tgt_create(prc->cblkno[0], prc->cblkno[1], prc->cblkno[2]);
|
||||||
prc->imsbtree = tgt_create(prc->cblkno[0], prc->cblkno[1], prc->cblkno[2]);
|
prc->imsbtree = tgt_create(prc->cblkno[0], prc->cblkno[1], prc->cblkno[2]);
|
||||||
//tgt_tree_dump(stdout,prc->incltree);
|
/*tgt_tree_dump(stdout,prc->incltree);*/
|
||||||
for (cblkno = 0; cblkno < (prc->cblkno[0] * prc->cblkno[1] * prc->cblkno[2]); cblkno++) {
|
for (cblkno = 0; cblkno < (prc->cblkno[0] * prc->cblkno[1] * prc->cblkno[2]); cblkno++) {
|
||||||
int cblkxstart = tlcblkxstart + (cblkno % prc->cblkno[0]) * (1 << cblkwidthexpn);
|
int cblkxstart = tlcblkxstart + (cblkno % prc->cblkno[0]) * (1 << cblkwidthexpn);
|
||||||
int cblkystart = tlcblkystart + ((cblkno % (prc->cblkno[0] * prc->cblkno[1])) / prc->cblkno[0]) * (1 << cblkheightexpn);
|
int cblkystart = tlcblkystart + ((cblkno % (prc->cblkno[0] * prc->cblkno[1])) / prc->cblkno[0]) * (1 << cblkheightexpn);
|
||||||
|
@ -439,7 +439,7 @@ void tcd_malloc_encode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp, int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//tcd_dump(stdout, tcd, tcd->tcd_volume);
|
/*tcd_dump(stdout, tcd, tcd->tcd_volume);*/
|
||||||
|
|
||||||
}
|
}
|
||||||
void tcd_init_encode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp, int curtileno) {
|
void tcd_init_encode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp, int curtileno) {
|
||||||
|
@ -518,7 +518,7 @@ void tcd_init_encode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp, int c
|
||||||
res_max = 0;
|
res_max = 0;
|
||||||
for (i = 0;i < 3; i++){
|
for (i = 0;i < 3; i++){
|
||||||
tilec->numresolution[i] = tccp->numresolution[i];
|
tilec->numresolution[i] = tccp->numresolution[i];
|
||||||
//Greater of 3 resolutions contains all information
|
/*Greater of 3 resolutions contains all information*/
|
||||||
res_max = (tilec->numresolution[i] > res_max) ? tilec->numresolution[i] : res_max;
|
res_max = (tilec->numresolution[i] > res_max) ? tilec->numresolution[i] : res_max;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -547,7 +547,8 @@ void tcd_init_encode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp, int c
|
||||||
res->y1 = int_ceildivpow2(tilec->y1, levelnoy);
|
res->y1 = int_ceildivpow2(tilec->y1, levelnoy);
|
||||||
res->z1 = int_ceildivpow2(tilec->z1, levelnoz);
|
res->z1 = int_ceildivpow2(tilec->z1, levelnoz);
|
||||||
|
|
||||||
// res->numbands = resno == 0 ? 1 : 3; /* --> 2D */
|
/* res->numbands = resno == 0 ? 1 : 3; *//* --> 2D */
|
||||||
|
|
||||||
res->numbands = (resno == 0) ? 1 : (resno <= diff) ? 3 : 7; /* --> 3D */
|
res->numbands = (resno == 0) ? 1 : (resno <= diff) ? 3 : 7; /* --> 3D */
|
||||||
|
|
||||||
/* p. 30, table A-13, ISO/IEC IS154444-1 : 2002 */
|
/* p. 30, table A-13, ISO/IEC IS154444-1 : 2002 */
|
||||||
|
@ -707,7 +708,7 @@ void tcd_init_encode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp, int c
|
||||||
} /* bandno */
|
} /* bandno */
|
||||||
} /* resno */
|
} /* resno */
|
||||||
} /* compno */
|
} /* compno */
|
||||||
//tcd_dump(stdout, tcd, tcd->tcd_volume);
|
/*tcd_dump(stdout, tcd, tcd->tcd_volume);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -715,7 +716,7 @@ void tcd_free_encode(opj_tcd_t *tcd) {
|
||||||
int tileno, compno, resno, bandno, precno;
|
int tileno, compno, resno, bandno, precno;
|
||||||
|
|
||||||
opj_tcd_tile_t *tile = NULL; /* pointer to tcd->tile */
|
opj_tcd_tile_t *tile = NULL; /* pointer to tcd->tile */
|
||||||
// opj_tcd_slice_t *slice = NULL; /* pointer to tcd->slice */
|
/* opj_tcd_slice_t *slice = NULL; */ /* pointer to tcd->slice */
|
||||||
opj_tcd_tilecomp_t *tilec = NULL; /* pointer to tcd->tilec */
|
opj_tcd_tilecomp_t *tilec = NULL; /* pointer to tcd->tilec */
|
||||||
opj_tcd_resolution_t *res = NULL; /* pointer to tcd->res */
|
opj_tcd_resolution_t *res = NULL; /* pointer to tcd->res */
|
||||||
opj_tcd_band_t *band = NULL; /* pointer to tcd->band */
|
opj_tcd_band_t *band = NULL; /* pointer to tcd->band */
|
||||||
|
@ -821,7 +822,7 @@ void tcd_malloc_decode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp) {
|
||||||
res_max = 0;
|
res_max = 0;
|
||||||
for (i = 0;i < 3; i++){
|
for (i = 0;i < 3; i++){
|
||||||
tilec->numresolution[i] = tccp->numresolution[i];
|
tilec->numresolution[i] = tccp->numresolution[i];
|
||||||
//Greater of 3 resolutions contains all information
|
/*Greater of 3 resolutions contains all information*/
|
||||||
res_max = (tilec->numresolution[i] > res_max) ? tilec->numresolution[i] : res_max;
|
res_max = (tilec->numresolution[i] > res_max) ? tilec->numresolution[i] : res_max;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -874,13 +875,13 @@ void tcd_malloc_decode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp) {
|
||||||
|
|
||||||
/* p. 67, B.17 & B.18, ISO/IEC IS15444-1 : 2002 */
|
/* p. 67, B.17 & B.18, ISO/IEC IS15444-1 : 2002 */
|
||||||
if (resno == 0) {
|
if (resno == 0) {
|
||||||
tlcbgxstart = tlprcxstart;//0
|
tlcbgxstart = tlprcxstart;/*0*/
|
||||||
tlcbgystart = tlprcystart;
|
tlcbgystart = tlprcystart;
|
||||||
tlcbgzstart = tlprczstart;
|
tlcbgzstart = tlprczstart;
|
||||||
brcbgxend = brprcxend;//1
|
brcbgxend = brprcxend;/*1*/
|
||||||
brcbgyend = brprcyend;
|
brcbgyend = brprcyend;
|
||||||
brcbgzend = brprczend;
|
brcbgzend = brprczend;
|
||||||
cbgwidthexpn = pdx; //15
|
cbgwidthexpn = pdx; /*15*/
|
||||||
cbgheightexpn = pdy;
|
cbgheightexpn = pdy;
|
||||||
cbglengthexpn = pdz;
|
cbglengthexpn = pdz;
|
||||||
} else {
|
} else {
|
||||||
|
@ -895,9 +896,9 @@ void tcd_malloc_decode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp) {
|
||||||
cbglengthexpn = pdz - 1;
|
cbglengthexpn = pdz - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
cblkwidthexpn = int_min(tccp->cblk[0], cbgwidthexpn); //6
|
cblkwidthexpn = int_min(tccp->cblk[0], cbgwidthexpn); /*6*/
|
||||||
cblkheightexpn = int_min(tccp->cblk[1], cbgheightexpn); //6
|
cblkheightexpn = int_min(tccp->cblk[1], cbgheightexpn); /*6*/
|
||||||
cblklengthexpn = int_min(tccp->cblk[2], cbglengthexpn); //6
|
cblklengthexpn = int_min(tccp->cblk[2], cbglengthexpn); /*6*/
|
||||||
|
|
||||||
res->bands = (opj_tcd_band_t *) opj_malloc(res->numbands * sizeof(opj_tcd_band_t));
|
res->bands = (opj_tcd_band_t *) opj_malloc(res->numbands * sizeof(opj_tcd_band_t));
|
||||||
for (bandno = 0; bandno < res->numbands; bandno++) {
|
for (bandno = 0; bandno < res->numbands; bandno++) {
|
||||||
|
@ -1003,7 +1004,7 @@ void tcd_malloc_decode(opj_tcd_t *tcd, opj_volume_t * volume, opj_cp_t * cp) {
|
||||||
} /* compno */
|
} /* compno */
|
||||||
} /* i = 0..cp->tileno_size */
|
} /* i = 0..cp->tileno_size */
|
||||||
|
|
||||||
//tcd_dump(stdout, tcd, tcd->tcd_volume);
|
/*tcd_dump(stdout, tcd, tcd->tcd_volume);*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Allocate place to store the decoded data = final volume
|
Allocate place to store the decoded data = final volume
|
||||||
|
@ -1234,7 +1235,7 @@ void tcd_makelayer(opj_tcd_t *tcd, int layno, double thresh, int final) {
|
||||||
if (final)
|
if (final)
|
||||||
cblk->numpassesinlayers = n;
|
cblk->numpassesinlayers = n;
|
||||||
|
|
||||||
// fprintf(stdout,"MakeLayer : %d %f %d %d \n",layer->len, layer->disto, layer->numpasses, n);
|
/* fprintf(stdout,"MakeLayer : %d %f %d %d \n",layer->len, layer->disto, layer->numpasses, n);*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1346,7 +1347,7 @@ bool tcd_rateallocate(opj_tcd_t *tcd, unsigned char *dest, int len, opj_volume_i
|
||||||
lo = thresh;
|
lo = thresh;
|
||||||
} else { /* disto_alloc -r, fixed_alloc -f */
|
} else { /* disto_alloc -r, fixed_alloc -f */
|
||||||
l = t2_encode_packets(t2, tcd->tcd_tileno, tcd_tile, layno + 1, dest, maxlen, volume_info);
|
l = t2_encode_packets(t2, tcd->tcd_tileno, tcd_tile, layno + 1, dest, maxlen, volume_info);
|
||||||
//fprintf(stdout, "layno %d i %d len=%d max=%d \n",layno,i,l,maxlen);
|
/*fprintf(stdout, "layno %d i %d len=%d max=%d \n",layno,i,l,maxlen);*/
|
||||||
if (l == -999) {
|
if (l == -999) {
|
||||||
lo = thresh;
|
lo = thresh;
|
||||||
continue;
|
continue;
|
||||||
|
@ -1433,7 +1434,7 @@ int tcd_encode_tile(opj_tcd_t *tcd, int tileno, unsigned char *dest, int len, op
|
||||||
opj_tcd_tilecomp_t *tilec = &tile->comps[compno];
|
opj_tcd_tilecomp_t *tilec = &tile->comps[compno];
|
||||||
|
|
||||||
int adjust;
|
int adjust;
|
||||||
int offset_x = int_ceildiv(volume->x0, volume->comps[compno].dx); //ceil(x0 / subsampling_dx)
|
int offset_x = int_ceildiv(volume->x0, volume->comps[compno].dx); /*ceil(x0 / subsampling_dx)*/
|
||||||
int offset_y = int_ceildiv(volume->y0, volume->comps[compno].dy);
|
int offset_y = int_ceildiv(volume->y0, volume->comps[compno].dy);
|
||||||
int offset_z = int_ceildiv(volume->z0, volume->comps[compno].dz);
|
int offset_z = int_ceildiv(volume->z0, volume->comps[compno].dz);
|
||||||
|
|
||||||
|
@ -1447,18 +1448,18 @@ int tcd_encode_tile(opj_tcd_t *tcd, int tileno, unsigned char *dest, int len, op
|
||||||
|
|
||||||
|
|
||||||
/* extract tile data from volume.comps[0].data to tile.comps[0].data */
|
/* extract tile data from volume.comps[0].data to tile.comps[0].data */
|
||||||
//fprintf(stdout,"[INFO] Extract tile data\n");
|
/*fprintf(stdout,"[INFO] Extract tile data\n");*/
|
||||||
if (tcd->cp->transform_format == TRF_3D_RLS || tcd->cp->transform_format == TRF_3D_LSE) {
|
if (tcd->cp->transform_format == TRF_3D_RLS || tcd->cp->transform_format == TRF_3D_LSE) {
|
||||||
adjust = 0;
|
adjust = 0;
|
||||||
} else {
|
} else {
|
||||||
adjust = volume->comps[compno].sgnd ? 0 : 1 << (volume->comps[compno].prec - 1); //sign=='+' --> 2^(prec-1)
|
adjust = volume->comps[compno].sgnd ? 0 : 1 << (volume->comps[compno].prec - 1); /*sign=='+' --> 2^(prec-1)*/
|
||||||
if (volume->comps[compno].dcoffset != 0){
|
if (volume->comps[compno].dcoffset != 0){
|
||||||
adjust += volume->comps[compno].dcoffset;
|
adjust += volume->comps[compno].dcoffset;
|
||||||
fprintf(stdout,"[INFO] DC Offset applied: DCO = %d -> adjust = %d\n",volume->comps[compno].dcoffset,adjust);
|
fprintf(stdout,"[INFO] DC Offset applied: DCO = %d -> adjust = %d\n",volume->comps[compno].dcoffset,adjust);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tcd_tcp->tccps[compno].reversible == 1) { //IF perfect reconstruction (DWT.5-3)
|
if (tcd_tcp->tccps[compno].reversible == 1) { /*IF perfect reconstruction (DWT.5-3)*/
|
||||||
for (z = tilec->z0; z < tilec->z1; z++) {
|
for (z = tilec->z0; z < tilec->z1; z++) {
|
||||||
for (y = tilec->y0; y < tilec->y1; y++) {
|
for (y = tilec->y0; y < tilec->y1; y++) {
|
||||||
/* start of the src tile scanline */
|
/* start of the src tile scanline */
|
||||||
|
@ -1470,7 +1471,7 @@ int tcd_encode_tile(opj_tcd_t *tcd, int tileno, unsigned char *dest, int len, op
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (tcd_tcp->tccps[compno].reversible == 0) { //IF not (DWT.9-7)
|
} else if (tcd_tcp->tccps[compno].reversible == 0) { /*IF not (DWT.9-7)*/
|
||||||
for (z = tilec->z0; z < tilec->z1; z++) {
|
for (z = tilec->z0; z < tilec->z1; z++) {
|
||||||
for (y = tilec->y0; y < tilec->y1; y++) {
|
for (y = tilec->y0; y < tilec->y1; y++) {
|
||||||
/* start of the src tile scanline */
|
/* start of the src tile scanline */
|
||||||
|
@ -1694,7 +1695,7 @@ bool tcd_decode_tile(opj_tcd_t *tcd, unsigned char *src, int len, int tileno) {
|
||||||
if (tcd->cp->transform_format == TRF_3D_RLS || tcd->cp->transform_format == TRF_3D_LSE) {
|
if (tcd->cp->transform_format == TRF_3D_RLS || tcd->cp->transform_format == TRF_3D_LSE) {
|
||||||
adjust = 0;
|
adjust = 0;
|
||||||
} else {
|
} else {
|
||||||
adjust = tcd->volume->comps[compno].sgnd ? 0 : 1 << (tcd->volume->comps[compno].prec - 1); //sign=='+' --> 2^(prec-1)
|
adjust = tcd->volume->comps[compno].sgnd ? 0 : 1 << (tcd->volume->comps[compno].prec - 1); /*sign=='+' --> 2^(prec-1)*/
|
||||||
if (tcd->volume->comps[compno].dcoffset != 0){
|
if (tcd->volume->comps[compno].dcoffset != 0){
|
||||||
adjust += tcd->volume->comps[compno].dcoffset;
|
adjust += tcd->volume->comps[compno].dcoffset;
|
||||||
fprintf(stdout,"[INFO] DC Offset applied: DCO = %d -> adjust = %d\n",tcd->volume->comps[compno].dcoffset,adjust);
|
fprintf(stdout,"[INFO] DC Offset applied: DCO = %d -> adjust = %d\n",tcd->volume->comps[compno].dcoffset,adjust);
|
||||||
|
|
|
@ -115,7 +115,7 @@ typedef struct opj_tcd_cblk {
|
||||||
opj_tcd_pass_t passes[100];
|
opj_tcd_pass_t passes[100];
|
||||||
/* Data */
|
/* Data */
|
||||||
unsigned char data[524288];
|
unsigned char data[524288];
|
||||||
//unsigned char *data;
|
/*unsigned char *data;*/
|
||||||
} opj_tcd_cblk_t;
|
} opj_tcd_cblk_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1610,6 +1610,7 @@ opj_bool jpwl_esd_write(opj_j2k_t *j2k, jpwl_esd_ms_t *esd, unsigned char *buf)
|
||||||
/* update markers struct */
|
/* update markers struct */
|
||||||
j2k_add_marker(j2k->cstr_info, J2K_MS_ESD, -1, esd->Lesd + 2);
|
j2k_add_marker(j2k->cstr_info, J2K_MS_ESD, -1, esd->Lesd + 2);
|
||||||
|
|
||||||
|
return OPJ_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short int jpwl_double_to_pfp(double V, int bytes) {
|
unsigned short int jpwl_double_to_pfp(double V, int bytes) {
|
||||||
|
|
Loading…
Reference in New Issue