begin process at 2010 02 10 14:53:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Maths & Algorithmes

 > 

Table d'Huffman/JPEG


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Table d'Huffman/JPEG

dimanche 31 août 2003 à 17:01:54 | Table d'Huffman/JPEG

fabienGL

Bonjour,
J'écris un loader JPEG, je l'ai presque fini mais il y a une étape qui me pose problème, c'est le stockage de la table d'Huffman. je vais expliquer vaguement son fonctionnement et ce que je ne comprends pas(je tiens à préciser que j'ai déjà récupérer la norme officiel du format JFIF, et d'autres documents trouvé sur wotsit et que je ne veux pas qu'on me donne le nom de library pour charger des fichiers JPEG, le but de ce programme est pour que j'apprenne un peu!):
16 octets consécutifs contiennent le nombre de codes huffman qui ont cette taille en bit. par exemple si notre table à 3 code Huffman de 5 bits et bien le 4ème octet de ces 16 octet sera ajusté à 3.
après ces 16 octets il y a les valeurs associées pour chaqun des codes Huffman. Ainsi cette espace vaut en octet la somme des valeurs de 16 octets dont j'ai parlé plus haut. cette espace est un tableau comme suit tb[k][i] où k varie de 0 à 15 et i varie de 0 à la valeur du p[k], où p serait le tableau stockant les 16 éléments du départ.
Je ne sais pas si je me suis fait comprendre mais si quelqun à déjà écrit un loader, je pense qu'il doit savoir de quoi je parle.
En gros à jusqu'ici je connais le nombre de codes Huffman que j'ai (classé en nombres de bits) et les valeurs associés à ces codes mais je ne connais pas les codes Huffman eux-même alors qu'ils sont trés utile vu que ce sont eux qui sont dans les données du fichier lui-même. J'aurais aimé savoir comment qu'on les récupères et quel est l'algo pour les récupérer? si quelqun sais, merci de m'explicité tout ça, si vous connaîssez des documents plus préçis sur les tables Huffman dans un fichier JPEG merci de me les donner.
Dans la doc. officiel, il en parle mais bon, pour moi ce n'est pas très clair.

Merci de votre aide.

Webmaster de http://www.startjeux.com
Site web des programmeurs C++, OpenGL, PHP, HTML, JavaScript ...
dimanche 17 septembre 2006 à 20:53:46 | Re : Table d'Huffman/JPEG

vincentbo

Salut,

je ne sais pas si tu as terminé ton loader ?
je suis justement en train d'en coder un et j'en suis aussi au niveau du stockage des matrices quantifiées.
Concernant le codage des [8x8], on a deux type de valeurs à coder, les valeurs associées aux coéfficients DC (toujours sotckés en [0,0] dans la matrice) et celles des coéfficents AC (les 63 autres valeurs).
Donc pour le codage des tableau de Huffman, tu en as deux types, celles pour les valeurs DC et celles pour les valeurs AC, voici la structure des ces tables dans le fichiers JPEG, j'espère que ça pourra te faire avance un peu, pour l'instant je n'ai pas plus d'infos car j'en suis au même endroit que toi.

{ Start Of Image }
{ APP0 Marker
 Length: 16
 Version: 1.1
 Density Unit: (pixels per inch)
 X Density: 72
 Y Density: 72
 Thumbnail Width: 0
 Thumbnail Height: 0
}

{ Define Quantization Table
 Length: 132
 Table Index: 0
 Table Precision: 0
 Table Values:
  6 4 4 4 5 4 6 5
  5 6 9 6 5 6 9 11
  8 6 6 8 11 12 10 10
  11 10 10 12 16 12 12 12
  12 12 12 16 12 12 12 12
  12 12 12 12 12 12 12 12
  12 12 12 12 12 12 12 12
  12 12 12 12 12 12 12 12

 Table Index: 1
 Table Precision: 0
 Table Values:
  7 7 7 13 12 13 24 16
  16 24 20 14 14 14 20 20
  14 14 14 14 20 17 12 12
  12 12 12 17 17 12 12 12
  12 12 12 17 12 12 12 12
  12 12 12 12 12 12 12 12
  12 12 12 12 12 12 12 12
  12 12 12 12 12 12 12 12
}

