libjpeg-turbo

Rating: 
5
Your rating: None Average: 5 (5 votes)

The libjpeg-turbo package contains a library of functions for manipulating
JPEG images. It supports architecture-specific SIMD instructions,
such as NEON.

The libjpeg-static package contains the statically linkable version of libjpeg.
Linking to static libraries is discouraged for most applications, but it is
necessary for some boot packages.

The libjpeg-turbo-tools package contains client programs for libjpeg-turbo.
You'll also need to have the libjpeg-turbo package installed.
It also includes the following command line utilities:
djpeg - decompress a JPEG file to an image file
jpegtran - lossless transformation of JPEG files
rdjpgcom - display text comments from a JPEG file
wrjpgcom - insert text comments into a JPEG file
tjbench - a JPEG decompression/compression benchmark

Provides: libjpeg-turbo-jpeg8 libjpeg.so.8 libjpeg.so.8(LIBJPEG_8.0)
(needed by a lot of packages in this lpr-repo and by a lot of packages from opensuse ports)

sha256sum filename:
f5e9cea51793608ac6e9ea39f6edb68749d073ebdc108b663759f51a46ca0ab9 libjpeg-turbo-3.0.3-1.armv7hl.rpm
9caac011735124a0750567efa5db77a2a8b9fa20252a09c1ca9fdd4229776532 libjpeg-turbo-devel-3.0.3-1.armv7hl.rpm
b71ba507ba961e362c1f4fce3ded0b10637d663fd7e32b53b7027388dedbf7b0 libjpeg-turbo-doc-3.0.3-1.armv7hl.rpm
4e7750ba644d35dae86e7ba7426ca0ea2b8045eccf12131ca68ed318b052acea libjpeg-turbo-jpeg8-3.0.3-1.armv7hl.rpm
dc4fdcd0cb3dbb13930ddabe7425d7e3c2f03048fa46318c7bbd760fd9827f40 libjpeg-turbo-static-3.0.3-1.armv7hl.rpm
23772e2263b3da301a940e26ec8afb8153c9f859ab9eef9f17637a8b67e74952 libjpeg-turbo-tools-3.0.3-1.armv7hl.rpm

Screenshots: 

Category:

Application versions: 
AttachmentSizeDate
File libjpeg-turbo-doc-2.0.4-1.armv7hl.rpm236.53 KB07/06/2020 - 19:27
File libjpeg-turbo-static-2.0.4-1.armv7hl.rpm385.4 KB07/06/2020 - 19:27
File libjpeg-turbo-devel-2.0.4-1.armv7hl.rpm43.4 KB07/06/2020 - 19:27
File libjpeg-turbo-tools-2.0.4-1.armv7hl.rpm101.24 KB07/06/2020 - 19:28
File libjpeg-turbo-2.0.4-1.armv7hl.rpm368.21 KB07/06/2020 - 19:29
File libjpeg-turbo-jpeg8-2.0.4-1.armv7hl.rpm159.31 KB07/06/2020 - 19:29
File libjpeg-turbo-doc-2.0.5-1.armv7hl.rpm236.54 KB24/06/2020 - 23:57
File libjpeg-turbo-static-2.0.5-1.armv7hl.rpm385.53 KB24/06/2020 - 23:57
File libjpeg-turbo-devel-2.0.5-1.armv7hl.rpm43.44 KB24/06/2020 - 23:58
File libjpeg-turbo-tools-2.0.5-1.armv7hl.rpm101.19 KB24/06/2020 - 23:58
File libjpeg-turbo-2.0.5-1.armv7hl.rpm368.38 KB24/06/2020 - 23:59
File libjpeg-turbo-jpeg8-2.0.5-1.armv7hl.rpm159.31 KB25/06/2020 - 00:00
File libjpeg-turbo-doc-2.0.6-1.armv7hl.rpm260.82 KB17/11/2020 - 22:32
File libjpeg-turbo-static-2.0.6-1.armv7hl.rpm385.74 KB17/11/2020 - 22:34
File libjpeg-turbo-devel-2.0.6-1.armv7hl.rpm43.45 KB17/11/2020 - 22:35
File libjpeg-turbo-tools-2.0.6-1.armv7hl.rpm101.38 KB17/11/2020 - 22:36
File libjpeg-turbo-2.0.6-1.armv7hl.rpm368.94 KB17/11/2020 - 22:36
File libjpeg-turbo-jpeg8-2.0.6-1.armv7hl.rpm159.23 KB17/11/2020 - 22:36
File libjpeg-turbo-doc-2.1.0-1.armv7hl.rpm75.73 KB24/04/2021 - 04:05
File libjpeg-turbo-static-2.1.0-1.armv7hl.rpm448.49 KB24/04/2021 - 04:08
File libjpeg-turbo-devel-2.1.0-1.armv7hl.rpm121.53 KB24/04/2021 - 04:09
File libjpeg-turbo-tools-2.1.0-1.armv7hl.rpm110.22 KB24/04/2021 - 04:09
File libjpeg-turbo-2.1.0-1.armv7hl.rpm248 KB24/04/2021 - 04:10
File libjpeg-turbo-jpeg8-2.1.0-1.armv7hl.rpm372.33 KB24/04/2021 - 04:10
File libjpeg-turbo-doc-2.1.1-1.armv7hl.rpm76.12 KB12/08/2021 - 02:00
File libjpeg-turbo-static-2.1.1-1.armv7hl.rpm448.57 KB12/08/2021 - 02:00
File libjpeg-turbo-devel-2.1.1-1.armv7hl.rpm121.67 KB12/08/2021 - 02:01
File libjpeg-turbo-tools-2.1.1-1.armv7hl.rpm110.28 KB12/08/2021 - 02:02
File libjpeg-turbo-2.1.1-1.armv7hl.rpm426.69 KB12/08/2021 - 02:03
File libjpeg-turbo-jpeg8-2.1.1-1.armv7hl.rpm193.78 KB12/08/2021 - 02:04
File libjpeg-turbo-doc-2.1.2-1.armv7hl.rpm76.55 KB22/11/2021 - 21:04
File libjpeg-turbo-static-2.1.2-1.armv7hl.rpm448.6 KB22/11/2021 - 21:06
File libjpeg-turbo-devel-2.1.2-1.armv7hl.rpm121.68 KB22/11/2021 - 21:07
File libjpeg-turbo-tools-2.1.2-1.armv7hl.rpm106.79 KB22/11/2021 - 21:08
File libjpeg-turbo-2.1.2-1.armv7hl.rpm426.68 KB22/11/2021 - 21:09
File libjpeg-turbo-jpeg8-2.1.2-1.armv7hl.rpm193.78 KB22/11/2021 - 21:10
File libjpeg-turbo-doc-2.1.3-1.armv7hl.rpm76.67 KB23/03/2022 - 03:25
File libjpeg-turbo-static-2.1.3-1.armv7hl.rpm449.55 KB23/03/2022 - 03:26
File libjpeg-turbo-devel-2.1.3-1.armv7hl.rpm120.92 KB23/03/2022 - 03:27
File libjpeg-turbo-tools-2.1.3-1.armv7hl.rpm107.08 KB23/03/2022 - 03:28
File libjpeg-turbo-2.1.3-1.armv7hl.rpm427.42 KB23/03/2022 - 03:29
File libjpeg-turbo-jpeg8-2.1.3-1.armv7hl.rpm194.02 KB05/04/2022 - 02:19
File libjpeg-turbo-doc-2.1.4-1.armv7hl.rpm77.01 KB13/08/2022 - 16:45
File libjpeg-turbo-static-2.1.4-1.armv7hl.rpm449.71 KB13/08/2022 - 16:47
File libjpeg-turbo-devel-2.1.4-1.armv7hl.rpm120.82 KB13/08/2022 - 16:47
File libjpeg-turbo-devel-2.1.4-1.aarch64.rpm102.13 KB20/08/2022 - 21:47
File libjpeg-turbo-tools-2.1.4-1.armv7hl.rpm107.08 KB13/08/2022 - 16:47
File libjpeg-turbo-tools-2.1.4-1.aarch64.rpm81.21 KB20/08/2022 - 21:48
File libjpeg-turbo-2.1.4-1.armv7hl.rpm427.55 KB13/08/2022 - 16:49
File libjpeg-turbo-2.1.4-1.aarch64.rpm880.15 KB20/08/2022 - 21:50
File libjpeg-turbo-jpeg8-2.1.4-1.armv7hl.rpm194.08 KB13/08/2022 - 16:49
File libjpeg-turbo-jpeg8-2.1.4-1.aarch64.rpm628.65 KB20/08/2022 - 21:50
File libjpeg-turbo-doc-2.1.5-1.armv7hl.rpm77.6 KB03/02/2023 - 22:11
File libjpeg-turbo-static-2.1.5-1.armv7hl.rpm451.1 KB03/02/2023 - 22:11
File libjpeg-turbo-devel-2.1.5-1.armv7hl.rpm120.85 KB03/02/2023 - 22:12
File libjpeg-turbo-tools-2.1.5-1.armv7hl.rpm107.02 KB03/02/2023 - 22:12
File libjpeg-turbo-2.1.5-1.armv7hl.rpm428.43 KB03/02/2023 - 22:13
File libjpeg-turbo-jpeg8-2.1.5-1.armv7hl.rpm194.24 KB03/02/2023 - 22:13
File libjpeg-turbo-doc-3.0.0-1.armv7hl.rpm81.42 KB05/07/2023 - 19:12
File libjpeg-turbo-static-3.0.0-1.armv7hl.rpm736.75 KB05/07/2023 - 19:12
File libjpeg-turbo-devel-3.0.0-1.armv7hl.rpm127.61 KB05/07/2023 - 19:12
File libjpeg-turbo-tools-3.0.0-1.armv7hl.rpm125.69 KB05/07/2023 - 19:12
File libjpeg-turbo-3.0.0-1.armv7hl.rpm687.23 KB05/07/2023 - 19:12
File libjpeg-turbo-jpeg8-3.0.0-1.armv7hl.rpm313.22 KB05/07/2023 - 19:12
File libjpeg-turbo-doc-3.0.3-1.armv7hl.rpm82.63 KB24/06/2024 - 22:57
File libjpeg-turbo-static-3.0.3-1.armv7hl.rpm699.88 KB24/06/2024 - 22:57
File libjpeg-turbo-devel-3.0.3-1.armv7hl.rpm128.71 KB24/06/2024 - 22:57
File libjpeg-turbo-tools-3.0.3-1.armv7hl.rpm126.04 KB24/06/2024 - 22:57
File libjpeg-turbo-3.0.3-1.armv7hl.rpm653.96 KB24/06/2024 - 22:57
File libjpeg-turbo-jpeg8-3.0.3-1.armv7hl.rpm297.09 KB24/06/2024 - 22:57
Changelog: 

3.0.0
=====

### Significant changes relative to 3.0 beta2:

1. The TurboJPEG API now supports 4:4:1 (transposed 4:1:1) chrominance
subsampling, which allows losslessly transposed or rotated 4:1:1 JPEG images to
be losslessly cropped, partially decompressed, or decompressed to planar YUV
images.

2. Fixed various segfaults and buffer overruns (CVE-2023-2804) that occurred
when attempting to decompress various specially-crafted malformed
12-bit-per-component and 16-bit-per-component lossless JPEG images using color
quantization or merged chroma upsampling/color conversion. The underlying
cause of these issues was that the color quantization and merged chroma
upsampling/color conversion algorithms were not designed with lossless
decompression in mind. Since libjpeg-turbo explicitly does not support color
conversion when compressing or decompressing lossless JPEG images, merged
chroma upsampling/color conversion never should have been enabled for such
images. Color quantization is a legacy feature that serves little or no
purpose with lossless JPEG images, so it is also now disabled when
decompressing such images. (As a result, djpeg can no longer decompress a
lossless JPEG image into a GIF image.)

3. Fixed an oversight in 1.4 beta1[8] that caused various segfaults and buffer
overruns when attempting to decompress various specially-crafted malformed
12-bit-per-component JPEG images using djpeg with both color quantization and
RGB565 color conversion enabled.

4. Fixed an issue whereby `jpeg_crop_scanline()` sometimes miscalculated the
downsampled width for components with 4x2 or 2x4 subsampling factors if
decompression scaling was enabled. This caused the components to be upsampled
incompletely, which caused the color converter to read from uninitialized
memory. With 12-bit data precision, this caused a buffer overrun or underrun
and subsequent segfault if the sample value read from uninitialized memory was
outside of the valid sample range.

5. Fixed a long-standing issue whereby the `tj3Transform()` function, when used
with the `TJXOP_TRANSPOSE`, `TJXOP_TRANSVERSE`, `TJXOP_ROT90`, or
`TJXOP_ROT270` transform operation and without automatic JPEG destination
buffer (re)allocation or lossless cropping, computed the worst-case transformed
JPEG image size based on the source image dimensions rather than the
transformed image dimensions. If a calling program allocated the JPEG
destination buffer based on the transformed image dimensions, as the API
documentation instructs, and attempted to transform a specially-crafted 4:2:2,
4:4:0, 4:1:1, or 4:4:1 JPEG source image containing a large amount of metadata,
the issue caused `tj3Transform()` to overflow the JPEG destination buffer
rather than fail gracefully. The issue could be worked around by setting
`TJXOPT_COPYNONE`. Note that, irrespective of this issue, `tj3Transform()`
cannot reliably transform JPEG source images that contain a large amount of
metadata unless automatic JPEG destination buffer (re)allocation is used or
`TJXOPT_COPYNONE` is set.

