La SSDV radioamateur : comment transmettre et décoder des images numériques par radio ?

Banniere SSDV

Après avoir découvert la SSTV et ses différents modes, passons à une technique beaucoup moins connue : la SSDV radioamateur, pour Slow Scan Digital Video. Cette méthode permet de transmettre des images numériques par radio selon un principe très différent de celui de la SSTV traditionnelle.

Le nom pourrait laisser penser qu’il s’agit simplement d’une SSTV « passée au numérique ». En réalité, la philosophie est assez différente.

En SSTV classique, l’image est balayée ligne après ligne et transformée en tonalités audio.

Pour faire de la SSDV, on part d’une image JPEG découpée en une succession de petits paquets numériques destinés à être transmis par radio.

La SSDV radioamateur permet notamment d’utiliser la correction d’erreurs et de reconstruire une image même lorsque certains paquets n’ont pas été reçus. Ces caractéristiques expliquent son intérêt pour l’expérimentation radioamateur, mais aussi son développement dans le domaine des ballons stratosphériques et de la télémétrie radio.

SSTV et SSDV : deux philosophies différentes

Commençons par la SSTV traditionnelle.

Une image SSTV est transformée en une succession de tonalités audio correspondant notamment à la luminosité et aux composantes de couleur des pixels. Ces tonalités sont ensuite transmises par la radio.

On peut résumer ainsi : Image → balayage → tonalités audio → émetteur

À la réception : Récepteur → audio → décodeur SSTV → image

Un mode comme Martin M1 transmet par exemple une image de 320 × 256 pixels en environ 114 secondes. Le mode PD120 permet de transmettre 640 × 496 pixels en environ deux minutes.

La SSDV travaille autrement : Image JPEG → encodeur SSDV → paquets numériques → modem → émetteur

Et à la réception : Récepteur → démodulateur → paquets → décodeur SSDV → image JPEG

Voilà toute la différence.

La SSDV radioamateur ne décrit donc pas directement la modulation radio utilisée. Elle définit avant tout la manière dont l’image est préparée et découpée pour pouvoir être transportée par une liaison numérique.

comparaison SSTV/SSDV

SSTV et SSDV : deux façons de transmettre une image par radio. En SSTV, l’image est balayée ligne par ligne et transformée en tonalités audio. En SSDV, l’image JPEG est découpée en paquets numériques identifiés, transmis puis assemblés à la réception. La perte de certains paquets peut conduire à une reconstruction partielle de l’image.

Une image découpée en petits morceaux

Imaginons une photographie prise par la caméra d’un ballon stratosphérique.

Au lieu d’envoyer cette photographie comme un flux continu, l’encodeur SSDV transforme le JPEG afin de pouvoir le découper en une série de paquets indépendants.

Dans l’implémentation SSDV de référence créée par Philip Heron, les paquets ont par défaut une longueur de 256 octets.

Chaque paquet comporte des informations permettant de savoir ce qu’il contient et à quelle image il appartient.

On y trouve notamment :

  • un octet de synchronisation ;
  • le type de paquet ;
  • l’indicatif de la station ;
  • un numéro d’image ;
  • un numéro de paquet ;
  • les dimensions de l’image ;
  • des informations concernant le JPEG ;
  • une partie des données de l’image ;
  • un CRC ;
  • éventuellement des données de correction d’erreurs.

L’indicatif peut comporter jusqu’à six caractères. L’identifiant d’image permet de distinguer deux photographies successives, tandis que le numéro de paquet permet de remettre les différents morceaux dans le bon ordre.

Une image découpée en petits morceaux

Anatomie d’un paquet SSDV. Chaque paquet transporte une partie de l’image JPEG ainsi que les informations permettant de l’identifier et de la replacer dans l’image : indicatif, numéro d’image, numéro de paquet et paramètres associés. La correction d’erreurs Reed-Solomon améliore la robustesse de la transmission lorsque le signal radio est perturbé.

On pourrait comparer cela à l’envoi d’un puzzle par courrier : chaque enveloppe indique quel puzzle elle concerne et le numéro de la pièce qu’elle transporte.

Pourquoi ne pas simplement transmettre le fichier JPEG ?

Parce qu’une liaison radio n’est pas toujours parfaite.

