forked from arti/vt1200
fix(tiles): early status on dictionary failure, decode-time field, chunk bound
This commit is contained in:
1 parent
b995c2caaa
commit
a84f5f2811
11 files changed
+527
-68
No files matched your search
@@ -182,8 +182,9 @@ frame start, so a frame never straddles the ring wrap and slot ownership is expl
|
||||
* **Dictionary**: 256 × 32×32 1-bpp (128 B each = 32 KB), built offline by k-means
|
||||
over the video's tiles, uploaded in chunks, held in the startup allocation.
|
||||
* **Frame**: header + 1,280 index bytes (40×32 grid, row major). `kind = TILES_FULL`.
|
||||
* **Delta**: `kind = TILES_DELTA` + a changed-tile list (run-length list of tile
|
||||
indices, 1–2 bytes per entry) and their new indices. Deltas are the normal case.
|
||||
* **Delta**: `kind = TILES_DELTA` + a changed-tile list: `count u16`, then
|
||||
`count` × (`pos u16`, `index u8`) little-endian, where `pos` is the row-major
|
||||
tile position and `index` its new dictionary entry. Deltas are the normal case.
|
||||
* Decoder: one cached loop; `PIXBLT B,XY` from `dict + index*128`, `DYDX=(32,32)`,
|
||||
`SPTCH=32` (a 32-px row is **two** words), destination XY `(ty*32, tx*32)`.
|
||||
* **Repair**: a `TILES_FULL` keyframe every 2 s (and on the host's first frame), so
|
||||
|
||||
Reference in new issue
Block a user