6. Fixed a regression introduced by 3.0 beta2[6] that prevented the djpeg
`-map` option from working when decompressing 12-bit-per-component lossy JPEG
images.

7. Fixed an issue that caused the C Huffman encoder (which is not used by
default on x86 and Arm CPUs) to read from uninitialized memory when attempting
to transform a specially-crafted malformed arithmetic-coded JPEG source image
into a baseline Huffman-coded JPEG destination image.

2.1.91 (3.0 beta2)
==================

### Significant changes relative to 2.1.5.1:

1. Significantly sped up the computation of optimal Huffman tables. This
speeds up the compression of tiny images by as much as 2x and provides a
noticeable speedup for images as large as 256x256 when using optimal Huffman
tables.

2. All deprecated fields, constructors, and methods in the TurboJPEG Java API
have been removed.

3. Arithmetic entropy coding is now supported with 12-bit-per-component JPEG
images.

4. Overhauled the TurboJPEG API to address long-standing limitations and to
make the API more extensible and intuitive:

- All C function names are now prefixed with `tj3`, and all version
suffixes have been removed from the function names. Future API overhauls will
increment the prefix to `tj4`, etc., thus retaining backward API/ABI
compatibility without versioning each individual function.
- Stateless boolean flags have been replaced with stateful integer API
parameters, the values of which persist between function calls. New
functions/methods (`tj3Set()`/`TJCompressor.set()`/`TJDecompressor.set()` and
`tj3Get()`/`TJCompressor.get()`/`TJDecompressor.get()`) can be used to set and
query the value of a particular API parameter.
- The JPEG quality and subsampling are now implemented using API
parameters rather than stateless function arguments (C) or dedicated set/get
methods (Java.)
- `tj3DecompressHeader()` now stores all relevant information about the
JPEG image, including the width, height, subsampling type, entropy coding
algorithm, etc., in API parameters rather than returning that information
through pointer arguments.
- `TJFLAG_LIMITSCANS`/`TJ.FLAG_LIMITSCANS` has been reimplemented as an
API parameter (`TJPARAM_SCANLIMIT`/`TJ.PARAM_SCANLIMIT`) that allows the number
of scans to be specified.
- Optimized baseline entropy coding (the computation of optimal Huffman
tables, as opposed to using the default Huffman tables) can now be specified,
using a new API parameter (`TJPARAM_OPTIMIZE`/`TJ.PARAM_OPTIMIZE`), a new
transform option (`TJXOPT_OPTIMIZE`/`TJTransform.OPT_OPTIMIZE`), and a new
TJBench option (`-optimize`.)
- Arithmetic entropy coding can now be specified or queried, using a new
API parameter (`TJPARAM_ARITHMETIC`/`TJ.PARAM_ARITHMETIC`), a new transform
option (`TJXOPT_ARITHMETIC`/`TJTransform.OPT_ARITHMETIC`), and a new TJBench
option (`-arithmetic`.)
- The restart marker interval can now be specified, using new API
parameters (`TJPARAM_RESTARTROWS`/`TJ.PARAM_RESTARTROWS` and
`TJPARAM_RESTARTBLOCKS`/`TJ.PARAM_RESTARTBLOCKS`) and a new TJBench option
(`-restart`.)
- Pixel density can now be specified or queried, using new API parameters
(`TJPARAM_XDENSITY`/`TJ.PARAM_XDENSITY`,
`TJPARAM_YDENSITY`/`TJ.PARAM_YDENSITY`, and
`TJPARAM_DENSITYUNITS`/`TJ.PARAM_DENSITYUNITS`.)
- The accurate DCT/IDCT algorithms are now the default for both
compression and decompression, since the "fast" algorithms are considered to be
a legacy feature. (The "fast" algorithms do not pass the ISO compliance tests,
and those algorithms are not any faster than the accurate algorithms on modern
x86 CPUs.)
- All C initialization functions have been combined into a single function
(`tj3Init()`) that accepts an integer argument specifying the subsystems to
initialize.
- All C functions now use the `const` keyword for pointer arguments that
point to unmodified buffers (and for both dimensions of pointer arguments that
point to sets of unmodified buffers.)
- All C functions now use `size_t` rather than `unsigned long` to
represent buffer sizes, for compatibility with `malloc()` and to avoid
disparities in the size of `unsigned long` between LP64 (Un*x) and LLP64
(Windows) operating systems.
- All C buffer size functions now return 0 if an error occurs, rather than
trying to awkwardly return -1 in an unsigned data type (which could easily be
misinterpreted as a very large value.)
- Decompression scaling is now enabled explicitly, using a new
function/method (`tj3SetScalingFactor()`/`TJDecompressor.setScalingFactor()`),
rather than implicitly using awkward "desired width"/"desired height"
arguments.
- Partial image decompression has been implemented, using a new
function/method (`tj3SetCroppingRegion()`/`TJDecompressor.setCroppingRegion()`)
and a new TJBench option (`-crop`.)
- The JPEG colorspace can now be specified explicitly when compressing,
using a new API parameter (`TJPARAM_COLORSPACE`/`TJ.PARAM_COLORSPACE`.) This
allows JPEG images with the RGB and CMYK colorspaces to be created.
- TJBench no longer generates error/difference images, since identical
functionality is already available in ImageMagick.
- JPEG images with unknown subsampling configurations can now be
fully decompressed into packed-pixel images or losslessly transformed (with the
exception of lossless cropping.) They cannot currently be partially
decompressed or decompressed into planar YUV images.
- `tj3Destroy()` now silently accepts a NULL handle.
- `tj3Alloc()` and `tj3Free()` now return/accept void pointers, as
`malloc()` and `free()` do.
- The C image I/O functions now accept a TurboJPEG instance handle, which
is used to transmit/receive API parameter values and to receive error
information.

5. Added support for 8-bit-per-component, 12-bit-per-component, and
16-bit-per-component lossless JPEG images. A new libjpeg API function
(`jpeg_enable_lossless()`), TurboJPEG API parameters
(`TJPARAM_LOSSLESS`/`TJ.PARAM_LOSSLESS`,
`TJPARAM_LOSSLESSPSV`/`TJ.PARAM_LOSSLESSPSV`, and
`TJPARAM_LOSSLESSPT`/`TJ.PARAM_LOSSLESSPT`), and a cjpeg/TJBench option
(`-lossless`) can be used to create a lossless JPEG image. (Decompression of
lossless JPEG images is handled automatically.) Refer to
[libjpeg.txt](libjpeg.txt), [usage.txt](usage.txt), and the TurboJPEG API
documentation for more details.

6. Added support for 12-bit-per-component (lossy and lossless) and
16-bit-per-component (lossless) JPEG images to the libjpeg and TurboJPEG APIs:

- The existing `data_precision` field in `jpeg_compress_struct` and
`jpeg_decompress_struct` has been repurposed to enable the creation of
12-bit-per-component and 16-bit-per-component JPEG images or to detect whether
a 12-bit-per-component or 16-bit-per-component JPEG image is being
decompressed.
- New 12-bit-per-component and 16-bit-per-component versions of
`jpeg_write_scanlines()` and `jpeg_read_scanlines()`, as well as new
12-bit-per-component versions of `jpeg_write_raw_data()`,
`jpeg_skip_scanlines()`, `jpeg_crop_scanline()`, and `jpeg_read_raw_data()`,
provide interfaces for compressing from/decompressing to 12-bit-per-component
and 16-bit-per-component packed-pixel and planar YUV image buffers.
- New 12-bit-per-component and 16-bit-per-component compression,
decompression, and image I/O functions/methods have been added to the TurboJPEG
API, and a new API parameter (`TJPARAM_PRECISION`/`TJ.PARAM_PRECISION`) can be
used to query the data precision of a JPEG image. (YUV functions are currently
limited to 8-bit data precision but can be expanded to accommodate 12-bit data
precision in the future, if such is deemed beneficial.)
- A new cjpeg and TJBench command-line argument (`-precision`) can be used
to create a 12-bit-per-component or 16-bit-per-component JPEG image.
(Decompression and transformation of 12-bit-per-component and
16-bit-per-component JPEG images is handled automatically.)

Refer to [libjpeg.txt](libjpeg.txt), [usage.txt](usage.txt), and the
TurboJPEG API documentation for more details.