Comments 7
Да уж, теперь так не пишут.
классно, но я ничего не понял, а почему нельзя вокселизировать картинку(ну типо вокселизировать, в данном случае квадратики цветов, как то выбирать цвет квадрата, смешением(или медианой или медиана плюс смешение цветов в крадрате) или еще как-то), на квадратики цветов или это не дешево будет?, тоесть получая цветовую картинку например png, делать декомпозицию в квадратики цветные
а квадратики как-то закинуть в таблицу цветов и перекинуть в аски, походу или 256 значений и там искать range соотв результат это ranges
тоесть результат это цвета между значениями основных цветов на картинке или rgb(тоесть 3 квадрата, остальные значения это результат смешения ренжи типо)
типо libcaca
Изначальная версия (уже немного деобфусцированная по сравнению с dcraw) содержала 301 миллионов команд x86_64.
Наверное все же выполняла 301 миллион инструкций за время обработки одного снимка, а не содержала 301 миллион команд. Скажем, ядро Линукс в нынешнем состоянии вместе со всеми модулями содержащимися в его основном репозитории будучи скомпилированным для x86_64 имеет, по грубым прикидкам, раз в 6-7 меньше.
К стати, да - как-то не сразу сообразил, что прога в пару сотен мегабайт для 6502 как-то... как-то... ну, если мягко, то невозможно! =)
301 миллион команд, это как декомпозиция текста по точкам так что всё сходится, тоесть открываем файл-готовим структуры, выделяем контуры, заполняем точками, запоминаем по табличкам, например локаль выбранная, сегодня еще лучи пустить можно(соотв эфристики под лучи),сохранение текстур по размерам, и уже тут запрос на текстуру например, мне почему-то кажется пусть и ошибка, но норм наверное, не знаю
если еще представить, что это С, там на 1 текстовый редактор команд достаточно, это С++ большую часть работы спрятал например
тоесть большая часть команд, это поддержание участвующих образующих обработку структур(память, алгоритмы и вот это всё), это как менеджить строки, там наверно по командам смотреть если будет только одна работа со строками(про строки это пример)
дерево Хаффмана со сдвигом да еще например на O2 и библиотеки например свои частично, поидее может быть много вызовов, рекурсии какие-нибудь(а проц старый например, компилятор например взял и по другому представил), хотя может и через стек идут
с avx sse O3 и всякими флагами под Haswell может там что-то ужмётся
так и линукс можно собирать с O3 linker-mold flto
Оптимизация декодера изображений для 6502 с 70 минут до одной