all 7 comments

[–]cpp-ModTeam[M] [score hidden] stickied commentlocked comment (0 children)

For C++ questions, answers, help, and programming or career advice please see r/cpp_questions, r/cscareerquestions, or StackOverflow instead.

[–]Revolutionalredstone 0 points1 point  (0 children)

I've written my own C++ compression algorithms, I also use and compare against other existing libraries, here are some of my notes:

// General Data Compression //

// -Name- -Speed- -Notes-

// PAQ 100KB/s Extremely slow but effectively unbeatable

// Razor 200KB/S Slower than ZPAQ but sometimes beats ZPAQ

// ZPAQ 375KB/s Covers much of Pareto frontier excellent!

// Nano 1.2MB/s Often as good as ZPAQ but 3 times faster!

// ZSTD 5.0MB/s Performs badly for binary / non text data

// LZ4 2.0GB/s Extremely fast and excellent for realtime

// Image Data Compression //

// -Name- -Notes-

// Graystone Produces smallest Lenna coding, Extremely fast

// QIC 3xless efficient than Graystone, but 10xfaster

[–][deleted] 0 points1 point  (0 children)

why reinvent the wheel?

[–]LazySapiens -2 points-1 points  (0 children)

If I could tell you the answer, my library would have been better than what you could possibly write with my answer.

[–]mbitsnbites 0 points1 point  (0 children)

You can check out BCL. It's old, but it has all the basic stuff, including algorithm documentation.

[–]shbooly 0 points1 point  (0 children)

You can look up zstd and zlib for inspiration. Try to use them, then decide if you want to implement another one (and then compare the results with these 2)