Форум программистов, компьютерный форум CyberForum.ru

Алгоритм сжатия данных - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.07.2012, 12:42     Алгоритм сжатия данных #1
подскажите алгоритм сжатия данных, чтобы был не очень сложный и в то же время эффективный
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2012, 12:42     Алгоритм сжатия данных
Посмотрите здесь:

Алгоритм сжатия методом Шеннона-Фано C++
C++ Алгоритм удаления записи из базы данных
фрактальный алгоритм сжатия картинок C++
C++ Алгоритм сжатия PPM-D
C++ Алгоритм сжатия аудио !
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
10.07.2012, 13:03     Алгоритм сжатия данных #2
RLE просто и эффективно. Если данные позволяют.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.07.2012, 15:06  [ТС]     Алгоритм сжатия данных #3
Цитата Сообщение от Deviaphan Посмотреть сообщение
RLE просто и эффективно. Если данные позволяют.
он подайдет для сжатия графики в виде последовательности 3-хбайтовых элементов (пикселей)
Nick Alte
Эксперт С++
1591 / 983 / 116
Регистрация: 27.09.2009
Сообщений: 1,898
Завершенные тесты: 1
10.07.2012, 15:26     Алгоритм сжатия данных #4
Подойдёт, если это какие-то рисунки или компьютерная графика, где есть много областей, залитых строго одним и тем же цветом. Если там есть шум и переходы цвета, как в реальных фото и более сложной графике - не только не подойдёт, но вместо сжатия выйдет некислое такое раздутие.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
10.07.2012, 15:33     Алгоритм сжатия данных #5
RLE самый простой в понимании и реализации.
Zip и подобные алгоритмы без потерь информации, основаны на коде Хаффмана. Элементарная их реализация сравнительно проста будет, но придётся непрерывно строить бинарное дерево. И, в зависимости от изображения, степень сжатия тоже нулевая может получится.
gif,jpg и подобные алгоритмы с потерей информации слишком сложные, для самостоятельной реализации, пока ты экспертом в области цветокодирования не станешь.

Рекомендую всё же на RLE остановиться с возможным кодированием результата по Хаффману. Это уже тянет на курсовую работу.)
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
10.07.2012, 15:35     Алгоритм сжатия данных #6
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
#include <stdio.h>
#define DEBUG
 
int main() {
#   ifdef DEBUG
#       define in stdin
#       define out stdout
#   else
        FILE* fin = fopen("input.txt", "r");
        FILE* fout = fopen("output.txt", "w");
#       define in fin
#       define out fout
#   endif
    char i = 0;
    short c;
    while ((c = getc(in)) != EOF)
        if (i++) {
            if (i == 3)
                i = 0;
        } else
            putc(c, out);
#   ifndef DEBUG
        fclose(in);
        fclose(out);
#   endif
}
Миниатюры
Алгоритм сжатия данных  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2012, 16:35     Алгоритм сжатия данных
Еще ссылки по теме:

Алгоритм сжатия LZ C++
Алгоритм сжатия RLE. От этого зависит зачет по предмету) C++
Требуется реализация простейшего алгоритма сжатия данных (кодирование повторов) C++

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

Или воспользуйтесь поиском по форуму:
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.07.2012, 16:35  [ТС]     Алгоритм сжатия данных #7
Цитата Сообщение от Кот Ангенс Посмотреть сообщение
C
#include <stdio.h>
#define DEBUG
 
int main() {
#   ifdef DEBUG
#       define in stdin
#       define out stdout
#   else
        FILE* fin = fopen("input.txt", "r");
        FILE* fout = fopen("output.txt", "w");
#       define in fin
#       define out fout
#   endif
    char i = 0;
    short c;
    while ((c = getc(in)) != EOF)
        if (i++) {
            if (i == 3)
                i = 0;
        } else
            putc(c, out);
#   ifndef DEBUG
        fclose(in);
        fclose(out);
#   endif
}
Ну с этим надо в раздел юмор
Yandex
Объявления
10.07.2012, 16:35     Алгоритм сжатия данных
Ответ Создать тему
Опции темы

Текущее время: 12:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru