1. MPEG-1 개요
MPEG은 가정용 비디오와 같은 영상기기를 디지털화 하기 위한 저장 미디어 비디오 압축 표준이다. 여기에서는 MPEG-1의 배경과 함께, MPEG-1 표준 부호화 기법이 갖추어야 할 기본적인 요건에 대하여 살펴본다.
1.1 MPEG-1이란 무엇인가?
□ 동영상 압축에 대한 필요성은 영상전화, 화상회의 등의 통신분야, 가정용 비디오, 방송과 같은 여러 분야에서 제기되어, 대학, 통신업자, 가전업체, 컴퓨터업체, 방송사업자 등 다양한 관심 그룹에 의해 연구되어왔다.
□ 통신분야에서는 1980년대에 ISDN에서 사용될 영상전화에 적용하기 위한 영상부호화기의 표준화가 진행되었다. 이 표준은 p×64kbps, p=1~30의 저 전송률에 목표를 둔 표준화 노력의 결과 1990년 12월에 H.261이 만들어졌다.
□ 1980년대 후반에는 CD-ROM과 같은 저장 미디어를 기반으로 하여 비교적 고화질의 디지털 비디오 구현의 필요성이 제기되었다. MPEG-1은 이러한 기록매체를 위한 비디오 압축 표준이다.
□ MPEG-1은 SIF(Source Input Format, NTSC의 경우 352×240의 유효화소) 영상과 48KHz로 표본화된 음성을 1.5Mbits/sec의 비트율로 압축 부호화하며, 부호화된 화상이 VHS 방식의 비디오 화질을 갖도록 한다.
1.2 MPEG-1 표준 부호화 기법의 기본 요건
□ MPEG-1은 CD와 같은 기록매체에 저장된 부호화 영상을 활용하기 위한 것이다. 이에 따른 MPEG-1의 필요 요건은 다음과 같다.
① 임의 접근성
▷ 이전 화면을 복호화하지 않고 원하는 화면부터 재생할 수 있는 기능
▷ MPEG-1의 경우 프레임간 예측부호화를 사용하고 있기 때문에 완전하게 임의의 위치에서 재생을 하도록 할 수는 없지만, 부호화된 화면 시퀀스 중 예측부호화를 하지 않는 I 화면을 통해 근사한 임의 접근성을 제공한다.
② 편집 가능성
▷ 비디오의 일부분을 사용하거나 재배치, 삽입 등이 가능하게 하는 기능
▷ MPEG-1의 경우 예측부호화를 사용하고 있기 때문에 완전한 편집기능을 제공하지는 못하지만, 예측부호화가 지속되는 단위인 GOP라는 화면 모음 단위로 편집이 가능하다.
2. MPEG-1 영상 부호화 및 복호화
MPEG-1은 기본적으로 예측 부호화와 8×8 DCT 및 가변길이 부호화에 의한 압축부호화를 택하고 있다. 여기에서는 이러한 부호화를 위한 입력 영상의 표현, 영상의 그룹화, 압축 방식별 화면 종류, 재배열 등의 내용을 통해 MPEG-1 비디오 부호화의 전반적인 골격을 살펴본다.
2.1 입력 영상 형식
□ 주사방식 : 비디오 신호의 주사방식에는 순차주사방식 및 비월주사방식이 있다. MPEG-1에서는 그중 순차주사방식만을 지원한다.
□ SIF(Source Input Format) : ITU-R 601에 근거하여 두 가지 형식의 SIF가 사용된다. 이 형식들의 화면 크기는 각각 NTSC와 PAL 방식 컬러TV 신호의 한 필드에 해당된다.
▷ NTSC 방식에 해당되는 SIF : 360×240, 화소당 8비트(휘도신호)
▷ PAL 방식에 해당되는 SIF : 360×288, 화소당 8비트(휘도신호)
※ 한 화면은 16×16의 매크로블록(대블록, macro block)이라는 단위로 구분되도록 되어 있어 실효면적(SPA; Significant Pel Area)은 각각 352×240, 352×288이다.
□ 컬러신호의 표현
▷ YCbCr 색 좌표계를 사용한다.
▷ 4:2:0 표본화 형식을 사용한다.
▷ 색도신호의 표본화 위치는 네 휘도신호의 중앙이다.
□ 화면의 구성
▷ 한 화면은 휘도성분을 기준으로 16×16의 매크로블록으로 구성된다.
▷ 하나의 매크로블록은 다시 8×8 크기의 블록으로 구분되어, 하나의 매크로블록은 4개의 블록으로 구성된다.
▷ 4:2:0 표본화 형식을 사용하므로 하나의 매크로블록에 대해 8×8 크기의 색도신호 블록이 Cb와 Cr에 대해 하나씩 포함된다.
2.2 영상 시퀀스
2.2.1 GOP 구조
※ 임의 접근성을 어떻게 제공할 것인가?
▷ MPEG-1은 기본적으로 화면간 예측부호화를 이용하고 있다. 이는 한 화면의 데이터만으로는 그 화면을 복호화 할 수 없고, 예측의 기준이 되는 이전 또는 이후 화면이 복호화되어야 현 화면을 복호화 할 수 있다는 의미이다.
▷ 그런데 MPEG-1은 CD와 같은 기록매체를 대상으로 하고 있어 빨리감기, 되감기, 중간부터 재생하기, 임의접근과 같은 트릭모드의 동작을 필요로 하고 있다.
▷ 그렇다면 임의접근과 같은 동작을 할 수 있도록 하려면 영상 시퀀스를 어떻게 구성하는 것이 좋을까?
□ GOP(Group of Pictures)
▷ 몇 장의 연속적인 화면을 단위로 전체 화면을 그룹화한다.
▷ 각 그룹에 대한 부호화 비트열을 기준으로 처음에 나오는 화면은 화면간 예측 부호화를 하지 않고, 화면 내 압축 부호화를 함으로써, 그 화면의 부호화 데이터만으로 원 화면을 복호화 할 수 있도록 한다.
▷ GOP 내에 몇 장의 화면이 포함되어야 하는가에 대한 제한은 없으나, 화면 수가 너무 많으면 임의접근의 단위가 커지게 되고, 너무 적으면 부호화 효율이 낮아지게 된다.
2.2.2 화면의 종류
(3) B 화면
□ 하나의 I 화면 또는 P 화면 쌍에 의해 양방향(Bidirectional) 예측/보간을 통해 부호화되는 화면이다.
□ B 화면의 매크로블록은 다음 네 가지 유형 중 하나이다.
① 화면 내 부호화 블록
② 순방향 화면간 예측 부호화 블록
③ 역방향 화면간 예측 부호화 블록
④ 양방향 보간 화면간 예측 부호화 블록(순방향 예측과 역방향 예측의 평균을 구한다.)
□ B 화면을 사용함에 따른 문제점
▷ 현 화면 이후의 I 또는 P 화면이 있어야 하므로 화면 순서를 재배열 하는 것이 필요하다.
▷ 앞뒤의 두 화면을 보관하고 있어야 하기 때문에 화면버퍼가 더 많이 필요하다.
2.2.3 GOP 내의 화면 순서 재배열
□ B 화면을 복호화 하기 위해서는 시간적으로 그 화면의 뒤에 나오는 I 화면 또는 P 화면이 필요하다. 따라서 B 화면이 전달되기 전에 먼저 그 I 또는 P 화면이 전달되어야 한다. 이에 따라 화면이 저장(또는 전송)되는 순서는 디스플레이될 화면 순서와 다르게 재배열된다.
※ 화면 시퀀스에서 GOP 사이의 경계가 되어야 하나? [그림8]
▷ ① 위치 : 순방향으로 재생할 때, 첫 번째 GOP의 마지막 두 장의 B 화면을 복호화 할 수 없다. 아직 복호화되지 않은 다음 GOP의 I 화면이 있어야 한다.
▷ ② 위치 : 순방향으로 재생할 때, 두 번째 GOP의 처음 두 B 화면을 복호화 하려면 이전 GOP의 P 화면이 필요하다. 이 화면은 이미 복호화 된 상태이므로 이를 화면 버퍼에 가지고 있으면 된다.
▷ 따라서 일반적인 GOP의 원화면 순서는 BBIBBPBBP…BBP 와 같은 형태일 것이다. 여기서 I 또는 P 화면 사이의 B 화면의 수가 2인 경우를 가정하였다. 이 화면 순서 중 처음 두 B화면을 복호화하려면 이전 GOP의 I 또는 P 화면이 필요하다. (비디오 시퀀스의 첫 번째 GOP의 경우에는 이러한 선두의 B 화면은 존재하지 않는다.)
□ 부호화된 비트열 상에서 GOP는 I 화면으로 시작한다.
□ B 화면에 대한 비트열이 나오기 전에 그 B 화면을 복호화하는데 필요한 다음 P화면이 먼저 나온다.
□ 이러한 일반적인 GOP를 부호화한 비트열에서 화면의 순서는 IBBPBBPBB…PBB가 된다. (첫번째 GOP의 경우 IPBBPBB…PBB)
☞ 사실 GOP 내에 몇 개의 화면이 포함될 것인지, I 화면과 P 화면이 나오는 주기는 어떻게 되는지에 대한 제한은 정의되지 않다. 대신 다음의 두 가지 규칙이 있다.
① 저장(전송) 순서 : 부호화된 비트열 상에서 GOP는 I 화면으로 시작한다.
② 원화면 나열 순서 : 원화면 순으로 볼 때 GOP의 마지막은 I 또는 P 화면이다.
2.3 복호기 및 부호기 개관
2.3.1 복호기
□ MPEG-1 표준 기법은 부호기를 정의하지 않고 복호기를 정의하고 있으며, 부호기는 이러한 형태의 복호기가 복호를 할 수 있는 비트 열을 만들어낼 수 있도록 설계하면 된다.
□ 부호화된 비트 열에는 움직임 벡터, 양자화 간격 크기, 매크로블록의 유형, 양자화된 DCT 변환계수 등의 정보가 포함된다.
□ 가변길이 복호화를 통해 이들 정보를 추출하여 복호화 제어와 화면 복호화를 한다.
▷ I 화면은 역 양자화와 역DCT를 거쳐 계산된 화면을 디스플레이하면 된다.
▷ P 및 B 화면은 역 양자화와 역DCT를 거쳐 계산된 화면 데이터에 예측기를 통해 예측된 화면 데이터를 결합하여 디스플레이한다.
▷ 예측을 위해 필요한 I 화면 및 P 화면은 예측메모리 내에 보관하여 사용한다.
2.3.2 부호기
□ MPEG-1 부호화의 일반적인 처리 과정에는 DCT, 양자화, 움직임 보상을 포함한 예측 부호화, 가변길이 부호화 등이 포함된다.
□ I 화면은 화면 내 부호화를 하므로, 그 화면의 데이터만 가지고 DCT 및 양자화를 한 후 가변 길이 부호화를 한다.
□ P 화면이나 B 화면은 I 또는 P화면을 기준으로 움직임 보상을 포함한 예측 화면을 만들어 원 화면과의 차이를 구한다. 이러한 차 화면에 대해 DCT와 양자화를 수행하게 된다.
□ I 화면이나 P 화면은 다른 P 화면이나 B 화면의 부호화를 위해 보관을 하고 있어야 하는데, 이때 보관하고 있어야 하는 화면은 원 화면이 아니라, 부호화한 화면을 다시 복호화한 화면이어야 한다. 이를 위해 부호화기에는 복호기의 주요 모듈이 포함되어 있다.
3. MPEG-1 부호화 구성 요소
MPEG-1 부호기 및 복호기에는 움직임 보상을 통한 예측 부호화, DCT/IDCT, 양자화, 엔트로피 부호화 모듈이 포함된다. 본 절에서는 MPEG-1에서 이러한 압축부호화 요소들이 어떠한 형태로 구현되고 있는지에 대해 살펴본다.
3.1 움직임 보상
□ P 화면이나 B 화면에 대해서는 움직임 보상이 적용될 수 있다.
□ MPEG-1의 움직임 보상은 16×16 크기의 매크로블록 단위로 이루어진다.
□ 움직임 벡터는 통상 반 화소 단위로 나타내며, 지정하기에 따라서는 한 화소 단위로 할 수도 있다.
□ 움직임 추정 결과 예측 화소 위치가 기준 화면의 화소들 사이에 위치한다면 이웃 화소들의 평균값을 반올림하여 화소 값을 구한다. [그림12]
□ MPEG-1 표준에는 움직임 추정 방법에 대한 규정은 없으며, 부호기를 구현하는 사람에게 맡기고 있다.
□ 한 화면 내의 매크로블록들의 부호화 종류의 선택
▷ 하나의 화면 내에서 각각의 매크로블록을 어떤 종류로 부호화 할 것인지는 화면에 따라 정해진다.
․ P 화면 : 화면내 부호화 또는 순방향 예측 부호화 중에서 선택
․ B 화면 : 화면내 부호화, 순방향 예측, 역방향 예측, 양방향 예측 부호화 중에서 선택
▷ B 화면의 경우 매크로블록 단위로 순방향, 역방향, 양방향 움직임 보상 예측부호화 중 어느 것이 가장 효과적인가에 따라 그 매크로블록의 예측 방향을 결정한다.
▷ 또한 이와 같이 결정된 움직임 보상을 포함하는 예측부호화에 의한 효과를 예측하여 화면간 부호화를 할지, 화면내 부호화를 할지를 결정한다.
3.2 DCT 및 양자화
3.2.1 DCT 및 IDCT
□ MPEG-1에서는 공간적 중복성을 제거하기 위해 2차원 DCT(Discrete Cosine Transform)를 사용한다. DCT는 8×8 크기의 블록에 대해 하는데, 하나의 매크로블록에는 4개의 8×8 휘도블록과 각각 1개씩의 8×8 Cb, Cr 색도블록이 있다.
□ 부호기에는 DCT 모듈과 IDCT(Inverse DCT, 역 DCT) 모듈이 포함되어 있다. 부호기에서는 DCT 결과를 다시 IDCT 하여 예측을 위한 기준 화면으로 사용하고 있기 때문에, 복호기의 IDCT 모듈과 계산 결과가 일치해야 한다. 만일 오차가 발생한다면 오차가 누적되는 문제가 발생하게 된다. 따라서 IDCT의 정확성이 매우 중요하다.
3.2.2 양자화 및 역 양자화
□ DCT 변환 계수는 양자화를 함으로써 부호량을 줄인다.
□ 사람의 시각은 고주파 성분일수록 양자화 오차에 둔감한 특성을 가지고 있어, 고주파 계수에 대해 양자화 간격이 큰 양자화기를 사용하는 것이 유리하다.
□ 양자화 가중 행렬은 이러한 목적으로 사용할 수 있다. [그림14]의 가중 행렬은 DCT 계수 위치별 가중치를 담고 있는데, 좌측 상단 모서리가 DC성분 계수에 대한 것이고, 우측/하단으로 갈수록 고주파 성분에 대한 것이다. [그림14]는 표준 양자화 가중치 행렬로서, 부호기 설계자가 변경하여 사용할 수도 있다.
□ 부호화 과정에서 비트율이 너무 높아지면 양자화기 비율(quantizer scale)을 조절하여 비트율을 낮출 수 있다. 양자화기 비율은 양자화 가중치 행렬의 값을 전체적으로 변화시키는데, 양자화기 비율을 크게 하면 비트율을 낮출 수 있는 대신 화질이 나빠진다.
3.3 엔트로피 부호화
□ 양자화된 DCT 변환계수는 여러 가지 부가정보와 함께 엔트로피 부호화를 하게 된다.
□ 움직임 벡터는 이전 매크로블록의 움직임 벡터 정보와의 차이를 부호화한다.
□ DCT 변환 계수는 저주파 성분으로부터 고주파 성분 방향으로 지그재그 주사 순서에 따라 나열하여 연속길이 부호화 형태의 가변길이 부호화를 하는 2차원 VLC를 한다.
▷ (li, ci) : li는 계수값이 0인 계수의 연속 길이, ci는 0이 아닌 계수 값
□ 화면내 부호화 매크로블록의 경우 DC성분은 별도로 예측 부호화를 하는데, [그림16]과 같은 휘도(Y) 및 색도(Cb, Cr) 블록의 순서로 DC 성분들의 차를 구하여 부호화한다. 그리고 이 DC성분들은 지그재그 주사할 때는 제외된다.
3.4 부호화율 제어
□ 부호기는 복호기의 입력 버퍼에서 오버플로(overflow)나 오버플로(overflow)가 발생하지 않도록 비트율을 제어할 필요가 있다. 이때 가용한 총 비트율을 화면에 따라 적절히 분배하여 화질을 극대화 한다.
□ 화면열 내에서의 비트율 조정
▷ GOP 내의 화면 유형(I, P, B)에 따라 적절히 데이터의 양을 조절한다.
▷ 적절한 데이터 양 배분은 화면 내용에 따라 다르지만, MPEG 영상위원회의 작업 결과에 따르면 일반적인 화면에서는 B 화면의 약 2~5배의 비트를 P 화면에 할당하고, I 화면은 P 화면의 3배가량의 비트를 할당하면 좋을 결과를 얻을 수 있다고 제안하고 있다.
▷ 움직임이나 변화가 거의 없는 영상에서는 I 화면에 더 많은 비율을 할당하고, 움직임이나 변화가 많은 경우는 I 화면에 할당되는 비율을 감소시키고 P 화면에 할당되는 비율을 높인다.
□ 한 화면 내에서의 비트율 조정
▷ 버퍼의 상태에 따라 양자화기 비율을 변화시켜 양자화 간격을 조절한다.
․ 버퍼 상태가 오버플로 방향으로 움직이면 양자화기 간격을 증가시켜 데이터 양을 줄인다.
․ 버퍼 상태가 언더플로 방향으로 움직이면 양자화기 간격을 감소시킨다.
▷ 양자화기 간격을 증가시키는 것만으로 데이터 양이 충분히 감소하지 않으면 고주파 성분의 DCT 변환계수를 무시하고 저주파 성분만을 전송한다.
4. MPEG-1 영상 비트열의 데이터 구조
앞 절에서 논의한 부호화 기법에 따라 부호화된 비트열은 여러 가지 관련 속성 데이터와 함께 정해진 형식에 따라 표현된다. 이러한 표현 구조를 MPEG-1 영상 비트열의 구문구조(syntax)라고 한다. 본 절에서는 MPEG-1 구문구조의 개략적인 구성을 통해 부호화된 비트열의 표현 방식에 대한 개념을 이해하도록 한다.
□ 압축된 비디오 데이터는 MPEG-1 영상 비트열의 데이터 구조에 따라 표현된다.
□ MPEG-1 영상 데이터 구조는 시퀀스 층, GOP 층, 화면 층, 슬라이스 층, 매크로블록 층, 블록층의 계층 구조로 구성된다.
① 시퀀스 층
▷ 같은 속성을 갖는 일련의 화면 그룹
▷ 화면 크기, 프레임률, 양자화 가중 행렬 등이 헤더에 포함될 수 있다.
▷ GOP 층에서 정의되는 화면 그룹들이 포함된다.
② GOP 층
▷ 임의 접근의 단위가 되는 화면 그룹
▷ 시퀀스 선두로부터의 시간 등을 나타내는 데이터에 이어 화면 층에서 정의되는 화면들이 포함된다.
③ 화면 층
▷ 화면 부호화 모드(I, P, B 화면)와 같은 한 화면에 공통된 속성과 함께, 슬라이스 층에서 정의된 매크로블록 열의 집합에 대한 데이터가 포함된다.
④ 슬라이스 층
▷ 한 장의 화면을 임의 길이의 매클로블록 열의 집합으로 분할한 부분화면
▷ 양자화 특성 데이터와 같은 슬라이스의 공통 속성과 함께 매크로블록 층에서 정의하는 매크로블록들의 집합이 포함된다.
⑤ 매크로블록 층
▷ 16×16 크기의 매크로블록을 정의하는 층
▷ 움직임 벡터와 같은 매크로블록에 속한 픽셀 블록에 공통적인 정보와 함께 블록 층에서 정의하는 블록들의 집합이 포함된다.
⑥ 블록 층
▷ 8×8 크기의 블록에 대한 양자화된 DCT 변환계수들이 가변길이 부호화되며, EOB 코드로 종료된다.
▷ 단, 화면내 부호화 매크로블록인 경우 DC 계수는 별도의 VLC가 이루어진다. (그림16 참조)
정리하기
1. 요약정리
□ MPEG-1은 CD-ROM과 같은 저장 미디어를 기반으로 한 비디오 압축 표준으로, SIF 영상과 48KHz로 표본화된 음성을 1.5Mbits/sec의 비트율로 압축부호화 함으로써, VHS 비디오 화질을 제공하는 것을 목표로 하고 있다.
□ MPEG-1의 기본적인 필요 요건은 임의 접근성, 편집 가능성, 고속 순방향 탐색, 역방향 탐색 및 재생 기능, 음성-영상 동기화 등이다.
□ MPEG-1은 순차주사방식의 비디오 신호를 지원한다. 색 표현은 YCbCr 색 좌표계를 사용하며, 4:2:0 표본화 형식을 사용한다.
□ 한 화면은 16×16의 매크로블록으로 분할되며, 하나의 매크로블록은 4개의 휘도 블록과 각각 1개씩의 Cb, Cr 블록으로 구성된다. 매크로블록은 움직임 보상의 단위이다.
□ 몇 장의 연속적인 화면을 묶어 하나의 GOP를 구성하며, GOP는 직접접근 및 편집의 단위가 된다.
□ GOP에 속한 화면들은 I 화면, P 화면, B 화면으로 구분된다. I 화면은 해당 화면에 대한 데이터만으로 부호화되는 화면내 부호화를 한다. P 화면은 이전의 I 또는 P 화면으로부터 예측 부호화된다. B 화면은 하나의 I 또는 P 화면 쌍에 의해 양방향 예측/보간을 통해 부호화되는 화면이다.
□ B 화면은 앞 뒤의 I 또는 P 화면 쌍에 의해 움직임 보상 및 예측/보간을 하므로, 부호화된 비트열의 화면 순서 내에서 B 화면은 예측의 기준이 되는 I 및 P 화면 뒤에 배치된다.
□ 부호화된 비트열에는 움직임 벡터, 양자화기 비율, 매크로블록의 유형, 양자화된 DCT 변환계수 등의 정보가 포함된다. 복호기 및 부호기에는 B화면을 부호화하기 위해 두 장의 화면을 보관하기 위한 예측 메모리가 필요하다.
□ MPEG-1의 움직임 보상은 통상 반 화소 단위로 이루어진다. 움직임 추정 방식은 표준에 정의되어 있지는 않으며, 부호기 설계자에게 맡겨져 있다.
□ 공간적 중복성을 제거하기 위해 8×8 블록 단위로 DCT를 한다.
□ DCT 계수에 따라 다른 스케일로 양자화를 하기 위해 양자화 가중 행렬을 사용한다. 부호화 과정에서 비트율이 너무 높아지면 양자화기 비율을 사용하여 양자화 가중 행렬의 값을 전체적으로 변화시킬 수 있다.
□ 양자화된 DCT 변환계수는 저주파성분으로부터 고주파 성분 방향으로 지그재그 주사 순서에 따라 나열하여, 연속길이 부호화 형태의 2차원 VLC를 한다. 단, 화면내 부호화 매크로블록의 경우 DC 계수는 별도로 예측 부호화 한다.
□ 정해진 비트율 내에서 최적의 화질을 내기 위해서는 적절한 비트량 분배가 필요하다. GOP 화면열 내에서 비트량 배분은 I 화면, P 화면, B 화면 순으로 많은 비트량을 발생시키도록 한다.
□ 한 화면에 대한 비트율은 양자화 간격을 크게 또는 작게 하여 제어한다.
□ 압축된 비디오 데이터는 MPEG-1 구문구조에 따라 비트열로 표현된다. 이러한 MPEG-1 영상 데이터 구조는 시퀀스 층, GOP 층, 화면 층, 슬라이스 층, 매크로블록 층, 블록 층의 계층구조로 구성된다.
2. 참고자료
□ 정제창 역, 그림으로 보는 최신 MPEG, 교보문고, 1995.
□ 김재균 저, 영상통신시스템, 영지문화사, 2000.
'정보과학 > 영상통신시스템' 카테고리의 다른 글
MPEG-4 Visual (2) (1) | 2023.10.05 |
---|---|
MPEG-4 Visual (1) (0) | 2023.10.04 |
영상 부호화를 위한 표준 (0) | 2023.09.20 |
영상 압축 (3) (0) | 2023.09.19 |
영상 압축 (2) (0) | 2023.09.18 |