kspalaiologos / bzip3

A better and stronger spiritual successor to BZip2.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BWT post coder

encode84 opened this issue · comments

Hello,
The model in BWT post coder (cm.c) is the exact copy from the BCM compressor by Ilya Muravyov, with some code restructure. Yet no reference, even not in the Thanks section. Any ideas?

Hi! cm.c is a modified version of https://github.com/r-lyeh/stdpack.c/blob/master/src/bcm.c (which itself seems to use Matt Mahoney's arithmetic coder/existing fpaq0 code?) and as the comment header states, is put in the public domain (a.k.a. no attribution required). That said, if you insist, I'll add a mention later. Thanks.

FYI, the original BCM is here:
https://github.com/FS-make-simple/bcm

I see. I've been meaning to replace this particular postcoder with some rank coding model, which could be quite a bit faster. I also tried a lot of tweaks to this postcoder (porting over Kanzi modifications, etc...) - none of them were particularly successful. From my observations, decreasing run threshold (swap out run > 2 to run > 1) seems to give better results on some files, just like ORing the run flag as the 9th bit into the context for C2 accesses.

I have already identified the entropy coder part as a modified version of fpaq0's one. I have also experimented with rANS/FSE, but I never got far enough with it.