* Better fix of the TPH EPBs bug in JPWL module

* Fixed the UEP bug in JPWL module
+ Added some lines in the help of JPWL_image_to_j2k
This commit is contained in:
Giuseppe Baruffa 2006-12-05 18:20:04 +00:00
parent 9e42842bb5
commit 3adfd18602
5 changed files with 26 additions and 8 deletions

View File

@ -5,6 +5,11 @@ What's New for OpenJPEG
! : changed ! : changed
+ : added + : added
December 05, 2006
* [Giuseppe Baruffa] Better fix of the TPH EPBs bug in JPWL module
* [GB] Fixed the UEP bug in JPWL module; now, during a UEP specification, RS protection or CRC check can be switched off for selected range of packets, and consequently reswitched on without confusing the decoder
+ [GB] Added some lines in the help of JPWL_image_to_j2k, specifying that when using error protection on data packets, this must be paired with header protection, i.e. there cannot be packet protection without header protection
December 04, 2006 December 04, 2006
+ [Francois-Olivier Devaux] New tag: version1.0 (includes codec and libopenjpeg directories) + [Francois-Olivier Devaux] New tag: version1.0 (includes codec and libopenjpeg directories)

View File

@ -201,10 +201,10 @@ void encode_help_display() {
fprintf(stdout," 1/2 bytes, for the transformed pseudo-floating point value\n"); fprintf(stdout," 1/2 bytes, for the transformed pseudo-floating point value\n");
fprintf(stdout,"\n"); fprintf(stdout,"\n");
fprintf(stdout," ex.:\n"); fprintf(stdout," ex.:\n");
fprintf(stdout," h,h0=64,h3=16,h5=0,p0=78,p0:24=56,p1,p3:0=0,p3:20=32,s=0,s0=6,s3=-1,a=0,g=1,z=1\n"); fprintf(stdout," h,h0=64,h3=16,h5=32,p0=78,p0:24=56,p1,p3:0=0,p3:20=32,s=0,s0=6,s3=-1,a=0,g=1,z=1\n");
fprintf(stdout," means\n"); fprintf(stdout," means\n");
fprintf(stdout," predefined EPB in MH, rs(64,32) from TPH 0 to TPH 2,\n"); fprintf(stdout," predefined EPB in MH, rs(64,32) from TPH 0 to TPH 2,\n");
fprintf(stdout," CRC-16 in TPH 3 and TPH 4, no EPBs in remaining TPHs,\n"); fprintf(stdout," CRC-16 in TPH 3 and TPH 4, CRC-32 in remaining TPHs,\n");
fprintf(stdout," UEP rs(78,32) for packets 0 to 23 of tile 0,\n"); fprintf(stdout," UEP rs(78,32) for packets 0 to 23 of tile 0,\n");
fprintf(stdout," UEP rs(56,32) for packets 24 to the last of tile 0,\n"); fprintf(stdout," UEP rs(56,32) for packets 24 to the last of tile 0,\n");
fprintf(stdout," UEP rs default for packets of tile 1,\n"); fprintf(stdout," UEP rs default for packets of tile 1,\n");
@ -219,6 +219,11 @@ void encode_help_display() {
fprintf(stdout," means\n"); fprintf(stdout," means\n");
fprintf(stdout," default protection to headers (MH and TPHs) as well as\n"); fprintf(stdout," default protection to headers (MH and TPHs) as well as\n");
fprintf(stdout," data packets, one ESD in MH\n"); fprintf(stdout," data packets, one ESD in MH\n");
fprintf(stdout,"\n");
fprintf(stdout," N.B.: use the following recommendations when specifying\n");
fprintf(stdout," the JPWL parameters list\n");
fprintf(stdout," - when you use UEP, always pair the 'p' option with 'h'\n");
fprintf(stdout," \n");
#endif /* USE_JPWL */ #endif /* USE_JPWL */
/* <<UniPG */ /* <<UniPG */
fprintf(stdout,"IMPORTANT:\n"); fprintf(stdout,"IMPORTANT:\n");

View File

@ -61,8 +61,8 @@ LINK32=link.exe
# PROP BASE Target_Dir "" # PROP BASE Target_Dir ""
# PROP Use_MFC 0 # PROP Use_MFC 0
# PROP Use_Debug_Libraries 1 # PROP Use_Debug_Libraries 1
# PROP Output_Dir "JPWL_j2k_to_image___Win32_Debug" # PROP Output_Dir "Debug"
# PROP Intermediate_Dir "JPWL_j2k_to_image___Win32_Debug" # PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0 # PROP Ignore_Export_Lib 0
# PROP Target_Dir "" # PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c

View File

@ -377,7 +377,7 @@ void jpwl_prepare_marks(opj_j2k_t *j2k, opj_cio_t *cio, opj_image_t *image) {
unsigned long sot_pos, post_sod_pos; unsigned long sot_pos, post_sod_pos;
unsigned long int left_THmarks_len, epbs_len = 0; unsigned long int left_THmarks_len, epbs_len = 0;
int startpack = 0, stoppack = j2k->image_info->num; int startpack = 0, stoppack = j2k->image_info->num;
jpwl_epb_ms_t *tph_epb; jpwl_epb_ms_t *tph_epb = NULL;
sot_pos = j2k->image_info->tile[tileno].start_pos; sot_pos = j2k->image_info->tile[tileno].start_pos;
cio_seek(cio, sot_pos + 2); cio_seek(cio, sot_pos + 2);
@ -555,10 +555,10 @@ void jpwl_prepare_marks(opj_j2k_t *j2k, opj_cio_t *cio, opj_image_t *image) {
} }
/* we can now check if the TPH EPB was really the last one */ /* we can now check if the TPH EPB was really the last one */
if (epb_index == 1) { if (tph_epb && (epb_index == 1)) {
/* set the TPH EPB to be the last one in current header */ /* set the TPH EPB to be the last one in current header */
tph_epb->Depb |= (unsigned char) ((true & 0x0001) << 6); tph_epb->Depb |= (unsigned char) ((true & 0x0001) << 6);
tph_epb = NULL;
} }
/* write back Psot */ /* write back Psot */

View File

@ -1018,6 +1018,14 @@ bool jpwl_epb_correct(opj_j2k_t *j2k, unsigned char *buffer, int type, int pre_l
} }
} }
} else if (Pepb == 0xFFFFFFFF) {
/* no method */
/* advance without doing anything */
remaining = L4;
while (remaining--)
L4_buf++;
} else if ((((Pepb & 0xF0000000) >> 28) == 2) || (((Pepb & 0xF0000000) >> 28) == 0)) { } else if ((((Pepb & 0xF0000000) >> 28) == 2) || (((Pepb & 0xF0000000) >> 28) == 0)) {
/* RS coding here */ /* RS coding here */
@ -1719,4 +1727,4 @@ bool jpwl_update_info(opj_j2k_t *j2k, jpwl_marker_t *jwmarker, int jwmarker_num)
return true; return true;
} }
#endif /* USE_JPWL */ #endif /* USE_JPWL */