diff --git a/Docs/ChangeLog-3x.md b/Docs/ChangeLog-3x.md index 9bafbd372..689bf500c 100644 --- a/Docs/ChangeLog-3x.md +++ b/Docs/ChangeLog-3x.md @@ -9,11 +9,12 @@ clocked at 4.2 GHz, running astcenc using AVX2 and 6 threads. ## 3.0 -**Status:** ETA, August 2021 +**Status:** June 2021 -The 3.0 alpha release is a preview release for the 3.x series. This series is -aiming to provide a major update to the codec with more experimental changes -than we could make with the 2.x series. +The 3.0 release is the first in a series of updates to the compressor that are +making more radical changes than we felt we could make with the 2.x series. +The primary goals of the 3.x series are to keep the image quality ~static or +better compared to the 2.5 release, but continue to improve performance. Reminder for users of the library interface - the API is not designed to be binary compatible across versions, and this release is not compatible with @@ -22,8 +23,14 @@ updated `astcenc.h` header. * **General:** * **Feature:** The code has been significantly cleaned up, with improved - API documentation, function and variable naming conventions, and comments. + comments, API documentation, function naming, and variable naming. * **Core API:** + * **API Change:** The core APIs for `astcenc_compress_image()` and for + `astcenc_decompress_image()` now accept swizzle structures by `const` + pointer, instead of pass-by-value. + * **API Change:** Calling the `astcenc_compress_reset()` and the + `astcenc_decompress_reset()` functions between images is no longer required + if the context was created for use by a single thread. * **Feature:** New heuristics have been added for controlling when to search beyond 2 partitions and 1 plane, and when to search beyond 3 partitions and 1 plane. The previous `tune_partition_early_out_limit` config option has @@ -32,27 +39,24 @@ updated `astcenc.h` header. `tune_3_partition_early_out_limit_factor`. See command line help for more detailed documentation. * **Feature:** New heuristics have been added for controlling when to use - 2 planes. The previous `tune_two_plane_early_out_limit` has been renamed to - `tune_2_plane_early_out_limit_correlation`. See command line help for more - detailed documentation. + dual weight planes. The previous `tune_two_plane_early_out_limit` has been + renamed to`tune_2_plane_early_out_limit_correlation`. See command line help + for more detailed documentation. * **Feature:** Support for using dual weight planes has been restricted to - single partition blocks; it rarely helps blocks with 2+ partitions and - takes considerable compression search time. - * **API Change:** The core APIs for `astcenc_compress_image()` and for - `astcenc_decompress_image()` now accept swizzle structures by `const` - pointer, instead of pass-by-value. - * **API Change:** Calling the `astcenc_compress_reset()` and the - `astcenc_decompress_reset()` functions between images is no longer required - if the context was created for use by a single thread. + single partition blocks; it rarely helps blocks with 2 or more partitions + and takes considerable compression search time. ### Performance: -The current performance and image quality for the 3.0 development build vs the -stable 2.5 release is shown below. +Key for charts: * Color = block size (see legend). * Letter = image format (N = normal map, G = greyscale, L = LDR, H = HDR). +**Absolute performance vs 2.5 release:** + +![Absolute scores 3.0 vs 2.5](./ChangeLogImg/absolute-2.5-to-3.0.png) + **Relative performance vs 2.5 release:** -![Relative scores 3.0-develop vs 2.5](./ChangeLogImg/relative-main-to-2.5.png) +![Relative scores 3.0 vs 2.5](./ChangeLogImg/relative-2.5-to-3.0.png) diff --git a/Docs/ChangeLogImg/absolute-2.5-to-3.0.png b/Docs/ChangeLogImg/absolute-2.5-to-3.0.png new file mode 100644 index 000000000..b3f702331 Binary files /dev/null and b/Docs/ChangeLogImg/absolute-2.5-to-3.0.png differ diff --git a/Docs/ChangeLogImg/relative-2.5-to-3.0.png b/Docs/ChangeLogImg/relative-2.5-to-3.0.png new file mode 100644 index 000000000..98e04bce0 Binary files /dev/null and b/Docs/ChangeLogImg/relative-2.5-to-3.0.png differ diff --git a/Docs/ChangeLogImg/relative-main-to-2.5.png b/Docs/ChangeLogImg/relative-main-to-2.5.png deleted file mode 100644 index 86ad353e0..000000000 Binary files a/Docs/ChangeLogImg/relative-main-to-2.5.png and /dev/null differ diff --git a/README.md b/README.md index 5a625de1f..766b07f91 100644 --- a/README.md +++ b/README.md @@ -58,12 +58,15 @@ from 0.89 bits/pixel up to 8 bits/pixel. Release build binaries for the `astcenc` stable releases are provided in the [GitHub Releases page][3]. -**Latest stable release:** 2.5 +**Latest 3.x stable release:** 3.0 +* Change log: [3.x series](./Docs/ChangeLog-3x.md) + +**Latest 2.x stable release:** 2.5 * Change log: [2.x series](./Docs/ChangeLog-2x.md) -**Latest development release:** 3.0-develop +**Latest development release:** 3.1-develop * Change log: [3.x series](./Docs/ChangeLog-3x.md) -* Roadmap: [3.0 and beyond](./Docs/Roadmap.md) +* Roadmap: [Ideas ...](./Docs/Roadmap.md) Binaries are provided for 64-bit builds on Windows, macOS, and Linux. The builds of the astcenc are provided as multiple binaries, each tuned for a