NCEPLIBS-g2c 1.9.0
|
Pack and unpack an array of float/double using JPEG2000. More...
Go to the source code of this file.
Functions | |
int | g2c_jpcpackd (double *fld, size_t width, size_t height, int *idrstmpl, unsigned char *cpack, size_t *lcpack) |
This function packs up a double array into a JPEG2000 code stream. | |
int | g2c_jpcpackf (float *fld, size_t width, size_t height, int *idrstmpl, unsigned char *cpack, size_t *lcpack) |
This function packs up a float array into a JPEG2000 code stream. | |
void | jpcpack (float *fld, g2int width, g2int height, g2int *idrstmpl, unsigned char *cpack, g2int *lcpack) |
This function packs up a float array into a JPEG2000 code stream. | |
static int | jpcpack_int (void *fld, int fld_is_double, g2int width, g2int height, g2int *idrstmpl, unsigned char *cpack, g2int *lcpack, int verbose) |
Packs a float or double array into a JPEG2000 code stream. | |
Pack and unpack an array of float/double using JPEG2000.
Date | Programmer | Comments |
---|---|---|
2003-08-17 | Gilbert | Initial. |
2004-11-92 | Gilbert | Fixed bug packing a near constant field. |
2004-07-19 | Gilbert | If jpeg2000 encoding fails, try again with different encoder options. |
2005-05-10 | Gilbert | Imposed minimum size on cpack. |
2022-08-12 | Hartnett | Now handle doubles too. |
Definition in file jpcpack.c.
int g2c_jpcpackd | ( | double * | fld, |
size_t | width, | ||
size_t | height, | ||
int * | idrstmpl, | ||
unsigned char * | cpack, | ||
size_t * | lcpack | ||
) |
This function packs up a double array into a JPEG2000 code stream.
After the data are scaled, and the reference value is subtracted out, the data are treated as a grayscale image and passed to a JPEG2000 encoder.
This function also fills in GRIB2 Data Representation Template 5.40 or 5.40000 with the appropriate values.
This function is the V2 API version of jpcpack() for doubles.
fld | Pointer to the double data values to pack. |
width | The number of points in the x direction. |
height | The number of points in the y direction. |
idrstmpl | Contains the array of values for Data Representation Template Table 5.40 or 5.40000.
|
cpack | A pointer that will get the packed data field. Must be allocated before this function is called. Pass the allocated size in the lcpack parameter. |
lcpack | Pointer that gets the length of packed field in cpack. This must be set by the calling function to the size available in cpack. |
Definition at line 386 of file jpcpack.c.
References G2C_JPEG_DRS_TEMPLATE_LEN, and jpcpack_int().
int g2c_jpcpackf | ( | float * | fld, |
size_t | width, | ||
size_t | height, | ||
int * | idrstmpl, | ||
unsigned char * | cpack, | ||
size_t * | lcpack | ||
) |
This function packs up a float array into a JPEG2000 code stream.
After the data are scaled, and the reference value is subtracted out, the data are treated as a grayscale image and passed to a JPEG2000 encoder.
This function also fills in GRIB2 Data Representation Template 5.40 or 5.40000 with the appropriate values.
This function is the V2 API version of jpcpack() for floats.
fld | Pointer to the float data values to pack. |
width | The number of points in the x direction. |
height | The number of points in the y direction. |
idrstmpl | Contains the array of values for Data Representation Template Table 5.40 or 5.40000.
|
cpack | A pointer that will get the packed data field. Must be allocated before this function is called. Pass the allocated size in the lcpack parameter. |
lcpack | Pointer that gets the length of packed field in cpack. This must be set by the calling function to the size available in cpack. |
Definition at line 320 of file jpcpack.c.
References G2C_JPEG_DRS_TEMPLATE_LEN, and jpcpack_int().
void jpcpack | ( | float * | fld, |
g2int | width, | ||
g2int | height, | ||
g2int * | idrstmpl, | ||
unsigned char * | cpack, | ||
g2int * | lcpack | ||
) |
This function packs up a float array into a JPEG2000 code stream.
After the data are scaled, and the reference value is subtracted out, the data are treated as a grayscale image and passed to a JPEG2000 encoder.
This function also fills in GRIB2 Data Representation Template 5.40 or 5.40000 with the appropriate values.
fld | Pointer to the float data values to pack. |
width | The number of points in the x direction. |
height | The number of points in the y direction. |
idrstmpl | Contains the array of values for Data Representation Template Table 5.40 or 5.40000.
|
cpack | A pointer that will get the packed data field. Must be allocated before this function is called. Pass the allocated size in the lcpack parameter. |
lcpack | Pointer that gets the length of packed field in cpack. This must be set by the calling function to the size available in cpack. |
Definition at line 269 of file jpcpack.c.
References jpcpack_int().
Referenced by g2_addfield().
|
static |
Packs a float or double array into a JPEG2000 code stream.
This function is used by jpcpack(), g2c_jpcpackf(), and g2c_jpcpackd().
fld | Pointer to the float or double data values to pack. |
fld_is_double | If non-zero, then fld points to array of doubles, otherwise an array of floats. |
width | The number of points in the x direction. |
height | The number of points in the y direction. |
idrstmpl | Contains the array of values for Data Representation Template Table 5.40 or 5.40000. May be modified in this function. |
cpack | A pointer that will get the packed data field. Must be allocated before this function is called. Pass the allocated size in the lcpack parameter. |
lcpack | Pointer that gets the length of packed field in cpack. This must also be set by the calling function to the size available in cpack. |
verbose | If non-zero, error messages will be printed in case of error. Otherwise, error codes will be return but no error messages printed. Calls to the original g2c API may cause error messages to be printed in case of error. For the new g2c_ API, no error messages will be printed - instead an error code will be returned. Call g2c_strerror() to get the error message for any error code. |
Definition at line 54 of file jpcpack.c.
References ALOG2, enc_jpeg2000(), G2C_EJPEG, G2C_NOERROR, int_power(), LOG, mkieee(), and sbits().
Referenced by g2c_jpcpackd(), g2c_jpcpackf(), and jpcpack().