Skip to content

tom2238/apt-encoder

Repository files navigation

NOAA APT encoder

Load TGA image (24bit, RGB) and encode it to APT (Automatic Picture Transmission) signal.

Information and description:

NOAA automatic picture transmission (APT) encoder
Usage: Debug/noaa_apt (-i <file> [-s <file>] | -I) [(-d <device> | -O) -m <mode> -lcrM]
  -i <filename> Input TGA image (909px width, 24bit RGB)
  -s <filename> Second input TGA image (B channel, mode ignored)
  -d <device>   OSS audio device (default /dev/dsp) or file
  -m <mode>     Channel B data mode (R,G,B,N,Y,C)
  -I            Read image data from stdin
  -O            Write audio data to stdout
  -M            Multi image reading from stdin
  -l            Enable infinite image loop
  -c            Enable user console
  -r            Device is regular file (write WAV audio file)
  -h            Show this help
                Build: 21:52:59 Aug 18 2019, GCC 5.3.0
  • Transmit one image and exit: guest@porteus:~$ padsp ./apt-encoder -i SourceTestImage.tga
  • Single mode with loop and console: guest@porteus:~$ padsp ./apt-encoder -lci SourceTestImage.tga
  • Multi mode with loop and console: guest@porteus:~$ padsp ./apt-encoder -lci SourceTestImage.tga -s 139.tga
  • Write WAV audio file using color mode: guest@porteus:~$ ./apt-encoder -i SourceTestImage.tga -m C -rd audio.wav
  • Read from stdin and write to stdout: guest@porteus:~$ cat SourceTestImage.tga | ./apt-encoder -OI | aplay -r 24000 -f S16_LE
  • Transmit some noise: guest@porteus:~$ cat /dev/urandom | ./apt-encoder -OIM | aplay -r 24000 -f S16_LE
  • Run as: guest@porteus:~$ padsp noaa_apt -lci SourceTestImage.tga
  • Showing all modes (without C): Sync only -> Negative -> Red -> Green -> Blue -> Y -> Negative -> Red -> Green -> Blue -> Y (reload image) -> Negative -> Sync only -> Blue
Source image
Decoded image
Source audio Sample

Special mode C - color

Mode use 12bit (4096 colors, square root of 4096 is 64) look up table. Each color have 4 bit resolution (16 values). Channel A contain Y-pos values and channel B contain X-pos values (position in LUT). Image quality depends on LUT (color position in table). Current LUT is not ideal. Only X-pos is good. For decoding use apt-colorm and for better image quality disable gamma correction in WxToImg.

Look up table (64x64, upscaled 4x)
Original image
Channel A image
Channel B image
Decoded color image

TODO

  • Add support to ALSA/Portaudio

APT

APT means Automatic Picture Transmission. It is a system, developed in the 1960s, made to transmit low-resolution analog image for weather satellites. A complete APT image takes around 12 minutes to be built up at a rate of 2 lines per second. The data is broadcasted by the satellite. The stream is obtained by the AVHRR/3 instrument. Two channels with a low resolution are emitting all the time using VHF signals at reduced rates (around 120 lines/minutes). The two channels are composed of :

  • Channel A: A visible frequency range channel providing APT imagery during the day.
  • Channel B: An IR channel providing APT imagery at any time of the day and the night.

APT Frame format:

The broadcasted transmission is made of two channels for the image, synchronization and telemetry information. A complete APT Video Line Time is 2080 pixels long (990 pixels for each image). One APT line is composed of one line for Channel A video followed by one line for Channel B video.

  • Telemetry frame: Each video channel A and B have their own telemetry frame Each telemetry frames consists of 16 points (wedges): height of 128 video lines Telemetry frame rate is 1 frame per 64 seconds Each telemetry point is repeated on 8 successive APT lines

  • Space and minute marker: Time between two successive markers is one minute Minute markers are repeated on 4 successive lines, with 2 lines black and 2 lines white B video is always an IR channel (Ch. 4 usually), so spaces are white and minute markers black When A Video is a visible channel, spaces are black and minute markers white; otherwise it appears like B video


APT frame

APT Modulations

The systems uses Amplitude Modulation and Frequency Modulation. Each 8-bit word of APT data (256 levels) is then amplitude modulated with a 2.4kHz sub-carrier which results in an analog signal with a 34kHz bandwidth. This signal is frequency modulated such that one amplitude corresponds to one frequency on a 137-138Mhz carrier (depending on the satellite).

APT Synchronization

  • Sync A precedes Channel A data. Is a 1040 Hz square wave - 7 cycles
  • Sync B precedes Channel B data. Is an 832 pps pulse train - 7 pulses

APT Video line format

APT Video Format

About

Encode images to NOAA APT signal. Save to file or transmit in real time.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages