пятница, 8 апреля 2016 г.

Точный сенсор мыши глазами logitech. Часть 2.


Продолжаем обсуждение недостатков современных оптических сенсоров на основании видеоматериала от компании Logitech. В этой части пойдет речь от таких проблемах, как jitter, pixel walk, circle drift.

Ссылка на оригинальное видео

ПЕРВАЯ ЧАСТЬ


Ripple (jitter)

Ripple - это случайная ошибка сенсора, делающая выдаваемую сенсором траекторию движения дрожащей, волнистой, "нервной". Следует отметить, что слова ripple и jitter имеют одинаковый смысл. Внутри logitech используется термин ripple ("рябь" - англ.), в то время как среди пользователей более популярным является jitter ("дрожание").

Различают высокочастотный и низкочастотный jitter.


Важно понимать, что проблема jitter'a непосредственно связана с разрешением сенсора (dpi/cpi). И это вполне естественно. Чем больше вы поднимаете dpi, тем больше вы получаете ошибок. Приближаясь к шумовому порогу сенсора, система перестает понимать, какой сигнал представляет собой настоящее движение, а какой просто является случайным шумом на матрице.

Примечания.
1. Если мышь позволяет устанавливать несколько значений dpi, в большинстве случаев следует отдавать предпочтение низким значениям.
2. Из представленного материала не совсем ясно, в чем состоит принципиальное отличие низкочастотного jitter'a от угловой ошибки "3-сигма".

Dropouts (no DPI/CPI)

Суть данной проблемы состоит в том, что в некоторых случаях сенсор полностью перестает понимать, куда движется мышь и не выдает никаких считываний. На практике это выглядит так: пользователь ведет мышь, а курсор на экране в какой-то момент останавливается, а затем снова продолжает свое движение.

Примечание. Вероятнее всего, разработчики сенсоров сталкиваются с проблемой dropouts еще на стадии тестирования сенсора при настройке высоты отрыва мыши, где основная задача - сделать так, чтобы в процессе работы с мышкой не приходилось поднимать ее слишком высоко, но при этом сохранить работоспособность на большинстве покрытий.

Пропуск пикселя - Pixel walk (low speed accuracy) 

Если вы постепенно уменьшаете скорость движения мыши, в какой-то момент ваша система приходит в такой состояние, когда ей приходится угадывать, стоит ли мышь на месте, либо просто очень медленно движется. Т.е. для каждого сенсора существует некая "стартовая скорость". И только после достижения этой скорости сенсор начинает выдавать параметры движения. Но если эта скорость слишком велика, может сложиться ситуация, когда пользователь медленно ведет мышь, а курсор/прицел абсолютно не двигается. Проблема осложняется еще и тем фактом, что люди использует низкие скорости как раз в тех случаях, где нужно быть как можно точнее. А в результате получают совершенно обратный эффект. Для разработчиков сенсоров пропуск пикселя - это очень серьезная проблема, которую порою трудно решить.

Примечание. Технически, пропус пикселя заключается в том, что сенсор определяет движение, сравнивая между собой фотографии поверхности. И здесь вся соль заключается в скорости фотографирования! Первыми "проблемными" мышками с пропуском пикселя были устройства на базе лазерного сенсора Avago 9500 (SteelSeries Xai/Sensei), где скорость фотографирования 12000 кадров в секунду! Большая скорость фотографирования позволила существенно повысить точность сенсора на обычных скоростях, но при медленном движении две последовательные фотографии, сделанные с интервалом 0,000083 секунды (1/12000), становятся практически неотличимыми друг от друга. Поэтому, в последнем поколении сенсоров (например Pixart S3988/PMW3366) скорость фотографирования меняется в зависимости от скорости движения самой мышки: от 3000 до 12000 кадров в секунду.

Круговой сдвиг - circle drift (timing)

Лучший способ проверки работы сенсора - это посмотреть, насколько хорошо обрабатываются окружности. Если мы совершим нашей мышью идеальное круговое движение, то на экране монитора курсор должен описать точно такой же круг и вернуться строго в исходную точку. Однако, по разным причинам, этого может не случиться. Часть этих причин была упомянута выше - это могут быть различные угловые ошибки, вариации cpi от скорости и т.д. Но кроме того, проблемы могут быть связаны с синхронизацией - т.е. наша система может слишком поздно стартовать, невовремя передавать информацию на компьютер и т.д. В этом случае, если мы будет продолжать рисовать окружности, их отображение на мониторе будет постепенно уплывать в сторону. И такое поведение сенсора говорит нам том, что что-то работает неправильно.

* по данным форума overclock.net
Примечание. Исследовательское оборудование logitech позволяет очень точно и с разными скоростями воспроизводить круговое движение мыши.

Заключение

Знание основных типов ошибок оптического сенсора, поможет более объективно и конкретно оценивать ту или иную мышь. Например, можно сказать, что Roccat Kone XTD имеет высокую случайную вариацию cpi; A4tech A9 - jitter на высоких dpi; у Razer Mamba высокая угловая ошибка "3-сигма" и т.д.


ЧИТАЙТЕ ТАКЖЕ

2 комментария:

  1. Здравствуйте!
    Купил g100s, там в нативных dpi указаны 250 и 500.
    Мне привычно 400 и я выставил это значение для рабочего стола. А в игре ставлю на всякий случай 500. Правильно ли я делаю или можно юзать 400?

    ОтветитьУдалить
    Ответы
    1. Не знаю, в моей g100s нельзя было выставить 400 dpi. Может новая версия драйвера вышла. В любом случае, мне кажется, что 400 dpi будут пересчитываться с 500 dpi на уровне операционной системы, а не в самой мышке. Это как-то неочень.

      Удалить