• Home
Name Date Size #Lines LOC

..--

READMED12-May-2024780 2117

gstjpeg.cD12-May-20241.4 KiB4723

gstjpeg.hD12-May-20241 KiB368

gstjpegdec.cD12-May-202451.7 KiB1,7311,347

gstjpegdec.hD12-May-20243.2 KiB11863

gstjpegelements.hD12-May-20241.2 KiB3811

gstjpegenc.cD12-May-202419.7 KiB661479

gstjpegenc.hD12-May-20242.7 KiB10461

gstjpegplugin.cD12-May-20241.4 KiB5325

gstsmokedec.cD12-May-20248.8 KiB337243

gstsmokedec.hD12-May-20241.9 KiB7638

gstsmokeenc.cD12-May-202414.3 KiB514383

gstsmokeenc.hD12-May-20241.9 KiB7638

meson.buildD12-May-2024623 2421

smokecodec.cD12-May-202417.4 KiB710547

smokecodec.hD12-May-20244.8 KiB12073

smokeformat.hD12-May-20241.2 KiB4719

README

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