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

C++

Войти
Регистрация
Восстановить пароль
 
proger2030
11 / 11 / 2
Регистрация: 15.11.2010
Сообщений: 256
#1

результат сжатия изображения2 - C++

17.12.2010, 21:18. Просмотров 369. Ответов 1
Метки нет (Все метки)

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

20, 20, 25, 25, 30, 30, 30, 30
20, 20, 25, 25, 30, 30, 30, 30
20, 25, 30, 30, 30, 30, 30, 30
25, 25, 30, 30, 30, 30, 30, 30
25, 25, 30, 30, 30, 30, 30, 30
25, 25, 30, 30, 30, 30, 30, 30
30, 30, 30, 30, 30, 30, 30, 30
30, 30, 30, 30, 30, 30, 30, 30
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2010, 21:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос результат сжатия изображения2 (C++):

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

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

Метод сжатия Хаффмана - C++
Ктонибуть ответит по существу по теме ?

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

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

Функции сжатия и разжатия строки - C++ Builder
Есть ли такие функции? Типа gzip

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
17.12.2010, 22:51 #2
Можно перекодировать.
В массиве имеются всего три значения. Три значения можно выразить всего в двух битах.
Примем
00 - 20
01 - 25
10 - 30
Максимальное количество повторений -- 22. Это число влезает в пять бит. Итого, для записи повторяющейся последовательности чисел потребуется семь бит. Первые пять бит обозначают количество повторяющихся значений, вторые два бита -- какое конкретно значение повторяется.
Например 00010 00 - два раза число двадцать.
Кодируем в биты. Для удобства чтения расставлены пробелы между количеством и значением.
00010 00 00010 01 00100 10
00010 00 00010 01 00100 10
00001 00 00001 01 00110 10
00010 00 00110 10
00010 00 00110 10
00010 00 10110 10

Результат - 105 бит влезет в 14 байт, что приблизительно 21.8% от исходного.

Добавлено через 1 минуту
При чем тут С++?

Добавлено через 18 минут
Можно лучше.
Поскольку известно, что в массиве числа идут в определенном порядке, можно заменить указанием количества определенных символов. Поскольку максимальное количество символов в строке - 8, каждое значение может быть закодировано в 4 бита.
0010 0010 0100 -- два 20, два 25 и четыре 30.

Получится:
0010 0010 0100
0010 0010 0100
0001 0001 0110
0000 0010 0110
0000 0010 0110
0000 0010 0110
0000 0000 1000
0000 0000 1000
Получили 96 бит = 12 байт = 18.75% от исходного.
От нулей тоже можно избавиться, еще сильнее уменьшив размер.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2010, 22:51
Привет! Вот еще темы с ответами:

Печать метафайла без его сжатия - C++ Builder
Есть метафайл, его размеры заданы по листу (не полям), а изображение в нём размещено с отступом, соответсвующим тому, какие я хочу иметь...

При попытке выполнения сжатия диска система пишет, что доступное для сжатия место — всего лишь 45 МБ - Windows 7
Приветствую. Пытаюсь отделить от диска D (не системный) 50гб памяти. На диске 450+гб памяти всего , из них 150гб свободно. При попытке...

Не закрывать результат поиска при нажатии на этот самый результат - jQuery
Добрый вечер, суть задачи такова: при нажатии на input становится видимым элемент #result, при нажатии в пределах элемента #box ничего не...

Определить средний результат и количество спортсменов, имеющих в 4-й попытке результат выше среднего - C#
В соревнованиях по прыжкам в длину участвовали N-спортсменов. Каждый спортсмен мог сделать М-попыток. Результаты (длины прыжков) ...


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

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

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