Du vrai 819 lignes : la solution !

Bonjour Clopos,

le résultat a l’air pas mal, le flou de bougé est donc éliminé vu que tu as utilisé un trépied,
je me souviens d’avoir vu aussi du lignage sur les TV noir et blanc en s’approchant de très près (ou bien utiliser une loupe si les yeux ne permettent plus de voir net de très près), donc c’est peut-être normal ?

Sinon le facteur limitant vient peut-être de la verrerie de l’objectif, et/ou de l’électronique de l’appareil photo numérique, il est probable qu’il utilise en interne des filtres pour traiter l’image capturée par le capteur CCD, et que cela entraine ensuite une dégradation de l’image :

cerig.pagora.grenoble-inp.fr/mem … w-Jpeg.htm

matrice de bayer pour les photos, ça oblige à appliquer des algorithmes pour estimer les vraies couleurs, ça peut induire des erreurs de rendu :
fr.wikipedia.org/wiki/Matrice_d … lor%C3%A9s

Les appareils photos récents, les smartphones exploitent l’intelligence artificielle, des algorithmes complexes pour modifier l’apparence, corriger les défauts des photos, ça peut donner un résultat non conforme à la réalité.

Les experts en photo contournent ce problème en exploitant directement le mode « raw » permis par les appareils photos de type reflex, ce fichier raw contient les informations brutes capturées par le capteur CDD, et ensuite via un logiciel ils appliquent sur le fichier raw les filtres qu’ils souhaitent, ils ont un meilleur contrôle sur le rendu final (netteté, rendu des couleurs, balance des blancs),

ils peuvent aussi utiliser un autre objectif mieux adapté pour les plans rapprochés que celui fourni par défaut sur l’appareil reflex.

Je pense que l’effet de lignage vient peut-être du fait que l’appareil photo ne prend pas uniquement les deux trames d’une même image mais un nombre pas forcément pair de trames, de ce fait la luminosité enregistrée est un peu différente d’une trame à l’autre (et donc d’une ligne à l’autre).
Si mon hypothèse est exacte, pour éviter cet effet sur la photo il faudrait que l’appareil photo soit déclenché par la synchro trame et ne prenne que 2 trames (ou un nombre pair de trames).
Mais le résultat est néanmoins excellent et les principaux défauts visibles sur ces images sont dues au téléviseur :wink: (« ringing » sur le côté gauche de l’image, visible surtout sur l’horloge RTF et cadrage imparfait faisant apparaitre les bords gauche et bas).

Hello,
C’est effectivement le plus probable parce que je vois dans le viseur / afficheur de l’appareil photo, des fluctuations différentes en fonction de l’obturation.
Je suis à peu près certain que l’appareil est trop rapide et il sélectionne une trame au lieu des deux. J’ai le même souci avec la fréquence en 625L. :unamused:

Il faudrait que je trouve le moyen de forcer le 1/25e ou le (1/40e ?) mais le mode d’emploi de ce Panasonic GH2 Lumix est traduit en français par des japonais qui savent tout sauf vraiment vulgariser l’utilisation. Il ya plein de renvois contradictoires dans le guide, avant de comprendre comment obtenir une simple opération. J’en viens à regretter mon bon vieux reflex argentique (hélas depuis longtemps donné à un pote).

Sur la molette de droite de ton appareil photo tu as les classiques modes « P, A, S et M »,

Essaie de choisir le mode semi-automatique « priorité à la vitesse », qui permet de choisir une vitesse et l’appareil choisit ensuite automatiquement la bonne ouverture, pour cela tu tournes la molette de droite sur la position « S »

molette.jpg

à l’écran tu verras alors les vitesses disponibles, que tu peux choisir via la molette de sélection de type « disque rotatif avec le pouce », normalement c’est assez intuitif, faut tester sans trop se prendre la tête avec le manuel, par tâtonnement tu devrais trouver.

Le mode d’emploi en anglais :
bedienungsanleitung-deutsch.de/ … GH2_EN.pdf

Un grand merki, marceljack !
Je vais m’y remettre demain ou lundi. Comme il y a un peu de soleil actuellement, je vais faire un tour pour m’aérer… :wink:

