Skip to content

Commit 29f39e6

Browse files
committed
Updated the member naming of the JlsParameters structure to use the standard CharLS naming scheme (API change).
1 parent 49b4eff commit 29f39e6

12 files changed

+101
-99
lines changed

samples/convert.c/main.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,11 @@ static void *encode_bmp_to_jpegls(const void *pixel_data, size_t pixel_data_size
118118
{
119119
// This function only supports 24-bit BMP pixel data.
120120
// 24-BMP pixel data is stored by pixel as RGB. JPEG-LS
121-
struct JlsParameters params = { .allowedlossyerror = 0, .ilv = CHARLS_IM_SAMPLE };
121+
struct JlsParameters params = { .allowedLossyError = 0, .interleaveMode = CHARLS_IM_SAMPLE };
122122

123123
params.width = header->width;
124124
params.height = header->height;
125-
params.bitspersample = 8;
125+
params.bitsPerSample = 8;
126126
params.components = 3;
127127

128128
// Assume that compressed pixels are smaller or equal to uncompressed pixels and reserver some room for JPEG header.

src/interface.cpp

+20-20
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,18 @@ static void VerifyInput(const ByteStreamInfo& uncompressedStream, const JlsParam
2525
if (parameters.height < 1 || parameters.height > 65535)
2626
throw CreateSystemError(ApiResult::InvalidJlsParameters, "height needs to be in the range [1, 65535]");
2727

28-
if (parameters.bitspersample < 2 || parameters.bitspersample > 16)
28+
if (parameters.bitsPerSample < 2 || parameters.bitsPerSample > 16)
2929
throw CreateSystemError(ApiResult::InvalidJlsParameters, "bitspersample needs to be in the range [2, 16]");
3030

31-
if (!(parameters.ilv == InterleaveMode::None || parameters.ilv == InterleaveMode::Sample || parameters.ilv == InterleaveMode::Line))
32-
throw CreateSystemError(ApiResult::InvalidJlsParameters, "ilv needs to be set to a value of {None, Sample, Line}");
31+
if (!(parameters.interleaveMode == InterleaveMode::None || parameters.interleaveMode == InterleaveMode::Sample || parameters.interleaveMode == InterleaveMode::Line))
32+
throw CreateSystemError(ApiResult::InvalidJlsParameters, "interleaveMode needs to be set to a value of {None, Sample, Line}");
3333

3434
if (parameters.components < 1 || parameters.components > 255)
3535
throw CreateSystemError(ApiResult::InvalidJlsParameters, "components needs to be in the range [1, 255]");
3636

3737
if (uncompressedStream.rawData)
3838
{
39-
if (uncompressedStream.count < size_t(parameters.height * parameters.width * parameters.components * (parameters.bitspersample > 8 ? 2 : 1)))
39+
if (uncompressedStream.count < size_t(parameters.height * parameters.width * parameters.components * (parameters.bitsPerSample > 8 ? 2 : 1)))
4040
throw CreateSystemError(ApiResult::InvalidJlsParameters, "uncompressed size does not match with the other parameters");
4141
}
4242

@@ -45,12 +45,12 @@ static void VerifyInput(const ByteStreamInfo& uncompressedStream, const JlsParam
4545
case 3:
4646
break;
4747
case 4:
48-
if (parameters.ilv == InterleaveMode::Sample)
49-
throw CreateSystemError(ApiResult::InvalidJlsParameters, "ilv cannot be set to Sample in combination with components = 4");
48+
if (parameters.interleaveMode == InterleaveMode::Sample)
49+
throw CreateSystemError(ApiResult::InvalidJlsParameters, "interleaveMode cannot be set to Sample in combination with components = 4");
5050
break;
5151
default:
52-
if (parameters.ilv != InterleaveMode::None)
53-
throw CreateSystemError(ApiResult::InvalidJlsParameters, "ilv can only be set to None in combination with components = 1");
52+
if (parameters.interleaveMode != InterleaveMode::None)
53+
throw CreateSystemError(ApiResult::InvalidJlsParameters, "interleaveMode can only be set to None in combination with components = 1");
5454
break;
5555
}
5656
}
@@ -96,12 +96,12 @@ CHARLS_IMEXPORT(ApiResult) JpegLsEncodeStream(ByteStreamInfo compressedStreamInf
9696
VerifyInput(rawStreamInfo, params);
9797

9898
JlsParameters info = params;
99-
if (info.bytesperline == 0)
99+
if (info.stride == 0)
100100
{
101-
info.bytesperline = info.width * ((info.bitspersample + 7)/8);
102-
if (info.ilv != InterleaveMode::None)
101+
info.stride = info.width * ((info.bitsPerSample + 7)/8);
102+
if (info.interleaveMode != InterleaveMode::None)
103103
{
104-
info.bytesperline *= info.components;
104+
info.stride *= info.components;
105105
}
106106
}
107107

@@ -111,17 +111,17 @@ CHARLS_IMEXPORT(ApiResult) JpegLsEncodeStream(ByteStreamInfo compressedStreamInf
111111
writer.AddSegment(JpegMarkerSegment::CreateJpegFileInterchangeFormatSegment(info.jfif));
112112
}
113113

114-
writer.AddSegment(JpegMarkerSegment::CreateStartOfFrameSegment(info.width, info.height, info.bitspersample, info.components));
114+
writer.AddSegment(JpegMarkerSegment::CreateStartOfFrameSegment(info.width, info.height, info.bitsPerSample, info.components));
115115

116116

117-
if (info.colorTransform != ColorTransformation::None)
117+
if (info.colorTransformation != ColorTransformation::None)
118118
{
119-
writer.AddColorTransform(info.colorTransform);
119+
writer.AddColorTransform(info.colorTransformation);
120120
}
121121

122-
if (info.ilv == InterleaveMode::None)
122+
if (info.interleaveMode == InterleaveMode::None)
123123
{
124-
int32_t cbyteComp = info.width * info.height * ((info.bitspersample + 7) / 8);
124+
int32_t cbyteComp = info.width * info.height * ((info.bitsPerSample + 7) / 8);
125125
for (int32_t component = 0; component < info.components; ++component)
126126
{
127127
writer.AddScan(rawStreamInfo, info);
@@ -254,11 +254,11 @@ extern "C"
254254
writer.AddSegment(JpegMarkerSegment::CreateJpegFileInterchangeFormatSegment(info.jfif));
255255
}
256256

257-
writer.AddSegment(JpegMarkerSegment::CreateStartOfFrameSegment(info.width, info.height, info.bitspersample, info.components));
257+
writer.AddSegment(JpegMarkerSegment::CreateStartOfFrameSegment(info.width, info.height, info.bitsPerSample, info.components));
258258

259-
if (info.ilv == InterleaveMode::None)
259+
if (info.interleaveMode == InterleaveMode::None)
260260
{
261-
int32_t fieldLength = info.width * info.height * ((info.bitspersample + 7) / 8);
261+
int32_t fieldLength = info.width * info.height * ((info.bitsPerSample + 7) / 8);
262262
for (int32_t component = 0; component < info.components; ++component)
263263
{
264264
writer.AddScan(rawStreamInfo, info);

src/jpegls.cpp

+15-15
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ unique_ptr<STRATEGY> JlsCodecFactory<STRATEGY>::GetCodec(const JlsParameters& pa
108108

109109
if (presets.RESET != 0 && presets.RESET != BASIC_RESET)
110110
{
111-
DefaultTraitsT<uint8_t, uint8_t> traits((1 << params.bitspersample) - 1, params.allowedlossyerror, presets.RESET);
111+
DefaultTraitsT<uint8_t, uint8_t> traits((1 << params.bitsPerSample) - 1, params.allowedLossyError, presets.RESET);
112112
traits.MAXVAL = presets.MAXVAL;
113113
strategy = std::unique_ptr<STRATEGY>(new JlsCodec<DefaultTraitsT<uint8_t, uint8_t>, STRATEGY>(traits, params));
114114
}
@@ -137,22 +137,22 @@ unique_ptr<STRATEGY> JlsCodecFactory<STRATEGY>::GetCodecImpl(const JlsParameters
137137
{
138138
STRATEGY* s = nullptr;
139139

140-
if (params.ilv == InterleaveMode::Sample && params.components != 3)
140+
if (params.interleaveMode == InterleaveMode::Sample && params.components != 3)
141141
return nullptr;
142142

143143
#ifndef DISABLE_SPECIALIZATIONS
144144

145145
// optimized lossless versions common formats
146-
if (params.allowedlossyerror == 0)
146+
if (params.allowedLossyError == 0)
147147
{
148-
if (params.ilv == InterleaveMode::Sample)
148+
if (params.interleaveMode == InterleaveMode::Sample)
149149
{
150-
if (params.bitspersample == 8)
150+
if (params.bitsPerSample == 8)
151151
return CreateCodec(LosslessTraitsT<Triplet<uint8_t>, 8>(), s, params);
152152
}
153153
else
154154
{
155-
switch (params.bitspersample)
155+
switch (params.bitsPerSample)
156156
{
157157
case 8: return CreateCodec(LosslessTraitsT<uint8_t, 8>(), s, params);
158158
case 12: return CreateCodec(LosslessTraitsT<uint16_t, 12>(), s, params);
@@ -163,21 +163,21 @@ unique_ptr<STRATEGY> JlsCodecFactory<STRATEGY>::GetCodecImpl(const JlsParameters
163163

164164
#endif
165165

166-
int maxval = (1 << params.bitspersample) - 1;
166+
int maxval = (1 << params.bitsPerSample) - 1;
167167

168-
if (params.bitspersample <= 8)
168+
if (params.bitsPerSample <= 8)
169169
{
170-
if (params.ilv == InterleaveMode::Sample)
171-
return CreateCodec(DefaultTraitsT<uint8_t, Triplet<uint8_t> >(maxval, params.allowedlossyerror), s, params);
170+
if (params.interleaveMode == InterleaveMode::Sample)
171+
return CreateCodec(DefaultTraitsT<uint8_t, Triplet<uint8_t> >(maxval, params.allowedLossyError), s, params);
172172

173-
return CreateCodec(DefaultTraitsT<uint8_t, uint8_t>((1 << params.bitspersample) - 1, params.allowedlossyerror), s, params);
173+
return CreateCodec(DefaultTraitsT<uint8_t, uint8_t>((1 << params.bitsPerSample) - 1, params.allowedLossyError), s, params);
174174
}
175-
if (params.bitspersample <= 16)
175+
if (params.bitsPerSample <= 16)
176176
{
177-
if (params.ilv == InterleaveMode::Sample)
178-
return CreateCodec(DefaultTraitsT<uint16_t,Triplet<uint16_t> >(maxval, params.allowedlossyerror), s, params);
177+
if (params.interleaveMode == InterleaveMode::Sample)
178+
return CreateCodec(DefaultTraitsT<uint16_t,Triplet<uint16_t> >(maxval, params.allowedLossyError), s, params);
179179

180-
return CreateCodec(DefaultTraitsT<uint16_t, uint16_t>(maxval, params.allowedlossyerror), s, params);
180+
return CreateCodec(DefaultTraitsT<uint16_t, uint16_t>(maxval, params.allowedLossyError), s, params);
181181
}
182182
return nullptr;
183183
}

src/jpegstreamreader.cpp

+14-14
Original file line numberDiff line numberDiff line change
@@ -54,19 +54,19 @@ JlsCustomParameters ComputeDefault(int32_t MAXVAL, int32_t NEAR)
5454

5555
ApiResult CheckParameterCoherent(const JlsParameters& params)
5656
{
57-
if (params.bitspersample < 2 || params.bitspersample > 16)
57+
if (params.bitsPerSample < 2 || params.bitsPerSample > 16)
5858
return ApiResult::ParameterValueNotSupported;
5959

60-
if (params.ilv < InterleaveMode::None || params.ilv > InterleaveMode::Sample)
60+
if (params.interleaveMode < InterleaveMode::None || params.interleaveMode > InterleaveMode::Sample)
6161
return ApiResult::InvalidCompressedData;
6262

6363
switch (params.components)
6464
{
65-
case 4: return params.ilv == InterleaveMode::Sample ? ApiResult::ParameterValueNotSupported : ApiResult::OK;
65+
case 4: return params.interleaveMode == InterleaveMode::Sample ? ApiResult::ParameterValueNotSupported : ApiResult::OK;
6666
case 3: return ApiResult::OK;
6767
case 0: return ApiResult::InvalidJlsParameters;
6868

69-
default: return params.ilv != InterleaveMode::None ? ApiResult::ParameterValueNotSupported : ApiResult::OK;
69+
default: return params.interleaveMode != InterleaveMode::None ? ApiResult::ParameterValueNotSupported : ApiResult::OK;
7070
}
7171
}
7272

@@ -106,7 +106,7 @@ void JpegStreamReader::Read(ByteStreamInfo rawPixels)
106106
_rect.Height = _params.height;
107107
}
108108

109-
int64_t bytesPerPlane = static_cast<int64_t>(_rect.Width) * _rect.Height * ((_params.bitspersample + 7)/8);
109+
int64_t bytesPerPlane = static_cast<int64_t>(_rect.Width) * _rect.Height * ((_params.bitsPerSample + 7)/8);
110110

111111
if (rawPixels.rawData && int64_t(rawPixels.count) < bytesPerPlane * _params.components)
112112
throw system_error(static_cast<int>(ApiResult::UncompressedBufferTooSmall), CharLSCategoryInstance());
@@ -122,7 +122,7 @@ void JpegStreamReader::Read(ByteStreamInfo rawPixels)
122122
qcodec->DecodeScan(move(processLine), _rect, _byteStream, _bCompare);
123123
SkipBytes(rawPixels, static_cast<size_t>(bytesPerPlane));
124124

125-
if (_params.ilv != InterleaveMode::None)
125+
if (_params.interleaveMode != InterleaveMode::None)
126126
return;
127127

128128
componentIndex += 1;
@@ -282,18 +282,18 @@ void JpegStreamReader::ReadStartOfScan(bool firstComponent)
282282
ReadByte();
283283
ReadByte();
284284
}
285-
_params.allowedlossyerror = ReadByte();
286-
_params.ilv = static_cast<InterleaveMode>(ReadByte());
287-
if (!(_params.ilv == InterleaveMode::None || _params.ilv == InterleaveMode::Line || _params.ilv == InterleaveMode::Sample))
285+
_params.allowedLossyError = ReadByte();
286+
_params.interleaveMode = static_cast<InterleaveMode>(ReadByte());
287+
if (!(_params.interleaveMode == InterleaveMode::None || _params.interleaveMode == InterleaveMode::Line || _params.interleaveMode == InterleaveMode::Sample))
288288
throw system_error(static_cast<int>(ApiResult::InvalidCompressedData), CharLSCategoryInstance());// TODO: throw more specific error code.
289289
if (ReadByte() != 0)
290290
throw system_error(static_cast<int>(ApiResult::InvalidCompressedData), CharLSCategoryInstance());// TODO: throw more specific error code.
291291

292-
if(_params.bytesperline == 0)
292+
if(_params.stride == 0)
293293
{
294294
int width = _rect.Width != 0 ? _rect.Width : _params.width;
295-
int components = _params.ilv == InterleaveMode::None ? 1 : _params.components;
296-
_params.bytesperline = components * width * ((_params.bitspersample + 7)/8);
295+
int components = _params.interleaveMode == InterleaveMode::None ? 1 : _params.components;
296+
_params.stride = components * width * ((_params.bitsPerSample + 7)/8);
297297
}
298298
}
299299

@@ -332,7 +332,7 @@ void JpegStreamReader::ReadJfif()
332332

333333
int JpegStreamReader::ReadStartOfFrame()
334334
{
335-
_params.bitspersample = ReadByte();
335+
_params.bitsPerSample = ReadByte();
336336
int cline = ReadWord();
337337
int ccol = ReadWord();
338338
_params.width = ccol;
@@ -384,7 +384,7 @@ int JpegStreamReader::ReadColorXForm()
384384
case ColorTransformation::HP1:
385385
case ColorTransformation::HP2:
386386
case ColorTransformation::HP3:
387-
_params.colorTransform = xform;
387+
_params.colorTransformation = xform;
388388
return 5;
389389
case ColorTransformation::RgbAsYuvLossy:
390390
case ColorTransformation::Matrix:

src/jpegstreamwriter.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,16 @@ void JpegStreamWriter::AddScan(const ByteStreamInfo& info, const JlsParameters&
7979
{
8080
AddSegment(JpegMarkerSegment::CreateJpegLSExtendedParametersSegment(params.custom));
8181
}
82-
else if (params.bitspersample > 12)
82+
else if (params.bitsPerSample > 12)
8383
{
84-
JlsCustomParameters preset = ComputeDefault((1 << params.bitspersample) - 1, params.allowedlossyerror);
84+
JlsCustomParameters preset = ComputeDefault((1 << params.bitsPerSample) - 1, params.allowedLossyError);
8585
AddSegment(JpegMarkerSegment::CreateJpegLSExtendedParametersSegment(preset));
8686
}
8787

8888
// Note: it is a common practice to start to count components by index 1.
8989
_lastCompenentIndex += 1;
90-
int componentCount = params.ilv == InterleaveMode::None ? 1 : params.components;
91-
AddSegment(JpegMarkerSegment::CreateStartOfScanSegment(_lastCompenentIndex, componentCount, params.allowedlossyerror, params.ilv));
90+
int componentCount = params.interleaveMode == InterleaveMode::None ? 1 : params.components;
91+
AddSegment(JpegMarkerSegment::CreateStartOfScanSegment(_lastCompenentIndex, componentCount, params.allowedLossyError, params.interleaveMode));
9292

9393
AddSegment(make_unique<JpegImageDataSegment>(info, params, componentCount));
9494
}

src/processline.h

+10-10
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class PostProcesSingleComponent : public ProcessLine
4444
PostProcesSingleComponent(void* rawData, const JlsParameters& params, int bytesPerPixel) :
4545
_rawData(static_cast<uint8_t*>(rawData)),
4646
_bytesPerPixel(bytesPerPixel),
47-
_bytesPerLine(params.bytesperline)
47+
_bytesPerLine(params.stride)
4848
{
4949
}
5050

@@ -95,7 +95,7 @@ class PostProcesSingleStream : public ProcessLine
9595
PostProcesSingleStream(std::basic_streambuf<char>* rawData, const JlsParameters& params, int bytesPerPixel) :
9696
_rawData(rawData),
9797
_bytesPerPixel(bytesPerPixel),
98-
_bytesPerLine(params.bytesperline)
98+
_bytesPerLine(params.stride)
9999
{
100100
}
101101

@@ -244,7 +244,7 @@ class ProcessTransformed : public ProcessLine
244244
if (!_rawPixels.rawStream)
245245
{
246246
Transform(_rawPixels.rawData, dest, pixelCount, destStride);
247-
_rawPixels.rawData += _params.bytesperline;
247+
_rawPixels.rawData += _params.stride;
248248
return;
249249
}
250250

@@ -266,7 +266,7 @@ class ProcessTransformed : public ProcessLine
266266

267267
bytesToRead -= read;
268268
}
269-
if (sizeof(SAMPLE) == 2 && _params.colorTransform == charls::ColorTransformation::BigEndian)
269+
if (sizeof(SAMPLE) == 2 && _params.colorTransformation == charls::ColorTransformation::BigEndian)
270270
{
271271
ByteSwap(&_buffer[0], _params.components * sizeof(SAMPLE) * pixelCount);
272272
}
@@ -284,7 +284,7 @@ class ProcessTransformed : public ProcessLine
284284

285285
if (_params.components == 3)
286286
{
287-
if (_params.ilv == charls::InterleaveMode::Sample)
287+
if (_params.interleaveMode == charls::InterleaveMode::Sample)
288288
{
289289
TransformLine(static_cast<Triplet<SAMPLE>*>(dest), static_cast<const Triplet<SAMPLE>*>(source), pixelCount, _transform);
290290
}
@@ -293,7 +293,7 @@ class ProcessTransformed : public ProcessLine
293293
TransformTripletToLine(static_cast<const Triplet<SAMPLE>*>(source), pixelCount, static_cast<SAMPLE*>(dest), destStride, _transform);
294294
}
295295
}
296-
else if (_params.components == 4 && _params.ilv == charls::InterleaveMode::Line)
296+
else if (_params.components == 4 && _params.interleaveMode == charls::InterleaveMode::Line)
297297
{
298298
TransformQuadToLine(static_cast<const Quad<SAMPLE>*>(source), pixelCount, static_cast<SAMPLE*>(dest), destStride, _transform);
299299
}
@@ -303,7 +303,7 @@ class ProcessTransformed : public ProcessLine
303303
{
304304
if (_params.components == 3)
305305
{
306-
if (_params.ilv == charls::InterleaveMode::Sample)
306+
if (_params.interleaveMode == charls::InterleaveMode::Sample)
307307
{
308308
TransformLine(static_cast<Triplet<SAMPLE>*>(rawData), static_cast<const Triplet<SAMPLE>*>(pSrc), pixelCount, _inverseTransform);
309309
}
@@ -312,7 +312,7 @@ class ProcessTransformed : public ProcessLine
312312
TransformLineToTriplet(static_cast<const SAMPLE*>(pSrc), byteStride, static_cast<Triplet<SAMPLE>*>(rawData), pixelCount, _inverseTransform);
313313
}
314314
}
315-
else if (_params.components == 4 && _params.ilv == charls::InterleaveMode::Line)
315+
else if (_params.components == 4 && _params.interleaveMode == charls::InterleaveMode::Line)
316316
{
317317
TransformLineToQuad(static_cast<const SAMPLE*>(pSrc), byteStride, static_cast<Quad<SAMPLE>*>(rawData), pixelCount, _inverseTransform);
318318
}
@@ -330,7 +330,7 @@ class ProcessTransformed : public ProcessLine
330330
std::streamsize bytesToWrite = pixelCount * _params.components * sizeof(SAMPLE);
331331
DecodeTransform(pSrc, &_buffer[0], pixelCount, sourceStride);
332332

333-
if (sizeof(SAMPLE) == 2 && _params.colorTransform == charls::ColorTransformation::BigEndian)
333+
if (sizeof(SAMPLE) == 2 && _params.colorTransformation == charls::ColorTransformation::BigEndian)
334334
{
335335
ByteSwap(&_buffer[0], _params.components * sizeof(SAMPLE) * pixelCount);
336336
}
@@ -342,7 +342,7 @@ class ProcessTransformed : public ProcessLine
342342
else
343343
{
344344
DecodeTransform(pSrc, _rawPixels.rawData, pixelCount, sourceStride);
345-
_rawPixels.rawData += _params.bytesperline;
345+
_rawPixels.rawData += _params.stride;
346346
}
347347
}
348348

0 commit comments

Comments
 (0)