화면 내 (Intra) 부호화
- 기존의 jpeg에서 사용된 압축 방법과 거의 같은 압축방법
- 다른 영상 (이전 영상, 이후 영상)과 관계없이 독립적으로 하나의 현재 영상만으로 부호화하는 방식
- 화면 내 부호화 방식으로 압축되는 화면을 I - Frame이라고 한다.
- 복호 시 임의 접근(random access) 를 위해서는 I - Frame이 필요하다.
- Y, Cb, Cr 영상들이 서로 독립적으로 Jpeg 알고리즘과 같이 압축된다.
- I - Frame의 압축률을 P-Frame이나 B-Frame에 비해 상대적으로 낮다.
화면 간 (Intra) 부호화
- 과거 또는 미래의 프레임을 참조하여 예측 압축방식으로 부호화하는 것을 말한다.
- 이전의 화면과 현재의 화면의 차이가 매우 적은 것을 이용하여 차이 값만을 부호화하는 것이다.
- 화면간 부호화를 위해서는 매크로블록 단위의 모션 추정(motion estimation)과 모션 보상(motion compensation) 이라는 개념이 사용된다.
- 화면간 부호화 방식으로 압축되는 화면은 P - Frame과 B - Frame이 있다.
I - Frame (Intra Frame)
- 화면 내 부호화 방식으로 압축되는 화면을 I - Frame 이라고 한다.
- 복호 시 임의 접근(random access) 를 위해서는 I - Frame이 필요하다.
- Y, Cb, Cr 영상들이 서로 독립적으로 Jpeg 알고리즘과 같이 압축된다.
- I - Frame의 압축률을 P-Frame이나 B - Frame에 비해 상대적으로 낮다.
P - Frame (Predictive Frame)
- P - Frame은 아래 그림과 같이 이전 영상을 참조하여, 이전 영상과 관계를 가지고 압축되는 Frame 이다.
- I - Frame과 달리 독립적이지 않으며, 현재 영상의 매크로 블록(16x16)이 이전의 I or P - Frame에 있는 비슷한 매크로 블록으로 부터 예측되는 순방향 예측 부호화 방법에 의해 부호화된다.
- 움직임 추정(motion estimation)과 움직임 보정(motion compensation) 을 통해 부호화 된다.
- I - Frame 부호화에 비해 상대적으로 높은 압축율을 가지고 있다.
- 연속적인 I - Frame 사이의 P - Frame의 수는 제한된다. (에러가 누적되는 것을 막고, 복호 시 임의 접근을 하기 위해)
![](https://t1.daumcdn.net/cfile/tistory/214BEB3E58A597FD0D)
B - Frame (Bidrectional Frame)
- B - Frame은 아래 그림과 같이 이전 영상을 참조함과 동시에 이후의 I 또는 P 영상을 참조해서 부호화하는 Frame
- B - Frame의 부호화는 Mpeg의 특징인 양방향 예측에 의해 부호화되는 화면
- 압축 성능이 가장 좋은 Frame이지만, 계산 시간과 복잡도가 가장 높기 때문에 성능에 영향을 줄 수 있다.
![](https://t1.daumcdn.net/cfile/tistory/240B704058A598310B)
GOP (Grop Of Picture)
- I - Frame으로 시작하는 연속적인 화상들의 집합
![](https://t1.daumcdn.net/cfile/tistory/2615A94E58A565C227)
움직임 예측 (Motion Estimation)
- 현재 화면에서의 Pixel(또는 Block)이 이전 화면의 어느 위치에 대응 되는 지를 찾아내는 과정
- 현재 화면에서의 Pixel(또는 Block)이 이전 화면에서 찾아낸 Pixel(또는 Block) 간의 위치는 같을 수도 있고, 다를 수도 있다.
- 움직임 예측을 위해서는 주로 Pixel 보다는 Block을 사용 (매크로 블록)
![](https://t1.daumcdn.net/cfile/tistory/26397D4B58A5AFE228)
움직임 보상 (Motion Compensation)
- 움직임 예측을 통하여 찾아낸 이전 화면에서의 Block과 현 화면간의 차이 신호를 보정하여 주는 과정
- 움직임 예측을 통하여 Motion Vector와 예측 에러(Predication Error)를 얻고, 이들을 부호화 한다.
![](https://t1.daumcdn.net/cfile/tistory/26368A5058A5AFB628)
디지털 데이터의 압축
최근 디지털 신호처리 기술이 급속히 발전되어 여러 분야에서 디지털 영상의 사용이 늘어나고 있지만, 우리가 보통 사용하는 영상 신호는 흑백 영상 영상의 경우 720 Pixel x 480 Pixel x 30FPS x 8bit = 83 Mbit가 된다. 컬러 영상이면 3배 이상의 데이터가 전송되게 된다.
데이터 전송의 크기가 너무 크다보니 전송하는 데이터를 부호화 및 복호화 연구가 활발해졌다.
기본적으로 데이터 압축이라는 것은 중복되는 데이터의 수를 줄이는 것이다.
중복 정보의 제거
일반적으로 데이터가 중복성을 갖는다는 말은 데이터를 표현하는데 사용된 비트 수가 데이터가 실제로 가지고 있는 정보량보다 많음을 뜻한다. 따라서 데이터 압축의 기본적인 접근 방법은 데이터에 존재하는 여러 종류의 중복 정보를 가능한대로 줄이는 것이다.
데이터의 중복성에는 대표적으로 공간적인 중복성, 시간적 중복성, 통계적 중복성 이 있다.
한 화면에서 인접하는 화소가 비슷한 값을 가지고 있음을 의미한다. 일반적인 영상을 살펴보면 영상 내에 존재하는 화소 값의 차이가 크지 않다는 것을 알 수 있다. 예를 들어, 벽 앞에 서 있는 사람을 찍은 사진의 경우에, 벽을 나타내는 화소 값은 별로 차이가 나지 않는다. 다시 말해서, 벽을 나타내는 인접한 화소 값은 매우 비슷한데, 이러한 영상의 특성을 공간적인 중복성이라고 한다.
우리가 동영상을 유심히 살펴보면 시간적으로 일정한 간격을 가지고 화면에 뿌려지는 정지 영상의 연속성에 따라 마치 물체가 연속적으로 움직이는 것처럼 보인다. 이렇게 연속적으로 보이는 영상에서, 이전의 영상과 현재의 영상을 확인을 해보면, 두 화면은 거의 비슷한 영상이라는 것을 알 수 있을 것이다. 예를 들어 현재 화면에서 어떤 사람이 전화를 받는 장면이라면, 인접 화면에서 변하는 것은 입 모양이나 상체의 미세한 움직 정도 일 것이다. 따라서 장면의 배경 부분과 같이 변화가 거의 없는 부분들은 다시 전송하지 않고, 움직임에 따라 약간 변화된 부분만을 구분하여 전송하면 시간적인 중복성을 이용한 효과적인 데이터 압축을 이룰 수 있다.
19세기 중엽 미국의 발명가 Samuel Morse는 영어 알파벳 중에서 글자 E와 글자 A가 다른 글자보다 더 자주 이용되는 사실에 착안하여 전신기에 사용하기 위한 Morse 부호를 개발하였는데, 전신기를 이용하여 정보를 전달하는데 소요되는 평균 시간을 줄이기 위해, Morse는 상대적으로 자주 발생하는 글자 E와 A에는 짧은 길이의 부호를 배정하고 가끔씩 발생하는 글자 Q와 Z에는 상대적으로 긴 부호를 할당하여 통계적인 중복성을 줄일 수 있었다.
이처럼 사람의 눈은 휘도(luminance) 신호에 비해서 색차(chrominance) 신호의 반응도가 상대적으로 떨어진다. 즉 우리 눈은 휘도 신호에 대해서는 매우 민감하지만, 색차 신호에 대한 민감도는 상대적으로 둔한 편이다. 따라서 우리가 영상 신호를 압축하는데 이러한 특성을 통계적인 중복성을 적용 할 수 있다.