#pragma once
#include <algorithm>
#include <cstdint>
#include <limits>
namespace charls {
constexpr int default_threshold1{3}; constexpr int default_threshold2{7}; constexpr int default_threshold3{21};
constexpr int default_reset_value{64};
constexpr int maximum_component_count{255};
constexpr int minimum_bits_per_sample{2};
constexpr int maximum_bits_per_sample{16};
constexpr int maximum_near_lossless{255};
constexpr int32_t minimum_application_data_id{0};
constexpr int32_t maximum_application_data_id{15};
constexpr int max_k_value{16};
constexpr int compute_maximum_near_lossless(const int maximum_sample_value) noexcept
{
return std::min(maximum_near_lossless, maximum_sample_value / 2); }
constexpr int32_t initialization_value_for_a(const int32_t range) noexcept
{
return std::max(2, (range + 32) / 64);
}
constexpr uint8_t spiff_major_revision_number{2};
constexpr uint8_t spiff_minor_revision_number{};
constexpr uint8_t spiff_end_of_directory_entry_type{1};
constexpr size_t spiff_header_size_in_bytes{34};
constexpr size_t auto_calculate_stride{};
constexpr size_t segment_length_size{sizeof(uint16_t)};
constexpr size_t segment_max_data_size{std::numeric_limits<uint16_t>::max() - segment_length_size};
constexpr size_t int32_t_bit_count{sizeof(int32_t) * 8};
}