diff options
-rw-r--r-- | src/main.c | 33 |
1 files changed, 32 insertions, 1 deletions
@@ -36,6 +36,19 @@ void quanize_data(int * data,int * qdata) } } +void dequanize_data(DCTELEM * data,DCTELEM * qdata) +{ + int i,j; + for (i = 0; i < 8; i++) + { + for(j=0;j < 8;j++) + { + *(data + ((i * 8) + j)) =( *(data + ((i * 8) + j))) *( *(qdata + ((i * 8) + j))) ; + } + } +} + + void scale_data(DCTELEM * data, DCTELEM scale) { int i,j; @@ -48,6 +61,20 @@ void scale_data(DCTELEM * data, DCTELEM scale) } } + +void scaleDownData(DCTELEM * data,int scale) +{ + int i,j; + for (i = 0; i < 8; i++) + { + for(j=0;j < 8;j++) + { + *(data + ((i * 8) + j)) =( *(data + ((i * 8) + j))) /scale ; + } + } +} + + /*void dump_data(DCTELEM * data ) { int i,j; @@ -151,12 +178,16 @@ int main(int argc, char *argv[]) { //dump_data(blok8x8); //printf("\nafter DCT\n"); jpeg_fdct_ifast(blok8x8); + // Scaling after DCT + scaleDownData(blok8x8,8); + + // After dct //dump_data(blok8x8); - quanize_data(blok8x8,quan_data); //printf("\nafter quantize\n"); //dump_data(blok8x8); + dequanize_data(blok8x8,quan_data); IDCT(blok8x8, blok8x8_2); //printf("\nafter idct\n"); |