| 157 | } |
| 158 | |
| 159 | IntegerCompressor::~IntegerCompressor() |
| 160 | { |
| 161 | U32 i; |
| 162 | if (mBits) |
| 163 | { |
| 164 | for (i = 0; i < contexts; i++) |
| 165 | { |
| 166 | if (enc) enc->destroySymbolModel(mBits[i]); |
| 167 | else dec->destroySymbolModel(mBits[i]); |
| 168 | } |
| 169 | delete [] mBits; |
| 170 | } |
| 171 | #ifndef COMPRESS_ONLY_K |
| 172 | if (mCorrector) |
| 173 | { |
| 174 | if (enc) enc->destroyBitModel((ArithmeticBitModel*)mCorrector[0]); |
| 175 | else dec->destroyBitModel((ArithmeticBitModel*)mCorrector[0]); |
| 176 | for (i = 1; i <= corr_bits; i++) |
| 177 | { |
| 178 | if (enc) enc->destroySymbolModel(mCorrector[i]); |
| 179 | else dec->destroySymbolModel(mCorrector[i]); |
| 180 | } |
| 181 | delete [] mCorrector; |
| 182 | } |
| 183 | #endif |
| 184 | |
| 185 | #ifdef CREATE_HISTOGRAMS |
| 186 | if (end) |
| 187 | { |
| 188 | int total_number = 0; |
| 189 | double total_entropy = 0.0f; |
| 190 | double total_raw = 0.0f; |
| 191 | for (int k = 0; k <= corr_bits; k++) |
| 192 | { |
| 193 | int number = 0; |
| 194 | int different = 0; |
| 195 | for (int c = 0; c <= (1<<k); c++) |
| 196 | { |
| 197 | number += corr_histogram[k][c]; |
| 198 | } |
| 199 | double prob,entropy = 0.0f; |
| 200 | for (c = 0; c <= (1<<k); c++) |
| 201 | { |
| 202 | if (corr_histogram[k][c]) |
| 203 | { |
| 204 | different++; |
| 205 | prob = (double)corr_histogram[k][c]/(double)number; |
| 206 | entropy -= log(prob)*prob/log(2.0); |
| 207 | } |
| 208 | } |
| 209 | LASMessage(LAS_INFO, "k: %d number: %d different: %d entropy: %lg raw: %1.1f",k,number,different,entropy, (float)(k?k:1)); |
| 210 | total_number += number; |
| 211 | total_entropy += (entropy*number); |
| 212 | total_raw += ((k?k:1)*number); |
| 213 | } |
| 214 | LASMessage(LAS_INFO, "TOTAL: number: %d entropy: %lg raw: %lg",total_number,total_entropy/total_number,total_raw/total_number); |
| 215 | } |
| 216 | #endif |
nothing calls this directly
no test coverage detected