From f1d6a5a73503990fcfc46d6c8065b97a3c11217b Mon Sep 17 00:00:00 2001 From: Alexander Suvorov Date: Fri, 9 Jun 2017 18:34:42 +0200 Subject: [PATCH] Improve and optimize the endpoint reordering algorithm This change significantly improves the compression ratio and compression speed. Explanation: After the endpoint codebook has been determined, the endpoints can be reordered in order to improve the compression ratio. On the one hand, endpoint indices of the neighbor blocks should be similar, as the encoder compresses the deltas between those neighbour indices. On the other hand, the neighbor endpoints in the codebook should be also similar, as the encoder compresses the deltas between the color components of those neighbor endpoints. The optimization is based on the Zeng's technique, using a weighted function which takes into account both similarity of the endpoint indices for the neighbor blocks and similarity of the neighbor endpoints in the codebook. The similarity of the endpoint indices is optimized using the combined neighborhood frequency of the candidate endpoint and all the currently selected endpoints in the list. The similarity of the neighbor endpoints in the codebook is optimized using euclidian distance from the candidate endpoint to the extremity of selected endpoints list. The original optimization function for the endpoint candidate (i) can be represented as: F(i) = (total_neighborhood_frequency(i) + 1) * (endpoint_similarity(i) + 1) The problem with this approach is the following. While the endpoint_similarity(i) has a limited range of values, the total_neighborhood_frequency(i) grows rapidly with the increasing size of the selected endpoints list. With each iteration this introduces additional disbalance for the weighted function. In order to minimize this effect, is it proposed to normalize the total_neighborhood_frequency(i) on each iteration. For computational simplicity, the normalizer is computed as the optimal total_neighborhood_frequency value from the previous iteration, multiplied by a constant. The modified optimization function can be represented as: F(i) = (total_neighborhood_frequency(i) + total_neighborhood_frequency_normalizer) * (endpoint_similarity(i) + 1) The main ideas used for endpoint reordering optimization: - all the computations, which are common for the endpoint reordering threads, have been moved outside of the threads - the ordering histogram offsets, which point to the neighborhood frequency values for a specific endpoint, are now cached, which reduces the number of multiplications when accessing the histogram - floating point operations have been replaced with integer operations Testing: The modified algorithm has been tested on the Kodak test set using 64-bit build with default settings (running on Windows 10, i7-4790, 3.6GHz). All the decompressed test images are identical to the images being compressed and decompressed using original version of Crunch. [Compressing Kodak set without mipmaps] Original: 1582222 bytes / 28.873 sec Modified: 1482726 bytes / 15.791 sec Improvement: 6.29% (compression ratio) / 45.31% (compression time) [Compressing Kodak set with mipmaps] Original: 2065243 bytes / 36.925 sec Modified: 1931475 bytes / 20.970 sec Improvement: 6.48% (compression ratio) / 43.21% (compression time) --- bin/crunch_x64.exe | Bin 987136 -> 987136 bytes crnlib/crn_comp.cpp | 530 +++++++++++++---------------- crnlib/crn_comp.h | 18 +- crnlib/crn_zeng.cpp | 164 --------- crnlib/crn_zeng.h | 22 -- crnlib/crnlib.2010.vcxproj | 2 - crnlib/crnlib.2010.vcxproj.filters | 6 - 7 files changed, 254 insertions(+), 488 deletions(-) delete mode 100644 crnlib/crn_zeng.cpp delete mode 100644 crnlib/crn_zeng.h diff --git a/bin/crunch_x64.exe b/bin/crunch_x64.exe index 4c7b128d1b95fa2376ac6d77c245fbc30109581e..9c4747154bca6ed3fa1c9c5be436f511285508a8 100644 GIT binary patch delta 206161 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ŞoS9#dGNfN8qGRKjX< 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 z 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%0DqOpsE|gxfy!% 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 OCiWcvUXe8oLEELr_f`f$EMZRFlS_ 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 Tvc9K9W!QHnHy5?2syY7yG{l$# delta 206618 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ⅆRMO^ETY~lErpSFuLMqH@w;{T+VW}>y- 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 f9V%kmYjgF8PL_@(xq3#Yy2YNJ+fm-BY8U& color_endpoints = *static_cast*>(pContext); - - uint endpoint_a = color_endpoints[index_a]; - uint endpoint_b = color_endpoints[index_b]; - - color_quad_u8 a[2]; - a[0] = dxt1_block::unpack_color((uint16)(endpoint_a & 0xFFFF), true); - a[1] = dxt1_block::unpack_color((uint16)((endpoint_a >> 16) & 0xFFFF), true); - - color_quad_u8 b[2]; - b[0] = dxt1_block::unpack_color((uint16)(endpoint_b & 0xFFFF), true); - b[1] = dxt1_block::unpack_color((uint16)((endpoint_b >> 16) & 0xFFFF), true); - - uint total_error = color::elucidian_distance(a[0], b[0], false) + color::elucidian_distance(a[1], b[1], false); - - float weight = 1.0f - math::clamp(total_error * 1.0f / 8000.0f, 0.0f, 1.0f); - return weight; -} - -float crn_comp::alpha_endpoint_similarity_func(uint index_a, uint index_b, void* pContext) { - crnlib::vector& alpha_endpoints = *static_cast*>(pContext); - - uint endpoint_a = alpha_endpoints[index_a]; - int endpoint_a_lo = dxt5_block::unpack_endpoint(endpoint_a, 0); - int endpoint_a_hi = dxt5_block::unpack_endpoint(endpoint_a, 1); - - uint endpoint_b = alpha_endpoints[index_b]; - int endpoint_b_lo = dxt5_block::unpack_endpoint(endpoint_b, 0); - int endpoint_b_hi = dxt5_block::unpack_endpoint(endpoint_b, 1); - - int total_error = math::square(endpoint_a_lo - endpoint_b_lo) + math::square(endpoint_a_hi - endpoint_b_hi); - - float weight = 1.0f - math::clamp(total_error * 1.0f / 256.0f, 0.0f, 1.0f); - return weight; -} - void crn_comp::sort_color_endpoint_codebook(crnlib::vector& remapping, const crnlib::vector& endpoints) { remapping.resize(endpoints.size()); @@ -167,18 +129,7 @@ void crn_comp::sort_alpha_endpoint_codebook(crnlib::vector& remapping, con } } -// The indices are only used for statistical purposes. -bool crn_comp::pack_color_endpoints( - crnlib::vector& data, - const crnlib::vector& remapping, - uint trial_index) { - trial_index; - -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) - console::debug("pack_color_endpoints: %u", trial_index); -#endif - +bool crn_comp::pack_color_endpoints(crnlib::vector& data, const crnlib::vector& remapping) { crnlib::vector remapped_endpoints(m_color_endpoints.size()); for (uint i = 0; i < m_color_endpoints.size(); i++) @@ -190,11 +141,6 @@ bool crn_comp::pack_color_endpoints( hist[0].resize(32); hist[1].resize(64); -#if CRNLIB_CREATE_DEBUG_IMAGES - image_u8 endpoint_image(2, m_hvq.get_color_endpoint_codebook_size()); - image_u8 endpoint_residual_image(2, m_hvq.get_color_endpoint_codebook_size()); -#endif - crnlib::vector residual_syms; residual_syms.reserve(m_color_endpoints.size() * 2 * 3); @@ -211,26 +157,14 @@ bool crn_comp::pack_color_endpoints( cur[0] = dxt1_block::unpack_color((uint16)(endpoint & 0xFFFF), false); cur[1] = dxt1_block::unpack_color((uint16)((endpoint >> 16) & 0xFFFF), false); -#if CRNLIB_CREATE_DEBUG_IMAGES - endpoint_image(0, endpoint_index) = dxt1_block::unpack_color((uint16)(endpoint & 0xFFFF), true); - endpoint_image(1, endpoint_index) = dxt1_block::unpack_color((uint16)((endpoint >> 16) & 0xFFFF), true); -#endif - for (uint j = 0; j < 2; j++) { for (uint k = 0; k < 3; k++) { int delta = cur[j][k] - prev[j][k]; total_residuals += delta * delta; - int sym = delta & component_limits[j * 3 + k]; int table = (k == 1) ? 1 : 0; - hist[table].inc_freq(sym); - residual_syms.push_back(sym); - -#if CRNLIB_CREATE_DEBUG_IMAGES - endpoint_residual_image(j, endpoint_index)[k] = static_cast(sym); -#endif } } @@ -238,16 +172,6 @@ bool crn_comp::pack_color_endpoints( prev[1] = cur[1]; } -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) - console::debug("Total endpoint residuals: %i", total_residuals); -#endif - -#if CRNLIB_CREATE_DEBUG_IMAGES - image_utils::write_to_file(dynamic_string(cVarArg, "color_endpoint_residuals_%u.tga", trial_index).get_ptr(), endpoint_residual_image); - image_utils::write_to_file(dynamic_string(cVarArg, "color_endpoints_%u.tga", trial_index).get_ptr(), endpoint_image); -#endif - static_huffman_data_model residual_dm[2]; symbol_codec codec; @@ -262,11 +186,6 @@ bool crn_comp::pack_color_endpoints( return false; } -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) - console::debug("Wrote %u bits for color endpoint residual Huffman tables", codec.encode_get_total_bits_written()); -#endif - uint start_bits = codec.encode_get_total_bits_written(); start_bits; @@ -276,38 +195,14 @@ bool crn_comp::pack_color_endpoints( codec.encode(sym, residual_dm[table]); } -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) - console::debug("Wrote %u bits for color endpoint residuals", codec.encode_get_total_bits_written() - start_bits); -#endif - codec.stop_encoding(false); data.swap(codec.get_encoding_buf()); -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) { - console::debug("Wrote a total of %u bits for color endpoint codebook", codec.encode_get_total_bits_written()); - - console::debug("Wrote %f bits per each color endpoint", data.size() * 8.0f / m_hvq.get_color_endpoint_codebook_size()); - } -#endif - return true; } -// The indices are only used for statistical purposes. -bool crn_comp::pack_alpha_endpoints( - crnlib::vector& data, - const crnlib::vector& remapping, - uint trial_index) { - trial_index; - -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) - console::debug("pack_alpha_endpoints: %u", trial_index); -#endif - +bool crn_comp::pack_alpha_endpoints(crnlib::vector& data, const crnlib::vector& remapping) { crnlib::vector remapped_endpoints(m_alpha_endpoints.size()); for (uint i = 0; i < m_alpha_endpoints.size(); i++) @@ -316,11 +211,6 @@ bool crn_comp::pack_alpha_endpoints( symbol_histogram hist; hist.resize(256); -#if CRNLIB_CREATE_DEBUG_IMAGES - image_u8 endpoint_image(2, m_hvq.get_alpha_endpoint_codebook_size()); - image_u8 endpoint_residual_image(2, m_hvq.get_alpha_endpoint_codebook_size()); -#endif - crnlib::vector residual_syms; residual_syms.reserve(m_alpha_endpoints.size() * 2 * 3); @@ -336,11 +226,6 @@ bool crn_comp::pack_alpha_endpoints( cur[0] = dxt5_block::unpack_endpoint(endpoint, 0); cur[1] = dxt5_block::unpack_endpoint(endpoint, 1); -#if CRNLIB_CREATE_DEBUG_IMAGES - endpoint_image(0, endpoint_index) = cur[0]; - endpoint_image(1, endpoint_index) = cur[1]; -#endif - for (uint j = 0; j < 2; j++) { int delta = cur[j] - prev[j]; total_residuals += delta * delta; @@ -350,26 +235,12 @@ bool crn_comp::pack_alpha_endpoints( hist.inc_freq(sym); residual_syms.push_back(sym); - -#if CRNLIB_CREATE_DEBUG_IMAGES - endpoint_residual_image(j, endpoint_index) = static_cast(sym); -#endif } prev[0] = cur[0]; prev[1] = cur[1]; } -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) - console::debug("Total endpoint residuals: %i", total_residuals); -#endif - -#if CRNLIB_CREATE_DEBUG_IMAGES - image_utils::write_to_file(dynamic_string(cVarArg, "alpha_endpoint_residuals_%u.tga", trial_index).get_ptr(), endpoint_residual_image); - image_utils::write_to_file(dynamic_string(cVarArg, "alpha_endpoints_%u.tga", trial_index).get_ptr(), endpoint_image); -#endif - static_huffman_data_model residual_dm; symbol_codec codec; @@ -382,11 +253,6 @@ bool crn_comp::pack_alpha_endpoints( if (!codec.encode_transmit_static_huffman_data_model(residual_dm, false)) return false; -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) - console::debug("Wrote %u bits for alpha endpoint residual Huffman tables", codec.encode_get_total_bits_written()); -#endif - uint start_bits = codec.encode_get_total_bits_written(); start_bits; @@ -395,23 +261,10 @@ bool crn_comp::pack_alpha_endpoints( codec.encode(sym, residual_dm); } -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) - console::debug("Wrote %u bits for alpha endpoint residuals", codec.encode_get_total_bits_written() - start_bits); -#endif - codec.stop_encoding(false); data.swap(codec.get_encoding_buf()); -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) { - console::debug("Wrote a total of %u bits for alpha endpoint codebook", codec.encode_get_total_bits_written()); - - console::debug("Wrote %f bits per each alpha endpoint", data.size() * 8.0f / m_hvq.get_alpha_endpoint_codebook_size()); - } -#endif - return true; } @@ -926,54 +779,105 @@ bool crn_comp::quantize_images() { return result; } -struct optimize_color_endpoint_codebook_params { - struct trial { +struct optimize_color_endpoints_params { + struct unpacked_endpoint { + color_quad_u8 low, high; + }; + const unpacked_endpoint* unpacked_endpoints; + const uint* hist; + uint n; + uint selected; + float weight; + struct result { crnlib::vector remapping; crnlib::vector packed_endpoints; uint total_bits; - } *m_trial; - hist_type* m_xhist; - uint m_iter_index; - uint m_max_iter_index; + } *pResult; }; -void crn_comp::optimize_color_endpoint_codebook_task(uint64 data, void* pData_ptr) { - data; - optimize_color_endpoint_codebook_params* pParams = reinterpret_cast(pData_ptr); - crnlib::vector& remapping = pParams->m_trial->remapping; +static void remap_color_endpoints(uint* remapping, const optimize_color_endpoints_params::unpacked_endpoint* unpacked_endpoints, const uint* hist, uint n, uint selected, float weight) { + const uint* frequency = hist + selected * n; + crnlib::vector chosen, remaining; + crnlib::vector total_frequency(n); + chosen.push_back(selected); + for (uint i = 0; i < n; i++) { + if (i != selected) { + remaining.push_back(i); + total_frequency[i] = frequency[i]; + } + } + for (uint similarity_base = (uint)(4000 * (1.0f + weight)), total_frequency_normalizer = 0; remaining.size();) { + const optimize_color_endpoints_params::unpacked_endpoint& e_front = unpacked_endpoints[chosen.front()]; + const optimize_color_endpoints_params::unpacked_endpoint& e_back = unpacked_endpoints[chosen.back()]; + uint selected_index; + uint64 best_value = 0, selected_similarity_front, selected_similarity_back; + for (uint i = 0; i < remaining.size(); i++) { + uint remaining_index = remaining[i]; + const optimize_color_endpoints_params::unpacked_endpoint& e_remaining = unpacked_endpoints[remaining_index]; + uint error_front = color::elucidian_distance(e_remaining.low, e_front.low, false) + color::elucidian_distance(e_remaining.high, e_front.high, false); + uint error_back = color::elucidian_distance(e_remaining.low, e_back.low, false) + color::elucidian_distance(e_remaining.high, e_back.high, false); + uint64 similarity_front = similarity_base - math::minimum(error_front, 4000); + uint64 similarity_back = similarity_base - math::minimum(error_back, 4000); + uint64 value = math::maximum(similarity_front, similarity_back) * (total_frequency[remaining_index] + (total_frequency_normalizer << 3)) + 1; + if (value > best_value) { + best_value = value; + selected_index = i; + selected_similarity_front = similarity_front; + selected_similarity_back = similarity_back; + } + } + selected = remaining[selected_index]; + frequency = hist + selected * n; + total_frequency_normalizer = total_frequency[selected]; + uint frequency_front = 0, frequency_back = 0; + for (int front = 0, back = chosen.size() - 1, scale = back; scale > 0; front++, back--, scale -= 2) { + frequency_front += scale * frequency[chosen[front]]; + frequency_back += scale * frequency[chosen[back]]; + } + if (selected_similarity_front * frequency_front > selected_similarity_back * frequency_back) { + chosen.push_front(selected); + } else { + chosen.push_back(selected); + } + remaining.erase(remaining.begin() + selected_index); + for (uint i = 0; i < remaining.size(); i++) + total_frequency[remaining[i]] += frequency[remaining[i]]; + } + for (uint i = 0; i < n; i++) + remapping[chosen[i]] = i; +} - if (pParams->m_iter_index == pParams->m_max_iter_index) { - sort_color_endpoint_codebook(remapping, m_color_endpoints); +void crn_comp::optimize_color_endpoints_task(uint64 data, void* pData_ptr) { + optimize_color_endpoints_params* pParams = reinterpret_cast(pData_ptr); + crnlib::vector& remapping = pParams->pResult->remapping; + uint n = pParams->n; + remapping.resize(n); + + if (data) { + remap_color_endpoints(remapping.get_ptr(), pParams->unpacked_endpoints, pParams->hist, n, pParams->selected, pParams->weight); } else { - create_zeng_reorder_table( - m_color_endpoints.size(), - *pParams->m_xhist, - remapping, - pParams->m_iter_index ? color_endpoint_similarity_func : NULL, - &m_color_endpoints, - pParams->m_iter_index / static_cast(pParams->m_max_iter_index - 1)); + sort_color_endpoint_codebook(remapping, m_color_endpoints); } - pack_color_endpoints(pParams->m_trial->packed_endpoints, remapping, pParams->m_iter_index); - uint total_bits = pParams->m_trial->packed_endpoints.size() << 3; - uint codebook_size = remapping.size(); + pack_color_endpoints(pParams->pResult->packed_endpoints, remapping); + uint total_bits = pParams->pResult->packed_endpoints.size() << 3; - crnlib::vector hist(codebook_size); + crnlib::vector hist(n); for (uint level = 0; level < m_levels.size(); level++) { for (uint endpoint_index = 0, b = m_levels[level].first_block, bEnd = b + m_levels[level].num_blocks; b < bEnd; b++) { uint index = remapping[m_endpoint_indices[b].component[cColor]]; if (!m_endpoint_indices[b].reference) { int sym = index - endpoint_index; - hist[sym < 0 ? sym + codebook_size : sym]++; + hist[sym < 0 ? sym + n : sym]++; } endpoint_index = index; } } static_huffman_data_model dm; - dm.init(true, codebook_size, hist.get_ptr(), 16); + dm.init(true, n, hist.get_ptr(), 16); const uint8* code_sizes = dm.get_code_sizes(); - for (uint s = 0; s < codebook_size; s++) + for (uint s = 0; s < n; s++) total_bits += hist[s] * code_sizes[s]; symbol_codec codec; @@ -983,67 +887,69 @@ void crn_comp::optimize_color_endpoint_codebook_task(uint64 data, void* pData_pt codec.stop_encoding(false); total_bits += codec.encode_get_total_bits_written(); - pParams->m_trial->total_bits = total_bits; + pParams->pResult->total_bits = total_bits; crnlib_delete(pParams); } -bool crn_comp::optimize_color_endpoint_codebook(crnlib::vector& remapping) { +bool crn_comp::optimize_color_endpoints(crnlib::vector& remapping) { if (m_pParams->m_flags & cCRNCompFlagQuick) { remapping.resize(m_color_endpoints.size()); for (uint i = 0; i < m_color_endpoints.size(); i++) remapping[i] = i; - - if (!pack_color_endpoints(m_packed_color_endpoints, remapping, 0)) - return false; - - return true; + return pack_color_endpoints(m_packed_color_endpoints, remapping); } -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) - console::debug("----- Begin optimization of color endpoint codebook"); -#endif - - const uint cMaxEndpointRemapIters = 3; - optimize_color_endpoint_codebook_params::trial remapping_trial[cMaxEndpointRemapIters + 1]; - uint n = m_color_endpoints.size(); - hist_type xhist(n * n); - for (uint b = 1; b < m_endpoint_indices.size(); b++) { - if (!m_endpoint_indices[b].reference) { - update_hist(xhist, m_endpoint_indices[b - 1].color, m_endpoint_indices[b].color, n); - update_hist(xhist, m_endpoint_indices[b].color, m_endpoint_indices[b - 1].color, n); + crnlib::vector hist(n * n); + crnlib::vector sum(n); + for (uint i, i_prev = 0, b = 0; b < m_endpoint_indices.size(); b++, i_prev = i) { + i = m_endpoint_indices[b].color; + if (!m_endpoint_indices[b].reference && i != i_prev) { + hist[i * n + i_prev]++; + hist[i_prev * n + i]++; + sum[i]++; + sum[i_prev]++; } } + uint selected = 0; + for (uint best_sum = 0, i = 0; i < n; i++) { + if (best_sum < sum[i]) { + best_sum = sum[i]; + selected = i; + } + } + crnlib::vector unpacked_endpoints(n); + for (uint i = 0; i < n; i++) { + unpacked_endpoints[i].low = dxt1_block::unpack_color(m_color_endpoints[i] & 0xFFFF, true); + unpacked_endpoints[i].high = dxt1_block::unpack_color(m_color_endpoints[i] >> 16, true); + } - for (uint i = 0; i <= cMaxEndpointRemapIters; i++) { - optimize_color_endpoint_codebook_params* pParams = crnlib_new(); - pParams->m_iter_index = i; - pParams->m_max_iter_index = cMaxEndpointRemapIters; - pParams->m_trial = remapping_trial + i; - pParams->m_xhist = &xhist; - m_task_pool.queue_object_task(this, &crn_comp::optimize_color_endpoint_codebook_task, 0, pParams); + optimize_color_endpoints_params::result remapping_trial[4]; + float weights[4] = {0, 0, 1.0f / 6.0f, 0.5f}; + for (uint i = 0; i < 4; i++) { + optimize_color_endpoints_params* pParams = crnlib_new(); + pParams->unpacked_endpoints = unpacked_endpoints.get_ptr(); + pParams->hist = hist.get_ptr(); + pParams->n = n; + pParams->selected = selected; + pParams->weight = weights[i]; + pParams->pResult = remapping_trial + i; + m_task_pool.queue_object_task(this, &crn_comp::optimize_color_endpoints_task, i, pParams); } m_task_pool.join(); - for (uint best_bits = UINT_MAX, i = 0; i <= cMaxEndpointRemapIters; i++) { + for (uint best_bits = cUINT32_MAX, i = 0; i < 4; i++) { if (remapping_trial[i].total_bits < best_bits) { m_packed_color_endpoints.swap(remapping_trial[i].packed_endpoints); remapping.swap(remapping_trial[i].remapping); best_bits = remapping_trial[i].total_bits; } } - -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) - console::debug("End optimization of color endpoint codebook"); -#endif - return true; } -bool crn_comp::optimize_color_selector_codebook(crnlib::vector& remapping) { +bool crn_comp::optimize_color_selectors(crnlib::vector& remapping) { if (m_pParams->m_flags & cCRNCompFlagQuick) { remapping.resize(m_color_selectors.size()); for (uint i = 0; i < m_color_selectors.size(); i++) @@ -1054,65 +960,116 @@ bool crn_comp::optimize_color_selector_codebook(crnlib::vector& remapping) return pack_color_selectors(m_packed_color_selectors, remapping); } -struct optimize_alpha_endpoint_codebook_params { - struct trial { +struct optimize_alpha_endpoints_params { + struct unpacked_endpoint { + uint8 low, high; + }; + const unpacked_endpoint* unpacked_endpoints; + const uint* hist; + uint n; + uint selected; + float weight; + struct result { crnlib::vector remapping; crnlib::vector packed_endpoints; uint total_bits; - } *m_trial; - hist_type* m_xhist; - uint m_iter_index; - uint m_max_iter_index; + } *pResult; }; -void crn_comp::optimize_alpha_endpoint_codebook_task(uint64 data, void* pData_ptr) { - data; - optimize_alpha_endpoint_codebook_params* pParams = reinterpret_cast(pData_ptr); - crnlib::vector& remapping = pParams->m_trial->remapping; +static void remap_alpha_endpoints(uint* remapping, const optimize_alpha_endpoints_params::unpacked_endpoint* unpacked_endpoints, const uint* hist, uint n, uint selected, float weight) { + const uint* frequency = hist + selected * n; + crnlib::vector chosen, remaining; + crnlib::vector total_frequency(n); + chosen.push_back(selected); + for (uint i = 0; i < n; i++) { + if (i != selected) { + remaining.push_back(i); + total_frequency[i] = frequency[i]; + } + } + for (uint similarity_base = (uint)(1000 * (1.0f + weight)), total_frequency_normalizer = 0; remaining.size();) { + const optimize_alpha_endpoints_params::unpacked_endpoint& e_front = unpacked_endpoints[chosen.front()]; + const optimize_alpha_endpoints_params::unpacked_endpoint& e_back = unpacked_endpoints[chosen.back()]; + uint selected_index; + uint64 best_value = 0, selected_similarity_front, selected_similarity_back; + for (uint i = 0; i < remaining.size(); i++) { + uint remaining_index = remaining[i]; + const optimize_alpha_endpoints_params::unpacked_endpoint& e_remaining = unpacked_endpoints[remaining_index]; + uint error_front = math::square(e_remaining.low - e_front.low) + math::square(e_remaining.high - e_front.high); + uint error_back = math::square(e_remaining.low - e_back.low) + math::square(e_remaining.high - e_back.high); + uint64 similarity_front = similarity_base - math::minimum(error_front, 1000); + uint64 similarity_back = similarity_base - math::minimum(error_back, 1000); + uint64 value = math::maximum(similarity_front, similarity_back) * (total_frequency[remaining_index] + total_frequency_normalizer) + 1; + if (value > best_value) { + best_value = value; + selected_index = i; + selected_similarity_front = similarity_front; + selected_similarity_back = similarity_back; + } + } + selected = remaining[selected_index]; + frequency = hist + selected * n; + total_frequency_normalizer = total_frequency[selected]; + uint frequency_front = 0, frequency_back = 0; + for (int front = 0, back = chosen.size() - 1, scale = back; scale > 0; front++, back--, scale -= 2) { + frequency_front += scale * frequency[chosen[front]]; + frequency_back += scale * frequency[chosen[back]]; + } + if (selected_similarity_front * frequency_front > selected_similarity_back * frequency_back) { + chosen.push_front(selected); + } else { + chosen.push_back(selected); + } + remaining.erase(remaining.begin() + selected_index); + for (uint i = 0; i < remaining.size(); i++) + total_frequency[remaining[i]] += frequency[remaining[i]]; + } + for (uint i = 0; i < n; i++) + remapping[chosen[i]] = i; +} - if (pParams->m_iter_index == pParams->m_max_iter_index) { - sort_alpha_endpoint_codebook(remapping, m_alpha_endpoints); +void crn_comp::optimize_alpha_endpoints_task(uint64 data, void* pData_ptr) { + optimize_alpha_endpoints_params* pParams = reinterpret_cast(pData_ptr); + crnlib::vector& remapping = pParams->pResult->remapping; + uint n = pParams->n; + remapping.resize(n); + + if (data) { + remap_alpha_endpoints(remapping.get_ptr(), pParams->unpacked_endpoints, pParams->hist, n, pParams->selected, pParams->weight); } else { - create_zeng_reorder_table( - m_alpha_endpoints.size(), - *pParams->m_xhist, - remapping, - pParams->m_iter_index ? alpha_endpoint_similarity_func : NULL, - &m_alpha_endpoints, - pParams->m_iter_index / static_cast(pParams->m_max_iter_index - 1)); + sort_alpha_endpoint_codebook(remapping, m_alpha_endpoints); } - pack_alpha_endpoints(pParams->m_trial->packed_endpoints, remapping, pParams->m_iter_index); - uint total_bits = pParams->m_trial->packed_endpoints.size() << 3; - uint codebook_size = remapping.size(); + pack_alpha_endpoints(pParams->pResult->packed_endpoints, remapping); + uint total_bits = pParams->pResult->packed_endpoints.size() << 3; - crnlib::vector hist(codebook_size); + crnlib::vector hist(n); bool hasAlpha0 = m_has_comp[cAlpha0], hasAlpha1 = m_has_comp[cAlpha1]; for (uint level = 0; level < m_levels.size(); level++) { - for (uint index0 = 0, index1 = 0, b = m_levels[level].first_block, bEnd = b + m_levels[level].num_blocks; b < bEnd; b++) { + for (uint alpha0_index = 0, alpha1_index = 0, b = m_levels[level].first_block, bEnd = b + m_levels[level].num_blocks; b < bEnd; b++) { if (hasAlpha0) { uint index = remapping[m_endpoint_indices[b].component[cAlpha0]]; if (!m_endpoint_indices[b].reference) { - int sym = index - index0; - hist[sym < 0 ? sym + codebook_size : sym]++; + int sym = index - alpha0_index; + hist[sym < 0 ? sym + n : sym]++; } - index0 = index; + alpha0_index = index; } if (hasAlpha1) { uint index = remapping[m_endpoint_indices[b].component[cAlpha1]]; if (!m_endpoint_indices[b].reference) { - int sym = index - index1; - hist[sym < 0 ? sym + codebook_size : sym]++; + int sym = index - alpha1_index; + hist[sym < 0 ? sym + n : sym]++; } - index1 = index; + alpha1_index = index; } } } static_huffman_data_model dm; - dm.init(true, codebook_size, hist.get_ptr(), 16); + dm.init(true, n, hist.get_ptr(), 16); const uint8* code_sizes = dm.get_code_sizes(); - for (uint s = 0; s < codebook_size; s++) + for (uint s = 0; s < n; s++) total_bits += hist[s] * code_sizes[s]; symbol_codec codec; @@ -1122,74 +1079,79 @@ void crn_comp::optimize_alpha_endpoint_codebook_task(uint64 data, void* pData_pt codec.stop_encoding(false); total_bits += codec.encode_get_total_bits_written(); - pParams->m_trial->total_bits = total_bits; + pParams->pResult->total_bits = total_bits; crnlib_delete(pParams); } -bool crn_comp::optimize_alpha_endpoint_codebook(crnlib::vector& remapping) { +bool crn_comp::optimize_alpha_endpoints(crnlib::vector& remapping) { if (m_pParams->m_flags & cCRNCompFlagQuick) { remapping.resize(m_alpha_endpoints.size()); for (uint i = 0; i < m_alpha_endpoints.size(); i++) remapping[i] = i; - - if (!pack_alpha_endpoints(m_packed_alpha_endpoints, remapping, 0)) - return false; - - return true; + return pack_alpha_endpoints(m_packed_alpha_endpoints, remapping); } -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) - console::debug("----- Begin optimization of alpha endpoint codebook"); -#endif - - const uint cMaxEndpointRemapIters = 3; - optimize_alpha_endpoint_codebook_params::trial remapping_trial[cMaxEndpointRemapIters + 1]; - uint n = m_alpha_endpoints.size(); - hist_type xhist(n * n); + crnlib::vector hist(n * n); + crnlib::vector sum(n); bool hasAlpha0 = m_has_comp[cAlpha0], hasAlpha1 = m_has_comp[cAlpha1]; - for (uint b = 1; b < m_endpoint_indices.size(); b++) { + for (uint i0, i1, i0_prev = 0, i1_prev = 0, b = 0; b < m_endpoint_indices.size(); b++, i0_prev = i0, i1_prev = i1) { + i0 = m_endpoint_indices[b].alpha0; + i1 = m_endpoint_indices[b].alpha1; if (!m_endpoint_indices[b].reference) { - if (hasAlpha0) { - update_hist(xhist, m_endpoint_indices[b - 1].alpha0, m_endpoint_indices[b].alpha0, n); - update_hist(xhist, m_endpoint_indices[b].alpha0, m_endpoint_indices[b - 1].alpha0, n); + if (hasAlpha0 && i0 != i0_prev) { + hist[i0 * n + i0_prev]++; + hist[i0_prev * n + i0]++; + sum[i0]++; + sum[i0_prev]++; } - if (hasAlpha1) { - update_hist(xhist, m_endpoint_indices[b - 1].alpha1, m_endpoint_indices[b].alpha1, n); - update_hist(xhist, m_endpoint_indices[b].alpha1, m_endpoint_indices[b - 1].alpha1, n); + if (hasAlpha1 && i1 != i1_prev) { + hist[i1 * n + i1_prev]++; + hist[i1_prev * n + i1]++; + sum[i1]++; + sum[i1_prev]++; } } } + uint selected = 0; + for (uint best_sum = 0, i = 0; i < n; i++) { + if (best_sum < sum[i]) { + best_sum = sum[i]; + selected = i; + } + } + crnlib::vector unpacked_endpoints(n); + for (uint i = 0; i < n; i++) { + unpacked_endpoints[i].low = dxt5_block::unpack_endpoint(m_alpha_endpoints[i], 0); + unpacked_endpoints[i].high = dxt5_block::unpack_endpoint(m_alpha_endpoints[i], 1); + } - for (uint i = 0; i <= cMaxEndpointRemapIters; i++) { - optimize_alpha_endpoint_codebook_params* pParams = crnlib_new(); - pParams->m_iter_index = i; - pParams->m_max_iter_index = cMaxEndpointRemapIters; - pParams->m_trial = remapping_trial + i; - pParams->m_xhist = &xhist; - m_task_pool.queue_object_task(this, &crn_comp::optimize_alpha_endpoint_codebook_task, 0, pParams); + optimize_alpha_endpoints_params::result remapping_trial[4]; + float weights[4] = {0, 0, 1.0f / 6.0f, 0.5f}; + for (uint i = 0; i < 4; i++) { + optimize_alpha_endpoints_params* pParams = crnlib_new(); + pParams->unpacked_endpoints = unpacked_endpoints.get_ptr(); + pParams->hist = hist.get_ptr(); + pParams->n = n; + pParams->selected = selected; + pParams->weight = weights[i]; + pParams->pResult = remapping_trial + i; + m_task_pool.queue_object_task(this, &crn_comp::optimize_alpha_endpoints_task, i, pParams); } m_task_pool.join(); - for (uint best_bits = UINT_MAX, i = 0; i <= cMaxEndpointRemapIters; i++) { + for (uint best_bits = cUINT32_MAX, i = 0; i < 4; i++) { if (remapping_trial[i].total_bits < best_bits) { m_packed_alpha_endpoints.swap(remapping_trial[i].packed_endpoints); remapping.swap(remapping_trial[i].remapping); best_bits = remapping_trial[i].total_bits; } } - -#if CRNLIB_ENABLE_DEBUG_MESSAGES - if (m_pParams->m_flags & cCRNCompFlagDebugging) - console::debug("End optimization of alpha endpoint codebook"); -#endif - return true; } -bool crn_comp::optimize_alpha_selector_codebook(crnlib::vector& remapping) { +bool crn_comp::optimize_alpha_selectors(crnlib::vector& remapping) { if (m_pParams->m_flags & cCRNCompFlagQuick) { remapping.resize(m_alpha_selectors.size()); for (uint i = 0; i < m_alpha_selectors.size(); i++) @@ -1324,16 +1286,16 @@ bool crn_comp::compress_internal() { crnlib::vector selector_remap[2]; if (m_has_comp[cColor]) { - if (!optimize_color_endpoint_codebook(endpoint_remap[0])) + if (!optimize_color_endpoints(endpoint_remap[0])) return false; - if (!optimize_color_selector_codebook(selector_remap[0])) + if (!optimize_color_selectors(selector_remap[0])) return false; } if (m_has_comp[cAlpha0]) { - if (!optimize_alpha_endpoint_codebook(endpoint_remap[1])) + if (!optimize_alpha_endpoints(endpoint_remap[1])) return false; - if (!optimize_alpha_selector_codebook(selector_remap[1])) + if (!optimize_alpha_selectors(selector_remap[1])) return false; } diff --git a/crnlib/crn_comp.h b/crnlib/crn_comp.h index 58350ec..f8be80d 100644 --- a/crnlib/crn_comp.h +++ b/crnlib/crn_comp.h @@ -84,13 +84,11 @@ class crn_comp : public itexture_comp { void clear(); - static float color_endpoint_similarity_func(uint index_a, uint index_b, void* pContext); - static float alpha_endpoint_similarity_func(uint index_a, uint index_b, void* pContext); void sort_color_endpoint_codebook(crnlib::vector& remapping, const crnlib::vector& endpoints); void sort_alpha_endpoint_codebook(crnlib::vector& remapping, const crnlib::vector& endpoints); - bool pack_color_endpoints(crnlib::vector& data, const crnlib::vector& remapping, uint trial_index); - bool pack_alpha_endpoints(crnlib::vector& data, const crnlib::vector& remapping, uint trial_index); + bool pack_color_endpoints(crnlib::vector& data, const crnlib::vector& remapping); + bool pack_alpha_endpoints(crnlib::vector& data, const crnlib::vector& remapping); void sort_color_selectors(crnlib::vector& remapping); void sort_alpha_selectors(crnlib::vector& remapping); @@ -110,15 +108,15 @@ class crn_comp : public itexture_comp { const crnlib::vector* pAlpha_endpoint_remap, const crnlib::vector* pAlpha_selector_remap); - void optimize_color_endpoint_codebook_task(uint64 data, void* pData_ptr); - bool optimize_color_endpoint_codebook(crnlib::vector& remapping); + void optimize_color_endpoints_task(uint64 data, void* pData_ptr); + bool optimize_color_endpoints(crnlib::vector& remapping); - bool optimize_color_selector_codebook(crnlib::vector& remapping); + bool optimize_color_selectors(crnlib::vector& remapping); - void optimize_alpha_endpoint_codebook_task(uint64 data, void* pData_ptr); - bool optimize_alpha_endpoint_codebook(crnlib::vector& remapping); + void optimize_alpha_endpoints_task(uint64 data, void* pData_ptr); + bool optimize_alpha_endpoints(crnlib::vector& remapping); - bool optimize_alpha_selector_codebook(crnlib::vector& remapping); + bool optimize_alpha_selectors(crnlib::vector& remapping); bool create_comp_data(); diff --git a/crnlib/crn_zeng.cpp b/crnlib/crn_zeng.cpp deleted file mode 100644 index 81e48e4..0000000 --- a/crnlib/crn_zeng.cpp +++ /dev/null @@ -1,164 +0,0 @@ -// File: crn_zeng.cpp -// See Copyright Notice and license at the end of inc/crnlib.h -// Modified Zeng's technique for codebook/palette reordering -// Evaluation of some reordering techniques for image VQ index compression, António R. C. Paiva , O J. Pinho -// http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.88.7221 -#include "crn_core.h" -#include "crn_zeng.h" -#include "crn_sparse_array.h" -#include - -namespace crnlib { -void update_hist(hist_type& hist, int i, int j, int n) { - if (i == j) - return; - - if ((i != -1) && (j != -1) && (i < j)) { - CRNLIB_ASSERT((i >= 0) && (i < (int)n)); - CRNLIB_ASSERT((j >= 0) && (j < (int)n)); - - uint index = i * n + j; - -#if CRN_ZENG_USE_SPARSE_ARRAY - uint freq = hist[index]; - freq++; - hist.set(index, freq); -#else - hist[index]++; -#endif - } -} - -static inline uint read_hist(hist_type& hist, int i, int j, int n) { - if (i > j) - utils::swap(i, j); - - return hist[i * n + j]; -} - -void create_zeng_reorder_table(uint n, hist_type& xhist, crnlib::vector& remap_table, zeng_similarity_func pFunc, void* pContext, float similarity_func_weight) { - CRNLIB_ASSERT(n > 0); - CRNLIB_ASSERT_CLOSED_RANGE(similarity_func_weight, 0.0f, 1.0f); - - remap_table.clear(); - remap_table.resize(n); - - const uint t = n * n; - - uint max_freq = 0; - uint max_index = 0; - for (uint i = 0; i < t; i++) { - if (xhist[i] > max_freq) { - max_freq = xhist[i]; - max_index = i; - } - } - - uint x = max_index / n; - uint y = max_index % n; - - crnlib::vector values_chosen; - values_chosen.reserve(n); - - values_chosen.push_back(static_cast(x)); - values_chosen.push_back(static_cast(y)); - - crnlib::vector values_remaining; - if (n > 2) - values_remaining.reserve(n - 2); - for (uint i = 0; i < n; i++) - if ((i != x) && (i != y)) - values_remaining.push_back(static_cast(i)); - - crnlib::vector total_freq_to_chosen_values(n); - for (uint i = 0; i < values_remaining.size(); i++) { - uint u = values_remaining[i]; - - uint total_freq = 0; - - for (uint j = 0; j < values_chosen.size(); j++) { - uint l = values_chosen[j]; - - total_freq += read_hist(xhist, u, l, n); //[u * n + l]; - } - - total_freq_to_chosen_values[u] = total_freq; - } - - while (!values_remaining.empty()) { - double best_freq = 0; - uint best_i = 0; - - for (uint i = 0; i < values_remaining.size(); i++) { - uint u = values_remaining[i]; - double total_freq = total_freq_to_chosen_values[u]; - - if (pFunc) { - float weight = math::maximum( - (*pFunc)(u, values_chosen.front(), pContext), - (*pFunc)(u, values_chosen.back(), pContext)); - - CRNLIB_ASSERT_CLOSED_RANGE(weight, 0.0f, 1.0f); - - weight = math::lerp(1.0f - similarity_func_weight, 1.0f + similarity_func_weight, weight); - - total_freq = (total_freq + 1.0f) * weight; - } - - if (total_freq > best_freq) { - best_freq = total_freq; - best_i = i; - } - } - - const uint u = values_remaining[best_i]; - - float side = 0; - int left_freq = 0; - int right_freq = 0; - - for (uint j = 0; j < values_chosen.size(); j++) { - const uint l = values_chosen[j]; - - int freq = read_hist(xhist, u, l, n); //[u * n + l]; - int scale = (values_chosen.size() + 1 - 2 * (j + 1)); - - side = side + (float)(scale * freq); - - if (scale < 0) - right_freq += -scale * freq; - else - left_freq += scale * freq; - } - - if (pFunc) { - float weight_left = (*pFunc)(u, values_chosen.front(), pContext); - float weight_right = (*pFunc)(u, values_chosen.back(), pContext); - - weight_left = math::lerp(1.0f - similarity_func_weight, 1.0f + similarity_func_weight, weight_left); - weight_right = math::lerp(1.0f - similarity_func_weight, 1.0f + similarity_func_weight, weight_right); - - side = weight_left * left_freq - weight_right * right_freq; - } - - if (side > 0) - values_chosen.push_front(static_cast(u)); - else - values_chosen.push_back(static_cast(u)); - - values_remaining.erase(values_remaining.begin() + best_i); - - for (uint i = 0; i < values_remaining.size(); i++) { - const uint r = values_remaining[i]; - - total_freq_to_chosen_values[r] += read_hist(xhist, r, u, n); //[r * n + u]; - } - } - - for (uint i = 0; i < n; i++) { - uint v = values_chosen[i]; - remap_table[v] = i; - } -} - -} // namespace crnlib diff --git a/crnlib/crn_zeng.h b/crnlib/crn_zeng.h deleted file mode 100644 index 163a40a..0000000 --- a/crnlib/crn_zeng.h +++ /dev/null @@ -1,22 +0,0 @@ -// File: crn_zeng.h -// See Copyright Notice and license at the end of inc/crnlib.h - -#define CRN_ZENG_USE_SPARSE_ARRAY 1 - -#if CRN_ZENG_USE_SPARSE_ARRAY -#include "crn_sparse_array.h" -#endif - -namespace crnlib { - -#if CRN_ZENG_USE_SPARSE_ARRAY -typedef sparse_array hist_type; -#else -typedef crnlib::vector hist_type; -#endif - -typedef float (*zeng_similarity_func)(uint index_a, uint index_b, void* pContext); -void update_hist(hist_type& hist, int i, int j, int n); -void create_zeng_reorder_table(uint n, hist_type& hist, crnlib::vector& remap_table, zeng_similarity_func pFunc, void* pContext, float similarity_func_weight); - -} // namespace crnlib diff --git a/crnlib/crnlib.2010.vcxproj b/crnlib/crnlib.2010.vcxproj index d705a21..ec5d528 100644 --- a/crnlib/crnlib.2010.vcxproj +++ b/crnlib/crnlib.2010.vcxproj @@ -403,7 +403,6 @@ - @@ -497,7 +496,6 @@ - diff --git a/crnlib/crnlib.2010.vcxproj.filters b/crnlib/crnlib.2010.vcxproj.filters index 31aef38..f0cfe9a 100644 --- a/crnlib/crnlib.2010.vcxproj.filters +++ b/crnlib/crnlib.2010.vcxproj.filters @@ -157,9 +157,6 @@ Source Files\comp - - Source Files\comp - Source Files\string @@ -435,9 +432,6 @@ Source Files\comp - - Source Files\comp - Source Files\string