TGViewer
Channel Public Channel
Random Rust Dev

Random Rust Dev

@random_rust_dev

Разработка на языке Rust.
Пишу простыни со своими мыслями о Rust и проектах на нем.
Subscribers
472
Photos
188
Videos
59
Links
44

Showing posts older than #299 · Back to latest

Older Posts 20 shown
Post #298 741
Сжимаю картинку.

Было 101 мегабит.
LZP жмёт её до 78 мегабит
LZ78 жмёт её до 57 мегабит

Обратимо фильтруем
LZP жмёт до 63 мегабит
LZ78 жмёт до 24 мегабит!!!

Как назло LZ78 разжимать на GPU намного менее удобно.
Думаем дальше
  • 🔥 3
  • 👍 1
Post #297 597
Random Rust Dev Chat Я вот без понятия об чём вы гутарите, но мне почему-то захотелось напомнить, что только ситхи всё возводят в абсолют
  • 😁 6
  • 🥰 1
Post #295 663
Тестируем как вам зайдет матъюмор
  • 😁 15
  • 🤔 5
  • 🔥 2
  • 👍 1
  • 🥱 1
Post #294 637
Абсолютно точное значение длины чего-то в метрах это рациональное или иррациональное число?
Post #293 601
Любителям чисел посвящается
  • 👍 7
  • ❤ 2
  • ❤‍🔥 1
Post #292 589
Если вы еще гадаете, зачем нужны ИИ, так это для того что бы делать работу с нулевой суммой.

Например ИИ чтоб генерировать 10 страниц текста, где только одна строчка нужна тому, кому понадобилось это прочесть.
И потом ИИ для того что бы найти эту строчку на сайте.

ИИ что бы сгенерировать CV под каждую вакансию по профессии на всём LinkedIn
А у HR-а ИИ для поиска нормальных CV из миллиона присланных.

У нас уже есть ИИ, что бы разговаривать с ним вместо живых людей.
Значит ждем ИИ, что бы он разговаривал с живыми людьми вместо нас.
  • 😁 9
  • 🥰 5
  • 💯 4
  • 🤡 3
  • 💊 2
  • 👍 1
Post #291 613
Сразу и не заметишь, но как начнешь читать...

И вот это отбирает работу у художников.
  • 🤣 22
  • 😭 4
  • ❤ 1
Post #290 1.67K
Если вы делаете игру и там будет огненный меч - вот вам референс
  • ❤‍🔥 18
  • 🤩 1
Post #289 540
Когда вспоминаешь, что вышла серия, а там филер опять :(
  • 😁 5
Post #288 606
Mutex превращает Send в Send+Sync

А Arc мог бы превращать Sync в Sync+Send, но требует Send тоже, только потому что можете вытащить T оттуда в другом потоке через get_mut и try_unwrap.

Вот вам и недостаток выразительности языка. Нет конструкции что бы сказать T: Send для этой функции если Self передавали в другой поток.

Если прям очень надо, можно сделать свой Ark, который будет Send+Sync where T: Sync, но без возможности получить T или &mut T из него
  • 👍 6
Post #286 532
Причина номер 1, почему я не пишу что-то каждый день
  • 😢 10
  • 🤝 5
  • ❤ 2
  • 😁 2
Post #285 677
К слову, что вообще за LZP.

Название расшифровывается как Lempel-Ziv Predictive.
И это самый просто LZ-like, который к тому же еще и быстрый и эффективный на определенных типах данных.

Оригинальный LZ77 кодирует символы в последовательность ссылок на подстроки символов уже встреченных ранее (и не вышедших за окно) и литералы.
Это приводит к тому, что при кодировании приходится искать в окне самую длинную подстроку.

LZP не ищет подстроки. Вместо этого окно, обычно совсем небольшое, по сравнению с LZ77, например 4 символа, хэшируется. Этот хэш используется как ключ в кэш символов.
Если следующий символ равен символу в кэше - кодируем один бит 0. Если нет - кодируем бит 1 и литерал. И переписывает символ в кэше на новый.

Несмотря на простоту кодирования, LZP отлично себя показывает на данных, где за последовательностью символов с большой вероятностью идет такой же, как и в прошлый раз за такой последовательностью.
Но предел сжатия - 1 / symbol_bits если всегда будет хит в кэш. Тогда как LZ77 может сжимать в тысячи и миллионы раз, если в данных совсем нет энтропии (все символы одинаковые).
  • 👍 4
  • ⚡ 2
  • ✍ 2
  • 🔥 1
Post #284 587
Написал граф-ноды что бы посчитать для разных картинок размеры компрессии с разными преобразованиями

Очевидно LZP хорошо жмет (в 9 раз) картинку в которой те же цвета повторяются.

На сложной картинке (с лебедем) не так мощно сжатие идет.

Что интересно, если трансформировать картинку по одному алгоритму из PNG, то LZP сжатие становится чуть хуже на драконе, а на лебеде заметно лучше.

Теперь надо ANS сжатие добавить.
  • 👍 5
  • 🔥 1
Post #283 538
Кто-то отписался, потому что в лично канале программиста пост про программирование.

Может мне для постов в про ДнД отдельный канал завести?

Голосуйте с 👍 и 👎
  • 👎 43
  • 👍 9
  • 😁 1
Post #282 536
Минутка программирования в Dev канале.

Я все еще работаю над сжатием картинок и вот к чему я пришел пока что:

Я хочу не только сжимать в блоки с потерей качества. Но и суперсжимать для экономного хранения и передачи.

Но я не хочу разжимать их на хосте, я хочу разжимать их прямо на GPU.
Нашел подходящий метод, который легко декодировать на GPU - Asymmetric Numeric System.

Но надо еще что-то типа RLE для больших кусков одинаковых.

Еще нашел такую интересную вещь как LZP - кодирование с угадайкой. Угадала - 0, не угадала - 1 и не угаданный литерал. Но, кмк, для картинок вероятность угадать невелика. Если она ниже 1/sizeof(literal) то размер только вырастет.

Буду пробовать комбинации.

Но скорее всего придется научить шакалить в разные комбы и в хидере прописывать их.

А, ну и да, для эффективного декодирования на GPU картинка делится на суперблоки, которые декодируются отдельно.
  • 👍 11
  • ❤ 1
Post #281 1.53K
В моей кампании по ДнД персонаж игрока превратилась в драконида.
Ну, думаю, попрошу ГПТ нарисовать её для визуализации.
Делаю запрос, такая-то такая-то платиновая драконидица.

Рисует отлично, но с грудями явными.
Делаю новый промт, уточняю, что надо без грудей, потому что драконид не млекопитающее.

Мой запрос фейлится, ибо просить отсутствие сексуализации не проходит фильтр запрета сексуализации.

Пришлось хэндвейвить, что это драконидихе достались черты оригинальной расы.

Такой вот вышел гибрид.
  • 🤣 15
  • ❤ 2
  • 👍 2
  • 😁 1
  • 💊 1
Post #280 646
Докажи котику, что он ошибается!
  • ❤ 7
  • 👍 5
  • 😁 5
Post #279 618
Random Rust Dev Брать иди не брать!
Интересный результат. Это эмпатия или просто доброта у вас?
  • 😁 8
Post #278 743
Позавчера мои игроки в кампании по ДнД устроили апокалипсис, а потом искали кобольдов, которые украли колеса от их телеги
  • 🥰 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →