25 May 2020
У меня уже был пост, в котором я попытался кратко изложить взгляд на вейвлет-преобразование с точки зрения сжатия изображений.
Однако та статья совершенно незаслуженно обходит стороной такой интересный подход к сжатию, как схема лифтинга.
Хотя этот подход и связан с вейвлетами, для его понимания уже не нужно прибегать к матрицам.
Всё можно объяснить очень наглядно, что я и попытаюсь сделать в этой небольшой статье.
Я попытался написать её самодостаточной, так что читать предыдущую не обязательно.
Читать дальше
14 Jul 2019
В этой статье мы попробуем разобраться, как работать с абстрактным синтаксическим деревом, представляющим код на языке Python, а заодно написать конвертер из Python в язык разметки математических текстов LaTeX. Разумеется, это сложная задача, и мы будем конвертировать только маленькое подмножество — арифметические и логические выражения. Не то, чтобы это было очень полезно с практической точки зрения, но зато поможет разобраться, как работают библиотеки наподобие Numba.
Читать дальше
12 Jul 2019
Корректирующие (или помехоустойчивые) коды — это коды, которые могут обнаружить и, если повезёт, исправить ошибки, возникшие при передаче данных. Даже если вы ничего не слышали о них, то наверняка встречали аббревиатуру CRC в списке файлов в ZIP-архиве или даже надпись ECC на планке памяти. А кто-то, может быть, задумывался, как так получается, что если поцарапать DVD-диск, то данные всё равно считываются без ошибок. Конечно, если царапина не в сантиметр толщиной и не разрезала диск пополам. Как нетрудно догадаться, ко всему этому причастны корректирующие коды. Собственно, ECC так и расшифровывается — «error-correcting code», то есть «код, исправляющий ошибки». А CRC — это один из алгоритмов, обнаруживающих ошибки в данных. Исправить он их не может, но часто это и не требуется. Давайте выясним, что это такое. Первую версию этой статьи я написал для «Хабра». Привожу её здесь с минимальными изменениями.
Читать дальше
31 Jan 2019
Когда-то давно, ещё в феврале 2013 года я опубликовал две статьи на
Хабре, посвящённые вейвлет-сжатию. Моей целью было максимально просто
и доступно, на уровне школы или первого курса рассказать о
вейвлетах. Во второй, практической
части многое нужно уже исправить и
переработать. А вот первая часть
всё ещё годится в качестве начального введения. Привожу её с
исправлениями и дополнениями.
Читать дальше
14 Aug 2017
Как известно, современная видеокарта — это устройство, которое позволяет быстро обрабатывать
огромное количество данных за счёт параллельных вычислений. Расчётами в ней занимаются сотни
(а в новых моделях и тысячи) процессоров. То, что они работают одновременно, позволяет
получить огромное быстродействие. Разумеется, эти процессоры не настолько мощные и универсальные,
как центральный процессор компьютера (CPU). Но для обработки изображений часто требуется лишь
набор только самых базовых команд и операций из линейной алгебры. Так что, видеокарты берут
вопреки завету Суворова не умением, а числом. И тут возникает естественное желание всей это
мощью воспользоваться для решения каких-то задач не связанных с графикой. И такая возможность,
конечно, есть.
Читать дальше