<simulation>
  
<header>
    
<title lang="french">Transformation en Cosinus Discrète</title>
    
<title lang="english">Discrete Cosine Transform</title>
    
<title lang="spanish">Transformación discreta en coseno</title>
    
<author>Stéphane Mottelet, Guillaume Barbaud</author>
    
<keywords>simulation,scilab,xml</keywords>
    
<keywords lang="spanish">Simulación, scilab,xml</keywords>
    
<script>
        function xf=tcd(x,d)
            [n,m]=size(x);
            x=[x x(:,$:-1:2)];
            xf=real(mfft([x;x($:-1:2,:)],d,[2*n-1,2*m-1]));
            xf=xf(1:n,1:m)
        endfunction
        load clown.dat
        X=clean(real(X));
        [n,m]=size(X);
        Xf=tcd(X,1);
        [_j,_i]=meshgrid(0:n-1,0:m-1);
        [s,k]=gsort(abs(Xf./(1+(_i+_j)')));
    
</script>
    
<resource href="clown.dat" type="application/scilab-data" />
  
</header>
  
<notes lang="french">
    
<p>Le but de cette simulation est de montrer une illustration des applications de la transformation en cosinus discrète.</p>
    
<p>On illustre ici les possibilités d'encapsulation de code Scilab dans un fichier XML. La simulation utilise deux scripts : le premier une seule fois au démarrage de la simulation et
qui contient uniquement des fonctions et des initialisations et le deuxième est exécuté à chaque
changement des paramètres. Le fichier externe contenant l'image est référencé comme ressource dans l'entête du fichier
source xml.
</p>
  
</notes>
  
<notes lang="english">
    
<p>The goal of this simulation is to illustrate how one can use the disrete cosine transform</p>
    
<p>This simulation demonstrates the possibility of Scilab code encapsulation in a XML file. The simulation uses
two scripts: the first one is run only at the simulation startup and contains only functions and
intialization statements and the second one is run at every parameter change. The external file containing the image is referenced as a resource in the header section of the XML source file.
</p>
  
</notes>
  
<notes lang="spanish">
    
<p>El objetivo de esta simulación es mostrar una ilustración de las aplicaciones de la transformación discreta en coseno</p>
    
<p> Esta simulación demuestra las posibilidades de encapsulación del código Scilab en un fichero XML. La simulación utiliza dos scripts : el primero una sola vez al inicio de la simulación que contiene únicamente funciones   e inicializaciones y el segundo es ejecutado cada vez que cambian los parámetros. El fichero externo que contiene la imagen está indicado como recurso en el titulo del fichero fuente XML.</p>
  
</notes>
  
<parameters><section>
      
<title lang="english">Parameters</title>
      
<title lang="french">Paramètres</title>
      
<title lang="spanish">Parámetros</title>
      
<scalar min="1" label="N" max="2000" increment="1"><name lang="french">Nombre de coefficients à conserver (entre 1 et 16000) </name><name lang="english">Number of coefficients to keep (between 1 and 16000)</name><name lang="spanish">Numero de coeficientes que hay que conservar (entre 1 y 16000)</name><value>2000</value></scalar>
    
</section></parameters>
  
<script>
    Xf0=Xf; 
    Xf0(k(N+1:$))=0;
    XX=tcd(Xf0,-1);
  
</script>
  
<graphs>
    
<nonparametricsurface label="original_image">
      
<name>Image originale</name>
      
<name lang="english">Original image</name>
      
<name lang="spanish">Imagen original</name>
      
<x3>
        
<value>X</value>
      
</x3>
    
</nonparametricsurface>
    
<nonparametricsurface label="compressed_image">
      
<name>Image comprimée</name>
      
<name lang="english">Compressed image</name>
      
<name lang="spanish">Imagen comprimida</name>
      
<x3>
        
<value>XX</value>
      
</x3>
    
</nonparametricsurface>
  
</graphs>
  
<display>
    
<window splitx="2" colormap="gray">
      
<title>Image avant et après compression</title>
      
<title lang="english">Image before and after compression</title>
      
<title lang="spanish">Imagen antes y después de la compresión</title>
      
<axis2d cmin="0" cmax="1" xmin="1" xmax="m" ymin="1" ymax="n">
        
<drawsurface ref="original_image" shading="flat" />
      
</axis2d>
      
<axis2d cmin="0" cmax="1" xmin="1" xmax="m" ymin="1" ymax="n">
        
<drawsurface ref="compressed_image" shading="flat" />
      
</axis2d>
    
</window>
  
</display>
</simulation>