23
1 Multimedia Communications Chapter 4 Video Compression Techniques (1) 아주대학교 정보및컴퓨터공학부 모바일 멀티미디어통신 연구실 (http://mmcn.ajou.ac.kr) 노병희 ([email protected]) Contents Video Compression Basics Video Compression Standards : H.26x H.261 H.263 MPEG Video Compression Standards MPEG-1 MPEG-2 (H.262) MPEG-4 H.264

04 Video

Embed Size (px)

Citation preview

Page 1: 04 Video

1

Multimedia Communications

Chapter 4Video Compression Techniques (1)

아주대학교 정보및컴퓨터공학부

모바일 멀티미디어통신 연구실 (http://mmcn.ajou.ac.kr)

노병희 ([email protected])

Contents

Video Compression BasicsVideo Compression Standards : H.26x

H.261H.263

MPEG Video Compression StandardsMPEG-1MPEG-2 (H.262)MPEG-4H.264

Page 2: 04 Video

2

동영상의 상관성 (Correlation)

동영상 (Moving Pictures or Video)짧은 시간 간격동안 순차적으로 표시되는 정지 화면들의 집합

• NTSC TV의 경우 : 화면간 시간 = 1/30 초• PAL TV의 경우 : 화면간 시간 = 1/25 초

화면간에는 물체 또는 카메라의 움직임등에 의하여 밝기의 변화가 발생.• 화면간의 짧은 시간 간격으로 인하여, 이웃한 영상간에는 상당히 높은 상관성이

존재

time

1/30 sec.

동영상 압축의 개요

동영상 압축의 기본적인 두단계 과정움직임 예측 (Motion Estimation)

• 동영상의 시간축에서의 프레임간의 상관성을 활용하여

• 현재 프레임의 일부(매크로블록)와 유사한 정보를 이전 프레임에서찾아냄

– 매크로블록의 크기 : 64x64 pixels– 64x64 블록의 각 픽셀의 정보를 개별 부호화 하는 대신에, 이와

유사한 이전 블록의 위치(motion)만을 전달하므로, 압축률이 매우크게 됨

움직임 보상 (Motion Compensation)• 이전 프레임에서 찾은 매크로블록과 현재 프레임의 매크로블록은

정확히 일치하지 않음

• 이 두 (이전과 현재의) 매크로블록들의 차이 신호를 DCT를 사용하여부호화 함

– 동영상의 프레임내에서의 공간상관성을 활용

– 원래 신호 보다 차이 신호값의 변화는 매우 작아서 양자화의이득이 커지게 되어, 압축률이 매우 크게 됨

Page 3: 04 Video

3

동영상에서 움직임의 정의

움직임 (Motion)동영상의 높은 상관성은 현재 화면에서의 pixel (또는 block)이 이전화면의 어느 위치에 대응되는지를 찾아내는 것이 가능

현재 화면에서의 pixel (또는 block)과 이전 화면에서 찾아낸 pixel (또는block)간의 위치는 같을 수도 있고, 다를 수도 있음

• 이러한 위치의 차이를 움직임 (motion) 이라고 함.• 움직임의 방향성을 함께 나타내는 것을, motion vector라고 함

움직임 예측을 위하여는 주로 pixel 보다는 block을 사용.

현재 화면에서의위치 (x1,y1)

이전 화면에서의위치 (x2,y2)

motion vector (x1-x2,y1-y2)

동영상에서 움직임의 정의

움직임 벡터

검색범위

움직임벡터

프레임 N

프레임 N+1

시간 tn

시간 tn+1

매크로블록Mk(tn)

매크로블록Mk(tn+1)

매크로블록Mn(tn+1)

Page 4: 04 Video

4

움직임 벡터 (Motion Vector) - 예

이전영상 현재영상

움직임 벡터 (Motion Vector) - 예

오차영상움직임 벡터

Page 5: 04 Video

5

움직임 벡터 산출 방법

대표적 움직임 벡터 산출 방법들PRA (Pel Recursive Algorithm)

• pixel 단위로 움직임을 예측

– 블럭단위로 수행되는 부호화 방법을 이용할 수 없으므로, 예측오차의 부호화 효율이 떨어짐.

– 복잡도가 증가

BMA (Block Matching Algorithm)• block 단위로 움직임을 예측

• 블록을 매칭시켜가는 절차

– full search method • 현재 영상의 블록과 이전영상에서 탐색영역내의 모든

블럭들을 비교하여 최소의 오차를 갖는 이전영상에서의블록을 찾아냄.

– 2-D logarithmic search– 3-step search

움직임 벡터 산출 방법

예1: full search

64

64

현재프레임의 한매크로블록

이전 프레임

- 첫번째 픽셀을 기준으로 하는 64x64 블록에대하여 현재MB와 차이값 d(1,1) 을 구함.

- 다음 픽셀을 기준으로 하는 블록과 비교한차이값들 d(1,2), ... ,d(H,V)를 구함

H: horizontal image size

V: vertical image size

- d(1,1) ~ d(H,V) 중 최소값을 갖는 블록의위치와 현재MB의 위치와의 차이를 움직임벡터로 정의함

( )∑∑= =

−=64

1

64

1

2),(),(i j

jiyjixd

y(i,j)

x(i,j)

d(1,1) d(1,2) d(1,3)

d(2,1)

d(3,1)

Page 6: 04 Video

6

움직임 벡터 산출 방법

예2: 3-step search탐색영역 p=6인 경우

3번의 단계만에 움직임

벡터를 결정

주어진 위치를 중심으로

각각 n만큼 떨어진

주변 9개에 대하여

블럭내 pixel차이값이

최소가 되는 위치 선정

이 위치에서 이전보다는

탐색거리가 줄어든

주변 9개에 대하여

동일한 방법 적용

세번의 단계까지 반복

왼쪽예에서의

움직임 벡터는

(-5,+3)이다.

y

x x+6x-6y-6

y+6

(x,y)

(x+5,y-3)

블록 기반 부호화 방식

블록 기반 부호화 (Block-based coding)n×n 블록 크기 ∝ 계산량

• 대부분의 동영상은 8×8 혹은 16×16 블록단위의 부호화

기본 기법

• 움직임 예측 (Motion Estimation)– 이전 프레임에서 현재 프레임의 블록과 가장 유사한 블록의 위치

를 찾음

– 이로부터 상대적 움직임 벡터(Motion vector)를 구함

• 움직임 보상 (Motion Compensation)– MV를 이용하여 이전 프레임에서 해당 블록을 가지고 임시영상을

구성함

– 임시영상과 원래영상의 차이영상을 만듬

– 차이영상에 대하여 DCT 부호화 함

단점

• Blocking artifact– 블록간의 경계가 보이는 현상

Page 7: 04 Video

7

움직임 예측 및 보상 부호화기 구조

움직임 예측 및 보상이 결합된 일반적인 동영상 부호화기모델

DCTInverseQuant.

IDCT

화면간예측부분

변환 부호화 부분 (화면내 부호화)

움직임 예측 신호(움직임 벡터)

예측 오차 신호(움직임 보상)

재생영상

+

+

+

Quantizer

MotionEstimator

FrameMemory

움직임 예측 및 보상 부호화기 구조

부호화 과정 (1/3)

부호화할 현재프레임

현재 프레임을16x16크기의매크로블록단위로 구분

이전 프레임 매크로블록별로움직임벡터를

계산

이전프레임에서 움직임벡터에 해당하는

매크로블록으로 영상 구성

차이영상을만듬

(1)

(2) (3)

(4)

Page 8: 04 Video

8

움직임 예측 및 보상 부호화기 구조

부호화 과정 (2/3)

차이영상을8x8 크기의블록 단위로

구분

이전 프레임을참조하여

만들어진 영상

8x8 블록별처리

현재 프레임을 복원한영상으로서 이 다음 프레임의

부호화시의 움직임 벡터 산출의기준이 됨

차이영상

(1) (2) (3)

(4)

DCT Quant.

InverseQuant

IDCT

움직임 예측 및 보상 부호화기 구조

부호화 과정 (3/3)

EntropyCoding

DCT/양자화

DCT와양자화된 값

움직임벡터

압축된비트스트림

Page 9: 04 Video

9

움직임 예측 및 보상 복호기

복호화기(Decoder) 구조

InverseQuant. IDCT

재생영상메모리움직임 예측 신호

(움직임 벡터)

차이 신호(움직임 보상)

재생영상

++

움직임 벡터 와 차이 영상

차이영상을 사용하는 잇점

현재프레임의 원래 영상 현재프레임과 이전프레임의 차이 영상

Page 10: 04 Video

10

H.261 개요

H.261Video codec for audiovisual services at p x 64 kbit/s

H.261 개요

H.261 개요개요

• ISDN 회선 교환망을 통한 영상 전화 또는 영상 회의 응용을 위하여제정된 최초의 비디오 압축 표준

• ITU-T에 의하여 1989년 12월 H.261 표준안 제정됨

특징

• 비디오의 압축과 부호화기법에 대한 표준으로서 높은 압축률과실시간 압축을 지원

• 전송율 : px64 kbps, p=1,2,…30 (ISDN 환경에 적합)– “px64 방식”으로 불리어지기도 함

• p=1,2 : 데스크 탑 화상 회의 시스템(비디오 폰)에 적용

• p>5 : 비디오 컨퍼런싱같은 복잡한 화상도 전송 가능

– 64Kbps ~ 2Mbps의 속도 영상 전송을 목표로 하므로 방송 품질확보 불가능

• 100:1에서 2000:1까지의 높은 압축율을 제공함

Page 11: 04 Video

11

H.261 개요

H.261 압축 방식 개요영상 중복성의 제거

• 시간 중복성 제거 : 화면간 움직임 예측 기법을 사용

• 공간 중복성 제거 : DCT변환 기법을 사용

2개의 영상 데이터 압축 모드 지원

• INTRA 프레임 방식

– 입력 화면이 다른 화면과는 독립적으로 DCT부호화 됨

– MPEG의 I-화면 부호화, 또는 JPEG 부호화 방식과 유사

• INTER 프레임 방식

– 이전 화면을 참조한 화면간 움직임 예측 및 보상 방법을 사용하여부호화 함

– MPEG의 P-화면과 유사

통계 모드

• 허프만 부호화에 기초한 가변길이 부호화 (VLC)를 수행

H.261 개요

Inter 프레임과 Intra 프레임

intra inter

이전 또는 이후 프레임들과 상관없이 부

호화됨

inter inter inter inter intra inter

이전 프레임을 참조한 움직임예측을 통하여 부호화됨

이전 프레임을 참조함으로써 오류가 계속 누적되

게 됨일정 시간마다 intra 프레임을 적용함으로써 오류 누적 가능성을 줄임

* H.261에서는 132 프레임내에 적어도1회는 intra를 적용하도록 하고 있음

Page 12: 04 Video

12

H.261 개요

H.261 압축 방식 개요 (cont’d)입력 영상의 크기

• NTSC와 PAL의 중간 형태인 CIF 화면 크기 결정

• CIF 또는 QCIF 만 대상으로 함.

CIF (width x height)

QCIF (width x height)

Y 352 x 288 176 x 144

Cb 176 x 144 88 x 72

Cr 176 x 144 88 x 72

H.261 부호화기/복호화기 구조

H.261 영상 부호기 및 복호기의 블록도

정보원부호기

영상신호다중화기

송신버퍼전송

부호기

전송복호기

수신 버퍼영상신호

역다중화기정보원복호기

부호화 제어

부호화된비트열

영상신호

Page 13: 04 Video

13

H.261 부호화기 구조

H.261 부호화기(encoder) 구조

⊕Video Input

FrameMemory

+−

2DDCT

Coding Control

VLC Multiplexer& Buffer

Motion vector

+ ⊕

Quantizer

InverseQuantizer

InverseDCT

+

LoopFilter

MotionEstimator

VLC

Inter/Intra FlagQuantizer indication

Intra

Inter

Inter

Intra

No MC

MC

H.261 데이터 블록 구조

352 Pixels

GOB 1

GOB 3

GOB 2

GOB 11 GOB 12

288

Pix

els

Picture

MB1 MB2 MB11

MB22

MB33

MB12

MB23

176 Pixels

48P

ixel

s

Y CB CR

Macro-Block (4:2:0)

Y1 Y2

Y3 Y4

8 pels

8 pe

ls

Group of Block

Block

– 블록 (block) : 8x8 pixels– 매크로 블록 (macro block) : 블록 4개로 구성 (16x16 pixels)– 블록 그룹 (Group of Block) : 33개의 매크로 블록으로 구성

– 픽쳐 (picture) : 영상의 한 화면

Page 14: 04 Video

14

H.261 데이터 블록 구조

비트열의 계층별 데이터 구조

PSC PTYPETR PEI PSPARE GOB Layer

GBSC GQUANTGN GEI GSPARE

Macro-block Layer

Picture Layer

GOB (Group of block) Layer

Macroblock Layer (Next Slide)fixed length

variable length

H.261 데이터 블록 구조

비트열의 계층별 데이터 구조 (cont’d)

MBA 채워넣기

MBA MTYPE MQUANT

MVD

CBP

Block Layer

CBPMVD

TCOEFF EOB

Macro block Layer

Block Layer

fixed length

variable length

Page 15: 04 Video

15

H.261 - 발생 데이터량 제어

H.261의 기본 부호화 비트율CIF는 256 kbps, QCIF는 64 kbps로 정해져 있음

그러나, 부호화된 데이터는 영상의 복잡도나 움직임의 크기에 따라발생 데이터량이 변화하게 됨

일정한 전송속도를 유지하기 위하여는 이러한 발생 데이터량의변동을 제어하여야 함

기본적인 발생 데이터량 제어 방법양자화 스텝크기(QUANT)를 조절함

• QUANT는 DCT 변환계수를 양자화 시키는 간격의 1/2 임• QUANT값이 커지면, 양자화 간격이 커지므로, DCT 계수의 부호화

비트수가 감소하여, 전체 데이터량이 줄어듬

• QUANT가 작아지면, 전체 데이터량이 크게됨

송신버퍼의 점유상황을 지속적으로 모니터링 하여 조절함

• 발생 데이터량이 전송률보다 작으면, 버퍼가 고갈됨 (underflow)• 발생 데이터량이 전송률보다 크면, 버퍼가 넘치게 됨 (overflow)

H.263Video coding for low bit rate communicationAnnex A~H

H.263v2 (H.263+)H.263 Annex I~T, X

H.263v3 (H.263++)H.263 Annex U,V,W,X

Page 16: 04 Video

16

H.263 개요

H.263 표준 개요H.261 구조를 기반으로 하고 있음

64Kbps 이하의 전화선 또는 무선 환경에서의 저전송율 통신을 위한영상 부호화 표준으로 제시

• ITU-T 권고안 H.263 - video coding for low bit rate communication, 1996

• 현재는 저 전송율뿐만 아니라, 폭 넓은 전송율에도 적용됨

• H.261과 MPEG 부호화 방식과도 경쟁 가능한 기법으로 인정됨

H.261과의 비교

• H.261과 MPEG-1의 특징들을 결합하여 저전송률을 이룸

– MPEG-1에 비하여 30%의 전송율 감축을 이룸

• H.261 기법을 기반으로 하고 있으나, 여러 개선된 방법을 사용함으로써H.261보다 향상된 성능을 갖음

H.263의 주요 특징

H.263의 영상 크기영상 규격

• H.261에서의 CIF, QCIF외에 4CIF, 16CIF, sub-QCIF 규격 추가 지원

밝기 신호 (Y) 색도 신호 (Cb, Cr) 영상 규격

수평 해상도 수직 해상도 수평 해상도 수직 해상도

sub-QCIF 128 96 64 48

QCIF 176 144 88 72

CIF 352 288 176 144

4CIF 704 576 352 288

16CIF 1408 1152 704 576

Page 17: 04 Video

17

H.263의 주요 특징

GOB StructureCIF의 경우

GOB (Group Of Block)

MB(Macroblock)

Block8

8

16

16

Y Cr Cb

Picture

1 2 3 4 19 20 21 22

17161514131211109876543210

352288

H.263의 주요 특징

Motion Compensation16x16 단위와 8x8 블록 단위의 움직임 예측

Half pixel 단위의 정밀도를 갖는 움직임 보상 방법

• 1단계로 pixel 단위로 수행

• 2단계로 1/2 화소 단위로 수행

– H.261은 full pixel 단위이고, loop filter를 사용함.

Aa

B

DC

dc

b 화소 위치

반 화소 위치

a = A, b = (A +B)//2

c = (A+C)//2, d = (A +B +C +D)//4

Page 18: 04 Video

18

H.263의 주요 특징

Motion Vectors 의 부호화주위 3개의 MB에 대한 MV들을 이용하여 구해진 예측값과의차이값을 전송함으로써 비트율을 낮춤

MV : 현재 MB의 움직임 벡터

: 픽처 또는 GOB의 경계

MV

MV3MV2

(0,0)

(b)

MV

MV3MV2

MV1

(a)

MV

MV1MV1

MV1

(c)

MV

(0,0)MV2

MV1

(d)

( )( )yyyy

xxxx

3,2,13,2,1

MVMVMVMedianPMVMVMVMedianP

=

=

yyy

xxx

PMVMVDPMVMVD

−=−=

H.263의 주요 특징

PB-프레임 모드MPEG에서와 같이 두개의 픽쳐를 사용하여 양방향 예측을 사용

• 두 화면(B’과 P’)은 마치 하나의 화면처럼 P-화면의 대블록, B-화면의대블록이 번갈아가며 부호화됨

– 이 모드에서 MB는 P block 6개와 B block 12 block으로 구성됨

• Block 전송시 P block을 먼저 다 보내고, 이어서 B block을 보냄

– 디코더에서는 B block을 오는대로 재생하고, P block은 버퍼에 저장후 B picture 후에 재생함

– 디코더에서 B-픽쳐를 기다리는데 걸리는 지연시간을 줄임

비트율을 크게 증가시키지 않으면서도 화면율을 높임

P P’B’

PB-프레임

Page 19: 04 Video

19

H.263의 주요 특징

기타 H.263의 선택적 기능들Continuous Presence Multipoint 와 Video Multiplex mode

• 한 video channel에 4개까지 분리된 “sub-bitstream” 제공

• multipoint 통신 응용이나, 채널을 논리적으로 분리할수 없을때

Advanced Prediction mode• 픽쳐내의 매크로 블록중 Y신호에 대하여 일부를 16x16 크기 대신,

8x8 크기를 사용함으로써 예측의 성능을 높임.– 매크로블럭당 4개의 움직임 벡터를 사용하게 되므로 비트량은

많아지나, 예측 성능은 월등히 향상됨

Advanced Intra Coding ModeDeblocking Filter Mode

• 움직임 보상된 화면에 대하여 블록 경계 효과 감소 필터링 적용

H.263의 주요 특징

기타 H.263의 선택적 기능들supplemental enhancement information mode

• 복호기측에서 보다 다양한 화면 표시를 지원하기 위함

– 화면정지, 순간적 화면 포착, 영상 시간 분할, 점진적 세밀화등

modified quantization modeunrestricted motion vector mode

• 움직임 예측시 참조 범위를 확장

– 영상의 경계를 따라 움직임이 있거나, 카메라의 움직임과 같은전역 움직임이 있는 영상 화면들에서 효과적임

scalability mode• 한 개의 송신영상에 대하여 복호기와 전송로에 따라 여러가지 화질의

재생 영상을 얻을 수 있게 함.– base layer와 enhanced layer로 구성

Page 20: 04 Video

20

H.263 부호화기(encoder) 구조

H.263 부호화기

부호화 제어

DCT 양자화기

역양자화기

IDCT

예측메모리

입력

비디오

p : 프레임내/프레임간 플레그

t : 전송/비전송 플레그

qz : 양자화 파라메터 정보

q : 양자화된 DCT 계수 정보

v : 움직임 벡터

ON

ON

OFF

OFF

H.263 복호화기(decoder) 구조

H.263 복호화기

역양자화기 IDCT

예측메모리

출력

비디오

프레임내/프레임간 플레그 (p)

전송/비전송 플레그 (t)양자화 파라메터 정보 (qz)

양자화된 DCT 계수 정보 (q)

움직임 벡터 (v)

ONOFF

Page 21: 04 Video

21

H.263+ (H.263 Version 2)

H.263+H.263에 새로운 Option 기능들을 추가

Option 기능들에 대한 효과적인 조합을 추천하여 부호화 성능을더욱 향상 시킬 수 있도록 함

• Level 1– advanced intra coding mode, deblocking filter mode, supplement

enhancement information mode, modified quantization mode• Level 2

– unrestricted motion vector mode, slice structured mode, reference picture resampling mode

• Level 3– advanced prediction mode, PB-frame mode, independent segment

decoding mode, alternative inter VLC mode• 상위 레벨은 하위레벨의 조합을 포함함.• 상위레벨로 갈수록 구현 복잡도가 높으나, 성능 향상이 우수

H.263++ (H.263 Version 3)

H.263++H.263+에 여러가지 발전된 기술들을 추가한 저 전송율 동영상부호화 표준

H.263++에서 추가되는 기능들

• 오류극복형 데이터 구분(error resilient data partitioning)

• 개선형 참조화면 선택 기법(enhanced reference picture selection)

• 다차계수 움직임 보상(affine motion compensation)

• 적응식 양자화

• DCT 역변환 왜곡 감소(mismatch reduction)

• 블록 경계효과 감소 필터(deblocking/deringing filter)

• 오류 은닉(error concealment)

Page 22: 04 Video

22

H.263 표준

H.263Annex A - Inverse transform accuracy specification Annex B - Hypothetical Reference Decoder Annex C - Considerations for Multipoint Annex D - Unrestricted Motion Vector mode Annex E - Syntax-based Arithmetic Coding mode Annex F - Advanced Prediction mode Annex G - PB-frames mode Annex H - Forward Error Correction for coded video signal

H.263 표준

H.263+ (version 2)Annex I - Advanced INTRA Coding mode Annex J - Deblocking Filter mode Annex K - Slice Structured mode Annex L - Supplemental Enhancement Information Specification Annex M - Improved PB-frames mode Annex N - Reference Picture Selection mode Annex O - Temporal, SNR, and Spatial Scalability mode Annex P - Reference picture resampling Annex Q - Reduced-Resolution Update mode (see implementors' guide correction as noted below) Annex R - Independent Segment Decoding mode Annex S - Alternative INTER VLC mode Annex T - Modified Quantization mode Annex X - Profiles and levels definition

Page 23: 04 Video

23

H.263 표준

H.263++ (version 3)Annex U - Enhanced reference picture selection mode Annex V - Data-partitioned slice mode Annex W - Additional supplemental enhancement information specification Annex X (originally specified in 2001) - Profiles and levels definition

Q&A