/*************************************************************************************************************************************/
/* */
/* R E D U C T I O N D ' U N E S U I T E D E 6 4 I M A G E S A R G U M E N T */
/* E T G E N E R A T I O N D ' U N E M A T R I C E L E S C O N T E N A N T */
/* E N V U E D E L E S A N I M E R : */
/* */
/* */
/* Definition : */
/* */
/* Cette commande genere une animation */
/* representee par une suite d'images */
/* et la place dans l'image Resultat. */
/* */
/* */
/* Supposons un tableau carre */
/* de 8x8=64 (carre) images ; celles-ci */
/* seront disposees ainsi (les numeros */
/* de 00 a 63 donnant l'ordre d'appa- */
/* rition temporelle des images) : */
/* */
/* */
/* Y ^ */
/* | */
/* Ymax |--------------------------------------- */
/* | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | */
/* |----+----+----+----+----+----+----+----| */
/* | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | */
/* |----+----+----+----+----+----+----+----| */
/* | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | */
/* |----+----+----+----+----+----+----+----| */
/* | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | */
/* |----+----+----+----+----+----+----+----| */
/* | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | */
/* |----+----+----+----+----+----+----+----| */
/* | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | */
/* |----+----+----+----+----+----+----+----| */
/* | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | */
/* |----+----+----+----+----+----+----+----| */
/* | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | */
/* Ymin o-------------------------------------------> */
/* Xmin Xmax X */
/* */
/* */
/* ATTENTION : */
/* Pour les images dont les dimensions ne */
/* sont pas divisibles par 8, cette operation */
/* introduit une bande noire a droite (si 'dimX' */
/* n'est pas divisible par 8) et/ou en haut (si */
/* 'dimY' n'est pas divisible par 8). L'utilisation */
/* de '$xci/dilate.01$X' avec "points=225" permet de */
/* corriger le defaut... */
/* */
/* */
/* Author of '$xci/reduction_64$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 1988??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* I N T E R F A C E ' listG ' : */
/* */
/* */
/* :Debut_listG: */
/* :Fin_listG: */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D I R E C T I V E S S P E C I F I Q U E S D E C O M P I L A T I O N : */
/* */
/*************************************************************************************************************************************/
@define PRAGMA_CPP_____POUR_LES_Istore_Iupdate_NE_PAS_VERIFIER_LES_MULTIPLES_UTILISATIONS_DE_L_IMAGE_____ImageA9
/* Introduit le 20060124145847. */
@define PRAGMA_CL_____MODULE_NON_OPTIMISABLE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* F I C H I E R S D ' I N C L U D E S : */
/* */
/*************************************************************************************************************************************/
#include INCLUDES_BASE
#include image_image_IMAGESF_EXT
/* Introduit le 20200618135249... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A R A M E T R E S : */
/* */
/*************************************************************************************************************************************/
#include xci/sequence.01.I"
#undef PAS_DES_IMAGES
#define EDITER_LES_MESSAGES_D_ERREUR \
EDITER_LES_MESSAGES_D_ERREUR_DES_FICHIERS \
/* Indique si les messages d'erreur des fichiers doivent etre emis ('VRAI') ou pas ('FAUX'). */
#include xci/reduction.01.I"
/* ATTENTION, le parametre 'METTRE_UN_FOND' defini dans 'xci/reduction.01$I' n'est pas */
/* utilise dans '$xci/reduction_64$K'... */
#define DIMENSION_DILATATION \
EXP2(DOUP(QUATRE)) \
/* Taille du pave de dilatation si 'IL_FAUT(dilater_les_images)'. ATTENTION, jusqu'au */ \
/* 20000621153921, il y avait ici 'EXP2(DOUP(TROIS))' ; or en fait, le 'TROIS' */ \
/* n'est pas en accord avec la progression dans les programmes '$xci/reduction_??$K' : */ \
/* */ \
/* $xci/reduction_04$K : UN */ \
/* $xci/reduction_16$K : DEUX */ \
/* $xci/reduction_64$K : QUATRE */ \
/* */ \
/* puisque l'on multilie par 2 le nombre de lignes et le nombre de colonnes en passant */ \
/* d'un programme au suivant... */
#define NOMBRE_D_IMAGES_REDUITES \
SOIXANTE_QUATRE \
/* Nombre d'images constituant la matrice Resultat. */
#define CONSERVER_LA_SOUS_IMAGE_4x4_BG \
FAUX \
/* Indique si l'on doit conserver la matrice 4x4 'BG' ('VRAI') ou pas ('FAUX'). */
#define CONSERVER_LA_SOUS_IMAGE_4x4_BD \
FAUX \
/* Indique si l'on doit conserver la matrice 4x4 'BD' ('VRAI') ou pas ('FAUX'). */
#define CONSERVER_LA_SOUS_IMAGE_4x4_HG \
FAUX \
/* Indique si l'on doit conserver la matrice 4x4 'HG' ('VRAI') ou pas ('FAUX'). */
#define CONSERVER_LA_SOUS_IMAGE_4x4_HD \
FAUX \
/* Indique si l'on doit conserver la matrice 4x4 'HD' ('VRAI') ou pas ('FAUX'). */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
#include xci/reduction.02.I"
#define GENERE(FENETRE,imageR) \
Bblock \
GENERE_REDUCTION(FENETRE,imageR,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES,TOUJOURS_FAUX,dimension_dilatation); \
Eblock \
/* Procedure d'insertion de l'image courante dans une fenetre. */
#define F_GENERE(FENETRE,FimageR) \
Bblock \
F_GENERE_REDUCTION(FENETRE,FimageR,MULTIPLICITE_4x4_POUR_LES_DEMI_FENETRES); \
Eblock \
/* Procedure d'insertion de l'image courante "non standard" dans une fenetre (introduite */ \
/* le 20200618135249). */
#define MEMORISATION_D_UNE_SOUS_IMAGE(memoriser_la_sous_image,sous_image,nom_de_la_sous_image) \
Bblock \
Test(IL_FAUT(memoriser_la_sous_image)) \
Bblock \
CALi(Iupdate_image(nom_de_la_sous_image,sous_image)); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
/* Procedure de memorisation facultative d'une sous-image 4x4... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* R E D U C T I O N D ' U N E S U I T E D E 6 4 I M A G E S A R G U M E N T */
/* E T G E N E R A T I O N D ' U N E M A T R I C E L E S C O N T E N A N T */
/* E N V U E D E L E S A N I M E R : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
#include xci/reduction.03.I"
DEFV(CHAR,INIC(POINTERc(nom_imageR_BG),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageR_BD),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageR_HG),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_imageR_HD),NOM_PIPE));
/* Nom des eventuelles images 4x4 a generer. */
DEFV(Logical,INIT(conserver_la_sous_image_4x4_BG,CONSERVER_LA_SOUS_IMAGE_4x4_BG));
/* Indique si l'on doit conserver la matrice 4x4 'BG' ('VRAI') ou pas ('FAUX'). */
DEFV(Logical,INIT(conserver_la_sous_image_4x4_BD,CONSERVER_LA_SOUS_IMAGE_4x4_BD));
/* Indique si l'on doit conserver la matrice 4x4 'BD' ('VRAI') ou pas ('FAUX'). */
DEFV(Logical,INIT(conserver_la_sous_image_4x4_HG,CONSERVER_LA_SOUS_IMAGE_4x4_HG));
/* Indique si l'on doit conserver la matrice 4x4 'HG' ('VRAI') ou pas ('FAUX'). */
DEFV(Logical,INIT(conserver_la_sous_image_4x4_HD,CONSERVER_LA_SOUS_IMAGE_4x4_HD));
/* Indique si l'on doit conserver la matrice 4x4 'HD' ('VRAI') ou pas ('FAUX'). */
/*..............................................................................................................................*/
EGAL(files_____editer_les_messages_d_erreur_de_lecture_des_fichiers,EDITER_LES_MESSAGES_D_ERREUR);
/* Initialisation de l'indicateur d'edition des messages d'erreur... */
GET_ARGUMENTSi(nombre_d_arguments
,BLOC(GET_ARGUMENT_L("Ireduction_moitie_____compatibilite_20030611=""compatibilite_20030611="
,Ireduction_moitie_____compatibilite_20030611
);
GET_ARGUMENT_L("compatibilite_20070824=",compatibilite_20070824);
GET_ARGUMENT_L("IFreduction_moitie_____compatibilite_20150123=""compatibilite_20150123="
,IFreduction_moitie_____compatibilite_20150123
);
/* Argument introduit le 20200618141517... */
GET_ARGUMENT_P("niveau=",Iinitialisation_____valeur_pour_gInettoyage);
/* Introduit le 20120725181511 par "syemtrie" avec 'v $xci/reduction_04$K 20120724113820' */
/* et 'v $xci/reduction_16$K 20120724113824'. */
GET_ARGUMENT_C("imageA=""A=",nom_imageA);
GET_ARGUMENT_L("standard=",les_images_sont_standards);
/* Argument introduit le 20200618135249... */
GET_ARGUMENT_C("postfixe=",nom_postfixe);
GET_ARGUMENT_C("imageR=""R=",nom_imageR);
GET_ARGUMENT_L("BG=",conserver_la_sous_image_4x4_BG);
GET_ARGUMENT_C("imageR_BG=""R_BG=",nom_imageR_BG);
GET_ARGUMENT_L("BD=",conserver_la_sous_image_4x4_BD);
GET_ARGUMENT_C("imageR_BD=""R_BD=",nom_imageR_BD);
GET_ARGUMENT_L("HG=",conserver_la_sous_image_4x4_HG);
GET_ARGUMENT_C("imageR_HG=""R_HG=",nom_imageR_HG);
GET_ARGUMENT_L("HD=",conserver_la_sous_image_4x4_HD);
GET_ARGUMENT_C("imageR_HD=""R_HD=",nom_imageR_HD);
GET_ARGUMENT_I("premiere=""numero=""n=",premiere_image);
GET_ARGUMENT_I("derniere=",derniere_image);
GET_ARGUMENT_F("pas=",pas_des_images);
GET_ARGUMENT_L("calculer=",calculer_le_pas_des_images);
GET_ARGUMENT_L("premiere_derniere=",aller_de_la_premiere_a_la_derniere_image_lors_du_calcul_du_pas_des_images);
GET_ARGUMENT_L("permuter_postfixe_numero=""permuter=""ppn=",permuter_l_eventuel_postfixe_et_le_numero);
/* Argument introduit le 20151021173308... */
GET_ARGUMENT_L("modulo=",gerer_modulo_les_numeros_des_images);
GET_ARGUMENT_L("editer=",editer_le_nom_des_images_reduites);
GET_ARGUMENT_L("editer_numero=",editer_seulement_le_numero_des_images_reduites);
GET_ARGUMENT_I("chiffres=",nombre_de_chiffres);
GET_ARGUMENT_L("dilater=",dilater_les_images);
GET_ARGUMENT_I("points=""pave=""p=",dimension_dilatation);
GET_ARGUMENT_L("tous_niveaux=""tous=",dilatation_tous_les_niveaux);
GET_ARGUMENT_L("dilatation_carree=""dcarree=",dilatation_carree);
/* Le 20060118093150, "carre=" a ete remplace par "dilatation_carree=" et "dcarree=" */
/* (risque de double definition...). */
GET_ARGUMENT_L("moyenne=",moyennage);
GET_ARGUMENT_L("maximum=",calculer_le_maximum);
)
);
/* Le 20030912124254, 'files_____editer_les_messages_d_erreur_de_lecture_des_fichiers' */
/* via "erreur=" et "erreurs=" a ete supprime car, en effet, il etait redondant avec */
/* 'v $xig/fonct$vv$DEF ErreurLecture='. */
EGAL(numero_d_image,FLOT(premiere_image));
/* Numero de l'image courante. */
CALi(gInettoyage(les_images_sont_standards,ImageA1,IFmageA1));
CALi(gInettoyage(les_images_sont_standards,ImageA2,IFmageA2));
CALi(gInettoyage(les_images_sont_standards,ImageA3,IFmageA3));
CALi(gInettoyage(les_images_sont_standards,ImageA4,IFmageA4));
CALi(gInettoyage(les_images_sont_standards,ImageA5,IFmageA5));
CALi(gInettoyage(les_images_sont_standards,ImageA6,IFmageA6));
CALi(gInettoyage(les_images_sont_standards,ImageA7,IFmageA7));
CALi(gInettoyage(les_images_sont_standards,ImageA8,IFmageA8));
CALi(gInettoyage(les_images_sont_standards,ImageA9,IFmageA9));
/* Nettoyage non pas par pure hygiene, mais au cas ou des images manqueraient dans la */
/* sequence : cela permet de les remplacer par du noir... */
CALi(gInettoyage(les_images_sont_standards,ImageR,IFmageR));
/* Initialisation de l'image Resultat. */
Test(EST_VRAI(les_images_sont_standards))
/* Test (et possibilite) introduit le 20200618135249... */
Bblock
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA1);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA1);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA2);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA2);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA3);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA3);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA4);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA4);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA1);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA1);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA2);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA2);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA3);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA3);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA4);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA4);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA5);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA5);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA6);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA6);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA7);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA7);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA8);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA8);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA5);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA5);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA6);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA6);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA7);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA7);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA8);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA8);
/* Reduction primaire, */
DEMI_FENETRE_BG_MULTIPLE(ImageA9
,ImageA1
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
DEMI_FENETRE_BD_MULTIPLE(ImageA9
,ImageA2
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
DEMI_FENETRE_HG_MULTIPLE(ImageA9
,ImageA5
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
DEMI_FENETRE_HD_MULTIPLE(ImageA9
,ImageA6
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction secondaire. */
DEMI_FENETRE_BG_MULTIPLE(ImageR
,ImageA9
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction tertiaire. */
MEMORISATION_D_UNE_SOUS_IMAGE(conserver_la_sous_image_4x4_BG,ImageA9,nom_imageR_BG);
/* Et memorisation eventuelle de la sous image 4x4... */
DEMI_FENETRE_BG_MULTIPLE(ImageA9
,ImageA3
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
DEMI_FENETRE_BD_MULTIPLE(ImageA9
,ImageA4
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
DEMI_FENETRE_HG_MULTIPLE(ImageA9
,ImageA7
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
DEMI_FENETRE_HD_MULTIPLE(ImageA9
,ImageA8
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction secondaire. */
DEMI_FENETRE_BD_MULTIPLE(ImageR
,ImageA9
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction tertiaire. */
MEMORISATION_D_UNE_SOUS_IMAGE(conserver_la_sous_image_4x4_BD,ImageA9,nom_imageR_BD);
/* Et memorisation eventuelle de la sous image 4x4... */
CALi(Inoir(ImageA1));
CALi(Inoir(ImageA2));
CALi(Inoir(ImageA3));
CALi(Inoir(ImageA4));
CALi(Inoir(ImageA5));
CALi(Inoir(ImageA6));
CALi(Inoir(ImageA7));
CALi(Inoir(ImageA8));
/* Nettoyage non pas par pure hygiene, mais au cas ou des images manqueraient dans la */
/* sequence : cela permet de les remplacer par du noir... */
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA1);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA1);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA2);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA2);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA3);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA3);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA4);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA4);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA1);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA1);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA2);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA2);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA3);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA3);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA4);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA4);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA5);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA5);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA6);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA6);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA7);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA7);
GENERE(DEMI_FENETRE_BG_MULTIPLE,ImageA8);
GENERE(DEMI_FENETRE_BD_MULTIPLE,ImageA8);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA5);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA5);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA6);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA6);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA7);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA7);
GENERE(DEMI_FENETRE_HG_MULTIPLE,ImageA8);
GENERE(DEMI_FENETRE_HD_MULTIPLE,ImageA8);
/* Reduction primaire, */
DEMI_FENETRE_BG_MULTIPLE(ImageA9
,ImageA1
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
DEMI_FENETRE_BD_MULTIPLE(ImageA9
,ImageA2
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
DEMI_FENETRE_HG_MULTIPLE(ImageA9
,ImageA5
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
DEMI_FENETRE_HD_MULTIPLE(ImageA9
,ImageA6
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction secondaire. */
DEMI_FENETRE_HG_MULTIPLE(ImageR
,ImageA9
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction tertiaire. */
MEMORISATION_D_UNE_SOUS_IMAGE(conserver_la_sous_image_4x4_HG,ImageA9,nom_imageR_HG);
/* Et memorisation eventuelle de la sous image 4x4... */
DEMI_FENETRE_BG_MULTIPLE(ImageA9
,ImageA3
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
DEMI_FENETRE_BD_MULTIPLE(ImageA9
,ImageA4
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
DEMI_FENETRE_HG_MULTIPLE(ImageA9
,ImageA7
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
DEMI_FENETRE_HD_MULTIPLE(ImageA9
,ImageA8
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction secondaire. */
DEMI_FENETRE_HD_MULTIPLE(ImageR
,ImageA9
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction tertiaire. */
MEMORISATION_D_UNE_SOUS_IMAGE(conserver_la_sous_image_4x4_HD,ImageA9,nom_imageR_HD);
/* Et memorisation eventuelle de la sous image 4x4... */
Eblock
ATes
Bblock
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA1);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA1);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA2);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA2);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA3);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA3);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA4);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA4);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA1);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA1);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA2);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA2);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA3);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA3);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA4);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA4);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA5);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA5);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA6);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA6);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA7);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA7);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA8);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA8);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA5);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA5);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA6);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA6);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA7);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA7);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA8);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA8);
/* Reduction primaire, */
F_DEMI_FENETRE_BG_MULTIPLE(IFmageA9
,IFmageA1
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
F_DEMI_FENETRE_BD_MULTIPLE(IFmageA9
,IFmageA2
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
F_DEMI_FENETRE_HG_MULTIPLE(IFmageA9
,IFmageA5
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
F_DEMI_FENETRE_HD_MULTIPLE(IFmageA9
,IFmageA6
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction secondaire. */
F_DEMI_FENETRE_BG_MULTIPLE(IFmageR
,IFmageA9
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction tertiaire. */
F_DEMI_FENETRE_BG_MULTIPLE(IFmageA9
,IFmageA3
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
F_DEMI_FENETRE_BD_MULTIPLE(IFmageA9
,IFmageA4
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
F_DEMI_FENETRE_HG_MULTIPLE(IFmageA9
,IFmageA7
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
F_DEMI_FENETRE_HD_MULTIPLE(IFmageA9
,IFmageA8
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction secondaire. */
F_DEMI_FENETRE_BD_MULTIPLE(IFmageR
,IFmageA9
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction tertiaire. */
CALi(IFinitialisation(IFmageA1,FZERO));
CALi(IFinitialisation(IFmageA2,FZERO));
CALi(IFinitialisation(IFmageA3,FZERO));
CALi(IFinitialisation(IFmageA4,FZERO));
CALi(IFinitialisation(IFmageA5,FZERO));
CALi(IFinitialisation(IFmageA6,FZERO));
CALi(IFinitialisation(IFmageA7,FZERO));
CALi(IFinitialisation(IFmageA8,FZERO));
/* Nettoyage non pas par pure hygiene, mais au cas ou des images manqueraient dans la */
/* sequence : cela permet de les remplacer par du noir... */
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA1);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA1);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA2);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA2);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA3);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA3);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA4);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA4);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA1);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA1);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA2);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA2);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA3);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA3);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA4);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA4);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA5);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA5);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA6);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA6);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA7);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA7);
F_GENERE(F_DEMI_FENETRE_BG_MULTIPLE,IFmageA8);
F_GENERE(F_DEMI_FENETRE_BD_MULTIPLE,IFmageA8);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA5);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA5);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA6);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA6);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA7);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA7);
F_GENERE(F_DEMI_FENETRE_HG_MULTIPLE,IFmageA8);
F_GENERE(F_DEMI_FENETRE_HD_MULTIPLE,IFmageA8);
/* Reduction primaire, */
F_DEMI_FENETRE_BG_MULTIPLE(IFmageA9
,IFmageA1
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
F_DEMI_FENETRE_BD_MULTIPLE(IFmageA9
,IFmageA2
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
F_DEMI_FENETRE_HG_MULTIPLE(IFmageA9
,IFmageA5
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
F_DEMI_FENETRE_HD_MULTIPLE(IFmageA9
,IFmageA6
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction secondaire. */
F_DEMI_FENETRE_HG_MULTIPLE(IFmageR
,IFmageA9
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction tertiaire. */
F_DEMI_FENETRE_BG_MULTIPLE(IFmageA9
,IFmageA3
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
F_DEMI_FENETRE_BD_MULTIPLE(IFmageA9
,IFmageA4
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
F_DEMI_FENETRE_HG_MULTIPLE(IFmageA9
,IFmageA7
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
F_DEMI_FENETRE_HD_MULTIPLE(IFmageA9
,IFmageA8
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction secondaire. */
F_DEMI_FENETRE_HD_MULTIPLE(IFmageR
,IFmageA9
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,MULTIPLICITE_8x8_POUR_LES_DEMI_FENETRES
,moyennage
,calculer_le_maximum
);
/* Reduction tertiaire. */
Eblock
ETes
CALi(gIupdate_image(les_images_sont_standards,nom_imageR,ImageR,IFmageR));
/* Et rangement... */
RETU_Commande;
Eblock
ECommande