patch_dct.h File Reference

Function declarations for DCT and IDCT routines. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  LLGroupHeader
class  LLPatchHeader

Defines

#define _PATCH_SIZE_16_AND_32_ONLY

Functions

void init_patch_compressor (S32 patch_size, S32 patch_stride, S32 layer_type)
void prescan_patch (F32 *patch, LLPatchHeader *php, F32 &zmax, F32 &zmin)
void compress_patch (F32 *patch, S32 *cpatch, LLPatchHeader *php, S32 prequant)
void get_patch_group_header (LLGroupHeader *gopp)
void set_group_of_patch_header (LLGroupHeader *gopp)
void init_patch_decompressor (S32 size)
void decompress_patch (F32 *patch, S32 *cpatch, LLPatchHeader *ph)
void decompress_patchv (LLVector3 *v, S32 *cpatch, LLPatchHeader *ph)

Variables

const U8 ZERO_CODE = 0x0
const U8 ZERO_EOB = 0x2
const U8 POSITIVE_VALUE = 0x6
const U8 NEGATIVE_VALUE = 0x7
const S8 NORMAL_PATCH_SIZE = 16
const S8 LARGE_PATCH_SIZE = 32
const U8 END_OF_PATCHES = 97


Detailed Description

Function declarations for DCT and IDCT routines.

LicenseInfo
firstyear=2000&license=viewergpl

Copyright (c) 2000-2007, Linden Research, Inc.

Second Life Viewer Source Code The source code in this file ("Source Code") is provided by Linden Lab to you under the terms of the GNU General Public License, version 2.0 ("GPL"), unless you have obtained a separate licensing agreement ("Other License"), formally executed by you and Linden Lab. Terms of the GPL can be found in doc/GPL-license.txt in this distribution, or online at http://secondlife.com/developers/opensource/gplv2

There are special exceptions to the terms and conditions of the GPL as it is applied to this Source Code. View the full text of the exception in the file doc/FLOSS-exception.txt in this software distribution, or online at http://secondlife.com/developers/opensource/flossexception

By copying, modifying or distributing this software, you acknowledge that you have read and understood your obligations described above, and agree to abide by those obligations.

ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, COMPLETENESS OR PERFORMANCE. $/LicenseInfo$

Definition in file patch_dct.h.


Define Documentation

#define _PATCH_SIZE_16_AND_32_ONLY

Definition at line 48 of file patch_dct.h.


Function Documentation

void compress_patch ( F32 patch,
S32 cpatch,
LLPatchHeader php,
S32  prequant 
)

Definition at line 729 of file patch_dct.cpp.

References LLPatchHeader::dc_offset, dct_patch(), dct_patch_large(), gPatchCompressGlobalData, i, j, LARGE_PATCH_SIZE, s_patch_compress_global_data::patch_size, s_patch_compress_global_data::patch_stride, LLPatchHeader::quant_wbits, range, LLPatchHeader::range, S32, size, and stride.

void decompress_patch ( F32 patch,
S32 cpatch,
LLPatchHeader ph 
)

Definition at line 596 of file patch_idct.cpp.

References LLPatchHeader::dc_offset, gDeCopyMatrix, gGOPP, gPatchDequantizeTable, i, idct_patch(), idct_patch_large(), j, LARGE_PATCH_SIZE, LLGroupHeader::patch_size, LLPatchHeader::quant_wbits, range, LLPatchHeader::range, S32, size, stride, and LLGroupHeader::stride.

Referenced by LLWind::decompress(), LLCloudLayer::decompress(), and LLSurface::decompressDCTPatch().

void decompress_patchv ( LLVector3 v,
S32 cpatch,
LLPatchHeader ph 
)

Definition at line 644 of file patch_idct.cpp.

References LLPatchHeader::dc_offset, gDeCopyMatrix, gGOPP, gPatchDequantizeTable, i, idct_patch(), idct_patch_large(), j, LARGE_PATCH_SIZE, LLGroupHeader::patch_size, LLPatchHeader::quant_wbits, range, LLPatchHeader::range, S32, size, stride, LLGroupHeader::stride, v, and VZ.

void get_patch_group_header ( LLGroupHeader gopp  ) 

Definition at line 768 of file patch_dct.cpp.

References gPatchCompressGlobalData, s_patch_compress_global_data::layer_type, LLGroupHeader::layer_type, s_patch_compress_global_data::patch_size, LLGroupHeader::patch_size, s_patch_compress_global_data::patch_stride, and LLGroupHeader::stride.

void init_patch_compressor ( S32  patch_size,
S32  patch_stride,
S32  layer_type 
)

Definition at line 155 of file patch_dct.cpp.

References build_copy_matrix(), build_patch_quantize_table(), s_patch_compress_global_data::charptr, gCurrentSize, gPatchCompressGlobalData, s_patch_compress_global_data::layer_type, s_patch_compress_global_data::patch_size, s_patch_compress_global_data::patch_stride, and setup_patch_cosines().

void init_patch_decompressor ( S32  size  ) 

Definition at line 143 of file patch_idct.cpp.

References build_decopy_matrix(), build_patch_dequantize_table(), gCurrentDeSize, and setup_patch_icosines().

Referenced by LLWind::decompress(), LLCloudLayer::decompress(), and LLSurface::decompressDCTPatch().

void prescan_patch ( F32 patch,
LLPatchHeader php,
F32 zmax,
F32 zmin 
)

Definition at line 174 of file patch_dct.cpp.

References LLPatchHeader::dc_offset, f, gPatchCompressGlobalData, i, j, s_patch_compress_global_data::patch_size, s_patch_compress_global_data::patch_stride, LLPatchHeader::range, S32, size, and stride.

void set_group_of_patch_header ( LLGroupHeader gopp  ) 

Definition at line 41 of file patch_idct.cpp.

References gGOPP.

Referenced by LLWind::decompress(), LLCloudLayer::decompress(), and LLSurface::decompressDCTPatch().


Variable Documentation

const U8 END_OF_PATCHES = 97

Definition at line 46 of file patch_dct.h.

Referenced by code_end_of_data(), decode_patch_header(), and LLSurface::decompressDCTPatch().

const S8 LARGE_PATCH_SIZE = 32

Definition at line 44 of file patch_dct.h.

Referenced by compress_patch(), dct_column_large(), dct_line_large(), dct_patch_large(), decompress_patch(), decompress_patchv(), LLSurface::decompressDCTPatch(), idct_column_large(), idct_column_large_slow(), idct_line_large(), idct_line_large_slow(), idct_patch(), and idct_patch_large().

const U8 NEGATIVE_VALUE = 0x7

Definition at line 41 of file patch_dct.h.

Referenced by code_patch().

const S8 NORMAL_PATCH_SIZE = 16

Definition at line 43 of file patch_dct.h.

Referenced by dct_column(), dct_line(), dct_patch(), idct_column(), idct_column_large(), and idct_line().

const U8 POSITIVE_VALUE = 0x6

Definition at line 40 of file patch_dct.h.

Referenced by code_patch().

const U8 ZERO_CODE = 0x0

Definition at line 38 of file patch_dct.h.

Referenced by code_patch().

const U8 ZERO_EOB = 0x2

Definition at line 39 of file patch_dct.h.

Referenced by code_patch().


Generated on Thu Jul 1 06:10:56 2010 for Second Life Viewer by  doxygen 1.4.7