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

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

?? expand_local.h

?? JPEG2000的C++實現代碼
?? H
字號:
/*****************************************************************************/// File: expand_local.h [scope = APPS/DECOMPRESSOR]// Version: Kakadu, V2.2// Author: David Taubman// Last Revised: 20 June, 2001/*****************************************************************************/// Copyright 2001, David Taubman, The University of New South Wales (UNSW)// The copyright owner is Unisearch Ltd, Australia (commercial arm of UNSW)// Neither this copyright statement, nor the licensing details below// may be removed from this file or dissociated from its contents./*****************************************************************************/// Licensee: Book Owner// License number: 99999// The Licensee has been granted a NON-COMMERCIAL license to the contents of// this source file, said Licensee being the owner of a copy of the book,// "JPEG2000: Image Compression Fundamentals, Standards and Practice," by// Taubman and Marcellin (Kluwer Academic Publishers, 2001).  A brief summary// of the license appears below.  This summary is not to be relied upon in// preference to the full text of the license agreement, which was accepted// upon breaking the seal of the compact disc accompanying the above-mentioned// book.// 1. The Licensee has the right to Non-Commercial Use of the Kakadu software,//    Version 2.2, including distribution of one or more Applications built//    using the software, provided such distribution is not for financial//    return.// 2. The Licensee has the right to personal use of the Kakadu software,//    Version 2.2.// 3. The Licensee has the right to distribute Reusable Code (including//    source code and dynamically or statically linked libraries) to a Third//    Party, provided the Third Party possesses a license to use the Kakadu//    software, Version 2.2, and provided such distribution is not for//    financial return./******************************************************************************Description:   Local definitions used by "kdu_expand.cpp".  The "kde_flow_control"object may be of interest to a variety of different applications.******************************************************************************/#ifndef EXPAND_LOCAL_H#define EXPAND_LOCAL_H// Core includes#include "kdu_elementary.h"#include "kdu_compressed.h"#include "kdu_sample_processing.h"#include "jp2.h"// Application includes#include "kdu_image.h"// Defined here:class kde_file_binding;class kde_flow_control;/*****************************************************************************//*                              kde_file_binding                             *//*****************************************************************************/class kde_file_binding {  public: // Member functions    kde_file_binding(char *string, int len) // `len' is length of `string'      { fname = new char[len+1]; fname[len] = '\0';        strncpy(fname,string,(size_t) len);        num_channels = first_channel_idx = 0; next = NULL; }    ~kde_file_binding() // Destroys the entire list for convenience.      { delete[] fname;        if (writer.exists()) writer.destroy();        if (next != NULL) delete next; }  public: // Data -- all data public in this local object.    char *fname;    int num_channels, first_channel_idx;    kdu_image_out writer;    kde_file_binding *next;  };/*****************************************************************************//*                             kde_flow_control                              *//*****************************************************************************/class kde_flow_control {  /* Each tile-component may be decompressed independently and in any     order; however, the sequence in which tile-component lines are     decompressed clearly has an impact on the amount of buffering required     for image file I/O and possibly the amount of code-stream buffering. This     object is used to stage the tile-component processing steps so that     the image is decompressed from top to bottom in a manner consistent     with the overall geometry and hence, in most cases, minimum system     buffering requirements. */  public: // Member functions    kde_flow_control(kde_file_binding *files, int num_channels,                     kdu_codestream codestream, int x_tnum, bool allow_shorts,                     jp2_channels channels = jp2_channels(NULL),                     jp2_palette palette = jp2_palette(NULL));      /* Constructs a flow control object for one tile.  The caller might         maintain an array of pointers to such objects, one for each         horizontally adjacent tile.            The `files' list provides references to the `image_out' objects         to which the decompressed image lines will be written.  The `files'         pointer may be NULL if desired, in which case nothing will be written,         but the decompressed image lines may still be accessed incrementally         using the `access_decompressed_line' member function.            The `num_channels' argument identifies the number of decompressed         output channels to be produced.  If `channels' and `palette' are         non-existent, there is a 1-1 correspondence between channels and         image components.  Otherwise, there are at most 3 channels, which         are interpreted as the colour channels, and the image components may         be mapped to channels through a palette.            The `x_tnum' argument identifies which horizontal tile the object         is being created to represent, with 0 for the first apparent         horizontal tile.            If `allow_shorts' is false, 32-bit data representations will be         selected for all processing; otherwise, the constructor will select         a 16- or a 32-bit representation on the basis of the image component         bit-depths.  Note, however, that when decompressing an image         component which is used to map image samples through a palette, a         16-bit fixed point representation will be used whenever the         irreversible processing path is involved.  This avoids unnecessary         conversion to and from floating point representations.            The `channels' and `palette' objects should be non-empty (i.e.,         their `exists' member functions should return true) only if a JP2         compatible file is being decompressed and the channels are to be         interpreted as colour channels rather than image components.  In         this case, the object automatically determines which image         components are required and applies any palette mapping on the         fly. */    ~kde_flow_control();    bool advance_components();      /* Causes the line position for this tile to be advanced in every         image component, by an amount which should cause at least one         image line to be synthesized in at least one component and will not         cause any more than one image line to be synthesized in any component.         Synthesized image lines are colour converted, if necessary, and         then written out to the relevant image files.   The function returns         false once all image lines have been synthesized for the current tile,         at which point the user will normally issue an `advance_tile' call. */    kdu_line_buf *access_decompressed_line(int channel_idx);      /* This function may be called after `advance_components' to access any         newly decompressed image lines.  This allows the caller to modify the         contents of the decompressed data if desired, or to send it to         an alternate destination (other than, or in addition to an image         file writing object).  The function returns NULL if no new data is         available for the indicated channel (component or mapped colour         channel). */    void process_components();      /* This function must be called after every call to `advance_components'         which returns true.  It writes the decompressed image lines to the         file writing objects supplied during construction (unless the         constructor's `files' argument was NULL) and prepares the object to         receive another call to its `advance_components' member function. */    bool advance_tile();      /* Moves on to the next vertical tile at the same horizontal tile         position, returning false if all tiles have been processed.  Note         that the function automatically invokes the existing tile's         `kdu_tile::close' member function. */    int get_buffer_memory()      { /* Returns the maximum number of buffer memory bytes used by the           current object for sample data processing.  This includes all memory           used by the DWT implementation and for intermediate buffering of           subband samples between the DWT and the block coding system.  The           maximum is taken over all tiles which this object has been used           to process. */        int bytes = 0;        for (int c=0; c < num_components; c++)          bytes += components[c].allocator.get_size();        return bytes;      }  private: // Data    struct kde_component_flow_control {        bool reversible;        bool is_signed; // True if original data had a signed representation        int bit_depth; // Bit-depth of original data.        bool mapped_by_channel; // True if needed by a channel        int palette_bits; // Num bits in palette index.  0 if no palette used.        kdu_tile_comp tc;        kdu_resolution res;        int width;        int vert_subsampling;        int ratio_counter; /* Initialized to 0, decremented by `count_delta';                              when < 0, a new line must be processed, after                              which it is incremented by `vert_subsampling'. */        int remaining_lines;        bool allow_shorts; // True unless 16-bit representations are disallowed        kdu_line_buf line;        kdu_pull_ifc decompressor; // Non-existent for unused components.        kdu_sample_allocator allocator; // Used only if the component is used.      };    struct kde_channel {        kde_component_flow_control *source_component;        kdu_sample16 *lut; // NULL unless a palette mapping is used.        kdu_line_buf line; // This will only ever be 16-bit fixed point samples        kdu_sample_allocator *allocator; // Points to the one owned by source        int width;        kdu_image_out writer;      };      /* Notes:            When a palette is used, the `lut' array is non-NULL and points         to an array with 2^{palette_bits} entries, where `palette_bits' is         found in the `source_component' object referenced from this channel.         The actual number of palette entries need not be a power of 2, in         which case some number of final `lut' entries will all hold the same         value.  When palette mapping is involved, the `source_component'         must use either a 16- or 32-bit reversible representation or a         16-bit fixed point representation.  Floating point representations         are not selected.  The palette output is always 16-bit fixed point         data.  This simplifies the palette mapping process somewhat. */    kdu_codestream codestream;    kdu_dims valid_tile_indices;    kdu_coords tile_idx;    int x_tnum; // Starts from 0 for the first valid tile.    kdu_tile tile;    int num_components, num_channels;    kde_component_flow_control *components;    kde_channel *channels;    int count_delta; // Holds the minimum of the `vert_subsampling' fields.    bool use_ycc;  };#endif // EXPAND_LOCAL_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人一区二区三区在线观看| 国产亚洲精品免费| 精品粉嫩超白一线天av| 国产精品久久看| 蜜桃av一区二区三区| 成人不卡免费av| 欧美成人猛片aaaaaaa| 一区二区久久久久| 不卡一卡二卡三乱码免费网站| 欧美日韩一区三区四区| 最新热久久免费视频| 国内不卡的二区三区中文字幕| 色香蕉成人二区免费| 欧美国产成人在线| 国产综合色产在线精品| 欧美一区二区三区四区视频| 亚洲一区二区在线免费看| 成人午夜在线免费| 久久久久九九视频| 九一九一国产精品| 欧美一区二区福利在线| 亚洲综合成人在线| 日本久久电影网| 亚洲精品视频一区| 91女人视频在线观看| 18成人在线观看| 色综合婷婷久久| 亚洲欧美一区二区不卡| www.亚洲国产| 国产精品欧美一级免费| 成人妖精视频yjsp地址| 中文av一区二区| 97精品久久久久中文字幕| 中文字幕日韩av资源站| 91一区二区三区在线播放| 中文字幕亚洲一区二区va在线| 成人爱爱电影网址| 亚洲柠檬福利资源导航| 色香色香欲天天天影视综合网| 亚洲乱码国产乱码精品精小说| 日本丰满少妇一区二区三区| 亚洲一区二区三区中文字幕在线| 91成人在线免费观看| 亚洲大片精品永久免费| 91麻豆精品国产91| 九九九精品视频| 国产精品网曝门| 一本在线高清不卡dvd| 亚洲国产另类精品专区| 日韩一级免费观看| 国产精品一区二区男女羞羞无遮挡| 久久精品一区二区三区不卡| 成人免费毛片片v| 一区二区三区在线视频观看58| 欧美精品色一区二区三区| 久久成人av少妇免费| 中文幕一区二区三区久久蜜桃| 欧美中文字幕一区二区三区亚洲| 视频在线在亚洲| 国产欧美一区二区三区在线看蜜臀| 99久久免费精品高清特色大片| 亚洲福利视频一区二区| 精品久久一区二区| 99精品视频一区二区| 日韩va亚洲va欧美va久久| 日本一区免费视频| 欧美日韩国产综合视频在线观看| 久久精品国产色蜜蜜麻豆| 成人欧美一区二区三区| 91精品国产一区二区| 成人va在线观看| 蜜桃一区二区三区在线| 中文字幕一区二区三区乱码在线 | 国产精品人成在线观看免费| 色婷婷激情综合| 精品一区中文字幕| 亚洲最大色网站| 国产日韩精品一区| 欧美福利电影网| 成人免费视频国产在线观看| 亚洲午夜精品在线| 国产视频在线观看一区二区三区 | 国产91精品精华液一区二区三区| 一区二区三区四区亚洲| 国产欧美综合色| 91精品免费在线观看| 99精品视频在线观看免费| 精品一区二区在线播放| 亚洲第一电影网| 亚洲三级在线看| 国产亚洲女人久久久久毛片| 91麻豆精品国产91久久久资源速度| 91视视频在线观看入口直接观看www| 久久99国产精品久久| 日韩黄色在线观看| 亚洲精品久久嫩草网站秘色| 国产精品入口麻豆九色| 久久久久国产免费免费| 日韩一区二区三区免费观看| 欧美在线视频你懂得| 色综合久久中文综合久久97| 成人黄色小视频在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 国产成人综合在线观看| 日本不卡一二三| 午夜精品一区二区三区三上悠亚| 国产精品福利电影一区二区三区四区| 精品国产91亚洲一区二区三区婷婷| 欧美日韩国产中文| 欧美日韩美少妇| 欧美日韩免费高清一区色橹橹| 欧美自拍丝袜亚洲| 91成人免费网站| 欧洲国产伦久久久久久久| 99精品久久免费看蜜臀剧情介绍| 成人一区二区三区| 北条麻妃一区二区三区| 99久久国产综合色|国产精品| 成人动漫在线一区| 色域天天综合网| 欧美日韩久久一区| 日韩午夜精品视频| 精品久久久久久无| 国产欧美一区二区在线| 亚洲人成网站影音先锋播放| 亚洲欧美在线另类| 亚洲摸摸操操av| 午夜av电影一区| 另类小说色综合网站| 国产成人免费视频一区| 99re热视频这里只精品| 欧美亚洲国产bt| 91精品国产一区二区| 精品国产免费人成电影在线观看四季 | 国产·精品毛片| www.亚洲国产| 欧美日韩色一区| 精品国产一区二区三区不卡| 亚洲国产精品成人久久综合一区| 国产精品美女久久福利网站 | 色综合天天天天做夜夜夜夜做| 日本高清成人免费播放| 日韩一区二区电影| 国产欧美精品一区aⅴ影院| 亚洲日本电影在线| 免费看日韩a级影片| 成人黄色av网站在线| 欧美日韩视频在线观看一区二区三区 | 一区二区三区在线观看欧美| 天天爽夜夜爽夜夜爽精品视频 | 亚洲成在线观看| 九九视频精品免费| 色综合久久久久综合体| 日韩美女视频在线| 亚洲精品日产精品乱码不卡| 免费在线观看一区二区三区| 成人看片黄a免费看在线| 欧美日韩黄色一区二区| 中文字幕不卡在线播放| 日韩精品欧美精品| 99re这里只有精品首页| 日韩欧美区一区二| 一区二区国产盗摄色噜噜| 国产一区二区导航在线播放| 欧美中文字幕一区二区三区| 国产三级精品视频| 日本成人在线视频网站| 99国产精品久久久久久久久久久 | 开心九九激情九九欧美日韩精美视频电影| 国产精品一区专区| 6080yy午夜一二三区久久| 亚洲欧洲www| 国产精品一区一区三区| 5566中文字幕一区二区电影| 日韩一区有码在线| 国产一区在线观看视频| 欧美精品自拍偷拍动漫精品| 亚洲欧洲色图综合| 国产在线精品免费| 日韩限制级电影在线观看| 亚洲激情一二三区| 99国产精品视频免费观看| 日本一区二区三区久久久久久久久不 | 麻豆国产一区二区| 欧美日韩不卡一区二区| 亚洲自拍偷拍综合| 91免费精品国自产拍在线不卡| 国产日韩精品一区二区三区在线| 免费人成网站在线观看欧美高清| 欧美日韩午夜精品| 亚洲一区成人在线| 色激情天天射综合网| 亚洲欧美一区二区视频| 成人av在线一区二区三区| 国产亲近乱来精品视频| 激情五月婷婷综合| 欧美精品一区二区三区视频| 久久精品久久精品| 2021国产精品久久精品| 久久99久久精品|