Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ результат сжатия изображения. https://www.cyberforum.ru/ cpp/ thread213539.html
Черно-белое квадратное изображение размером 10 x 10 задано матрицей цветов отдельных пикселов. Придумать более компактный способ хранения для данного изображения. Объяснить способ и показать...
Многочлен с комплексными коэффициентами C++
http://s48.***********/i119/1012/ff/3804d42fa8dd.jpg (задание) http://s016.***********/i336/1012/42/abf2fdb51df4.jpg (доп.материал) Вот порешала , но так и не пришла к результату, вот моя...
Написать жадный алгоритм формирования сдачи с 1 рубля минимальным количеством монет при покупки товара ценой X копеек C++
Раньше были монеты достоинством 1, 2, 3, 5, 10, 15, 20 и 50 копеек. Написать жадный алгоритм формирования сдачи с 1 рубля минимальным количеством монет при покупки товара ценой X копеек. X < 100.
C++ Метод Средних прямоугольников Помогите пожалуйста!!! На си ваще нечего ненаю, друг попросил помоч, может сдесь кто нить сталкивался с таким! Задание: Разработать программу для вычисления методом средних прямоугольников.... https://www.cyberforum.ru/ cpp/ thread213236.html
C++ THREAD.H (многопоточность) https://www.cyberforum.ru/ cpp/ thread213165.html
нужно срочно разобраться в этой теме, но компилятор не находит THREAD.H #include <thread> #include <iostream> void my_thread_func() { std::cout<< "hello" << std::endl; } ...
C++ Двунаправленный ассоциативный контейнер для хранения структур
12. Двунаправленный ассоциативный контейнер. Цель: разработать программу, реализующую функционал телефонной книги. Задачи: 12.1 Разработать структуру данных для хранения информации и...
C++ Работа с файлом
В файле даны буквы. Вывести их в другой файл так,чтобы в 1-ой строке была одна буква,во 2-ой две буквы,в 3-ей три и тд.В последней строке оставшиеся буквы.Библиотека "fstream.h" Например: ...
C++ Оператор While срочно!!! Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также остаток от этого деления. https://www.cyberforum.ru/ cpp/ thread212583.html
C++ Beginning C++ Game Programming https://www.cyberforum.ru/ cpp/ thread212578.html
У меня несколько вопросов по поводу этой книги. 1. Хорошая ли книга 2. На коком уровне нужно быть чтобы имело смысл читать
C++ Обработка динамических матриц Помогите пожалуйста, нужно решить задачу: Найти в матрице первую строку, все элементы которой упорядочены по возрастанию. Изменить упорядоченность элементов этой строки на обратную. https://www.cyberforum.ru/ cpp/ thread212379.html
3053 / 1458 / 492
Регистрация: 29.11.2010
Сообщений: 2,888
17.12.2010, 22:51 0

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

17.12.2010, 22:51. Просмотров 558. Ответов 1
Метки (Все метки)

Ответ

Можно перекодировать.
В массиве имеются всего три значения. Три значения можно выразить всего в двух битах.
Примем
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% от исходного.
От нулей тоже можно избавиться, еще сильнее уменьшив размер.

Вернуться к обсуждению:
результат сжатия изображения2
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2010, 22:51
Готовые ответы и решения:

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

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

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

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

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