36 lines
499 B
Markdown
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
|
|
```
|
|
|
|
```
|