faultwaves/plugins/dfpworm/dfpwm-spec.md
2025-09-17 01:20:19 -06:00

36 lines
499 B
Markdown

# Decoding
```
sample = 1.0 if predictor(bit) else -1.0`
```
# Encoding
```
if sample > last_predictor or (sample == last_predictor == 1.0):
bit = predictor(1)
else:
bit = predictor(0)
```
# Predictor
## State
charge: f32 = 0.0
strength: f32 = 1.0
last_bit: bool = false
## Parameters
- strength_increase: f32 = 7.0 / 127.0
- strength_decrease: f32 = 20.0 / 128.0
## Procedure
### Input comprehension
```
target: f32 = 1.0 if bit == true else -1.0
```
### Charge Adjustment
```
```