You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-10Lines changed: 11 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,23 +1,24 @@
1
1
# A C++ library to compress or expand binary data using Run-Length Encoding
2
2
3
-
This library implements a variant of the Run-Length Encoding compression method that is optimized for long sequences of ones or zeros.
3
+
This library implements a variant of the Run-Length Encoding compression method that is optimized for sequences of ones or zeros.
4
4
5
5
The advantage of the RLE over other compression methods is that RLE can compress data in a single pass and does not require any buffering of the input or output data.
6
6
These properties can make a RLE good fit for applications that are tight on memory usage or require low latencies.
7
7
However due to simplicity of RLE the compression may not be as good as achieved by other compression methods.
8
8
9
9
## Features
10
10
11
-
* Optimized for long sequences of ones or zeros.
12
-
* Robust; the decoder does not depend on previously decoded data.
11
+
* Optimized for sequences of ones or zeros.
12
+
* Robust
13
+
* The encoder and decoder does not depend on previously processed data.
14
+
* Fixed size RLE data [blocks](#Block-format).
13
15
* Compress and expand data in a single pass.
14
16
* No buffering of input data or output data.
15
17
16
18
## Requirements
17
19
18
-
A C++ compiler with a standard library that has the bit operation libaray `<bit>` is required.
19
-
This library is part of the C++20 standard and comes whith MSVC 19.28 (VS 2019 16.8), GCC libstd++ 9 and Clang libc++ 9.
20
-
You may need to enable C++20 for your compiler to it compile.
20
+
A C++14 compiler when using the library or when building the test program.
21
+
The [brle utility](#brle-utility) requires at least a C++17 compliant compiler.
21
22
22
23
## Goals
23
24
@@ -36,7 +37,7 @@ You may need to enable C++20 for your compiler to it compile.
36
37
37
38
## Examples
38
39
39
-
Besides the following examples you can take a peek in the [test program](https://github.com/PG1003/brle/blob/main/tests/test.cpp)or the [brle utility](https://github.com/PG1003/brle/blob/main/util/brle.cpp) about the usage of the `brle` library.
40
+
Besides the following examples you can take a peek in the sources of the[test program](https://github.com/PG1003/brle/blob/main/tests/test.cpp)and the [brle utility](https://github.com/PG1003/brle/blob/main/util/brle.cpp) about the usage of the `brle` library.
40
41
41
42
### Encode
42
43
@@ -79,10 +80,10 @@ assert( data.size() == 4u );
79
80
80
81
## brle utility
81
82
82
-
There is an [implementation](https://github.com/PG1003/brle/blob/main/util/brle.cpp) for a commandline utility that uses this `brle` library.
83
-
The utility can be used to test the efficiency of the compression for your use case or create a binary blobs that are going to be included in your application or firmware.
83
+
The brle utility is an [implementation](https://github.com/PG1003/brle/blob/main/util/brle.cpp) for a commandline program that uses this `brle` library.
84
+
The utility can be used to test the efficiency of the compression for your use case or to create binary blobs that are going to be included in your application or firmware.
84
85
85
-
You can build the utility with the provided makefile by running the following command;
86
+
You can build the utility with the provided makefile by running the following make command;
0 commit comments