亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? libjpeg.txt

?? 基于周立功EasyArm2200的LPC2292平臺驅動ili9325TFT屏控制器
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
Notes on the JPEG Library
=========================

This JPEG module is derived from work of the IJG (see below),
and may be copyied and redistributed according to the
conditions under LEGAL ISSUES in ReadMe.txt.
The code has been modified in a variety of ways;
some code (GUI_JPEG.c) has been added to as "glue" to make it
work with emWin.
The original text of this file is below; some things stated may no
longer be correct for the code that ships with emWin.
However, we decided to leave it here because it explains the basic
concepts and structure of JPEG code.

Segger Microcontroller Systeme GmbH, June 2003
====================================================================



USING THE IJG JPEG LIBRARY

Copyright (C) 1994-1998, Thomas G. Lane.
This file is part of the Independent JPEG Group's software.
For conditions of distribution and use, see the accompanying README file.


This file describes how to use the IJG JPEG library within an application
program.  Read it if you want to write a program that uses the library.

The file example.c provides heavily commented skeleton code for calling the
JPEG library.  Also see jpeglib.h (the include file to be used by application
programs) for full details about data structures and function parameter lists.
The library source code, of course, is the ultimate reference.

Note that there have been *major* changes from the application interface
presented by IJG version 4 and earlier versions.  The old design had several
inherent limitations, and it had accumulated a lot of cruft as we added
features while trying to minimize application-interface changes.  We have
sacrificed backward compatibility in the version 5 rewrite, but we think the
improvements justify this.


TABLE OF CONTENTS
-----------------

Overview:
	Functions provided by the library
	Outline of typical usage
Basic library usage:
	Data formats
	Compression details
	Decompression details
	Mechanics of usage: include files, linking, etc
Advanced features:
	Compression parameter selection
	Decompression parameter selection
	Special color spaces
	Error handling
	Compressed data handling (source and destination managers)
	I/O suspension
	Progressive JPEG support
	Buffered-image mode
	Abbreviated datastreams and multiple images
	Special markers
	Raw (downsampled) image data
	Really raw data: DCT coefficients
	Progress monitoring
	Memory management
	Memory usage
	Library compile-time options
	Portability considerations
	Notes for MS-DOS implementors

You should read at least the overview and basic usage sections before trying
to program with the library.  The sections on advanced features can be read
if and when you need them.


OVERVIEW
========

Functions provided by the library
---------------------------------

The IJG JPEG library provides C code to read and write JPEG-compressed image
files.  The surrounding application program receives or supplies image data a
scanline at a time, using a straightforward uncompressed image format.  All
details of color conversion and other preprocessing/postprocessing can be
handled by the library.

The library includes a substantial amount of code that is not covered by the
JPEG standard but is necessary for typical applications of JPEG.  These
functions preprocess the image before JPEG compression or postprocess it after
decompression.  They include colorspace conversion, downsampling/upsampling,
and color quantization.  The application indirectly selects use of this code
by specifying the format in which it wishes to supply or receive image data.
For example, if colormapped output is requested, then the decompression
library automatically invokes color quantization.

A wide range of quality vs. speed tradeoffs are possible in JPEG processing,
and even more so in decompression postprocessing.  The decompression library
provides multiple implementations that cover most of the useful tradeoffs,
ranging from very-high-quality down to fast-preview operation.  On the
compression side we have generally not provided low-quality choices, since
compression is normally less time-critical.  It should be understood that the
low-quality modes may not meet the JPEG standard's accuracy requirements;
nonetheless, they are useful for viewers.

A word about functions *not* provided by the library.  We handle a subset of
the ISO JPEG standard; most baseline, extended-sequential, and progressive
JPEG processes are supported.  (Our subset includes all features now in common
use.)  Unsupported ISO options include:
	* Hierarchical storage
	* Lossless JPEG
	* Arithmetic entropy coding (unsupported for legal reasons)
	* DNL marker
	* Nonintegral subsampling ratios
We support both 8- and 12-bit data precision, but this is a compile-time
choice rather than a run-time choice; hence it is difficult to use both
precisions in a single application.

By itself, the library handles only interchange JPEG datastreams --- in
particular the widely used JFIF file format.  The library can be used by
surrounding code to process interchange or abbreviated JPEG datastreams that
are embedded in more complex file formats.  (For example, this library is
used by the free LIBTIFF library to support JPEG compression in TIFF.)


Outline of typical usage
------------------------

The rough outline of a JPEG compression operation is:

	Allocate and initialize a JPEG compression object
	Specify the destination for the compressed data (eg, a file)
	Set parameters for compression, including image size & colorspace
	jpeg_start_compress(...);
	while (scan lines remain to be written)
		jpeg_write_scanlines(...);
	jpeg_finish_compress(...);
	Release the JPEG compression object

A JPEG compression object holds parameters and working state for the JPEG
library.  We make creation/destruction of the object separate from starting
or finishing compression of an image; the same object can be re-used for a
series of image compression operations.  This makes it easy to re-use the
same parameter settings for a sequence of images.  Re-use of a JPEG object
also has important implications for processing abbreviated JPEG datastreams,
as discussed later.

The image data to be compressed is supplied to jpeg_write_scanlines() from
in-memory buffers.  If the application is doing file-to-file compression,
reading image data from the source file is the application's responsibility.
The library emits compressed data by calling a "data destination manager",
which typically will write the data into a file; but the application can
provide its own destination manager to do something else.

Similarly, the rough outline of a JPEG decompression operation is:

	Allocate and initialize a JPEG decompression object
	Specify the source of the compressed data (eg, a file)
	Call jpeg_read_header() to obtain image info
	Set parameters for decompression
	jpeg_start_decompress(...);
	while (scan lines remain to be read)
		jpeg_read_scanlines(...);
	jpeg_finish_decompress(...);
	Release the JPEG decompression object

This is comparable to the compression outline except that reading the
datastream header is a separate step.  This is helpful because information
about the image's size, colorspace, etc is available when the application
selects decompression parameters.  For example, the application can choose an
output scaling ratio that will fit the image into the available screen size.

The decompression library obtains compressed data by calling a data source
manager, which typically will read the data from a file; but other behaviors
can be obtained with a custom source manager.  Decompressed data is delivered
into in-memory buffers passed to jpeg_read_scanlines().

It is possible to abort an incomplete compression or decompression operation
by calling jpeg_abort(); or, if you do not need to retain the JPEG object,
simply release it by calling jpeg_destroy().

JPEG compression and decompression objects are two separate struct types.
However, they share some common fields, and certain routines such as
jpeg_destroy() can work on either type of object.

The JPEG library has no static variables: all state is in the compression
or decompression object.  Therefore it is possible to process multiple
compression and decompression operations concurrently, using multiple JPEG
objects.

Both compression and decompression can be done in an incremental memory-to-
memory fashion, if suitable source/destination managers are used.  See the
section on "I/O suspension" for more details.


BASIC LIBRARY USAGE
===================

Data formats
------------

Before diving into procedural details, it is helpful to understand the
image data format that the JPEG library expects or returns.

The standard input image format is a rectangular array of pixels, with each
pixel having the same number of "component" or "sample" values (color
channels).  You must specify how many components there are and the colorspace
interpretation of the components.  Most applications will use RGB data
(three components per pixel) or grayscale data (one component per pixel).
PLEASE NOTE THAT RGB DATA IS THREE SAMPLES PER PIXEL, GRAYSCALE ONLY ONE.
A remarkable number of people manage to miss this, only to find that their
programs don't work with grayscale JPEG files.

There is no provision for colormapped input.  JPEG files are always full-color
or full grayscale (or sometimes another colorspace such as CMYK).  You can
feed in a colormapped image by expanding it to full-color format.  However
JPEG often doesn't work very well with source data that has been colormapped,
because of dithering noise.  This is discussed in more detail in the JPEG FAQ
and the other references mentioned in the README file.

Pixels are stored by scanlines, with each scanline running from left to
right.  The component values for each pixel are adjacent in the row; for
example, R,G,B,R,G,B,R,G,B,... for 24-bit RGB color.  Each scanline is an
array of data type JSAMPLE --- which is typically "unsigned char", unless
you've changed jmorecfg.h.  (You can also change the RGB pixel layout, say
to B,G,R order, by modifying jmorecfg.h.  But see the restrictions listed in
that file before doing so.)

