⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ebcot_common.h

📁 关于视频压缩的jpeg2000压缩算法,C编写
💻 H
字号:
/*****************************************************************************//* Copyright 1998, Hewlett-Packard Company                                   *//* All rights reserved                                                       *//* File: "ebcot_common.h"                                                    *//* Description: Common header file for EBCOT encoder and decoder             *//* Author: David Taubman                                                     *//* Affiliation: Hewlett-Packard and                                          *//*              The University of New South Wales, Australia                 *//* Version: VM5.0                                                            *//* Last Revised: 1 August, 1999                                              *//*****************************************************************************//*****************************************************************************//* Modified to combine entropy coders                                        *//* Copyright 1999 Science Applications International Corporation (SAIC).     *//* Copyright 1999 University of Arizona, Arizona Board of Regents.           *//* All Rights Reservedi for modified parts.                                  *//*****************************************************************************/#ifndef EBCOT_COMMON_H#define EBCOT_COMMON_H#include <limits.h>#include <dst_arith_coder_common.h>#include "ebcot_constants.h"#define EBCOT_MEM_KEY "CODING OBJECT MEMORY (we can eliminate most of this)"/* ========================================================================= *//* ------------------------- Read-Only Lookup Tables ----------------------- *//* ========================================================================= */extern std_byte ebcot_horz_zc_lut[ZC_MASK+1];extern std_byte ebcot_vert_zc_lut[ZC_MASK+1];extern std_byte ebcot_diag_zc_lut[ZC_MASK+1];extern ifc_int ebcot_sc_lut[16];extern std_short ebcot_initial_mse_lut[(1<<MSE_LUT_BITS)];extern std_short ebcot_refinement_mse_lut[(1<<MSE_LUT_BITS)];extern std_short ebcot_lossless_initial_mse_lut[(1<<MSE_LUT_BITS)];extern std_short ebcot_lossless_refinement_mse_lut[(1<<MSE_LUT_BITS)];extern dst_context_state initial_mq_contexts[EBCOT_TOTAL_CONTEXTS];/* ========================================================================= *//* ------------ Counting Configurations (for development only) ------------- *//* ========================================================================= */#ifdef EBCOT_COUNT_SYMBOLSextern int ebcot_total_symbol_count;#define _addto_symbol_count(_incr_) ebcot_total_symbol_count += _incr_;#else#define _addto_symbol_count(_incr_)#endif /* EBCOT_COUNT_SYMBOLS */#ifdef REPORT_LENGTH_SIGNALLING_COSTextern int ebcot_total_length_signalling_bits;extern int ebcot_total_length_signalled_passes;#endif /* REPORT_LENGTH_SIGNALLING_COST *//* ========================================================================= *//* ---------------------------- Internal Objects --------------------------- *//* ========================================================================= */typedef struct sample_buffer_heap_obj *sample_buffer_heap_ref;typedef ifc_int *(*sample_buffer_heap__get_buffer__func)  (sample_buffer_heap_ref self);typedef void (*sample_buffer_heap__return_buffer__func)  (sample_buffer_heap_ref self, ifc_int *buffer);typedef void (*sample_buffer_heap__terminate__func)  (sample_buffer_heap_ref self);/*****************************************************************************//*                           sample_buffer_heap_obj                          *//*****************************************************************************/typedef  struct sample_buffer_heap_obj {    sample_buffer_heap__get_buffer__func get_buffer;    sample_buffer_heap__return_buffer__func return_buffer;    sample_buffer_heap__terminate__func terminate;    int max_rows, row_gap;    int max_buffers, num_buffers, free_buffers;    ifc_int **buffers;  } sample_buffer_heap_obj;  /* This structure represents an object in the same style as those defined     in the public interface header, "line_block_ifc.h", which is responsible     for managing allocation and recycling of sample buffers to ensure an     efficient implementation of the `push_block' and `pull_block' interface     functions.         The `buffers' array has `max_buffers' entries, of which the first     `free_buffers' entries contain valid pointers to sample buffers which     are not currently in use.  The `num_buffers' field holds the total     number of buffers which have been allocated. *//* ========================================================================= *//* --------------------------- External Functions -------------------------- *//* ========================================================================= */extern void  ebcot_initialize_global_luts(void);extern sample_buffer_heap_ref  ebcot_create_sample_buffer_heap(int max_rows, int row_gap);#endif /* EBCOT_COMMON_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -