Modérateurs: Modération Forum DIY, Modération Forum Installations, Le Bureau de l’Association HCFR • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 16 invités

TV, Projo, Boitier Switch, Ecrans...

Conception d'un Ambilight DIY

Message » 15 Mar 2009 17:00

Bonjour à tous,

Voilà bien longtemps que je parcours régulièrement ce forum, et je me lance enfin afin de vous faire part d'un projet qui me tient à coeur :D

J'ai attaqué depuis peu la conception d'un Ambilight maison et je passais voir si par hasard d'autres n'auraient pas déjà tenté l'expérience... J'ai bien vu un sujet parlant de mettre des néons à leds derrière nos écrans plats mais c'était plus en rapport avec une lumière d'ambiance qu'avec un ambilight.

Je sais que je suis loin d'être le premier à attaquer une telle réalisation, des projets tels que Atmolight et Momolight étant assez connus. Cependant j'avais en tête un projet un peu plus ambitieux avec beaucoup plus de secteurs lumineux, Momolight se limitant à haut, gauche et droite.

D'après les premiers tests que j'ai pu faire, il semble que la principale difficulté réside dans le logiciel de pilotage des leds et plus particulièrement dans l'algorithme de détection de couleur dominante de chaque secteur...

Je vais essayer de rassembler au plus vite les informations que j'ai pu accumuler jusqu'à maintenant et faire un état de mon avancement ;)

La suite au prochain épisode :mdr:
djwill31
 
Messages: 19
Inscription Forum: 28 Nov 2008 10:16
Localisation: Toulouse
  • offline

Message » 15 Mar 2009 19:18

Je me réponds à moi même pour vous faire donc part de mon travail accompli à l'heure actuelle.

Pour commencer voici une rapide photo de mon installation :

Image

J'ai décidé de découper l'image en 12 secteurs pour avoir un résultat assez bien définit : 4 en haut, 3 sur les côtés et seulement 2 en bas étant donné que haut-parleur central est collé à la télé.

Les néons les plus adaptés que j'ai pu trouver sont vendus sur http://www.dealextreme.com. Ils ont l'avantage d'être suffisamment lumineux, de pouvoir être coupés et de couter moins de 10$ pièce :

Image

Un logiciel côté PC devra donc communiquer avec une carte électronique pour générer 36 PWM (R+V+B * 12). J'ai pour ma part utiliser un microcontrôleur USB PIC18F87J50 qui est certes assez petit mais suffisant pour gérer l'USB et les PWM.

Le logiciel faisant le traitement vidéo est codé en Delphi et juste pour le fun je lui ai donné l'apparence de mon salon 8). Il détecte automatiquement si un lecteur audio ou vidéo est lancé, si aucun des deux n'est lancé, on a la possibilité de piquer une couleur pour avoir une lumière d'ambiance :

Image

Dans le cas où par exemple MPC-HC est lancé, l'ambilight fonctionne normalement :

Image

Dans le cas où iTunes ou Winamp seraient lancés, j'ai rapidement implanté un mode audio où la couleur varie en fonction de l'intensité du son (graves en haut, mediums sur les côtés, aigues en bas) :

Image

Ainsi qu'un VU-Mètre :

Image


Voici maintenant des photos de l'ambilight en action :

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image


Même si toutes ces photos semblent encourageantes, j'estime qu'il y a encore pas mal de travail au niveau de mon algorithme de détection de couleur dominante qui présente quelque défaillances notamment dans des plans assez sombres...

Voilà donc pour commencer, j'attends vos remarques et critiques en espérant pouvoir faire avancer un peu plus ce projet grâce à vous ;)

Je précise au passe que mes schémas et codes sources sont disponibles si vous le désirez :)
djwill31
 
Messages: 19
Inscription Forum: 28 Nov 2008 10:16
Localisation: Toulouse
  • offline

Message » 15 Mar 2009 19:23

moi je dis bravo, je me suis contenter de mettre de simple réglette mono couleur , mais c'est moins beau :oops:
BC_passion
 
Messages: 666
Inscription Forum: 11 Mai 2004 19:21
Localisation: 69 ex 76
  • online

Message » 15 Mar 2009 20:01

SUPER !!!!!!!!

J'attendais cela depuis longtemps... des anglais ont fait cela, mais que sur 3 cotés et à chaque fois, un lumiere centrée en haut et centré de chaque coté. N'y connaissant rien dans la programmation dans le milieu de la video, je cherchais un peu au hasard!

Mais là ca a l'air splendire.. je vais relire le sujet une 2eme fois pour bien tout comprendre... moi je cherchais un petit filtre a mettre ds ffdshow par exemple :)

P'tet prévoir si c'est facile, un peu plus de zone pour les personnes n'ayant pas de central directement sous la tv ;)..(et autre PIC avec plus de PWM si ca existe) ou je pensais p'tet faire un système comme ca derrière un écran fixe... mais bon ;) là je m'emballe... ;)

Si tu veux un echange d'idées ou autre je suis partant :). je ne connais pas le Delphi, mais ca ne doit pas etre bien différent de tous les autres langages de prog que je connais ;) de la rpog reste de la prog, mais apres le coté "vidéo" doit etre plus specialisé :)
Mais je ne suis pas contre un peu d'aide si tu veux à mes heures perdus ;)

Bonne continuation :)

Fantastique projet :)
Aceditnanar
 
Messages: 4492
Inscription Forum: 07 Jan 2006 15:53
Localisation: 69, année... hhmmmm, pardon !
  • offline

Message » 15 Mar 2009 20:16

Le codage d'un filtre directshow fait partie de ce que je me suis fixé de développer. Celà résoudrait une bonne partie des problèmes que je rencontre à l'heure actuelle en particulier une charge CPU assez importante lors de la capture des images...

Mon logiciel PC gère le nombre de néons dynamiquement, avoir 4 secteurs en bas n'est pas du tout un problème. Coté hardware, aucun microcontroleur ne peut fournir en natif 36 PWM ou plus, les PWM sont recréées artificiellement. Il reste plusieurs I/O de libres qui pourraient servir à rajouter 2 zones facilement.

Le plus compliqué pour l'analyse de l'image vidéo c'est de la capturer. Pour le moment j'utilise la manière la plus brutale et la moins élégante : une sorte d'imprim-écran à 25 images par seconde, j'en récupère une image brute, il est facile ensuite d'analyser chaque pixel.
Je cherche une solution à base de directx pour accéder directement au flux vidéo de la carte graphique mais je n'ai encore eut rien de concret pour le moment.

Affaire à suivre...
Dernière édition par djwill31 le 15 Mar 2009 20:58, édité 1 fois.
djwill31
 
Messages: 19
Inscription Forum: 28 Nov 2008 10:16
Localisation: Toulouse
  • offline

Message » 15 Mar 2009 20:34

:o
Bravo! :D
DJEvol
 
Messages: 803
Inscription Forum: 07 Oct 2008 18:09
Localisation: France 04!
  • offline

Message » 15 Mar 2009 22:37

C'est amusant de voir que d'autres ici pensent à ça :)

Mais tu sembles plus motivé que moi ! je me suis bricolé un système avec ce que j'avais de dispo et limité à 3 ou 4 canaux.

Tu as vu que le plus compliqué dans l'histoire c'est le calcul de la couleur.
J'ai écrit un plugins pour mon lecteur favori MPlayer http://www.mplayerhq.hu/ C'est relativement simple à faire car le soft est bien pensé. Je suis sous linux mais ça doit fonctionner tout aussi bien sous windows.

Pour l'algorithme, j'ai fait simple :) Je découpe chaque frame en 3 zones: moitié haute, moitié droite et moitié gauche (bien sûr la zone en haut se chevauche avec les 2 autres) et je fais une bête moyenne sur les rouges/verts/bleus. Je suis satisfait du résultat de cet algo. T'as d'autres idées ?

J'ai juste prévu de faire une évolution: la luminosité est comme le son sa perception n'est pas linéaire. C'est juste un tableau à calculer mais en ce moment je manque de temps pour m'occuper de ça...

Thomas
wiu
 
Messages: 72
Inscription Forum: 01 Fév 2006 15:12
Localisation: 94
  • offline

Message » 15 Mar 2009 22:39

Plutôt convainquant comme réalisation, bravo.
cri83
 
Messages: 751
Inscription Forum: 24 Juin 2006 17:59
Localisation: Les Grandes Bouches du Rhône :)
  • offline

Message » 15 Mar 2009 23:47

wiu a écrit:C'est amusant de voir que d'autres ici pensent à ça :)

Mais tu sembles plus motivé que moi ! je me suis bricolé un système avec ce que j'avais de dispo et limité à 3 ou 4 canaux.

Tu as vu que le plus compliqué dans l'histoire c'est le calcul de la couleur.
J'ai écrit un plugins pour mon lecteur favori MPlayer http://www.mplayerhq.hu/ C'est relativement simple à faire car le soft est bien pensé. Je suis sous linux mais ça doit fonctionner tout aussi bien sous windows.

Pour l'algorithme, j'ai fait simple :) Je découpe chaque frame en 3 zones: moitié haute, moitié droite et moitié gauche (bien sûr la zone en haut se chevauche avec les 2 autres) et je fais une bête moyenne sur les rouges/verts/bleus. Je suis satisfait du résultat de cet algo. T'as d'autres idées ?

J'ai juste prévu de faire une évolution: la luminosité est comme le son sa perception n'est pas linéaire. C'est juste un tableau à calculer mais en ce moment je manque de temps pour m'occuper de ça...

Thomas


Pour la détection de couleur dominante, j'ai commencé aussi par une moyenne mais l'inconvénient est que si les images sont trop variées en couleurs les 3 composantes tendent vers leur valeur médiane (128) ce qui donne du gris ou dans tous les cas des couleurs assez pales.

Pour le moment, quand je balaye mes pixels, je converti les données RGB en HSV (Hue Saturation Value ou Teinte Saturation Valeur en français) puis j'applique un filtre gaussien sur les teintes pour avoir la teinte la plus répendue. Je n'ai plus qu'à faire la moyenne des saturations et des valeurs pour avoir une bonne approche de la couleur dominante que je re-converti en RGB pour finir. Le passage par l'espace colorimétrique HSV a aussi pour avantage de pouvoir appliquer des corrections de luminausité très facilement.
C'est certes un brin plus intelligent qu'une moyenne mais dans certains cas que je n'ai pas encore bien identifiés il y a encore des erreurs... D'ailleurs si quelqu'un a une meilleure idée ou bien des axes de réflexion je suis preneur ;)

Ah et aussi pour info, j'utilise un filtre linéaire sur environ 200ms pour stabiliser correctement la couleur. Sans ça, il y avait un scintillement assez genant ; en particulier lorsqu'il y a plusieurs couleurs dominantes presque également réparties.

Pour ce qui est de la réponse rétinienne, j'ai déja une fonction de transfert logarithmique inverse pour la corriger.

Au passage il faut aussi prévoir une correction manuelle des 3 composantes RVB pour compenser l'erreur que peuvent présenter les barres de LEDs ; en tout cas sur mes néons, il est flagrant que les composantes ne sont pas de luminausité égale, je n'ai donc pas de vrai blanc lorsque tout est à 100%. Cette partie sera très bientot codée meme si l'idéal serait d'utiliser un colorimètre :mdr:
Dernière édition par djwill31 le 16 Mar 2009 13:51, édité 1 fois.
djwill31
 
Messages: 19
Inscription Forum: 28 Nov 2008 10:16
Localisation: Toulouse
  • offline

Message » 15 Mar 2009 23:52

djwill31
 
Messages: 19
Inscription Forum: 28 Nov 2008 10:16
Localisation: Toulouse
  • offline

Message » 16 Mar 2009 1:22

Original et superbement réalisé, le résultat est top. Beau projet !
Avatar de l’utilisateur
Kro
Membre HCFR
Membre HCFR
 
Messages: 29429
Inscription Forum: 12 Jan 2004 19:24
Localisation: L'Isle d'Abeau (38)
  • online

Message » 16 Mar 2009 18:47

djwill31 a écrit:Le plus compliqué pour l'analyse de l'image vidéo c'est de la capturer. Pour le moment j'utilise la manière la plus brutale et la moins élégante : une sorte d'imprim-écran à 25 images par seconde, j'en récupère une image brute, il est facile ensuite d'analyser chaque pixel.
Je cherche une solution à base de directx pour accéder directement au flux vidéo de la carte graphique mais je n'ai encore eut rien de concret pour le moment.

Affaire à suivre...


Ce vieux truc de brute :o
gloinfred
 
Messages: 5414
Inscription Forum: 20 Mar 2008 16:15
Localisation: Provence
  • offline

Message » 17 Mar 2009 12:54

Le résultat est superbe !
Beau travail :o
Hervé
Marsupilami
 
Messages: 5938
Inscription Forum: 07 Mar 2001 2:00
Localisation: France - Lyon
  • offline

Message » 17 Mar 2009 20:13

Salut,
Dans un premier temps je tenais a te dire bravo pour ce que tu as réalisé.
Et dans un 2e temps pourrais tu me donner plus d'infos sur ton montage et ton programme :
- Interface avec le pc
- Montage du systeme led etc

Et j'aimerais savoir si tu pense que ce systeme est réalisable derrière un écran de projection, écran cadre de 2,32m de base en 16/9.

Au cas ou j'ai quelques notions de progra si ca te tentes d'avoir un peu d'aide.

A bientot et encore chapeau bas .
freez
 
Messages: 117
Inscription Forum: 30 Nov 2008 20:02
Localisation: Nancy
  • offline

Message » 17 Mar 2009 21:22

Superbe :o

Je n'ai jamais vu d'ambilight de ma vie, mais à part une légère lattence (que tu peux difficilement controler j'imagine, et je ne sais pas d'ailleurs si c'est de même sur le système initial ou si si ils ont crée un délai pour le temps de modif des couleurs des leds) c'est re :o
Idée à la noix : plutôt que de calculer la moyenne, est-ce que tu as essayé de calculer la médiane ? ou d'autres fonctions statistiques ?

Voir ton programme delphi m'intéresserait par curiosité de programmation d'une carte controleur actuelle (je ne suis pas automaticien :roll: , et à mon époque à la fac, on contrôlait des 6502 :mdr: )

Bravo ! A+ RV
herve502
 
Messages: 1945
Inscription Forum: 12 Fév 2003 13:02
Localisation: Valenciennes, loin de mon chouchenn natal
  • offline


Retourner vers Vidéo, Ecrans et VP