dimanche 19 février 2012

Observations techniques effectuées sur la diffusion du service RadioText en radio FM - RDS

Le service RDS RadioText est une technique permettant de diffuser, en RDS (Radio Data System) des informations textuelles, sous forme de messages successifs de 64 caractères associés à l'émission ou au morceau en cours de diffusion. L'essentiel du principe de diffusion du service RadioText en RDS est régit par la norme RDS (IEC 62106), page 25, §3.1.5.3.

Les observations présentées ci-dessous ont été établies à partir d'enregistrements RDS effectuées entre décembre 2011 et février 2012 grâce au réseau de capteurs FMNET (www.fmnet.org), lequel capte environ 2000 stations de radio FM en France et un grand nombre de stations de radio situées en zones frontalières. Un fichier excel comportant les flux RDS correspondants et une présentation compréhensible du décodage RDS est disponible ici.

Les stations de radio dont la diffusion RadioText a été analysée:
Pour la France : France Inter(*), FIP(*), Le Mouv'(*), France Musique(*), France Bleu 107.1(*), Radio Classique, Nrj, Virgin, Rfm, Nova, Fg Radio, Nostalgie, Rire et Chansons, Chérie FM, Radio Evasion;
Pour l'Allemagne : Swr1(*), Swr2 (*), Swr3 (*), Swr4 (*), Radio Regenbogen;
Pour la Suisse : Drs2(*), BNJ FM.
(*) Service public

Les implémentations du service RDS RadioText qui ont été effectuées par les stations de radio sur lesquelles nous avons porté notre attention sont toutes conformes à la norme RDS. On constate toutefois des différences d'une station à l'autre. 


La diffusion de RDS en quelques mots

Paquetisation de donnée, diiffusion sans voie de retour

La diffusion de Radio Texte s'opère en RDS de manière unidirectionnelle, via un principe de sous-porteuse rajoutée à chaque émission de radio FM. En RDS, le paquet de données est nommé groupe et contient invariablement 104 bits. Le débit brut de diffusion RDS est lui aussi invariable, synchrone avec la fréquence de la sous-porteuse qui le porte, et s'obtient en effectuant le rapport de la fréquence de la sous porteuse RDS (57kHz) par 48 : 57000 / 48 = 1187.5 bits/s. Chaque paquet (groupe) RDS est donc transmis en : 104 bits / 1187.5(bits/s) = 87.56 ms. La diffusion s'effectue évidemment sans voie de retour ni acquittement. Des techniques non optionnelles de synchronisation, de redondance et de correction d'erreurs sont décrites dans la norme ramenant ainsi le débit brut annoncé ci-dessus à un débit net d'environ 512 bits/s soient 64 octets / seconde.

Un envoi de données propre à l'unidirectionnalité du canal de transmission

Bien que reposant sur un mécanisme synchrone, il est fondamental de comprendre que la diffusion RDS ne s'appuie pas sur un mode séquentiel. En effet, les erreurs de réception du signal RDS sont normales et permanentes. La perte d'un paquet de données doit avoir un impact réduit et réparable sur la transmission de l'information à laquelle appartient le paquet impacté. La totalité des mécanismes de diffusion RDS repose sur une segmentation de l'information permettant à la répétition de données de compléter une information à priori incomplète. Ainsi, par exemple, un message RadioText de 64 caractères peut être vu comme un puzzle de 16 pièces contenant 4 caractères alphanumériques chacune. Chaque pièce de puzzle est transmise avec son contenu (les 4 caractères) mais également son emplacement dans le puzzle (adresse). A force de répétitions, le récepteur FM-RDS parvient à reconstituer le puzzle, quel que soit l'ordre dans lequel les pièces sont émises et quelles que soient les erreurs impactant telle ou telle pièce.

Partage de bande passante

En pratique, le RDS véhicule différents services contraints de se partager la ressource rare que constitue 64 octets / seconde.

Parmi ces services, on retiendra les principaux :
- l'identification du programme et la signalisation (PI, PS, AF) : 25% à 100% de la bande passante;
- la diffusion RadioText (RT) qui concerne ce mémo : 15% à 75% de la bande passante;
- la diffusion d'informations de trafic (TMC) : 30 à 50% de la bande passante;
- la diffusion d'informations sur les autres stations du groupe (EON) 10 à 30% de la bande passante.


La diffusion RadioText en RDS

