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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
ZigaZaga
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 20
#1

Арифметическое кодирование - C++

05.03.2010, 14:27. Просмотров 2297. Ответов 1
Метки нет (Все метки)

Добрый день. задали мне лабу: реализовать арифметическое кодирование.
но мне не всё понятно в реализации...
Надо ли разбивать на блоки и каждый отдельный блок кодировать своим float (double?). , или же кодируеться весь файл, чем-то одним и большим, что потом можно интерпретировать как дробное число?

примеры не нужны, достаточно совета.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2010, 14:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Арифметическое кодирование (C++):

Арифметическое кодирование - C++
Мне задали задание по арифм. кодировании. Я что-то не очень знаю что это такое и зчем его едят.... Прошу вас о помощи... Конкретнее было...

Арифметическое кодирование на С++ - C++
Здравствуйте. Такая проблема: нужно реализовать алгоритм арифметического кодирования и декодирования. Кодирование у меня получилось. Но...

Кодирование - C++
В какой тип данных можно записывать по одному биту 0 или 1, чтобы потом можно было считать целиком последовательность. Например, 010 или 1.

Кодирование, C++ - C++
Закодировать каждую букву произвольного символьного массива равномерным кодом.

Равномерное кодирование - C++
Задача такова: Программа должна запускаться с командной строки с темя параметрами: имя входного файла, имя выходного файла и режим работы...

Равномерное кодирование - C++
Скажу коротко, есть задание : программа должна сжимать файлы текстовые и бинарные с помощью равномерного кодирования. И если с исходным...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nick Alte
Эксперт С++
1636 / 1008 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
05.03.2010, 21:21 #2
Арифметическое кодирование лучше делать целочисленным. Разбиение на блоки зависит исключительно от природы файла - это кодирование вплотную приближается к шенноновской мере информации для независимых символов. Если у тебя в разных блоках получаются сильно различающиеся таблицы частот - велкам, кодируй блоками. Если содержимое файла равномерное, смысла в блоках нет.
Принцип такой: ты ведёшь границы, между которыми находится искомое число. Допустим, unsigned int. Нижняя изначально заполняется нулевыми битами, верхняя - единичными. При поступлении очередного символа ты изменяешь границы в зависимости от его частотного интервала (думаю, принцип ты понимаешь, если нет - спроси отдельно). Все совпавшие старшие биты границ отправляем в итоговый файл, потому что они уже не изменятся в ходе дальнейших вычислений. Ты выкидываешь при помощи сдвига эти биты из границ, а вновь образовавшиеся младшие биты заполняешь нулями для нижней и единицами для верхней границы. Таким образом, оказывается достаточно всего лишь пары unsigned int для того, чтобы пропустить сквозь них файл любой длины.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2010, 21:21
Привет! Вот еще темы с ответами:

Кодирование файла - C++
Задача написать часть полиморфного вируса для курсовой. Т.е нужно подать нашей программе на вход файл она должна зашифровать его по...

кодирование текста - C++
задачка такая: Написать программу,"шифрующую(расшифровывающею)" текст из файла указанного пользователем,путем добавления (вычитания) к...

кодирование хаффмана - C++
здравствуйте! я пишу программу сжатия jpeg. написала код для кодирования хаффмана по дереву. и столкнулась с такой проблемой записываю в...

Кодирование и декодирование - C++
Всем привет. Народ,у меня такая проблема, есть код который кодирует и декодирует текст. Но вот проблемка, если закомментировать все функции...


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

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

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