Background
==========
libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2,
NEON, AltiVec) to accelerate baseline JPEG compression and decompression on
x86, x86-64, ARM, and PowerPC 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**
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.
- **libjpeg API**
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.)
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 `--with-jpeg7` or `--with-jpeg8` to `configure`, or
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: IDCT scaling extensions in decompressor**
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: Arithmetic coding**
- **libjpeg: In-memory source and destination managers**
See notes below.
- **cjpeg: Separate quality settings for luminance and chrominance**
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
usefulness of DCT scaling as a means of data reduction and SmartScale as a
means of quality improvement. The reader is invited to peruse the research at
<http://www.libjpeg-turbo.org/About/SmartScale> and draw his/her own conclusions,
but it is the general belief of our project that these features have not
demonstrated sufficient usefulness to justify inclusion in libjpeg-turbo.
- **libjpeg: DCT scaling in
没有合适的资源?快使用搜索试试~ 我知道了~
Android Uvc 摄像头驱动
共2000个文件
xml:366个
class:278个
flat:212个
需积分: 0 14 下载量 156 浏览量
2023-04-26
09:54:20
上传
评论 1
收藏 261.44MB ZIP 举报
温馨提示
AndroidUSBCamera是基于[saki4510t/UVCCamera](https://github.com/saki4510t/UVCCamera)开发的,USB Camera(UVC设备)项目和视频数据采集的使用高度封装,可以帮助开发者通过一些简单的 API 轻松使用 USB 相机设备。使用AndroidUSBCamera,您可以简单的检测并连接USB Camera,还可以实现拍照、录制mp4、切换分辨率、获取h.264/aac/src.yuv(nv21)码流和设置相机对比度或亮度,支持480P、720P、1080P及更高等。支持覆盖和录制设备的麦克风。 支持安卓5.0,6.0,7.0,8.0,9.0,10.0
资源推荐
资源详情
资源评论
收起资源包目录
Android Uvc 摄像头驱动 (2000个子文件)
0XzrNM17CqfQQr4hWb_sEIU1L04= 4KB
0XzrNM17CqfQQr4hWb_sEIU1L04= 4KB
cjpeg.1 14KB
djpeg.1 10KB
jpegtran.1 10KB
wrjpgcom.1 3KB
rdjpgcom.1 2KB
14G2UCdVcpj1jTtbZeC6DWTkkKM= 86KB
14G2UCdVcpj1jTtbZeC6DWTkkKM= 86KB
34PfkWmV+AUgYgnSQcpcLclL4KE= 153KB
34PfkWmV+AUgYgnSQcpcLclL4KE= 153KB
3IN4fzPphPIqP2DSCpvdcTvLDtY= 22KB
3IN4fzPphPIqP2DSCpvdcTvLDtY= 22KB
3MsjQHRIpxkn_wNgD7c_Lb4Vtog= 8KB
3MsjQHRIpxkn_wNgD7c_Lb4Vtog= 8KB
4F3Xtn2R0zzON+hgztCtzQcOHpQ= 16KB
4F3Xtn2R0zzON+hgztCtzQcOHpQ= 16KB
4sAILxl4hVW7kD8vumcqe5kLLmc= 191B
4sAILxl4hVW7kD8vumcqe5kLLmc= 191B
4sUtxM+68cOoYRtOnsfX2SDh6bI= 41KB
4sUtxM+68cOoYRtOnsfX2SDh6bI= 41KB
6FDgIHxllgymOCLclCcA__R4150= 11KB
6FDgIHxllgymOCLclCcA__R4150= 11KB
706 193B
706 41B
728 193B
728 41B
7SqY3QG3WfY1ICNEbbMbTv9E9MM= 357KB
7SqY3QG3WfY1ICNEbbMbTv9E9MM= 357KB
9R_xUFxbXIETYOFnNShb0Ebi3Yg= 7KB
9R_xUFxbXIETYOFnNShb0Ebi3Yg= 7KB
_peIlZXZP5F77bpbF4uXhIHtcI4= 7KB
_peIlZXZP5F77bpbF4uXhIHtcI4= 7KB
libjpeg-turbo1500_static.a 3.23MB
libjpeg-turbo1500_static.a 2.39MB
libuvc_static.a 916KB
libusb100_static.a 836KB
libuvc_static.a 632KB
libusb100_static.a 538KB
libuvc-debug.aar 1.2MB
libuvc-3.1.1.aar 1.19MB
libusbcommon_v4.1.1.aar 993KB
libusbcommon_v4.1.1.aar 993KB
libnative-debug.aar 271KB
libnative-3.1.1.aar 239KB
libpush-3.1.1.aar 32KB
configure.ac 20KB
configure.ac 10KB
AIljQ9xKPPujFvCibVl3HnzxWPE= 31KB
AIljQ9xKPPujFvCibVl3HnzxWPE= 31KB
AIwitY8itrOJW02clPNkc9WSE78= 241KB
AIwitY8itrOJW02clPNkc9WSE78= 241KB
Makefile.am 34KB
Makefile.am 3KB
Makefile.am 3KB
Makefile.am 2KB
Makefile.am 700B
Makefile.am 451B
Makefile.am 198B
Makefile.am 155B
Makefile.am 104B
androidResources 77KB
resources-debug.ap_ 2.14MB
app-debug.apk 8.89MB
AUSBC3.1.1_20220706.apk 7.2MB
AQIu3HLGL3LhR1bm2x0Jw_ZO3xw= 2KB
AQIu3HLGL3LhR1bm2x0Jw_ZO3xw= 2KB
ar-lib 6KB
jidctint-sse2.asm 36KB
jidctint-sse2-64.asm 35KB
jidctint-mmx.asm 34KB
jidctred-mmx.asm 28KB
jfdctint-sse2.asm 28KB
jdsample-sse2.asm 27KB
jfdctint-sse2-64.asm 27KB
jdsample-mmx.asm 26KB
jidctflt-sse.asm 25KB
jfdctint-mmx.asm 25KB
jidctred-sse2.asm 24KB
jdsample-sse2-64.asm 24KB
jidctred-sse2-64.asm 23KB
jidctflt-sse2.asm 22KB
jidctfst-sse2.asm 22KB
jdmrgext-sse2.asm 21KB
jidctflt-sse2-64.asm 21KB
jidctfst-sse2-64.asm 21KB
jdmrgext-sse2-64.asm 20KB
jidctfst-mmx.asm 20KB
jccolext-sse2.asm 19KB
jdcolext-sse2.asm 19KB
jchuff-sse2.asm 19KB
jccolext-sse2-64.asm 18KB
jdmrgext-mmx.asm 18KB
jfdctfst-sse2.asm 18KB
jdcolext-sse2-64.asm 18KB
jidctflt-3dn.asm 18KB
jccolext-mmx.asm 17KB
jfdctfst-sse2-64.asm 17KB
jfdctfst-mmx.asm 16KB
jdcolext-mmx.asm 16KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
为了一口饭
- 粉丝: 4
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
- 以下是一个简化的示例,它使用pygame库来模拟烟花动画的框架.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功