Я пишу мультипротокольный (но не мультиплатформенный, увы, сейчас только windows) мессенджер, который пока что поддерживает только протокол TOX. Но речь не о мессенджере, а о его интерфейсе, а если точнее, об основной его функции — AlphaBlend. Да, я решил написать свой велосипед GUI. Ну а какой современный GUI без полупрозрачных элементов и плавных закруглений? Поэтому остро встала необходимость смешивать изображения с учетом полупрозрачности, т.е. альфа-смешивание или alpha blending. К счастью, в windows GDI такая функция имеется — AlphaBlend. Работает как надо, делает то что нужно. Но я тот еще строитель велосипедов, и мне стало интересно, смогу ли я написать такую же функцию, но более быструю. Результат моих трудов под катом.
Читать полностью »
Рубрика «Алгоритмы» - 210
Смешиваем цвета правильно или оптимизируем AlphaBlend
2015-12-14 в 23:16, admin, рубрики: alpha blending, c++, ssse3, Алгоритмы, ненормальное программирование, оптимизация кода, Программирование, системное программированиеРепликация без конфликтов: CRDT в теории и на практике
2015-12-14 в 19:53, admin, рубрики: computer science, crdt, replication, sync, Алгоритмы, математика, Программирование, метки: crdt В распределённых хранилищах или редакторах каких-либо данных часто бывает нужна поддержка внесения изменений оффлайн, без блокировок и конфликтов. Для этого применяются разные подходы, один из которых — алгоритмы и типы данных conflict-free replicated data type (CRDT).
Читать полностью »
Программный многозадачный таймер на МК
2015-12-14 в 12:18, admin, рубрики: C, алгоритм, Алгоритмы, Программирование, Программный таймер на МК, разработка, метки: Алгоритм, Программный таймер на МКВ различного рода сложности реализуемых алгоритмов при программировании МК, всегда возникают рутинные циклические и не очень задачи. Одни требуют повышенной точности, другие таким критерием не обязаны обладать. Аппаратных таймеров на борту МК может быть приличное количество, например STM32F4 — аж 14 штук, и это не считая SysTick (системного), а в других и пара тройка за счастье: тот же PIC16, например.
Для решения таких не спешных, не критичных ко времени задач можно и нужно применить программный таймер, на базе одного из аппаратных. Но обо всем по порядку...Читать полностью »
Как сжать плоского кота
2015-12-14 в 8:32, admin, рубрики: C, Алгоритмы, встраиваемые системы, обработка изображений, сжатие без потерь, сжатие данныхОднажды в студеную зимнюю пору… ровно год назад, у нас появилась нетривиальная задача. Есть экран на электронных чернилах, есть процессор 16МГц (да-да, во встраиваемой электронике, особенно сверхнизкого энергопотребления, встречаются и такие) и совсем нет памяти. Ну, т.е. килобайтов 8 RAM и 256 Flash. Килобайтов, Карл. И в эти унылые килобайты необходимо запихнуть несколько изображений 800х600 в четырех оттенках серого. Быстро перемножив в уме 800 на 600 и на 2 бита на пиксель получаем 120 тысяч байтов. Несколько не влезает. Надо сжимать.
Так перед нами появилась задача: «как сжать плоского кота»? Почему кота? Да потому, что на котиках тестировали, на чем же еще черно-белые картинки проверять. Не на долларовых банкнотах же.
Читать полностью »
Машина Голдберга в реальной жизни. Сложный ли алгоритм действия для сложного механизма?
2015-12-11 в 10:14, admin, рубрики: diy или сделай сам, Алгоритмы, игры, машина ГолдбергаВнимание! Данная статья относится к механической/электрической машине Голдберга и алгоритмам её работы.
Я начал писать эту статью в виде заметок чтобы как-то упорядочить процесс продолжительного, но прерывистого, “мозгового штурма” и потому статья будет в некотором роде последовательным изложением идей и улучшений, которые были придуманы по ходу выстраивания алгоритма. К тому же, это лишь первая, можно сказать “теоретическая”, часть общего цикла разработки самой машины Голдберга (устройства, которое выполняет простое действие нетривиальным способом), а потому будет продолжена последующими статьями.
Надеюсь, статья окажется интересной и, возможно, полезной для каждого. Начнём.
Читать полностью »
Российский стартап смог обойти Google в конкурсе алгоритмов по распознаванию лиц
2015-12-07 в 13:27, admin, рубрики: Google, Алгоритмы, Научно-популярное, работа с изображениями, распознавание алгоритмов
Фото: Michaela Rehle / REUTERS
Сегодня стали известны итоги конкурса алгоритмов по распознаванию лиц Megaface. Как оказалось, российская компания N-tech.lab вошла в первую пятерку во всех номинациях, а в двух из них стала победителем, обойдя Google. В конкурсе требовалось идентифицировать изображения людей их двух коллекций, с использованием коллекций в большой базе фотографий, пишут «Ведомости». В первой коллекции содержалось около 100 тысяч изображений людей (одного возраста), во второй — около 900 тысяч изображений людей разных возрастов. Поиск проводился участниками конкурса в базе с 1 млн изображений.
Устроители конкурса предусмотрели четыре номинации. При этом для участия в Megaface зарегистрировались 100 участников. Каждая команда могла участвовать в одной из двух категорий. Первая предполагала отсутствие ограничений на количество фотографий для обучения своего алгоритма, во второй было ограничение на полмиллиона фотографий.
Читать полностью »
Wikipedia научилась автоматически определять некорректные правки статей при помощи ИИ
2015-12-02 в 11:39, admin, рубрики: wikipedia, Алгоритмы, Википедия, искусственный интеллект, редактура
Источник: Wikimedia
Онлайн-энциклопедия Wikipedia получила новый инструмент — сервис с элементами ИИ, который поможет автоматически определять некорректные правки материалов ресурса. Сервис ORES (Objective Revision Evaluation Service) будет проверять все правки на наличие спама или троллинга. Создателем ORES является Wikimedia Foundation. Разрабочики говорят, что новый сервис работает, как рентгеновские очки (отсюда и анонсная картинка. Система теперь будет выдеять все, что выглядит подозрительным, а затем отправлять на проверку редактору-человеку. Если администратор решит не использовать правку, пользователь, предложивший ее, получит уведомление. Эта система более дружественна к пользователям, поскольку сейчас никакие уведомления пользователям не рассылаются.
Команда энциклопедии научила систему различать непреднамеренные ошибки в правках и то, что называется «повреждением правок» (damaging edits). Обучение проводилось на примерах реальных материаолв. Сейчас новый сервис уже можно использовать.
Читать полностью »
Почему все так любят пошаговые инструкции, а они не работают
2015-08-19 в 12:10, admin, рубрики: Алгоритмы, Блог компании Grrow.me, повторение опыта, Пошаговые инструкции, Развитие стартапа, управление проектами, Читальный зал, шаблоны, метки: Пошаговые инструкции
Всем нам сотни раз попадались статьи, тренинги, книги с такими названиями, как «Пошаговая инструкция, как сделать бизнес», «10 шагов, как заработать миллион» или «Простой алгоритм достижения счастья». Такие заголовки нам нравятся и притягивают наше внимание. И безумно хочется воспользоваться этими волшебными советами.
Однако я вынужден вас разочаровать – они не работают в жизни. Совсем не работают.
Алгоритм DeepStereo склеивает снимки Google Street View в гладкое видео
2015-07-16 в 10:19, admin, рубрики: DeepStereo, Google, Google Street View, Алгоритмы, видео, обработка изображений, Программирование, ФототехникаИсследователи компании Google Джонн Флинн, Айван Нюландер, Джеймс Филбин и Ной Снейвли создали алгоритм, который способен комбинировать снимки из сервиса обзора панорамных видов улиц Street View в гладкие видеоролики с едва заметными артефактами. Алгоритм получил название DeepStereo, пример его работы представлен выше. Вероятное использование созданной технологии включает создание простых анимаций, обработку изображений, кино и виртуальную реальность.
Читать полностью »
Так считали древние. Вавилон
2015-06-21 в 19:01, admin, рубрики: Алгоритмы, вавилон, древность, занимательно, история, История ИТ, история математики, история науки, математика, Научно-популярное, прошлое, метки: вавилонЭто продолжение задуманной мной серии про историю вычислений и счета. Первая статья про Египет здесь.
Сейчас я попробую немного рассказать о другой великой цивилизации и культуре прошлого. Вавилонское царство возникло в начале 2-го тысячелетия до нашей эры, оно пришло на смену Шумеру и Аккаду и существовало до завоевания Персами в 539 г. до н.э. Писали в Вавилоне, как все помнят, на глиняных табличках с помощью клинописи, которые очень неплохо сохраняются в отличие от бумаги, папируса, и подобных вещей, поэтому мы знаем достаточно много и про Вавилон, и про его математику. Но, конечно, мы не знаем всего. В отличие от греков вавилоняне не оставили точных алгоритмов и ясных объяснений своих приемов. Теперь мы можем только догадываться как именно вавилоняне действовали в том или ином случае при решении задачи. В этой работе я сосредточусь в основном на вавилонской арифметике, оставив в стороне геометрию, алгебру и астрономию.
Читать полностью »