Un JPEG classique est conçu avant tout pour être enregistré ou transféré sur des supports relativement fiables. Une liaison radio faible peut au contraire produire des erreurs ou provoquer la perte complète d’une partie des données.

SSDV a précisément été conçu comme une version robuste et packetisée du JPEG destinée à un média de transmission peu fiable.

Le format impose certaines contraintes au JPEG et organise ses données afin que les différents paquets puissent être exploités indépendamment autant que possible.

Résultat : si tous les paquets arrivent, nous obtenons évidemment l’image complète. Mais lorsque certains paquets manquent, le décodeur peut néanmoins exploiter ceux qui ont été correctement reçus et produire une image partielle.

Pour une expérience de ballon stratosphérique, c’est particulièrement intéressant : mieux vaut récupérer une photographie incomplète que pas de photographie du tout.

effet de la perte de paquets sur la reconstruction d'une image

SSTV et SSDV : deux façons de transmettre une image par radio. En SSTV, l’image est balayée ligne par ligne et transformée en tonalités audio. En SSDV, l’image JPEG est découpée en paquets numériques identifiés, transmis puis assemblés à la réception. La perte de certains paquets peut conduire à une reconstruction partielle de l’image.

Et la correction d’erreurs ?

SSDV dispose également d’une arme intéressante : la FEC, Forward Error Correction, ou correction d’erreurs directe.

Dans le format SSDV classique, un paquet normal de 256 octets comprend notamment 32 octets de correction Reed-Solomon. Les codes sont calculés sur les 223 octets allant du type de paquet à la fin des données utiles.

Cette correction permet de corriger jusqu’à 16 octets erronés dans un paquet.

Attention toutefois à une distinction importante.

La correction Reed-Solomon peut réparer certaines données erronées, mais elle ne peut pas inventer un paquet complètement absent. Si un paquet n’a jamais été reçu, le décodeur devra reconstruire l’image sans lui.

Le format prévoit également un mode sans FEC, qui laisse davantage de place aux données utiles mais renonce à cette protection.

C’est donc toujours le même compromis en radio numérique : plus de données utiles ou davantage de robustesse ?

Comment décoder une image SSDV ?

C’est ici que les choses deviennent intéressantes pour l’expérimentateur.

Il faut bien comprendre que le logiciel SSDV ne démodule pas directement le signal radio.

Il intervient après cette étape.

Une chaîne de réception typique ressemble plutôt à ceci : Antenne → récepteur ou SDR → démodulateur numérique → paquets → décodeur SSDV → JPEG

Le mode numérique employé sur la liaison doit donc d’abord être démodulé afin de récupérer les données binaires.

Historiquement, SSDV a beaucoup été utilisé dans le domaine des ballons stratosphériques. La documentation UKHAS indique que le format peut être transporté par un mode numérique capable d’acheminer des données, son implémentation historique étant notamment associée au RTTY.

Il faut donc distinguer trois éléments : la modulation radio → le transport des données → SSDV.

Cette séparation est importante : SSDV n’est pas un nouveau mode de modulation comparable directement au RTTY, à la FSK ou au PSK.

Encoder notre première image

Le logiciel SSDV de Philip Heron est disponible en logiciel libre et fonctionne très simplement en ligne de commande.

Une fois compilé, nous pouvons transformer une image JPEG en paquets SSDV avec : ssdv -e -c F5KEE -i 1 photo.jpeg image.bin

Ici : F5KEE est l’indicatif intégré aux paquets et 1 correspond à l’identifiant de l’image.

Le fichier image.bin contient alors la succession des paquets SSDV qu’il faudra transporter sur notre liaison numérique. Le logiciel permet également de régler la qualité JPEG, la longueur des paquets ou encore de désactiver la FEC.

Pour effectuer l’opération inverse : ssdv -d image.bin photo-recue.jpeg

Le programme analyse les paquets reçus et reconstruit le fichier JPEG.

Voilà déjà une expérience très simple que nous pouvons réaliser sans aucune radio.

On encode une photographie, on supprime volontairement quelques paquets du fichier obtenu, puis on demande au décodeur de reconstruire l’image.

Le programme prévoit même une option de test permettant de supprimer volontairement un pourcentage de paquets pendant le décodage.

