[ExpASFilter] Update README.md

This commit is contained in:
X9VoiD 2020-07-27 16:49:18 +08:00 committed by GitHub
parent c3be704e32
commit c807ac5059
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,6 +1,6 @@
# ExpASFilter
This filter uses machine learning techniques to process cursor points of up to N samples and M degree of complexity. It can be configured to be used as a latency compensation filter, or a low-latency jitter-reduction filter.
A general purpose filter which uses machine learning techniques to process cursor points of up to N samples and M degree of complexity. It can be configured to be used as a latency compensation filter, or a low-latency jitter-reduction filter.
# Installation
@ -11,10 +11,13 @@ Donwnload the plugins from [latest releases.](https://github.com/X9VoiD/OTDPlugi
These are the different configuration knobs for the filter.
## Compensation
Amount of time in milliseconds to compute into the future. Reduces perceived latency upon proper configuration.
## Offset
Amount of time in milliseconds to offset the prediction for the next point.
* Zero Offset - Filter will apply sub-zero latency cursor correction.
* Positive Offset - Filter will try to predict future cursor position.
* Negative Offset - Filter will delay cursor position to smooth out movement.
> *Over compensating may result in inaccurate and erratic cursor movement.*
> **Gets overridden by [Report Rate Synchronization](https://github.com/X9VoiD/OTDPlugins/wiki/ExperimentalASFilter#synchronize-to-report-rate)**
## Samples
@ -22,50 +25,26 @@ Determines how long of a history to keep to feed into the filter.
A sample is defined as an update in cursor position.
* `Low sample count` means faster response to a cursor's velocity/acceleration (check [Degree](https://github.com/X9VoiD/OTDPlugins/wiki/ExperimentalASFilter#degree)) but results to discontinuous cursor movement.
* `High sample count` means better cursor continuity but at the cost of possibly increasing latency when applied in conjunction to incompatible configurations.
* `Sample count` is generally a trade-off between CPU usage and accuracy.
> **Sample must be Degree +1!**
> *Good sample count for first degree is 5-8, second degree is 6-10*
## Degree
## Complexity
Determines the complexity of prediction to compute by the filter.
First degree complexity (detects and predicts future velocity)
Second degree complexity (detects and predicts future acceleration)
> **Higher degrees are not recommended to use.**
> **Higher complexities might require normalization to work correctly.**
## Normalize
Determines whether to convert cursor position scale to a maximum of 1. May or may not have any effect on the filter.
Determines whether to convert cursor position scale to a maximum of 1. Helps when using high complexity
> **_Screen Width_ and _Screen Height_ have to be configured if turning on normalization**
## Synchronize to Report Rate
Overrides then calculates [Compensation](https://github.com/X9VoiD/OTDPlugins/wiki/ExperimentalASFilter#compensation) using the report rate of the connected tablet.
> _Improves cursor continuity._
> **Requires Reports Ahead**
## Reports Ahead
Calculates [Compensation](https://github.com/X9VoiD/OTDPlugins/wiki/ExperimentalASFilter#compensation) with:
> `Report Rate * Reports Ahead`
> Effectively predicts a future cursor position when filter is configured properly.
## Exponential Weighted Polynomial Regression
Exponentially prioritize more recent cursor point samples in efforts of reducing latency when filtering with high sample counts.
# Recommended Settings (for 266hz tablets)
| Settings | Value |
| :--- | :--- |
| Compensation | n/a |
| Samples | 6 |
| Degree | 1 |
| Synchronize | Yes |
| Reports Ahead | 8 |
| Exponential | Yes |
| Compensation | 0 |
| Samples | 20 |
| Complexity | 2 |
| Normalization | Yes |