{ Start Of Frame
 Type: Baseline (Huffman)
 Length: 17
 Precision: 8
 Height: 383
 Width: 262
 Component Count: 3
 Component 1
 Horizontal Frequency: 2
 Vertical Frequency: 2
 Quantization Table: 0
 Component 2
 Horizontal Frequency: 1
 Vertical Frequency: 1
 Quantization Table: 1
 Component 3
 Horizontal Frequency: 1
 Vertical Frequency: 1
 Quantization Table: 1
}
{ Define Huffman Table
 Length: 418
 Table Index 0
 Table Class: DC
 Code Counts: 0 0 7 1 1 1 1 1 0 0 0 0 0 0 0 0
 Code Values: 4 5 3 2 6 1 0 7 8 9 a b
 Table Index 1
 Table Class: DC
 Code Counts: 0 2 2 3 1 1 1 1 1 0 0 0 0 0 0 0
 Code Values: 1 0 2 3 4 5 6 7 8 9 a b
 Table Index 0
 Table Class: AC
 Code Counts: 0 2 1 3 3 2 4 2 6 7 3 4 2 6 2 73
 Code Values:
  1 2 3 11 4 0 5 21 12 31 41 51 6 13 61 22
  71 81 14 32 91 a1 7 15 b1 42 23 c1 52 d1 e1 33
  16 62 f0 24 72 82 f1 25 43 34 53 92 a2 b2 63 73
  C2 35 44 27 93 a3 b3 36 17 54 64 74 c3 d2 e2 8
  26 83 9 a 18 19 84 94 45 46 a4 b4 56 d3 55 28
  1a f2 e3 f3 c4 d4 e4 f4 65 75 85 95 a5 b5 c5 d5
  e5 f5 66 76 86 96 a6 b6 c6 d6 e6 f6 37 47 57 67
  77 87 97 a7 b7 c7 d7 e7 f7 38 48 58 68 78 88 98
  a8 b8 c8 d8 e8 f8 29 39 49 59 69 79 89 99 a9 b9
  c9 d9 e9 f9 2a 3a 4a 5a 6a 7a 8a 9a aa ba ca da
  ea fa

 Table Index 1
 Table Class: AC
 Code Counts: 0 2 2 1 2 3 5 5 4 5 6 4 8 3 3 6d
 Code Values:
  1 0 2 11 3 4 21 12 31 41 5 51 13 61 22 6
  71 81 91 32 a1 b1 f0 14 c1 d1 e1 23 42 15 52 62
  72 f1 33 24 34 43 82 16 92 53 25 a2 63 b2 c2 7
  73 d2 35 e2 44 83 17 54 93 8 9 a 18 19 26 36
  45 1a 27 64 74 55 37 f2 a3 b3 c3 28 29 d3 e3 f3
  84 94 a4 b4 c4 d4 e4 f4 65 75 85 95 a5 b5 c5 d5
  e5 f5 46 56 66 76 86 96 a6 b6 c6 d6 e6 f6 47 57
  67 77 87 97 a7 b7 c7 d7 e7 f7 38 48 58 68 78 88
  98 a8 b8 c8 d8 e8 f8 39 49 59 69 79 89 99 a9 b9
  C9 d9 e9 f9 2a 3a 4a 5a 6a 7a 8a 9a aa ba ca da
  ea fa
}
{ Start Of Scan
 Length: 12
 Scan Count: 3
 Component ID: 1
 AC Entropy Table: 0
 DC Entropy Table: 0
 Component ID: 2
 AC Entropy Table: 1
 DC Entropy Table: 1
 Component ID: 3
 AC Entropy Table: 1
 DC Entropy Table: 1
 Spectral Selection Start: 0
 Spectral Selection End: 63
 Sucessive Approximation High: 0
 Sucessive Approximation Low: 0
}
{ End Of Image }

 



Cette discussion est classée dans : table, codes, octets, jpeg, huffman


Répondre à ce message

Sujets en rapport avec ce message

huffman dans la norme JPEG [ par ouinih ] Bonjour,je suis entraine de faire un encodeur JPEG, et je n'arrive pas à comprendre l'encodage de huffman decrit dans la norme.Si vs connaissez des li Compression JPEG [ par inkognitodz ] S.V.P. J'ai besoin du code (C++Builder) qui permet de compresser d Afficher une image .jpeg dans un Picture Control [ par Flaken ] Bonjour,Je voudrais mettre une image en format .jpeg dans un Picture Control. Pour cela j'ai créer un bouton parcourir qui permet de sélectionner une [BAR]comment ouvrir et utiliser les codes VB [ par DHOK ] SALUT A TOUSJe suis trés trés debutant tous c que je sais faire realiser userform vb excel j'ai trouvé sur ce site de centaines des codes trés interes Crystal report table crisé [ par i31018270 ] bonjour, je suis entrain de créer une petite application de production, et pour cela je doit faire des etats et j'ai choisis le crystal report. mon pr Comment créer un fichier binaire avec ces codes?? [ par zhangshuo ] Bonjour à tous, J'ai réussi à utiliser des codes ci-dessous à créer un fichier texte. File::AppendText,il peut créer un fichier texte et ajouter des d champs de type Number et Memo dans une Table paradox sous Builder c++ [ par algerianito ] Salut à tous J'utilise le Borlande c++ builder , je veux insérer éditer et afficher les enregistrement d'un table que j'ai deja crée grace à l'utilita


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales