Add 3.1 change log
@@ -6,6 +6,69 @@ release of the 3.x series.
All performance data on this page is measured on an Intel Core i5-9600K
clocked at 4.2 GHz, running astcenc using AVX2 and 6 threads.
+<!-- ---------------------------------------------------------------------- -->
+## 3.1
+
+**Status:** July 2021 (in development)
+
+The 3.1 release is the second release in the 3.x series. This release gives
+another performance boost, typically between 5 and 20% faster than the 3.0
+release, as well as further incremental improvements to image quality. A number
+of build system improvements make astcenc easier and faster to integrate into
+other projects as a library, including support for building unversal binaries
+on macOS. Full change list is shown below.
+
+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
+earlier releases. Please update and rebuild your client-side code using the
+updated `astcenc.h` header.
+
+* **General:**
+ * **Feature:** RGB color data now supports `-perceptual` operation. The
+ current implementation is simple, weighting color channel errors by their
+ contribution to perceived luminance. This mimics the behavior of the human
+ visual system, which is most sensitive to green, then red, then blue.
+ * **Feature:** Codec supports a new low weight search mode, which is a
+ simpler weight assignment for encodings with a low number of weights in the
+ weight grid. The weight threshold can be overriden using the new
+ `-lowweightmodelimit` commadn line option.
+ * **Feature:** All platform builds now support building a native binary.
+ Native binaries automatically select the SIMD level based on the default
+ configuration of the compiler in use. Native binaries built on one machine
+ may use different SIMD options than native binaries build on another.
+ * **Feature:** macOS platform builds now support building universal binaries
+ containing both `x86_64` and `arm64` target support.
+ * **Feature:** Building the command line can be disabled when using as a
+ library in another project. Set `-DCLI=OFF` during the CMake configure
+ step.
+ * **Feature:** A standalone minimal example of the core codec API usage has
+ been added in the `./Utils/Example/` directory.
+* **Core API:**
+ * **Feature:** Config flag `ASTCENC_FLG_USE_PERCEPTUAL` works for color data.
+ * **Feature:** Config option `tune_low_weight_count_limit` added.
+ * **Feature:** New heuristic added which prunes dual weight plane searches if
+ they are unlikely to help. This heuristic is not user controllable.
+ * **Feature:** Image quality has been improved. In general we see significant
+ improvements (up to 0.2dB) for high bitrate encodings (4x4, 5x4), and a
+ smaller improvement (up to 0.1dB) for lower bitrate encodings.
+ * **Bug fix:** Arm "none" SIMD builds could be invariant with other builds.
+ This fix has also been back-ported to the 2.x LTS branch.
+
+### Performance:
+
+Key for charts:
+
+* Color = block size (see legend).
+* Letter = image format (N = normal map, G = greyscale, L = LDR, H = HDR).
+
+**Absolute performance vs 3.0 release:**
+
+TBD
+
+**Relative performance vs 3.0 release:**
+
+TBD
+
<!-- ---------------------------------------------------------------------- -->
## 3.0
