변환


변환 기법은 대상 기반 기법의 하나로서 정보를 바라보는 관점을 바꾸는 것이라고 볼 수 있다.

변환 부호화를 수행할 때 초기 데이타의 공간적, 시간적 도메인을 압축하기에 더 적합한 추상적 도메인-주파수 또는 진폭 도메인-으로 변환한다. 또한 본래 데이타를 복원하기 위해 추상적 도메인에서 공간적, 시간적 도메인으로 변환하는 과정도 수행할 수 있다. 푸리에 변환이 그 예이다.

예를 들어 시간을 변수로 가지는 함수 f(t)가 퓨리에 메카니즘에 따라 g(λ)의 함수로 변환 될 수 있는데, g(λ)함수를 이용하여 초기 함수를 구성하는 주파수 λ의 진폭 g를 구할 수 있다. g(λ)는 f(t)의 사상(spectral distribution)이라고 한다. 영상의 사상(spectral) 표현에 있어서 주파수는 색상과 명도가 얼마나 빨리 변하는 가를 나타낸다.

변환을 통해 대상 정보를 압축하기 용이하도록 가장 적합한 표현으로 바꾸는 것이다. 즉 변환 자체는 압축이 아니다.



이 방법은 데이타의 특성을 고려해야 하는데 이러한 방법을 생각하게 된 동기는 변환후 가장 중요한 정보는 그룹을 지어 원래의 값과 동일하게 유지하는 것이다. 이렇게 그룹을 짓는 것을 팩(pack)했다고 한다. 즉, 주파수 도메인으로 변환 후 가장 중요한 인자들은 덜 중요한 값들보다도 더 정확한 값으로 코딩을 한다. 또한 어떤 인자들은 무시할 수도 있다.

변환은 원래의 값과 동일하게 복원할 수 있기때문에 무손실 기법에 포함된다. 그러나 좀더 나은 해상도를 얻기 위해 어떤 인자들은 다른 인자들보다도 더 많은 비트로 표현하기도 하며 어떤 인자들은 무시되기도 한다. 이렇게 함으로써 손실 기법으로도 사용할 수 있다.

변환에 대한 간단한 예를 보자.
A B
C D

위 그림과 같이 4개의 문자로 구성된 배열에 대해 변환을 행하면 아래와 같다.
    <<변  환>>           	<<역 변 환>>
    x0 = A 	           	  A = x0
    x1 = B - A			  B = x1 + x0
    x2 = C - A			  C = x2 + x0
    x3 = D - A			  D = x3 + x0
위의 그림에서 각 문자는 1바이트(8비트)로 표현되기 때문에 4개의 문자를 나타내기 위해서는 8*4 = 32비트가 필요하다. 그러나 변환을 행할 때 우리가 차이값을 4비트로 표시한다면 즉, x1, x2, x3의 값은 4비트로 표현이 가능하고, x0의 값은 8비트가 필요하다. 따라서 변환후 필요한 비트수는 8 + (3*4) = 20비트가 되어 12비트가 줄게 되는 효과를 얻을 수 있다. 즉, 하나의 문자당 평균 5비트로 표현하는 효과를 얻을 수 있는 것이다. 변환한 값을 원래의 값으로 복원하는 과정도 위에 나타난 것처럼 쉽게 나타낼 수 있다.

그러나 위의 방법은 실재로 사용하지 않고 그보다는 영상 압축을 위해 DCT(discrete cosine transform)방식을 많이 사용한다. 이 DCT를 이용하면 영상을 공간영역에서 주파수 영역으로 변환할 수 있으며, 영상 데이터는 변화가 적으므로 낮은 주파수, 특히 0 주파수(DC)성분이큰 값을 가지게 되고 높은 주파수 성분은 상대적으로 낮은 값을 갖게되므로서, 대부분의 정보가 낮은 주파수 쪽으로 몰리게 되므로 양자화 과정을 적절히 거치면 높은 압축률로 우수한 화질을 얻을 수 있다. 양자화 과정이란 DCT를 통해 얻어진 DCT계수값 등을 어떤 상수들로 나누어 유효자리의 비트수를 줄이는 과정이다. 예를 들어 0에서 255까지 있을 수 있는 8비트 수를 상수 4로 나누면 6비트만으로도 표시할 수 있다. 그러나 복원시에 4를 곱해야 하므로 원래 값과의 오차가 최대 3까지 있을 수 있어서 결국 데이터의 손실이 있게 된다. 그러나 압축률은 높일 수 있다. 나누는 상수의 값을 크게 하면 할수록 압축률은 높아지나 데이터의 손실이 커진다는 단점이 있다.


이전으로


한단계 위


처음으로


다음으로