БК-0010 старца

БК-0010 старца

Сообщение TailWind » Вт апр 21, 2020 6:00 pm

Ты не так понял
TailWind писал(а):Но когда я сжал этот массив LZW, я получил:
Было 2110
Стало 2129


Это не сжимаю массив повторений -> получаю результат
Это результат сжатия с 11111 (было) и результат сжатия с 0-5 (Стало)

То есть вроде как я уменьшаю размер входных данных
А результат архивирования увеличивается в размере
Аватара пользователя
TailWind
Гуру
Гуру
 
Сообщения: 10901
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

БК-0010 старца

Сообщение Fouras » Вт апр 21, 2020 6:41 pm

TailWind писал(а):Ты не так понял
TailWind писал(а):Но когда я сжал этот массив LZW, я получил:
Было 2110
Стало 2129


Это не сжимаю массив повторений -> получаю результат
Это результат сжатия с 11111 (было) и результат сжатия с 0-5 (Стало)

То есть вроде как я уменьшаю размер входных данных
А результат архивирования увеличивается в размере

число повторений меньше числа бит под счетчик повторений?
Аватара пользователя
Fouras
Старожил
Старожил
 
Сообщения: 7249
Зарегистрирован: Пн июн 12, 2017 1:23 am
Медали: 11
Пол: Мужской

БК-0010 старца

Сообщение TailWind » Вт апр 21, 2020 6:43 pm

Fouras писал(а):число повторений меньше числа бит под счетчик повторений?

Число повторений единицы становится отдельной записью в массиве повторений

Дальше создаю для массива палитру
Преобразую массив в массив индексов палитры
И его сжимаю LZW или Huffman
Аватара пользователя
TailWind
Гуру
Гуру
 
Сообщения: 10901
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

БК-0010 старца

Сообщение TailWind » Вт апр 21, 2020 7:04 pm

Если я ничего не делаю с массивом повторений:

RLE + LZW + No.... 3099 = 18% (без сжатия)
RLE + LZW + LZW... 2068 = 12% (сжимаю LZW)
RLE + LZW + Huff.. 1979 = 12% (сжимаю Huffman) (победитель!)

Если я в массиве повторений заменяю много единиц на 0-N:

RLE + LZW + No.. 2646 = 16% (без сжатия)
RLE + LZW + LZW.. 2085 = 12% (сжимаю LZW)
RLE + LZW + Huff.. 2006 = 12% (сжимаю Huffman)

Странно, что становится хуже
Но разница небольшая
Аватара пользователя
TailWind
Гуру
Гуру
 
Сообщения: 10901
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

БК-0010 старца

Сообщение TailWind » Пт май 29, 2020 10:51 am

Нашёл интересное преобразование
Называется Move to Front (MTF)

И теперь Huffman побил LZW

qqq.gif
qqq.gif (4.25 КБ) Просмотров: 457


RLE + ARRAY + ARRAY 1933 = 11% 16 ms
RLE + LZW + LZW.. 1958 = 11% 0 ms
RLE + Huff + Huff 1757 = 10% 15 ms

RSC = Remove Single Color
Все цвета которые встречаются 1 раз, заменяются на 1 цвет
И сохраняются отдельным массивом в порядке следования. Потом восстанавливаются
Если их много, то это сильно уменьшает для Хаффмана длину кода и даёт выйгрыш
Но я пока не понял как рассчитать когда это преобразование можно применять. Иногда делает хуже
Аватара пользователя
TailWind
Гуру
Гуру
 
Сообщения: 10901
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

БК-0010 старца

Сообщение TailWind » Ср июн 03, 2020 1:35 pm

Теперь пробую сжать скрин экрана
Разбиваю его на квадраты, каждый квадрат сжимаю отдельно, считаю сколько получилось в сумме и время кодирования / декодирования

256 x 256 = 68048 2% 31 ms 16 ms
128 x 128 = 69780 2% 78 ms 16 ms
64 x 64 = 76454 2% 203 ms 31 ms

Оригинал 1280x1024 2.6МБ

Мне интуитивно казалось, что 64 x 64 будет хороший размер, но 128 x 128 лучше и быстрее жмёт . Хотя это и огромный квадрат
70 кБ на экран это хорошо

Screen_2.gif
Screen_2.gif (66.44 КБ) Просмотров: 423
Последний раз редактировалось TailWind Ср июн 03, 2020 6:10 pm, всего редактировалось 1 раз.
Аватара пользователя
TailWind
Гуру
Гуру
 
Сообщения: 10901
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

БК-0010 старца

Сообщение Fouras » Ср июн 03, 2020 3:05 pm

Ты бы сделал сотню типичных экранов для тестов. На 70% добиваешься повышения качества паковки, а на 30% оставшихся проверяешь действительно ли качество улучшилось, или произошла привязка к тем 70. Вообще круто получается.

Про то чтобы редкие цвета собирать в один поток: абсолютно любая паковка на некоторых данных будет работать хуже чем без паковки. Самый простой случай - белый шум. Так что идея годная, просто надо подобрать коэффициенты того что считать уникальным цветом на достаточно большой выборке.
Аватара пользователя
Fouras
Старожил
Старожил
 
Сообщения: 7249
Зарегистрирован: Пн июн 12, 2017 1:23 am
Медали: 11
Пол: Мужской

БК-0010 старца

Сообщение TailWind » Ср июн 03, 2020 6:19 pm

Попробовал фотку 1280x1024 2.6МБ

Получилось 867кБ 33% 219 ms 125 ms

Удивлён!

mountains-wallpapers-1280x1024-0001.jpg
mountains-wallpapers-1280x1024-0001.jpg (475.24 КБ) Просмотров: 401
Аватара пользователя
TailWind
Гуру
Гуру
 
Сообщения: 10901
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

Re: БК-0010 старца

Сообщение TailWind » Ср мар 17, 2021 12:30 am

Ну что
Начал 20 марта 2020 года
https://www.socioforum.su/viewtopic.php?p=3643428#p3643428

Закончил сегодня - 16 марта 2021

Ровно год у меня ушёл на эту прогу
Делал в свободное от работы время

FPS 8-10 кадров в секунду
Сделал просмотр каталогов
Загрузку и скачивание файлов

Фуре спасибо за подсказки
Аватара пользователя
TailWind
Гуру
Гуру
 
Сообщения: 10901
Зарегистрирован: Ср апр 15, 2015 1:36 am
Медали: 5
Пол: Мужской

Пред.

  • { SIMILAR_TOPICS }
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в Башня старца Фура

Кто сейчас на конференции

Зарегистрированные пользователи: GoGo [Bot], Google [Bot], Li Lu, Грим, Start_error, vadimr, Yandex 3.0 [Bot], Yandex [Bot]