Background
==========
libjpeg-turbo is a JPEG image codec that uses SIMD instructions to accelerate
baseline JPEG compression and decompression on x86, x86-64, Arm, PowerPC, and
MIPS systems, as well as progressive JPEG compression on x86, x86-64, and Arm
systems. On such systems, libjpeg-turbo is generally 2-6x as fast as libjpeg,
all else being equal. On other types of systems, libjpeg-turbo can still
outperform libjpeg by a significant amount, by virtue of its highly-optimized
Huffman coding routines. In many cases, the performance of libjpeg-turbo
rivals that of proprietary high-speed JPEG codecs.
libjpeg-turbo implements both the traditional libjpeg API as well as the less
powerful but more straightforward TurboJPEG API. libjpeg-turbo also features
colorspace extensions that allow it to compress from/decompress to 32-bit and
big-endian pixel buffers (RGBX, XBGR, etc.), as well as a full-featured Java
interface.
libjpeg-turbo was originally based on libjpeg/SIMD, an MMX-accelerated
derivative of libjpeg v6b developed by Miyasaka Masaru. The TigerVNC and
VirtualGL projects made numerous enhancements to the codec in 2009, and in
early 2010, libjpeg-turbo spun off into an independent project, with the goal
of making high-speed JPEG compression/decompression technology available to a
broader range of users and developers.
License
=======
libjpeg-turbo is covered by three compatible BSD-style open source licenses.
Refer to [LICENSE.md](LICENSE.md) for a roll-up of license terms.
Building libjpeg-turbo
======================
Refer to [BUILDING.md](BUILDING.md) for complete instructions.
Using libjpeg-turbo
===================
libjpeg-turbo includes two APIs that can be used to compress and decompress
JPEG images:
- **TurboJPEG API**<br>
This API provides an easy-to-use interface for compressing and decompressing
JPEG images in memory. It also provides some functionality that would not be
straightforward to achieve using the underlying libjpeg API, such as
generating planar YUV images and performing multiple simultaneous lossless
transforms on an image. The Java interface for libjpeg-turbo is written on
top of the TurboJPEG API. The TurboJPEG API is recommended for first-time
users of libjpeg-turbo. Refer to [tjexample.c](tjexample.c) and
[TJExample.java](java/TJExample.java) for examples of its usage and to
<http://libjpeg-turbo.org/Documentation/Documentation> for API documentation.
- **libjpeg API**<br>
This is the de facto industry-standard API for compressing and decompressing
JPEG images. It is more difficult to use than the TurboJPEG API but also
more powerful. The libjpeg API implementation in libjpeg-turbo is both
API/ABI-compatible and mathematically compatible with libjpeg v6b. It can
also optionally be configured to be API/ABI-compatible with libjpeg v7 and v8
(see below.) Refer to [cjpeg.c](cjpeg.c) and [djpeg.c](djpeg.c) for examples
of its usage and to [libjpeg.txt](libjpeg.txt) for API documentation.
There is no significant performance advantage to either API when both are used
to perform similar operations.
Colorspace Extensions
---------------------
libjpeg-turbo includes extensions that allow JPEG images to be compressed
directly from (and decompressed directly to) buffers that use BGR, BGRX,
RGBX, XBGR, and XRGB pixel ordering. This is implemented with ten new
colorspace constants:
JCS_EXT_RGB /* red/green/blue */
JCS_EXT_RGBX /* red/green/blue/x */
JCS_EXT_BGR /* blue/green/red */
JCS_EXT_BGRX /* blue/green/red/x */
JCS_EXT_XBGR /* x/blue/green/red */
JCS_EXT_XRGB /* x/red/green/blue */
JCS_EXT_RGBA /* red/green/blue/alpha */
JCS_EXT_BGRA /* blue/green/red/alpha */
JCS_EXT_ABGR /* alpha/blue/green/red */
JCS_EXT_ARGB /* alpha/red/green/blue */
Setting `cinfo.in_color_space` (compression) or `cinfo.out_color_space`
(decompression) to one of these values will cause libjpeg-turbo to read the
red, green, and blue values from (or write them to) the appropriate position in
the pixel when compressing from/decompressing to an RGB buffer.
Your application can check for the existence of these extensions at compile
time with:
#ifdef JCS_EXTENSIONS
At run time, attempting to use these extensions with a libjpeg implementation
that does not support them will result in a "Bogus input colorspace" error.
Applications can trap this error in order to test whether run-time support is
available for the colorspace extensions.
When using the RGBX, BGRX, XBGR, and XRGB colorspaces during decompression, the
X byte is undefined, and in order to ensure the best performance, libjpeg-turbo
can set that byte to whatever value it wishes. If an application expects the X
byte to be used as an alpha channel, then it should specify `JCS_EXT_RGBA`,
`JCS_EXT_BGRA`, `JCS_EXT_ABGR`, or `JCS_EXT_ARGB`. When these colorspace
constants are used, the X byte is guaranteed to be 0xFF, which is interpreted
as opaque.
Your application can check for the existence of the alpha channel colorspace
extensions at compile time with:
#ifdef JCS_ALPHA_EXTENSIONS
[jcstest.c](jcstest.c), located in the libjpeg-turbo source tree, demonstrates
how to check for the existence of the colorspace extensions at compile time and
run time.
libjpeg v7 and v8 API/ABI Emulation
-----------------------------------
With libjpeg v7 and v8, new features were added that necessitated extending the
compression and decompression structures. Unfortunately, due to the exposed
nature of those structures, extending them also necessitated breaking backward
ABI compatibility with previous libjpeg releases. Thus, programs that were
built to use libjpeg v7 or v8 did not work with libjpeg-turbo, since it is
based on the libjpeg v6b code base. Although libjpeg v7 and v8 are not
as widely used as v6b, enough programs (including a few Linux distros) made
the switch that there was a demand to emulate the libjpeg v7 and v8 ABIs
in libjpeg-turbo. It should be noted, however, that this feature was added
primarily so that applications that had already been compiled to use libjpeg
v7+ could take advantage of accelerated baseline JPEG encoding/decoding
without recompiling. libjpeg-turbo does not claim to support all of the
libjpeg v7+ features, nor to produce identical output to libjpeg v7+ in all
cases (see below.)
By passing an argument of `-DWITH_JPEG7=1` or `-DWITH_JPEG8=1` to `cmake`, you
can build a version of libjpeg-turbo that emulates the libjpeg v7 or v8 ABI, so
that programs that are built against libjpeg v7 or v8 can be run with
libjpeg-turbo. The following section describes which libjpeg v7+ features are
supported and which aren't.
### Support for libjpeg v7 and v8 Features
#### Fully supported
- **libjpeg API: IDCT scaling extensions in decompressor**<br>
libjpeg-turbo supports IDCT scaling with scaling factors of 1/8, 1/4, 3/8,
1/2, 5/8, 3/4, 7/8, 9/8, 5/4, 11/8, 3/2, 13/8, 7/4, 15/8, and 2/1 (only 1/4
and 1/2 are SIMD-accelerated.)
- **libjpeg API: Arithmetic coding**
- **libjpeg API: In-memory source and destination managers**<br>
See notes below.
- **cjpeg: Separate quality settings for luminance and chrominance**<br>
Note that the libpjeg v7+ API was extended to accommodate this feature only
for convenience purposes. It has always been possible to implement this
feature with libjpeg v6b (see rdswitch.c for an example.)
- **cjpeg: 32-bit BMP support**
- **cjpeg: `-rgb` option**
- **jpegtran: Lossless cropping**
- **jpegtran: `-perfect` option**
- **jpegtran: Forcing width/height when performing lossless crop**
- **rdjpgcom: `-raw` option**
- **rdjpgcom: Locale awareness**
#### Not supported
NOTE: As of this writing, extensive research has been conducted into the
没有合适的资源?快使用搜索试试~ 我知道了~
Android 外接基于UVC协议的摄像头并实现预览 demo
共2163个文件
dex:315个
class:314个
c:204个
5星 · 超过95%的资源 需积分: 5 154 下载量 200 浏览量
2023-05-23
11:33:20
上传
评论 2
收藏 18.16MB ZIP 举报
温馨提示
Android 外接基于UVC协议的摄像头并实现预览 demo
资源推荐
资源详情
资源评论
收起资源包目录
Android 外接基于UVC协议的摄像头并实现预览 demo (2163个子文件)
cjpeg.1 14KB
jpegtran.1 13KB
djpeg.1 11KB
wrjpgcom.1 3KB
rdjpgcom.1 2KB
libjpeg-turbo212_static.a 2.2MB
libjpeg-simd.a 556KB
libuvc_static.a 527KB
libuvccamera-debug.aar 1.54MB
configure.ac 15KB
Makefile.am 2KB
Makefile.am 1KB
Makefile.am 416B
Makefile.am 163B
jchuff-sse2.asm 39KB
jidctint-sse2.asm 36KB
jidctint-sse2.asm 35KB
jidctint-mmx.asm 33KB
jchuff-sse2.asm 32KB
jdsample-avx2.asm 31KB
jdsample-avx2.asm 28KB
jdmrgext-avx2.asm 27KB
jidctred-mmx.asm 27KB
jfdctint-sse2.asm 27KB
jdmrgext-avx2.asm 27KB
jdsample-sse2.asm 27KB
jfdctint-sse2.asm 26KB
jdsample-mmx.asm 26KB
jccolext-avx2.asm 26KB
jdcolext-avx2.asm 25KB
jidctflt-sse.asm 25KB
jfdctint-mmx.asm 25KB
jccolext-avx2.asm 24KB
jdcolext-avx2.asm 24KB
jdsample-sse2.asm 24KB
jidctred-sse2.asm 23KB
jidctred-sse2.asm 22KB
jidctflt-sse2.asm 22KB
jidctfst-sse2.asm 22KB
jdmrgext-sse2.asm 21KB
jidctfst-sse2.asm 21KB
jidctflt-sse2.asm 21KB
jdmrgext-sse2.asm 21KB
jcgryext-avx2.asm 20KB
jidctfst-mmx.asm 20KB
jccolext-sse2.asm 19KB
jcgryext-avx2.asm 19KB
jidctint-avx2.asm 19KB
jcphuff-sse2.asm 19KB
jdcolext-sse2.asm 19KB
jccolext-sse2.asm 18KB
jdmrgext-mmx.asm 18KB
jcphuff-sse2.asm 18KB
jfdctfst-sse2.asm 18KB
jidctflt-3dn.asm 18KB
jdcolext-sse2.asm 18KB
jidctint-avx2.asm 17KB
jccolext-mmx.asm 17KB
jfdctfst-sse2.asm 17KB
jfdctfst-mmx.asm 16KB
jdcolext-mmx.asm 16KB
jfdctflt-sse.asm 15KB
jfdctflt-sse.asm 14KB
jcgryext-sse2.asm 14KB
jcgryext-sse2.asm 13KB
jfdctint-avx2.asm 13KB
jcgryext-mmx.asm 12KB
jfdctint-avx2.asm 12KB
jfdctflt-3dn.asm 12KB
jcsample-avx2.asm 12KB
jcsample-avx2.asm 11KB
jcsample-sse2.asm 11KB
jcsample-mmx.asm 10KB
jquant-mmx.asm 9KB
jcsample-sse2.asm 9KB
jquant-3dn.asm 9KB
jquant-sse.asm 8KB
jquanti-sse2.asm 7KB
jquanti-avx2.asm 7KB
jquanti-sse2.asm 7KB
jquantf-sse2.asm 6KB
jquanti-avx2.asm 6KB
jquantf-sse2.asm 5KB
jdmerge-avx2.asm 4KB
jdmerge-avx2.asm 4KB
jdmerge-sse2.asm 4KB
jdmerge-sse2.asm 4KB
jdmerge-mmx.asm 4KB
jsimdcpu.asm 4KB
jccolor-avx2.asm 4KB
jccolor-mmx.asm 4KB
jccolor-avx2.asm 4KB
jccolor-sse2.asm 4KB
jccolor-sse2.asm 4KB
jdcolor-avx2.asm 4KB
jdcolor-avx2.asm 4KB
jdcolor-sse2.asm 4KB
jdcolor-sse2.asm 4KB
jdcolor-mmx.asm 4KB
jcgray-avx2.asm 3KB
共 2163 条
- 1
- 2
- 3
- 4
- 5
- 6
- 22
资源评论
- 云林云风2023-10-25资源不错,就是我的板子用不了
- jghwwbq2023-12-12为啥预览很卡
RPG旅人
- 粉丝: 318
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功