Skip to content
A robust version of the JPEG image format, for transmission over an unreliable medium.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
COPYING Update readme and licensing May 31, 2011
Makefile Update Makefile Oct 31, 2012
README Add support for single channel greyscale JPEGs Jun 13, 2018
main.c Additional changes for quality setting. Jun 30, 2016
rs8.h Initial check-in May 30, 2011
ssdv.c Add some packet sanity checks Jul 4, 2018


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

Created by Philip Heron <>

A robust packetised version of the JPEG image format.

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


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

This encodes the 'input.jpeg' image file into SSDV packets stored in the 'output.bin' file. TEST01 (the 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.


$ ssdv -d input.bin output.jpeg

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


Only JPEG files are supported, with the following limitations:

 - Greyscale or YUV/YCbCr colour formats
 - 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




* Allow the decoder to handle multiple images in the input stream.
* Experiment with adaptive or multiple huffman tables.

You can’t perform that action at this time.