4 à 20 secondes pour diffuser un message de 64 caractères
La diffusion RadioText se fait par segments de 4 caractères alphanumériques. Un message RadioText est une entité de 64 caractères maximum (32 pour la diffusion RDS en mode B qui n'est plus utilisée aujourd'hui et que j'ignore dans ce documents). Il faut donc 16 paquets (groupes) RDS pour transmettre 64 caractères. Une information relative à une émission ou un morceau est une succession de messages (64 caractères max.), chacun répétés une ou plusieurs fois pour optimiser la probabilité de réception de chaque segment.

La durée de transmission la plus courte et théorique d'un message RadioText (64 caractères), sans répétition est évaluée comme suit : 
16 paquets (groupes) RDS x 87.56(ms par groupe) = 1.4 secondes.

La norme RDS spécifie qu'au moins 3 paquets (groupes) RadioText doivent être transmis toutes les 2 secondes. La vitesse de transmission la plus lente d'un paquet (sans répétition) s'évalue comme suit : 
16 groupes à transmettre à raison de  3 groupes par 2 secondes = 16 x 2 / 3 = 10.7 secondes.

Le partage de ressources RDS fera de telle sorte que seuls 15% à 75% de la bande passante peuvent être accordés au service RadioText. Ainsi, pour les relevés que nous avons effectués, la diffusion effective d'un message RadioText (64 caractères max) présente une amplitude de durée de transmission importante qui se traduit par des différences facilement observables par l'auditeur :
- durée min: 1.4 secondes / 75% affectés à la ressource RadioText = 1.85 secondes;
- durée max: 1.4 secondes / 15% affectés à la ressource RadioText = 9.3 secondes.

Dans les faits, toutes les stations observées respectent donc le timing imposé par la norme RDS.
 
Les modalités de transmission sont en général respectées...

Comme indiqué plus haut, le système RDS ne repose pas sur la diffusion séquentielle de données, c'est à dire que la nature d'un paquet (groupe) RDS ne doit pas dépendre des groupes qui les précèdent et qui les succèdent. Les erreurs de réception sont donc parfaitement tolérées et il convient de répéter plusieurs fois un message donné pour augmenter sa probabilité d'affichage. La norme RDS spécifie que le message de 64 caractères (16 segments de 4 caractères) doit être envoyé segment par segment, dans le sens habituel de notre lecture : c'est le cas pour toutes les fréquences observées.

On notera qu'il n'est pas obligatoire de transmettre les 64 caractères dans leur totalité et que le bourrage, par des espaces de la fin du message peut dégrader le rendu affiché et gaspille de la ressource. Ainsi, si moins de 64 caractères sont à transmettre, la chaîne à transmettre doit obligatoirement se terminer par le caractère "carriage return" 0D (hex). Dans les observations effectuées, seule la radio suisse BNJ exploite ce cas de figure, mais de manière erronée : on voit bien apparaître le caractère 0D (hex) mais il est suivi de 3 espaces de bourrage.


L'exploitation de l'indicateur "AB flag A/B" n'est pas répandue en France

La norme RDS introduit une subtilité permettant aux postes de radio et autoradios de gérer la mémoire (64 caractères) servant à l'affichage du message. Il s'agit de l'indicateur "A/B flag" qui est transmis dans chaque paquet (groupe) RadioText. Lorsque cet indicateur change d'état, la norme indique que la totalité de l'affichage doit être effacée pour laisser place à un nouveau message. Dans la pratique, les opérations d'effacement et de remplissage de cette mémoire sont invisibles pour l'utilisateur car elles s'effectuent coté récepteur, dans une mémoire tampon. Divers artifices logiciels permettent la validation de l'intégrité du contenu de cette mémoire pour un affichage le plus cohérent possible.

Le fait d'assurer la transition de l'indicateur "A/B flag" permet d'éviter les artéfacts liés à la superposition transitoire (quelques secondes, le temps de la mise à jour du message) de nouveaux segments émanant d'un nouveau message par dessus un ancien message.

Malheureusement, les constructeurs de postes de radio et autoradios n'ont pas tous interprété le sens de l'indicateur "A/B flag" de la même manière. Certains ont considéré l'indicateur "A/B flag" impliquait 2 buffers distincts et que son changement d'état était un ordre de basculement d'affichage entre ces 2 buffers. Sur ces récepteurs, seul le basculement de l'indicateur provoque alors la mise à jour de l'affichage. Cela peut donc poser des problèmes pour une diffusion RadioText ne reposant pas sur le basculement de cet indicateur. Ce type d'interprétations aboutissent à des effets de bord qui empêchent, au bout du compte une exploitation nominale de cet indicateur. 

Les stations de radio, principalement allemandes, à force de retour de leurs auditeurs et leurs "autoauditeurs", ont pu aboutir à un compromis de diffusion acceptable pour la majorité de leurs récepteurs.

Parmi les stations de radio françaises, observées NRJ, NOSTALGIE, CHERIE FM, RIRE & CHANSONS et RADIO EVASION exploitent l'indicateur "A/B flag"

NRJ, NOSTALGIE, CHERIE FM, RIRE ET CHANSONS basculent l'indicateur "A/B flag" au début de chaque diffusion d'un message de 64 caractères, même si le contenu de ce message ne varie pas. Ce procédé empêche les postes de radio et autoradios bien conçus de profiter du bénéfice de la répétition de messages.

RADIO EVASION en revanche bascule l'indicateur "A/B flag" toutes les deux diffusions de messages de 64 caractères, même si le contenu de ce message ne varie pas. Cette disposition est astucieuse car elle fait profiter aux récepteurs bien conçus du bénéfice de répétition, tout en contournant les effets de bord liés aux interprétations hasardeuses évoquées juste avant de la signification de l'indicateur "A/B flag" par certains constructeurs de récepteurs.

Les stations étrangères exploitent toutes l'indicateur "A/B flag"

On notera que les stations allemandes et suisses sont prolixes et ne s'arrêtent pas à la diffusion d'un titre de morceau ou d'émission. Les messages RadioText de 64 caractères s'enchaînent les uns après les autres pour constituer, par agrégation, un flux continu d'informations textuelles.

Dans ces cas, la succession de messages différents implique le recours obligatoire à l'indicateur "A/B flag". On notera aussi que pour la plupart, la diffusion des 16 segments d'un message est répétée au moins une fois (donc chaque segment bénéficie au moins de 2 diffusions). Pour certaines stations de radio, le basculement de l'indicateur "A/B flag" est assuré après une répétition, même si le message RadioText (64 caractères) n'est pas modifié.

L'usage du flag A/B n'est pas requis lorsque le message change rarement
Lorsque les stations utilisent le RadioText pour afficher le nom d'une émission comme c'est le cas de certaines chaînes du service public en france, il n'est pas indispensable de basculer l'indicateur "A/B flag" dans la mesure où la probabilité de perturbation de l'affichage est faible.

En revanche, l'exploitation de l'indicateur "A/B flag" est vivement conseillée pour les programmes utilisant le RadioText pour afficher les titres des morceaux ou des données associées aux émissions.

Résumé des observations

Le détail des enregistrements RadioText ayant servi à ce mémo figure ici.

(*) Les programmes NOSTALGIE, NRJ, RIRE & CHANSONS, CHERIE FM assurent la commutation de l'indicateur "A/B flag" sans répéter les segments (caractères) transmis.

(**) La proportion de la ressource RDS allouée au service RadioText (groupes RDS 2A) varie de 15% à 74%. Les programmes comme FG, NOVA, RADIO CLASSIQUE, RIRE ET CHANSONS dont la ressource RDS n'est pas exploitée par d'autres services, peuvent allouer plus de bande passante au service RadioText, lui conférant évidemment une meilleure performance.

Enregistrements RDS
effectués 

entre décembre 2011
et février 2012
via le réseau
de capteurs FMNET
Bande passante RDS
Allouée au service RadioText
A/B Flag
exploité?
FRANCE INTER 27% non
FRANCE MUSIQUE 28% non
FRANCE BLEU 107.1 24% non
FIP 27% non
LE MOUV' 28% non
RADIO CLASSIQUE 74% (**) non
VIRGIN 24% non
RFM 23% non
RADIO EVASION 18% oui avec répétition des segments
NOVA 50% (**) non
FG 50% (**) non
NRJ 20%  oui mais sans répétition des segments (*)
RIRE & CHANSONS 50%  oui mais sans répétition des segments (*)
NOSTALGIE 20%  oui mais sans répétition des segments (*)
CHERIE FM 20%  oui mais sans répétition des segments (*)
SWR1 (D) 18% oui avec répétition des segments
SWR2 (D) 18% oui avec répétition des segments
SWR3 (D) 18% oui avec répétition des segments
SWR4 (D) 18% oui avec répétition des segments
RADIO REGENBOGEN (D) 18% oui avec répétition des segments
BNJ FM (CH) 54% oui avec répétition des segments
DRS2 (CH) 32% oui avec répétition des segments

Aucun commentaire: