EnglishРусский  

   ..

   delzge.c

   enlzge.c

   lzge.c

   lzge.h

   match.c

   match.h

Реклама

Инсталлятор CreateInstall
Бесплатные и коммерческие инсталляторы

 1 /******************************************************************************
 2 *
 3 * Copyright (C) 2009, The Gentee Group. All rights reserved. 
 4 * This file is part of the Gentee open source project - http://www.gentee.com. 
 5 * 
 6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT"). 
 7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS 
 8 * ACCEPTANCE OF THE AGREEMENT.
 9 *
10 * Author: Alexey Krivonogov ( gentee )
11 *
12 ******************************************************************************/
13 
14 #ifndef _LZGE_
15 #define _LZGE_
16 
17    #include "..\Huffman\huffman.h"
18 //   #include "..\GEA\gea.h"
19    #include "match.h"
20 
21    #ifdef __cplusplus
22       extern "C" {
23    #endif // __cplusplus
24 
25 //--------------------------------------------------------------------------
26 // Размер элементов закодированных по Хаффману, после которых идет 
27 // сброс дерева
28 #define  HUF_BLOCK      10000      // Размер блока хаффмана по умолчанию.
29 // Алфавит главного дерева Хаффмана
30 #define  LZGE_ALPHABET  256
31 // Минимальная длина совпадения
32 #define  MATCH_LEN      2
33 // Минимальное смещение
34 #define  MIN_OFFSET     2
35 #define  ALL_LEN        19     // Всего разбиение на длины
36 #define  SLOT_LEN       18     // Разбиение для слотов
37 
38 typedef struct
39 {
40    // Определяемые общие
41    dword  hufblock;    // Размер блока для построения дерева Хафмана
42    // Определяемые для сжатия
43    dword  level;       // Скорость сжатия от 1 до 10
44    // Вычисляемые параметры
45    dword  numoff;      // Количество элементов смещений из rng
46    dword  maxbit;      // Количество bit на размер окна
47    dword  solidoff;    // Смещение solid данных
48    dword  mft[3];      // Последние базы смещений
49    dword  userfunc;    // Пользовательская функция
50    dword  pgeaparam;  // Указатель на geaparam 
51 } slzge, * pslzge;
52 
53 extern dword   rngbits[];
54 extern dword   rngmax[ 51 ];
55 extern dword   rngmin[ 51 ];
56 
57 extern dword   lenmax[ 20 ];
58 extern dword   lenmin[ 20 ];
59 extern dword   lenbits[];
60 
61 
62 //--------------------------------------------------------------------------
63 // Common LZGE
64 dword  STACKAPI lzge_bits( dword val );
65 
66 dword  STDCALL lzge_encode( pbyte in, dword size, pbyte out, pslzge lzge );
67 dword  STDCALL lzge_decode( pbyte in, pbyte out, dword size, pslzge lzge );
68 void   STDCALL lzge_ranges( pslzge lzge, dword maxoff );
69 
70 //--------------------------------------------------------------------------
71 
72    #ifdef __cplusplus
73       }
74    #endif // __cplusplus
75 
76 #endif // _LZGE_
77 
78 
Редактировать