Мышь нам кажется простым гаджетом, но при этом она идеально точная: двигаешь рукой, курсор послушно скользит по экрану с чувствительностью до субпикселя.
Ни один другой тип ввода не заменит её отзывчивости. Убедился в этом, когда пытался работать с Photoshop на iPad и понял, что управление через курсор всё ещё побеждает.
Но тут я задумался, а как именно мышь улавливает движения с точностью до десятых миллиметра и мгновенно превращает их в попиксельные координаты?
Ниже разберёмся, как вся эта магия работает. Начнём с общего принципа работы.
Что происходит в мыши в общих чертах
На стол светит свет именно под углом, чтобы создать контрастную «карту»
Сенсор мыши фотографирует подсвеченную часть тысячи раз в секунды, сравнивает разницу и моментально вычисляет вектор движения
Для ориентации на поверхности все современные мыши используют четырёх главных компонента:
▪︎ Излучатель света
▪︎ Фокусирующая линза
▪︎ Считывающий сенсор
▪︎ Процессор обработки перемещения.
Если описывать процесс коротко, всё происходит так.
Инфракрасный свет под углом падает на поверхность, линза фокусирует сенсор на поверхности, а сам сенсор больше 15 000 раз в секунду фотографирует поверхность.
Процессор сопоставляет разницу между кадрами и таким образом вычисляет, куда движется мышь.
Посмотрим на каждый шаг чуть подробнее.
Как мышь видит поверхность и почему для неё нужен коврик
Красный, инфракрасный или лазерный излучатель должен освещать поверхность под углом, чтобы создавать объёмный «рисунок» поверхности.
Поэтому одна их его линз выглядит как острая наклонная грань.
Чаще всего сейчас используется инфракрасный излучатель.
Он позволяет достаточно глубоко проникнуть в поверхность, лучше отражается от стекла, чем красный диод и при этом более энергоэффективен, чем лазерный излучатель.
Это позволяет создать сразу две версии мышек с одним датчиком – проводную и беспроводную, как например, в одной из из самых популярных игровых мышек Logitech G502.
👉 О том, как она заменила мне даже тачпад на MacBook Pro рассказывал тут.
Довольно простая фиксированная линза фокусирует отражённый свет на матрице сенсора, создавая чёткую картину текстуры. По принципу работы это ничем не отличается от камеры в вашем iPhone.
Правда, вместо фотографии мышь получает простую картинку из светлых и тёмных пикселей, поскольку сенсор там разрешением всего 40×40 пикселей или 0,0016 МП.
Яркость между пикселями позволяет определить неровность поверхности.
Чем более шероховатая поверхность, тем больше будет контраст. Поэтому с прозрачными или гладкими поверхностями мыши иногда не работают – свету не от чего отражаться и сенсор выдаёт белую картинку.
С каждым новым снимком старый удаляется, но до этого встроенный процессор делает сравнение между двумя кадрами. Тут и происходит вся магия.
Как мышь понимает, куда вы её подвинули
В мышке есть отдельный процессор для вычисления её перемещения.
Поскольку сенсор делает фотографии поверхности очень часто (от 1000 раз в секунду!), он успевает запечатлеть, по сути, один и тот же кадр, но с совсем небольшой разницей.
Второй кадр накладывается на первый и мышь создаёт новый кадр, который показывает разницу между исходными величинами.
Тут возможно минимум три сценария:
1. Если мышь стоит, то изображение будет серым.
2. Если вы её сдвинули плавно, то новая картинка получится с чуть окрашенными пикселями, которые покажут, что движение произошло небольшое.
3. Если мышь сдвинули резко, то новое изображение окрасит пиксели в чёрный и белый, посколько разница между положениями высокая.
Зелёный и красный показывают одни и те же точки в пространстве, которые смещаются в новых кадрах. Это для наглядности, мышь же просчитывает каждый отснятый пиксель
Когда синтезированное изображение получено, на его основе второй кадр с помощью специального математического блока в процессоре сдвигается до тех пор, пока разница с первым не станет минимальной. Так вычисляется движение в 2D-пространстве.
На основе этих данных алгоритмы понимают, с какой скоростью, куда, и на какое расстояние мышь ушла. Так как снимки делаются от 1000 раз в секунду, встроенный процессор успевает точно понимать ваши действия.
Но модели ведь делятся по качеству считывания движения. Есть дешёвые и дорогие – так в чём разница?
Почему игровые мыши лучше считывают движение
Уровень мыши зависит от двух факторов: частоты считывания кадров и разрешения сенсора.
В зависимости от характеристик и настроек вашей мыши встроенная камера делает от 1 000 в офисных моделях до 17 000 FPS в игровых. Недавно Logitech запустила первые мышки с новыми сенсором HERO 2, там частота кадров около 22 000 FPS.
Высокая частота кадров как раз отвечает за то, чтобы максимально точно отслеживать движение. В офисных мышках с небольшой частотой считывания часто добавляют алгоритмы ускорения, чтобы предугадать движение, поэтому для киберспорта они не подходят.
Дополнительно на качество считывания влияет умение мыши переключаться с высокой скорости считывания на медленную, потому что нужно адаптировать алгоритмы под скорость движения руки:
∧ При высокой частоте считывания медленное движение мыши теряет в точности курсора
∨ При низкой частоте быстрое движение мыши заставит курсор перемещаться с задержкой.
Обычно это решают автоматическим переключением мыши на более высокие уровни FPS, а профессиональные модели изменяют частоту кадров в постоянном режиме и плавно.
Но есть и второй параметр, который влияет на качество снимаемой информации.
Зачем в мышках нужен DPI или высокое разрешение сенсора
Высокое разрешение сенсора получают не увеличением пикселей, а с помощью математики
Для ещё большей точности увеличивают разрешение сенсора, которое измеряется в DPI, Dots Per Inch или точек на дюйм.
Характеристика значит, сколько условных единиц может отследить мышь при движении на один дюйм. До ноября 2024 года топовым показателем был 25 600 DPI, но с релизом новых мышек от Logitech с сенсором HERO 2 он стал 44 000 DPI.
Это огромные показатели, которые большинству пользователей не нужны. У меня комфортный
Для такой точности пикселя делятся не физически, а с помощью алгоритмов.
Дорогие игровые мышки для повышенной точности используют сложные алгоритмы, чтобы рассчитать дополнительные пиксели через кривые, а не по прямой
Данные с четырёх пикселей внутри одного квадрата делят на нужное число раз (5 раз для 4000 DPI, 29 раз для 25 600 DPI) и таким образом получают новые «субпиксели». Это называется линейной интерполяцией, потому что промежуточные точки ищут по прямой.
Иногда для анализа берётся 9, а то и 16 пикселей за раз, чтобы составлять более плавную карту цифровых субпикселей. Это будет уже бикубическая интепроляция, как как точки оцениваются в 3D пространстве, влияя друг на друга.
Это возможно, потому что анализируется 3D-пространство, которе постоянно меняется под вашей мышью. Точно так же нам проще анализировать объект, когда мы его вертим в руках.
Вот так, если говорить относительно простым языком, работает мышь. Мы пользуемся разными: игровыми, вертикальными и даже няшными. Но только не той самой проклятой.

8 комментариев
Форум →Мышь или “кот в мешке”?
давно не было чего-то полезного) 👍
Спасибо, но у меня с шариком еще
тогда напиши статью как чистить мышки с шариками
шарик то какой модели?
Случайно не 3,14zdoBALL?
Че за бред, всем известно там металлический шарик в резинке и ролики
Зачем 44 000 DPI если все всеравно ставят 400-800-1600(макс)?
Статья огонь. Побольше такого
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Почему в Safari на iPhone появляется ошибка «Этот сайт заблокирован от автоматического инициирования вызова»
Что делать, если iPhone Xs плохо ловит сеть
Как на iPhone включать любимый плейлист после звонка будильника
Как быстро удалить воду из динамиков iPhone
Как передать контакт с Android на iPhone. Без приложений, почты и мессенджеров
Как запретить айфону подключаться к определенной Wi-Fi сети
Как проверить работоспособность гарнитуры iPhone
Как отключить светлую тему macOS Mojave для некоторых приложений