Optofidelity: PWM Compensation

This change adds PWM compensation by estimating the characteristics of
the PWM artifacts (pulse response and frequency) at the time of
screen calibration.
During the processing, this compensation is applied to all normalized
frames.
More accurate PWM compensation can be done if the bottom of the screen
will always display white in a test case. This active PWM compensation
reads the PWM artifacts from that area and compensates them over the
whole screen. Since not all tests show a white area at the bottom, this
has to be enabled separately.

BUG=chromium:536633
TEST=test cases included

Change-Id: I835524d58221cfc60e492af4014124f3a544311e
Reviewed-on: https://chromium-review.googlesource.com/336525
Commit-Ready: Dennis Kempin <denniskempin@chromium.org>
Tested-by: Dennis Kempin <denniskempin@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@chromium.org>
6 files changed
tree: d48e1aeb1f53d95221ab21579689d6b84a216660
  1. .gitignore
  2. OWNERS
  3. optofidelity/
  4. quickstep/
  5. setup.py
  6. touchbotI/
  7. touchbotII/