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

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

?? structure.doc

?? Trolltech公司發布的基于C++圖形開發環境
?? DOC
?? 第 1 頁 / 共 4 頁
字號:
* Colorspace conversion: convert from JPEG color space to output color space,  and change data layout from separate component planes to pixel-interleaved.  Works on one pixel row at a time.* Color quantization: reduce the data to colormapped form, using either an  externally specified colormap or an internally generated one.  This module  is not used for full-color output.  Works on one pixel row at a time; may  require two passes to generate a color map.  Note that the output will  always be a single component representing colormap indexes.  In the current  design, the output values are JSAMPLEs, so an 8-bit compilation cannot  quantize to more than 256 colors.  This is unlikely to be a problem in  practice.* Color reduction: this module handles color precision reduction, e.g.,  generating 15-bit color (5 bits/primary) from JPEG's 24-bit output.  Not quite clear yet how this should be handled... should we merge it with  colorspace conversion???Note that some high-speed operating modes might condense the entirepostprocessing sequence to a single module (upsample, color convert, andquantize in one step).In addition to the above objects, the decompression library includes theseobjects:* Master control: determines the number of passes required, controls overall  and per-pass initialization of the other modules.  This is subdivided into  input and output control: jdinput.c controls only input-side processing,  while jdmaster.c handles overall initialization and output-side control.* Marker reading: decodes JPEG markers (except for RSTn).* Data source manager: supplies the input JPEG datastream.  The source  manager supplied with the library knows how to read from a stdio stream;  for other behaviors, the surrounding application may provide its own source  manager.* Memory manager: same as for compression library.* Error handler: same as for compression library.* Progress monitor: same as for compression library.As with compression, the data source manager, error handler, and progressmonitor are candidates for replacement by a surrounding application.*** Decompression input and output separation ***To support efficient incremental display of progressive JPEG files, thedecompressor is divided into two sections that can run independently:1. Data input includes marker parsing, entropy decoding, and input into the   coefficient controller's DCT coefficient buffer.  Note that this   processing is relatively cheap and fast.2. Data output reads from the DCT coefficient buffer and performs the IDCT   and all postprocessing steps.For a progressive JPEG file, the data input processing is allowed to getarbitrarily far ahead of the data output processing.  (This occurs onlyif the application calls jpeg_consume_input(); otherwise input and outputrun in lockstep, since the input section is called only when the outputsection needs more data.)  In this way the application can avoid makingextra display passes when data is arriving faster than the display passcan run.  Furthermore, it is possible to abort an output pass withoutlosing anything, since the coefficient buffer is read-only as far as theoutput section is concerned.  See libjpeg.doc for more detail.A full-image coefficient array is only created if the JPEG file has multiplescans (or if the application specifies buffered-image mode anyway).  Whenreading a single-scan file, the coefficient controller normally creates onlya one-MCU buffer, so input and output processing must run in lockstep in thiscase.  jpeg_consume_input() is effectively a no-op in this situation.The main impact of dividing the decompressor in this fashion is that we mustbe very careful with shared variables in the cinfo data structure.  Eachvariable that can change during the course of decompression must beclassified as belonging to data input or data output, and each section mustlook only at its own variables.  For example, the data output section may notdepend on any of the variables that describe the current scan in the JPEGfile, because these may change as the data input section advances into a newscan.The progress monitor is (somewhat arbitrarily) defined to treat input of thefile as one pass when buffered-image mode is not used, and to ignore datainput work completely when buffered-image mode is used.  Note that thelibrary has no reliable way to predict the number of passes when dealingwith a progressive JPEG file, nor can it predict the number of output passesin buffered-image mode.  So the work estimate is inherently bogus anyway.No comparable division is currently made in the compression library, becausethere isn't any real need for it.*** Data formats ***Arrays of pixel sample values use the following data structure:    typedef something JSAMPLE;		a pixel component value, 0..MAXJSAMPLE    typedef JSAMPLE *JSAMPROW;		ptr to a row of samples    typedef JSAMPROW *JSAMPARRAY;	ptr to a list of rows    typedef JSAMPARRAY *JSAMPIMAGE;	ptr to a list of color-component arraysThe basic element type JSAMPLE will typically be one of unsigned char,(signed) char, or short.  Short will be used if samples wider than 8 bits areto be supported (this is a compile-time option).  Otherwise, unsigned char isused if possible.  If the compiler only supports signed chars, then it isnecessary to mask off the value when reading.  Thus, all reads of JSAMPLEvalues must be coded as "GETJSAMPLE(value)", where the macro will be definedas "((value) & 0xFF)" on signed-char machines and "((int) (value))" elsewhere.With these conventions, JSAMPLE values can be assumed to be >= 0.  This helpssimplify correct rounding during downsampling, etc.  The JPEG standard'sspecification that sample values run from -128..127 is accommodated bysubtracting 128 just as the sample value is copied into the source array forthe DCT step (this will be an array of signed ints).  Similarly, duringdecompression the output of the IDCT step will be immediately shifted back to0..255.  (NB: different values are required when 12-bit samples are in use.The code is written in terms of MAXJSAMPLE and CENTERJSAMPLE, which will bedefined as 255 and 128 respectively in an 8-bit implementation, and as 4095and 2048 in a 12-bit implementation.)We use a pointer per row, rather than a two-dimensional JSAMPLE array.  Thischoice costs only a small amount of memory and has several benefits:* Code using the data structure doesn't need to know the allocated width of  the rows.  This simplifies edge expansion/compression, since we can work  in an array that's wider than the logical picture width.* Indexing doesn't require multiplication; this is a performance win on many  machines.* Arrays with more than 64K total elements can be supported even on machines  where malloc() cannot allocate chunks larger than 64K.* The rows forming a component array may be allocated at different times  without extra copying.  This trick allows some speedups in smoothing steps  that need access to the previous and next rows.Note that each color component is stored in a separate array; we don't use thetraditional layout in which the components of a pixel are stored together.This simplifies coding of modules that work on each component independently,because they don't need to know how many components there are.  Furthermore,we can read or write each component to a temporary file independently, whichis helpful when dealing with noninterleaved JPEG files.In general, a specific sample value is accessed by code such as	GETJSAMPLE(image[colorcomponent][row][col])where col is measured from the image left edge, but row is measured from thefirst sample row currently in memory.  Either of the first two indexings canbe precomputed by copying the relevant pointer.Since most image-processing applications prefer to work on images in whichthe components of a pixel are stored together, the data passed to or from thesurrounding application uses the traditional convention: a single pixel isrepresented by N consecutive JSAMPLE values, and an image row is an array of(# of color components)*(image width) JSAMPLEs.  One or more rows of data canbe represented by a pointer of type JSAMPARRAY in this scheme.  This scheme isconverted to component-wise storage inside the JPEG library.  (Applicationsthat want to skip JPEG preprocessing or postprocessing will have to contendwith component-wise storage.)Arrays of DCT-coefficient values use the following data structure:    typedef short JCOEF;		a 16-bit signed integer    typedef JCOEF JBLOCK[DCTSIZE2];	an 8x8 block of coefficients    typedef JBLOCK *JBLOCKROW;		ptr to one horizontal row of 8x8 blocks    typedef JBLOCKROW *JBLOCKARRAY;	ptr to a list of such rows    typedef JBLOCKARRAY *JBLOCKIMAGE;	ptr to a list of color component arraysThe underlying type is at least a 16-bit signed integer; while "short" is bigenough on all machines of interest, on some machines it is preferable to use"int" for speed reasons, despite the storage cost.  Coefficients are groupedinto 8x8 blocks (but we always use #defines DCTSIZE and DCTSIZE2 rather than"8" and "64").The contents of a coefficient block may be in either "natural" or zigzaggedorder, and may be true values or divided by the quantization coefficients,depending on where the block is in the processing pipeline.  In the currentlibrary, coefficient blocks are kept in natural order everywhere; the entropycodecs zigzag or dezigzag the data as it is written or read.  The blockscontain quantized coefficients everywhere outside the DCT/IDCT subsystems.(This latter decision may need to be revisited to support variablequantization a la JPEG Part 3.)Notice that the allocation unit is now a row of 8x8 blocks, corresponding toeight rows of samples.  Otherwise the structure is much the same as forsamples, and for the same reasons.On machines where malloc() can't handle a request bigger than 64Kb, this datastructure limits us to rows of less than 512 JBLOCKs, or a picture width of4000+ pixels.  This seems an acceptable restriction.On 80x86 machines, the bottom-level pointer types (JSAMPROW and JBLOCKROW)must be declared as "far" pointers, but the upper levels can be "near"(implying that the pointer lists are allocated in the DS segment).We use a #define symbol FAR, which expands to the "far" keyword whencompiling on 80x86 machines and to nothing elsewhere.*** Suspendable processing ***In some applications it is desirable to use the JPEG library as anincremental, memory-to-memory filter.  In this situation the data source ordestination may be a limited-size buffer, and we can't rely on being able toempty or refill the buffer at arbitrary times.  Instead the application wouldlike to have control return from the library at buffer overflow/underrun, andthen resume compression or decompression at a later time.This scenario is supported for simple cases.  (For anything more complex, werecommend that the application "bite the bullet" and develop real multitaskingcapability.)  The libjpeg.doc file goes into more detail about the usage andlimitations of this capability; here we address the implications for librarystructure.The essence of the problem is that the entropy codec (coder or decoder) mustbe prepared to stop at arbitrary times.  In turn, the controllers that callthe entropy codec must be able to stop before having produced or consumed allthe data that they normally would handle in one call.  That part is reasonablystraightforward: we make the controller call interfaces include "progresscounters" which indicate the number of data chunks successfully processed, andwe require callers to test the counter rather than just assume all of the datawas processed.Rather than trying to restart at an arbitrary point, the current Huffmancodecs are designed to restart at the beginning of the current MCU after asuspension due to buffer overflow/underrun.  At the start of each call, thecodec's internal state is loaded from permanent storage (in the JPEG objectstructures) into local variables.  On successful completion of the MCU, thepermanent state is updated.  (This copying is not very expensive, and may evenlead to *improved* performance if the local variables can be registerized.)If a suspension occurs, the codec simply returns without updating the state,thus effectively reverting to the start of the MCU.  Note that this impliesleaving some data unprocessed in the source/destination buffer (ie, thecompressed partial MCU).  The data source/destination module interfaces arespecified so as to make this possible.  This also implies that the data buffermust be large enough to hold a worst-case compressed MCU; a couple thousandbytes should be enough.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩人成在线播放| 国产精品你懂的| 91国产丝袜在线播放| 成人国产精品视频| 成人h动漫精品一区二| 播五月开心婷婷综合| 成人a区在线观看| 91在线porny国产在线看| 成人18视频在线播放| 色一情一乱一乱一91av| 欧美视频在线一区二区三区 | 日韩一区二区三区视频在线观看| 欧美色图一区二区三区| 欧美性欧美巨大黑白大战| 色成人在线视频| 日韩一区二区免费在线电影| 日韩免费福利电影在线观看| 精品美女在线播放| 中文字幕亚洲成人| 玉米视频成人免费看| 亚洲成人精品一区二区| 男人操女人的视频在线观看欧美| 午夜精品久久久久久久久久| 美女视频黄免费的久久| 国产精品亚洲人在线观看| 色综合视频在线观看| 欧美日韩国产另类一区| 精品国产三级电影在线观看| 国产日产欧美一区| 一区二区三区鲁丝不卡| 久久99精品久久久| 色综合天天做天天爱| 日韩视频一区二区| 1区2区3区国产精品| 日韩经典中文字幕一区| 风间由美一区二区三区在线观看| 日本道色综合久久| 久久亚洲精品小早川怜子| 亚洲免费观看视频| 激情欧美日韩一区二区| 日本丶国产丶欧美色综合| 亚洲精品在线免费观看视频| 一区二区三区在线免费视频| 精品一区二区三区免费| 91麻豆高清视频| 精品国产成人在线影院| 日韩精品一二三四| zzijzzij亚洲日本少妇熟睡| 日韩精品每日更新| 韩国欧美国产1区| 欧美在线观看一区| 国产欧美日韩亚州综合 | 亚洲宅男天堂在线观看无病毒| 青青青伊人色综合久久| 99精品视频一区| 久久久综合网站| 午夜a成v人精品| 99在线热播精品免费| 久久欧美中文字幕| 六月丁香婷婷色狠狠久久| 在线视频你懂得一区| 国产精品久久久久一区二区三区共| 日韩福利电影在线观看| 欧美视频一区在线| 一区二区欧美在线观看| 色综合一区二区三区| 亚洲欧洲另类国产综合| 粉嫩aⅴ一区二区三区四区| 欧美精品一区二区久久婷婷| 日本美女视频一区二区| 欧美日韩电影一区| 午夜精品福利一区二区蜜股av| 91视频免费观看| 国产精品不卡视频| 99久久er热在这里只有精品66| 久久久电影一区二区三区| 国内一区二区在线| 久久婷婷综合激情| 岛国精品在线观看| 日本一区二区电影| 9l国产精品久久久久麻豆| 欧美国产日韩在线观看| 国产v日产∨综合v精品视频| 国产精品午夜电影| av在线不卡电影| 又紧又大又爽精品一区二区| 在线看一区二区| 无吗不卡中文字幕| 26uuu色噜噜精品一区二区| 国产**成人网毛片九色| 18成人在线观看| 欧美日韩一区二区在线观看| 久久成人精品无人区| 欧美精品一区二区三区蜜桃视频| 国产99久久久久久免费看农村| 中文在线一区二区| 91国偷自产一区二区三区成为亚洲经典| 亚洲制服丝袜av| 日韩免费高清电影| 成人a区在线观看| 日韩黄色免费网站| 国产亚洲短视频| 成人av手机在线观看| 亚洲综合免费观看高清完整版在线| 精品视频1区2区| 激情欧美一区二区三区在线观看| 中文字幕永久在线不卡| 欧美日韩另类一区| 国产在线精品一区在线观看麻豆| 亚洲欧洲另类国产综合| 日韩三级电影网址| 99久久99久久免费精品蜜臀| 日本伊人精品一区二区三区观看方式| 国产亚洲精品bt天堂精选| 欧美午夜理伦三级在线观看| 国产一区二区剧情av在线| 亚洲欧美视频一区| 日韩亚洲欧美成人一区| 91一区二区在线观看| 久久精品国产99| 亚洲成av人片| 一区精品在线播放| 国产亚洲欧美日韩在线一区| 欧美精品在线一区二区三区| 成人免费精品视频| 久久av中文字幕片| 亚洲尤物在线视频观看| 国产精品每日更新| 欧美白人最猛性xxxxx69交| 色综合天天综合网天天狠天天| 国产激情一区二区三区| 另类成人小视频在线| 亚洲午夜一区二区三区| 亚洲免费高清视频在线| 中文一区一区三区高中清不卡| 精品国产一区二区三区四区四| 欧美三级资源在线| 色综合久久久久久久| 国产99久久久国产精品| 国产高清不卡二三区| 麻豆精品精品国产自在97香蕉| 亚洲一区二区三区小说| 亚洲精品乱码久久久久久日本蜜臀| 国产亚洲欧美日韩日本| 国产午夜精品在线观看| 欧美精品一区在线观看| 久久综合九色综合欧美亚洲| 日韩精品一区二区三区视频| 欧美一区二区三区成人| 777精品伊人久久久久大香线蕉| 91黄色免费观看| 欧美性猛交xxxxxx富婆| 在线观看亚洲a| 欧美午夜精品一区| 91麻豆精品久久久久蜜臀| 欧美男女性生活在线直播观看| 欧美日韩一卡二卡三卡 | 日韩在线a电影| 日韩福利电影在线| 久久超碰97人人做人人爱| 久久99国产精品麻豆| 国产一区二区在线观看视频| 国产尤物一区二区| 成人在线视频首页| 99精品视频一区二区三区| 色婷婷综合久久久久中文一区二区 | 91精品一区二区三区在线观看| 欧美日韩中文一区| 91精品综合久久久久久| 精品日韩欧美在线| 中文字幕一区二区5566日韩| 亚洲精品国产品国语在线app| 一区二区三区四区精品在线视频 | 日韩免费高清电影| 国产日韩欧美麻豆| 亚洲精品成人精品456| 爽好多水快深点欧美视频| 久久精品国产一区二区三区免费看 | 欧美午夜精品一区二区三区 | 粗大黑人巨茎大战欧美成人| 成人毛片老司机大片| 欧美私人免费视频| 精品第一国产综合精品aⅴ| 国产欧美日韩在线观看| 亚洲影视在线播放| 国产一区亚洲一区| 在线观看亚洲精品视频| 精品成人在线观看| 亚洲黄色尤物视频| 国产一区二区剧情av在线| 欧美性xxxxx极品少妇| 日韩欧美另类在线| 亚洲色图一区二区三区| 日韩在线a电影| 91老师国产黑色丝袜在线| 91精品婷婷国产综合久久性色| 久久综合色播五月| 日韩精品久久久久久| 91美女福利视频| 久久亚洲精品国产精品紫薇|