Results 1 to 7 of 7

Thread: CM0

  1. #1
    Member
    Join Date
    Nov 2013
    Location
    US
    Posts
    131
    Thanks
    31
    Thanked 29 Times in 19 Posts

    CM0

    Here is another compressor I'm still working on. It uses only context modelling. The normal version (CM0) is supposed to be "fast", the extended version (CM0_EXT) is more exhaustive. The models are similar, but incompatible with each other. I'm going to continue developing this. If I can improve it further, I will probably release the source later.

    Usage
    CM0/CM0_EXT c in out
    CM0/CM0_EXT d out in_reconstructed
    Attached Files Attached Files
    Last edited by cade; 5th December 2013 at 02:03. Reason: Fixed attached exe

  2. The Following 2 Users Say Thank You to cade For This Useful Post:

    Nania Francesco (3rd December 2013),Stephan Busch (3rd December 2013)

  3. #2
    Tester
    Stephan Busch's Avatar
    Join Date
    May 2008
    Location
    Bremen, Germany
    Posts
    873
    Thanks
    462
    Thanked 175 Times in 85 Posts
    which libraries are needed to run those files? I m getting an error message when trying to start them.

  4. #3
    Member
    Join Date
    Nov 2013
    Location
    US
    Posts
    131
    Thanks
    31
    Thanked 29 Times in 19 Posts
    I compiled with the latest MinGW. I have used static linking this time (huge file sizes) so nothing else is needed, and tested on an old computer running Windows XP. Sorry for the inconvenience.

    Edit: I updated the attached files in the top post.
    Last edited by cade; 3rd December 2013 at 14:07.

  5. #4
    Member
    Join Date
    May 2008
    Location
    Germany
    Posts
    410
    Thanks
    37
    Thanked 60 Times in 37 Posts
    @Stephan Busch - which libraries are needed?

    the older *.exe needs libgcc_s_dw2-1.dll and libstdc++-6.dll
    (the dlls can be be in the same directory as the *.exe)

    best regards
    Attached Files Attached Files

  6. #5
    Member
    Join Date
    Nov 2013
    Location
    US
    Posts
    131
    Thanks
    31
    Thanked 29 Times in 19 Posts
    Two small changes today: fixed a silly bug when reporting the final file size (forgot to account for the IO buffer, so it was less by 128k) and a small change to the weighting scale between orders to increase compression ratio a little.

    I have a hash table with individual counters similar to fpaq0. After I update each bit, I look for (hash + current byte) for each order. The alternative is that instead of after every bit, I could just do it every byte, but then I would have 256 counters out of which only 8 are used, wasting a lot of memory. I can use SIMD to update 8 counters at once, but loading is the main bottleneck. Does anyone have any ideas?
    Last edited by cade; 5th December 2013 at 01:56.

  7. #6
    Member
    Join Date
    Nov 2013
    Location
    US
    Posts
    131
    Thanks
    31
    Thanked 29 Times in 19 Posts
    There was a silly error with the way I reported file sizes in my IO library (forgot to count how many characters are buffered in memory and just reported ftell), I have updated in the original post. Sorry about that.

  8. #7
    Member
    Join Date
    Nov 2013
    Location
    US
    Posts
    131
    Thanks
    31
    Thanked 29 Times in 19 Posts

    CM1

    CM1 is a reduced and much faster model.
    Attached Files Attached Files

  9. The Following User Says Thank You to cade For This Useful Post:

    Nania Francesco (9th December 2013)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •