Skip to content

Latest commit

 

History

History
107 lines (77 loc) · 5.6 KB

README.md

File metadata and controls

107 lines (77 loc) · 5.6 KB

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