Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038

Хранение данных в изображениях при сжатии с потерями

05.01.2016, 11:12. Показов 1890. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Есть задача требующая реализации алгоритма, позволяющего обеспечить гарантированную передачу данных через "носитель", которым являются файлы изображений, применяющие сжатие с потерями, в частности JPEG.
Требуется обеспечить наиболее плотное хранение данных (без потерь) на изображении при условии, что уровень сжатия изображения будет не выше некоторого уровня. Возможны ситуации, когда изображение пересжималось несколько раз.

Подскажите с алгоритмом, можно ссылками, никак не составлю правильный запрос для поиска в интернете.
Желательно, чтобы также присутствовали варианты попроще для реализации работающего прототипа, а потом уже разбираться с более продуктивными, но требующими больше времени на понимание и реализацию.

Есть, например, готовые решения c QR-кодами, но нужно что-то получше.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.01.2016, 11:12
Ответы с готовыми решениями:

Ошибка при сжатии базы данных
При сжатии базы данных появляется сообщение "Не удается найти поле Description'" В справке - Ошибка 3799, ссылка на несуществующий столбец....

Образ раздела занимает 102ГБ при данных на диске всего 24ГБ при стандартном сжатии
Народ, кто нибудь может объяснить почему образ раздела занимает 102ГБ при данных на диске всего 24ГБ при стандартном сжатии. Весь раздел...

Run-time error при сжатии базы данных
Добрый день! Подскажите, пожалуйста, как упредить ошибку 3045, возникающую при запуске команды на сжатие других закрытых баз данных...

24
4089 / 2694 / 590
Регистрация: 11.09.2009
Сообщений: 9,609
19.11.2016, 00:11
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от wingblack Посмотреть сообщение
анализ показывает...
Вот про анализ и расскажите. С алгоритмами и цифрами. Иначе всё это пустой трёп.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
19.11.2016, 13:40
Цитата Сообщение от wingblack Посмотреть сообщение
гарантированную передачу данных
Гарантированную значит есть дублирование или восстановление данных.
Вывод: данные нужно много раз дублировать- квадрат M*N пикселей.

Цитата Сообщение от wingblack Посмотреть сообщение
подготовить данные для противостояния ошибкам, и потом уметь их восстанавливать из картинки.
Если взять картинку то после множества пережатий:

1)Границы крупных одноцветных областей расплывутся.
Вывод: нужно брать квадрат N*M пикселей означающий 1 бит.
Значит чем больше размер квадрата в пикселях тем чаще можно его пережимать и цвет не поплывет.

2)Цвета на картинке и границе поплывут.
Вывод: нужно брать максимально контрастные цвета при минимальном их количестве.
Например черно-белый. Чем больше контраст цветов тем больше запас на количество пережатий.

Цитата Сообщение от wingblack Посмотреть сообщение
например, готовые решения c QR-кодами,
QR проходит пункт 1,2. Если картинку не распознавать камерой а брать как фаил с оговоренным кодом то можно убрать кучу служебной инфы: поисковый узор, выравнивающий, тип кодировки и т.д.
Тогда типа QR будет как:
Название: ScreenShot00923_1.jpg
Просмотров: 18

Размер: 30.5 Кб
Намного менее надежный формат если взять дальние цвета на палитре и использовать цвет для кодировки. Будет вроде:
Название: ScreenShot00923.jpg
Просмотров: 18

Размер: 22.5 Кб
Почитать по QR там есть какой-то метод восстановления но это забирает пиксели.

Значит проще крупных контрастных квадратов не будет. Пришли к QR =).
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
20.11.2016, 03:15  [ТС]
Цитата Сообщение от i8085 Посмотреть сообщение
Вот про анализ и расскажите. С алгоритмами и цифрами. Иначе всё это пустой трёп.
Простой алгоритм оценки сдвига значений цвета после перекодирования:
Code
1
2
3
4
- получаем значение цвета, берем ближайший к нему цвет в палитре, 
берем расстояние между ними, делим на половину 
максимума расстояний между цветами палитры, берем полученное число
- среди всех таких чисел ищем максимум
Если у нас достаточно большой объем информации и если такая оценка близка к единице, то можно предполагать что часть информации распозналось неправильно. Конечно, проверку по CRC или MD5 никто не отменял, но это тоже работает.

