본문 바로가기
정보과학/영상통신시스템

(토론)영상 변환 기법과 예측 부호화

by J1소프트 2023. 10. 18.
728x90

1.서론
영상 변환은 가역적인 것이어서 변환된 영역의 변환 계수들로부터 원래의 데이터를 완전히 복원할 수 있다. 이러한 영상 변환은 그 자체로서 데이터를 압축 한다기 보다는, 보다 압축이 효과적으로 이루어질 수 있는 공간으로 변환하는데 있다.
영상 신호에는 다양한 성격을 부여할 수 있다. 그 중에서도 가장 널리 사용되며 유용한 성질은 주파수 개념이다. 주파수를 이용하면 여러 신호를 왜곡 없이 하나의 신호로 만들 수도 있으며, 전송을 용이하게 할 수도 있는 등의 유용한 기술을 적용할 수 있다. 이러한 성질을 이용하기 위해서는 신호의 주파수를 분석할 수 있는 능력이 필요한데 이러한 목적으로 나타나게 된 것이 주파수 축으로의 변환이다. 널리 사용되는 신호 변환법으로는 퓨리에 변환(Fourier Transform), KLT(Karhunen-Loeve Transform), DCT(Discrete Cosine Transform), 웨이블릿 변환(Wavelet Transform) 등이 있다.[2]
DCT와 DWT의 경우 강의 내용이 잘 정리 되어 있어 참조했으며, 퓨리에 변환과 KLT의 경우 관련 서적과 사이트를 참조하여 정리하였다.
공간적, 시간적 예측 부호화는 앞 주차에서 학습한 중복성 제거 차원의 이해를 바탕으로 동작원리를 살펴보았다.

2.영상 변환 기법
2-1.퓨리에 변환(Fourier Transform)
프랑스의 수학자 퓨리에(Jean Baptiste Joseph Fourier)가 1807년에 발표한 열확산에 관한 논문에서 주기성을 가진 함수는 가중치를 가진 사인(sines)과 코사인(cosines)의 합을 나타내는 곡선으로 표현할 수 있다는 것을 주장하였는데, 이 개념이 수학, 과학, 공학 분야에 커다란 공헌을 하였다. 주기성을 가진 함수는 가중치를 가진 사인과 코사인의 합을 나타내는 곡선으로 표현할 우 있다는 퓨리에의 생각은 처음에 쉽게 받아들여지지 않았지만, 퓨리에 급수라는 개념이 형성되고, 사인과 코사인 곡선의 조합에 의해 진동수와 진폭이 다른 다양한 정형파가 만들어진다는 것이 일반화되었다. 그리고 이제는 주기적이지 않는 함수조차도 가중 함수에 의해 곱해지는 사인과 코사인의 적분으로 표현될 수 있다는 퓨리에 변환의 개념이 실생활에까지 널리 이용하기에 이르렀다. 시간 영역을 주파수 영역으로 변환시키는 퓨리에 변환은 그 역변환이 성립한다는 점을 여러 응용 분야에 폭넓게 이용할 수 있다. 특히 신호 처리의 경우, 대부분 주파수 영역이라는 수학 공간에서 이루어지므로 더욱더 의미가 있다고 알 수 있다. 영상 처리에 퓨리에 변환을 이용하기 위해서는 우선 2차원 퓨리에 변환을 표현해야 한다. 정수값을 갖는 픽셀의 좌표를 기본으로 하는 2차원 공간에 표현되는 영상의 경우, 이산적인 샘플을 추려서 적용해야 한다.[3]

 

(1)이산 퓨리에 변환
디지털 영상 처리의 경우에는 연속적인 함수가 아니라 각 픽셀의 위치가 1,2,3 등과 같이 연속이 아닌 이산적인 정의역을 갖는 샘플 함수를 사용하고 영산의 크기만큼의 유한한 범위 내에 있으믈로 MxN 크기를 가진 영상의 경우, 이산 퓨리에 변환식을 적용시키면 좌표 공간 영역을 주파수 영역으로 변환시킬 수 있다.

 

(2)고속 퓨리에 변환
이산 퓨리에 루틴은 O( n⁴)의 시간 복잡도를 가지므로 실용성이 없어 개선시키지 않으면 크기가 큰 영상에 적용하기가 곤란하다. 다행히 n 길이의 이산적 변환은 n/2의 길이인 두 개의 퓨리에 변환의 합이 될 수 있다는 것이 증명되어, 이른바 고속 퓨리에 변환 방법(Fast Fourier Transform;FFT)이 개발되었다. 이 방법의 분해 성질을 이용하여 하나의 2차원 식을 두 개의 1차원 식으로 만들 수 있듯이 영상의 경우에도 2차원 행렬을 분해하여 행에 대해 적용한 것을 다시 열에 대해 적용하는 분해 방법을 사용한다. 이 방법은 nxn 영상에 대해 O(n²log2 n²), mxn 영상에 대해 O(mnlog2mn)의 시간 복잡도를 가지므로 이산 퓨리에 변환 방법에 비해 대단히 유용하다. 다만 n이 n/2로 분해되듯이 n/2이 n/4으로 n/4이 n/8로 반복적으로 분해될 수 있어야 하므로 영상의 폭과 높이는 모두 2ⁿ크기를 가져야 한다는 것이 제약사항이다.

2-2.KLT(Karhunen-Loeve Transform)
시간축의 화상 신호를 주파수축으로 변환하여 부호화하는 변환 부호화 방식 중에서 입력 신호의 성질에 따라서 최적화한 변환 방식이다. 블록화된 화상 신호의 고유 행렬을 구하고, 이 행렬을 사용하여 직교 변환을 하기 때문에 변환된 신호 사이에는 상관이 없다. 한편, 이 변환은 각 블록마다 고유 행렬을 구해야 하므로 실용성이 부족하다. 그래서 영상 신호의 부호화에서는 카루넨 루베 변환에 가까우면서 높은 부호화 능률을 얻을 수 있는 이산 코사인 변환(DCT) 부호화 방식이 급속도로 보급되고 있다.

2-3.DCT(Discrete Cosine Transform)
- 영상 부호화 표준에서 일반적으로 사용되고 있는 변환이다.
- 유한한 개수로 이루어진 1차원 입력 데이터 {x(n), 0nN -1}에 대한 1차원 DCT와 역DCT는 다음과 같이 정의된다. {y(k), 0kN -1}은 변환 계수이다.


- 이러한 1차원 DCT는 영상과 같은 2차원 신호에 확장되어 적용될 수 있다.
- N×N 샘플로 구성된 블록 X에 대한 2차원 DCT는 다음과 같다. 여기에서 Y는 계수 행렬이다.

 


- 2차원 DCT의 기본 패턴
▷ 각각의 패턴은 N×N DCT 계수들 중 해당 위치의 계수만 1이고, 나머지는 모두 0으로 지정한 후 이를 역변환한 것이다.
▷ (0,0) 위치의 계수에 대한 패턴은 전 영역에 걸쳐 균일한 값이다.
▷ (0,1) 위치의 계수에 대한 패턴은 세로축 방향으로는 변화가 없고, 가로축 방향으로 변화하는 픽셀 값들로 나타나는 것을 볼 수 있다. 또한 우측 계수로 갈수록 그 변화 주기가 짧아지는 것을 볼 수 있다.
▷ 반면 (1,0) 위치의 계수는 가로축 방향으로는 일정하고, 세로축 방향으로 변화하는 픽셀 값들로 구성되는 패턴이며, 아래의 계수로 갈수록 그 변화 주기가 짧아지는 것을 볼 수 있다.
▷ 이처럼 2차원 DCT 계수는 (0,0) 위치를 기준으로 우측에 있는 것일수록 가로축 방향의 변화를, 아래에 있는 것일수록 세로축 방향의 변화를 표현한다고 볼 수 있으며, 대각선 방향의 계수는 복합적인 변화를 나타내게 된다.
▷ 따라서 2차원 DCT는 주어진 영상 블록을 이러한 패턴의 가중치 합으로 표현하는 것이며,
각각의 가중치들이 DCT 계수인 것이라고 개념적 이해를 할 수 있다.

- DCT 및 역DCT


▷ 역 DCT
1)DC 계수((0,0) 위치의 1개의 계수) 1개만 남겨두고 나머지 계수를 모두 0으로 지운 다음
역변환하면 모든 픽셀의 값이 같은 것을 볼 수 있다. 또한 그 값은 원래 블록의 픽셀 값들
의 평균이다. 그래서 이 (0,0) 위치의 계수를 DC 계수라고 부르는 것이며, 나머지 계수는
AC 계수라고 부른다. (DC 계수는 블록의 전반적인 값(평균값)이며, AC 계수는 이 평균값
을 기준으로 변화 성분을 표현한다고 보면 된다.)
2)DC 계수와 함께 가장 크기가 큰 (0,1) 위치의 계수를 포함하여 역 DCT를 구하면 DC 계
수만을 사용하여 복원된 평균값을 기준으로 수직 방향의 변화를 반영하고 있는 것을 볼 수
있다.
3)사용하는 계수의 수를 늘이면 점차 원래의 4×4 블록의 모양으로 접근해 가며, 모든 계수
를 다 사용하면 원래의 블록이 복원된다.

