Wim Taymans | 37d98c2 | 2004-06-08 11:47:35 +0000 | [diff] [blame] | 1 | The Smoke Codec |
| 2 | --------------- |
| 3 | |
| 4 | This is a very simple compression algorithm I was toying with when doing a |
| 5 | Java based player. Decoding a JPEG in Java has acceptable speed so this codec |
| 6 | tries to exploit that feature. The algorithm first compares the last and the |
| 7 | new image and finds all 16x16 blocks that have a squared difference bigger than |
| 8 | a configurable threshold. Then all these blocks are compressed into an NxM JPEG. |
| 9 | The quality of the JPEG is inversely proportional to the number of blocks, this |
| 10 | way, the picture quality degrades with heavy motion scenes but the bitrate stays |
| 11 | more or less constant. |
| 12 | Decoding decompresses the JPEG and then updates the old picture with the new |
| 13 | blocks. |
| 14 | |
| 15 | |
| 16 | TODO: |
| 17 | ---- |
| 18 | - make format extensible |
| 19 | - motion vectors |
| 20 | - do some real bitrate control |