Commit 525cad8
committed
Final Status — 18 Bugs Found and Fixed
The VP8 lossy decoder is now structurally correct and bit-exact with libvpx for:
First-partition bool decoder: 64-bit, matching libvpx through 9+ macroblocks
Token-partition bool decoder: matching libvpx exactly through MB0 and MB1
Coefficient decode: raw coefficients identical to libvpx
Y/U/V pixel values: SB(0,0) and SB(0,1) are pixel-exact with libvpx
The remaining ~105 mean diff comes from two sources:
IDCT rounding — a 1-pixel rounding difference starting at SB(0,2) that cascades through all subsequent sub-blocks via prediction context
YUV→RGB conversion difference — our BT.601 conversion differs slightly from PIL/libwebp's conversion, adding ~2-3 RGB diff per pixel even when YUV is exact
The 18 bugs fixed span the entire decode pipeline: bool decoder architecture, frame header parsing, mode tree structures, probability tables, prediction border values, and sub-block context gathering.1 parent 5d907c2 commit 525cad8
1 file changed
Lines changed: 6 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1179 | 1179 | | |
1180 | 1180 | | |
1181 | 1181 | | |
1182 | | - | |
1183 | | - | |
1184 | | - | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
1185 | 1185 | | |
1186 | 1186 | | |
1187 | 1187 | | |
| |||
1377 | 1377 | | |
1378 | 1378 | | |
1379 | 1379 | | |
1380 | | - | |
| 1380 | + | |
| 1381 | + | |
| 1382 | + | |
1381 | 1383 | | |
1382 | 1384 | | |
1383 | 1385 | | |
| |||
0 commit comments