[trunk] fixed indentation in opj_compress.c, renamed 2 internal
functions, added some comments
This commit is contained in:
parent
7b14cf8558
commit
c59124dfe2
|
@ -90,13 +90,13 @@ static void encode_help_display(void) {
|
||||||
fprintf(stdout,"HELP for opj_compress\n----\n\n");
|
fprintf(stdout,"HELP for opj_compress\n----\n\n");
|
||||||
fprintf(stdout,"- the -h option displays this help information on screen\n\n");
|
fprintf(stdout,"- the -h option displays this help information on screen\n\n");
|
||||||
|
|
||||||
/* UniPG>> */
|
/* UniPG>> */
|
||||||
fprintf(stdout,"List of parameters for the JPEG 2000 "
|
fprintf(stdout,"List of parameters for the JPEG 2000 "
|
||||||
#ifdef USE_JPWL
|
#ifdef USE_JPWL
|
||||||
"+ JPWL "
|
"+ JPWL "
|
||||||
#endif /* USE_JPWL */
|
#endif /* USE_JPWL */
|
||||||
"encoder:\n");
|
"encoder:\n");
|
||||||
/* <<UniPG */
|
/* <<UniPG */
|
||||||
fprintf(stdout,"\n");
|
fprintf(stdout,"\n");
|
||||||
fprintf(stdout,"REMARKS:\n");
|
fprintf(stdout,"REMARKS:\n");
|
||||||
fprintf(stdout,"---------\n");
|
fprintf(stdout,"---------\n");
|
||||||
|
@ -122,11 +122,11 @@ static void encode_help_display(void) {
|
||||||
fprintf(stdout," * No offset of the origin of the image\n");
|
fprintf(stdout," * No offset of the origin of the image\n");
|
||||||
fprintf(stdout," * No offset of the origin of the tiles\n");
|
fprintf(stdout," * No offset of the origin of the tiles\n");
|
||||||
fprintf(stdout," * Reversible DWT 5-3\n");
|
fprintf(stdout," * Reversible DWT 5-3\n");
|
||||||
/* UniPG>> */
|
/* UniPG>> */
|
||||||
#ifdef USE_JPWL
|
#ifdef USE_JPWL
|
||||||
fprintf(stdout," * No JPWL protection\n");
|
fprintf(stdout," * No JPWL protection\n");
|
||||||
#endif /* USE_JPWL */
|
#endif /* USE_JPWL */
|
||||||
/* <<UniPG */
|
/* <<UniPG */
|
||||||
fprintf(stdout,"\n");
|
fprintf(stdout,"\n");
|
||||||
fprintf(stdout,"Parameters:\n");
|
fprintf(stdout,"Parameters:\n");
|
||||||
fprintf(stdout,"------------\n");
|
fprintf(stdout,"------------\n");
|
||||||
|
@ -220,7 +220,7 @@ static void encode_help_display(void) {
|
||||||
fprintf(stdout,"-jpip : write jpip codestream index box in JP2 output file\n");
|
fprintf(stdout,"-jpip : write jpip codestream index box in JP2 output file\n");
|
||||||
fprintf(stdout," NOTICE: currently supports only RPCL order\n");
|
fprintf(stdout," NOTICE: currently supports only RPCL order\n");
|
||||||
fprintf(stdout,"\n");
|
fprintf(stdout,"\n");
|
||||||
/* UniPG>> */
|
/* UniPG>> */
|
||||||
#ifdef USE_JPWL
|
#ifdef USE_JPWL
|
||||||
fprintf(stdout,"-W : adoption of JPWL (Part 11) capabilities (-W params)\n");
|
fprintf(stdout,"-W : adoption of JPWL (Part 11) capabilities (-W params)\n");
|
||||||
fprintf(stdout," The parameters can be written and repeated in any order:\n");
|
fprintf(stdout," The parameters can be written and repeated in any order:\n");
|
||||||
|
@ -286,7 +286,7 @@ static void encode_help_display(void) {
|
||||||
fprintf(stdout," - when you use UEP, always pair the 'p' option with 'h'\n");
|
fprintf(stdout," - when you use UEP, always pair the 'p' option with 'h'\n");
|
||||||
fprintf(stdout," \n");
|
fprintf(stdout," \n");
|
||||||
#endif /* USE_JPWL */
|
#endif /* USE_JPWL */
|
||||||
/* <<UniPG */
|
/* <<UniPG */
|
||||||
fprintf(stdout,"IMPORTANT:\n");
|
fprintf(stdout,"IMPORTANT:\n");
|
||||||
fprintf(stdout,"-----------\n");
|
fprintf(stdout,"-----------\n");
|
||||||
fprintf(stdout,"\n");
|
fprintf(stdout,"\n");
|
||||||
|
@ -464,66 +464,83 @@ static int initialise_4K_poc(opj_poc_t *POC, int numres){
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cinema_parameters(opj_cparameters_t *parameters){
|
static void set_cinema_parameters(opj_cparameters_t *parameters){
|
||||||
|
|
||||||
|
/* No tiling */
|
||||||
parameters->tile_size_on = OPJ_FALSE;
|
parameters->tile_size_on = OPJ_FALSE;
|
||||||
parameters->cp_tdx=1;
|
parameters->cp_tdx=1;
|
||||||
parameters->cp_tdy=1;
|
parameters->cp_tdy=1;
|
||||||
|
|
||||||
/*Tile part*/
|
/* One tile part for each component */
|
||||||
parameters->tp_flag = 'C';
|
parameters->tp_flag = 'C';
|
||||||
parameters->tp_on = 1;
|
parameters->tp_on = 1;
|
||||||
|
|
||||||
/*Tile and Image shall be at (0,0)*/
|
/* Tile and Image shall be at (0,0) */
|
||||||
parameters->cp_tx0 = 0;
|
parameters->cp_tx0 = 0;
|
||||||
parameters->cp_ty0 = 0;
|
parameters->cp_ty0 = 0;
|
||||||
parameters->image_offset_x0 = 0;
|
parameters->image_offset_x0 = 0;
|
||||||
parameters->image_offset_y0 = 0;
|
parameters->image_offset_y0 = 0;
|
||||||
|
|
||||||
/*Codeblock size= 32*32*/
|
/* Codeblock size= 32*32 */
|
||||||
parameters->cblockw_init = 32;
|
parameters->cblockw_init = 32;
|
||||||
parameters->cblockh_init = 32;
|
parameters->cblockh_init = 32;
|
||||||
|
|
||||||
|
/* Use of precincts */
|
||||||
parameters->csty |= 0x01;
|
parameters->csty |= 0x01;
|
||||||
|
|
||||||
/*The progression order shall be CPRL*/
|
/* The progression order shall be CPRL */
|
||||||
parameters->prog_order = OPJ_CPRL;
|
parameters->prog_order = OPJ_CPRL;
|
||||||
|
|
||||||
/* No ROI */
|
/* No ROI */
|
||||||
parameters->roi_compno = -1;
|
parameters->roi_compno = -1;
|
||||||
|
|
||||||
parameters->subsampling_dx = 1; parameters->subsampling_dy = 1;
|
/* No subsampling */
|
||||||
|
parameters->subsampling_dx = 1;
|
||||||
|
parameters->subsampling_dy = 1;
|
||||||
|
|
||||||
/* 9-7 transform */
|
/* 9-7 transform */
|
||||||
parameters->irreversible = 1;
|
parameters->irreversible = 1;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cinema_setup_encoder(opj_cparameters_t *parameters,opj_image_t *image, img_fol_t *img_fol){
|
static void setup_cinema_encoder(opj_cparameters_t *parameters,opj_image_t *image, img_fol_t *img_fol){
|
||||||
int i;
|
int i;
|
||||||
float temp_rate;
|
float temp_rate;
|
||||||
|
|
||||||
|
/* Size and resolution levels */
|
||||||
switch (parameters->cp_cinema){
|
switch (parameters->cp_cinema){
|
||||||
case OPJ_CINEMA2K_24:
|
case OPJ_CINEMA2K_24:
|
||||||
case OPJ_CINEMA2K_48:
|
case OPJ_CINEMA2K_48:
|
||||||
if(parameters->numresolution > 6){
|
if(parameters->numresolution > 6){
|
||||||
|
fprintf(stdout,"JPEG 2000 Profile-3 (2k dc profile) requires:\n"
|
||||||
|
"Number of decomposition levels <= 5\n"
|
||||||
|
"-> Number of decomposition levels forced to 5");
|
||||||
parameters->numresolution = 6;
|
parameters->numresolution = 6;
|
||||||
}
|
}
|
||||||
if (!((image->comps[0].w == 2048) | (image->comps[0].h == 1080))){
|
if (!((image->comps[0].w == 2048) | (image->comps[0].h == 1080))){
|
||||||
fprintf(stdout,"Image coordinates %d x %d is not 2K compliant.\nJPEG Digital Cinema Profile-3 "
|
fprintf(stdout,"Image coordinates %d x %d is not 2K compliant.\n"
|
||||||
"(2K profile) compliance requires that at least one of coordinates match 2048 x 1080\n",
|
"JPEG 2000 Profile-3 (2k dc profile) requires:\n"
|
||||||
|
"at least one of coordinates match 2048 x 1080\n",
|
||||||
image->comps[0].w,image->comps[0].h);
|
image->comps[0].w,image->comps[0].h);
|
||||||
parameters->cp_rsiz = OPJ_STD_RSIZ;
|
parameters->cp_rsiz = OPJ_STD_RSIZ;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OPJ_CINEMA4K_24:
|
case OPJ_CINEMA4K_24:
|
||||||
if(parameters->numresolution < 1){
|
if(parameters->numresolution < 1){
|
||||||
|
fprintf(stdout,"JPEG 2000 Profile-4 (4k dc profile) requires:\n"
|
||||||
|
"Number of decomposition levels >= 1 && <= 6\n"
|
||||||
|
"-> Number of decomposition levels forced to 1");
|
||||||
parameters->numresolution = 1;
|
parameters->numresolution = 1;
|
||||||
}else if(parameters->numresolution > 7){
|
}else if(parameters->numresolution > 7){
|
||||||
|
fprintf(stdout,"JPEG 2000 Profile-4 (4k dc profile) requires:\n"
|
||||||
|
"Number of decomposition levels >= 1 && <= 6\n"
|
||||||
|
"-> Number of decomposition levels forced to 6");
|
||||||
parameters->numresolution = 7;
|
parameters->numresolution = 7;
|
||||||
}
|
}
|
||||||
if (!((image->comps[0].w == 4096) | (image->comps[0].h == 2160))){
|
if (!((image->comps[0].w == 4096) | (image->comps[0].h == 2160))){
|
||||||
fprintf(stdout,"Image coordinates %d x %d is not 4K compliant.\nJPEG Digital Cinema Profile-4"
|
fprintf(stdout,"Image coordinates %d x %d is not 2K compliant.\n"
|
||||||
"(4K profile) compliance requires that at least one of coordinates match 4096 x 2160\n",
|
"JPEG 2000 Profile-4 (4k dc profile) requires:\n"
|
||||||
|
"at least one of coordinates match 4096 x 2160\n",
|
||||||
image->comps[0].w,image->comps[0].h);
|
image->comps[0].w,image->comps[0].h);
|
||||||
parameters->cp_rsiz = OPJ_STD_RSIZ;
|
parameters->cp_rsiz = OPJ_STD_RSIZ;
|
||||||
}
|
}
|
||||||
|
@ -533,6 +550,7 @@ static void cinema_setup_encoder(opj_cparameters_t *parameters,opj_image_t *imag
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Limited bit-rate */
|
||||||
switch (parameters->cp_cinema){
|
switch (parameters->cp_cinema){
|
||||||
case OPJ_CINEMA2K_24:
|
case OPJ_CINEMA2K_24:
|
||||||
case OPJ_CINEMA4K_24:
|
case OPJ_CINEMA4K_24:
|
||||||
|
@ -600,9 +618,9 @@ static int parse_cmdline_encoder(int argc, char **argv, opj_cparameters_t *param
|
||||||
|
|
||||||
/* parse the command line */
|
/* parse the command line */
|
||||||
const char optlist[] = "i:o:r:q:n:b:c:t:p:s:SEM:x:R:d:T:If:P:C:F:u:J"
|
const char optlist[] = "i:o:r:q:n:b:c:t:p:s:SEM:x:R:d:T:If:P:C:F:u:J"
|
||||||
#ifdef USE_JPWL
|
#ifdef USE_JPWL
|
||||||
"W:"
|
"W:"
|
||||||
#endif /* USE_JPWL */
|
#endif /* USE_JPWL */
|
||||||
"h";
|
"h";
|
||||||
|
|
||||||
totlen=sizeof(long_option);
|
totlen=sizeof(long_option);
|
||||||
|
@ -1130,7 +1148,7 @@ static int parse_cmdline_encoder(int argc, char **argv, opj_cparameters_t *param
|
||||||
|
|
||||||
/* ------------------------------------------------------ */
|
/* ------------------------------------------------------ */
|
||||||
|
|
||||||
/* UniPG>> */
|
/* UniPG>> */
|
||||||
#ifdef USE_JPWL
|
#ifdef USE_JPWL
|
||||||
/* ------------------------------------------------------ */
|
/* ------------------------------------------------------ */
|
||||||
|
|
||||||
|
@ -1448,8 +1466,8 @@ static int parse_cmdline_encoder(int argc, char **argv, opj_cparameters_t *param
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif /* USE_JPWL */
|
#endif /* USE_JPWL */
|
||||||
/* <<UniPG */
|
/* <<UniPG */
|
||||||
/* ------------------------------------------------------ */
|
/* ------------------------------------------------------ */
|
||||||
|
|
||||||
case 'J': /* jpip on */
|
case 'J': /* jpip on */
|
||||||
{
|
{
|
||||||
|
@ -1623,7 +1641,7 @@ int main(int argc, char **argv) {
|
||||||
for(i=0; i< parameters.tcp_numlayers; i++){
|
for(i=0; i< parameters.tcp_numlayers; i++){
|
||||||
img_fol.rates[i] = parameters.tcp_rates[i];
|
img_fol.rates[i] = parameters.tcp_rates[i];
|
||||||
}
|
}
|
||||||
cinema_parameters(¶meters);
|
set_cinema_parameters(¶meters);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create comment for codestream */
|
/* Create comment for codestream */
|
||||||
|
@ -1631,7 +1649,7 @@ int main(int argc, char **argv) {
|
||||||
const char comment[] = "Created by OpenJPEG version ";
|
const char comment[] = "Created by OpenJPEG version ";
|
||||||
const size_t clen = strlen(comment);
|
const size_t clen = strlen(comment);
|
||||||
const char *version = opj_version();
|
const char *version = opj_version();
|
||||||
/* UniPG>> */
|
/* UniPG>> */
|
||||||
#ifdef USE_JPWL
|
#ifdef USE_JPWL
|
||||||
parameters.cp_comment = (char*)malloc(clen+strlen(version)+11);
|
parameters.cp_comment = (char*)malloc(clen+strlen(version)+11);
|
||||||
sprintf(parameters.cp_comment,"%s%s with JPWL", comment, version);
|
sprintf(parameters.cp_comment,"%s%s with JPWL", comment, version);
|
||||||
|
@ -1639,7 +1657,7 @@ int main(int argc, char **argv) {
|
||||||
parameters.cp_comment = (char*)malloc(clen+strlen(version)+1);
|
parameters.cp_comment = (char*)malloc(clen+strlen(version)+1);
|
||||||
sprintf(parameters.cp_comment,"%s%s", comment, version);
|
sprintf(parameters.cp_comment,"%s%s", comment, version);
|
||||||
#endif
|
#endif
|
||||||
/* <<UniPG */
|
/* <<UniPG */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Read directory if necessary */
|
/* Read directory if necessary */
|
||||||
|
@ -1772,7 +1790,7 @@ int main(int argc, char **argv) {
|
||||||
#endif /* OPJ_HAVE_LIBPNG */
|
#endif /* OPJ_HAVE_LIBPNG */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Can happen if input file is TIFF or PNG
|
/* Can happen if input file is TIFF or PNG
|
||||||
* and OPJ_HAVE_LIBTIF or OPJ_HAVE_LIBPNG is undefined
|
* and OPJ_HAVE_LIBTIF or OPJ_HAVE_LIBPNG is undefined
|
||||||
*/
|
*/
|
||||||
if( !image) {
|
if( !image) {
|
||||||
|
@ -1784,7 +1802,7 @@ int main(int argc, char **argv) {
|
||||||
parameters.tcp_mct = image->numcomps == 3 ? 1 : 0;
|
parameters.tcp_mct = image->numcomps == 3 ? 1 : 0;
|
||||||
|
|
||||||
if(parameters.cp_cinema){
|
if(parameters.cp_cinema){
|
||||||
cinema_setup_encoder(¶meters,image,&img_fol);
|
setup_cinema_encoder(¶meters,image,&img_fol);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* encode the destination image */
|
/* encode the destination image */
|
||||||
|
|
Loading…
Reference in New Issue