| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Алгоритм кодирования изображения |
| Автор: Jamezzz 22.7.2011, 21:05 |
| Здравствуйте. Существует ли такой алгоритм кодирования изображения, при котором каждый бит данных будет влиять на всё изображение в целом, а не на отдельный пиксель? Другими словами, чем больше бит, тем более детализированным будет изображение. |
| Автор: maxim1000 22.7.2011, 21:15 |
| Не уверен, чтобы каждый бит добавлял каких-то деталей, но постепенная детализация возможна. Например, JPEG кодирует спектр изображения на разных частотах. Если степень сжатия большая - обрезает высокие частоты, если нужно сохранить побольше информации - оставляет. Так что можно сначала передавать низкие частоты, а потом повыше. Сначала будет размазанное, потом - всё больше деталей. |
| Автор: Jamezzz 22.7.2011, 21:22 |
| Да, кстати. Попробую применить этот алгоритм ко всему изображению, а не к блоку 8х8. Спасибо. |
| Автор: VictorTsaregorodtsev 22.7.2011, 21:47 |
| Jamezzz, см. в сторону IFS (iterative function system). Правда, там не только число кодирующих бит (вернее, число параметров системы уравнений) влияет, но и число итераций отрисовки=распаковки изображения. |
| Автор: Jamezzz 22.7.2011, 21:49 |
| VictorTsaregorodtsev, спасибо, и про это почитаю. |
| Автор: Jamezzz 22.7.2011, 22:08 |
| <удалено> |
| Автор: _Y_ 23.7.2011, 07:09 |
| Скорее в порядке юмора, конечно: Условию задачи соответствует обычное изменения разрешения:
|
| Автор: Jamezzz 23.7.2011, 08:11 |
| _Y_, с самого начала тоже об этом думал, но это не подходит, т.к. это кончится тем, что биты будут сначала влиять лишь на отдельные блоки изображения, а далее и на конкретные пиксели. Условию задачи соответствует только первый бит |
| Автор: Jamezzz 23.7.2011, 09:34 |
| x128, спасибо, почитаю в этом направлении тоже. |
| Автор: esperanto 23.7.2011, 12:53 | ||
Что значит ДСТ очень медлено? Что такое скорость трансформа фурье? |
| Автор: esperanto 23.7.2011, 13:14 |
| Почти любое пространство линейное с не ортогональными векторами или иное функцинальное пространство удовлетворит вашим требованиеям. (почти любое) - векторы базиса выбираются случайно. |
| Автор: VictorTsaregorodtsev 23.7.2011, 21:58 |
Дык, давно есть альтернативы (если это можно так назвать). Есть очень быстрый алгоритм сегментации изображения в малое число цветов (от 2 до 32). Можно будет сделать так - сначала режем исходную картинку на 2 цвета, кодируем двухцветный итог через RLE, потом режем "остаток" (между исходной и двухцветной картинкой) на 3 (или опять на 2) цвета, снова кодируем через RLE... Сколько надо сделать "итераций" сжатия - столько и делаем, число итераций "распаковки" изображения тоже может быть, при необходимости, меньшим. В общем, пусть ТС поделится способом использования нужного ему алгоритма - а там и ясно станет, нужна ли либо максимальная теоретическая эффективность, либо максимальное практическое быстродействие, либо допустимы те или иные неоптимальности для удовлетворения каких-то субъективных требований к алгоритму и/или сжатой картинке. |
| Автор: Jamezzz 24.7.2011, 11:45 | ||
На данном этапе мне это не нужно. Сначала хочу получить первые результаты, а уж потом, буду оптимизировать. Да и к сжатию это не имеет отношения. |