Ignore:
Timestamp:
09/28/18 16:32:55 (6 years ago)
Author:
Hal Finkel <hfinkel@…>
Branches:
master, pympi
Children:
e6aa0eb
Parents:
abca157
git-author:
Hal Finkel <hfinkel@…> (09/28/18 16:32:55)
git-committer:
Hal Finkel <hfinkel@…> (09/28/18 16:32:55)
Message:

importing new SZ files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • thirdparty/SZ/sz/src/Huffman.c

    r2c47b73 r9ee2ce3  
    652652void encode_withTree(HuffmanTree* huffmanTree, int *s, size_t length, unsigned char **out, size_t *outSize) 
    653653{ 
    654         size_t i, nodeCount = 0; 
     654        size_t i;  
     655        int nodeCount = 0; 
    655656        unsigned char *treeBytes, buffer[4]; 
    656657         
    657658        init(huffmanTree, s, length); 
    658659        for (i = 0; i < huffmanTree->stateNum; i++) 
    659                 if (huffmanTree->code[i]) nodeCount++; 
     660                if (huffmanTree->code[i]) nodeCount++;  
    660661        nodeCount = nodeCount*2-1; 
    661662        unsigned int treeByteSize = convert_HuffTree_to_bytes_anyStates(huffmanTree,nodeCount, &treeBytes); 
     
    664665        intToBytes_bigEndian(buffer, nodeCount); 
    665666        memcpy(*out, buffer, 4); 
    666         memcpy(*out+4, treeBytes, treeByteSize); 
     667        intToBytes_bigEndian(buffer, huffmanTree->stateNum/2); //real number of intervals 
     668        memcpy(*out+4, buffer, 4); 
     669        memcpy(*out+8, treeBytes, treeByteSize); 
    667670        free(treeBytes); 
    668671        size_t enCodeSize = 0; 
    669         encode(huffmanTree, s, length, *out+4+treeByteSize, &enCodeSize); 
    670         *outSize = 4+treeByteSize+enCodeSize; 
     672        encode(huffmanTree, s, length, *out+8+treeByteSize, &enCodeSize); 
     673        *outSize = 8+treeByteSize+enCodeSize; 
    671674         
    672675        //unsigned short state[length]; 
     
    683686        size_t encodeStartIndex; 
    684687        size_t nodeCount = bytesToInt_bigEndian(s); 
    685         node root = reconstruct_HuffTree_from_bytes_anyStates(huffmanTree,s+4, nodeCount); 
     688        node root = reconstruct_HuffTree_from_bytes_anyStates(huffmanTree,s+8, nodeCount); 
    686689         
    687690        //sdi: Debug 
     
    702705        else 
    703706                encodeStartIndex = 1+3*nodeCount*sizeof(unsigned int)+nodeCount*sizeof(unsigned char); 
    704         decode(s+4+encodeStartIndex, targetLength, root, out); 
     707        decode(s+8+encodeStartIndex, targetLength, root, out); 
    705708} 
    706709 
Note: See TracChangeset for help on using the changeset viewer.