쉽게 알아보는 공학이야기 11 – 푸리에 급수

이미지와 영상 데이터가 쏟아지는 시대에 데이터 전송 용량을 줄이기 위해서 파일 압축은 필수입니다. 우리가 흔히 보는 이미지나 영상의 압축 형태인 JPEG, MPEG 파일들이 어떤 식으로 원본 파일의 용량을 줄이는지 아시나요? 신호에 포함된 여러 파동 성분을 알기 위해서 우리는 주파수 분석을 하며, 이는 기본적으로 푸리에 변환(Fourier transform)을 이용합니다. 푸리에 변환을 통한 주파수 분석 기술은 전파통신, 신호처리를 비롯해 영상처리, 데이터 압축 등의 다양한 분야에서 널리 활용되고 있습니다.

오늘은 푸리에 급수에 대해 알아보고, 그를 활용한 압축 방법에 대해 설명하겠습니다.

 

푸리에 급수

쉽게 알아보는 공학이야기 11 – 푸리에 급수

우리 주변에는 여러 가지 파동이 존재합니다. 바다에는 파도가 치고, 강물에는 물결이 일렁입니다. 시계추의 왕복운동, 용수철의 진동뿐만 아니라 소리와 빛도 모두 파동입니다.

파동의 특성을 결정짓는 기본 요소는 주파수와 진폭입니다. 소리굽쇠를 치면 일정한 음높이의 소리를 냅니다. 큰 굽쇠는 낮은 음을, 작은 굽쇠는 높은 음을 내며, 세게 치면 소리는 커지지만, 음높이는 변하지 않습니다. 크고 작은 여러 개의 소리굽쇠를 동시에 치면 음높이가 다른 소리와 합쳐지면서 복잡한 파형을 만들어냅니다.

여기서, 푸리에 급수(Fourier Series)는 아무리 복잡한 신호라 할지라도 기본적인 주기함수인 사인과 코사인 함수의 조합으로 전개하는 것을 말합니다.

주파수란, 원래 1초 동안의 파동 개수인데, 공간으로 생각하면 1미터당 들어있는 파동의 개수 즉, 파수(wave number)에 해당한다.

주기란, 동일한 상태가 반복되는 현상에 있어서 그 반복의 최소간격을 말한다. 공간에서는 파장(wave length)에 해당하지만, 흔히 주파수나 주기라는 말을 그대로 사용한다.

쉽게 알아보는 공학이야기 11 – 푸리에 급수▲ 두 사인 파형의 중첩

 

고속푸리에 변환 (FFT)

주기함수에서 비주기함수로 확장한 것을 푸리에 변환이라 합니다. 주기함수는 정수 개의 주파수 조합으로 표시되지만, 비주기함수는 연속적인 주파수 분포로 표시됩니다. 특정한 주파수를 갖는 몇 개의 소리굽쇠가 아니라, 크기가 미세하게 다른 무한개의 소리굽쇠의 조합과 같습니다.

푸리에 변환을 이용하면 주기함수 및 비주기함수 등 어떠한 함수라도 시간 대역의 변화를 주파수 대역의 분포로 바꿀 수 있습니다.

쉽게 알아보는 공학이야기 11 – 푸리에 급수▲ (왼) 시간 대역의 음성신호 / (오) 주파수 대역으로 변환된 신호

과거 아날로그 명품 전축이나 고가의 스펙트럼 분석기는 복잡한 하드웨어 필터 회로를 통해, 연속 푸리에 변환을 함으로써 잡음 소거나 신호 분석을 했습니다. 반면, 디지털로 변환된 신호는 하드웨어가 아닌, 이산 푸리에 변환이라는 수학적인 연산 작업을 통해 주파수 분석을 합니다. 하지만 이산 푸리에 변환은 엄청난 연산 시간이 필요했습니다.

1965년 미국의 툴리와 쿠키는 푸리에 변환에 관한 숙제를 하다가 적분계산 시간을 획기적으로 줄이는 고속 알고리즘을 개발했습니다. 현재 대부분의 주파수 분석은 이 알고리즘에 기초하고 있으며, 이를 고속 푸리에 변환(Fast Fourier Transform)이라 합니다. FFT는 오늘날 디지털 통신과 신호처리의 기본을 이루며 대용량 고속 영상처리와 데이터 압축을 가능하게 해주었습니다.

 

퓨리에 변환을 통한 데이터 압축

쉽게 알아보는 공학이야기 11 – 푸리에 급수

음성신호를 디지털화하려면, 사람의 가청주파수인 20kHz의 두 배(나이키스트 주파수) 이상의 속도로 샘플링 해야 합니다. 즉, 초당 4만개 이상의 데이터가 필요합니다. 따라서 음성 파일의 용량을 줄이고 효율적인 전송을 위해서는 파일 압축이 절대적으로 필요합니다.

데이터 압축에는 여러 방식이 있습니다. 데이터를 일일이 저장하지 않고 반복 출연 여부와 반복회수를 함께 저장하는 방식, 데이터 출현 빈도에 따라 코드 길이를 달리하는 허프만 방식이 있습니다. 이들은 원시 데이터의 손실 없이 용량을 줄이지만, 압축률이 그리 높지 않습니다.

쉽게 알아보는 공학이야기 11 – 푸리에 급수

이에 비해 푸리에 변환에 의한 방법은 다소 손실은 있지만 압축률이 높습니다. 데이터를 하나씩 저장하는 것이 아니라, 신호처럼 주파수와 진폭으로 변환하여 주기함수의 조합으로 저장합니다. 최근 압축기술은 대부분 푸리에 변환 방식과 기타 압축 방식을 함께 사용하는 것으로 보면 됩니다.

동영상의 경우 음성 파일보다 용량의 크기가 커집니다. 100만 화소의 비트맵 파일 한 개를 24비트로 저장하면 3MB를 차지하고, 이것으로 초당 30프레임이 돌아가는 동영상을 만들면 초당 90MB, 즉 9,000만개의 데이터가 필요합니다.

쉽게 알아보는 공학이야기 11 – 푸리에 급수

영상파일 분석에는 푸리에 변환의 일종인 이산 코사인 변환(Discrete Cosine Transform)을 주로 활용합니다. 이미지를 저장할 때 코사인 변환을 해서 저장하고, 불러올 때 역변환을 통해서 이미지로 환원해줍니다. 대표적인 압축 형태로 화상은 jpeg, 동영상은 mpeg가 있습니다.

비트맵 이미지를 압축해서 저장했다가 다시 불러올 때, 약간의 손실이 발생하지만 코사인 함수 개수에 따라서 압축률을 조절할 수 있습니다. 예를 들어 인터넷 속도가 느릴 때, 지도나 그림 등 화상이 다운되는 과정을 보면 처음에는 블록별로 전체적인 윤곽이 희미하게 나타나고, 차츰 디테일이 살아나는 것을 볼 수 있습니다. 저주파 코사인 함수가 먼저 전송되고 이어서 고주파의 코사인 함수들이 이어서 나오기 때문입니다.

쉽게 알아보는 공학이야기 11 – 푸리에 급수▲ 표준시험 이미지로 쓰이는 인터넷 영부인 ‘레나’ (출처: 나무위키)

영상처리 엔지니어들은 1972년 플레이보이에 실린 사진 하나를 표준시험 이미지로 애용되고 있습니다. 사진 속에 음영, 디테일, 평면, 질감 등 시각적 요소들이 골고루 잘 들어가 있어서 알고리즘 테스트용으로 안성맞춤이라고 합니다. 위 사진 주인공은 인터넷의 영부인이라 불리며 레나(Lenna)라는 이름도 주어졌습니다.

푸리에 변환에 기초한 주파수 분석기술은 FFT 알고리즘이 개발되면서 급속도로 발전하여 영상 필터링이나 파일 압축 등 오늘날 없어서는 안 될 디지털 핵심기술입니다. 프랑스의 수학자이자 물리학자였던 푸리에는 원래 열전도 관련 미분방정식 문제를 풀기 위해 수학적인 급수해법을 제시했던 것인데, 이렇듯 디지털 시대를 열어가는 핵심기술로 자리 잡을 것이라고는 상상도 하지 못했을 것입니다.