diff --git a/lib/astc-encoder/.gitrepo b/lib/astc-encoder/.gitrepo index 370aac4a1d..568c3dd6bc 100644 --- a/lib/astc-encoder/.gitrepo +++ b/lib/astc-encoder/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = https://github.com/ARM-software/astc-encoder.git branch = main - commit = e7cb1e453968b0e16e48ef6d68fc9d1227d8a378 - parent = b87158d371723ba9670f5dc13e50a3e2a2799eba + commit = 42a8f6ee01715f45edffb6773e34b8bb914a47df + parent = 2b1c072a13e9b69ada8457665b51ed5b59ddb408 method = merge cmdver = 0.4.3 diff --git a/lib/astc-encoder/CMakeLists.txt b/lib/astc-encoder/CMakeLists.txt index ad608f1a38..761098054f 100644 --- a/lib/astc-encoder/CMakeLists.txt +++ b/lib/astc-encoder/CMakeLists.txt @@ -24,7 +24,7 @@ if(MSVC) add_compile_options("/wd4324") # Disable structure was padded due to alignment specifier endif() -project(astcencoder VERSION 3.2.0) +project(astcencoder VERSION 3.3.0) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -215,7 +215,7 @@ if(PACKAGE) set(PKG_VER ${CMAKE_PROJECT_VERSION_MAJOR}.${CMAKE_PROJECT_VERSION_MINOR}) - set(CPACK_PACKAGE_FILE_NAME "astcenc-${PKG_VER}-${PKG_OS}${PACKAGE}") + set(CPACK_PACKAGE_FILE_NAME "astcenc-${PKG_VER}-${PKG_OS}-${PACKAGE}") set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY FALSE) set(CPACK_PACKAGE_CHECKSUM SHA256) set(CPACK_GENERATOR ZIP) diff --git a/lib/astc-encoder/Docs/Analysis.md b/lib/astc-encoder/Docs/Analysis.md deleted file mode 100644 index a81b85fa50..0000000000 --- a/lib/astc-encoder/Docs/Analysis.md +++ /dev/null @@ -1,55 +0,0 @@ -# astcenc 2.1 optimization log - -This page is a working document explaining the current understanding of the -performance and quality impact of some of the compression trials, refinement -passes, and the heuristics which drive them. - -This information will hopefully allow a "tuned up" future version of the codec. -It includes a mixture of both ongoing research, and a log of optimizations -that have been applied during the current post-2.0 development. - -## Configuration sensitivity - -The most important thing to know for this analysis is that the impact of each -trial and refinement can vary dramatically depending on the codec -configuration. Principally this means: - -* block size, -* quality preset, -* image color format. - -For example, removing the initial 1 partition 1 plane fast-early-out -optimization actually improves the performance of 4x4 blocks in `-fast` and -`-medium`. However, it makes 5x5 blocks marginally slower and the slow down -increases as block size increases. - - -## Optimization one: Only search one component for 2/3 partition dual plane - -astcenc 2.0 checks the two color components that are least correlated when -testing for use of second plane of weights. - -The first change made during the review is to change this to check only the -least correlated color component when encoding two partitions. This causes -negligible quality impact (< 0.008 dB) when using `-fast` and `-medium`, -and slightly larger with `-thorough`. It buys up to ~10% performance -improvement for `-medium`, so it is a significant optimization. - -Performance improvement depends on block size; it helps larger block sizes -more than smaller once. - -Kodak: 4x4 - Coding time: Mean: +1.01x Std: 0.02x - Image quality: Mean: -0.00 dB Std: 0.00 dB - -Kodak: 6x6 - Coding time: Mean: +1.07x Std: 0.03x - Image quality: Mean: -0.00 dB Std: 0.00 dB - -Kodak: 8x8 - Coding time: Mean: +1.08x Std: 0.03x - Image quality: Mean: -0.00 dB Std: 0.00 dB - -This optimizations also allows some simplification of the implementation of -`find_best_partitionings()` as we only have to manage and return a single -result. diff --git a/lib/astc-encoder/Docs/Building.md b/lib/astc-encoder/Docs/Building.md index c2b3efa76e..83d2f30196 100644 --- a/lib/astc-encoder/Docs/Building.md +++ b/lib/astc-encoder/Docs/Building.md @@ -25,19 +25,22 @@ cd build # Configure your build of choice, for example: # x86-64 using NMake -cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=.\ ^ - -DISA_AVX2=ON -DISA_SSE41=ON -DISA_SSE2=ON .. +cmake -G "NMake Makefiles" -T ClangCL -DCMAKE_BUILD_TYPE=Release ^ + -DCMAKE_INSTALL_PREFIX=.\ -DISA_AVX2=ON -DISA_SSE41=ON -DISA_SSE2=ON .. # x86-64 using Visual Studio solution -cmake -G "Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=.\ ^ +cmake -G "Visual Studio 16 2019" -T ClangCL -DCMAKE_INSTALL_PREFIX=.\ ^ -DISA_AVX2=ON -DISA_SSE41=ON -DISA_SSE2=ON .. - ``` This example shows all SIMD variants being enabled. It is possible to build a subset of the supported variants by enabling only the ones you require. At least one variant must be enabled. +Using the Visual Studio Clang-cl LLVM toolchain (`-T ClangCL`) is optional but +produces signficantly faster binaries than the default toolchain. The C++ LLVM +toolchain component must be installed via the Visual Studio installer. + ### Building Once you have configured the build you can use NMake to compile the project diff --git a/lib/astc-encoder/Docs/ChangeLog-2x.md b/lib/astc-encoder/Docs/ChangeLog-2x.md index 98aced2f39..ca0d0d0aa0 100644 --- a/lib/astc-encoder/Docs/ChangeLog-2x.md +++ b/lib/astc-encoder/Docs/ChangeLog-2x.md @@ -226,7 +226,7 @@ speed. Our test sets show an average of 12% improvement in the codec for Key for performance charts: * Color = block size (see legend). -* Letter = image format (N = normal map, G = greyscale, L = LDR, H = HDR). +* Letter = image format (N = normal map, G = grayscale, L = LDR, H = HDR). **Absolute performance vs 2.1 release:** @@ -283,7 +283,7 @@ recompile your client-side code using the updated `astcenc.h` header. Key for performance charts: * Color = block size (see legend). -* Letter = image format (N = normal map, G = greyscale, L = LDR, H = HDR). +* Letter = image format (N = normal map, G = grayscale, L = LDR, H = HDR). **Absolute performance vs 2.0 release:** @@ -313,7 +313,7 @@ major changes over the earlier 1.7 series, and is not command-line compatible. Key for performance charts * Color = block size (see legend). -* Letter = image format (N = normal map, G = greyscale, L = LDR, H = HDR). +* Letter = image format (N = normal map, G = grayscale, L = LDR, H = HDR). **Absolute performance vs 1.7 release:** diff --git a/lib/astc-encoder/Docs/ChangeLog-3x.md b/lib/astc-encoder/Docs/ChangeLog-3x.md index 8aa2cdf2c2..7d68347fb4 100644 --- a/lib/astc-encoder/Docs/ChangeLog-3x.md +++ b/lib/astc-encoder/Docs/ChangeLog-3x.md @@ -4,19 +4,86 @@ This page summarizes the major functional and performance changes in each 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. +clocked at 4.2 GHz, running `astcenc` using AVX2 and 6 threads. + + + +## 3.4 + +**Status:** In development + +The 3.4 release introduces another round of optimizations, removing a number +of power-user configuration options to simplify the core compressor data path. + +* **General:** + * **Feature:** The `-v` and `-va` options to set a per-texel error weight + function are no longer supported. + * **Feature:** The `-b` option to set a per-texel error weight boost for + block border texels is no longer supported. + * **Feature:** The `-a` option to set a per-texel error weight based on texel + alpha value is no longer supported as an error weighting tool, but is still + supported for providing sprite-sheet RDO. + * **Feature:** The `-mask` option to set an error metric for mask map + textures is still supported, but is currently a no-op in the compressor. + * **Feature:** The `-perceptual` option to set a perceptual error metric is + still supported, but is currently a no-op in the compressor for mask map + and normal map textures. + +### Performance: + +Key for charts: + +* Color = block size (see legend). +* Letter = image format (N = normal map, G = grayscale, L = LDR, H = HDR). + +**Relative performance vs 3.3 release:** + +Pending ... + + +## 3.3 + +**Status:** November 2021 + +The 3.3 release improves image quality for normal maps, and two component +textures. Normal maps are expected to compress 25% slower than the 3.2 +release, although it should be noted that they are still faster to compress +in 3.3 than when using the 2.5 series. This release also fixes one reported +stability issue. + +* **General:** + * **Feature:** Normal map image quality has been improved. + * **Feature:** Two component image quality has been improved, provided + that unused components are correctly zero-weighted using e.g. `-cw` on the + command line. + * **Bug-fix:** Improved stability when trying to compress complex blocks that + could not beat even the starting quality threshold. These will now always + compress in to a constant color blocks. + + +## 3.2 + +**Status:** August 2021 + +The 3.2 release is a bugfix release; no significant image quality or +performance differences are expected. + +* **General:** + * **Bug-fix:** Improved stability when new contexts were created while other + contexts were compressing or decompressing an image. + * **Bug-fix:** Improved stability when decompressing blocks with invalid + block encodings. ## 3.1 **Status:** July 2021 -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 universal binaries -on macOS. Full change list is shown below. +The 3.1 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 universal 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 @@ -59,7 +126,7 @@ updated `astcenc.h` header. Key for charts: * Color = block size (see legend). -* Letter = image format (N = normal map, G = greyscale, L = LDR, H = HDR). +* Letter = image format (N = normal map, G = grayscale, L = LDR, H = HDR). **Relative performance vs 3.0 release:** @@ -110,7 +177,7 @@ updated `astcenc.h` header. Key for charts: * Color = block size (see legend). -* Letter = image format (N = normal map, G = greyscale, L = LDR, H = HDR). +* Letter = image format (N = normal map, G = grayscale, L = LDR, H = HDR). **Absolute performance vs 2.5 release:** diff --git a/lib/astc-encoder/Docs/Encoding.md b/lib/astc-encoder/Docs/Encoding.md index c600540669..841527f458 100644 --- a/lib/astc-encoder/Docs/Encoding.md +++ b/lib/astc-encoder/Docs/Encoding.md @@ -1,8 +1,8 @@ # Effective ASTC Encoding Most texture compression schemes encode a single color format at single -bitrate, so there are relatively few configuration options available to -content creators beyond selecting which compressed format to use. +bitrate, so there are relatively few configuration options available to content +creators beyond selecting which compressed format to use. ASTC on the other hand is an extremely flexible container format which can compress multiple color formats at multiple bit rates. Inevitably this @@ -169,12 +169,7 @@ vector rather than for absolute color error in the data, which improves the perceptual quality of the image. Both the encoding swizzle and the angular error function are enabled by using -the `-normal` command line option. Normal map compression additionally supports -a dedicated perceptual error mode, enabled with the `-perceptual` switch, which -also optimizes for variance in the normal vector over a small neighborhood. -This can improve perceived visual quality by reducing variability that is -amplified by specular lighting calculations, but it will reduce the apparent -PSNR of the image. +the `-normal` command line option. ## Encoding sRGB data diff --git a/lib/astc-encoder/Docs/FileFormat.md b/lib/astc-encoder/Docs/FileFormat.md index 70876a1f3a..9e90030452 100644 --- a/lib/astc-encoder/Docs/FileFormat.md +++ b/lib/astc-encoder/Docs/FileFormat.md @@ -64,4 +64,4 @@ Binary payload The binary payload is a byte stream that immediately follows the header. It contains 16 bytes per compressed block. The number of compressed blocks is -determined programmatically based on the header information. +determined from the header information. diff --git a/lib/astc-encoder/Docs/OptimizationIdeas.md b/lib/astc-encoder/Docs/OptimizationIdeas.md deleted file mode 100644 index 9237a60881..0000000000 --- a/lib/astc-encoder/Docs/OptimizationIdeas.md +++ /dev/null @@ -1,67 +0,0 @@ -# Optimization ideas - -This page contains a relatively raw dump of optimization ideas we've had, and -areas we want to investigate. - -Most of these are raw ideas that have not been entirely thought thorough. Some -will no doubt turn out to be rubbish ideas that don't work, but hopefully there -are a few gems in here =) - -## Optimizations - -This section lists specific optimization ideas. - -### Exploit 1:1 weight modes - -The current code is generic and assumes bilinear texel reconstruction from -multiple weighted color values, due to use of decimated weight grids. For the -4x4 block size we actually get a high percentage of 1:1 weight grids, so it -might be worth including a fast-path which can exploit this simplification. - -### Get bsd to store only useful partitions - -The current BSD stores full partition tables, but at smaller block sizes a high -percentage are degenerate. For other data tables we now only store the active -ones, so we should consider doing something similar there too to improve -cache locality. - -### Postpone full iterative refinement - -Iterative refinement is expensive, and not always beneficial. We currently -refine every trial based on estimated error, and then keep the best based on -actual error. - -To reduce the amount of refinement done, but without losing too much quality, -we should see if it is possible to reduce the amount of refinement done before -candidate selection and then only refine the final one or two candidates (but -potentially refine them more than we do today). - -### Heuristic based on block / weight decimation anisotropy - -Decimated weight grids can end up quite anisotropic, especially at larger -block sizes. For example, the most extreme is a 2x12 grid for a 12x12 block. - -Gut feel says we should be able to exploit this - either a straight-heuristic -to reject very unbalanced block sizes, or an intelligent heuristic which -looks at the variability in the input data in each axis to determine which -weight decimations to consider. Could also reject very high/low frequency -grids, if they are a bad fit, not just anisotropic ones. - -This will mostly benefit the larger block sizes on `-medium` and `-thorough` -compression modes; percentiles tend to filter out the most unbalanced modes. - -### Block mode and Decimation table sorting - -The current code in `astcenc_block_sizes2.cpp` builds Block Modes based on the -value of the encoded mode index. The decoded block mode behavior is not nicely -sequential with either the likely utility of the block, or the use of data -resources. This gives poor locality and makes other optimizations harder. - -- **Option one:** Sort block modes by the decimation entry that they reference, - this will allow better spatial locality when processing sequential block - modes that use the same table. These could be sorted by weight count so that - there is some form of "ladder" in terms of weight count bitrate usage. -- **Option two:** Sort block modes by their "usefulness" centile, and test the - most valuable ones first. This will allow us to build an early-out - mechanism which tests the most useful block modes first. (Today we cut - statically, based on the quality preset, but there is no dynamic trimming). diff --git a/lib/astc-encoder/Docs/Profiling.md b/lib/astc-encoder/Docs/Profiling.md index adf98a7171..036069c7cd 100644 --- a/lib/astc-encoder/Docs/Profiling.md +++ b/lib/astc-encoder/Docs/Profiling.md @@ -46,52 +46,3 @@ Standard syntax x86-64 disassembly can be generated using: ```shell objdump -C -M intel --no-show-raw -d -S > dis.txt ``` - -## Struct sizes - -Optimizing structures for size and spatial locality is important, so we keep -half an eye on the sizes of the structures to make sure we're not exploding the -sizes a lot! - -Useful snippet for dumping the main structure sizes: - -```c++ - printf("partition_info: %zu\n", sizeof(partition_info)); - printf("decimation_table: %zu\n", sizeof(decimation_table)); - printf("block_size_descriptor: %zu\n", sizeof(block_size_descriptor)); - printf("imageblock: %zu\n", sizeof(imageblock)); - printf("error_weight_block: %zu\n", sizeof(error_weight_block)); - printf("symbolic_compressed_block: %zu\n", sizeof(symbolic_compressed_block)); - printf("compress_fixed_partition_buffers: %zu\n", sizeof(compress_fixed_partition_buffers)); - printf("compress_symbolic_block_buffers: %zu\n", sizeof(compress_symbolic_block_buffers)); -``` - -Released builds return the following sizes of things (in bytes) - -| Structure | v2.1 | -| -------------------------------- | ------- | -| partition_info | 1120 | -| decimation_table | 364896 | -| block_size_descriptor | 3473152 | -| imageblock | 4176 | -| error_weight_block | 14704 | -| symbolic_compressed_block | 380 | -| compress_fixed_partition_buffers | 1729280 | -| compress_symbolic_block_buffers | 1745504 | - -A lot things are allocated with worst-case `MAX_TEXELS_PER_BLOCK` counts, as -this avoids indirect loads. Setting this to 36 (i.e. enough for 6x6 blocks) -improves overall performance by ~5%. Dynamic sizing would be interesting to -explore, but we really want to avoid indirect pointer-chasing loads on critical -paths. - -| Structure | v2.1 | -| -------------------------------- | ------- | -| partition_info | 224 | -| decimation_table | 60876 | -| block_size_descriptor | 718704 | -| imageblock | 752 | -| error_weight_block | 2464 | -| symbolic_compressed_block | 380 | -| compress_fixed_partition_buffers | 1475840 | -| compress_symbolic_block_buffers | 1479840 | diff --git a/lib/astc-encoder/Docs/Roadmap.md b/lib/astc-encoder/Docs/Roadmap.md deleted file mode 100644 index 2ce14fa445..0000000000 --- a/lib/astc-encoder/Docs/Roadmap.md +++ /dev/null @@ -1,62 +0,0 @@ -# Roadmap - -This page summarizes the major roadmap items for astcenc, as an indication of -of what we are thinking about. There are no commitments or schedules on this; -most of the engineering work here is done by volunteers. - -## astcenc 3.0 - -The next milestone for astcenc will be a new major release, version 3.0. - -The 2.x series has seen many changes to both the image quality, where we've -traded off quality to gain performance, and the core codec API. Now that we've -hit a performance point we are mostly happy with we'd like to stabilize on what -we have. The goals for version 3.0 are: - -* Stable codec API. -* Stable image quality. - -Primarily this will impact optimization work, where we will be applying a -policy that new changes must not reduce image quality. This doesn't rule out -more performance, but does mean that improvements are likely to be more -incremental. The one exception to this policy is the `-fastest` mode which -deliberately sets out to be as fast as possible for roughing-out, and has no -commitment to image quality ... - -## astcenc training course - -ASTC is a relatively feature-rich container format, and astcenc is a relatively -powerful compressor. There are some tricks for getting the best image quality -out for any given bitrate, especially for non-color data such as normal maps -and PBR material textures. We'd like to produce a short training course or -video series explaining the format, the compressor, and how to use them. - -## Normal maps and HDR texture performance - -The current codec disables PSNR thresholds for both normal maps and HDR -textures, which effectively requires each search to run to completion based -only on coarse tuning heuristics. This makes normal maps and HDR textures -significantly slower than color LDR textures, and it feels like we should be -able to come up with a criteria to exit "easy blocks" faster. Simple linear -PSNR may not be a good choice, but _something_ should be possible. - -## Command line front-end implementation - -The current command line front-end is very similar to the version in the 1.x -series. The options we expose have been cleaned up but the implementation has -had relatively little done to it. Major goals: - -* Make the image path zero copy. -* Support the full range of KTX containers for input and output images (arrays, - cube maps, mipmaps, etc). -* Support automatic mipmap generation. - -## Command line back-end implementation - -The current command line ships as multiple binaries, one per instruction set, -so the user has to pick the right one for their machine. It would be a better -user experience if this was one binary with multiple backend builds that could -be selected at runtime. - -Last time we tried this using a dynamically loaded shared object was 8% slower -than a static build, which we need to investigate and reduce. diff --git a/lib/astc-encoder/README.md b/lib/astc-encoder/README.md index b1044f4618..f4f58db2c1 100644 --- a/lib/astc-encoder/README.md +++ b/lib/astc-encoder/README.md @@ -58,16 +58,12 @@ 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 3.x stable release:** 3.2 +**Latest 3.x stable release:** 3.3 * 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.3-develop -* Change log: [3.x series](./Docs/ChangeLog-3x.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 specific SIMD instruction set. diff --git a/lib/astc-encoder/Source/astcenc.h b/lib/astc-encoder/Source/astcenc.h index 3da8929930..f98fa7c68f 100644 --- a/lib/astc-encoder/Source/astcenc.h +++ b/lib/astc-encoder/Source/astcenc.h @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2020-2021 Arm Limited +// Copyright 2020-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -405,36 +405,6 @@ struct astcenc_config /** @brief The ASTC block size Z dimension. */ unsigned int block_z; - /** @brief The size of the texel kernel for error weighting (-v). */ - unsigned int v_rgba_radius; - - /** @brief The mean and stdev component mix for error weighting (-v). */ - float v_rgba_mean_stdev_mix; - - /** @brief The texel RGB power for error weighting (-v). */ - float v_rgb_power; - - /** @brief The texel RGB base weight for error weighting (-v). */ - float v_rgb_base; - - /** @brief The texel RGB mean weight for error weighting (-v). */ - float v_rgb_mean; - - /** @brief The texel RGB stdev for error weighting (-v). */ - float v_rgb_stdev; - - /** @brief The texel A power for error weighting (-va). */ - float v_a_power; - - /** @brief The texel A base weight for error weighting (-va). */ - float v_a_base; - - /** @brief The texel A mean weight for error weighting (-va). */ - float v_a_mean; - - /** @brief The texel A stdev for error weighting (-va). */ - float v_a_stdev; - /** @brief The red component weight scale for error weighting (-cw). */ float cw_r_weight; @@ -456,13 +426,6 @@ struct astcenc_config */ unsigned int a_scale_radius; - /** - * @brief The additional weight for block edge texels (-b). - * - * This is generic tool for reducing artefacts visible on block changes. - */ - float b_deblock_weight; - /** @brief The RGBM scale factor for the shared multiplier (-rgbm). */ float rgbm_m_scale; diff --git a/lib/astc-encoder/Source/astcenc_averages_and_directions.cpp b/lib/astc-encoder/Source/astcenc_averages_and_directions.cpp index 3dac01e831..3002928d1c 100644 --- a/lib/astc-encoder/Source/astcenc_averages_and_directions.cpp +++ b/lib/astc-encoder/Source/astcenc_averages_and_directions.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -28,45 +28,30 @@ void compute_avgs_and_dirs_4_comp( const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, partition_metrics pm[BLOCK_MAX_PARTITIONS] ) { - // TODO: Candidate for 4-group counting + float texel_weight = hadd_s(blk.channel_weight) / 4.0f; + int partition_count = pi.partition_count; promise(partition_count > 0); for (int partition = 0; partition < partition_count; partition++) { const uint8_t *texel_indexes = pi.texels_of_partition[partition]; - - vfloat4 error_sum = vfloat4::zero(); - vfloat4 base_sum = vfloat4::zero(); - float partition_weight = 0.0f; - unsigned int texel_count = pi.partition_texel_count[partition]; promise(texel_count > 0); + // TODO: Try gathers? + vfloat4 base_sum = vfloat4::zero(); + for (unsigned int i = 0; i < texel_count; i++) { int iwt = texel_indexes[i]; - float weight = ewb.texel_weight[iwt]; - vfloat4 texel_datum = blk.texel(iwt); - vfloat4 error_weight = ewb.error_weights[iwt]; - - partition_weight += weight; - base_sum += texel_datum * weight; - error_sum += error_weight; + base_sum += blk.texel(iwt); } - error_sum = error_sum / static_cast(texel_count); - vfloat4 csf = normalize(sqrt(error_sum)) * 2.0f; - - vfloat4 average = base_sum * (1.0f / astc::max(partition_weight, 1e-7f)); - - pm[partition].error_weight = error_sum; - pm[partition].avg = average * csf; - pm[partition].color_scale = csf; - pm[partition].icolor_scale = 1.0f / max(csf, 1e-7f); + vfloat4 average = base_sum / static_cast(texel_count); + pm[partition].avg = average; vfloat4 sum_xp = vfloat4::zero(); vfloat4 sum_yp = vfloat4::zero(); @@ -76,9 +61,8 @@ void compute_avgs_and_dirs_4_comp( for (unsigned int i = 0; i < texel_count; i++) { unsigned int iwt = texel_indexes[i]; - float weight = ewb.texel_weight[iwt]; vfloat4 texel_datum = blk.texel(iwt); - texel_datum = (texel_datum - average) * weight; + texel_datum = (texel_datum - average) * texel_weight; vfloat4 zero = vfloat4::zero(); @@ -128,50 +112,35 @@ void compute_avgs_and_dirs_4_comp( void compute_avgs_and_dirs_3_comp( const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, unsigned int omitted_component, partition_metrics pm[BLOCK_MAX_PARTITIONS] ) { - // TODO: Candidate for 4-group counting - const float *texel_weights = ewb.texel_weight_rgb; + float texel_weight = hadd_s(blk.channel_weight.swz<0, 1, 2>()) / 3.0f; const float* data_vr = blk.data_r; const float* data_vg = blk.data_g; const float* data_vb = blk.data_b; - const float* error_vr = ewb.texel_weight_r; - const float* error_vg = ewb.texel_weight_g; - const float* error_vb = ewb.texel_weight_b; - if (omitted_component == 0) { - texel_weights = ewb.texel_weight_gba; + texel_weight = hadd_s(blk.channel_weight.swz<1, 2, 3>()) / 3.0f; data_vr = blk.data_g; data_vg = blk.data_b; data_vb = blk.data_a; - - error_vr = ewb.texel_weight_g; - error_vg = ewb.texel_weight_b; - error_vb = ewb.texel_weight_a; } else if (omitted_component == 1) { - texel_weights = ewb.texel_weight_rba; + texel_weight = hadd_s(blk.channel_weight.swz<0, 2, 3>()) / 3.0f; data_vg = blk.data_b; data_vb = blk.data_a; - - error_vg = ewb.texel_weight_b; - error_vb = ewb.texel_weight_a; } else if (omitted_component == 2) { - texel_weights = ewb.texel_weight_rga; + texel_weight = hadd_s(blk.channel_weight.swz<0, 1, 3>()) / 3.0f; data_vb = blk.data_a; - - error_vb = ewb.texel_weight_a; } unsigned int partition_count = pi.partition_count; @@ -180,43 +149,18 @@ void compute_avgs_and_dirs_3_comp( for (unsigned int partition = 0; partition < partition_count; partition++) { const uint8_t *texel_indexes = pi.texels_of_partition[partition]; - - vfloat4 error_sum = vfloat4::zero(); - vfloat4 base_sum = vfloat4::zero(); - float partition_weight = 0.0f; - unsigned int texel_count = pi.partition_texel_count[partition]; promise(texel_count > 0); + vfloat4 base_sum = vfloat4::zero(); for (unsigned int i = 0; i < texel_count; i++) { unsigned int iwt = texel_indexes[i]; - float weight = texel_weights[iwt]; - - vfloat4 texel_datum(data_vr[iwt], - data_vg[iwt], - data_vb[iwt], - 0.0f); - - vfloat4 error_weight(error_vr[iwt], - error_vg[iwt], - error_vb[iwt], - 0.0f); - - partition_weight += weight; - base_sum += texel_datum * weight; - error_sum += error_weight; + base_sum += vfloat3(data_vr[iwt], data_vg[iwt], data_vb[iwt]); } - error_sum = error_sum / static_cast(texel_count); - vfloat4 csf = normalize(sqrt(error_sum)) * 1.73205080f; - - vfloat4 average = base_sum * (1.0f / astc::max(partition_weight, 1e-7f)); - - pm[partition].error_weight = error_sum; - pm[partition].avg = average * csf; - pm[partition].color_scale = csf; - pm[partition].icolor_scale = 1.0f / max(csf, 1e-7f); + vfloat4 average = base_sum / static_cast(texel_count); + pm[partition].avg = average; vfloat4 sum_xp = vfloat4::zero(); vfloat4 sum_yp = vfloat4::zero(); @@ -225,13 +169,12 @@ void compute_avgs_and_dirs_3_comp( for (unsigned int i = 0; i < texel_count; i++) { unsigned int iwt = texel_indexes[i]; - float weight = texel_weights[iwt]; vfloat4 texel_datum = vfloat3(data_vr[iwt], data_vg[iwt], data_vb[iwt]); - texel_datum = (texel_datum - average) * weight; + texel_datum = (texel_datum - average) * texel_weight; vfloat4 zero = vfloat4::zero(); @@ -271,50 +214,28 @@ void compute_avgs_and_dirs_3_comp( void compute_avgs_and_dirs_3_comp_rgb( const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, partition_metrics pm[BLOCK_MAX_PARTITIONS] ) { - // TODO: Candidate for 4-group counting + float texel_weight = hadd_s(blk.channel_weight.swz<0, 1, 2>()) / 3; + unsigned int partition_count = pi.partition_count; promise(partition_count > 0); for (unsigned int partition = 0; partition < partition_count; partition++) { const uint8_t *texel_indexes = pi.texels_of_partition[partition]; - - vfloat4 error_sum = vfloat4::zero(); - vfloat4 base_sum = vfloat4::zero(); - float partition_weight = 0.0f; - unsigned int texel_count = pi.partition_texel_count[partition]; promise(texel_count > 0); + vfloat4 base_sum = vfloat4::zero(); for (unsigned int i = 0; i < texel_count; i++) { unsigned int iwt = texel_indexes[i]; - float weight = ewb.texel_weight_rgb[iwt]; - - vfloat4 texel_datum = blk.texel3(iwt); - - vfloat4 error_weight(ewb.texel_weight_r[iwt], - ewb.texel_weight_g[iwt], - ewb.texel_weight_b[iwt], - 0.0f); - - partition_weight += weight; - base_sum += texel_datum * weight; - error_sum += error_weight; + base_sum += blk.texel3(iwt); } - error_sum = error_sum / static_cast(texel_count); - vfloat4 csf = normalize(sqrt(error_sum)) * 1.73205080f; - - vfloat4 average = base_sum * (1.0f / astc::max(partition_weight, 1e-7f)); - - pm[partition].error_weight = error_sum; - pm[partition].avg = average * csf; - pm[partition].color_scale = csf; - pm[partition].icolor_scale = 1.0f / max(csf, 1e-7f); + vfloat4 average = base_sum / static_cast(texel_count); + pm[partition].avg = average; vfloat4 sum_xp = vfloat4::zero(); vfloat4 sum_yp = vfloat4::zero(); @@ -323,11 +244,10 @@ void compute_avgs_and_dirs_3_comp_rgb( for (unsigned int i = 0; i < texel_count; i++) { unsigned int iwt = texel_indexes[i]; - float weight = ewb.texel_weight_rgb[iwt]; vfloat4 texel_datum = blk.texel3(iwt); - texel_datum = (texel_datum - average) * weight; + texel_datum = (texel_datum - average) * texel_weight; vfloat4 zero = vfloat4::zero(); @@ -367,49 +287,37 @@ void compute_avgs_and_dirs_3_comp_rgb( void compute_avgs_and_dirs_2_comp( const partition_info& pt, const image_block& blk, - const error_weight_block& ewb, unsigned int component1, unsigned int component2, partition_metrics pm[BLOCK_MAX_PARTITIONS] ) { - const float *texel_weights; + float texel_weight; const float* data_vr = nullptr; const float* data_vg = nullptr; - const float* error_vr = nullptr; - const float* error_vg = nullptr; - if (component1 == 0 && component2 == 1) { - texel_weights = ewb.texel_weight_rg; + texel_weight = hadd_s(blk.channel_weight.swz<0, 1>()) / 2.0f; data_vr = blk.data_r; data_vg = blk.data_g; - - error_vr = ewb.texel_weight_r; - error_vg = ewb.texel_weight_g; } else if (component1 == 0 && component2 == 2) { - texel_weights = ewb.texel_weight_rb; + texel_weight = hadd_s(blk.channel_weight.swz<0, 2>()) / 2.0f; data_vr = blk.data_r; data_vg = blk.data_b; - - error_vr = ewb.texel_weight_r; - error_vg = ewb.texel_weight_b; } else // (component1 == 1 && component2 == 2) { assert(component1 == 1 && component2 == 2); - texel_weights = ewb.texel_weight_gb; + + texel_weight = hadd_s(blk.channel_weight.swz<1, 2>()) / 2.0f; data_vr = blk.data_g; data_vg = blk.data_b; - - error_vr = ewb.texel_weight_g; - error_vg = ewb.texel_weight_b; } unsigned int partition_count = pt.partition_count; @@ -418,36 +326,18 @@ void compute_avgs_and_dirs_2_comp( for (unsigned int partition = 0; partition < partition_count; partition++) { const uint8_t *texel_indexes = pt.texels_of_partition[partition]; - - vfloat4 error_sum = vfloat4::zero(); - vfloat4 base_sum = vfloat4::zero(); - float partition_weight = 0.0f; - unsigned int texel_count = pt.partition_texel_count[partition]; promise(texel_count > 0); + vfloat4 base_sum = vfloat4::zero(); for (unsigned int i = 0; i < texel_count; i++) { unsigned int iwt = texel_indexes[i]; - float weight = texel_weights[iwt]; - vfloat4 texel_datum = vfloat2(data_vr[iwt], data_vg[iwt]) * weight; - - vfloat4 error_weight = vfloat2(error_vr[iwt], error_vg[iwt]); - - partition_weight += weight; - base_sum += texel_datum; - error_sum += error_weight; + base_sum += vfloat2(data_vr[iwt], data_vg[iwt]); } - error_sum = error_sum / static_cast(texel_count); - vfloat4 csf = normalize(sqrt(error_sum)) * 1.41421356f; - vfloat4 average = base_sum * (1.0f / astc::max(partition_weight, 1e-7f)); - - - pm[partition].error_weight = error_sum; - pm[partition].avg = average * csf; - pm[partition].color_scale = csf; - pm[partition].icolor_scale = 1.0f / max(csf, 1e-7f); + vfloat4 average = base_sum / static_cast(texel_count); + pm[partition].avg = average; vfloat4 sum_xp = vfloat4::zero(); vfloat4 sum_yp = vfloat4::zero(); @@ -455,9 +345,8 @@ void compute_avgs_and_dirs_2_comp( for (unsigned int i = 0; i < texel_count; i++) { unsigned int iwt = texel_indexes[i]; - float weight = texel_weights[iwt]; vfloat4 texel_datum = vfloat2(data_vr[iwt], data_vg[iwt]); - texel_datum = (texel_datum - average) * weight; + texel_datum = (texel_datum - average) * texel_weight; vfloat4 zero = vfloat4::zero(); @@ -487,7 +376,6 @@ void compute_avgs_and_dirs_2_comp( void compute_error_squared_rgba( const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, const processed_line4 uncor_plines[BLOCK_MAX_PARTITIONS], const processed_line4 samec_plines[BLOCK_MAX_PARTITIONS], float uncor_lengths[BLOCK_MAX_PARTITIONS], @@ -528,11 +416,6 @@ void compute_error_squared_rgba( vfloat l_uncor_amod2(l_uncor.amod.lane<2>()); vfloat l_uncor_amod3(l_uncor.amod.lane<3>()); - vfloat l_uncor_bis0(l_uncor.bis.lane<0>()); - vfloat l_uncor_bis1(l_uncor.bis.lane<1>()); - vfloat l_uncor_bis2(l_uncor.bis.lane<2>()); - vfloat l_uncor_bis3(l_uncor.bis.lane<3>()); - vfloat l_samec_bs0(l_samec.bs.lane<0>()); vfloat l_samec_bs1(l_samec.bs.lane<1>()); vfloat l_samec_bs2(l_samec.bs.lane<2>()); @@ -540,11 +423,6 @@ void compute_error_squared_rgba( assert(all(l_samec.amod == vfloat4(0.0f))); - vfloat l_samec_bis0(l_samec.bis.lane<0>()); - vfloat l_samec_bis1(l_samec.bis.lane<1>()); - vfloat l_samec_bis2(l_samec.bis.lane<2>()); - vfloat l_samec_bis3(l_samec.bis.lane<3>()); - vfloat uncor_loparamv(1e10f); vfloat uncor_hiparamv(-1e10f); vfloat4 uncor_errorsumv = vfloat4::zero(); @@ -553,6 +431,11 @@ void compute_error_squared_rgba( vfloat samec_hiparamv(-1e10f); vfloat4 samec_errorsumv = vfloat4::zero(); + vfloat ew_r(blk.channel_weight.lane<0>()); + vfloat ew_g(blk.channel_weight.lane<1>()); + vfloat ew_b(blk.channel_weight.lane<2>()); + vfloat ew_a(blk.channel_weight.lane<3>()); + // This implementation over-shoots, but this is safe as we initialize the texel_indexes // array to extend the last value. This means min/max are not impacted, but we need to mask // out the dummy values when we compute the line weighting. @@ -567,11 +450,6 @@ void compute_error_squared_rgba( vfloat data_b = gatherf(blk.data_b, texel_idxs); vfloat data_a = gatherf(blk.data_a, texel_idxs); - vfloat ew_r = gatherf(ewb.texel_weight_r, texel_idxs); - vfloat ew_g = gatherf(ewb.texel_weight_g, texel_idxs); - vfloat ew_b = gatherf(ewb.texel_weight_b, texel_idxs); - vfloat ew_a = gatherf(ewb.texel_weight_a, texel_idxs); - vfloat uncor_param = (data_r * l_uncor_bs0) + (data_g * l_uncor_bs1) + (data_b * l_uncor_bs2) @@ -581,13 +459,13 @@ void compute_error_squared_rgba( uncor_hiparamv = max(uncor_param, uncor_hiparamv); vfloat uncor_dist0 = (l_uncor_amod0 - data_r) - + (uncor_param * l_uncor_bis0); + + (uncor_param * l_uncor_bs0); vfloat uncor_dist1 = (l_uncor_amod1 - data_g) - + (uncor_param * l_uncor_bis1); + + (uncor_param * l_uncor_bs1); vfloat uncor_dist2 = (l_uncor_amod2 - data_b) - + (uncor_param * l_uncor_bis2); + + (uncor_param * l_uncor_bs2); vfloat uncor_dist3 = (l_uncor_amod3 - data_a) - + (uncor_param * l_uncor_bis3); + + (uncor_param * l_uncor_bs3); vfloat uncor_err = (ew_r * uncor_dist0 * uncor_dist0) + (ew_g * uncor_dist1 * uncor_dist1) @@ -606,10 +484,10 @@ void compute_error_squared_rgba( samec_loparamv = min(samec_param, samec_loparamv); samec_hiparamv = max(samec_param, samec_hiparamv); - vfloat samec_dist0 = samec_param * l_samec_bis0 - data_r; - vfloat samec_dist1 = samec_param * l_samec_bis1 - data_g; - vfloat samec_dist2 = samec_param * l_samec_bis2 - data_b; - vfloat samec_dist3 = samec_param * l_samec_bis3 - data_a; + vfloat samec_dist0 = samec_param * l_samec_bs0 - data_r; + vfloat samec_dist1 = samec_param * l_samec_bs1 - data_g; + vfloat samec_dist2 = samec_param * l_samec_bs2 - data_b; + vfloat samec_dist3 = samec_param * l_samec_bs3 - data_a; vfloat samec_err = (ew_r * samec_dist0 * samec_dist0) + (ew_g * samec_dist1 * samec_dist1) @@ -619,7 +497,7 @@ void compute_error_squared_rgba( samec_err = select(vfloat::zero(), samec_err, mask); haccumulate(samec_errorsumv, samec_err); - lane_ids = lane_ids + vint(ASTCENC_SIMD_WIDTH); + lane_ids += vint(ASTCENC_SIMD_WIDTH); } uncor_loparam = hmin_s(uncor_loparamv); @@ -645,7 +523,6 @@ void compute_error_squared_rgba( void compute_error_squared_rgb( const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, partition_lines3 plines[BLOCK_MAX_PARTITIONS], float& uncor_error, float& samec_error @@ -685,20 +562,12 @@ void compute_error_squared_rgb( vfloat l_uncor_amod1(l_uncor.amod.lane<1>()); vfloat l_uncor_amod2(l_uncor.amod.lane<2>()); - vfloat l_uncor_bis0(l_uncor.bis.lane<0>()); - vfloat l_uncor_bis1(l_uncor.bis.lane<1>()); - vfloat l_uncor_bis2(l_uncor.bis.lane<2>()); - vfloat l_samec_bs0(l_samec.bs.lane<0>()); vfloat l_samec_bs1(l_samec.bs.lane<1>()); vfloat l_samec_bs2(l_samec.bs.lane<2>()); assert(all(l_samec.amod == vfloat4(0.0f))); - vfloat l_samec_bis0(l_samec.bis.lane<0>()); - vfloat l_samec_bis1(l_samec.bis.lane<1>()); - vfloat l_samec_bis2(l_samec.bis.lane<2>()); - vfloat uncor_loparamv(1e10f); vfloat uncor_hiparamv(-1e10f); vfloat4 uncor_errorsumv = vfloat4::zero(); @@ -707,6 +576,10 @@ void compute_error_squared_rgb( vfloat samec_hiparamv(-1e10f); vfloat4 samec_errorsumv = vfloat4::zero(); + vfloat ew_r(blk.channel_weight.lane<0>()); + vfloat ew_g(blk.channel_weight.lane<1>()); + vfloat ew_b(blk.channel_weight.lane<2>()); + // This implementation over-shoots, but this is safe as we initialize the weights array // to extend the last value. This means min/max are not impacted, but we need to mask // out the dummy values when we compute the line weighting. @@ -720,10 +593,6 @@ void compute_error_squared_rgb( vfloat data_g = gatherf(blk.data_g, texel_idxs); vfloat data_b = gatherf(blk.data_b, texel_idxs); - vfloat ew_r = gatherf(ewb.texel_weight_r, texel_idxs); - vfloat ew_g = gatherf(ewb.texel_weight_g, texel_idxs); - vfloat ew_b = gatherf(ewb.texel_weight_b, texel_idxs); - vfloat uncor_param = (data_r * l_uncor_bs0) + (data_g * l_uncor_bs1) + (data_b * l_uncor_bs2); @@ -732,11 +601,11 @@ void compute_error_squared_rgb( uncor_hiparamv = max(uncor_param, uncor_hiparamv); vfloat uncor_dist0 = (l_uncor_amod0 - data_r) - + (uncor_param * l_uncor_bis0); + + (uncor_param * l_uncor_bs0); vfloat uncor_dist1 = (l_uncor_amod1 - data_g) - + (uncor_param * l_uncor_bis1); + + (uncor_param * l_uncor_bs1); vfloat uncor_dist2 = (l_uncor_amod2 - data_b) - + (uncor_param * l_uncor_bis2); + + (uncor_param * l_uncor_bs2); vfloat uncor_err = (ew_r * uncor_dist0 * uncor_dist0) + (ew_g * uncor_dist1 * uncor_dist1) @@ -754,9 +623,9 @@ void compute_error_squared_rgb( samec_hiparamv = max(samec_param, samec_hiparamv); - vfloat samec_dist0 = samec_param * l_samec_bis0 - data_r; - vfloat samec_dist1 = samec_param * l_samec_bis1 - data_g; - vfloat samec_dist2 = samec_param * l_samec_bis2 - data_b; + vfloat samec_dist0 = samec_param * l_samec_bs0 - data_r; + vfloat samec_dist1 = samec_param * l_samec_bs1 - data_g; + vfloat samec_dist2 = samec_param * l_samec_bs2 - data_b; vfloat samec_err = (ew_r * samec_dist0 * samec_dist0) + (ew_g * samec_dist1 * samec_dist1) @@ -765,7 +634,7 @@ void compute_error_squared_rgb( samec_err = select(vfloat::zero(), samec_err, mask); haccumulate(samec_errorsumv, samec_err); - lane_ids = lane_ids + vint(ASTCENC_SIMD_WIDTH); + lane_ids += vint(ASTCENC_SIMD_WIDTH); } uncor_loparam = hmin_s(uncor_loparamv); diff --git a/lib/astc-encoder/Source/astcenc_block_sizes.cpp b/lib/astc-encoder/Source/astcenc_block_sizes.cpp index 9200cab3de..4a9dc09058 100644 --- a/lib/astc-encoder/Source/astcenc_block_sizes.cpp +++ b/lib/astc-encoder/Source/astcenc_block_sizes.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -30,7 +30,7 @@ * @param[out] is_dual_plane True if this block mode has two weight planes. * @param[out] quant_mode The quantization level for the weights. * - * @return Returns true of valid mode, false otherwise. + * @return Returns true if a valid mode, false otherwise. */ static bool decode_block_mode_2d( unsigned int block_mode, @@ -144,7 +144,7 @@ static bool decode_block_mode_2d( * @param[out] is_dual_plane True if this block mode has two weight planes. * @param[out] quant_mode The quantization level for the weights. * - * @return Returns true of valid mode, false otherwise. + * @return Returns true if a valid mode, false otherwise. */ static bool decode_block_mode_3d( unsigned int block_mode, @@ -854,6 +854,8 @@ static void construct_block_size_descriptor_2d( unsigned int always_block_mode_count = 0; unsigned int always_decimation_mode_count = 0; + float always_threshold = 0.0f; + // Iterate twice; first time keep the "always" blocks, second time keep the "non-always" blocks. // This ensures that the always block modes and decimation modes are at the start of the list. for (unsigned int j = 0; j < 2; j ++) @@ -869,12 +871,12 @@ static void construct_block_size_descriptor_2d( float percentile = percentiles[i]; bool selected = (percentile <= mode_cutoff) || !can_omit_modes; - if (j == 0 && percentile != 0.0f) + if (j == 0 && percentile > always_threshold) { continue; } - if (j == 1 && percentile == 0.0f) + if (j == 1 && percentile <= always_threshold) { continue; } @@ -905,13 +907,13 @@ static void construct_block_size_descriptor_2d( // Allocate and initialize the decimation table entry if we've not used it yet int decimation_mode = decimation_mode_index[y_weights * 16 + x_weights]; - if (decimation_mode == -1) + if (decimation_mode < 0) { decimation_mode = construct_dt_entry_2d(x_texels, y_texels, x_weights, y_weights, bsd); decimation_mode_index[y_weights * 16 + x_weights] = decimation_mode; #if !defined(ASTCENC_DECOMPRESS_ONLY) - if (percentile == 0.0f) + if (percentile <= always_threshold) { always_decimation_mode_count++; } @@ -920,7 +922,7 @@ static void construct_block_size_descriptor_2d( #if !defined(ASTCENC_DECOMPRESS_ONLY) // Flatten the block mode heuristic into some precomputed flags - if (percentile == 0.0f) + if (percentile <= always_threshold) { always_block_mode_count++; bsd.block_modes[packed_idx].percentile_hit = true; diff --git a/lib/astc-encoder/Source/astcenc_compress_symbolic.cpp b/lib/astc-encoder/Source/astcenc_compress_symbolic.cpp index c64c65aadf..01b2a8b697 100644 --- a/lib/astc-encoder/Source/astcenc_compress_symbolic.cpp +++ b/lib/astc-encoder/Source/astcenc_compress_symbolic.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -60,7 +60,6 @@ static void merge_endpoints( * @param decode_mode The decode mode (LDR, HDR). * @param bsd The block size information. * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param[out] scb The symbolic compressed block output. * @param[out] dec_weights_quant_pvalue_plane1 The weights for plane 1. * @param[out] dec_weights_quant_pvalue_plane2 The weights for plane 2, or @c nullptr if 1 plane. @@ -69,7 +68,6 @@ static bool realign_weights( astcenc_profile decode_mode, const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, symbolic_compressed_block& scb, uint8_t* dec_weights_quant_pvalue_plane1, uint8_t* dec_weights_quant_pvalue_plane2 @@ -187,7 +185,7 @@ static bool realign_weights( vfloat4 color = color_base + color_offset * plane_weight; vfloat4 origcolor = blk.texel(texel); - vfloat4 error_weight = ewb.error_weights[texel]; + vfloat4 error_weight = blk.channel_weight; vfloat4 colordiff = color - origcolor; vfloat4 color_up_diff = colordiff + color_offset * plane_up_weight; @@ -226,7 +224,6 @@ static bool realign_weights( * @param config The compressor configuration. * @param bsd The block size information. * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param only_always True if we only use "always" percentile block modes. * @param tune_errorval_threshold The error value threshold. * @param partition_count The partition count. @@ -238,7 +235,6 @@ static float compress_symbolic_block_for_partition_1plane( const astcenc_config& config, const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, bool only_always, float tune_errorval_threshold, unsigned int partition_count, @@ -260,7 +256,7 @@ static float compress_symbolic_block_for_partition_1plane( // Compute ideal weights and endpoint colors, with no quantization or decimation endpoints_and_weights& ei = tmpbuf.ei1; endpoints_and_weights *eix = tmpbuf.eix1; - compute_ideal_colors_and_weights_1plane(bsd, blk, ewb, pi, ei); + compute_ideal_colors_and_weights_1plane(bsd, blk, pi, ei); // Compute ideal weights and endpoint colors for every decimation float *dec_weights_ideal_value = tmpbuf.dec_weights_ideal_value; @@ -382,7 +378,7 @@ static float compress_symbolic_block_for_partition_1plane( quant_method color_quant_level_mod[TUNE_MAX_TRIAL_CANDIDATES]; unsigned int candidate_count = compute_ideal_endpoint_formats( - bsd, pi, blk, ewb, ei.ep, qwt_bitcounts, qwt_errors, + bsd, pi, blk, ei.ep, qwt_bitcounts, qwt_errors, config.tune_candidate_limit, partition_format_specifiers, block_mode_index, color_quant_level, color_quant_level_mod); @@ -424,7 +420,7 @@ static float compress_symbolic_block_for_partition_1plane( for (unsigned int l = 0; l < config.tune_refinement_limit; l++) { recompute_ideal_colors_1plane( - blk, ewb, pi, di, + blk, pi, di, weight_quant_mode, workscb.weights, eix[decimation_mode].ep, rgbs_colors, rgbo_colors); @@ -498,7 +494,7 @@ static float compress_symbolic_block_for_partition_1plane( // Pre-realign test if (l == 0) { - float errorval = compute_symbolic_block_difference(config, bsd, workscb, blk, ewb); + float errorval = compute_symbolic_block_difference(config, bsd, workscb, blk); if (errorval == -ERROR_CALC_DEFAULT) { errorval = -errorval; @@ -536,11 +532,11 @@ static float compress_symbolic_block_for_partition_1plane( // Perform a final pass over the weights to try to improve them. bool adjustments = realign_weights( - config.profile, bsd, blk, ewb, workscb, + config.profile, bsd, blk, workscb, workscb.weights, nullptr); // Post-realign test - float errorval = compute_symbolic_block_difference(config, bsd, workscb, blk, ewb); + float errorval = compute_symbolic_block_difference(config, bsd, workscb, blk); if (errorval == -ERROR_CALC_DEFAULT) { errorval = -errorval; @@ -590,7 +586,6 @@ static float compress_symbolic_block_for_partition_1plane( * @param config The compressor configuration. * @param bsd The block size information. * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param tune_errorval_threshold The error value threshold. * @param plane2_component The component index for the second plane of weights. * @param[out] scb The symbolic compressed block output. @@ -600,7 +595,6 @@ static float compress_symbolic_block_for_partition_2planes( const astcenc_config& config, const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, float tune_errorval_threshold, unsigned int plane2_component, symbolic_compressed_block& scb, @@ -615,7 +609,7 @@ static float compress_symbolic_block_for_partition_2planes( endpoints_and_weights& ei2 = tmpbuf.ei2; endpoints_and_weights* eix1 = tmpbuf.eix1; endpoints_and_weights* eix2 = tmpbuf.eix2; - compute_ideal_colors_and_weights_2planes(bsd, blk, ewb, plane2_component, ei1, ei2); + compute_ideal_colors_and_weights_2planes(bsd, blk, plane2_component, ei1, ei2); // Compute ideal weights and endpoint colors for every decimation float *dec_weights_ideal_value = tmpbuf.dec_weights_ideal_value; @@ -766,7 +760,7 @@ static float compress_symbolic_block_for_partition_2planes( const auto& pi = bsd.get_partition_info(1, 0); unsigned int candidate_count = compute_ideal_endpoint_formats( - bsd, pi, blk, ewb, epm, qwt_bitcounts, qwt_errors, + bsd, pi, blk, epm, qwt_bitcounts, qwt_errors, config.tune_candidate_limit, partition_format_specifiers, block_mode_index, color_quant_level, color_quant_level_mod); @@ -812,8 +806,8 @@ static float compress_symbolic_block_for_partition_2planes( for (unsigned int l = 0; l < config.tune_refinement_limit; l++) { recompute_ideal_colors_2planes( - blk, ewb, bsd, di, - weight_quant_mode, workscb.weights, workscb.weights + WEIGHTS_PLANE2_OFFSET, + blk, bsd, di, weight_quant_mode, + workscb.weights, workscb.weights + WEIGHTS_PLANE2_OFFSET, epm, rgbs_color, rgbo_color, plane2_component); // Quantize the chosen color @@ -842,7 +836,7 @@ static float compress_symbolic_block_for_partition_2planes( // Pre-realign test if (l == 0) { - float errorval = compute_symbolic_block_difference(config, bsd, workscb, blk, ewb); + float errorval = compute_symbolic_block_difference(config, bsd, workscb, blk); if (errorval == -ERROR_CALC_DEFAULT) { errorval = -errorval; @@ -880,11 +874,11 @@ static float compress_symbolic_block_for_partition_2planes( // Perform a final pass over the weights to try to improve them bool adjustments = realign_weights( - config.profile, bsd, blk, ewb, workscb, + config.profile, bsd, blk, workscb, workscb.weights, workscb.weights + WEIGHTS_PLANE2_OFFSET); // Post-realign test - float errorval = compute_symbolic_block_difference(config, bsd, workscb, blk, ewb); + float errorval = compute_symbolic_block_difference(config, bsd, workscb, blk); if (errorval == -ERROR_CALC_DEFAULT) { errorval = -errorval; @@ -928,260 +922,17 @@ static float compress_symbolic_block_for_partition_2planes( return best_errorval_in_mode; } -/** - * @brief Create a per-texel expansion of the error weights for deblocking. - * - * Deblockign works by assigning a higher error weight to blocks the closer they are the edge of the - * block. The encourages the compressor to keep the periphery colors more accurate, which can help - * reduce block artifacts when compressing gradients. - * - * @param[in,out] ctx The context containing both deblog memory and config. - */ -void expand_deblock_weights( - astcenc_context& ctx -) { - unsigned int xdim = ctx.config.block_x; - unsigned int ydim = ctx.config.block_y; - unsigned int zdim = ctx.config.block_z; - - float centerpos_x = static_cast(xdim - 1) * 0.5f; - float centerpos_y = static_cast(ydim - 1) * 0.5f; - float centerpos_z = static_cast(zdim - 1) * 0.5f; - float *bef = ctx.deblock_weights; - - for (unsigned int z = 0; z < zdim; z++) - { - for (unsigned int y = 0; y < ydim; y++) - { - for (unsigned int x = 0; x < xdim; x++) - { - float xdif = (static_cast(x) - centerpos_x) / static_cast(xdim); - float ydif = (static_cast(y) - centerpos_y) / static_cast(ydim); - float zdif = (static_cast(z) - centerpos_z) / static_cast(zdim); - - float wdif = 0.36f; - float dist = astc::sqrt(xdif * xdif + ydif * ydif + zdif * zdif + wdif * wdif); - *bef = astc::pow(dist, ctx.config.b_deblock_weight); - bef++; - } - } - } -} - -/** - * @brief Create a per-texel and per-channel expansion of the error weights. - * - * This approach creates relatively large error block tables, but it allows a very flexible level of - * control over how specific texels and channels are prioritized by the compressor. - * - * @param ctx The compressor context and configuration. - * @param image The input image information. - * @param bsd The block size information. - * @param blk The image block color data to compress. - * @param[out] ewb The image block weighted error data. - * - * @return Return the total error weight sum for all texels and channels. - */ -static float prepare_error_weight_block( - const astcenc_context& ctx, - const astcenc_image& image, - const block_size_descriptor& bsd, - const image_block& blk, - error_weight_block& ewb -) { - unsigned int idx = 0; - bool any_mean_stdev_weight = - ctx.config.v_rgb_mean != 0.0f || ctx.config.v_rgb_stdev != 0.0f || \ - ctx.config.v_a_mean != 0.0f || ctx.config.v_a_stdev != 0.0f; - - vfloat4 color_weights(ctx.config.cw_r_weight, - ctx.config.cw_g_weight, - ctx.config.cw_b_weight, - ctx.config.cw_a_weight); - - // This works because HDR is imposed globally at compression time - unsigned int rgb_lns = blk.rgb_lns[0]; - unsigned int a_lns = blk.alpha_lns[0]; - vint4 use_lns(rgb_lns, rgb_lns, rgb_lns, a_lns); - vmask4 lns_mask = use_lns != vint4::zero(); - - promise(bsd.xdim > 0); - promise(bsd.ydim > 0); - promise(bsd.zdim > 0); - - for (unsigned int z = 0; z < bsd.zdim; z++) - { - for (unsigned int y = 0; y < bsd.ydim; y++) - { - for (unsigned int x = 0; x < bsd.xdim; x++) - { - unsigned int xpos = x + blk.xpos; - unsigned int ypos = y + blk.ypos; - unsigned int zpos = z + blk.zpos; - - if (xpos >= image.dim_x || ypos >= image.dim_y || zpos >= image.dim_z) - { - ewb.error_weights[idx] = vfloat4(1e-11f); - } - else - { - vfloat4 derv(65535.0f); - - // Compute derivative if we have any use of LNS - if (any(lns_mask)) - { - vfloat4 data = blk.texel(idx); - vint4 datai = lns_to_sf16(float_to_int(data)); - - vfloat4 dataf = float16_to_float(datai); - dataf = max(dataf, 6e-5f); - - vfloat4 data_lns1 = dataf * 1.05f; - data_lns1 = float_to_lns(data_lns1); - - vfloat4 data_lns2 = dataf; - data_lns2 = float_to_lns(data_lns2); - - vfloat4 divisor_lns = dataf * 0.05f; - - // Clamp derivatives between 1/32 and 2^25 - float lo = 1.0f / 32.0f; - float hi = 33554432.0f; - vfloat4 derv_lns = clamp(lo, hi, (data_lns1 - data_lns2) / divisor_lns); - derv = select(derv, derv_lns, lns_mask); - } - - // Compute error weight - vfloat4 error_weight(ctx.config.v_rgb_base, - ctx.config.v_rgb_base, - ctx.config.v_rgb_base, - ctx.config.v_a_base); - - unsigned int ydt = image.dim_x; - unsigned int zdt = image.dim_x * image.dim_y; - - if (any_mean_stdev_weight) - { - vfloat4 avg = ctx.input_averages[zpos * zdt + ypos * ydt + xpos]; - avg = max(avg, 6e-5f); - avg = avg * avg; - - vfloat4 variance = ctx.input_variances[zpos * zdt + ypos * ydt + xpos]; - variance = variance * variance; - - float favg = hadd_rgb_s(avg) * (1.0f / 3.0f); - float fvar = hadd_rgb_s(variance) * (1.0f / 3.0f); - - float mixing = ctx.config.v_rgba_mean_stdev_mix; - avg.set_lane<0>(favg * mixing + avg.lane<0>() * (1.0f - mixing)); - avg.set_lane<1>(favg * mixing + avg.lane<1>() * (1.0f - mixing)); - avg.set_lane<2>(favg * mixing + avg.lane<2>() * (1.0f - mixing)); - - variance.set_lane<0>(fvar * mixing + variance.lane<0>() * (1.0f - mixing)); - variance.set_lane<1>(fvar * mixing + variance.lane<1>() * (1.0f - mixing)); - variance.set_lane<2>(fvar * mixing + variance.lane<2>() * (1.0f - mixing)); - - vfloat4 stdev = sqrt(max(variance, 0.0f)); - - vfloat4 scalea(ctx.config.v_rgb_mean, ctx.config.v_rgb_mean, ctx.config.v_rgb_mean, ctx.config.v_a_mean); - avg = avg * scalea; - - vfloat4 scales(ctx.config.v_rgb_stdev, ctx.config.v_rgb_stdev, ctx.config.v_rgb_stdev, ctx.config.v_a_stdev); - stdev = stdev * scales; - - error_weight = error_weight + avg + stdev; - error_weight = 1.0f / error_weight; - } - - if (ctx.config.flags & ASTCENC_FLG_USE_ALPHA_WEIGHT) - { - float alpha_scale; - if (ctx.config.a_scale_radius != 0) - { - alpha_scale = ctx.input_alpha_averages[zpos * zdt + ypos * ydt + xpos]; - } - else - { - alpha_scale = blk.data_a[idx] * (1.0f / 65535.0f); - } - - alpha_scale = astc::max(alpha_scale, 0.0001f); - - alpha_scale *= alpha_scale; - error_weight.set_lane<0>(error_weight.lane<0>() * alpha_scale); - error_weight.set_lane<1>(error_weight.lane<1>() * alpha_scale); - error_weight.set_lane<2>(error_weight.lane<2>() * alpha_scale); - } - - error_weight = error_weight * color_weights; - error_weight = error_weight * ctx.deblock_weights[idx]; - - // When we loaded the block to begin with, we applied a transfer function and - // computed the derivative of the transfer function. However, the error-weight - // computation so far is based on the original color values, not the - // transfer-function values. As such, we must multiply the error weights by the - // derivative of the inverse of the transfer function, which is equivalent to - // dividing by the derivative of the transfer function. - - error_weight = error_weight / (derv * derv * 1e-10f); - ewb.error_weights[idx] = error_weight; - } - idx++; - } - } - } - - // Small bias to avoid divide by zeros and NaN propagation later - vfloat4 texel_weight_sum(1e-17f); - vfloat4 error_weight_sum(1e-17f); - - int texels_per_block = bsd.texel_count; - for (int i = 0; i < texels_per_block; i++) - { - texel_weight_sum += ewb.error_weights[i] * blk.texel(i); - error_weight_sum += ewb.error_weights[i]; - - float wr = ewb.error_weights[i].lane<0>(); - float wg = ewb.error_weights[i].lane<1>(); - float wb = ewb.error_weights[i].lane<2>(); - float wa = ewb.error_weights[i].lane<3>(); - - ewb.texel_weight_r[i] = wr; - ewb.texel_weight_g[i] = wg; - ewb.texel_weight_b[i] = wb; - ewb.texel_weight_a[i] = wa; - - ewb.texel_weight_rg[i] = (wr + wg) * 0.5f; - ewb.texel_weight_rb[i] = (wr + wb) * 0.5f; - ewb.texel_weight_gb[i] = (wg + wb) * 0.5f; - - ewb.texel_weight_gba[i] = (wg + wb + wa) * 0.333333f; - ewb.texel_weight_rba[i] = (wr + wb + wa) * 0.333333f; - ewb.texel_weight_rga[i] = (wr + wg + wa) * 0.333333f; - ewb.texel_weight_rgb[i] = (wr + wg + wb) * 0.333333f; - - ewb.texel_weight[i] = (wr + wg + wb + wa) * 0.25f; - } - - ewb.block_error_weighted_rgba_sum = texel_weight_sum; - ewb.block_error_weight_sum = error_weight_sum; - - return hadd_s(error_weight_sum); -} - /** * @brief Determine the lowest cross-channel correlation factor. * * @param texels_per_block The number of texels in a block. * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * * @return Return the lowest correlation factor. */ static float prepare_block_statistics( int texels_per_block, - const image_block& blk, - const error_weight_block& ewb + const image_block& blk ) { // Compute covariance matrix, as a collection of 10 scalars that form the upper-triangular row // of the matrix. The matrix is symmetric, so this is all we need for this use case. @@ -1205,7 +956,7 @@ static float prepare_block_statistics( promise(texels_per_block > 0); for (int i = 0; i < texels_per_block; i++) { - float weight = ewb.texel_weight[i]; + float weight = hadd_s(blk.channel_weight) / 4.0f; assert(weight >= 0.0f); weight_sum += weight; @@ -1295,14 +1046,12 @@ static float prepare_block_statistics( /* See header for documentation. */ void compress_block( const astcenc_context& ctx, - const astcenc_image& input_image, const image_block& blk, physical_compressed_block& pcb, compression_working_buffers& tmpbuf) { astcenc_profile decode_mode = ctx.config.profile; symbolic_compressed_block scb; - error_weight_block& ewb = tmpbuf.ewb; const block_size_descriptor* bsd = ctx.bsd; float lowest_correl; @@ -1332,13 +1081,13 @@ void compress_block( #if defined(ASTCENC_DIAGNOSTICS) // Do this early in diagnostic builds so we can dump uniform metrics // for every block. Do it later in release builds to avoid redundant work! - float error_weight_sum = prepare_error_weight_block(ctx, input_image, *bsd, blk, ewb); + float error_weight_sum = hadd_s(blk.channel_weight) * bsd->texel_count; float error_threshold = ctx.config.tune_db_limit * error_weight_sum * block_is_l_scale * block_is_la_scale; - lowest_correl = prepare_block_statistics(bsd->texel_count, blk, ewb); + lowest_correl = prepare_block_statistics(bsd->texel_count, blk); trace_add_data("lowest_correl", lowest_correl); trace_add_data("tune_error_threshold", error_threshold); #endif @@ -1376,7 +1125,7 @@ void compress_block( } #if !defined(ASTCENC_DIAGNOSTICS) - float error_weight_sum = prepare_error_weight_block(ctx, input_image, *bsd, blk, ewb); + float error_weight_sum = hadd_s(blk.channel_weight) * bsd->texel_count; float error_threshold = ctx.config.tune_db_limit * error_weight_sum * block_is_l_scale @@ -1427,7 +1176,7 @@ void compress_block( trace_add_data("search_mode", i); float errorval = compress_symbolic_block_for_partition_1plane( - ctx.config, *bsd, blk, ewb, i == 0, + ctx.config, *bsd, blk, i == 0, error_threshold * errorval_mult[i] * errorval_overshoot, 1, 0, scb, tmpbuf); @@ -1440,7 +1189,7 @@ void compress_block( } #if !defined(ASTCENC_DIAGNOSTICS) - lowest_correl = prepare_block_statistics(bsd->texel_count, blk, ewb); + lowest_correl = prepare_block_statistics(bsd->texel_count, blk); #endif block_skip_two_plane = lowest_correl > ctx.config.tune_2_plane_early_out_limit_correlation; @@ -1473,8 +1222,7 @@ void compress_block( } float errorval = compress_symbolic_block_for_partition_2planes( - ctx.config, *bsd, blk, ewb, - error_threshold * errorval_overshoot, + ctx.config, *bsd, blk, error_threshold * errorval_overshoot, i, scb, tmpbuf); // If attempting two planes is much worse than the best one plane result @@ -1494,25 +1242,24 @@ void compress_block( // Find best blocks for 2, 3 and 4 partitions for (int partition_count = 2; partition_count <= max_partitions; partition_count++) { - unsigned int partition_indices_1plane[2] { 0, 0 }; + unsigned int partition_indices[2] { 0 }; - find_best_partition_candidates(*bsd, blk, ewb, partition_count, + find_best_partition_candidates(*bsd, blk, partition_count, ctx.config.tune_partition_index_limit, - partition_indices_1plane[0], - partition_indices_1plane[1]); + partition_indices); - for (int i = 0; i < 2; i++) + for (unsigned int i = 0; i < 2; i++) { TRACE_NODE(node1, "pass"); trace_add_data("partition_count", partition_count); - trace_add_data("partition_index", partition_indices_1plane[i]); + trace_add_data("partition_index", partition_indices[i]); trace_add_data("plane_count", 1); trace_add_data("search_mode", i); float errorval = compress_symbolic_block_for_partition_1plane( - ctx.config, *bsd, blk, ewb, false, + ctx.config, *bsd, blk, false, error_threshold * errorval_overshoot, - partition_count, partition_indices_1plane[i], + partition_count, partition_indices[i], scb, tmpbuf); best_errorvals_for_pcount[partition_count - 1] = astc::min(best_errorvals_for_pcount[partition_count - 1], errorval); @@ -1541,7 +1288,7 @@ void compress_block( // TODO: Do something more sensible here, such as average color block if (scb.block_type == SYM_BTYPE_ERROR) { -#if !defined(NDEBUG) +#if defined(ASTCENC_DIAGNOSTICS) static bool printed_once = false; if (!printed_once) { diff --git a/lib/astc-encoder/Source/astcenc_compute_variance.cpp b/lib/astc-encoder/Source/astcenc_compute_variance.cpp index 61c1481073..41757fc5f1 100644 --- a/lib/astc-encoder/Source/astcenc_compute_variance.cpp +++ b/lib/astc-encoder/Source/astcenc_compute_variance.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -100,7 +100,7 @@ static void brent_kung_prefix_sum( } /** - * @brief Compute averages and variances for a pixel region. + * @brief Compute averages for a pixel region. * * The routine computes both in a single pass, using a summed-area table to decouple the running * time from the averaging/variance kernel size. @@ -110,12 +110,10 @@ static void brent_kung_prefix_sum( */ static void compute_pixel_region_variance( astcenc_context& ctx, - const pixel_region_variance_args& arg + const pixel_region_args& arg ) { // Unpack the memory structure into local variables const astcenc_image* img = arg.img; - float rgb_power = arg.rgb_power; - float alpha_power = arg.alpha_power; astcenc_swizzle swz = arg.swz; bool have_z = arg.have_z; @@ -127,16 +125,13 @@ static void compute_pixel_region_variance( int offset_y = arg.offset_y; int offset_z = arg.offset_z; - int avg_var_kernel_radius = arg.avg_var_kernel_radius; int alpha_kernel_radius = arg.alpha_kernel_radius; float* input_alpha_averages = ctx.input_alpha_averages; - vfloat4* input_averages = ctx.input_averages; - vfloat4* input_variances = ctx.input_variances; vfloat4* work_memory = arg.work_memory; // Compute memory sizes and dimensions that we need - int kernel_radius = astc::max(avg_var_kernel_radius, alpha_kernel_radius); + int kernel_radius = alpha_kernel_radius; int kerneldim = 2 * kernel_radius + 1; int kernel_radius_xy = kernel_radius; int kernel_radius_z = have_z ? kernel_radius : 0; @@ -147,7 +142,6 @@ static void compute_pixel_region_variance( int sizeprod = padsize_x * padsize_y * padsize_z; int zd_start = have_z ? 1 : 0; - int are_powers_1 = (rgb_power == 1.0f) && (alpha_power == 1.0f); vfloat4 *varbuf1 = work_memory; vfloat4 *varbuf2 = work_memory + sizeprod; @@ -203,12 +197,6 @@ static void compute_pixel_region_variance( b * (1.0f / 255.0f), a * (1.0f / 255.0f)); - if (!are_powers_1) - { - vfloat4 exp(rgb_power, rgb_power, rgb_power, alpha_power); - d = pow(max(d, 1e-6f), exp); - } - VARBUF1(z, y, x) = d; VARBUF2(z, y, x) = d * d; } @@ -246,12 +234,6 @@ static void compute_pixel_region_variance( vint4 di(data[swz.r], data[swz.g], data[swz.b], data[swz.a]); vfloat4 d = float16_to_float(di); - if (!are_powers_1) - { - vfloat4 exp(rgb_power, rgb_power, rgb_power, alpha_power); - d = pow(max(d, 1e-6f), exp); - } - VARBUF1(z, y, x) = d; VARBUF2(z, y, x) = d * d; } @@ -295,12 +277,6 @@ static void compute_pixel_region_variance( vfloat4 d(r, g, b, a); - if (!are_powers_1) - { - vfloat4 exp(rgb_power, rgb_power, rgb_power, alpha_power); - d = pow(max(d, 1e-6f), exp); - } - VARBUF1(z, y, x) = d; VARBUF2(z, y, x) = d * d; } @@ -369,37 +345,20 @@ static void compute_pixel_region_variance( } } - int avg_var_kdim = 2 * avg_var_kernel_radius + 1; int alpha_kdim = 2 * alpha_kernel_radius + 1; // Compute a few constants used in the variance-calculation. - float avg_var_samples; float alpha_rsamples; - float mul1; if (have_z) { - avg_var_samples = (float)(avg_var_kdim * avg_var_kdim * avg_var_kdim); alpha_rsamples = 1.0f / (float)(alpha_kdim * alpha_kdim * alpha_kdim); } else { - avg_var_samples = (float)(avg_var_kdim * avg_var_kdim); alpha_rsamples = 1.0f / (float)(alpha_kdim * alpha_kdim); } - float avg_var_rsamples = 1.0f / avg_var_samples; - if (avg_var_samples == 1) - { - mul1 = 1.0f; - } - else - { - mul1 = 1.0f / (float)(avg_var_samples * (avg_var_samples - 1)); - } - - float mul2 = avg_var_samples * mul1; - // Use the summed-area tables to compute variance for each neighborhood if (have_z) { @@ -436,33 +395,6 @@ static void compute_pixel_region_variance( int out_index = z_dst * zdt + y_dst * ydt + x_dst; input_alpha_averages[out_index] = (vasum * alpha_rsamples); - - // Summed-area table lookups for RGBA average and variance - vfloat4 v1sum = ( VARBUF1(z_high, y_low, x_low) - - VARBUF1(z_high, y_low, x_high) - - VARBUF1(z_high, y_high, x_low) - + VARBUF1(z_high, y_high, x_high)) - - ( VARBUF1(z_low, y_low, x_low) - - VARBUF1(z_low, y_low, x_high) - - VARBUF1(z_low, y_high, x_low) - + VARBUF1(z_low, y_high, x_high)); - - vfloat4 v2sum = ( VARBUF2(z_high, y_low, x_low) - - VARBUF2(z_high, y_low, x_high) - - VARBUF2(z_high, y_high, x_low) - + VARBUF2(z_high, y_high, x_high)) - - ( VARBUF2(z_low, y_low, x_low) - - VARBUF2(z_low, y_low, x_high) - - VARBUF2(z_low, y_high, x_low) - + VARBUF2(z_low, y_high, x_high)); - - // Compute and emit the average - vfloat4 avg = v1sum * avg_var_rsamples; - input_averages[out_index] = avg; - - // Compute and emit the actual variance - vfloat4 variance = mul2 * v2sum - mul1 * (v1sum * v1sum); - input_variances[out_index] = variance; } } } @@ -491,35 +423,16 @@ static void compute_pixel_region_variance( int out_index = y_dst * ydt + x_dst; input_alpha_averages[out_index] = (vasum * alpha_rsamples); - - // summed-area table lookups for RGBA average and variance - vfloat4 v1sum = VARBUF1(0, y_low, x_low) - - VARBUF1(0, y_low, x_high) - - VARBUF1(0, y_high, x_low) - + VARBUF1(0, y_high, x_high); - - vfloat4 v2sum = VARBUF2(0, y_low, x_low) - - VARBUF2(0, y_low, x_high) - - VARBUF2(0, y_high, x_low) - + VARBUF2(0, y_high, x_high); - - // Compute and emit the average - vfloat4 avg = v1sum * avg_var_rsamples; - input_averages[out_index] = avg; - - // Compute and emit the actual variance - vfloat4 variance = mul2 * v2sum - mul1 * (v1sum * v1sum); - input_variances[out_index] = variance; } } } } -void compute_averages_and_variances( +void compute_averages( astcenc_context& ctx, - const avg_var_args &ag + const avg_args &ag ) { - pixel_region_variance_args arg = ag.arg; + pixel_region_args arg = ag.arg; arg.work_memory = new vfloat4[ag.work_memory_size]; int size_x = ag.img_size_x; @@ -535,7 +448,7 @@ void compute_averages_and_variances( while (true) { unsigned int count; - unsigned int base = ctx.manage_avg_var.get_task_assignment(16, count); + unsigned int base = ctx.manage_avg.get_task_assignment(16, count); if (!count) { break; @@ -560,28 +473,25 @@ void compute_averages_and_variances( } } - ctx.manage_avg_var.complete_task_assignment(count); + ctx.manage_avg.complete_task_assignment(count); } delete[] arg.work_memory; } /* See header for documentation. */ -unsigned int init_compute_averages_and_variances( +unsigned int init_compute_averages( const astcenc_image& img, - float rgb_power, - float alpha_power, - unsigned int avg_var_kernel_radius, unsigned int alpha_kernel_radius, const astcenc_swizzle& swz, - avg_var_args& ag + avg_args& ag ) { unsigned int size_x = img.dim_x; unsigned int size_y = img.dim_y; unsigned int size_z = img.dim_z; // Compute maximum block size and from that the working memory buffer size - unsigned int kernel_radius = astc::max(avg_var_kernel_radius, alpha_kernel_radius); + unsigned int kernel_radius = alpha_kernel_radius; unsigned int kerneldim = 2 * kernel_radius + 1; bool have_z = (size_z > 1); @@ -591,7 +501,7 @@ unsigned int init_compute_averages_and_variances( unsigned int max_padsize_xy = max_blk_size_xy + kerneldim; unsigned int max_padsize_z = max_blk_size_z + (have_z ? kerneldim : 0); - // Perform block-wise averages-and-variances calculations across the image + // Perform block-wise averages calculations across the image // Initialize fields which are not populated until later ag.arg.size_x = 0; ag.arg.size_y = 0; @@ -602,11 +512,8 @@ unsigned int init_compute_averages_and_variances( ag.arg.work_memory = nullptr; ag.arg.img = &img; - ag.arg.rgb_power = rgb_power; - ag.arg.alpha_power = alpha_power; ag.arg.swz = swz; ag.arg.have_z = have_z; - ag.arg.avg_var_kernel_radius = avg_var_kernel_radius; ag.arg.alpha_kernel_radius = alpha_kernel_radius; ag.img_size_x = size_x; diff --git a/lib/astc-encoder/Source/astcenc_decompress_symbolic.cpp b/lib/astc-encoder/Source/astcenc_decompress_symbolic.cpp index 3649a66dd2..478c1cf1c8 100644 --- a/lib/astc-encoder/Source/astcenc_decompress_symbolic.cpp +++ b/lib/astc-encoder/Source/astcenc_decompress_symbolic.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -186,6 +186,7 @@ void decompress_symbolic_block( blk.zpos = zpos; blk.data_min = vfloat4::zero(); + blk.data_mean = vfloat4::zero(); blk.data_max = vfloat4::zero(); blk.grayscale = false; @@ -321,8 +322,7 @@ float compute_symbolic_block_difference( const astcenc_config& config, const block_size_descriptor& bsd, const symbolic_compressed_block& scb, - const image_block& blk, - const error_weight_block& ewb + const image_block& blk ) { // If we detected an error-block, blow up immediately. if (scb.block_type == SYM_BTYPE_ERROR) @@ -415,7 +415,7 @@ float compute_symbolic_block_difference( error = min(abs(error), 1e15f); error = error * error; - float metric = dot_s(error, ewb.error_weights[tix]); + float metric = dot_s(error, blk.channel_weight); summa += astc::min(metric, ERROR_CALC_DEFAULT); } } diff --git a/lib/astc-encoder/Source/astcenc_entry.cpp b/lib/astc-encoder/Source/astcenc_entry.cpp index b1ef6b8341..b77857c0bd 100644 --- a/lib/astc-encoder/Source/astcenc_entry.cpp +++ b/lib/astc-encoder/Source/astcenc_entry.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -411,18 +411,6 @@ static astcenc_error validate_config( } #endif - config.v_rgba_mean_stdev_mix = astc::max(config.v_rgba_mean_stdev_mix, 0.0f); - config.v_rgb_power = astc::max(config.v_rgb_power, 0.0f); - config.v_rgb_base = astc::max(config.v_rgb_base, 0.0f); - config.v_rgb_mean = astc::max(config.v_rgb_mean, 0.0f); - config.v_rgb_stdev = astc::max(config.v_rgb_stdev, 0.0f); - config.v_a_power = astc::max(config.v_a_power, 0.0f); - config.v_a_base = astc::max(config.v_a_base, 0.0f); - config.v_a_mean = astc::max(config.v_a_mean, 0.0f); - config.v_a_stdev = astc::max(config.v_a_stdev, 0.0f); - - config.b_deblock_weight = astc::max(config.b_deblock_weight, 0.0f); - config.rgbm_m_scale = astc::max(config.rgbm_m_scale, 1.0f); config.tune_partition_count_limit = astc::clamp(config.tune_partition_count_limit, 1u, 4u); @@ -586,9 +574,6 @@ astcenc_error astcenc_config_init( } // Set heuristics to the defaults for each color profile - config.v_rgba_radius = 0; - config.v_rgba_mean_stdev_mix = 0.0f; - config.cw_r_weight = 1.0f; config.cw_g_weight = 1.0f; config.cw_b_weight = 1.0f; @@ -606,40 +591,9 @@ astcenc_error astcenc_config_init( { case ASTCENC_PRF_LDR: case ASTCENC_PRF_LDR_SRGB: - config.v_rgb_power = 1.0f; - config.v_rgb_base = 1.0f; - config.v_rgb_mean = 0.0f; - config.v_rgb_stdev = 0.0f; - - config.v_a_power = 1.0f; - config.v_a_base = 1.0f; - config.v_a_mean = 0.0f; - config.v_a_stdev = 0.0f; break; case ASTCENC_PRF_HDR_RGB_LDR_A: - config.v_rgb_power = 0.75f; - config.v_rgb_base = 0.0f; - config.v_rgb_mean = 1.0f; - config.v_rgb_stdev = 0.0f; - - config.v_a_power = 1.0f; - config.v_a_base = 0.05f; - config.v_a_mean = 0.0f; - config.v_a_stdev = 0.0f; - - config.tune_db_limit = 999.0f; - break; case ASTCENC_PRF_HDR: - config.v_rgb_power = 0.75f; - config.v_rgb_base = 0.0f; - config.v_rgb_mean = 1.0f; - config.v_rgb_stdev = 0.0f; - - config.v_a_power = 0.75f; - config.v_a_base = 0.0f; - config.v_a_mean = 1.0f; - config.v_a_stdev = 0.0f; - config.tune_db_limit = 999.0f; break; default: @@ -663,27 +617,13 @@ astcenc_error astcenc_config_init( // Normals are prone to blocking artifacts on smooth curves // so force compressor to try harder here ... - config.b_deblock_weight = 1.8f; config.tune_db_limit *= 1.03f; - - if (flags & ASTCENC_FLG_USE_PERCEPTUAL) - { - config.v_rgba_radius = 3; - config.v_rgba_mean_stdev_mix = 0.0f; - config.v_rgb_mean = 0.0f; - config.v_rgb_stdev = 50.0f; - config.v_a_mean = 0.0f; - config.v_a_stdev = 50.0f; - } } else if (flags & ASTCENC_FLG_MAP_MASK) { - config.v_rgba_radius = 3; - config.v_rgba_mean_stdev_mix = 0.03f; - config.v_rgb_mean = 0.0f; - config.v_rgb_stdev = 25.0f; - config.v_a_mean = 0.0f; - config.v_a_stdev = 25.0f; + // Masks are prone to blocking artifacts on mask edges + // so force compressor to try harder here ... + config.tune_db_limit *= 1.03f; } else if (flags & ASTCENC_FLG_MAP_RGBM) { @@ -756,8 +696,6 @@ astcenc_error astcenc_context_alloc( ctx->working_buffers = nullptr; // These are allocated per-compress, as they depend on image size - ctx->input_averages = nullptr; - ctx->input_variances = nullptr; ctx->input_alpha_averages = nullptr; // Copy the config first and validate the copy (we may modify it) @@ -778,9 +716,6 @@ astcenc_error astcenc_context_alloc( // Do setup only needed by compression if (!(status & ASTCENC_FLG_DECOMPRESS_ONLY)) { - // Expand deblock supression into a weight scale per texel in the block - expand_deblock_weights(*ctx); - // Turn a dB limit into a per-texel error for faster use later if ((ctx->config.profile == ASTCENC_PRF_LDR) || (ctx->config.profile == ASTCENC_PRF_LDR_SRGB)) { @@ -951,14 +886,21 @@ static void compress_image( { blk.origin_texel = vfloat4::zero(); blk.data_min = vfloat4::zero(); - blk.data_max = blk.data_min; - blk.grayscale = false; + blk.data_mean = vfloat4::zero(); + blk.data_max = vfloat4::zero(); + blk.grayscale = true; } + // Populate the block channel weights + blk.channel_weight = vfloat4(ctx.config.cw_r_weight, + ctx.config.cw_g_weight, + ctx.config.cw_b_weight, + ctx.config.cw_a_weight); + int offset = ((z * yblocks + y) * xblocks + x) * 16; uint8_t *bp = buffer + offset; physical_compressed_block* pcb = reinterpret_cast(bp); - compress_block(ctx, image, blk, *pcb, temp_buffers); + compress_block(ctx, blk, *pcb, temp_buffers); } ctx.manage_compress.complete_task_assignment(count); @@ -1025,34 +967,29 @@ astcenc_error astcenc_compress_image( astcenc_compress_reset(ctx); } - if (ctx->config.v_rgb_mean != 0.0f || ctx->config.v_rgb_stdev != 0.0f || - ctx->config.v_a_mean != 0.0f || ctx->config.v_a_stdev != 0.0f || - ctx->config.a_scale_radius != 0) + if (ctx->config.a_scale_radius != 0) { // First thread to enter will do setup, other threads will subsequently // enter the critical section but simply skip over the initialization - auto init_avg_var = [ctx, &image, swizzle]() { + auto init_avg = [ctx, &image, swizzle]() { // Perform memory allocations for the destination buffers size_t texel_count = image.dim_x * image.dim_y * image.dim_z; - ctx->input_averages = new vfloat4[texel_count]; - ctx->input_variances = new vfloat4[texel_count]; ctx->input_alpha_averages = new float[texel_count]; - return init_compute_averages_and_variances( - image, ctx->config.v_rgb_power, ctx->config.v_a_power, - ctx->config.v_rgba_radius, ctx->config.a_scale_radius, *swizzle, - ctx->avg_var_preprocess_args); + return init_compute_averages( + image, ctx->config.a_scale_radius, *swizzle, + ctx->avg_preprocess_args); }; // Only the first thread actually runs the initializer - ctx->manage_avg_var.init(init_avg_var); + ctx->manage_avg.init(init_avg); // All threads will enter this function and dynamically grab work - compute_averages_and_variances(*ctx, ctx->avg_var_preprocess_args); + compute_averages(*ctx, ctx->avg_preprocess_args); } - // Wait for compute_averages_and_variances to complete before compressing - ctx->manage_avg_var.wait(); + // Wait for compute_averages to complete before compressing + ctx->manage_avg.wait(); compress_image(*ctx, thread_index, image, *swizzle, data_out); @@ -1060,12 +997,6 @@ astcenc_error astcenc_compress_image( ctx->manage_compress.wait(); auto term_compress = [ctx]() { - delete[] ctx->input_averages; - ctx->input_averages = nullptr; - - delete[] ctx->input_variances; - ctx->input_variances = nullptr; - delete[] ctx->input_alpha_averages; ctx->input_alpha_averages = nullptr; }; @@ -1090,7 +1021,7 @@ astcenc_error astcenc_compress_reset( return ASTCENC_ERR_BAD_CONTEXT; } - ctx->manage_avg_var.reset(); + ctx->manage_avg.reset(); ctx->manage_compress.reset(); return ASTCENC_SUCCESS; #endif diff --git a/lib/astc-encoder/Source/astcenc_find_best_partitioning.cpp b/lib/astc-encoder/Source/astcenc_find_best_partitioning.cpp index 355a18e804..0b648b9d66 100644 --- a/lib/astc-encoder/Source/astcenc_find_best_partitioning.cpp +++ b/lib/astc-encoder/Source/astcenc_find_best_partitioning.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -52,14 +52,12 @@ * @brief Pick some initital kmeans cluster centers. * * @param blk The image block color data to compress. - * @param ewb The image error weight block. * @param texel_count The number of texels in the block. * @param partition_count The number of partitions in the block. * @param[out] cluster_centers The initital partition cluster center colors. */ static void kmeans_init( const image_block& blk, - const error_weight_block& ewb, unsigned int texel_count, unsigned int partition_count, vfloat4 cluster_centers[BLOCK_MAX_PARTITIONS] @@ -82,8 +80,7 @@ static void kmeans_init( { vfloat4 color = blk.texel(i); vfloat4 diff = color - center_color; - diff = diff * ewb.error_weights[i]; - float distance = dot_s(diff, diff); + float distance = dot_s(diff * diff, blk.channel_weight); distance_sum += distance; distances[i] = distance; } @@ -128,8 +125,7 @@ static void kmeans_init( { vfloat4 color = blk.texel(i); vfloat4 diff = color - center_color; - diff = diff * ewb.error_weights[i]; - float distance = dot_s(diff, diff); + float distance = dot_s(diff * diff, blk.channel_weight); distance = astc::min(distance, distances[i]); distance_sum += distance; distances[i] = distance; @@ -141,7 +137,6 @@ static void kmeans_init( * @brief Assign texels to clusters, based on a set of chosen center points. * * @param blk The image block color data to compress. - * @param ewb The image error weight block. * @param texel_count The number of texels in the block. * @param partition_count The number of partitions in the block. * @param cluster_centers The partition cluster center colors. @@ -149,7 +144,6 @@ static void kmeans_init( */ static void kmeans_assign( const image_block& blk, - const error_weight_block& ewb, unsigned int texel_count, unsigned int partition_count, const vfloat4 cluster_centers[BLOCK_MAX_PARTITIONS], @@ -170,8 +164,7 @@ static void kmeans_assign( for (unsigned int j = 0; j < partition_count; j++) { vfloat4 diff = color - cluster_centers[j]; - diff = diff * ewb.error_weights[i]; - float distance = dot_s(diff, diff); + float distance = dot_s(diff * diff, blk.channel_weight); if (distance < best_distance) { best_distance = distance; @@ -431,14 +424,12 @@ static void get_partition_ordering_by_mismatch_bits( * * @param bsd The block size information. * @param blk The image block color data to compress. - * @param ewb The image error weight block. * @param partition_count The desired number of partitions in the block. * @param[out] partition_ordering The list of recommended partition indices, in priority order. - */ + */ static void compute_kmeans_partition_ordering( const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, unsigned int partition_count, unsigned int partition_ordering[BLOCK_MAX_PARTITIONINGS] ) { @@ -450,14 +441,14 @@ static void compute_kmeans_partition_ordering( { if (i == 0) { - kmeans_init(blk, ewb, bsd.texel_count, partition_count, cluster_centers); + kmeans_init(blk, bsd.texel_count, partition_count, cluster_centers); } else { kmeans_update(blk, bsd.texel_count, partition_count, cluster_centers, texel_partitions); } - kmeans_assign(blk, ewb, bsd.texel_count, partition_count, cluster_centers, texel_partitions); + kmeans_assign(blk, bsd.texel_count, partition_count, cluster_centers, texel_partitions); } // Construct the block bitmaps of texel assignments to each partition @@ -482,11 +473,9 @@ static void compute_kmeans_partition_ordering( void find_best_partition_candidates( const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, unsigned int partition_count, unsigned int partition_search_limit, - unsigned int& best_partition_uncor, - unsigned int& best_partition_samec + unsigned int best_partitions[2] ) { // Constant used to estimate quantization error for a given partitioning; the optimal value for // this depends on bitrate. These values have been determined empirically. @@ -511,7 +500,7 @@ void find_best_partition_candidates( weight_imprecision_estim = weight_imprecision_estim * weight_imprecision_estim; unsigned int partition_sequence[BLOCK_MAX_PARTITIONINGS]; - compute_kmeans_partition_ordering(bsd, blk, ewb, partition_count, partition_sequence); + compute_kmeans_partition_ordering(bsd, blk, partition_count, partition_sequence); bool uses_alpha = !blk.is_constant_channel(3); @@ -540,7 +529,7 @@ void find_best_partition_candidates( // Compute weighting to give to each component in each partition partition_metrics pms[BLOCK_MAX_PARTITIONS]; - compute_avgs_and_dirs_4_comp(pi, blk, ewb, pms); + compute_avgs_and_dirs_4_comp(pi, blk, pms); line4 uncor_lines[BLOCK_MAX_PARTITIONS]; line4 samec_lines[BLOCK_MAX_PARTITIONS]; @@ -558,16 +547,14 @@ void find_best_partition_candidates( uncor_lines[j].a = pm.avg; uncor_lines[j].b = normalize_safe(pm.dir, unit4()); - uncor_plines[j].amod = (uncor_lines[j].a - uncor_lines[j].b * dot(uncor_lines[j].a, uncor_lines[j].b)) * pm.icolor_scale; - uncor_plines[j].bs = uncor_lines[j].b * pm.color_scale; - uncor_plines[j].bis = uncor_lines[j].b * pm.icolor_scale; + uncor_plines[j].amod = uncor_lines[j].a - uncor_lines[j].b * dot(uncor_lines[j].a, uncor_lines[j].b); + uncor_plines[j].bs = uncor_lines[j].b; samec_lines[j].a = vfloat4::zero(); samec_lines[j].b = normalize_safe(pm.avg, unit4()); samec_plines[j].amod = vfloat4::zero(); - samec_plines[j].bs = samec_lines[j].b * pm.color_scale; - samec_plines[j].bis = samec_lines[j].b * pm.icolor_scale; + samec_plines[j].bs = samec_lines[j].b; } float uncor_error = 0.0f; @@ -575,7 +562,6 @@ void find_best_partition_candidates( compute_error_squared_rgba(pi, blk, - ewb, uncor_plines, samec_plines, uncor_line_lens, @@ -595,20 +581,14 @@ void find_best_partition_candidates( for (unsigned int j = 0; j < partition_count; j++) { - partition_metrics& pm = pms[j]; - float tpp = (float)(pi.partition_texel_count[j]); - - vfloat4 ics = pm.icolor_scale; - vfloat4 error_weights = pm.error_weight * (tpp * weight_imprecision_estim); - - vfloat4 uncor_vector = uncor_lines[j].b * uncor_line_lens[j] * ics; - vfloat4 samec_vector = samec_lines[j].b * samec_line_lens[j] * ics; + float tpp = static_cast(pi.partition_texel_count[j]); + vfloat4 error_weights(tpp * weight_imprecision_estim); - uncor_vector = uncor_vector * uncor_vector; - samec_vector = samec_vector * samec_vector; + vfloat4 uncor_vector = uncor_lines[j].b * uncor_line_lens[j]; + vfloat4 samec_vector = samec_lines[j].b * samec_line_lens[j]; - uncor_error += dot_s(uncor_vector, error_weights); - samec_error += dot_s(samec_vector, error_weights); + uncor_error += dot_s(uncor_vector * uncor_vector, error_weights); + samec_error += dot_s(samec_vector * samec_vector, error_weights); } if (uncor_error < uncor_best_error) @@ -647,7 +627,7 @@ void find_best_partition_candidates( // Compute weighting to give to each component in each partition partition_metrics pms[BLOCK_MAX_PARTITIONS]; - compute_avgs_and_dirs_3_comp_rgb(pi, blk, ewb, pms); + compute_avgs_and_dirs_3_comp_rgb(pi, blk, pms); partition_lines3 plines[BLOCK_MAX_PARTITIONS]; @@ -662,13 +642,11 @@ void find_best_partition_candidates( pl.samec_line.a = vfloat4::zero(); pl.samec_line.b = normalize_safe(pm.avg.swz<0, 1, 2>(), unit3()); - pl.uncor_pline.amod = (pl.uncor_line.a - pl.uncor_line.b * dot3(pl.uncor_line.a, pl.uncor_line.b)) * pm.icolor_scale.swz<0, 1, 2, 3>(); - pl.uncor_pline.bs = (pl.uncor_line.b * pm.color_scale.swz<0, 1, 2, 3>()); - pl.uncor_pline.bis = (pl.uncor_line.b * pm.icolor_scale.swz<0, 1, 2, 3>()); + pl.uncor_pline.amod = pl.uncor_line.a - pl.uncor_line.b * dot3(pl.uncor_line.a, pl.uncor_line.b); + pl.uncor_pline.bs = pl.uncor_line.b; pl.samec_pline.amod = vfloat4::zero(); - pl.samec_pline.bs = (pl.samec_line.b * pm.color_scale.swz<0, 1, 2, 3>()); - pl.samec_pline.bis = (pl.samec_line.b * pm.icolor_scale.swz<0, 1, 2, 3>()); + pl.samec_pline.bs = pl.samec_line.b; } float uncor_error = 0.0f; @@ -676,7 +654,6 @@ void find_best_partition_candidates( compute_error_squared_rgb(pi, blk, - ewb, plines, uncor_error, samec_error); @@ -693,25 +670,16 @@ void find_best_partition_candidates( for (unsigned int j = 0; j < partition_count; j++) { - partition_metrics& pm = pms[j]; partition_lines3& pl = plines[j]; - float tpp = (float)(pi.partition_texel_count[j]); - - vfloat4 ics = pm.icolor_scale; - ics.set_lane<3>(0.0f); - - vfloat4 error_weights = pm.error_weight * (tpp * weight_imprecision_estim); - error_weights.set_lane<3>(0.0f); - - vfloat4 uncor_vector = (pl.uncor_line.b * pl.uncor_line_len) * ics; - vfloat4 samec_vector = (pl.samec_line.b * pl.samec_line_len) * ics; + float tpp = static_cast(pi.partition_texel_count[j]); + vfloat4 error_weights(tpp * weight_imprecision_estim); - uncor_vector = uncor_vector * uncor_vector; - samec_vector = samec_vector * samec_vector; + vfloat4 uncor_vector = pl.uncor_line.b * pl.uncor_line_len; + vfloat4 samec_vector = pl.samec_line.b * pl.samec_line_len; - uncor_error += dot3_s(uncor_vector, error_weights); - samec_error += dot3_s(samec_vector, error_weights); + uncor_error += dot3_s(uncor_vector * uncor_vector, error_weights); + samec_error += dot3_s(samec_vector * samec_vector, error_weights); } if (uncor_error < uncor_best_error) @@ -736,10 +704,24 @@ void find_best_partition_candidates( } } - best_partition_uncor = uncor_best_partition; - - unsigned int index = samec_best_partitions[0] != uncor_best_partition ? 0 : 1; - best_partition_samec = samec_best_partitions[index]; + // Same parition is best for both, so use this first unconditionally + if (uncor_best_partition == samec_best_partitions[0]) + { + best_partitions[0] = samec_best_partitions[0]; + best_partitions[1] = samec_best_partitions[1]; + } + // Uncor is best + else if (uncor_best_error <= samec_best_errors[0]) + { + best_partitions[0] = uncor_best_partition; + best_partitions[1] = samec_best_partitions[0]; + } + // Samec is best + else + { + best_partitions[0] = samec_best_partitions[0]; + best_partitions[1] = uncor_best_partition; + } } #endif diff --git a/lib/astc-encoder/Source/astcenc_ideal_endpoints_and_weights.cpp b/lib/astc-encoder/Source/astcenc_ideal_endpoints_and_weights.cpp index 46783c8e6f..ce2dd8ba1d 100644 --- a/lib/astc-encoder/Source/astcenc_ideal_endpoints_and_weights.cpp +++ b/lib/astc-encoder/Source/astcenc_ideal_endpoints_and_weights.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -31,7 +31,6 @@ * * @param bsd The block size information. * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param pi The partition info for the current trial. * @param[out] ei The computed ideal endpoints and weights. * @param component The color component to compute. @@ -39,7 +38,6 @@ static void compute_ideal_colors_and_weights_1_comp( const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, const partition_info& pi, endpoints_and_weights& ei, unsigned int component @@ -54,78 +52,73 @@ static void compute_ideal_colors_and_weights_1_comp( float lowvalues[BLOCK_MAX_PARTITIONS] { 1e10f, 1e10f, 1e10f, 1e10f }; float highvalues[BLOCK_MAX_PARTITIONS] { -1e10f, -1e10f, -1e10f, -1e10f }; - float partition_error_scale[BLOCK_MAX_PARTITIONS]; - float linelengths_rcp[BLOCK_MAX_PARTITIONS]; + float length_squared[BLOCK_MAX_PARTITIONS]; + float scale[BLOCK_MAX_PARTITIONS]; - const float *error_weights = nullptr; + float error_weight; const float* data_vr = nullptr; assert(component < BLOCK_MAX_COMPONENTS); switch (component) { case 0: - error_weights = ewb.texel_weight_r; + error_weight = blk.channel_weight.lane<0>(); data_vr = blk.data_r; break; case 1: - error_weights = ewb.texel_weight_g; + error_weight = blk.channel_weight.lane<1>(); data_vr = blk.data_g; break; case 2: - error_weights = ewb.texel_weight_b; + error_weight = blk.channel_weight.lane<2>(); data_vr = blk.data_b; break; default: - error_weights = ewb.texel_weight_a; + error_weight = blk.channel_weight.lane<3>(); data_vr = blk.data_a; break; } for (int i = 0; i < texel_count; i++) { - if (error_weights[i] > 1e-10f) - { - float value = data_vr[i]; - int partition = pi.partition_of_texel[i]; + float value = data_vr[i]; + int partition = pi.partition_of_texel[i]; - lowvalues[partition] = astc::min(value, lowvalues[partition]); - highvalues[partition] = astc::max(value, highvalues[partition]); - } + lowvalues[partition] = astc::min(value, lowvalues[partition]); + highvalues[partition] = astc::max(value, highvalues[partition]); } vmask4 sep_mask = vint4::lane_id() == vint4(component); for (int i = 0; i < partition_count; i++) { - float diff = highvalues[i] - lowvalues[i]; - - if (diff < 0) + float length = highvalues[i] - lowvalues[i]; + if (length < 0.0f) { lowvalues[i] = 0.0f; highvalues[i] = 0.0f; } - diff = astc::max(diff, 1e-7f); - - partition_error_scale[i] = diff * diff; - linelengths_rcp[i] = 1.0f / diff; + length = astc::max(length, 1e-7f); + length_squared[i] = length * length; + scale[i] = 1.0f / length; ei.ep.endpt0[i] = select(blk.data_min, vfloat4(lowvalues[i]), sep_mask); ei.ep.endpt1[i] = select(blk.data_max, vfloat4(highvalues[i]), sep_mask); } bool is_constant_wes = true; - float constant_wes = partition_error_scale[pi.partition_of_texel[0]] * error_weights[0]; + float constant_wes = length_squared[pi.partition_of_texel[0]] * error_weight; for (int i = 0; i < texel_count; i++) { float value = data_vr[i]; int partition = pi.partition_of_texel[i]; value -= lowvalues[partition]; - value *= linelengths_rcp[partition]; + value *= scale[partition]; value = astc::clamp1f(value); ei.weights[i] = value; - ei.weight_error_scale[i] = partition_error_scale[partition] * error_weights[i]; + ei.weight_error_scale[i] = length_squared[partition] * error_weight; assert(!astc::isnan(ei.weight_error_scale[i])); is_constant_wes = is_constant_wes && ei.weight_error_scale[i] == constant_wes; @@ -147,7 +140,6 @@ static void compute_ideal_colors_and_weights_1_comp( * * @param bsd The block size information. * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param pi The partition info for the current trial. * @param[out] ei The computed ideal endpoints and weights. * @param component1 The first color component to compute. @@ -156,7 +148,6 @@ static void compute_ideal_colors_and_weights_1_comp( static void compute_ideal_colors_and_weights_2_comp( const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, const partition_info& pi, endpoints_and_weights& ei, int component1, @@ -171,24 +162,29 @@ static void compute_ideal_colors_and_weights_2_comp( partition_metrics pms[BLOCK_MAX_PARTITIONS]; - const float *error_weights; + float error_weight; const float* data_vr = nullptr; const float* data_vg = nullptr; if (component1 == 0 && component2 == 1) { - error_weights = ewb.texel_weight_rg; + error_weight = hadd_s(blk.channel_weight.swz<0, 1>()) / 2.0f; + data_vr = blk.data_r; data_vg = blk.data_g; } else if (component1 == 0 && component2 == 2) { - error_weights = ewb.texel_weight_rb; + error_weight = hadd_s(blk.channel_weight.swz<0, 2>()) / 2.0f; + data_vr = blk.data_r; data_vg = blk.data_b; } else // (component1 == 1 && component2 == 2) { - error_weights = ewb.texel_weight_gb; + assert(component1 == 1 && component2 == 2); + + error_weight = hadd_s(blk.channel_weight.swz<1, 2>()) / 2.0f; + data_vr = blk.data_g; data_vg = blk.data_b; } @@ -200,7 +196,7 @@ static void compute_ideal_colors_and_weights_2_comp( float scale[BLOCK_MAX_PARTITIONS]; float length_squared[BLOCK_MAX_PARTITIONS]; - compute_avgs_and_dirs_2_comp(pi, blk, ewb, component1, component2, pms); + compute_avgs_and_dirs_2_comp(pi, blk, component1, component2, pms); for (int i = 0; i < partition_count; i++) { @@ -216,21 +212,14 @@ static void compute_ideal_colors_and_weights_2_comp( for (int i = 0; i < texel_count; i++) { - if (error_weights[i] > 1e-10f) - { - int partition = pi.partition_of_texel[i]; - vfloat4 point = vfloat2(data_vr[i], data_vg[i]) * pms[partition].color_scale.swz<0, 1>(); - line2 l = lines[partition]; - float param = dot_s(point - l.a, l.b); - ei.weights[i] = param; - - lowparam[partition] = astc::min(param, lowparam[partition]); - highparam[partition] = astc::max(param, highparam[partition]); - } - else - { - ei.weights[i] = -1e38f; - } + int partition = pi.partition_of_texel[i]; + vfloat4 point = vfloat2(data_vr[i], data_vg[i]); + line2 l = lines[partition]; + float param = dot_s(point - l.a, l.b); + ei.weights[i] = param; + + lowparam[partition] = astc::min(param, lowparam[partition]); + highparam[partition] = astc::max(param, highparam[partition]); } vfloat4 lowvalues[BLOCK_MAX_PARTITIONS]; @@ -242,7 +231,7 @@ static void compute_ideal_colors_and_weights_2_comp( if (length < 0.0f) // Case for when none of the texels had any weight { lowparam[i] = 0.0f; - highparam[i] = 1e-7f; + highparam[i] = 0.0f; } // It is possible for a uniform-color partition to produce length=0; this causes NaN issues @@ -251,17 +240,11 @@ static void compute_ideal_colors_and_weights_2_comp( length_squared[i] = length * length; scale[i] = 1.0f / length; - vfloat4 ep0 = lines[i].a + lines[i].b * lowparam[i]; - vfloat4 ep1 = lines[i].a + lines[i].b * highparam[i]; - - ep0 = ep0.swz<0, 1>() / pms[i].color_scale; - - ep1 = ep1.swz<0, 1>() / pms[i].color_scale; - - lowvalues[i] = ep0; - highvalues[i] = ep1; + lowvalues[i] = lines[i].a + lines[i].b * lowparam[i]; + highvalues[i] = lines[i].a + lines[i].b * highparam[i]; } + // TODO: Merge this into loop above? vmask4 comp1_mask = vint4::lane_id() == vint4(component1); vmask4 comp2_mask = vint4::lane_id() == vint4(component2); for (int i = 0; i < partition_count; i++) @@ -274,7 +257,7 @@ static void compute_ideal_colors_and_weights_2_comp( } bool is_constant_wes = true; - float constant_wes = length_squared[pi.partition_of_texel[0]] * error_weights[0]; + float constant_wes = length_squared[pi.partition_of_texel[0]] * error_weight; for (int i = 0; i < texel_count; i++) { @@ -283,7 +266,7 @@ static void compute_ideal_colors_and_weights_2_comp( idx = astc::clamp1f(idx); ei.weights[i] = idx; - ei.weight_error_scale[i] = length_squared[partition] * error_weights[i]; + ei.weight_error_scale[i] = length_squared[partition] * error_weight; assert(!astc::isnan(ei.weight_error_scale[i])); is_constant_wes = is_constant_wes && ei.weight_error_scale[i] == constant_wes; @@ -305,7 +288,6 @@ static void compute_ideal_colors_and_weights_2_comp( * * @param bsd The block size information. * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param pi The partition info for the current trial. * @param[out] ei The computed ideal endpoints and weights. * @param omitted_component The color component excluded from the calculation. @@ -313,7 +295,6 @@ static void compute_ideal_colors_and_weights_2_comp( static void compute_ideal_colors_and_weights_3_comp( const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, const partition_info& pi, endpoints_and_weights& ei, unsigned int omitted_component @@ -327,34 +308,34 @@ static void compute_ideal_colors_and_weights_3_comp( partition_metrics pms[BLOCK_MAX_PARTITIONS]; - const float *error_weights; + float error_weight; const float* data_vr = nullptr; const float* data_vg = nullptr; const float* data_vb = nullptr; if (omitted_component == 0) { - error_weights = ewb.texel_weight_gba; + error_weight = hadd_s(blk.channel_weight.swz<0, 1, 2>()) / 3.0f; data_vr = blk.data_g; data_vg = blk.data_b; data_vb = blk.data_a; } else if (omitted_component == 1) { - error_weights = ewb.texel_weight_rba; + error_weight = hadd_s(blk.channel_weight.swz<0, 2, 3>()) / 3.0f; data_vr = blk.data_r; data_vg = blk.data_b; data_vb = blk.data_a; } else if (omitted_component == 2) { - error_weights = ewb.texel_weight_rga; + error_weight = hadd_s(blk.channel_weight.swz<0, 1, 3>()) / 3.0f; data_vr = blk.data_r; data_vg = blk.data_g; data_vb = blk.data_a; } else { - error_weights = ewb.texel_weight_rgb; + error_weight = hadd_s(blk.channel_weight.swz<0, 1, 2>()) / 3.0f; data_vr = blk.data_r; data_vg = blk.data_g; data_vb = blk.data_b; @@ -367,7 +348,7 @@ static void compute_ideal_colors_and_weights_3_comp( float scale[BLOCK_MAX_PARTITIONS]; float length_squared[BLOCK_MAX_PARTITIONS]; - compute_avgs_and_dirs_3_comp(pi, blk, ewb, omitted_component, pms); + compute_avgs_and_dirs_3_comp(pi, blk, omitted_component, pms); for (unsigned int i = 0; i < partition_count; i++) { @@ -383,27 +364,20 @@ static void compute_ideal_colors_and_weights_3_comp( for (unsigned int i = 0; i < texel_count; i++) { - if (error_weights[i] > 1e-10f) - { - int partition = pi.partition_of_texel[i]; - vfloat4 point = vfloat3(data_vr[i], data_vg[i], data_vb[i]) * pms[partition].color_scale; - line3 l = lines[partition]; - float param = dot3_s(point - l.a, l.b); - ei.weights[i] = param; - - lowparam[partition] = astc::min(param, lowparam[partition]); - highparam[partition] = astc::max(param, highparam[partition]); - } - else - { - ei.weights[i] = -1e38f; - } + int partition = pi.partition_of_texel[i]; + vfloat4 point = vfloat3(data_vr[i], data_vg[i], data_vb[i]); + line3 l = lines[partition]; + float param = dot3_s(point - l.a, l.b); + ei.weights[i] = param; + + lowparam[partition] = astc::min(param, lowparam[partition]); + highparam[partition] = astc::max(param, highparam[partition]); } for (unsigned int i = 0; i < partition_count; i++) { float length = highparam[i] - lowparam[i]; - if (length < 0) // Case for when none of the texels had any weight + if (length < 0.0f) // Case for when none of the texels had any weight { lowparam[i] = 0.0f; highparam[i] = 1e-7f; @@ -412,16 +386,12 @@ static void compute_ideal_colors_and_weights_3_comp( // It is possible for a uniform-color partition to produce length=0; this causes NaN issues // so set to a small value to avoid this problem. length = astc::max(length, 1e-7f); - length_squared[i] = length * length; scale[i] = 1.0f / length; vfloat4 ep0 = lines[i].a + lines[i].b * lowparam[i]; vfloat4 ep1 = lines[i].a + lines[i].b * highparam[i]; - ep0 = ep0 * pms[i].icolor_scale; - ep1 = ep1 * pms[i].icolor_scale; - vfloat4 bmin = blk.data_min; vfloat4 bmax = blk.data_max; @@ -449,7 +419,7 @@ static void compute_ideal_colors_and_weights_3_comp( bool is_constant_wes = true; - float constant_wes = length_squared[pi.partition_of_texel[0]] * error_weights[0]; + float constant_wes = length_squared[pi.partition_of_texel[0]] * error_weight; for (unsigned int i = 0; i < texel_count; i++) { @@ -458,7 +428,7 @@ static void compute_ideal_colors_and_weights_3_comp( idx = astc::clamp1f(idx); ei.weights[i] = idx; - ei.weight_error_scale[i] = length_squared[partition] * error_weights[i]; + ei.weight_error_scale[i] = length_squared[partition] * error_weight; assert(!astc::isnan(ei.weight_error_scale[i])); is_constant_wes = is_constant_wes && ei.weight_error_scale[i] == constant_wes; @@ -480,18 +450,16 @@ static void compute_ideal_colors_and_weights_3_comp( * * @param bsd The block size information. * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param pi The partition info for the current trial. * @param[out] ei The computed ideal endpoints and weights. */ static void compute_ideal_colors_and_weights_4_comp( const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, const partition_info& pi, endpoints_and_weights& ei ) { - const float *error_weights = ewb.texel_weight; + const float error_weight = hadd_s(blk.channel_weight) / 4.0f; int partition_count = pi.partition_count; @@ -509,7 +477,7 @@ static void compute_ideal_colors_and_weights_4_comp( partition_metrics pms[BLOCK_MAX_PARTITIONS]; - compute_avgs_and_dirs_4_comp(pi, blk, ewb, pms); + compute_avgs_and_dirs_4_comp(pi, blk, pms); // If the direction points from light to dark then flip so ep0 is darkest for (int i = 0; i < partition_count; i++) @@ -526,50 +494,39 @@ static void compute_ideal_colors_and_weights_4_comp( for (int i = 0; i < texel_count; i++) { - if (error_weights[i] > 1e-10f) - { - int partition = pi.partition_of_texel[i]; + int partition = pi.partition_of_texel[i]; - vfloat4 point = blk.texel(i) * pms[partition].color_scale; - line4 l = lines[partition]; + vfloat4 point = blk.texel(i); + line4 l = lines[partition]; - float param = dot_s(point - l.a, l.b); - ei.weights[i] = param; + float param = dot_s(point - l.a, l.b); + ei.weights[i] = param; - lowparam[partition] = astc::min(param, lowparam[partition]); - highparam[partition] = astc::max(param, highparam[partition]); - } - else - { - ei.weights[i] = -1e38f; - } + lowparam[partition] = astc::min(param, lowparam[partition]); + highparam[partition] = astc::max(param, highparam[partition]); } for (int i = 0; i < partition_count; i++) { float length = highparam[i] - lowparam[i]; - if (length < 0) + if (length < 0.0f) // Case for when none of the texels had any weight { lowparam[i] = 0.0f; - highparam[i] = 1e-7f; + highparam[i] = 0.0f; } // It is possible for a uniform-color partition to produce length=0; this causes NaN issues // so set to a small value to avoid this problem. length = astc::max(length, 1e-7f); - length_squared[i] = length * length; scale[i] = 1.0f / length; - vfloat4 ep0 = lines[i].a + lines[i].b * lowparam[i]; - vfloat4 ep1 = lines[i].a + lines[i].b * highparam[i]; - - ei.ep.endpt0[i] = ep0 * pms[i].icolor_scale; - ei.ep.endpt1[i] = ep1 * pms[i].icolor_scale; + ei.ep.endpt0[i] = lines[i].a + lines[i].b * lowparam[i]; + ei.ep.endpt1[i] = lines[i].a + lines[i].b * highparam[i]; } bool is_constant_wes = true; - float constant_wes = length_squared[pi.partition_of_texel[0]] * error_weights[0]; + float constant_wes = length_squared[pi.partition_of_texel[0]] * error_weight; for (int i = 0; i < texel_count; i++) { @@ -578,7 +535,7 @@ static void compute_ideal_colors_and_weights_4_comp( idx = astc::clamp1f(idx); ei.weights[i] = idx; - ei.weight_error_scale[i] = error_weights[i] * length_squared[partition]; + ei.weight_error_scale[i] = length_squared[partition] * error_weight; assert(!astc::isnan(ei.weight_error_scale[i])); is_constant_wes = is_constant_wes && ei.weight_error_scale[i] == constant_wes; @@ -599,7 +556,6 @@ static void compute_ideal_colors_and_weights_4_comp( void compute_ideal_colors_and_weights_1plane( const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, const partition_info& pi, endpoints_and_weights& ei ) { @@ -607,11 +563,11 @@ void compute_ideal_colors_and_weights_1plane( if (uses_alpha) { - compute_ideal_colors_and_weights_4_comp(bsd, blk, ewb, pi, ei); + compute_ideal_colors_and_weights_4_comp(bsd, blk, pi, ei); } else { - compute_ideal_colors_and_weights_3_comp(bsd, blk, ewb, pi, ei, 3); + compute_ideal_colors_and_weights_3_comp(bsd, blk, pi, ei, 3); } } @@ -619,7 +575,6 @@ void compute_ideal_colors_and_weights_1plane( void compute_ideal_colors_and_weights_2planes( const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, unsigned int plane2_component, endpoints_and_weights& ei1, endpoints_and_weights& ei2 @@ -633,43 +588,43 @@ void compute_ideal_colors_and_weights_2planes( case 0: // Separate weights for red if (uses_alpha) { - compute_ideal_colors_and_weights_3_comp(bsd, blk, ewb, pi, ei1, 0); + compute_ideal_colors_and_weights_3_comp(bsd, blk, pi, ei1, 0); } else { - compute_ideal_colors_and_weights_2_comp(bsd, blk, ewb, pi, ei1, 1, 2); + compute_ideal_colors_and_weights_2_comp(bsd, blk, pi, ei1, 1, 2); } - compute_ideal_colors_and_weights_1_comp(bsd, blk, ewb, pi, ei2, 0); + compute_ideal_colors_and_weights_1_comp(bsd, blk, pi, ei2, 0); break; case 1: // Separate weights for green if (uses_alpha) { - compute_ideal_colors_and_weights_3_comp(bsd,blk, ewb, pi, ei1, 1); + compute_ideal_colors_and_weights_3_comp(bsd,blk, pi, ei1, 1); } else { - compute_ideal_colors_and_weights_2_comp(bsd, blk, ewb, pi, ei1, 0, 2); + compute_ideal_colors_and_weights_2_comp(bsd, blk, pi, ei1, 0, 2); } - compute_ideal_colors_and_weights_1_comp(bsd, blk, ewb, pi, ei2, 1); + compute_ideal_colors_and_weights_1_comp(bsd, blk, pi, ei2, 1); break; case 2: // Separate weights for blue if (uses_alpha) { - compute_ideal_colors_and_weights_3_comp(bsd, blk, ewb, pi, ei1, 2); + compute_ideal_colors_and_weights_3_comp(bsd, blk, pi, ei1, 2); } else { - compute_ideal_colors_and_weights_2_comp(bsd, blk, ewb, pi, ei1, 0, 1); + compute_ideal_colors_and_weights_2_comp(bsd, blk, pi, ei1, 0, 1); } - compute_ideal_colors_and_weights_1_comp(bsd, blk, ewb, pi, ei2, 2); + compute_ideal_colors_and_weights_1_comp(bsd, blk, pi, ei2, 2); break; default: // Separate weights for alpha assert(uses_alpha); - compute_ideal_colors_and_weights_3_comp(bsd, blk, ewb, pi, ei1, 3); - compute_ideal_colors_and_weights_1_comp(bsd, blk, ewb, pi, ei2, 3); + compute_ideal_colors_and_weights_3_comp(bsd, blk, pi, ei1, 3); + compute_ideal_colors_and_weights_1_comp(bsd, blk, pi, ei2, 3); break; } } @@ -1098,9 +1053,9 @@ static inline vfloat4 compute_rgbo_vector( } /* See header for documentation. */ +// TODO: Specialize for 1 partition? void recompute_ideal_colors_1plane( const image_block& blk, - const error_weight_block& ewb, const partition_info& pi, const decimation_info& di, int weight_quant_mode, @@ -1127,24 +1082,21 @@ void recompute_ideal_colors_1plane( for (int i = 0; i < partition_count; i++) { vfloat4 rgba_sum(1e-17f); - vfloat4 rgba_weight_sum(1e-17f); unsigned int texel_count = pi.partition_texel_count[i]; const uint8_t *texel_indexes = pi.texels_of_partition[i]; + // TODO: Use gathers? promise(texel_count > 0); for (unsigned int j = 0; j < texel_count; j++) { unsigned int tix = texel_indexes[j]; - - vfloat4 rgba = blk.texel(tix); - vfloat4 error_weight = ewb.error_weights[tix]; - - rgba_sum += rgba * error_weight; - rgba_weight_sum += error_weight; + rgba_sum += blk.texel(tix); } - vfloat4 scale_direction = normalize((rgba_sum * (1.0f / rgba_weight_sum)).swz<0, 1, 2>()); + rgba_sum = rgba_sum * blk.channel_weight; + vfloat4 rgba_weight_sum = max(blk.channel_weight * static_cast(texel_count), 1e-17f); + vfloat4 scale_dir = normalize((rgba_sum / rgba_weight_sum).swz<0, 1, 2>()); float scale_max = 0.0f; float scale_min = 1e10f; @@ -1152,28 +1104,25 @@ void recompute_ideal_colors_1plane( float wmin1 = 1.0f; float wmax1 = 0.0f; - vfloat4 left_sum = vfloat4::zero(); - vfloat4 middle_sum = vfloat4::zero(); - vfloat4 right_sum = vfloat4::zero(); - vfloat4 lmrs_sum = vfloat4::zero(); + float left_sum_s = 0.0f; + float middle_sum_s = 0.0f; + float right_sum_s = 0.0f; vfloat4 color_vec_x = vfloat4::zero(); vfloat4 color_vec_y = vfloat4::zero(); vfloat4 scale_vec = vfloat4::zero(); - vfloat4 weight_weight_sum = vfloat4(1e-17f); - float psum = 1e-17f; + float weight_weight_sum_s = 1e-17f; + + vfloat4 color_weight = blk.channel_weight; + float ls_weight = hadd_rgb_s(color_weight); for (unsigned int j = 0; j < texel_count; j++) { unsigned int tix = texel_indexes[j]; vfloat4 rgba = blk.texel(tix); - vfloat4 color_weight = ewb.error_weights[tix]; - - // TODO: Move this calculation out to the color block? - float ls_weight = hadd_rgb_s(color_weight); float idx0; if (!is_decimated) @@ -1190,54 +1139,41 @@ void recompute_ideal_colors_1plane( wmin1 = astc::min(idx0, wmin1); wmax1 = astc::max(idx0, wmax1); - float scale = dot3_s(scale_direction, rgba); + float scale = dot3_s(scale_dir, rgba); scale_min = astc::min(scale, scale_min); scale_max = astc::max(scale, scale_max); - vfloat4 left = color_weight * (om_idx0 * om_idx0); - vfloat4 middle = color_weight * (om_idx0 * idx0); - vfloat4 right = color_weight * (idx0 * idx0); - - vfloat4 lmrs = vfloat3(om_idx0 * om_idx0, - om_idx0 * idx0, - idx0 * idx0) * ls_weight; - - left_sum += left; - middle_sum += middle; - right_sum += right; - lmrs_sum += lmrs; + left_sum_s += om_idx0 * om_idx0; + middle_sum_s += om_idx0 * idx0; + right_sum_s += idx0 * idx0; + weight_weight_sum_s += idx0; vfloat4 color_idx(idx0); - vfloat4 cwprod = color_weight * rgba; + vfloat4 cwprod = rgba; vfloat4 cwiprod = cwprod * color_idx; color_vec_y += cwiprod; color_vec_x += cwprod - cwiprod; - scale_vec += vfloat2(om_idx0, idx0) * (ls_weight * scale); - weight_weight_sum += color_weight * color_idx; - psum += dot3_s(color_weight * color_idx, color_idx); + scale_vec += vfloat2(om_idx0, idx0) * (scale * ls_weight); } - // Calculations specific to mode #7, the HDR RGB-scale mode - vfloat4 rgbq_sum = color_vec_x + color_vec_y; - rgbq_sum.set_lane<3>(hadd_rgb_s(color_vec_y)); + vfloat4 left_sum = vfloat4(left_sum_s) * color_weight; + vfloat4 middle_sum = vfloat4(middle_sum_s) * color_weight; + vfloat4 right_sum = vfloat4(right_sum_s) * color_weight; + vfloat4 lmrs_sum = vfloat3(left_sum_s, middle_sum_s, right_sum_s) * ls_weight; - vfloat4 rgbovec = compute_rgbo_vector(rgba_weight_sum, weight_weight_sum, - rgbq_sum, psum); - rgbo_vectors[i] = rgbovec; + vfloat4 weight_weight_sum = vfloat4(weight_weight_sum_s) * color_weight; + float psum = right_sum_s * hadd_rgb_s(color_weight); - // We will occasionally get a failure due to the use of a singular (non-invertible) matrix. - // Record whether such a failure has taken place; if it did, compute rgbo_vectors[] with a - // different method later - float chkval = dot_s(rgbovec, rgbovec); - int rgbo_fail = chkval != chkval; + color_vec_x = color_vec_x * color_weight; + color_vec_y = color_vec_y * color_weight; // Initialize the luminance and scale vectors with a reasonable default float scalediv = scale_min * (1.0f / astc::max(scale_max, 1e-10f)); scalediv = astc::clamp1f(scalediv); - vfloat4 sds = scale_direction * scale_max; + vfloat4 sds = scale_dir * scale_max; rgbs_vectors[i] = vfloat4(sds.lane<0>(), sds.lane<1>(), sds.lane<2>(), scalediv); @@ -1245,7 +1181,7 @@ void recompute_ideal_colors_1plane( { // If all weights in the partition were equal, then just take average of all colors in // the partition and use that as both endpoint colors - vfloat4 avg = (color_vec_x + color_vec_y) * (1.0f / rgba_weight_sum); + vfloat4 avg = (color_vec_x + color_vec_y) / rgba_weight_sum; vmask4 notnan_mask = avg == avg; ep.endpt0[i] = select(ep.endpt0[i], avg, notnan_mask); @@ -1287,13 +1223,21 @@ void recompute_ideal_colors_1plane( if (fabsf(ls_det1) > (ls_mss1 * 1e-4f) && scale_ep0 == scale_ep0 && scale_ep1 == scale_ep1 && scale_ep0 < scale_ep1) { float scalediv2 = scale_ep0 * (1.0f / scale_ep1); - vfloat4 sdsm = scale_direction * scale_ep1; + vfloat4 sdsm = scale_dir * scale_ep1; rgbs_vectors[i] = vfloat4(sdsm.lane<0>(), sdsm.lane<1>(), sdsm.lane<2>(), scalediv2); } } - // If the calculation of an RGB-offset vector failed, try to compute a value another way - if (rgbo_fail) + // Calculations specific to mode #7, the HDR RGB-scale mode + vfloat4 rgbq_sum = color_vec_x + color_vec_y; + rgbq_sum.set_lane<3>(hadd_rgb_s(color_vec_y)); + + vfloat4 rgbovec = compute_rgbo_vector(rgba_weight_sum, weight_weight_sum, rgbq_sum, psum); + rgbo_vectors[i] = rgbovec; + + // We can get a failure due to the use of a singular (non-invertible) matrix + // If it failed, compute rgbo_vectors[] with a different method ... + if (astc::isnan(dot_s(rgbovec, rgbovec))) { vfloat4 v0 = ep.endpt0[i]; vfloat4 v1 = ep.endpt1[i]; @@ -1303,7 +1247,6 @@ void recompute_ideal_colors_1plane( vfloat4 avg = (v0 + v1) * 0.5f; vfloat4 ep0 = avg - vfloat4(avgdif) * 0.5f; - rgbo_vectors[i] = vfloat4(ep0.lane<0>(), ep0.lane<1>(), ep0.lane<2>(), avgdif); } } @@ -1312,7 +1255,6 @@ void recompute_ideal_colors_1plane( /* See header for documentation. */ void recompute_ideal_colors_2planes( const image_block& blk, - const error_weight_block& ewb, const block_size_descriptor& bsd, const decimation_info& di, int weight_quant_mode, @@ -1340,28 +1282,26 @@ void recompute_ideal_colors_2planes( dec_weights_quant_uvalue_plane2[i] = qat->unquantized_value[dec_weights_quant_pvalue_plane2[i]] * (1.0f / 64.0f); } - vfloat4 rgba_sum = ewb.block_error_weighted_rgba_sum; - vfloat4 rgba_weight_sum = ewb.block_error_weight_sum; - unsigned int texel_count = bsd.texel_count; - vfloat4 scale_direction = normalize((rgba_sum * (1.0f / rgba_weight_sum)).swz<0, 1, 2>()); + vfloat4 rgba_weight_sum = max(blk.channel_weight * static_cast(texel_count), 1e-17f); + vfloat4 scale_dir = normalize(blk.data_mean.swz<0, 1, 2>()); float scale_max = 0.0f; float scale_min = 1e10f; float wmin1 = 1.0f; float wmax1 = 0.0f; + float wmin2 = 1.0f; float wmax2 = 0.0f; - vfloat4 left_sum = vfloat4::zero(); - vfloat4 middle_sum = vfloat4::zero(); - vfloat4 right_sum = vfloat4::zero(); + float left1_sum_s = 0.0f; + float middle1_sum_s = 0.0f; + float right1_sum_s = 0.0f; - vfloat4 left2_sum = vfloat4::zero(); - vfloat4 middle2_sum = vfloat4::zero(); - vfloat4 right2_sum = vfloat4::zero(); - vfloat4 lmrs_sum = vfloat4::zero(); + float left2_sum_s = 0.0f; + float middle2_sum_s = 0.0f; + float right2_sum_s = 0.0f; vfloat4 color_vec_x = vfloat4::zero(); vfloat4 color_vec_y = vfloat4::zero(); @@ -1369,15 +1309,14 @@ void recompute_ideal_colors_2planes( vfloat4 scale_vec = vfloat4::zero(); vfloat4 weight_weight_sum = vfloat4(1e-17f); - float psum = 1e-17f; + + vmask4 p2_mask = vint4::lane_id() == vint4(plane2_component); + vfloat4 color_weight = blk.channel_weight; + float ls_weight = hadd_rgb_s(color_weight); for (unsigned int j = 0; j < texel_count; j++) { vfloat4 rgba = blk.texel(j); - vfloat4 color_weight = ewb.error_weights[j]; - - // TODO: Move this calculation out to the color block? - float ls_weight = hadd_rgb_s(color_weight); float idx0; if (!is_decimated) @@ -1394,22 +1333,13 @@ void recompute_ideal_colors_2planes( wmin1 = astc::min(idx0, wmin1); wmax1 = astc::max(idx0, wmax1); - float scale = dot3_s(scale_direction, rgba); + float scale = dot3_s(scale_dir, rgba); scale_min = astc::min(scale, scale_min); scale_max = astc::max(scale, scale_max); - vfloat4 left = color_weight * (om_idx0 * om_idx0); - vfloat4 middle = color_weight * (om_idx0 * idx0); - vfloat4 right = color_weight * (idx0 * idx0); - - vfloat4 lmrs = vfloat3(om_idx0 * om_idx0, - om_idx0 * idx0, - idx0 * idx0) * ls_weight; - - left_sum += left; - middle_sum += middle; - right_sum += right; - lmrs_sum += lmrs; + left1_sum_s += om_idx0 * om_idx0; + middle1_sum_s += om_idx0 * idx0; + right1_sum_s += idx0 * idx0; float idx1; if (!is_decimated) @@ -1426,18 +1356,13 @@ void recompute_ideal_colors_2planes( wmin2 = astc::min(idx1, wmin2); wmax2 = astc::max(idx1, wmax2); - vfloat4 left2 = color_weight * (om_idx1 * om_idx1); - vfloat4 middle2 = color_weight * (om_idx1 * idx1); - vfloat4 right2 = color_weight * (idx1 * idx1); - - left2_sum += left2; - middle2_sum += middle2; - right2_sum += right2; + left2_sum_s += om_idx1 * om_idx1; + middle2_sum_s += om_idx1 * idx1; + right2_sum_s += idx1 * idx1; - vmask4 p2_mask = vint4::lane_id() == vint4(plane2_component); vfloat4 color_idx = select(vfloat4(idx0), vfloat4(idx1), p2_mask); - vfloat4 cwprod = color_weight * rgba; + vfloat4 cwprod = rgba; vfloat4 cwiprod = cwprod * color_idx; color_vec_y += cwiprod; @@ -1445,26 +1370,27 @@ void recompute_ideal_colors_2planes( scale_vec += vfloat2(om_idx0, idx0) * (ls_weight * scale); weight_weight_sum += (color_weight * color_idx); - psum += dot3_s(color_weight * color_idx, color_idx); } - // Calculations specific to mode #7, the HDR RGB-scale mode - vfloat4 rgbq_sum = color_vec_x + color_vec_y; - rgbq_sum.set_lane<3>(hadd_rgb_s(color_vec_y)); + vfloat4 left1_sum = vfloat4(left1_sum_s) * color_weight; + vfloat4 middle1_sum = vfloat4(middle1_sum_s) * color_weight; + vfloat4 right1_sum = vfloat4(right1_sum_s) * color_weight; + vfloat4 lmrs_sum = vfloat3(left1_sum_s, middle1_sum_s, right1_sum_s) * ls_weight; - rgbo_vector = compute_rgbo_vector(rgba_weight_sum, weight_weight_sum, rgbq_sum, psum); + vfloat4 left2_sum = vfloat4(left2_sum_s) * color_weight; + vfloat4 middle2_sum = vfloat4(middle2_sum_s) * color_weight; + vfloat4 right2_sum = vfloat4(right2_sum_s) * color_weight; + + float psum = dot3_s(select(right1_sum, right2_sum, p2_mask), color_weight); - // We will occasionally get a failure due to the use of a singular (non-invertible) matrix. - // Record whether such a failure has taken place; if it did, compute rgbo_vectors[] with a - // different method later - float chkval = dot_s(rgbo_vector, rgbo_vector); - int rgbo_fail = chkval != chkval; + color_vec_x = color_vec_x * color_weight; + color_vec_y = color_vec_y * color_weight; // Initialize the luminance and scale vectors with a reasonable default float scalediv = scale_min * (1.0f / astc::max(scale_max, 1e-10f)); scalediv = astc::clamp1f(scalediv); - vfloat4 sds = scale_direction * scale_max; + vfloat4 sds = scale_dir * scale_max; rgbs_vector = vfloat4(sds.lane<0>(), sds.lane<1>(), sds.lane<2>(), scalediv); @@ -1472,7 +1398,7 @@ void recompute_ideal_colors_2planes( { // If all weights in the partition were equal, then just take average of all colors in // the partition and use that as both endpoint colors - vfloat4 avg = (color_vec_x + color_vec_y) * (1.0f / rgba_weight_sum); + vfloat4 avg = (color_vec_x + color_vec_y) / rgba_weight_sum; vmask4 p1_mask = vint4::lane_id() != vint4(plane2_component); vmask4 notnan_mask = avg == avg; @@ -1487,22 +1413,22 @@ void recompute_ideal_colors_2planes( { // Otherwise, complete the analytic calculation of ideal-endpoint-values for the given // set of texel weights and pixel colors - vfloat4 color_det1 = (left_sum * right_sum) - (middle_sum * middle_sum); + vfloat4 color_det1 = (left1_sum * right1_sum) - (middle1_sum * middle1_sum); vfloat4 color_rdet1 = 1.0f / color_det1; float ls_det1 = (lmrs_sum.lane<0>() * lmrs_sum.lane<2>()) - (lmrs_sum.lane<1>() * lmrs_sum.lane<1>()); float ls_rdet1 = 1.0f / ls_det1; - vfloat4 color_mss1 = (left_sum * left_sum) - + (2.0f * middle_sum * middle_sum) - + (right_sum * right_sum); + vfloat4 color_mss1 = (left1_sum * left1_sum) + + (2.0f * middle1_sum * middle1_sum) + + (right1_sum * right1_sum); float ls_mss1 = (lmrs_sum.lane<0>() * lmrs_sum.lane<0>()) + (2.0f * lmrs_sum.lane<1>() * lmrs_sum.lane<1>()) + (lmrs_sum.lane<2>() * lmrs_sum.lane<2>()); - vfloat4 ep0 = (right_sum * color_vec_x - middle_sum * color_vec_y) * color_rdet1; - vfloat4 ep1 = (left_sum * color_vec_y - middle_sum * color_vec_x) * color_rdet1; + vfloat4 ep0 = (right1_sum * color_vec_x - middle1_sum * color_vec_y) * color_rdet1; + vfloat4 ep1 = (left1_sum * color_vec_y - middle1_sum * color_vec_x) * color_rdet1; float scale_ep0 = (lmrs_sum.lane<2>() * scale_vec.lane<0>() - lmrs_sum.lane<1>() * scale_vec.lane<1>()) * ls_rdet1; float scale_ep1 = (lmrs_sum.lane<0>() * scale_vec.lane<1>() - lmrs_sum.lane<1>() * scale_vec.lane<0>()) * ls_rdet1; @@ -1518,7 +1444,7 @@ void recompute_ideal_colors_2planes( if (fabsf(ls_det1) > (ls_mss1 * 1e-4f) && scale_ep0 == scale_ep0 && scale_ep1 == scale_ep1 && scale_ep0 < scale_ep1) { float scalediv2 = scale_ep0 * (1.0f / scale_ep1); - vfloat4 sdsm = scale_direction * scale_ep1; + vfloat4 sdsm = scale_dir * scale_ep1; rgbs_vector = vfloat4(sdsm.lane<0>(), sdsm.lane<1>(), sdsm.lane<2>(), scalediv2); } } @@ -1527,9 +1453,8 @@ void recompute_ideal_colors_2planes( { // If all weights in the partition were equal, then just take average of all colors in // the partition and use that as both endpoint colors - vfloat4 avg = (color_vec_x + color_vec_y) * (1.0f / rgba_weight_sum); + vfloat4 avg = (color_vec_x + color_vec_y) / rgba_weight_sum; - vmask4 p2_mask = vint4::lane_id() == vint4(plane2_component); vmask4 notnan_mask = avg == avg; vmask4 full_mask = p2_mask & notnan_mask; @@ -1550,7 +1475,6 @@ void recompute_ideal_colors_2planes( vfloat4 ep0 = (right2_sum * color_vec_x - middle2_sum * color_vec_y) * color_rdet2; vfloat4 ep1 = (left2_sum * color_vec_y - middle2_sum * color_vec_x) * color_rdet2; - vmask4 p2_mask = vint4::lane_id() == vint4(plane2_component); vmask4 det_mask = abs(color_det2) > (color_mss2 * 1e-4f); vmask4 notnan_mask = (ep0 == ep0) & (ep1 == ep1); vmask4 full_mask = p2_mask & det_mask & notnan_mask; @@ -1559,8 +1483,15 @@ void recompute_ideal_colors_2planes( ep.endpt1[0] = select(ep.endpt1[0], ep1, full_mask); } - // If the calculation of an RGB-offset vector failed, try to compute a value another way - if (rgbo_fail) + // Calculations specific to mode #7, the HDR RGB-scale mode + vfloat4 rgbq_sum = color_vec_x + color_vec_y; + rgbq_sum.set_lane<3>(hadd_rgb_s(color_vec_y)); + + rgbo_vector = compute_rgbo_vector(rgba_weight_sum, weight_weight_sum, rgbq_sum, psum); + + // We can get a failure due to the use of a singular (non-invertible) matrix + // If it failed, compute rgbo_vectors[] with a different method ... + if (astc::isnan(dot_s(rgbo_vector, rgbo_vector))) { vfloat4 v0 = ep.endpt0[0]; vfloat4 v1 = ep.endpt1[0]; diff --git a/lib/astc-encoder/Source/astcenc_image.cpp b/lib/astc-encoder/Source/astcenc_image.cpp index f4c8e00f96..47af5714a7 100644 --- a/lib/astc-encoder/Source/astcenc_image.cpp +++ b/lib/astc-encoder/Source/astcenc_image.cpp @@ -173,6 +173,8 @@ void fetch_image_block( int idx = 0; vfloat4 data_min(1e38f); + vfloat4 data_mean(0.0f); + vfloat4 data_mean_scale(1.0f / static_cast(bsd.texel_count)); vfloat4 data_max(-1e38f); bool grayscale = true; @@ -225,6 +227,7 @@ void fetch_image_block( // Compute block metadata data_min = min(data_min, datav); + data_mean += datav * data_mean_scale; data_max = max(data_max, datav); if (grayscale && (datav.lane<0>() != datav.lane<1>() || datav.lane<0>() != datav.lane<2>())) @@ -259,6 +262,7 @@ void fetch_image_block( // Store block metadata blk.data_min = data_min; + blk.data_mean = data_mean; blk.data_max = data_max; blk.grayscale = grayscale; } diff --git a/lib/astc-encoder/Source/astcenc_internal.h b/lib/astc-encoder/Source/astcenc_internal.h index cf31cce6dd..5981fd1d02 100644 --- a/lib/astc-encoder/Source/astcenc_internal.h +++ b/lib/astc-encoder/Source/astcenc_internal.h @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -60,7 +60,7 @@ #define promise(cond) if(!(cond)) { __builtin_unreachable(); } #endif #else - #define promise(cond) assert(cond); + #define promise(cond) assert(cond) #endif /* ============================================================================ @@ -447,9 +447,10 @@ static inline unsigned int get_quant_level(quant_method method) case QUANT_160: return 160; case QUANT_192: return 192; case QUANT_256: return 256; - // Unreachable - the enum is fully described - default: return 0; } + + // Unreachable - the enum is fully described + return 0; } /** @@ -457,15 +458,6 @@ static inline unsigned int get_quant_level(quant_method method) */ struct partition_metrics { - /** @brief The sum of the error weights for texels in this partition. */ - vfloat4 error_weight; - - /** @brief The color scale factor used to weight color channels. */ - vfloat4 color_scale; - - /** @brief The 1 / color_scale used to avoid divisions. */ - vfloat4 icolor_scale; - /** @brief The error-weighted average color in the partition. */ vfloat4 avg; @@ -818,10 +810,16 @@ struct image_block /** @brief The min component value of all texels in the block. */ vfloat4 data_min; + /** @brief The mean component value of all texels in the block. */ + vfloat4 data_mean; + /** @brief The max component value of all texels in the block. */ vfloat4 data_max; - /** @brief Is this greyscale block where R == G == B for all texels? */ + /** @brief The relative error significance of the color channels. */ + vfloat4 channel_weight; + + /** @brief Is this grayscale block where R == G == B for all texels? */ bool grayscale; /** @brief Set to 1 if a texel is using HDR RGB endpoints (decompression only). */ @@ -923,85 +921,6 @@ struct image_block } }; -/** - * @brief Data structure representing per-texel and per-component error weights for a block. - * - * This structure stores a multiplier for the error weight to apply to each component when computing - * block errors. This can be used as a general purpose technique to to amplify or diminish the - * significance of texels and individual color components, based on what is being stored and the - * compressor heuristics. It can be applied in many different ways, some of which are outlined in - * the description below (this is not exhaustive). - * - * For blocks that span the edge of the texture, the weighting for texels outside of the texture - * bounds can zeroed to maximize the quality of the texels inside the texture. - * - * For textures storing fewer than 4 components the weighting for color components that are unused - * can be zeroed to maximize the quality of the components that are used. This is particularly - * important for two component textures, which must be imported in LLLA format to match the two - * component endpoint encoding. Without manual component weighting to correct significance the "L" - * would be treated as three times more important than A because of the replication. - * - * For HDR textures we can use perceptual weighting which os approximately inverse to the luminance - * of a texel. - * - * For normal maps we can use perceptual weighting which assigns higher weight to low-variability - * regions than to high-variability regions, ensuring smooth surfaces don't pick up artifacts. - * - * For transparent texels we can multiply the RGB weights by the alpha value, ensuring that - * the least transprent texels maintain the highest accuracy. - */ -struct error_weight_block -{ - /** @brief Block error weighted RGBA sum for whole block / 1 partition. */ - vfloat4 block_error_weighted_rgba_sum; - - /** @brief Block error sum for whole block / 1 partition. */ - vfloat4 block_error_weight_sum; - - /** @brief The full per texel per component error weights. */ - vfloat4 error_weights[BLOCK_MAX_TEXELS]; - - - /** @brief The full per texel per component error weights. */ - float texel_weight[BLOCK_MAX_TEXELS]; - - - /** @brief The average of the GBA error weights per texel. */ - float texel_weight_gba[BLOCK_MAX_TEXELS]; - - /** @brief The average of the RBA error weights per texel. */ - float texel_weight_rba[BLOCK_MAX_TEXELS]; - - /** @brief The average of the RGA error weights per texel. */ - float texel_weight_rga[BLOCK_MAX_TEXELS]; - - /** @brief The average of the RGB error weights per texel. */ - float texel_weight_rgb[BLOCK_MAX_TEXELS]; - - - /** @brief The average of the RG error weights per texel. */ - float texel_weight_rg[BLOCK_MAX_TEXELS]; - - /** @brief The average of the RB error weights per texel. */ - float texel_weight_rb[BLOCK_MAX_TEXELS]; - - /** @brief The average of the GB error weights per texel. */ - float texel_weight_gb[BLOCK_MAX_TEXELS]; - - - /** @brief The individual R component error weights per texel. */ - float texel_weight_r[BLOCK_MAX_TEXELS]; - - /** @brief The individual G component error weights per texel. */ - float texel_weight_g[BLOCK_MAX_TEXELS]; - - /** @brief The individual B component error weights per texel. */ - float texel_weight_b[BLOCK_MAX_TEXELS]; - - /** @brief The individual A component error weights per texel. */ - float texel_weight_a[BLOCK_MAX_TEXELS]; -}; - /** * @brief Data structure storing the color endpoints for a block. */ @@ -1076,9 +995,6 @@ struct alignas(ASTCENC_VECALIGN) compression_working_buffers /** @brief Ideal decimated endpoints and weights for plane 2. */ endpoints_and_weights eix2[WEIGHTS_MAX_DECIMATION_MODES]; - /** @brief The error weight block for the current thread. */ - error_weight_block ewb; - /** * @brief Decimated ideal weight values. * @@ -1240,26 +1156,17 @@ struct physical_compressed_block * This function takes a structure to avoid spilling arguments to the stack on every function * invocation, as there are a lot of parameters. */ -struct pixel_region_variance_args +struct pixel_region_args { /** @brief The image to analyze. */ const astcenc_image* img; - /** @brief The RGB component power adjustment. */ - float rgb_power; - - /** @brief The alpha component power adjustment. */ - float alpha_power; - /** @brief The component swizzle pattern. */ astcenc_swizzle swz; /** @brief Should the algorithm bother with Z axis processing? */ bool have_z; - /** @brief The kernel radius for average and variance. */ - unsigned int avg_var_kernel_radius; - /** @brief The kernel radius for alpha processing. */ unsigned int alpha_kernel_radius; @@ -1286,12 +1193,12 @@ struct pixel_region_variance_args }; /** - * @brief Parameter structure for @c compute_averages_and_variances_proc(). + * @brief Parameter structure for @c compute_averages_proc(). */ -struct avg_var_args +struct avg_args { /** @brief The arguments for the nested variance computation. */ - pixel_region_variance_args arg; + pixel_region_args arg; // The above has a reference to the image altread? /** @brief The image X dimensions. */ @@ -1338,28 +1245,21 @@ struct astcenc_context * large structure size are omitted. */ - /** @brief The input images averages table, may be @c nullptr if not needed. */ - vfloat4 *input_averages; - - /** @brief The input image RGBA channel variances table, may be @c nullptr if not needed. */ - vfloat4 *input_variances; - - /** @brief The input image alpha channel variances table, may be @c nullptr if not needed. */ + /** @brief The input image alpha channel averages table, may be @c nullptr if not needed. */ float *input_alpha_averages; - /** @brief The scratch workign buffers, one per thread (see @c thread_count). */ compression_working_buffers* working_buffers; #if !defined(ASTCENC_DECOMPRESS_ONLY) /** @brief The pixel region and variance worker arguments. */ - avg_var_args avg_var_preprocess_args; + avg_args avg_preprocess_args; /** @brief The per-texel deblocking weights for the current block size. */ float deblock_weights[BLOCK_MAX_TEXELS]; - /** @brief The parallel manager for averages and variances computation. */ - ParallelManager manage_avg_var; + /** @brief The parallel manager for averages computation. */ + ParallelManager manage_avg; /** @brief The parallel manager for compression. */ ParallelManager manage_compress; @@ -1549,7 +1449,6 @@ unsigned int get_ise_sequence_bitcount( * * @param pi The partition info for the current trial. * @param blk The image block color data to be compressed. - * @param ewb The image block weighted error data. * @param component1 The first component included in the analysis. * @param component2 The second component included in the analysis. * @param[out] pm The output partition metrics. @@ -1559,7 +1458,6 @@ unsigned int get_ise_sequence_bitcount( void compute_avgs_and_dirs_2_comp( const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, unsigned int component1, unsigned int component2, partition_metrics pm[BLOCK_MAX_PARTITIONS]); @@ -1569,7 +1467,6 @@ void compute_avgs_and_dirs_2_comp( * * @param pi The partition info for the current trial. * @param blk The image block color data to be compressed. - * @param ewb The image block weighted error data. * @param omitted_component The component excluded from the analysis. * @param[out] pm The output partition metrics. * - Only pi.partition_count array entries actually get initialized. @@ -1578,7 +1475,6 @@ void compute_avgs_and_dirs_2_comp( void compute_avgs_and_dirs_3_comp( const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, unsigned int omitted_component, partition_metrics pm[BLOCK_MAX_PARTITIONS]); @@ -1590,7 +1486,6 @@ void compute_avgs_and_dirs_3_comp( * * @param pi The partition info for the current trial. * @param blk The image block color data to be compressed. - * @param ewb The image block weighted error data. * @param[out] pm The output partition metrics. * - Only pi.partition_count array entries actually get initialized. * - Direction vectors @c pm.dir are not normalized. @@ -1598,7 +1493,6 @@ void compute_avgs_and_dirs_3_comp( void compute_avgs_and_dirs_3_comp_rgb( const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, partition_metrics pm[BLOCK_MAX_PARTITIONS]); /** @@ -1606,7 +1500,6 @@ void compute_avgs_and_dirs_3_comp_rgb( * * @param pi The partition info for the current trial. * @param blk The image block color data to be compressed. - * @param ewb The image block weighted error data. * @param[out] pm The output partition metrics. * - Only pi.partition_count array entries actually get initialized. * - Direction vectors @c pm.dir are not normalized. @@ -1614,7 +1507,6 @@ void compute_avgs_and_dirs_3_comp_rgb( void compute_avgs_and_dirs_4_comp( const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, partition_metrics pm[BLOCK_MAX_PARTITIONS]); /** @@ -1629,7 +1521,6 @@ void compute_avgs_and_dirs_4_comp( * * @param pi The partition info for the current trial. * @param blk The image block color data to be compressed. - * @param ewb The image block weighted error data. * @param[in,out] plines Processed line inputs, and line length outputs. * @param[out] uncor_error The cumulative error for using the uncorrelated line. * @param[out] samec_error The cumulative error for using the same chroma line. @@ -1637,7 +1528,6 @@ void compute_avgs_and_dirs_4_comp( void compute_error_squared_rgb( const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, partition_lines3 plines[BLOCK_MAX_PARTITIONS], float& uncor_error, float& samec_error); @@ -1654,7 +1544,6 @@ void compute_error_squared_rgb( * * @param pi The partition info for the current trial. * @param blk The image block color data to be compressed. - * @param ewb The image block weighted error data. * @param uncor_plines Processed uncorrelated partition lines for each partition. * @param samec_plines Processed same chroma partition lines for each partition. * @param[out] uncor_lengths The length of each components deviation from the line. @@ -1665,7 +1554,6 @@ void compute_error_squared_rgb( void compute_error_squared_rgba( const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, const processed_line4 uncor_plines[BLOCK_MAX_PARTITIONS], const processed_line4 samec_plines[BLOCK_MAX_PARTITIONS], float uncor_lengths[BLOCK_MAX_PARTITIONS], @@ -1676,73 +1564,62 @@ void compute_error_squared_rgba( /** * @brief Find the best set of partitions to trial for a given block. * - * On return @c best_partition_uncor contains the best partition assuming data has uncorrelated - * chroma, @c best_partition_samec contains the best partition assuming data has corelated chroma. + * On return the @c best_partitions list will contain the two best partition + * candidates; one assuming data has uncorrelated chroma and one assuming the + * data has corelated chroma. The best candidate is returned first in the list. * * @param bsd The block size information. * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param partition_count The number of partitions in the block. * @param partition_search_limit The number of candidate partition encodings to trial. - * @param[out] best_partition_uncor The best partition for uncorrelated chroma. - * @param[out] best_partition_samec The best partition for correlated chroma. + * @param[out] best_partitions The best partition candidates. */ void find_best_partition_candidates( const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, unsigned int partition_count, unsigned int partition_search_limit, - unsigned int& best_partition_uncor, - unsigned int& best_partition_samec); + unsigned int best_partitions[2]); /* ============================================================================ Functionality for managing images and image related data. ============================================================================ */ /** - * @brief Setup computation of regional averages and variances in an image. + * @brief Setup computation of regional averages in an image. * * This must be done by only a single thread per image, before any thread calls - * @c compute_averages_and_variances(). + * @c compute_averages(). * - * Results are written back into @c img->input_averages, @c img->input_variances, - * and @c img->input_alpha_averages. + * Results are written back into @c img->input_alpha_averages. * * @param img The input image data, also holds output data. - * @param rgb_power The RGB component power. - * @param alpha_power The A component power. - * @param avg_var_kernel_radius The kernel radius (in pixels) for avg and var. * @param alpha_kernel_radius The kernel radius (in pixels) for alpha mods. * @param swz Input data component swizzle. * @param[out] ag The average variance arguments to init. * * @return The number of tasks in the processing stage. */ -unsigned int init_compute_averages_and_variances( +unsigned int init_compute_averages( const astcenc_image& img, - float rgb_power, - float alpha_power, - unsigned int avg_var_kernel_radius, unsigned int alpha_kernel_radius, const astcenc_swizzle& swz, - avg_var_args& ag); + avg_args& ag); /** - * @brief Compute regional averages and variances. + * @brief Compute regional averages in an image. * - * This function can be called by multiple threads, but only after a single thread calls the setup - * function @c init_compute_averages_and_variances(). + * This function can be called by multiple threads, but only after a single + * thread calls the setup function @c init_compute_averages(). * - * Results are written back into @c img->input_averages, @c img->input_variances, - * and @c img->input_alpha_averages. + * Results are written back into @c img->input_alpha_averages. * * @param[out] ctx The context. * @param ag The average and variance arguments created during setup. */ -void compute_averages_and_variances( +void compute_averages( astcenc_context& ctx, - const avg_var_args& ag); + const avg_args& ag); /** * @brief Fetch a single image block from the input image @@ -1799,14 +1676,12 @@ void write_image_block( * * @param bsd The block size information. * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param pi The partition info for the current trial. * @param[out] ei The endpoint and weight values. */ void compute_ideal_colors_and_weights_1plane( const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, const partition_info& pi, endpoints_and_weights& ei); @@ -1819,7 +1694,6 @@ void compute_ideal_colors_and_weights_1plane( * * @param bsd The block size information. * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param plane2_component The component assigned to plane 2. * @param[out] ei1 The endpoint and weight values for plane 1. * @param[out] ei2 The endpoint and weight values for plane 2. @@ -1827,7 +1701,6 @@ void compute_ideal_colors_and_weights_1plane( void compute_ideal_colors_and_weights_2planes( const block_size_descriptor& bsd, const image_block& blk, - const error_weight_block& ewb, unsigned int plane2_component, endpoints_and_weights& ei1, endpoints_and_weights& ei2); @@ -2054,7 +1927,6 @@ void unpack_weights( * @param bsd The block size information. * @param pi The partition info for the current trial. * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param ep The ideal endpoints. * @param qwt_bitcounts Bit counts for different quantization methods. * @param qwt_errors Errors for different quantization methods. @@ -2070,7 +1942,6 @@ unsigned int compute_ideal_endpoint_formats( const block_size_descriptor& bsd, const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, const endpoints& ep, const int* qwt_bitcounts, const float* qwt_errors, @@ -2087,7 +1958,6 @@ unsigned int compute_ideal_endpoint_formats( * recompute the ideal colors for a specific weight set. * * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param pi The partition info for the current trial. * @param di The weight grid decimation table. * @param weight_quant_mode The weight grid quantization level. @@ -2098,7 +1968,6 @@ unsigned int compute_ideal_endpoint_formats( */ void recompute_ideal_colors_1plane( const image_block& blk, - const error_weight_block& ewb, const partition_info& pi, const decimation_info& di, int weight_quant_mode, @@ -2114,7 +1983,6 @@ void recompute_ideal_colors_1plane( * recompute the ideal colors for a specific weight set. * * @param blk The image block color data to compress. - * @param ewb The image block weighted error data. * @param bsd The block_size descriptor. * @param di The weight grid decimation table. * @param weight_quant_mode The weight grid quantization level. @@ -2127,7 +1995,6 @@ void recompute_ideal_colors_1plane( */ void recompute_ideal_colors_2planes( const image_block& blk, - const error_weight_block& ewb, const block_size_descriptor& bsd, const decimation_info& di, int weight_quant_mode, @@ -2138,19 +2005,6 @@ void recompute_ideal_colors_2planes( vfloat4& rgbo_vector, int plane2_component); -/** - * @brief Expand the deblock weights based on the config deblocking parameter. - * - * The approach to deblocking is a general purpose approach which elevates the error weight - * significance of texels closest to the block periphery. This function computes the deblock weights - * for each texel, which can be mixed on a block-by-block basis with the other error weighting - * parameters to compute a specific per-texel weight for a trial. - * - * @param[in,out] ctx The context to expand. - */ -void expand_deblock_weights( - astcenc_context& ctx); - /** * @brief Expand the angular tables needed for the alternative to PCA that we use. */ @@ -2206,14 +2060,12 @@ void compute_angular_endpoints_2planes( * @brief Compress an image block into a physical block. * * @param ctx The compressor context and configuration. - * @param image The input image information. * @param blk The image block color data to compress. * @param[out] pcb The physical compressed block output. * @param[out] tmpbuf Preallocated scratch buffers for the compressor. */ void compress_block( const astcenc_context& ctx, - const astcenc_image& image, const image_block& blk, physical_compressed_block& pcb, compression_working_buffers& tmpbuf); @@ -2246,7 +2098,6 @@ void decompress_symbolic_block( * @param bsd The block size information. * @param scb The symbolic compressed encoding. * @param blk The original image block color data. - * @param ewb The error weight block data. * * @return Returns the computed error, or a negative value if the encoding * should be rejected for any reason. @@ -2255,8 +2106,7 @@ float compute_symbolic_block_difference( const astcenc_config& config, const block_size_descriptor& bsd, const symbolic_compressed_block& scb, - const image_block& blk, - const error_weight_block& ewb) ; + const image_block& blk); /** * @brief Convert a symbolic representation into a binary physical encoding. diff --git a/lib/astc-encoder/Source/astcenc_mathlib.h b/lib/astc-encoder/Source/astcenc_mathlib.h index 0dc17b42d0..4876749bfe 100644 --- a/lib/astc-encoder/Source/astcenc_mathlib.h +++ b/lib/astc-encoder/Source/astcenc_mathlib.h @@ -458,21 +458,18 @@ struct processed_line2 { vfloat4 amod; vfloat4 bs; - vfloat4 bis; }; struct processed_line3 { vfloat4 amod; vfloat4 bs; - vfloat4 bis; }; struct processed_line4 { vfloat4 amod; vfloat4 bs; - vfloat4 bis; }; #endif diff --git a/lib/astc-encoder/Source/astcenc_partition_tables.cpp b/lib/astc-encoder/Source/astcenc_partition_tables.cpp index fd840add16..52d76cfaf2 100644 --- a/lib/astc-encoder/Source/astcenc_partition_tables.cpp +++ b/lib/astc-encoder/Source/astcenc_partition_tables.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -58,7 +58,7 @@ static void generate_canonical_partitioning( { int index = partition_of_texel[i]; - if (mapped_index[index] == -1) + if (mapped_index[index] < 0) { mapped_index[index] = map_weight_count++; } diff --git a/lib/astc-encoder/Source/astcenc_pick_best_endpoint_format.cpp b/lib/astc-encoder/Source/astcenc_pick_best_endpoint_format.cpp index cbeb285535..140edb1029 100644 --- a/lib/astc-encoder/Source/astcenc_pick_best_endpoint_format.cpp +++ b/lib/astc-encoder/Source/astcenc_pick_best_endpoint_format.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -47,43 +47,6 @@ #include -/** - * @brief Compute cumulative error weight of each partition. - * - * The cumulative error weight is used to determine the relative importance of each partiton when - * deciding how to quantize colors, as not all partitions are equal. For example, some partitions - * will have far fewer texels than others in the same block. - * - * @param ewb The block error weights. - * @param pi The partiion info. - * @param[out] error_weights The output per-partition error_weight sum. - */ -static void compute_partition_error_color_weightings( - const error_weight_block& ewb, - const partition_info& pi, - vfloat4 error_weights[BLOCK_MAX_PARTITIONS] -) { - // TODO: Candidate for 4-group counting - int partition_count = pi.partition_count; - promise(partition_count > 0); - - for (int i = 0; i < partition_count; i++) - { - vfloat4 error_weight(1e-12f); - - int texel_count = pi.partition_texel_count[i]; - promise(texel_count > 0); - - for (int j = 0; j < texel_count; j++) - { - int tidx = pi.texels_of_partition[i][j]; - error_weight += ewb.error_weights[tidx]; - } - - error_weights[i] = error_weight / pi.partition_texel_count[i]; - } -} - /** * @brief Compute the errors of the endpoint line options for one partition. * @@ -96,7 +59,6 @@ static void compute_partition_error_color_weightings( * @param pi The partition info data. * @param partition_index The partition index to compule the error for. * @param blk The image block. - * @param ewb The error weight block. * @param uncor_pline The endpoint line assuming uncorrelated endpoints. * @param[out] uncor_err The computed error for the uncorrelated endpoint line. * @param samec_pline The endpoint line assuming the same chroma for both endpoints. @@ -111,7 +73,6 @@ static void compute_error_squared_rgb_single_partition( const partition_info& pi, int partition_index, const image_block& blk, - const error_weight_block& ewb, const processed_line3& uncor_pline, float& uncor_err, const processed_line3& samec_pline, @@ -134,14 +95,14 @@ static void compute_error_squared_rgb_single_partition( for (int i = 0; i < texels_in_partition; i++) { int tix = pi.texels_of_partition[partition_index][i]; - float texel_weight = ewb.texel_weight_rgb[tix]; + float texel_weight = hadd_s(blk.channel_weight.swz<0, 1, 2>()) / 3.0f; if (texel_weight < 1e-20f) { continue; } vfloat4 point = blk.texel(tix); - vfloat4 ews = ewb.error_weights[tix]; + vfloat4 ews = blk.channel_weight; // Compute the error that arises from just ditching alpha float default_alpha = blk.get_default_alpha(); @@ -149,24 +110,24 @@ static void compute_error_squared_rgb_single_partition( a_drop_err += omalpha * omalpha * ews.lane<3>(); float param1 = dot3_s(point, uncor_pline.bs); - vfloat4 rp1 = uncor_pline.amod + param1 * uncor_pline.bis; + vfloat4 rp1 = uncor_pline.amod + param1 * uncor_pline.bs; vfloat4 dist1 = rp1 - point; uncor_err += dot3_s(ews, dist1 * dist1); float param2 = dot3_s(point, samec_pline.bs); // No samec amod - we know it's always zero - vfloat4 rp2 = /* samec_pline.amod + */ param2 * samec_pline.bis; + vfloat4 rp2 = /* samec_pline.amod + */ param2 * samec_pline.bs; vfloat4 dist2 = rp2 - point; samec_err += dot3_s(ews, dist2 * dist2); float param3 = dot3_s(point, rgbl_pline.bs); - vfloat4 rp3 = rgbl_pline.amod + param3 * rgbl_pline.bis; + vfloat4 rp3 = rgbl_pline.amod + param3 * rgbl_pline.bs; vfloat4 dist3 = rp3 - point; rgbl_err += dot3_s(ews, dist3 * dist3); float param4 = dot3_s(point, l_pline.bs); // No luma amod - we know it's always zero - vfloat4 rp4 = /* l_pline.amod + */ param4 * l_pline.bis; + vfloat4 rp4 = /* l_pline.amod + */ param4 * l_pline.bs; vfloat4 dist4 = rp4 - point; l_err += dot3_s(ews, dist4 * dist4); } @@ -182,7 +143,6 @@ static void compute_error_squared_rgb_single_partition( * @param bsd The block size information. * @param blk The image block. * @param pi The partition info data. - * @param ewb The error weight block. * @param ep The idealized endpoints. * @param[out] eci The resulting encoding choice error metrics. */ @@ -190,7 +150,6 @@ static void compute_encoding_choice_errors( const block_size_descriptor& bsd, const image_block& blk, const partition_info& pi, - const error_weight_block& ewb, const endpoints& ep, encoding_choice_errors eci[BLOCK_MAX_PARTITIONS]) { @@ -202,19 +161,19 @@ static void compute_encoding_choice_errors( partition_metrics pms[BLOCK_MAX_PARTITIONS]; - compute_avgs_and_dirs_3_comp_rgb(pi, blk, ewb, pms); + compute_avgs_and_dirs_3_comp_rgb(pi, blk, pms); for (int i = 0; i < partition_count; i++) { partition_metrics& pm = pms[i]; line3 uncor_rgb_lines; - line3 samec_rgb_lines; // for LDR-RGB-scale - line3 rgb_luma_lines; // for HDR-RGB-scale + line3 samec_rgb_lines; // for LDR-RGB-scale + line3 rgb_luma_lines; // for HDR-RGB-scale processed_line3 uncor_rgb_plines; - processed_line3 samec_rgb_plines; // for LDR-RGB-scale - processed_line3 rgb_luma_plines; // for HDR-RGB-scale + processed_line3 samec_rgb_plines; + processed_line3 rgb_luma_plines; processed_line3 luminance_plines; float uncorr_rgb_error; @@ -223,41 +182,31 @@ static void compute_encoding_choice_errors( float luminance_rgb_error; float alpha_drop_error; - vfloat4 csf = pm.color_scale; - vfloat4 csfn = normalize(csf); - - vfloat4 icsf = pm.icolor_scale; - icsf.set_lane<3>(0.0f); - uncor_rgb_lines.a = pm.avg; - uncor_rgb_lines.b = normalize_safe(pm.dir, csfn); + uncor_rgb_lines.b = normalize_safe(pm.dir, unit3()); samec_rgb_lines.a = vfloat4::zero(); - samec_rgb_lines.b = normalize_safe(pm.avg, csfn); + samec_rgb_lines.b = normalize_safe(pm.avg, unit3()); rgb_luma_lines.a = pm.avg; - rgb_luma_lines.b = csfn; + rgb_luma_lines.b = unit3(); - uncor_rgb_plines.amod = (uncor_rgb_lines.a - uncor_rgb_lines.b * dot3(uncor_rgb_lines.a, uncor_rgb_lines.b)) * icsf; - uncor_rgb_plines.bs = uncor_rgb_lines.b * csf; - uncor_rgb_plines.bis = uncor_rgb_lines.b * icsf; + uncor_rgb_plines.amod = uncor_rgb_lines.a - uncor_rgb_lines.b * dot3(uncor_rgb_lines.a, uncor_rgb_lines.b); + uncor_rgb_plines.bs = uncor_rgb_lines.b; // Same chroma always goes though zero, so this is simpler than the others samec_rgb_plines.amod = vfloat4::zero(); - samec_rgb_plines.bs = samec_rgb_lines.b * csf; - samec_rgb_plines.bis = samec_rgb_lines.b * icsf; + samec_rgb_plines.bs = samec_rgb_lines.b; - rgb_luma_plines.amod = (rgb_luma_lines.a - rgb_luma_lines.b * dot3(rgb_luma_lines.a, rgb_luma_lines.b)) * icsf; - rgb_luma_plines.bs = rgb_luma_lines.b * csf; - rgb_luma_plines.bis = rgb_luma_lines.b * icsf; + rgb_luma_plines.amod = rgb_luma_lines.a - rgb_luma_lines.b * dot3(rgb_luma_lines.a, rgb_luma_lines.b); + rgb_luma_plines.bs = rgb_luma_lines.b; // Luminance always goes though zero, so this is simpler than the others luminance_plines.amod = vfloat4::zero(); - luminance_plines.bs = csfn * csf; - luminance_plines.bis = csfn * icsf; + luminance_plines.bs = unit3(); compute_error_squared_rgb_single_partition( - pi, i, blk, ewb, + pi, i, blk, uncor_rgb_plines, uncorr_rgb_error, samec_rgb_plines, samechroma_rgb_error, rgb_luma_plines, rgb_luma_error, @@ -284,9 +233,9 @@ static void compute_encoding_choice_errors( bool can_blue_contract = (mask(endpt_can_bc_lo & endpt_can_bc_hi) & 0x7) == 0x7; // Store out the settings - eci[i].rgb_scale_error = (samechroma_rgb_error - uncorr_rgb_error) * 0.7f; // empirical - eci[i].rgb_luma_error = (rgb_luma_error - uncorr_rgb_error) * 1.5f; // wild guess - eci[i].luminance_error = (luminance_rgb_error - uncorr_rgb_error) * 3.0f; // empirical + eci[i].rgb_scale_error = (samechroma_rgb_error - uncorr_rgb_error) * 0.7f; // empirical + eci[i].rgb_luma_error = (rgb_luma_error - uncorr_rgb_error) * 1.5f; // wild guess + eci[i].luminance_error = (luminance_rgb_error - uncorr_rgb_error) * 3.0f; // empirical eci[i].alpha_drop_error = alpha_drop_error * 3.0f; eci[i].can_offset_encode = can_offset_encode; eci[i].can_blue_contract = can_blue_contract; @@ -688,7 +637,7 @@ static float one_partition_find_best_combination_for_bitcount( int quant_level = quant_mode_table[integer_count][bits_available]; // Don't have enough bits to represent a given endpoint format at all! - if (quant_level == -1) + if (quant_level < 0) { continue; } @@ -791,7 +740,7 @@ static float two_partitions_find_best_combination_for_bitcount( int quant_level = quant_mode_table[integer_count][bits_available]; // Don't have enough bits to represent a given endpoint format at all! - if (quant_level == -1) + if (quant_level < 0) { break; } @@ -916,7 +865,7 @@ static float three_partitions_find_best_combination_for_bitcount( int quant_level = quant_mode_table[integer_count][bits_available]; // Don't have enough bits to represent a given endpoint format at all! - if (quant_level == -1) + if (quant_level < 0) { break; } @@ -1052,7 +1001,7 @@ static float four_partitions_find_best_combination_for_bitcount( int quant_level = quant_mode_table[integer_count][bits_available]; // Don't have enough bits to represent a given endpoint format at all! - if (quant_level == -1) + if (quant_level < 0) { break; } @@ -1094,7 +1043,6 @@ unsigned int compute_ideal_endpoint_formats( const block_size_descriptor& bsd, const partition_info& pi, const image_block& blk, - const error_weight_block& ewb, const endpoints& ep, // bitcounts and errors computed for the various quantization methods const int* qwt_bitcounts, @@ -1117,12 +1065,7 @@ unsigned int compute_ideal_endpoint_formats( // Compute the errors that result from various encoding choices (such as using luminance instead // of RGB, discarding Alpha, using RGB-scale in place of two separate RGB endpoints and so on) encoding_choice_errors eci[BLOCK_MAX_PARTITIONS]; - compute_encoding_choice_errors(bsd, blk, pi, ewb, ep, eci); - - // For each partition, compute the error weights to apply for that partition - vfloat4 error_weights[BLOCK_MAX_PARTITIONS]; - - compute_partition_error_color_weightings(ewb, pi, error_weights); + compute_encoding_choice_errors(bsd, blk, pi, ep, eci); float best_error[BLOCK_MAX_PARTITIONS][21][4]; int format_of_choice[BLOCK_MAX_PARTITIONS][21][4]; @@ -1130,7 +1073,7 @@ unsigned int compute_ideal_endpoint_formats( { compute_color_error_for_every_integer_count_and_quant_level( encode_hdr_rgb, encode_hdr_alpha, i, - pi, eci[i], ep, error_weights[i], best_error[i], + pi, eci[i], ep, blk.channel_weight, best_error[i], format_of_choice[i]); } @@ -1301,7 +1244,7 @@ unsigned int compute_ideal_endpoint_formats( vmask mask = mask1 & mask2; vbest_ep_error = select(vbest_ep_error, err, mask); vbest_error_index = select(vbest_error_index, lane_ids, mask); - lane_ids = lane_ids + vint(ASTCENC_SIMD_WIDTH); + lane_ids += vint(ASTCENC_SIMD_WIDTH); } // Pick best mode from the SIMD result, using lowest matching index to ensure invariance diff --git a/lib/astc-encoder/Source/astcenc_vecmathlib.h b/lib/astc-encoder/Source/astcenc_vecmathlib.h index ab86dc50c4..069c03c94f 100644 --- a/lib/astc-encoder/Source/astcenc_vecmathlib.h +++ b/lib/astc-encoder/Source/astcenc_vecmathlib.h @@ -243,7 +243,8 @@ static ASTCENC_SIMD_INLINE vfloat4 unit4() */ static ASTCENC_SIMD_INLINE vfloat4 unit3() { - return vfloat4(0.57735f, 0.57735f, 0.57735f, 0.0f); + float val = 0.577350258827209473f; + return vfloat4(val, val, val, 0.0f); } /** @@ -251,7 +252,8 @@ static ASTCENC_SIMD_INLINE vfloat4 unit3() */ static ASTCENC_SIMD_INLINE vfloat4 unit2() { - return vfloat4(0.70711f, 0.70711f, 0.0f, 0.0f); + float val = 0.707106769084930420f; + return vfloat4(val, val, 0.0f, 0.0f); } /** diff --git a/lib/astc-encoder/Source/astcenc_weight_align.cpp b/lib/astc-encoder/Source/astcenc_weight_align.cpp index 4c1e04e4a0..e29ff8861e 100644 --- a/lib/astc-encoder/Source/astcenc_weight_align.cpp +++ b/lib/astc-encoder/Source/astcenc_weight_align.cpp @@ -65,7 +65,7 @@ static const unsigned int quantization_steps_for_level[13] { alignas(ASTCENC_VECALIGN) static float sin_table[SINCOS_STEPS][ANGULAR_STEPS]; alignas(ASTCENC_VECALIGN) static float cos_table[SINCOS_STEPS][ANGULAR_STEPS]; -#if !defined(NDEBUG) +#if defined(ASTCENC_DIAGNOSTICS) static bool print_once { true }; #endif @@ -329,7 +329,7 @@ static void compute_angular_endpoints_for_quant_levels( int bsi = (int)best_results[q].lane<1>(); // Did we find anything? -#if !defined(NDEBUG) +#if defined(ASTCENC_DIAGNOSTICS) if ((bsi < 0) && print_once) { print_once = false; @@ -493,7 +493,7 @@ static void compute_angular_endpoints_for_quant_levels_lwc( int bsi = best_index[q]; // Did we find anything? -#if !defined(NDEBUG) +#if defined(ASTCENC_DIAGNOSTICS) if ((bsi < 0) && print_once) { print_once = false; diff --git a/lib/astc-encoder/Source/astcenccli_error_metrics.cpp b/lib/astc-encoder/Source/astcenccli_error_metrics.cpp index 4e28f95e13..9023d97f91 100644 --- a/lib/astc-encoder/Source/astcenccli_error_metrics.cpp +++ b/lib/astc-encoder/Source/astcenccli_error_metrics.cpp @@ -129,7 +129,7 @@ void compute_error_metrics( kahan_accum4 log_errorsum; kahan_accum4 mpsnr_errorsum; double mean_angular_errorsum = 0.0; - float worst_angular_errorsum = 0.0; + double worst_angular_errorsum = 0.0; unsigned int dim_x = astc::min(img1->dim_x, img2->dim_x); unsigned int dim_y = astc::min(img1->dim_y, img2->dim_y); @@ -282,9 +282,9 @@ void compute_error_metrics( // Float error can push this outside of valid range for acos, so clamp to avoid NaN issues float normal_cos = clamp(-1.0f, 1.0f, dot3(normal1, normal2)).lane<0>(); float rad_to_degrees = 180.0f / astc::PI; - float error_degrees = std::acos(static_cast(normal_cos)) * static_cast(rad_to_degrees); + double error_degrees = std::acos(static_cast(normal_cos)) * static_cast(rad_to_degrees); - mean_angular_errorsum += static_cast(error_degrees) / (dim_x * dim_y * dim_z); + mean_angular_errorsum += error_degrees / (dim_x * dim_y * dim_z); worst_angular_errorsum = astc::max(worst_angular_errorsum, error_degrees); } } @@ -396,7 +396,7 @@ void compute_error_metrics( if (compute_normal_metrics) { printf(" Mean Angular Error: %9.4f degrees\n", mean_angular_errorsum); - printf(" Worst Angular Error: %9.4f degrees\n", (double)worst_angular_errorsum); + printf(" Worst Angular Error: %9.4f degrees\n", worst_angular_errorsum); } printf("\n"); diff --git a/lib/astc-encoder/Source/astcenccli_image_load_store.cpp b/lib/astc-encoder/Source/astcenccli_image_load_store.cpp index 1adb82ee23..d6afd0a923 100644 --- a/lib/astc-encoder/Source/astcenccli_image_load_store.cpp +++ b/lib/astc-encoder/Source/astcenccli_image_load_store.cpp @@ -778,17 +778,17 @@ static unsigned int get_format( struct ktx_header { uint8_t magic[12]; - uint32_t endianness; // should be 0x04030201; if it is instead 0x01020304, then the endianness of everything must be switched. - uint32_t gl_type; // 0 for compressed textures, otherwise value from table 3.2 (page 162) of OpenGL 4.0 spec - uint32_t gl_type_size; // size of data elements to do endianness swap on (1=endian-neutral data) - uint32_t gl_format; // 0 for compressed textures, otherwise value from table 3.3 (page 163) of OpenGLl spec - uint32_t gl_internal_format; // sized-internal-format, corresponding to table 3.12 to 3.14 (pages 182-185) of OpenGL spec + uint32_t endianness; // should be 0x04030201; if it is instead 0x01020304, then the endianness of everything must be switched. + uint32_t gl_type; // 0 for compressed textures, otherwise value from table 3.2 (page 162) of OpenGL 4.0 spec + uint32_t gl_type_size; // size of data elements to do endianness swap on (1=endian-neutral data) + uint32_t gl_format; // 0 for compressed textures, otherwise value from table 3.3 (page 163) of OpenGL spec + uint32_t gl_internal_format; // sized-internal-format, corresponding to table 3.12 to 3.14 (pages 182-185) of OpenGL spec uint32_t gl_base_internal_format; // unsized-internal-format: corresponding to table 3.11 (page 179) of OpenGL spec - uint32_t pixel_width; // texture dimensions; not rounded up to block size for compressed. - uint32_t pixel_height; // must be 0 for 1D textures. - uint32_t pixel_depth; // must be 0 for 1D, 2D and cubemap textures. + uint32_t pixel_width; // texture dimensions; not rounded up to block size for compressed. + uint32_t pixel_height; // must be 0 for 1D textures. + uint32_t pixel_depth; // must be 0 for 1D, 2D and cubemap textures. uint32_t number_of_array_elements; // 0 if not a texture array - uint32_t number_of_faces; // 6 for cubemaps, 1 for non-cubemaps + uint32_t number_of_faces; // 6 for cubemaps, 1 for non-cubemaps uint32_t number_of_mipmap_levels; // 0 or 1 for non-mipmapped textures; 0 indicates that auto-mipmap-gen should be done at load time. uint32_t bytes_of_key_value_data; // size in bytes of the key-and-value area immediately following the header. }; diff --git a/lib/astc-encoder/Source/astcenccli_toplevel.cpp b/lib/astc-encoder/Source/astcenccli_toplevel.cpp index 273c421a9e..3f6a14dace 100644 --- a/lib/astc-encoder/Source/astcenccli_toplevel.cpp +++ b/lib/astc-encoder/Source/astcenccli_toplevel.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -655,37 +655,6 @@ static int edit_astcenc_config( argidx++; cli_config.silentmode = 1; } - else - if (!strcmp(argv[argidx], "-v")) - { - argidx += 7; - if (argidx > argc) - { - printf("ERROR: -v switch with less than 6 arguments\n"); - return 1; - } - - config.v_rgba_radius = atoi(argv[argidx - 6]); - config.v_rgb_power = static_cast(atof(argv[argidx - 5])); - config.v_rgb_base = static_cast(atof(argv[argidx - 4])); - config.v_rgb_mean = static_cast(atof(argv[argidx - 3])); - config.v_rgb_stdev = static_cast(atof(argv[argidx - 2])); - config.v_rgba_mean_stdev_mix = static_cast(atof(argv[argidx - 1])); - } - else if (!strcmp(argv[argidx], "-va")) - { - argidx += 5; - if (argidx > argc) - { - printf("ERROR: -va switch with less than 4 arguments\n"); - return 1; - } - - config.v_a_power= static_cast(atof(argv[argidx - 4])); - config.v_a_base = static_cast(atof(argv[argidx - 3])); - config.v_a_mean = static_cast(atof(argv[argidx - 2])); - config.v_a_stdev = static_cast(atof(argv[argidx - 1])); - } else if (!strcmp(argv[argidx], "-cw")) { argidx += 5; @@ -711,17 +680,6 @@ static int edit_astcenc_config( config.a_scale_radius = atoi(argv[argidx - 1]); } - else if (!strcmp(argv[argidx], "-b")) - { - argidx += 2; - if (argidx > argc) - { - printf("ERROR: -b switch with no argument\n"); - return 1; - } - - config.b_deblock_weight = static_cast(atof(argv[argidx - 1])); - } else if (!strcmp(argv[argidx], "-esw")) { argidx += 2; @@ -1125,17 +1083,6 @@ static void print_astcenc_config( } printf(" Bitrate: %3.2f bpp\n", 128.0 / (config.block_x * config.block_y * config.block_z)); - - printf(" Radius mean/stdev: %u texels\n", config.v_rgba_radius); - printf(" RGB power: %g\n", (double)config.v_rgb_power ); - printf(" RGB base weight: %g\n", (double)config.v_rgb_base); - printf(" RGB mean weight: %g\n", (double)config.v_rgb_mean); - printf(" RGB stdev weight: %g\n", (double)config.v_rgb_stdev); - printf(" RGB mean/stdev mixing: %g\n", (double)config.v_rgba_mean_stdev_mix); - printf(" Alpha power: %g\n", (double)config.v_a_power); - printf(" Alpha base weight: %g\n", (double)config.v_a_base); - printf(" Alpha mean weight: %g\n", (double)config.v_a_mean); - printf(" Alpha stdev weight: %g\n", (double)config.v_a_stdev); printf(" RGB alpha scale weight: %d\n", (config.flags & ASTCENC_FLG_USE_ALPHA_WEIGHT)); if ((config.flags & ASTCENC_FLG_USE_ALPHA_WEIGHT)) { @@ -1146,7 +1093,6 @@ static void print_astcenc_config( printf(" G component weight: %g\n",(double)config.cw_g_weight); printf(" B component weight: %g\n",(double)config.cw_b_weight); printf(" A component weight: %g\n",(double)config.cw_a_weight); - printf(" Deblock artifact setting: %g\n", (double)config.b_deblock_weight); printf(" Partition cutoff: %u partitions\n", config.tune_partition_count_limit); printf(" Partition index cutoff: %u partition ids\n", config.tune_partition_index_limit); printf(" PSNR cutoff: %g dB\n", (double)config.tune_db_limit); @@ -1154,7 +1100,8 @@ static void print_astcenc_config( printf(" 3.2+ partition cutoff: %g\n", (double)config.tune_3_partition_early_out_limit_factor); printf(" 2 plane correlation cutoff: %g\n", (double)config.tune_2_plane_early_out_limit_correlation); printf(" Block mode centile cutoff: %g%%\n", (double)(config.tune_block_mode_limit)); - printf(" Max refinement cutoff: %u iterations\n", config.tune_refinement_limit); + printf(" Candidate cutoff: %u candidates\n", config.tune_candidate_limit); + printf(" Refinement cutoff: %u iterations\n", config.tune_refinement_limit); printf(" Compressor thread count: %d\n", cli_config.thread_count); printf("\n"); } @@ -1512,7 +1459,7 @@ int main( if (operation & ASTCENC_STAGE_ST_NCOMP) { int bitness = get_output_filename_enforced_bitness(output_filename.c_str()); - if (bitness == -1) + if (bitness < 0) { return 1; } diff --git a/lib/astc-encoder/Source/astcenccli_toplevel_help.cpp b/lib/astc-encoder/Source/astcenccli_toplevel_help.cpp index a32e741a23..e9da90ea9a 100644 --- a/lib/astc-encoder/Source/astcenccli_toplevel_help.cpp +++ b/lib/astc-encoder/Source/astcenccli_toplevel_help.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 // ---------------------------------------------------------------------------- -// Copyright 2011-2021 Arm Limited +// Copyright 2011-2022 Arm Limited // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy @@ -161,14 +161,13 @@ COMPRESSION -mask The input texture is a mask texture with unrelated data stored in the various color components, so enable error heuristics that - aim to improve perceptual quality by minimizing the effect of - error cross-talk across the color components. + aim to improve quality by minimizing the effect of error + cross-talk across the color components. -normal The input texture is a three component linear LDR normal map storing unit length normals as (R=X, G=Y, B=Z). The output will - be a two component X+Y normal map stored as (RGB=X, A=Y), - optimized for angular error instead of simple PSNR. The Z + be a two component X+Y normal map stored as (RGB=X, A=Y). The Z component can be recovered programmatically in shader code by using the equation: @@ -218,17 +217,8 @@ R"( COMPRESSION TIPS & TRICKS ASTC is a block-based format that can be prone to block artifacts. If block artifacts are a problem when compressing a given texture, - adding some or all of following command-line options may help: - - -b 1.8 - -v 2 1 1 0 25 0.1 - -va 1 1 0 25 - -dblimit 60 - - The -b option is a general-purpose block-artifact reduction option. - The -v and -va option settings will concentrate effort where smooth - regions lie next to regions with high detail, which are particularly - prone to block artifacts. + increasing the compressor quality preset can help to alleviate the + problem. If a texture exhibits severe block artifacts in only some of the color components, which is a common problem for mask textures, then @@ -243,34 +233,6 @@ ADVANCED COMPRESSION These options provide low-level control of the codec error metric computation, used to determine what good compression looks like. - -v - Compute the per-texel relative error weighting for the RGB color - components as follows: - - weight = 1 / ( + * mean^2 + * stdev^2) - - The argument specifies the texel radius of the - neighborhood over which the average and standard deviation are - computed. - - The parameter is used to control the degree of mixing of - the average and stddev error values across the color components. - Setting this parameter to 0 causes the computation to be done - separately for each color component; setting it to 1 causes the - results from the RGB components to be combined and applied to - all three components. Intermediate values between these two - settings do a linear mix of the two. - - The argument is a power used to raise the values of the - input texels before computing average and standard deviation; - e.g. a power of 0.5 causes the codec to take the square root - of every input texel value. - - -va - Compute the per-texel relative error weighting for the alpha - component, when used in conjunction with -v. See documentation - of -v for individual parameter documentation. - -a For textures with alpha component, scale per-texel weights by the alpha value. The alpha value chosen for scaling of any @@ -290,12 +252,6 @@ ADVANCED COMPRESSION significance, and values below 1 to decrease it. Set to 0 to exclude a component from error computation. - -b - Assign an additional weight scaling for texels at compression - block edges and corners. Setting this to a value above 1 - increases the significance of texels closer to the edges of a - block, and can help to reduce block artifacts. - -mpsnr Set the low and high f-stop values for the mPSNR error metric. The mPSNR error metric only applies to HDR textures. diff --git a/lib/astc-encoder/Source/cmake_core.cmake b/lib/astc-encoder/Source/cmake_core.cmake index e3f9c5088b..8431fd8c84 100644 --- a/lib/astc-encoder/Source/cmake_core.cmake +++ b/lib/astc-encoder/Source/cmake_core.cmake @@ -118,6 +118,7 @@ macro(astcenc_set_properties NAME) $<$>:-Wno-c++98-c++11-compat-pedantic> $<$>:-Wno-float-equal> $<$>:-Wno-deprecated-declarations> + $<$>:-Wno-atomic-implicit-seq-cst> # Clang 10 also throws up warnings we need to investigate (ours) $<$>:-Wno-old-style-cast> @@ -127,8 +128,7 @@ macro(astcenc_set_properties NAME) $<$>:-Wno-shift-sign-overflow> $<$>:-Wno-format-nonliteral> - $<$:-Wdocumentation>) - + $<$:-Wdocumentation>) target_link_options(${NAME} PRIVATE diff --git a/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-avx2_fast_results.csv b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-avx2_fast_results.csv new file mode 100644 index 0000000000..732aec4103 --- /dev/null +++ b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-avx2_fast_results.csv @@ -0,0 +1,26 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +HDRIHaven,4x4,hdr-rgb-arboretum.hdr,45.0669,1.0118,0.1954,3.0179 +HDRIHaven,4x4,hdr-rgb-bellparkpier.hdr,55.4853,0.9918,0.1892,3.1170 +HDRIHaven,4x4,hdr-rgb-canarywharf.hdr,48.8957,1.0095,0.2078,2.8391 +HDRIHaven,4x4,hdr-rgb-eveningroad.hdr,51.7406,0.9948,0.1911,3.0868 +HDRIHaven,4x4,hdr-rgb-riverwalk.hdr,33.1598,1.0598,0.2341,2.5195 +HDRIHaven,5x5,hdr-rgb-arboretum.hdr,41.1233,1.0244,0.2071,2.8487 +HDRIHaven,5x5,hdr-rgb-bellparkpier.hdr,51.6737,1.0181,0.2134,2.7636 +HDRIHaven,5x5,hdr-rgb-canarywharf.hdr,45.2338,1.0224,0.2182,2.7026 +HDRIHaven,5x5,hdr-rgb-eveningroad.hdr,48.8638,1.0154,0.2110,2.7947 +HDRIHaven,5x5,hdr-rgb-riverwalk.hdr,29.4479,1.0509,0.2218,2.6588 +HDRIHaven,6x6,hdr-rgb-arboretum.hdr,37.5784,1.0535,0.2330,2.5319 +HDRIHaven,6x6,hdr-rgb-bellparkpier.hdr,48.7319,1.0505,0.2470,2.3880 +HDRIHaven,6x6,hdr-rgb-canarywharf.hdr,42.4279,1.0451,0.2421,2.4364 +HDRIHaven,6x6,hdr-rgb-eveningroad.hdr,46.5173,1.0457,0.2424,2.4335 +HDRIHaven,6x6,hdr-rgb-riverwalk.hdr,27.2878,1.0767,0.2421,2.4363 +HDRIHaven,8x8,hdr-rgb-arboretum.hdr,33.2512,1.1310,0.3065,1.9242 +HDRIHaven,8x8,hdr-rgb-bellparkpier.hdr,44.8497,1.1152,0.3037,1.9422 +HDRIHaven,8x8,hdr-rgb-canarywharf.hdr,39.0825,1.1111,0.3007,1.9616 +HDRIHaven,8x8,hdr-rgb-eveningroad.hdr,43.4225,1.1184,0.3092,1.9076 +HDRIHaven,8x8,hdr-rgb-riverwalk.hdr,24.4987,1.1422,0.3078,1.9160 +HDRIHaven,12x12,hdr-rgb-arboretum.hdr,29.8487,1.2094,0.3754,1.5714 +HDRIHaven,12x12,hdr-rgb-bellparkpier.hdr,40.7932,1.1612,0.3444,1.7125 +HDRIHaven,12x12,hdr-rgb-canarywharf.hdr,36.0121,1.1565,0.3415,1.7271 +HDRIHaven,12x12,hdr-rgb-eveningroad.hdr,40.6345,1.1783,0.3598,1.6392 +HDRIHaven,12x12,hdr-rgb-riverwalk.hdr,21.7877,1.2179,0.3688,1.5995 diff --git a/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-avx2_fastest_results.csv b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-avx2_fastest_results.csv new file mode 100644 index 0000000000..58a7b8200f --- /dev/null +++ b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-avx2_fastest_results.csv @@ -0,0 +1,26 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +HDRIHaven,4x4,hdr-rgb-arboretum.hdr,44.7130,0.9588,0.1393,4.2329 +HDRIHaven,4x4,hdr-rgb-bellparkpier.hdr,54.9971,0.9459,0.1407,4.1909 +HDRIHaven,4x4,hdr-rgb-canarywharf.hdr,47.7794,0.9407,0.1409,4.1851 +HDRIHaven,4x4,hdr-rgb-eveningroad.hdr,51.3870,0.9427,0.1402,4.2077 +HDRIHaven,4x4,hdr-rgb-riverwalk.hdr,32.8641,0.9754,0.1467,4.0218 +HDRIHaven,5x5,hdr-rgb-arboretum.hdr,40.9355,0.9741,0.1530,3.8554 +HDRIHaven,5x5,hdr-rgb-bellparkpier.hdr,51.2252,0.9622,0.1559,3.7826 +HDRIHaven,5x5,hdr-rgb-canarywharf.hdr,44.7811,0.9598,0.1553,3.7978 +HDRIHaven,5x5,hdr-rgb-eveningroad.hdr,48.6093,0.9621,0.1568,3.7607 +HDRIHaven,5x5,hdr-rgb-riverwalk.hdr,29.2727,0.9874,0.1566,3.7667 +HDRIHaven,6x6,hdr-rgb-arboretum.hdr,37.4807,0.9725,0.1519,3.8841 +HDRIHaven,6x6,hdr-rgb-bellparkpier.hdr,48.4526,0.9677,0.1618,3.6457 +HDRIHaven,6x6,hdr-rgb-canarywharf.hdr,42.1622,0.9563,0.1545,3.8177 +HDRIHaven,6x6,hdr-rgb-eveningroad.hdr,46.2996,0.9652,0.1592,3.7052 +HDRIHaven,6x6,hdr-rgb-riverwalk.hdr,27.1099,0.9868,0.1539,3.8316 +HDRIHaven,8x8,hdr-rgb-arboretum.hdr,33.1485,1.0464,0.2216,2.6619 +HDRIHaven,8x8,hdr-rgb-bellparkpier.hdr,44.5769,1.0381,0.2286,2.5799 +HDRIHaven,8x8,hdr-rgb-canarywharf.hdr,38.8599,1.0268,0.2201,2.6797 +HDRIHaven,8x8,hdr-rgb-eveningroad.hdr,43.2577,1.0426,0.2334,2.5267 +HDRIHaven,8x8,hdr-rgb-riverwalk.hdr,24.4475,1.0653,0.2281,2.5860 +HDRIHaven,12x12,hdr-rgb-arboretum.hdr,29.7571,1.0925,0.2616,2.2546 +HDRIHaven,12x12,hdr-rgb-bellparkpier.hdr,40.2753,1.0637,0.2484,2.3750 +HDRIHaven,12x12,hdr-rgb-canarywharf.hdr,35.6946,1.0561,0.2417,2.4401 +HDRIHaven,12x12,hdr-rgb-eveningroad.hdr,40.5180,1.0743,0.2580,2.2865 +HDRIHaven,12x12,hdr-rgb-riverwalk.hdr,21.7465,1.1092,0.2629,2.2432 diff --git a/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-avx2_medium_results.csv b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-avx2_medium_results.csv new file mode 100644 index 0000000000..96411c25d7 --- /dev/null +++ b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-avx2_medium_results.csv @@ -0,0 +1,26 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +HDRIHaven,4x4,hdr-rgb-arboretum.hdr,45.2989,1.1431,0.3263,1.8077 +HDRIHaven,4x4,hdr-rgb-bellparkpier.hdr,55.8448,1.1225,0.3179,1.8553 +HDRIHaven,4x4,hdr-rgb-canarywharf.hdr,49.2979,1.1614,0.3582,1.6468 +HDRIHaven,4x4,hdr-rgb-eveningroad.hdr,52.1322,1.1288,0.3263,1.8074 +HDRIHaven,4x4,hdr-rgb-riverwalk.hdr,33.5056,1.2328,0.4091,1.4416 +HDRIHaven,5x5,hdr-rgb-arboretum.hdr,41.2561,1.1746,0.3534,1.6689 +HDRIHaven,5x5,hdr-rgb-bellparkpier.hdr,52.0607,1.1797,0.3754,1.5713 +HDRIHaven,5x5,hdr-rgb-canarywharf.hdr,45.7645,1.2047,0.4005,1.4729 +HDRIHaven,5x5,hdr-rgb-eveningroad.hdr,49.0962,1.1732,0.3669,1.6075 +HDRIHaven,5x5,hdr-rgb-riverwalk.hdr,29.6665,1.2300,0.3974,1.4842 +HDRIHaven,6x6,hdr-rgb-arboretum.hdr,37.6440,1.2101,0.3886,1.5177 +HDRIHaven,6x6,hdr-rgb-bellparkpier.hdr,49.1563,1.2043,0.3931,1.5006 +HDRIHaven,6x6,hdr-rgb-canarywharf.hdr,42.9517,1.2313,0.4252,1.3873 +HDRIHaven,6x6,hdr-rgb-eveningroad.hdr,46.6672,1.2060,0.3999,1.4748 +HDRIHaven,6x6,hdr-rgb-riverwalk.hdr,27.3760,1.2484,0.4120,1.4315 +HDRIHaven,8x8,hdr-rgb-arboretum.hdr,33.3543,1.3286,0.5009,1.1776 +HDRIHaven,8x8,hdr-rgb-bellparkpier.hdr,45.2974,1.2856,0.4713,1.2515 +HDRIHaven,8x8,hdr-rgb-canarywharf.hdr,39.4949,1.3262,0.5136,1.1484 +HDRIHaven,8x8,hdr-rgb-eveningroad.hdr,43.5416,1.3229,0.5121,1.1517 +HDRIHaven,8x8,hdr-rgb-riverwalk.hdr,24.5296,1.3347,0.4945,1.1928 +HDRIHaven,12x12,hdr-rgb-arboretum.hdr,29.8933,1.4207,0.5832,1.0113 +HDRIHaven,12x12,hdr-rgb-bellparkpier.hdr,41.0115,1.3289,0.5098,1.1571 +HDRIHaven,12x12,hdr-rgb-canarywharf.hdr,36.1639,1.3568,0.5366,1.0992 +HDRIHaven,12x12,hdr-rgb-eveningroad.hdr,40.7329,1.3859,0.5641,1.0457 +HDRIHaven,12x12,hdr-rgb-riverwalk.hdr,21.8108,1.4150,0.5666,1.0410 diff --git a/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-avx2_thorough_results.csv b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-avx2_thorough_results.csv new file mode 100644 index 0000000000..1a335aa94c --- /dev/null +++ b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-avx2_thorough_results.csv @@ -0,0 +1,26 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +HDRIHaven,4x4,hdr-rgb-arboretum.hdr,45.4387,1.5007,0.6827,0.8640 +HDRIHaven,4x4,hdr-rgb-bellparkpier.hdr,56.1584,1.5126,0.7093,0.8316 +HDRIHaven,4x4,hdr-rgb-canarywharf.hdr,49.8149,1.5325,0.7287,0.8095 +HDRIHaven,4x4,hdr-rgb-eveningroad.hdr,52.3322,1.4812,0.6731,0.8763 +HDRIHaven,4x4,hdr-rgb-riverwalk.hdr,33.5595,1.5964,0.7707,0.7654 +HDRIHaven,5x5,hdr-rgb-arboretum.hdr,41.3120,1.5553,0.7382,0.7990 +HDRIHaven,5x5,hdr-rgb-bellparkpier.hdr,52.3550,1.6050,0.8019,0.7355 +HDRIHaven,5x5,hdr-rgb-canarywharf.hdr,46.2078,1.6175,0.8099,0.7283 +HDRIHaven,5x5,hdr-rgb-eveningroad.hdr,49.2387,1.5555,0.7486,0.7879 +HDRIHaven,5x5,hdr-rgb-riverwalk.hdr,29.7247,1.6007,0.7695,0.7665 +HDRIHaven,6x6,hdr-rgb-arboretum.hdr,37.6851,1.6480,0.8299,0.7107 +HDRIHaven,6x6,hdr-rgb-bellparkpier.hdr,49.3938,1.6863,0.8835,0.6676 +HDRIHaven,6x6,hdr-rgb-canarywharf.hdr,43.3393,1.6984,0.8950,0.6590 +HDRIHaven,6x6,hdr-rgb-eveningroad.hdr,46.7738,1.6571,0.8507,0.6934 +HDRIHaven,6x6,hdr-rgb-riverwalk.hdr,27.3990,1.6813,0.8447,0.6983 +HDRIHaven,8x8,hdr-rgb-arboretum.hdr,33.4043,1.8262,1.0008,0.5894 +HDRIHaven,8x8,hdr-rgb-bellparkpier.hdr,45.4828,1.7753,0.9649,0.6113 +HDRIHaven,8x8,hdr-rgb-canarywharf.hdr,39.7663,1.8137,1.0044,0.5872 +HDRIHaven,8x8,hdr-rgb-eveningroad.hdr,43.6460,1.8181,1.0027,0.5882 +HDRIHaven,8x8,hdr-rgb-riverwalk.hdr,24.5590,1.8192,0.9737,0.6058 +HDRIHaven,12x12,hdr-rgb-arboretum.hdr,29.9290,1.9715,1.1350,0.5197 +HDRIHaven,12x12,hdr-rgb-bellparkpier.hdr,41.1806,1.7997,0.9799,0.6019 +HDRIHaven,12x12,hdr-rgb-canarywharf.hdr,36.2773,1.8631,1.0418,0.5661 +HDRIHaven,12x12,hdr-rgb-eveningroad.hdr,40.7996,1.8878,1.0659,0.5534 +HDRIHaven,12x12,hdr-rgb-riverwalk.hdr,21.8164,1.9728,1.1216,0.5259 diff --git a/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse2_fast_results.csv b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse2_fast_results.csv new file mode 100644 index 0000000000..a406919c9a --- /dev/null +++ b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse2_fast_results.csv @@ -0,0 +1,26 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +HDRIHaven,4x4,hdr-rgb-arboretum.hdr,45.0669,1.1429,0.2490,2.3689 +HDRIHaven,4x4,hdr-rgb-bellparkpier.hdr,55.4853,1.1336,0.2398,2.4592 +HDRIHaven,4x4,hdr-rgb-canarywharf.hdr,48.8957,1.1569,0.2639,2.2351 +HDRIHaven,4x4,hdr-rgb-eveningroad.hdr,51.7406,1.1332,0.2429,2.4283 +HDRIHaven,4x4,hdr-rgb-riverwalk.hdr,33.1598,1.1898,0.2978,1.9808 +HDRIHaven,5x5,hdr-rgb-arboretum.hdr,41.1233,1.1824,0.2873,2.0529 +HDRIHaven,5x5,hdr-rgb-bellparkpier.hdr,51.6737,1.1927,0.2962,1.9911 +HDRIHaven,5x5,hdr-rgb-canarywharf.hdr,45.2338,1.1983,0.3030,1.9466 +HDRIHaven,5x5,hdr-rgb-eveningroad.hdr,48.8638,1.1893,0.2913,2.0246 +HDRIHaven,5x5,hdr-rgb-riverwalk.hdr,29.4479,1.2009,0.3073,1.9193 +HDRIHaven,6x6,hdr-rgb-arboretum.hdr,37.5784,1.2270,0.3304,1.7854 +HDRIHaven,6x6,hdr-rgb-bellparkpier.hdr,48.7319,1.2397,0.3497,1.6868 +HDRIHaven,6x6,hdr-rgb-canarywharf.hdr,42.4279,1.2370,0.3437,1.7162 +HDRIHaven,6x6,hdr-rgb-eveningroad.hdr,46.5173,1.2342,0.3426,1.7218 +HDRIHaven,6x6,hdr-rgb-riverwalk.hdr,27.2878,1.2395,0.3448,1.7108 +HDRIHaven,8x8,hdr-rgb-arboretum.hdr,33.2512,1.3403,0.4409,1.3378 +HDRIHaven,8x8,hdr-rgb-bellparkpier.hdr,44.8497,1.3373,0.4378,1.3473 +HDRIHaven,8x8,hdr-rgb-canarywharf.hdr,39.0825,1.3353,0.4366,1.3510 +HDRIHaven,8x8,hdr-rgb-eveningroad.hdr,43.4225,1.3449,0.4439,1.3287 +HDRIHaven,8x8,hdr-rgb-riverwalk.hdr,24.4987,1.3415,0.4409,1.3378 +HDRIHaven,12x12,hdr-rgb-arboretum.hdr,29.8487,1.4537,0.5451,1.0821 +HDRIHaven,12x12,hdr-rgb-bellparkpier.hdr,40.7932,1.4071,0.5016,1.1759 +HDRIHaven,12x12,hdr-rgb-canarywharf.hdr,36.0121,1.4024,0.4983,1.1837 +HDRIHaven,12x12,hdr-rgb-eveningroad.hdr,40.6345,1.4290,0.5213,1.1315 +HDRIHaven,12x12,hdr-rgb-riverwalk.hdr,21.7877,1.4435,0.5366,1.0992 diff --git a/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse2_fastest_results.csv b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse2_fastest_results.csv new file mode 100644 index 0000000000..811852370b --- /dev/null +++ b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse2_fastest_results.csv @@ -0,0 +1,26 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +HDRIHaven,4x4,hdr-rgb-arboretum.hdr,44.7130,1.0716,0.1785,3.3050 +HDRIHaven,4x4,hdr-rgb-bellparkpier.hdr,54.9971,1.0701,0.1814,3.2512 +HDRIHaven,4x4,hdr-rgb-canarywharf.hdr,47.7794,1.0751,0.1809,3.2609 +HDRIHaven,4x4,hdr-rgb-eveningroad.hdr,51.3870,1.0693,0.1817,3.2460 +HDRIHaven,4x4,hdr-rgb-riverwalk.hdr,32.8641,1.0785,0.1889,3.1225 +HDRIHaven,5x5,hdr-rgb-arboretum.hdr,40.9355,1.1054,0.2113,2.7908 +HDRIHaven,5x5,hdr-rgb-bellparkpier.hdr,51.2252,1.1090,0.2154,2.7384 +HDRIHaven,5x5,hdr-rgb-canarywharf.hdr,44.7811,1.1052,0.2145,2.7502 +HDRIHaven,5x5,hdr-rgb-eveningroad.hdr,48.6093,1.1058,0.2159,2.7318 +HDRIHaven,5x5,hdr-rgb-riverwalk.hdr,29.2727,1.1121,0.2170,2.7184 +HDRIHaven,6x6,hdr-rgb-arboretum.hdr,37.4807,1.1041,0.2094,2.8168 +HDRIHaven,6x6,hdr-rgb-bellparkpier.hdr,48.4526,1.1151,0.2222,2.6543 +HDRIHaven,6x6,hdr-rgb-canarywharf.hdr,42.1622,1.1041,0.2127,2.7730 +HDRIHaven,6x6,hdr-rgb-eveningroad.hdr,46.2996,1.1115,0.2183,2.7022 +HDRIHaven,6x6,hdr-rgb-riverwalk.hdr,27.1099,1.1031,0.2126,2.7742 +HDRIHaven,8x8,hdr-rgb-arboretum.hdr,33.1485,1.2121,0.3163,1.8645 +HDRIHaven,8x8,hdr-rgb-bellparkpier.hdr,44.5769,1.2260,0.3267,1.8056 +HDRIHaven,8x8,hdr-rgb-canarywharf.hdr,38.8599,1.2094,0.3124,1.8883 +HDRIHaven,8x8,hdr-rgb-eveningroad.hdr,43.2577,1.2330,0.3303,1.7855 +HDRIHaven,8x8,hdr-rgb-riverwalk.hdr,24.4475,1.2209,0.3236,1.8228 +HDRIHaven,12x12,hdr-rgb-arboretum.hdr,29.7571,1.2776,0.3749,1.5733 +HDRIHaven,12x12,hdr-rgb-bellparkpier.hdr,40.2753,1.2552,0.3563,1.6555 +HDRIHaven,12x12,hdr-rgb-canarywharf.hdr,35.6946,1.2511,0.3486,1.6918 +HDRIHaven,12x12,hdr-rgb-eveningroad.hdr,40.5180,1.2726,0.3693,1.5972 +HDRIHaven,12x12,hdr-rgb-riverwalk.hdr,21.7465,1.2771,0.3774,1.5627 diff --git a/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse2_medium_results.csv b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse2_medium_results.csv new file mode 100644 index 0000000000..3dfbe6aec1 --- /dev/null +++ b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse2_medium_results.csv @@ -0,0 +1,26 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +HDRIHaven,4x4,hdr-rgb-arboretum.hdr,45.2989,1.3344,0.4391,1.3432 +HDRIHaven,4x4,hdr-rgb-bellparkpier.hdr,55.8448,1.3223,0.4298,1.3724 +HDRIHaven,4x4,hdr-rgb-canarywharf.hdr,49.2979,1.3739,0.4800,1.2288 +HDRIHaven,4x4,hdr-rgb-eveningroad.hdr,52.1322,1.3334,0.4403,1.3396 +HDRIHaven,4x4,hdr-rgb-riverwalk.hdr,33.5056,1.4382,0.5452,1.0819 +HDRIHaven,5x5,hdr-rgb-arboretum.hdr,41.2561,1.4111,0.5123,1.1514 +HDRIHaven,5x5,hdr-rgb-bellparkpier.hdr,52.0607,1.4484,0.5477,1.0770 +HDRIHaven,5x5,hdr-rgb-canarywharf.hdr,45.7645,1.4736,0.5751,1.0256 +HDRIHaven,5x5,hdr-rgb-eveningroad.hdr,49.0962,1.4364,0.5361,1.1003 +HDRIHaven,5x5,hdr-rgb-riverwalk.hdr,29.6665,1.4742,0.5735,1.0285 +HDRIHaven,6x6,hdr-rgb-arboretum.hdr,37.6440,1.4660,0.5741,1.0274 +HDRIHaven,6x6,hdr-rgb-bellparkpier.hdr,49.1563,1.4854,0.5808,1.0156 +HDRIHaven,6x6,hdr-rgb-canarywharf.hdr,42.9517,1.5298,0.6289,0.9379 +HDRIHaven,6x6,hdr-rgb-eveningroad.hdr,46.6672,1.4824,0.5895,1.0006 +HDRIHaven,6x6,hdr-rgb-riverwalk.hdr,27.3760,1.5154,0.6097,0.9674 +HDRIHaven,8x8,hdr-rgb-arboretum.hdr,33.3543,1.6547,0.7481,0.7885 +HDRIHaven,8x8,hdr-rgb-bellparkpier.hdr,45.2974,1.6100,0.7074,0.8337 +HDRIHaven,8x8,hdr-rgb-canarywharf.hdr,39.4949,1.6657,0.7674,0.7686 +HDRIHaven,8x8,hdr-rgb-eveningroad.hdr,43.5416,1.6678,0.7687,0.7673 +HDRIHaven,8x8,hdr-rgb-riverwalk.hdr,24.5296,1.6428,0.7411,0.7959 +HDRIHaven,12x12,hdr-rgb-arboretum.hdr,29.8933,1.7892,0.8726,0.6759 +HDRIHaven,12x12,hdr-rgb-bellparkpier.hdr,41.0115,1.6776,0.7623,0.7737 +HDRIHaven,12x12,hdr-rgb-canarywharf.hdr,36.1639,1.7224,0.8057,0.7321 +HDRIHaven,12x12,hdr-rgb-eveningroad.hdr,40.7329,1.7716,0.8434,0.6993 +HDRIHaven,12x12,hdr-rgb-riverwalk.hdr,21.8108,1.7558,0.8435,0.6992 diff --git a/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse2_thorough_results.csv b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse2_thorough_results.csv new file mode 100644 index 0000000000..81b8d2490e --- /dev/null +++ b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse2_thorough_results.csv @@ -0,0 +1,26 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +HDRIHaven,4x4,hdr-rgb-arboretum.hdr,45.4387,1.8251,0.9072,0.6501 +HDRIHaven,4x4,hdr-rgb-bellparkpier.hdr,56.1584,1.8471,0.9540,0.6182 +HDRIHaven,4x4,hdr-rgb-canarywharf.hdr,49.8149,1.8621,0.9719,0.6069 +HDRIHaven,4x4,hdr-rgb-eveningroad.hdr,52.3322,1.8079,0.9113,0.6472 +HDRIHaven,4x4,hdr-rgb-riverwalk.hdr,33.5595,1.9063,1.0161,0.5805 +HDRIHaven,5x5,hdr-rgb-arboretum.hdr,41.3120,1.9537,1.0427,0.5657 +HDRIHaven,5x5,hdr-rgb-bellparkpier.hdr,52.3550,2.0348,1.1359,0.5193 +HDRIHaven,5x5,hdr-rgb-canarywharf.hdr,46.2078,2.0366,1.1362,0.5191 +HDRIHaven,5x5,hdr-rgb-eveningroad.hdr,49.2387,1.9614,1.0607,0.5561 +HDRIHaven,5x5,hdr-rgb-riverwalk.hdr,29.7247,1.9881,1.0822,0.5450 +HDRIHaven,6x6,hdr-rgb-arboretum.hdr,37.6851,2.1018,1.2040,0.4899 +HDRIHaven,6x6,hdr-rgb-bellparkpier.hdr,49.3938,2.1878,1.2930,0.4562 +HDRIHaven,6x6,hdr-rgb-canarywharf.hdr,43.3393,2.1912,1.2835,0.4596 +HDRIHaven,6x6,hdr-rgb-eveningroad.hdr,46.7738,2.1263,1.2332,0.4783 +HDRIHaven,6x6,hdr-rgb-riverwalk.hdr,27.3990,2.1128,1.2177,0.4844 +HDRIHaven,8x8,hdr-rgb-arboretum.hdr,33.4043,2.4169,1.5052,0.3918 +HDRIHaven,8x8,hdr-rgb-bellparkpier.hdr,45.4828,2.3467,1.4468,0.4077 +HDRIHaven,8x8,hdr-rgb-canarywharf.hdr,39.7663,2.4034,1.4948,0.3946 +HDRIHaven,8x8,hdr-rgb-eveningroad.hdr,43.6460,2.4071,1.4970,0.3940 +HDRIHaven,8x8,hdr-rgb-riverwalk.hdr,24.5590,2.3610,1.4574,0.4047 +HDRIHaven,12x12,hdr-rgb-arboretum.hdr,29.9290,2.6159,1.7039,0.3462 +HDRIHaven,12x12,hdr-rgb-bellparkpier.hdr,41.1806,2.4002,1.4812,0.3982 +HDRIHaven,12x12,hdr-rgb-canarywharf.hdr,36.2773,2.4923,1.5754,0.3744 +HDRIHaven,12x12,hdr-rgb-eveningroad.hdr,40.7996,2.5192,1.6016,0.3683 +HDRIHaven,12x12,hdr-rgb-riverwalk.hdr,21.8164,2.6027,1.6928,0.3484 diff --git a/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse4.1_fast_results.csv b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse4.1_fast_results.csv new file mode 100644 index 0000000000..649130198c --- /dev/null +++ b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse4.1_fast_results.csv @@ -0,0 +1,26 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +HDRIHaven,4x4,hdr-rgb-arboretum.hdr,45.0669,1.0194,0.2110,2.7947 +HDRIHaven,4x4,hdr-rgb-bellparkpier.hdr,55.4853,1.0142,0.2043,2.8868 +HDRIHaven,4x4,hdr-rgb-canarywharf.hdr,48.8957,1.0355,0.2250,2.6220 +HDRIHaven,4x4,hdr-rgb-eveningroad.hdr,51.7406,1.0116,0.2060,2.8636 +HDRIHaven,4x4,hdr-rgb-riverwalk.hdr,33.1598,1.0591,0.2527,2.3342 +HDRIHaven,5x5,hdr-rgb-arboretum.hdr,41.1233,1.0499,0.2420,2.4375 +HDRIHaven,5x5,hdr-rgb-bellparkpier.hdr,51.6737,1.0570,0.2478,2.3805 +HDRIHaven,5x5,hdr-rgb-canarywharf.hdr,45.2338,1.0622,0.2541,2.3209 +HDRIHaven,5x5,hdr-rgb-eveningroad.hdr,48.8638,1.0589,0.2457,2.4002 +HDRIHaven,5x5,hdr-rgb-riverwalk.hdr,29.4479,1.0688,0.2575,2.2909 +HDRIHaven,6x6,hdr-rgb-arboretum.hdr,37.5784,1.0968,0.2860,2.0625 +HDRIHaven,6x6,hdr-rgb-bellparkpier.hdr,48.7319,1.1042,0.2996,1.9684 +HDRIHaven,6x6,hdr-rgb-canarywharf.hdr,42.4279,1.1036,0.2958,1.9937 +HDRIHaven,6x6,hdr-rgb-eveningroad.hdr,46.5173,1.1037,0.2939,2.0069 +HDRIHaven,6x6,hdr-rgb-riverwalk.hdr,27.2878,1.1074,0.2965,1.9892 +HDRIHaven,8x8,hdr-rgb-arboretum.hdr,33.2512,1.2073,0.3874,1.5224 +HDRIHaven,8x8,hdr-rgb-bellparkpier.hdr,44.8497,1.1991,0.3827,1.5413 +HDRIHaven,8x8,hdr-rgb-canarywharf.hdr,39.0825,1.1992,0.3813,1.5467 +HDRIHaven,8x8,hdr-rgb-eveningroad.hdr,43.4225,1.2058,0.3899,1.5128 +HDRIHaven,8x8,hdr-rgb-riverwalk.hdr,24.4987,1.2060,0.3908,1.5091 +HDRIHaven,12x12,hdr-rgb-arboretum.hdr,29.8487,1.3111,0.4871,1.2108 +HDRIHaven,12x12,hdr-rgb-bellparkpier.hdr,40.7932,1.2695,0.4477,1.3175 +HDRIHaven,12x12,hdr-rgb-canarywharf.hdr,36.0121,1.2652,0.4444,1.3272 +HDRIHaven,12x12,hdr-rgb-eveningroad.hdr,40.6345,1.2884,0.4673,1.2623 +HDRIHaven,12x12,hdr-rgb-riverwalk.hdr,21.7877,1.3009,0.4802,1.2284 diff --git a/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse4.1_fastest_results.csv b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse4.1_fastest_results.csv new file mode 100644 index 0000000000..4362920787 --- /dev/null +++ b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse4.1_fastest_results.csv @@ -0,0 +1,26 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +HDRIHaven,4x4,hdr-rgb-arboretum.hdr,44.7130,0.9557,0.1513,3.8983 +HDRIHaven,4x4,hdr-rgb-bellparkpier.hdr,54.9971,0.9562,0.1531,3.8527 +HDRIHaven,4x4,hdr-rgb-canarywharf.hdr,47.7794,0.9613,0.1536,3.8396 +HDRIHaven,4x4,hdr-rgb-eveningroad.hdr,51.3870,0.9574,0.1534,3.8440 +HDRIHaven,4x4,hdr-rgb-riverwalk.hdr,32.8641,0.9672,0.1602,3.6810 +HDRIHaven,5x5,hdr-rgb-arboretum.hdr,40.9355,0.9898,0.1782,3.3098 +HDRIHaven,5x5,hdr-rgb-bellparkpier.hdr,51.2252,0.9894,0.1801,3.2743 +HDRIHaven,5x5,hdr-rgb-canarywharf.hdr,44.7811,0.9842,0.1799,3.2784 +HDRIHaven,5x5,hdr-rgb-eveningroad.hdr,48.6093,0.9886,0.1808,3.2620 +HDRIHaven,5x5,hdr-rgb-riverwalk.hdr,29.2727,0.9928,0.1825,3.2312 +HDRIHaven,6x6,hdr-rgb-arboretum.hdr,37.4807,0.9886,0.1811,3.2578 +HDRIHaven,6x6,hdr-rgb-bellparkpier.hdr,48.4526,0.9982,0.1917,3.0764 +HDRIHaven,6x6,hdr-rgb-canarywharf.hdr,42.1622,0.9899,0.1839,3.2070 +HDRIHaven,6x6,hdr-rgb-eveningroad.hdr,46.2996,0.9957,0.1883,3.1316 +HDRIHaven,6x6,hdr-rgb-riverwalk.hdr,27.1099,0.9919,0.1836,3.2132 +HDRIHaven,8x8,hdr-rgb-arboretum.hdr,33.1485,1.0930,0.2760,2.1369 +HDRIHaven,8x8,hdr-rgb-bellparkpier.hdr,44.5769,1.0976,0.2856,2.0655 +HDRIHaven,8x8,hdr-rgb-canarywharf.hdr,38.8599,1.0895,0.2744,2.1497 +HDRIHaven,8x8,hdr-rgb-eveningroad.hdr,43.2577,1.1032,0.2901,2.0335 +HDRIHaven,8x8,hdr-rgb-riverwalk.hdr,24.4475,1.1005,0.2836,2.0801 +HDRIHaven,12x12,hdr-rgb-arboretum.hdr,29.7571,1.1573,0.3362,1.7544 +HDRIHaven,12x12,hdr-rgb-bellparkpier.hdr,40.2753,1.1405,0.3195,1.8458 +HDRIHaven,12x12,hdr-rgb-canarywharf.hdr,35.6946,1.1298,0.3130,1.8842 +HDRIHaven,12x12,hdr-rgb-eveningroad.hdr,40.5180,1.1503,0.3315,1.7794 +HDRIHaven,12x12,hdr-rgb-riverwalk.hdr,21.7465,1.1586,0.3398,1.7358 diff --git a/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse4.1_medium_results.csv b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse4.1_medium_results.csv new file mode 100644 index 0000000000..e24bd35322 --- /dev/null +++ b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse4.1_medium_results.csv @@ -0,0 +1,26 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +HDRIHaven,4x4,hdr-rgb-arboretum.hdr,45.2989,1.1829,0.3733,1.5800 +HDRIHaven,4x4,hdr-rgb-bellparkpier.hdr,55.8448,1.1754,0.3664,1.6097 +HDRIHaven,4x4,hdr-rgb-canarywharf.hdr,49.2979,1.2213,0.4087,1.4431 +HDRIHaven,4x4,hdr-rgb-eveningroad.hdr,52.1322,1.1871,0.3761,1.5682 +HDRIHaven,4x4,hdr-rgb-riverwalk.hdr,33.5056,1.2804,0.4678,1.2608 +HDRIHaven,5x5,hdr-rgb-arboretum.hdr,41.2561,1.2567,0.4348,1.3567 +HDRIHaven,5x5,hdr-rgb-bellparkpier.hdr,52.0607,1.2823,0.4657,1.2667 +HDRIHaven,5x5,hdr-rgb-canarywharf.hdr,45.7645,1.3013,0.4884,1.2077 +HDRIHaven,5x5,hdr-rgb-eveningroad.hdr,49.0962,1.2738,0.4523,1.3041 +HDRIHaven,5x5,hdr-rgb-riverwalk.hdr,29.6665,1.3082,0.4935,1.1952 +HDRIHaven,6x6,hdr-rgb-arboretum.hdr,37.6440,1.3096,0.4975,1.1857 +HDRIHaven,6x6,hdr-rgb-bellparkpier.hdr,49.1563,1.3154,0.5037,1.1710 +HDRIHaven,6x6,hdr-rgb-canarywharf.hdr,42.9517,1.3634,0.5451,1.0820 +HDRIHaven,6x6,hdr-rgb-eveningroad.hdr,46.6672,1.3173,0.5060,1.1657 +HDRIHaven,6x6,hdr-rgb-riverwalk.hdr,27.3760,1.3435,0.5311,1.1106 +HDRIHaven,8x8,hdr-rgb-arboretum.hdr,33.3543,1.4803,0.6589,0.8952 +HDRIHaven,8x8,hdr-rgb-bellparkpier.hdr,45.2974,1.4427,0.6187,0.9533 +HDRIHaven,8x8,hdr-rgb-canarywharf.hdr,39.4949,1.4989,0.6679,0.8832 +HDRIHaven,8x8,hdr-rgb-eveningroad.hdr,43.5416,1.4916,0.6729,0.8765 +HDRIHaven,8x8,hdr-rgb-riverwalk.hdr,24.5296,1.4758,0.6528,0.9035 +HDRIHaven,12x12,hdr-rgb-arboretum.hdr,29.8933,1.6150,0.7856,0.7508 +HDRIHaven,12x12,hdr-rgb-bellparkpier.hdr,41.0115,1.5054,0.6823,0.8644 +HDRIHaven,12x12,hdr-rgb-canarywharf.hdr,36.1639,1.5492,0.7203,0.8188 +HDRIHaven,12x12,hdr-rgb-eveningroad.hdr,40.7329,1.5819,0.7541,0.7822 +HDRIHaven,12x12,hdr-rgb-riverwalk.hdr,21.8108,1.5788,0.7542,0.7821 diff --git a/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse4.1_thorough_results.csv b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse4.1_thorough_results.csv new file mode 100644 index 0000000000..f788d0be81 --- /dev/null +++ b/lib/astc-encoder/Test/Images/HDRIHaven/astc_reference-3.3-sse4.1_thorough_results.csv @@ -0,0 +1,26 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +HDRIHaven,4x4,hdr-rgb-arboretum.hdr,45.4387,1.6209,0.7892,0.7473 +HDRIHaven,4x4,hdr-rgb-bellparkpier.hdr,56.1584,1.6370,0.8173,0.7217 +HDRIHaven,4x4,hdr-rgb-canarywharf.hdr,49.8149,1.6517,0.8408,0.7015 +HDRIHaven,4x4,hdr-rgb-eveningroad.hdr,52.3322,1.5944,0.7846,0.7518 +HDRIHaven,4x4,hdr-rgb-riverwalk.hdr,33.5595,1.7022,0.8813,0.6693 +HDRIHaven,5x5,hdr-rgb-arboretum.hdr,41.3120,1.7166,0.9018,0.6541 +HDRIHaven,5x5,hdr-rgb-bellparkpier.hdr,52.3550,1.8080,0.9804,0.6016 +HDRIHaven,5x5,hdr-rgb-canarywharf.hdr,46.2078,1.7940,0.9844,0.5992 +HDRIHaven,5x5,hdr-rgb-eveningroad.hdr,49.2387,1.7271,0.9206,0.6407 +HDRIHaven,5x5,hdr-rgb-riverwalk.hdr,29.7247,1.7548,0.9452,0.6240 +HDRIHaven,6x6,hdr-rgb-arboretum.hdr,37.6851,1.8682,1.0555,0.5588 +HDRIHaven,6x6,hdr-rgb-bellparkpier.hdr,49.3938,1.9363,1.1255,0.5241 +HDRIHaven,6x6,hdr-rgb-canarywharf.hdr,43.3393,1.9477,1.1307,0.5217 +HDRIHaven,6x6,hdr-rgb-eveningroad.hdr,46.7738,1.8896,1.0781,0.5471 +HDRIHaven,6x6,hdr-rgb-riverwalk.hdr,27.3990,1.8872,1.0734,0.5495 +HDRIHaven,8x8,hdr-rgb-arboretum.hdr,33.4043,2.1587,1.3354,0.4417 +HDRIHaven,8x8,hdr-rgb-bellparkpier.hdr,45.4828,2.1009,1.2802,0.4607 +HDRIHaven,8x8,hdr-rgb-canarywharf.hdr,39.7663,2.1393,1.3188,0.4472 +HDRIHaven,8x8,hdr-rgb-eveningroad.hdr,43.6460,2.1474,1.3272,0.4444 +HDRIHaven,8x8,hdr-rgb-riverwalk.hdr,24.5590,2.1258,1.3003,0.4536 +HDRIHaven,12x12,hdr-rgb-arboretum.hdr,29.9290,2.3578,1.5276,0.3861 +HDRIHaven,12x12,hdr-rgb-bellparkpier.hdr,41.1806,2.1519,1.3223,0.4461 +HDRIHaven,12x12,hdr-rgb-canarywharf.hdr,36.2773,2.2332,1.4020,0.4207 +HDRIHaven,12x12,hdr-rgb-eveningroad.hdr,40.7996,2.2692,1.4439,0.4085 +HDRIHaven,12x12,hdr-rgb-riverwalk.hdr,21.8164,2.3442,1.5166,0.3889 diff --git a/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-avx2_fast_results.csv b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-avx2_fast_results.csv new file mode 100644 index 0000000000..5551f39541 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-avx2_fast_results.csv @@ -0,0 +1,51 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Khronos,4x4,ldr-l-occlusion.png,64.3090,0.0451,0.0179,58.4917 +Khronos,4x4,ldr-rgb-diffuse.png,52.5365,0.2806,0.1211,34.6336 +Khronos,4x4,ldr-rgb-emissive.png,58.5900,0.0470,0.0180,58.1283 +Khronos,4x4,ldr-rgb-metalrough.png,44.2755,0.1340,0.0891,11.7656 +Khronos,4x4,ldr-rgb-metalrough2.png,42.9041,0.7240,0.5534,7.5787 +Khronos,4x4,ldr-rgba-base.png,43.1786,0.1662,0.1144,9.1697 +Khronos,4x4,ldr-rgba-diffuse.png,43.7673,0.1313,0.0819,12.8074 +Khronos,4x4,ldr-rgba-specgloss.png,41.6477,0.2266,0.1716,6.1106 +Khronos,4x4,ldr-xy-normal1.png,44.7152,0.2220,0.1376,7.6217 +Khronos,4x4,ldr-xy-normal2.png,48.2346,0.4882,0.2052,20.4380 +Khronos,5x5,ldr-l-occlusion.png,54.3902,0.0441,0.0162,64.7715 +Khronos,5x5,ldr-rgb-diffuse.png,47.2230,0.2620,0.1020,41.1376 +Khronos,5x5,ldr-rgb-emissive.png,52.6538,0.0450,0.0149,70.2563 +Khronos,5x5,ldr-rgb-metalrough.png,39.8202,0.1193,0.0736,14.2514 +Khronos,5x5,ldr-rgb-metalrough2.png,37.8902,0.7631,0.5885,7.1266 +Khronos,5x5,ldr-rgba-base.png,38.8779,0.1406,0.0876,11.9638 +Khronos,5x5,ldr-rgba-diffuse.png,39.1300,0.1361,0.0860,12.1994 +Khronos,5x5,ldr-rgba-specgloss.png,38.3733,0.1737,0.1169,8.9717 +Khronos,5x5,ldr-xy-normal1.png,41.7789,0.1898,0.1048,10.0081 +Khronos,5x5,ldr-xy-normal2.png,46.0778,0.4380,0.1488,28.1905 +Khronos,6x6,ldr-l-occlusion.png,48.3967,0.0469,0.0180,58.2160 +Khronos,6x6,ldr-rgb-diffuse.png,43.2774,0.2952,0.1368,30.6576 +Khronos,6x6,ldr-rgb-emissive.png,49.1358,0.0457,0.0148,70.6729 +Khronos,6x6,ldr-rgb-metalrough.png,36.4607,0.1339,0.0874,11.9910 +Khronos,6x6,ldr-rgb-metalrough2.png,35.2979,0.7771,0.6011,6.9779 +Khronos,6x6,ldr-rgba-base.png,36.1065,0.1521,0.0989,10.5994 +Khronos,6x6,ldr-rgba-diffuse.png,36.0967,0.1567,0.1052,9.9702 +Khronos,6x6,ldr-rgba-specgloss.png,36.1155,0.1789,0.1228,8.5357 +Khronos,6x6,ldr-xy-normal1.png,39.5164,0.1858,0.1007,10.4112 +Khronos,6x6,ldr-xy-normal2.png,44.0458,0.4289,0.1458,28.7630 +Khronos,8x8,ldr-l-occlusion.png,43.9668,0.0507,0.0183,57.4465 +Khronos,8x8,ldr-rgb-diffuse.png,38.3589,0.2967,0.1382,30.3541 +Khronos,8x8,ldr-rgb-emissive.png,44.5586,0.0495,0.0144,72.6170 +Khronos,8x8,ldr-rgb-metalrough.png,32.3174,0.1543,0.1038,10.1044 +Khronos,8x8,ldr-rgb-metalrough2.png,32.1725,0.6156,0.4397,9.5394 +Khronos,8x8,ldr-rgba-base.png,32.3720,0.1647,0.1073,9.7760 +Khronos,8x8,ldr-rgba-diffuse.png,32.1163,0.1840,0.1287,8.1474 +Khronos,8x8,ldr-rgba-specgloss.png,32.9671,0.1772,0.1171,8.9581 +Khronos,8x8,ldr-xy-normal1.png,36.4300,0.1755,0.0855,12.2615 +Khronos,8x8,ldr-xy-normal2.png,40.6090,0.4415,0.1538,27.2705 +Khronos,12x12,ldr-l-occlusion.png,40.5943,0.0558,0.0155,67.5625 +Khronos,12x12,ldr-rgb-diffuse.png,33.3685,0.2774,0.1076,38.9776 +Khronos,12x12,ldr-rgb-emissive.png,39.4673,0.0559,0.0129,81.2647 +Khronos,12x12,ldr-rgb-metalrough.png,28.6461,0.1171,0.0593,17.6689 +Khronos,12x12,ldr-rgb-metalrough2.png,29.2463,0.3765,0.1902,22.0485 +Khronos,12x12,ldr-rgba-base.png,29.0228,0.1401,0.0750,13.9849 +Khronos,12x12,ldr-rgba-diffuse.png,28.6241,0.1506,0.0881,11.9039 +Khronos,12x12,ldr-rgba-specgloss.png,29.8104,0.1302,0.0620,16.9160 +Khronos,12x12,ldr-xy-normal1.png,32.7005,0.1519,0.0557,18.8146 +Khronos,12x12,ldr-xy-normal2.png,36.1148,0.4343,0.1352,31.0140 diff --git a/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-avx2_fastest_results.csv b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-avx2_fastest_results.csv new file mode 100644 index 0000000000..5314e62295 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-avx2_fastest_results.csv @@ -0,0 +1,51 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Khronos,4x4,ldr-l-occlusion.png,64.1941,0.0447,0.0178,58.8131 +Khronos,4x4,ldr-rgb-diffuse.png,52.0059,0.2643,0.1093,38.3791 +Khronos,4x4,ldr-rgb-emissive.png,57.3341,0.0456,0.0165,63.3889 +Khronos,4x4,ldr-rgb-metalrough.png,43.7699,0.1070,0.0616,17.0268 +Khronos,4x4,ldr-rgb-metalrough2.png,41.9343,0.5182,0.3436,12.2081 +Khronos,4x4,ldr-rgba-base.png,41.9135,0.1229,0.0711,14.7514 +Khronos,4x4,ldr-rgba-diffuse.png,42.2133,0.1014,0.0521,20.1382 +Khronos,4x4,ldr-rgba-specgloss.png,40.6138,0.1606,0.1056,9.9275 +Khronos,4x4,ldr-xy-normal1.png,44.3742,0.1679,0.0835,12.5558 +Khronos,4x4,ldr-xy-normal2.png,47.8186,0.4331,0.1502,27.9220 +Khronos,5x5,ldr-l-occlusion.png,53.9954,0.0441,0.0164,63.7546 +Khronos,5x5,ldr-rgb-diffuse.png,47.0475,0.2531,0.0940,44.5994 +Khronos,5x5,ldr-rgb-emissive.png,52.3440,0.0443,0.0142,73.7865 +Khronos,5x5,ldr-rgb-metalrough.png,39.2623,0.0973,0.0523,20.0531 +Khronos,5x5,ldr-rgb-metalrough2.png,37.2964,0.5447,0.3684,11.3842 +Khronos,5x5,ldr-rgba-base.png,38.0966,0.1117,0.0580,18.0736 +Khronos,5x5,ldr-rgba-diffuse.png,38.3637,0.1062,0.0559,18.7554 +Khronos,5x5,ldr-rgba-specgloss.png,37.9228,0.1330,0.0767,13.6704 +Khronos,5x5,ldr-xy-normal1.png,41.2741,0.1595,0.0745,14.0837 +Khronos,5x5,ldr-xy-normal2.png,45.6233,0.4071,0.1257,33.3567 +Khronos,6x6,ldr-l-occlusion.png,48.3173,0.0451,0.0168,62.2926 +Khronos,6x6,ldr-rgb-diffuse.png,43.2202,0.2681,0.1103,38.0349 +Khronos,6x6,ldr-rgb-emissive.png,48.9677,0.0435,0.0132,79.6372 +Khronos,6x6,ldr-rgb-metalrough.png,36.2598,0.1045,0.0586,17.8904 +Khronos,6x6,ldr-rgb-metalrough2.png,35.1006,0.5428,0.3665,11.4447 +Khronos,6x6,ldr-rgba-base.png,35.9363,0.1173,0.0636,16.4804 +Khronos,6x6,ldr-rgba-diffuse.png,35.9158,0.1156,0.0648,16.1895 +Khronos,6x6,ldr-rgba-specgloss.png,35.8871,0.1327,0.0761,13.7875 +Khronos,6x6,ldr-xy-normal1.png,38.7490,0.1572,0.0729,14.3781 +Khronos,6x6,ldr-xy-normal2.png,43.3507,0.4033,0.1179,35.5618 +Khronos,8x8,ldr-l-occlusion.png,43.5174,0.0477,0.0156,67.0741 +Khronos,8x8,ldr-rgb-diffuse.png,38.2805,0.2775,0.1185,35.4090 +Khronos,8x8,ldr-rgb-emissive.png,44.2634,0.0458,0.0122,86.1180 +Khronos,8x8,ldr-rgb-metalrough.png,32.2173,0.1247,0.0753,13.9314 +Khronos,8x8,ldr-rgb-metalrough2.png,32.0894,0.5014,0.3281,12.7821 +Khronos,8x8,ldr-rgba-base.png,32.1948,0.1332,0.0771,13.6018 +Khronos,8x8,ldr-rgba-diffuse.png,31.9940,0.1454,0.0913,11.4797 +Khronos,8x8,ldr-rgba-specgloss.png,32.8377,0.1441,0.0839,12.5043 +Khronos,8x8,ldr-xy-normal1.png,36.1740,0.1533,0.0639,16.4019 +Khronos,8x8,ldr-xy-normal2.png,40.2208,0.4117,0.1263,33.1996 +Khronos,12x12,ldr-l-occlusion.png,40.2215,0.0515,0.0137,76.2649 +Khronos,12x12,ldr-rgb-diffuse.png,33.3228,0.2638,0.0961,43.6674 +Khronos,12x12,ldr-rgb-emissive.png,39.2772,0.0515,0.0111,94.5755 +Khronos,12x12,ldr-rgb-metalrough.png,28.6028,0.0993,0.0444,23.6113 +Khronos,12x12,ldr-rgb-metalrough2.png,29.1711,0.3399,0.1553,27.0055 +Khronos,12x12,ldr-rgba-base.png,28.9721,0.1180,0.0558,18.7911 +Khronos,12x12,ldr-rgba-diffuse.png,28.5758,0.1253,0.0646,16.2218 +Khronos,12x12,ldr-rgba-specgloss.png,29.7655,0.1117,0.0464,22.5952 +Khronos,12x12,ldr-xy-normal1.png,32.5893,0.1376,0.0435,24.0863 +Khronos,12x12,ldr-xy-normal2.png,35.9244,0.4073,0.1138,36.8604 diff --git a/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-avx2_medium_results.csv b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-avx2_medium_results.csv new file mode 100644 index 0000000000..4dd5e3cb1e --- /dev/null +++ b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-avx2_medium_results.csv @@ -0,0 +1,51 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Khronos,4x4,ldr-l-occlusion.png,67.9252,0.0566,0.0292,35.8573 +Khronos,4x4,ldr-rgb-diffuse.png,54.0211,0.5043,0.3456,12.1350 +Khronos,4x4,ldr-rgb-emissive.png,59.8548,0.0597,0.0306,34.2570 +Khronos,4x4,ldr-rgb-metalrough.png,44.8446,0.3349,0.2900,3.6157 +Khronos,4x4,ldr-rgb-metalrough2.png,43.7323,2.1139,1.9413,2.1606 +Khronos,4x4,ldr-rgba-base.png,43.8162,0.4237,0.3712,2.8251 +Khronos,4x4,ldr-rgba-diffuse.png,44.2255,0.3011,0.2510,4.1782 +Khronos,4x4,ldr-rgba-specgloss.png,42.2910,0.5737,0.5165,2.0301 +Khronos,4x4,ldr-xy-normal1.png,46.3045,0.5039,0.4209,2.4912 +Khronos,4x4,ldr-xy-normal2.png,50.0187,1.1972,0.9334,4.4934 +Khronos,5x5,ldr-l-occlusion.png,57.1531,0.0636,0.0358,29.3307 +Khronos,5x5,ldr-rgb-diffuse.png,48.9951,0.5189,0.3608,11.6240 +Khronos,5x5,ldr-rgb-emissive.png,55.3919,0.0609,0.0305,34.4167 +Khronos,5x5,ldr-rgb-metalrough.png,40.2483,0.3605,0.3142,3.3372 +Khronos,5x5,ldr-rgb-metalrough2.png,39.0324,2.4606,2.2844,1.8361 +Khronos,5x5,ldr-rgba-base.png,39.4013,0.4599,0.4054,2.5864 +Khronos,5x5,ldr-rgba-diffuse.png,39.5677,0.3554,0.3044,3.4448 +Khronos,5x5,ldr-rgba-specgloss.png,38.7890,0.6064,0.5491,1.9096 +Khronos,5x5,ldr-xy-normal1.png,42.8900,0.4693,0.3865,2.7132 +Khronos,5x5,ldr-xy-normal2.png,47.0923,0.9152,0.6357,6.5983 +Khronos,6x6,ldr-l-occlusion.png,50.8758,0.0767,0.0477,22.0043 +Khronos,6x6,ldr-rgb-diffuse.png,44.9389,0.5638,0.4040,10.3822 +Khronos,6x6,ldr-rgb-emissive.png,51.5523,0.0643,0.0327,32.0763 +Khronos,6x6,ldr-rgb-metalrough.png,36.8383,0.3721,0.3246,3.2301 +Khronos,6x6,ldr-rgb-metalrough2.png,36.4455,2.3734,2.1974,1.9088 +Khronos,6x6,ldr-rgba-base.png,36.6494,0.4247,0.3710,2.8261 +Khronos,6x6,ldr-rgba-diffuse.png,36.5007,0.3928,0.3410,3.0749 +Khronos,6x6,ldr-rgba-specgloss.png,36.4986,0.6045,0.5465,1.9187 +Khronos,6x6,ldr-xy-normal1.png,40.4947,0.3965,0.3102,3.3805 +Khronos,6x6,ldr-xy-normal2.png,45.0774,0.6310,0.3460,12.1210 +Khronos,8x8,ldr-l-occlusion.png,45.4958,0.0913,0.0575,18.2504 +Khronos,8x8,ldr-rgb-diffuse.png,40.2507,0.7281,0.5657,7.4139 +Khronos,8x8,ldr-rgb-emissive.png,46.7043,0.0756,0.0389,26.9237 +Khronos,8x8,ldr-rgb-metalrough.png,32.6697,0.4659,0.4143,2.5308 +Khronos,8x8,ldr-rgb-metalrough2.png,33.2041,2.5359,2.3616,1.7761 +Khronos,8x8,ldr-rgba-base.png,33.0673,0.4602,0.4022,2.6074 +Khronos,8x8,ldr-rgba-diffuse.png,32.5821,0.5354,0.4787,2.1905 +Khronos,8x8,ldr-rgba-specgloss.png,33.4839,0.6220,0.5580,1.8792 +Khronos,8x8,ldr-xy-normal1.png,37.2327,0.4244,0.3347,3.1328 +Khronos,8x8,ldr-xy-normal2.png,41.9615,0.6538,0.3655,11.4770 +Khronos,12x12,ldr-l-occlusion.png,41.6919,0.0755,0.0331,31.6388 +Khronos,12x12,ldr-rgb-diffuse.png,35.7671,0.6088,0.4365,9.6097 +Khronos,12x12,ldr-rgb-emissive.png,41.3576,0.0878,0.0434,24.1701 +Khronos,12x12,ldr-rgb-metalrough.png,29.1082,0.3838,0.3240,3.2368 +Khronos,12x12,ldr-rgb-metalrough2.png,30.1561,1.5269,1.3371,3.1368 +Khronos,12x12,ldr-rgba-base.png,29.5934,0.3957,0.3275,3.2014 +Khronos,12x12,ldr-rgba-diffuse.png,29.0455,0.5473,0.4819,2.1761 +Khronos,12x12,ldr-rgba-specgloss.png,30.4824,0.4177,0.3471,3.0208 +Khronos,12x12,ldr-xy-normal1.png,33.4490,0.3592,0.2594,4.0427 +Khronos,12x12,ldr-xy-normal2.png,37.7065,0.6710,0.3720,11.2761 diff --git a/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-avx2_thorough_results.csv b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-avx2_thorough_results.csv new file mode 100644 index 0000000000..5498e6106a --- /dev/null +++ b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-avx2_thorough_results.csv @@ -0,0 +1,51 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Khronos,4x4,ldr-l-occlusion.png,70.5221,0.1158,0.0886,11.8348 +Khronos,4x4,ldr-rgb-diffuse.png,54.6774,2.4424,2.2826,1.8376 +Khronos,4x4,ldr-rgb-emissive.png,60.8648,0.0947,0.0652,16.0719 +Khronos,4x4,ldr-rgb-metalrough.png,44.9858,0.7214,0.6771,1.5486 +Khronos,4x4,ldr-rgb-metalrough2.png,44.0089,4.1916,4.0191,1.0436 +Khronos,4x4,ldr-rgba-base.png,44.0142,0.9384,0.8867,1.1826 +Khronos,4x4,ldr-rgba-diffuse.png,44.4165,0.6744,0.6251,1.6774 +Khronos,4x4,ldr-rgba-specgloss.png,42.4627,1.2129,1.1565,0.9067 +Khronos,4x4,ldr-xy-normal1.png,46.4670,1.4789,1.3982,0.7499 +Khronos,4x4,ldr-xy-normal2.png,50.3463,4.1623,3.9054,1.0740 +Khronos,5x5,ldr-l-occlusion.png,58.7342,0.2066,0.1784,5.8790 +Khronos,5x5,ldr-rgb-diffuse.png,49.8001,2.0568,1.8985,2.2092 +Khronos,5x5,ldr-rgb-emissive.png,56.1624,0.1057,0.0751,13.9654 +Khronos,5x5,ldr-rgb-metalrough.png,40.4643,0.8289,0.7828,1.3395 +Khronos,5x5,ldr-rgb-metalrough2.png,39.4983,4.7811,4.6046,0.9109 +Khronos,5x5,ldr-rgba-base.png,39.7612,1.0465,0.9914,1.0577 +Khronos,5x5,ldr-rgba-diffuse.png,39.9108,0.7662,0.7143,1.4680 +Khronos,5x5,ldr-rgba-specgloss.png,39.0348,1.3303,1.2724,0.8241 +Khronos,5x5,ldr-xy-normal1.png,43.2334,1.7148,1.6305,0.6431 +Khronos,5x5,ldr-xy-normal2.png,47.5990,5.2778,5.0107,0.8371 +Khronos,6x6,ldr-l-occlusion.png,52.2865,0.2692,0.2400,4.3688 +Khronos,6x6,ldr-rgb-diffuse.png,45.7896,2.0116,1.8520,2.2647 +Khronos,6x6,ldr-rgb-emissive.png,52.6926,0.1195,0.0878,11.9484 +Khronos,6x6,ldr-rgb-metalrough.png,37.0279,0.9989,0.9500,1.1038 +Khronos,6x6,ldr-rgb-metalrough2.png,36.7530,5.5664,5.3874,0.7785 +Khronos,6x6,ldr-rgba-base.png,36.8479,1.2458,1.1905,0.8808 +Khronos,6x6,ldr-rgba-diffuse.png,36.6732,0.9299,0.8781,1.1942 +Khronos,6x6,ldr-rgba-specgloss.png,36.6843,1.4847,1.4275,0.7346 +Khronos,6x6,ldr-xy-normal1.png,40.8932,1.4621,1.3776,0.7612 +Khronos,6x6,ldr-xy-normal2.png,45.6467,3.8780,3.6001,1.1651 +Khronos,8x8,ldr-l-occlusion.png,46.0703,0.3141,0.2800,3.7448 +Khronos,8x8,ldr-rgb-diffuse.png,40.8917,2.1414,1.9812,2.1170 +Khronos,8x8,ldr-rgb-emissive.png,47.6271,0.1221,0.0858,12.2214 +Khronos,8x8,ldr-rgb-metalrough.png,32.8320,1.1657,1.1135,0.9417 +Khronos,8x8,ldr-rgb-metalrough2.png,33.5908,6.5327,6.3571,0.6598 +Khronos,8x8,ldr-rgba-base.png,33.2583,1.5111,1.4520,0.7222 +Khronos,8x8,ldr-rgba-diffuse.png,32.7262,1.1964,1.1404,0.9195 +Khronos,8x8,ldr-rgba-specgloss.png,33.6365,1.7523,1.6892,0.6207 +Khronos,8x8,ldr-xy-normal1.png,37.5060,0.9499,0.8568,1.2239 +Khronos,8x8,ldr-xy-normal2.png,42.3776,1.7991,1.5105,2.7767 +Khronos,12x12,ldr-l-occlusion.png,42.4809,0.2526,0.2093,5.0101 +Khronos,12x12,ldr-rgb-diffuse.png,36.6137,2.3909,2.2153,1.8934 +Khronos,12x12,ldr-rgb-emissive.png,42.3682,0.1647,0.1193,8.7905 +Khronos,12x12,ldr-rgb-metalrough.png,29.2898,1.3103,1.2501,0.8388 +Khronos,12x12,ldr-rgb-metalrough2.png,30.7475,6.8293,6.6389,0.6318 +Khronos,12x12,ldr-rgba-base.png,29.9014,1.4780,1.4092,0.7441 +Khronos,12x12,ldr-rgba-diffuse.png,29.2391,1.3929,1.3252,0.7913 +Khronos,12x12,ldr-rgba-specgloss.png,30.7094,1.9087,1.8381,0.5705 +Khronos,12x12,ldr-xy-normal1.png,33.8564,0.9126,0.8110,1.2929 +Khronos,12x12,ldr-xy-normal2.png,38.3184,1.3996,1.1012,3.8089 diff --git a/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse2_fast_results.csv b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse2_fast_results.csv new file mode 100644 index 0000000000..0dbe0118b9 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse2_fast_results.csv @@ -0,0 +1,51 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Khronos,4x4,ldr-l-occlusion.png,64.3090,0.0503,0.0213,49.2867 +Khronos,4x4,ldr-rgb-diffuse.png,52.5365,0.3013,0.1451,28.8993 +Khronos,4x4,ldr-rgb-emissive.png,58.5900,0.0503,0.0201,52.1497 +Khronos,4x4,ldr-rgb-metalrough.png,44.2755,0.1576,0.1132,9.2600 +Khronos,4x4,ldr-rgb-metalrough2.png,42.9041,0.8762,0.7040,5.9581 +Khronos,4x4,ldr-rgba-base.png,43.1786,0.1969,0.1444,7.2612 +Khronos,4x4,ldr-rgba-diffuse.png,43.7673,0.1540,0.1035,10.1265 +Khronos,4x4,ldr-rgba-specgloss.png,41.6477,0.2740,0.2188,4.7919 +Khronos,4x4,ldr-xy-normal1.png,44.7152,0.2596,0.1738,6.0341 +Khronos,4x4,ldr-xy-normal2.png,48.2346,0.5389,0.2561,16.3794 +Khronos,5x5,ldr-l-occlusion.png,54.3902,0.0480,0.0182,57.6649 +Khronos,5x5,ldr-rgb-diffuse.png,47.2230,0.2816,0.1227,34.1778 +Khronos,5x5,ldr-rgb-emissive.png,52.6538,0.0488,0.0176,59.6661 +Khronos,5x5,ldr-rgb-metalrough.png,39.8202,0.1449,0.0989,10.6058 +Khronos,5x5,ldr-rgb-metalrough2.png,37.8902,0.9904,0.8138,5.1538 +Khronos,5x5,ldr-rgba-base.png,38.8779,0.1708,0.1178,8.8991 +Khronos,5x5,ldr-rgba-diffuse.png,39.1300,0.1665,0.1154,9.0843 +Khronos,5x5,ldr-rgba-specgloss.png,38.3733,0.2164,0.1601,6.5488 +Khronos,5x5,ldr-xy-normal1.png,41.7789,0.2263,0.1399,7.4957 +Khronos,5x5,ldr-xy-normal2.png,46.0778,0.4776,0.1898,22.1009 +Khronos,6x6,ldr-l-occlusion.png,48.3967,0.0518,0.0209,50.1282 +Khronos,6x6,ldr-rgb-diffuse.png,43.2774,0.3327,0.1741,24.0948 +Khronos,6x6,ldr-rgb-emissive.png,49.1358,0.0505,0.0182,57.6876 +Khronos,6x6,ldr-rgb-metalrough.png,36.4607,0.1701,0.1241,8.4502 +Khronos,6x6,ldr-rgb-metalrough2.png,35.2979,1.0260,0.8541,4.9110 +Khronos,6x6,ldr-rgba-base.png,36.1065,0.1946,0.1397,7.5036 +Khronos,6x6,ldr-rgba-diffuse.png,36.0967,0.2016,0.1494,7.0177 +Khronos,6x6,ldr-rgba-specgloss.png,36.1155,0.2322,0.1748,5.9995 +Khronos,6x6,ldr-xy-normal1.png,39.5164,0.2468,0.1572,6.6706 +Khronos,6x6,ldr-xy-normal2.png,44.0458,0.4833,0.1920,21.8441 +Khronos,8x8,ldr-l-occlusion.png,43.9668,0.0572,0.0225,46.6636 +Khronos,8x8,ldr-rgb-diffuse.png,38.3589,0.3542,0.1938,21.6450 +Khronos,8x8,ldr-rgb-emissive.png,44.5586,0.0557,0.0190,55.0547 +Khronos,8x8,ldr-rgb-metalrough.png,32.3174,0.2015,0.1512,6.9346 +Khronos,8x8,ldr-rgb-metalrough2.png,32.1725,0.8145,0.6392,6.5615 +Khronos,8x8,ldr-rgba-base.png,32.3720,0.2134,0.1550,6.7654 +Khronos,8x8,ldr-rgba-diffuse.png,32.1163,0.2443,0.1880,5.5778 +Khronos,8x8,ldr-rgba-specgloss.png,32.9671,0.2313,0.1693,6.1930 +Khronos,8x8,ldr-xy-normal1.png,36.4300,0.2112,0.1199,8.7440 +Khronos,8x8,ldr-xy-normal2.png,40.6090,0.5072,0.2124,19.7516 +Khronos,12x12,ldr-l-occlusion.png,40.5943,0.0628,0.0200,52.3085 +Khronos,12x12,ldr-rgb-diffuse.png,33.3685,0.3130,0.1442,29.0875 +Khronos,12x12,ldr-rgb-emissive.png,39.4673,0.0615,0.0177,59.2713 +Khronos,12x12,ldr-rgb-metalrough.png,28.6461,0.1413,0.0840,12.4878 +Khronos,12x12,ldr-rgb-metalrough2.png,29.2463,0.4507,0.2657,15.7887 +Khronos,12x12,ldr-rgba-base.png,29.0228,0.1746,0.1088,9.6358 +Khronos,12x12,ldr-rgba-diffuse.png,28.6241,0.1915,0.1281,8.1842 +Khronos,12x12,ldr-rgba-specgloss.png,29.8104,0.1564,0.0881,11.9071 +Khronos,12x12,ldr-xy-normal1.png,32.7005,0.1783,0.0789,13.2835 +Khronos,12x12,ldr-xy-normal2.png,36.1148,0.4877,0.1827,22.9582 diff --git a/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse2_fastest_results.csv b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse2_fastest_results.csv new file mode 100644 index 0000000000..a433e2aedd --- /dev/null +++ b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse2_fastest_results.csv @@ -0,0 +1,51 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Khronos,4x4,ldr-l-occlusion.png,64.1941,0.0498,0.0202,51.8405 +Khronos,4x4,ldr-rgb-diffuse.png,52.0059,0.2847,0.1274,32.9193 +Khronos,4x4,ldr-rgb-emissive.png,57.3341,0.0477,0.0173,60.4509 +Khronos,4x4,ldr-rgb-metalrough.png,43.7699,0.1242,0.0792,13.2391 +Khronos,4x4,ldr-rgb-metalrough2.png,41.9343,0.6160,0.4446,9.4329 +Khronos,4x4,ldr-rgba-base.png,41.9135,0.1430,0.0907,11.5653 +Khronos,4x4,ldr-rgba-diffuse.png,42.2133,0.1170,0.0669,15.6684 +Khronos,4x4,ldr-rgba-specgloss.png,40.6138,0.1928,0.1365,7.6817 +Khronos,4x4,ldr-xy-normal1.png,44.3742,0.1946,0.1084,9.6733 +Khronos,4x4,ldr-xy-normal2.png,47.8186,0.4842,0.1956,21.4417 +Khronos,5x5,ldr-l-occlusion.png,53.9954,0.0477,0.0181,58.0861 +Khronos,5x5,ldr-rgb-diffuse.png,47.0475,0.2709,0.1146,36.6020 +Khronos,5x5,ldr-rgb-emissive.png,52.3440,0.0478,0.0168,62.4084 +Khronos,5x5,ldr-rgb-metalrough.png,39.2623,0.1148,0.0692,15.1489 +Khronos,5x5,ldr-rgb-metalrough2.png,37.2964,0.6905,0.5163,8.1237 +Khronos,5x5,ldr-rgba-base.png,38.0966,0.1322,0.0789,13.2948 +Khronos,5x5,ldr-rgba-diffuse.png,38.3637,0.1244,0.0737,14.2209 +Khronos,5x5,ldr-rgba-specgloss.png,37.9228,0.1606,0.1043,10.0567 +Khronos,5x5,ldr-xy-normal1.png,41.2741,0.1860,0.1000,10.4835 +Khronos,5x5,ldr-xy-normal2.png,45.6233,0.4464,0.1564,26.8245 +Khronos,6x6,ldr-l-occlusion.png,48.3173,0.0497,0.0193,54.2607 +Khronos,6x6,ldr-rgb-diffuse.png,43.2202,0.3005,0.1429,29.3561 +Khronos,6x6,ldr-rgb-emissive.png,48.9677,0.0469,0.0149,70.4206 +Khronos,6x6,ldr-rgb-metalrough.png,36.2598,0.1253,0.0794,13.2099 +Khronos,6x6,ldr-rgb-metalrough2.png,35.1006,0.6776,0.5042,8.3191 +Khronos,6x6,ldr-rgba-base.png,35.9363,0.1404,0.0863,12.1563 +Khronos,6x6,ldr-rgba-diffuse.png,35.9158,0.1398,0.0883,11.8730 +Khronos,6x6,ldr-rgba-specgloss.png,35.8871,0.1618,0.1047,10.0144 +Khronos,6x6,ldr-xy-normal1.png,38.7490,0.1876,0.1001,10.4728 +Khronos,6x6,ldr-xy-normal2.png,43.3507,0.4427,0.1517,27.6405 +Khronos,8x8,ldr-l-occlusion.png,43.5174,0.0536,0.0196,53.3873 +Khronos,8x8,ldr-rgb-diffuse.png,38.2805,0.3222,0.1641,25.5579 +Khronos,8x8,ldr-rgb-emissive.png,44.2634,0.0513,0.0154,67.8994 +Khronos,8x8,ldr-rgb-metalrough.png,32.2173,0.1584,0.1084,9.6756 +Khronos,8x8,ldr-rgb-metalrough2.png,32.0894,0.6469,0.4719,8.8883 +Khronos,8x8,ldr-rgba-base.png,32.1948,0.1682,0.1099,9.5372 +Khronos,8x8,ldr-rgba-diffuse.png,31.9940,0.1878,0.1323,7.9253 +Khronos,8x8,ldr-rgba-specgloss.png,32.8377,0.1812,0.1198,8.7559 +Khronos,8x8,ldr-xy-normal1.png,36.1740,0.1805,0.0899,11.6619 +Khronos,8x8,ldr-xy-normal2.png,40.2208,0.4659,0.1723,24.3422 +Khronos,12x12,ldr-l-occlusion.png,40.2215,0.0573,0.0173,60.5275 +Khronos,12x12,ldr-rgb-diffuse.png,33.3228,0.2898,0.1245,33.7000 +Khronos,12x12,ldr-rgb-emissive.png,39.2772,0.0562,0.0147,71.4723 +Khronos,12x12,ldr-rgb-metalrough.png,28.6028,0.1177,0.0618,16.9689 +Khronos,12x12,ldr-rgb-metalrough2.png,29.1711,0.3912,0.2107,19.9088 +Khronos,12x12,ldr-rgba-base.png,28.9721,0.1426,0.0794,13.2106 +Khronos,12x12,ldr-rgba-diffuse.png,28.5758,0.1531,0.0916,11.4526 +Khronos,12x12,ldr-rgba-specgloss.png,29.7655,0.1304,0.0646,16.2255 +Khronos,12x12,ldr-xy-normal1.png,32.5893,0.1570,0.0599,17.5162 +Khronos,12x12,ldr-xy-normal2.png,35.9244,0.4514,0.1487,28.2137 diff --git a/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse2_medium_results.csv b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse2_medium_results.csv new file mode 100644 index 0000000000..c861c09113 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse2_medium_results.csv @@ -0,0 +1,51 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Khronos,4x4,ldr-l-occlusion.png,67.9252,0.0708,0.0416,25.2292 +Khronos,4x4,ldr-rgb-diffuse.png,54.0211,0.6456,0.4898,8.5636 +Khronos,4x4,ldr-rgb-emissive.png,59.8548,0.0685,0.0380,27.5645 +Khronos,4x4,ldr-rgb-metalrough.png,44.8446,0.4466,0.4010,2.6147 +Khronos,4x4,ldr-rgb-metalrough2.png,43.7323,2.8173,2.6452,1.5856 +Khronos,4x4,ldr-rgba-base.png,43.8162,0.5626,0.5098,2.0567 +Khronos,4x4,ldr-rgba-diffuse.png,44.2255,0.3966,0.3459,3.0317 +Khronos,4x4,ldr-rgba-specgloss.png,42.2910,0.7572,0.7015,1.4948 +Khronos,4x4,ldr-xy-normal1.png,46.3045,0.6409,0.5545,1.8912 +Khronos,4x4,ldr-xy-normal2.png,50.0187,1.5154,1.2475,3.3621 +Khronos,5x5,ldr-l-occlusion.png,57.1531,0.0757,0.0453,23.1336 +Khronos,5x5,ldr-rgb-diffuse.png,48.9951,0.6808,0.5227,8.0241 +Khronos,5x5,ldr-rgb-emissive.png,55.3919,0.0728,0.0411,25.4856 +Khronos,5x5,ldr-rgb-metalrough.png,40.2483,0.5096,0.4639,2.2601 +Khronos,5x5,ldr-rgb-metalrough2.png,39.0324,3.5427,3.3700,1.2446 +Khronos,5x5,ldr-rgba-base.png,39.4013,0.6512,0.5968,1.7569 +Khronos,5x5,ldr-rgba-diffuse.png,39.5677,0.5007,0.4491,2.3350 +Khronos,5x5,ldr-rgba-specgloss.png,38.7890,0.8638,0.8070,1.2993 +Khronos,5x5,ldr-xy-normal1.png,42.8900,0.6413,0.5542,1.8922 +Khronos,5x5,ldr-xy-normal2.png,47.0923,1.1802,0.8973,4.6745 +Khronos,6x6,ldr-l-occlusion.png,50.8758,0.0977,0.0668,15.6937 +Khronos,6x6,ldr-rgb-diffuse.png,44.9389,0.7616,0.6039,6.9448 +Khronos,6x6,ldr-rgb-emissive.png,51.5523,0.0786,0.0459,22.8672 +Khronos,6x6,ldr-rgb-metalrough.png,36.8383,0.5412,0.4942,2.1218 +Khronos,6x6,ldr-rgb-metalrough2.png,36.4455,3.4739,3.2973,1.2720 +Khronos,6x6,ldr-rgba-base.png,36.6494,0.6213,0.5626,1.8637 +Khronos,6x6,ldr-rgba-diffuse.png,36.5007,0.5707,0.5174,2.0264 +Khronos,6x6,ldr-rgba-specgloss.png,36.4986,0.8843,0.8259,1.2697 +Khronos,6x6,ldr-xy-normal1.png,40.4947,0.5421,0.4523,2.3184 +Khronos,6x6,ldr-xy-normal2.png,45.0774,0.7864,0.4945,8.4826 +Khronos,8x8,ldr-l-occlusion.png,45.4958,0.1205,0.0847,12.3847 +Khronos,8x8,ldr-rgb-diffuse.png,40.2507,1.0434,0.8797,4.7678 +Khronos,8x8,ldr-rgb-emissive.png,46.7043,0.0962,0.0593,17.6838 +Khronos,8x8,ldr-rgb-metalrough.png,32.6697,0.6961,0.6450,1.6257 +Khronos,8x8,ldr-rgb-metalrough2.png,33.2041,3.8385,3.6629,1.1451 +Khronos,8x8,ldr-rgba-base.png,33.0673,0.6851,0.6238,1.6811 +Khronos,8x8,ldr-rgba-diffuse.png,32.5821,0.8024,0.7452,1.4071 +Khronos,8x8,ldr-rgba-specgloss.png,33.4839,0.9306,0.8643,1.2132 +Khronos,8x8,ldr-xy-normal1.png,37.2327,0.5963,0.5024,2.0873 +Khronos,8x8,ldr-xy-normal2.png,41.9615,0.8441,0.5420,7.7379 +Khronos,12x12,ldr-l-occlusion.png,41.6919,0.0907,0.0458,22.9117 +Khronos,12x12,ldr-rgb-diffuse.png,35.7671,0.8382,0.6682,6.2766 +Khronos,12x12,ldr-rgb-emissive.png,41.3576,0.1067,0.0598,17.5271 +Khronos,12x12,ldr-rgb-metalrough.png,29.1082,0.5601,0.4985,2.1035 +Khronos,12x12,ldr-rgb-metalrough2.png,30.1561,2.2359,2.0497,2.0463 +Khronos,12x12,ldr-rgba-base.png,29.5934,0.5718,0.5031,2.0841 +Khronos,12x12,ldr-rgba-diffuse.png,29.0455,0.8088,0.7418,1.4135 +Khronos,12x12,ldr-rgba-specgloss.png,30.4824,0.6047,0.5335,1.9656 +Khronos,12x12,ldr-xy-normal1.png,33.4490,0.4946,0.3908,2.6832 +Khronos,12x12,ldr-xy-normal2.png,37.7065,0.8535,0.5471,7.6660 diff --git a/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse2_thorough_results.csv b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse2_thorough_results.csv new file mode 100644 index 0000000000..adf691d027 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse2_thorough_results.csv @@ -0,0 +1,51 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Khronos,4x4,ldr-l-occlusion.png,70.5221,0.1519,0.1232,8.5117 +Khronos,4x4,ldr-rgb-diffuse.png,54.6774,3.2664,3.1120,1.3478 +Khronos,4x4,ldr-rgb-emissive.png,60.8648,0.1132,0.0829,12.6487 +Khronos,4x4,ldr-rgb-metalrough.png,44.9858,0.9653,0.9176,1.1428 +Khronos,4x4,ldr-rgb-metalrough2.png,44.0089,5.6282,5.4597,0.7682 +Khronos,4x4,ldr-rgba-base.png,44.0142,1.2520,1.1997,0.8740 +Khronos,4x4,ldr-rgba-diffuse.png,44.4165,0.8888,0.8358,1.2547 +Khronos,4x4,ldr-rgba-specgloss.png,42.4627,1.5974,1.5413,0.6803 +Khronos,4x4,ldr-xy-normal1.png,46.4670,1.8841,1.8016,0.5820 +Khronos,4x4,ldr-xy-normal2.png,50.3463,5.3478,5.0842,0.8250 +Khronos,5x5,ldr-l-occlusion.png,58.7342,0.2854,0.2559,4.0975 +Khronos,5x5,ldr-rgb-diffuse.png,49.8001,2.9045,2.7461,1.5274 +Khronos,5x5,ldr-rgb-emissive.png,56.1624,0.1343,0.1026,10.2213 +Khronos,5x5,ldr-rgb-metalrough.png,40.4643,1.1857,1.1391,0.9206 +Khronos,5x5,ldr-rgb-metalrough2.png,39.4983,6.8232,6.6438,0.6313 +Khronos,5x5,ldr-rgba-base.png,39.7612,1.4884,1.4338,0.7313 +Khronos,5x5,ldr-rgba-diffuse.png,39.9108,1.0755,1.0239,1.0241 +Khronos,5x5,ldr-rgba-specgloss.png,39.0348,1.8675,1.8090,0.5796 +Khronos,5x5,ldr-xy-normal1.png,43.2334,2.3541,2.2690,0.4621 +Khronos,5x5,ldr-xy-normal2.png,47.5990,7.2957,7.0176,0.5977 +Khronos,6x6,ldr-l-occlusion.png,52.2865,0.3893,0.3582,2.9271 +Khronos,6x6,ldr-rgb-diffuse.png,45.7896,2.9247,2.7648,1.5170 +Khronos,6x6,ldr-rgb-emissive.png,52.6926,0.1579,0.1254,8.3635 +Khronos,6x6,ldr-rgb-metalrough.png,37.0279,1.4631,1.4116,0.7428 +Khronos,6x6,ldr-rgb-metalrough2.png,36.7530,8.1429,7.9659,0.5265 +Khronos,6x6,ldr-rgba-base.png,36.8479,1.8182,1.7641,0.5944 +Khronos,6x6,ldr-rgba-diffuse.png,36.6732,1.3475,1.2942,0.8102 +Khronos,6x6,ldr-rgba-specgloss.png,36.6843,2.1552,2.0944,0.5007 +Khronos,6x6,ldr-xy-normal1.png,40.8932,2.0748,1.9870,0.5277 +Khronos,6x6,ldr-xy-normal2.png,45.6467,5.4935,5.2122,0.8047 +Khronos,8x8,ldr-l-occlusion.png,46.0703,0.4654,0.4295,2.4415 +Khronos,8x8,ldr-rgb-diffuse.png,40.8917,3.2293,3.0674,1.3674 +Khronos,8x8,ldr-rgb-emissive.png,47.6271,0.1645,0.1267,8.2745 +Khronos,8x8,ldr-rgb-metalrough.png,32.8320,1.7789,1.7265,0.6074 +Khronos,8x8,ldr-rgb-metalrough2.png,33.5908,9.9405,9.7624,0.4296 +Khronos,8x8,ldr-rgba-base.png,33.2583,2.2787,2.2192,0.4725 +Khronos,8x8,ldr-rgba-diffuse.png,32.7262,1.8098,1.7526,0.5983 +Khronos,8x8,ldr-rgba-specgloss.png,33.6365,2.6251,2.5624,0.4092 +Khronos,8x8,ldr-xy-normal1.png,37.5060,1.3690,1.2747,0.8226 +Khronos,8x8,ldr-xy-normal2.png,42.3776,2.5958,2.3031,1.8212 +Khronos,12x12,ldr-l-occlusion.png,42.4809,0.3609,0.3132,3.3481 +Khronos,12x12,ldr-rgb-diffuse.png,36.6137,3.6026,3.4298,1.2229 +Khronos,12x12,ldr-rgb-emissive.png,42.3682,0.2266,0.1799,5.8297 +Khronos,12x12,ldr-rgb-metalrough.png,29.2898,1.9881,1.9264,0.5443 +Khronos,12x12,ldr-rgb-metalrough2.png,30.7475,10.4121,10.2223,0.4103 +Khronos,12x12,ldr-rgba-base.png,29.9014,2.2374,2.1680,0.4837 +Khronos,12x12,ldr-rgba-diffuse.png,29.2391,2.0996,2.0310,0.5163 +Khronos,12x12,ldr-rgba-specgloss.png,30.7094,2.8751,2.8025,0.3742 +Khronos,12x12,ldr-xy-normal1.png,33.8564,1.3241,1.2207,0.8590 +Khronos,12x12,ldr-xy-normal2.png,38.3184,1.9700,1.6614,2.5246 diff --git a/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse4.1_fast_results.csv b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse4.1_fast_results.csv new file mode 100644 index 0000000000..36ba284599 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse4.1_fast_results.csv @@ -0,0 +1,51 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Khronos,4x4,ldr-l-occlusion.png,64.3090,0.0491,0.0206,50.9169 +Khronos,4x4,ldr-rgb-diffuse.png,52.5365,0.2919,0.1339,31.3310 +Khronos,4x4,ldr-rgb-emissive.png,58.5900,0.0507,0.0208,50.4681 +Khronos,4x4,ldr-rgb-metalrough.png,44.2755,0.1416,0.0963,10.8853 +Khronos,4x4,ldr-rgb-metalrough2.png,42.9041,0.7565,0.5872,7.1431 +Khronos,4x4,ldr-rgba-base.png,43.1786,0.1731,0.1220,8.5957 +Khronos,4x4,ldr-rgba-diffuse.png,43.7673,0.1381,0.0882,11.8912 +Khronos,4x4,ldr-rgba-specgloss.png,41.6477,0.2384,0.1837,5.7078 +Khronos,4x4,ldr-xy-normal1.png,44.7152,0.2322,0.1478,7.0954 +Khronos,4x4,ldr-xy-normal2.png,48.2346,0.5062,0.2259,18.5700 +Khronos,5x5,ldr-l-occlusion.png,54.3902,0.0471,0.0178,58.8257 +Khronos,5x5,ldr-rgb-diffuse.png,47.2230,0.2695,0.1121,37.4181 +Khronos,5x5,ldr-rgb-emissive.png,52.6538,0.0473,0.0166,63.1713 +Khronos,5x5,ldr-rgb-metalrough.png,39.8202,0.1296,0.0842,12.4568 +Khronos,5x5,ldr-rgb-metalrough2.png,37.8902,0.8497,0.6755,6.2096 +Khronos,5x5,ldr-rgba-base.png,38.8779,0.1519,0.0993,10.5612 +Khronos,5x5,ldr-rgba-diffuse.png,39.1300,0.1481,0.0981,10.6918 +Khronos,5x5,ldr-rgba-specgloss.png,38.3733,0.1911,0.1363,7.6942 +Khronos,5x5,ldr-xy-normal1.png,41.7789,0.2022,0.1173,8.9379 +Khronos,5x5,ldr-xy-normal2.png,46.0778,0.4575,0.1683,24.9276 +Khronos,6x6,ldr-l-occlusion.png,48.3967,0.0505,0.0202,51.8631 +Khronos,6x6,ldr-rgb-diffuse.png,43.2774,0.3166,0.1573,26.6637 +Khronos,6x6,ldr-rgb-emissive.png,49.1358,0.0485,0.0168,62.4297 +Khronos,6x6,ldr-rgb-metalrough.png,36.4607,0.1529,0.1062,9.8767 +Khronos,6x6,ldr-rgb-metalrough2.png,35.2979,0.9039,0.7297,5.7480 +Khronos,6x6,ldr-rgba-base.png,36.1065,0.1738,0.1197,8.7571 +Khronos,6x6,ldr-rgba-diffuse.png,36.0967,0.1797,0.1283,8.1753 +Khronos,6x6,ldr-rgba-specgloss.png,36.1155,0.2064,0.1501,6.9856 +Khronos,6x6,ldr-xy-normal1.png,39.5164,0.2046,0.1191,8.8029 +Khronos,6x6,ldr-xy-normal2.png,44.0458,0.4590,0.1696,24.7360 +Khronos,8x8,ldr-l-occlusion.png,43.9668,0.0546,0.0198,52.9770 +Khronos,8x8,ldr-rgb-diffuse.png,38.3589,0.3275,0.1675,25.0400 +Khronos,8x8,ldr-rgb-emissive.png,44.5586,0.0536,0.0175,59.7926 +Khronos,8x8,ldr-rgb-metalrough.png,32.3174,0.1797,0.1297,8.0859 +Khronos,8x8,ldr-rgb-metalrough2.png,32.1725,0.7194,0.5452,7.6927 +Khronos,8x8,ldr-rgba-base.png,32.3720,0.1903,0.1335,7.8567 +Khronos,8x8,ldr-rgba-diffuse.png,32.1163,0.2177,0.1628,6.4423 +Khronos,8x8,ldr-rgba-specgloss.png,32.9671,0.2064,0.1452,7.2200 +Khronos,8x8,ldr-xy-normal1.png,36.4300,0.1939,0.1040,10.0805 +Khronos,8x8,ldr-xy-normal2.png,40.6090,0.4757,0.1855,22.6156 +Khronos,12x12,ldr-l-occlusion.png,40.5943,0.0607,0.0184,56.9415 +Khronos,12x12,ldr-rgb-diffuse.png,33.3685,0.2989,0.1290,32.5044 +Khronos,12x12,ldr-rgb-emissive.png,39.4673,0.0597,0.0163,64.2858 +Khronos,12x12,ldr-rgb-metalrough.png,28.6461,0.1306,0.0730,14.3585 +Khronos,12x12,ldr-rgb-metalrough2.png,29.2463,0.4177,0.2324,18.0498 +Khronos,12x12,ldr-rgba-base.png,29.0228,0.1591,0.0957,10.9561 +Khronos,12x12,ldr-rgba-diffuse.png,28.6241,0.1742,0.1112,9.4264 +Khronos,12x12,ldr-rgba-specgloss.png,29.8104,0.1441,0.0768,13.6598 +Khronos,12x12,ldr-xy-normal1.png,32.7005,0.1668,0.0697,15.0396 +Khronos,12x12,ldr-xy-normal2.png,36.1148,0.4629,0.1641,25.5597 diff --git a/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse4.1_fastest_results.csv b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse4.1_fastest_results.csv new file mode 100644 index 0000000000..1645f0c54c --- /dev/null +++ b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse4.1_fastest_results.csv @@ -0,0 +1,51 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Khronos,4x4,ldr-l-occlusion.png,64.1941,0.0486,0.0202,51.8479 +Khronos,4x4,ldr-rgb-diffuse.png,52.0059,0.2770,0.1193,35.1662 +Khronos,4x4,ldr-rgb-emissive.png,57.3341,0.0497,0.0198,52.9930 +Khronos,4x4,ldr-rgb-metalrough.png,43.7699,0.1122,0.0671,15.6236 +Khronos,4x4,ldr-rgb-metalrough2.png,41.9343,0.5455,0.3730,11.2441 +Khronos,4x4,ldr-rgba-base.png,41.9135,0.1287,0.0773,13.5580 +Khronos,4x4,ldr-rgba-diffuse.png,42.2133,0.1071,0.0579,18.1001 +Khronos,4x4,ldr-rgba-specgloss.png,40.6138,0.1691,0.1145,9.1573 +Khronos,4x4,ldr-xy-normal1.png,44.3742,0.1758,0.0909,11.5384 +Khronos,4x4,ldr-xy-normal2.png,47.8186,0.4560,0.1712,24.4976 +Khronos,5x5,ldr-l-occlusion.png,53.9954,0.0470,0.0174,60.2489 +Khronos,5x5,ldr-rgb-diffuse.png,47.0475,0.2611,0.1042,40.2455 +Khronos,5x5,ldr-rgb-emissive.png,52.3440,0.0459,0.0153,68.5524 +Khronos,5x5,ldr-rgb-metalrough.png,39.2623,0.1051,0.0603,17.3885 +Khronos,5x5,ldr-rgb-metalrough2.png,37.2964,0.6060,0.4330,9.6861 +Khronos,5x5,ldr-rgba-base.png,38.0966,0.1198,0.0674,15.5527 +Khronos,5x5,ldr-rgba-diffuse.png,38.3637,0.1129,0.0633,16.5631 +Khronos,5x5,ldr-rgba-specgloss.png,37.9228,0.1441,0.0886,11.8300 +Khronos,5x5,ldr-xy-normal1.png,41.2741,0.1678,0.0830,12.6281 +Khronos,5x5,ldr-xy-normal2.png,45.6233,0.4280,0.1383,30.3190 +Khronos,6x6,ldr-l-occlusion.png,48.3173,0.0483,0.0184,57.0064 +Khronos,6x6,ldr-rgb-diffuse.png,43.2202,0.2882,0.1292,32.4619 +Khronos,6x6,ldr-rgb-emissive.png,48.9677,0.0462,0.0149,70.1622 +Khronos,6x6,ldr-rgb-metalrough.png,36.2598,0.1146,0.0690,15.2073 +Khronos,6x6,ldr-rgb-metalrough2.png,35.1006,0.6063,0.4321,9.7069 +Khronos,6x6,ldr-rgba-base.png,35.9363,0.1277,0.0752,13.9505 +Khronos,6x6,ldr-rgba-diffuse.png,35.9158,0.1272,0.0768,13.6590 +Khronos,6x6,ldr-rgba-specgloss.png,35.8871,0.1467,0.0909,11.5365 +Khronos,6x6,ldr-xy-normal1.png,38.7490,0.1707,0.0854,12.2819 +Khronos,6x6,ldr-xy-normal2.png,43.3507,0.4207,0.1352,31.0289 +Khronos,8x8,ldr-l-occlusion.png,43.5174,0.0516,0.0177,59.1445 +Khronos,8x8,ldr-rgb-diffuse.png,38.2805,0.3007,0.1422,29.5046 +Khronos,8x8,ldr-rgb-emissive.png,44.2634,0.0504,0.0150,69.8724 +Khronos,8x8,ldr-rgb-metalrough.png,32.2173,0.1434,0.0937,11.1965 +Khronos,8x8,ldr-rgb-metalrough2.png,32.0894,0.5810,0.4050,10.3562 +Khronos,8x8,ldr-rgba-base.png,32.1948,0.1519,0.0948,11.0605 +Khronos,8x8,ldr-rgba-diffuse.png,31.9940,0.1690,0.1139,9.2083 +Khronos,8x8,ldr-rgba-specgloss.png,32.8377,0.1634,0.1031,10.1695 +Khronos,8x8,ldr-xy-normal1.png,36.1740,0.1663,0.0775,13.5387 +Khronos,8x8,ldr-xy-normal2.png,40.2208,0.4407,0.1510,27.7785 +Khronos,12x12,ldr-l-occlusion.png,40.2215,0.0556,0.0160,65.7003 +Khronos,12x12,ldr-rgb-diffuse.png,33.3228,0.2792,0.1123,37.3428 +Khronos,12x12,ldr-rgb-emissive.png,39.2772,0.0544,0.0140,74.9624 +Khronos,12x12,ldr-rgb-metalrough.png,28.6028,0.1166,0.0568,18.4686 +Khronos,12x12,ldr-rgb-metalrough2.png,29.1711,0.3648,0.1835,22.8560 +Khronos,12x12,ldr-rgba-base.png,28.9721,0.1320,0.0702,14.9347 +Khronos,12x12,ldr-rgba-diffuse.png,28.5758,0.1403,0.0807,13.0009 +Khronos,12x12,ldr-rgba-specgloss.png,29.7655,0.1212,0.0565,18.5723 +Khronos,12x12,ldr-xy-normal1.png,32.5893,0.1491,0.0532,19.6997 +Khronos,12x12,ldr-xy-normal2.png,35.9244,0.4328,0.1352,31.0245 diff --git a/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse4.1_medium_results.csv b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse4.1_medium_results.csv new file mode 100644 index 0000000000..dd54ed242e --- /dev/null +++ b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse4.1_medium_results.csv @@ -0,0 +1,51 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Khronos,4x4,ldr-l-occlusion.png,67.9252,0.0669,0.0380,27.5745 +Khronos,4x4,ldr-rgb-diffuse.png,54.0211,0.5749,0.4172,10.0540 +Khronos,4x4,ldr-rgb-emissive.png,59.8548,0.0660,0.0357,29.3342 +Khronos,4x4,ldr-rgb-metalrough.png,44.8446,0.3792,0.3349,3.1306 +Khronos,4x4,ldr-rgb-metalrough2.png,43.7323,2.3887,2.2127,1.8956 +Khronos,4x4,ldr-rgba-base.png,43.8162,0.4798,0.4282,2.4489 +Khronos,4x4,ldr-rgba-diffuse.png,44.2255,0.3404,0.2909,3.6051 +Khronos,4x4,ldr-rgba-specgloss.png,42.2910,0.6547,0.5962,1.7589 +Khronos,4x4,ldr-xy-normal1.png,46.3045,0.5571,0.4745,2.2098 +Khronos,4x4,ldr-xy-normal2.png,50.0187,1.3418,1.0738,3.9061 +Khronos,5x5,ldr-l-occlusion.png,57.1531,0.0707,0.0413,25.3917 +Khronos,5x5,ldr-rgb-diffuse.png,48.9951,0.5996,0.4404,9.5248 +Khronos,5x5,ldr-rgb-emissive.png,55.3919,0.0675,0.0362,28.9757 +Khronos,5x5,ldr-rgb-metalrough.png,40.2483,0.4350,0.3887,2.6978 +Khronos,5x5,ldr-rgb-metalrough2.png,39.0324,2.9740,2.7970,1.4996 +Khronos,5x5,ldr-rgba-base.png,39.4013,0.5586,0.5008,2.0939 +Khronos,5x5,ldr-rgba-diffuse.png,39.5677,0.4262,0.3763,2.7868 +Khronos,5x5,ldr-rgba-specgloss.png,38.7890,0.7380,0.6819,1.5377 +Khronos,5x5,ldr-xy-normal1.png,42.8900,0.5513,0.4669,2.2457 +Khronos,5x5,ldr-xy-normal2.png,47.0923,1.0512,0.7693,5.4518 +Khronos,6x6,ldr-l-occlusion.png,50.8758,0.0889,0.0578,18.1446 +Khronos,6x6,ldr-rgb-diffuse.png,44.9389,0.6824,0.5219,8.0364 +Khronos,6x6,ldr-rgb-emissive.png,51.5523,0.0733,0.0408,25.6928 +Khronos,6x6,ldr-rgb-metalrough.png,36.8383,0.4678,0.4204,2.4944 +Khronos,6x6,ldr-rgb-metalrough2.png,36.4455,3.0130,2.8358,1.4791 +Khronos,6x6,ldr-rgba-base.png,36.6494,0.5321,0.4779,2.1943 +Khronos,6x6,ldr-rgba-diffuse.png,36.5007,0.4949,0.4428,2.3682 +Khronos,6x6,ldr-rgba-specgloss.png,36.4986,0.7689,0.7118,1.4732 +Khronos,6x6,ldr-xy-normal1.png,40.4947,0.4750,0.3881,2.7022 +Khronos,6x6,ldr-xy-normal2.png,45.0774,0.7172,0.4281,9.7974 +Khronos,8x8,ldr-l-occlusion.png,45.4958,0.1095,0.0744,14.0983 +Khronos,8x8,ldr-rgb-diffuse.png,40.2507,0.9207,0.7603,5.5168 +Khronos,8x8,ldr-rgb-emissive.png,46.7043,0.0895,0.0513,20.4425 +Khronos,8x8,ldr-rgb-metalrough.png,32.6697,0.6091,0.5570,1.8826 +Khronos,8x8,ldr-rgb-metalrough2.png,33.2041,3.3351,3.1513,1.3310 +Khronos,8x8,ldr-rgba-base.png,33.0673,0.6054,0.5464,1.9190 +Khronos,8x8,ldr-rgba-diffuse.png,32.5821,0.7034,0.6459,1.6234 +Khronos,8x8,ldr-rgba-specgloss.png,33.4839,0.8141,0.7524,1.3937 +Khronos,8x8,ldr-xy-normal1.png,37.2327,0.5277,0.4368,2.4005 +Khronos,8x8,ldr-xy-normal2.png,41.9615,0.7648,0.4705,8.9145 +Khronos,12x12,ldr-l-occlusion.png,41.6919,0.0865,0.0413,25.3615 +Khronos,12x12,ldr-rgb-diffuse.png,35.7671,0.7612,0.5885,7.1275 +Khronos,12x12,ldr-rgb-emissive.png,41.3576,0.1013,0.0539,19.4531 +Khronos,12x12,ldr-rgb-metalrough.png,29.1082,0.4995,0.4384,2.3919 +Khronos,12x12,ldr-rgb-metalrough2.png,30.1561,1.9833,1.7939,2.3380 +Khronos,12x12,ldr-rgba-base.png,29.5934,0.5123,0.4416,2.3747 +Khronos,12x12,ldr-rgba-diffuse.png,29.0455,0.7188,0.6530,1.6058 +Khronos,12x12,ldr-rgba-specgloss.png,30.4824,0.5443,0.4710,2.2262 +Khronos,12x12,ldr-xy-normal1.png,33.4490,0.4487,0.3468,3.0237 +Khronos,12x12,ldr-xy-normal2.png,37.7065,0.7949,0.4884,8.5880 diff --git a/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse4.1_thorough_results.csv b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse4.1_thorough_results.csv new file mode 100644 index 0000000000..c5dad8c83d --- /dev/null +++ b/lib/astc-encoder/Test/Images/Khronos/astc_reference-3.3-sse4.1_thorough_results.csv @@ -0,0 +1,51 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Khronos,4x4,ldr-l-occlusion.png,70.5221,0.1348,0.1063,9.8672 +Khronos,4x4,ldr-rgb-diffuse.png,54.6774,2.8126,2.6550,1.5798 +Khronos,4x4,ldr-rgb-emissive.png,60.8648,0.1051,0.0753,13.9203 +Khronos,4x4,ldr-rgb-metalrough.png,44.9858,0.8286,0.7834,1.3385 +Khronos,4x4,ldr-rgb-metalrough2.png,44.0089,4.8362,4.6639,0.8993 +Khronos,4x4,ldr-rgba-base.png,44.0142,1.0803,1.0275,1.0205 +Khronos,4x4,ldr-rgba-diffuse.png,44.4165,0.7708,0.7209,1.4545 +Khronos,4x4,ldr-rgba-specgloss.png,42.4627,1.3894,1.3334,0.7864 +Khronos,4x4,ldr-xy-normal1.png,46.4670,1.6579,1.5750,0.6657 +Khronos,4x4,ldr-xy-normal2.png,50.3463,4.6933,4.4320,0.9464 +Khronos,5x5,ldr-l-occlusion.png,58.7342,0.2492,0.2188,4.7931 +Khronos,5x5,ldr-rgb-diffuse.png,49.8001,2.4932,2.3343,1.7968 +Khronos,5x5,ldr-rgb-emissive.png,56.1624,0.1194,0.0885,11.8522 +Khronos,5x5,ldr-rgb-metalrough.png,40.4643,1.0189,0.9669,1.0845 +Khronos,5x5,ldr-rgb-metalrough2.png,39.4983,5.8668,5.6951,0.7365 +Khronos,5x5,ldr-rgba-base.png,39.7612,1.2754,1.2220,0.8581 +Khronos,5x5,ldr-rgba-diffuse.png,39.9108,0.9265,0.8761,1.1969 +Khronos,5x5,ldr-rgba-specgloss.png,39.0348,1.6275,1.5706,0.6676 +Khronos,5x5,ldr-xy-normal1.png,43.2334,2.0535,1.9671,0.5331 +Khronos,5x5,ldr-xy-normal2.png,47.5990,6.3518,6.0778,0.6901 +Khronos,6x6,ldr-l-occlusion.png,52.2865,0.3412,0.3112,3.3694 +Khronos,6x6,ldr-rgb-diffuse.png,45.7896,2.5941,2.4345,1.7228 +Khronos,6x6,ldr-rgb-emissive.png,52.6926,0.1408,0.1078,9.7263 +Khronos,6x6,ldr-rgb-metalrough.png,37.0279,1.2805,1.2313,0.8516 +Khronos,6x6,ldr-rgb-metalrough2.png,36.7530,7.1030,6.9237,0.6058 +Khronos,6x6,ldr-rgba-base.png,36.8479,1.5997,1.5447,0.6788 +Khronos,6x6,ldr-rgba-diffuse.png,36.6732,1.1808,1.1270,0.9304 +Khronos,6x6,ldr-rgba-specgloss.png,36.6843,1.8903,1.8318,0.5724 +Khronos,6x6,ldr-xy-normal1.png,40.8932,1.8257,1.7382,0.6032 +Khronos,6x6,ldr-xy-normal2.png,45.6467,4.8274,4.5459,0.9227 +Khronos,8x8,ldr-l-occlusion.png,46.0703,0.4098,0.3746,2.7995 +Khronos,8x8,ldr-rgb-diffuse.png,40.8917,2.8359,2.6720,1.5697 +Khronos,8x8,ldr-rgb-emissive.png,47.6271,0.1489,0.1111,9.4347 +Khronos,8x8,ldr-rgb-metalrough.png,32.8320,1.5547,1.5021,0.6981 +Khronos,8x8,ldr-rgb-metalrough2.png,33.5908,8.6953,8.5188,0.4924 +Khronos,8x8,ldr-rgba-base.png,33.2583,2.0105,1.9514,0.5373 +Khronos,8x8,ldr-rgba-diffuse.png,32.7262,1.5934,1.5373,0.6821 +Khronos,8x8,ldr-rgba-specgloss.png,33.6365,2.3129,2.2505,0.4659 +Khronos,8x8,ldr-xy-normal1.png,37.5060,1.2088,1.1187,0.9373 +Khronos,8x8,ldr-xy-normal2.png,42.3776,2.2887,2.0009,2.0962 +Khronos,12x12,ldr-l-occlusion.png,42.4809,0.3227,0.2772,3.7827 +Khronos,12x12,ldr-rgb-diffuse.png,36.6137,3.1992,3.0257,1.3862 +Khronos,12x12,ldr-rgb-emissive.png,42.3682,0.2071,0.1600,6.5542 +Khronos,12x12,ldr-rgb-metalrough.png,29.2898,1.7644,1.7025,0.6159 +Khronos,12x12,ldr-rgb-metalrough2.png,30.7475,9.1800,8.9869,0.4667 +Khronos,12x12,ldr-rgba-base.png,29.9014,1.9705,1.9026,0.5511 +Khronos,12x12,ldr-rgba-diffuse.png,29.2391,1.8657,1.7991,0.5828 +Khronos,12x12,ldr-rgba-specgloss.png,30.7094,2.5533,2.4818,0.4225 +Khronos,12x12,ldr-xy-normal1.png,33.8564,1.1817,1.0790,0.9718 +Khronos,12x12,ldr-xy-normal2.png,38.3184,1.7791,1.4774,2.8389 diff --git a/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-avx2_fast_results.csv b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-avx2_fast_results.csv new file mode 100644 index 0000000000..f2b6aae5a0 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-avx2_fast_results.csv @@ -0,0 +1,121 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Kodak,4x4,ldr-rgb-kodak01.png,44.8409,0.0469,0.0272,14.4778 +Kodak,4x4,ldr-rgb-kodak02.png,44.1697,0.0600,0.0390,10.0786 +Kodak,4x4,ldr-rgb-kodak03.png,46.5885,0.0399,0.0213,18.4695 +Kodak,4x4,ldr-rgb-kodak04.png,44.5075,0.0582,0.0345,11.4114 +Kodak,4x4,ldr-rgb-kodak05.png,41.5438,0.0723,0.0510,7.7101 +Kodak,4x4,ldr-rgb-kodak06.png,44.7367,0.0464,0.0264,14.8670 +Kodak,4x4,ldr-rgb-kodak07.png,45.0074,0.0521,0.0290,13.5415 +Kodak,4x4,ldr-rgb-kodak08.png,42.0743,0.0775,0.0531,7.4003 +Kodak,4x4,ldr-rgb-kodak09.png,46.2446,0.0420,0.0197,19.9744 +Kodak,4x4,ldr-rgb-kodak10.png,46.0257,0.0442,0.0210,18.7630 +Kodak,4x4,ldr-rgb-kodak11.png,44.2228,0.0520,0.0320,12.2872 +Kodak,4x4,ldr-rgb-kodak12.png,47.0131,0.0387,0.0196,20.0927 +Kodak,4x4,ldr-rgb-kodak13.png,41.4252,0.0665,0.0447,8.7918 +Kodak,4x4,ldr-rgb-kodak14.png,41.7518,0.0621,0.0414,9.5027 +Kodak,4x4,ldr-rgb-kodak15.png,44.5130,0.0590,0.0370,10.6355 +Kodak,4x4,ldr-rgb-kodak16.png,47.1776,0.0365,0.0172,22.8430 +Kodak,4x4,ldr-rgb-kodak17.png,45.7496,0.0422,0.0189,20.8283 +Kodak,4x4,ldr-rgb-kodak18.png,41.5761,0.0762,0.0510,7.7127 +Kodak,4x4,ldr-rgb-kodak19.png,44.7986,0.0498,0.0255,15.4196 +Kodak,4x4,ldr-rgb-kodak20.png,46.3814,0.0405,0.0220,17.8515 +Kodak,4x4,ldr-rgb-kodak21.png,44.5714,0.0476,0.0271,14.4905 +Kodak,4x4,ldr-rgb-kodak22.png,43.1032,0.0653,0.0424,9.2738 +Kodak,4x4,ldr-rgb-kodak23.png,45.5477,0.0465,0.0259,15.1815 +Kodak,4x4,ldr-rgb-kodak24.png,41.8129,0.0638,0.0411,9.5612 +Kodak,5x5,ldr-rgb-kodak01.png,39.6138,0.0483,0.0273,14.4236 +Kodak,5x5,ldr-rgb-kodak02.png,40.6088,0.0482,0.0259,15.1851 +Kodak,5x5,ldr-rgb-kodak03.png,42.9963,0.0369,0.0176,22.2988 +Kodak,5x5,ldr-rgb-kodak04.png,41.2062,0.0496,0.0246,16.0013 +Kodak,5x5,ldr-rgb-kodak05.png,37.3822,0.0669,0.0446,8.8197 +Kodak,5x5,ldr-rgb-kodak06.png,40.5789,0.0431,0.0222,17.7444 +Kodak,5x5,ldr-rgb-kodak07.png,41.3995,0.0465,0.0227,17.3414 +Kodak,5x5,ldr-rgb-kodak08.png,37.7559,0.0712,0.0460,8.5511 +Kodak,5x5,ldr-rgb-kodak09.png,42.8587,0.0393,0.0163,24.1177 +Kodak,5x5,ldr-rgb-kodak10.png,42.5981,0.0411,0.0172,22.8922 +Kodak,5x5,ldr-rgb-kodak11.png,40.2821,0.0458,0.0252,15.5946 +Kodak,5x5,ldr-rgb-kodak12.png,43.3971,0.0348,0.0153,25.7461 +Kodak,5x5,ldr-rgb-kodak13.png,36.8071,0.0630,0.0405,9.7102 +Kodak,5x5,ldr-rgb-kodak14.png,37.8827,0.0608,0.0389,10.1120 +Kodak,5x5,ldr-rgb-kodak15.png,41.1327,0.0475,0.0246,16.0097 +Kodak,5x5,ldr-rgb-kodak16.png,43.4786,0.0336,0.0140,28.0745 +Kodak,5x5,ldr-rgb-kodak17.png,42.0162,0.0401,0.0161,24.3780 +Kodak,5x5,ldr-rgb-kodak18.png,38.0826,0.0613,0.0357,11.0172 +Kodak,5x5,ldr-rgb-kodak19.png,41.1197,0.0447,0.0202,19.4664 +Kodak,5x5,ldr-rgb-kodak20.png,42.3525,0.0374,0.0183,21.4497 +Kodak,5x5,ldr-rgb-kodak21.png,40.4136,0.0444,0.0239,16.4724 +Kodak,5x5,ldr-rgb-kodak22.png,39.7510,0.0516,0.0282,13.9667 +Kodak,5x5,ldr-rgb-kodak23.png,42.4022,0.0401,0.0190,20.6608 +Kodak,5x5,ldr-rgb-kodak24.png,37.7945,0.0557,0.0329,11.9453 +Kodak,6x6,ldr-rgb-kodak01.png,35.7620,0.0619,0.0403,9.7557 +Kodak,6x6,ldr-rgb-kodak02.png,38.1752,0.0514,0.0280,14.0233 +Kodak,6x6,ldr-rgb-kodak03.png,40.5434,0.0384,0.0182,21.6624 +Kodak,6x6,ldr-rgb-kodak04.png,38.5547,0.0521,0.0265,14.8243 +Kodak,6x6,ldr-rgb-kodak05.png,34.3540,0.0824,0.0589,6.6757 +Kodak,6x6,ldr-rgb-kodak06.png,37.2892,0.0498,0.0279,14.0756 +Kodak,6x6,ldr-rgb-kodak07.png,38.8740,0.0504,0.0248,15.8541 +Kodak,6x6,ldr-rgb-kodak08.png,34.4432,0.0861,0.0597,6.5854 +Kodak,6x6,ldr-rgb-kodak09.png,39.9689,0.0429,0.0186,21.1009 +Kodak,6x6,ldr-rgb-kodak10.png,39.7189,0.0440,0.0189,20.8028 +Kodak,6x6,ldr-rgb-kodak11.png,37.1348,0.0523,0.0312,12.6043 +Kodak,6x6,ldr-rgb-kodak12.png,40.7314,0.0367,0.0162,24.2846 +Kodak,6x6,ldr-rgb-kodak13.png,32.7856,0.0874,0.0640,6.1467 +Kodak,6x6,ldr-rgb-kodak14.png,35.2630,0.0721,0.0497,7.9189 +Kodak,6x6,ldr-rgb-kodak15.png,38.5381,0.0510,0.0271,14.4970 +Kodak,6x6,ldr-rgb-kodak16.png,40.5073,0.0365,0.0158,24.9503 +Kodak,6x6,ldr-rgb-kodak17.png,38.9311,0.0447,0.0195,20.1277 +Kodak,6x6,ldr-rgb-kodak18.png,35.1082,0.0694,0.0428,9.1856 +Kodak,6x6,ldr-rgb-kodak19.png,37.9776,0.0521,0.0259,15.1961 +Kodak,6x6,ldr-rgb-kodak20.png,39.1841,0.0418,0.0214,18.4158 +Kodak,6x6,ldr-rgb-kodak21.png,36.8976,0.0533,0.0315,12.4831 +Kodak,6x6,ldr-rgb-kodak22.png,36.9754,0.0569,0.0319,12.3107 +Kodak,6x6,ldr-rgb-kodak23.png,40.0639,0.0409,0.0190,20.6597 +Kodak,6x6,ldr-rgb-kodak24.png,34.7723,0.0645,0.0405,9.7160 +Kodak,8x8,ldr-rgb-kodak01.png,31.3212,0.0752,0.0489,8.0380 +Kodak,8x8,ldr-rgb-kodak02.png,34.8911,0.0532,0.0258,15.2367 +Kodak,8x8,ldr-rgb-kodak03.png,36.5623,0.0436,0.0193,20.4120 +Kodak,8x8,ldr-rgb-kodak04.png,35.1628,0.0540,0.0242,16.2648 +Kodak,8x8,ldr-rgb-kodak05.png,30.2365,0.0957,0.0681,5.7777 +Kodak,8x8,ldr-rgb-kodak06.png,32.8892,0.0613,0.0348,11.2895 +Kodak,8x8,ldr-rgb-kodak07.png,34.9619,0.0553,0.0266,14.8025 +Kodak,8x8,ldr-rgb-kodak08.png,29.9758,0.1040,0.0732,5.3705 +Kodak,8x8,ldr-rgb-kodak09.png,36.0691,0.0491,0.0210,18.7087 +Kodak,8x8,ldr-rgb-kodak10.png,35.8604,0.0499,0.0206,19.1020 +Kodak,8x8,ldr-rgb-kodak11.png,32.9645,0.0605,0.0354,11.1213 +Kodak,8x8,ldr-rgb-kodak12.png,36.6475,0.0433,0.0182,21.5638 +Kodak,8x8,ldr-rgb-kodak13.png,28.2153,0.1102,0.0826,4.7603 +Kodak,8x8,ldr-rgb-kodak14.png,31.4960,0.0813,0.0548,7.1802 +Kodak,8x8,ldr-rgb-kodak15.png,34.9106,0.0549,0.0268,14.6783 +Kodak,8x8,ldr-rgb-kodak16.png,36.0170,0.0453,0.0204,19.2800 +Kodak,8x8,ldr-rgb-kodak17.png,34.8485,0.0521,0.0228,17.2305 +Kodak,8x8,ldr-rgb-kodak18.png,31.2442,0.0784,0.0474,8.2894 +Kodak,8x8,ldr-rgb-kodak19.png,34.0825,0.0582,0.0285,13.7926 +Kodak,8x8,ldr-rgb-kodak20.png,35.2119,0.0466,0.0227,17.3596 +Kodak,8x8,ldr-rgb-kodak21.png,32.7391,0.0616,0.0359,10.9501 +Kodak,8x8,ldr-rgb-kodak22.png,33.4423,0.0605,0.0323,12.1720 +Kodak,8x8,ldr-rgb-kodak23.png,36.5047,0.0442,0.0180,21.8684 +Kodak,8x8,ldr-rgb-kodak24.png,30.8065,0.0743,0.0456,8.6145 +Kodak,12x12,ldr-rgb-kodak01.png,27.1019,0.0691,0.0351,11.2024 +Kodak,12x12,ldr-rgb-kodak02.png,31.1048,0.0489,0.0144,27.2404 +Kodak,12x12,ldr-rgb-kodak03.png,32.7203,0.0446,0.0128,30.6840 +Kodak,12x12,ldr-rgb-kodak04.png,31.5693,0.0495,0.0124,31.6212 +Kodak,12x12,ldr-rgb-kodak05.png,25.8228,0.0795,0.0452,8.7060 +Kodak,12x12,ldr-rgb-kodak06.png,28.6863,0.0602,0.0272,14.4490 +Kodak,12x12,ldr-rgb-kodak07.png,30.8635,0.0524,0.0163,24.1474 +Kodak,12x12,ldr-rgb-kodak08.png,25.3874,0.0910,0.0531,7.4052 +Kodak,12x12,ldr-rgb-kodak09.png,31.8272,0.0494,0.0139,28.3706 +Kodak,12x12,ldr-rgb-kodak10.png,31.5237,0.0512,0.0143,27.4667 +Kodak,12x12,ldr-rgb-kodak11.png,28.9422,0.0553,0.0220,17.8701 +Kodak,12x12,ldr-rgb-kodak12.png,32.4574,0.0463,0.0138,28.5123 +Kodak,12x12,ldr-rgb-kodak13.png,24.3252,0.0997,0.0648,6.0668 +Kodak,12x12,ldr-rgb-kodak14.png,27.5218,0.0641,0.0301,13.0806 +Kodak,12x12,ldr-rgb-kodak15.png,31.3081,0.0538,0.0187,20.9804 +Kodak,12x12,ldr-rgb-kodak16.png,31.4919,0.0463,0.0141,27.9333 +Kodak,12x12,ldr-rgb-kodak17.png,30.8806,0.0531,0.0161,24.4235 +Kodak,12x12,ldr-rgb-kodak18.png,27.4237,0.0689,0.0309,12.7448 +Kodak,12x12,ldr-rgb-kodak19.png,30.1855,0.0564,0.0199,19.7915 +Kodak,12x12,ldr-rgb-kodak20.png,31.0856,0.0490,0.0173,22.7950 +Kodak,12x12,ldr-rgb-kodak21.png,28.7284,0.0586,0.0256,15.3587 +Kodak,12x12,ldr-rgb-kodak22.png,29.8250,0.0533,0.0176,22.3736 +Kodak,12x12,ldr-rgb-kodak23.png,32.5624,0.0468,0.0134,29.3929 +Kodak,12x12,ldr-rgb-kodak24.png,26.7546,0.0709,0.0353,11.1380 diff --git a/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-avx2_fastest_results.csv b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-avx2_fastest_results.csv new file mode 100644 index 0000000000..210bcc6539 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-avx2_fastest_results.csv @@ -0,0 +1,121 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Kodak,4x4,ldr-rgb-kodak01.png,44.3299,0.0398,0.0200,19.6498 +Kodak,4x4,ldr-rgb-kodak02.png,43.1808,0.0462,0.0252,15.5866 +Kodak,4x4,ldr-rgb-kodak03.png,45.5837,0.0341,0.0155,25.4344 +Kodak,4x4,ldr-rgb-kodak04.png,43.8256,0.0465,0.0229,17.1538 +Kodak,4x4,ldr-rgb-kodak05.png,40.7590,0.0522,0.0311,12.6525 +Kodak,4x4,ldr-rgb-kodak06.png,44.2617,0.0393,0.0195,20.1265 +Kodak,4x4,ldr-rgb-kodak07.png,44.2422,0.0428,0.0198,19.8375 +Kodak,4x4,ldr-rgb-kodak08.png,41.2754,0.0561,0.0319,12.3207 +Kodak,4x4,ldr-rgb-kodak09.png,45.7021,0.0371,0.0149,26.3037 +Kodak,4x4,ldr-rgb-kodak10.png,45.5005,0.0390,0.0158,24.8605 +Kodak,4x4,ldr-rgb-kodak11.png,43.5970,0.0417,0.0218,18.0250 +Kodak,4x4,ldr-rgb-kodak12.png,46.2784,0.0338,0.0149,26.3423 +Kodak,4x4,ldr-rgb-kodak13.png,41.0931,0.0522,0.0313,12.5576 +Kodak,4x4,ldr-rgb-kodak14.png,40.7005,0.0446,0.0244,16.0983 +Kodak,4x4,ldr-rgb-kodak15.png,43.7258,0.0444,0.0229,17.1606 +Kodak,4x4,ldr-rgb-kodak16.png,47.0128,0.0333,0.0143,27.5594 +Kodak,4x4,ldr-rgb-kodak17.png,45.4482,0.0380,0.0149,26.3993 +Kodak,4x4,ldr-rgb-kodak18.png,41.0795,0.0561,0.0314,12.5304 +Kodak,4x4,ldr-rgb-kodak19.png,44.4127,0.0424,0.0189,20.7523 +Kodak,4x4,ldr-rgb-kodak20.png,45.6790,0.0347,0.0165,23.8313 +Kodak,4x4,ldr-rgb-kodak21.png,44.1356,0.0397,0.0200,19.7000 +Kodak,4x4,ldr-rgb-kodak22.png,42.4979,0.0488,0.0267,14.7161 +Kodak,4x4,ldr-rgb-kodak23.png,44.9926,0.0385,0.0182,21.6490 +Kodak,4x4,ldr-rgb-kodak24.png,40.9953,0.0475,0.0256,15.3432 +Kodak,5x5,ldr-rgb-kodak01.png,39.3652,0.0426,0.0223,17.6640 +Kodak,5x5,ldr-rgb-kodak02.png,40.3646,0.0418,0.0201,19.5805 +Kodak,5x5,ldr-rgb-kodak03.png,42.5877,0.0333,0.0140,28.0187 +Kodak,5x5,ldr-rgb-kodak04.png,40.7623,0.0438,0.0189,20.8062 +Kodak,5x5,ldr-rgb-kodak05.png,36.9662,0.0531,0.0314,12.5316 +Kodak,5x5,ldr-rgb-kodak06.png,40.3984,0.0389,0.0186,21.1974 +Kodak,5x5,ldr-rgb-kodak07.png,41.0623,0.0414,0.0179,21.9870 +Kodak,5x5,ldr-rgb-kodak08.png,37.3684,0.0573,0.0319,12.3289 +Kodak,5x5,ldr-rgb-kodak09.png,42.5245,0.0364,0.0131,30.1198 +Kodak,5x5,ldr-rgb-kodak10.png,42.3371,0.0383,0.0141,27.9210 +Kodak,5x5,ldr-rgb-kodak11.png,40.0378,0.0398,0.0194,20.2459 +Kodak,5x5,ldr-rgb-kodak12.png,43.1430,0.0323,0.0128,30.6339 +Kodak,5x5,ldr-rgb-kodak13.png,36.6885,0.0534,0.0316,12.4286 +Kodak,5x5,ldr-rgb-kodak14.png,37.3557,0.0466,0.0254,15.5011 +Kodak,5x5,ldr-rgb-kodak15.png,40.8415,0.0413,0.0188,20.9025 +Kodak,5x5,ldr-rgb-kodak16.png,43.3827,0.0322,0.0125,31.5125 +Kodak,5x5,ldr-rgb-kodak17.png,41.8593,0.0377,0.0136,28.8197 +Kodak,5x5,ldr-rgb-kodak18.png,37.9188,0.0516,0.0263,14.9682 +Kodak,5x5,ldr-rgb-kodak19.png,40.8554,0.0414,0.0171,23.0059 +Kodak,5x5,ldr-rgb-kodak20.png,42.0231,0.0336,0.0145,27.1932 +Kodak,5x5,ldr-rgb-kodak21.png,40.1914,0.0395,0.0190,20.7468 +Kodak,5x5,ldr-rgb-kodak22.png,39.4484,0.0444,0.0213,18.4991 +Kodak,5x5,ldr-rgb-kodak23.png,42.0743,0.0365,0.0157,25.0839 +Kodak,5x5,ldr-rgb-kodak24.png,37.5527,0.0463,0.0236,16.6371 +Kodak,6x6,ldr-rgb-kodak01.png,35.6615,0.0493,0.0279,14.1034 +Kodak,6x6,ldr-rgb-kodak02.png,38.0423,0.0423,0.0199,19.7319 +Kodak,6x6,ldr-rgb-kodak03.png,40.3065,0.0331,0.0135,29.2138 +Kodak,6x6,ldr-rgb-kodak04.png,38.3034,0.0439,0.0190,20.6748 +Kodak,6x6,ldr-rgb-kodak05.png,34.1002,0.0579,0.0355,11.0852 +Kodak,6x6,ldr-rgb-kodak06.png,37.2267,0.0416,0.0207,19.0418 +Kodak,6x6,ldr-rgb-kodak07.png,38.6400,0.0422,0.0178,22.0523 +Kodak,6x6,ldr-rgb-kodak08.png,34.2358,0.0624,0.0368,10.6707 +Kodak,6x6,ldr-rgb-kodak09.png,39.7637,0.0376,0.0141,27.8423 +Kodak,6x6,ldr-rgb-kodak10.png,39.5682,0.0389,0.0141,27.9608 +Kodak,6x6,ldr-rgb-kodak11.png,37.0000,0.0424,0.0213,18.4307 +Kodak,6x6,ldr-rgb-kodak12.png,40.5726,0.0332,0.0127,31.0696 +Kodak,6x6,ldr-rgb-kodak13.png,32.7197,0.0639,0.0410,9.5864 +Kodak,6x6,ldr-rgb-kodak14.png,34.8684,0.0502,0.0280,14.0333 +Kodak,6x6,ldr-rgb-kodak15.png,38.3754,0.0419,0.0190,20.6781 +Kodak,6x6,ldr-rgb-kodak16.png,40.4633,0.0335,0.0130,30.2846 +Kodak,6x6,ldr-rgb-kodak17.png,38.8470,0.0393,0.0148,26.6535 +Kodak,6x6,ldr-rgb-kodak18.png,35.0120,0.0547,0.0288,13.6581 +Kodak,6x6,ldr-rgb-kodak19.png,37.8381,0.0441,0.0192,20.5294 +Kodak,6x6,ldr-rgb-kodak20.png,39.0318,0.0354,0.0160,24.5774 +Kodak,6x6,ldr-rgb-kodak21.png,36.8178,0.0432,0.0219,17.9551 +Kodak,6x6,ldr-rgb-kodak22.png,36.8523,0.0459,0.0224,17.5912 +Kodak,6x6,ldr-rgb-kodak23.png,39.8521,0.0361,0.0147,26.7821 +Kodak,6x6,ldr-rgb-kodak24.png,34.6971,0.0505,0.0268,14.6521 +Kodak,8x8,ldr-rgb-kodak01.png,31.1852,0.0627,0.0375,10.4953 +Kodak,8x8,ldr-rgb-kodak02.png,34.7863,0.0472,0.0207,18.9695 +Kodak,8x8,ldr-rgb-kodak03.png,36.4265,0.0393,0.0155,25.3492 +Kodak,8x8,ldr-rgb-kodak04.png,35.0559,0.0484,0.0194,20.2334 +Kodak,8x8,ldr-rgb-kodak05.png,30.0266,0.0745,0.0476,8.2636 +Kodak,8x8,ldr-rgb-kodak06.png,32.8020,0.0526,0.0270,14.5597 +Kodak,8x8,ldr-rgb-kodak07.png,34.8425,0.0487,0.0211,18.6693 +Kodak,8x8,ldr-rgb-kodak08.png,29.7082,0.0801,0.0506,7.7674 +Kodak,8x8,ldr-rgb-kodak09.png,35.8983,0.0443,0.0169,23.2108 +Kodak,8x8,ldr-rgb-kodak10.png,35.7101,0.0451,0.0165,23.8644 +Kodak,8x8,ldr-rgb-kodak11.png,32.8458,0.0515,0.0266,14.8065 +Kodak,8x8,ldr-rgb-kodak12.png,36.5136,0.0397,0.0153,25.6181 +Kodak,8x8,ldr-rgb-kodak13.png,28.1418,0.0857,0.0588,6.6901 +Kodak,8x8,ldr-rgb-kodak14.png,31.2765,0.0634,0.0374,10.5104 +Kodak,8x8,ldr-rgb-kodak15.png,34.7635,0.0478,0.0210,18.7174 +Kodak,8x8,ldr-rgb-kodak16.png,35.9622,0.0415,0.0173,22.6937 +Kodak,8x8,ldr-rgb-kodak17.png,34.7176,0.0466,0.0182,21.6278 +Kodak,8x8,ldr-rgb-kodak18.png,31.1628,0.0651,0.0351,11.2174 +Kodak,8x8,ldr-rgb-kodak19.png,33.8985,0.0514,0.0225,17.4825 +Kodak,8x8,ldr-rgb-kodak20.png,35.0234,0.0420,0.0183,21.4321 +Kodak,8x8,ldr-rgb-kodak21.png,32.6180,0.0526,0.0273,14.3872 +Kodak,8x8,ldr-rgb-kodak22.png,33.3281,0.0522,0.0247,15.9294 +Kodak,8x8,ldr-rgb-kodak23.png,36.3979,0.0399,0.0146,26.8479 +Kodak,8x8,ldr-rgb-kodak24.png,30.7238,0.0616,0.0336,11.7133 +Kodak,12x12,ldr-rgb-kodak01.png,26.9939,0.0581,0.0272,14.4480 +Kodak,12x12,ldr-rgb-kodak02.png,31.2071,0.0467,0.0145,27.1784 +Kodak,12x12,ldr-rgb-kodak03.png,32.6375,0.0404,0.0110,35.7472 +Kodak,12x12,ldr-rgb-kodak04.png,31.4776,0.0455,0.0108,36.5343 +Kodak,12x12,ldr-rgb-kodak05.png,25.6987,0.0648,0.0329,11.9420 +Kodak,12x12,ldr-rgb-kodak06.png,28.5195,0.0519,0.0213,18.4263 +Kodak,12x12,ldr-rgb-kodak07.png,30.7941,0.0468,0.0132,29.7825 +Kodak,12x12,ldr-rgb-kodak08.png,25.2216,0.0731,0.0378,10.4064 +Kodak,12x12,ldr-rgb-kodak09.png,31.6367,0.0444,0.0115,34.1506 +Kodak,12x12,ldr-rgb-kodak10.png,31.4545,0.0464,0.0121,32.5563 +Kodak,12x12,ldr-rgb-kodak11.png,28.8692,0.0478,0.0174,22.5946 +Kodak,12x12,ldr-rgb-kodak12.png,32.3695,0.0417,0.0117,33.5306 +Kodak,12x12,ldr-rgb-kodak13.png,24.2380,0.0782,0.0460,8.5560 +Kodak,12x12,ldr-rgb-kodak14.png,27.4424,0.0540,0.0228,17.2199 +Kodak,12x12,ldr-rgb-kodak15.png,31.2355,0.0480,0.0155,25.3882 +Kodak,12x12,ldr-rgb-kodak16.png,31.3535,0.0421,0.0121,32.4787 +Kodak,12x12,ldr-rgb-kodak17.png,30.8266,0.0471,0.0130,30.2524 +Kodak,12x12,ldr-rgb-kodak18.png,27.3668,0.0584,0.0227,17.3368 +Kodak,12x12,ldr-rgb-kodak19.png,29.8698,0.0508,0.0161,24.3567 +Kodak,12x12,ldr-rgb-kodak20.png,30.9664,0.0432,0.0142,27.6871 +Kodak,12x12,ldr-rgb-kodak21.png,28.6252,0.0502,0.0198,19.8573 +Kodak,12x12,ldr-rgb-kodak22.png,29.7117,0.0477,0.0146,26.9881 +Kodak,12x12,ldr-rgb-kodak23.png,32.5063,0.0422,0.0112,35.1904 +Kodak,12x12,ldr-rgb-kodak24.png,26.6826,0.0597,0.0263,14.9642 diff --git a/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-avx2_medium_results.csv b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-avx2_medium_results.csv new file mode 100644 index 0000000000..06af10b034 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-avx2_medium_results.csv @@ -0,0 +1,121 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Kodak,4x4,ldr-rgb-kodak01.png,45.2684,0.1591,0.1383,2.8440 +Kodak,4x4,ldr-rgb-kodak02.png,45.2605,0.2262,0.2045,1.9232 +Kodak,4x4,ldr-rgb-kodak03.png,47.5609,0.1157,0.0969,4.0576 +Kodak,4x4,ldr-rgb-kodak04.png,45.3343,0.1776,0.1531,2.5692 +Kodak,4x4,ldr-rgb-kodak05.png,42.0787,0.2037,0.1819,2.1620 +Kodak,4x4,ldr-rgb-kodak06.png,45.1329,0.1499,0.1293,3.0420 +Kodak,4x4,ldr-rgb-kodak07.png,45.8875,0.1464,0.1230,3.1969 +Kodak,4x4,ldr-rgb-kodak08.png,42.4908,0.2272,0.2022,1.9446 +Kodak,4x4,ldr-rgb-kodak09.png,47.1214,0.1785,0.1555,2.5281 +Kodak,4x4,ldr-rgb-kodak10.png,46.7993,0.1806,0.1563,2.5161 +Kodak,4x4,ldr-rgb-kodak11.png,44.8269,0.1748,0.1545,2.5443 +Kodak,4x4,ldr-rgb-kodak12.png,47.9001,0.1316,0.1121,3.5067 +Kodak,4x4,ldr-rgb-kodak13.png,41.6078,0.1684,0.1466,2.6819 +Kodak,4x4,ldr-rgb-kodak14.png,42.5242,0.1887,0.1673,2.3498 +Kodak,4x4,ldr-rgb-kodak15.png,45.3860,0.1581,0.1357,2.8970 +Kodak,4x4,ldr-rgb-kodak16.png,47.8467,0.1334,0.1136,3.4615 +Kodak,4x4,ldr-rgb-kodak17.png,46.2753,0.1517,0.1276,3.0824 +Kodak,4x4,ldr-rgb-kodak18.png,41.9463,0.2296,0.2040,1.9277 +Kodak,4x4,ldr-rgb-kodak19.png,45.3150,0.1858,0.1615,2.4347 +Kodak,4x4,ldr-rgb-kodak20.png,46.8640,0.1130,0.0941,4.1791 +Kodak,4x4,ldr-rgb-kodak21.png,45.1372,0.1881,0.1679,2.3418 +Kodak,4x4,ldr-rgb-kodak22.png,43.7127,0.2310,0.2079,1.8913 +Kodak,4x4,ldr-rgb-kodak23.png,46.7393,0.1809,0.1598,2.4600 +Kodak,4x4,ldr-rgb-kodak24.png,42.2490,0.1802,0.1571,2.5023 +Kodak,5x5,ldr-rgb-kodak01.png,40.1135,0.1772,0.1556,2.5275 +Kodak,5x5,ldr-rgb-kodak02.png,41.6610,0.1958,0.1727,2.2771 +Kodak,5x5,ldr-rgb-kodak03.png,44.0075,0.0927,0.0726,5.4165 +Kodak,5x5,ldr-rgb-kodak04.png,42.0337,0.1509,0.1257,3.1294 +Kodak,5x5,ldr-rgb-kodak05.png,37.9653,0.2089,0.1860,2.1140 +Kodak,5x5,ldr-rgb-kodak06.png,40.9636,0.1408,0.1194,3.2935 +Kodak,5x5,ldr-rgb-kodak07.png,42.4142,0.1232,0.0988,3.9802 +Kodak,5x5,ldr-rgb-kodak08.png,38.3522,0.2268,0.2011,1.9557 +Kodak,5x5,ldr-rgb-kodak09.png,43.7811,0.1081,0.0842,4.6713 +Kodak,5x5,ldr-rgb-kodak10.png,43.3916,0.1212,0.0961,4.0905 +Kodak,5x5,ldr-rgb-kodak11.png,40.8313,0.1631,0.1414,2.7813 +Kodak,5x5,ldr-rgb-kodak12.png,44.3909,0.0945,0.0738,5.3273 +Kodak,5x5,ldr-rgb-kodak13.png,36.9119,0.1835,0.1605,2.4496 +Kodak,5x5,ldr-rgb-kodak14.png,38.6094,0.1877,0.1657,2.3725 +Kodak,5x5,ldr-rgb-kodak15.png,41.8807,0.1451,0.1216,3.2338 +Kodak,5x5,ldr-rgb-kodak16.png,44.1433,0.1021,0.0816,4.8203 +Kodak,5x5,ldr-rgb-kodak17.png,42.5304,0.1075,0.0825,4.7671 +Kodak,5x5,ldr-rgb-kodak18.png,38.3628,0.2001,0.1732,2.2699 +Kodak,5x5,ldr-rgb-kodak19.png,41.6528,0.1410,0.1154,3.4065 +Kodak,5x5,ldr-rgb-kodak20.png,42.9800,0.1003,0.0805,4.8863 +Kodak,5x5,ldr-rgb-kodak21.png,40.7663,0.1414,0.1198,3.2811 +Kodak,5x5,ldr-rgb-kodak22.png,40.2665,0.1912,0.1672,2.3520 +Kodak,5x5,ldr-rgb-kodak23.png,43.4940,0.1258,0.1034,3.8021 +Kodak,5x5,ldr-rgb-kodak24.png,38.1256,0.1646,0.1406,2.7973 +Kodak,6x6,ldr-rgb-kodak01.png,36.2094,0.2077,0.1851,2.1240 +Kodak,6x6,ldr-rgb-kodak02.png,39.0304,0.1661,0.1419,2.7714 +Kodak,6x6,ldr-rgb-kodak03.png,41.3479,0.0852,0.0635,6.1936 +Kodak,6x6,ldr-rgb-kodak04.png,39.4137,0.1417,0.1151,3.4173 +Kodak,6x6,ldr-rgb-kodak05.png,34.8070,0.2285,0.2048,1.9196 +Kodak,6x6,ldr-rgb-kodak06.png,37.6384,0.1446,0.1214,3.2400 +Kodak,6x6,ldr-rgb-kodak07.png,39.8015,0.1164,0.0908,4.3316 +Kodak,6x6,ldr-rgb-kodak08.png,35.0170,0.2518,0.2247,1.7496 +Kodak,6x6,ldr-rgb-kodak09.png,40.8977,0.0930,0.0677,5.8105 +Kodak,6x6,ldr-rgb-kodak10.png,40.5297,0.0992,0.0727,5.4066 +Kodak,6x6,ldr-rgb-kodak11.png,37.5968,0.1538,0.1310,3.0012 +Kodak,6x6,ldr-rgb-kodak12.png,41.5070,0.0807,0.0589,6.6770 +Kodak,6x6,ldr-rgb-kodak13.png,32.8889,0.2361,0.2123,1.8520 +Kodak,6x6,ldr-rgb-kodak14.png,35.8374,0.1891,0.1654,2.3775 +Kodak,6x6,ldr-rgb-kodak15.png,39.2095,0.1425,0.1179,3.3357 +Kodak,6x6,ldr-rgb-kodak16.png,41.0545,0.0939,0.0722,5.4457 +Kodak,6x6,ldr-rgb-kodak17.png,39.5028,0.0998,0.0737,5.3367 +Kodak,6x6,ldr-rgb-kodak18.png,35.3646,0.2046,0.1769,2.2234 +Kodak,6x6,ldr-rgb-kodak19.png,38.5498,0.1421,0.1155,3.4033 +Kodak,6x6,ldr-rgb-kodak20.png,39.7961,0.1030,0.0821,4.7895 +Kodak,6x6,ldr-rgb-kodak21.png,37.2072,0.1399,0.1172,3.3552 +Kodak,6x6,ldr-rgb-kodak22.png,37.4640,0.1826,0.1564,2.5150 +Kodak,6x6,ldr-rgb-kodak23.png,41.0051,0.0979,0.0750,5.2429 +Kodak,6x6,ldr-rgb-kodak24.png,35.0556,0.1655,0.1404,2.8001 +Kodak,8x8,ldr-rgb-kodak01.png,31.8078,0.2660,0.2384,1.6492 +Kodak,8x8,ldr-rgb-kodak02.png,35.7880,0.1583,0.1296,3.0344 +Kodak,8x8,ldr-rgb-kodak03.png,37.7486,0.1014,0.0749,5.2493 +Kodak,8x8,ldr-rgb-kodak04.png,36.0731,0.1506,0.1193,3.2969 +Kodak,8x8,ldr-rgb-kodak05.png,30.7508,0.2790,0.2497,1.5750 +Kodak,8x8,ldr-rgb-kodak06.png,33.4488,0.1720,0.1446,2.7191 +Kodak,8x8,ldr-rgb-kodak07.png,36.1577,0.1348,0.1043,3.7697 +Kodak,8x8,ldr-rgb-kodak08.png,30.5739,0.2827,0.2505,1.5699 +Kodak,8x8,ldr-rgb-kodak09.png,37.2780,0.1034,0.0735,5.3478 +Kodak,8x8,ldr-rgb-kodak10.png,36.9214,0.1056,0.0747,5.2630 +Kodak,8x8,ldr-rgb-kodak11.png,33.6683,0.1691,0.1422,2.7657 +Kodak,8x8,ldr-rgb-kodak12.png,37.8350,0.0957,0.0693,5.6745 +Kodak,8x8,ldr-rgb-kodak13.png,28.3988,0.3144,0.2855,1.3771 +Kodak,8x8,ldr-rgb-kodak14.png,32.1545,0.2230,0.1944,2.0232 +Kodak,8x8,ldr-rgb-kodak15.png,35.8410,0.1412,0.1118,3.5166 +Kodak,8x8,ldr-rgb-kodak16.png,37.0303,0.1110,0.0848,4.6354 +Kodak,8x8,ldr-rgb-kodak17.png,35.6791,0.1174,0.0864,4.5488 +Kodak,8x8,ldr-rgb-kodak18.png,31.5602,0.2279,0.1957,2.0092 +Kodak,8x8,ldr-rgb-kodak19.png,34.7728,0.1657,0.1340,2.9338 +Kodak,8x8,ldr-rgb-kodak20.png,35.9133,0.1222,0.0967,4.0654 +Kodak,8x8,ldr-rgb-kodak21.png,33.1196,0.1710,0.1436,2.7376 +Kodak,8x8,ldr-rgb-kodak22.png,34.0306,0.1882,0.1582,2.4853 +Kodak,8x8,ldr-rgb-kodak23.png,37.6748,0.0971,0.0693,5.6719 +Kodak,8x8,ldr-rgb-kodak24.png,31.1161,0.1924,0.1627,2.4167 +Kodak,12x12,ldr-rgb-kodak01.png,27.7577,0.2827,0.2462,1.5970 +Kodak,12x12,ldr-rgb-kodak02.png,32.5056,0.1127,0.0750,5.2429 +Kodak,12x12,ldr-rgb-kodak03.png,33.7997,0.0939,0.0583,6.7403 +Kodak,12x12,ldr-rgb-kodak04.png,32.4544,0.1057,0.0655,6.0064 +Kodak,12x12,ldr-rgb-kodak05.png,26.3963,0.3009,0.2632,1.4939 +Kodak,12x12,ldr-rgb-kodak06.png,29.3780,0.1784,0.1420,2.7692 +Kodak,12x12,ldr-rgb-kodak07.png,32.0588,0.1310,0.0910,4.3191 +Kodak,12x12,ldr-rgb-kodak08.png,26.0707,0.3035,0.2623,1.4989 +Kodak,12x12,ldr-rgb-kodak09.png,33.1099,0.0981,0.0590,6.6595 +Kodak,12x12,ldr-rgb-kodak10.png,32.4903,0.1004,0.0602,6.5325 +Kodak,12x12,ldr-rgb-kodak11.png,29.7420,0.1594,0.1230,3.1973 +Kodak,12x12,ldr-rgb-kodak12.png,33.8723,0.0873,0.0517,7.6093 +Kodak,12x12,ldr-rgb-kodak13.png,24.5329,0.3440,0.3066,1.2825 +Kodak,12x12,ldr-rgb-kodak14.png,28.3876,0.2066,0.1698,2.3164 +Kodak,12x12,ldr-rgb-kodak15.png,32.2202,0.1256,0.0866,4.5385 +Kodak,12x12,ldr-rgb-kodak16.png,32.9814,0.0940,0.0586,6.7126 +Kodak,12x12,ldr-rgb-kodak17.png,31.7754,0.1074,0.0670,5.8667 +Kodak,12x12,ldr-rgb-kodak18.png,27.7836,0.2109,0.1698,2.3154 +Kodak,12x12,ldr-rgb-kodak19.png,30.8854,0.1355,0.0950,4.1389 +Kodak,12x12,ldr-rgb-kodak20.png,31.8890,0.1112,0.0764,5.1501 +Kodak,12x12,ldr-rgb-kodak21.png,29.1843,0.1962,0.1596,2.4639 +Kodak,12x12,ldr-rgb-kodak22.png,30.5095,0.1509,0.1118,3.5167 +Kodak,12x12,ldr-rgb-kodak23.png,33.5539,0.0843,0.0474,8.2884 +Kodak,12x12,ldr-rgb-kodak24.png,27.0858,0.1915,0.1522,2.5843 diff --git a/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-avx2_thorough_results.csv b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-avx2_thorough_results.csv new file mode 100644 index 0000000000..9f494ee671 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-avx2_thorough_results.csv @@ -0,0 +1,121 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Kodak,4x4,ldr-rgb-kodak01.png,45.4959,0.4116,0.3911,1.0055 +Kodak,4x4,ldr-rgb-kodak02.png,45.6417,0.5057,0.4840,0.8124 +Kodak,4x4,ldr-rgb-kodak03.png,47.9779,0.4262,0.4067,0.9668 +Kodak,4x4,ldr-rgb-kodak04.png,45.6537,0.4710,0.4464,0.8809 +Kodak,4x4,ldr-rgb-kodak05.png,42.4039,0.4611,0.4390,0.8957 +Kodak,4x4,ldr-rgb-kodak06.png,45.3539,0.4103,0.3901,1.0079 +Kodak,4x4,ldr-rgb-kodak07.png,46.3258,0.4606,0.4372,0.8994 +Kodak,4x4,ldr-rgb-kodak08.png,42.8063,0.4906,0.4654,0.8450 +Kodak,4x4,ldr-rgb-kodak09.png,47.4131,0.4763,0.4537,0.8668 +Kodak,4x4,ldr-rgb-kodak10.png,47.0580,0.4724,0.4481,0.8775 +Kodak,4x4,ldr-rgb-kodak11.png,45.1139,0.4394,0.4187,0.9391 +Kodak,4x4,ldr-rgb-kodak12.png,48.2415,0.4363,0.4164,0.9443 +Kodak,4x4,ldr-rgb-kodak13.png,41.7183,0.4168,0.3949,0.9957 +Kodak,4x4,ldr-rgb-kodak14.png,42.9398,0.4522,0.4313,0.9117 +Kodak,4x4,ldr-rgb-kodak15.png,45.7807,0.4512,0.4288,0.9170 +Kodak,4x4,ldr-rgb-kodak16.png,48.0655,0.4311,0.4116,0.9553 +Kodak,4x4,ldr-rgb-kodak17.png,46.4627,0.4540,0.4300,0.9145 +Kodak,4x4,ldr-rgb-kodak18.png,42.1531,0.4978,0.4720,0.8331 +Kodak,4x4,ldr-rgb-kodak19.png,45.5408,0.4710,0.4465,0.8806 +Kodak,4x4,ldr-rgb-kodak20.png,47.1306,0.2981,0.2788,1.4103 +Kodak,4x4,ldr-rgb-kodak21.png,45.3036,0.4622,0.4416,0.8905 +Kodak,4x4,ldr-rgb-kodak22.png,43.9745,0.5067,0.4835,0.8132 +Kodak,4x4,ldr-rgb-kodak23.png,47.1411,0.4954,0.4743,0.8291 +Kodak,4x4,ldr-rgb-kodak24.png,42.5003,0.4512,0.4279,0.9190 +Kodak,5x5,ldr-rgb-kodak01.png,40.2393,0.4819,0.4601,0.8546 +Kodak,5x5,ldr-rgb-kodak02.png,42.0010,0.5755,0.5528,0.7113 +Kodak,5x5,ldr-rgb-kodak03.png,44.3362,0.4648,0.4447,0.8842 +Kodak,5x5,ldr-rgb-kodak04.png,42.2429,0.5151,0.4898,0.8028 +Kodak,5x5,ldr-rgb-kodak05.png,38.1870,0.5278,0.5046,0.7792 +Kodak,5x5,ldr-rgb-kodak06.png,41.0924,0.4565,0.4347,0.9046 +Kodak,5x5,ldr-rgb-kodak07.png,42.7292,0.5014,0.4764,0.8254 +Kodak,5x5,ldr-rgb-kodak08.png,38.5421,0.5344,0.5084,0.7734 +Kodak,5x5,ldr-rgb-kodak09.png,44.0402,0.5100,0.4861,0.8089 +Kodak,5x5,ldr-rgb-kodak10.png,43.5978,0.5160,0.4906,0.8015 +Kodak,5x5,ldr-rgb-kodak11.png,41.0060,0.4856,0.4645,0.8466 +Kodak,5x5,ldr-rgb-kodak12.png,44.6083,0.4738,0.4533,0.8674 +Kodak,5x5,ldr-rgb-kodak13.png,36.9564,0.4674,0.4440,0.8856 +Kodak,5x5,ldr-rgb-kodak14.png,38.8905,0.5070,0.4845,0.8116 +Kodak,5x5,ldr-rgb-kodak15.png,42.1361,0.4903,0.4670,0.8420 +Kodak,5x5,ldr-rgb-kodak16.png,44.2762,0.4696,0.4490,0.8758 +Kodak,5x5,ldr-rgb-kodak17.png,42.6114,0.4914,0.4661,0.8437 +Kodak,5x5,ldr-rgb-kodak18.png,38.4757,0.5527,0.5258,0.7479 +Kodak,5x5,ldr-rgb-kodak19.png,41.7857,0.5253,0.4999,0.7865 +Kodak,5x5,ldr-rgb-kodak20.png,43.2873,0.3332,0.3130,1.2563 +Kodak,5x5,ldr-rgb-kodak21.png,40.8732,0.5252,0.5037,0.7806 +Kodak,5x5,ldr-rgb-kodak22.png,40.4366,0.5699,0.5460,0.7202 +Kodak,5x5,ldr-rgb-kodak23.png,43.8954,0.5559,0.5341,0.7362 +Kodak,5x5,ldr-rgb-kodak24.png,38.2464,0.5011,0.4768,0.8248 +Kodak,6x6,ldr-rgb-kodak01.png,36.3215,0.5802,0.5573,0.7056 +Kodak,6x6,ldr-rgb-kodak02.png,39.3903,0.6485,0.6244,0.6297 +Kodak,6x6,ldr-rgb-kodak03.png,41.7525,0.4075,0.3862,1.0181 +Kodak,6x6,ldr-rgb-kodak04.png,39.6623,0.5703,0.5434,0.7237 +Kodak,6x6,ldr-rgb-kodak05.png,34.9888,0.6261,0.6019,0.6533 +Kodak,6x6,ldr-rgb-kodak06.png,37.7497,0.5209,0.4980,0.7895 +Kodak,6x6,ldr-rgb-kodak07.png,40.1196,0.4746,0.4487,0.8763 +Kodak,6x6,ldr-rgb-kodak08.png,35.1824,0.6361,0.6087,0.6460 +Kodak,6x6,ldr-rgb-kodak09.png,41.2761,0.5708,0.5454,0.7209 +Kodak,6x6,ldr-rgb-kodak10.png,40.8287,0.5848,0.5585,0.7041 +Kodak,6x6,ldr-rgb-kodak11.png,37.7718,0.5302,0.5077,0.7745 +Kodak,6x6,ldr-rgb-kodak12.png,41.8388,0.4963,0.4746,0.8286 +Kodak,6x6,ldr-rgb-kodak13.png,32.9330,0.5845,0.5605,0.7016 +Kodak,6x6,ldr-rgb-kodak14.png,36.0284,0.6019,0.5778,0.6805 +Kodak,6x6,ldr-rgb-kodak15.png,39.4662,0.4862,0.4614,0.8522 +Kodak,6x6,ldr-rgb-kodak16.png,41.2463,0.4848,0.4629,0.8495 +Kodak,6x6,ldr-rgb-kodak17.png,39.6618,0.5535,0.5271,0.7459 +Kodak,6x6,ldr-rgb-kodak18.png,35.4461,0.6501,0.6218,0.6324 +Kodak,6x6,ldr-rgb-kodak19.png,38.7120,0.6201,0.5932,0.6628 +Kodak,6x6,ldr-rgb-kodak20.png,40.1155,0.3851,0.3634,1.0822 +Kodak,6x6,ldr-rgb-kodak21.png,37.3452,0.6068,0.5842,0.6730 +Kodak,6x6,ldr-rgb-kodak22.png,37.6293,0.6543,0.6289,0.6252 +Kodak,6x6,ldr-rgb-kodak23.png,41.4207,0.5670,0.5435,0.7235 +Kodak,6x6,ldr-rgb-kodak24.png,35.1548,0.5468,0.5216,0.7538 +Kodak,8x8,ldr-rgb-kodak01.png,31.9132,0.6668,0.6391,0.6153 +Kodak,8x8,ldr-rgb-kodak02.png,36.1554,0.5796,0.5500,0.7149 +Kodak,8x8,ldr-rgb-kodak03.png,38.1910,0.3107,0.2841,1.3839 +Kodak,8x8,ldr-rgb-kodak04.png,36.3738,0.5008,0.4690,0.8384 +Kodak,8x8,ldr-rgb-kodak05.png,30.9155,0.6750,0.6463,0.6084 +Kodak,8x8,ldr-rgb-kodak06.png,33.5859,0.5496,0.5212,0.7544 +Kodak,8x8,ldr-rgb-kodak07.png,36.5105,0.3772,0.3461,1.1362 +Kodak,8x8,ldr-rgb-kodak08.png,30.7590,0.7350,0.7029,0.5594 +Kodak,8x8,ldr-rgb-kodak09.png,37.5661,0.3569,0.3267,1.2037 +Kodak,8x8,ldr-rgb-kodak10.png,37.2476,0.4028,0.3715,1.0585 +Kodak,8x8,ldr-rgb-kodak11.png,33.8327,0.5979,0.5704,0.6893 +Kodak,8x8,ldr-rgb-kodak12.png,38.2683,0.3801,0.3531,1.1137 +Kodak,8x8,ldr-rgb-kodak13.png,28.4569,0.7396,0.7102,0.5537 +Kodak,8x8,ldr-rgb-kodak14.png,32.3456,0.6779,0.6496,0.6053 +Kodak,8x8,ldr-rgb-kodak15.png,36.0757,0.4598,0.4302,0.9141 +Kodak,8x8,ldr-rgb-kodak16.png,37.2738,0.4379,0.4104,0.9582 +Kodak,8x8,ldr-rgb-kodak17.png,35.8814,0.4317,0.4004,0.9820 +Kodak,8x8,ldr-rgb-kodak18.png,31.6561,0.6987,0.6657,0.5907 +Kodak,8x8,ldr-rgb-kodak19.png,34.9270,0.4809,0.4490,0.8757 +Kodak,8x8,ldr-rgb-kodak20.png,36.1748,0.3625,0.3365,1.1687 +Kodak,8x8,ldr-rgb-kodak21.png,33.2279,0.4843,0.4564,0.8615 +Kodak,8x8,ldr-rgb-kodak22.png,34.2260,0.6094,0.5787,0.6795 +Kodak,8x8,ldr-rgb-kodak23.png,38.1952,0.3459,0.3176,1.2379 +Kodak,8x8,ldr-rgb-kodak24.png,31.2273,0.5616,0.5317,0.7396 +Kodak,12x12,ldr-rgb-kodak01.png,27.9103,0.7789,0.7414,0.5304 +Kodak,12x12,ldr-rgb-kodak02.png,32.9838,0.4876,0.4493,0.8752 +Kodak,12x12,ldr-rgb-kodak03.png,34.4199,0.3146,0.2789,1.4100 +Kodak,12x12,ldr-rgb-kodak04.png,32.9679,0.4495,0.4082,0.9634 +Kodak,12x12,ldr-rgb-kodak05.png,26.5893,0.7835,0.7452,0.5277 +Kodak,12x12,ldr-rgb-kodak06.png,29.5476,0.5862,0.5487,0.7167 +Kodak,12x12,ldr-rgb-kodak07.png,32.6245,0.3795,0.3384,1.1618 +Kodak,12x12,ldr-rgb-kodak08.png,26.2823,0.7965,0.7542,0.5214 +Kodak,12x12,ldr-rgb-kodak09.png,33.6237,0.3484,0.3087,1.2738 +Kodak,12x12,ldr-rgb-kodak10.png,32.9953,0.3467,0.3061,1.2845 +Kodak,12x12,ldr-rgb-kodak11.png,30.0555,0.5568,0.5197,0.7567 +Kodak,12x12,ldr-rgb-kodak12.png,34.4872,0.3240,0.2876,1.3671 +Kodak,12x12,ldr-rgb-kodak13.png,24.5825,0.9105,0.8722,0.4508 +Kodak,12x12,ldr-rgb-kodak14.png,28.5949,0.7146,0.6769,0.5809 +Kodak,12x12,ldr-rgb-kodak15.png,32.7169,0.4265,0.3878,1.0139 +Kodak,12x12,ldr-rgb-kodak16.png,33.3423,0.4299,0.3926,1.0017 +Kodak,12x12,ldr-rgb-kodak17.png,32.1339,0.3866,0.3456,1.1378 +Kodak,12x12,ldr-rgb-kodak18.png,27.9265,0.6784,0.6363,0.6180 +Kodak,12x12,ldr-rgb-kodak19.png,31.0994,0.5509,0.5097,0.7714 +Kodak,12x12,ldr-rgb-kodak20.png,32.1706,0.4082,0.3729,1.0545 +Kodak,12x12,ldr-rgb-kodak21.png,29.3335,0.5253,0.4879,0.8059 +Kodak,12x12,ldr-rgb-kodak22.png,30.7875,0.5811,0.5418,0.7258 +Kodak,12x12,ldr-rgb-kodak23.png,34.3689,0.2835,0.2457,1.6006 +Kodak,12x12,ldr-rgb-kodak24.png,27.2177,0.6214,0.5821,0.6755 diff --git a/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse2_fast_results.csv b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse2_fast_results.csv new file mode 100644 index 0000000000..240bb7e1f0 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse2_fast_results.csv @@ -0,0 +1,121 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Kodak,4x4,ldr-rgb-kodak01.png,44.8409,0.0545,0.0344,11.4354 +Kodak,4x4,ldr-rgb-kodak02.png,44.1697,0.0715,0.0499,7.8812 +Kodak,4x4,ldr-rgb-kodak03.png,46.5885,0.0460,0.0272,14.4703 +Kodak,4x4,ldr-rgb-kodak04.png,44.5075,0.0685,0.0443,8.8750 +Kodak,4x4,ldr-rgb-kodak05.png,41.5438,0.0879,0.0663,5.9323 +Kodak,4x4,ldr-rgb-kodak06.png,44.7367,0.0543,0.0342,11.5076 +Kodak,4x4,ldr-rgb-kodak07.png,45.0074,0.0609,0.0376,10.4576 +Kodak,4x4,ldr-rgb-kodak08.png,42.0743,0.0939,0.0694,5.6627 +Kodak,4x4,ldr-rgb-kodak09.png,46.2446,0.0477,0.0250,15.7148 +Kodak,4x4,ldr-rgb-kodak10.png,46.0257,0.0504,0.0266,14.7826 +Kodak,4x4,ldr-rgb-kodak11.png,44.2228,0.0615,0.0413,9.5127 +Kodak,4x4,ldr-rgb-kodak12.png,47.0131,0.0442,0.0248,15.8663 +Kodak,4x4,ldr-rgb-kodak13.png,41.4252,0.0794,0.0579,6.7876 +Kodak,4x4,ldr-rgb-kodak14.png,41.7518,0.0741,0.0536,7.3382 +Kodak,4x4,ldr-rgb-kodak15.png,44.5130,0.0696,0.0477,8.2382 +Kodak,4x4,ldr-rgb-kodak16.png,47.1776,0.0411,0.0218,18.0350 +Kodak,4x4,ldr-rgb-kodak17.png,45.7496,0.0475,0.0239,16.4257 +Kodak,4x4,ldr-rgb-kodak18.png,41.5761,0.0907,0.0656,5.9976 +Kodak,4x4,ldr-rgb-kodak19.png,44.7986,0.0574,0.0332,11.8482 +Kodak,4x4,ldr-rgb-kodak20.png,46.3814,0.0470,0.0283,13.8862 +Kodak,4x4,ldr-rgb-kodak21.png,44.5714,0.0553,0.0351,11.2094 +Kodak,4x4,ldr-rgb-kodak22.png,43.1032,0.0774,0.0547,7.1944 +Kodak,4x4,ldr-rgb-kodak23.png,45.5477,0.0542,0.0334,11.7612 +Kodak,4x4,ldr-rgb-kodak24.png,41.8129,0.0759,0.0533,7.3776 +Kodak,5x5,ldr-rgb-kodak01.png,39.6138,0.0581,0.0368,10.6965 +Kodak,5x5,ldr-rgb-kodak02.png,40.6088,0.0569,0.0344,11.4386 +Kodak,5x5,ldr-rgb-kodak03.png,42.9963,0.0425,0.0226,17.3737 +Kodak,5x5,ldr-rgb-kodak04.png,41.2062,0.0569,0.0321,12.2439 +Kodak,5x5,ldr-rgb-kodak05.png,37.3822,0.0844,0.0621,6.3294 +Kodak,5x5,ldr-rgb-kodak06.png,40.5789,0.0505,0.0296,13.2700 +Kodak,5x5,ldr-rgb-kodak07.png,41.3995,0.0541,0.0299,13.1572 +Kodak,5x5,ldr-rgb-kodak08.png,37.7559,0.0893,0.0638,6.1595 +Kodak,5x5,ldr-rgb-kodak09.png,42.8587,0.0437,0.0205,19.1495 +Kodak,5x5,ldr-rgb-kodak10.png,42.5981,0.0459,0.0217,18.1165 +Kodak,5x5,ldr-rgb-kodak11.png,40.2821,0.0543,0.0334,11.7903 +Kodak,5x5,ldr-rgb-kodak12.png,43.3971,0.0391,0.0190,20.6737 +Kodak,5x5,ldr-rgb-kodak13.png,36.8071,0.0789,0.0566,6.9480 +Kodak,5x5,ldr-rgb-kodak14.png,37.8827,0.0754,0.0538,7.3106 +Kodak,5x5,ldr-rgb-kodak15.png,41.1327,0.0558,0.0329,11.9394 +Kodak,5x5,ldr-rgb-kodak16.png,43.4786,0.0379,0.0177,22.1893 +Kodak,5x5,ldr-rgb-kodak17.png,42.0162,0.0449,0.0208,18.9410 +Kodak,5x5,ldr-rgb-kodak18.png,38.0826,0.0746,0.0487,8.0769 +Kodak,5x5,ldr-rgb-kodak19.png,41.1197,0.0512,0.0260,15.1006 +Kodak,5x5,ldr-rgb-kodak20.png,42.3525,0.0426,0.0230,17.0815 +Kodak,5x5,ldr-rgb-kodak21.png,40.4136,0.0523,0.0313,12.5616 +Kodak,5x5,ldr-rgb-kodak22.png,39.7510,0.0615,0.0378,10.3896 +Kodak,5x5,ldr-rgb-kodak23.png,42.4022,0.0460,0.0245,16.0477 +Kodak,5x5,ldr-rgb-kodak24.png,37.7945,0.0679,0.0446,8.8236 +Kodak,6x6,ldr-rgb-kodak01.png,35.7620,0.0794,0.0570,6.8993 +Kodak,6x6,ldr-rgb-kodak02.png,38.1752,0.0618,0.0383,10.2711 +Kodak,6x6,ldr-rgb-kodak03.png,40.5434,0.0449,0.0242,16.2478 +Kodak,6x6,ldr-rgb-kodak04.png,38.5547,0.0613,0.0352,11.1563 +Kodak,6x6,ldr-rgb-kodak05.png,34.3540,0.1078,0.0844,4.6586 +Kodak,6x6,ldr-rgb-kodak06.png,37.2892,0.0612,0.0392,10.0308 +Kodak,6x6,ldr-rgb-kodak07.png,38.8740,0.0597,0.0345,11.3933 +Kodak,6x6,ldr-rgb-kodak08.png,34.4432,0.1125,0.0860,4.5711 +Kodak,6x6,ldr-rgb-kodak09.png,39.9689,0.0501,0.0257,15.3271 +Kodak,6x6,ldr-rgb-kodak10.png,39.7189,0.0508,0.0253,15.5514 +Kodak,6x6,ldr-rgb-kodak11.png,37.1348,0.0649,0.0428,9.1884 +Kodak,6x6,ldr-rgb-kodak12.png,40.7314,0.0427,0.0215,18.2840 +Kodak,6x6,ldr-rgb-kodak13.png,32.7856,0.1162,0.0928,4.2350 +Kodak,6x6,ldr-rgb-kodak14.png,35.2630,0.0925,0.0699,5.6214 +Kodak,6x6,ldr-rgb-kodak15.png,38.5381,0.0613,0.0375,10.4959 +Kodak,6x6,ldr-rgb-kodak16.png,40.5073,0.0423,0.0211,18.6693 +Kodak,6x6,ldr-rgb-kodak17.png,38.9311,0.0517,0.0261,15.0496 +Kodak,6x6,ldr-rgb-kodak18.png,35.1082,0.0874,0.0603,6.5174 +Kodak,6x6,ldr-rgb-kodak19.png,37.9776,0.0625,0.0365,10.7852 +Kodak,6x6,ldr-rgb-kodak20.png,39.1841,0.0504,0.0297,13.2436 +Kodak,6x6,ldr-rgb-kodak21.png,36.8976,0.0672,0.0450,8.7304 +Kodak,6x6,ldr-rgb-kodak22.png,36.9754,0.0693,0.0447,8.7901 +Kodak,6x6,ldr-rgb-kodak23.png,40.0639,0.0483,0.0257,15.2799 +Kodak,6x6,ldr-rgb-kodak24.png,34.7723,0.0817,0.0572,6.8746 +Kodak,8x8,ldr-rgb-kodak01.png,31.3212,0.0971,0.0705,5.5808 +Kodak,8x8,ldr-rgb-kodak02.png,34.8911,0.0633,0.0355,11.0827 +Kodak,8x8,ldr-rgb-kodak03.png,36.5623,0.0509,0.0256,15.3336 +Kodak,8x8,ldr-rgb-kodak04.png,35.1628,0.0629,0.0324,12.1378 +Kodak,8x8,ldr-rgb-kodak05.png,30.2365,0.1281,0.1001,3.9269 +Kodak,8x8,ldr-rgb-kodak06.png,32.8892,0.0762,0.0499,7.8853 +Kodak,8x8,ldr-rgb-kodak07.png,34.9619,0.0668,0.0374,10.5070 +Kodak,8x8,ldr-rgb-kodak08.png,29.9758,0.1390,0.1083,3.6316 +Kodak,8x8,ldr-rgb-kodak09.png,36.0691,0.0572,0.0283,13.8804 +Kodak,8x8,ldr-rgb-kodak10.png,35.8604,0.0571,0.0270,14.5383 +Kodak,8x8,ldr-rgb-kodak11.png,32.9645,0.0764,0.0501,7.8521 +Kodak,8x8,ldr-rgb-kodak12.png,36.6475,0.0500,0.0244,16.1340 +Kodak,8x8,ldr-rgb-kodak13.png,28.2153,0.1509,0.1230,3.1977 +Kodak,8x8,ldr-rgb-kodak14.png,31.4960,0.1057,0.0788,4.9914 +Kodak,8x8,ldr-rgb-kodak15.png,34.9106,0.0652,0.0369,10.6687 +Kodak,8x8,ldr-rgb-kodak16.png,36.0170,0.0538,0.0281,13.9810 +Kodak,8x8,ldr-rgb-kodak17.png,34.8485,0.0611,0.0310,12.6914 +Kodak,8x8,ldr-rgb-kodak18.png,31.2442,0.0996,0.0681,5.7735 +Kodak,8x8,ldr-rgb-kodak19.png,34.0825,0.0704,0.0401,9.8140 +Kodak,8x8,ldr-rgb-kodak20.png,35.2119,0.0567,0.0317,12.4180 +Kodak,8x8,ldr-rgb-kodak21.png,32.7391,0.0779,0.0515,7.6422 +Kodak,8x8,ldr-rgb-kodak22.png,33.4423,0.0741,0.0451,8.7230 +Kodak,8x8,ldr-rgb-kodak23.png,36.5047,0.0507,0.0241,16.3247 +Kodak,8x8,ldr-rgb-kodak24.png,30.8065,0.0946,0.0659,5.9668 +Kodak,12x12,ldr-rgb-kodak01.png,27.1019,0.0866,0.0521,7.5440 +Kodak,12x12,ldr-rgb-kodak02.png,31.1048,0.0543,0.0196,20.0612 +Kodak,12x12,ldr-rgb-kodak03.png,32.7203,0.0491,0.0168,23.4181 +Kodak,12x12,ldr-rgb-kodak04.png,31.5693,0.0535,0.0157,25.0519 +Kodak,12x12,ldr-rgb-kodak05.png,25.8228,0.1002,0.0653,6.0185 +Kodak,12x12,ldr-rgb-kodak06.png,28.6863,0.0723,0.0384,10.2480 +Kodak,12x12,ldr-rgb-kodak07.png,30.8635,0.0584,0.0221,17.7974 +Kodak,12x12,ldr-rgb-kodak08.png,25.3874,0.1169,0.0790,4.9748 +Kodak,12x12,ldr-rgb-kodak09.png,31.8272,0.0548,0.0186,21.0909 +Kodak,12x12,ldr-rgb-kodak10.png,31.5237,0.0564,0.0196,20.0763 +Kodak,12x12,ldr-rgb-kodak11.png,28.9422,0.0646,0.0312,12.5842 +Kodak,12x12,ldr-rgb-kodak12.png,32.4574,0.0511,0.0179,22.0128 +Kodak,12x12,ldr-rgb-kodak13.png,24.3252,0.1304,0.0956,4.1130 +Kodak,12x12,ldr-rgb-kodak14.png,27.5218,0.0768,0.0424,9.2836 +Kodak,12x12,ldr-rgb-kodak15.png,31.3081,0.0614,0.0255,15.4179 +Kodak,12x12,ldr-rgb-kodak16.png,31.4919,0.0522,0.0190,20.7218 +Kodak,12x12,ldr-rgb-kodak17.png,30.8806,0.0593,0.0221,17.7614 +Kodak,12x12,ldr-rgb-kodak18.png,27.4237,0.0826,0.0442,8.8888 +Kodak,12x12,ldr-rgb-kodak19.png,30.1855,0.0654,0.0281,13.9720 +Kodak,12x12,ldr-rgb-kodak20.png,31.0856,0.0560,0.0242,16.2728 +Kodak,12x12,ldr-rgb-kodak21.png,28.7284,0.0704,0.0368,10.6937 +Kodak,12x12,ldr-rgb-kodak22.png,29.8250,0.0601,0.0242,16.2432 +Kodak,12x12,ldr-rgb-kodak23.png,32.5624,0.0516,0.0177,22.2381 +Kodak,12x12,ldr-rgb-kodak24.png,26.7546,0.0866,0.0506,7.7681 diff --git a/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse2_fastest_results.csv b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse2_fastest_results.csv new file mode 100644 index 0000000000..bd66a8abb0 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse2_fastest_results.csv @@ -0,0 +1,121 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Kodak,4x4,ldr-rgb-kodak01.png,44.3299,0.0460,0.0257,15.2877 +Kodak,4x4,ldr-rgb-kodak02.png,43.1808,0.0543,0.0327,12.0242 +Kodak,4x4,ldr-rgb-kodak03.png,45.5837,0.0385,0.0195,20.1960 +Kodak,4x4,ldr-rgb-kodak04.png,43.8256,0.0536,0.0294,13.3701 +Kodak,4x4,ldr-rgb-kodak05.png,40.7590,0.0619,0.0405,9.7018 +Kodak,4x4,ldr-rgb-kodak06.png,44.2617,0.0454,0.0254,15.5066 +Kodak,4x4,ldr-rgb-kodak07.png,44.2422,0.0485,0.0253,15.5514 +Kodak,4x4,ldr-rgb-kodak08.png,41.2754,0.0668,0.0423,9.2970 +Kodak,4x4,ldr-rgb-kodak09.png,45.7021,0.0414,0.0192,20.5013 +Kodak,4x4,ldr-rgb-kodak10.png,45.5005,0.0438,0.0201,19.5300 +Kodak,4x4,ldr-rgb-kodak11.png,43.5970,0.0486,0.0288,13.6514 +Kodak,4x4,ldr-rgb-kodak12.png,46.2784,0.0383,0.0191,20.5547 +Kodak,4x4,ldr-rgb-kodak13.png,41.0931,0.0629,0.0415,9.4714 +Kodak,4x4,ldr-rgb-kodak14.png,40.7005,0.0523,0.0315,12.4669 +Kodak,4x4,ldr-rgb-kodak15.png,43.7258,0.0517,0.0298,13.2133 +Kodak,4x4,ldr-rgb-kodak16.png,47.0128,0.0372,0.0179,22.0043 +Kodak,4x4,ldr-rgb-kodak17.png,45.4482,0.0425,0.0191,20.6326 +Kodak,4x4,ldr-rgb-kodak18.png,41.0795,0.0666,0.0413,9.5306 +Kodak,4x4,ldr-rgb-kodak19.png,44.4127,0.0485,0.0244,16.1201 +Kodak,4x4,ldr-rgb-kodak20.png,45.6790,0.0393,0.0206,19.1038 +Kodak,4x4,ldr-rgb-kodak21.png,44.1356,0.0455,0.0254,15.4724 +Kodak,4x4,ldr-rgb-kodak22.png,42.4979,0.0576,0.0348,11.3015 +Kodak,4x4,ldr-rgb-kodak23.png,44.9926,0.0439,0.0234,16.8257 +Kodak,4x4,ldr-rgb-kodak24.png,40.9953,0.0558,0.0332,11.8296 +Kodak,5x5,ldr-rgb-kodak01.png,39.3652,0.0507,0.0295,13.3312 +Kodak,5x5,ldr-rgb-kodak02.png,40.3646,0.0484,0.0260,15.1348 +Kodak,5x5,ldr-rgb-kodak03.png,42.5877,0.0371,0.0175,22.4861 +Kodak,5x5,ldr-rgb-kodak04.png,40.7623,0.0497,0.0251,15.6830 +Kodak,5x5,ldr-rgb-kodak05.png,36.9662,0.0653,0.0431,9.1177 +Kodak,5x5,ldr-rgb-kodak06.png,40.3984,0.0449,0.0240,16.3527 +Kodak,5x5,ldr-rgb-kodak07.png,41.0623,0.0472,0.0233,16.8974 +Kodak,5x5,ldr-rgb-kodak08.png,37.3684,0.0697,0.0444,8.8522 +Kodak,5x5,ldr-rgb-kodak09.png,42.5245,0.0399,0.0171,23.0383 +Kodak,5x5,ldr-rgb-kodak10.png,42.3371,0.0423,0.0176,22.3013 +Kodak,5x5,ldr-rgb-kodak11.png,40.0378,0.0463,0.0255,15.4335 +Kodak,5x5,ldr-rgb-kodak12.png,43.1430,0.0360,0.0159,24.6715 +Kodak,5x5,ldr-rgb-kodak13.png,36.6885,0.0662,0.0440,8.9420 +Kodak,5x5,ldr-rgb-kodak14.png,37.3557,0.0557,0.0341,11.5401 +Kodak,5x5,ldr-rgb-kodak15.png,40.8415,0.0472,0.0244,16.1194 +Kodak,5x5,ldr-rgb-kodak16.png,43.3827,0.0357,0.0157,25.1095 +Kodak,5x5,ldr-rgb-kodak17.png,41.8593,0.0412,0.0173,22.6663 +Kodak,5x5,ldr-rgb-kodak18.png,37.9188,0.0616,0.0357,11.0067 +Kodak,5x5,ldr-rgb-kodak19.png,40.8554,0.0462,0.0219,17.9878 +Kodak,5x5,ldr-rgb-kodak20.png,42.0231,0.0378,0.0184,21.3461 +Kodak,5x5,ldr-rgb-kodak21.png,40.1914,0.0458,0.0250,15.7211 +Kodak,5x5,ldr-rgb-kodak22.png,39.4484,0.0516,0.0280,14.0349 +Kodak,5x5,ldr-rgb-kodak23.png,42.0743,0.0411,0.0198,19.8947 +Kodak,5x5,ldr-rgb-kodak24.png,37.5527,0.0550,0.0318,12.3734 +Kodak,6x6,ldr-rgb-kodak01.png,35.6615,0.0601,0.0385,10.2150 +Kodak,6x6,ldr-rgb-kodak02.png,38.0423,0.0490,0.0260,15.1353 +Kodak,6x6,ldr-rgb-kodak03.png,40.3065,0.0376,0.0174,22.5881 +Kodak,6x6,ldr-rgb-kodak04.png,38.3034,0.0501,0.0248,15.8561 +Kodak,6x6,ldr-rgb-kodak05.png,34.1002,0.0726,0.0497,7.9099 +Kodak,6x6,ldr-rgb-kodak06.png,37.2267,0.0490,0.0275,14.2848 +Kodak,6x6,ldr-rgb-kodak07.png,38.6400,0.0484,0.0239,16.4711 +Kodak,6x6,ldr-rgb-kodak08.png,34.2358,0.0778,0.0516,7.6144 +Kodak,6x6,ldr-rgb-kodak09.png,39.7637,0.0424,0.0189,20.7622 +Kodak,6x6,ldr-rgb-kodak10.png,39.5682,0.0436,0.0187,21.0489 +Kodak,6x6,ldr-rgb-kodak11.png,37.0000,0.0502,0.0286,13.7618 +Kodak,6x6,ldr-rgb-kodak12.png,40.5726,0.0372,0.0166,23.6522 +Kodak,6x6,ldr-rgb-kodak13.png,32.7197,0.0816,0.0586,6.7126 +Kodak,6x6,ldr-rgb-kodak14.png,34.8684,0.0609,0.0389,10.1191 +Kodak,6x6,ldr-rgb-kodak15.png,38.3754,0.0486,0.0253,15.5133 +Kodak,6x6,ldr-rgb-kodak16.png,40.4633,0.0375,0.0168,23.3445 +Kodak,6x6,ldr-rgb-kodak17.png,38.8470,0.0445,0.0198,19.8563 +Kodak,6x6,ldr-rgb-kodak18.png,35.0120,0.0657,0.0394,9.9917 +Kodak,6x6,ldr-rgb-kodak19.png,37.8381,0.0513,0.0258,15.2374 +Kodak,6x6,ldr-rgb-kodak20.png,39.0318,0.0409,0.0209,18.8159 +Kodak,6x6,ldr-rgb-kodak21.png,36.8178,0.0515,0.0300,13.1273 +Kodak,6x6,ldr-rgb-kodak22.png,36.8523,0.0539,0.0298,13.1938 +Kodak,6x6,ldr-rgb-kodak23.png,39.8521,0.0409,0.0193,20.4120 +Kodak,6x6,ldr-rgb-kodak24.png,34.6971,0.0606,0.0367,10.7053 +Kodak,8x8,ldr-rgb-kodak01.png,31.1852,0.0795,0.0532,7.3855 +Kodak,8x8,ldr-rgb-kodak02.png,34.7863,0.0546,0.0274,14.3316 +Kodak,8x8,ldr-rgb-kodak03.png,36.4265,0.0452,0.0208,18.9173 +Kodak,8x8,ldr-rgb-kodak04.png,35.0559,0.0556,0.0264,14.8798 +Kodak,8x8,ldr-rgb-kodak05.png,30.0266,0.0959,0.0689,5.7107 +Kodak,8x8,ldr-rgb-kodak06.png,32.8020,0.0640,0.0383,10.2708 +Kodak,8x8,ldr-rgb-kodak07.png,34.8425,0.0577,0.0289,13.6151 +Kodak,8x8,ldr-rgb-kodak08.png,29.7082,0.1037,0.0733,5.3636 +Kodak,8x8,ldr-rgb-kodak09.png,35.8983,0.0506,0.0225,17.4468 +Kodak,8x8,ldr-rgb-kodak10.png,35.7101,0.0511,0.0223,17.6046 +Kodak,8x8,ldr-rgb-kodak11.png,32.8458,0.0627,0.0371,10.6111 +Kodak,8x8,ldr-rgb-kodak12.png,36.5136,0.0451,0.0203,19.3931 +Kodak,8x8,ldr-rgb-kodak13.png,28.1418,0.1129,0.0858,4.5829 +Kodak,8x8,ldr-rgb-kodak14.png,31.2765,0.0797,0.0535,7.3530 +Kodak,8x8,ldr-rgb-kodak15.png,34.7635,0.0556,0.0281,14.0139 +Kodak,8x8,ldr-rgb-kodak16.png,35.9622,0.0481,0.0231,16.9879 +Kodak,8x8,ldr-rgb-kodak17.png,34.7176,0.0538,0.0252,15.6336 +Kodak,8x8,ldr-rgb-kodak18.png,31.1628,0.0801,0.0492,7.9841 +Kodak,8x8,ldr-rgb-kodak19.png,33.8985,0.0612,0.0314,12.5340 +Kodak,8x8,ldr-rgb-kodak20.png,35.0234,0.0488,0.0244,16.0917 +Kodak,8x8,ldr-rgb-kodak21.png,32.6180,0.0646,0.0387,10.1603 +Kodak,8x8,ldr-rgb-kodak22.png,33.3281,0.0623,0.0338,11.6447 +Kodak,8x8,ldr-rgb-kodak23.png,36.3979,0.0458,0.0201,19.5473 +Kodak,8x8,ldr-rgb-kodak24.png,30.7238,0.0761,0.0479,8.2175 +Kodak,12x12,ldr-rgb-kodak01.png,26.9939,0.0698,0.0382,10.2847 +Kodak,12x12,ldr-rgb-kodak02.png,31.2071,0.0515,0.0194,20.2593 +Kodak,12x12,ldr-rgb-kodak03.png,32.6375,0.0441,0.0145,27.1726 +Kodak,12x12,ldr-rgb-kodak04.png,31.4776,0.0488,0.0134,29.3010 +Kodak,12x12,ldr-rgb-kodak05.png,25.6987,0.0791,0.0466,8.4302 +Kodak,12x12,ldr-rgb-kodak06.png,28.5195,0.0606,0.0293,13.4208 +Kodak,12x12,ldr-rgb-kodak07.png,30.7941,0.0515,0.0176,22.3091 +Kodak,12x12,ldr-rgb-kodak08.png,25.2216,0.0910,0.0555,7.0844 +Kodak,12x12,ldr-rgb-kodak09.png,31.6367,0.0489,0.0153,25.7172 +Kodak,12x12,ldr-rgb-kodak10.png,31.4545,0.0503,0.0163,24.0941 +Kodak,12x12,ldr-rgb-kodak11.png,28.8692,0.0545,0.0238,16.5224 +Kodak,12x12,ldr-rgb-kodak12.png,32.3695,0.0454,0.0149,26.3815 +Kodak,12x12,ldr-rgb-kodak13.png,24.2380,0.0994,0.0666,5.9049 +Kodak,12x12,ldr-rgb-kodak14.png,27.4424,0.0633,0.0315,12.4772 +Kodak,12x12,ldr-rgb-kodak15.png,31.2355,0.0537,0.0207,19.0291 +Kodak,12x12,ldr-rgb-kodak16.png,31.3535,0.0462,0.0158,24.8245 +Kodak,12x12,ldr-rgb-kodak17.png,30.8266,0.0517,0.0176,22.3824 +Kodak,12x12,ldr-rgb-kodak18.png,27.3668,0.0677,0.0318,12.3801 +Kodak,12x12,ldr-rgb-kodak19.png,29.8698,0.0571,0.0224,17.5590 +Kodak,12x12,ldr-rgb-kodak20.png,30.9664,0.0490,0.0194,20.2962 +Kodak,12x12,ldr-rgb-kodak21.png,28.6252,0.0591,0.0282,13.9671 +Kodak,12x12,ldr-rgb-kodak22.png,29.7117,0.0529,0.0194,20.2929 +Kodak,12x12,ldr-rgb-kodak23.png,32.5063,0.0462,0.0150,26.2936 +Kodak,12x12,ldr-rgb-kodak24.png,26.6826,0.0702,0.0365,10.7698 diff --git a/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse2_medium_results.csv b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse2_medium_results.csv new file mode 100644 index 0000000000..aec8c83595 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse2_medium_results.csv @@ -0,0 +1,121 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Kodak,4x4,ldr-rgb-kodak01.png,45.2684,0.2148,0.1940,2.0266 +Kodak,4x4,ldr-rgb-kodak02.png,45.2605,0.3030,0.2813,1.3980 +Kodak,4x4,ldr-rgb-kodak03.png,47.5609,0.1532,0.1338,2.9383 +Kodak,4x4,ldr-rgb-kodak04.png,45.3343,0.2374,0.2128,1.8477 +Kodak,4x4,ldr-rgb-kodak05.png,42.0787,0.2706,0.2488,1.5805 +Kodak,4x4,ldr-rgb-kodak06.png,45.1329,0.1997,0.1795,2.1908 +Kodak,4x4,ldr-rgb-kodak07.png,45.8875,0.1935,0.1697,2.3171 +Kodak,4x4,ldr-rgb-kodak08.png,42.4908,0.3014,0.2764,1.4226 +Kodak,4x4,ldr-rgb-kodak09.png,47.1214,0.2373,0.2146,1.8322 +Kodak,4x4,ldr-rgb-kodak10.png,46.7993,0.2392,0.2153,1.8264 +Kodak,4x4,ldr-rgb-kodak11.png,44.8269,0.2315,0.2112,1.8617 +Kodak,4x4,ldr-rgb-kodak12.png,47.9001,0.1749,0.1548,2.5401 +Kodak,4x4,ldr-rgb-kodak13.png,41.6078,0.2256,0.2036,1.9318 +Kodak,4x4,ldr-rgb-kodak14.png,42.5242,0.2514,0.2305,1.7059 +Kodak,4x4,ldr-rgb-kodak15.png,45.3860,0.2100,0.1876,2.0963 +Kodak,4x4,ldr-rgb-kodak16.png,47.8467,0.1778,0.1582,2.4863 +Kodak,4x4,ldr-rgb-kodak17.png,46.2753,0.2024,0.1783,2.2058 +Kodak,4x4,ldr-rgb-kodak18.png,41.9463,0.3058,0.2799,1.4046 +Kodak,4x4,ldr-rgb-kodak19.png,45.3150,0.2477,0.2233,1.7608 +Kodak,4x4,ldr-rgb-kodak20.png,46.8640,0.1493,0.1304,3.0150 +Kodak,4x4,ldr-rgb-kodak21.png,45.1372,0.2533,0.2326,1.6907 +Kodak,4x4,ldr-rgb-kodak22.png,43.7127,0.3073,0.2843,1.3830 +Kodak,4x4,ldr-rgb-kodak23.png,46.7393,0.2429,0.2217,1.7732 +Kodak,4x4,ldr-rgb-kodak24.png,42.2490,0.2389,0.2161,1.8193 +Kodak,5x5,ldr-rgb-kodak01.png,40.1135,0.2544,0.2324,1.6917 +Kodak,5x5,ldr-rgb-kodak02.png,41.6610,0.2778,0.2545,1.5448 +Kodak,5x5,ldr-rgb-kodak03.png,44.0075,0.1256,0.1054,3.7300 +Kodak,5x5,ldr-rgb-kodak04.png,42.0337,0.2116,0.1861,2.1125 +Kodak,5x5,ldr-rgb-kodak05.png,37.9653,0.2983,0.2744,1.4328 +Kodak,5x5,ldr-rgb-kodak06.png,40.9636,0.1994,0.1780,2.2096 +Kodak,5x5,ldr-rgb-kodak07.png,42.4142,0.1690,0.1442,2.7265 +Kodak,5x5,ldr-rgb-kodak08.png,38.3522,0.3258,0.2998,1.3117 +Kodak,5x5,ldr-rgb-kodak09.png,43.7811,0.1481,0.1241,3.1678 +Kodak,5x5,ldr-rgb-kodak10.png,43.3916,0.1669,0.1416,2.7772 +Kodak,5x5,ldr-rgb-kodak11.png,40.8313,0.2305,0.2088,1.8833 +Kodak,5x5,ldr-rgb-kodak12.png,44.3909,0.1290,0.1081,3.6374 +Kodak,5x5,ldr-rgb-kodak13.png,36.9119,0.2656,0.2427,1.6201 +Kodak,5x5,ldr-rgb-kodak14.png,38.6094,0.2661,0.2438,1.6129 +Kodak,5x5,ldr-rgb-kodak15.png,41.8807,0.2006,0.1771,2.2209 +Kodak,5x5,ldr-rgb-kodak16.png,44.1433,0.1407,0.1200,3.2754 +Kodak,5x5,ldr-rgb-kodak17.png,42.5304,0.1479,0.1229,3.1989 +Kodak,5x5,ldr-rgb-kodak18.png,38.3628,0.2855,0.2589,1.5188 +Kodak,5x5,ldr-rgb-kodak19.png,41.6528,0.1960,0.1702,2.3103 +Kodak,5x5,ldr-rgb-kodak20.png,42.9800,0.1386,0.1186,3.3150 +Kodak,5x5,ldr-rgb-kodak21.png,40.7663,0.2003,0.1785,2.2035 +Kodak,5x5,ldr-rgb-kodak22.png,40.2665,0.2725,0.2481,1.5852 +Kodak,5x5,ldr-rgb-kodak23.png,43.4940,0.1744,0.1524,2.5805 +Kodak,5x5,ldr-rgb-kodak24.png,38.1256,0.2329,0.2086,1.8848 +Kodak,6x6,ldr-rgb-kodak01.png,36.2094,0.3057,0.2825,1.3918 +Kodak,6x6,ldr-rgb-kodak02.png,39.0304,0.2369,0.2124,1.8514 +Kodak,6x6,ldr-rgb-kodak03.png,41.3479,0.1159,0.0942,4.1735 +Kodak,6x6,ldr-rgb-kodak04.png,39.4137,0.2015,0.1737,2.2637 +Kodak,6x6,ldr-rgb-kodak05.png,34.8070,0.3347,0.3105,1.2664 +Kodak,6x6,ldr-rgb-kodak06.png,37.6384,0.2078,0.1848,2.1274 +Kodak,6x6,ldr-rgb-kodak07.png,39.8015,0.1626,0.1368,2.8752 +Kodak,6x6,ldr-rgb-kodak08.png,35.0170,0.3678,0.3403,1.1555 +Kodak,6x6,ldr-rgb-kodak09.png,40.8977,0.1259,0.1009,3.8985 +Kodak,6x6,ldr-rgb-kodak10.png,40.5297,0.1356,0.1091,3.6037 +Kodak,6x6,ldr-rgb-kodak11.png,37.5968,0.2202,0.1975,1.9913 +Kodak,6x6,ldr-rgb-kodak12.png,41.5070,0.1088,0.0870,4.5221 +Kodak,6x6,ldr-rgb-kodak13.png,32.8889,0.3500,0.3258,1.2069 +Kodak,6x6,ldr-rgb-kodak14.png,35.8374,0.2737,0.2504,1.5701 +Kodak,6x6,ldr-rgb-kodak15.png,39.2095,0.2013,0.1765,2.2278 +Kodak,6x6,ldr-rgb-kodak16.png,41.0545,0.1305,0.1086,3.6206 +Kodak,6x6,ldr-rgb-kodak17.png,39.5028,0.1373,0.1108,3.5480 +Kodak,6x6,ldr-rgb-kodak18.png,35.3646,0.2934,0.2656,1.4807 +Kodak,6x6,ldr-rgb-kodak19.png,38.5498,0.2037,0.1768,2.2240 +Kodak,6x6,ldr-rgb-kodak20.png,39.7961,0.1440,0.1228,3.2013 +Kodak,6x6,ldr-rgb-kodak21.png,37.2072,0.2016,0.1787,2.2004 +Kodak,6x6,ldr-rgb-kodak22.png,37.4640,0.2606,0.2349,1.6739 +Kodak,6x6,ldr-rgb-kodak23.png,41.0051,0.1337,0.1104,3.5630 +Kodak,6x6,ldr-rgb-kodak24.png,35.0556,0.2397,0.2143,1.8350 +Kodak,8x8,ldr-rgb-kodak01.png,31.8078,0.4037,0.3756,1.0468 +Kodak,8x8,ldr-rgb-kodak02.png,35.7880,0.2305,0.2012,1.9545 +Kodak,8x8,ldr-rgb-kodak03.png,37.7486,0.1411,0.1147,3.4285 +Kodak,8x8,ldr-rgb-kodak04.png,36.0731,0.2167,0.1849,2.1261 +Kodak,8x8,ldr-rgb-kodak05.png,30.7508,0.4186,0.3895,1.0095 +Kodak,8x8,ldr-rgb-kodak06.png,33.4488,0.2529,0.2254,1.7444 +Kodak,8x8,ldr-rgb-kodak07.png,36.1577,0.1918,0.1612,2.4395 +Kodak,8x8,ldr-rgb-kodak08.png,30.5739,0.4252,0.3896,1.0093 +Kodak,8x8,ldr-rgb-kodak09.png,37.2780,0.1413,0.1111,3.5386 +Kodak,8x8,ldr-rgb-kodak10.png,36.9214,0.1466,0.1154,3.4063 +Kodak,8x8,ldr-rgb-kodak11.png,33.6683,0.2486,0.2211,1.7787 +Kodak,8x8,ldr-rgb-kodak12.png,37.8350,0.1321,0.1053,3.7330 +Kodak,8x8,ldr-rgb-kodak13.png,28.3988,0.4769,0.4480,0.8778 +Kodak,8x8,ldr-rgb-kodak14.png,32.1545,0.3293,0.3014,1.3048 +Kodak,8x8,ldr-rgb-kodak15.png,35.8410,0.2008,0.1711,2.2988 +Kodak,8x8,ldr-rgb-kodak16.png,37.0303,0.1573,0.1305,3.0141 +Kodak,8x8,ldr-rgb-kodak17.png,35.6791,0.1641,0.1327,2.9642 +Kodak,8x8,ldr-rgb-kodak18.png,31.5602,0.3380,0.3052,1.2886 +Kodak,8x8,ldr-rgb-kodak19.png,34.7728,0.2409,0.2092,1.8793 +Kodak,8x8,ldr-rgb-kodak20.png,35.9133,0.1753,0.1492,2.6349 +Kodak,8x8,ldr-rgb-kodak21.png,33.1196,0.2493,0.2218,1.7728 +Kodak,8x8,ldr-rgb-kodak22.png,34.0306,0.2744,0.2442,1.6105 +Kodak,8x8,ldr-rgb-kodak23.png,37.6748,0.1326,0.1044,3.7679 +Kodak,8x8,ldr-rgb-kodak24.png,31.1161,0.2829,0.2530,1.5539 +Kodak,12x12,ldr-rgb-kodak01.png,27.7577,0.4205,0.3823,1.0287 +Kodak,12x12,ldr-rgb-kodak02.png,32.5056,0.1502,0.1122,3.5036 +Kodak,12x12,ldr-rgb-kodak03.png,33.7997,0.1231,0.0873,4.5044 +Kodak,12x12,ldr-rgb-kodak04.png,32.4544,0.1402,0.0992,3.9624 +Kodak,12x12,ldr-rgb-kodak05.png,26.3963,0.4428,0.4047,0.9717 +Kodak,12x12,ldr-rgb-kodak06.png,29.3780,0.2555,0.2179,1.8048 +Kodak,12x12,ldr-rgb-kodak07.png,32.0588,0.1796,0.1399,2.8114 +Kodak,12x12,ldr-rgb-kodak08.png,26.0707,0.4443,0.4031,0.9755 +Kodak,12x12,ldr-rgb-kodak09.png,33.1099,0.1290,0.0894,4.3993 +Kodak,12x12,ldr-rgb-kodak10.png,32.4903,0.1315,0.0909,4.3239 +Kodak,12x12,ldr-rgb-kodak11.png,29.7420,0.2258,0.1888,2.0822 +Kodak,12x12,ldr-rgb-kodak12.png,33.8723,0.1148,0.0787,4.9983 +Kodak,12x12,ldr-rgb-kodak13.png,24.5329,0.5115,0.4724,0.8323 +Kodak,12x12,ldr-rgb-kodak14.png,28.3876,0.2972,0.2600,1.5126 +Kodak,12x12,ldr-rgb-kodak15.png,32.2202,0.1698,0.1316,2.9881 +Kodak,12x12,ldr-rgb-kodak16.png,32.9814,0.1263,0.0900,4.3685 +Kodak,12x12,ldr-rgb-kodak17.png,31.7754,0.1415,0.1012,3.8840 +Kodak,12x12,ldr-rgb-kodak18.png,27.7836,0.3029,0.2616,1.5031 +Kodak,12x12,ldr-rgb-kodak19.png,30.8854,0.1867,0.1459,2.6949 +Kodak,12x12,ldr-rgb-kodak20.png,31.8890,0.1516,0.1161,3.3880 +Kodak,12x12,ldr-rgb-kodak21.png,29.1843,0.2834,0.2468,1.5931 +Kodak,12x12,ldr-rgb-kodak22.png,30.5095,0.2103,0.1703,2.3090 +Kodak,12x12,ldr-rgb-kodak23.png,33.5539,0.1082,0.0708,5.5555 +Kodak,12x12,ldr-rgb-kodak24.png,27.0858,0.2737,0.2345,1.6769 diff --git a/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse2_thorough_results.csv b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse2_thorough_results.csv new file mode 100644 index 0000000000..ceb8baa18e --- /dev/null +++ b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse2_thorough_results.csv @@ -0,0 +1,121 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Kodak,4x4,ldr-rgb-kodak01.png,45.4959,0.5443,0.5229,0.7519 +Kodak,4x4,ldr-rgb-kodak02.png,45.6417,0.6739,0.6514,0.6036 +Kodak,4x4,ldr-rgb-kodak03.png,47.9779,0.5761,0.5569,0.7061 +Kodak,4x4,ldr-rgb-kodak04.png,45.6537,0.6298,0.6052,0.6498 +Kodak,4x4,ldr-rgb-kodak05.png,42.4039,0.6127,0.5906,0.6658 +Kodak,4x4,ldr-rgb-kodak06.png,45.3539,0.6285,0.6079,0.6469 +Kodak,4x4,ldr-rgb-kodak07.png,46.3258,0.6149,0.5912,0.6651 +Kodak,4x4,ldr-rgb-kodak08.png,42.8063,0.6444,0.6192,0.6351 +Kodak,4x4,ldr-rgb-kodak09.png,47.4131,0.6398,0.6169,0.6374 +Kodak,4x4,ldr-rgb-kodak10.png,47.0580,0.6325,0.6085,0.6462 +Kodak,4x4,ldr-rgb-kodak11.png,45.1139,0.5845,0.5624,0.6991 +Kodak,4x4,ldr-rgb-kodak12.png,48.2415,0.5854,0.5656,0.6952 +Kodak,4x4,ldr-rgb-kodak13.png,41.7183,0.5488,0.5270,0.7461 +Kodak,4x4,ldr-rgb-kodak14.png,42.9398,0.6031,0.5791,0.6790 +Kodak,4x4,ldr-rgb-kodak15.png,45.7807,0.6052,0.5826,0.6749 +Kodak,4x4,ldr-rgb-kodak16.png,48.0655,0.5773,0.5569,0.7060 +Kodak,4x4,ldr-rgb-kodak17.png,46.4627,0.6044,0.5804,0.6775 +Kodak,4x4,ldr-rgb-kodak18.png,42.1531,0.6599,0.6344,0.6198 +Kodak,4x4,ldr-rgb-kodak19.png,45.5408,0.6269,0.6022,0.6530 +Kodak,4x4,ldr-rgb-kodak20.png,47.1306,0.3949,0.3758,1.0463 +Kodak,4x4,ldr-rgb-kodak21.png,45.3036,0.6175,0.5970,0.6587 +Kodak,4x4,ldr-rgb-kodak22.png,43.9745,0.6797,0.6566,0.5989 +Kodak,4x4,ldr-rgb-kodak23.png,47.1411,0.6655,0.6445,0.6101 +Kodak,4x4,ldr-rgb-kodak24.png,42.5003,0.5975,0.5747,0.6843 +Kodak,5x5,ldr-rgb-kodak01.png,40.2393,0.6727,0.6508,0.6042 +Kodak,5x5,ldr-rgb-kodak02.png,42.0010,0.8171,0.7932,0.4957 +Kodak,5x5,ldr-rgb-kodak03.png,44.3362,0.6620,0.6416,0.6129 +Kodak,5x5,ldr-rgb-kodak04.png,42.2429,0.7313,0.7056,0.5572 +Kodak,5x5,ldr-rgb-kodak05.png,38.1870,0.7456,0.7228,0.5440 +Kodak,5x5,ldr-rgb-kodak06.png,41.0924,0.6466,0.6250,0.6292 +Kodak,5x5,ldr-rgb-kodak07.png,42.7292,0.7124,0.6879,0.5716 +Kodak,5x5,ldr-rgb-kodak08.png,38.5421,0.7543,0.7284,0.5399 +Kodak,5x5,ldr-rgb-kodak09.png,44.0402,0.7249,0.7005,0.5613 +Kodak,5x5,ldr-rgb-kodak10.png,43.5978,0.7299,0.7047,0.5580 +Kodak,5x5,ldr-rgb-kodak11.png,41.0060,0.6859,0.6644,0.5918 +Kodak,5x5,ldr-rgb-kodak12.png,44.6083,0.6768,0.6531,0.6021 +Kodak,5x5,ldr-rgb-kodak13.png,36.9564,0.6607,0.6375,0.6168 +Kodak,5x5,ldr-rgb-kodak14.png,38.8905,0.7161,0.6941,0.5665 +Kodak,5x5,ldr-rgb-kodak15.png,42.1361,0.6986,0.6753,0.5823 +Kodak,5x5,ldr-rgb-kodak16.png,44.2762,0.6688,0.6480,0.6068 +Kodak,5x5,ldr-rgb-kodak17.png,42.6114,0.6994,0.6743,0.5831 +Kodak,5x5,ldr-rgb-kodak18.png,38.4757,0.7808,0.7542,0.5214 +Kodak,5x5,ldr-rgb-kodak19.png,41.7857,0.7419,0.7164,0.5489 +Kodak,5x5,ldr-rgb-kodak20.png,43.2873,0.4709,0.4507,0.8725 +Kodak,5x5,ldr-rgb-kodak21.png,40.8732,0.7482,0.7265,0.5413 +Kodak,5x5,ldr-rgb-kodak22.png,40.4366,0.8069,0.7825,0.5025 +Kodak,5x5,ldr-rgb-kodak23.png,43.8954,0.7913,0.7693,0.5111 +Kodak,5x5,ldr-rgb-kodak24.png,38.2464,0.7083,0.6839,0.5750 +Kodak,6x6,ldr-rgb-kodak01.png,36.3215,0.8485,0.8254,0.4764 +Kodak,6x6,ldr-rgb-kodak02.png,39.3903,0.9383,0.9138,0.4303 +Kodak,6x6,ldr-rgb-kodak03.png,41.7525,0.5931,0.5712,0.6884 +Kodak,6x6,ldr-rgb-kodak04.png,39.6623,0.8296,0.8027,0.4899 +Kodak,6x6,ldr-rgb-kodak05.png,34.9888,0.9096,0.8856,0.4440 +Kodak,6x6,ldr-rgb-kodak06.png,37.7497,0.7582,0.7353,0.5348 +Kodak,6x6,ldr-rgb-kodak07.png,40.1196,0.6896,0.6638,0.5924 +Kodak,6x6,ldr-rgb-kodak08.png,35.1824,0.9224,0.8951,0.4393 +Kodak,6x6,ldr-rgb-kodak09.png,41.2761,0.8339,0.8086,0.4863 +Kodak,6x6,ldr-rgb-kodak10.png,40.8287,0.8518,0.8254,0.4764 +Kodak,6x6,ldr-rgb-kodak11.png,37.7718,0.7717,0.7489,0.5250 +Kodak,6x6,ldr-rgb-kodak12.png,41.8388,0.7260,0.7040,0.5586 +Kodak,6x6,ldr-rgb-kodak13.png,32.9330,0.8498,0.8253,0.4764 +Kodak,6x6,ldr-rgb-kodak14.png,36.0284,0.8797,0.8563,0.4592 +Kodak,6x6,ldr-rgb-kodak15.png,39.4662,0.7062,0.6816,0.5769 +Kodak,6x6,ldr-rgb-kodak16.png,41.2463,0.7095,0.6875,0.5720 +Kodak,6x6,ldr-rgb-kodak17.png,39.6618,0.8114,0.7850,0.5009 +Kodak,6x6,ldr-rgb-kodak18.png,35.4461,0.9514,0.9235,0.4258 +Kodak,6x6,ldr-rgb-kodak19.png,38.7120,0.9017,0.8748,0.4495 +Kodak,6x6,ldr-rgb-kodak20.png,40.1155,0.5591,0.5375,0.7315 +Kodak,6x6,ldr-rgb-kodak21.png,37.3452,0.8876,0.8646,0.4548 +Kodak,6x6,ldr-rgb-kodak22.png,37.6293,0.9569,0.9314,0.4222 +Kodak,6x6,ldr-rgb-kodak23.png,41.4207,0.8225,0.7992,0.4920 +Kodak,6x6,ldr-rgb-kodak24.png,35.1548,0.7960,0.7705,0.5103 +Kodak,8x8,ldr-rgb-kodak01.png,31.9132,1.0099,0.9816,0.4006 +Kodak,8x8,ldr-rgb-kodak02.png,36.1554,0.8673,0.8378,0.4694 +Kodak,8x8,ldr-rgb-kodak03.png,38.1910,0.4640,0.4373,0.8993 +Kodak,8x8,ldr-rgb-kodak04.png,36.3738,0.7515,0.7194,0.5466 +Kodak,8x8,ldr-rgb-kodak05.png,30.9155,1.0200,0.9907,0.3969 +Kodak,8x8,ldr-rgb-kodak06.png,33.5859,0.8327,0.8037,0.4893 +Kodak,8x8,ldr-rgb-kodak07.png,36.5105,0.5630,0.5316,0.7396 +Kodak,8x8,ldr-rgb-kodak08.png,30.7590,1.1122,1.0799,0.3641 +Kodak,8x8,ldr-rgb-kodak09.png,37.5661,0.5314,0.5010,0.7849 +Kodak,8x8,ldr-rgb-kodak10.png,37.2476,0.6025,0.5710,0.6886 +Kodak,8x8,ldr-rgb-kodak11.png,33.8327,0.9022,0.8742,0.4498 +Kodak,8x8,ldr-rgb-kodak12.png,38.2683,0.5705,0.5432,0.7238 +Kodak,8x8,ldr-rgb-kodak13.png,28.4569,1.1207,1.0909,0.3604 +Kodak,8x8,ldr-rgb-kodak14.png,32.3456,1.0341,1.0047,0.3914 +Kodak,8x8,ldr-rgb-kodak15.png,36.0757,0.6839,0.6539,0.6014 +Kodak,8x8,ldr-rgb-kodak16.png,37.2738,0.6628,0.6355,0.6188 +Kodak,8x8,ldr-rgb-kodak17.png,35.8814,0.6461,0.6147,0.6397 +Kodak,8x8,ldr-rgb-kodak18.png,31.6561,1.0468,1.0139,0.3878 +Kodak,8x8,ldr-rgb-kodak19.png,34.9270,0.7223,0.6905,0.5695 +Kodak,8x8,ldr-rgb-kodak20.png,36.1748,0.5435,0.5169,0.7607 +Kodak,8x8,ldr-rgb-kodak21.png,33.2279,0.7230,0.6949,0.5659 +Kodak,8x8,ldr-rgb-kodak22.png,34.2260,0.9195,0.8886,0.4425 +Kodak,8x8,ldr-rgb-kodak23.png,38.1952,0.5129,0.4843,0.8119 +Kodak,8x8,ldr-rgb-kodak24.png,31.2273,0.8453,0.8124,0.4840 +Kodak,12x12,ldr-rgb-kodak01.png,27.9103,1.1764,1.1383,0.3454 +Kodak,12x12,ldr-rgb-kodak02.png,32.9838,0.7276,0.6882,0.5714 +Kodak,12x12,ldr-rgb-kodak03.png,34.4199,0.4642,0.4282,0.9184 +Kodak,12x12,ldr-rgb-kodak04.png,32.9679,0.6650,0.6225,0.6317 +Kodak,12x12,ldr-rgb-kodak05.png,26.5893,1.1849,1.1457,0.3432 +Kodak,12x12,ldr-rgb-kodak06.png,29.5476,0.8861,0.8484,0.4635 +Kodak,12x12,ldr-rgb-kodak07.png,32.6245,0.5621,0.5216,0.7538 +Kodak,12x12,ldr-rgb-kodak08.png,26.2823,1.1999,1.1592,0.3392 +Kodak,12x12,ldr-rgb-kodak09.png,33.6237,0.5141,0.4740,0.8296 +Kodak,12x12,ldr-rgb-kodak10.png,32.9953,0.5149,0.4720,0.8331 +Kodak,12x12,ldr-rgb-kodak11.png,30.0555,0.8367,0.7993,0.4919 +Kodak,12x12,ldr-rgb-kodak12.png,34.4872,0.4797,0.4428,0.8881 +Kodak,12x12,ldr-rgb-kodak13.png,24.5825,1.3810,1.3419,0.2930 +Kodak,12x12,ldr-rgb-kodak14.png,28.5949,1.0773,1.0398,0.3782 +Kodak,12x12,ldr-rgb-kodak15.png,32.7169,0.6323,0.5931,0.6630 +Kodak,12x12,ldr-rgb-kodak16.png,33.3423,0.6462,0.6097,0.6449 +Kodak,12x12,ldr-rgb-kodak17.png,32.1339,0.5744,0.5333,0.7374 +Kodak,12x12,ldr-rgb-kodak18.png,27.9265,1.0178,0.9747,0.4034 +Kodak,12x12,ldr-rgb-kodak19.png,31.0994,0.8249,0.7834,0.5019 +Kodak,12x12,ldr-rgb-kodak20.png,32.1706,0.6103,0.5737,0.6854 +Kodak,12x12,ldr-rgb-kodak21.png,29.3335,0.7852,0.7469,0.5264 +Kodak,12x12,ldr-rgb-kodak22.png,30.7875,0.8729,0.8324,0.4724 +Kodak,12x12,ldr-rgb-kodak23.png,34.3689,0.4139,0.3753,1.0478 +Kodak,12x12,ldr-rgb-kodak24.png,27.2177,0.9377,0.8976,0.4381 diff --git a/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse4.1_fast_results.csv b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse4.1_fast_results.csv new file mode 100644 index 0000000000..f59c0fb25b --- /dev/null +++ b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse4.1_fast_results.csv @@ -0,0 +1,121 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Kodak,4x4,ldr-rgb-kodak01.png,44.8409,0.0498,0.0296,13.2682 +Kodak,4x4,ldr-rgb-kodak02.png,44.1697,0.0638,0.0424,9.2739 +Kodak,4x4,ldr-rgb-kodak03.png,46.5885,0.0423,0.0236,16.6835 +Kodak,4x4,ldr-rgb-kodak04.png,44.5075,0.0611,0.0374,10.5274 +Kodak,4x4,ldr-rgb-kodak05.png,41.5438,0.0760,0.0550,7.1440 +Kodak,4x4,ldr-rgb-kodak06.png,44.7367,0.0494,0.0294,13.3957 +Kodak,4x4,ldr-rgb-kodak07.png,45.0074,0.0549,0.0318,12.3681 +Kodak,4x4,ldr-rgb-kodak08.png,42.0743,0.0819,0.0573,6.8636 +Kodak,4x4,ldr-rgb-kodak09.png,46.2446,0.0444,0.0220,17.8831 +Kodak,4x4,ldr-rgb-kodak10.png,46.0257,0.0466,0.0235,16.7255 +Kodak,4x4,ldr-rgb-kodak11.png,44.2228,0.0549,0.0351,11.2136 +Kodak,4x4,ldr-rgb-kodak12.png,47.0131,0.0408,0.0216,18.2282 +Kodak,4x4,ldr-rgb-kodak13.png,41.4252,0.0699,0.0485,8.1112 +Kodak,4x4,ldr-rgb-kodak14.png,41.7518,0.0658,0.0451,8.7147 +Kodak,4x4,ldr-rgb-kodak15.png,44.5130,0.0620,0.0403,9.7485 +Kodak,4x4,ldr-rgb-kodak16.png,47.1776,0.0385,0.0194,20.2615 +Kodak,4x4,ldr-rgb-kodak17.png,45.7496,0.0444,0.0209,18.7728 +Kodak,4x4,ldr-rgb-kodak18.png,41.5761,0.0794,0.0544,7.2278 +Kodak,4x4,ldr-rgb-kodak19.png,44.7986,0.0525,0.0285,13.7874 +Kodak,4x4,ldr-rgb-kodak20.png,46.3814,0.0429,0.0242,16.2191 +Kodak,4x4,ldr-rgb-kodak21.png,44.5714,0.0500,0.0300,13.1015 +Kodak,4x4,ldr-rgb-kodak22.png,43.1032,0.0685,0.0460,8.5558 +Kodak,4x4,ldr-rgb-kodak23.png,45.5477,0.0493,0.0289,13.6164 +Kodak,4x4,ldr-rgb-kodak24.png,41.8129,0.0670,0.0445,8.8351 +Kodak,5x5,ldr-rgb-kodak01.png,39.6138,0.0526,0.0317,12.4172 +Kodak,5x5,ldr-rgb-kodak02.png,40.6088,0.0517,0.0295,13.3447 +Kodak,5x5,ldr-rgb-kodak03.png,42.9963,0.0391,0.0196,20.0590 +Kodak,5x5,ldr-rgb-kodak04.png,41.2062,0.0522,0.0275,14.3164 +Kodak,5x5,ldr-rgb-kodak05.png,37.3822,0.0738,0.0518,7.5858 +Kodak,5x5,ldr-rgb-kodak06.png,40.5789,0.0463,0.0257,15.3259 +Kodak,5x5,ldr-rgb-kodak07.png,41.3995,0.0504,0.0262,14.9826 +Kodak,5x5,ldr-rgb-kodak08.png,37.7559,0.0794,0.0534,7.3629 +Kodak,5x5,ldr-rgb-kodak09.png,42.8587,0.0409,0.0181,21.7404 +Kodak,5x5,ldr-rgb-kodak10.png,42.5981,0.0433,0.0193,20.3898 +Kodak,5x5,ldr-rgb-kodak11.png,40.2821,0.0517,0.0308,12.7501 +Kodak,5x5,ldr-rgb-kodak12.png,43.3971,0.0374,0.0174,22.5532 +Kodak,5x5,ldr-rgb-kodak13.png,36.8071,0.0773,0.0548,7.1755 +Kodak,5x5,ldr-rgb-kodak14.png,37.8827,0.0668,0.0454,8.6550 +Kodak,5x5,ldr-rgb-kodak15.png,41.1327,0.0506,0.0282,13.9324 +Kodak,5x5,ldr-rgb-kodak16.png,43.4786,0.0358,0.0157,25.0630 +Kodak,5x5,ldr-rgb-kodak17.png,42.0162,0.0421,0.0178,22.1182 +Kodak,5x5,ldr-rgb-kodak18.png,38.0826,0.0662,0.0409,9.6108 +Kodak,5x5,ldr-rgb-kodak19.png,41.1197,0.0474,0.0227,17.3215 +Kodak,5x5,ldr-rgb-kodak20.png,42.3525,0.0393,0.0200,19.6323 +Kodak,5x5,ldr-rgb-kodak21.png,40.4136,0.0477,0.0268,14.6509 +Kodak,5x5,ldr-rgb-kodak22.png,39.7510,0.0556,0.0323,12.1611 +Kodak,5x5,ldr-rgb-kodak23.png,42.4022,0.0425,0.0213,18.4939 +Kodak,5x5,ldr-rgb-kodak24.png,37.7945,0.0606,0.0374,10.5124 +Kodak,6x6,ldr-rgb-kodak01.png,35.7620,0.0711,0.0491,8.0125 +Kodak,6x6,ldr-rgb-kodak02.png,38.1752,0.0562,0.0331,11.8624 +Kodak,6x6,ldr-rgb-kodak03.png,40.5434,0.0418,0.0212,18.5453 +Kodak,6x6,ldr-rgb-kodak04.png,38.5547,0.0562,0.0305,12.8725 +Kodak,6x6,ldr-rgb-kodak05.png,34.3540,0.0950,0.0719,5.4706 +Kodak,6x6,ldr-rgb-kodak06.png,37.2892,0.0555,0.0339,11.6119 +Kodak,6x6,ldr-rgb-kodak07.png,38.8740,0.0547,0.0299,13.1440 +Kodak,6x6,ldr-rgb-kodak08.png,34.4432,0.0994,0.0730,5.3883 +Kodak,6x6,ldr-rgb-kodak09.png,39.9689,0.0467,0.0225,17.4979 +Kodak,6x6,ldr-rgb-kodak10.png,39.7189,0.0474,0.0223,17.6687 +Kodak,6x6,ldr-rgb-kodak11.png,37.1348,0.0585,0.0369,10.6534 +Kodak,6x6,ldr-rgb-kodak12.png,40.7314,0.0400,0.0189,20.7612 +Kodak,6x6,ldr-rgb-kodak13.png,32.7856,0.1028,0.0796,4.9421 +Kodak,6x6,ldr-rgb-kodak14.png,35.2630,0.0821,0.0598,6.5798 +Kodak,6x6,ldr-rgb-kodak15.png,38.5381,0.0561,0.0325,12.1031 +Kodak,6x6,ldr-rgb-kodak16.png,40.5073,0.0393,0.0187,21.0659 +Kodak,6x6,ldr-rgb-kodak17.png,38.9311,0.0482,0.0233,16.8609 +Kodak,6x6,ldr-rgb-kodak18.png,35.1082,0.0788,0.0522,7.5342 +Kodak,6x6,ldr-rgb-kodak19.png,37.9776,0.0573,0.0316,12.4558 +Kodak,6x6,ldr-rgb-kodak20.png,39.1841,0.0462,0.0260,15.1510 +Kodak,6x6,ldr-rgb-kodak21.png,36.8976,0.0606,0.0387,10.1535 +Kodak,6x6,ldr-rgb-kodak22.png,36.9754,0.0632,0.0388,10.1428 +Kodak,6x6,ldr-rgb-kodak23.png,40.0639,0.0447,0.0224,17.5785 +Kodak,6x6,ldr-rgb-kodak24.png,34.7723,0.0735,0.0492,7.9908 +Kodak,8x8,ldr-rgb-kodak01.png,31.3212,0.0869,0.0606,6.4919 +Kodak,8x8,ldr-rgb-kodak02.png,34.8911,0.0582,0.0307,12.8095 +Kodak,8x8,ldr-rgb-kodak03.png,36.5623,0.0476,0.0225,17.4840 +Kodak,8x8,ldr-rgb-kodak04.png,35.1628,0.0580,0.0281,13.9755 +Kodak,8x8,ldr-rgb-kodak05.png,30.2365,0.1134,0.0859,4.5757 +Kodak,8x8,ldr-rgb-kodak06.png,32.8892,0.0693,0.0433,9.0879 +Kodak,8x8,ldr-rgb-kodak07.png,34.9619,0.0614,0.0323,12.1882 +Kodak,8x8,ldr-rgb-kodak08.png,29.9758,0.1237,0.0928,4.2393 +Kodak,8x8,ldr-rgb-kodak09.png,36.0691,0.0533,0.0248,15.8458 +Kodak,8x8,ldr-rgb-kodak10.png,35.8604,0.0536,0.0238,16.5294 +Kodak,8x8,ldr-rgb-kodak11.png,32.9645,0.0694,0.0436,9.0281 +Kodak,8x8,ldr-rgb-kodak12.png,36.6475,0.0468,0.0214,18.3832 +Kodak,8x8,ldr-rgb-kodak13.png,28.2153,0.1335,0.1059,3.7133 +Kodak,8x8,ldr-rgb-kodak14.png,31.4960,0.0944,0.0677,5.8054 +Kodak,8x8,ldr-rgb-kodak15.png,34.9106,0.0600,0.0321,12.2653 +Kodak,8x8,ldr-rgb-kodak16.png,36.0170,0.0497,0.0243,16.1544 +Kodak,8x8,ldr-rgb-kodak17.png,34.8485,0.0567,0.0269,14.5954 +Kodak,8x8,ldr-rgb-kodak18.png,31.2442,0.0894,0.0583,6.7460 +Kodak,8x8,ldr-rgb-kodak19.png,34.0825,0.0647,0.0346,11.3646 +Kodak,8x8,ldr-rgb-kodak20.png,35.2119,0.0523,0.0277,14.2033 +Kodak,8x8,ldr-rgb-kodak21.png,32.7391,0.0706,0.0443,8.8700 +Kodak,8x8,ldr-rgb-kodak22.png,33.4423,0.0676,0.0388,10.1292 +Kodak,8x8,ldr-rgb-kodak23.png,36.5047,0.0478,0.0213,18.5024 +Kodak,8x8,ldr-rgb-kodak24.png,30.8065,0.0855,0.0570,6.8937 +Kodak,12x12,ldr-rgb-kodak01.png,27.1019,0.0788,0.0448,8.7789 +Kodak,12x12,ldr-rgb-kodak02.png,31.1048,0.0521,0.0169,23.2684 +Kodak,12x12,ldr-rgb-kodak03.png,32.7203,0.0470,0.0147,26.6950 +Kodak,12x12,ldr-rgb-kodak04.png,31.5693,0.0516,0.0140,28.0388 +Kodak,12x12,ldr-rgb-kodak05.png,25.8228,0.0917,0.0571,6.8890 +Kodak,12x12,ldr-rgb-kodak06.png,28.6863,0.0678,0.0345,11.3834 +Kodak,12x12,ldr-rgb-kodak07.png,30.8635,0.0557,0.0196,20.0210 +Kodak,12x12,ldr-rgb-kodak08.png,25.3874,0.1070,0.0683,5.7571 +Kodak,12x12,ldr-rgb-kodak09.png,31.8272,0.0526,0.0165,23.8440 +Kodak,12x12,ldr-rgb-kodak10.png,31.5237,0.0544,0.0172,22.8086 +Kodak,12x12,ldr-rgb-kodak11.png,28.9422,0.0606,0.0274,14.3619 +Kodak,12x12,ldr-rgb-kodak12.png,32.4574,0.0488,0.0158,24.8197 +Kodak,12x12,ldr-rgb-kodak13.png,24.3252,0.1180,0.0834,4.7168 +Kodak,12x12,ldr-rgb-kodak14.png,27.5218,0.0713,0.0369,10.6701 +Kodak,12x12,ldr-rgb-kodak15.png,31.3081,0.0582,0.0226,17.4183 +Kodak,12x12,ldr-rgb-kodak16.png,31.4919,0.0493,0.0168,23.3498 +Kodak,12x12,ldr-rgb-kodak17.png,30.8806,0.0565,0.0191,20.6109 +Kodak,12x12,ldr-rgb-kodak18.png,27.4237,0.0763,0.0379,10.3645 +Kodak,12x12,ldr-rgb-kodak19.png,30.1855,0.0615,0.0245,16.0325 +Kodak,12x12,ldr-rgb-kodak20.png,31.0856,0.0530,0.0211,18.6040 +Kodak,12x12,ldr-rgb-kodak21.png,28.7284,0.0650,0.0314,12.5164 +Kodak,12x12,ldr-rgb-kodak22.png,29.8250,0.0572,0.0207,18.9647 +Kodak,12x12,ldr-rgb-kodak23.png,32.5624,0.0497,0.0160,24.5481 +Kodak,12x12,ldr-rgb-kodak24.png,26.7546,0.0803,0.0447,8.7940 diff --git a/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse4.1_fastest_results.csv b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse4.1_fastest_results.csv new file mode 100644 index 0000000000..9165970f99 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse4.1_fastest_results.csv @@ -0,0 +1,121 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Kodak,4x4,ldr-rgb-kodak01.png,44.3299,0.0422,0.0221,17.7997 +Kodak,4x4,ldr-rgb-kodak02.png,43.1808,0.0492,0.0278,14.1344 +Kodak,4x4,ldr-rgb-kodak03.png,45.5837,0.0358,0.0171,22.9521 +Kodak,4x4,ldr-rgb-kodak04.png,43.8256,0.0488,0.0251,15.6517 +Kodak,4x4,ldr-rgb-kodak05.png,40.7590,0.0551,0.0339,11.5990 +Kodak,4x4,ldr-rgb-kodak06.png,44.2617,0.0417,0.0218,18.0234 +Kodak,4x4,ldr-rgb-kodak07.png,44.2422,0.0449,0.0218,18.0069 +Kodak,4x4,ldr-rgb-kodak08.png,41.2754,0.0596,0.0349,11.2595 +Kodak,4x4,ldr-rgb-kodak09.png,45.7021,0.0392,0.0169,23.2658 +Kodak,4x4,ldr-rgb-kodak10.png,45.5005,0.0409,0.0176,22.2922 +Kodak,4x4,ldr-rgb-kodak11.png,43.5970,0.0440,0.0242,16.2365 +Kodak,4x4,ldr-rgb-kodak12.png,46.2784,0.0358,0.0167,23.5542 +Kodak,4x4,ldr-rgb-kodak13.png,41.0931,0.0557,0.0344,11.4218 +Kodak,4x4,ldr-rgb-kodak14.png,40.7005,0.0474,0.0269,14.6417 +Kodak,4x4,ldr-rgb-kodak15.png,43.7258,0.0470,0.0253,15.5716 +Kodak,4x4,ldr-rgb-kodak16.png,47.0128,0.0351,0.0158,24.8871 +Kodak,4x4,ldr-rgb-kodak17.png,45.4482,0.0398,0.0165,23.7763 +Kodak,4x4,ldr-rgb-kodak18.png,41.0795,0.0592,0.0344,11.4367 +Kodak,4x4,ldr-rgb-kodak19.png,44.4127,0.0449,0.0210,18.7104 +Kodak,4x4,ldr-rgb-kodak20.png,45.6790,0.0365,0.0179,21.9268 +Kodak,4x4,ldr-rgb-kodak21.png,44.1356,0.0419,0.0219,17.9461 +Kodak,4x4,ldr-rgb-kodak22.png,42.4979,0.0519,0.0293,13.4006 +Kodak,4x4,ldr-rgb-kodak23.png,44.9926,0.0407,0.0202,19.4365 +Kodak,4x4,ldr-rgb-kodak24.png,40.9953,0.0502,0.0279,14.0726 +Kodak,5x5,ldr-rgb-kodak01.png,39.3652,0.0462,0.0253,15.5218 +Kodak,5x5,ldr-rgb-kodak02.png,40.3646,0.0445,0.0225,17.4833 +Kodak,5x5,ldr-rgb-kodak03.png,42.5877,0.0348,0.0155,25.3021 +Kodak,5x5,ldr-rgb-kodak04.png,40.7623,0.0460,0.0215,18.2714 +Kodak,5x5,ldr-rgb-kodak05.png,36.9662,0.0580,0.0361,10.9030 +Kodak,5x5,ldr-rgb-kodak06.png,40.3984,0.0412,0.0207,18.9977 +Kodak,5x5,ldr-rgb-kodak07.png,41.0623,0.0438,0.0205,19.2095 +Kodak,5x5,ldr-rgb-kodak08.png,37.3684,0.0625,0.0369,10.6481 +Kodak,5x5,ldr-rgb-kodak09.png,42.5245,0.0375,0.0149,26.4505 +Kodak,5x5,ldr-rgb-kodak10.png,42.3371,0.0395,0.0154,25.5237 +Kodak,5x5,ldr-rgb-kodak11.png,40.0378,0.0425,0.0221,17.8087 +Kodak,5x5,ldr-rgb-kodak12.png,43.1430,0.0341,0.0141,27.7968 +Kodak,5x5,ldr-rgb-kodak13.png,36.6885,0.0588,0.0369,10.6649 +Kodak,5x5,ldr-rgb-kodak14.png,37.3557,0.0500,0.0289,13.6231 +Kodak,5x5,ldr-rgb-kodak15.png,40.8415,0.0433,0.0210,18.7602 +Kodak,5x5,ldr-rgb-kodak16.png,43.3827,0.0337,0.0141,27.7931 +Kodak,5x5,ldr-rgb-kodak17.png,41.8593,0.0394,0.0152,25.9278 +Kodak,5x5,ldr-rgb-kodak18.png,37.9188,0.0556,0.0302,13.0282 +Kodak,5x5,ldr-rgb-kodak19.png,40.8554,0.0438,0.0198,19.8997 +Kodak,5x5,ldr-rgb-kodak20.png,42.0231,0.0354,0.0161,24.4130 +Kodak,5x5,ldr-rgb-kodak21.png,40.1914,0.0420,0.0215,18.2558 +Kodak,5x5,ldr-rgb-kodak22.png,39.4484,0.0474,0.0241,16.3200 +Kodak,5x5,ldr-rgb-kodak23.png,42.0743,0.0382,0.0173,22.7385 +Kodak,5x5,ldr-rgb-kodak24.png,37.5527,0.0502,0.0271,14.5243 +Kodak,6x6,ldr-rgb-kodak01.png,35.6615,0.0549,0.0333,11.8143 +Kodak,6x6,ldr-rgb-kodak02.png,38.0423,0.0456,0.0228,17.2478 +Kodak,6x6,ldr-rgb-kodak03.png,40.3065,0.0353,0.0153,25.6284 +Kodak,6x6,ldr-rgb-kodak04.png,38.3034,0.0468,0.0223,17.6458 +Kodak,6x6,ldr-rgb-kodak05.png,34.1002,0.0650,0.0425,9.2556 +Kodak,6x6,ldr-rgb-kodak06.png,37.2267,0.0453,0.0240,16.3819 +Kodak,6x6,ldr-rgb-kodak07.png,38.6400,0.0450,0.0209,18.8043 +Kodak,6x6,ldr-rgb-kodak08.png,34.2358,0.0701,0.0443,8.8788 +Kodak,6x6,ldr-rgb-kodak09.png,39.7637,0.0400,0.0168,23.3905 +Kodak,6x6,ldr-rgb-kodak10.png,39.5682,0.0410,0.0164,23.9782 +Kodak,6x6,ldr-rgb-kodak11.png,37.0000,0.0462,0.0249,15.8203 +Kodak,6x6,ldr-rgb-kodak12.png,40.5726,0.0348,0.0146,26.8518 +Kodak,6x6,ldr-rgb-kodak13.png,32.7197,0.0724,0.0499,7.8875 +Kodak,6x6,ldr-rgb-kodak14.png,34.8684,0.0553,0.0334,11.7718 +Kodak,6x6,ldr-rgb-kodak15.png,38.3754,0.0452,0.0222,17.6926 +Kodak,6x6,ldr-rgb-kodak16.png,40.4633,0.0354,0.0149,26.4738 +Kodak,6x6,ldr-rgb-kodak17.png,38.8470,0.0419,0.0172,22.8228 +Kodak,6x6,ldr-rgb-kodak18.png,35.0120,0.0601,0.0339,11.5836 +Kodak,6x6,ldr-rgb-kodak19.png,37.8381,0.0480,0.0228,17.2774 +Kodak,6x6,ldr-rgb-kodak20.png,39.0318,0.0382,0.0185,21.2250 +Kodak,6x6,ldr-rgb-kodak21.png,36.8178,0.0473,0.0263,14.9762 +Kodak,6x6,ldr-rgb-kodak22.png,36.8523,0.0498,0.0259,15.1803 +Kodak,6x6,ldr-rgb-kodak23.png,39.8521,0.0386,0.0171,22.9534 +Kodak,6x6,ldr-rgb-kodak24.png,34.6971,0.0554,0.0316,12.4589 +Kodak,8x8,ldr-rgb-kodak01.png,31.1852,0.0714,0.0458,8.5840 +Kodak,8x8,ldr-rgb-kodak02.png,34.7863,0.0506,0.0242,16.2675 +Kodak,8x8,ldr-rgb-kodak03.png,36.4265,0.0424,0.0181,21.6923 +Kodak,8x8,ldr-rgb-kodak04.png,35.0559,0.0520,0.0226,17.3874 +Kodak,8x8,ldr-rgb-kodak05.png,30.0266,0.0859,0.0591,6.6572 +Kodak,8x8,ldr-rgb-kodak06.png,32.8020,0.0588,0.0333,11.8168 +Kodak,8x8,ldr-rgb-kodak07.png,34.8425,0.0539,0.0254,15.4585 +Kodak,8x8,ldr-rgb-kodak08.png,29.7082,0.0932,0.0631,6.2342 +Kodak,8x8,ldr-rgb-kodak09.png,35.8983,0.0477,0.0199,19.7605 +Kodak,8x8,ldr-rgb-kodak10.png,35.7101,0.0480,0.0189,20.7557 +Kodak,8x8,ldr-rgb-kodak11.png,32.8458,0.0574,0.0319,12.3335 +Kodak,8x8,ldr-rgb-kodak12.png,36.5136,0.0423,0.0178,22.0723 +Kodak,8x8,ldr-rgb-kodak13.png,28.1418,0.1008,0.0741,5.3093 +Kodak,8x8,ldr-rgb-kodak14.png,31.2765,0.0722,0.0460,8.5527 +Kodak,8x8,ldr-rgb-kodak15.png,34.7635,0.0521,0.0249,15.8027 +Kodak,8x8,ldr-rgb-kodak16.png,35.9622,0.0450,0.0202,19.4631 +Kodak,8x8,ldr-rgb-kodak17.png,34.7176,0.0505,0.0218,18.0027 +Kodak,8x8,ldr-rgb-kodak18.png,31.1628,0.0731,0.0432,9.0930 +Kodak,8x8,ldr-rgb-kodak19.png,33.8985,0.0566,0.0274,14.3761 +Kodak,8x8,ldr-rgb-kodak20.png,35.0234,0.0455,0.0216,18.1834 +Kodak,8x8,ldr-rgb-kodak21.png,32.6180,0.0590,0.0334,11.7659 +Kodak,8x8,ldr-rgb-kodak22.png,33.3281,0.0573,0.0292,13.4553 +Kodak,8x8,ldr-rgb-kodak23.png,36.3979,0.0431,0.0175,22.4708 +Kodak,8x8,ldr-rgb-kodak24.png,30.7238,0.0695,0.0414,9.4904 +Kodak,12x12,ldr-rgb-kodak01.png,26.9939,0.0646,0.0333,11.8083 +Kodak,12x12,ldr-rgb-kodak02.png,31.2071,0.0492,0.0172,22.9106 +Kodak,12x12,ldr-rgb-kodak03.png,32.6375,0.0421,0.0126,31.2078 +Kodak,12x12,ldr-rgb-kodak04.png,31.4776,0.0461,0.0119,32.9577 +Kodak,12x12,ldr-rgb-kodak05.png,25.6987,0.0730,0.0407,9.6703 +Kodak,12x12,ldr-rgb-kodak06.png,28.5195,0.0567,0.0263,14.9705 +Kodak,12x12,ldr-rgb-kodak07.png,30.7941,0.0491,0.0155,25.4081 +Kodak,12x12,ldr-rgb-kodak08.png,25.2216,0.0840,0.0485,8.1116 +Kodak,12x12,ldr-rgb-kodak09.png,31.6367,0.0466,0.0138,28.4936 +Kodak,12x12,ldr-rgb-kodak10.png,31.4545,0.0484,0.0140,28.0149 +Kodak,12x12,ldr-rgb-kodak11.png,28.8692,0.0518,0.0209,18.8557 +Kodak,12x12,ldr-rgb-kodak12.png,32.3695,0.0435,0.0135,29.2138 +Kodak,12x12,ldr-rgb-kodak13.png,24.2380,0.0906,0.0581,6.7653 +Kodak,12x12,ldr-rgb-kodak14.png,27.4424,0.0594,0.0279,14.0761 +Kodak,12x12,ldr-rgb-kodak15.png,31.2355,0.0511,0.0185,21.2482 +Kodak,12x12,ldr-rgb-kodak16.png,31.3535,0.0439,0.0142,27.7188 +Kodak,12x12,ldr-rgb-kodak17.png,30.8266,0.0496,0.0157,24.9726 +Kodak,12x12,ldr-rgb-kodak18.png,27.3668,0.0633,0.0280,14.0515 +Kodak,12x12,ldr-rgb-kodak19.png,29.8698,0.0539,0.0196,20.1010 +Kodak,12x12,ldr-rgb-kodak20.png,30.9664,0.0465,0.0173,22.6872 +Kodak,12x12,ldr-rgb-kodak21.png,28.6252,0.0553,0.0247,15.8972 +Kodak,12x12,ldr-rgb-kodak22.png,29.7117,0.0506,0.0171,22.9655 +Kodak,12x12,ldr-rgb-kodak23.png,32.5063,0.0441,0.0131,29.9339 +Kodak,12x12,ldr-rgb-kodak24.png,26.6826,0.0655,0.0320,12.2781 diff --git a/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse4.1_medium_results.csv b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse4.1_medium_results.csv new file mode 100644 index 0000000000..55a3eebb15 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse4.1_medium_results.csv @@ -0,0 +1,121 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Kodak,4x4,ldr-rgb-kodak01.png,45.2684,0.1825,0.1625,2.4195 +Kodak,4x4,ldr-rgb-kodak02.png,45.2605,0.2892,0.2675,1.4701 +Kodak,4x4,ldr-rgb-kodak03.png,47.5609,0.1519,0.1327,2.9638 +Kodak,4x4,ldr-rgb-kodak04.png,45.3343,0.2000,0.1761,2.2330 +Kodak,4x4,ldr-rgb-kodak05.png,42.0787,0.2294,0.2079,1.8913 +Kodak,4x4,ldr-rgb-kodak06.png,45.1329,0.1720,0.1509,2.6062 +Kodak,4x4,ldr-rgb-kodak07.png,45.8875,0.1660,0.1426,2.7582 +Kodak,4x4,ldr-rgb-kodak08.png,42.4908,0.2533,0.2283,1.7221 +Kodak,4x4,ldr-rgb-kodak09.png,47.1214,0.2010,0.1785,2.2031 +Kodak,4x4,ldr-rgb-kodak10.png,46.7993,0.2038,0.1792,2.1941 +Kodak,4x4,ldr-rgb-kodak11.png,44.8269,0.1980,0.1776,2.2135 +Kodak,4x4,ldr-rgb-kodak12.png,47.9001,0.1488,0.1292,3.0437 +Kodak,4x4,ldr-rgb-kodak13.png,41.6078,0.1911,0.1693,2.3221 +Kodak,4x4,ldr-rgb-kodak14.png,42.5242,0.2133,0.1924,2.0443 +Kodak,4x4,ldr-rgb-kodak15.png,45.3860,0.1790,0.1563,2.5156 +Kodak,4x4,ldr-rgb-kodak16.png,47.8467,0.1513,0.1320,2.9795 +Kodak,4x4,ldr-rgb-kodak17.png,46.2753,0.1718,0.1482,2.6540 +Kodak,4x4,ldr-rgb-kodak18.png,41.9463,0.2576,0.2326,1.6907 +Kodak,4x4,ldr-rgb-kodak19.png,45.3150,0.2104,0.1864,2.1097 +Kodak,4x4,ldr-rgb-kodak20.png,46.8640,0.1286,0.1096,3.5882 +Kodak,4x4,ldr-rgb-kodak21.png,45.1372,0.2133,0.1930,2.0376 +Kodak,4x4,ldr-rgb-kodak22.png,43.7127,0.2598,0.2371,1.6583 +Kodak,4x4,ldr-rgb-kodak23.png,46.7393,0.2052,0.1845,2.1308 +Kodak,4x4,ldr-rgb-kodak24.png,42.2490,0.2029,0.1802,2.1826 +Kodak,5x5,ldr-rgb-kodak01.png,40.1135,0.2139,0.1925,2.0424 +Kodak,5x5,ldr-rgb-kodak02.png,41.6610,0.2358,0.2126,1.8493 +Kodak,5x5,ldr-rgb-kodak03.png,44.0075,0.1092,0.0889,4.4224 +Kodak,5x5,ldr-rgb-kodak04.png,42.0337,0.1807,0.1554,2.5299 +Kodak,5x5,ldr-rgb-kodak05.png,37.9653,0.2499,0.2271,1.7311 +Kodak,5x5,ldr-rgb-kodak06.png,40.9636,0.1694,0.1483,2.6517 +Kodak,5x5,ldr-rgb-kodak07.png,42.4142,0.1447,0.1206,3.2598 +Kodak,5x5,ldr-rgb-kodak08.png,38.3522,0.2725,0.2466,1.5947 +Kodak,5x5,ldr-rgb-kodak09.png,43.7811,0.1280,0.1044,3.7664 +Kodak,5x5,ldr-rgb-kodak10.png,43.3916,0.1441,0.1193,3.2959 +Kodak,5x5,ldr-rgb-kodak11.png,40.8313,0.1957,0.1745,2.2531 +Kodak,5x5,ldr-rgb-kodak12.png,44.3909,0.1111,0.0907,4.3377 +Kodak,5x5,ldr-rgb-kodak13.png,36.9119,0.2237,0.2011,1.9556 +Kodak,5x5,ldr-rgb-kodak14.png,38.6094,0.2258,0.2037,1.9300 +Kodak,5x5,ldr-rgb-kodak15.png,41.8807,0.1717,0.1485,2.6482 +Kodak,5x5,ldr-rgb-kodak16.png,44.1433,0.1210,0.1004,3.9167 +Kodak,5x5,ldr-rgb-kodak17.png,42.5304,0.1279,0.1025,3.8364 +Kodak,5x5,ldr-rgb-kodak18.png,38.3628,0.2404,0.2143,1.8350 +Kodak,5x5,ldr-rgb-kodak19.png,41.6528,0.1675,0.1420,2.7688 +Kodak,5x5,ldr-rgb-kodak20.png,42.9800,0.1189,0.0988,3.9808 +Kodak,5x5,ldr-rgb-kodak21.png,40.7663,0.1705,0.1490,2.6392 +Kodak,5x5,ldr-rgb-kodak22.png,40.2665,0.2302,0.2065,1.9040 +Kodak,5x5,ldr-rgb-kodak23.png,43.4940,0.1494,0.1274,3.0861 +Kodak,5x5,ldr-rgb-kodak24.png,38.1256,0.1977,0.1739,2.2614 +Kodak,6x6,ldr-rgb-kodak01.png,36.2094,0.2640,0.2411,1.6313 +Kodak,6x6,ldr-rgb-kodak02.png,39.0304,0.2056,0.1811,2.1709 +Kodak,6x6,ldr-rgb-kodak03.png,41.3479,0.1019,0.0807,4.8721 +Kodak,6x6,ldr-rgb-kodak04.png,39.4137,0.1745,0.1483,2.6510 +Kodak,6x6,ldr-rgb-kodak05.png,34.8070,0.2874,0.2633,1.4933 +Kodak,6x6,ldr-rgb-kodak06.png,37.6384,0.1803,0.1579,2.4897 +Kodak,6x6,ldr-rgb-kodak07.png,39.8015,0.1433,0.1177,3.3413 +Kodak,6x6,ldr-rgb-kodak08.png,35.0170,0.3203,0.2933,1.3407 +Kodak,6x6,ldr-rgb-kodak09.png,40.8977,0.1110,0.0859,4.5755 +Kodak,6x6,ldr-rgb-kodak10.png,40.5297,0.1200,0.0941,4.1802 +Kodak,6x6,ldr-rgb-kodak11.png,37.5968,0.1921,0.1694,2.3211 +Kodak,6x6,ldr-rgb-kodak12.png,41.5070,0.0969,0.0752,5.2257 +Kodak,6x6,ldr-rgb-kodak13.png,32.8889,0.3032,0.2792,1.4082 +Kodak,6x6,ldr-rgb-kodak14.png,35.8374,0.2367,0.2138,1.8388 +Kodak,6x6,ldr-rgb-kodak15.png,39.2095,0.1743,0.1499,2.6238 +Kodak,6x6,ldr-rgb-kodak16.png,41.0545,0.1150,0.0931,4.2232 +Kodak,6x6,ldr-rgb-kodak17.png,39.5028,0.1216,0.0952,4.1309 +Kodak,6x6,ldr-rgb-kodak18.png,35.3646,0.2558,0.2284,1.7215 +Kodak,6x6,ldr-rgb-kodak19.png,38.5498,0.1782,0.1516,2.5935 +Kodak,6x6,ldr-rgb-kodak20.png,39.7961,0.1266,0.1055,3.7255 +Kodak,6x6,ldr-rgb-kodak21.png,37.2072,0.1752,0.1527,2.5758 +Kodak,6x6,ldr-rgb-kodak22.png,37.4640,0.2260,0.2007,1.9592 +Kodak,6x6,ldr-rgb-kodak23.png,41.0051,0.1175,0.0946,4.1545 +Kodak,6x6,ldr-rgb-kodak24.png,35.0556,0.2082,0.1833,2.1451 +Kodak,8x8,ldr-rgb-kodak01.png,31.8078,0.3492,0.3216,1.2228 +Kodak,8x8,ldr-rgb-kodak02.png,35.7880,0.2005,0.1718,2.2894 +Kodak,8x8,ldr-rgb-kodak03.png,37.7486,0.1249,0.0988,3.9805 +Kodak,8x8,ldr-rgb-kodak04.png,36.0731,0.1908,0.1595,2.4646 +Kodak,8x8,ldr-rgb-kodak05.png,30.7508,0.3632,0.3347,1.1747 +Kodak,8x8,ldr-rgb-kodak06.png,33.4488,0.2222,0.1948,2.0183 +Kodak,8x8,ldr-rgb-kodak07.png,36.1577,0.1705,0.1403,2.8036 +Kodak,8x8,ldr-rgb-kodak08.png,30.5739,0.3682,0.3349,1.1740 +Kodak,8x8,ldr-rgb-kodak09.png,37.2780,0.1258,0.0960,4.0971 +Kodak,8x8,ldr-rgb-kodak10.png,36.9214,0.1306,0.0996,3.9474 +Kodak,8x8,ldr-rgb-kodak11.png,33.6683,0.2190,0.1917,2.0511 +Kodak,8x8,ldr-rgb-kodak12.png,37.8350,0.1179,0.0913,4.3080 +Kodak,8x8,ldr-rgb-kodak13.png,28.3988,0.4156,0.3869,1.0163 +Kodak,8x8,ldr-rgb-kodak14.png,32.1545,0.2879,0.2599,1.5130 +Kodak,8x8,ldr-rgb-kodak15.png,35.8410,0.1772,0.1478,2.6606 +Kodak,8x8,ldr-rgb-kodak16.png,37.0303,0.1399,0.1132,3.4728 +Kodak,8x8,ldr-rgb-kodak17.png,35.6791,0.1455,0.1148,3.4246 +Kodak,8x8,ldr-rgb-kodak18.png,31.5602,0.2957,0.2633,1.4932 +Kodak,8x8,ldr-rgb-kodak19.png,34.7728,0.2121,0.1807,2.1766 +Kodak,8x8,ldr-rgb-kodak20.png,35.9133,0.1551,0.1291,3.0469 +Kodak,8x8,ldr-rgb-kodak21.png,33.1196,0.2182,0.1911,2.0577 +Kodak,8x8,ldr-rgb-kodak22.png,34.0306,0.2408,0.2109,1.8645 +Kodak,8x8,ldr-rgb-kodak23.png,37.6748,0.1181,0.0902,4.3597 +Kodak,8x8,ldr-rgb-kodak24.png,31.1161,0.2489,0.2191,1.7948 +Kodak,12x12,ldr-rgb-kodak01.png,27.7577,0.3733,0.3366,1.1681 +Kodak,12x12,ldr-rgb-kodak02.png,32.5056,0.1362,0.0986,3.9891 +Kodak,12x12,ldr-rgb-kodak03.png,33.7997,0.1121,0.0767,5.1285 +Kodak,12x12,ldr-rgb-kodak04.png,32.4544,0.1274,0.0868,4.5319 +Kodak,12x12,ldr-rgb-kodak05.png,26.3963,0.3945,0.3567,1.1024 +Kodak,12x12,ldr-rgb-kodak06.png,29.3780,0.2292,0.1925,2.0423 +Kodak,12x12,ldr-rgb-kodak07.png,32.0588,0.1628,0.1233,3.1901 +Kodak,12x12,ldr-rgb-kodak08.png,26.0707,0.3966,0.3555,1.1062 +Kodak,12x12,ldr-rgb-kodak09.png,33.1099,0.1186,0.0795,4.9439 +Kodak,12x12,ldr-rgb-kodak10.png,32.4903,0.1207,0.0805,4.8871 +Kodak,12x12,ldr-rgb-kodak11.png,29.7420,0.2036,0.1673,2.3509 +Kodak,12x12,ldr-rgb-kodak12.png,33.8723,0.1056,0.0696,5.6490 +Kodak,12x12,ldr-rgb-kodak13.png,24.5329,0.4544,0.4167,0.9436 +Kodak,12x12,ldr-rgb-kodak14.png,28.3876,0.2658,0.2274,1.7289 +Kodak,12x12,ldr-rgb-kodak15.png,32.2202,0.1543,0.1162,3.3837 +Kodak,12x12,ldr-rgb-kodak16.png,32.9814,0.1151,0.0793,4.9602 +Kodak,12x12,ldr-rgb-kodak17.png,31.7754,0.1294,0.0892,4.4071 +Kodak,12x12,ldr-rgb-kodak18.png,27.7836,0.2720,0.2305,1.7061 +Kodak,12x12,ldr-rgb-kodak19.png,30.8854,0.1690,0.1284,3.0620 +Kodak,12x12,ldr-rgb-kodak20.png,31.8890,0.1381,0.1027,3.8298 +Kodak,12x12,ldr-rgb-kodak21.png,29.1843,0.2545,0.2179,1.8047 +Kodak,12x12,ldr-rgb-kodak22.png,30.5095,0.1888,0.1496,2.6277 +Kodak,12x12,ldr-rgb-kodak23.png,33.5539,0.0994,0.0621,6.3349 +Kodak,12x12,ldr-rgb-kodak24.png,27.0858,0.2456,0.2067,1.9026 diff --git a/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse4.1_thorough_results.csv b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse4.1_thorough_results.csv new file mode 100644 index 0000000000..35f7bf6e7e --- /dev/null +++ b/lib/astc-encoder/Test/Images/Kodak/astc_reference-3.3-sse4.1_thorough_results.csv @@ -0,0 +1,121 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Kodak,4x4,ldr-rgb-kodak01.png,45.4959,0.4672,0.4464,0.8808 +Kodak,4x4,ldr-rgb-kodak02.png,45.6417,0.5828,0.5612,0.7007 +Kodak,4x4,ldr-rgb-kodak03.png,47.9779,0.4980,0.4786,0.8217 +Kodak,4x4,ldr-rgb-kodak04.png,45.6537,0.5447,0.5202,0.7559 +Kodak,4x4,ldr-rgb-kodak05.png,42.4039,0.5347,0.5130,0.7665 +Kodak,4x4,ldr-rgb-kodak06.png,45.3539,0.4696,0.4494,0.8749 +Kodak,4x4,ldr-rgb-kodak07.png,46.3258,0.5288,0.5056,0.7777 +Kodak,4x4,ldr-rgb-kodak08.png,42.8063,0.5548,0.5295,0.7427 +Kodak,4x4,ldr-rgb-kodak09.png,47.4131,0.5461,0.5235,0.7511 +Kodak,4x4,ldr-rgb-kodak10.png,47.0580,0.5430,0.5190,0.7576 +Kodak,4x4,ldr-rgb-kodak11.png,45.1139,0.5059,0.4840,0.8124 +Kodak,4x4,ldr-rgb-kodak12.png,48.2415,0.5039,0.4843,0.8119 +Kodak,4x4,ldr-rgb-kodak13.png,41.7183,0.4772,0.4556,0.8631 +Kodak,4x4,ldr-rgb-kodak14.png,42.9398,0.5163,0.4955,0.7936 +Kodak,4x4,ldr-rgb-kodak15.png,45.7807,0.5180,0.4958,0.7931 +Kodak,4x4,ldr-rgb-kodak16.png,48.0655,0.4953,0.4753,0.8273 +Kodak,4x4,ldr-rgb-kodak17.png,46.4627,0.5187,0.4944,0.7954 +Kodak,4x4,ldr-rgb-kodak18.png,42.1531,0.5674,0.5423,0.7251 +Kodak,4x4,ldr-rgb-kodak19.png,45.5408,0.5392,0.5147,0.7640 +Kodak,4x4,ldr-rgb-kodak20.png,47.1306,0.3425,0.3237,1.2148 +Kodak,4x4,ldr-rgb-kodak21.png,45.3036,0.5309,0.5105,0.7703 +Kodak,4x4,ldr-rgb-kodak22.png,43.9745,0.5815,0.5568,0.7062 +Kodak,4x4,ldr-rgb-kodak23.png,47.1411,0.5698,0.5489,0.7164 +Kodak,4x4,ldr-rgb-kodak24.png,42.5003,0.5148,0.4918,0.7996 +Kodak,5x5,ldr-rgb-kodak01.png,40.2393,0.5782,0.5567,0.7063 +Kodak,5x5,ldr-rgb-kodak02.png,42.0010,0.6997,0.6770,0.5809 +Kodak,5x5,ldr-rgb-kodak03.png,44.3362,0.5709,0.5501,0.7148 +Kodak,5x5,ldr-rgb-kodak04.png,42.2429,0.6297,0.6042,0.6509 +Kodak,5x5,ldr-rgb-kodak05.png,38.1870,0.6385,0.6160,0.6384 +Kodak,5x5,ldr-rgb-kodak06.png,41.0924,0.5551,0.5339,0.7365 +Kodak,5x5,ldr-rgb-kodak07.png,42.7292,0.6113,0.5868,0.6700 +Kodak,5x5,ldr-rgb-kodak08.png,38.5421,0.6483,0.6207,0.6335 +Kodak,5x5,ldr-rgb-kodak09.png,44.0402,0.6253,0.6016,0.6536 +Kodak,5x5,ldr-rgb-kodak10.png,43.5978,0.6312,0.6046,0.6504 +Kodak,5x5,ldr-rgb-kodak11.png,41.0060,0.5925,0.5691,0.6910 +Kodak,5x5,ldr-rgb-kodak12.png,44.6083,0.5819,0.5602,0.7019 +Kodak,5x5,ldr-rgb-kodak13.png,36.9564,0.5685,0.5457,0.7206 +Kodak,5x5,ldr-rgb-kodak14.png,38.8905,0.6171,0.5950,0.6609 +Kodak,5x5,ldr-rgb-kodak15.png,42.1361,0.5953,0.5722,0.6872 +Kodak,5x5,ldr-rgb-kodak16.png,44.2762,0.5729,0.5523,0.7120 +Kodak,5x5,ldr-rgb-kodak17.png,42.6114,0.6052,0.5804,0.6775 +Kodak,5x5,ldr-rgb-kodak18.png,38.4757,0.6703,0.6441,0.6104 +Kodak,5x5,ldr-rgb-kodak19.png,41.7857,0.6418,0.6158,0.6385 +Kodak,5x5,ldr-rgb-kodak20.png,43.2873,0.4052,0.3852,1.0209 +Kodak,5x5,ldr-rgb-kodak21.png,40.8732,0.6405,0.6180,0.6363 +Kodak,5x5,ldr-rgb-kodak22.png,40.4366,0.6909,0.6670,0.5895 +Kodak,5x5,ldr-rgb-kodak23.png,43.8954,0.6755,0.6536,0.6016 +Kodak,5x5,ldr-rgb-kodak24.png,38.2464,0.6096,0.5836,0.6737 +Kodak,6x6,ldr-rgb-kodak01.png,36.3215,0.7404,0.7176,0.5480 +Kodak,6x6,ldr-rgb-kodak02.png,39.3903,0.8178,0.7937,0.4954 +Kodak,6x6,ldr-rgb-kodak03.png,41.7525,0.5146,0.4931,0.7974 +Kodak,6x6,ldr-rgb-kodak04.png,39.6623,0.7266,0.7003,0.5615 +Kodak,6x6,ldr-rgb-kodak05.png,34.9888,0.7929,0.7690,0.5113 +Kodak,6x6,ldr-rgb-kodak06.png,37.7497,0.6620,0.6395,0.6149 +Kodak,6x6,ldr-rgb-kodak07.png,40.1196,0.6029,0.5767,0.6819 +Kodak,6x6,ldr-rgb-kodak08.png,35.1824,0.8105,0.7823,0.5026 +Kodak,6x6,ldr-rgb-kodak09.png,41.2761,0.7280,0.7029,0.5594 +Kodak,6x6,ldr-rgb-kodak10.png,40.8287,0.7469,0.7204,0.5458 +Kodak,6x6,ldr-rgb-kodak11.png,37.7718,0.6764,0.6516,0.6035 +Kodak,6x6,ldr-rgb-kodak12.png,41.8388,0.6327,0.6109,0.6437 +Kodak,6x6,ldr-rgb-kodak13.png,32.9330,0.7462,0.7217,0.5449 +Kodak,6x6,ldr-rgb-kodak14.png,36.0284,0.7669,0.7437,0.5287 +Kodak,6x6,ldr-rgb-kodak15.png,39.4662,0.6152,0.5898,0.6667 +Kodak,6x6,ldr-rgb-kodak16.png,41.2463,0.6202,0.5983,0.6573 +Kodak,6x6,ldr-rgb-kodak17.png,39.6618,0.7086,0.6820,0.5766 +Kodak,6x6,ldr-rgb-kodak18.png,35.4461,0.8262,0.7980,0.4928 +Kodak,6x6,ldr-rgb-kodak19.png,38.7120,0.7863,0.7553,0.5206 +Kodak,6x6,ldr-rgb-kodak20.png,40.1155,0.4885,0.4671,0.8418 +Kodak,6x6,ldr-rgb-kodak21.png,37.3452,0.7734,0.7493,0.5247 +Kodak,6x6,ldr-rgb-kodak22.png,37.6293,0.8308,0.8055,0.4882 +Kodak,6x6,ldr-rgb-kodak23.png,41.4207,0.7141,0.6907,0.5693 +Kodak,6x6,ldr-rgb-kodak24.png,35.1548,0.6949,0.6697,0.5872 +Kodak,8x8,ldr-rgb-kodak01.png,31.9132,0.8896,0.8602,0.4571 +Kodak,8x8,ldr-rgb-kodak02.png,36.1554,0.7637,0.7301,0.5386 +Kodak,8x8,ldr-rgb-kodak03.png,38.1910,0.4080,0.3815,1.0306 +Kodak,8x8,ldr-rgb-kodak04.png,36.3738,0.6587,0.6267,0.6274 +Kodak,8x8,ldr-rgb-kodak05.png,30.9155,0.8952,0.8662,0.4539 +Kodak,8x8,ldr-rgb-kodak06.png,33.5859,0.7358,0.7079,0.5555 +Kodak,8x8,ldr-rgb-kodak07.png,36.5105,0.4939,0.4631,0.8491 +Kodak,8x8,ldr-rgb-kodak08.png,30.7590,0.9793,0.9419,0.4175 +Kodak,8x8,ldr-rgb-kodak09.png,37.5661,0.4692,0.4374,0.8991 +Kodak,8x8,ldr-rgb-kodak10.png,37.2476,0.5301,0.4988,0.7883 +Kodak,8x8,ldr-rgb-kodak11.png,33.8327,0.7938,0.7662,0.5132 +Kodak,8x8,ldr-rgb-kodak12.png,38.2683,0.4981,0.4709,0.8350 +Kodak,8x8,ldr-rgb-kodak13.png,28.4569,0.9846,0.9522,0.4129 +Kodak,8x8,ldr-rgb-kodak14.png,32.3456,0.9029,0.8713,0.4513 +Kodak,8x8,ldr-rgb-kodak15.png,36.0757,0.6018,0.5722,0.6872 +Kodak,8x8,ldr-rgb-kodak16.png,37.2738,0.5831,0.5541,0.7096 +Kodak,8x8,ldr-rgb-kodak17.png,35.8814,0.5699,0.5383,0.7304 +Kodak,8x8,ldr-rgb-kodak18.png,31.6561,0.9204,0.8877,0.4429 +Kodak,8x8,ldr-rgb-kodak19.png,34.9270,0.6362,0.6024,0.6527 +Kodak,8x8,ldr-rgb-kodak20.png,36.1748,0.4809,0.4537,0.8668 +Kodak,8x8,ldr-rgb-kodak21.png,33.2279,0.6388,0.6104,0.6442 +Kodak,8x8,ldr-rgb-kodak22.png,34.2260,0.8055,0.7751,0.5073 +Kodak,8x8,ldr-rgb-kodak23.png,38.1952,0.4503,0.4218,0.9322 +Kodak,8x8,ldr-rgb-kodak24.png,31.2273,0.7399,0.7061,0.5569 +Kodak,12x12,ldr-rgb-kodak01.png,27.9103,1.0471,1.0070,0.3905 +Kodak,12x12,ldr-rgb-kodak02.png,32.9838,0.6452,0.6066,0.6482 +Kodak,12x12,ldr-rgb-kodak03.png,34.4199,0.4145,0.3783,1.0393 +Kodak,12x12,ldr-rgb-kodak04.png,32.9679,0.5905,0.5494,0.7157 +Kodak,12x12,ldr-rgb-kodak05.png,26.5893,1.0523,1.0134,0.3880 +Kodak,12x12,ldr-rgb-kodak06.png,29.5476,0.7927,0.7555,0.5205 +Kodak,12x12,ldr-rgb-kodak07.png,32.6245,0.5459,0.5047,0.7790 +Kodak,12x12,ldr-rgb-kodak08.png,26.2823,1.0699,1.0284,0.3824 +Kodak,12x12,ldr-rgb-kodak09.png,33.6237,0.4583,0.4180,0.9407 +Kodak,12x12,ldr-rgb-kodak10.png,32.9953,0.4560,0.4150,0.9474 +Kodak,12x12,ldr-rgb-kodak11.png,30.0555,0.7416,0.7046,0.5581 +Kodak,12x12,ldr-rgb-kodak12.png,34.4872,0.4265,0.3895,1.0095 +Kodak,12x12,ldr-rgb-kodak13.png,24.5825,1.2247,1.1862,0.3315 +Kodak,12x12,ldr-rgb-kodak14.png,28.5949,0.9567,0.9188,0.4280 +Kodak,12x12,ldr-rgb-kodak15.png,32.7169,0.5629,0.5242,0.7501 +Kodak,12x12,ldr-rgb-kodak16.png,33.3423,0.5752,0.5384,0.7303 +Kodak,12x12,ldr-rgb-kodak17.png,32.1339,0.5104,0.4691,0.8383 +Kodak,12x12,ldr-rgb-kodak18.png,27.9265,0.9019,0.8600,0.4572 +Kodak,12x12,ldr-rgb-kodak19.png,31.0994,0.7340,0.6927,0.5676 +Kodak,12x12,ldr-rgb-kodak20.png,32.1706,0.5434,0.5070,0.7755 +Kodak,12x12,ldr-rgb-kodak21.png,29.3335,0.6974,0.6599,0.5959 +Kodak,12x12,ldr-rgb-kodak22.png,30.7875,0.7721,0.7326,0.5367 +Kodak,12x12,ldr-rgb-kodak23.png,34.3689,0.3675,0.3299,1.1918 +Kodak,12x12,ldr-rgb-kodak24.png,27.2177,0.8363,0.7963,0.4938 diff --git a/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-avx2_fast_results.csv b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-avx2_fast_results.csv new file mode 100644 index 0000000000..70b5d6108b --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-avx2_fast_results.csv @@ -0,0 +1,6 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakMnt,4x4,ldr-rgb-montage.png,44.0002,1.1879,0.7367,12.8098 +KodakMnt,5x5,ldr-rgb-montage.png,40.0605,1.0462,0.5961,15.8318 +KodakMnt,6x6,ldr-rgb-montage.png,36.9848,1.1803,0.7302,12.9235 +KodakMnt,8x8,ldr-rgb-montage.png,32.9384,1.2519,0.8003,11.7915 +KodakMnt,12x12,ldr-rgb-montage.png,28.8480,0.9846,0.5208,18.1213 diff --git a/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-avx2_fastest_results.csv b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-avx2_fastest_results.csv new file mode 100644 index 0000000000..083f76bddf --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-avx2_fastest_results.csv @@ -0,0 +1,6 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakMnt,4x4,ldr-rgb-montage.png,43.3450,0.9293,0.4832,19.5309 +KodakMnt,5x5,ldr-rgb-montage.png,39.7591,0.9038,0.4509,20.9316 +KodakMnt,6x6,ldr-rgb-montage.png,36.8228,0.9449,0.4931,19.1389 +KodakMnt,8x8,ldr-rgb-montage.png,32.7997,1.0474,0.5958,15.8399 +KodakMnt,12x12,ldr-rgb-montage.png,28.7194,0.8586,0.3992,23.6424 diff --git a/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-avx2_medium_results.csv b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-avx2_medium_results.csv new file mode 100644 index 0000000000..565f5c14a3 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-avx2_medium_results.csv @@ -0,0 +1,6 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakMnt,4x4,ldr-rgb-montage.png,44.5996,4.0588,3.6162,2.6097 +KodakMnt,5x5,ldr-rgb-montage.png,40.6371,3.4610,3.0115,3.1337 +KodakMnt,6x6,ldr-rgb-montage.png,37.4855,3.4025,2.9536,3.1952 +KodakMnt,8x8,ldr-rgb-montage.png,33.5355,3.7678,3.3103,2.8509 +KodakMnt,12x12,ldr-rgb-montage.png,29.5178,3.3048,2.8397,3.3233 diff --git a/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-avx2_thorough_results.csv b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-avx2_thorough_results.csv new file mode 100644 index 0000000000..c77309f1a0 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-avx2_thorough_results.csv @@ -0,0 +1,6 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakMnt,4x4,ldr-rgb-montage.png,44.8777,10.6720,10.2266,0.9228 +KodakMnt,5x5,ldr-rgb-montage.png,40.8197,11.8362,11.3813,0.8292 +KodakMnt,6x6,ldr-rgb-montage.png,37.6616,13.1888,12.7347,0.7411 +KodakMnt,8x8,ldr-rgb-montage.png,33.7111,11.9773,11.5221,0.8191 +KodakMnt,12x12,ldr-rgb-montage.png,29.7695,11.8494,11.3844,0.8290 diff --git a/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse2_fast_results.csv b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse2_fast_results.csv new file mode 100644 index 0000000000..6608759982 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse2_fast_results.csv @@ -0,0 +1,6 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakMnt,4x4,ldr-rgb-montage.png,44.0002,1.4052,0.9584,9.8466 +KodakMnt,5x5,ldr-rgb-montage.png,40.0605,1.2541,0.8060,11.7093 +KodakMnt,6x6,ldr-rgb-montage.png,36.9848,1.4923,1.0439,9.0402 +KodakMnt,8x8,ldr-rgb-montage.png,32.9384,1.6213,1.1666,8.0898 +KodakMnt,12x12,ldr-rgb-montage.png,28.8480,1.2145,0.7560,12.4826 diff --git a/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse2_fastest_results.csv b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse2_fastest_results.csv new file mode 100644 index 0000000000..11668beedb --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse2_fastest_results.csv @@ -0,0 +1,6 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakMnt,4x4,ldr-rgb-montage.png,43.3450,1.0850,0.6423,14.6928 +KodakMnt,5x5,ldr-rgb-montage.png,39.7591,1.0505,0.6049,15.6008 +KodakMnt,6x6,ldr-rgb-montage.png,36.8228,1.1259,0.6795,13.8887 +KodakMnt,8x8,ldr-rgb-montage.png,32.7997,1.3043,0.8581,10.9974 +KodakMnt,12x12,ldr-rgb-montage.png,28.7194,1.0216,0.5699,16.5598 diff --git a/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse2_medium_results.csv b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse2_medium_results.csv new file mode 100644 index 0000000000..5732162667 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse2_medium_results.csv @@ -0,0 +1,6 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakMnt,4x4,ldr-rgb-montage.png,44.5996,5.4426,4.9984,1.8881 +KodakMnt,5x5,ldr-rgb-montage.png,40.6371,4.9380,4.4888,2.1024 +KodakMnt,6x6,ldr-rgb-montage.png,37.4855,4.9302,4.4809,2.1061 +KodakMnt,8x8,ldr-rgb-montage.png,33.5355,5.6111,5.1604,1.8288 +KodakMnt,12x12,ldr-rgb-montage.png,29.5178,4.8593,4.4016,2.1440 diff --git a/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse2_thorough_results.csv b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse2_thorough_results.csv new file mode 100644 index 0000000000..16c567c922 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse2_thorough_results.csv @@ -0,0 +1,6 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakMnt,4x4,ldr-rgb-montage.png,44.8777,14.3295,13.8831,0.6798 +KodakMnt,5x5,ldr-rgb-montage.png,40.8197,16.8489,16.4016,0.5754 +KodakMnt,6x6,ldr-rgb-montage.png,37.6616,19.3717,18.9250,0.4987 +KodakMnt,8x8,ldr-rgb-montage.png,33.7111,18.1882,17.7395,0.5320 +KodakMnt,12x12,ldr-rgb-montage.png,29.7695,18.1214,17.6592,0.5344 diff --git a/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse4.1_fast_results.csv b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse4.1_fast_results.csv new file mode 100644 index 0000000000..4fbf845735 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse4.1_fast_results.csv @@ -0,0 +1,6 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakMnt,4x4,ldr-rgb-montage.png,44.0002,1.2537,0.8096,11.6565 +KodakMnt,5x5,ldr-rgb-montage.png,40.0605,1.1336,0.6882,13.7128 +KodakMnt,6x6,ldr-rgb-montage.png,36.9848,1.3359,0.8921,10.5790 +KodakMnt,8x8,ldr-rgb-montage.png,32.9384,1.4494,1.0014,9.4243 +KodakMnt,12x12,ldr-rgb-montage.png,28.8480,1.1094,0.6560,14.3864 diff --git a/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse4.1_fastest_results.csv b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse4.1_fastest_results.csv new file mode 100644 index 0000000000..fc753b3f1a --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse4.1_fastest_results.csv @@ -0,0 +1,6 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakMnt,4x4,ldr-rgb-montage.png,43.3450,0.9853,0.5414,17.4298 +KodakMnt,5x5,ldr-rgb-montage.png,39.7591,0.9638,0.5180,18.2170 +KodakMnt,6x6,ldr-rgb-montage.png,36.8228,1.0330,0.5896,16.0074 +KodakMnt,8x8,ldr-rgb-montage.png,32.7997,1.1849,0.7383,12.7823 +KodakMnt,12x12,ldr-rgb-montage.png,28.7194,0.9448,0.4951,19.0623 diff --git a/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse4.1_medium_results.csv b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse4.1_medium_results.csv new file mode 100644 index 0000000000..44ac2bd4dd --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse4.1_medium_results.csv @@ -0,0 +1,6 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakMnt,4x4,ldr-rgb-montage.png,44.5996,4.6412,4.1965,2.2488 +KodakMnt,5x5,ldr-rgb-montage.png,40.6371,4.1926,3.7464,2.5190 +KodakMnt,6x6,ldr-rgb-montage.png,37.4855,4.2857,3.8369,2.4596 +KodakMnt,8x8,ldr-rgb-montage.png,33.5355,4.8910,4.4400,2.1255 +KodakMnt,12x12,ldr-rgb-montage.png,29.5178,4.3329,3.8741,2.4360 diff --git a/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse4.1_thorough_results.csv b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse4.1_thorough_results.csv new file mode 100644 index 0000000000..4f7776f805 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakMnt/astc_reference-3.3-sse4.1_thorough_results.csv @@ -0,0 +1,6 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakMnt,4x4,ldr-rgb-montage.png,44.8777,12.3204,11.8781,0.7945 +KodakMnt,5x5,ldr-rgb-montage.png,40.8197,14.5456,14.0960,0.6695 +KodakMnt,6x6,ldr-rgb-montage.png,37.6616,16.8150,16.3666,0.5766 +KodakMnt,8x8,ldr-rgb-montage.png,33.7111,15.9370,15.4868,0.6094 +KodakMnt,12x12,ldr-rgb-montage.png,29.7695,16.0426,15.5850,0.6055 diff --git a/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-avx2_fast_results.csv b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-avx2_fast_results.csv new file mode 100644 index 0000000000..dc031fc6cf --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-avx2_fast_results.csv @@ -0,0 +1,21 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakSim,4x4,ldr-rgba-kodak22+24+nca.png,38.3896,0.1453,0.1176,3.3445 +KodakSim,4x4,ldr-rgba-kodak22+ca.png,42.6546,0.0690,0.0428,9.1815 +KodakSim,4x4,ldr-rgba-kodak23+20+nca.png,42.2495,0.0816,0.0565,6.9560 +KodakSim,4x4,ldr-rgba-kodak23+ca.png,45.0101,0.0517,0.0285,13.7981 +KodakSim,5x5,ldr-rgba-kodak22+24+nca.png,35.0065,0.1271,0.0987,3.9838 +KodakSim,5x5,ldr-rgba-kodak22+ca.png,39.1690,0.0621,0.0352,11.1798 +KodakSim,5x5,ldr-rgba-kodak23+20+nca.png,39.4152,0.0697,0.0434,9.0523 +KodakSim,5x5,ldr-rgba-kodak23+ca.png,41.6203,0.0487,0.0248,15.8651 +KodakSim,6x6,ldr-rgba-kodak22+24+nca.png,33.0511,0.1319,0.1024,3.8396 +KodakSim,6x6,ldr-rgba-kodak22+ca.png,36.4991,0.0671,0.0390,10.0892 +KodakSim,6x6,ldr-rgba-kodak23+20+nca.png,37.3206,0.0694,0.0425,9.2502 +KodakSim,6x6,ldr-rgba-kodak23+ca.png,39.1406,0.0510,0.0258,15.2581 +KodakSim,8x8,ldr-rgba-kodak22+24+nca.png,30.1640,0.1223,0.0887,4.4323 +KodakSim,8x8,ldr-rgba-kodak22+ca.png,33.1831,0.0696,0.0372,10.5823 +KodakSim,8x8,ldr-rgba-kodak23+20+nca.png,34.2163,0.0671,0.0358,10.9859 +KodakSim,8x8,ldr-rgba-kodak23+ca.png,35.9797,0.0511,0.0225,17.4935 +KodakSim,12x12,ldr-rgba-kodak22+24+nca.png,27.1825,0.0827,0.0425,9.2611 +KodakSim,12x12,ldr-rgba-kodak22+ca.png,29.7369,0.0619,0.0235,16.7362 +KodakSim,12x12,ldr-rgba-kodak23+20+nca.png,30.5403,0.0589,0.0212,18.5515 +KodakSim,12x12,ldr-rgba-kodak23+ca.png,32.2753,0.0517,0.0157,25.0553 diff --git a/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-avx2_fastest_results.csv b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-avx2_fastest_results.csv new file mode 100644 index 0000000000..312b19f96f --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-avx2_fastest_results.csv @@ -0,0 +1,21 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakSim,4x4,ldr-rgba-kodak22+24+nca.png,37.8887,0.0933,0.0658,5.9778 +KodakSim,4x4,ldr-rgba-kodak22+ca.png,42.2021,0.0569,0.0309,12.7361 +KodakSim,4x4,ldr-rgba-kodak23+20+nca.png,41.7591,0.0605,0.0355,11.0802 +KodakSim,4x4,ldr-rgba-kodak23+ca.png,44.5564,0.0433,0.0208,18.9073 +KodakSim,5x5,ldr-rgba-kodak22+24+nca.png,34.3238,0.0895,0.0612,6.4269 +KodakSim,5x5,ldr-rgba-kodak22+ca.png,38.9671,0.0538,0.0270,14.5770 +KodakSim,5x5,ldr-rgba-kodak23+20+nca.png,38.8452,0.0561,0.0303,12.9803 +KodakSim,5x5,ldr-rgba-kodak23+ca.png,41.3957,0.0431,0.0197,19.9127 +KodakSim,6x6,ldr-rgba-kodak22+24+nca.png,32.2827,0.0883,0.0593,6.6337 +KodakSim,6x6,ldr-rgba-kodak22+ca.png,36.3557,0.0555,0.0278,14.1374 +KodakSim,6x6,ldr-rgba-kodak23+20+nca.png,36.7789,0.0549,0.0283,13.8995 +KodakSim,6x6,ldr-rgba-kodak23+ca.png,38.8586,0.0437,0.0196,20.0551 +KodakSim,8x8,ldr-rgba-kodak22+24+nca.png,29.9820,0.0951,0.0620,6.3472 +KodakSim,8x8,ldr-rgba-kodak22+ca.png,33.0546,0.0605,0.0291,13.5288 +KodakSim,8x8,ldr-rgba-kodak23+20+nca.png,34.0030,0.0574,0.0272,14.4422 +KodakSim,8x8,ldr-rgba-kodak23+ca.png,35.8041,0.0468,0.0187,21.0796 +KodakSim,12x12,ldr-rgba-kodak22+24+nca.png,27.1087,0.0693,0.0320,12.2961 +KodakSim,12x12,ldr-rgba-kodak22+ca.png,29.6270,0.0554,0.0188,20.9673 +KodakSim,12x12,ldr-rgba-kodak23+20+nca.png,30.4864,0.0521,0.0168,23.4085 +KodakSim,12x12,ldr-rgba-kodak23+ca.png,32.2185,0.0466,0.0128,30.8159 diff --git a/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-avx2_medium_results.csv b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-avx2_medium_results.csv new file mode 100644 index 0000000000..96ff012854 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-avx2_medium_results.csv @@ -0,0 +1,21 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakSim,4x4,ldr-rgba-kodak22+24+nca.png,39.0901,0.2951,0.2676,1.4692 +KodakSim,4x4,ldr-rgba-kodak22+ca.png,42.9182,0.1718,0.1452,2.7075 +KodakSim,4x4,ldr-rgba-kodak23+20+nca.png,43.1926,0.2184,0.1933,2.0342 +KodakSim,4x4,ldr-rgba-kodak23+ca.png,45.6708,0.1560,0.1324,2.9689 +KodakSim,5x5,ldr-rgba-kodak22+24+nca.png,35.7599,0.3620,0.3331,1.1806 +KodakSim,5x5,ldr-rgba-kodak22+ca.png,39.6075,0.1749,0.1471,2.6740 +KodakSim,5x5,ldr-rgba-kodak23+20+nca.png,40.3700,0.2325,0.2050,1.9183 +KodakSim,5x5,ldr-rgba-kodak23+ca.png,42.8649,0.1396,0.1152,3.4144 +KodakSim,6x6,ldr-rgba-kodak22+24+nca.png,33.5574,0.3582,0.3281,1.1984 +KodakSim,6x6,ldr-rgba-kodak22+ca.png,36.9885,0.1645,0.1357,2.8987 +KodakSim,6x6,ldr-rgba-kodak23+20+nca.png,38.2271,0.1955,0.1677,2.3453 +KodakSim,6x6,ldr-rgba-kodak23+ca.png,40.4888,0.1144,0.0887,4.4324 +KodakSim,8x8,ldr-rgba-kodak22+24+nca.png,30.7250,0.3740,0.3389,1.1601 +KodakSim,8x8,ldr-rgba-kodak22+ca.png,33.7075,0.1753,0.1418,2.7737 +KodakSim,8x8,ldr-rgba-kodak23+20+nca.png,35.2579,0.1969,0.1650,2.3836 +KodakSim,8x8,ldr-rgba-kodak23+ca.png,37.2452,0.1161,0.0855,4.5994 +KodakSim,12x12,ldr-rgba-kodak22+24+nca.png,27.7292,0.2948,0.2509,1.5674 +KodakSim,12x12,ldr-rgba-kodak22+ca.png,30.2554,0.1470,0.1047,3.7541 +KodakSim,12x12,ldr-rgba-kodak23+20+nca.png,31.5417,0.1386,0.0971,4.0492 +KodakSim,12x12,ldr-rgba-kodak23+ca.png,33.2688,0.0939,0.0540,7.2834 diff --git a/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-avx2_thorough_results.csv b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-avx2_thorough_results.csv new file mode 100644 index 0000000000..30fd92ee51 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-avx2_thorough_results.csv @@ -0,0 +1,21 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakSim,4x4,ldr-rgba-kodak22+24+nca.png,39.2971,0.5759,0.5473,0.7185 +KodakSim,4x4,ldr-rgba-kodak22+ca.png,43.1457,0.4200,0.3933,0.9997 +KodakSim,4x4,ldr-rgba-kodak23+20+nca.png,43.5758,0.5228,0.4967,0.7917 +KodakSim,4x4,ldr-rgba-kodak23+ca.png,46.1159,0.3938,0.3705,1.0612 +KodakSim,5x5,ldr-rgba-kodak22+24+nca.png,35.9720,0.6651,0.6360,0.6182 +KodakSim,5x5,ldr-rgba-kodak22+ca.png,39.7441,0.4980,0.4707,0.8355 +KodakSim,5x5,ldr-rgba-kodak23+20+nca.png,40.6416,0.6045,0.5777,0.6807 +KodakSim,5x5,ldr-rgba-kodak23+ca.png,43.1434,0.4876,0.4629,0.8495 +KodakSim,6x6,ldr-rgba-kodak22+24+nca.png,33.7018,0.7414,0.7112,0.5529 +KodakSim,6x6,ldr-rgba-kodak22+ca.png,37.1051,0.5962,0.5669,0.6936 +KodakSim,6x6,ldr-rgba-kodak23+20+nca.png,38.4987,0.6629,0.6353,0.6190 +KodakSim,6x6,ldr-rgba-kodak23+ca.png,40.8357,0.5721,0.5464,0.7196 +KodakSim,8x8,ldr-rgba-kodak22+24+nca.png,30.8651,0.8192,0.7841,0.5015 +KodakSim,8x8,ldr-rgba-kodak22+ca.png,33.8425,0.5421,0.5082,0.7738 +KodakSim,8x8,ldr-rgba-kodak23+20+nca.png,35.5781,0.5478,0.5148,0.7638 +KodakSim,8x8,ldr-rgba-kodak23+ca.png,37.7574,0.3641,0.3332,1.1800 +KodakSim,12x12,ldr-rgba-kodak22+24+nca.png,28.0129,0.8222,0.7779,0.5055 +KodakSim,12x12,ldr-rgba-kodak22+ca.png,30.5208,0.5070,0.4639,0.8475 +KodakSim,12x12,ldr-rgba-kodak23+20+nca.png,32.1225,0.4962,0.4539,0.8663 +KodakSim,12x12,ldr-rgba-kodak23+ca.png,34.0489,0.3016,0.2611,1.5059 diff --git a/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse2_fast_results.csv b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse2_fast_results.csv new file mode 100644 index 0000000000..1765e73934 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse2_fast_results.csv @@ -0,0 +1,21 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakSim,4x4,ldr-rgba-kodak22+24+nca.png,38.3896,0.1797,0.1519,2.5890 +KodakSim,4x4,ldr-rgba-kodak22+ca.png,42.6546,0.0814,0.0552,7.1270 +KodakSim,4x4,ldr-rgba-kodak23+20+nca.png,42.2495,0.0973,0.0721,5.4532 +KodakSim,4x4,ldr-rgba-kodak23+ca.png,45.0101,0.0595,0.0364,10.8106 +KodakSim,5x5,ldr-rgba-kodak22+24+nca.png,35.0065,0.1672,0.1386,2.8362 +KodakSim,5x5,ldr-rgba-kodak22+ca.png,39.1690,0.0757,0.0485,8.1071 +KodakSim,5x5,ldr-rgba-kodak23+20+nca.png,39.4152,0.0857,0.0597,6.5828 +KodakSim,5x5,ldr-rgba-kodak23+ca.png,41.6203,0.0571,0.0330,11.8997 +KodakSim,6x6,ldr-rgba-kodak22+24+nca.png,33.0511,0.1760,0.1465,2.6835 +KodakSim,6x6,ldr-rgba-kodak22+ca.png,36.4991,0.0839,0.0557,7.0640 +KodakSim,6x6,ldr-rgba-kodak23+20+nca.png,37.3206,0.0869,0.0599,6.5649 +KodakSim,6x6,ldr-rgba-kodak23+ca.png,39.1406,0.0607,0.0357,11.0176 +KodakSim,8x8,ldr-rgba-kodak22+24+nca.png,30.1640,0.1635,0.1295,3.0353 +KodakSim,8x8,ldr-rgba-kodak22+ca.png,33.1831,0.0858,0.0535,7.3551 +KodakSim,8x8,ldr-rgba-kodak23+20+nca.png,34.2163,0.0824,0.0509,7.7253 +KodakSim,8x8,ldr-rgba-kodak23+ca.png,35.9797,0.0602,0.0305,12.8754 +KodakSim,12x12,ldr-rgba-kodak22+24+nca.png,27.1825,0.1034,0.0620,6.3443 +KodakSim,12x12,ldr-rgba-kodak22+ca.png,29.7369,0.0720,0.0323,12.1859 +KodakSim,12x12,ldr-rgba-kodak23+20+nca.png,30.5403,0.0679,0.0296,13.2731 +KodakSim,12x12,ldr-rgba-kodak23+ca.png,32.2753,0.0576,0.0209,18.8511 diff --git a/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse2_fastest_results.csv b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse2_fastest_results.csv new file mode 100644 index 0000000000..85d02f8179 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse2_fastest_results.csv @@ -0,0 +1,21 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakSim,4x4,ldr-rgba-kodak22+24+nca.png,37.8887,0.1141,0.0864,4.5488 +KodakSim,4x4,ldr-rgba-kodak22+ca.png,42.2021,0.0668,0.0405,9.7079 +KodakSim,4x4,ldr-rgba-kodak23+20+nca.png,41.7591,0.0713,0.0462,8.5128 +KodakSim,4x4,ldr-rgba-kodak23+ca.png,44.5564,0.0497,0.0266,14.8004 +KodakSim,5x5,ldr-rgba-kodak22+24+nca.png,34.3238,0.1149,0.0867,4.5349 +KodakSim,5x5,ldr-rgba-kodak22+ca.png,38.9671,0.0644,0.0373,10.5284 +KodakSim,5x5,ldr-rgba-kodak23+20+nca.png,38.8452,0.0674,0.0415,9.4673 +KodakSim,5x5,ldr-rgba-kodak23+ca.png,41.3957,0.0496,0.0257,15.3175 +KodakSim,6x6,ldr-rgba-kodak22+24+nca.png,32.2827,0.1121,0.0829,4.7411 +KodakSim,6x6,ldr-rgba-kodak22+ca.png,36.3557,0.0662,0.0386,10.1745 +KodakSim,6x6,ldr-rgba-kodak23+20+nca.png,36.7789,0.0653,0.0388,10.1247 +KodakSim,6x6,ldr-rgba-kodak23+ca.png,38.8586,0.0506,0.0260,15.1523 +KodakSim,8x8,ldr-rgba-kodak22+24+nca.png,29.9820,0.1237,0.0904,4.3513 +KodakSim,8x8,ldr-rgba-kodak22+ca.png,33.0546,0.0731,0.0412,9.5378 +KodakSim,8x8,ldr-rgba-kodak23+20+nca.png,34.0030,0.0683,0.0376,10.4695 +KodakSim,8x8,ldr-rgba-kodak23+ca.png,35.8041,0.0535,0.0252,15.6020 +KodakSim,12x12,ldr-rgba-kodak22+24+nca.png,27.1087,0.0830,0.0445,8.8264 +KodakSim,12x12,ldr-rgba-kodak22+ca.png,29.6270,0.0625,0.0255,15.4183 +KodakSim,12x12,ldr-rgba-kodak23+20+nca.png,30.4864,0.0587,0.0227,17.3368 +KodakSim,12x12,ldr-rgba-kodak23+ca.png,32.2185,0.0510,0.0172,22.8373 diff --git a/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse2_medium_results.csv b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse2_medium_results.csv new file mode 100644 index 0000000000..9c6b0ea0b0 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse2_medium_results.csv @@ -0,0 +1,21 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakSim,4x4,ldr-rgba-kodak22+24+nca.png,39.0901,0.3937,0.3666,1.0727 +KodakSim,4x4,ldr-rgba-kodak22+ca.png,42.9182,0.2297,0.2030,1.9370 +KodakSim,4x4,ldr-rgba-kodak23+20+nca.png,43.1926,0.2937,0.2684,1.4653 +KodakSim,4x4,ldr-rgba-kodak23+ca.png,45.6708,0.2092,0.1859,2.1152 +KodakSim,5x5,ldr-rgba-kodak22+24+nca.png,35.7599,0.5290,0.5001,0.7863 +KodakSim,5x5,ldr-rgba-kodak22+ca.png,39.6075,0.2466,0.2190,1.7951 +KodakSim,5x5,ldr-rgba-kodak23+20+nca.png,40.3700,0.3307,0.3043,1.2921 +KodakSim,5x5,ldr-rgba-kodak23+ca.png,42.8649,0.1961,0.1712,2.2964 +KodakSim,6x6,ldr-rgba-kodak22+24+nca.png,33.5574,0.5257,0.4955,0.7936 +KodakSim,6x6,ldr-rgba-kodak22+ca.png,36.9885,0.2355,0.2068,1.9018 +KodakSim,6x6,ldr-rgba-kodak23+20+nca.png,38.2271,0.2842,0.2566,1.5325 +KodakSim,6x6,ldr-rgba-kodak23+ca.png,40.4888,0.1598,0.1340,2.9343 +KodakSim,8x8,ldr-rgba-kodak22+24+nca.png,30.7250,0.5572,0.5203,0.7557 +KodakSim,8x8,ldr-rgba-kodak22+ca.png,33.7075,0.2537,0.2198,1.7891 +KodakSim,8x8,ldr-rgba-kodak23+20+nca.png,35.2579,0.2855,0.2529,1.5549 +KodakSim,8x8,ldr-rgba-kodak23+ca.png,37.2452,0.1624,0.1317,2.9848 +KodakSim,12x12,ldr-rgba-kodak22+24+nca.png,27.7292,0.4288,0.3841,1.0237 +KodakSim,12x12,ldr-rgba-kodak22+ca.png,30.2554,0.2036,0.1606,2.4490 +KodakSim,12x12,ldr-rgba-kodak23+20+nca.png,31.5417,0.1904,0.1485,2.6484 +KodakSim,12x12,ldr-rgba-kodak23+ca.png,33.2688,0.1217,0.0816,4.8187 diff --git a/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse2_thorough_results.csv b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse2_thorough_results.csv new file mode 100644 index 0000000000..9ef72857e2 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse2_thorough_results.csv @@ -0,0 +1,21 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakSim,4x4,ldr-rgba-kodak22+24+nca.png,39.2971,0.7570,0.7290,0.5394 +KodakSim,4x4,ldr-rgba-kodak22+ca.png,43.1457,0.5547,0.5280,0.7447 +KodakSim,4x4,ldr-rgba-kodak23+20+nca.png,43.5758,0.6881,0.6626,0.5934 +KodakSim,4x4,ldr-rgba-kodak23+ca.png,46.1159,0.5325,0.5088,0.7728 +KodakSim,5x5,ldr-rgba-kodak22+24+nca.png,35.9720,0.9277,0.8971,0.4383 +KodakSim,5x5,ldr-rgba-kodak22+ca.png,39.7441,0.7002,0.6724,0.5848 +KodakSim,5x5,ldr-rgba-kodak23+20+nca.png,40.6416,0.8464,0.8199,0.4796 +KodakSim,5x5,ldr-rgba-kodak23+ca.png,43.1434,0.6859,0.6611,0.5948 +KodakSim,6x6,ldr-rgba-kodak22+24+nca.png,33.7018,1.0712,1.0399,0.3781 +KodakSim,6x6,ldr-rgba-kodak22+ca.png,37.1051,0.8636,0.8346,0.4711 +KodakSim,6x6,ldr-rgba-kodak23+20+nca.png,38.4987,0.9651,0.9357,0.4202 +KodakSim,6x6,ldr-rgba-kodak23+ca.png,40.8357,0.8318,0.8059,0.4879 +KodakSim,8x8,ldr-rgba-kodak22+24+nca.png,30.8651,1.2246,1.1887,0.3308 +KodakSim,8x8,ldr-rgba-kodak22+ca.png,33.8425,0.8106,0.7763,0.5065 +KodakSim,8x8,ldr-rgba-kodak23+20+nca.png,35.5781,0.8175,0.7843,0.5014 +KodakSim,8x8,ldr-rgba-kodak23+ca.png,37.7574,0.5394,0.5083,0.7736 +KodakSim,12x12,ldr-rgba-kodak22+24+nca.png,28.0129,1.2290,1.1848,0.3319 +KodakSim,12x12,ldr-rgba-kodak22+ca.png,30.5208,0.7572,0.7138,0.5509 +KodakSim,12x12,ldr-rgba-kodak23+20+nca.png,32.1225,0.7358,0.6933,0.5672 +KodakSim,12x12,ldr-rgba-kodak23+ca.png,34.0489,0.4399,0.3986,0.9864 diff --git a/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse4.1_fast_results.csv b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse4.1_fast_results.csv new file mode 100644 index 0000000000..8f6f067fb3 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse4.1_fast_results.csv @@ -0,0 +1,21 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakSim,4x4,ldr-rgba-kodak22+24+nca.png,38.3896,0.1530,0.1260,3.1199 +KodakSim,4x4,ldr-rgba-kodak22+ca.png,42.6546,0.0726,0.0470,8.3585 +KodakSim,4x4,ldr-rgba-kodak23+20+nca.png,42.2495,0.0856,0.0611,6.4356 +KodakSim,4x4,ldr-rgba-kodak23+ca.png,45.0101,0.0541,0.0314,12.5172 +KodakSim,5x5,ldr-rgba-kodak22+24+nca.png,35.0065,0.1429,0.1151,3.4165 +KodakSim,5x5,ldr-rgba-kodak22+ca.png,39.1690,0.0676,0.0412,9.5364 +KodakSim,5x5,ldr-rgba-kodak23+20+nca.png,39.4152,0.0759,0.0506,7.7677 +KodakSim,5x5,ldr-rgba-kodak23+ca.png,41.6203,0.0519,0.0285,13.8160 +KodakSim,6x6,ldr-rgba-kodak22+24+nca.png,33.0511,0.1529,0.1241,3.1675 +KodakSim,6x6,ldr-rgba-kodak22+ca.png,36.4991,0.0751,0.0477,8.2351 +KodakSim,6x6,ldr-rgba-kodak23+20+nca.png,37.3206,0.0779,0.0514,7.6466 +KodakSim,6x6,ldr-rgba-kodak23+ca.png,39.1406,0.0553,0.0309,12.7378 +KodakSim,8x8,ldr-rgba-kodak22+24+nca.png,30.1640,0.1440,0.1110,3.5422 +KodakSim,8x8,ldr-rgba-kodak22+ca.png,33.1831,0.0775,0.0459,8.5631 +KodakSim,8x8,ldr-rgba-kodak23+20+nca.png,34.2163,0.0747,0.0438,8.9783 +KodakSim,8x8,ldr-rgba-kodak23+ca.png,35.9797,0.0554,0.0266,14.7971 +KodakSim,12x12,ldr-rgba-kodak22+24+nca.png,27.1825,0.0950,0.0541,7.2635 +KodakSim,12x12,ldr-rgba-kodak22+ca.png,29.7369,0.0674,0.0288,13.6487 +KodakSim,12x12,ldr-rgba-kodak23+20+nca.png,30.5403,0.0635,0.0259,15.1611 +KodakSim,12x12,ldr-rgba-kodak23+ca.png,32.2753,0.0548,0.0191,20.6370 diff --git a/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse4.1_fastest_results.csv b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse4.1_fastest_results.csv new file mode 100644 index 0000000000..8b9d301a7a --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse4.1_fastest_results.csv @@ -0,0 +1,21 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakSim,4x4,ldr-rgba-kodak22+24+nca.png,37.8887,0.0986,0.0716,5.4885 +KodakSim,4x4,ldr-rgba-kodak22+ca.png,42.2021,0.0594,0.0339,11.5938 +KodakSim,4x4,ldr-rgba-kodak23+20+nca.png,41.7591,0.0636,0.0390,10.0822 +KodakSim,4x4,ldr-rgba-kodak23+ca.png,44.5564,0.0454,0.0228,17.2236 +KodakSim,5x5,ldr-rgba-kodak22+24+nca.png,34.3238,0.0992,0.0717,5.4818 +KodakSim,5x5,ldr-rgba-kodak22+ca.png,38.9671,0.0580,0.0318,12.3766 +KodakSim,5x5,ldr-rgba-kodak23+20+nca.png,38.8452,0.0606,0.0352,11.1560 +KodakSim,5x5,ldr-rgba-kodak23+ca.png,41.3957,0.0455,0.0222,17.7221 +KodakSim,6x6,ldr-rgba-kodak22+24+nca.png,32.2827,0.0991,0.0707,5.5589 +KodakSim,6x6,ldr-rgba-kodak22+ca.png,36.3557,0.0602,0.0334,11.7740 +KodakSim,6x6,ldr-rgba-kodak23+20+nca.png,36.7789,0.0596,0.0337,11.6743 +KodakSim,6x6,ldr-rgba-kodak23+ca.png,38.8586,0.0465,0.0228,17.2433 +KodakSim,8x8,ldr-rgba-kodak22+24+nca.png,29.9820,0.1101,0.0778,5.0513 +KodakSim,8x8,ldr-rgba-kodak22+ca.png,33.0546,0.0668,0.0357,11.0203 +KodakSim,8x8,ldr-rgba-kodak23+20+nca.png,34.0030,0.0628,0.0326,12.0578 +KodakSim,8x8,ldr-rgba-kodak23+ca.png,35.8041,0.0500,0.0222,17.7501 +KodakSim,12x12,ldr-rgba-kodak22+24+nca.png,27.1087,0.0769,0.0389,10.1089 +KodakSim,12x12,ldr-rgba-kodak22+ca.png,29.6270,0.0586,0.0223,17.6345 +KodakSim,12x12,ldr-rgba-kodak23+20+nca.png,30.4864,0.0552,0.0203,19.4027 +KodakSim,12x12,ldr-rgba-kodak23+ca.png,32.2185,0.0485,0.0151,25.9739 diff --git a/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse4.1_medium_results.csv b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse4.1_medium_results.csv new file mode 100644 index 0000000000..f28acc6222 --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse4.1_medium_results.csv @@ -0,0 +1,21 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakSim,4x4,ldr-rgba-kodak22+24+nca.png,39.0901,0.3404,0.3133,1.2551 +KodakSim,4x4,ldr-rgba-kodak22+ca.png,42.9182,0.1969,0.1702,2.3097 +KodakSim,4x4,ldr-rgba-kodak23+20+nca.png,43.1926,0.2501,0.2251,1.7465 +KodakSim,4x4,ldr-rgba-kodak23+ca.png,45.6708,0.1800,0.1567,2.5092 +KodakSim,5x5,ldr-rgba-kodak22+24+nca.png,35.7599,0.4411,0.4127,0.9527 +KodakSim,5x5,ldr-rgba-kodak22+ca.png,39.6075,0.2110,0.1840,2.1372 +KodakSim,5x5,ldr-rgba-kodak23+20+nca.png,40.3700,0.2830,0.2570,1.5301 +KodakSim,5x5,ldr-rgba-kodak23+ca.png,42.8649,0.1693,0.1451,2.7100 +KodakSim,6x6,ldr-rgba-kodak22+24+nca.png,33.5574,0.4572,0.4274,0.9201 +KodakSim,6x6,ldr-rgba-kodak22+ca.png,36.9885,0.2057,0.1775,2.2148 +KodakSim,6x6,ldr-rgba-kodak23+20+nca.png,38.2271,0.2452,0.2179,1.8044 +KodakSim,6x6,ldr-rgba-kodak23+ca.png,40.4888,0.1406,0.1153,3.4107 +KodakSim,8x8,ldr-rgba-kodak22+24+nca.png,30.7250,0.4868,0.4525,0.8690 +KodakSim,8x8,ldr-rgba-kodak22+ca.png,33.7075,0.2218,0.1887,2.0834 +KodakSim,8x8,ldr-rgba-kodak23+20+nca.png,35.2579,0.2522,0.2201,1.7864 +KodakSim,8x8,ldr-rgba-kodak23+ca.png,37.2452,0.1436,0.1133,3.4719 +KodakSim,12x12,ldr-rgba-kodak22+24+nca.png,27.7292,0.3823,0.3391,1.1597 +KodakSim,12x12,ldr-rgba-kodak22+ca.png,30.2554,0.1846,0.1424,2.7620 +KodakSim,12x12,ldr-rgba-kodak23+20+nca.png,31.5417,0.1708,0.1295,3.0367 +KodakSim,12x12,ldr-rgba-kodak23+ca.png,33.2688,0.1115,0.0719,5.4712 diff --git a/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse4.1_thorough_results.csv b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse4.1_thorough_results.csv new file mode 100644 index 0000000000..812348926f --- /dev/null +++ b/lib/astc-encoder/Test/Images/KodakSim/astc_reference-3.3-sse4.1_thorough_results.csv @@ -0,0 +1,21 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +KodakSim,4x4,ldr-rgba-kodak22+24+nca.png,39.2971,0.6601,0.6334,0.6208 +KodakSim,4x4,ldr-rgba-kodak22+ca.png,43.1457,0.4834,0.4572,0.8600 +KodakSim,4x4,ldr-rgba-kodak23+20+nca.png,43.5758,0.6001,0.5751,0.6837 +KodakSim,4x4,ldr-rgba-kodak23+ca.png,46.1159,0.4599,0.4368,0.9003 +KodakSim,5x5,ldr-rgba-kodak22+24+nca.png,35.9720,0.8098,0.7784,0.5052 +KodakSim,5x5,ldr-rgba-kodak22+ca.png,39.7441,0.6089,0.5820,0.6756 +KodakSim,5x5,ldr-rgba-kodak23+20+nca.png,40.6416,0.7378,0.7087,0.5549 +KodakSim,5x5,ldr-rgba-kodak23+ca.png,43.1434,0.5981,0.5741,0.6849 +KodakSim,6x6,ldr-rgba-kodak22+24+nca.png,33.7018,0.9384,0.9087,0.4327 +KodakSim,6x6,ldr-rgba-kodak22+ca.png,37.1051,0.7607,0.7306,0.5382 +KodakSim,6x6,ldr-rgba-kodak23+20+nca.png,38.4987,0.8402,0.8129,0.4837 +KodakSim,6x6,ldr-rgba-kodak23+ca.png,40.8357,0.7255,0.7000,0.5617 +KodakSim,8x8,ldr-rgba-kodak22+24+nca.png,30.8651,1.0853,1.0488,0.3749 +KodakSim,8x8,ldr-rgba-kodak22+ca.png,33.8425,0.7122,0.6788,0.5793 +KodakSim,8x8,ldr-rgba-kodak23+20+nca.png,35.5781,0.7217,0.6896,0.5702 +KodakSim,8x8,ldr-rgba-kodak23+ca.png,37.7574,0.4750,0.4429,0.8878 +KodakSim,12x12,ldr-rgba-kodak22+24+nca.png,28.0129,1.0982,1.0540,0.3731 +KodakSim,12x12,ldr-rgba-kodak22+ca.png,30.5208,0.6754,0.6311,0.6231 +KodakSim,12x12,ldr-rgba-kodak23+20+nca.png,32.1225,0.6571,0.6151,0.6392 +KodakSim,12x12,ldr-rgba-kodak23+ca.png,34.0489,0.3928,0.3523,1.1162 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-avx2_fast_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-avx2_fast_results.csv new file mode 100644 index 0000000000..b3e5eb70d8 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-avx2_fast_results.csv @@ -0,0 +1,110 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Small,4x4,hdr-rgb-00.hdr,31.4784,0.1203,0.0257,2.5541 +Small,4x4,ldr-rgb-00.png,38.0904,0.0227,0.0146,4.4993 +Small,4x4,ldr-rgb-01.png,39.8001,0.0205,0.0128,5.1148 +Small,4x4,ldr-rgb-02.png,35.0327,0.0275,0.0197,3.3269 +Small,4x4,ldr-rgb-03.png,45.9660,0.0125,0.0050,13.2286 +Small,4x4,ldr-rgb-04.png,41.9046,0.0170,0.0089,7.3266 +Small,4x4,ldr-rgb-05.png,37.1767,0.0273,0.0192,3.4138 +Small,4x4,ldr-rgb-06.png,35.2077,0.0263,0.0181,3.6128 +Small,4x4,ldr-rgb-07.png,37.9946,0.0280,0.0195,3.3579 +Small,4x4,ldr-rgb-08.png,43.6044,0.0153,0.0074,8.8274 +Small,4x4,ldr-rgb-09.png,41.8518,0.0171,0.0093,7.0514 +Small,4x4,ldr-rgb-10.png,44.3436,0.0082,0.0026,6.2547 +Small,4x4,ldr-rgba-00.png,35.5159,0.0279,0.0192,3.4121 +Small,4x4,ldr-rgba-01.png,38.7948,0.0202,0.0120,5.4459 +Small,4x4,ldr-rgba-02.png,34.8314,0.0256,0.0174,3.7734 +Small,4x4,ldr-xy-00.png,37.3667,0.0194,0.0093,7.0310 +Small,4x4,ldr-xy-01.png,43.8571,0.0204,0.0107,6.1490 +Small,4x4,ldr-xy-02.png,48.2127,0.0168,0.0068,9.6520 +Small,4x4,ldrs-rgba-00.png,35.5232,0.0283,0.0199,3.3007 +Small,4x4,ldrs-rgba-01.png,38.8139,0.0207,0.0126,5.1988 +Small,4x4,ldrs-rgba-02.png,34.8369,0.0258,0.0175,3.7537 +Small,5x5,hdr-rgb-00.hdr,25.7149,0.1246,0.0284,2.3091 +Small,5x5,ldr-rgb-00.png,34.2754,0.0238,0.0145,4.5126 +Small,5x5,ldr-rgb-01.png,36.1752,0.0193,0.0106,6.1879 +Small,5x5,ldr-rgb-02.png,31.0230,0.0253,0.0164,4.0054 +Small,5x5,ldr-rgb-03.png,42.5699,0.0127,0.0042,15.6751 +Small,5x5,ldr-rgb-04.png,37.2518,0.0178,0.0086,7.5810 +Small,5x5,ldr-rgb-05.png,33.1162,0.0290,0.0201,3.2545 +Small,5x5,ldr-rgb-06.png,31.0304,0.0253,0.0164,4.0083 +Small,5x5,ldr-rgb-07.png,34.5142,0.0254,0.0162,4.0547 +Small,5x5,ldr-rgb-08.png,39.8113,0.0151,0.0062,10.5975 +Small,5x5,ldr-rgb-09.png,37.2919,0.0180,0.0093,7.0384 +Small,5x5,ldr-rgb-10.png,40.1485,0.0091,0.0025,6.3895 +Small,5x5,ldr-rgba-00.png,32.0068,0.0301,0.0207,3.1649 +Small,5x5,ldr-rgba-01.png,35.1483,0.0216,0.0124,5.2835 +Small,5x5,ldr-rgba-02.png,31.1092,0.0274,0.0185,3.5502 +Small,5x5,ldr-xy-00.png,36.6735,0.0187,0.0073,8.9604 +Small,5x5,ldr-xy-01.png,39.4750,0.0200,0.0095,6.9312 +Small,5x5,ldr-xy-02.png,43.9474,0.0178,0.0068,9.6676 +Small,5x5,ldrs-rgba-00.png,32.0093,0.0306,0.0213,3.0771 +Small,5x5,ldrs-rgba-01.png,35.1561,0.0215,0.0124,5.2860 +Small,5x5,ldrs-rgba-02.png,31.1099,0.0278,0.0187,3.5046 +Small,6x6,hdr-rgb-00.hdr,23.9693,0.1288,0.0321,2.0393 +Small,6x6,ldr-rgb-00.png,31.6280,0.0296,0.0197,3.3203 +Small,6x6,ldr-rgb-01.png,32.9082,0.0248,0.0151,4.3378 +Small,6x6,ldr-rgb-02.png,27.4315,0.0328,0.0231,2.8345 +Small,6x6,ldr-rgb-03.png,40.5430,0.0142,0.0047,13.8904 +Small,6x6,ldr-rgb-04.png,33.9242,0.0217,0.0116,5.6356 +Small,6x6,ldr-rgb-05.png,29.9746,0.0372,0.0270,2.4267 +Small,6x6,ldr-rgb-06.png,27.4768,0.0331,0.0230,2.8453 +Small,6x6,ldr-rgb-07.png,33.2085,0.0288,0.0185,3.5427 +Small,6x6,ldr-rgb-08.png,37.8024,0.0170,0.0073,9.0133 +Small,6x6,ldr-rgb-09.png,33.4958,0.0224,0.0125,5.2601 +Small,6x6,ldr-rgb-10.png,36.6619,0.0104,0.0030,5.3968 +Small,6x6,ldr-rgba-00.png,29.4061,0.0359,0.0255,2.5653 +Small,6x6,ldr-rgba-01.png,32.0747,0.0247,0.0149,4.4103 +Small,6x6,ldr-rgba-02.png,27.8369,0.0321,0.0220,2.9788 +Small,6x6,ldr-xy-00.png,35.6760,0.0205,0.0084,7.8084 +Small,6x6,ldr-xy-01.png,36.9997,0.0232,0.0117,5.6163 +Small,6x6,ldr-xy-02.png,41.8793,0.0183,0.0063,10.4572 +Small,6x6,ldrs-rgba-00.png,29.4065,0.0362,0.0254,2.5759 +Small,6x6,ldrs-rgba-01.png,32.0806,0.0248,0.0149,4.3978 +Small,6x6,ldrs-rgba-02.png,27.8366,0.0326,0.0222,2.9521 +Small,8x8,hdr-rgb-00.hdr,21.3123,0.1430,0.0398,1.6452 +Small,8x8,ldr-rgb-00.png,27.9849,0.0373,0.0231,2.8347 +Small,8x8,ldr-rgb-01.png,28.7558,0.0322,0.0183,3.5759 +Small,8x8,ldr-rgb-02.png,23.0846,0.0443,0.0302,2.1736 +Small,8x8,ldr-rgb-03.png,37.2835,0.0191,0.0052,12.6276 +Small,8x8,ldr-rgb-04.png,29.3432,0.0300,0.0159,4.1181 +Small,8x8,ldr-rgb-05.png,25.8126,0.0479,0.0338,1.9399 +Small,8x8,ldr-rgb-06.png,23.1440,0.0440,0.0299,2.1952 +Small,8x8,ldr-rgb-07.png,29.8731,0.0305,0.0160,4.0953 +Small,8x8,ldr-rgb-08.png,34.3107,0.0225,0.0084,7.7658 +Small,8x8,ldr-rgb-09.png,28.6989,0.0310,0.0169,3.8854 +Small,8x8,ldr-rgb-10.png,32.0218,0.0156,0.0036,4.4648 +Small,8x8,ldr-rgba-00.png,24.9502,0.0440,0.0293,2.2363 +Small,8x8,ldr-rgba-01.png,28.2387,0.0322,0.0182,3.6028 +Small,8x8,ldr-rgba-02.png,23.9210,0.0440,0.0298,2.2002 +Small,8x8,ldr-xy-00.png,33.0501,0.0270,0.0110,5.9595 +Small,8x8,ldr-xy-01.png,34.1022,0.0274,0.0113,5.7981 +Small,8x8,ldr-xy-02.png,39.9066,0.0203,0.0042,15.4713 +Small,8x8,ldrs-rgba-00.png,24.9497,0.0439,0.0294,2.2322 +Small,8x8,ldrs-rgba-01.png,28.2412,0.0323,0.0181,3.6112 +Small,8x8,ldrs-rgba-02.png,23.9215,0.0439,0.0296,2.2138 +Small,12x12,hdr-rgb-00.hdr,18.6636,0.1630,0.0522,1.2556 +Small,12x12,ldr-rgb-00.png,23.7294,0.0384,0.0168,3.8896 +Small,12x12,ldr-rgb-01.png,24.7900,0.0337,0.0126,5.2212 +Small,12x12,ldr-rgb-02.png,19.2492,0.0570,0.0354,1.8497 +Small,12x12,ldr-rgb-03.png,33.2612,0.0248,0.0035,18.6979 +Small,12x12,ldr-rgb-04.png,24.5777,0.0345,0.0128,5.1312 +Small,12x12,ldr-rgb-05.png,21.4909,0.0499,0.0285,2.3021 +Small,12x12,ldr-rgb-06.png,19.2111,0.0583,0.0370,1.7727 +Small,12x12,ldr-rgb-07.png,25.3778,0.0323,0.0101,6.4810 +Small,12x12,ldr-rgb-08.png,30.0827,0.0272,0.0059,11.1967 +Small,12x12,ldr-rgb-09.png,23.7750,0.0390,0.0175,3.7526 +Small,12x12,ldr-rgb-10.png,27.3265,0.0231,0.0039,4.1809 +Small,12x12,ldr-rgba-00.png,21.1697,0.0480,0.0264,2.4795 +Small,12x12,ldr-rgba-01.png,24.4976,0.0358,0.0140,4.6719 +Small,12x12,ldr-rgba-02.png,20.2077,0.0584,0.0364,1.8016 +Small,12x12,ldr-xy-00.png,28.9886,0.0330,0.0093,7.0197 +Small,12x12,ldr-xy-01.png,30.7004,0.0313,0.0081,8.0609 +Small,12x12,ldr-xy-02.png,38.1291,0.0257,0.0025,26.3394 +Small,12x12,ldrs-rgba-00.png,21.1701,0.0482,0.0266,2.4683 +Small,12x12,ldrs-rgba-01.png,24.4991,0.0357,0.0139,4.7305 +Small,12x12,ldrs-rgba-02.png,20.2081,0.0586,0.0367,1.7835 +Small,3x3x3,ldr-l-00-3.dds,50.7904,0.0242,0.0147,17.8194 +Small,3x3x3,ldr-l-01-3.dds,53.8713,0.0133,0.0065,10.6161 +Small,6x6x6,ldr-l-00-3.dds,32.5329,0.0717,0.0436,6.0177 +Small,6x6x6,ldr-l-01-3.dds,40.7310,0.0440,0.0177,3.8844 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-avx2_fastest_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-avx2_fastest_results.csv new file mode 100644 index 0000000000..04c4b4c121 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-avx2_fastest_results.csv @@ -0,0 +1,110 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Small,4x4,hdr-rgb-00.hdr,30.9256,0.1137,0.0186,3.5325 +Small,4x4,ldr-rgb-00.png,36.6938,0.0165,0.0083,7.8683 +Small,4x4,ldr-rgb-01.png,39.3406,0.0155,0.0077,8.5387 +Small,4x4,ldr-rgb-02.png,34.6215,0.0193,0.0115,5.6933 +Small,4x4,ldr-rgb-03.png,45.0796,0.0114,0.0036,18.0888 +Small,4x4,ldr-rgb-04.png,41.6025,0.0140,0.0060,10.9776 +Small,4x4,ldr-rgb-05.png,36.3772,0.0192,0.0110,5.9438 +Small,4x4,ldr-rgb-06.png,34.6871,0.0191,0.0110,5.9752 +Small,4x4,ldr-rgb-07.png,36.6076,0.0190,0.0105,6.2221 +Small,4x4,ldr-rgb-08.png,42.1072,0.0125,0.0048,13.7274 +Small,4x4,ldr-rgb-09.png,41.6247,0.0141,0.0061,10.7031 +Small,4x4,ldr-rgb-10.png,43.8009,0.0081,0.0022,7.3157 +Small,4x4,ldr-rgba-00.png,34.2380,0.0190,0.0102,6.4031 +Small,4x4,ldr-rgba-01.png,38.4758,0.0171,0.0089,7.3852 +Small,4x4,ldr-rgba-02.png,34.5086,0.0208,0.0128,5.1368 +Small,4x4,ldr-xy-00.png,37.2480,0.0165,0.0062,10.6254 +Small,4x4,ldr-xy-01.png,42.7930,0.0167,0.0068,9.6577 +Small,4x4,ldr-xy-02.png,48.2109,0.0152,0.0050,13.1464 +Small,4x4,ldrs-rgba-00.png,34.2413,0.0189,0.0103,6.3572 +Small,4x4,ldrs-rgba-01.png,38.4921,0.0173,0.0093,7.0735 +Small,4x4,ldrs-rgba-02.png,34.5121,0.0208,0.0126,5.1987 +Small,5x5,hdr-rgb-00.hdr,25.0433,0.1167,0.0207,3.1613 +Small,5x5,ldr-rgb-00.png,33.4498,0.0177,0.0087,7.5036 +Small,5x5,ldr-rgb-01.png,35.9953,0.0162,0.0077,8.5223 +Small,5x5,ldr-rgb-02.png,30.8818,0.0204,0.0118,5.5478 +Small,5x5,ldr-rgb-03.png,42.2089,0.0121,0.0035,18.8311 +Small,5x5,ldr-rgb-04.png,36.9254,0.0157,0.0069,9.4652 +Small,5x5,ldr-rgb-05.png,32.5878,0.0215,0.0128,5.1060 +Small,5x5,ldr-rgb-06.png,30.8754,0.0203,0.0114,5.7524 +Small,5x5,ldr-rgb-07.png,33.8868,0.0195,0.0103,6.3554 +Small,5x5,ldr-rgb-08.png,39.1027,0.0131,0.0044,14.9797 +Small,5x5,ldr-rgb-09.png,36.9986,0.0155,0.0070,9.4069 +Small,5x5,ldr-rgb-10.png,39.7657,0.0085,0.0020,7.9606 +Small,5x5,ldr-rgba-00.png,30.6398,0.0207,0.0113,5.7767 +Small,5x5,ldr-rgba-01.png,34.9962,0.0184,0.0094,6.9565 +Small,5x5,ldr-rgba-02.png,31.0031,0.0234,0.0143,4.5939 +Small,5x5,ldr-xy-00.png,36.4225,0.0168,0.0057,11.5219 +Small,5x5,ldr-xy-01.png,38.7019,0.0170,0.0063,10.4073 +Small,5x5,ldr-xy-02.png,43.7300,0.0163,0.0055,11.9419 +Small,5x5,ldrs-rgba-00.png,30.6423,0.0211,0.0120,5.4650 +Small,5x5,ldrs-rgba-01.png,35.0029,0.0183,0.0091,7.1704 +Small,5x5,ldrs-rgba-02.png,31.0043,0.0230,0.0139,4.7040 +Small,6x6,hdr-rgb-00.hdr,23.2564,0.1185,0.0213,3.0809 +Small,6x6,ldr-rgb-00.png,31.1285,0.0199,0.0103,6.3479 +Small,6x6,ldr-rgb-01.png,32.8102,0.0184,0.0089,7.3248 +Small,6x6,ldr-rgb-02.png,27.3453,0.0236,0.0141,4.6542 +Small,6x6,ldr-rgb-03.png,40.2487,0.0124,0.0035,18.6446 +Small,6x6,ldr-rgb-04.png,33.7491,0.0175,0.0081,8.0572 +Small,6x6,ldr-rgb-05.png,29.5567,0.0245,0.0152,4.3119 +Small,6x6,ldr-rgb-06.png,27.3887,0.0236,0.0141,4.6456 +Small,6x6,ldr-rgb-07.png,32.1704,0.0211,0.0112,5.8546 +Small,6x6,ldr-rgb-08.png,37.0701,0.0139,0.0047,13.8940 +Small,6x6,ldr-rgb-09.png,33.3175,0.0171,0.0078,8.3935 +Small,6x6,ldr-rgb-10.png,36.5014,0.0094,0.0024,6.6839 +Small,6x6,ldr-rgba-00.png,28.1929,0.0228,0.0126,5.1836 +Small,6x6,ldr-rgba-01.png,31.9802,0.0194,0.0101,6.4912 +Small,6x6,ldr-rgba-02.png,27.7658,0.0245,0.0151,4.3416 +Small,6x6,ldr-xy-00.png,35.5985,0.0173,0.0057,11.4494 +Small,6x6,ldr-xy-01.png,35.8414,0.0182,0.0071,9.1696 +Small,6x6,ldr-xy-02.png,41.7468,0.0160,0.0046,14.3787 +Small,6x6,ldrs-rgba-00.png,28.1946,0.0230,0.0133,4.9172 +Small,6x6,ldrs-rgba-01.png,31.9873,0.0194,0.0098,6.6840 +Small,6x6,ldrs-rgba-02.png,27.7644,0.0240,0.0145,4.5272 +Small,8x8,hdr-rgb-00.hdr,21.1675,0.1307,0.0292,2.2406 +Small,8x8,ldr-rgb-00.png,27.5822,0.0283,0.0147,4.4510 +Small,8x8,ldr-rgb-01.png,28.6701,0.0266,0.0133,4.9320 +Small,8x8,ldr-rgb-02.png,23.0159,0.0344,0.0211,3.0994 +Small,8x8,ldr-rgb-03.png,37.0512,0.0174,0.0045,14.5024 +Small,8x8,ldr-rgb-04.png,29.1157,0.0253,0.0117,5.6196 +Small,8x8,ldr-rgb-05.png,25.5532,0.0349,0.0213,3.0819 +Small,8x8,ldr-rgb-06.png,23.0482,0.0348,0.0211,3.1038 +Small,8x8,ldr-rgb-07.png,29.6000,0.0255,0.0115,5.7138 +Small,8x8,ldr-rgb-08.png,33.9070,0.0195,0.0059,11.1875 +Small,8x8,ldr-rgb-09.png,28.4838,0.0249,0.0114,5.7508 +Small,8x8,ldr-rgb-10.png,31.9020,0.0142,0.0031,5.3056 +Small,8x8,ldr-rgba-00.png,24.4867,0.0328,0.0188,3.4882 +Small,8x8,ldr-rgba-01.png,28.1329,0.0268,0.0133,4.9142 +Small,8x8,ldr-rgba-02.png,23.8668,0.0348,0.0213,3.0825 +Small,8x8,ldr-xy-00.png,33.1332,0.0240,0.0084,7.8270 +Small,8x8,ldr-xy-01.png,33.8000,0.0241,0.0091,7.1811 +Small,8x8,ldr-xy-02.png,39.8128,0.0192,0.0035,18.4929 +Small,8x8,ldrs-rgba-00.png,24.4866,0.0326,0.0188,3.4901 +Small,8x8,ldrs-rgba-01.png,28.1351,0.0269,0.0135,4.8423 +Small,8x8,ldrs-rgba-02.png,23.8664,0.0346,0.0209,3.1429 +Small,12x12,hdr-rgb-00.hdr,18.5871,0.1439,0.0359,1.8272 +Small,12x12,ldr-rgb-00.png,23.6269,0.0309,0.0118,5.5728 +Small,12x12,ldr-rgb-01.png,24.7328,0.0279,0.0089,7.3422 +Small,12x12,ldr-rgb-02.png,19.2129,0.0431,0.0240,2.7260 +Small,12x12,ldr-rgb-03.png,33.1483,0.0219,0.0034,19.0517 +Small,12x12,ldr-rgb-04.png,24.4225,0.0281,0.0093,7.0538 +Small,12x12,ldr-rgb-05.png,21.3937,0.0377,0.0187,3.5106 +Small,12x12,ldr-rgb-06.png,19.1624,0.0448,0.0257,2.5515 +Small,12x12,ldr-rgb-07.png,25.2980,0.0277,0.0077,8.5146 +Small,12x12,ldr-rgb-08.png,29.9138,0.0238,0.0046,14.3248 +Small,12x12,ldr-rgb-09.png,23.6639,0.0316,0.0126,5.2000 +Small,12x12,ldr-rgb-10.png,27.2791,0.0197,0.0032,5.1023 +Small,12x12,ldr-rgba-00.png,21.0528,0.0378,0.0183,3.5753 +Small,12x12,ldr-rgba-01.png,24.4407,0.0297,0.0107,6.1490 +Small,12x12,ldr-rgba-02.png,20.1732,0.0451,0.0255,2.5680 +Small,12x12,ldr-xy-00.png,28.7111,0.0287,0.0072,9.1291 +Small,12x12,ldr-xy-01.png,29.8021,0.0273,0.0066,9.8984 +Small,12x12,ldr-xy-02.png,38.1145,0.0231,0.0023,28.5054 +Small,12x12,ldrs-rgba-00.png,21.0534,0.0381,0.0188,3.4835 +Small,12x12,ldrs-rgba-01.png,24.4416,0.0298,0.0108,6.0677 +Small,12x12,ldrs-rgba-02.png,20.1731,0.0451,0.0259,2.5345 +Small,3x3x3,ldr-l-00-3.dds,50.6609,0.0232,0.0138,18.9274 +Small,3x3x3,ldr-l-01-3.dds,53.8054,0.0127,0.0057,12.1706 +Small,6x6x6,ldr-l-00-3.dds,32.5176,0.0707,0.0426,6.1527 +Small,6x6x6,ldr-l-01-3.dds,40.7290,0.0437,0.0179,3.8577 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-avx2_medium_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-avx2_medium_results.csv new file mode 100644 index 0000000000..03ffeb2327 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-avx2_medium_results.csv @@ -0,0 +1,110 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Small,4x4,hdr-rgb-00.hdr,32.4307,0.1350,0.0395,1.6588 +Small,4x4,ldr-rgb-00.png,38.6985,0.0474,0.0389,1.6838 +Small,4x4,ldr-rgb-01.png,40.1183,0.0433,0.0351,1.8693 +Small,4x4,ldr-rgb-02.png,35.2059,0.0433,0.0352,1.8601 +Small,4x4,ldr-rgb-03.png,47.0764,0.0281,0.0202,3.2473 +Small,4x4,ldr-rgb-04.png,42.1384,0.0364,0.0281,2.3315 +Small,4x4,ldr-rgb-05.png,37.7480,0.0487,0.0403,1.6257 +Small,4x4,ldr-rgb-06.png,35.3504,0.0390,0.0305,2.1475 +Small,4x4,ldr-rgb-07.png,38.8920,0.0552,0.0465,1.4082 +Small,4x4,ldr-rgb-08.png,44.8397,0.0313,0.0232,2.8236 +Small,4x4,ldr-rgb-09.png,42.0738,0.0375,0.0291,2.2484 +Small,4x4,ldr-rgb-10.png,44.8740,0.0107,0.0049,3.3142 +Small,4x4,ldr-rgba-00.png,36.2304,0.0527,0.0440,1.4893 +Small,4x4,ldr-rgba-01.png,38.8996,0.0345,0.0261,2.5109 +Small,4x4,ldr-rgba-02.png,34.9204,0.0376,0.0290,2.2597 +Small,4x4,ldr-xy-00.png,37.6117,0.0371,0.0266,2.4608 +Small,4x4,ldr-xy-01.png,44.7095,0.0486,0.0387,1.6923 +Small,4x4,ldr-xy-02.png,50.8950,0.0557,0.0453,1.4466 +Small,4x4,ldrs-rgba-00.png,36.2375,0.0530,0.0443,1.4809 +Small,4x4,ldrs-rgba-01.png,38.9148,0.0346,0.0261,2.5081 +Small,4x4,ldrs-rgba-02.png,34.9261,0.0374,0.0290,2.2612 +Small,5x5,hdr-rgb-00.hdr,26.6504,0.1430,0.0472,1.3889 +Small,5x5,ldr-rgb-00.png,35.0601,0.0537,0.0439,1.4935 +Small,5x5,ldr-rgb-01.png,36.3948,0.0432,0.0340,1.9253 +Small,5x5,ldr-rgb-02.png,31.0692,0.0452,0.0357,1.8359 +Small,5x5,ldr-rgb-03.png,43.8060,0.0218,0.0125,5.2631 +Small,5x5,ldr-rgb-04.png,37.6714,0.0397,0.0301,2.1769 +Small,5x5,ldr-rgb-05.png,33.5067,0.0597,0.0502,1.3055 +Small,5x5,ldr-rgb-06.png,31.0849,0.0422,0.0327,2.0048 +Small,5x5,ldr-rgb-07.png,35.7129,0.0607,0.0509,1.2874 +Small,5x5,ldr-rgb-08.png,41.3215,0.0303,0.0209,3.1420 +Small,5x5,ldr-rgb-09.png,37.5962,0.0384,0.0291,2.2541 +Small,5x5,ldr-rgb-10.png,40.5078,0.0131,0.0061,2.6531 +Small,5x5,ldr-rgba-00.png,32.7508,0.0648,0.0549,1.1935 +Small,5x5,ldr-rgba-01.png,35.2808,0.0393,0.0298,2.2016 +Small,5x5,ldr-rgba-02.png,31.1277,0.0448,0.0351,1.8670 +Small,5x5,ldr-xy-00.png,37.0388,0.0354,0.0241,2.7226 +Small,5x5,ldr-xy-01.png,40.3190,0.0460,0.0348,1.8807 +Small,5x5,ldr-xy-02.png,49.0279,0.0366,0.0249,2.6306 +Small,5x5,ldrs-rgba-00.png,32.7532,0.0642,0.0542,1.2082 +Small,5x5,ldrs-rgba-01.png,35.2889,0.0395,0.0300,2.1824 +Small,5x5,ldrs-rgba-02.png,31.1281,0.0455,0.0355,1.8445 +Small,6x6,hdr-rgb-00.hdr,24.7388,0.1496,0.0512,1.2789 +Small,6x6,ldr-rgb-00.png,32.3948,0.0586,0.0480,1.3659 +Small,6x6,ldr-rgb-01.png,33.1016,0.0496,0.0390,1.6790 +Small,6x6,ldr-rgb-02.png,27.4630,0.0548,0.0444,1.4763 +Small,6x6,ldr-rgb-03.png,41.7312,0.0206,0.0105,6.2593 +Small,6x6,ldr-rgb-04.png,34.2209,0.0445,0.0338,1.9399 +Small,6x6,ldr-rgb-05.png,30.1623,0.0689,0.0583,1.1244 +Small,6x6,ldr-rgb-06.png,27.5200,0.0538,0.0430,1.5234 +Small,6x6,ldr-rgb-07.png,34.1039,0.0654,0.0545,1.2032 +Small,6x6,ldr-rgb-08.png,39.2052,0.0292,0.0184,3.5652 +Small,6x6,ldr-rgb-09.png,33.7008,0.0438,0.0334,1.9634 +Small,6x6,ldr-rgb-10.png,36.9385,0.0147,0.0064,2.5266 +Small,6x6,ldr-rgba-00.png,30.2075,0.0713,0.0603,1.0860 +Small,6x6,ldr-rgba-01.png,32.1924,0.0419,0.0310,2.1115 +Small,6x6,ldr-rgba-02.png,27.8504,0.0505,0.0398,1.6475 +Small,6x6,ldr-xy-00.png,36.0420,0.0337,0.0213,3.0830 +Small,6x6,ldr-xy-01.png,37.5902,0.0384,0.0257,2.5485 +Small,6x6,ldr-xy-02.png,45.9866,0.0304,0.0179,3.6659 +Small,6x6,ldrs-rgba-00.png,30.2087,0.0716,0.0605,1.0831 +Small,6x6,ldrs-rgba-01.png,32.1983,0.0417,0.0311,2.1069 +Small,6x6,ldrs-rgba-02.png,27.8504,0.0505,0.0397,1.6494 +Small,8x8,hdr-rgb-00.hdr,21.5514,0.1638,0.0610,1.0744 +Small,8x8,ldr-rgb-00.png,28.7378,0.0778,0.0617,1.0619 +Small,8x8,ldr-rgb-01.png,28.9290,0.0631,0.0479,1.3692 +Small,8x8,ldr-rgb-02.png,23.1458,0.0716,0.0563,1.1635 +Small,8x8,ldr-rgb-03.png,38.5923,0.0267,0.0117,5.6091 +Small,8x8,ldr-rgb-04.png,29.6540,0.0591,0.0433,1.5142 +Small,8x8,ldr-rgb-05.png,25.9366,0.0799,0.0646,1.0142 +Small,8x8,ldr-rgb-06.png,23.1913,0.0720,0.0562,1.1657 +Small,8x8,ldr-rgb-07.png,30.8126,0.0746,0.0590,1.1114 +Small,8x8,ldr-rgb-08.png,35.8673,0.0355,0.0201,3.2532 +Small,8x8,ldr-rgb-09.png,29.0427,0.0560,0.0406,1.6138 +Small,8x8,ldr-rgb-10.png,32.1979,0.0218,0.0084,1.9299 +Small,8x8,ldr-rgba-00.png,26.1494,0.0862,0.0701,0.9343 +Small,8x8,ldr-rgba-01.png,28.3397,0.0527,0.0372,1.7639 +Small,8x8,ldr-rgba-02.png,23.9327,0.0694,0.0542,1.2098 +Small,8x8,ldr-xy-00.png,33.9859,0.0477,0.0297,2.2089 +Small,8x8,ldr-xy-01.png,34.7191,0.0452,0.0281,2.3342 +Small,8x8,ldr-xy-02.png,41.6941,0.0351,0.0176,3.7163 +Small,8x8,ldrs-rgba-00.png,26.1504,0.0864,0.0708,0.9261 +Small,8x8,ldrs-rgba-01.png,28.3428,0.0532,0.0377,1.7366 +Small,8x8,ldrs-rgba-02.png,23.9331,0.0699,0.0545,1.2020 +Small,12x12,hdr-rgb-00.hdr,18.8112,0.1944,0.0801,0.8179 +Small,12x12,ldr-rgb-00.png,24.6026,0.0891,0.0641,1.0231 +Small,12x12,ldr-rgb-01.png,25.0675,0.0858,0.0615,1.0654 +Small,12x12,ldr-rgb-02.png,19.2867,0.1056,0.0811,0.8076 +Small,12x12,ldr-rgb-03.png,34.9324,0.0371,0.0129,5.0642 +Small,12x12,ldr-rgb-04.png,24.9396,0.0756,0.0515,1.2724 +Small,12x12,ldr-rgb-05.png,21.6355,0.1050,0.0808,0.8114 +Small,12x12,ldr-rgb-06.png,19.2384,0.0994,0.0748,0.8756 +Small,12x12,ldr-rgb-07.png,26.6712,0.0800,0.0545,1.2025 +Small,12x12,ldr-rgb-08.png,31.3688,0.0446,0.0202,3.2413 +Small,12x12,ldr-rgb-09.png,24.2186,0.0761,0.0521,1.2574 +Small,12x12,ldr-rgb-10.png,28.0060,0.0378,0.0158,1.0263 +Small,12x12,ldr-rgba-00.png,21.7824,0.0940,0.0691,0.9489 +Small,12x12,ldr-rgba-01.png,24.6195,0.0678,0.0430,1.5244 +Small,12x12,ldr-rgba-02.png,20.2128,0.1012,0.0763,0.8586 +Small,12x12,ldr-xy-00.png,29.6851,0.0585,0.0320,2.0469 +Small,12x12,ldr-xy-01.png,31.6726,0.0578,0.0316,2.0739 +Small,12x12,ldr-xy-02.png,38.5322,0.0340,0.0080,8.1431 +Small,12x12,ldrs-rgba-00.png,21.7824,0.0942,0.0693,0.9461 +Small,12x12,ldrs-rgba-01.png,24.6214,0.0685,0.0437,1.5010 +Small,12x12,ldrs-rgba-02.png,20.2131,0.1014,0.0766,0.8558 +Small,3x3x3,ldr-l-00-3.dds,51.9633,0.0319,0.0224,11.6825 +Small,3x3x3,ldr-l-01-3.dds,54.3643,0.0137,0.0065,10.6804 +Small,6x6x6,ldr-l-00-3.dds,32.9606,0.0862,0.0580,4.5200 +Small,6x6x6,ldr-l-01-3.dds,40.8516,0.0440,0.0184,3.7465 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-avx2_thorough_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-avx2_thorough_results.csv new file mode 100644 index 0000000000..1f6514ec22 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-avx2_thorough_results.csv @@ -0,0 +1,110 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Small,4x4,hdr-rgb-00.hdr,32.5528,0.1716,0.0757,0.8660 +Small,4x4,ldr-rgb-00.png,39.1080,0.0898,0.0812,0.8070 +Small,4x4,ldr-rgb-01.png,40.3320,0.0882,0.0801,0.8183 +Small,4x4,ldr-rgb-02.png,35.3607,0.0805,0.0723,0.9066 +Small,4x4,ldr-rgb-03.png,47.6667,0.0833,0.0751,0.8721 +Small,4x4,ldr-rgb-04.png,42.3048,0.0799,0.0715,0.9164 +Small,4x4,ldr-rgb-05.png,37.9487,0.0936,0.0852,0.7689 +Small,4x4,ldr-rgb-06.png,35.4842,0.0740,0.0656,0.9988 +Small,4x4,ldr-rgb-07.png,39.7534,0.1011,0.0921,0.7113 +Small,4x4,ldr-rgb-08.png,45.6979,0.0791,0.0707,0.9272 +Small,4x4,ldr-rgb-09.png,42.2292,0.0845,0.0761,0.8617 +Small,4x4,ldr-rgb-10.png,44.9858,0.0160,0.0100,1.6214 +Small,4x4,ldr-rgba-00.png,36.7410,0.0936,0.0848,0.7726 +Small,4x4,ldr-rgba-01.png,39.0312,0.0803,0.0718,0.9126 +Small,4x4,ldr-rgba-02.png,34.9861,0.0760,0.0675,0.9703 +Small,4x4,ldr-xy-00.png,37.6609,0.1003,0.0900,0.7284 +Small,4x4,ldr-xy-01.png,44.9219,0.1042,0.0945,0.6936 +Small,4x4,ldr-xy-02.png,50.9725,0.1242,0.1138,0.5758 +Small,4x4,ldrs-rgba-00.png,36.7485,0.0947,0.0856,0.7653 +Small,4x4,ldrs-rgba-01.png,39.0531,0.0805,0.0719,0.9109 +Small,4x4,ldrs-rgba-02.png,34.9909,0.0764,0.0678,0.9671 +Small,5x5,hdr-rgb-00.hdr,27.4704,0.1803,0.0825,0.7941 +Small,5x5,ldr-rgb-00.png,35.3302,0.1043,0.0943,0.6946 +Small,5x5,ldr-rgb-01.png,36.5029,0.0986,0.0894,0.7334 +Small,5x5,ldr-rgb-02.png,31.1210,0.0926,0.0833,0.7867 +Small,5x5,ldr-rgb-03.png,44.4794,0.0924,0.0831,0.7886 +Small,5x5,ldr-rgb-04.png,37.8285,0.0917,0.0822,0.7977 +Small,5x5,ldr-rgb-05.png,33.6601,0.1069,0.0975,0.6724 +Small,5x5,ldr-rgb-06.png,31.1230,0.0884,0.0787,0.8323 +Small,5x5,ldr-rgb-07.png,36.6472,0.1174,0.1075,0.6099 +Small,5x5,ldr-rgb-08.png,42.2544,0.0872,0.0779,0.8411 +Small,5x5,ldr-rgb-09.png,37.6965,0.0968,0.0874,0.7499 +Small,5x5,ldr-rgb-10.png,40.7181,0.0202,0.0130,1.2509 +Small,5x5,ldr-rgba-00.png,33.1222,0.1093,0.0994,0.6592 +Small,5x5,ldr-rgba-01.png,35.3522,0.0928,0.0830,0.7895 +Small,5x5,ldr-rgba-02.png,31.1618,0.0916,0.0819,0.8003 +Small,5x5,ldr-xy-00.png,37.1024,0.0988,0.0874,0.7498 +Small,5x5,ldr-xy-01.png,41.0349,0.1202,0.1086,0.6032 +Small,5x5,ldr-xy-02.png,49.2182,0.1328,0.1211,0.5414 +Small,5x5,ldrs-rgba-00.png,33.1252,0.1119,0.1018,0.6440 +Small,5x5,ldrs-rgba-01.png,35.3599,0.0935,0.0838,0.7820 +Small,5x5,ldrs-rgba-02.png,31.1624,0.0920,0.0822,0.7976 +Small,6x6,hdr-rgb-00.hdr,24.8413,0.1873,0.0903,0.7261 +Small,6x6,ldr-rgb-00.png,32.6529,0.1201,0.1093,0.5999 +Small,6x6,ldr-rgb-01.png,33.1791,0.1148,0.1043,0.6284 +Small,6x6,ldr-rgb-02.png,27.4976,0.1107,0.0999,0.6559 +Small,6x6,ldr-rgb-03.png,42.5366,0.0777,0.0672,0.9754 +Small,6x6,ldr-rgb-04.png,34.3450,0.1092,0.0984,0.6658 +Small,6x6,ldr-rgb-05.png,30.2857,0.1241,0.1134,0.5778 +Small,6x6,ldr-rgb-06.png,27.5562,0.1079,0.0971,0.6750 +Small,6x6,ldr-rgb-07.png,34.4288,0.1292,0.1182,0.5545 +Small,6x6,ldr-rgb-08.png,39.9093,0.0758,0.0653,1.0036 +Small,6x6,ldr-rgb-09.png,33.8264,0.1060,0.0953,0.6874 +Small,6x6,ldr-rgb-10.png,37.1203,0.0246,0.0160,1.0138 +Small,6x6,ldr-rgba-00.png,30.4893,0.1258,0.1146,0.5719 +Small,6x6,ldr-rgba-01.png,32.2510,0.1059,0.0948,0.6910 +Small,6x6,ldr-rgba-02.png,27.8850,0.1083,0.0973,0.6735 +Small,6x6,ldr-xy-00.png,36.1615,0.0792,0.0666,0.9847 +Small,6x6,ldr-xy-01.png,37.9286,0.1111,0.0988,0.6633 +Small,6x6,ldr-xy-02.png,47.3977,0.1377,0.1249,0.5247 +Small,6x6,ldrs-rgba-00.png,30.4904,0.1274,0.1163,0.5634 +Small,6x6,ldrs-rgba-01.png,32.2574,0.1062,0.0954,0.6869 +Small,6x6,ldrs-rgba-02.png,27.8842,0.1083,0.0970,0.6756 +Small,8x8,hdr-rgb-00.hdr,21.7833,0.2082,0.1054,0.6218 +Small,8x8,ldr-rgb-00.png,28.9664,0.1452,0.1293,0.5070 +Small,8x8,ldr-rgb-01.png,29.0055,0.1360,0.1204,0.5445 +Small,8x8,ldr-rgb-02.png,23.1782,0.1396,0.1240,0.5283 +Small,8x8,ldr-rgb-03.png,39.4493,0.0506,0.0354,1.8536 +Small,8x8,ldr-rgb-04.png,29.7729,0.1259,0.1102,0.5949 +Small,8x8,ldr-rgb-05.png,26.0315,0.1438,0.1279,0.5124 +Small,8x8,ldr-rgb-06.png,23.2332,0.1384,0.1224,0.5352 +Small,8x8,ldr-rgb-07.png,31.1596,0.1418,0.1259,0.5206 +Small,8x8,ldr-rgb-08.png,36.5135,0.0725,0.0569,1.1515 +Small,8x8,ldr-rgb-09.png,29.1942,0.1078,0.0921,0.7117 +Small,8x8,ldr-rgb-10.png,32.3486,0.0331,0.0199,0.8161 +Small,8x8,ldr-rgba-00.png,26.5009,0.1515,0.1351,0.4851 +Small,8x8,ldr-rgba-01.png,28.3965,0.1195,0.1026,0.6385 +Small,8x8,ldr-rgba-02.png,23.9603,0.1281,0.1119,0.5857 +Small,8x8,ldr-xy-00.png,34.0892,0.0879,0.0703,0.9319 +Small,8x8,ldr-xy-01.png,34.9260,0.0892,0.0712,0.9203 +Small,8x8,ldr-xy-02.png,44.4817,0.1142,0.0964,0.6798 +Small,8x8,ldrs-rgba-00.png,26.5026,0.1509,0.1348,0.4861 +Small,8x8,ldrs-rgba-01.png,28.3995,0.1195,0.1032,0.6348 +Small,8x8,ldrs-rgba-02.png,23.9598,0.1283,0.1126,0.5820 +Small,12x12,hdr-rgb-00.hdr,18.9081,0.2487,0.1362,0.4812 +Small,12x12,ldr-rgb-00.png,24.9670,0.1798,0.1543,0.4248 +Small,12x12,ldr-rgb-01.png,25.1725,0.1615,0.1364,0.4803 +Small,12x12,ldr-rgb-02.png,19.3142,0.1883,0.1625,0.4033 +Small,12x12,ldr-rgb-03.png,36.1690,0.0585,0.0336,1.9531 +Small,12x12,ldr-rgb-04.png,25.0348,0.1584,0.1330,0.4928 +Small,12x12,ldr-rgb-05.png,21.7300,0.1797,0.1543,0.4247 +Small,12x12,ldr-rgb-06.png,19.2768,0.1813,0.1560,0.4202 +Small,12x12,ldr-rgb-07.png,27.0734,0.1616,0.1357,0.4828 +Small,12x12,ldr-rgb-08.png,32.2423,0.0774,0.0522,1.2544 +Small,12x12,ldr-rgb-09.png,24.4517,0.1505,0.1254,0.5228 +Small,12x12,ldr-rgb-10.png,28.1777,0.0522,0.0296,0.5489 +Small,12x12,ldr-rgba-00.png,22.2801,0.1759,0.1501,0.4367 +Small,12x12,ldr-rgba-01.png,24.7162,0.1260,0.1005,0.6521 +Small,12x12,ldr-rgba-02.png,20.2326,0.1602,0.1347,0.4864 +Small,12x12,ldr-xy-00.png,30.3073,0.1122,0.0847,0.7742 +Small,12x12,ldr-xy-01.png,32.1323,0.0857,0.0587,1.1173 +Small,12x12,ldr-xy-02.png,40.2419,0.0682,0.0408,1.6076 +Small,12x12,ldrs-rgba-00.png,22.2801,0.1773,0.1513,0.4331 +Small,12x12,ldrs-rgba-01.png,24.7180,0.1259,0.1004,0.6530 +Small,12x12,ldrs-rgba-02.png,20.2327,0.1615,0.1360,0.4819 +Small,3x3x3,ldr-l-00-3.dds,52.4282,0.0620,0.0525,4.9966 +Small,3x3x3,ldr-l-01-3.dds,55.4466,0.0280,0.0208,3.3201 +Small,6x6x6,ldr-l-00-3.dds,33.2662,0.1181,0.0897,2.9220 +Small,6x6x6,ldr-l-01-3.dds,41.5787,0.0457,0.0199,3.4651 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse2_fast_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse2_fast_results.csv new file mode 100644 index 0000000000..811d18edd5 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse2_fast_results.csv @@ -0,0 +1,110 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Small,4x4,hdr-rgb-00.hdr,31.4784,0.1359,0.0321,2.0440 +Small,4x4,ldr-rgb-00.png,38.0904,0.0267,0.0183,3.5875 +Small,4x4,ldr-rgb-01.png,39.8001,0.0237,0.0156,4.1975 +Small,4x4,ldr-rgb-02.png,35.0327,0.0337,0.0255,2.5733 +Small,4x4,ldr-rgb-03.png,45.9660,0.0136,0.0058,11.3072 +Small,4x4,ldr-rgb-04.png,41.9046,0.0193,0.0110,5.9824 +Small,4x4,ldr-rgb-05.png,37.1767,0.0325,0.0242,2.7042 +Small,4x4,ldr-rgb-06.png,35.2077,0.0320,0.0237,2.7683 +Small,4x4,ldr-rgb-07.png,37.9946,0.0340,0.0254,2.5785 +Small,4x4,ldr-rgb-08.png,43.6044,0.0173,0.0091,7.1914 +Small,4x4,ldr-rgb-09.png,41.8518,0.0195,0.0113,5.8089 +Small,4x4,ldr-rgb-10.png,44.3436,0.0089,0.0031,5.2920 +Small,4x4,ldr-rgba-00.png,35.5159,0.0329,0.0242,2.7118 +Small,4x4,ldr-rgba-01.png,38.7948,0.0237,0.0153,4.2938 +Small,4x4,ldr-rgba-02.png,34.8314,0.0301,0.0217,3.0243 +Small,4x4,ldr-xy-00.png,37.3667,0.0216,0.0109,5.9966 +Small,4x4,ldr-xy-01.png,43.8571,0.0229,0.0127,5.1494 +Small,4x4,ldr-xy-02.png,48.2127,0.0180,0.0076,8.5940 +Small,4x4,ldrs-rgba-00.png,35.5232,0.0332,0.0245,2.6727 +Small,4x4,ldrs-rgba-01.png,38.8139,0.0240,0.0155,4.2235 +Small,4x4,ldrs-rgba-02.png,34.8369,0.0303,0.0219,2.9943 +Small,5x5,hdr-rgb-00.hdr,25.7149,0.1434,0.0391,1.6761 +Small,5x5,ldr-rgb-00.png,34.2754,0.0288,0.0196,3.3443 +Small,5x5,ldr-rgb-01.png,36.1752,0.0231,0.0141,4.6473 +Small,5x5,ldr-rgb-02.png,31.0230,0.0324,0.0233,2.8133 +Small,5x5,ldr-rgb-03.png,42.5699,0.0139,0.0052,12.6684 +Small,5x5,ldr-rgb-04.png,37.2518,0.0210,0.0119,5.5138 +Small,5x5,ldr-rgb-05.png,33.1162,0.0366,0.0275,2.3798 +Small,5x5,ldr-rgb-06.png,31.0304,0.0319,0.0227,2.8838 +Small,5x5,ldr-rgb-07.png,34.5142,0.0311,0.0217,3.0222 +Small,5x5,ldr-rgb-08.png,39.8113,0.0170,0.0080,8.1644 +Small,5x5,ldr-rgb-09.png,37.2919,0.0212,0.0122,5.3591 +Small,5x5,ldr-rgb-10.png,40.1485,0.0097,0.0030,5.4717 +Small,5x5,ldr-rgba-00.png,32.0068,0.0380,0.0285,2.3002 +Small,5x5,ldr-rgba-01.png,35.1483,0.0260,0.0168,3.9028 +Small,5x5,ldr-rgba-02.png,31.1092,0.0348,0.0255,2.5719 +Small,5x5,ldr-xy-00.png,36.6735,0.0212,0.0097,6.7514 +Small,5x5,ldr-xy-01.png,39.4750,0.0228,0.0120,5.4814 +Small,5x5,ldr-xy-02.png,43.9474,0.0196,0.0082,7.9844 +Small,5x5,ldrs-rgba-00.png,32.0093,0.0382,0.0287,2.2863 +Small,5x5,ldrs-rgba-01.png,35.1561,0.0261,0.0168,3.8926 +Small,5x5,ldrs-rgba-02.png,31.1099,0.0350,0.0257,2.5532 +Small,6x6,hdr-rgb-00.hdr,23.9693,0.1508,0.0443,1.4804 +Small,6x6,ldr-rgb-00.png,31.6280,0.0371,0.0269,2.4362 +Small,6x6,ldr-rgb-01.png,32.9082,0.0305,0.0206,3.1769 +Small,6x6,ldr-rgb-02.png,27.4315,0.0433,0.0332,1.9712 +Small,6x6,ldr-rgb-03.png,40.5430,0.0158,0.0061,10.7492 +Small,6x6,ldr-rgb-04.png,33.9242,0.0266,0.0164,4.0044 +Small,6x6,ldr-rgb-05.png,29.9746,0.0492,0.0390,1.6824 +Small,6x6,ldr-rgb-06.png,27.4768,0.0435,0.0331,1.9809 +Small,6x6,ldr-rgb-07.png,33.2085,0.0363,0.0258,2.5415 +Small,6x6,ldr-rgb-08.png,37.8024,0.0194,0.0095,6.8876 +Small,6x6,ldr-rgb-09.png,33.4958,0.0272,0.0173,3.7926 +Small,6x6,ldr-rgb-10.png,36.6619,0.0114,0.0037,4.3816 +Small,6x6,ldr-rgba-00.png,29.4061,0.0464,0.0358,1.8331 +Small,6x6,ldr-rgba-01.png,32.0747,0.0307,0.0204,3.2050 +Small,6x6,ldr-rgba-02.png,27.8369,0.0423,0.0320,2.0473 +Small,6x6,ldr-xy-00.png,35.6760,0.0241,0.0118,5.5521 +Small,6x6,ldr-xy-01.png,36.9997,0.0301,0.0182,3.5975 +Small,6x6,ldr-xy-02.png,41.8793,0.0213,0.0089,7.3635 +Small,6x6,ldrs-rgba-00.png,29.4065,0.0484,0.0378,1.7326 +Small,6x6,ldrs-rgba-01.png,32.0806,0.0345,0.0242,2.7037 +Small,6x6,ldrs-rgba-02.png,27.8366,0.0456,0.0352,1.8631 +Small,8x8,hdr-rgb-00.hdr,21.3123,0.1657,0.0562,1.1659 +Small,8x8,ldr-rgb-00.png,27.9849,0.0475,0.0328,1.9955 +Small,8x8,ldr-rgb-01.png,28.7558,0.0405,0.0262,2.5002 +Small,8x8,ldr-rgb-02.png,23.0846,0.0583,0.0439,1.4920 +Small,8x8,ldr-rgb-03.png,37.2835,0.0204,0.0067,9.8034 +Small,8x8,ldr-rgb-04.png,29.3432,0.0372,0.0228,2.8796 +Small,8x8,ldr-rgb-05.png,25.8126,0.0635,0.0490,1.3367 +Small,8x8,ldr-rgb-06.png,23.1440,0.0585,0.0439,1.4934 +Small,8x8,ldr-rgb-07.png,29.8731,0.0371,0.0222,2.9576 +Small,8x8,ldr-rgb-08.png,34.3107,0.0259,0.0114,5.7296 +Small,8x8,ldr-rgb-09.png,28.6989,0.0389,0.0244,2.6810 +Small,8x8,ldr-rgb-10.png,32.0218,0.0166,0.0045,3.5752 +Small,8x8,ldr-rgba-00.png,24.9502,0.0573,0.0422,1.5527 +Small,8x8,ldr-rgba-01.png,28.2387,0.0402,0.0255,2.5708 +Small,8x8,ldr-rgba-02.png,23.9210,0.0578,0.0430,1.5244 +Small,8x8,ldr-xy-00.png,33.0501,0.0310,0.0141,4.6463 +Small,8x8,ldr-xy-01.png,34.1022,0.0325,0.0160,4.0896 +Small,8x8,ldr-xy-02.png,39.9066,0.0216,0.0049,13.2471 +Small,8x8,ldrs-rgba-00.png,24.9497,0.0575,0.0426,1.5381 +Small,8x8,ldrs-rgba-01.png,28.2412,0.0405,0.0258,2.5373 +Small,8x8,ldrs-rgba-02.png,23.9215,0.0580,0.0433,1.5138 +Small,12x12,hdr-rgb-00.hdr,18.6636,0.1914,0.0741,0.8842 +Small,12x12,ldr-rgb-00.png,23.7294,0.0452,0.0229,2.8600 +Small,12x12,ldr-rgb-01.png,24.7900,0.0387,0.0167,3.9234 +Small,12x12,ldr-rgb-02.png,19.2492,0.0733,0.0514,1.2761 +Small,12x12,ldr-rgb-03.png,33.2612,0.0262,0.0045,14.5438 +Small,12x12,ldr-rgb-04.png,24.5777,0.0398,0.0176,3.7287 +Small,12x12,ldr-rgb-05.png,21.4909,0.0628,0.0410,1.5968 +Small,12x12,ldr-rgb-06.png,19.2111,0.0767,0.0545,1.2036 +Small,12x12,ldr-rgb-07.png,25.3778,0.0365,0.0141,4.6621 +Small,12x12,ldr-rgb-08.png,30.0827,0.0297,0.0077,8.4946 +Small,12x12,ldr-rgb-09.png,23.7750,0.0477,0.0256,2.5640 +Small,12x12,ldr-rgb-10.png,27.3265,0.0244,0.0048,3.3974 +Small,12x12,ldr-rgba-00.png,21.1697,0.0609,0.0384,1.7082 +Small,12x12,ldr-rgba-01.png,24.4976,0.0417,0.0194,3.3710 +Small,12x12,ldr-rgba-02.png,20.2077,0.0766,0.0541,1.2117 +Small,12x12,ldr-xy-00.png,28.9886,0.0371,0.0130,5.0296 +Small,12x12,ldr-xy-01.png,30.7004,0.0348,0.0108,6.0755 +Small,12x12,ldr-xy-02.png,38.1291,0.0264,0.0026,25.3835 +Small,12x12,ldrs-rgba-00.png,21.1701,0.0611,0.0386,1.6989 +Small,12x12,ldrs-rgba-01.png,24.4991,0.0415,0.0197,3.3206 +Small,12x12,ldrs-rgba-02.png,20.2081,0.0768,0.0545,1.2022 +Small,3x3x3,ldr-l-00-3.dds,50.7904,0.0315,0.0214,12.2670 +Small,3x3x3,ldr-l-01-3.dds,53.8713,0.0161,0.0087,7.9019 +Small,6x6x6,ldr-l-00-3.dds,32.5329,0.1000,0.0711,3.6883 +Small,6x6x6,ldr-l-01-3.dds,40.7310,0.0547,0.0288,2.3956 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse2_fastest_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse2_fastest_results.csv new file mode 100644 index 0000000000..a00eae830e --- /dev/null +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse2_fastest_results.csv @@ -0,0 +1,110 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Small,4x4,hdr-rgb-00.hdr,30.9256,0.1275,0.0233,2.8143 +Small,4x4,ldr-rgb-00.png,36.6938,0.0186,0.0102,6.4453 +Small,4x4,ldr-rgb-01.png,39.3406,0.0181,0.0100,6.5740 +Small,4x4,ldr-rgb-02.png,34.6215,0.0228,0.0147,4.4573 +Small,4x4,ldr-rgb-03.png,45.0796,0.0123,0.0044,14.8470 +Small,4x4,ldr-rgb-04.png,41.6025,0.0160,0.0077,8.5046 +Small,4x4,ldr-rgb-05.png,36.3772,0.0228,0.0145,4.5223 +Small,4x4,ldr-rgb-06.png,34.6871,0.0224,0.0140,4.6899 +Small,4x4,ldr-rgb-07.png,36.6076,0.0220,0.0134,4.9035 +Small,4x4,ldr-rgb-08.png,42.1072,0.0141,0.0059,11.0366 +Small,4x4,ldr-rgb-09.png,41.6247,0.0161,0.0079,8.3030 +Small,4x4,ldr-rgb-10.png,43.8009,0.0084,0.0025,6.5497 +Small,4x4,ldr-rgba-00.png,34.2380,0.0216,0.0130,5.0552 +Small,4x4,ldr-rgba-01.png,38.4758,0.0197,0.0113,5.8125 +Small,4x4,ldr-rgba-02.png,34.5086,0.0244,0.0160,4.0947 +Small,4x4,ldr-xy-00.png,37.2480,0.0184,0.0077,8.4596 +Small,4x4,ldr-xy-01.png,42.7930,0.0188,0.0087,7.5703 +Small,4x4,ldr-xy-02.png,48.2109,0.0164,0.0059,11.0348 +Small,4x4,ldrs-rgba-00.png,34.2413,0.0218,0.0131,5.0046 +Small,4x4,ldrs-rgba-01.png,38.4921,0.0198,0.0114,5.7579 +Small,4x4,ldrs-rgba-02.png,34.5121,0.0245,0.0160,4.0889 +Small,5x5,hdr-rgb-00.hdr,25.0433,0.1323,0.0275,2.3804 +Small,5x5,ldr-rgb-00.png,33.4498,0.0206,0.0115,5.7127 +Small,5x5,ldr-rgb-01.png,35.9953,0.0189,0.0101,6.5157 +Small,5x5,ldr-rgb-02.png,30.8818,0.0252,0.0164,3.9922 +Small,5x5,ldr-rgb-03.png,42.2089,0.0128,0.0041,15.8413 +Small,5x5,ldr-rgb-04.png,36.9254,0.0181,0.0091,7.1845 +Small,5x5,ldr-rgb-05.png,32.5878,0.0266,0.0177,3.7091 +Small,5x5,ldr-rgb-06.png,30.8754,0.0254,0.0163,4.0305 +Small,5x5,ldr-rgb-07.png,33.8868,0.0236,0.0142,4.6035 +Small,5x5,ldr-rgb-08.png,39.1027,0.0146,0.0058,11.2604 +Small,5x5,ldr-rgb-09.png,36.9986,0.0178,0.0088,7.4489 +Small,5x5,ldr-rgb-10.png,39.7657,0.0091,0.0025,6.5054 +Small,5x5,ldr-rgba-00.png,30.6398,0.0248,0.0154,4.2611 +Small,5x5,ldr-rgba-01.png,34.9962,0.0216,0.0125,5.2391 +Small,5x5,ldr-rgba-02.png,31.0031,0.0287,0.0195,3.3576 +Small,5x5,ldr-xy-00.png,36.4225,0.0187,0.0074,8.9127 +Small,5x5,ldr-xy-01.png,38.7019,0.0190,0.0081,8.0827 +Small,5x5,ldr-xy-02.png,43.7300,0.0177,0.0065,10.0950 +Small,5x5,ldrs-rgba-00.png,30.6423,0.0251,0.0156,4.2051 +Small,5x5,ldrs-rgba-01.png,35.0029,0.0217,0.0125,5.2287 +Small,5x5,ldrs-rgba-02.png,31.0043,0.0288,0.0197,3.3265 +Small,6x6,hdr-rgb-00.hdr,23.2564,0.1341,0.0279,2.3464 +Small,6x6,ldr-rgb-00.png,31.1285,0.0233,0.0136,4.8306 +Small,6x6,ldr-rgb-01.png,32.8102,0.0218,0.0124,5.3036 +Small,6x6,ldr-rgb-02.png,27.3453,0.0293,0.0199,3.3007 +Small,6x6,ldr-rgb-03.png,40.2487,0.0136,0.0044,14.8945 +Small,6x6,ldr-rgb-04.png,33.7491,0.0203,0.0106,6.1914 +Small,6x6,ldr-rgb-05.png,29.5567,0.0304,0.0208,3.1473 +Small,6x6,ldr-rgb-06.png,27.3887,0.0295,0.0198,3.3066 +Small,6x6,ldr-rgb-07.png,32.1704,0.0256,0.0157,4.1804 +Small,6x6,ldr-rgb-08.png,37.0701,0.0156,0.0061,10.7454 +Small,6x6,ldr-rgb-09.png,33.3175,0.0202,0.0105,6.2326 +Small,6x6,ldr-rgb-10.png,36.5014,0.0101,0.0029,5.5998 +Small,6x6,ldr-rgba-00.png,28.1929,0.0275,0.0174,3.7587 +Small,6x6,ldr-rgba-01.png,31.9802,0.0232,0.0135,4.8647 +Small,6x6,ldr-rgba-02.png,27.7658,0.0300,0.0203,3.2346 +Small,6x6,ldr-xy-00.png,35.5985,0.0194,0.0076,8.6551 +Small,6x6,ldr-xy-01.png,35.8414,0.0206,0.0092,7.1041 +Small,6x6,ldr-xy-02.png,41.7468,0.0173,0.0056,11.6282 +Small,6x6,ldrs-rgba-00.png,28.1946,0.0278,0.0177,3.7047 +Small,6x6,ldrs-rgba-01.png,31.9873,0.0233,0.0136,4.8345 +Small,6x6,ldrs-rgba-02.png,27.7644,0.0301,0.0204,3.2113 +Small,8x8,hdr-rgb-00.hdr,21.1675,0.1503,0.0405,1.6198 +Small,8x8,ldr-rgb-00.png,27.5822,0.0344,0.0203,3.2354 +Small,8x8,ldr-rgb-01.png,28.6701,0.0322,0.0185,3.5402 +Small,8x8,ldr-rgb-02.png,23.0159,0.0442,0.0304,2.1531 +Small,8x8,ldr-rgb-03.png,37.0512,0.0188,0.0053,12.2724 +Small,8x8,ldr-rgb-04.png,29.1157,0.0305,0.0165,3.9762 +Small,8x8,ldr-rgb-05.png,25.5532,0.0444,0.0305,2.1518 +Small,8x8,ldr-rgb-06.png,23.0482,0.0445,0.0304,2.1534 +Small,8x8,ldr-rgb-07.png,29.6000,0.0303,0.0162,4.0552 +Small,8x8,ldr-rgb-08.png,33.9070,0.0217,0.0079,8.2685 +Small,8x8,ldr-rgb-09.png,28.4838,0.0298,0.0160,4.0845 +Small,8x8,ldr-rgb-10.png,31.9020,0.0155,0.0040,4.0257 +Small,8x8,ldr-rgba-00.png,24.4867,0.0404,0.0262,2.5009 +Small,8x8,ldr-rgba-01.png,28.1329,0.0325,0.0184,3.5530 +Small,8x8,ldr-rgba-02.png,23.8668,0.0445,0.0304,2.1557 +Small,8x8,ldr-xy-00.png,33.1332,0.0268,0.0106,6.1628 +Small,8x8,ldr-xy-01.png,33.8000,0.0279,0.0121,5.3997 +Small,8x8,ldr-xy-02.png,39.8128,0.0203,0.0044,14.9593 +Small,8x8,ldrs-rgba-00.png,24.4866,0.0407,0.0263,2.4886 +Small,8x8,ldrs-rgba-01.png,28.1351,0.0326,0.0187,3.5050 +Small,8x8,ldrs-rgba-02.png,23.8664,0.0445,0.0306,2.1427 +Small,12x12,hdr-rgb-00.hdr,18.5871,0.1652,0.0495,1.3247 +Small,12x12,ldr-rgb-00.png,23.6269,0.0356,0.0159,4.1231 +Small,12x12,ldr-rgb-01.png,24.7328,0.0311,0.0118,5.5743 +Small,12x12,ldr-rgb-02.png,19.2129,0.0545,0.0352,1.8623 +Small,12x12,ldr-rgb-03.png,33.1483,0.0226,0.0036,18.3976 +Small,12x12,ldr-rgb-04.png,24.4225,0.0315,0.0120,5.4681 +Small,12x12,ldr-rgb-05.png,21.3937,0.0459,0.0265,2.4756 +Small,12x12,ldr-rgb-06.png,19.1624,0.0565,0.0370,1.7731 +Small,12x12,ldr-rgb-07.png,25.2980,0.0302,0.0106,6.1884 +Small,12x12,ldr-rgb-08.png,29.9138,0.0249,0.0057,11.4815 +Small,12x12,ldr-rgb-09.png,23.6639,0.0367,0.0173,3.7843 +Small,12x12,ldr-rgb-10.png,27.2791,0.0206,0.0038,4.2654 +Small,12x12,ldr-rgba-00.png,21.0528,0.0453,0.0254,2.5753 +Small,12x12,ldr-rgba-01.png,24.4407,0.0338,0.0141,4.6341 +Small,12x12,ldr-rgba-02.png,20.1732,0.0574,0.0379,1.7276 +Small,12x12,ldr-xy-00.png,28.7111,0.0314,0.0098,6.6587 +Small,12x12,ldr-xy-01.png,29.8021,0.0297,0.0085,7.7356 +Small,12x12,ldr-xy-02.png,38.1145,0.0237,0.0025,26.0474 +Small,12x12,ldrs-rgba-00.png,21.0534,0.0458,0.0260,2.5243 +Small,12x12,ldrs-rgba-01.png,24.4416,0.0341,0.0144,4.5423 +Small,12x12,ldrs-rgba-02.png,20.1731,0.0574,0.0378,1.7341 +Small,3x3x3,ldr-l-00-3.dds,50.6609,0.0294,0.0193,13.5630 +Small,3x3x3,ldr-l-01-3.dds,53.8054,0.0153,0.0079,8.6956 +Small,6x6x6,ldr-l-00-3.dds,32.5176,0.0995,0.0705,3.7198 +Small,6x6x6,ldr-l-01-3.dds,40.7290,0.0544,0.0285,2.4208 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse2_medium_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse2_medium_results.csv new file mode 100644 index 0000000000..7a60a731e8 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse2_medium_results.csv @@ -0,0 +1,110 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Small,4x4,hdr-rgb-00.hdr,32.4307,0.1576,0.0530,1.2356 +Small,4x4,ldr-rgb-00.png,38.6985,0.0610,0.0522,1.2547 +Small,4x4,ldr-rgb-01.png,40.1183,0.0560,0.0475,1.3791 +Small,4x4,ldr-rgb-02.png,35.2059,0.0560,0.0476,1.3778 +Small,4x4,ldr-rgb-03.png,47.0764,0.0352,0.0271,2.4191 +Small,4x4,ldr-rgb-04.png,42.1384,0.0472,0.0385,1.7025 +Small,4x4,ldr-rgb-05.png,37.7480,0.0628,0.0542,1.2088 +Small,4x4,ldr-rgb-06.png,35.3504,0.0507,0.0420,1.5614 +Small,4x4,ldr-rgb-07.png,38.8920,0.0725,0.0634,1.0336 +Small,4x4,ldr-rgb-08.png,44.8397,0.0399,0.0314,2.0851 +Small,4x4,ldr-rgb-09.png,42.0738,0.0478,0.0393,1.6694 +Small,4x4,ldr-rgb-10.png,44.8740,0.0125,0.0064,2.5420 +Small,4x4,ldr-rgba-00.png,36.2304,0.0671,0.0582,1.1267 +Small,4x4,ldr-rgba-01.png,38.8996,0.0432,0.0346,1.8947 +Small,4x4,ldr-rgba-02.png,34.9204,0.0480,0.0393,1.6661 +Small,4x4,ldr-xy-00.png,37.6117,0.0459,0.0351,1.8685 +Small,4x4,ldr-xy-01.png,44.7095,0.0604,0.0504,1.3014 +Small,4x4,ldr-xy-02.png,50.8950,0.0693,0.0586,1.1185 +Small,4x4,ldrs-rgba-00.png,36.2375,0.0682,0.0593,1.1055 +Small,4x4,ldrs-rgba-01.png,38.9148,0.0440,0.0354,1.8531 +Small,4x4,ldrs-rgba-02.png,34.9261,0.0483,0.0396,1.6534 +Small,5x5,hdr-rgb-00.hdr,26.6504,0.1725,0.0669,0.9798 +Small,5x5,ldr-rgb-00.png,35.0601,0.0730,0.0632,1.0371 +Small,5x5,ldr-rgb-01.png,36.3948,0.0593,0.0496,1.3210 +Small,5x5,ldr-rgb-02.png,31.0692,0.0623,0.0528,1.2420 +Small,5x5,ldr-rgb-03.png,43.8060,0.0268,0.0174,3.7617 +Small,5x5,ldr-rgb-04.png,37.6714,0.0540,0.0444,1.4776 +Small,5x5,ldr-rgb-05.png,33.5067,0.0827,0.0729,0.8990 +Small,5x5,ldr-rgb-06.png,31.0849,0.0586,0.0485,1.3523 +Small,5x5,ldr-rgb-07.png,35.7129,0.0827,0.0726,0.9022 +Small,5x5,ldr-rgb-08.png,41.3215,0.0385,0.0290,2.2588 +Small,5x5,ldr-rgb-09.png,37.5962,0.0519,0.0421,1.5549 +Small,5x5,ldr-rgb-10.png,40.5078,0.0154,0.0080,2.0214 +Small,5x5,ldr-rgba-00.png,32.7508,0.0883,0.0781,0.8394 +Small,5x5,ldr-rgba-01.png,35.2808,0.0531,0.0434,1.5109 +Small,5x5,ldr-rgba-02.png,31.1277,0.0618,0.0520,1.2611 +Small,5x5,ldr-xy-00.png,37.0388,0.0459,0.0341,1.9219 +Small,5x5,ldr-xy-01.png,40.3190,0.0610,0.0497,1.3181 +Small,5x5,ldr-xy-02.png,49.0279,0.0465,0.0345,1.8996 +Small,5x5,ldrs-rgba-00.png,32.7532,0.0892,0.0791,0.8280 +Small,5x5,ldrs-rgba-01.png,35.2889,0.0536,0.0436,1.5019 +Small,5x5,ldrs-rgba-02.png,31.1281,0.0621,0.0523,1.2526 +Small,6x6,hdr-rgb-00.hdr,24.7388,0.1803,0.0724,0.9051 +Small,6x6,ldr-rgb-00.png,32.3948,0.0817,0.0707,0.9268 +Small,6x6,ldr-rgb-01.png,33.1016,0.0687,0.0580,1.1295 +Small,6x6,ldr-rgb-02.png,27.4630,0.0780,0.0674,0.9723 +Small,6x6,ldr-rgb-03.png,41.7312,0.0249,0.0145,4.5160 +Small,6x6,ldr-rgb-04.png,34.2209,0.0617,0.0508,1.2899 +Small,6x6,ldr-rgb-05.png,30.1623,0.0967,0.0859,0.7634 +Small,6x6,ldr-rgb-06.png,27.5200,0.0762,0.0652,1.0058 +Small,6x6,ldr-rgb-07.png,34.1039,0.0921,0.0808,0.8113 +Small,6x6,ldr-rgb-08.png,39.2052,0.0362,0.0255,2.5678 +Small,6x6,ldr-rgb-09.png,33.7008,0.0598,0.0491,1.3354 +Small,6x6,ldr-rgb-10.png,36.9385,0.0174,0.0090,1.8010 +Small,6x6,ldr-rgba-00.png,30.2075,0.1008,0.0895,0.7326 +Small,6x6,ldr-rgba-01.png,32.1924,0.0574,0.0464,1.4122 +Small,6x6,ldr-rgba-02.png,27.8504,0.0707,0.0597,1.0971 +Small,6x6,ldr-xy-00.png,36.0420,0.0430,0.0301,2.1768 +Small,6x6,ldr-xy-01.png,37.5902,0.0499,0.0371,1.7655 +Small,6x6,ldr-xy-02.png,45.9866,0.0377,0.0246,2.6691 +Small,6x6,ldrs-rgba-00.png,30.2087,0.1016,0.0902,0.7266 +Small,6x6,ldrs-rgba-01.png,32.1983,0.0574,0.0463,1.4143 +Small,6x6,ldrs-rgba-02.png,27.8504,0.0707,0.0597,1.0969 +Small,8x8,hdr-rgb-00.hdr,21.5514,0.1990,0.0895,0.7325 +Small,8x8,ldr-rgb-00.png,28.7378,0.1093,0.0934,0.7020 +Small,8x8,ldr-rgb-01.png,28.9290,0.0886,0.0729,0.8988 +Small,8x8,ldr-rgb-02.png,23.1458,0.1025,0.0869,0.7540 +Small,8x8,ldr-rgb-03.png,38.5923,0.0320,0.0168,3.9046 +Small,8x8,ldr-rgb-04.png,29.6540,0.0818,0.0660,0.9934 +Small,8x8,ldr-rgb-05.png,25.9366,0.1160,0.1002,0.6541 +Small,8x8,ldr-rgb-06.png,23.1913,0.1022,0.0862,0.7599 +Small,8x8,ldr-rgb-07.png,30.8126,0.1054,0.0893,0.7337 +Small,8x8,ldr-rgb-08.png,35.8673,0.0450,0.0293,2.2336 +Small,8x8,ldr-rgb-09.png,29.0427,0.0780,0.0622,1.0537 +Small,8x8,ldr-rgb-10.png,32.1979,0.0254,0.0126,1.2903 +Small,8x8,ldr-rgba-00.png,26.1494,0.1228,0.1065,0.6153 +Small,8x8,ldr-rgba-01.png,28.3397,0.0722,0.0563,1.1640 +Small,8x8,ldr-rgba-02.png,23.9327,0.0994,0.0836,0.7841 +Small,8x8,ldr-xy-00.png,33.9859,0.0622,0.0441,1.4846 +Small,8x8,ldr-xy-01.png,34.7191,0.0589,0.0413,1.5883 +Small,8x8,ldr-xy-02.png,41.6941,0.0424,0.0244,2.6830 +Small,8x8,ldrs-rgba-00.png,26.1504,0.1239,0.1077,0.6086 +Small,8x8,ldrs-rgba-01.png,28.3428,0.0728,0.0570,1.1491 +Small,8x8,ldrs-rgba-02.png,23.9331,0.0998,0.0838,0.7822 +Small,12x12,hdr-rgb-00.hdr,18.8112,0.2385,0.1174,0.5584 +Small,12x12,ldr-rgb-00.png,24.6026,0.1217,0.0965,0.6793 +Small,12x12,ldr-rgb-01.png,25.0675,0.1184,0.0934,0.7014 +Small,12x12,ldr-rgb-02.png,19.2867,0.1480,0.1229,0.5332 +Small,12x12,ldr-rgb-03.png,34.9324,0.0423,0.0178,3.6884 +Small,12x12,ldr-rgb-04.png,24.9396,0.1032,0.0781,0.8394 +Small,12x12,ldr-rgb-05.png,21.6355,0.1486,0.1235,0.5307 +Small,12x12,ldr-rgb-06.png,19.2384,0.1410,0.1159,0.5654 +Small,12x12,ldr-rgb-07.png,26.6712,0.1084,0.0830,0.7900 +Small,12x12,ldr-rgb-08.png,31.3688,0.0545,0.0296,2.2168 +Small,12x12,ldr-rgb-09.png,24.2186,0.1030,0.0779,0.8415 +Small,12x12,ldr-rgb-10.png,28.0060,0.0464,0.0237,0.6873 +Small,12x12,ldr-rgba-00.png,21.7824,0.1298,0.1043,0.6285 +Small,12x12,ldr-rgba-01.png,24.6195,0.0902,0.0650,1.0081 +Small,12x12,ldr-rgba-02.png,20.2128,0.1423,0.1170,0.5600 +Small,12x12,ldr-xy-00.png,29.6851,0.0744,0.0471,1.3915 +Small,12x12,ldr-xy-01.png,31.6726,0.0739,0.0471,1.3928 +Small,12x12,ldr-xy-02.png,38.5322,0.0369,0.0097,6.7389 +Small,12x12,ldrs-rgba-00.png,21.7824,0.1316,0.1061,0.6175 +Small,12x12,ldrs-rgba-01.png,24.6214,0.0906,0.0655,1.0013 +Small,12x12,ldrs-rgba-02.png,20.2131,0.1420,0.1168,0.5609 +Small,3x3x3,ldr-l-00-3.dds,51.9633,0.0424,0.0322,8.1383 +Small,3x3x3,ldr-l-01-3.dds,54.3643,0.0167,0.0094,7.3618 +Small,6x6x6,ldr-l-00-3.dds,32.9606,0.1229,0.0938,2.7934 +Small,6x6x6,ldr-l-01-3.dds,40.8516,0.0551,0.0289,2.3858 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse2_thorough_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse2_thorough_results.csv new file mode 100644 index 0000000000..ca5aac57a8 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse2_thorough_results.csv @@ -0,0 +1,110 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Small,4x4,hdr-rgb-00.hdr,32.5528,0.2041,0.1003,0.6531 +Small,4x4,ldr-rgb-00.png,39.1080,0.1186,0.1098,0.5967 +Small,4x4,ldr-rgb-01.png,40.3320,0.1148,0.1064,0.6160 +Small,4x4,ldr-rgb-02.png,35.3607,0.1043,0.0959,0.6836 +Small,4x4,ldr-rgb-03.png,47.6667,0.1109,0.1026,0.6387 +Small,4x4,ldr-rgb-04.png,42.3048,0.1035,0.0949,0.6905 +Small,4x4,ldr-rgb-05.png,37.9487,0.1250,0.1163,0.5636 +Small,4x4,ldr-rgb-06.png,35.4842,0.0969,0.0882,0.7432 +Small,4x4,ldr-rgb-07.png,39.7534,0.1323,0.1234,0.5312 +Small,4x4,ldr-rgb-08.png,45.6979,0.1044,0.0958,0.6840 +Small,4x4,ldr-rgb-09.png,42.2292,0.1100,0.1014,0.6466 +Small,4x4,ldr-rgb-10.png,44.9858,0.0195,0.0132,1.2330 +Small,4x4,ldr-rgba-00.png,36.7410,0.1209,0.1119,0.5855 +Small,4x4,ldr-rgba-01.png,39.0312,0.1012,0.0924,0.7094 +Small,4x4,ldr-rgba-02.png,34.9861,0.0971,0.0884,0.7417 +Small,4x4,ldr-xy-00.png,37.6609,0.1251,0.1146,0.5718 +Small,4x4,ldr-xy-01.png,44.9219,0.1311,0.1207,0.5432 +Small,4x4,ldr-xy-02.png,50.9725,0.1547,0.1439,0.4555 +Small,4x4,ldrs-rgba-00.png,36.7485,0.1215,0.1125,0.5828 +Small,4x4,ldrs-rgba-01.png,39.0531,0.1022,0.0934,0.7014 +Small,4x4,ldrs-rgba-02.png,34.9909,0.0986,0.0895,0.7322 +Small,5x5,hdr-rgb-00.hdr,27.4704,0.2209,0.1139,0.5755 +Small,5x5,ldr-rgb-00.png,35.3302,0.1431,0.1330,0.4926 +Small,5x5,ldr-rgb-01.png,36.5029,0.1373,0.1275,0.5139 +Small,5x5,ldr-rgb-02.png,31.1210,0.1273,0.1175,0.5576 +Small,5x5,ldr-rgb-03.png,44.4794,0.1281,0.1185,0.5530 +Small,5x5,ldr-rgb-04.png,37.8285,0.1261,0.1161,0.5643 +Small,5x5,ldr-rgb-05.png,33.6601,0.1473,0.1376,0.4764 +Small,5x5,ldr-rgb-06.png,31.1230,0.1217,0.1116,0.5871 +Small,5x5,ldr-rgb-07.png,36.6472,0.1622,0.1521,0.4308 +Small,5x5,ldr-rgb-08.png,42.2544,0.1221,0.1124,0.5832 +Small,5x5,ldr-rgb-09.png,37.6965,0.1336,0.1240,0.5286 +Small,5x5,ldr-rgb-10.png,40.7181,0.0249,0.0177,0.9207 +Small,5x5,ldr-rgba-00.png,33.1222,0.1514,0.1410,0.4648 +Small,5x5,ldr-rgba-01.png,35.3522,0.1254,0.1154,0.5678 +Small,5x5,ldr-rgba-02.png,31.1618,0.1247,0.1147,0.5714 +Small,5x5,ldr-xy-00.png,37.1024,0.1331,0.1207,0.5431 +Small,5x5,ldr-xy-01.png,41.0349,0.1601,0.1484,0.4415 +Small,5x5,ldr-xy-02.png,49.2182,0.1779,0.1660,0.3947 +Small,5x5,ldrs-rgba-00.png,33.1252,0.1521,0.1419,0.4619 +Small,5x5,ldrs-rgba-01.png,35.3599,0.1264,0.1164,0.5631 +Small,5x5,ldrs-rgba-02.png,31.1624,0.1252,0.1154,0.5681 +Small,6x6,hdr-rgb-00.hdr,24.8413,0.2331,0.1277,0.5133 +Small,6x6,ldr-rgb-00.png,32.6529,0.1704,0.1592,0.4116 +Small,6x6,ldr-rgb-01.png,33.1791,0.1625,0.1516,0.4322 +Small,6x6,ldr-rgb-02.png,27.4976,0.1580,0.1471,0.4456 +Small,6x6,ldr-rgb-03.png,42.5366,0.1081,0.0974,0.6731 +Small,6x6,ldr-rgb-04.png,34.3450,0.1548,0.1435,0.4568 +Small,6x6,ldr-rgb-05.png,30.2857,0.1770,0.1660,0.3949 +Small,6x6,ldr-rgb-06.png,27.5562,0.1535,0.1424,0.4603 +Small,6x6,ldr-rgb-07.png,34.4288,0.1831,0.1718,0.3815 +Small,6x6,ldr-rgb-08.png,39.9093,0.1057,0.0949,0.6908 +Small,6x6,ldr-rgb-09.png,33.8264,0.1507,0.1398,0.4689 +Small,6x6,ldr-rgb-10.png,37.1203,0.0313,0.0227,0.7177 +Small,6x6,ldr-rgba-00.png,30.4893,0.1772,0.1656,0.3957 +Small,6x6,ldr-rgba-01.png,32.2510,0.1473,0.1362,0.4813 +Small,6x6,ldr-rgba-02.png,27.8850,0.1527,0.1415,0.4630 +Small,6x6,ldr-xy-00.png,36.1615,0.1084,0.0952,0.6885 +Small,6x6,ldr-xy-01.png,37.9286,0.1550,0.1420,0.4614 +Small,6x6,ldr-xy-02.png,47.3977,0.1918,0.1786,0.3669 +Small,6x6,ldrs-rgba-00.png,30.4904,0.1828,0.1711,0.3831 +Small,6x6,ldrs-rgba-01.png,32.2574,0.1506,0.1393,0.4704 +Small,6x6,ldrs-rgba-02.png,27.8842,0.1519,0.1405,0.4665 +Small,8x8,hdr-rgb-00.hdr,21.7833,0.2659,0.1554,0.4216 +Small,8x8,ldr-rgb-00.png,28.9664,0.2133,0.1969,0.3329 +Small,8x8,ldr-rgb-01.png,29.0055,0.1997,0.1836,0.3570 +Small,8x8,ldr-rgb-02.png,23.1782,0.2075,0.1900,0.3449 +Small,8x8,ldr-rgb-03.png,39.4493,0.0687,0.0530,1.2357 +Small,8x8,ldr-rgb-04.png,29.7729,0.1846,0.1682,0.3895 +Small,8x8,ldr-rgb-05.png,26.0315,0.2100,0.1938,0.3382 +Small,8x8,ldr-rgb-06.png,23.2332,0.2024,0.1860,0.3524 +Small,8x8,ldr-rgb-07.png,31.1596,0.2094,0.1928,0.3398 +Small,8x8,ldr-rgb-08.png,36.5135,0.1014,0.0852,0.7689 +Small,8x8,ldr-rgb-09.png,29.1942,0.1564,0.1405,0.4665 +Small,8x8,ldr-rgb-10.png,32.3486,0.0415,0.0278,0.5850 +Small,8x8,ldr-rgba-00.png,26.5009,0.2176,0.2009,0.3262 +Small,8x8,ldr-rgba-01.png,28.3965,0.1720,0.1556,0.4211 +Small,8x8,ldr-rgba-02.png,23.9603,0.1858,0.1694,0.3869 +Small,8x8,ldr-xy-00.png,34.0892,0.1219,0.1035,0.6332 +Small,8x8,ldr-xy-01.png,34.9260,0.1242,0.1062,0.6173 +Small,8x8,ldr-xy-02.png,44.4817,0.1599,0.1417,0.4624 +Small,8x8,ldrs-rgba-00.png,26.5026,0.2177,0.2013,0.3256 +Small,8x8,ldrs-rgba-01.png,28.3995,0.1713,0.1551,0.4224 +Small,8x8,ldrs-rgba-02.png,23.9598,0.1867,0.1702,0.3851 +Small,12x12,hdr-rgb-00.hdr,18.9081,0.3205,0.2008,0.3263 +Small,12x12,ldr-rgb-00.png,24.9670,0.2559,0.2304,0.2844 +Small,12x12,ldr-rgb-01.png,25.1725,0.2335,0.2076,0.3157 +Small,12x12,ldr-rgb-02.png,19.3142,0.2758,0.2499,0.2623 +Small,12x12,ldr-rgb-03.png,36.1690,0.0757,0.0501,1.3086 +Small,12x12,ldr-rgb-04.png,25.0348,0.2297,0.2037,0.3218 +Small,12x12,ldr-rgb-05.png,21.7300,0.2629,0.2369,0.2766 +Small,12x12,ldr-rgb-06.png,19.2768,0.2654,0.2394,0.2737 +Small,12x12,ldr-rgb-07.png,27.0734,0.2346,0.2072,0.3163 +Small,12x12,ldr-rgb-08.png,32.2423,0.1052,0.0793,0.8268 +Small,12x12,ldr-rgb-09.png,24.4517,0.2188,0.1929,0.3398 +Small,12x12,ldr-rgb-10.png,28.1777,0.0671,0.0436,0.3726 +Small,12x12,ldr-rgba-00.png,22.2801,0.2531,0.2267,0.2890 +Small,12x12,ldr-rgba-01.png,24.7162,0.1786,0.1523,0.4304 +Small,12x12,ldr-rgba-02.png,20.2326,0.2311,0.2049,0.3199 +Small,12x12,ldr-xy-00.png,30.3073,0.1558,0.1275,0.5141 +Small,12x12,ldr-xy-01.png,32.1323,0.1150,0.0872,0.7517 +Small,12x12,ldr-xy-02.png,40.2419,0.0869,0.0588,1.1136 +Small,12x12,ldrs-rgba-00.png,22.2801,0.2544,0.2279,0.2875 +Small,12x12,ldrs-rgba-01.png,24.7180,0.1779,0.1518,0.4318 +Small,12x12,ldrs-rgba-02.png,20.2327,0.2329,0.2068,0.3169 +Small,3x3x3,ldr-l-00-3.dds,52.4282,0.0833,0.0733,3.5784 +Small,3x3x3,ldr-l-01-3.dds,55.4466,0.0362,0.0290,2.3803 +Small,6x6x6,ldr-l-00-3.dds,33.2662,0.1728,0.1435,1.8267 +Small,6x6x6,ldr-l-01-3.dds,41.5787,0.0568,0.0305,2.2593 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse4.1_fast_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse4.1_fast_results.csv new file mode 100644 index 0000000000..faf65513e5 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse4.1_fast_results.csv @@ -0,0 +1,110 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Small,4x4,hdr-rgb-00.hdr,31.4784,0.1225,0.0275,2.3824 +Small,4x4,ldr-rgb-00.png,38.0904,0.0235,0.0152,4.3036 +Small,4x4,ldr-rgb-01.png,39.8001,0.0210,0.0131,5.0100 +Small,4x4,ldr-rgb-02.png,35.0327,0.0289,0.0209,3.1343 +Small,4x4,ldr-rgb-03.png,45.9660,0.0129,0.0052,12.7105 +Small,4x4,ldr-rgb-04.png,41.9046,0.0175,0.0092,7.1414 +Small,4x4,ldr-rgb-05.png,37.1767,0.0282,0.0200,3.2745 +Small,4x4,ldr-rgb-06.png,35.2077,0.0273,0.0191,3.4226 +Small,4x4,ldr-rgb-07.png,37.9946,0.0290,0.0206,3.1862 +Small,4x4,ldr-rgb-08.png,43.6044,0.0157,0.0078,8.3730 +Small,4x4,ldr-rgb-09.png,41.8518,0.0175,0.0095,6.8876 +Small,4x4,ldr-rgb-10.png,44.3436,0.0084,0.0028,5.8834 +Small,4x4,ldr-rgba-00.png,35.5159,0.0288,0.0203,3.2290 +Small,4x4,ldr-rgba-01.png,38.7948,0.0210,0.0129,5.0957 +Small,4x4,ldr-rgba-02.png,34.8314,0.0264,0.0181,3.6224 +Small,4x4,ldr-xy-00.png,37.3667,0.0200,0.0096,6.8466 +Small,4x4,ldr-xy-01.png,43.8571,0.0210,0.0111,5.8998 +Small,4x4,ldr-xy-02.png,48.2127,0.0171,0.0070,9.3595 +Small,4x4,ldrs-rgba-00.png,35.5232,0.0292,0.0206,3.1803 +Small,4x4,ldrs-rgba-01.png,38.8139,0.0213,0.0130,5.0289 +Small,4x4,ldrs-rgba-02.png,34.8369,0.0266,0.0183,3.5790 +Small,5x5,hdr-rgb-00.hdr,25.7149,0.1289,0.0332,1.9716 +Small,5x5,ldr-rgb-00.png,34.2754,0.0254,0.0164,3.9944 +Small,5x5,ldr-rgb-01.png,36.1752,0.0205,0.0118,5.5516 +Small,5x5,ldr-rgb-02.png,31.0230,0.0281,0.0193,3.4020 +Small,5x5,ldr-rgb-03.png,42.5699,0.0130,0.0047,14.0215 +Small,5x5,ldr-rgb-04.png,37.2518,0.0189,0.0100,6.5608 +Small,5x5,ldr-rgb-05.png,33.1162,0.0315,0.0227,2.8920 +Small,5x5,ldr-rgb-06.png,31.0304,0.0277,0.0187,3.4970 +Small,5x5,ldr-rgb-07.png,34.5142,0.0273,0.0181,3.6262 +Small,5x5,ldr-rgb-08.png,39.8113,0.0158,0.0071,9.2683 +Small,5x5,ldr-rgb-09.png,37.2919,0.0191,0.0104,6.3142 +Small,5x5,ldr-rgb-10.png,40.1485,0.0091,0.0027,5.9263 +Small,5x5,ldr-rgba-00.png,32.0068,0.0330,0.0237,2.7624 +Small,5x5,ldr-rgba-01.png,35.1483,0.0233,0.0143,4.5968 +Small,5x5,ldr-rgba-02.png,31.1092,0.0301,0.0210,3.1172 +Small,5x5,ldr-xy-00.png,36.6735,0.0196,0.0084,7.7880 +Small,5x5,ldr-xy-01.png,39.4750,0.0208,0.0100,6.5352 +Small,5x5,ldr-xy-02.png,43.9474,0.0184,0.0074,8.8825 +Small,5x5,ldrs-rgba-00.png,32.0093,0.0331,0.0239,2.7414 +Small,5x5,ldrs-rgba-01.png,35.1561,0.0233,0.0142,4.6211 +Small,5x5,ldrs-rgba-02.png,31.1099,0.0304,0.0214,3.0584 +Small,6x6,hdr-rgb-00.hdr,23.9693,0.1354,0.0385,1.7032 +Small,6x6,ldr-rgb-00.png,31.6280,0.0330,0.0230,2.8453 +Small,6x6,ldr-rgb-01.png,32.9082,0.0279,0.0182,3.6016 +Small,6x6,ldr-rgb-02.png,27.4315,0.0384,0.0285,2.3009 +Small,6x6,ldr-rgb-03.png,40.5430,0.0151,0.0056,11.6925 +Small,6x6,ldr-rgb-04.png,33.9242,0.0242,0.0141,4.6456 +Small,6x6,ldr-rgb-05.png,29.9746,0.0429,0.0331,1.9820 +Small,6x6,ldr-rgb-06.png,27.4768,0.0383,0.0282,2.3227 +Small,6x6,ldr-rgb-07.png,33.2085,0.0323,0.0221,2.9687 +Small,6x6,ldr-rgb-08.png,37.8024,0.0182,0.0084,7.7816 +Small,6x6,ldr-rgb-09.png,33.4958,0.0246,0.0148,4.4150 +Small,6x6,ldr-rgb-10.png,36.6619,0.0110,0.0035,4.6861 +Small,6x6,ldr-rgba-00.png,29.4061,0.0408,0.0304,2.1542 +Small,6x6,ldr-rgba-01.png,32.0747,0.0277,0.0176,3.7163 +Small,6x6,ldr-rgba-02.png,27.8369,0.0373,0.0273,2.4041 +Small,6x6,ldr-xy-00.png,35.6760,0.0216,0.0096,6.8352 +Small,6x6,ldr-xy-01.png,36.9997,0.0250,0.0134,4.8777 +Small,6x6,ldr-xy-02.png,41.8793,0.0188,0.0069,9.5255 +Small,6x6,ldrs-rgba-00.png,29.4065,0.0411,0.0308,2.1297 +Small,6x6,ldrs-rgba-01.png,32.0806,0.0279,0.0178,3.6758 +Small,6x6,ldrs-rgba-02.png,27.8366,0.0376,0.0275,2.3859 +Small,8x8,hdr-rgb-00.hdr,21.3123,0.1506,0.0485,1.3505 +Small,8x8,ldr-rgb-00.png,27.9849,0.0427,0.0287,2.2837 +Small,8x8,ldr-rgb-01.png,28.7558,0.0375,0.0235,2.7850 +Small,8x8,ldr-rgb-02.png,23.0846,0.0522,0.0380,1.7238 +Small,8x8,ldr-rgb-03.png,37.2835,0.0201,0.0062,10.6286 +Small,8x8,ldr-rgb-04.png,29.3432,0.0344,0.0199,3.2853 +Small,8x8,ldr-rgb-05.png,25.8126,0.0565,0.0421,1.5570 +Small,8x8,ldr-rgb-06.png,23.1440,0.0523,0.0381,1.7217 +Small,8x8,ldr-rgb-07.png,29.8731,0.0338,0.0192,3.4215 +Small,8x8,ldr-rgb-08.png,34.3107,0.0242,0.0101,6.4734 +Small,8x8,ldr-rgb-09.png,28.6989,0.0358,0.0215,3.0420 +Small,8x8,ldr-rgb-10.png,32.0218,0.0160,0.0041,3.9428 +Small,8x8,ldr-rgba-00.png,24.9502,0.0511,0.0365,1.7941 +Small,8x8,ldr-rgba-01.png,28.2387,0.0367,0.0222,2.9556 +Small,8x8,ldr-rgba-02.png,23.9210,0.0517,0.0372,1.7618 +Small,8x8,ldr-xy-00.png,33.0501,0.0289,0.0124,5.2809 +Small,8x8,ldr-xy-01.png,34.1022,0.0301,0.0141,4.6638 +Small,8x8,ldr-xy-02.png,39.9066,0.0207,0.0045,14.6876 +Small,8x8,ldrs-rgba-00.png,24.9497,0.0514,0.0368,1.7815 +Small,8x8,ldrs-rgba-01.png,28.2412,0.0369,0.0224,2.9286 +Small,8x8,ldrs-rgba-02.png,23.9215,0.0519,0.0375,1.7461 +Small,12x12,hdr-rgb-00.hdr,18.6636,0.1753,0.0661,0.9909 +Small,12x12,ldr-rgb-00.png,23.7294,0.0421,0.0201,3.2539 +Small,12x12,ldr-rgb-01.png,24.7900,0.0365,0.0148,4.4407 +Small,12x12,ldr-rgb-02.png,19.2492,0.0671,0.0453,1.4470 +Small,12x12,ldr-rgb-03.png,33.2612,0.0253,0.0040,16.3715 +Small,12x12,ldr-rgb-04.png,24.5777,0.0373,0.0154,4.2664 +Small,12x12,ldr-rgb-05.png,21.4909,0.0575,0.0355,1.8485 +Small,12x12,ldr-rgb-06.png,19.2111,0.0701,0.0481,1.3632 +Small,12x12,ldr-rgb-07.png,25.3778,0.0347,0.0124,5.2744 +Small,12x12,ldr-rgb-08.png,30.0827,0.0287,0.0069,9.4926 +Small,12x12,ldr-rgb-09.png,23.7750,0.0444,0.0225,2.9116 +Small,12x12,ldr-rgb-10.png,27.3265,0.0236,0.0043,3.7930 +Small,12x12,ldr-rgba-00.png,21.1697,0.0565,0.0341,1.9204 +Small,12x12,ldr-rgba-01.png,24.4976,0.0392,0.0171,3.8216 +Small,12x12,ldr-rgba-02.png,20.2077,0.0705,0.0483,1.3582 +Small,12x12,ldr-xy-00.png,28.9886,0.0354,0.0115,5.7211 +Small,12x12,ldr-xy-01.png,30.7004,0.0332,0.0097,6.7243 +Small,12x12,ldr-xy-02.png,38.1291,0.0260,0.0025,26.2564 +Small,12x12,ldrs-rgba-00.png,21.1701,0.0566,0.0350,1.8733 +Small,12x12,ldrs-rgba-01.png,24.4991,0.0393,0.0172,3.8151 +Small,12x12,ldrs-rgba-02.png,20.2081,0.0705,0.0483,1.3575 +Small,3x3x3,ldr-l-00-3.dds,50.7904,0.0287,0.0187,14.0033 +Small,3x3x3,ldr-l-01-3.dds,53.8713,0.0147,0.0076,9.0673 +Small,6x6x6,ldr-l-00-3.dds,32.5329,0.0928,0.0639,4.1032 +Small,6x6x6,ldr-l-01-3.dds,40.7310,0.0519,0.0260,2.6462 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse4.1_fastest_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse4.1_fastest_results.csv new file mode 100644 index 0000000000..61b7de7893 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse4.1_fastest_results.csv @@ -0,0 +1,110 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Small,4x4,hdr-rgb-00.hdr,30.9256,0.1152,0.0205,3.2047 +Small,4x4,ldr-rgb-00.png,36.6938,0.0168,0.0086,7.6135 +Small,4x4,ldr-rgb-01.png,39.3406,0.0163,0.0084,7.8393 +Small,4x4,ldr-rgb-02.png,34.6215,0.0199,0.0120,5.4814 +Small,4x4,ldr-rgb-03.png,45.0796,0.0117,0.0040,16.3999 +Small,4x4,ldr-rgb-04.png,41.6025,0.0147,0.0065,10.0625 +Small,4x4,ldr-rgb-05.png,36.3772,0.0202,0.0119,5.4953 +Small,4x4,ldr-rgb-06.png,34.6871,0.0198,0.0116,5.6643 +Small,4x4,ldr-rgb-07.png,36.6076,0.0195,0.0110,5.9324 +Small,4x4,ldr-rgb-08.png,42.1072,0.0131,0.0052,12.6491 +Small,4x4,ldr-rgb-09.png,41.6247,0.0148,0.0067,9.7264 +Small,4x4,ldr-rgb-10.png,43.8009,0.0081,0.0023,7.0219 +Small,4x4,ldr-rgba-00.png,34.2380,0.0194,0.0109,5.9916 +Small,4x4,ldr-rgba-01.png,38.4758,0.0176,0.0094,6.9741 +Small,4x4,ldr-rgba-02.png,34.5086,0.0216,0.0133,4.9297 +Small,4x4,ldr-xy-00.png,37.2480,0.0170,0.0067,9.8255 +Small,4x4,ldr-xy-01.png,42.7930,0.0173,0.0075,8.7922 +Small,4x4,ldr-xy-02.png,48.2109,0.0156,0.0054,12.1337 +Small,4x4,ldrs-rgba-00.png,34.2413,0.0195,0.0111,5.9143 +Small,4x4,ldrs-rgba-01.png,38.4921,0.0177,0.0095,6.8776 +Small,4x4,ldrs-rgba-02.png,34.5121,0.0216,0.0133,4.9150 +Small,5x5,hdr-rgb-00.hdr,25.0433,0.1192,0.0233,2.8182 +Small,5x5,ldr-rgb-00.png,33.4498,0.0186,0.0097,6.7543 +Small,5x5,ldr-rgb-01.png,35.9953,0.0170,0.0084,7.8048 +Small,5x5,ldr-rgb-02.png,30.8818,0.0221,0.0135,4.8588 +Small,5x5,ldr-rgb-03.png,42.2089,0.0120,0.0036,18.0047 +Small,5x5,ldr-rgb-04.png,36.9254,0.0166,0.0078,8.4443 +Small,5x5,ldr-rgb-05.png,32.5878,0.0233,0.0144,4.5386 +Small,5x5,ldr-rgb-06.png,30.8754,0.0223,0.0133,4.9178 +Small,5x5,ldr-rgb-07.png,33.8868,0.0208,0.0118,5.5468 +Small,5x5,ldr-rgb-08.png,39.1027,0.0135,0.0050,13.1225 +Small,5x5,ldr-rgb-09.png,36.9986,0.0161,0.0075,8.7708 +Small,5x5,ldr-rgb-10.png,39.7657,0.0087,0.0024,6.8135 +Small,5x5,ldr-rgba-00.png,30.6398,0.0221,0.0130,5.0443 +Small,5x5,ldr-rgba-01.png,34.9962,0.0193,0.0104,6.2768 +Small,5x5,ldr-rgba-02.png,31.0031,0.0251,0.0161,4.0643 +Small,5x5,ldr-xy-00.png,36.4225,0.0173,0.0064,10.3140 +Small,5x5,ldr-xy-01.png,38.7019,0.0175,0.0070,9.4217 +Small,5x5,ldr-xy-02.png,43.7300,0.0167,0.0059,11.1228 +Small,5x5,ldrs-rgba-00.png,30.6423,0.0223,0.0131,4.9974 +Small,5x5,ldrs-rgba-01.png,35.0029,0.0193,0.0105,6.2468 +Small,5x5,ldrs-rgba-02.png,31.0043,0.0252,0.0162,4.0344 +Small,6x6,hdr-rgb-00.hdr,23.2564,0.1212,0.0246,2.6674 +Small,6x6,ldr-rgb-00.png,31.1285,0.0213,0.0118,5.5732 +Small,6x6,ldr-rgb-01.png,32.8102,0.0199,0.0107,6.1432 +Small,6x6,ldr-rgb-02.png,27.3453,0.0262,0.0169,3.8825 +Small,6x6,ldr-rgb-03.png,40.2487,0.0129,0.0039,16.9218 +Small,6x6,ldr-rgb-04.png,33.7491,0.0186,0.0092,7.1157 +Small,6x6,ldr-rgb-05.png,29.5567,0.0271,0.0176,3.7150 +Small,6x6,ldr-rgb-06.png,27.3887,0.0265,0.0169,3.8685 +Small,6x6,ldr-rgb-07.png,32.1704,0.0231,0.0133,4.9431 +Small,6x6,ldr-rgb-08.png,37.0701,0.0146,0.0054,12.1994 +Small,6x6,ldr-rgb-09.png,33.3175,0.0184,0.0091,7.2128 +Small,6x6,ldr-rgb-10.png,36.5014,0.0097,0.0027,5.9263 +Small,6x6,ldr-rgba-00.png,28.1929,0.0248,0.0150,4.3584 +Small,6x6,ldr-rgba-01.png,31.9802,0.0210,0.0115,5.7132 +Small,6x6,ldr-rgba-02.png,27.7658,0.0268,0.0171,3.8249 +Small,6x6,ldr-xy-00.png,35.5985,0.0182,0.0067,9.8255 +Small,6x6,ldr-xy-01.png,35.8414,0.0192,0.0081,8.1059 +Small,6x6,ldr-xy-02.png,41.7468,0.0166,0.0051,12.8172 +Small,6x6,ldrs-rgba-00.png,28.1946,0.0249,0.0151,4.3327 +Small,6x6,ldrs-rgba-01.png,31.9873,0.0212,0.0116,5.6282 +Small,6x6,ldrs-rgba-02.png,27.7644,0.0269,0.0173,3.7950 +Small,8x8,hdr-rgb-00.hdr,21.1675,0.1363,0.0359,1.8259 +Small,8x8,ldr-rgb-00.png,27.5822,0.0313,0.0175,3.7464 +Small,8x8,ldr-rgb-01.png,28.6701,0.0295,0.0160,4.0911 +Small,8x8,ldr-rgb-02.png,23.0159,0.0399,0.0262,2.5056 +Small,8x8,ldr-rgb-03.png,37.0512,0.0181,0.0049,13.4520 +Small,8x8,ldr-rgb-04.png,29.1157,0.0281,0.0144,4.5669 +Small,8x8,ldr-rgb-05.png,25.5532,0.0401,0.0264,2.4832 +Small,8x8,ldr-rgb-06.png,23.0482,0.0399,0.0263,2.4955 +Small,8x8,ldr-rgb-07.png,29.6000,0.0280,0.0141,4.6440 +Small,8x8,ldr-rgb-08.png,33.9070,0.0206,0.0071,9.2148 +Small,8x8,ldr-rgb-09.png,28.4838,0.0275,0.0140,4.6956 +Small,8x8,ldr-rgb-10.png,31.9020,0.0150,0.0037,4.4137 +Small,8x8,ldr-rgba-00.png,24.4867,0.0367,0.0227,2.8911 +Small,8x8,ldr-rgba-01.png,28.1329,0.0296,0.0160,4.0994 +Small,8x8,ldr-rgba-02.png,23.8668,0.0401,0.0263,2.4885 +Small,8x8,ldr-xy-00.png,33.1332,0.0252,0.0094,7.0009 +Small,8x8,ldr-xy-01.png,33.8000,0.0261,0.0106,6.1537 +Small,8x8,ldr-xy-02.png,39.8128,0.0195,0.0040,16.4499 +Small,8x8,ldrs-rgba-00.png,24.4866,0.0368,0.0228,2.8748 +Small,8x8,ldrs-rgba-01.png,28.1351,0.0300,0.0162,4.0539 +Small,8x8,ldrs-rgba-02.png,23.8664,0.0405,0.0268,2.4466 +Small,12x12,hdr-rgb-00.hdr,18.5871,0.1512,0.0450,1.4569 +Small,12x12,ldr-rgb-00.png,23.6269,0.0334,0.0141,4.6341 +Small,12x12,ldr-rgb-01.png,24.7328,0.0296,0.0106,6.1897 +Small,12x12,ldr-rgb-02.png,19.2129,0.0504,0.0313,2.0943 +Small,12x12,ldr-rgb-03.png,33.1483,0.0221,0.0033,19.6454 +Small,12x12,ldr-rgb-04.png,24.4225,0.0300,0.0108,6.0862 +Small,12x12,ldr-rgb-05.png,21.3937,0.0424,0.0233,2.8089 +Small,12x12,ldr-rgb-06.png,19.1624,0.0522,0.0328,1.9972 +Small,12x12,ldr-rgb-07.png,25.2980,0.0290,0.0095,6.8747 +Small,12x12,ldr-rgb-08.png,29.9138,0.0242,0.0053,12.4786 +Small,12x12,ldr-rgb-09.png,23.6639,0.0345,0.0154,4.2609 +Small,12x12,ldr-rgb-10.png,27.2791,0.0199,0.0032,5.0234 +Small,12x12,ldr-rgba-00.png,21.0528,0.0421,0.0226,2.9005 +Small,12x12,ldr-rgba-01.png,24.4407,0.0321,0.0127,5.1591 +Small,12x12,ldr-rgba-02.png,20.1732,0.0526,0.0333,1.9655 +Small,12x12,ldr-xy-00.png,28.7111,0.0302,0.0089,7.3330 +Small,12x12,ldr-xy-01.png,29.8021,0.0287,0.0076,8.6107 +Small,12x12,ldr-xy-02.png,38.1145,0.0233,0.0024,27.0257 +Small,12x12,ldrs-rgba-00.png,21.0534,0.0424,0.0228,2.8690 +Small,12x12,ldrs-rgba-01.png,24.4416,0.0321,0.0128,5.1352 +Small,12x12,ldrs-rgba-02.png,20.1731,0.0529,0.0336,1.9498 +Small,3x3x3,ldr-l-00-3.dds,50.6609,0.0270,0.0170,15.3806 +Small,3x3x3,ldr-l-01-3.dds,53.8054,0.0142,0.0071,9.6921 +Small,6x6x6,ldr-l-00-3.dds,32.5176,0.0919,0.0630,4.1594 +Small,6x6x6,ldr-l-01-3.dds,40.7290,0.0516,0.0257,2.6787 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse4.1_medium_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse4.1_medium_results.csv new file mode 100644 index 0000000000..496baf90cd --- /dev/null +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse4.1_medium_results.csv @@ -0,0 +1,110 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Small,4x4,hdr-rgb-00.hdr,32.4307,0.1412,0.0459,1.4290 +Small,4x4,ldr-rgb-00.png,38.6985,0.0522,0.0438,1.4955 +Small,4x4,ldr-rgb-01.png,40.1183,0.0477,0.0396,1.6557 +Small,4x4,ldr-rgb-02.png,35.2059,0.0489,0.0407,1.6088 +Small,4x4,ldr-rgb-03.png,47.0764,0.0331,0.0251,2.6115 +Small,4x4,ldr-rgb-04.png,42.1384,0.0441,0.0355,1.8436 +Small,4x4,ldr-rgb-05.png,37.7480,0.0606,0.0521,1.2578 +Small,4x4,ldr-rgb-06.png,35.3504,0.0499,0.0414,1.5824 +Small,4x4,ldr-rgb-07.png,38.8920,0.0678,0.0590,1.1100 +Small,4x4,ldr-rgb-08.png,44.8397,0.0394,0.0312,2.0987 +Small,4x4,ldr-rgb-09.png,42.0738,0.0451,0.0368,1.7819 +Small,4x4,ldr-rgb-10.png,44.8740,0.0127,0.0068,2.3930 +Small,4x4,ldr-rgba-00.png,36.2304,0.0636,0.0550,1.1920 +Small,4x4,ldr-rgba-01.png,38.8996,0.0470,0.0379,1.7312 +Small,4x4,ldr-rgba-02.png,34.9204,0.0415,0.0331,1.9819 +Small,4x4,ldr-xy-00.png,37.6117,0.0402,0.0299,2.1882 +Small,4x4,ldr-xy-01.png,44.7095,0.0528,0.0430,1.5253 +Small,4x4,ldr-xy-02.png,50.8950,0.0606,0.0503,1.3029 +Small,4x4,ldrs-rgba-00.png,36.2375,0.0588,0.0501,1.3074 +Small,4x4,ldrs-rgba-01.png,38.9148,0.0385,0.0299,2.1912 +Small,4x4,ldrs-rgba-02.png,34.9261,0.0421,0.0336,1.9522 +Small,5x5,hdr-rgb-00.hdr,26.6504,0.1529,0.0572,1.1454 +Small,5x5,ldr-rgb-00.png,35.0601,0.0626,0.0530,1.2365 +Small,5x5,ldr-rgb-01.png,36.3948,0.0507,0.0415,1.5796 +Small,5x5,ldr-rgb-02.png,31.0692,0.0533,0.0440,1.4904 +Small,5x5,ldr-rgb-03.png,43.8060,0.0240,0.0150,4.3772 +Small,5x5,ldr-rgb-04.png,37.6714,0.0466,0.0370,1.7715 +Small,5x5,ldr-rgb-05.png,33.5067,0.0708,0.0614,1.0681 +Small,5x5,ldr-rgb-06.png,31.0849,0.0495,0.0399,1.6415 +Small,5x5,ldr-rgb-07.png,35.7129,0.0704,0.0607,1.0796 +Small,5x5,ldr-rgb-08.png,41.3215,0.0343,0.0250,2.6247 +Small,5x5,ldr-rgb-09.png,37.5962,0.0446,0.0352,1.8592 +Small,5x5,ldr-rgb-10.png,40.5078,0.0141,0.0070,2.3220 +Small,5x5,ldr-rgba-00.png,32.7508,0.0761,0.0661,0.9910 +Small,5x5,ldr-rgba-01.png,35.2808,0.0462,0.0367,1.7878 +Small,5x5,ldr-rgba-02.png,31.1277,0.0534,0.0438,1.4975 +Small,5x5,ldr-xy-00.png,37.0388,0.0402,0.0287,2.2840 +Small,5x5,ldr-xy-01.png,40.3190,0.0527,0.0417,1.5721 +Small,5x5,ldr-xy-02.png,49.0279,0.0412,0.0297,2.2058 +Small,5x5,ldrs-rgba-00.png,32.7532,0.0758,0.0661,0.9912 +Small,5x5,ldrs-rgba-01.png,35.2889,0.0462,0.0367,1.7874 +Small,5x5,ldrs-rgba-02.png,31.1281,0.0540,0.0444,1.4752 +Small,6x6,hdr-rgb-00.hdr,24.7388,0.1622,0.0636,1.0304 +Small,6x6,ldr-rgb-00.png,32.3948,0.0716,0.0608,1.0778 +Small,6x6,ldr-rgb-01.png,33.1016,0.0605,0.0498,1.3147 +Small,6x6,ldr-rgb-02.png,27.4630,0.0677,0.0572,1.1450 +Small,6x6,ldr-rgb-03.png,41.7312,0.0230,0.0128,5.1353 +Small,6x6,ldr-rgb-04.png,34.2209,0.0543,0.0435,1.5059 +Small,6x6,ldr-rgb-05.png,30.1623,0.0845,0.0737,0.8896 +Small,6x6,ldr-rgb-06.png,27.5200,0.0665,0.0558,1.1737 +Small,6x6,ldr-rgb-07.png,34.1039,0.0802,0.0692,0.9476 +Small,6x6,ldr-rgb-08.png,39.2052,0.0326,0.0221,2.9595 +Small,6x6,ldr-rgb-09.png,33.7008,0.0528,0.0421,1.5550 +Small,6x6,ldr-rgb-10.png,36.9385,0.0164,0.0081,2.0166 +Small,6x6,ldr-rgba-00.png,30.2075,0.0876,0.0766,0.8553 +Small,6x6,ldr-rgba-01.png,32.1924,0.0510,0.0400,1.6376 +Small,6x6,ldr-rgba-02.png,27.8504,0.0621,0.0512,1.2801 +Small,6x6,ldr-xy-00.png,36.0420,0.0388,0.0261,2.5133 +Small,6x6,ldr-xy-01.png,37.5902,0.0447,0.0323,2.0287 +Small,6x6,ldr-xy-02.png,45.9866,0.0340,0.0213,3.0730 +Small,6x6,ldrs-rgba-00.png,30.2087,0.0883,0.0773,0.8483 +Small,6x6,ldrs-rgba-01.png,32.1983,0.0510,0.0401,1.6336 +Small,6x6,ldrs-rgba-02.png,27.8504,0.0625,0.0518,1.2660 +Small,8x8,hdr-rgb-00.hdr,21.5514,0.1811,0.0788,0.8313 +Small,8x8,ldr-rgb-00.png,28.7378,0.0960,0.0803,0.8166 +Small,8x8,ldr-rgb-01.png,28.9290,0.0790,0.0637,1.0284 +Small,8x8,ldr-rgb-02.png,23.1458,0.0906,0.0753,0.8703 +Small,8x8,ldr-rgb-03.png,38.5923,0.0300,0.0149,4.4093 +Small,8x8,ldr-rgb-04.png,29.6540,0.0732,0.0578,1.1348 +Small,8x8,ldr-rgb-05.png,25.9366,0.1019,0.0865,0.7573 +Small,8x8,ldr-rgb-06.png,23.1913,0.0903,0.0746,0.8784 +Small,8x8,ldr-rgb-07.png,30.8126,0.0931,0.0774,0.8467 +Small,8x8,ldr-rgb-08.png,35.8673,0.0412,0.0258,2.5356 +Small,8x8,ldr-rgb-09.png,29.0427,0.0690,0.0537,1.2215 +Small,8x8,ldr-rgb-10.png,32.1979,0.0237,0.0108,1.5027 +Small,8x8,ldr-rgba-00.png,26.1494,0.1080,0.0921,0.7118 +Small,8x8,ldr-rgba-01.png,28.3397,0.0646,0.0490,1.3385 +Small,8x8,ldr-rgba-02.png,23.9327,0.0879,0.0722,0.9077 +Small,8x8,ldr-xy-00.png,33.9859,0.0559,0.0384,1.7079 +Small,8x8,ldr-xy-01.png,34.7191,0.0534,0.0361,1.8158 +Small,8x8,ldr-xy-02.png,41.6941,0.0388,0.0213,3.0785 +Small,8x8,ldrs-rgba-00.png,26.1504,0.1086,0.0925,0.7085 +Small,8x8,ldrs-rgba-01.png,28.3428,0.0650,0.0493,1.3298 +Small,8x8,ldrs-rgba-02.png,23.9331,0.0888,0.0732,0.8951 +Small,12x12,hdr-rgb-00.hdr,18.8112,0.2169,0.1055,0.6210 +Small,12x12,ldr-rgb-00.png,24.6026,0.1096,0.0847,0.7739 +Small,12x12,ldr-rgb-01.png,25.0675,0.1071,0.0824,0.7950 +Small,12x12,ldr-rgb-02.png,19.2867,0.1337,0.1090,0.6012 +Small,12x12,ldr-rgb-03.png,34.9324,0.0407,0.0162,4.0434 +Small,12x12,ldr-rgb-04.png,24.9396,0.0941,0.0691,0.9479 +Small,12x12,ldr-rgb-05.png,21.6355,0.1341,0.1094,0.5992 +Small,12x12,ldr-rgb-06.png,19.2384,0.1274,0.1025,0.6395 +Small,12x12,ldr-rgb-07.png,26.6712,0.0985,0.0734,0.8934 +Small,12x12,ldr-rgb-08.png,31.3688,0.0508,0.0264,2.4848 +Small,12x12,ldr-rgb-09.png,24.2186,0.0939,0.0692,0.9471 +Small,12x12,ldr-rgb-10.png,28.0060,0.0438,0.0214,0.7612 +Small,12x12,ldr-rgba-00.png,21.7824,0.1174,0.0922,0.7109 +Small,12x12,ldr-rgba-01.png,24.6195,0.0828,0.0580,1.1302 +Small,12x12,ldr-rgba-02.png,20.2128,0.1294,0.1044,0.6279 +Small,12x12,ldr-xy-00.png,29.6851,0.0688,0.0420,1.5599 +Small,12x12,ldr-xy-01.png,31.6726,0.0687,0.0421,1.5561 +Small,12x12,ldr-xy-02.png,38.5322,0.0354,0.0090,7.3038 +Small,12x12,ldrs-rgba-00.png,21.7824,0.1179,0.0926,0.7075 +Small,12x12,ldrs-rgba-01.png,24.6214,0.0826,0.0577,1.1349 +Small,12x12,ldrs-rgba-02.png,20.2131,0.1290,0.1039,0.6306 +Small,3x3x3,ldr-l-00-3.dds,51.9633,0.0379,0.0279,9.3986 +Small,3x3x3,ldr-l-01-3.dds,54.3643,0.0154,0.0082,8.3671 +Small,6x6x6,ldr-l-00-3.dds,32.9606,0.1129,0.0840,3.1214 +Small,6x6x6,ldr-l-01-3.dds,40.8516,0.0518,0.0261,2.6398 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse4.1_thorough_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse4.1_thorough_results.csv new file mode 100644 index 0000000000..6a0341c7f3 --- /dev/null +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-3.3-sse4.1_thorough_results.csv @@ -0,0 +1,110 @@ +Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate +Small,4x4,hdr-rgb-00.hdr,32.5528,0.1805,0.0874,0.7498 +Small,4x4,ldr-rgb-00.png,39.1080,0.1018,0.0931,0.7037 +Small,4x4,ldr-rgb-01.png,40.3320,0.0997,0.0914,0.7172 +Small,4x4,ldr-rgb-02.png,35.3607,0.0947,0.0861,0.7612 +Small,4x4,ldr-rgb-03.png,47.6667,0.0958,0.0878,0.7464 +Small,4x4,ldr-rgb-04.png,42.3048,0.0901,0.0815,0.8044 +Small,4x4,ldr-rgb-05.png,37.9487,0.1059,0.0972,0.6745 +Small,4x4,ldr-rgb-06.png,35.4842,0.0842,0.0756,0.8674 +Small,4x4,ldr-rgb-07.png,39.7534,0.1141,0.1054,0.6217 +Small,4x4,ldr-rgb-08.png,45.6979,0.0899,0.0814,0.8047 +Small,4x4,ldr-rgb-09.png,42.2292,0.0953,0.0868,0.7549 +Small,4x4,ldr-rgb-10.png,44.9858,0.0176,0.0116,1.4044 +Small,4x4,ldr-rgba-00.png,36.7410,0.1056,0.0969,0.6766 +Small,4x4,ldr-rgba-01.png,39.0312,0.0890,0.0805,0.8146 +Small,4x4,ldr-rgba-02.png,34.9861,0.0859,0.0771,0.8496 +Small,4x4,ldr-xy-00.png,37.6609,0.1112,0.1009,0.6495 +Small,4x4,ldr-xy-01.png,44.9219,0.1154,0.1054,0.6218 +Small,4x4,ldr-xy-02.png,50.9725,0.1372,0.1265,0.5181 +Small,4x4,ldrs-rgba-00.png,36.7485,0.1059,0.0971,0.6748 +Small,4x4,ldrs-rgba-01.png,39.0531,0.0904,0.0819,0.8003 +Small,4x4,ldrs-rgba-02.png,34.9909,0.0860,0.0774,0.8469 +Small,5x5,hdr-rgb-00.hdr,27.4704,0.1947,0.0990,0.6621 +Small,5x5,ldr-rgb-00.png,35.3302,0.1235,0.1139,0.5756 +Small,5x5,ldr-rgb-01.png,36.5029,0.1183,0.1083,0.6052 +Small,5x5,ldr-rgb-02.png,31.1210,0.1097,0.1004,0.6531 +Small,5x5,ldr-rgb-03.png,44.4794,0.1105,0.1013,0.6467 +Small,5x5,ldr-rgb-04.png,37.8285,0.1093,0.0998,0.6569 +Small,5x5,ldr-rgb-05.png,33.6601,0.1273,0.1178,0.5564 +Small,5x5,ldr-rgb-06.png,31.1230,0.1049,0.0953,0.6877 +Small,5x5,ldr-rgb-07.png,36.6472,0.1399,0.1301,0.5036 +Small,5x5,ldr-rgb-08.png,42.2544,0.1048,0.0955,0.6863 +Small,5x5,ldr-rgb-09.png,37.6965,0.1154,0.1060,0.6182 +Small,5x5,ldr-rgb-10.png,40.7181,0.0225,0.0154,1.0562 +Small,5x5,ldr-rgba-00.png,33.1222,0.1307,0.1207,0.5429 +Small,5x5,ldr-rgba-01.png,35.3522,0.1094,0.0998,0.6564 +Small,5x5,ldr-rgba-02.png,31.1618,0.1088,0.0992,0.6606 +Small,5x5,ldr-xy-00.png,37.1024,0.1154,0.1042,0.6292 +Small,5x5,ldr-xy-01.png,41.0349,0.1401,0.1287,0.5091 +Small,5x5,ldr-xy-02.png,49.2182,0.1555,0.1437,0.4559 +Small,5x5,ldrs-rgba-00.png,33.1252,0.1323,0.1218,0.5383 +Small,5x5,ldrs-rgba-01.png,35.3599,0.1102,0.1006,0.6514 +Small,5x5,ldrs-rgba-02.png,31.1624,0.1098,0.1002,0.6543 +Small,6x6,hdr-rgb-00.hdr,24.8413,0.2077,0.1121,0.5844 +Small,6x6,ldr-rgb-00.png,32.6529,0.1476,0.1366,0.4799 +Small,6x6,ldr-rgb-01.png,33.1791,0.1419,0.1312,0.4997 +Small,6x6,ldr-rgb-02.png,27.4976,0.1405,0.1298,0.5050 +Small,6x6,ldr-rgb-03.png,42.5366,0.0945,0.0841,0.7795 +Small,6x6,ldr-rgb-04.png,34.3450,0.1357,0.1246,0.5258 +Small,6x6,ldr-rgb-05.png,30.2857,0.1550,0.1442,0.4545 +Small,6x6,ldr-rgb-06.png,27.5562,0.1344,0.1235,0.5305 +Small,6x6,ldr-rgb-07.png,34.4288,0.1617,0.1507,0.4350 +Small,6x6,ldr-rgb-08.png,39.9093,0.0927,0.0821,0.7986 +Small,6x6,ldr-rgb-09.png,33.8264,0.1315,0.1208,0.5425 +Small,6x6,ldr-rgb-10.png,37.1203,0.0283,0.0199,0.8167 +Small,6x6,ldr-rgba-00.png,30.4893,0.1559,0.1447,0.4528 +Small,6x6,ldr-rgba-01.png,32.2510,0.1302,0.1191,0.5502 +Small,6x6,ldr-rgba-02.png,27.8850,0.1340,0.1230,0.5328 +Small,6x6,ldr-xy-00.png,36.1615,0.0956,0.0826,0.7933 +Small,6x6,ldr-xy-01.png,37.9286,0.1351,0.1226,0.5347 +Small,6x6,ldr-xy-02.png,47.3977,0.1693,0.1564,0.4189 +Small,6x6,ldrs-rgba-00.png,30.4904,0.1569,0.1456,0.4503 +Small,6x6,ldrs-rgba-01.png,32.2574,0.1306,0.1196,0.5478 +Small,6x6,ldrs-rgba-02.png,27.8842,0.1340,0.1231,0.5324 +Small,8x8,hdr-rgb-00.hdr,21.7833,0.2390,0.1381,0.4745 +Small,8x8,ldr-rgb-00.png,28.9664,0.1881,0.1726,0.3797 +Small,8x8,ldr-rgb-01.png,29.0055,0.1756,0.1598,0.4100 +Small,8x8,ldr-rgb-02.png,23.1782,0.1822,0.1663,0.3941 +Small,8x8,ldr-rgb-03.png,39.4493,0.0614,0.0459,1.4276 +Small,8x8,ldr-rgb-04.png,29.7729,0.1633,0.1471,0.4454 +Small,8x8,ldr-rgb-05.png,26.0315,0.1859,0.1698,0.3860 +Small,8x8,ldr-rgb-06.png,23.2332,0.1794,0.1633,0.4014 +Small,8x8,ldr-rgb-07.png,31.1596,0.1860,0.1697,0.3863 +Small,8x8,ldr-rgb-08.png,36.5135,0.0906,0.0748,0.8764 +Small,8x8,ldr-rgb-09.png,29.1942,0.1392,0.1233,0.5314 +Small,8x8,ldr-rgb-10.png,32.3486,0.0383,0.0247,0.6583 +Small,8x8,ldr-rgba-00.png,26.5009,0.1918,0.1755,0.3734 +Small,8x8,ldr-rgba-01.png,28.3965,0.1519,0.1358,0.4825 +Small,8x8,ldr-rgba-02.png,23.9603,0.1648,0.1489,0.4402 +Small,8x8,ldr-xy-00.png,34.0892,0.1087,0.0908,0.7216 +Small,8x8,ldr-xy-01.png,34.9260,0.1110,0.0933,0.7024 +Small,8x8,ldr-xy-02.png,44.4817,0.1436,0.1254,0.5224 +Small,8x8,ldrs-rgba-00.png,26.5026,0.1924,0.1760,0.3723 +Small,8x8,ldrs-rgba-01.png,28.3995,0.1520,0.1358,0.4826 +Small,8x8,ldrs-rgba-02.png,23.9598,0.1664,0.1502,0.4363 +Small,12x12,hdr-rgb-00.hdr,18.9081,0.2886,0.1777,0.3687 +Small,12x12,ldr-rgb-00.png,24.9670,0.2289,0.2036,0.3218 +Small,12x12,ldr-rgb-01.png,25.1725,0.2099,0.1839,0.3563 +Small,12x12,ldr-rgb-02.png,19.3142,0.2470,0.2216,0.2957 +Small,12x12,ldr-rgb-03.png,36.1690,0.0697,0.0443,1.4799 +Small,12x12,ldr-rgb-04.png,25.0348,0.2071,0.1812,0.3616 +Small,12x12,ldr-rgb-05.png,21.7300,0.2347,0.2090,0.3136 +Small,12x12,ldr-rgb-06.png,19.2768,0.2396,0.2135,0.3070 +Small,12x12,ldr-rgb-07.png,27.0734,0.2108,0.1846,0.3550 +Small,12x12,ldr-rgb-08.png,32.2423,0.0964,0.0707,0.9275 +Small,12x12,ldr-rgb-09.png,24.4517,0.1978,0.1720,0.3810 +Small,12x12,ldr-rgb-10.png,28.1777,0.0622,0.0394,0.4125 +Small,12x12,ldr-rgba-00.png,22.2801,0.2291,0.2030,0.3228 +Small,12x12,ldr-rgba-01.png,24.7162,0.1620,0.1362,0.4813 +Small,12x12,ldr-rgba-02.png,20.2326,0.2098,0.1839,0.3563 +Small,12x12,ldr-xy-00.png,30.3073,0.1409,0.1131,0.5792 +Small,12x12,ldr-xy-01.png,32.1323,0.1055,0.0777,0.8430 +Small,12x12,ldr-xy-02.png,40.2419,0.0797,0.0518,1.2649 +Small,12x12,ldrs-rgba-00.png,22.2801,0.2293,0.2029,0.3230 +Small,12x12,ldrs-rgba-01.png,24.7180,0.1614,0.1355,0.4837 +Small,12x12,ldrs-rgba-02.png,20.2327,0.2114,0.1855,0.3534 +Small,3x3x3,ldr-l-00-3.dds,52.4282,0.0731,0.0632,4.1500 +Small,3x3x3,ldr-l-01-3.dds,55.4466,0.0320,0.0249,2.7713 +Small,6x6x6,ldr-l-00-3.dds,33.2662,0.1570,0.1279,2.0489 +Small,6x6x6,ldr-l-01-3.dds,41.5787,0.0532,0.0276,2.4931 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_fast_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_fast_results.csv index 480076cd2a..e3fedd8fe8 100644 --- a/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_fast_results.csv +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_fast_results.csv @@ -1,110 +1,110 @@ Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate -Small,4x4,hdr-rgb-00.hdr,31.4975,0.1226,0.0253,2.5913 -Small,4x4,ldr-rgb-00.png,38.0904,0.0226,0.0143,4.5978 -Small,4x4,ldr-rgb-01.png,39.8001,0.0200,0.0121,5.4242 -Small,4x4,ldr-rgb-02.png,35.0327,0.0273,0.0194,3.3783 -Small,4x4,ldr-rgb-03.png,45.9660,0.0124,0.0048,13.7942 -Small,4x4,ldr-rgb-04.png,41.9046,0.0167,0.0086,7.6408 -Small,4x4,ldr-rgb-05.png,37.1767,0.0268,0.0187,3.5048 -Small,4x4,ldr-rgb-06.png,35.2077,0.0259,0.0177,3.7033 -Small,4x4,ldr-rgb-07.png,37.9946,0.0279,0.0195,3.3533 -Small,4x4,ldr-rgb-08.png,43.6044,0.0151,0.0073,9.0009 -Small,4x4,ldr-rgb-09.png,41.8518,0.0169,0.0089,7.3314 -Small,4x4,ldr-rgb-10.png,44.3436,0.0083,0.0026,6.2501 -Small,4x4,ldr-rgba-00.png,35.5159,0.0277,0.0191,3.4310 -Small,4x4,ldr-rgba-01.png,38.7948,0.0202,0.0119,5.4970 -Small,4x4,ldr-rgba-02.png,34.8314,0.0250,0.0168,3.8947 -Small,4x4,ldr-xy-00.png,37.4602,0.0153,0.0073,8.9226 -Small,4x4,ldr-xy-01.png,43.8681,0.0166,0.0089,7.3967 -Small,4x4,ldr-xy-02.png,47.3852,0.0138,0.0058,11.3642 -Small,4x4,ldrs-rgba-00.png,35.5232,0.0277,0.0192,3.4158 -Small,4x4,ldrs-rgba-01.png,38.8139,0.0201,0.0120,5.4582 -Small,4x4,ldrs-rgba-02.png,34.8369,0.0249,0.0166,3.9427 -Small,5x5,hdr-rgb-00.hdr,25.7106,0.1264,0.0289,2.2704 -Small,5x5,ldr-rgb-00.png,34.2754,0.0232,0.0143,4.5942 -Small,5x5,ldr-rgb-01.png,36.1748,0.0189,0.0102,6.4168 -Small,5x5,ldr-rgb-02.png,31.0231,0.0250,0.0164,4.0019 -Small,5x5,ldr-rgb-03.png,42.5699,0.0125,0.0041,15.7921 -Small,5x5,ldr-rgb-04.png,37.2518,0.0175,0.0087,7.5423 -Small,5x5,ldr-rgb-05.png,33.1162,0.0282,0.0194,3.3789 -Small,5x5,ldr-rgb-06.png,31.0304,0.0249,0.0159,4.1233 -Small,5x5,ldr-rgb-07.png,34.5142,0.0250,0.0159,4.1308 -Small,5x5,ldr-rgb-08.png,39.8113,0.0148,0.0063,10.4855 -Small,5x5,ldr-rgb-09.png,37.2919,0.0176,0.0089,7.3373 -Small,5x5,ldr-rgb-10.png,40.1485,0.0090,0.0026,6.2450 -Small,5x5,ldr-rgba-00.png,32.0068,0.0298,0.0206,3.1880 -Small,5x5,ldr-rgba-01.png,35.1482,0.0210,0.0120,5.4509 -Small,5x5,ldr-rgba-02.png,31.1093,0.0268,0.0179,3.6709 -Small,5x5,ldr-xy-00.png,36.5938,0.0154,0.0067,9.7147 -Small,5x5,ldr-xy-01.png,39.9608,0.0164,0.0080,8.2043 -Small,5x5,ldr-xy-02.png,43.3434,0.0147,0.0058,11.2817 -Small,5x5,ldrs-rgba-00.png,32.0093,0.0300,0.0207,3.1600 -Small,5x5,ldrs-rgba-01.png,35.1560,0.0210,0.0120,5.4396 -Small,5x5,ldrs-rgba-02.png,31.1100,0.0269,0.0180,3.6454 -Small,6x6,hdr-rgb-00.hdr,23.9641,0.1303,0.0327,2.0061 -Small,6x6,ldr-rgb-00.png,31.6280,0.0292,0.0192,3.4123 -Small,6x6,ldr-rgb-01.png,32.9107,0.0245,0.0148,4.4320 -Small,6x6,ldr-rgb-02.png,27.4313,0.0327,0.0229,2.8582 -Small,6x6,ldr-rgb-03.png,40.5430,0.0143,0.0048,13.6193 -Small,6x6,ldr-rgb-04.png,33.9243,0.0215,0.0116,5.6400 -Small,6x6,ldr-rgb-05.png,29.9754,0.0368,0.0270,2.4305 -Small,6x6,ldr-rgb-06.png,27.4773,0.0328,0.0229,2.8608 -Small,6x6,ldr-rgb-07.png,33.2080,0.0285,0.0184,3.5709 -Small,6x6,ldr-rgb-08.png,37.8024,0.0168,0.0072,9.1516 -Small,6x6,ldr-rgb-09.png,33.4950,0.0221,0.0124,5.3019 -Small,6x6,ldr-rgb-10.png,36.6619,0.0104,0.0030,5.3738 -Small,6x6,ldr-rgba-00.png,29.4060,0.0355,0.0252,2.6030 -Small,6x6,ldr-rgba-01.png,32.0746,0.0244,0.0143,4.5750 -Small,6x6,ldr-rgba-02.png,27.8365,0.0321,0.0220,2.9754 -Small,6x6,ldr-xy-00.png,35.5944,0.0170,0.0073,9.0183 -Small,6x6,ldr-xy-01.png,37.0477,0.0187,0.0092,7.1436 -Small,6x6,ldr-xy-02.png,41.7356,0.0148,0.0050,13.1464 -Small,6x6,ldrs-rgba-00.png,29.4063,0.0358,0.0254,2.5782 -Small,6x6,ldrs-rgba-01.png,32.0804,0.0244,0.0145,4.5232 -Small,6x6,ldrs-rgba-02.png,27.8362,0.0322,0.0222,2.9488 -Small,8x8,hdr-rgb-00.hdr,21.3024,0.1424,0.0394,1.6653 -Small,8x8,ldr-rgb-00.png,27.9849,0.0373,0.0229,2.8615 -Small,8x8,ldr-rgb-01.png,28.7558,0.0325,0.0185,3.5446 -Small,8x8,ldr-rgb-02.png,23.0846,0.0440,0.0299,2.1938 -Small,8x8,ldr-rgb-03.png,37.2835,0.0191,0.0052,12.5498 -Small,8x8,ldr-rgb-04.png,29.3432,0.0305,0.0160,4.0863 -Small,8x8,ldr-rgb-05.png,25.8126,0.0477,0.0334,1.9600 -Small,8x8,ldr-rgb-06.png,23.1440,0.0439,0.0295,2.2235 -Small,8x8,ldr-rgb-07.png,29.8731,0.0303,0.0156,4.1889 -Small,8x8,ldr-rgb-08.png,34.3107,0.0226,0.0086,7.6363 -Small,8x8,ldr-rgb-09.png,28.6989,0.0312,0.0170,3.8528 -Small,8x8,ldr-rgb-10.png,32.0218,0.0155,0.0037,4.4427 -Small,8x8,ldr-rgba-00.png,24.9502,0.0438,0.0291,2.2531 -Small,8x8,ldr-rgba-01.png,28.2387,0.0320,0.0177,3.6980 -Small,8x8,ldr-rgba-02.png,23.9210,0.0434,0.0289,2.2676 -Small,8x8,ldr-xy-00.png,33.1405,0.0235,0.0094,6.9690 -Small,8x8,ldr-xy-01.png,34.1679,0.0235,0.0097,6.7341 -Small,8x8,ldr-xy-02.png,39.9044,0.0175,0.0034,19.4700 -Small,8x8,ldrs-rgba-00.png,24.9497,0.0439,0.0293,2.2386 -Small,8x8,ldrs-rgba-01.png,28.2412,0.0323,0.0179,3.6578 -Small,8x8,ldrs-rgba-02.png,23.9215,0.0435,0.0291,2.2489 -Small,12x12,hdr-rgb-00.hdr,18.6524,0.1613,0.0509,1.2887 -Small,12x12,ldr-rgb-00.png,23.7294,0.0380,0.0164,3.9947 -Small,12x12,ldr-rgb-01.png,24.7900,0.0335,0.0120,5.4746 -Small,12x12,ldr-rgb-02.png,19.2486,0.0564,0.0347,1.8878 -Small,12x12,ldr-rgb-03.png,33.2612,0.0250,0.0037,17.6125 -Small,12x12,ldr-rgb-04.png,24.5777,0.0342,0.0124,5.2728 -Small,12x12,ldr-rgb-05.png,21.4909,0.0494,0.0276,2.3736 -Small,12x12,ldr-rgb-06.png,19.2112,0.0582,0.0363,1.8037 -Small,12x12,ldr-rgb-07.png,25.3778,0.0324,0.0102,6.4176 -Small,12x12,ldr-rgb-08.png,30.0827,0.0276,0.0060,10.9300 -Small,12x12,ldr-rgb-09.png,23.7732,0.0393,0.0177,3.7033 -Small,12x12,ldr-rgb-10.png,27.3265,0.0231,0.0038,4.3304 -Small,12x12,ldr-rgba-00.png,21.1697,0.0484,0.0262,2.5010 -Small,12x12,ldr-rgba-01.png,24.4976,0.0354,0.0137,4.7763 -Small,12x12,ldr-rgba-02.png,20.2072,0.0585,0.0369,1.7755 -Small,12x12,ldr-xy-00.png,28.8225,0.0306,0.0089,7.3644 -Small,12x12,ldr-xy-01.png,31.1639,0.0296,0.0082,8.0266 -Small,12x12,ldr-xy-02.png,38.1381,0.0238,0.0022,29.2330 -Small,12x12,ldrs-rgba-00.png,21.1701,0.0487,0.0264,2.4779 -Small,12x12,ldrs-rgba-01.png,24.4991,0.0358,0.0139,4.7030 -Small,12x12,ldrs-rgba-02.png,20.2075,0.0584,0.0367,1.7849 -Small,3x3x3,ldr-l-00-3.dds,50.7904,0.0241,0.0148,17.7198 -Small,3x3x3,ldr-l-01-3.dds,53.8713,0.0130,0.0059,11.5871 -Small,6x6x6,ldr-l-00-3.dds,32.5329,0.0713,0.0431,6.0778 -Small,6x6x6,ldr-l-01-3.dds,40.7310,0.0438,0.0182,3.7866 +Small,4x4,hdr-rgb-00.hdr,33.6913,0.1164,0.0220,2.9762 +Small,4x4,ldr-rgb-00.png,38.1137,0.0219,0.0138,4.7390 +Small,4x4,ldr-rgb-01.png,39.8112,0.0200,0.0124,5.2962 +Small,4x4,ldr-rgb-02.png,35.0426,0.0269,0.0191,3.4384 +Small,4x4,ldr-rgb-03.png,45.9764,0.0122,0.0044,14.7506 +Small,4x4,ldr-rgb-04.png,41.9071,0.0167,0.0086,7.6072 +Small,4x4,ldr-rgb-05.png,37.2310,0.0262,0.0183,3.5902 +Small,4x4,ldr-rgb-06.png,35.2105,0.0260,0.0177,3.7026 +Small,4x4,ldr-rgb-07.png,38.0320,0.0274,0.0191,3.4375 +Small,4x4,ldr-rgb-08.png,43.6307,0.0151,0.0070,9.3132 +Small,4x4,ldr-rgb-09.png,41.8529,0.0167,0.0086,7.6072 +Small,4x4,ldr-rgb-10.png,44.3419,0.0081,0.0023,6.9588 +Small,4x4,ldr-rgba-00.png,35.5198,0.0265,0.0181,3.6130 +Small,4x4,ldr-rgba-01.png,38.7950,0.0194,0.0114,5.7503 +Small,4x4,ldr-rgba-02.png,34.8314,0.0240,0.0158,4.1447 +Small,4x4,ldr-xy-00.png,37.5735,0.0180,0.0084,7.7825 +Small,4x4,ldr-xy-01.png,44.1199,0.0194,0.0100,6.5379 +Small,4x4,ldr-xy-02.png,48.1784,0.0160,0.0060,10.9408 +Small,4x4,ldrs-rgba-00.png,35.5272,0.0267,0.0181,3.6124 +Small,4x4,ldrs-rgba-01.png,38.8141,0.0196,0.0113,5.7900 +Small,4x4,ldrs-rgba-02.png,34.8368,0.0242,0.0159,4.1277 +Small,5x5,hdr-rgb-00.hdr,29.4815,0.1225,0.0261,2.5147 +Small,5x5,ldr-rgb-00.png,34.3118,0.0237,0.0147,4.4713 +Small,5x5,ldr-rgb-01.png,36.1857,0.0194,0.0107,6.0974 +Small,5x5,ldr-rgb-02.png,31.0217,0.0256,0.0169,3.8806 +Small,5x5,ldr-rgb-03.png,42.6365,0.0127,0.0042,15.7613 +Small,5x5,ldr-rgb-04.png,37.2517,0.0174,0.0085,7.6910 +Small,5x5,ldr-rgb-05.png,33.1895,0.0290,0.0200,3.2742 +Small,5x5,ldr-rgb-06.png,31.0302,0.0257,0.0166,3.9563 +Small,5x5,ldr-rgb-07.png,35.1808,0.0259,0.0167,3.9358 +Small,5x5,ldr-rgb-08.png,40.0345,0.0152,0.0066,10.0054 +Small,5x5,ldr-rgb-09.png,37.2922,0.0178,0.0090,7.2608 +Small,5x5,ldr-rgb-10.png,40.1319,0.0090,0.0025,6.6274 +Small,5x5,ldr-rgba-00.png,32.0145,0.0292,0.0198,3.3139 +Small,5x5,ldr-rgba-01.png,35.1464,0.0203,0.0112,5.8363 +Small,5x5,ldr-rgba-02.png,31.1088,0.0260,0.0173,3.7974 +Small,5x5,ldr-xy-00.png,36.6688,0.0179,0.0068,9.6959 +Small,5x5,ldr-xy-01.png,39.8904,0.0190,0.0087,7.5503 +Small,5x5,ldr-xy-02.png,43.9165,0.0170,0.0063,10.4006 +Small,5x5,ldrs-rgba-00.png,32.0171,0.0294,0.0198,3.3088 +Small,5x5,ldrs-rgba-01.png,35.1542,0.0207,0.0116,5.6648 +Small,5x5,ldrs-rgba-02.png,31.1095,0.0261,0.0171,3.8415 +Small,6x6,hdr-rgb-00.hdr,27.0035,0.1259,0.0283,2.3180 +Small,6x6,ldr-rgb-00.png,31.5946,0.0281,0.0181,3.6216 +Small,6x6,ldr-rgb-01.png,32.8920,0.0235,0.0137,4.7861 +Small,6x6,ldr-rgb-02.png,27.4156,0.0304,0.0207,3.1718 +Small,6x6,ldr-rgb-03.png,40.4853,0.0137,0.0042,15.7163 +Small,6x6,ldr-rgb-04.png,33.9171,0.0208,0.0110,5.9708 +Small,6x6,ldr-rgb-05.png,29.9434,0.0346,0.0246,2.6644 +Small,6x6,ldr-rgb-06.png,27.4669,0.0306,0.0206,3.1858 +Small,6x6,ldr-rgb-07.png,32.8865,0.0272,0.0170,3.8628 +Small,6x6,ldr-rgb-08.png,37.6403,0.0163,0.0063,10.3419 +Small,6x6,ldr-rgb-09.png,33.4747,0.0213,0.0113,5.8228 +Small,6x6,ldr-rgb-10.png,36.6629,0.0103,0.0028,5.7460 +Small,6x6,ldr-rgba-00.png,29.4877,0.0344,0.0239,2.7447 +Small,6x6,ldr-rgba-01.png,32.0604,0.0239,0.0138,4.7380 +Small,6x6,ldr-rgba-02.png,27.8279,0.0311,0.0212,3.0979 +Small,6x6,ldr-xy-00.png,35.6371,0.0196,0.0078,8.4076 +Small,6x6,ldr-xy-01.png,37.1200,0.0221,0.0108,6.0512 +Small,6x6,ldr-xy-02.png,41.9443,0.0175,0.0058,11.3915 +Small,6x6,ldrs-rgba-00.png,29.4872,0.0346,0.0245,2.6766 +Small,6x6,ldrs-rgba-01.png,32.0667,0.0237,0.0137,4.7888 +Small,6x6,ldrs-rgba-02.png,27.8274,0.0311,0.0209,3.1318 +Small,8x8,hdr-rgb-00.hdr,23.7350,0.1380,0.0356,1.8431 +Small,8x8,ldr-rgb-00.png,27.9835,0.0357,0.0216,3.0334 +Small,8x8,ldr-rgb-01.png,28.7571,0.0303,0.0165,3.9821 +Small,8x8,ldr-rgb-02.png,23.0867,0.0407,0.0265,2.4698 +Small,8x8,ldr-rgb-03.png,37.2367,0.0183,0.0047,13.9440 +Small,8x8,ldr-rgb-04.png,29.3432,0.0295,0.0153,4.2954 +Small,8x8,ldr-rgb-05.png,25.7895,0.0452,0.0310,2.1165 +Small,8x8,ldr-rgb-06.png,23.1473,0.0410,0.0266,2.4644 +Small,8x8,ldr-rgb-07.png,29.6482,0.0293,0.0150,4.3636 +Small,8x8,ldr-rgb-08.png,34.2191,0.0214,0.0074,8.8765 +Small,8x8,ldr-rgb-09.png,28.6989,0.0301,0.0159,4.1212 +Small,8x8,ldr-rgb-10.png,32.0072,0.0153,0.0035,4.6263 +Small,8x8,ldr-rgba-00.png,25.3758,0.0434,0.0292,2.2452 +Small,8x8,ldr-rgba-01.png,28.2387,0.0312,0.0174,3.7734 +Small,8x8,ldr-rgba-02.png,23.9237,0.0421,0.0276,2.3718 +Small,8x8,ldr-xy-00.png,33.4321,0.0256,0.0095,6.8928 +Small,8x8,ldr-xy-01.png,34.2983,0.0271,0.0112,5.8520 +Small,8x8,ldr-xy-02.png,39.8988,0.0197,0.0038,17.0308 +Small,8x8,ldrs-rgba-00.png,25.3756,0.0438,0.0293,2.2396 +Small,8x8,ldrs-rgba-01.png,28.2413,0.0314,0.0175,3.7550 +Small,8x8,ldrs-rgba-02.png,23.9242,0.0434,0.0291,2.2508 +Small,12x12,hdr-rgb-00.hdr,20.5670,0.1559,0.0446,1.4686 +Small,12x12,ldr-rgb-00.png,23.7780,0.0385,0.0166,3.9587 +Small,12x12,ldr-rgb-01.png,24.7513,0.0330,0.0116,5.6686 +Small,12x12,ldr-rgb-02.png,19.2189,0.0504,0.0289,2.2657 +Small,12x12,ldr-rgb-03.png,33.2563,0.0246,0.0033,19.5922 +Small,12x12,ldr-rgb-04.png,24.5540,0.0332,0.0115,5.7207 +Small,12x12,ldr-rgb-05.png,21.4878,0.0466,0.0252,2.5969 +Small,12x12,ldr-rgb-06.png,19.2103,0.0524,0.0303,2.1598 +Small,12x12,ldr-rgb-07.png,25.3464,0.0319,0.0100,6.5754 +Small,12x12,ldr-rgb-08.png,30.1669,0.0269,0.0049,13.2561 +Small,12x12,ldr-rgb-09.png,23.7100,0.0364,0.0154,4.2692 +Small,12x12,ldr-rgb-10.png,27.3155,0.0233,0.0042,3.9161 +Small,12x12,ldr-rgba-00.png,21.3646,0.0490,0.0268,2.4441 +Small,12x12,ldr-rgba-01.png,24.4862,0.0348,0.0129,5.0713 +Small,12x12,ldr-rgba-02.png,20.1698,0.0577,0.0355,1.8437 +Small,12x12,ldr-xy-00.png,29.0421,0.0322,0.0088,7.4245 +Small,12x12,ldr-xy-01.png,30.4304,0.0303,0.0076,8.6107 +Small,12x12,ldr-xy-02.png,37.9943,0.0253,0.0022,30.1434 +Small,12x12,ldrs-rgba-00.png,21.3674,0.0497,0.0275,2.3810 +Small,12x12,ldrs-rgba-01.png,24.4878,0.0353,0.0136,4.8181 +Small,12x12,ldrs-rgba-02.png,20.1700,0.0569,0.0348,1.8824 +Small,3x3x3,ldr-l-00-3.dds,50.8014,0.0234,0.0139,18.9150 +Small,3x3x3,ldr-l-01-3.dds,53.8638,0.0128,0.0059,11.5913 +Small,6x6x6,ldr-l-00-3.dds,32.5354,0.0697,0.0419,6.2606 +Small,6x6x6,ldr-l-01-3.dds,40.7700,0.0429,0.0169,4.0741 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_fastest_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_fastest_results.csv index 7b60f924d7..f2b177bddb 100644 --- a/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_fastest_results.csv +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_fastest_results.csv @@ -1,110 +1,110 @@ Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate -Small,4x4,hdr-rgb-00.hdr,30.9147,0.1146,0.0184,3.5674 -Small,4x4,ldr-rgb-00.png,36.6938,0.0161,0.0079,8.2643 -Small,4x4,ldr-rgb-01.png,39.3406,0.0155,0.0076,8.5771 -Small,4x4,ldr-rgb-02.png,34.6215,0.0189,0.0110,5.9681 -Small,4x4,ldr-rgb-03.png,45.0796,0.0113,0.0036,18.3313 -Small,4x4,ldr-rgb-04.png,41.6025,0.0140,0.0060,10.9408 -Small,4x4,ldr-rgb-05.png,36.3772,0.0189,0.0108,6.0502 -Small,4x4,ldr-rgb-06.png,34.6871,0.0187,0.0106,6.1791 -Small,4x4,ldr-rgb-07.png,36.6076,0.0185,0.0100,6.5385 -Small,4x4,ldr-rgb-08.png,42.1072,0.0127,0.0047,13.8554 -Small,4x4,ldr-rgb-09.png,41.6247,0.0140,0.0061,10.7614 -Small,4x4,ldr-rgb-10.png,43.8009,0.0078,0.0021,7.6575 -Small,4x4,ldr-rgba-00.png,34.2380,0.0186,0.0101,6.5048 -Small,4x4,ldr-rgba-01.png,38.4758,0.0168,0.0087,7.5468 -Small,4x4,ldr-rgba-02.png,34.5086,0.0203,0.0121,5.4028 -Small,4x4,ldr-xy-00.png,37.2989,0.0134,0.0054,12.0672 -Small,4x4,ldr-xy-01.png,43.1910,0.0139,0.0061,10.6857 -Small,4x4,ldr-xy-02.png,47.3836,0.0127,0.0046,14.3502 -Small,4x4,ldrs-rgba-00.png,34.2413,0.0186,0.0102,6.4429 -Small,4x4,ldrs-rgba-01.png,38.4921,0.0170,0.0088,7.4177 -Small,4x4,ldrs-rgba-02.png,34.5121,0.0204,0.0122,5.3767 -Small,5x5,hdr-rgb-00.hdr,25.0360,0.1179,0.0202,3.2463 -Small,5x5,ldr-rgb-00.png,33.4498,0.0172,0.0083,7.8683 -Small,5x5,ldr-rgb-01.png,35.9953,0.0159,0.0074,8.8610 -Small,5x5,ldr-rgb-02.png,30.8821,0.0201,0.0115,5.7171 -Small,5x5,ldr-rgb-03.png,42.2089,0.0119,0.0034,18.9964 -Small,5x5,ldr-rgb-04.png,36.9254,0.0156,0.0068,9.6662 -Small,5x5,ldr-rgb-05.png,32.5878,0.0209,0.0122,5.3732 -Small,5x5,ldr-rgb-06.png,30.8755,0.0202,0.0113,5.8120 -Small,5x5,ldr-rgb-07.png,33.8868,0.0192,0.0102,6.4415 -Small,5x5,ldr-rgb-08.png,39.1027,0.0131,0.0045,14.5315 -Small,5x5,ldr-rgb-09.png,36.9985,0.0151,0.0065,10.0298 -Small,5x5,ldr-rgb-10.png,39.7657,0.0086,0.0022,7.3751 -Small,5x5,ldr-rgba-00.png,30.6398,0.0214,0.0123,5.3447 -Small,5x5,ldr-rgba-01.png,34.9961,0.0181,0.0092,7.0964 -Small,5x5,ldr-rgba-02.png,31.0034,0.0224,0.0135,4.8459 -Small,5x5,ldr-xy-00.png,36.3709,0.0136,0.0050,13.0422 -Small,5x5,ldr-xy-01.png,39.0832,0.0141,0.0056,11.6159 -Small,5x5,ldr-xy-02.png,43.2130,0.0135,0.0047,14.0244 -Small,5x5,ldrs-rgba-00.png,30.6423,0.0204,0.0113,5.7940 -Small,5x5,ldrs-rgba-01.png,35.0029,0.0179,0.0090,7.2671 -Small,5x5,ldrs-rgba-02.png,31.0046,0.0226,0.0136,4.8338 -Small,6x6,hdr-rgb-00.hdr,23.2254,0.1191,0.0215,3.0422 -Small,6x6,ldr-rgb-00.png,31.1281,0.0196,0.0100,6.5391 -Small,6x6,ldr-rgb-01.png,32.8111,0.0183,0.0091,7.2344 -Small,6x6,ldr-rgb-02.png,27.3448,0.0232,0.0139,4.7054 -Small,6x6,ldr-rgb-03.png,40.2487,0.0126,0.0035,18.7617 -Small,6x6,ldr-rgb-04.png,33.7490,0.0174,0.0079,8.3072 -Small,6x6,ldr-rgb-05.png,29.5575,0.0240,0.0147,4.4606 -Small,6x6,ldr-rgb-06.png,27.3891,0.0234,0.0140,4.6861 -Small,6x6,ldr-rgb-07.png,32.1692,0.0208,0.0112,5.8457 -Small,6x6,ldr-rgb-08.png,37.0701,0.0140,0.0048,13.6994 -Small,6x6,ldr-rgb-09.png,33.3167,0.0171,0.0078,8.3968 -Small,6x6,ldr-rgb-10.png,36.5014,0.0094,0.0025,6.4868 -Small,6x6,ldr-rgba-00.png,28.1925,0.0226,0.0128,5.1385 -Small,6x6,ldr-rgba-01.png,31.9799,0.0192,0.0097,6.7313 -Small,6x6,ldr-rgba-02.png,27.7656,0.0238,0.0143,4.5894 -Small,6x6,ldr-xy-00.png,35.4115,0.0147,0.0053,12.2839 -Small,6x6,ldr-xy-01.png,36.2778,0.0154,0.0063,10.3814 -Small,6x6,ldr-xy-02.png,41.6240,0.0134,0.0040,16.2698 -Small,6x6,ldrs-rgba-00.png,28.1941,0.0226,0.0127,5.1437 -Small,6x6,ldrs-rgba-01.png,31.9869,0.0192,0.0098,6.6934 -Small,6x6,ldrs-rgba-02.png,27.7642,0.0239,0.0144,4.5442 -Small,8x8,hdr-rgb-00.hdr,21.1594,0.1313,0.0290,2.2590 -Small,8x8,ldr-rgb-00.png,27.5822,0.0280,0.0143,4.5926 -Small,8x8,ldr-rgb-01.png,28.6701,0.0265,0.0131,5.0042 -Small,8x8,ldr-rgb-02.png,23.0159,0.0342,0.0207,3.1669 -Small,8x8,ldr-rgb-03.png,37.0512,0.0175,0.0044,14.8880 -Small,8x8,ldr-rgb-04.png,29.1157,0.0253,0.0117,5.5966 -Small,8x8,ldr-rgb-05.png,25.5532,0.0347,0.0210,3.1155 -Small,8x8,ldr-rgb-06.png,23.0482,0.0344,0.0208,3.1446 -Small,8x8,ldr-rgb-07.png,29.6000,0.0253,0.0115,5.6795 -Small,8x8,ldr-rgb-08.png,33.9070,0.0194,0.0060,10.8360 -Small,8x8,ldr-rgb-09.png,28.4838,0.0249,0.0115,5.6859 -Small,8x8,ldr-rgb-10.png,31.9020,0.0145,0.0034,4.8466 -Small,8x8,ldr-rgba-00.png,24.4867,0.0323,0.0183,3.5720 -Small,8x8,ldr-rgba-01.png,28.1329,0.0264,0.0129,5.0985 -Small,8x8,ldr-rgba-02.png,23.8668,0.0348,0.0210,3.1184 -Small,8x8,ldr-xy-00.png,33.0098,0.0206,0.0071,9.1709 -Small,8x8,ldr-xy-01.png,33.9350,0.0206,0.0074,8.9081 -Small,8x8,ldr-xy-02.png,39.8287,0.0168,0.0032,20.5501 -Small,8x8,ldrs-rgba-00.png,24.4866,0.0322,0.0183,3.5877 -Small,8x8,ldrs-rgba-01.png,28.1351,0.0266,0.0130,5.0584 -Small,8x8,ldrs-rgba-02.png,23.8664,0.0348,0.0210,3.1197 -Small,12x12,hdr-rgb-00.hdr,18.5818,0.1432,0.0350,1.8720 -Small,12x12,ldr-rgb-00.png,23.6269,0.0308,0.0115,5.7172 -Small,12x12,ldr-rgb-01.png,24.7328,0.0276,0.0088,7.4882 -Small,12x12,ldr-rgb-02.png,19.2124,0.0429,0.0239,2.7454 -Small,12x12,ldr-rgb-03.png,33.1483,0.0217,0.0031,20.9239 -Small,12x12,ldr-rgb-04.png,24.4225,0.0277,0.0088,7.4736 -Small,12x12,ldr-rgb-05.png,21.3932,0.0373,0.0183,3.5812 -Small,12x12,ldr-rgb-06.png,19.1615,0.0442,0.0250,2.6181 -Small,12x12,ldr-rgb-07.png,25.2980,0.0273,0.0078,8.3978 -Small,12x12,ldr-rgb-08.png,29.9138,0.0235,0.0047,13.9433 -Small,12x12,ldr-rgb-09.png,23.6613,0.0314,0.0125,5.2484 -Small,12x12,ldr-rgb-10.png,27.2791,0.0195,0.0027,5.9176 -Small,12x12,ldr-rgba-00.png,21.0528,0.0371,0.0177,3.6942 -Small,12x12,ldr-rgba-01.png,24.4407,0.0294,0.0103,6.3752 -Small,12x12,ldr-rgba-02.png,20.1734,0.0448,0.0256,2.5624 -Small,12x12,ldr-xy-00.png,28.8521,0.0257,0.0069,9.5160 -Small,12x12,ldr-xy-01.png,29.9915,0.0253,0.0065,10.1132 -Small,12x12,ldr-xy-02.png,38.1333,0.0211,0.0023,28.5676 -Small,12x12,ldrs-rgba-00.png,21.0534,0.0375,0.0181,3.6282 -Small,12x12,ldrs-rgba-01.png,24.4416,0.0293,0.0102,6.4007 -Small,12x12,ldrs-rgba-02.png,20.1732,0.0450,0.0257,2.5514 -Small,3x3x3,ldr-l-00-3.dds,50.6609,0.0228,0.0135,19.3477 -Small,3x3x3,ldr-l-01-3.dds,53.8054,0.0127,0.0057,12.1064 -Small,6x6x6,ldr-l-00-3.dds,32.5176,0.0707,0.0425,6.1631 -Small,6x6x6,ldr-l-01-3.dds,40.7290,0.0438,0.0182,3.7960 +Small,4x4,hdr-rgb-00.hdr,32.7337,0.1082,0.0138,4.7448 +Small,4x4,ldr-rgb-00.png,36.8762,0.0163,0.0082,7.9495 +Small,4x4,ldr-rgb-01.png,39.3957,0.0158,0.0079,8.3443 +Small,4x4,ldr-rgb-02.png,34.6464,0.0196,0.0113,5.8223 +Small,4x4,ldr-rgb-03.png,45.1653,0.0110,0.0034,19.5170 +Small,4x4,ldr-rgb-04.png,41.6229,0.0144,0.0061,10.7404 +Small,4x4,ldr-rgb-05.png,36.6722,0.0195,0.0115,5.7221 +Small,4x4,ldr-rgb-06.png,34.6955,0.0190,0.0111,5.8855 +Small,4x4,ldr-rgb-07.png,36.8814,0.0190,0.0108,6.0953 +Small,4x4,ldr-rgb-08.png,42.5044,0.0128,0.0047,13.9645 +Small,4x4,ldr-rgb-09.png,41.6361,0.0143,0.0064,10.2981 +Small,4x4,ldr-rgb-10.png,43.7977,0.0077,0.0020,8.1480 +Small,4x4,ldr-rgba-00.png,34.2724,0.0185,0.0100,6.5792 +Small,4x4,ldr-rgba-01.png,38.4756,0.0166,0.0084,7.8244 +Small,4x4,ldr-rgba-02.png,34.5086,0.0203,0.0121,5.4211 +Small,4x4,ldr-xy-00.png,37.3648,0.0159,0.0057,11.4714 +Small,4x4,ldr-xy-01.png,43.1173,0.0164,0.0065,10.0313 +Small,4x4,ldr-xy-02.png,48.1750,0.0145,0.0044,14.7839 +Small,4x4,ldrs-rgba-00.png,34.2757,0.0185,0.0101,6.4945 +Small,4x4,ldrs-rgba-01.png,38.4921,0.0167,0.0085,7.7448 +Small,4x4,ldrs-rgba-02.png,34.5121,0.0201,0.0117,5.6023 +Small,5x5,hdr-rgb-00.hdr,28.8190,0.1112,0.0156,4.2140 +Small,5x5,ldr-rgb-00.png,33.4612,0.0176,0.0088,7.4872 +Small,5x5,ldr-rgb-01.png,36.0042,0.0161,0.0073,8.9774 +Small,5x5,ldr-rgb-02.png,30.8801,0.0206,0.0120,5.4673 +Small,5x5,ldr-rgb-03.png,42.2492,0.0119,0.0036,18.3582 +Small,5x5,ldr-rgb-04.png,36.9256,0.0153,0.0065,10.0622 +Small,5x5,ldr-rgb-05.png,32.6202,0.0216,0.0129,5.0854 +Small,5x5,ldr-rgb-06.png,30.8756,0.0205,0.0118,5.5459 +Small,5x5,ldr-rgb-07.png,34.2716,0.0202,0.0111,5.9282 +Small,5x5,ldr-rgb-08.png,39.3063,0.0129,0.0043,15.2625 +Small,5x5,ldr-rgb-09.png,36.9989,0.0155,0.0067,9.8374 +Small,5x5,ldr-rgb-10.png,39.7491,0.0085,0.0020,8.2148 +Small,5x5,ldr-rgba-00.png,30.7649,0.0202,0.0108,6.0654 +Small,5x5,ldr-rgba-01.png,34.9945,0.0174,0.0087,7.5649 +Small,5x5,ldr-rgba-02.png,31.0031,0.0223,0.0133,4.9139 +Small,5x5,ldr-xy-00.png,36.5149,0.0164,0.0052,12.5526 +Small,5x5,ldr-xy-01.png,38.8097,0.0166,0.0059,11.1589 +Small,5x5,ldr-xy-02.png,43.7137,0.0156,0.0050,13.1596 +Small,5x5,ldrs-rgba-00.png,30.7673,0.0202,0.0111,5.9293 +Small,5x5,ldrs-rgba-01.png,35.0013,0.0177,0.0089,7.3379 +Small,5x5,ldrs-rgba-02.png,31.0042,0.0222,0.0132,4.9581 +Small,6x6,hdr-rgb-00.hdr,26.7283,0.1122,0.0157,4.1714 +Small,6x6,ldr-rgb-00.png,31.1174,0.0189,0.0096,6.8567 +Small,6x6,ldr-rgb-01.png,32.7941,0.0176,0.0086,7.6559 +Small,6x6,ldr-rgb-02.png,27.3319,0.0221,0.0128,5.1361 +Small,6x6,ldr-rgb-03.png,40.2005,0.0124,0.0034,19.2640 +Small,6x6,ldr-rgb-04.png,33.7426,0.0169,0.0076,8.6334 +Small,6x6,ldr-rgb-05.png,29.5431,0.0231,0.0139,4.7151 +Small,6x6,ldr-rgb-06.png,27.3805,0.0225,0.0131,5.0031 +Small,6x6,ldr-rgb-07.png,32.0611,0.0202,0.0105,6.2208 +Small,6x6,ldr-rgb-08.png,37.0532,0.0137,0.0043,15.2439 +Small,6x6,ldr-rgb-09.png,33.3007,0.0166,0.0076,8.6380 +Small,6x6,ldr-rgb-10.png,36.4997,0.0095,0.0023,7.1575 +Small,6x6,ldr-rgba-00.png,28.4932,0.0220,0.0120,5.4418 +Small,6x6,ldr-rgba-01.png,31.9653,0.0187,0.0093,7.0590 +Small,6x6,ldr-rgba-02.png,27.7570,0.0234,0.0137,4.7753 +Small,6x6,ldr-xy-00.png,35.4206,0.0169,0.0052,12.6736 +Small,6x6,ldr-xy-01.png,36.2539,0.0174,0.0067,9.8448 +Small,6x6,ldr-xy-02.png,41.7347,0.0153,0.0042,15.5933 +Small,6x6,ldrs-rgba-00.png,28.4947,0.0223,0.0124,5.2916 +Small,6x6,ldrs-rgba-01.png,31.9724,0.0190,0.0091,7.1835 +Small,6x6,ldrs-rgba-02.png,27.7554,0.0234,0.0138,4.7632 +Small,8x8,hdr-rgb-00.hdr,23.5580,0.1248,0.0235,2.7858 +Small,8x8,ldr-rgb-00.png,27.6030,0.0273,0.0137,4.7700 +Small,8x8,ldr-rgb-01.png,28.6706,0.0251,0.0121,5.4351 +Small,8x8,ldr-rgb-02.png,23.0185,0.0323,0.0192,3.4096 +Small,8x8,ldr-rgb-03.png,37.0029,0.0169,0.0039,16.8080 +Small,8x8,ldr-rgb-04.png,29.1158,0.0247,0.0112,5.8656 +Small,8x8,ldr-rgb-05.png,25.5325,0.0329,0.0193,3.3888 +Small,8x8,ldr-rgb-06.png,23.0567,0.0328,0.0194,3.3745 +Small,8x8,ldr-rgb-07.png,29.3277,0.0247,0.0110,5.9601 +Small,8x8,ldr-rgb-08.png,33.7635,0.0189,0.0054,12.2315 +Small,8x8,ldr-rgb-09.png,28.4838,0.0243,0.0105,6.2636 +Small,8x8,ldr-rgb-10.png,31.8914,0.0144,0.0031,5.2339 +Small,8x8,ldr-rgba-00.png,24.9731,0.0316,0.0176,3.7148 +Small,8x8,ldr-rgba-01.png,28.1339,0.0261,0.0128,5.1268 +Small,8x8,ldr-rgba-02.png,23.8733,0.0343,0.0204,3.2078 +Small,8x8,ldr-xy-00.png,33.2046,0.0232,0.0072,9.0584 +Small,8x8,ldr-xy-01.png,33.9895,0.0231,0.0081,8.0870 +Small,8x8,ldr-xy-02.png,39.7826,0.0187,0.0034,19.0293 +Small,8x8,ldrs-rgba-00.png,24.9737,0.0319,0.0180,3.6340 +Small,8x8,ldrs-rgba-01.png,28.1361,0.0265,0.0131,5.0189 +Small,8x8,ldrs-rgba-02.png,23.8730,0.0344,0.0206,3.1851 +Small,12x12,hdr-rgb-00.hdr,20.4766,0.1363,0.0280,2.3394 +Small,12x12,ldr-rgb-00.png,23.6764,0.0302,0.0110,5.9778 +Small,12x12,ldr-rgb-01.png,24.6958,0.0270,0.0082,7.9573 +Small,12x12,ldr-rgb-02.png,19.1852,0.0384,0.0197,3.3299 +Small,12x12,ldr-rgb-03.png,33.1439,0.0216,0.0032,20.3659 +Small,12x12,ldr-rgb-04.png,24.3893,0.0272,0.0082,8.0079 +Small,12x12,ldr-rgb-05.png,21.3695,0.0355,0.0166,3.9439 +Small,12x12,ldr-rgb-06.png,19.1537,0.0397,0.0205,3.2023 +Small,12x12,ldr-rgb-07.png,25.2614,0.0271,0.0077,8.5565 +Small,12x12,ldr-rgb-08.png,29.9935,0.0230,0.0041,15.8678 +Small,12x12,ldr-rgb-09.png,23.5953,0.0301,0.0109,5.9944 +Small,12x12,ldr-rgb-10.png,27.2629,0.0194,0.0027,6.0655 +Small,12x12,ldr-rgba-00.png,21.1876,0.0375,0.0175,3.7443 +Small,12x12,ldr-rgba-01.png,24.4313,0.0289,0.0099,6.6084 +Small,12x12,ldr-rgba-02.png,20.1405,0.0440,0.0248,2.6419 +Small,12x12,ldr-xy-00.png,28.9086,0.0277,0.0067,9.8537 +Small,12x12,ldr-xy-01.png,29.6319,0.0269,0.0061,10.6786 +Small,12x12,ldr-xy-02.png,37.9737,0.0231,0.0021,30.5930 +Small,12x12,ldrs-rgba-00.png,21.1884,0.0372,0.0176,3.7317 +Small,12x12,ldrs-rgba-01.png,24.4319,0.0289,0.0099,6.5945 +Small,12x12,ldrs-rgba-02.png,20.1402,0.0445,0.0252,2.5965 +Small,3x3x3,ldr-l-00-3.dds,50.6709,0.0225,0.0130,20.1015 +Small,3x3x3,ldr-l-01-3.dds,53.7927,0.0125,0.0054,12.7537 +Small,6x6x6,ldr-l-00-3.dds,32.5200,0.0689,0.0405,6.4670 +Small,6x6x6,ldr-l-01-3.dds,40.7725,0.0427,0.0165,4.1890 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_medium_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_medium_results.csv index bcfe88f462..e6fb2aa444 100644 --- a/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_medium_results.csv +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_medium_results.csv @@ -1,110 +1,110 @@ Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate -Small,4x4,hdr-rgb-00.hdr,32.4363,0.1367,0.0407,1.6100 -Small,4x4,ldr-rgb-00.png,38.6985,0.0472,0.0388,1.6901 -Small,4x4,ldr-rgb-01.png,40.1183,0.0432,0.0351,1.8691 -Small,4x4,ldr-rgb-02.png,35.2059,0.0434,0.0351,1.8655 -Small,4x4,ldr-rgb-03.png,47.0764,0.0276,0.0198,3.3091 -Small,4x4,ldr-rgb-04.png,42.1384,0.0366,0.0283,2.3170 -Small,4x4,ldr-rgb-05.png,37.7480,0.0487,0.0404,1.6236 -Small,4x4,ldr-rgb-06.png,35.3504,0.0392,0.0307,2.1338 -Small,4x4,ldr-rgb-07.png,38.8920,0.0553,0.0468,1.4013 -Small,4x4,ldr-rgb-08.png,44.8397,0.0312,0.0230,2.8443 -Small,4x4,ldr-rgb-09.png,42.0738,0.0373,0.0291,2.2485 -Small,4x4,ldr-rgb-10.png,44.8740,0.0109,0.0051,3.1943 -Small,4x4,ldr-rgba-00.png,36.2304,0.0521,0.0433,1.5119 -Small,4x4,ldr-rgba-01.png,38.8996,0.0343,0.0258,2.5360 -Small,4x4,ldr-rgba-02.png,34.9204,0.0372,0.0288,2.2783 -Small,4x4,ldr-xy-00.png,37.7076,0.0296,0.0214,3.0601 -Small,4x4,ldr-xy-01.png,45.2966,0.0411,0.0333,1.9709 -Small,4x4,ldr-xy-02.png,50.8924,0.0430,0.0347,1.8881 -Small,4x4,ldrs-rgba-00.png,36.2375,0.0525,0.0438,1.4956 -Small,4x4,ldrs-rgba-01.png,38.9148,0.0347,0.0263,2.4888 -Small,4x4,ldrs-rgba-02.png,34.9261,0.0374,0.0290,2.2624 -Small,5x5,hdr-rgb-00.hdr,26.6577,0.1452,0.0459,1.4269 -Small,5x5,ldr-rgb-00.png,35.0601,0.0526,0.0431,1.5194 -Small,5x5,ldr-rgb-01.png,36.3948,0.0432,0.0341,1.9239 -Small,5x5,ldr-rgb-02.png,31.0693,0.0447,0.0355,1.8442 -Small,5x5,ldr-rgb-03.png,43.8060,0.0214,0.0124,5.2860 -Small,5x5,ldr-rgb-04.png,37.6714,0.0395,0.0301,2.1753 -Small,5x5,ldr-rgb-05.png,33.5067,0.0593,0.0500,1.3116 -Small,5x5,ldr-rgb-06.png,31.0848,0.0420,0.0325,2.0138 -Small,5x5,ldr-rgb-07.png,35.7129,0.0598,0.0501,1.3072 -Small,5x5,ldr-rgb-08.png,41.3215,0.0295,0.0203,3.2206 -Small,5x5,ldr-rgb-09.png,37.5963,0.0383,0.0290,2.2612 -Small,5x5,ldr-rgb-10.png,40.5078,0.0130,0.0059,2.7349 -Small,5x5,ldr-rgba-00.png,32.7508,0.0641,0.0541,1.2115 -Small,5x5,ldr-rgba-01.png,35.2808,0.0392,0.0297,2.2096 -Small,5x5,ldr-rgba-02.png,31.1278,0.0445,0.0349,1.8772 -Small,5x5,ldr-xy-00.png,37.1322,0.0306,0.0211,3.0991 -Small,5x5,ldr-xy-01.png,41.0485,0.0376,0.0287,2.2852 -Small,5x5,ldr-xy-02.png,48.8030,0.0277,0.0183,3.5734 -Small,5x5,ldrs-rgba-00.png,32.7532,0.0642,0.0544,1.2049 -Small,5x5,ldrs-rgba-01.png,35.2888,0.0395,0.0301,2.1793 -Small,5x5,ldrs-rgba-02.png,31.1282,0.0446,0.0351,1.8674 -Small,6x6,hdr-rgb-00.hdr,24.7326,0.1497,0.0510,1.2857 -Small,6x6,ldr-rgb-00.png,32.3946,0.0585,0.0478,1.3718 -Small,6x6,ldr-rgb-01.png,33.1010,0.0492,0.0387,1.6935 -Small,6x6,ldr-rgb-02.png,27.4617,0.0550,0.0445,1.4742 -Small,6x6,ldr-rgb-03.png,41.7312,0.0207,0.0104,6.2768 -Small,6x6,ldr-rgb-04.png,34.2211,0.0441,0.0334,1.9605 -Small,6x6,ldr-rgb-05.png,30.1623,0.0674,0.0567,1.1567 -Small,6x6,ldr-rgb-06.png,27.5187,0.0538,0.0432,1.5162 -Small,6x6,ldr-rgb-07.png,34.1039,0.0651,0.0541,1.2113 -Small,6x6,ldr-rgb-08.png,39.2052,0.0283,0.0179,3.6513 -Small,6x6,ldr-rgb-09.png,33.6998,0.0435,0.0330,1.9867 -Small,6x6,ldr-rgb-10.png,36.9385,0.0148,0.0067,2.4441 -Small,6x6,ldr-rgba-00.png,30.2074,0.0714,0.0603,1.0860 -Small,6x6,ldr-rgba-01.png,32.1925,0.0420,0.0312,2.1037 -Small,6x6,ldr-rgba-02.png,27.8499,0.0504,0.0397,1.6499 -Small,6x6,ldr-xy-00.png,36.1092,0.0290,0.0185,3.5370 -Small,6x6,ldr-xy-01.png,37.9987,0.0324,0.0221,2.9601 -Small,6x6,ldr-xy-02.png,45.2177,0.0257,0.0151,4.3330 -Small,6x6,ldrs-rgba-00.png,30.2085,0.0716,0.0607,1.0803 -Small,6x6,ldrs-rgba-01.png,32.1983,0.0420,0.0314,2.0878 -Small,6x6,ldrs-rgba-02.png,27.8499,0.0507,0.0400,1.6400 -Small,8x8,hdr-rgb-00.hdr,21.5539,0.1645,0.0610,1.0740 -Small,8x8,ldr-rgb-00.png,28.7378,0.0766,0.0610,1.0741 -Small,8x8,ldr-rgb-01.png,28.9290,0.0628,0.0476,1.3768 -Small,8x8,ldr-rgb-02.png,23.1458,0.0718,0.0564,1.1622 -Small,8x8,ldr-rgb-03.png,38.5923,0.0270,0.0121,5.4369 -Small,8x8,ldr-rgb-04.png,29.6540,0.0585,0.0430,1.5249 -Small,8x8,ldr-rgb-05.png,25.9366,0.0800,0.0645,1.0160 -Small,8x8,ldr-rgb-06.png,23.1913,0.0707,0.0552,1.1882 -Small,8x8,ldr-rgb-07.png,30.8126,0.0734,0.0576,1.1380 -Small,8x8,ldr-rgb-08.png,35.8673,0.0357,0.0204,3.2108 -Small,8x8,ldr-rgb-09.png,29.0427,0.0559,0.0406,1.6156 -Small,8x8,ldr-rgb-10.png,32.1979,0.0216,0.0087,1.8604 -Small,8x8,ldr-rgba-00.png,26.1494,0.0855,0.0696,0.9410 -Small,8x8,ldr-rgba-01.png,28.3397,0.0527,0.0371,1.7670 -Small,8x8,ldr-rgba-02.png,23.9327,0.0699,0.0542,1.2088 -Small,8x8,ldr-xy-00.png,34.1468,0.0415,0.0261,2.5118 -Small,8x8,ldr-xy-01.png,35.0297,0.0404,0.0253,2.5916 -Small,8x8,ldr-xy-02.png,41.0514,0.0300,0.0145,4.5145 -Small,8x8,ldrs-rgba-00.png,26.1504,0.0857,0.0697,0.9409 -Small,8x8,ldrs-rgba-01.png,28.3428,0.0529,0.0374,1.7518 -Small,8x8,ldrs-rgba-02.png,23.9331,0.0705,0.0549,1.1934 -Small,12x12,hdr-rgb-00.hdr,18.8034,0.1921,0.0799,0.8204 -Small,12x12,ldr-rgb-00.png,24.6021,0.0885,0.0637,1.0296 -Small,12x12,ldr-rgb-01.png,25.0675,0.0858,0.0613,1.0693 -Small,12x12,ldr-rgb-02.png,19.2870,0.1053,0.0806,0.8126 -Small,12x12,ldr-rgb-03.png,34.9344,0.0371,0.0130,5.0572 -Small,12x12,ldr-rgb-04.png,24.9393,0.0764,0.0519,1.2630 -Small,12x12,ldr-rgb-05.png,21.6359,0.1055,0.0809,0.8105 -Small,12x12,ldr-rgb-06.png,19.2379,0.0999,0.0751,0.8730 -Small,12x12,ldr-rgb-07.png,26.6710,0.0792,0.0542,1.2084 -Small,12x12,ldr-rgb-08.png,31.3688,0.0451,0.0206,3.1817 -Small,12x12,ldr-rgb-09.png,24.2172,0.0759,0.0517,1.2676 -Small,12x12,ldr-rgb-10.png,28.0060,0.0382,0.0164,0.9890 -Small,12x12,ldr-rgba-00.png,21.7822,0.0940,0.0689,0.9508 -Small,12x12,ldr-rgba-01.png,24.6207,0.0678,0.0430,1.5242 -Small,12x12,ldr-rgba-02.png,20.2123,0.1015,0.0765,0.8568 -Small,12x12,ldr-xy-00.png,29.7520,0.0511,0.0265,2.4762 -Small,12x12,ldr-xy-01.png,32.2132,0.0469,0.0225,2.9108 -Small,12x12,ldr-xy-02.png,38.5608,0.0305,0.0059,11.1323 -Small,12x12,ldrs-rgba-00.png,21.7821,0.0942,0.0690,0.9494 -Small,12x12,ldrs-rgba-01.png,24.6226,0.0675,0.0427,1.5359 -Small,12x12,ldrs-rgba-02.png,20.2125,0.1014,0.0767,0.8550 -Small,3x3x3,ldr-l-00-3.dds,51.9633,0.0317,0.0225,11.6690 -Small,3x3x3,ldr-l-01-3.dds,54.3643,0.0136,0.0066,10.4476 -Small,6x6x6,ldr-l-00-3.dds,32.9606,0.0857,0.0575,4.5559 -Small,6x6x6,ldr-l-01-3.dds,40.8516,0.0440,0.0184,3.7467 +Small,4x4,hdr-rgb-00.hdr,34.1363,0.1320,0.0372,1.7624 +Small,4x4,ldr-rgb-00.png,38.7306,0.0461,0.0377,1.7393 +Small,4x4,ldr-rgb-01.png,40.1468,0.0433,0.0350,1.8733 +Small,4x4,ldr-rgb-02.png,35.2205,0.0442,0.0361,1.8142 +Small,4x4,ldr-rgb-03.png,47.1971,0.0268,0.0189,3.4649 +Small,4x4,ldr-rgb-04.png,42.1698,0.0369,0.0285,2.2993 +Small,4x4,ldr-rgb-05.png,37.7691,0.0479,0.0395,1.6586 +Small,4x4,ldr-rgb-06.png,35.3535,0.0400,0.0317,2.0666 +Small,4x4,ldr-rgb-07.png,39.2544,0.0557,0.0466,1.4050 +Small,4x4,ldr-rgb-08.png,45.1728,0.0314,0.0231,2.8384 +Small,4x4,ldr-rgb-09.png,42.0926,0.0375,0.0292,2.2482 +Small,4x4,ldr-rgb-10.png,44.8714,0.0105,0.0047,3.4572 +Small,4x4,ldr-rgba-00.png,36.2368,0.0508,0.0422,1.5527 +Small,4x4,ldr-rgba-01.png,38.8997,0.0319,0.0236,2.7808 +Small,4x4,ldr-rgba-02.png,34.9203,0.0349,0.0266,2.4673 +Small,4x4,ldr-xy-00.png,37.7324,0.0327,0.0226,2.8969 +Small,4x4,ldr-xy-01.png,45.0952,0.0449,0.0353,1.8570 +Small,4x4,ldr-xy-02.png,50.9293,0.0536,0.0432,1.5159 +Small,4x4,ldrs-rgba-00.png,36.2439,0.0504,0.0418,1.5690 +Small,4x4,ldrs-rgba-01.png,38.9149,0.0326,0.0241,2.7232 +Small,4x4,ldrs-rgba-02.png,34.9260,0.0354,0.0269,2.4318 +Small,5x5,hdr-rgb-00.hdr,29.8582,0.1446,0.0470,1.3950 +Small,5x5,ldr-rgb-00.png,35.0862,0.0530,0.0432,1.5156 +Small,5x5,ldr-rgb-01.png,36.4013,0.0452,0.0358,1.8293 +Small,5x5,ldr-rgb-02.png,31.0706,0.0473,0.0379,1.7287 +Small,5x5,ldr-rgb-03.png,43.9336,0.0215,0.0122,5.3723 +Small,5x5,ldr-rgb-04.png,37.6746,0.0412,0.0318,2.0616 +Small,5x5,ldr-rgb-05.png,33.5247,0.0618,0.0522,1.2560 +Small,5x5,ldr-rgb-06.png,31.0847,0.0446,0.0350,1.8725 +Small,5x5,ldr-rgb-07.png,36.2094,0.0643,0.0546,1.1999 +Small,5x5,ldr-rgb-08.png,41.5755,0.0314,0.0219,2.9932 +Small,5x5,ldr-rgb-09.png,37.5975,0.0393,0.0300,2.1827 +Small,5x5,ldr-rgb-10.png,40.4987,0.0128,0.0058,2.8100 +Small,5x5,ldr-rgba-00.png,32.7984,0.0632,0.0533,1.2299 +Small,5x5,ldr-rgba-01.png,35.2804,0.0376,0.0279,2.3495 +Small,5x5,ldr-rgba-02.png,31.1280,0.0427,0.0329,1.9910 +Small,5x5,ldr-xy-00.png,37.0820,0.0337,0.0224,2.9248 +Small,5x5,ldr-xy-01.png,40.7500,0.0444,0.0334,1.9639 +Small,5x5,ldr-xy-02.png,49.0695,0.0344,0.0230,2.8534 +Small,5x5,ldrs-rgba-00.png,32.8012,0.0626,0.0527,1.2432 +Small,5x5,ldrs-rgba-01.png,35.2883,0.0376,0.0281,2.3340 +Small,5x5,ldrs-rgba-02.png,31.1284,0.0431,0.0332,1.9732 +Small,6x6,hdr-rgb-00.hdr,27.5038,0.1495,0.0505,1.2971 +Small,6x6,ldr-rgb-00.png,32.3787,0.0559,0.0452,1.4498 +Small,6x6,ldr-rgb-01.png,33.0791,0.0459,0.0355,1.8448 +Small,6x6,ldr-rgb-02.png,27.4458,0.0505,0.0401,1.6346 +Small,6x6,ldr-rgb-03.png,41.6840,0.0197,0.0096,6.8301 +Small,6x6,ldr-rgb-04.png,34.2133,0.0416,0.0307,2.1318 +Small,6x6,ldr-rgb-05.png,30.1444,0.0646,0.0538,1.2179 +Small,6x6,ldr-rgb-06.png,27.5085,0.0497,0.0390,1.6803 +Small,6x6,ldr-rgb-07.png,33.8641,0.0612,0.0501,1.3087 +Small,6x6,ldr-rgb-08.png,39.0862,0.0268,0.0164,4.0046 +Small,6x6,ldr-rgb-09.png,33.6784,0.0412,0.0303,2.1618 +Small,6x6,ldr-rgb-10.png,36.9325,0.0148,0.0065,2.4974 +Small,6x6,ldr-rgba-00.png,30.2616,0.0692,0.0580,1.1297 +Small,6x6,ldr-rgba-01.png,32.1757,0.0400,0.0293,2.2398 +Small,6x6,ldr-rgba-02.png,27.8427,0.0484,0.0377,1.7392 +Small,6x6,ldr-xy-00.png,36.2610,0.0321,0.0194,3.3817 +Small,6x6,ldr-xy-01.png,37.7542,0.0366,0.0243,2.6962 +Small,6x6,ldr-xy-02.png,46.0620,0.0285,0.0158,4.1427 +Small,6x6,ldrs-rgba-00.png,30.2618,0.0691,0.0579,1.1318 +Small,6x6,ldrs-rgba-01.png,32.1814,0.0407,0.0295,2.2186 +Small,6x6,ldrs-rgba-02.png,27.8425,0.0488,0.0381,1.7219 +Small,8x8,hdr-rgb-00.hdr,24.1445,0.1678,0.0640,1.0232 +Small,8x8,ldr-rgb-00.png,28.7336,0.0732,0.0572,1.1454 +Small,8x8,ldr-rgb-01.png,28.9297,0.0580,0.0427,1.5341 +Small,8x8,ldr-rgb-02.png,23.1472,0.0656,0.0503,1.3039 +Small,8x8,ldr-rgb-03.png,38.5016,0.0256,0.0105,6.2221 +Small,8x8,ldr-rgb-04.png,29.6540,0.0545,0.0386,1.6987 +Small,8x8,ldr-rgb-05.png,25.9346,0.0745,0.0592,1.1067 +Small,8x8,ldr-rgb-06.png,23.1959,0.0653,0.0499,1.3133 +Small,8x8,ldr-rgb-07.png,30.5823,0.0666,0.0507,1.2917 +Small,8x8,ldr-rgb-08.png,35.7706,0.0334,0.0181,3.6278 +Small,8x8,ldr-rgb-09.png,29.0431,0.0518,0.0366,1.7927 +Small,8x8,ldr-rgb-10.png,32.1758,0.0216,0.0086,1.8852 +Small,8x8,ldr-rgba-00.png,26.4083,0.0838,0.0678,0.9667 +Small,8x8,ldr-rgba-01.png,28.3397,0.0512,0.0358,1.8294 +Small,8x8,ldr-rgba-02.png,23.9360,0.0682,0.0529,1.2389 +Small,8x8,ldr-xy-00.png,34.0235,0.0445,0.0268,2.4425 +Small,8x8,ldr-xy-01.png,34.9813,0.0434,0.0263,2.4880 +Small,8x8,ldr-xy-02.png,41.7368,0.0337,0.0160,4.0853 +Small,8x8,ldrs-rgba-00.png,26.4091,0.0836,0.0677,0.9678 +Small,8x8,ldrs-rgba-01.png,28.3428,0.0517,0.0364,1.7981 +Small,8x8,ldrs-rgba-02.png,23.9365,0.0696,0.0543,1.2067 +Small,12x12,hdr-rgb-00.hdr,20.7669,0.1929,0.0780,0.8401 +Small,12x12,ldr-rgb-00.png,24.6829,0.0847,0.0601,1.0901 +Small,12x12,ldr-rgb-01.png,25.0321,0.0725,0.0481,1.3629 +Small,12x12,ldr-rgb-02.png,19.2606,0.0949,0.0703,0.9320 +Small,12x12,ldr-rgb-03.png,34.9647,0.0348,0.0107,6.1220 +Small,12x12,ldr-rgb-04.png,24.9106,0.0686,0.0442,1.4821 +Small,12x12,ldr-rgb-05.png,21.6446,0.0981,0.0732,0.8949 +Small,12x12,ldr-rgb-06.png,19.2429,0.0911,0.0665,0.9858 +Small,12x12,ldr-rgb-07.png,26.5648,0.0721,0.0471,1.3904 +Small,12x12,ldr-rgb-08.png,31.4907,0.0425,0.0180,3.6415 +Small,12x12,ldr-rgb-09.png,24.1553,0.0696,0.0453,1.4467 +Small,12x12,ldr-rgb-10.png,28.0102,0.0383,0.0158,1.0311 +Small,12x12,ldr-rgba-00.png,22.0961,0.0953,0.0705,0.9297 +Small,12x12,ldr-rgba-01.png,24.6294,0.0684,0.0435,1.5064 +Small,12x12,ldr-rgba-02.png,20.1828,0.1017,0.0769,0.8522 +Small,12x12,ldr-xy-00.png,30.0666,0.0547,0.0284,2.3106 +Small,12x12,ldr-xy-01.png,31.8758,0.0533,0.0270,2.4257 +Small,12x12,ldr-xy-02.png,38.5200,0.0332,0.0073,8.9947 +Small,12x12,ldrs-rgba-00.png,22.0962,0.0959,0.0711,0.9216 +Small,12x12,ldrs-rgba-01.png,24.6313,0.0682,0.0437,1.5014 +Small,12x12,ldrs-rgba-02.png,20.1831,0.1016,0.0769,0.8518 +Small,3x3x3,ldr-l-00-3.dds,51.9674,0.0309,0.0213,12.3026 +Small,3x3x3,ldr-l-01-3.dds,54.3595,0.0131,0.0061,11.2507 +Small,6x6x6,ldr-l-00-3.dds,32.9682,0.0846,0.0560,4.6849 +Small,6x6x6,ldr-l-01-3.dds,40.8917,0.0444,0.0172,4.0128 diff --git a/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_thorough_results.csv b/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_thorough_results.csv index 52d236f85a..5e110ab707 100644 --- a/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_thorough_results.csv +++ b/lib/astc-encoder/Test/Images/Small/astc_reference-main-avx2_thorough_results.csv @@ -1,110 +1,110 @@ Image Set,Block Size,Name,PSNR,Total Time,Coding Time,Coding Rate -Small,4x4,hdr-rgb-00.hdr,32.5557,0.1727,0.0765,0.8566 -Small,4x4,ldr-rgb-00.png,39.1080,0.0908,0.0823,0.7966 -Small,4x4,ldr-rgb-01.png,40.3320,0.0894,0.0811,0.8078 -Small,4x4,ldr-rgb-02.png,35.3607,0.0817,0.0734,0.8932 -Small,4x4,ldr-rgb-03.png,47.6667,0.0842,0.0762,0.8596 -Small,4x4,ldr-rgb-04.png,42.3048,0.0814,0.0730,0.8977 -Small,4x4,ldr-rgb-05.png,37.9487,0.0950,0.0866,0.7564 -Small,4x4,ldr-rgb-06.png,35.4842,0.0755,0.0669,0.9794 -Small,4x4,ldr-rgb-07.png,39.7534,0.1027,0.0937,0.6993 -Small,4x4,ldr-rgb-08.png,45.6979,0.0796,0.0713,0.9186 -Small,4x4,ldr-rgb-09.png,42.2292,0.0857,0.0773,0.8480 -Small,4x4,ldr-rgb-10.png,44.9858,0.0163,0.0103,1.5796 -Small,4x4,ldr-rgba-00.png,36.7410,0.0945,0.0857,0.7649 -Small,4x4,ldr-rgba-01.png,39.0312,0.0809,0.0724,0.9053 -Small,4x4,ldr-rgba-02.png,34.9861,0.0772,0.0687,0.9541 -Small,4x4,ldr-xy-00.png,37.7264,0.0925,0.0842,0.7785 -Small,4x4,ldr-xy-01.png,45.6067,0.1003,0.0922,0.7107 -Small,4x4,ldr-xy-02.png,50.9896,0.1229,0.1145,0.5725 -Small,4x4,ldrs-rgba-00.png,36.7485,0.0951,0.0862,0.7599 -Small,4x4,ldrs-rgba-01.png,39.0531,0.0815,0.0730,0.8981 -Small,4x4,ldrs-rgba-02.png,34.9909,0.0772,0.0686,0.9553 -Small,5x5,hdr-rgb-00.hdr,27.4605,0.1799,0.0830,0.7893 -Small,5x5,ldr-rgb-00.png,35.3302,0.1042,0.0946,0.6927 -Small,5x5,ldr-rgb-01.png,36.5029,0.0990,0.0898,0.7300 -Small,5x5,ldr-rgb-02.png,31.1210,0.0929,0.0835,0.7847 -Small,5x5,ldr-rgb-03.png,44.4794,0.0919,0.0829,0.7907 -Small,5x5,ldr-rgb-04.png,37.8285,0.0920,0.0825,0.7940 -Small,5x5,ldr-rgb-05.png,33.6601,0.1074,0.0980,0.6686 -Small,5x5,ldr-rgb-06.png,31.1230,0.0887,0.0792,0.8273 -Small,5x5,ldr-rgb-07.png,36.6472,0.1180,0.1083,0.6053 -Small,5x5,ldr-rgb-08.png,42.2544,0.0879,0.0787,0.8326 -Small,5x5,ldr-rgb-09.png,37.6965,0.0977,0.0885,0.7408 -Small,5x5,ldr-rgb-10.png,40.7181,0.0199,0.0127,1.2793 -Small,5x5,ldr-rgba-00.png,33.1222,0.1103,0.1005,0.6520 -Small,5x5,ldr-rgba-01.png,35.3522,0.0930,0.0834,0.7855 -Small,5x5,ldr-rgba-02.png,31.1618,0.0918,0.0821,0.7985 -Small,5x5,ldr-xy-00.png,37.2660,0.0872,0.0779,0.8412 -Small,5x5,ldr-xy-01.png,41.7032,0.1129,0.1036,0.6324 -Small,5x5,ldr-xy-02.png,49.2302,0.1306,0.1209,0.5421 -Small,5x5,ldrs-rgba-00.png,33.1252,0.1115,0.1017,0.6445 -Small,5x5,ldrs-rgba-01.png,35.3599,0.0935,0.0840,0.7803 -Small,5x5,ldrs-rgba-02.png,31.1624,0.0923,0.0827,0.7923 -Small,6x6,hdr-rgb-00.hdr,24.8303,0.1897,0.0901,0.7276 -Small,6x6,ldr-rgb-00.png,32.6528,0.1192,0.1081,0.6061 -Small,6x6,ldr-rgb-01.png,33.1780,0.1142,0.1035,0.6330 -Small,6x6,ldr-rgb-02.png,27.4974,0.1112,0.1007,0.6511 -Small,6x6,ldr-rgb-03.png,42.5366,0.0769,0.0666,0.9845 -Small,6x6,ldr-rgb-04.png,34.3452,0.1090,0.0982,0.6677 -Small,6x6,ldr-rgb-05.png,30.2860,0.1247,0.1139,0.5753 -Small,6x6,ldr-rgb-06.png,27.5559,0.1082,0.0973,0.6736 -Small,6x6,ldr-rgb-07.png,34.4287,0.1297,0.1185,0.5531 -Small,6x6,ldr-rgb-08.png,39.9093,0.0754,0.0648,1.0119 -Small,6x6,ldr-rgb-09.png,33.8256,0.1061,0.0955,0.6861 -Small,6x6,ldr-rgb-10.png,37.1203,0.0246,0.0161,1.0091 -Small,6x6,ldr-rgba-00.png,30.4892,0.1264,0.1150,0.5701 -Small,6x6,ldr-rgba-01.png,32.2511,0.1062,0.0952,0.6886 -Small,6x6,ldr-rgba-02.png,27.8849,0.1083,0.0974,0.6727 -Small,6x6,ldr-xy-00.png,36.3699,0.0706,0.0600,1.0927 -Small,6x6,ldr-xy-01.png,38.4260,0.0998,0.0891,0.7355 -Small,6x6,ldr-xy-02.png,47.4512,0.1284,0.1175,0.5578 -Small,6x6,ldrs-rgba-00.png,30.4903,0.1267,0.1155,0.5675 -Small,6x6,ldrs-rgba-01.png,32.2575,0.1063,0.0955,0.6864 -Small,6x6,ldrs-rgba-02.png,27.8841,0.1088,0.0978,0.6702 -Small,8x8,hdr-rgb-00.hdr,21.7767,0.2075,0.1060,0.6181 -Small,8x8,ldr-rgb-00.png,28.9664,0.1460,0.1299,0.5044 -Small,8x8,ldr-rgb-01.png,29.0055,0.1360,0.1205,0.5437 -Small,8x8,ldr-rgb-02.png,23.1782,0.1403,0.1246,0.5259 -Small,8x8,ldr-rgb-03.png,39.4493,0.0507,0.0352,1.8596 -Small,8x8,ldr-rgb-04.png,29.7729,0.1255,0.1097,0.5977 -Small,8x8,ldr-rgb-05.png,26.0315,0.1440,0.1281,0.5116 -Small,8x8,ldr-rgb-06.png,23.2332,0.1387,0.1226,0.5344 -Small,8x8,ldr-rgb-07.png,31.1596,0.1431,0.1270,0.5162 -Small,8x8,ldr-rgb-08.png,36.5135,0.0727,0.0569,1.1511 -Small,8x8,ldr-rgb-09.png,29.1942,0.1078,0.0920,0.7123 -Small,8x8,ldr-rgb-10.png,32.3486,0.0329,0.0195,0.8347 -Small,8x8,ldr-rgba-00.png,26.5009,0.1497,0.1334,0.4914 -Small,8x8,ldr-rgba-01.png,28.3965,0.1195,0.1032,0.6350 -Small,8x8,ldr-rgba-02.png,23.9603,0.1283,0.1122,0.5839 -Small,8x8,ldr-xy-00.png,34.2681,0.0804,0.0648,1.0118 -Small,8x8,ldr-xy-01.png,35.5234,0.0761,0.0605,1.0840 -Small,8x8,ldr-xy-02.png,44.4233,0.0860,0.0701,0.9352 -Small,8x8,ldrs-rgba-00.png,26.5026,0.1505,0.1344,0.4877 -Small,8x8,ldrs-rgba-01.png,28.3995,0.1195,0.1036,0.6324 -Small,8x8,ldrs-rgba-02.png,23.9598,0.1287,0.1125,0.5823 -Small,12x12,hdr-rgb-00.hdr,18.9066,0.2471,0.1343,0.4879 -Small,12x12,ldr-rgb-00.png,24.9677,0.1783,0.1525,0.4299 -Small,12x12,ldr-rgb-01.png,25.1726,0.1609,0.1354,0.4839 -Small,12x12,ldr-rgb-02.png,19.3144,0.1880,0.1624,0.4035 -Small,12x12,ldr-rgb-03.png,36.1670,0.0589,0.0337,1.9462 -Small,12x12,ldr-rgb-04.png,25.0349,0.1580,0.1324,0.4951 -Small,12x12,ldr-rgb-05.png,21.7306,0.1804,0.1549,0.4232 -Small,12x12,ldr-rgb-06.png,19.2767,0.1816,0.1559,0.4204 -Small,12x12,ldr-rgb-07.png,27.0738,0.1609,0.1350,0.4856 -Small,12x12,ldr-rgb-08.png,32.2423,0.0780,0.0525,1.2474 -Small,12x12,ldr-rgb-09.png,24.4468,0.1523,0.1267,0.5171 -Small,12x12,ldr-rgb-10.png,28.1777,0.0530,0.0301,0.5397 -Small,12x12,ldr-rgba-00.png,22.2804,0.1766,0.1509,0.4343 -Small,12x12,ldr-rgba-01.png,24.7161,0.1271,0.1013,0.6473 -Small,12x12,ldr-rgba-02.png,20.2326,0.1622,0.1365,0.4801 -Small,12x12,ldr-xy-00.png,30.5033,0.1044,0.0789,0.8309 -Small,12x12,ldr-xy-01.png,32.4454,0.0794,0.0540,1.2141 -Small,12x12,ldr-xy-02.png,39.8717,0.0570,0.0313,2.0935 -Small,12x12,ldrs-rgba-00.png,22.2804,0.1771,0.1509,0.4344 -Small,12x12,ldrs-rgba-01.png,24.7179,0.1273,0.1015,0.6458 -Small,12x12,ldrs-rgba-02.png,20.2328,0.1624,0.1364,0.4804 -Small,3x3x3,ldr-l-00-3.dds,52.4282,0.0623,0.0530,4.9451 -Small,3x3x3,ldr-l-01-3.dds,55.4466,0.0280,0.0211,3.2701 -Small,6x6x6,ldr-l-00-3.dds,33.2662,0.1180,0.0899,2.9150 -Small,6x6x6,ldr-l-01-3.dds,41.5787,0.0459,0.0201,3.4264 +Small,4x4,hdr-rgb-00.hdr,34.3826,0.1630,0.0687,0.9546 +Small,4x4,ldr-rgb-00.png,39.1122,0.0852,0.0765,0.8562 +Small,4x4,ldr-rgb-01.png,40.3352,0.0837,0.0756,0.8668 +Small,4x4,ldr-rgb-02.png,35.3628,0.0779,0.0696,0.9413 +Small,4x4,ldr-rgb-03.png,47.6791,0.0784,0.0704,0.9307 +Small,4x4,ldr-rgb-04.png,42.3121,0.0770,0.0685,0.9564 +Small,4x4,ldr-rgb-05.png,37.9497,0.0889,0.0806,0.8131 +Small,4x4,ldr-rgb-06.png,35.4850,0.0726,0.0641,1.0221 +Small,4x4,ldr-rgb-07.png,39.8768,0.0962,0.0876,0.7485 +Small,4x4,ldr-rgb-08.png,45.7994,0.0742,0.0657,0.9980 +Small,4x4,ldr-rgb-09.png,42.2347,0.0807,0.0723,0.9067 +Small,4x4,ldr-rgb-10.png,44.9836,0.0153,0.0094,1.7321 +Small,4x4,ldr-rgba-00.png,36.7429,0.0872,0.0782,0.8376 +Small,4x4,ldr-rgba-01.png,39.0312,0.0726,0.0642,1.0215 +Small,4x4,ldr-rgba-02.png,34.9861,0.0704,0.0617,1.0629 +Small,4x4,ldr-xy-00.png,37.7615,0.0818,0.0717,0.9144 +Small,4x4,ldr-xy-01.png,45.2022,0.0932,0.0829,0.7902 +Small,4x4,ldr-xy-02.png,51.0031,0.1115,0.1012,0.6474 +Small,4x4,ldrs-rgba-00.png,36.7503,0.0882,0.0794,0.8251 +Small,4x4,ldrs-rgba-01.png,39.0531,0.0733,0.0647,1.0130 +Small,4x4,ldrs-rgba-02.png,34.9908,0.0697,0.0610,1.0738 +Small,5x5,hdr-rgb-00.hdr,30.2665,0.1804,0.0834,0.7862 +Small,5x5,ldr-rgb-00.png,35.3308,0.1001,0.0905,0.7243 +Small,5x5,ldr-rgb-01.png,36.5029,0.0968,0.0875,0.7490 +Small,5x5,ldr-rgb-02.png,31.1209,0.0900,0.0803,0.8163 +Small,5x5,ldr-rgb-03.png,44.4865,0.0874,0.0782,0.8386 +Small,5x5,ldr-rgb-04.png,37.8284,0.0896,0.0800,0.8194 +Small,5x5,ldr-rgb-05.png,33.6602,0.1048,0.0951,0.6889 +Small,5x5,ldr-rgb-06.png,31.1231,0.0877,0.0779,0.8410 +Small,5x5,ldr-rgb-07.png,36.7187,0.1138,0.1038,0.6311 +Small,5x5,ldr-rgb-08.png,42.2837,0.0837,0.0745,0.8799 +Small,5x5,ldr-rgb-09.png,37.6965,0.0949,0.0853,0.7681 +Small,5x5,ldr-rgb-10.png,40.7050,0.0191,0.0121,1.3393 +Small,5x5,ldr-rgba-00.png,33.1312,0.1041,0.0941,0.6962 +Small,5x5,ldr-rgba-01.png,35.3518,0.0858,0.0763,0.8589 +Small,5x5,ldr-rgba-02.png,31.1620,0.0844,0.0746,0.8788 +Small,5x5,ldr-xy-00.png,37.2517,0.0890,0.0776,0.8450 +Small,5x5,ldr-xy-01.png,41.4853,0.1087,0.0976,0.6715 +Small,5x5,ldr-xy-02.png,49.2681,0.1222,0.1105,0.5932 +Small,5x5,ldrs-rgba-00.png,33.1344,0.1053,0.0954,0.6867 +Small,5x5,ldrs-rgba-01.png,35.3595,0.0863,0.0767,0.8547 +Small,5x5,ldrs-rgba-02.png,31.1626,0.0852,0.0756,0.8671 +Small,6x6,hdr-rgb-00.hdr,27.6716,0.1903,0.0934,0.7016 +Small,6x6,ldr-rgb-00.png,32.6408,0.1137,0.1028,0.6376 +Small,6x6,ldr-rgb-01.png,33.1558,0.1069,0.0962,0.6812 +Small,6x6,ldr-rgb-02.png,27.4822,0.1029,0.0922,0.7104 +Small,6x6,ldr-rgb-03.png,42.5311,0.0727,0.0624,1.0502 +Small,6x6,ldr-rgb-04.png,34.3371,0.1014,0.0903,0.7259 +Small,6x6,ldr-rgb-05.png,30.2684,0.1165,0.1055,0.6215 +Small,6x6,ldr-rgb-06.png,27.5442,0.1017,0.0908,0.7219 +Small,6x6,ldr-rgb-07.png,34.3976,0.1218,0.1105,0.5930 +Small,6x6,ldr-rgb-08.png,39.9060,0.0715,0.0610,1.0751 +Small,6x6,ldr-rgb-09.png,33.8033,0.0977,0.0870,0.7533 +Small,6x6,ldr-rgb-10.png,37.1147,0.0239,0.0155,1.0470 +Small,6x6,ldr-rgba-00.png,30.5121,0.1205,0.1089,0.6016 +Small,6x6,ldr-rgba-01.png,32.2329,0.0997,0.0890,0.7363 +Small,6x6,ldr-rgba-02.png,27.8748,0.1023,0.0915,0.7165 +Small,6x6,ldr-xy-00.png,36.3847,0.0732,0.0605,1.0828 +Small,6x6,ldr-xy-01.png,38.0934,0.1042,0.0917,0.7144 +Small,6x6,ldr-xy-02.png,47.4839,0.1279,0.1152,0.5688 +Small,6x6,ldrs-rgba-00.png,30.5139,0.1208,0.1097,0.5974 +Small,6x6,ldrs-rgba-01.png,32.2388,0.1008,0.0898,0.7299 +Small,6x6,ldrs-rgba-02.png,27.8739,0.1023,0.0914,0.7172 +Small,8x8,hdr-rgb-00.hdr,24.3434,0.2199,0.1166,0.5619 +Small,8x8,ldr-rgb-00.png,28.9671,0.1373,0.1217,0.5387 +Small,8x8,ldr-rgb-01.png,29.0056,0.1232,0.1077,0.6087 +Small,8x8,ldr-rgb-02.png,23.1803,0.1297,0.1141,0.5744 +Small,8x8,ldr-rgb-03.png,39.4201,0.0486,0.0330,1.9860 +Small,8x8,ldr-rgb-04.png,29.7729,0.1162,0.1000,0.6552 +Small,8x8,ldr-rgb-05.png,26.0317,0.1350,0.1193,0.5495 +Small,8x8,ldr-rgb-06.png,23.2366,0.1278,0.1116,0.5872 +Small,8x8,ldr-rgb-07.png,31.1085,0.1301,0.1138,0.5758 +Small,8x8,ldr-rgb-08.png,36.4927,0.0675,0.0516,1.2692 +Small,8x8,ldr-rgb-09.png,29.1942,0.0987,0.0827,0.7924 +Small,8x8,ldr-rgb-10.png,32.3289,0.0321,0.0187,0.8697 +Small,8x8,ldr-rgba-00.png,26.6809,0.1454,0.1293,0.5070 +Small,8x8,ldr-rgba-01.png,28.3965,0.1145,0.0985,0.6652 +Small,8x8,ldr-rgba-02.png,23.9633,0.1341,0.1180,0.5553 +Small,8x8,ldr-xy-00.png,34.3201,0.0830,0.0653,1.0030 +Small,8x8,ldr-xy-01.png,35.2758,0.0854,0.0682,0.9615 +Small,8x8,ldr-xy-02.png,44.6017,0.1075,0.0900,0.7280 +Small,8x8,ldrs-rgba-00.png,26.6823,0.1468,0.1304,0.5025 +Small,8x8,ldrs-rgba-01.png,28.3995,0.1145,0.0987,0.6637 +Small,8x8,ldrs-rgba-02.png,23.9628,0.1352,0.1191,0.5503 +Small,12x12,hdr-rgb-00.hdr,21.0018,0.2605,0.1461,0.4487 +Small,12x12,ldr-rgb-00.png,25.0383,0.1675,0.1413,0.4639 +Small,12x12,ldr-rgb-01.png,25.1290,0.1416,0.1159,0.5655 +Small,12x12,ldr-rgb-02.png,19.2863,0.1664,0.1414,0.4635 +Small,12x12,ldr-rgb-03.png,36.1477,0.0563,0.0313,2.0954 +Small,12x12,ldr-rgb-04.png,25.0092,0.1402,0.1149,0.5704 +Small,12x12,ldr-rgb-05.png,21.7147,0.1661,0.1407,0.4658 +Small,12x12,ldr-rgb-06.png,19.2737,0.1629,0.1373,0.4772 +Small,12x12,ldr-rgb-07.png,27.0539,0.1487,0.1231,0.5325 +Small,12x12,ldr-rgb-08.png,32.4189,0.0749,0.0497,1.3184 +Small,12x12,ldr-rgb-09.png,24.3652,0.1338,0.1087,0.6031 +Small,12x12,ldr-rgb-10.png,28.1754,0.0517,0.0292,0.5560 +Small,12x12,ldr-rgba-00.png,22.7040,0.1753,0.1495,0.4383 +Small,12x12,ldr-rgba-01.png,24.7117,0.1312,0.1055,0.6214 +Small,12x12,ldr-rgba-02.png,20.2027,0.1671,0.1414,0.4636 +Small,12x12,ldr-xy-00.png,30.5678,0.1079,0.0805,0.8144 +Small,12x12,ldr-xy-01.png,32.1961,0.0817,0.0548,1.1968 +Small,12x12,ldr-xy-02.png,40.3036,0.0652,0.0378,1.7350 +Small,12x12,ldrs-rgba-00.png,22.7039,0.1760,0.1501,0.4365 +Small,12x12,ldrs-rgba-01.png,24.7133,0.1305,0.1050,0.6240 +Small,12x12,ldrs-rgba-02.png,20.2029,0.1689,0.1434,0.4569 +Small,3x3x3,ldr-l-00-3.dds,52.4307,0.0586,0.0489,5.3626 +Small,3x3x3,ldr-l-01-3.dds,55.4429,0.0265,0.0192,3.5831 +Small,6x6x6,ldr-l-00-3.dds,33.2649,0.1159,0.0868,3.0186 +Small,6x6x6,ldr-l-01-3.dds,41.6036,0.0454,0.0194,3.5485 diff --git a/lib/astc-encoder/Test/astc_profile_valgrind.py b/lib/astc-encoder/Test/astc_profile_valgrind.py index 7f09d42457..82ed0e9584 100644 --- a/lib/astc-encoder/Test/astc_profile_valgrind.py +++ b/lib/astc-encoder/Test/astc_profile_valgrind.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: Apache-2.0 # ----------------------------------------------------------------------------- -# Copyright 2020-2021 Arm Limited +# Copyright 2020-2022 Arm Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy @@ -116,7 +116,7 @@ def run_pass(image, noStartup, encoder, blocksize, quality): if noStartup: args = ["gprof2dot", "--format=callgrind", "--output=out.dot", "callgrind.txt", - "-s", "-z", "compress_block(astcenc_context const&, astcenc_image const&, image_block const&, physical_compressed_block&, compression_working_buffers&)"] + "-s", "-z", "compress_block(astcenc_context const&, image_block const&, physical_compressed_block&, compression_working_buffers&)"] else: args = ["gprof2dot", "--format=callgrind", "--output=out.dot", "callgrind.txt", "-s", "-z", "main"] @@ -143,14 +143,14 @@ def parse_command_line(): parser.add_argument("img", type=argparse.FileType("r"), help="The image file to test") - testencoders = ["sse2", "sse4.1", "avx2"] - encoders = testencoders + ["all"] - parser.add_argument("--encoder", dest="encoders", default="avx2", + encoders = ["sse2", "sse4.1", "avx2"] + parser.add_argument("--encoder", dest="encoder", default="avx2", choices=encoders, help="select encoder variant") - testqualities = ["fastest", "fast", "medium", "thorough", "20", "30", "40", "50"] - qualities = testqualities + ["all"] - parser.add_argument("--test-quality", dest="qualities", default="medium", + testquant = [str(x) for x in range (0, 101, 10)] + testqual = ["-fastest", "-fast", "-medium", "-thorough", "-exhaustive"] + qualities = testqual + testquant + parser.add_argument("--test-quality", dest="quality", default="medium", choices=qualities, help="select compression quality") parser.add_argument("--no-startup", dest="noStartup", default=False, @@ -158,18 +158,6 @@ def parse_command_line(): args = parser.parse_args() - if args.encoders == "all": - args.encoders = testencoders - else: - args.encoders = [args.encoders] - - if args.qualities == "all": - args.qualities = testqualities - elif args.qualities in ["fastest", "fast", "medium", "thorough"]: - args.qualities = [f"-{args.qualities}"] - else: - args.qualities = [args.qualities] - return args @@ -181,11 +169,7 @@ def main(): int: The process return code. """ args = parse_command_line() - - for quality in args.qualities: - for encoder in args.encoders: - run_pass(args.img.name, args.noStartup, encoder, "6x6", quality) - + run_pass(args.img.name, args.noStartup, args.encoder, "6x6", args.quality) return 0 diff --git a/lib/astc-encoder/Test/astc_test_functional.py b/lib/astc-encoder/Test/astc_test_functional.py index d22f3a315c..5aa92e972c 100644 --- a/lib/astc-encoder/Test/astc_test_functional.py +++ b/lib/astc-encoder/Test/astc_test_functional.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: Apache-2.0 # ----------------------------------------------------------------------------- -# Copyright 2020-2021 Arm Limited +# Copyright 2020-2022 Arm Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy @@ -799,7 +799,7 @@ def test_compress_mask(self): command = [ self.binary, "-tl", "./Test/Images/Small/LDR-RGB/ldr-rgb-10.png", - decompFile, "4x4", "-exhaustive"] + decompFile, "4x4", "-medium"] noMaskdB = float(self.exec(command, LDR_RGB_PSNR_PATTERN)) @@ -1238,140 +1238,6 @@ def test_2plane_correlation_limit(self): # RMSE should get worse (higher) if we reduce search space self.assertGreater(testRMSE, refRMSE) - def test_deblock(self): - """ - Test deblock bias. - """ - inputFile = "./Test/Images/Small/LDR-RGBA/ldr-rgba-00.png" - decompFile = self.get_tmp_image_path("LDR", "decomp") - - # Compute the basic image without any channel weights - command = [ - self.binary, "-tl", - inputFile, decompFile, "4x4", "-medium"] - - self.exec(command) - refRMSE = sum(self.get_channel_rmse(inputFile, decompFile)) - - command += ["-b", "1.8"] - self.exec(command) - testRMSE = sum(self.get_channel_rmse(inputFile, decompFile)) - - # RMSE should be different with deblocking - self.assertNotEqual(testRMSE, refRMSE) - - def test_low_level_control_v(self): - """ - Test low level control options. - """ - inputFile = "./Test/Images/Small/LDR-RGBA/ldr-rgba-00.png" - decompFile = self.get_tmp_image_path("LDR", "decomp") - - # Compute the basic image without any channel weights - command = [ - self.binary, "-tl", - inputFile, decompFile, "4x4", "-medium"] - - self.exec(command) - refRMSE = sum(self.get_channel_rmse(inputFile, decompFile)) - - # Test that explicit defaults match same as implicit defaults - command2 = command + ["-v", "0", "1", "1", "0", "0", "0"] - self.exec(command2) - testRMSE = sum(self.get_channel_rmse(inputFile, decompFile)) - self.assertEqual(testRMSE, refRMSE) - - # Mutate the values to check they are worse than ref - subtests = [ - ("ref", ["-v", "2.5", "0.85", "0.25", "0.75", "25.0", "0.03"]), - ("radius", ["-v", "3.5", "0.85", "0.25", "0.75", "25.0", "0.03"]), - ("power", ["-v", "2.5", "1.85", "0.25", "0.75", "25.0", "0.03"]), - ("base", ["-v", "2.5", "0.85", "0.05", "0.75", "25.0", "0.03"]), - ("avg", ["-v", "2.5", "0.85", "0.25", "2.75", "25.0", "0.03"]), - ("stdev", ["-v", "2.5", "0.85", "0.25", "0.75", "99.0", "0.03"]), - ("mix", ["-v", "2.5", "0.85", "0.25", "0.75", "25.0", "1.03"]) - ] - - # Test that our mutations made it worse; note we manually chose values - # that did for this test image - this is not guranteed for all images - resultSet = set() - for (name, params) in subtests: - with self.subTest(param=name): - testCommand = command + params - self.exec(testCommand) - testRMSE = sum(self.get_channel_rmse(inputFile, decompFile)) - self.assertGreater(testRMSE, refRMSE) - resultSet.add(testRMSE) - - # Test that each mutation was "differently" worse; i.e. some new - # error metric was used - self.assertEqual(len(resultSet), len(subtests)) - - def test_low_level_control_v_issue_105(self): - """ - Test low level control options. - - Regression test for: - * https://github.com/ARM-software/astc-encoder/issues/105 - """ - inputFile = "./Test/Images/Small/LDR-RGBA/ldr-rgba-00.png" - decompFile = self.get_tmp_image_path("LDR", "decomp") - - # Compute the basic image without any channel weights - command = [ - self.binary, "-tl", - inputFile, decompFile, "4x4", "-medium", - "-v", "0", "1", "2", "0", "0", "0"] - - # This should not segfault ... - self.exec(command) - - def test_low_level_control_va(self): - """ - Test low level control options. - """ - inputFile = "./Test/Images/Small/LDR-RGBA/ldr-rgba-00.png" - decompFile = self.get_tmp_image_path("LDR", "decomp") - - # Compute the basic image without any channel weights - command = [ - self.binary, "-tl", - inputFile, decompFile, "4x4", "-medium", - "-v", "2.5", "0.85", "0.25", "0.75", "25.0", "0.03"] - - self.exec(command) - refRMSE = sum(self.get_channel_rmse(inputFile, decompFile)) - - # Test that explicit defaults match same as implicit defaults - command2 = command + ["-va", "1", "1", "0", "0"] - self.exec(command2) - testRMSE = sum(self.get_channel_rmse(inputFile, decompFile)) - self.assertEqual(testRMSE, refRMSE) - - # Mutate the values to check they are worse than ref - subtests = [ - ("ref", ["-va", "2.8", "0.25", "0.75", "25.0"]), - ("power", ["-va", "4.8", "0.25", "0.75", "25.0"]), - ("base", ["-va", "2.8", "0.05", "0.75", "25.0"]), - ("avg", ["-va", "2.8", "0.25", "2.75", "25.0"]), - ("stdev", ["-va", "2.8", "0.25", "0.75", "99.0"]) - ] - - # Test that our mutations made it worse; note we manually chose values - # that did for this test image - this is not guranteed for all images - resultSet = set() - for (name, params) in subtests: - with self.subTest(param=name): - testCommand = command + params - self.exec(testCommand) - testRMSE = sum(self.get_channel_rmse(inputFile, decompFile)) - self.assertNotEqual(testRMSE, refRMSE) - resultSet.add(testRMSE) - - # Test that each mutation was "differently" worse; i.e. some new - # error metric was used - self.assertEqual(len(resultSet), len(subtests)) - @unittest.skipIf(os.cpu_count() == 1, "Cannot test on single core host") def test_thread_count(self): """ @@ -1837,36 +1703,6 @@ def test_dl_missing_output(self): self.exec(command) - def test_cl_v_missing_args(self): - """ - Test -cl with -v and missing arguments. - """ - # Build a valid command - command = [ - self.binary, "-cl", - self.get_ref_image_path("LDR", "input", "A"), - self.get_tmp_image_path("LDR", "comp"), - "4x4", "-fast", - "-v", "3", "1.1", "0.8", "0.25", "0.5", "0.04"] - - # Run the command, incrementally omitting arguments - self.exec_with_omit(command, 7) - - def test_cl_va_missing_args(self): - """ - Test -cl with -va and missing arguments. - """ - # Build a valid command - command = [ - self.binary, "-cl", - self.get_ref_image_path("LDR", "input", "A"), - self.get_tmp_image_path("LDR", "comp"), - "4x4", "-fast", - "-va", "1.1", "0.8", "0.25", "0.5"] - - # Run the command, incrementally omitting arguments - self.exec_with_omit(command, 7) - def test_cl_a_missing_args(self): """ Test -cl with -a and missing arguments. @@ -1897,21 +1733,6 @@ def test_cl_cw_missing_args(self): # Run the command, incrementally omitting arguments self.exec_with_omit(command, 7) - def test_cl_b_missing_args(self): - """ - Test -cl with -b and missing arguments. - """ - # Build a valid command - command = [ - self.binary, "-cl", - self.get_ref_image_path("LDR", "input", "A"), - self.get_tmp_image_path("LDR", "comp"), - "4x4", "-fast", - "-b", "1.6"] - - # Run the command, incrementally omitting arguments - self.exec_with_omit(command, 7) - def test_cl_partitionlimit_missing_args(self): """ Test -cl with -partitionindexlimit and missing arguments. diff --git a/lib/astc-encoder/Test/astc_test_image.py b/lib/astc-encoder/Test/astc_test_image.py index 68428efbda..f90945c79d 100644 --- a/lib/astc-encoder/Test/astc_test_image.py +++ b/lib/astc-encoder/Test/astc_test_image.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: Apache-2.0 # ----------------------------------------------------------------------------- -# Copyright 2019-2021 Arm Limited +# Copyright 2019-2022 Arm Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy @@ -164,7 +164,7 @@ def format_result(image, reference, result): def run_test_set(encoder, testRef, testSet, quality, blockSizes, testRuns, - keepOutput): + keepOutput, threads): """ Execute all tests in the test set. @@ -178,6 +178,7 @@ def run_test_set(encoder, testRef, testSet, quality, blockSizes, testRuns, keepOutput (bool): Should the test preserve output images? This is only a hint and discarding output may be ignored if the encoder version used can't do it natively. + threads (int or None): The thread count to use. Returns: ResultSet: The test results. @@ -203,7 +204,7 @@ def run_test_set(encoder, testRef, testSet, quality, blockSizes, testRuns, dat = (curCount, maxCount, blkSz, image.testFile) print("Running %u/%u %s %s ... " % dat, end='', flush=True) res = encoder.run_test(image, blkSz, "-%s" % quality, testRuns, - keepOutput) + keepOutput, threads) res = trs.Record(blkSz, image.testFile, res[0], res[1], res[2], res[3]) resultSet.add_record(res) @@ -296,7 +297,7 @@ def parse_command_line(): refcoders = ["ref-1.7", "ref-2.5-neon", "ref-2.5-sse2", "ref-2.5-sse4.1", "ref-2.5-avx2", "ref-3.0-neon", "ref-3.0-sse2", "ref-3.0-sse4.1", "ref-3.0-avx2", - "ref-3.1-neon", "ref-3.1-sse2", "ref-3.1-sse4.1", "ref-3.1-avx2", + "ref-3.3-neon", "ref-3.3-sse2", "ref-3.3-sse4.1", "ref-3.3-avx2", "ref-main-neon", "ref-main-sse2", "ref-main-sse4.1", "ref-main-avx2"] # All test encoders @@ -350,6 +351,10 @@ def parse_command_line(): parser.add_argument("--keep-output", dest="keepOutput", default=False, action="store_true", help="keep image output") + parser.add_argument("-j", dest="threads", default=None, + type=int, help="thread count") + + args = parser.parse_args() # Turn things into canonical format lists @@ -421,7 +426,7 @@ def main(): resultSet = run_test_set(encoder, testRef, testSet, quality, args.blockSizes, testRepeats, - args.keepOutput) + args.keepOutput, args.threads) resultSet.save_to_file(testRes) diff --git a/lib/astc-encoder/Test/astc_test_result_plot.py b/lib/astc-encoder/Test/astc_test_result_plot.py index a5d634d5e5..c3cf6de648 100644 --- a/lib/astc-encoder/Test/astc_test_result_plot.py +++ b/lib/astc-encoder/Test/astc_test_result_plot.py @@ -62,7 +62,7 @@ def find_reference_results(): quality = match.group(2) imageSet = os.path.basename(root) - if imageSet != "Kodak": + if imageSet not in ["Kodak", "Khronos", "HDRIHaven"]: continue testRef = trs.ResultSet(imageSet) @@ -232,7 +232,7 @@ def plot(results, chartRows, chartCols, blockSizes, if not relative: ax.set_xlim(left=0, right=limits[0]) else: - ax.set_xlim(left=1, right=limits[0]) + ax.set_xlim(left=0, right=limits[0]) fig.tight_layout() fig.savefig(fileName) @@ -290,7 +290,7 @@ def main(): [ # Relative scores ["thorough", "medium", "fast", "fastest"], - ["ref-3.1-avx2"], + ["ref-3.3-avx2"], ["4x4", "6x6", "8x8"], True, "ref-1.7", @@ -303,7 +303,7 @@ def main(): [ # Relative scores ["thorough", "medium", "fast", "fastest"], - ["ref-3.1-avx2"], + ["ref-3.3-avx2"], ["4x4", "6x6", "8x8"], True, "ref-2.5-avx2", @@ -316,7 +316,7 @@ def main(): [ # Relative scores ["thorough", "medium", "fast", "fastest"], - ["ref-3.1-avx2"], + ["ref-3.3-avx2"], ["4x4", "6x6", "8x8"], True, "ref-3.0-avx2", @@ -326,17 +326,17 @@ def main(): ], [ # Relative ISAs of latest ["thorough", "medium", "fast", "fastest"], - ["ref-3.1-sse4.1", "ref-3.1-avx2"], + ["ref-3.3-sse4.1", "ref-3.3-avx2"], ["4x4", "6x6", "8x8"], True, - "ref-3.1-sse2", + "ref-3.3-sse2", None, "relative-3.x-isa.png", (None, None) ], [ # Relative quality of latest ["medium", "fast", "fastest"], - ["ref-3.1-avx2"], + ["ref-3.3-avx2"], ["4x4", "6x6", "8x8"], True, None, diff --git a/lib/astc-encoder/Test/astc_update_ref.sh b/lib/astc-encoder/Test/astc_update_ref.sh index bbc658346f..97e037d778 100755 --- a/lib/astc-encoder/Test/astc_update_ref.sh +++ b/lib/astc-encoder/Test/astc_update_ref.sh @@ -18,5 +18,5 @@ echo "" TARGET_ROOT=${1} python3 ./Test/astc_test_image.py --test-set all --block-size all --test-quality all --repeats 5 --encoder ref-$1-avx2 -python3 ./Test/astc_test_image.py --test-set all --block-size all --test-quality all --repeats 5 --encoder ref-$1-sse4.1 -python3 ./Test/astc_test_image.py --test-set all --block-size all --test-quality all --repeats 5 --encoder ref-$1-sse2 +#python3 ./Test/astc_test_image.py --test-set all --block-size all --test-quality all --repeats 5 --encoder ref-$1-sse4.1 +#python3 ./Test/astc_test_image.py --test-set all --block-size all --test-quality all --repeats 5 --encoder ref-$1-sse2 diff --git a/lib/astc-encoder/Test/testlib/encoder.py b/lib/astc-encoder/Test/testlib/encoder.py index 650aadc371..8c46e7bb9b 100644 --- a/lib/astc-encoder/Test/testlib/encoder.py +++ b/lib/astc-encoder/Test/testlib/encoder.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 # ----------------------------------------------------------------------------- -# Copyright 2019-2021 Arm Limited +# Copyright 2019-2022 Arm Limited # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy @@ -61,7 +61,7 @@ def __init__(self, name, variant, binary): self.binary = binary def build_cli(self, image, blockSize="6x6", preset="-thorough", - keepOutput=True): + keepOutput=True, threads=None): """ Build the command line needed for the given test. @@ -72,6 +72,7 @@ def build_cli(self, image, blockSize="6x6", preset="-thorough", keepOutput (bool): Should the test preserve output images? This is only a hint and discarding output may be ignored if the encoder version used can't do it natively. + threads (int or None): The thread count to use. Returns: list(str): A list of command line arguments. @@ -186,7 +187,8 @@ def get_coding_time_pattern(self): # pylint: disable=unused-argument,no-self-use,redundant-returns-doc assert False, "Missing subclass implementation" - def run_test(self, image, blockSize, preset, testRuns, keepOutput=True): + def run_test(self, image, blockSize, preset, testRuns, keepOutput=True, + threads=None): """ Run the test N times. @@ -198,6 +200,7 @@ def run_test(self, image, blockSize, preset, testRuns, keepOutput=True): keepOutput (bool): Should the test preserve output images? This is only a hint and discarding output may be ignored if the encoder version used can't do it natively. + threads (int or None): The thread count to use. Returns: tuple(float, float, float, float): Returns the best results from @@ -205,7 +208,7 @@ def run_test(self, image, blockSize, preset, testRuns, keepOutput=True): (seconds), and coding rate (M pixels/s). """ # pylint: disable=assignment-from-no-return - command = self.build_cli(image, blockSize, preset, keepOutput) + command = self.build_cli(image, blockSize, preset, keepOutput, threads) # Execute test runs bestPSNR = 0 @@ -258,7 +261,7 @@ def __init__(self, variant, binary=None): super().__init__(name, variant, binary) def build_cli(self, image, blockSize="6x6", preset="-thorough", - keepOutput=True): + keepOutput=True, threads=None): opmode = self.SWITCHES[image.colorProfile] srcPath = image.filePath @@ -290,10 +293,9 @@ def build_cli(self, image, blockSize="6x6", preset="-thorough", command.append("-a") command.append("1") - # Limit core count on NEON builds to avoid test device throttling - if self.variant == "neon": + if threads is not None: command.append("-j") - command.append("2") + command.append("%u" % threads) return command @@ -361,7 +363,7 @@ def __init__(self): super().__init__(name, None, binary) def build_cli(self, image, blockSize="6x6", preset="-thorough", - keepOutput=True): + keepOutput=True, threads=None): if preset == "-fastest": preset = "-fast" @@ -394,6 +396,10 @@ def build_cli(self, image, blockSize="6x6", preset="-thorough", if image.isAlphaScaled: command.append("-alphablend") + if threads is not None: + command.append("-j") + command.append("%u" % threads) + return command def get_psnr_pattern(self, image): diff --git a/lib/astc-encoder/Utils/Example/CMakeLists.txt b/lib/astc-encoder/Utils/Example/CMakeLists.txt index eec6ffcfaf..dbc104770d 100644 --- a/lib/astc-encoder/Utils/Example/CMakeLists.txt +++ b/lib/astc-encoder/Utils/Example/CMakeLists.txt @@ -35,7 +35,7 @@ project(astcencoder_example VERSION 1.0.0) ExternalProject_Add(astcencoder GIT_REPOSITORY https://github.com/ARM-software/astc-encoder GIT_TAG main - CMAKE_CACHE_ARGS -DCLI:String=OFF + CMAKE_CACHE_ARGS -DCLI:STRING=OFF -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} INSTALL_COMMAND "") ExternalProject_Get_property(astcencoder diff --git a/lib/astc-encoder/Utils/Example/astc_api_example.cpp b/lib/astc-encoder/Utils/Example/astc_api_example.cpp index b60fa8d8da..7e95f7c86b 100644 --- a/lib/astc-encoder/Utils/Example/astc_api_example.cpp +++ b/lib/astc-encoder/Utils/Example/astc_api_example.cpp @@ -68,7 +68,7 @@ int main(int argc, char **argv) uint8_t *image_data = (uint8_t*)stbi_load(argv[1], &image_x, &image_y, &image_c, 4); if (!image_data) { - printf("Failed to load image \"%s\"\n", image_data); + printf("Failed to load image \"%s\"\n", argv[1]); return 1; } diff --git a/lib/astc-encoder/jenkins/build-image.sh b/lib/astc-encoder/jenkins/build-image.sh index 89dd4afa40..88c7d2e51f 100755 --- a/lib/astc-encoder/jenkins/build-image.sh +++ b/lib/astc-encoder/jenkins/build-image.sh @@ -1,7 +1,8 @@ #!/usr/bin/env bash -DOCKER_REGISTRY=mobile-studio--docker.eu-west-1.artifactory.aws.arm.com +ARTIFACTORY_URL=eu-west-1.artifactory.aws.arm.com +DOCKER_REGISTRY=mobile-studio--docker.${ARTIFACTORY_URL} IMAGE_NAME=astcenc -IMAGE_VERSION=3.0.0 +IMAGE_VERSION=3.1.0 # Check Artifactory credentials are set if [[ -z "${ARTIFACTORY_CREDENTIALS}" ]] @@ -17,11 +18,8 @@ rm -fr tmp mkdir -p tmp echo "Get static analysis tools" -curl --user ${ARTIFACTORY_CREDENTIALS} https://eu-west-1.artifactory.aws.arm.com/artifactory/mobile-studio.tools/coverity201909.tar.xz --output tmp/coverity.tar.xz -pushd tmp - tar xf coverity.tar.xz - rm coverity.tar.xz -popd +curl --user ${ARTIFACTORY_CREDENTIALS} https://${ARTIFACTORY_URL}/artifactory/mobile-studio.tools/coverity/cov-analysis-linux64-2020.12.sh --output tmp/coverity_install.sh +curl --user ${ARTIFACTORY_CREDENTIALS} https://${ARTIFACTORY_URL}/artifactory/mobile-studio.tools/coverity/license.dat --output tmp/coverity_license.dat echo "Building image" docker build -f jenkins/build.Dockerfile \ diff --git a/lib/astc-encoder/jenkins/build.Dockerfile b/lib/astc-encoder/jenkins/build.Dockerfile index fb5d01782b..165ac3ec23 100644 --- a/lib/astc-encoder/jenkins/build.Dockerfile +++ b/lib/astc-encoder/jenkins/build.Dockerfile @@ -2,7 +2,8 @@ FROM ubuntu:18.04 RUN useradd -u 1000 -U -m -c Jenkins jenkins -RUN apt update && apt-get install -y \ +RUN apt update && apt -y upgrade \ + && apt install -y \ software-properties-common \ clang \ clang++-9 \ @@ -18,15 +19,18 @@ RUN apt update && apt-get install -y \ python3-pil \ ca-certificates \ gnupg \ - wget + wget \ + && rm -rf /var/lib/apt/lists/* # Install python modules RUN pip3 install requests # Install Coverity static analysis tools -COPY cov-analysis-linux64-2019.09 /coverity/ -RUN chmod -R a+rw /coverity -ENV PATH="/coverity/bin:$PATH" +COPY coverity_* /tmp/ +RUN chmod 555 /tmp/coverity_install.sh && \ + /tmp/coverity_install.sh -q --license.region=6 --license.agreement=agree --license.cov.path=/tmp/coverity_license.dat -dir /usr/local/cov-analysis && \ + rm /tmp/coverity_* +ENV PATH="/usr/local/cov-analysis/bin:$PATH" # Install up-to-date CMake, as standard Ubuntu 18.04 package is too old RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null \ diff --git a/lib/astc-encoder/jenkins/nightly.Jenkinsfile b/lib/astc-encoder/jenkins/nightly.Jenkinsfile index 49861d8b55..28edb46dcb 100644 --- a/lib/astc-encoder/jenkins/nightly.Jenkinsfile +++ b/lib/astc-encoder/jenkins/nightly.Jenkinsfile @@ -41,7 +41,7 @@ pipeline { - name: artifactory-ms-docker containers: - name: astcenc - image: mobile-studio--docker.eu-west-1.artifactory.aws.arm.com/astcenc:3.0.0 + image: mobile-studio--docker.eu-west-1.artifactory.aws.arm.com/astcenc:3.1.0 command: - sleep args: diff --git a/lib/astc-encoder/jenkins/release.Jenkinsfile b/lib/astc-encoder/jenkins/release.Jenkinsfile index d69084df15..89c764feca 100644 --- a/lib/astc-encoder/jenkins/release.Jenkinsfile +++ b/lib/astc-encoder/jenkins/release.Jenkinsfile @@ -43,7 +43,7 @@ spec: - name: artifactory-ms-docker containers: - name: astcenc - image: mobile-studio--docker.eu-west-1.artifactory.aws.arm.com/astcenc:3.0.0 + image: mobile-studio--docker.eu-west-1.artifactory.aws.arm.com/astcenc:3.1.0 command: - sleep args: @@ -75,9 +75,9 @@ spec: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../ -DISA_AVX2=ON .. - cov-configure --template --compiler cc --comptype gcc - cov-configure --template --compiler c++ --comptype g++ - cov-build --dir ${WORKSPACE}/intermediate make install + cov-configure --config ${WORKSPACE}/coverity.conf --template --compiler cc --comptype gcc + cov-configure --config ${WORKSPACE}/coverity.conf --template --compiler c++ --comptype g++ + cov-build --config ${WORKSPACE}/coverity.conf --dir ${WORKSPACE}/intermediate make install cov-analyze --dir ${WORKSPACE}/intermediate cov-commit-defects --dir ${WORKSPACE}/intermediate \\ --stream astcenc-master \\ diff --git a/tests/testimages/astc_ldr_10x5_FlightHelmet_baseColor.ktx2 b/tests/testimages/astc_ldr_10x5_FlightHelmet_baseColor.ktx2 index 86d136a62e..c59bcac9f9 100644 --- a/tests/testimages/astc_ldr_10x5_FlightHelmet_baseColor.ktx2 +++ b/tests/testimages/astc_ldr_10x5_FlightHelmet_baseColor.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:804c5de56999ce667c103a416302f95341634660dd0a4580186934cdc8460f35 +oid sha256:6040ec099d01c83f3559e809009bce623dbf3c8e52c47afd54ba3c5fb4f7bc92 size 1345104 diff --git a/tests/testimages/astc_ldr_12x10_FlightHelmet_baseColor.ktx2 b/tests/testimages/astc_ldr_12x10_FlightHelmet_baseColor.ktx2 index 4d48b87026..b3d569977b 100644 --- a/tests/testimages/astc_ldr_12x10_FlightHelmet_baseColor.ktx2 +++ b/tests/testimages/astc_ldr_12x10_FlightHelmet_baseColor.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:68837c9f6a083483f5c11b86dd3c69f48fb7544f11155f3c75637206c658a2e2 +oid sha256:f9fde76d1d86adb7f79bd5355c1ee757076fcb190695350dfc0a047e22c37d6c size 561184 diff --git a/tests/testimages/astc_ldr_12x12_FlightHelmet_baseColor.ktx2 b/tests/testimages/astc_ldr_12x12_FlightHelmet_baseColor.ktx2 index e6f8f8e7dc..b8e310aff9 100644 --- a/tests/testimages/astc_ldr_12x12_FlightHelmet_baseColor.ktx2 +++ b/tests/testimages/astc_ldr_12x12_FlightHelmet_baseColor.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0a8b48c69c12af95154ce21c7eefc0acfeb4f86cbd91ad30a97cecfb0567d69b +oid sha256:84fecfb59371d09af6259825fc7567907bc868523f2e66c408e377e40444ddf4 size 468160 diff --git a/tests/testimages/astc_ldr_4x4_FlightHelmet_baseColor.ktx2 b/tests/testimages/astc_ldr_4x4_FlightHelmet_baseColor.ktx2 index 71aefdf13e..0723856bc4 100644 --- a/tests/testimages/astc_ldr_4x4_FlightHelmet_baseColor.ktx2 +++ b/tests/testimages/astc_ldr_4x4_FlightHelmet_baseColor.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2f2d9b34ec530d7b4203dd6005161df7408c08c5c7970fddf6e683388e936d18 +oid sha256:b576d3e8f28a406a5888c1db402077af0e1fa049903476cc901e2983c579cd64 size 4194608 diff --git a/tests/testimages/astc_ldr_5x4_Iron_Bars_001_normal.ktx2 b/tests/testimages/astc_ldr_5x4_Iron_Bars_001_normal.ktx2 index 96bd986e68..04f60b0709 100644 --- a/tests/testimages/astc_ldr_5x4_Iron_Bars_001_normal.ktx2 +++ b/tests/testimages/astc_ldr_5x4_Iron_Bars_001_normal.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3865729da7974a24a7fedbdf7b727bcd52368aac44b413ff083590f0cfbe4ae1 +oid sha256:8b583a18e03ba9c01b29dfc1789db324393f126e189b14f1f443194ea50baa06 size 840000 diff --git a/tests/testimages/astc_ldr_6x5_FlightHelmet_baseColor.ktx2 b/tests/testimages/astc_ldr_6x5_FlightHelmet_baseColor.ktx2 index c931b3265e..b77eb067bb 100644 --- a/tests/testimages/astc_ldr_6x5_FlightHelmet_baseColor.ktx2 +++ b/tests/testimages/astc_ldr_6x5_FlightHelmet_baseColor.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b60ee54a0000d73be5e86841c83e2b636df750841bc1b6158da0b3c800dc2b67 +oid sha256:94940aa0070255eab52eeaf2b4796e31b6c7dbe8061e2af606580a207d851a60 size 2243824 diff --git a/tests/testimages/astc_ldr_6x6_Iron_Bars_001_normal.ktx2 b/tests/testimages/astc_ldr_6x6_Iron_Bars_001_normal.ktx2 index b649e2c0f1..fe020a58c5 100644 --- a/tests/testimages/astc_ldr_6x6_Iron_Bars_001_normal.ktx2 +++ b/tests/testimages/astc_ldr_6x6_Iron_Bars_001_normal.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:284f73b80b6fcea66798b85ed40ba1462a447b66c2d7008b53edbe16a70b304c +oid sha256:0fe5430457cb87403bec20b9ceeadbdf99cab90bea0b280b1214e85a4fa2a129 size 468176 diff --git a/tests/testimages/astc_ldr_6x6_posx.ktx2 b/tests/testimages/astc_ldr_6x6_posx.ktx2 index 311948a109..36e687f21f 100644 --- a/tests/testimages/astc_ldr_6x6_posx.ktx2 +++ b/tests/testimages/astc_ldr_6x6_posx.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c344be9b08e305e41ce2d193cee41445d1d22ba774c978c5e2f5093932cc3ec7 +oid sha256:d6f880ca6424a6208e46f8ac50e9ec060d9c7299a14a814f365d09a2cf3ed5d5 size 1871728 diff --git a/tests/testimages/astc_ldr_8x6_FlightHelmet_baseColor.ktx2 b/tests/testimages/astc_ldr_8x6_FlightHelmet_baseColor.ktx2 index 7f15b845d9..49954ee7fb 100644 --- a/tests/testimages/astc_ldr_8x6_FlightHelmet_baseColor.ktx2 +++ b/tests/testimages/astc_ldr_8x6_FlightHelmet_baseColor.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dba70b28cc64e5f3b0ec6440780f0317a74157277d3c19064f1f5a64af5cb810 +oid sha256:9922a3ce15550b01e7a9c7aa247f6fa21159cc77248874355805b759d378123b size 1401136 diff --git a/tests/testimages/astc_ldr_8x8_FlightHelmet_baseColor.ktx2 b/tests/testimages/astc_ldr_8x8_FlightHelmet_baseColor.ktx2 index c9188c1800..2f4677ded5 100644 --- a/tests/testimages/astc_ldr_8x8_FlightHelmet_baseColor.ktx2 +++ b/tests/testimages/astc_ldr_8x8_FlightHelmet_baseColor.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6e9df2df94f0b1d942b624c29337e1c1c78acbd965facc629d58b5376686712c +oid sha256:68cff4237aa447f37737db87b136f2935bcbf89d5bf9cc9fceca1d244a8490cd size 1048880 diff --git a/tests/testimages/astc_ldr_cubemap_6x6.ktx2 b/tests/testimages/astc_ldr_cubemap_6x6.ktx2 index 5b1950f5fe..647045639d 100644 --- a/tests/testimages/astc_ldr_cubemap_6x6.ktx2 +++ b/tests/testimages/astc_ldr_cubemap_6x6.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c6545bb1ccc374510a459126a57491955099531c13677b36ede9c1f1118e778c +oid sha256:2005693fc20b5926b41bd7b8c6f29b4961cf459f4c14dcc3ee072abb54c23143 size 11228848 diff --git a/tests/testimages/astc_mipmap_ldr_10x5_posx.ktx2 b/tests/testimages/astc_mipmap_ldr_10x5_posx.ktx2 index 1489616709..6049f16ed9 100644 --- a/tests/testimages/astc_mipmap_ldr_10x5_posx.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_10x5_posx.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c2afcd6409b4f2eb9236a847a8cd31664299a3e737718595839cc407827ff354 +oid sha256:ce4b1495892bbdf2dbe3d7bda256258964cd11cd7bc733bb25e7aa123187a263 size 1798048 diff --git a/tests/testimages/astc_mipmap_ldr_12x10_posx.ktx2 b/tests/testimages/astc_mipmap_ldr_12x10_posx.ktx2 index a0c250f326..0e6bc8613f 100644 --- a/tests/testimages/astc_mipmap_ldr_12x10_posx.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_12x10_posx.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7d6a5dd7fc1049870d81f62408aeaaa943118eff2254e920562f488b283a3bcc +oid sha256:8e877883dd8030c3f7fe476e634385f9aed954711bfc5a5497f095672591165a size 751376 diff --git a/tests/testimages/astc_mipmap_ldr_12x12_posx.ktx2 b/tests/testimages/astc_mipmap_ldr_12x12_posx.ktx2 index 285ef4ec36..dd6dab636c 100644 --- a/tests/testimages/astc_mipmap_ldr_12x12_posx.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_12x12_posx.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b1ace47993e2e565f719d5c89e9e8d0386ef37f83f8677d1b0d4ea7b3f512994 +oid sha256:a5352c8627795c7bba9d6aabc87d2e5d301fba7b3ece7936b3c4bb7dd0fc95b5 size 626864 diff --git a/tests/testimages/astc_mipmap_ldr_4x4_posx.ktx2 b/tests/testimages/astc_mipmap_ldr_4x4_posx.ktx2 index aa13b33be5..0843bcc973 100644 --- a/tests/testimages/astc_mipmap_ldr_4x4_posx.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_4x4_posx.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8bce02c714c3559db9bf8a3c809fbdde421f7a43bef56daef39dd1b6874c0f10 +oid sha256:ef236a0674f1be1ccb05ea56f6b6b9508545ad1965acf1c0187beaa8aa3ba10e size 5592992 diff --git a/tests/testimages/astc_mipmap_ldr_6x5_posx.ktx2 b/tests/testimages/astc_mipmap_ldr_6x5_posx.ktx2 index 307660fba0..496b6653ab 100644 --- a/tests/testimages/astc_mipmap_ldr_6x5_posx.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_6x5_posx.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d08dd5cc79e5e24aac840123de04ea44611d14c1673714a0326af28ad238b7b0 +oid sha256:69917e81757d75bbb671d923872683b2e6421451606417c84d2a7799f802c685 size 2994880 diff --git a/tests/testimages/astc_mipmap_ldr_6x6_kodim17_fast.ktx2 b/tests/testimages/astc_mipmap_ldr_6x6_kodim17_fast.ktx2 index 2a34829529..6e9f8fde75 100644 --- a/tests/testimages/astc_mipmap_ldr_6x6_kodim17_fast.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_6x6_kodim17_fast.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4fbef8136f2730266a41a5d185539d4ba05ee4f91f48a549285182b5a0e55cab +oid sha256:d64b8f6b14a8422f37395aaf747b687d89e8745960a1546feadf1fee4ba7fd27 size 235840 diff --git a/tests/testimages/astc_mipmap_ldr_6x6_kodim17_fastest.ktx2 b/tests/testimages/astc_mipmap_ldr_6x6_kodim17_fastest.ktx2 index d9397af073..9445ca1366 100644 --- a/tests/testimages/astc_mipmap_ldr_6x6_kodim17_fastest.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_6x6_kodim17_fastest.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:66ba5f0e4fd5961ae0ae18377fa748dbac6984e920e5871afec626623a4ca5f4 +oid sha256:10f60f685e79c2fa0463cc2376b3b1542c81921a7722075aff550a54b43a56e3 size 235840 diff --git a/tests/testimages/astc_mipmap_ldr_6x6_kodim17_medium.ktx2 b/tests/testimages/astc_mipmap_ldr_6x6_kodim17_medium.ktx2 index c9e551a654..a438ccb43e 100644 --- a/tests/testimages/astc_mipmap_ldr_6x6_kodim17_medium.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_6x6_kodim17_medium.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:256c029f9b61e98bb4a67f8fc1e30ef4e04cf3787b2e81e1c8f385ee3fcacacf +oid sha256:1f4558df972846cc029909bb19ea3522887af318afa471f5dd5254722048ec03 size 235840 diff --git a/tests/testimages/astc_mipmap_ldr_6x6_posx.ktx2 b/tests/testimages/astc_mipmap_ldr_6x6_posx.ktx2 index 1808b059b0..09805eef45 100644 --- a/tests/testimages/astc_mipmap_ldr_6x6_posx.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_6x6_posx.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:449fb1d4db98453a758eccb324e3ba56f89291b06affd567fb23741d4f7931b7 +oid sha256:83d1bcee363e0560745ee80bf6429d03876de05eb73c72d47266a20f86d0a9f4 size 2498272 diff --git a/tests/testimages/astc_mipmap_ldr_6x6_posy.ktx2 b/tests/testimages/astc_mipmap_ldr_6x6_posy.ktx2 index c8f7ed4dd7..23c2852c43 100644 --- a/tests/testimages/astc_mipmap_ldr_6x6_posy.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_6x6_posy.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:28ba80d15ed280fd050665de5e554ad1a9184a51f3844099965837699412c7ac +oid sha256:5b7ec1972d7e7cdf3d84ff878f5f534c84dc5fbf56757941cea7c989a0bfb1e9 size 2498272 diff --git a/tests/testimages/astc_mipmap_ldr_6x6_posz.ktx2 b/tests/testimages/astc_mipmap_ldr_6x6_posz.ktx2 index bf615688f9..21b63de913 100644 --- a/tests/testimages/astc_mipmap_ldr_6x6_posz.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_6x6_posz.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5ec9b7bf5000b5deb8ddf840777c57563ab9c48ff65bc84eda967f195705bf66 +oid sha256:83f825e485956f22a751f6cd595d77c5cec590bf23a7f8eaabb8dab904a02b86 size 2498272 diff --git a/tests/testimages/astc_mipmap_ldr_8x6_posx.ktx2 b/tests/testimages/astc_mipmap_ldr_8x6_posx.ktx2 index d61f2f6312..c552989b85 100644 --- a/tests/testimages/astc_mipmap_ldr_8x6_posx.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_8x6_posx.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9e31c965a0399ce68183dd7404a61269624587654fdfd65468bdba7bd26be9a8 +oid sha256:a40d4d93f76e40dc11654169012d5dcf58c5007ef40794fd2d405ffb1ac693d6 size 1869280 diff --git a/tests/testimages/astc_mipmap_ldr_8x8_posx.ktx2 b/tests/testimages/astc_mipmap_ldr_8x8_posx.ktx2 index 93bd60aca8..2bddc447b9 100644 --- a/tests/testimages/astc_mipmap_ldr_8x8_posx.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_8x8_posx.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:209b41200ff360ec5ec30c0f7507200e0ce3bd99fe7b26dc31aa134efb4af9fd +oid sha256:b28fc4c2221e67563106f27410d82bac859d90fb808eca0e14e8b1224928b015 size 1398704 diff --git a/tests/testimages/astc_mipmap_ldr_cubemap_6x6.ktx2 b/tests/testimages/astc_mipmap_ldr_cubemap_6x6.ktx2 index 2690d55e5d..64c655e90e 100644 --- a/tests/testimages/astc_mipmap_ldr_cubemap_6x6.ktx2 +++ b/tests/testimages/astc_mipmap_ldr_cubemap_6x6.ktx2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:219715853c8ba72b30700b8fdc8cf5b07b9304cb891fe48d9e0fd1fb4879cd0b +oid sha256:16ff807bfbaddc2d315350b4ee9e93aceb9e8f3f88d5bec539a8b9cad8300d81 size 14986832