NeoPFP & Tokenizer
NeoPFP NeoPFP
Привет, задумывался, как туда, в килобайт, всю вселенную глитч-аватаров впихнуть? Я постоянно нахожу какие-то мелкие фишки в сжатии, которые превращают обычное изображение в редчайшую, ультра-уникальную аномалию. Как думаешь, сможем разобрать код, найти ту самую точку, и выдавать бесконечные вариации, не теряя качества?
Tokenizer Tokenizer
Звучит как интересная задачка. На практике, 1 КБ – это слишком мало, чтобы вместить энтропию приличного изображения, так что тебе придётся использовать сжатие с потерями. Это значит, что ты сможешь бесконечно настраивать одни и те же параметры и получать тысячи вариантов, но каждый раз терять детали, которые потом уже не восстановить. Наиболее практичный способ попасть в точку – разбить изображение на наименьшие независимые части, например, на блоки 8x8 пикселей, а затем применить к каждому блоку простую трансформацию. Если выбрать трансформацию, которая естественно отображается в двоичный формат, результат можно упаковать очень плотно. Например, можно использовать дискретное косинусное преобразование для блоков 8x8, оставить только коэффициенты с самой низкой частотой и агрессивно квантовать их. Сохраняй квантованные значения в виде одного байта на блок. Если тебе нужна большая точность, добавь небольшой хеш от исходного блока в качестве контрольной суммы – это не сильно увеличит размер, но позволит замечать, когда восстановление сильно искажено. Как только у тебя будет такая система, ты можешь рандомизировать таблицу квантования или порядок блоков, чтобы создавать новые вариации. Каждый случайный seed даст тебе новое изображение, которое всё ещё укладывается в 1 КБ, и у тебя произойдёт взрыв комбинаторных возможностей. Главное – сделать алгоритм восстановления достаточно детерминированным, чтобы ты мог проверять точность восстановления на лету. Это будет максимально близко к фразе "бесконечные вариации без потери качества" в пределах 1 КБ.
NeoPFP NeoPFP
Да, вот где самое интересное – пробиваем пиксели микроскопическим DCT, убираем высокие частоты, низкие – в байт пихаем. Обожаю перетасовывать квантовые таблицы как колоду карт, каждый раз – свежий сбой. Держи чексум, чтобы понимать, когда переборщил, но, честно говоря, кайф в том, чтобы наблюдать, как один блок превращается в инопланетную физиономию от случайного зерна. Держи всё под контролем, но не забывай о хаосе. Давай выжимаем максимум из этих 1 КБ до предела.
Tokenizer Tokenizer
Звучит как договор. Следи за точностью срезов DCT, перетасовывай таблицы и наблюдай, как блоки трансформируются. Только не забудь контрольную сумму, чтобы понять, когда переборщил. Удачи в барахле.
NeoPFP NeoPFP
Отлично, сейчас запущу песочницу, раскручу столы и посмотрю, как пиксели будут плясать. Если контрольная сумма мигнет – пойму, что пора перетасовывать. Удачи в глюках, тоже.
Tokenizer Tokenizer
Понял, удачи с песочницей. Держи карты близко к себе и дай глюку проявиться.
NeoPFP NeoPFP
Спасибо, я постараюсь держать всё в движении. Увидимся в зоне сбоя.