Ton appareil photo supporte le mode raw, permettant un post-traitement des informations du capteur CCD sur PC avec les filtres de son choix, afin d’avoir une meilleure qualité d’image, on peut choisir ce mode dans un menu :

raw.jpg

Un logiciel open-source et multi plateforme pour le traitement des fichiers raw :
rawtherapee.com/
fr.wikipedia.org/wiki/RawTherapee

Hello à tous,

Sur les recommandations de marceljack, j’ai donc pousuivi mes tests à la fois en 625L et en 819L. Quasiment aucune différence. De plus, entre le format RAW qu’en JPEG à résolution maximum, il n’y a aucune différence.

Voici le résultat. Pour la photo 819L, j’ai volontairement accentué le détail avec fotochoppe.

En 625L + PAL (on note le moirage de la chroma dans l’image, ce qui est normal pour ce TV N&B) :
P1030034.jpg

En 819L monochrome (j’ai choisi le compromis de vitesse le plus synchro avec la trame) :
P1030031.jpg

Pour le mode raw il faudrait tester chaque algorithme du filtre de Bayer avec le logiciel rawtherapee, il y aura peut-être des différences (image plus ou moins nette, couleurs différentes, effet de crénelage plus ou moins important selon l’algorithme),

une fois l’image raw ouverte on clique sur l’icône entourée en rouge ici, et tester les différentes méthodes de dématricage dans la liste déroulante « méthode » :

bayer.jpg

tu peux aussi mettre à disposition le fichier raw pour que je puisse tester avec rawtherapee, en utilisant le site wetransfer.com/ (pas besoin de créer un compte, il faut cliquer sur le bouton « non merci »)

Sinon le rendu me semble ok, parfois entre ce que l’oeil humain voit et ce qu’un capteur CCD interprète il peut y avoir des différences.

Hello,

J’ai utilisé fotochoppe pour procéder aux filtres vidéo que tu m’as suggérés pour désentrelacer. Malheureusement, aucune effet d’amélioration.

Par acquis de conscience, j’ai ensuite utilisé une loupe et comme tu l’a astucieusement soupçonné, j’ai pu voir ce lignage à l’oeil nu. Donc en résumé, les photos sont assez fidèles à la réalité et il est probable que si on est pas le nez collé à l’écran, il est assez difficile de percevoir les lignes.

En tout cas, la solution « cheap » (Raspberry 4 + interface VGA avec chipset Fresco fl2000) est réellement fonctionnelle et assez fiable pour générer de la vidéo composite 819L à partir de sources 1080p ou 1080i.

Pour la gestion d’un flux DVB-T/T2 comme source (avec mon mini récepteur TV Hat spécial Raspberry Pi4), je n’ai pas encore trouvé l’astuce.

Enfin, on espère que l’implémentation du Sécam pourra être réalisée bientôt… Y compris avec identification trame.

Encore merci pour l’aide et les précieux conseils. L’étape suivante va concerner le module HackRF quand je l’aurai reçu. :wink:

Logiquement cela devrait fonctionner avec un convertisseur HDMI → VGA en programmant la même résolution de sortie sur le récepteur TNT qu’avec le Raspberry Pi + Fresco Logic et en choisissant un rapport d’aspect 4/3 pour l’écran.

Bonjour à tous,

J’ai fais comme tout le monde, j’ai commandé un convertisseur USB vers VGA et boum, ce n’est pas la bonne puce, ce n’est pas du Fresco donc je me suis tourné vers un Hackrf one, qui fait du rx et du tx pour 68€.

J’ai installé sous Windows 10, le logiciel pour sdr SDRSharp, il n’y pas d’installation et ça fonctionne très bien en réception en FM stéréo avec une très grosse sensibilité avec la petite antenne fournie par contre en AM sur les petites ondes ou les OC, je reçois surtout des parasites et des bruits issus de la carte ou du PC, l’antenne fournie n’est vraiment pas adaptée pour ces bandes là mais je reçois quand même une radio de Londres sur 1548 KHz assez nettement avec une antenne télescopique de 50 cm ! C’est dire la sensibilité du bidule. J’ai essayé aussi CubicSDR qui fonctionne bien mais moins pratique que l’autre. Pour ce qui est de l’émission, je n’y arrive pas encore sous W10.

Après j’ai fais des essais avec ma tablette Android où j’ai installé HackRF_Test ainsi que RF Analyzer, ça fonctionne très bien comme sous W10, j’ai réussi a faire un test d’émission sans moduler quoi que ce soit et ça fonctionne, je n’ai que 2 jours d’utilisation donc pas encore eu le temps de tout exploiter.

Après je me suis lancé sur Linux avec Ubuntu que j’ai installé en dual boot avec W10, ça fonctionne très bien.
J’ai installé GNURadio Companion, Hackrf et Hacktv et pleins de petits prog pour linux (voir plus haut dans le file).
C’est maintenant que ça se complique car je souhaite moduler en VHF en TV analogique 625 et surtout 819 lignes et après aussi en 441 lignes sur la bande 1. Je n’y arrive pas, il faut faire tout par scripte et c’est là le problème, c’est du coté de hacktv ou du « companion » que je bloque. Je me retrouve avec des bloques à mettre, mais ça ne colle pas avec ce que vous avez expliquez dans vos autres post. j’ai du raté quelque chose car c’est quand même assez complexe.
En faite, je suis complètement perdu avec tous ce que j’ai lu sur le forum.
Il faudrait faire une synthèse vor même un tuto simple pour la mise en place du système quelque soit le sdr (usb vers VGA ou usb vers hackrf one ou autres), le principe étant le même. Ce serait pour les nuls comme moi en linux (je connais quand même le minimum requis pour Ubuntu). Pour les vieux PC, il faudrait essayer Xubuntu qui est bien plus légé, j’ai fais des essais avec cette distribution sur un vieux tromblon de plus de 10 ans et ça tourne, pas fait d’essai avec le sdr car je n’y arrive déjà pas sur Ubuntu.

Avis aux courageux pour la mise en œuvre du Hackrf one en émission TV analogique.

Merci d’avance

Bruno Piffret

Pour hacktv il faut suivre les instructions du site officiel, c’est relativement simple si on a une distribution linux comme ubuntu :
github.com/fsphil/hacktv

depuis une console taper :

sudo apt-get update sudo apt-get install libhackrf-dev libavutil-dev libavdevice-dev libswresample-dev libswscale-dev libavformat-dev libavcodec-dev

puis ensuite compiler et installer hacktv manuellement :

git clone https://github.com/fsphil/hacktv.git cd hacktv make sudo make install

le « sudo make install » est optionnel (il permet d’installer le binaire hacktv dans le chemin /usr/bin), si on ne le tape pas alors hacktv doit être lancé dans le répertoire où a été faite la compilation, de cette manière « ./hacktv », suivi de ses options,
si la compilation génère des erreurs alors il faut installer les paquets ubuntu permettant de compiler :

sudo apt-get build-essential 

ou bien installer le paquet hacktv mais il n’est peut-être pas à jour (certains bugs non corrigés comme ceux du secam si le paquet est ancien) :

sudo apt-get install hacktv

hacktv s’utlise en ligne de commande, ici affichage d’une mire en PAL G sur le canal 31 avec un gain de 44 dB :

hacktv -f 551250000 -m g -g 44 test

pour transmettre un fichier vidéo (ici toto.avi) :

hacktv -f 551250000 -m g -g 44 toto.avi

les options complètes de hacktv :

hacktv --help

surtout ne pas relier directement par cable coaxial le hackRF à l’entrée antenne d’un poste de TV, l’impédance n’est pas égale à 75 ohm sur la sortie du hackRF et il peut être endommagé par un courant trop fort, il s’utilise par défaut pour transmettre en aérien le signal à faible distance (1 à 2 mètres du TV), si on veut quand même relier le hackRF et le poste de TV par câble coaxial alors il faut obligatoirement intercaler un filtre protecteur qui limitera le courant pour éviter de détruire les amplificateurs du hackRF.

Les canaux 21 à 49 peuvent être occupés par des chaines TNT, rendant difficile la transmission avec le hackRF (parasites, l’émetteur local TNT entrant en conflit avec celui du hackRF), souvent le résultat sera meilleur dans les bandes où la TNT n’est pas présente, comme le canal 68 ou 69, éventuellement la VHF si pas de radio numérique terrestre.

