This repository holds the specefication and a usable reference implementation of PCSI. The respository contains code to simulate PCSI transmission and code to transmit & receive PCSI images using a TNC connected via KISS to transmit AX.25 frames.
Author: KD9PDP
License: GPL-3.0
PCSI is a way of transmitting imaging data over unconnected networks where receiving stations may each receive different random packets (due to corruption from noise or blocked signals) yet each receiving station can individually reconstruct the entire original image with high fidelity only with the packets it received. High quality, full frame images, can be reconstructed with as little as 10% of the original data being transmitted or received. Even if a receiver joins the broadcast mid-transmission, it will be able to reconstruct the full image.
pcsiGUI.py is a graphical user interface for sending, receiving, and processing PCSI images. See the documentation here for instructions and videos.
pcsiSimulator.py is a command line tool, see "./pcsiSimulator.py --help" for details.
pcsiSerial.py is a work in progress. So far it transmits AX.25 PCSI frames.
Precompiled GUI packages are available for Windows, MacOS, and Linux at (https://github.com/maqifrnswa/PCSI/releases)
Bleeding edge development snapshots are available! These are built continiously, so new features and bug fixes will show up here first, but there may be new bugs. Please test them out and report issues you find here on github.
You can also build/run it yourself. You need the following:
These can all be installed using python3 -m pip install opencv-python numpy imageio bitstring pylbfgs pyserial pillow
apt
), (Python.org), or Anaconda.sudo apt-get install python3-numpy
). All are available on PyPi so they can at least be installed using pip.python3 pcsiGUI.py
.pip install opencv-python numpy imageio bitstring pylbfgs pyserial pillow
in a command window.git clone https://github.com/maqifrnswa/PCSI.git
) or just downloading it from (https://github.com/maqifrnswa/PCSI/archive/master.zip).cd PCSI
and run the GUI or whatever command you want to use e.g., python3 pcsiGUI.py
dist.sh
for hints and pip install pyinstaller
.