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

кодирование RLE - C++

Восстановить пароль Регистрация
 
lerenia
 Аватар для lerenia
3 / 3 / 0
Регистрация: 16.10.2012
Сообщений: 192
23.11.2013, 23:00     кодирование RLE #1
я составила для себя алгоритм

допустим в файле
|65|65|66|
считали 65
считали следущее т.е. опять 65
считали следущее
т.е. 66
видим что не повторилось
значит 65 было два раза
теперь составялем для него счетчик
берем 00000010 т.е. цифру 2
и прибавляем к 127
получилось 10000010
теперь пишем его
а за ним 65
теперь возвращаемс к источнику там видим 67
читаем следущее
а читать нечего
значитт 67 один раз
67 это 01000011
тогда должно выйти закодированное 10000010 | 01000010 | 01000011
ну 67 всего 1
значит не будем счетчик сосавлять
признаком того что счетчика нету будет 0

при попытке реализовать получилось следующее
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void encode( unsigned char a[] )
{
    int b[n], i,k, j=0, shetchik;
    for (i=0; i<n; i++)
    {
    if (a[i] = a[i+1])
    {
        j++;
        shetchik=j+127;
        for (k=0, k<n, k++)
        {
        b[i]=shetchik;
        b[i+1]=a[i];
        }       
    }
    }
}
вот я не понимаю как бы перезаписывать потом в дргой массив в порядке: счетчик|символ
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2013, 23:00     кодирование RLE
Посмотрите здесь:

RLE компресія на с++ C++
Метод RLE C++
Реализация алгоритма RLE C++
C++ алгоритм RLE
C++ ошибки для RLE
C++ Кодирование длин серий RLE
C++ Компрессия и декомпрессия RLE
C++ Компрессия RLE

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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