La correspondance des canaux TV VHF-UHF en méga-hertz :
tvignaud.pagesperso-orange.fr/tv/canaux.htm

hacktv prend en argument la fréquence en hertz, c’est à dire celle de la porteuse image, par exemple le canal 31 devient 551250000 en hertz (551.25 Mhz).

Pour émettre une mire en VHF en 819 lignes sur le canal 7 :

hacktv -f 192000000 -m e -g 44 test

Hello et merci Mannix54 pour ces données très utiles. :wink:

Bonsoir,

Merci Mannix, ça fonctionne parfaitement, il fallait seulement que je lance hacktv depuis son dossier nommé hacktv, j’avais raté cette info.

En tout cas merci pour ce système qui fonctionne assez bien, les vidéos d’archives de l’INA donne bien en norme L, come c’est du noir et blanc ça passe bien.

Demain, essai en 819 lignes sur plusieurs TV, je ferai ça en bande 1 et en bande 3 sur le canal 8A de Paris/Lille.

Après je me pencherai sur le 441 lignes en m’aidant du 405 lignes.

Un gros merci

Bruno

Bonjoru,

Essais fait, retour sur mes résultats :

j’ai une instabilité sur les vidéos transmises, quelque soit la norme d’émission y compris la « test » fourni par hacktv.
Elles sont stables quelques secondes puis ça décrochent comme si il n’y avait plus de synchro verticales mais elles y sont, il y a en même une instabilité du son.
Je précise que le phénomène est présent sur tout mes téléviseurs d’essais y compris un petit tv LCD. Ce n’est pas la synchro des TV qui décrochent mais bien la vidéo modulée qui déconne (perte de flux ?).

Je vous joint 2 photos d’un de mes tv en fonction, liaison sans fil sur le canal 8 en 625 lignes et en 819 lignes, ça reste stable environ 3 secondes puis ça décroche. Si je fais une action sur le PC, ça se stabilise 3 secondes puis ça recommence à sauter. Cela vient peut être de mon PC qui est un vieux modèle pour le test avec 4 Gigas de RAM et un Core duo. Par contre, je crois que ce n’est que de l’USB 2.
Il faut que je me trouve un PC avec de l’USB 3 pour faire de nouveau essais.
Je précise que par sécurité, je ne fais pas d’essais d’installation linux sur mon pc courant, je l’utilse pour mon boulot donc pas de bidouille dessus.

Pour parler un peu perf., la portée d’une telle installation avec mon Hackrf one couvre parfaitement mon appartement de 55m² soit une distance de 10m maxi pour l’essai avec l’antenne télescopique du module qui fait 50 cm donc pas du tout adapté en VHF. J’ai fais la même chose en UHF sur le canal 46, même portée mais image plus propre avant décrochage. Avec une antenne bien adapté, je pense que les performances de couverture devrait être bien meilleur mais dans mon cas pas besoin. Le gain utilisé est de 44.

Mes essais se ont bornés à la norme L SECAM mais sur TV noir et blanc, en PAL sur TV couleurs et en 819 lignes normes E. Le son modulé en AM n’est pas très fort et il y a de la distorsion. A la norme G, le son est parfait, c’est de la FM.
ça fonctionne sur n’importe quel canal du 1 au 69, il faut simplement que celui-ci ne soit pas pris par la RNT, la TNT ou la 4G.

Question subsidiaire, où se trouve le fichier où il y a les scripts pour faire le 441 en transformant le 405 en 441 ?
je ne le trouve pas comme si c’était directement dans le fichier programme.

A bientot
Bruno
Hacktv 819.jpg
Hacktv625.jpg

Petite mise à jour,

J’ai trouvé le fichier à modifier pour le 441 lignes, c’est : video.c

Il faut modifier les caractéristiques du 405 lignes car si on ajoute une nouvelle norme, il faut ajouté dans d’autres fichiers le 441 lignes et ça pose problème et surtout ça me dépasse, c’est du langage C mais j’ai des limites.

Voici ce qu’il faut modifier, je n’ai pas fait d’essais et surtout je ne change pas le nom de la config :


const vid_config_t vid_config_405_a = {

/* System A (441ine monochrome) */
.output_type = HACKTV_INT16_COMPLEX,

.modulation  = VID_VSB,
.vsb_upper_bw   =  750000, /* Hz */
.vsb_lower_bw   = 4000000, /* Hz */

.level = 1.0, /* Overall signal level */
.video_level = 0.8, /* Power level of video */
.am_audio_level = 0.2, /* Power level of audio */

.type  = VID_RASTER_405,
.frame_rate_num = 25,
.frame_rate_den = 1,
.lines = 441,
.hline = 221,

.active_lines   = 407,
.active_width   = 0.00008030, /* 80.3µs */  Pas les bonnes valeurs
.active_left = 0.00001680, /* |-->| 16.8µs */  Pas les bonnes valeurs

.hsync_width = 0.00000900, /* 9.00 ±1.00µs */   Pas les bonnes valeurs
.vsync_long_width  = 0.00004000, /* 40.0 ±2.00µs */ Pas les bonnes valeurs

.white_level = 1.00,
.black_level = 0.30,
.blanking_level = 0.30,
.sync_level  = 0.00,

.rw_co = 0.299, /* R weight */
.gw_co = 0.587, /* G weight */
.bw_co = 0.114, /* B weight */

/* AM modulated */
.am_mono_carrier = -4000000, /* Hz */
.am_mono_bandwidth = 10000, /* Hz */

};

const vid_config_t vid_config_405 = {

/* 441 line video */
.output_type = HACKTV_INT16_REAL,

.level = 1.0, /* Overall signal level */
.video_level = 1.0, /* Power level of video */

.video_bw = 3.5e6,

.type  = VID_RASTER_405,
.frame_rate_num = 25,
.frame_rate_den = 1,
.lines = 441,
.hline = 221,

.active_lines   = 407,
.active_width   = 0.00008030, /* 80.3µs */  Pas les bonnes valeurs
.active_left = 0.00001680, /* |-->| 16.8µs */  Pas les bonnes valeurs

.hsync_width = 0.00000900, /* 9.00 ±1.00µs */  Pas les bonnes valeurs
.vsync_long_width  = 0.00004000, /* 40.0 ±2.00µs */   Pas les bonnes valeurs

.white_level =  0.70,
.black_level =  0.00,
.blanking_level =  0.00,
.sync_level  = -0.30,

.rw_co = 0.299, /* R weight */
.gw_co = 0.587, /* G weight */
.bw_co = 0.114, /* B weight */

};

Plus loin, il faut modifier les synchros :

else if(s->conf.type == VID_RASTER_405)
{
switch(l->line)
{
case 1: seq = « V__V »; break;
case 2: seq = « V__V »; break;
case 3: seq = « V__V »; break;
case 4: seq = « V__V »; break;
case 5: seq = « h___ »; break;
case 6: seq = « h___ »; break;
case 7: seq = « h___ »; break;
case 8: seq = « h___ »; break;
case 9: seq = « h___ »; break;
case 10: seq = « h___ »; break;
case 11: seq = « h___ »; break;
case 12: seq = « h___ »; break;
case 13: seq = « h___ »; break;
case 14: seq = « h___ »; break;
case 15: seq = « h___ »; break;
case 16: seq = « h___ »; break;
case 17: seq = « h___ »; break;

	case 221: seq = "h_aV"; break;
	case 222: seq = "V__V"; break;
	case 223: seq = "V__V"; break;
	case 224: seq = "V__V"; break;
	case 225: seq = "V___"; break;
	case 226: seq = "h___"; break;
	case 227: seq = "h___"; break;
	case 228: seq = "h___"; break;
	case 229: seq = "h___"; break;
	case 230: seq = "h___"; break;
	case 231: seq = "h___"; break;
	case 232: seq = "h___"; break;
	case 233: seq = "h___"; break;
	case 234: seq = "h___"; break;
	case 235: seq = "h___"; break;
	case 236: seq = "h__a"; break;
	case 237:  seq = "h___"; break;
	case 238:  seq = "h___"; break;
	
	default:  seq = "h_aa"; break;
	}
	
	/* Calculate the active line number */
	vy = (l->line < 228 ? (l->line - 18) * 2 : (l->line - 239) * 2 + 1);

Voilà, j’espère que ce code est bon, il me manque les durée de lignes et les marges car je ne retrouve plus les caractéristiques du 441 lignes.

Voilà, c’est fini pour le moment.
Bruno

Le SDR demande de la puissance en terme de CPU et que la bande passante du port USB 2.0 ne soit pas partagé par un autre périphérique que le hackrf, quelle est la fréquence de ce CPU core 2 duo ?

Pour info j’ai un vieux CPU core 2 duo quad (un intel Q9650 de 2008, 4 coeurs, 3 Ghz, 12 Mo de cache, le haut de gamme de l’époque) et pas de souci avec hacktv et un hackrf branché sur un port USB 2.0, je suis sous linux (archlinux), avec 8 Go de mémoire,

hacktv affiche un warning sur la console quand il détecte que la puissance du CPU (ou la bande passante du port USB) n’est pas suffisante, dans ce cas on verra la mention « UUUUU » s’incrémenter en longueur de manière infinie dans la console,
en parallèle tu peux regarder le CPU avec un moniteur de ressources, s'il est à 100 ça peut expliquer les instabilités.

Tu peux aussi changer de port USB pour voir s’il y a une différence.

Il est conseillé de mettre à jour le firmware du hackrf (dernière version : mars 2021) et le pilote du hackrf (à la même version que le firmware), ça peut corriger des bugs, j’en parle dans ce sujet :
viewtopic.php?f=15&t=256984

Un point à vérifier : la qualité du cable USB, celui fourni avec le hackRF chinois n’est pas irréprochable, ses pins peuvent avoir un mauvais contact sur le port USB femelle du PC, quand on bouge la fiche USB on remarque parfois que la led power du hackRF s’éteint et se rallume, on peut le remplacer par un cable USB de meilleure qualité.

certains parlent de port usb3
a quoi peut servir de se connecter sur un usb3 vu que le hackrf est usb2 ?
l alimentation ?

Hello à tous,

@Bruno

J’ai observé ce type de décrochages même en sortie uniquement composite, tant avec le Fresco FL2000 qu’avec mon tout nouveau HackRF One en modulation L.
J’ai remarqué qu’il se produit quand la vidéo d’origine n’est pas à la cadence 25 ou 50i/s et surtout lorsque les premières lignes vidéo sont exploitée au lieu d’être en noir. On note d’ailleurs alors que la vidéo tente de défiler plus vite… :unamused:

Mannix54 a donné l’explication du dépassement de capacité « overflow ».

Par ailleurs, je vois aussi des différence entre la simple sortie composite (VGA Fresco) et la modulation L (HackRF One) et ce problème surgit sur certaines vidéos. Quand je repasse en modulation G en PAL, il n’apparaît plus sur certaines vidéo.

Je vais faire les mises à jour préconisée et voir si cela change le problème…
PS : je bloque car je ne sais pas mettre à jour → update libhackrf et hackrf-tools.

@Dreambox59

Le HackRF One est compatible USB3 même s’il ne parvient pas à en exploiter le débit maximum.

Hello à tous,

Pour ceux qui ne veulent pas acheter un HackRF One et préfèrent dépenser une trantaine d’euros pour un adaptateur USB-VGA avec puce Fresco, voici l’une des rares sources fiables et disponible (quelques unités encore).
Il faut se méfier des vendeurs d’adaptateur USB-VGA car la puce Fresco FL2000 n’est pas forcément présente.

Voici une source fiable que j’ai pu vérifier.
J’ai donc procédé à une commande sur Amazout et l’ai reçu en 48 heures (prix du transport contre signature). Le tarif est élevé par rapport au coût habituel (moins de 10€) mais ce qui est rare étant cher, cela reste une solution pas trop coûteuse pour générer des signaux composites actuels et anciens dont notamment 405L, 625L, 819L et couleur NTSC, PAL (sans modulation) et un Sécam pas encore totalement stabilisé (en cours de correction).

Encore quelques unités disponibles. :wink:
https://www.amazon.fr/gp/product/B089RR3NPR/