위키득계정 ↗
기술

이산 코사인 변환

이산 코사인 변환기술
영문명
Discrete cosine transform
약칭
DCT
기저
코사인 함수
주요 구분
유형과 정규화 방식
이산 코사인 변환은 유한한 수열을 코사인 기저의 계수로 표현하는 변환이다. 변환 유형과 정규화 방식에 따라 기저의 위치와 계수 크기가 달라지므로 순방향과 역방향의 정의를 함께 맞춰야 한다.

좌표를 계수로 바꾸기

입력 수열을 여러 코사인 패턴의 가중 합으로 표현하는 관점이다. 낮은 주파수 성분은 완만한 변화에, 높은 주파수 성분은 더 빠른 변화에 대응한다. 다만 계수의 해석은 사용하는 DCT 유형과 표본의 경계 처리에 달려 있다. 흔히 사용하는 DCT-II와 다른 유형을 같은 변환으로 취급해서는 안 된다.

길이 3의 직교 정규화 예제

직교 정규화한 DCT-II에서 수열 (1,2,3)의 계수는 (2√3,-√2,0)이다. 첫 계수는 입력의 합 6을 √3으로 나눈 값이다. 나머지 기저와의 내적을 계산하면 두 번째는 -√2, 세 번째는 0이 된다. 입력의 제곱합은 1+4+9=14이고 계수의 제곱합도 12+2=14이다. 이는 직교 정규화에서 에너지 보존을 확인하는 예제다.

변환과 정보 손실

모든 계수를 충분한 정밀도로 유지하고 맞는 역변환을 사용하면 원래 수열을 복원할 수 있다. 변환 자체가 정보를 반드시 버리는 것은 아니다. 앞 예제에서 첫 계수만 남기고 나머지를 0으로 하면 역변환 결과는 (2,2,2)이다. 평균 수준은 남지만 원래의 증가하는 변화는 사라진다. 계수 제거와 양자화는 가역적인 좌표 변환과 구분해야 한다.

유형과 역변환

정규화하지 않은 DCT-II와 DCT-III는 서로 역관계에 있을 때 별도의 배율이 필요하다. 직교 정규화에서는 그에 맞춘 역변환을 사용한다. 길이를 늘리기 위한 0 채움, 입력을 자르는 처리, 변환 축도 결과를 바꾼다. 다른 도구의 계수를 비교할 때는 유형, 길이와 정규화를 맞추고 역변환으로 재구성 오차를 확인한다.

관련 문서

이산 푸리에 변환 / 직교 행렬 / 내적 / 주파수 / 양자화 (신호처리) / 제로 패딩 / 신호 처리