2-4.DWT(Discrete Wavelet Transform)
- 웨이블릿 변환(wavelet transform) 은 이산 웨이블릿 함수에 해당되는 계수 값을 갖는 필터들의 집합에 기반을 두고 있다.
- 변환을 하고자 하는 N개의 값으로 구성된 신호에 대해 한 쌍의 필터를 적용한다. 하나의 필터는 저역통과 필터(low pass filter)의 역할을 하는 필터이고, 다른 하나는 고역통과 필터(high pass filter)의 역할을 하는 필터이다.
- 이러한 필터를 통과한 신호는 저역 통과된 저주파 대역(L)과 고역 통과된 고주파 대역(H) 으로 분리된다. 분리된 두 신호는 전체 대역폭의 반에 해당되는 대역의 성분만 포함되어 있으므로, N/2개의 값으로 다운 샘플링(down-sampling)한다 .

- 2차원 영상에 대한 적용
▷ N×N 2차원 영상에 대해 행 단위로 저역통과 필터와 고역통과 필터를 취하여 얻은 두 영상을 각각 행 방향으로 다운 샘플링하여 두 장의 (N/2)×N 영상을 구한다. 이 두 영상에 대해 동일한 과정을 열 단위로 수행하면 4장의 서브 이미지(LL, LH, HL, HH)로 분해된다.
1)LL영상 : 원본 영상에 수평과 수직 방향으로 저역통과 필터를 적용하여 행 및 열에 대해
인수 2로 다운 샘플링한 영상
2)LH영상 : 수평방향으로 저역통과 필터, 수직방향으로 고역통과 필터를 적용하여 행 및 열에 대해 인수 2로 다운 샘플링한 영상
3)HL영상 : 수평방향으로 고역통과 필터, 수직방향으로 저역통과 필터를 적용하여 행 및 열
에 대해 인수 2로 다운 샘플링한 영상
4)HH 영상 : 수평과 수직 방향으로 고역통과 필터를 적용하여 행 및 열에 대해 인수 2로 다
운 샘플링한 영상
- 영상 부호화에서의 활용

 

▷ 부호기
다단계에 걸쳐 웨이블릿 분리과정을 수행 한다 .
1단계 웨이블릿 분리 결과 중 LL 영상을 다시 행/열방향 저역/고 역통과 필터 및 다운 샘플
링을 통해4장의 영상(LL-LL, LL-LH, LL-HL, LL-HH)으로 분리한다.
이 과정을 반복하면 계층적인 서브밴드 영상 트리를 생성할 수 있다.
높은 주파수의 서브밴드 영상 중 많은 샘플(계수)들이 0에 가까운 값에 해당되므로, 이와
같은 중요하지 않은 계수들을 제거함으로써 압축을 수행할 수 있다.

 

▷ 복호기
반복적인 업 샘플링(up-sampling)과 필터링, 덧셈을 통해 원본 영상을 복원한다.
낮은 주파수의 서브밴드부터 복원해 나감에 따라 점차 높은 주파수 밴드에 해당되는 세밀
한 부분이 더해져 점진적으로 원본 영상이 복원된다.
이와 같은 부호화와 복호화 과정은 영상을 블록 단위로 분할하여 변환하는 방법과는 달리
전체 영상을 대상으로 수행되므로, 블록화 현상이 발생하지 않는다 .

3.예측 부호화
3-1.시간적 예측 부호화


- 비디오 신호에 대한 시간적 예측 부호화는 이전에 전송된 프레임을 기준으로 현재 프레임에 대한 예측 데이터를 생성하는 것으로, 움직임 보상 예측 부호화가 이에 해당 된다.
- 움직임 보상 예측 부호화의 경우도 부호기 안에 복호기 모듈이 포함되어 부호기와 복호기가 동일한 기준프레임을 이용하여 움직임 보상이 이루어지도록 한다.
- 예측기 내에는 움직임 보상의 기준프레임을 저장하기 위한 버퍼를 가지고 있다.


3-2.공간적 예측 부호화

- 예측 부호화는 한 화면 내의 데이터에 대해서도 이루어질 수 있다. 이 방법에서는 화면 내의
이전 픽셀들로부터 현재의 픽셀 값을 예측한다. 화면 내 예측 부호화는 H.264 화면 내 부호화
의 주요 요소이다.
- 이러한 화면 내에서의 공간적 예측은 종종 Differential Pulse Code Modulation(DPCM)이라고 표현된다.
- 공간적 예측의 예 - 픽셀 X의 부호화 및 복호화

 

(1) 인코더 측
▷ 픽셀 X의 주변에 있는, 이미 전송한 픽셀들의 값을 기준으로 하여 X의 값을 예측한다.
P(X) = (2A' + B' + C') / 4
손실 부호화를 사용할 경우 복호기 측에서는 부호기 측에서의 원래의 값을 그대로 전달 받
지 못하므로, 원 화면의 픽셀 값 A, B, C를 이용하여 예측할 경우 오차가 누적되는 문제가
있다. 그러므로 부호기에서는 복호기를 포함하도록 설계함으로써, 기 전송 픽셀들을 복호화
한 값인 A', B', C'을 사용하여 X를 예측하도록 한다.
▷ 원래의 픽셀 값과 예측한 픽셀 값의 차인 R(X)를 구한다.
R(X) = X - P(X)
▷ R(X)를 양자화하여 전송 한다 .

 

(2) 디코더 측
▷ 인코더와 동일한 방법으로 픽셀 X를 예측한다.
P(X) = (2A' + B' + C') / 4
▷ 전송 받은 오차 값을 역 양자화 하여 R'(X)를 구한 후, 이를 P(X)에 더하여 픽셀을 복원한다.
X' = R'(X) + P(X)
- 예측기의 성능이 부호화 효율에 영향을 미친다.
▷ 예측기의 정확도가 높다면 예측 오차의 에너지가 낮아져서 더 적은 비트 수로 오차를 표현할 수 있다.
▷ 예측기의 정확도를 높이기 위해 화면의 통계적 특성(예: 단순한 영역, 수직 성분이 강한 영역, 수평 성분이 강한 영역 등)에 따라 적절한 예측기를 선택하도록 할 수 있다. 대신 선택된 예측기를 알리기 위한 추가 비트가 필요하다.

4.결론 및 의견


영상 변환에서의 가장 중요한 이해 포인트는 데이터를 압축하기 전, 압축을 효율적으로 극대화 하기 위한 공간으로 변환하는 과정이라는 것과 이를 위해 영상 신호의 주파수 성질을 이용한다는 것으로 이해했다. 사실 수학적인 접근을 요하는 부분이 많은 학문이므로 비교적 이해의 난이도가 높다고 느껴진다. 하지만 개념적인 이해를 통해서 상당히 흥미 있는 내용이란 생각이 든다.


DCT와 DWT의 경우 강의 컨텐츠를 통해서 상세히 이해할 수 있었다. DCT는 블록화 기법으로 영상 부호화 표준에서 일반적으로 사용하는 반면 블록킹 현상이 일어 날 수 있는 단점을 가지고 있으며, 2차원 DCT는 영상 블록 패턴의 각각의 가중치인 DCT계수로써 변환 작업이 이루어진다. 반면 DWT는 블록이 아닌 이미지 기반 즉 영상 전체에 대해 변환을 한다. DCT보다 성능이 우수하나, 메모리 소요량이 많고 계산 용량이 크다는 단점을 가진다. DWT에서는 고주파, 저주파 통과 대역으로 LL, LH, HL, HH영상으로 분리되는 과정을 이해해야 했다.

 

DCT나 Wavelet 부호화를 한 결과 얻게 되는 계수는 양자화를 거쳐 엔트로피 인코딩을 통해 최종적으로 압축하게 됨을 알았다.
시간적 예측 부호화 즉 화면 간 예측 부호화는 복호기 모듈이 부호기에 포함되어 움직임 보상이 이루어진다는 점이 특징적이라 할 수 있으며, 공간적 예측 부호화(화면 내 예측 부호화)에서는 이미 전송된 주변의 픽셀들에 가중치를 이용하여 예측 부호화를 하게 됨을 알 수 있었다. 

[참고문헌]
[1]3주차 강의 내용(영상압축2)
[2]"엠펙2/4 멀티미디어 코덱 칩" 정보통신부
http://register.itfind.or.kr/Report01/200502/IITA/2003T/03-t-038/03-t-038.pdf
[3]"C# 디지털 영상처리" 정민영, 이칠우