aboutsummaryrefslogtreecommitdiff
path: root/evc/spec.md
blob: da05da10ae94498a157f79d053d2d3c38c09081a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# The Experimental Video Codec

## File format

- magic bytes: `5e b1 c3 08`
- resolution: _`u16, u16`_
- frame count: _`u64`_
- frames (repeated [frame count]-times)
  - block type
  - block
    - **Literal-Block** (pixels saved)
      - pixels: _`[[u8; 3]]`_
    - **Split-Block** (delegated to 2 sub-blocks split on the longest axis)
      - sub-blocks: _`[block; 2]` (see above)_
    - **Reference-Block** (reuses previous frame in some way)
      - translation: _`i8, i8`_
      <!-- - factor: _`i8`_ (represents multiplication with $1.1^n$) -->

### Todo

- JPEG compress I-Blocks
- Sub-pixel translation
- fade
- general compression (gzip oder so)