Page 2 sur 4

Re: répresenter un signal de luminance via un fichier wav

MessagePosté: 28 Juin 2017 12:30
par mutantape
On peut au moins dire qu'il y a un précédent avec les vidéodisques de Baird de la fin des années 20, qui répresentaient la luminance sur le signal audio de disques 78 tours. mais il est vrai qu'il n'y avait que 30 lignes de définition, et une cadence d'image telle que l'on pouvait faire rentrer l'information dans la bande passante de ce support.

Le signal en bande de base, c'est en gros tel qu'il sort de la caméra, avant d'être mis sur une porteuse UHF pour transmission hertzienne.

Mais là les conditions ne sont pas claires: on parle d'une seule image, et non d'une séquence vidéo ? Dans ce cas on ne sait pas sur combien de temps ou combien de cycles de la porteuse on souhaite la transmettre.

Si on veut quelque chose qui ressemble à une transmission vidéo, mettons dans le bas de la bande VHF au pif à 100 MHZ, une image à la cadence vidéo de 25 i/s prend 4 millions de cycle de la porteuse. Si on la représente par des échantillons numériques, il en faut au moins 2 par cycle, soit un fichier de 8 millions d'échantillons (en fait un peu plus car avec l'information de l'image on devrait monter à au moins 105 ou 106 MHz, en supposant une image SD 704x576, et si on veut une representation graphique agréable, il faudra sans doute encore plus).

Si tout cela doit passer par un logiciel sur mesure autant se faire un fichier sur mesure, typiquement un fichier ouvert en mode binaire en C dans lequel on colle les échantillons 8 bit les uns derrières les autres. Après si on veut que ça puisse être ouvert directement dans un truc tout fait comme audacity, peut être du WAV, mais ça va être bizarre car il faudra faire un zoom arrière très important pour commencer à voir la forme du signal vidéo surimposé sur la porteuse, et il y aura peut être de nombreux artefacts liés à la résolution limitée de l'affichage.

Et avec un logiciel sur mesure pas mal de choix sont possibles:
- stocker dans le fichier le signal modulé complet
- stocker seulement le signal en bande de base et moduler la porteuse avec, dans le logiciel, avant de l'afficher
- stocker seulement les echantillons de l'image et regénerer les signaux de synchro dans le logiciel puis la modulation
- partir du fichier image tel quel et faire toutes les transformations au vol dans le logiciel d'affichage

Pour le dernier cas autant prendre un format d'image simple tel que TGA qui stocke les pixels les uns derrière les autres sans autre forme de procès (enfin avec un header au début tout de même).

Re: répresenter un signal de luminance via un fichier wav

MessagePosté: 28 Juin 2017 18:52
par Mannix54
la piste du format binaire personnalisé me plait bien,

c'est utilisé aussi par ce projet d'un encodeur pal logiciel :

https://github.com/fsphil/hacktv

donc pour résumer mon projet consistera à créer un logiciel qui aura plusieurs fonctionnalités :

- créer une version "signal bande de base" d'une image jpg/png ( et peut-être plus tard d'un fichier vidéo ) en mettant tout ça dans un fichier binaire
- moduler cette version "signal bande de base" en modulation d'amplitude et mettre tout ça dans un fichier binaire
- pouvoir à tout moment faire afficher dans le logiciel de manière graphique les courbes des ondes ( le signal bande de base, la porteuse, le signal modulé )
- démoduler le fichier binaire vers la version jpg/png ( ou vidéo )

pas de gestion de la couleur pour le moment, afin de simplifier le projet, on ne traitera que de la luminance

Re: répresenter un signal de luminance via un fichier wav

MessagePosté: 28 Juin 2017 19:35
par Lowtone
mutantape a écrit:On peut au moins dire qu'il y a un précédent avec les vidéodisques de Baird de la fin des années 20, qui répresentaient la luminance sur le signal audio de disques 78 tours. mais il est vrai qu'il n'y avait que 30 lignes de définition, et une cadence d'image telle que l'on pouvait faire rentrer l'information dans la bande passante de ce support.

Le phonovision, tout à fait. Encore qu'il ne tournait pas à 78.
Son système avait 12,5 images ( progressives ) par seconde, mais je crois que sur disque c'était moins.

Aujourd'hui les passionnés de télévision mécanique on reproduit un tel système sur CD ou fichier wav.
On peut gérer plus de trente lignes, et aussi la couleur.
Si jamais c'est pertinent je pourrai vous retrouver les liens sur le sujet.

Re: répresenter un signal de luminance via un fichier wav

MessagePosté: 28 Juin 2017 20:07
par mutantape
C'est vrai que si tu veux démoduler ensuite, ça a plus de sens d'avoir un fichier intermédiaire, plutôt que de tout faire au vol.

J'aime bien ces projets d'émulation de PAL/SECAM/NTSC, ça permettrait d'avoir une idée du potentiel théorique maximal des formats.
Après, on pourrait introduire du bruit et des perturbations diverses sur le signal modulé, et voir comment cela se comporte une fois démodulé.

Par contre pour cela il serait mieux de partir d'un fichier qui n'a jamais subi de compression à pertes, donc éviter le jpeg, mais plutôt partir d'un format RAW d'appareil photo éventuellement converti en png ou tga.

Au passage, en y réfléchissant, je voyais un petit paradoxe apparent lié à la théorie de l'échantillonnage:
supposons que j'échantillonne la porteuse de façon exactement synchrone avec un échantillon correspondant au sommet positif de la sinusoide, et un au sommet négatif.
Comme le signal modulant est représenté par les crêtes de la porteuse, on peut l'extraire exactement à partir de cette information.
Or si ma porteuse fait 100 MHZ et le signal modulant 6 MHz, la fréquence maximale du signal modulé sera 106 MHz, qu'il faudrait normalement échantillonner à au moins 212 MHz.
Mais avec mes deux échantillons par période je ne suis qu'à 200 MHz, et pourtant il semble que je n'aie pas perdu d'information...

En fait cela se résoud en considérant qu'il s'agit d'un spectre à trous : il n'y a de l'énergie qu'entre au pire 94 et 106 MHz (en réalité plutôt 99 à 106 avec la bande latérale atténuée).
En sous échantillonnant de 12 MHz on provoque un repliement du spectre, mais le décalage résultant fait que la bande repliée est décalée suffisament vers le bas pour se retrouver dans le trou et donc ne pas se superposer à l'information utile.

Mais dans la pratique si on veut une représentation physique fidèle du signal modulé complet, il faudra échantillonner à 212 MHz ou plus. Si c'est seulement légèrement plus on ne pourra plus être synchrone avec la porteuse et donc les points ne seront plus situés aussi commodément aux sommets. A moins de faire pile poil 400 MHz. Par contre curieusement dans ce cas, un point sur deux va tomber sur un zéro de la sinusoide et ne contient donc pas vraiment d'information utile d'un point de vue informatique (même si il est significatif pour l'échantillonage). On pourrait donc se contenter de stocker des points à 200 MHz et à la relecture intercaler un zéro entre chaque pour obtenir un échantillonage à 400 MHz. Utile ou pas suivant le mode de démodulation choisi (simulation de filtres électroniques analogiques ou inversion simple de l'algorithme d'encodage).

Evidémment, au niveau de l'algo la notion de fréquence n'est pas forcément présente, il sait seulement qu'il a besoin de répartir l'image sur 4 millions de périodes. Et si on se contente d'échantillonner à 4 fois la période de la porteuse, même pas besoin de faire un calcul de sinus : il vaudra -1, 0 ou 1.
J'aurais presque été tenté de dire qu'il suffit de stocker le +1 et prendre l'opposé à la relecture pour reconstituer le -1 mais ce n'est pas vrai, le signal modulant aura bougé légèrement entre les sommets positifs et négatifs. Il y aura eventuellement une amplitude multiplicatrice sur tout cela mais elle est valable pour tout le fichier donc elle peut être stockée dans le header une fois pour toute au lieu de faire la multiplication à chaque fois. Enfin je crains que l'atténuation de la bande inférieure ne vienne casser cette belle simplicité.

Re: répresenter un signal de luminance via un fichier wav

MessagePosté: 28 Juin 2017 21:26
par Mannix54
j'ai trouvé ces outils gratuits intéressants :

https://wiki.gnuradio.org/index.php/Wha ... U_Radio%3F
https://wiki.gnuradio.org/index.php/GNURadioCompanion
https://wiki.gnuradio.org/index.php/HowToUse

c'est un ensemble d'outils open-source permettant de faire de la modulation/démodulation, en logiciel, et aussi d'exploiter un périphérique SDR ( comme le hackRF one ) permettant ensuite de diffuser le fichier que l'on a crée,

Image

on peut aussi l'utiliser en tant que bibliothèque de fonctions dans un programme C++ ou python,

en gros c'est l'alternative open-source du programme commercial simulink :

https://fr.wikipedia.org/wiki/Simulink

il peut être intéressant que mon futur logiciel puisse générer un fichier binaire directement exploitable par GNUradio, si un standard de fichier GNUradio existe pour le SDR

Re: répresenter un signal de luminance via un fichier wav

MessagePosté: 28 Juin 2017 21:47
par mutantape
Au fait , si tu fais du noir et blanc pour commencer, tu pourrais peut être créer un signal 819 lignes conforme ?

Un généreux donateur avait fourni ce lien sur le forum:
http://543210.free.fr/TV/819.pdf

Re: répresenter un signal de luminance via un fichier wav

MessagePosté: 28 Juin 2017 21:56
par mutantape
Pour les outils, ils ont l'air interessants pour la démodulation, mais pas sûr qu'il sachent faire de la modulation.

EDIT; apparement si, mais les exemples portent plutôt sur le DVB-T:
http://www.irrational.net/2014/03/02/digital-atv/

Re: répresenter un signal de luminance via un fichier wav

MessagePosté: 28 Juin 2017 22:34
par Mannix54
mutantape a écrit:Au fait , si tu fais du noir et blanc pour commencer, tu pourrais peut être créer un signal 819 lignes conforme ?

Un généreux donateur avait fourni ce lien sur le forum:
http://543210.free.fr/TV/819.pdf


je promets rien mais je vais voir;

pour l'AM avec gnu radio il y a ça :

https://www.csun.edu/~skatz/katzpage/sd ... orial3.pdf
https://fr.wikibooks.org/wiki/Introduct ... 7amplitude

Re: répresenter un signal de luminance via un fichier wav

MessagePosté: 28 Juin 2017 22:38
par mutantape
Finalement, un exemple d'utilisation de GNU radio pour traiter le PAL
https://hackaday.io/project/14904-analo ... he-new-age

En tous cas, merci pour ce fil de discussion qui ouvre des possibilités intéressantes.

Re: répresenter un signal de luminance via un fichier wav

MessagePosté: 28 Juin 2017 22:43
par Mannix54
et si on achète le périphérique émetteur/récepteur RF "hackRF one" ça ouvre la possibilité d'envoyer un signal TV analogique 100% fabriqué par le PC vers un appareil analogique type TV/démodulateur satellite,

https://github.com/mossmann/hackrf/wiki
https://github.com/mossmann/hackrf
https://greatscottgadgets.com/hackrf/

comme le signal analogique a été fabriqué par un PC on peut y mettre dedans du VBI pour faire revivre certains vieux appareils type télétexte, récepteur antiope, et certains décodeurs TV ( vidéocrypt, syster ) qui utilisaient les infos VBI pour la gestion des droits des abonnés,

sans oublier les vieux TV secam des années 70 qui ont besoin de l'identification couleur "trame" ( les "9 bouteilles", il doit être possible de les insérer dans un fichier binaire représentant le signal secam modulé )