С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.69
*В*Е*Л*И*К*А*Н*
Заблокирован
#1

Метод сжатия Хаффмана - C++

22.11.2010, 11:23. Просмотров 3895. Ответов 8
Метки нет (Все метки)

Ктонибуть ответит по существу по теме ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2010, 11:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод сжатия Хаффмана (C++):

Метод сжатия Хаффмана - C++
Есть Метод сжатия Хаффмана или нет и как его использовать ? покажите если можите ? ну те кто уже знает !

результат сжатия изображения2 - C++
Черно-белое квадратное изображение размером 8 x 8 задано матрицей цветов отдельных пикселов. Придумать более компактный способ хранения для...

результат сжатия изображения. - C++
Черно-белое квадратное изображение размером 10 x 10 задано матрицей цветов отдельных пикселов. Придумать более компактный способ хранения...

Кодирование Хаффмана - C++
Помогите написать программу для кодирования и декодирования строк вида "a_!slf" с помощью метода Хаффмана через частотный код. Может у...

Код Хаффмана - C++
Люди подскажите, что это за зверь? и как его реализовать на с?

Оптимизация алгоритма Хаффмана - C++
Сделал архиватор, но работает он запредельно долго ~ 30 мин на папку размером 50Mb(и это только упаковка). нужна помощь "Гуру" что бы...

8
NiTan
Покинул форум
3153 / 1336 / 50
Регистрация: 29.01.2010
Сообщений: 2,887
22.11.2010, 12:50 #2
*В*Е*Л*И*К*А*Н*, Метод сжатия Хаффмана - здесь ответа не получили?
0
silent_1991
22.11.2010, 12:52
  #3

Не по теме:

NiTan, не, вы что, там же символов из языка не видно...

0
*В*Е*Л*И*К*А*Н*
Заблокирован
23.11.2010, 14:18  [ТС] #4
нет там очень научно написали а простыми словами ?
0
vital792
1993 / 1265 / 56
Регистрация: 05.06.2010
Сообщений: 2,213
23.11.2010, 14:31 #5
*В*Е*Л*И*К*А*Н*, есть хорошая книжка "Сэломон - Сжатие данных, изображений и звука." Там очень ясно и подробно все описано. Где используется? Там где нужно сжать данные Например используется как вторичное сжатие в формате jpeg. Если надо могу скинуть алгоритм декодирования, писал когда то еще во время учебы
1
NiTan
Покинул форум
3153 / 1336 / 50
Регистрация: 29.01.2010
Сообщений: 2,887
23.11.2010, 14:54 #6
slice, еще одна такая шутка и накажу.
0
*В*Е*Л*И*К*А*Н*
Заблокирован
23.11.2010, 18:46  [ТС] #7
Если можно скинте пример как это будет !
скажим кусок кода длинный и другой кусок уже кароткий с преминением ?
0
NiTan
Покинул форум
3153 / 1336 / 50
Регистрация: 29.01.2010
Сообщений: 2,887
23.11.2010, 18:59 #8
*В*Е*Л*И*К*А*Н*, Исходники сжатия LZW,алгоритм Хаффмана
0
*В*Е*Л*И*К*А*Н*
Заблокирован
23.11.2010, 22:36  [ТС] #9
это чтоли :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#ifdef DEBUG
#define DEBUGGER(Statements) Statements
#define WHERE(Statements) fprintf(stderr,"\n%s|%d\n",__FILE__,__LINE__);\
            Statements
#else
#define DEBUGGER(Statements) /* empty */
#define WHERE(Statements) /* empty */
#endif
 
или это :/* LZWCOM - FILE COMPRESSOR UTILITY                                     */
#include "stdio.h"
#include "debug.h"
#define FALSE    0
#define TRUE     !FALSE
#define TABSIZE  4096
#define NO_PRED  0xFFFF
#define EMPTY   0xFFFF 
#define NOT_FND 0xFFFF 
#define UEOF ((unsigned)EOF)
struct entry {
  char used;
  unsigned int next;      /* hi bit is 'used' flag                        */
  unsigned int predecessor;               /* 12 bit code                  */
  unsigned char follower;
} string_tab[TABSIZE];
 
/*   routines common to compress and decompress, contained in CommLZW.c */
unsigned hash();
unsigned unhash();
unsigned getcode();
putcode();
init_tab();
upd_tab();
 
FILE *op;
main(argc,argv)
int argc; char *argv[];
{
  register unsigned int c, code, localcode;
  int code_count = TABSIZE - 256;
  FILE *infd, *outfd;
  if (3 != argc) {
    fprintf(stderr,"Usage : lzwcom oldfilename squeezefilename\n");
    exit(0);
  }
  if ( -1 == (infd = fopen( *++argv, "r")) ) {
    fprintf(stderr,"Cant open %s\n", *argv);
    exit(0);
  }
  if ( -1 == (outfd = fopen(*++argv,"w")) ) {
    fprintf(stderr,"Cant create %s\n",*argv);
 
    exit(0);
  }
  init_tab();                           /* initialize code table        */
  c = getc(infd);
  code = unhash(NO_PRED,c);             /* initial code for table       */
  DEBUGGER (\
    if (c >= ' ' || c <= '~' || c == '\n' || c == '\r')\
        putchar(c);\
    else\
        printf("[%2x]",c);\
  )
  while ( UEOF != (c = getc(infd)) ) 
  {
      DEBUGGER (\
        if (c >= ' ' || c <= '~' || c == '\n' || c == '\r')\
            putchar(c);\
        else\
            printf("[%2x]",c);\
      )
      if ( NOT_FND != (localcode = unhash(code,c)) ) 
      {
          code = localcode;
          continue;
      }
/* when the above clause comes false, you have found the last known code */
      putcode(outfd,code);      /* only update table if table isn't full */
      DEBUGGER(printf( "\n%x\n",code);)
      if ( code_count ) 
      {
        upd_tab(code,c);
        DEBUGGER(printf("\nadding %x %c = %x\n",code,c,unhash(code,c));)
      --code_count;
      }
/* start loop again with the char that didn't fit into last string      */
      code = unhash(NO_PRED,c);
  }
  putcode(outfd,code);                  /* once EOF reached, always     */
                                        /* one code left unsent         */
  DEBUGGER(fprintf(stderr,"\n%x\n",code);)
  flushout(outfd);                      /* make sure everything's written */
  exit(0);                              /* make sure everything gets closed */
}
?
0
23.11.2010, 22:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2010, 22:36
Привет! Вот еще темы с ответами:

Исходник алгоритма Хаффмана на C - C++
Пожалуйсто дайте исходник алгоритма Хаффмана на C.

Алгоритмы для сжатия изображений, видео и звука - C++
Здравствуйте,форумчане! Не могли бы вы посоветовать алгоритмы сжатия для изображений,звука,видео? И еще один вопрос,возможно, он...

Кто нибудь подскажет где можно найти исходник С/C++ алгоритм сжатия - C++
Народ помогите, у меня времени нет чтобы самому разрабатывать алгоритм сжатия очень нужен алгоритм ещё лучше если на Asm (MMX, SSE2-3,...

Алгоритм сжатия Хаффмана - C#
Может кто сталкивался с таким алгоритмом? Может у кого нибудь есть исходник, или подробный алгоритм? На разных сайтах смотрел, не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.