Reading through the content-sensitive-splitter code after reading the paper, I noticed some differences that I don't think were intentional. At any rate, with the limited testing I did, things ran a little faster and compressed a little smaller with these changes. One thing I should mention is that in your code previously, the expected chunk size was equal to window_size + min_size. After my changes, the expected chunk size is equal to just window_size. If you intended it to work the other way, just let me know and I can change it.
Reading through the content-sensitive-splitter code after reading the paper, I noticed some differences that I don't think were intentional. At any rate, with the limited testing I did, things ran a little faster and compressed a little smaller with these changes. One thing I should mention is that in your code previously, the expected chunk size was equal to window_size + min_size. After my changes, the expected chunk size is equal to just window_size. If you intended it to work the other way, just let me know and I can change it.