Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2010, 12:50   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Новый формат данных LGA (Linear Graphical Archive)

Разработал для своих нужд новый формат данных, сейчас начинаю писать модуль для его обработки, но постоянно что-то упускаю, и допускаю ошибки. Надеюсь на помощь.

Суть формата:
Изображение имеет 128 цветов (фиксированно, потом, может изменю структуру), далее для данного опыта размер имаги 250*350. Суть архивации:
Берем исходный цвет (в 0,0) далее сдвигаемся вправо, если там цвет идентичен, инкуем некий счетчик, пока не упремся в другой цвет. Дальше аналогично по вертикали. Схема:
Как пишется в файл:
Если у нас только одиночный пиксель (не обнаружено рядомстоящих аналогов):
[0] [1][1][1][1][1][1][0] (красный - бит сигнала об одиночности, синий - цвет (номер цвета в 128-ми цветной палитре)
------------------------------------------
Если мы нашли еще 1 пиксель справа (по горизонтали):
[1] [1][1][1][1][1][1][0] [0] [0][0][0][0][0][1][0](зеленый - бит направления (по вертикали, по горизонтали), розовый - количество цветов)

Систему разработал так, что если изображение не пестрит постоянными участками - то размер будет почти таким же, как и при gif128.

Разработал специально для моего изображения, т.к. собираюсь сжать его до 5-6 кб. По расчетам оно и должно быть такого размера, но постоянно имею ошибку.

P.S. Если не там тема - переместите, я не знаю, куда её пихать - пишу на Дельфи.
Изображения
Тип файла: png 001.png (1.9 Кб, 231 просмотров)
Тип файла: gif Main021W.gif (35.6 Кб, 137 просмотров)
Вложения
Тип файла: zip ARC.zip (407.4 Кб, 19 просмотров)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 26.01.2010, 13:19   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

jpg ему проигрывает?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 26.01.2010, 13:20   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
jpg ему проигрывает?
Если использовать расчетный размер, то JPG такого размера должен иметь уровень сжатия 20 (полностью смазанное изображение) + к этому модуль JPEG весит 300 кб.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 26.01.2010, 14:20   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Alex Cones, это алгоритм RLE, изобретаешь велосипед.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 26.01.2010, 14:25   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

1) Никогда о таком не слышал.
2) А прочитав убедился, что мой лучше - он кодирует матрицу не только по горизонтали...
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 26.01.2010, 15:08   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
2) А прочитав убедился, что мой лучше - он кодирует матрицу не только по горизонтали...
Тогда ты должен был прочитать, что это один из самых неэффективных, и самых примитивных алгоритмов сжатия графики

Кол-во цветов для этого алгоритма несущественно, так что ты зря ограничил его по цветности. Я сам когда-то "изобрел" этот алгоритм, для сжатия 24 битных картинок, только у меня "новый" формат назывался не LGA, а MIF )

Если для полноцветных изображений, и без потерь, лучший алгоритм - PNG.

p.s. Почитай еще про Ленну, тебе должно быть интересно. Жаль на русском нет. Если инглиш хаваешь, смотри еще тут.
Вложения
Тип файла: txt Project1.7z.txt (134.6 Кб, 12 просмотров)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 26.01.2010, 15:53   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Жаль на русском нет
??? http://ru.wikipedia.org/wiki/%D0%9B%...D0%B8%D0%B5%29
Цитата:
так что ты зря ограничил его по цветности
см. структуру записи бит. я ограничивал в 7 бит, чтобы уместить в одной байте (а зачем больше на ячейку?).
Цитата:
лучший алгоритм - PNG.
Опять таки я НЕ изобретаю новый формат, я хочу с минимальным кодом уменьшит ДАННОЕ изображение в минимальный размер (мой потенциальный максимум - 5 кб.)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 26.01.2010, 16:01   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

А Раром не пробовал?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 26.01.2010, 16:31   #9
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Он очень мало дает. Тем паче его опять таки надо подключать, а это либо огромная DLL, либо +300к к ехе

UPD

Тут либо надо комбинировать способы архивации, либо "изобретать велосипед". Кстати это очень неблагородное занятие - никому это не нравится, а когда готово крадут идею и говорят, что это они придумали

UPD#2

С GoodWin пробовали нарисовать эту картинку динамически - запоролись на облаках.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 26.01.2010 в 16:34.
Alex Cones вне форума Ответить с цитированием
Старый 26.01.2010, 16:33   #10
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Увы, программа выкинула файл в 55 Кб и зависла при загрузке ЦП в 99% Результат ещё потенциально раза в 2 сжимаем
пыщь
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
формат данных Doget SQL, базы данных 0 10.02.2009 06:01
Не меняется формат данных DimEx Microsoft Office Excel 4 06.03.2008 15:17