I am writing a Huffman Coding/Decoding algorithm and I am running into the problem that the storing the Huffman tree is taking up way to much room. Currently, I am converting the tree into a hashMap as such -> hashMap<Character(s),Huffman Code> and then storing that hash map. The issue is that, while the string is compressed great, adding the Huffman Tree data stored in the hash map is adding so much overhead that it's actually ending up bigger than the original. Currently I am just naively writing [data, value] pairs to the file, but I imagine there must be some sort of trickier way to do that. Any ideas?
How to write a hashmap to a file in a memory efficient format?
217 Views Asked by Brett At
1
There are 1 best solutions below
Related Questions in MEMORY
- DataTable does not release memory
- Impala Resource Estimation for queries with Group by
- Is there any way to get a lru list in Linux kernel?
- C# console application - Unhandled exception while finding the Available and free Ram space.Getting exact answer in windows forms application
- Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in PHP
- C# equivalent of Java Memory mapping methods
- How to figure out the optimal fetch size for the select query
- Creating two arrays with malloc on the same line
- Using parse.com and having allocation memory issue
- error reading variable: cannot access memory at address
- CentOS memory availability
- Correct idiom for freeing repr(C) structs using Drop trait
- Find Ram/Memory manufacturer in Linux?
- Profiling memory usage on App Engine
- Access Violation: 0xC0000005, why is this happening?
Related Questions in COMPRESSION
- How to use deflate/inflate SetDictionary with raw deflate/inflate?
- C# How to get file/ copy file from a bzip2 (.bz2) file without extracting the file
- How can I compress four floats into a string?
- Create ZIP File Then Send to Client
- compress json data from rest node.js use express compression
- Advanced Data Compression
- Tools to minify CDD and JS files
- How to use multiple threads for zlib compression (same input source)
- Data compression in RDBMS like Oracle, MySQL etc
- Haskell - Lempel-Ziv 78 Compression - very slow, why?
- Python: how to create tar file and compress it on the fly with external module, using different compression methods not available in tarfile module?
- Why isn't lossless compression automatic on computers?
- PHP Image Compression Before Upload
- Compression of char size integer by removing leading zeroes
- BMP Image Compression and Decompression in java
Related Questions in HUFFMAN-CODE
- How to calculate Huffman code length without generating the actual huffman code
- Huffman algorithm inverse matching
- Cortex M0 hardfault; BLC Huffman
- nodes and structures in c
- Image compression with Huffman tree
- Unable to encode a file using Huffman tree in C
- fprintf(long) writes 8 bytes and fscanf(long) reads 6 bytes why?
- Will Serialization Help in Storing a Huffman Tree To A File
- Reconstructing Huffman tree from (preorder) bitstring in Haskell
- Huffman Tree, recursive function crashes (pointers are not relayed correctly)
- Huffman Coding Creating Tree C++
- Traversing helper method for a Huffman tree
- What is the worst case runtime for the most efficient algorithm to build a huffman tree?
- Storing table of codes in a compressed file after Huffman compression and building tree for decompression from this table
- Algorithm for Huffman Tree not working
Related Questions in MEMORY-EFFICIENT
- Efficiently finding the count of column values for distinct rows in a dataframe in r
- Faster alternative to populating a pre-allocated data frame using a for-loop
- Time running program varying wildly on each try?
- Inefiecient code on loops. 10000000 loop challenge.
- window click event vs a lot of buttons click event
- Instantiating C++ objects from QML has tremendous memory usage overhead
- Fast row removal and addition in pandas.DataFrame without reallocation
- What's the difference in memory between creating an object inside and outside of a loop
- Does Slicing `a` (e.g. `a[1:] == a[:-1]`) create copies of the `a`?
- How to parse xls file containing multiple sheets, within 50MB of memory, in Java
- How can I parse a csv in low memory, using some parser in Java?
- get all indexes of value nil in array
- Python - dividing a list-of-lists to groups
- Efficient way of computing statistics for large/imprecise amount of data
- create single bytes instance from sequence of memoryview
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
You do not need the tree in order to encode. All you need is the bit lengths for each symbol and a way to order the symbols. See Canonical Huffman Code.
In fact, all you need is the symbols that are coded ordered by bit length, and within bit length sorted by symbol, and then the number of codes of each length. With just those two things you can encode.