summaryrefslogtreecommitdiff
path: root/ext/jpeg/README
diff options
context:
space:
mode:
Diffstat (limited to 'ext/jpeg/README')
-rw-r--r--ext/jpeg/README20
1 files changed, 20 insertions, 0 deletions
diff --git a/ext/jpeg/README b/ext/jpeg/README
new file mode 100644
index 0000000..ffa1d0c
--- /dev/null
+++ b/ext/jpeg/README
@@ -0,0 +1,20 @@
+The Smoke Codec
+---------------
+
+This is a very simple compression algorithm I was toying with when doing a
+Java based player. Decoding a JPEG in Java has acceptable speed so this codec
+tries to exploit that feature. The algorithm first compares the last and the
+new image and finds all 16x16 blocks that have a squared difference bigger than
+a configurable threshold. Then all these blocks are compressed into an NxM JPEG.
+The quality of the JPEG is inversely proportional to the number of blocks, this
+way, the picture quality degrades with heavy motion scenes but the bitrate stays
+more or less constant.
+Decoding decompresses the JPEG and then updates the old picture with the new
+blocks.
+
+
+TODO:
+----
+- make format extensible
+- motion vectors
+- do some real bitrate control