IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 38418


Ignore:
Timestamp:
Jun 6, 2015, 8:40:19 PM (11 years ago)
Author:
eugene
Message:

trying to improve the speed of the compression shuffle step; added NONE_1 for testing; added timing traces in uncompress to test speed improvements

Location:
branches/eam_branches/ohana.20150429/src/libfits
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ohana.20150429/src/libfits/Makefile

    r38404 r38418  
    3232        for i in $(TESTPROG); do $(TESTBIN)/$$i 2>&1 | $(TESTHARNESS); done
    3333test.verbose: $(TESTPROG)
    34         for i in $(TESTPROG); do $(TESTBIN)/$$i 2>&1 |& $(TESTHARNESS) -v; done
     34        for i in $(TESTPROG); do $(TESTBIN)/$$i 2>&1 | $(TESTHARNESS) -v; done
    3535
    3636install: $(DESTLIB)/libFITS.a $(DESTLIB)/libFITS.$(DLLTYPE) $(DESTMAN)/fits.1
  • branches/eam_branches/ohana.20150429/src/libfits/matrix/F_compress_M.c

    r38399 r38418  
    514514        }
    515515        *rawptr = *srcptr;
    516         myAssert (srcptr - matrix->buffer < Npix*size, "memory overrun");
    517         myAssert (rawptr - raw < Nraw*size, "memory overrun");
     516        // myAssert (srcptr - matrix->buffer < Npix*size, "memory overrun");
     517        // myAssert (rawptr - raw < Nraw*size, "memory overrun");
    518518      }
    519519
  • branches/eam_branches/ohana.20150429/src/libfits/matrix/F_compress_data.c

    r38366 r38418  
    4242
    4343  // do not actually compress : this is used for testing
    44   if (!strcasecmp(cmptype, "NONE") || !strcasecmp(cmptype, "NONE_2")) {
     44  if (!strcasecmp(cmptype, "NONE") || !strcasecmp(cmptype, "NONE_1") || !strcasecmp(cmptype, "NONE_2")) {
    4545    unsigned long Nbytes = Nrawpix * rawpix_size;
    4646
  • branches/eam_branches/ohana.20150429/src/libfits/matrix/F_uncompress_M.c

    r38399 r38418  
    569569        }
    570570        *srcptr = *rawptr;
    571         myAssert (srcptr - matrix->buffer < Npix*size, "memory overrun");
    572         myAssert (rawptr - raw < Nraw*size, "memory overrun");
     571        // myAssert (srcptr - matrix->buffer < Npix*size, "memory overrun");
     572        // myAssert (rawptr - raw < Nraw*size, "memory overrun");
    573573      }
    574574
  • branches/eam_branches/ohana.20150429/src/libfits/matrix/F_uncompress_data.c

    r38366 r38418  
    3333
    3434  // do not actually uncompress : this is used for testing
    35   if (!strcasecmp(cmptype, "NONE") || !strcasecmp(cmptype, "NONE_2")) {
     35  if (!strcasecmp(cmptype, "NONE") || !strcasecmp(cmptype, "NONE_1") || !strcasecmp(cmptype, "NONE_2")) {
    3636    memcpy (outdata, zdata, Nzdata);
    3737    myAssert (*Nout == Nzdata, "invalid size");
  • branches/eam_branches/ohana.20150429/src/libfits/table/F_compress_T.c

    r38415 r38418  
    289289  off_t i;
    290290
     291  // we are copying NN rows into the column which starts at XX and has MM bytes per row
     292
     293  off_t Nx = table->header->Naxis[0];
     294
     295  char *tblbuffer = &table->buffer[Nx*row_start + field->offset];
     296
     297  int rowsize = field->rowsize;
     298
     299  if (VERBOSE) fprintf (stderr, "distribute: ");
     300  for (i = 0; i < Nrows; i++, tblbuffer += Nx) {
     301    memcpy (&raw[i*rowsize], tblbuffer, rowsize);
     302# if (VERBOSE)
     303    int j; for (j = 0; j < field->rowsize; j++) fprintf (stderr, "0x%02hhx ", table->buffer[Nx*row + field->offset + j]);
     304# endif
     305  }
     306  if (VERBOSE) fprintf (stderr, "\n");
     307
     308  return (TRUE);
     309}
     310
     311int gfits_collect_table_data_alt (FTable *table, TableField *field, char *raw, int row_start, int Nrows) {
     312
     313  off_t i;
     314
    291315  // we are copying NN rows of the column which starts at XX and has MM bytes per row
    292316
     
    307331
    308332int gfits_collect_table_gzp2 (FTable *table, TableField *field, char *raw, int row_start, int Nrows) {
     333
     334  off_t i, j, k;
     335
     336  // we are copying NN rows into the column which starts at XX and has MM bytes per row
     337
     338  off_t Nx = table->header->Naxis[0];
     339  int Nvalues = field->Nvalues;
     340  int pixsize = field->pixsize;
     341  int offset = field->offset;
     342
     343  char *rawptr = raw;
     344
     345  for (k = 0; k < field->pixsize; k++) {
     346# ifdef BYTE_SWAP     
     347    char *tblptr_start = &table->buffer[Nx*row_start + offset + (pixsize - k - 1)];
     348# else
     349    char *tblptr_start = &table->buffer[Nx*row_start + offset + k];
     350# endif
     351    for (i = 0; i < Nrows; i++, tblptr_start += Nx) {
     352      char *tblptr = tblptr_start;
     353      for (j = 0; j < Nvalues; j++, tblptr += pixsize, rawptr++) {
     354        *rawptr = *tblptr;
     355      }
     356    }
     357  }
     358  return (TRUE);
     359}
     360
     361int gfits_collect_table_gzp2_alt (FTable *table, TableField *field, char *raw, int row_start, int Nrows) {
    309362
    310363  off_t i, j, k;
  • branches/eam_branches/ohana.20150429/src/libfits/table/F_uncompress_T.c

    r38415 r38418  
    6060  fprintf (stderr, "times: %f %f %f\n", timeSum1, timeSum2, timeSum3);
    6161  fprintf (stderr, "times: %f %f %f %f %f %f\n", timeSum2a, timeSum2b, timeSum2c, timeSum2d, timeSum2e, timeSum2f);
     62
     63  timeSum1 = 0.0;
     64  timeSum2 = 0.0;
     65  timeSum2a = 0.0;
     66  timeSum2b = 0.0;
     67  timeSum2c = 0.0;
     68  timeSum2d = 0.0;
     69  timeSum2e = 0.0;
     70  timeSum2f = 0.0;
     71  timeSum3 = 0.0;
    6272}
    6373
     
    346356  char *tblbuffer = &table->buffer[Nx*row_start + field->offset];
    347357
     358  int rowsize = field->rowsize;
     359
    348360  if (VERBOSE) fprintf (stderr, "distribute: ");
    349361  for (i = 0; i < Nrows; i++, tblbuffer += Nx) {
    350     // int row = row_start + i;
    351     memcpy (tblbuffer, &raw[i*field->rowsize], field->rowsize);
     362    memcpy (tblbuffer, &raw[i*rowsize], rowsize);
    352363# if (VERBOSE)
    353364    int j; for (j = 0; j < field->rowsize; j++) fprintf (stderr, "0x%02hhx ", table->buffer[Nx*row + field->offset + j]);
  • branches/eam_branches/ohana.20150429/src/libfits/test/compress.sh

    r38408 r38418  
    55  tapPLAN 88
    66
    7   foreach mode NONE GZIP_1 GZIP_2 RICE_1 RICE_ONE
     7  foreach mode NONE NONE_1 NONE_2 GZIP_1 GZIP_2 RICE_1 RICE_ONE
    88  # foreach mode GZIP_1
    99  # foreach mode GZIP_2
     
    4444
    4545 if ($cmpmode == NONE) return
     46 if ($cmpmode == NONE_1) return
     47 if ($cmpmode == NONE_2) return
    4648
    4749 if ($cmpmode == GZIP_1)
     
    311313  local format cmpmode
    312314
    313   foreach cmpmode NONE GZIP_1 GZIP_2 RICE_1 RICE_ONE
     315  foreach cmpmode NONE NONE_1 NONE_2 GZIP_1 GZIP_2 RICE_1 RICE_ONE
    314316    test_table_rnd $cmpmode
    315317  end
     
    417419
    418420 if ($cmpmode == NONE) return; # funpack will not recognize NONE
     421 if ($cmpmode == NONE_1) return; # funpack will not recognize NONE
     422 if ($cmpmode == NONE_2) return; # funpack will not recognize NONE
    419423 if ($cmpmode == RICE_ONE) return; # funpack will not recognize RICE_ONE for tables
    420424
  • branches/eam_branches/ohana.20150429/src/libfits/test/imagecomp.c

    r38399 r38418  
    88
    99// char *cmptype[] = {"NONE", "NONE_2", "GZIP_1", "GZIP_2", "PLIO_1", "RICE_1", "RICE_ONE", "HCOMPRESS_1", NULL};
    10 char *cmptype[] = {"NONE", "NONE_2", "GZIP_1", "GZIP_2", "RICE_1", "RICE_ONE", NULL};
     10char *cmptype[] = {"NONE", "NONE_1", "NONE_2", "GZIP_1", "GZIP_2", "RICE_1", "RICE_ONE", NULL};
    1111int bitpix[] = {8, 16, 32, -32, -64, 0};
    1212
  • branches/eam_branches/ohana.20150429/src/libfits/test/tablecomp.c

    r38415 r38418  
    88int test_compress_single_full (char *zcmptype);
    99
    10 char *cmptype[] = {"NONE", "NONE_2", "GZIP_1", "GZIP_2", "RICE_1", "RICE_ONE", "AUTO", NULL};
     10char *cmptype[] = {"NONE", "NONE_1", "NONE_2", "GZIP_1", "GZIP_2", "RICE_1", "RICE_ONE", "AUTO", NULL};
    1111
    1212int main (int argc, char **argv) {
Note: See TracChangeset for help on using the changeset viewer.