Skip to content

Latest commit

Β 

History

History
259 lines (209 loc) Β· 12.6 KB

File metadata and controls

259 lines (209 loc) Β· 12.6 KB

SSTV Mode Comparison Chart

Transmission Speed vs Quality

Fast ←──────────────────────────────────────────→ Slow/High Quality

Robot36        PD120           PD180
  β”‚             β”‚               β”‚
  ●─────────────●───────────────●
 36s           2m 6s          3m 6s
320Γ—240       640Γ—496        640Γ—496
76.8K px      317K px        317K px

Detailed Timing Comparison

ROBOT36 (36 seconds total)
β”Œβ”€9ms─┬─3ms─┬────88ms────┬─4.5ms─┬─1.5ms─┬───44ms───┐
β”‚Sync β”‚Prchβ”‚     Y      β”‚ Sep   β”‚ Prch  β”‚   R-Y/B-Y β”‚  150ms per line
β””β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  Γ— 240 lines
                                                          = 36 seconds

PD120 (2 minutes 6 seconds total)
β”Œβ”€20ms─┬─2ms─┬───121.6ms───┬───121.6ms───┬───121.6ms───┬───121.6ms───┐
β”‚ Sync β”‚Prchβ”‚   Y-even    β”‚    V-avg    β”‚    U-avg    β”‚   Y-odd     β”‚  508ms per line
β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  Γ— 248 lines
                                                                          = 126 seconds
                                                                          = 2m 6s

PD180 (3 minutes 6 seconds total)
β”Œβ”€20ms─┬─2ms─┬───182.4ms───┬───182.4ms───┬───182.4ms───┬───182.4ms───┐
β”‚ Sync β”‚Prchβ”‚   Y-even    β”‚    V-avg    β”‚    U-avg    β”‚   Y-odd     β”‚  752ms per line
β””β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  Γ— 248 lines
                                                                          = 186 seconds
                                                                          = 3m 6s

Pixel Dwell Time Comparison

Time per pixel (affects SNR and quality):

Robot36:   275 Β΅s  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
PD120:     190 Β΅s  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
PD180:     286 Β΅s  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  ← 50% more than PD120!

Longer pixel time = Better SNR = Cleaner image in weak signals

Resolution Comparison

Robot36:  320Γ—240 = 76,800 pixels
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β”‚
          β”‚β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β”‚  320px wide
          β”‚β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β”‚  240px tall
          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

PD120:    640Γ—496 = 317,440 pixels (4.1Γ— more than Robot36)
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β”‚
          β”‚β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β”‚
          β”‚β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β”‚  640px wide
          β”‚β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β”‚  496px tall
          β”‚β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β”‚
          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

PD180:    640Γ—496 = 317,440 pixels (same resolution as PD120)
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β”‚  ← Higher quality
          β”‚β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β”‚     (better SNR)
          β”‚β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β”‚  640px wide
          β”‚β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β”‚  496px tall
          β”‚β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β–“β”‚
          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Color Encoding Strategies

Robot36: Interlaced YUV
─────────────────────────
Line 0:  Yβ‚€[320] + R-Yβ‚€[160]  β†’ Row 0 (even)
Line 1:  Y₁[320] + B-Yβ‚€[160]  β†’ Row 1 (odd, uses R-Y from line 0)
Line 2:  Yβ‚‚[320] + R-Y₁[160]  β†’ Row 2 (even)
Line 3:  Y₃[320] + B-Y₁[160]  β†’ Row 3 (odd, uses R-Y from line 2)
...
Pairs alternate: R-Y then B-Y chroma
1 row per scan line, chroma paired across lines

PD120: Dual-Luminance
─────────────────────────
Line 0:  Y-evenβ‚€[640] + V-avgβ‚€[640] + U-avgβ‚€[640] + Y-oddβ‚€[640]  β†’ Row 0 & Row 1
Line 1:  Y-even₁[640] + V-avg₁[640] + U-avg₁[640] + Y-odd₁[640]  β†’ Row 2 & Row 3
Line 2:  Y-evenβ‚‚[640] + V-avgβ‚‚[640] + U-avgβ‚‚[640] + Y-oddβ‚‚[640]  β†’ Row 4 & Row 5
...
2 rows per scan line, chroma shared within each line

PD180: Dual-Luminance (Same structure as PD120, longer pixel time)
─────────────────────────
Line 0:  Y-evenβ‚€[640] + V-avgβ‚€[640] + U-avgβ‚€[640] + Y-oddβ‚€[640]  β†’ Row 0 & Row 1
         β”‚    50% LONGER PIXEL TIME (286Β΅s vs 190Β΅s)    β”‚
Line 1:  Y-even₁[640] + V-avg₁[640] + U-avg₁[640] + Y-odd₁[640]  β†’ Row 2 & Row 3
...
2 rows per scan line, better SNR due to longer integration time

SNR Requirements

Minimum Signal-to-Noise Ratio for reliable decoding:

Robot36:  20 dB  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
PD120:    18 dB  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
PD180:    16 dB  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    ← Can decode weaker signals!

Lower SNR required = Works better in noisy conditions

Use Case Decision Tree

Need to transmit SSTV image?
  β”‚
  β”œβ”€ Fast QSO/contact? (< 1 min)
  β”‚   └─→ Use Robot36 (36 seconds)
  β”‚
  β”œβ”€ ISS pass? (5-8 min window)
  β”‚   └─→ Use PD120 (2m 6s, multiple images possible)
  β”‚
  β”œβ”€ High quality needed + time available?
  β”‚   β”‚
  β”‚   β”œβ”€ Good signal strength?
  β”‚   β”‚   └─→ Use PD120 (2m 6s, efficient)
  β”‚   β”‚
  β”‚   └─ Weak signal / maximum quality?
  β”‚       └─→ Use PD180 (3m 6s, best SNR)
  β”‚
  └─ Dedicated SSTV session / commemorative image?
      └─→ Use PD180 (3m 6s, gallery quality)

Technical Specifications Table

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Parameter  β”‚ Robot36  β”‚  PD120   β”‚  PD180   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Resolution  β”‚ 320Γ—240  β”‚ 640Γ—496  β”‚ 640Γ—496  β”‚
β”‚ Total Pixelsβ”‚  76,800  β”‚ 317,440  β”‚ 317,440  β”‚
β”‚ Sync Pulse  β”‚   9 ms   β”‚  20 ms   β”‚  20 ms   β”‚
β”‚ Line Time   β”‚  150 ms  β”‚  508 ms  β”‚  752 ms  β”‚
β”‚ Pixel Time  β”‚  275 Β΅s  β”‚  190 Β΅s  β”‚  286 Β΅s  β”‚
β”‚ Total Time  β”‚   36 s   β”‚  126 s   β”‚  186 s   β”‚
β”‚ VIS Code    β”‚    8     β”‚    95    β”‚    96    β”‚
β”‚ Min SNR     β”‚  20 dB   β”‚  18 dB   β”‚  16 dB   β”‚
β”‚ Color Mode  β”‚Intrlcd YUVβ”‚Dual-lumaβ”‚Dual-lumaβ”‚
β”‚ Rows/Scan   β”‚    1     β”‚    2     β”‚    2     β”‚
β”‚ ISS Usage   β”‚   Rare   β”‚  Common  β”‚Previous  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

SNR Improvement Analysis

PD180 vs PD120 SNR improvement:

Pixel time ratio: 286Β΅s / 190Β΅s = 1.505

SNR improvement = 10 Γ— log₁₀(1.505)
                = 10 Γ— 0.178
                = 1.78 dB

In practice:
- PD120 at 18 dB SNR = good quality
- PD180 at 16 dB SNR = same quality
- PD180 at 18 dB SNR = better quality than PD120 at 18 dB

Translation:
PD180 can decode signals that are 50% weaker (in power)
than what PD120 requires for the same quality level.

Bandwidth Usage

All modes use same frequency range:

Frequency Range: 1200-2300 Hz (1100 Hz bandwidth)
  β”‚
  β”œβ”€ 1200 Hz: Sync pulse
  β”œβ”€ 1500 Hz: Black level
  β”œβ”€ 1900 Hz: Center (gray)
  └─ 2300 Hz: White level

Audio Bandwidth Required: ~3 kHz (1000-4000 Hz safe range)

Same for Robot36, PD120, and PD180!

Memory and CPU Requirements

Memory Usage (image buffer):
  Robot36:  320 Γ— 240 Γ— 4 bytes =  307,200 bytes (~300 KB)
  PD120:    640 Γ— 496 Γ— 4 bytes = 1,269,760 bytes (~1.2 MB)
  PD180:    640 Γ— 496 Γ— 4 bytes = 1,269,760 bytes (~1.2 MB)

CPU Usage (single core):
  Robot36:  5-10%   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
  PD120:    8-15%   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
  PD180:   10-18%   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  (slightly higher due to longer lines)

All modes are real-time capable on modern hardware.

Quick Reference: When to Use Each Mode

╔═══════════════════════════════════════════════════════════╗
β•‘  CHOOSE ROBOT36 WHEN:                                               β•‘
β•‘  βœ“ Time is limited (< 1 minute)                                     β•‘
β•‘  βœ“ Fast QSO/contact                                                 β•‘
β•‘  βœ“ Signal quality check                                             β•‘
β•‘  βœ“ Lower resolution acceptable                                      β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

╔═══════════════════════════════════════════════════════════╗
β•‘  CHOOSE PD120 WHEN:                                                 β•‘
β•‘  βœ“ ISS SSTV events (current standard)                               β•‘
β•‘  βœ“ Good balance of speed and quality                                β•‘
β•‘  βœ“ High resolution needed                                           β•‘
β•‘  βœ“ Moderate time available (2-3 minutes)                            β•‘
β•‘  βœ“ Mobile operation                                                 β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

╔═══════════════════════════════════════════════════════════╗
β•‘  CHOOSE PD180 WHEN:                                                 β•‘
β•‘  βœ“ Maximum quality desired                                          β•‘
β•‘  βœ“ Weak signal conditions                                           β•‘
β•‘  βœ“ Time available (3+ minutes)                                      β•‘
β•‘  βœ“ Gallery-quality images                                           β•‘
β•‘  βœ“ Commemorative/special events                                     β•‘
β•‘  βœ“ Recording from audio files                                       β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Conclusion

Three modes, three purposes:

  • Robot36: Fast and efficient (36s)
  • PD120: Balanced standard (2m 6s)
  • PD180: Quality champion (3m 6s)

Choose based on your time constraints, signal conditions, and quality requirements!