Une excellente façon de comprendre SSDV avant de passer à la transmission radio !

SSDV contre SSTV : laquelle est la meilleure ?

La question est tentante, mais la réponse serait : cela dépend de ce que nous voulons faire.

SSTV SSDV
Transmission Analogique Numérique
Image Balayée ligne par ligne JPEG packetisé
Paquets Non Oui
Correction d’erreurs Non en SSTV classique Oui, selon le mode SSDV
Image incomplète Bruit, lignes perturbées Paquets/zones manquants
Réception Très simple Plus complexe
Logiciel MMSSTV, QSSTV… Démodulateur + SSDV
Télémétrie associée Peu adaptée Très adaptée
Expérimentation Facile Plus technique

La SSTV possède un avantage énorme : sa simplicité.

Un récepteur, une sortie audio et un logiciel comme MMSSTV ou QSSTV suffisent pour commencer. Le signal peut même être entendu à l’oreille et l’image apparaît progressivement à l’écran.

Autre propriété intéressante : lorsque le signal devient mauvais, l’image SSTV ne disparaît pas brutalement. Du bruit, des traits et des erreurs de synchronisation apparaissent progressivement, mais l’image peut parfois rester reconnaissable.

La SSDV fonctionne différemment.

Un paquet numérique est soit correctement décodé, éventuellement après correction d’erreurs, soit inutilisable. Lorsque le rapport signal/bruit devient insuffisant, le nombre de paquets exploitables chute.

En revanche, lorsqu’un paquet est correctement récupéré, ses données sont numériques : nous n’avons pas les variations de couleur ou de luminosité provoquées directement par le bruit comme sur une image SSTV analogique.

Pourquoi SSDV est particulièrement intéressante pour les ballons

Prenons maintenant un ballon stratosphérique équipé d’une caméra.

Celui-ci peut régulièrement :

  1. prendre une photographie ;
  2. la convertir en JPEG ;
  3. l’encoder en SSDV ;
  4. transmettre quelques paquets ;
  5. transmettre sa télémétrie ;
  6. continuer avec les paquets suivants.

L’intérêt est évident.

La même liaison radio peut transporter position GPS, altitude, température, informations techniques et fragments d’images.

Et plusieurs stations au sol peuvent éventuellement recevoir différentes parties d’une transmission. Dans les systèmes disposant d’une infrastructure adaptée, la mise en commun des paquets reçus par plusieurs stations permet d’améliorer encore la reconstruction finale de l’image.

C’est exactement le genre d’application pour laquelle SSDV a été imaginé.

Alors, SSTV ou SSDV ?

Pour envoyer simplement une image entre deux radioamateurs sur HF ou VHF, la SSTV reste extraordinairement efficace. Elle est simple, largement connue et dispose de nombreux logiciels.

Pour expérimenter une transmission numérique, envoyer des images depuis un ballon, associer images et télémétrie ou étudier la résistance d’une transmission packetisée aux erreurs, SSDV devient beaucoup plus intéressante.

Les deux technologies ne sont donc pas réellement concurrentes.

Elles représentent plutôt deux manières différentes de résoudre le même problème : faire voyager une image sur une liaison radio étroite et imparfaite.

Et pour les expérimentateurs que nous sommes, SSDV ouvre surtout une perspective intéressante.

Nous pourrions très bien commencer par transmettre quelques paquets entre deux ordinateurs, poursuivre avec deux Raspberry Pi ou microcontrôleurs… puis ajouter un modem numérique et deux radios.

Alors, qui tente la première transmission SSDV F5KEE ?

Pour aller plus loin

  • SSDV de Philip Heron — dépôt GitHub historique : code source de l’encodeur/décodeur et documentation des commandes. Le dépôt GitHub est désormais archivé et renvoie vers Codeberg.
  • SSDV sur Codeberg — dépôt actuel du projet.
  • UKHAS — documentation technique SSDV : structure détaillée des paquets, JPEG et Reed-Solomon.
  • SSTV Handbook — manuel SSTV : pour approfondir le fonctionnement des différents modes SSTV.
  • HorusDemodLib — Project Horus sur GitHub : pour découvrir les techniques modernes de démodulation numérique utilisées notamment dans le domaine des ballons.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.