summaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c
index 1b25658..3867112 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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");