.

LIVE DATV

enfin ....
 
 
 
 

Accueil    Grenoble     Relais    Transmissions numériques    TVA       Links       Montages     Datasheet


    Le projet etait en cours depuis un certain temps mais s'est acceleré aprés la question d'un amateur Italien sur le forum TVA, et les essais de M0DTS qui a montré que l'on pouvait faire de l'emission DATV en LIVE avec un PC et une solution hardware minimale. En fait cette solution prometteuse ne m'a pas interessé car les essais de M0DTS montrent qu'il faut un PC bête de course pour arriver à sortir un SR convenable (autour de 1500 avec un quadruple core ???). Ce qui confirme les discutions theoriques que j'avais suivit jusque là, le PC n'etant pas l'outil ideal pour traiter l'encodage DVB car prenant beaucoup de ressources.

Voici donc la suite des essais de transmission DATV avec cette fois une tentative de transmission LIVE DATV.....


le 15 Janvier 2010
 

Essais de transmission DATV LIVE

C'est la suite des essais et des effort pour réaliser des transmissions DATV.

Donc, état des lieux:
- je dispose d'un emetteur QPSK
- je dispose d'une interface à FPGA.
- je dispose d'une liaison PC vers USB qui me permet d'envoyer des bouts de film depuis le PC.

J'ai obtenu mes premieres images DATV à partir du PC et le port USB le 21/09/2009, emission de film à partir du PC..
 

Donc l'idée suivante, c'est de recuperer l'image et de la diriger vers le port USB. Comment faire ? Et bien en utilisant VLC, comme l'a deja fait M0DTS....

Source d'image: camera, carte d'acquisition, webcam.

Et une fois recupéré avec VLC ? VLC ne sait pas envoyer vers le port USB. Oui, mais il sait l'envoyer vers le port TCP/IP. Donc il faut faire une interface TCP vers USB. Ou trouver un tel logiciel ? Et bien je n'ai pas trouvé, il faut donc se le faire. Facile à dire mais moins facile à faire.....
 
 

Synoptique du systeme:

Synoptique d'un encodeur DATV  :

A comparer avec le synoptique d'encodage choisi pour mes essais, voir ci dessous:

  Les blocs IQ modulator/transmitter ainsi que l'encodeur DVB-S sont dans la carte encoder 2, qui est egalement equipée d'un port USB. Les essais (voir page  datv_essais5.html  ) ont deja validés cette solution.

  La partie MPEG2 encodeur est traitée par le PC. Ce choix a été fait par force, car actuellement il me manque des elements pour construire une solution stand alone, comme l'utilisation de l'encodeur Fujitsu MB86391 ou le philips SAA7250. Mes appels sont pour l'instant restés sans reponse...

Solutions existantes:

  Des solutions LIVE DATV ont vus le jour en 2009:
- M0DTS PC + USB interface FIFO (1K)
- F1FAU PC + interface FIFO (16K) sous Linux. J'attend la sortie du kit pour l'evaluer.
Les bases sont similaires mais les realisations differentes. Dans les deux cas, un PC est utilisé mais M0DTS re-utiilise VLC alors que F1FAU a ecrit completement les logiciels. Dans chaque cas , le hardware est simple car il s'agit d'une interface USB quui renvoit les datas au modulateur QPSK. Dans le cas de F1FAU, le flux de sortie est le flux radio, c'est a dire 1024. Dans le cas de M0DTS, les essais ont ete fait en 1024 egalement mais le flux sortant du PC est divisé par deux car devant ensuite etre traité par le codeur convolutionnel. Si on choisi FEC=2, alors on gagne un facteur 2 sur le flux. De cette maniere, on peux obtenir un SR de 2048.

Mon experimentation:

Je n'ai pas assez de connaissances pour reecrire un soft complet d'encodage comme l'a fait F1FAU. Mon choix s'est donc porté sur l'utilisation de VLC.
Coté choix technique du hardware, j'ai choisi de sortir le flux divisé par deux, comme M0DTS. Cela me permet d'atteindre un SR=2500 pour etre compatible avec le relais F5ZAR de F6BUH. Le codeur convolutionnel est dans le FPGA.
 

Carte d'encodage à FPGA:

Voir description à la page      datv_essais5.html

Photo de la carte d'encodage



Ce que peut faire VLC:

source : http://www.videolan.org/vlc/streaming.html

Configuration de VLC

Sous VLC, on peut demander une sortie vers le port TCP, configurer le mode UDP, configurer l'encapsulation du stream (TS), configurer les PID (video 33 audio 49). Voir exemple ci dessous:





Fonction du logiciel datv_usb v205.exe

Le but de ce soft est de recuperer le flux fabriqué par VLC et l'envoyer vers l'USB , precisemment vers le FTDI FT245.
Premier point, la vitesse du stream est  defini par l'horloge de la carte d'encodage donc l'horloge du FPGA qui defini le SR.
Le soft doit ensuite se debrouiller de recuperer tous les packets et les envoyer vers l'USB sans coupure. C'est la un point trés delicat.

J'ai prevu quelque parametres configurables , comme le port d'entrée ou la taille du buffer.
Le taux de replissage du buffer est affiché par un pseudo bargraph.

La comestique de ce soft n'etait pas un objectif, la fenetre DOS ne lui donne absolument pas un aspect commercial !!!

Il y a un mois, je n'aurai jamais cru que j'etais capable d'ecrire un logiciel comme celui là ! Maintenant a venir peut etre un logiciel sous forme graphique ...
 
 

Image d'ecran du PC

L'ecran de VLC est noir car il affiche l'image en mode overlay, ce qui ressort noir quand on fait une impression ecran !

  Ici la transmission est en cours.



Ci dessus, VLC est appelé par un fichier bat en mode ligne de commande (fenetre noire à droite). Ce fichier .bat configure VLC pour saisir le flux venant de la webcam, ceci à travers les ressources de windows. J'ai utilisé cette possibilité car cela m'a évité ainsi d'ecrire un soft specifique de compression de l'image MPEG2 ainsi que le son, ce qui n'aurait vraiment pas été simple. Le problème est que VLC utilise beaucoup de ressource processeur est que mon AMD 1800 est presque à fond (voir ci dessous) !!!

La deuxieme fenetre dos (ou console) est en fait le logiciel de transfert du stream TS vers USB. Ce logiciel est ecrit en C et compilé sur DevC++.
La principale difficulté est de recuperer le flux issu de VLC sans utiliser beaucoup de ressource processeur afin d'en laisser à VLC pour le traitement d'image..

  On voit les configs du logiciel, adresse, port , taille du buffer et type de FTDI.
   =====----  donne la taille occupée du buffer
 
 
Ci contre , le taux d'occupation du processeur de l'ordinateur quand VLC encode un stream venant de la Webcam.
 

On voit le changement d'occupation processeur et memoire quand VLC a été lancé (au 1/3 du graphique).
 

L'occupation du processeur se fait avec une moyenne de 75% avec des pointes à 100%. Il reste donc 20% de ressources processeur pour les autres taches ou logiciels lancés sur cette machine. 

Cet ordinateur est donc une configuration limite pour cette utilisation.

PC Portable Compaq 2120
        AMD XP2500+ 519MHz 
        RAM : 448Mo
        Port : USB1
        Hdd: 40Go, 2Go de libre !

Image encodée par VLC:
        25 images par secondes
        definition 320 x 240

Image sur l'ecran du moniteur
 
 

Freq 1285MHz SR2500 Pid video 33 Pid Audio 49

Petite video des essais

Voir fichier :  DVCI0028_datvlive1.MP4     ATTENTION  22Mo !
 

Conclusion (provisoire)

Cette manip montre qu'il est possible avec imagination et tenacité d'etudier et realiser une solution d'emission DATV pour transmettre une image en direct. Ceci est la suite logique des experimentation menées jusqu'alors qui ne permettait d'envoyer que du différé via des fichiers video stockés dans des memoires, soit silicium soit informatique.

Certes, le resultat n'est pas à la hauteur d'une solution professionnelle, mais il s'agit d'une experimentation. Elle permet des evaluations et discutions des solutions utilisées , ce n'est que le debut.

Le concept permet de contourner les difficultés techniques:
- Utilisation du PC pour l'encodage MPEG2  video.
- Encodage DVB dans un FPGA pour laisser de la puissance PC pour l'encodage MPEG.
- Transfert via l'USB pour le stream: ceci n'est pas le meilleur choix mais on a choisi la facilité grace aux composants proposés par FTDI.

L'utilisation de VLC permet de ne pas rentrer dans le monde de programmation sous Windows. On utilise VLC et ainsi on profite de la puissance du systeme d'exploitation. Des essais ont été fait avec la webcam, mais aussi avec une carte d'acquisition video, d'un camescope via l'entrée IEEE1394 du PC. Bien sur, tous ces essais n'ont pas une conclusion heureuse car dependant aussi de la puissance du PC. En effet, celui ci partage le temps de processeur pour toutes les taches qu'il a à effectuer, et elles sont nombreuses.

Bon, certains diront que la carte encodage à FPGA n'est pas du domaine amateur. Il suffit de regarder sur le web que les carte amateurs se multiplient dans le monde des bricoleurs electroniciens dans tous les domaines. Audiophile, modelistes... Il y a 15 ans, aucun amateur ne programmait de microcontrolleur et les cartes à microprocesseurs faisaient leur apparition (TNC) dont la programmation était l'oeuvre par quelques initiés. Mais en fait, ces gens s'étaient donnés la peine d'apprendre à programmer ces systemes. C'est bien ce qui se passe aujourd'hui. Les FPGA arrivent dans le domaine amateur et nul doute que, comme les transistors il y a 40 ans, ces nouveaux composants rendront bien des services à ceux qui sauront investir du temps pour les utiliser dans leurs experimentations.

A suivre ....

Demonstration à Iseramat 2010.


Essais du 26/01/2010

 Le PC Portable COMPAQ est un peu limite. L'image obtenue est correcte quand elle est fixe mais les choses deviennent difficiles sur images mobiles. La faute due au port USB de cette machine qui est au standard USB1, au processeur de la machine qui n'est pas trés puissant, vu qu'il s'agit d'un portable.

J'ai donc entrepris de faire des essais avec une autre machine. Il s'agit d'une tour de marque (??? clone). J'ai effectué deux essais:
-  le premier avec la WebCam familiale, sur le port USB.
-  le deuxième avec une carte d'acquisition video Hauppauge 38106 , équipée d'un circuit Conexant Bt 878.

Les conditions demeurent similaires aux essais précédents, l'image est encodée par VLC avec 25 images par secondes et une définition de 320 x 240.

L'amélioration est nette, l'image est fluide et presque sans pixelisations. Enfin, je ne suis pas capable de dire si les pixels sont dus à un defaut d'encodage ou à des reflexions radio dans ma pièce.

Ci dessous des images de l'occupation CPU:

Configuration de la machine:
PC Decimal
          Processeur ?
          RAM: 250Mo
          HDD: 160Go
 
 

Avec Webcam Avec Carte d'acquisition Hauppauge

Avec la webcam, le taux d'occupation CPU est moins important que avec mon portable. Normal, ce PC est deja plus puissant.
Avec la carte d'encodage, le taux d'occupation CPU est plus bas. Une partie de l'encodage vidéo doit être fait par la carte, liberant le CPU.
 

Test avec TS Reader du stream sortant de VLC:

Lors de cet essais , pas de son, donc pas de stream audio avec pid=49.
Avec ou sans SDT, le SL65 decode et affiche les images.
 

Re conclusion provisoire:

Bien entendu, la puissance de calcul du PC influe sur la qualité du resultat. Cela se voit tout de suite sur l'image.

J'ai effectué des essais de transmission sonore. Cela fonctionne mais j'ai trouvé le niveau audio un peu faible. Un reglage ? Oui !

Bien sur, certaines configs choisies ne sont pas optimisées, voir peut etre critiquables....

Ces essais montrent que cette solution fonctionne mais qu'il ne faut pas attendre des miracles d'une solution à PC, surtout sous windows et en plus si on demande de la vitesse (SR=2500). L'encodage par logiciel peut rivaliser mais mon prototype ne vaut pas un encodeur silicium comme le MB86391, car ce dernier est equipé de blocs optimisés pour le traitement d'image que ne possède pas un PC.

Actuellement, deux exemplaires de cet encodeur fonctionnent (chez F5LGJ et F5SBV).

A suivre....


 retour index DATV


Copyright (c) Olivier Berchaud F5LGJ 01/2010.

Page lue      fois.
 
 

Accueil       GrenobleRelais     Transmissions numériques     TVA       Links      Montages     Datasheet