Оптические мышки. Что такое DPI и CPI. Для чайников.

В последнее время стало модным ассоциировать высокое значение DPI оптической мыши с высокой точностью её сенсора. Производители игровых девайсов в рекламных буклетах не стесняются прибавить десяток восклицательных знаков к цифре dpi своей новой «революционной мышки» (3200!!! DPI, 6400 DPI!!!!!, 12000 DPI!!!!!!). Рынок диктует свои правила. Конечно, современный мир крайне технологичен, и у обычного человека просто не хватает времени разобраться во всяких телевизорах, андроидах, автомобилях и прочих модных штуках. Что уже говорить о какой-то мышке. Но мы попробуем разобраться, что же такое на самом деле DPI и зачем оно нужно.

Откуда растут ноги
Для начала разберемся, каким образом у людей высокое значение DPI ассоциируется с высокой точность. Скорее всего, тут работает простая аналогия с фотоаппаратом. Все знают, 0.3 mpx (мегапикселя), как на старых телефонах – это плохо: смазанная картинка, плохо видны детали. А вот 8 mpx как в iPhone – это хорошо, потому что все видно очень четко. «Так, наверное, и в мышках», — думают люди, — «в них же тоже есть пиксели». Ведь DPI формально означает «Dots Per Inch», т.е. буквально «ТОЧЕК НА ДЮЙМ». Т.е. больше точек, — лучше видны детали поверхности, – следовательно, мышка может различать даже самые мелкие свои движения. И это позволяет в играх точнее наводить курсор/прицел. Вот и все объяснение. Правильно? Логично? Логично, но, к сожалению, В КОРНЕ НЕПРАВИЛЬНО!

Как работает оптическая мышь
Сенсоры оптических мышек действительно работают по принципу фотокамеры – они постоянно фотографируют поверхность, по которой ездит мышь и, сравнивая между собой полученные снимки, определяют куда двигается мышь. А для регистрации снимков используются матрицы, состоящие из светочувствительных элементов, т.е. пикселей. Размеры самих сенсоров в пикселях крайне невелики! Например для сенсора 30х30 общее число пикселей будет 30×30=900 px , в то время как даже у старого фотоаппарата на 0.3 мегапикселя размер сенсора будет 640х480=307200 px! Откуда тогда берутся числа DPI?

Оптическое разрешение мыши
Дело в том, что в оптических мышках, изображение поверхности, по которой мы водим мышь, попадает на сенсор через увеличивающую линзу (Рисунок 1). Увеличение необходимо, чтобы лучше различать текстуру поверхности. Если посмотреть на обычный черный коврик для мыши, то он вроде бы везде одинаковый. Но взгляните на него под микроскопом – и каждый миллиметр поверхности будет по-своему уникален! Таким образом, на сенсор оптической мышки попадает лишь небольшая часть поверхности в виде квадрата. Обозначим сторону этого квадрата L. Если сенсор имеет NxN светочувствительных элементов, то значение DPI сенсора будет равно:
DPI = N/L
ИМЕННО ТАК!

DPI_CPI.jpg

Это так называемое «базовое» или «оптическое» разрешение мыши.

Очевидно, что для увеличения DPI, достаточно просто уменьшить площадь поверхности, которую будет видеть сенсор, т.е. поставить более сильную линзу. Но даже в этом случае сенсор будет работать с изображениями, полученными только своей маленькой матрицей. Поэтому DPI напрямую не имеет никакого отношения к точности мышки. Это просто характеристика, показывающая какую площадь поверхности охватывает сенсор, и зависит от свойств линзы и размера светочувствительной матрицы сенсора.

Тем не менее, на разных расстояниях сенсор может по-разному различать поверхность, лучше либо хуже. И именно это в наибольшей степени определяет точность сенсора!

Сильное увеличение (высокое значение dpi) приводит к тому, что в сенсор попадает слишком мало света и фотографии становятся «шумными» (вспомните цветные пятна на фотографиях, сделанных ночью). А слабое увеличение (низкое значение dpi) не позволяет сенсору «видеть» текстуру поверхности. Кроме того, качество самих светочувствительных элементов тоже играет важную роль. В современных игровых мышках базовое разрешение находится в диапазоне 400-800 dpi.

DPI vs CPI

Полученные матрицей фотографии сенсор сравнивает между собой и по смещению рисунков определяет направление и скорость движения мышки. При этом, минимальное расстояние, пройденное мышью, которое может физически зарегистрировать её сенсор – это расстояние, которое фиксирует по крайней мере ОДИН светочувствительный элемент. Т.е. при перемещении мышки на расстояние L сенсор может считать максимум N движений. Поэтому для мышек более правильным будет использовать аббревиатуру CPI – counts per inch, т.е. количество считываний на дюйм.

Для тех, у кого по-прежнему возникают трудности с пониманием dpi/cpi, предлагаю внимательно проанализировать следующую картинку (Рисунок 2).
СPI_VS_DPI2.png
«Цифровое» разрешение мыши

