Skip to content

Commit

Permalink
Merge pull request #33 from vteromero/release-0.3.0
Browse files Browse the repository at this point in the history
Release v0.3.0
  • Loading branch information
vteromero authored Mar 1, 2022
2 parents 4130ea0 + 178430f commit 387b0ce
Show file tree
Hide file tree
Showing 10 changed files with 41 additions and 21 deletions.
44 changes: 31 additions & 13 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,45 @@
v0.3.0
------
*Released on March 1st, 2022*

**BREAKING CHANGES**
* New VTEnc API. [#31](https://github.com/vteromero/VTEnc/pull/31)

**FIXES**
* Fix nodes visiting order. [#25](https://github.com/vteromero/VTEnc/pull/25)

**OTHER**
* Improve decoding performance by memoizing higher bits. [#29](https://github.com/vteromero/VTEnc/pull/29)
* Coding style. [#30](https://github.com/vteromero/VTEnc/pull/30)
* Do not use typedef for internal structs. [#27](https://github.com/vteromero/VTEnc/pull/27)
* Re-implement BitClusterStack to use a fixed-size array instead of allocating memory. [#26](https://github.com/vteromero/VTEnc/pull/26)
* Replace BitClusterStack with generic implementation. [#28](https://github.com/vteromero/VTEnc/pull/28)
* Removes -g3 gcc flag for all targets, except debug. [#32](https://github.com/vteromero/VTEnc/pull/32)

v0.2.0
------
*Released on May 20th, 2020*

**BREAKING CHANGES**:
* Simplify API by removing specific functions for lists and sets. #20
* Add `VtencEncoder` and `VtencDecoder` structures to provide encoding parameters and to hold returning state in `vtenc_encode`* and `vtenc_decode`* functions. #20
* Remove sequence size from encoding data format. #21
* Remove `vtenc_decoded_size`* API functions. #21
* Remove "non-empty sequence" restriction when encoding sequences with no repeated values. #21
* Add `allow_repeated_values` encoding parameter. #20
* Add `skip_full_subtrees` encoding parameter. #20
* Add `min_cluster_length` encoding parameter. #22
* Simplify API by removing specific functions for lists and sets. [#20](https://github.com/vteromero/VTEnc/pull/20)
* Add `VtencEncoder` and `VtencDecoder` structures to provide encoding parameters and to hold returning state in `vtenc_encode`* and `vtenc_decode`* functions. [#20](https://github.com/vteromero/VTEnc/pull/20)
* Remove sequence size from encoding data format. [#21](https://github.com/vteromero/VTEnc/pull/21)
* Remove `vtenc_decoded_size`* API functions. [#21](https://github.com/vteromero/VTEnc/pull/21)
* Remove "non-empty sequence" restriction when encoding sequences with no repeated values. [#21](https://github.com/vteromero/VTEnc/pull/21)
* Add `allow_repeated_values` encoding parameter. [#20](https://github.com/vteromero/VTEnc/pull/20)
* Add `skip_full_subtrees` encoding parameter. [#20](https://github.com/vteromero/VTEnc/pull/20)
* Add `min_cluster_length` encoding parameter. [#22](https://github.com/vteromero/VTEnc/pull/22)

**FIXES:**
* Fix bug on decoding steps order not matching its encoding counterpart. #23
* Fix bug on decoding steps order not matching its encoding counterpart. [#23](https://github.com/vteromero/VTEnc/pull/23)

v0.1.0
------
*Released on March 26th, 2020*
* **BREAKING CHANGE**: Encode lower bits of values in clusters of length 1 #18
* Refactor of `count_zeros_at_bit_pos`* functions to improve encoding performance #16
* Fix bug on wrongly using `memcmp` on some testing programs #17 #14
* Tests for random sequences #15
* **BREAKING CHANGE**: Encode lower bits of values in clusters of length 1. [#18](https://github.com/vteromero/VTEnc/pull/18)
* Refactor of `count_zeros_at_bit_pos`* functions to improve encoding performance. [#16](https://github.com/vteromero/VTEnc/pull/16)
* Fix bug on wrongly using `memcmp` on some testing programs. [#17](https://github.com/vteromero/VTEnc/pull/17) [#14](https://github.com/vteromero/VTEnc/pull/14)
* Tests for random sequences. [#15](https://github.com/vteromero/VTEnc/pull/15)

v0.0.3
------
Expand Down
18 changes: 10 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,24 @@

## Results

*This is a work-in-progress section. Last updated on: 2020-05-20*
*This is a work-in-progress section. Last updated on: 2022-03-01*

For reference, VTEnc has been tested on a laptop Ubuntu Desktop 19.10 with a Core i7-6700HQ CPU @ 2.60GHz x 8, using different data sets and comparing it with other integer compression algorithms. See [Tests](https://github.com/vteromero/VTEnc#tests) and [Benchmarks](https://github.com/vteromero/VTEnc#benchmarks) below for further information.
For reference, VTEnc has been tested on a laptop Ubuntu Desktop 21.10 with a Core i7-6700HQ CPU @ 2.60GHz x 8, using different data sets and comparing it with other integer compression algorithms. See [Tests](https://github.com/vteromero/VTEnc#tests) and [Benchmarks](https://github.com/vteromero/VTEnc#benchmarks) below for further information.

* `gov2.sorted`:

| ![Encoding speed vs ratio](doc/images/gov2_enc_speed_vs_ratio.png) | ![Decoding speed](doc/images/gov2_dec_speed.png) |
|:---:|:---:|
![Encoding speed vs ratio](doc/images/gov2_enc_speed_vs_ratio.png) | ![Decoding speed vs ratio](doc/images/gov2_dec_speed_vs_ratio.png)
:---:|:---:
![Encoding speed](doc/images/gov2_enc_speed.png) | ![Decoding speed](doc/images/gov2_dec_speed.png)

_(\*) VTEnc's results on "Encoding speed vs ratio" chart are for the following values of the encoding parameter `min_cluster_length`: 1, 2, 4, 8, 16, 32, 64, 128 and 256._
_(\*\*) VTEnc's decoding speed is for `min_cluster_length` = 256._
_(\*) VTEnc's results on "speed vs ratio" charts are for the following values of the encoding parameter `min_cluster_length`: 1, 2, 4, 8, 16, 32, 64, 128 and 256._
_(\*\*) VTEnc's results on "speed" charts are for `min_cluster_length` = 256._

* Timestamps (`ts.txt`):

| ![Encoding speed vs ratio](doc/images/ts_enc_speed_vs_ratio.png) | ![Decoding speed](doc/images/ts_dec_speed.png) |
|:---:|:---:|
![Encoding speed vs ratio](doc/images/ts_enc_speed_vs_ratio.png) | ![Decoding speed vs ratio](doc/images/ts_dec_speed_vs_ratio.png)
:---:|:---:
![Encoding speed](doc/images/ts_enc_speed.png) | ![Decoding speed](doc/images/ts_dec_speed.png)

## API

Expand Down
Binary file modified doc/images/gov2_dec_speed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/gov2_dec_speed_vs_ratio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/gov2_enc_speed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/images/gov2_enc_speed_vs_ratio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/images/ts_dec_speed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/ts_dec_speed_vs_ratio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/images/ts_enc_speed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/images/ts_enc_speed_vs_ratio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 387b0ce

Please sign in to comment.