JPEG compressor
Dependencies: SDL_lib SX1276Lib mbed
encoder.cpp
- Committer:
- miruga27
- Date:
- 2016-09-07
- Revision:
- 0:1076a8b67c6c
- Child:
- 1:f0c646dfe574
File content as of revision 0:1076a8b67c6c:
//Author: Miguel Ruiz García //Company: University of Cantabria. 2016 //mail: mrg47@alumnos.unican.es #include "mbed.h" #include "stdio.h" #include <math.h> #include "SDL_lib/SDL.h" #include "functions.h" //#include "MODSERIAL.h" //DigitalOut myled(LED1); DigitalIn button(PC_13); Serial pc(USBTX, USBRX); Serial uart(PA_2, PA_3); #define BPS 128000 #define BITS 8 #define STOP_BITS 1 int main2(int argc, char *argv[]) { pc.baud(BPS); pc.format (BITS,SerialBase::None, STOP_BITS) ; myled=1; wait (5); myled=0; // short int m[8][320][3]; int i,j,veces=0; int ci,cj; /*for(veces=0;veces<120;veces++){ //char *m=(char *)malloc(sizeof(char)*HEIGHT*WIDTH*3); for(ci=0;ci<8;ci++){ for(cj=0;cj<320;cj++){ while(!pc.readable()); //*(m+i*WIDTH+j*3+0)=pc.getc(); m[ci][cj][0]=(unsigned char)pc.getc(); myled=0; while(!pc.readable()); //*(m+i*WIDTH+j*3+1)=pc.getc(); m[ci][cj][1]=(unsigned char)pc.getc(); while(!pc.readable()); //*(m+i*WIDTH+j*3+2)=pc.getc(); m[ci][cj][2]=(unsigned char)pc.getc(); } } myled=1; //free(m); rgb_to_yuv(m); //pc.printf("Imagen trasladada a yuv \n"); int cont=1; int matrix[8][8][3]; for(i=0;i<8;i+=8){ for(j=0;j<320;j+=8){ int k=0,l=0; for(k=i;k<i+8;k++){ for(l=j;l<j+8;l++){ matrix[k-i][l-j][0]=m[k][l][0]; matrix[k-i][l-j][1]=m[k][l][1]; matrix[k-i][l-j][2]=m[k][l][2]; } } //pc.printf("llamo a DCT %d \n",cont); DCT(matrix,m,i,j);// i j índices de los pixeles en x e y del macrobloque cont++; } } //pc.printf("DCT \n"); cuantizador(m); //pc.printf("Cuantizada \n"); short int *matriz =(short int *) malloc(sizeof(short int)*HEIGHT*WIDTH*3); zig_zag(m,matriz); RLC(matriz); unsigned char a=64; pc.printf("%c",a); } /* for(i=0;i<8;i++){ for(j=0;j<320;j++){//132 WORKS while(!pc.writeable()); //pc.printf("%c",*(m+i*WIDTH+j*3+0)); pc.printf("%c",(char)m[i][j][0]); while(!pc.writeable()); //pc.printf("%c",*(m+i*WIDTH+j*3+1)); pc.printf("%c",(char)m[i][j][1]); while(!pc.writeable()); //pc.printf("%c",*(m+i*WIDTH+j*3+2)); pc.printf("%c",(char)m[i][j][2]); } }*/ short int *mw =(short int *) malloc(sizeof(short int)*HEIGHT*WIDTH*3); int cont_y=4,cont_u=4,cont_v=4; int y=0,u=0,v=0; *(mw+y*3+0)=13; y++; *(mw+y*3+0)=13; y++; *(mw+u*3+1)=13; u++; *(mw+u*3+1)=13; u++; *(mw+v*3+2)=13; v++; *(mw+v*3+2)=13; v++; //lora(mw,&cont_y,&cont_u,&cont_v); //http://www.martin-gardner.co.uk/how-to-connect-your-old-sd-card-to-an-arduino/ while(1){ myled=1; wait(0.2); myled=0; wait(0.2); } }