IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

Discrete consine transforme, en java..


Sujet :

2D Java

  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    35
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 35
    Par défaut Discrete consine transforme, en java..
    Bonjour a tous je cherche a implementer l'algorithme DCT en java, j'ai cree une classe pour ce faire, mais les performances sont pitoyables..( la transformation de 264*264 pixels par blocs de 8, vers le domaine frequentiele puis vers le domaine spatial, se fait en 2000ms..).

    n'y aurait-il pas un outil permettant de faire ca dans la jre?

    autre question (un peu hors contexte), peut on traiter l'image a la c++ ou delphi par scanline, ou getdibBits?

    Merci pour votre attention

    PS: voici le bout de code qui est responsable des performances minables ( de ma classe DCT):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int u, v, x, y;
    double[][] input;
    double[][] output;
    piDiv2N constante double
    .
    .
    .
    output[u][v] += input[x][y] * Math.cos((2*x+1) * u * piDiv2N) * Math.cos((2*y+1) * v * piDiv2N);
    le cosinus c'est lui le coupable..

  2. #2
    Membre émérite Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Par défaut
    Je pense que les faibles performances proviennent en effet du calcul de cosinus ; il vaudrait probablement mieux passer par un calcul matriciel, qui va se résumer à des multiplications et additions, ce qui devrait être plus rapide. Va voir http://fr.wikipedia.org/wiki/DCT , paragraphe DCT II .

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    35
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 35
    Par défaut
    Merci pour la réponse JoeChip,
    pour la source, j'ai atteint un temps de 250 ms en ajoutant une matrice cosinus[x][u] initialisee au debut(creation).
    la méthode que tu me propose a l'air très intéressante, tu n'aurais pas un exemple plus détaillé?

  4. #4
    Membre averti
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    35
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 35
    Par défaut
    Bonsoir, jai une autre question,
    l'algo que j'ai implémenté à l'air de bien fonctionner (car une fois transformé en domaine fréquentiel, je reviens sans problème au domaine spatial) seulement, les coefficients de la DCT sont des fois négatifs, et des fois plus grand que 1 est ce normal??
    voila la formule que j'ai utilisée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     * 		DCT(u,v) = alpha(u)*alpha(v)*sum[sum[f(x,y)*cos((pi/2N)*(2x+1)*u)*cos((pi/2N)*(2y+1)*v]]
     * 		sum de x=0..N-1, y=0..N-1
     * avec:
     * 		alpha(x) = sqrt(1/N) si x = 0
     * 		alpha(x) = sqrt(2/N) si x != 0
     * f(x,y) c'est par exemple la luminosité du pixel [x,y], compris entre 0 et 1
    PS: @JoeChip si t'as un exemple plus détaillé, du calcul matriciel je suis toujours preneur

Discussions similaires

  1. Transformer application Java .jar en JApplet
    Par Fred30 dans le forum Applets
    Réponses: 0
    Dernier message: 02/01/2012, 15h10
  2. [XSLT] Transformation sous JAVA via Saxon
    Par thefutureisnow dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/12/2009, 14h32
  3. transformer objet java en collection oracle
    Par reportPer dans le forum Général Java
    Réponses: 4
    Dernier message: 04/10/2009, 07h32
  4. Cherche QQun aide Transformation CODE JAVA -> C#
    Par alex_nicolas dans le forum C#
    Réponses: 0
    Dernier message: 04/02/2009, 10h23
  5. Discret Cosine Transform (DCT)
    Par Pitchounette31 dans le forum OpenCV
    Réponses: 4
    Dernier message: 23/04/2008, 11h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo