TP de transmission/compression de sons et images

Extrayez le sujet de TP : tp_dct.tar.gz

Le but des TP est de programmer un compresseur/décompresseur de sons et d'images. Vous ne programmerez que les parties intéressantes.

De plus chacune des fonctions que vous écrivez sera testées automatiquement afin de vous prévenir pour les erreurs les plus courantes.

Les fichiers que vous devez compléter (par 579 lignes de C) sont dans l'ordre :

bit.c bitstream.c bits.c entier.c sf.c matrice.c dct.c psycho.c rle.c image.c jpg.c ondelette.c

Je vous conseille de regarder les macros de bases.h elles sont bien utiles.

En aucun cas vous ne devez faire de printf sur la sortie standard. Vous devez faire vos sorties pour le debuggage sur la sortie d'erreur : fprintf( stderr, ...)

Des fonctions C (1736 lignes) vérifiant si vos fonctions ont l'air de fonctionner existent. Pour tester l'ensemble de vos fonctions, vous tapez :

make

Vous pouvez lancer le test immédiatement après avoir fini une fonction. La fonction qui teste la fonction toto du fichier truc.c s'apelle toto_tst et se trouve dans le fichier truc_tst.c.

Quand vous aurez fait dct.c, vous pourrez commencer à créer une page Web avec quelques graphismes et statistiques pour le son, ou pour l'image quand vous aurez terminé jpeg.c ou ondelette.c. Les scripts suivants génèrent des pages Web :

page_son
page_jpeg
page_ondelette

Ces trois programmes sont des scripts shell facilement paramétrables pour que vous puissiez tester tous les paramètres des différents algorithmes.

Les différentes étapes de transformation des sons et images sont faites en utilisant des filtres qui sont composés avec des pipes.

export NBE=128    # Taille linéaire de la DCT
export QUALITE=1 # Qualité de "psycho" ou "quantification"
export SHANNON=0 # Si 1, utilise shannon-fano dynamique au lieu de table statiques

Les filtres proposés sont :
Nom du filtreEntrée StandardSortie Standard Paramètres
affiche_sonSon (octets)Rien (fenêtre sur l'écran)NBE
dctSon (octets)Dct (flottant)NBE
dctinvDct (flottant)SonNBE
affiche_dctDct (flottant)Rien (fenêtre sur l'écran)NBE
psychoDct (flottant)Dct (flottant)NBE, QUALITE
rleDct image ou non (flottant)BitsNBE, SHANNON
rleinvBitsDct image ou non (flottant)NBE, SHANNON
imagedctPGMDct image (flottant)NBE
imagedctinvDct image (flottant)PGMNBE
quantifDct image (flottant)Dct image (flottant)NBE, QUALITE
quantifinvDct image (flottant)Dct image (flottant)NBE, QUALITE
zigzagDct image (flottant)Dct image (flottant)NBE
zigzaginvDct image (flottant)Dct image (flottant)NBE
ondelettePGMBitsQUALITE, SHANNON
ondeletteinvBitsPGM
sf8OctetEgalisation Bit Shannon Fano
sf16Pair octetEgalisation Bit Shannon Fano