본문 바로가기
과학 토막상식 이야기

푸리에 해석으로 응용한 사진과 동영상 압축법

by 인터넷떠돌이 2018. 7. 30.
반응형

안녕하세요?


지난번 포스팅인 '링크 : 조금은 아쉬운 푸리에 해석에 관한 기사'라는 포스팅에서 이 푸리에 해석이 이용된다고 언급을 했었는데, 그때는 제대로 이해를 할 수 없는 문제도 있고 해서, 자세하게 설명을 못했습니다. 그래서 이번 포스팅에서는 조금은 더 자세하게 내용을 올리고자 하는데, 될 수 있으면 이해하기 쉽도록 글을 전개해 나가겠습니다.



먼저 이해를 돕기 위해서 흑백 사진의 예시를 들겠습니다. 어떤 디지털화된 이미지를 구성하는 것은 '화소'라고 해서 가장 최소 단위의 점들이 모여서 이루어져 있습니다. 그래서 한장의 흑백사진의 경우에는 크게 8단계의 명암 단계를 가지고서 화소 하나하나가 모이는데, 먼저 8개의 화소를 가로로 묶어서 아래의 그림처럼 한개의 주파수로 변환할 수 있습니다.



여기까지만 보면, 이게 어떻게 해서 사진을 압축할 수 있는지 의문이 드실 건데요. 일단 위 그림에서 묘사한 것은 가로로 8칸이 있으면, 이 패턴하나를 8단계의 명암 = 8단계의 신호 강도로 대입을 해서 한개의 주파수로 변환이 가능해 집니다. 물론 위 그림에서는 4개의 주파수만 묘사를 했지만, 실제로는 엄청난 숫자의 주파수가 나올 수 있으며, 명암의 단계가 8단계를 넘어가면 그 경우의 수는 기하 급수적으로 늘어납니다.




그렇게 해서 가로만 주파수 변화늘 할 수 있느냐 하면, 세로도 주파수 변환할 수 있는데, 이 때문에 8 X 8 픽셀단위로 묶어서 가로 8칸, 세로 8칸씩 묶어서 64개의 화소를 한개의 단위로 만들 수 있습니다. 그런데 아직 여기까지만 가지고서는 감이 안 오시리라 생각이 되는데, 일단 지금까지는 가로와 세로만 따로 있는 경우만 그렸는데, 실제로는 이 가로와 세로를 교차합니다.



위 그림의 묘사처럼 64개의 화소가 마치 체스판처럼 만들어 지는 것을 볼 수 있는데, 이건 가로와 세로의 주파수가 4인 패턴을 교차시켰을 경우에 나오는 것입니다. 즉, 가로나 세로를 일일히 주파수로 변환할 필요 없이, 그냥 가로 세로 8화소씩 64개 정사각형 단위의 화소로 사진을 나누는데, 64개의 화소마다 그냥 가로와 세로 주파수의 값만 저장을 하면 되는 것입니다.




그렇게 해서 위 그림처럼 주파수를 교차하면 정말 셀 수 없을 정도로 많은 8X8 픽셀의 패턴이 나오게 되는데, 왜 이렇게 복잡한 패턴을 만드느냐 하면, 결국 이 푸리에 변환도 명암의 강도에 따른 주파수에 대입해서 변환할 수 있고, 이걸 소리에 경우에는 1차원적인 변환만 했지만, 사진의 경우에는 2차원적인 변환에 들어가기 때문입니다.



그래서 먼저 8X8 화소를 꺼내서 '이산코사인 변환(discrete cosine transform:DCT)'를 통해서 '가로 주파수 몇 번과 세로 주파수 몇 번'이라고 '숫자'로 변환이 됩니다. 이 이후에는 컴퓨터상의 저장 장치에서 저렇게 '주파수 값 2개'로 저장이 되어 있다가 나중에 사진이나 동영상을 재생할 때 '역 이산 코사인 변환(IDCT)'를 통해서 원래의 이미지로 돌아오게 됩니다.




여기서 눈치가 빠르신 분들이라면, 여기서 흑백사진이 아닌 컬러 사진의 경우에는 어떻게 하느냐 하는 의문이 드시리라 생각이 됩니다. 이 역시 간단하게 할 수 있는 것이 먼저 아래의 사진을 보시면 빛과 색의 3원색이라고 하는 것이 있습니다. 당연하다면 당연하게도 이 3원색이 섞여서 다양한 색상을 만들어 내게 됩니다.



그럼 여기서 저런 3원색이 있으니까, 아까는 흑백으로 단색인 경우에는 전체적으로 검은색 톤의 이미지만 변환하면 되었지만, 칼라 사진의 경우에는 3원색, 주로 디지털화 된 이미지는 디스플레이를 사용해서 표현이 되기 때문에 아마 빛의 3원색을 사용하리라 생각이 됩니다.



그래서 R,G,B의 3색상별로 이미지를 나누어서 DCT변환을 해서 주파수 값으로 변환을 합니다. 아까와는 다르게 적색의 8X8화소별로 나누어서 푸리에 변환을 하고, 녹색과 청색도 각각 푸리에 변환을 합니다. 그리고 나서 이를 나중에 이미지로 변환한 다음에, 3원색을 합치게 되면 컬러 사진이나 동영상으로 나오게 되는 것입니다. 개인적으로는 누군지 몰라도 이걸 이미지에 적용하는 것을 시도한 사람은 정말 천재임이 틀림없어 보입니다.

반응형