29 :
roiShift(block->roishift),
shift(31U - (block->k_msbs + 1U))
31 inline void copy(T* dest,
const T* src, uint32_t len)
34 for(uint32_t i = 0; i < len; ++i)
37 T mag = (val & 0x7FFFFFFF);
39 val = (T)(((uint32_t)mag >>
roiShift) & ((uint32_t)val & 0x80000000));
40 int32_t val_shifted = (val & 0x7FFFFFFF) >>
shift;
41 dest[i] = (int32_t)(((uint32_t)val & 0x80000000) ? -val_shifted : val_shifted);
54 inline void copy(T* dest,
const T* src, uint32_t len)
56 for(uint32_t i = 0; i < len; ++i)
59 T val_shifted = (val & 0x7FFFFFFF) >>
shift;
60 dest[i] = (T)(((uint32_t)val & 0x80000000) ? -val_shifted : val_shifted);
73 :
roiShift(block->roishift),
scale(block->stepsize / (float)(1u << (31 - block->bandNumbps)))
77 inline void copy(T* dest,
const T* src, uint32_t len)
80 for(uint32_t i = 0; i < len; ++i)
83 T mag = (T)(val & 0x7FFFFFFF);
85 val = (T)(((uint32_t)mag >>
roiShift) & ((uint32_t)val & 0x80000000));
86 float val_scaled = (float)(val & 0x7FFFFFFF) *
scale;
87 ((
float*)dest)[i] = ((uint32_t)val & 0x80000000) ? -val_scaled : val_scaled;
101 :
scale(block->stepsize / (float)(1u << (31 - block->bandNumbps)))
105 inline void copy(T* dest,
const T* src, uint32_t len)
107 for(uint32_t i = 0; i < len; ++i)
109 int32_t val = src[i];
110 float val_scaled = (float)(val & 0x7FFFFFFF) *
scale;
111 ((
float*)dest)[i] = ((uint32_t)val & 0x80000000) ? -val_scaled : val_scaled;
124 inline void copy(int16_t* dest,
const int32_t* src, uint32_t len)
126 for(uint32_t i = 0; i < len; ++i)
128 int32_t val = src[i];
129 int32_t val_shifted = (val & 0x7FFFFFFF) >>
shift;
130 dest[i] = (int16_t)(((uint32_t)val & 0x80000000) ? -val_shifted : val_shifted);
142 :
roiShift(block->roishift),
shift(31U - (block->k_msbs + 1U))
144 inline void copy(int16_t* dest,
const int32_t* src, uint32_t len)
147 for(uint32_t i = 0; i < len; ++i)
149 int32_t val = src[i];
150 int32_t mag = (val & 0x7FFFFFFF);
152 val = (int32_t)(((uint32_t)mag >>
roiShift) & ((uint32_t)val & 0x80000000));
153 int32_t val_shifted = (val & 0x7FFFFFFF) >>
shift;
154 dest[i] = (int16_t)(((uint32_t)val & 0x80000000) ? -val_shifted : val_shifted);
170 :
scale_(block->stepsize / (float)(1u << (31 - block->bandNumbps)))
174 inline void copy(int16_t* dest,
const int32_t* src, uint32_t len)
176 for(uint32_t i = 0; i < len; ++i)
178 int32_t val = src[i];
179 float val_scaled = (float)(val & 0x7FFFFFFF) *
scale_;
180 float signed_val = ((uint32_t)val & 0x80000000) ? -val_scaled : val_scaled;
181 int32_t rounded = (int32_t)(signed_val >= 0 ? signed_val + 0.5f : signed_val - 0.5f);
184 else if(rounded < -32768)
186 dest[i] = (int16_t)rounded;
200 scale_(block->stepsize / (float)(1u << (31 - block->bandNumbps)))
204 inline void copy(int16_t* dest,
const int32_t* src, uint32_t len)
207 for(uint32_t i = 0; i < len; ++i)
209 int32_t val = src[i];
210 int32_t mag = (val & 0x7FFFFFFF);
214 val = (int32_t)(((uint32_t)mag) | ((uint32_t)val & 0x80000000));
216 float val_scaled = (float)(val & 0x7FFFFFFF) *
scale_;
217 float signed_val = ((uint32_t)val & 0x80000000) ? -val_scaled : val_scaled;
218 int32_t rounded = (int32_t)(signed_val >= 0 ? signed_val + 0.5f : signed_val - 0.5f);
221 else if(rounded < -32768)
223 dest[i] = (int16_t)rounded;
NarrowRoiScaleOJPHFilter16(DecompressBlockExec *block)
Definition PostDecodeFiltersOJPH.h:198
void copy(int16_t *dest, const int32_t *src, uint32_t len)
Definition PostDecodeFiltersOJPH.h:204
float scale_
Definition PostDecodeFiltersOJPH.h:229
uint32_t roiShift_
Definition PostDecodeFiltersOJPH.h:228
uint32_t shift
Definition PostDecodeFiltersOJPH.h:160
NarrowRoiShiftOJPHFilter(DecompressBlockExec *block)
Definition PostDecodeFiltersOJPH.h:141
void copy(int16_t *dest, const int32_t *src, uint32_t len)
Definition PostDecodeFiltersOJPH.h:144
uint32_t roiShift
Definition PostDecodeFiltersOJPH.h:159
float scale_
Definition PostDecodeFiltersOJPH.h:191
NarrowScaleOJPHFilter16(DecompressBlockExec *block)
Definition PostDecodeFiltersOJPH.h:169
void copy(int16_t *dest, const int32_t *src, uint32_t len)
Definition PostDecodeFiltersOJPH.h:174
void copy(int16_t *dest, const int32_t *src, uint32_t len)
Definition PostDecodeFiltersOJPH.h:124
NarrowShiftOJPHFilter(DecompressBlockExec *block)
Definition PostDecodeFiltersOJPH.h:123
uint32_t shift
Definition PostDecodeFiltersOJPH.h:135
uint32_t roiShift
Definition PostDecodeFiltersOJPH.h:92
void copy(T *dest, const T *src, uint32_t len)
Definition PostDecodeFiltersOJPH.h:77
RoiScaleOJPHFilter(DecompressBlockExec *block)
Definition PostDecodeFiltersOJPH.h:72
float scale
Definition PostDecodeFiltersOJPH.h:93
uint32_t shift
Definition PostDecodeFiltersOJPH.h:47
RoiShiftOJPHFilter(DecompressBlockExec *block)
Definition PostDecodeFiltersOJPH.h:28
void copy(T *dest, const T *src, uint32_t len)
Definition PostDecodeFiltersOJPH.h:31
uint32_t roiShift
Definition PostDecodeFiltersOJPH.h:46
float scale
Definition PostDecodeFiltersOJPH.h:116
ScaleOJPHFilter(DecompressBlockExec *block)
Definition PostDecodeFiltersOJPH.h:100
void copy(T *dest, const T *src, uint32_t len)
Definition PostDecodeFiltersOJPH.h:105
uint32_t shift
Definition PostDecodeFiltersOJPH.h:65
void copy(T *dest, const T *src, uint32_t len)
Definition PostDecodeFiltersOJPH.h:54
ShiftOJPHFilter(DecompressBlockExec *block)
Definition PostDecodeFiltersOJPH.h:53
Definition CoderOJPH.cpp:92
uint8_t bandNumbps
Definition BlockExec.h:39
Definition BlockExec.h:64