Современные методы сравнивания изображений позволяют определять параметры движения с субпиксельной точностью. Т.е. даже если на матрице изображение сместилось всего на один пиксель, сенсор может определить смешение на 5-10 пикселей! В сенсоре Pixart PMW3366, соотношение «один пиксель — одно считывание» выполняется лишь при 800 dpi. А максимальные для этого сенсора 12000 dpi достигаются его возможностью выдавать 16 считываний на один реальный пиксель.

При таком подходе, требования к качеству исходного изображения становятся еще более жесткими. Любой лишний «шумок» может катастрофически влиять на качество трекинга. Именно поэтому, для большинства сенсоров КАЧЕСТВО ТРЕКИНГА ЛУЧШЕ НА НИЗКИХ DPI. Почему так?

Если еще раз посмотреть на рисунок с разными линзами, можно заметить, что пиксели на матрице показаны либо полностью белыми, либо полностью черными. Это сделано для упрощения понимания dpi. В действительности все не совсем так.
На самом деле, реальная картинка представлена различными градациям серого цвета. Но что самое важное — надо понимать, что при смещении изображения, цвет пикселей не изменяется мгновенно. При миграции светлого пятна с одного пикселя на соседний, их цвета изменяются постепенно. По степени изменения оттенка серого сенсор и определяет параметры движения мыши. При этом мы можем сами указать, насколько сильно должна измениться яркость, чтобы сенсор зарегистрировал смещение. И тем самым мы указываем сколько «цифровых» считываний мы хотим получить для одного реального смещения пикселя на матрице.

Математически такой алгоритм работает очень точно. Но в реальности у любого фотоэлемента есть «шум». Это значит, что интенсивность цвета на нем может случайно изменяться, даже если мышь вообще никуда не движется. И если заставить сенсор ловить самые маленькие изменения яркости (т.е. установить очень высокие значение DPI/CPI!), то сенсор может принять случайное изменение яркости вследствие шума за реальное движение!

Зачем нам высокие dpi?

Считывания, выдаваемые сенсором, обрабатываются операционной системой. При стандартных настройках указателя мышки в Windows одно считывание означает перемещение курсора ровно на одну точку на экране. А количество точек на экране зависит от разрешения монитора. Если разрешение экрана установлено 1920*1680, то мышь с 1600 dpi пройдет весь экран слева направо, если её передвинуть на 1920/1600=1.14 дюйма, т.е. всего за три сантиметра, а мышь с 3500 dpi – за 1.5 см! Т.е. ЧЕМ БОЛЬШЕ CPI (DPI) ТЕМ БЫСТРЕЕ МЫШКА БЕГАЕТ ПО ЭКРАНУ! И это, пожалуй, единственное явное преимущество высоких CPI – они позволяют комфортно водить мышкой по экранам с большим разрешением. Правда, для сегодняшних разрешений вполне хватает и 1000-3000 cpi.

В 3D играх каждое считывания обрабатываются немного по-другому: одно считывание означает поворот на некоторый заданный угол. Как правило, этот угол имеет такую величину, что для комфортной игры будет вполне достаточно и 400 dpi

Отсюда мораль: ЧРЕЗМЕРНОЕ УВЕЛИЧЕНИЕ DPI ДЛЯ ПОЛЬЗОВАТЕЛЯ НЕ ИМЕЕТ НИКАКОГО СМЫСЛА.

Однако это совсем не значит, что мышки с высокими значениями dpi плохие. Скорее наоборот. Высокое значение dpi чаще всего означает, что в устройстве действительно установлен мощный сенсор. Другое дело, что даже для самых лучших сенсоров dpi лучше ставить поменьше. А производителям нужны продажи, вот они и делают упор на большие цифры, это привлекает покупателей.

http://mousingame.blogspot.ru/2014/06/dpi-cpi.html

PS ещё раз кратенько:
DPI (dots-per-inch) – количество точек на дюйм (1 дюйм = 2.54 сантиметра) , этот параметр указывает сколько раз мышь посылает измерений на один дюйм. Например, 800 DPI означает, что, проехав один дюйм, операционной системе будет передано 800 измерений. Отсюда следует вывод: чем больше DPI, тем точнее мышь. Чаще всего встречаются мыши с 800, 1600, 2000 DPI и более. Однако при увеличении DPI так же и увеличивается скорость передвижения курсора. Мышь с 1600 DPI будет двигаться в 2,5 раза быстрее, чем обычная мышь. Это не очень удобно при работе в офисных приложениях, в графических пакетах и т. п. Уже при 1600 DPI курсор «бегает» по рабочему столу очень резво и управлять им достаточно сложно. А из-за этого быстрее устает рука. Стандартная офисная мышь имеет 400-800 DPI и для обычной работы в офисных приложениях этого вполне достаточно. Для чего же тогда нужна большая чувствительность сенсора? Для компьютерных игр. И именно благодаря компьютерным играм мышки начали активно эволюционировать: из динозавров с валиком до современных очень удобных и технологичных мышей с лазерным сенсором. И сейчас технология достигла высочайших высот в повышении комфортности использования электронного грызуна.

Обсуждение закрыто.