소개글
도움이 되었으면 좋겠습니다.
기존의 자료에서 -128, +128, 양자화, 역양자화 과정을 추가하였습니다.
컴파일 실행환경
영상압축의 DCT를 C언어로 구현해본것입니다.
Original ☞ -128 ☞ DCT ☞ Quantization ☞ Inverse Quantization ☞ IDCT ☞ +128
의 과정으로 진행되며, 원본파일은 woman.raw입니다.
본문내용
#include <stdio.h>
#include <math.h>
#define PI 3.141592
void read_raw(FILE *);
void write_raw(FILE *);
void DCT(int, int);
void Q(int, int);
void IQ(int, int);
void IDCT(int, int);
void DCT_DIFF(void);
unsigned char input[256][256]; //256*256 pixel image
unsigned char output[256][256]; //DCT, IDCT, DCT_DIFF 연산 결과값 저장을 위한 배열
double temp[256][256]; //DCT 연산 결과값 저장을 위한 배열 (실제 IDCT연산에 사용)
double output2[256][256]; //IDCT-원본 영상을 구하기 위한 배열
int q_table[8][8]={16, 11, 10, 16, 24, 40, 51, 61, //Luminance quantization table
12, 12, 14, 19, 26, 58, 60, 55,
14, 13, 16, 24, 40, 57, 69, 56,
14, 17, 22, 29, 51, 87, 80, 62,
18, 22, 37, 56, 68, 109, 103, 77,
24, 35, 55, 64, 81, 104, 113, 92,
49, 64, 78, 87, 103, 121, 120, 101,
72, 92, 95, 98, 112, 100, 103, 99};
참고 자료
없음