SSDV packaging for hibbian
Go to file
Philip Heron 6fb20f990d Expanded the README with some extra details 2015-10-10 17:21:16 +01:00
.gitignore Only reset the MCU DC values for the first MCU on each packet 2012-01-29 18:56:17 +00:00
COPYING Update readme and licensing 2011-05-31 09:00:51 +01:00
Makefile Update Makefile 2012-10-31 23:14:28 +00:00
README Expanded the README with some extra details 2015-10-10 17:21:16 +01:00
main.c Add a useful usage message. 2014-08-28 20:35:31 +01:00
rs8.c Initial check-in 2011-05-30 23:37:33 +01:00
rs8.h Initial check-in 2011-05-30 23:37:33 +01:00
ssdv.c Make the non-FEC packets 256 bytes long, same length as normal packets. 2014-08-28 20:13:46 +01:00
ssdv.h Make the non-FEC packets 256 bytes long, same length as normal packets. 2014-08-28 20:13:46 +01:00

README

SSDV - simple command line app for encoding / decoding SSDV image data

Created by Philip Heron <phil@sanslogic.co.uk>
http://www.sanslogic.co.uk/ssdv/

A robust packetised version of the JPEG image format.

Uses the Reed-Solomon codec written by Phil Karn, KA9Q.

ENCODING

$ ssdv -e -c CALLSIGN -i ID input.jpeg output.bin

This encodes the 'input.jpeg' image file into SSDV packets stored in the 'output.bin' file. CALLSIGN (an alphanumeric string up to 6 characters) and ID (a number from 0-255) are encoded into the header of each packet. The ID should be changed for each new image transmitted to allow the decoder to identify when a new image begins.

The output file contains a series of SSDV packets, each packet always being 256 bytes in length. Additional data may be transmitted between each packet, the decoder will ignore this.

DECODING

$ ssdv -d input.bin output.jpeg

This decodes a file 'input.bin' containing a series of SSDV packets into the JPEG file 'output.jpeg'.

LIMITATIONS

Only JPEG files are supported, with the following limitations:

 - YUV/YCbCr colour format
 - Width and height must be a multiple of 16 (up to a resolution of 4080 x 4080)
 - Baseline DCT only
 - The total number of MCU blocks must not exceed 65535

INSTALLING

make

TODO

* Allow the decoder to handle multiple images in the input stream.
* Experiment with adaptive or multiple huffman tables.
* Quality setting (4 bit / 16 quality levels).