src/dctexample.c
author viric@mandarina
Mon, 15 Dec 2008 01:06:43 +0000
changeset 253 e3aa70211aee
parent 227 f2a4f54d3fc8
permissions -rw-r--r--
Afegint coses a la presentació
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
225
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
     1
#include <stdio.h>
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
     2
#include <math.h>
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
     3
#include "libjpegrest.h"
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
     4
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
     5
#define PI 3.141592657
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
     6
226
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
     7
/* This opens a 8x8 PGM file from argv[1], and stores
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
     8
 * a 64+7x64+7 PGM file with each DCT-IDCT result, considering
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
     9
 * only the coefficients from top-left until the concerning
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
    10
 * DCT-IDCT result. */
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
    11
225
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    12
static void mydct(float *in, float *out)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    13
{
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    14
    int x,y,u,v;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    15
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    16
    float Cu, Cv;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    17
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    18
    for (u=0; u < 8; ++u)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    19
        for (v=0; v < 8; ++v)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    20
        {
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    21
            float *optr;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    22
            float sum;
227
f2a4f54d3fc8 Fixed an error, regarding x-y switched in the DCT.
viric@llimona
parents: 226
diff changeset
    23
            optr = out+v*8+u;
225
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    24
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    25
            sum = 0.;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    26
            for (x=0; x < 8; ++x)
226
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
    27
                for (y=0; y < 8; ++y) {
225
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    28
                    float *iptr;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    29
                    iptr = in+y*8+x;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    30
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    31
                    sum += *iptr
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    32
                        * cos(((float) ((2*x+1)*u) )*PI/16.)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    33
                        * cos(((float) ((2*y+1)*v) )*PI/16.);
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    34
                }
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    35
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    36
            if (u == 0) Cu = 1. / sqrt(2); else Cu = 1.;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    37
            if (v == 0) Cv = 1. / sqrt(2); else Cv = 1.;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    38
            *optr = 0.25 * Cu * Cv * sum;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    39
        }
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    40
}
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    41
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    42
static void myidct(float *in, float *out)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    43
{
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    44
    int x,y,u,v;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    45
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    46
    float Cu, Cv;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    47
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    48
    for (x=0; x < 8; ++x)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    49
        for (y=0; y < 8; ++y)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    50
        {
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    51
            float *optr;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    52
            float sum;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    53
            optr = out+y*8+x;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    54
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    55
            sum = 0.;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    56
            for (v=0; v < 8; ++v)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    57
                for (u=0; u < 8; ++u)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    58
                {
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    59
                    float *iptr;
227
f2a4f54d3fc8 Fixed an error, regarding x-y switched in the DCT.
viric@llimona
parents: 226
diff changeset
    60
                    iptr = in+v*8+u;
225
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    61
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    62
                    if (u == 0) Cu = 1. / sqrt(2); else Cu = 1.;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    63
                    if (v == 0) Cv = 1. / sqrt(2); else Cv = 1.;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    64
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    65
                    sum += Cu * Cv * *iptr
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    66
                        * cos(((float) ((2*x+1)*u) )*PI/16.)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    67
                        * cos(((float) ((2*y+1)*v) )*PI/16.);
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    68
                }
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    69
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    70
            *optr = 0.25 * sum;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    71
        }
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    72
}
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    73
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    74
void zero_block(float *block)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    75
{
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    76
    int i;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    77
    for (i=0; i < 64; ++i)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    78
        block[i] = 0.;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    79
}
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    80
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    81
void prepare_subblock(float *block, int x, int y, const float *input)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    82
{
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    83
    /* Fill the subsquare from 0..x and 0..y */
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    84
    int i,j;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    85
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    86
    zero_block(block);
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    87
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    88
    for (j=0; j <= y; ++j)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    89
        for (i=0; i <= x; ++i)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    90
        {
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    91
            block[j*8+i] = input[j*8+i];
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    92
        }
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    93
}
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    94
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    95
void write_block_to_big(struct bitmap *bdest, const float *sub, int x, int y)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    96
{
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    97
    int i,j;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    98
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
    99
    for (j=0; j < 8; ++j)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   100
        for (i=0; i < 8; ++i)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   101
        {
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   102
            gsl_matrix *dest = bdest->m[0];
226
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   103
            dest->data[(j+y*9)*dest->tda+x*9+i] = sub[j*8+i];
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   104
        }
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   105
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   106
    if (x < 7)
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   107
        for (j=0; j < 8; ++j)
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   108
        {
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   109
            gsl_matrix *dest = bdest->m[0];
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   110
            dest->data[(j+y*9)*dest->tda+x*9+8] = 255;
225
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   111
        }
226
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   112
    if (y < 7)
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   113
        for (i=0; i < 8; ++i)
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   114
        {
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   115
            gsl_matrix *dest = bdest->m[0];
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   116
            dest->data[(8+y*9)*dest->tda+x*9+i] = 255;
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   117
        }
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   118
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   119
    if (y < 7 && x < 7)
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   120
    {
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   121
        gsl_matrix *dest = bdest->m[0];
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   122
        dest->data[(8+y*9)*dest->tda+x*9+8] = 255;
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   123
    }
225
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   124
}
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   125
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   126
int main(int argn, char **argv)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   127
{
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   128
    struct bitmap bmap;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   129
    float input[64];
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   130
    float input_test[64];
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   131
    float input_dct[64];
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   132
    float output_dct[64];
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   133
    float output[64];
253
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   134
    float quantize[64] = {
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   135
        20, 14, 13, 20, 30, 50, 64, 76, 
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   136
        15, 15, 18, 24, 33, 73, 75, 69, 
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   137
        18, 16, 20, 30, 50, 71, 86, 70, 
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   138
        18, 21, 28, 36, 64, 109, 100, 78, 
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   139
        23, 28, 46, 70, 85, 136, 129, 96, 
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   140
        30, 44, 69, 80, 101, 130, 141, 115, 
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   141
        61, 80, 98, 109, 129, 151, 150, 126, 
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   142
        90, 115, 119, 123, 140, 125, 129, 124 };
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   143
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   144
225
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   145
    struct bitmap obmap;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   146
    int i,j,k;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   147
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   148
    bitmap_pam_init(&argn, argv);
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   149
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   150
    bitmap_filename_pam_get(argv[1], &bmap);
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   151
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   152
    if (bmap.nplanes != 1 || bmap.width != 8 || bmap.height != 8)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   153
    {
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   154
        fprintf(stderr, "Error: The file should be 8x8 PGM\n");
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   155
        return -1;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   156
    }
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   157
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   158
    k=0;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   159
    for(j=0;j < 8; ++j)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   160
        for(i=0;i < 8; ++i)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   161
        {
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   162
            gsl_matrix *mat = bmap.m[0];
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   163
            input[k++] = mat->data[j*mat->tda + i];
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   164
        }
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   165
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   166
    mydct(input, input_dct);
253
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   167
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   168
    {
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   169
        FILE *odct, *ifile, *qtable, *qfile;
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   170
        odct = fopen("dct.txt", "wt");
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   171
        ifile = fopen("ifile.txt", "wt");
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   172
        qtable = fopen("qtable.txt", "wt");
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   173
        qfile = fopen("qfile.txt", "wt");
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   174
        for(j=0;j < 8; ++j)
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   175
        {
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   176
            fprintf(odct, "<tr>\n");
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   177
            fprintf(ifile, "<tr>\n");
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   178
            fprintf(qtable, "<tr>\n");
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   179
            fprintf(qfile, "<tr>\n");
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   180
            for(i=0;i < 8; ++i)
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   181
            {
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   182
                fprintf(odct, "<td>%.2f\n", input_dct[j*8+i]);
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   183
                fprintf(ifile, "<td>%.0f\n", input[j*8+i]);
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   184
                fprintf(qtable, "<td>%.0f\n", quantize[j*8+i]);
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   185
                fprintf(qfile, "<td>%i\n", lrint(input_dct[j*8+i]/quantize[j*8+i]));
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   186
            }
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   187
        }
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   188
        fclose(odct);
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   189
        fclose(ifile);
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   190
        fclose(qtable);
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   191
        fclose(qfile);
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   192
    }
e3aa70211aee Afegint coses a la presentació
viric@mandarina
parents: 227
diff changeset
   193
225
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   194
    myidct(input_dct, input_test);
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   195
226
259bb91b8c94 Adding white space in dctexample.
viric@llimona
parents: 225
diff changeset
   196
    obmap = bitmap_alloc(1, 64+7, 64+7);
225
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   197
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   198
    for(j=0;j < 8; ++j)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   199
        for(i=0;i < 8; ++i)
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   200
        {
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   201
            prepare_subblock(output_dct,i,j,input_dct);
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   202
            myidct(output_dct, output);
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   203
            write_block_to_big(&obmap, output, i, j);
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   204
        }
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   205
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   206
    bitmap_filename_pam_put(argv[2], &obmap);
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   207
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   208
    bitmap_free(obmap);
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   209
    return 0;
96bc629baba9 Added a command for creating a dct example.
viric@llimona
parents:
diff changeset
   210
}