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

C Discussion :

Code source pour appliquer une DCT


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut Code source pour appliquer une DCT
    Je suis en train de programmer un compresseur d'image et j'ai un problème avec ma DCT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    struct s_dct dct(struct s_image bloc_in[],int k)//DCT
    {
        int x,y;
        struct s_dct bloc_out;
     
        bloc_out.bleu = bloc_out.rouge = bloc_out.vert = 0;
        for(x=0;x<8;x++)
        {
     
                        for(y=0;y<8;y++)
                        {
                                        bloc_out.bleu=bloc_out.bleu + (bloc_in[x*y].bleu*cos((((2*x)+1)*(bloc_in[k].x)*M_PI)/(16))*cos((((2*x)+1)*(bloc_in[k].y)*M_PI)/(16)));
                                        bloc_out.vert=bloc_out.vert + (bloc_in[x*y].vert*cos((((2*x)+1)*(bloc_in[k].x)*M_PI)/(16))*cos((((2*x)+1)*(bloc_in[k].y)*M_PI)/(16)));
                                        bloc_out.rouge=bloc_out.rouge + (bloc_in[x*y].rouge*cos((((2*x)+1)*(bloc_in[k].x)*M_PI)/(16))*cos((((2*x)+1)*(bloc_in[k].y)*M_PI)/(16)));
     
                        }
        }
        bloc_out.bleu=0.25*C(bloc_in[k].x,bloc_in[k].y)*bloc_out.bleu;;
        bloc_out.vert=0.25*C(bloc_in[k].x,bloc_in[k].y)*bloc_out.vert;
        bloc_out.rouge=0.25*C(bloc_in[k].x,bloc_in[k].y)*bloc_out.rouge;
        return (bloc_out);
    }
    bloc_in[] est une matrice de 8*8 et la fonction retourne un entier à placer dans un tableau à l'indice k.

    Merci d'avance.

    EDIT : la formule de la DCT ce trouve là : http://fr.wikipedia.org/wiki/Compression_JPEG

    Les structure s_dct et s_imagecontiennent les coordonnées (x,y) d'un point dans une matrice "virtuelle" ainsi que la valeur des composante de couleur du point.

    En fait j'envoie dans ma fonction un bloc de 8*8 "pixels" (bloc_in[]) et je voudrai qu'elle me retourne un entier que je place dans un tableau à l'indice k ca pour les trois couleur de la matrice avec derrier une boucle for pour remplire un tableau de la meme structure contenant les résultat de la DCT

  2. #2
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    avant qu'on verifie l'implementation de l'algo, ce serait bien que tu nous explique ce que tu attend de ta fonction, et ce qu'il se passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        bloc_out.bleu = bloc_out.rouge = bloc_out.vert = 0;
    c'est peut etre autorisé, mais je trouve ça moche quand meme.

  3. #3
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par Dark_Ebola
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        bloc_out.bleu = bloc_out.rouge = bloc_out.vert = 0;
    Je savais meme pas que c'aitais posible ...

  4. #4
    Membre chevronné Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Par défaut
    Citation Envoyé par miron
    Je savais meme pas que c'aitais posible ...
    Possible mais extremement deconseille, car tres nuisible a la lisibilite du code.

    (caches toi je crois que tu vas te faire allumer si tonton emdel passe par la...)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut
    Citation Envoyé par Jack_serious
    Possible mais extremement deconseille, car tres nuisible a la lisibilite du code.
    Désolé ca fait un mois que je fais du C

  6. #6
    Membre chevronné Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Par défaut
    Citation Envoyé par lemenyau
    Désolé ca fait un mois que je fais du C
    Pas de probleme. C'est juste un conseil, pas une attaque.

  7. #7
    Membre éclairé Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Par défaut
    Citation Envoyé par Jack_serious
    Possible mais extremement deconseille, car tres nuisible a la lisibilite du code.

    (caches toi je crois que tu vas te faire allumer si tonton emdel passe par la...)
    MDR
    Il est 21h35 , je vais pas bosser t tla journée!!!

    Non mais il est super simpa EMDEL.
    Un peu sec par moment, si on lui donne pas ce qu'il fautJustifié souventMais bon aller bonne nuit a tous!!!

  8. #8
    Membre émérite
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Par défaut
    Hmm, je comprends pas, j'ai du rater un fil aujourd'hui : pourquoi Emmanuel te poursuit-il aujourd'hui au travers de tous les messages à propos de tes révisions ?? Il y a eu des messages spécifiques que j'ai manqués ?

    J'aimerai comprendre?? ^__^
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. exemple de code source pour insérer une date
    Par Narouto dans le forum JSF
    Réponses: 13
    Dernier message: 11/06/2011, 15h49
  2. besoin du code source pour une version debug ?
    Par tendu1 dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 08/10/2009, 18h25
  3. Réponses: 8
    Dernier message: 12/06/2006, 22h40
  4. code HTML pour mettre une image en background dans un menu
    Par Link14 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/10/2005, 12h11
  5. [VB6] Code source pour modifier MsgBox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 25/02/2003, 15h13

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