A 2-D array of pixels is formed by making a list of pointers to the starts of
scanlines; so the scanlines need not be physically adjacent in memory.  Even
if you process just one scanline at a time, you must make a one-element
pointer array to conform to this structure.  Pointers to JSAMPLE rows are of
type JSAMPROW, and the pointer to the pointer array is of type JSAMPARRAY.

The library accepts or supplies one or more complete scanlines per call.
It is not possible to process part of a row at a time.  Scanlines are always
processed top-to-bottom.  You can process an entire image in one call if you
have it all in memory, but usually it's simplest to process one scanline at
a time.

For best results, source data values should have the precision specified by
BITS_IN_JSAMPLE (normally 8 bits).  For instance, if you choose to compress
data that's only 6 bits/channel, you should left-justify each value in a
byte before passing it to the compressor.  If you need to compress data
that has more than 8 bits/channel, compile with BITS_IN_JSAMPLE = 12.
(See "Library compile-time options", later.)


The data format returned by the decompressor is the same in all details,
except that colormapped output is supported.  (Again, a JPEG file is never
colormapped.  But you can ask the decompressor to perform on-the-fly color
quantization to deliver colormapped output.)  If you request colormapped
output then the returned data array contains a single JSAMPLE per pixel;
its value is an index into a color map.  The color map is represented as
a 2-D JSAMPARRAY in which each row holds the values of one color component,
that is, colormap[i][j] is the value of the i'th color component for pixel
value (map index) j.  Note that since the colormap indexes are stored in
JSAMPLEs, the maximum number of colors is limited by the size of JSAMPLE
(ie, at most 256 colors for an 8-bit JPEG library).


Compression details
-------------------

Here we revisit the JPEG compression outline given in the overview.

1. Allocate and initialize a JPEG compression object.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品久久久蜜桃| 色综合激情五月| 国产精品白丝jk黑袜喷水| 97成人超碰视| 欧美一级黄色录像| 亚洲女女做受ⅹxx高潮| 免费不卡在线观看| 91黄色小视频| 国产精品国产三级国产普通话蜜臀| 日韩综合在线视频| 欧美专区亚洲专区| 国产精品乱人伦| 国产精品99久久久久久久vr| 日韩欧美一级片| 亚洲成av人片一区二区| 99精品在线观看视频| 国产午夜精品一区二区三区嫩草| 欧美aaa在线| 欧美精品三级在线观看| 一个色综合网站| 91老师片黄在线观看| 国产精品剧情在线亚洲| 国产成人精品免费一区二区| 亚洲精品一区二区三区蜜桃下载 | 欧美精品日韩一区| 亚洲一区二区三区精品在线| 一本色道久久综合亚洲aⅴ蜜桃| 国产午夜三级一区二区三| 国模少妇一区二区三区| 久久精品日韩一区二区三区| 激情五月播播久久久精品| 日韩一卡二卡三卡| 久久99九九99精品| 久久精品日产第一区二区三区高清版| 狠狠色丁香婷婷综合| 国产网站一区二区三区| 成人爽a毛片一区二区免费| 国产精品传媒视频| 色婷婷亚洲综合| 亚洲国产综合在线| 欧美精品丝袜久久久中文字幕| 视频一区中文字幕国产| 欧美一区二区网站| 国产一区二区伦理| 国产精品五月天| 色噜噜狠狠一区二区三区果冻| 亚洲国产成人va在线观看天堂| 欧美日韩高清不卡| 麻豆精品国产传媒mv男同| 国产亚洲欧美日韩在线一区| 欧美专区日韩专区| 青青草伊人久久| 国产午夜亚洲精品理论片色戒| 99国产一区二区三精品乱码| 亚洲免费av网站| 日韩精品专区在线影院观看| 国产乱理伦片在线观看夜一区| 国产精品美日韩| 欧美日韩国产电影| 精品一区二区成人精品| 中文字幕一区二区三区四区| 精品视频在线免费| 国产原创一区二区三区| 亚洲欧美日韩综合aⅴ视频| 欧美精品xxxxbbbb| www.欧美.com| 美腿丝袜亚洲一区| 亚洲欧美一区二区三区久本道91| 欧美日韩高清在线| 国产成人亚洲综合a∨婷婷图片| 亚洲黄色片在线观看| 久久久亚洲精华液精华液精华液| 色综合久久九月婷婷色综合| 免费成人在线网站| 亚洲日本在线视频观看| 精品少妇一区二区三区| 91日韩在线专区| 国产精品羞羞答答xxdd| 午夜a成v人精品| 亚洲乱码中文字幕综合| 久久综合狠狠综合久久综合88 | 日韩欧美亚洲国产另类| 99视频精品在线| 99久久99久久综合| 国产精品一区二区黑丝| 婷婷六月综合亚洲| 亚洲精品日日夜夜| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美日韩国产免费| 99精品桃花视频在线观看| 久久99精品视频| 三级久久三级久久| 一区二区欧美视频| 国产精品久久久99| 2017欧美狠狠色| 欧美电视剧在线观看完整版| 精品婷婷伊人一区三区三| 93久久精品日日躁夜夜躁欧美| 精品一区二区在线看| 五月激情综合色| 亚洲成人精品一区二区| 一区二区三区自拍| 亚洲欧美日韩国产中文在线| 国产精品理伦片| 中文文精品字幕一区二区| 26uuu欧美| 26uuu精品一区二区| 精品久久五月天| 日韩免费视频一区| 欧美成人综合网站| 精品国产免费一区二区三区四区 | 麻豆国产精品官网| 蜜臀av一区二区在线观看| 久久99久久精品欧美| 蜜臀99久久精品久久久久久软件| 日韩在线观看一区二区| 美腿丝袜亚洲一区| 激情小说亚洲一区| 国产麻豆成人传媒免费观看| 国产激情视频一区二区在线观看| 国产精品原创巨作av| 国产jizzjizz一区二区| 不卡高清视频专区| av电影天堂一区二区在线观看| 91亚洲男人天堂| 精品视频一区二区不卡| 日韩一卡二卡三卡| 国产校园另类小说区| 国产精品福利一区二区三区| 亚洲激情综合网| 日韩一区精品字幕| 国产美女精品在线| 91一区在线观看| 91精品国产综合久久福利 | 男男视频亚洲欧美| 国产综合久久久久影院| 播五月开心婷婷综合| 在线一区二区观看| 欧美乱熟臀69xxxxxx| 久久亚洲精精品中文字幕早川悠里 | 国产在线看一区| 成人激情动漫在线观看| 欧美综合一区二区| 日韩欧美专区在线| 中文欧美字幕免费| 性感美女极品91精品| 国产精品资源网站| 欧美午夜电影网| 久久综合色8888| 一区二区三区成人| 韩国女主播成人在线观看| 色哟哟一区二区| 久久日韩粉嫩一区二区三区| 亚洲精品中文在线影院| 精品一区二区日韩| 欧美日韩一区在线| 国产欧美精品在线观看| 亚洲h动漫在线| 成人免费av网站| 日韩精品专区在线影院观看| 视频在线在亚洲| gogo大胆日本视频一区| 日韩一区二区在线看| 亚洲欧美一区二区三区极速播放 | 日韩精品午夜视频| 岛国一区二区三区| 欧美一级二级三级乱码| √…a在线天堂一区| 国产一区欧美一区| 欧美二区三区的天堂| 亚洲欧美激情小说另类| 极品美女销魂一区二区三区免费| 欧美日韩综合不卡| 18欧美乱大交hd1984| 国产精品一色哟哟哟| 欧美二区乱c少妇| 夜夜精品浪潮av一区二区三区| 成人综合日日夜夜| 精品国产1区2区3区| 三级久久三级久久| 欧美视频你懂的| 国产精品二三区| 成人午夜又粗又硬又大| 久久伊人蜜桃av一区二区| 日本欧洲一区二区| 91麻豆精品久久久久蜜臀| 一区二区欧美在线观看| 色94色欧美sute亚洲线路二| 自拍偷拍欧美激情| 播五月开心婷婷综合| 国产欧美视频一区二区| 精品制服美女丁香| 日韩欧美一级在线播放| 男男视频亚洲欧美| 日韩一级片网址| 美女国产一区二区| 日韩小视频在线观看专区| 欧美a级一区二区| 亚洲精品一区二区三区精华液 | 26uuu久久综合|