Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^3: Data compression by 50% + : is it possible?

by roboticus (Chancellor)
on May 12, 2019 at 12:09 UTC ( #1233640=note: print w/replies, xml ) Need Help??


in reply to Re^2: Data compression by 50% + : is it possible?
in thread Data compression by 50% + : is it possible?

LanX:

You're not missing anything that I know of. What I was basing my "not quite" phrasing on is the idea of using a single character to encode each group (@c) into a character, so it would use 9 characters (72) bits. Had I thought of just packing the required 51 bit records together, it would be more than sufficient to get 50% compression, as the file would take 635 bytes to encode 100 records (sans newlines).

(The 51 bits came from: 50 different possibilities for each group of 10 in the inner loop (log2(50) == 5.64.. bits/group) * (9 groups) == 50.79 bits.)

...roboticus

When your only tool is a hammer, all problems look like your thumb.

  • Comment on Re^3: Data compression by 50% + : is it possible?

Replies are listed 'Best First'.
Re^4: Data compression by 50% + : is it possible?
by LanX (Archbishop) on May 12, 2019 at 12:32 UTC
    >  using a single character to encode each group (@c) into a character, so it would use 9 characters (72) bits

    Oh I see, but I hope you are aware that your approach can easily be packed into 9*6=54 bits and is easier to code than mine.

    With a per line ratio of 7 bytes = 56 bits you'll already have a 50%+ compression.

    My approach would require modulo 50 calculations on 51 bit integers, not sure how tricky this is on a 32 bit machine.

    So I'd rather "waste" 5 bits/line for a pragmatic solution.

    Btw: I'm reluctant trying to implement Huffman here, because the OP could probably change the parameters in his next post.

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1233640]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (9)
As of 2019-06-18 12:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Is there a future for codeless software?



    Results (81 votes). Check out past polls.

    Notices?
    • (Sep 10, 2018 at 22:53 UTC) Welcome new users!