Changeset 9ee2ce3 for thirdparty/SZ/sz/src/Huffman.c
- Timestamp:
- 09/28/18 16:32:55 (6 years ago)
- 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)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
thirdparty/SZ/sz/src/Huffman.c
r2c47b73 r9ee2ce3 652 652 void encode_withTree(HuffmanTree* huffmanTree, int *s, size_t length, unsigned char **out, size_t *outSize) 653 653 { 654 size_t i, nodeCount = 0; 654 size_t i; 655 int nodeCount = 0; 655 656 unsigned char *treeBytes, buffer[4]; 656 657 657 658 init(huffmanTree, s, length); 658 659 for (i = 0; i < huffmanTree->stateNum; i++) 659 if (huffmanTree->code[i]) nodeCount++; 660 if (huffmanTree->code[i]) nodeCount++; 660 661 nodeCount = nodeCount*2-1; 661 662 unsigned int treeByteSize = convert_HuffTree_to_bytes_anyStates(huffmanTree,nodeCount, &treeBytes); … … 664 665 intToBytes_bigEndian(buffer, nodeCount); 665 666 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); 667 670 free(treeBytes); 668 671 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; 671 674 672 675 //unsigned short state[length]; … … 683 686 size_t encodeStartIndex; 684 687 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); 686 689 687 690 //sdi: Debug … … 702 705 else 703 706 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); 705 708 } 706 709
Note: See TracChangeset
for help on using the changeset viewer.