알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)

DCT와 DFT 본문

멀티미디어/멀티미디어 와 ffmpeg

DCT와 DFT

백곳 2017. 10. 24. 19:23

DCT와 DFT


먼저 이전 이미지와 주파수를 꼭 읽고 이해 하셔야 해당 자료가 이해가 됩니다. 


주파수를 이미지로 나타내기 위해서는 



위의 그림과 같이 Sin 값을 그림으로 표현 한다고 했을때 중간선을 밝기의 중간 정도로 봅니다. 


그리고 y축 값을 밝기값으로 하여 좌측 그림과 같은 이미지가 생성 되는것이죠 . 


그럼 이제 DCT 수식을 해석 해야 합니다. 


DCT(Discrete Cosine Transform) 수식 


여기서 빨간색 박스 부분의 수식만 보도록 하겠습니다. 


DCT또한 주파수 이미지를 만들기 위함인데 이전 강의 자료 이미지와 주파수 관계 강의에서 했던 방식과 기본 개념은 똑같습니다. 


먼저 이전에 주파수 이미지 만드는 방법을 한번 보겠습니다. 

2X2 에는 베이스 이미지 총 4개가 필요합니다. 위와 같은 출력 주파수 이미지를 구하기 위합니다. 


일단 주파수 이미지를 구하기 위해서는 베이스 이미지 필요 합니다. 


베이스 이미지


위의 수식에서 베이스 이미지는 구하는 수식은



위의 수식에서 

M: INPUT 이미지 가로 사이즈

M: INPUT 이미지 세로 사이즈 

u : 베이스 이미지 세로 번째 번호  

v : 베이스 이미지 가로 번째 번호 

x : 가로 픽셀 변수 

y:  세로 픽셀 변수 

입니다. 

그럼 베이스 이미지는 


위의 수식으로 x번째,y번째(x,y) 픽셀을 위 수식의 결과 값으로 채워 나가며 베이스 이미지를 만들게 됩니다. 


만약에 INPUT 이미지가 8X8 이면 총 64개의 베이스 이미지를 위의 식으로 계산 합니다. 



입력 영상과 베이스 이미지의 계산법




위의 수식은  


위의 계산을 의미합니다.k= ea+fb+gc+hd 부분 입니다. 


그리고 위의 DCT 수식에서 H(u,v) 는 위 그림의 T(u,v) 와 같은 의미 입니다. 


T(u,v) 도출 하는 과정중 몇가지 수식이 더 추가 된것 뿐입니다. 



해당 부분은 

r 값이 0 이면 

으로 계산 하고 

r 값이 1 이면 

1

으로 계산 하라는 의미 입니다. 


입력 이미지 512X512 사이즈 계산후 


예를 들어 

 


위의 이미지를 DCT 하게 되면 총 베이스 이미지 512X512 개가 사용 됩니다. 


그리고 계산 결과 이미지로는 



위와 같이 뜹니다. 


그이유는 계산 결과 값이 


위와 같이 나오는데 보통 그림파일은 0~255 까지의 숫자를 가지게 됩니다. 


그래서 결과값에 log(계산결과값) 을 하여 사람이 볼수 있게 해줍니다. 


그러면 

위와 같은 이미지로 사람이 분석 가능 하게 해줍니다. 


보통 jpeg 이미지 파일에서는 512X512 이미지를 8X8 로 잘라서 입력이미지를 

8X8로 주고 dct를 구하고 양자화 테이블이라는것이 있어서 해당 테이블로 

양자화를 합니다. 




DFT(Discrete  Fourier Transform )


DFT도 DCT와 수식만 다르지 계산 과정은 같습니다. 




위 수식은 MxN 사이즈 이미지 에서 M=N 이 같은 정사각형 이미지라고 가정하에 도출된 수식입니다. 


위의 수식에서도  


베이스 이미지 를 만드는 부분 



으로 이미지를 만들고  




위와 같은 계산을  


위의 수식에서 해줍니다 .


그리고  H(u,v) dft 주파수 결과값을 도출합니다. 



위의 이미지를 DFT 로 계산 하면 



위와 같이 나옵니다. 그래서 log 계산을 해줍니다. 



그리고 dft 에서는 중앙으로 값을 모아서 이미지 처리하는 경우가 많습니다. 



그래서 1번과 4번을 교확하고 2번과 3번을 교환 합니다. 



결국 위와 같은 형태로 만들어 놓고 영상 처리를 많이 합니다. 















'멀티미디어 > 멀티미디어 와 ffmpeg' 카테고리의 다른 글

이미지와 주파수 관계  (1) 2017.10.21
이미지의 디지털화  (0) 2017.10.19
Comments