Цифры из тестирования разных настроек смогу предоставить позже, а то что получалось ранее при проверке разных вариантов я не записывал.
Пока скажу что если файл получается испорченный - то оценка обычно порядка 0.96, но после Youtube у меня оценка получалась порядка 0.1

Цитата Сообщение от Excalibur921 Посмотреть сообщение
... .... ...
Значит проще крупных контрастных квадратов не будет. Пришли к QR =).
Я немного читал как работает кодек, ну и проверил некоторые настройки на практике.
Да, квадраты достаточно простые в реализации, неплохо сжимаются кодеком и вносят достаточное количество излишней информации, собственно они "гармонируют" с тем как кодек работает.

Я вначале думал про не такую уж простую (если решать не перебором) задачу по поиску наиболее далеко друг от друга стоящих цветов в цветовом кубе, но потом подумал что можно поступить намного проще - каждую цветовую компоненту разбивать на части, каждая пара таких частей будет кодировать один бит.

QR... широко используемая реализация, если я не ошибаюсь, несколько раз дублирует информацию в разных квадратах.
А прямое кодирование битов ч/б квадратами в обозначенных условиях, как оказалось, вполне себе работает.
0
4089 / 2694 / 590
Регистрация: 11.09.2009
Сообщений: 9,609
20.11.2016, 03:50
Цитата Сообщение от wingblack Посмотреть сообщение
А прямое кодирование битов ч/б квадратами в обозначенных условиях, как оказалось, вполне себе работает.
Кто бы сомневался. QR-коды достаточно профессионально разработаны.

А вот остальное, как я и предполагал, - пустой трёп.
Ну не получается у вас пока троллить достаточно наукообразно.
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
21.11.2016, 16:02  [ТС]
Цитата Сообщение от i8085 Посмотреть сообщение
Кто бы сомневался. QR-коды достаточно профессионально разработаны.
Цитируемая фраза относилась к моей реализации.
Цитата Сообщение от i8085 Посмотреть сообщение
А вот остальное, как я и предполагал, - пустой трёп.
Ну не получается у вас пока троллить достаточно наукообразно.
Ну что мне поделать, предложи список чего ты хочешь от меня узнать, сформулируй в виде понятном даже для студента первого курса. Алгоритм оценки - дал, статистику - дам когда смогу, не рисовать же её из воздуха.

В данной ветке форума я впервые вижу чтобы кто-то даже заикался о троллинге. Доказывать что-то кому-то кто использует подобные критерии в большинстве случаев не имеет особого смысла.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.11.2016, 16:02

Сжатие звука с потерями и обратно (или иное сжатие с потерями)
Доброго всем времени суток. Столкнулся с такой проблемой, есть канал связи с маленькой скоростью на одном конце SDR приемник (дает...

Архивация данных с потерями аудио файлов
День добрый, прошу помочь. Ищу человека который бы смог написать программу. Тема архивация данных с потерями, на примере аудио файлов....

Выборка входящих данных с минимальными потерями
Друзья, пытаюсь реализовать выборку данных , сразу к делу: Входящие данные в настоящем времени, у нас нет ни чего кроме прошлого и...

Сохранение данных об изображениях в отдельный файл
Доброго времени суток! Пишу текстовый редактор. Необходимо чтобы при нажатии на кнопки, изображения менялись, а после перезапуска программы...

О пределе прочности при сжатии
Всем привет, у меня такой вопрос: дано - предел прочности чугуна при сжатии 800 мПа. Это означает что для начала необратимых изменений в...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru