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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
#1

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

10.07.2012, 12:42. Просмотров 2576. Ответов 6
Метки нет (Все метки)

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

Алгоритм сжатия LZ - C++
Если у кого есть, поделитесь кодом, пожалуйста:-/

Алгоритм сжатия аудио ! - C++
Нужна реализация алгоритма Райса для сжатия аудио файлов на С++ (наличие коментов приветствуется). Надо до конца недели разобраться в...

Алгоритм сжатия PPM-D - C++
Может кто рассказать о алгоритме сжатия PPM-D и как его реализовать или покидайте ссылки, литературу какую то (Гугл не предлагать, искал,...

Фрактальный алгоритм сжатия картинок - C++
интересует реализация фрактального алгоритма на си или си ++.

Алгоритм сжатия методом Шеннона-Фано - C++
Народ, нужна помощь в поиске кода реализующего алгоритм кодирования и декодирования сообщения методом Шеннона-Фано на Си. Заранее...

Алгоритм сжатия RLE. От этого зависит зачет по предмету) - C++
Напишите программу, которая: 1. будет считывать с клавиатуры раздельно (через Enter) вводимую последовательность цифр до тех пор,...

6
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
10.07.2012, 13:03 #2
RLE просто и эффективно. Если данные позволяют.
1
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
10.07.2012, 15:06  [ТС] #3
Цитата Сообщение от Deviaphan Посмотреть сообщение
RLE просто и эффективно. Если данные позволяют.
он подайдет для сжатия графики в виде последовательности 3-хбайтовых элементов (пикселей)
0
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
10.07.2012, 15:26 #4
Подойдёт, если это какие-то рисунки или компьютерная графика, где есть много областей, залитых строго одним и тем же цветом. Если там есть шум и переходы цвета, как в реальных фото и более сложной графике - не только не подойдёт, но вместо сжатия выйдет некислое такое раздутие.
1
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
10.07.2012, 15:33 #5
RLE самый простой в понимании и реализации.
Zip и подобные алгоритмы без потерь информации, основаны на коде Хаффмана. Элементарная их реализация сравнительно проста будет, но придётся непрерывно строить бинарное дерево. И, в зависимости от изображения, степень сжатия тоже нулевая может получится.
gif,jpg и подобные алгоритмы с потерей информации слишком сложные, для самостоятельной реализации, пока ты экспертом в области цветокодирования не станешь.

Рекомендую всё же на RLE остановиться с возможным кодированием результата по Хаффману. Это уже тянет на курсовую работу.)
1
Кот Ангенс
317 / 267 / 38
Регистрация: 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
}
1
Миниатюры
Алгоритм сжатия данных  
programina
1914 / 599 / 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
}
Ну с этим надо в раздел юмор
0
10.07.2012, 16:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2012, 16:35
Привет! Вот еще темы с ответами:

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

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

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки ) - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab () { int s1 = 0; int s2 =...

Алгоритм удаления записи из базы данных - C++
У меня есть алгоритм записи в файл: void Add(Abbase&amp; d, int&amp; ch) { system (&quot;cls&quot;); ofstream fout(&quot;base.txt&quot;,ios::app); cout...


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

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

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