510 likes | 803 Views
10 장 기본 비디오 압축 기술. 10.1 비디오 압축 소개 10.2 움직임 보상에 기반한 비디오 압축 10.3 움직임 벡터를 위한 탐색 10.4 H.261 10.5 H.263. 10.1 비디오 압축 소개. 비디오는 시간 - 순서화된 프레임의 연속 ( 즉 , 영상 ) 으로 구성 . 비디오 압축에 대한 분명한 해결책은 이전 프레임에 기초한 예측 부호화 일 것임 . 압축은 영상들을 감산함으로써 진행 : 시간 순서대로 감산하고 , 나머지 오류를 부호화함 .
E N D
10장 기본 비디오 압축 기술 10.1 비디오 압축 소개 10.2 움직임 보상에 기반한 비디오 압축 10.3 움직임 벡터를 위한 탐색 10.4 H.261 10.5 H.263 멀티미디어시스템
10.1 비디오 압축 소개 • 비디오는 시간-순서화된 프레임의 연속(즉, 영상)으로 구성. • 비디오 압축에 대한 분명한 해결책은 이전 프레임에 기초한 예측 부호화 일 것임. • 압축은 영상들을 감산함으로써 진행: 시간 순서대로 감산하고, 나머지 오류를 부호화함. • 그것은 이전 프레임으로부터 감산하기 위한 영상의 올바른 부분을 찾기 위한 검색을 함으로써 훨씬 더 잘 수행할 수 있음. 멀티미디어시스템
10.2 움직임 보상에 기반한 비디오 압축 • 비디오에서 연속적인 프레임들은 유사함 ᅳ 시간 중복성이 존재. • 시간 중복성(temporal redundancy)은 비디오의 매 프레임을 새로운 영상으로써 독립적으로 부호화되는 것을 필요하지 않게 함. • 영상의 연속에서 현재 프레임과 다른 프레임(들)간의 차분이 부호화 될 것임 ᅳ 압축하기에 좋은, 작은 값과 낮은 엔트로피. • 움직임 보상(MC: Motion Compensation)을 기반한 비디오 압축의 단계 1. 움직임 예측(움직임 벡터 탐색) 2. 움직임 보상 기반 예측 3. 예측 오류의 유도, 즉, 차분 멀티미디어시스템
움직임 보상 • 각 영상은 N×N 크기의 매크로블럭(macroblocks)으로 나누어짐. • 기본적으로 휘도 영상을 위해서는 N = 16임. 만약 4:2:0 색도 부표본화가 채택되면, 색도 영상을 위해서는 N = 8임. • 움직임 보상은 매크로블럭 레벨에서 수행. • 현재의 영상 프레임은 목표 프레임(Target frame)으로써 불림. • 매치는 목표 프레임에서 고려중인 매크로블럭과 이전 그리고/혹은 나중 프레임(들)(참조 프레임(Reference frame)(들)으로 불리는)에서 가장 유사한 매크로블럭 사이에서 찾음. • 참조 매크로블럭의 목표 매크로블럭에 대한 변위를 움직임 벡터 MV로 불림. • 그림 10.1은 참조 프레임이 이전 프레임으로 선택된, 순방향 예측(forward prediction)의 경우를 보여줌. 멀티미디어시스템
그림 10.1: 비디오 압축에서의 매크로블럭과 움직임 벡터 • MV 탐색은 보통 작고 인접한 이웃들로 제한됨 ᅳ 수평 및 수직 변위는 [-p, p]범위 안에 있음. 이것은 (2p+1)×(2p+1) 크기의 탐색 윈도우를 만듬. 멀티미디어시스템
10.3 움직임 벡터를 위한 탐색 • 두 매크로블럭 사이의 차분은 평균 절대 오차(MAD: Mean Absolute Difference)에 의해 측정될 수 있음: N - 매크로블럭의 크기, k와 l - 매크로블럭에서 화소를 위한 인덱스들, i와 j - 수평과 수직 변위, C(x+k, y+l) - 목표 프레임의 매크로블럭에 있는 화소들, R(x+i+k, y+j+l) - 참조 프레임의 매크로블럭에 있는 화소들. • 탐색의 목적은 MAD(i, j)가 최소값인 경우의, 움직임 벡터 MV = (u, v)로써 벡터(i, j)를 찾는 것임. 멀티미디어시스템
순차 탐색 • 순차 탐색(sequential search): 참조프레임에서 전체 (2p+1)×(2p+1)윈도우를 순차적으로 탐색하는 것.(또한 전역 탐색(Full search)으로 불림) • 윈도우 안에서 각 위치의 중심에 위치한 매크로블럭은 화소 단위로 목표 프레임 안에 있는 매크로블럭과 비교되고, 각각의 MAD는 식(10.1)을 사용하여 유도됨. • 가장 작은 MAD를 제공하는 벡터(i, j)가 목표 프레임의 그 매크로블럭을 위한 MV(u, v)로 선정됨. • 순차 탐색 방법은 아주 많은 비용이 듬. ᅳ 각 화소 비교는 세 가지 연산(뺄셈, 절대값, 덧셈)을 요구. 따라서 한 매크로블럭을 위해 움직임 벡터를 얻기 위한 비용은 (2p+1)ㆍ(2p+1) ㆍN2ㆍ3 ⇒ O(p2N2)임. 멀티미디어시스템
절차 10.1 움직임 벡터 : 순차 탐색 멀티미디어시스템
2차원 대수적 탐색 • 대수적 탐색(logarithmic search): 차선이지만 여전히 효과적으로 더 저렴한 버전. • 움직임 벡터의 2차원 대수적 탐색을 위한 절차는 여러 번의 반복이 필요하고 이진 탐색과 유사함. • 그림 10.2에서 설명한 것처럼, 탐색 윈도우에서 오직 초기의 9개 위치만이 MAD-기반 탐색을 위한 시작점으로써 사용됨; 그들은 ‘1’로써 표시됨. • 최소 MAD를 초래하는 한 위치가 찾아지면, 새로운 탐색영역의 중심이 그 곳으로 옮겨지고, 단계-크기(step-size)(“오프셋(offset)”)는 반으로 줄어듬. • 다음 반복에서, 9개의 새로운 위치는 ‘2’로써 표시됨. 기타 등등. 멀티미디어시스템
그림 10.2: 움직임 벡터를 위한 2차원 대수적 탐색 멀티미디어시스템
절차 10.2 움직임 벡터 : 2차원 대수적 탐색 멀티미디어시스템
이전의 하부절에서처럼 같은 예를 사용하면, 초당 전체 연산은 아래의 값으로 떨어짐: 멀티미디어시스템
계층적 탐색 • 움직임 벡터를 위한 탐색은 움직임 벡터의 초기 예측을 상당히 해상도를 줄이는 영상으로부터 얻을 수 있는 계층적(다중해상도: multiresolution) 접근으로부터 이익을 얻을 수 있음. • 그림 10.3: 원본영상이 레벨 0에 있는 3-레벨 계층적 탐색을 묘사하고 있는데, 레벨 1과 2에 있는 영상은 2의 인수로 이전 레벨로부터 다운샘플링을 함으로써 얻을 수 있고, 초기 탐색은 레벨 2에서 수행됨. 매크로블럭의 크기가 더 작아지고, p 또한 비례적으로 줄어들기 때문에, 요구되는 연산의 수는 크게 줄어듬. 멀티미디어시스템
그림 10.3: 움직임 벡터를 위한 3-레벨 계층적 탐색 멀티미디어시스템
계층적 탐색(계속) • 주어진 레벨 k에서 예측된 움직임 벡터(uk, vk)에 대해, 정렬된 움직임 벡터를 찾기 위해 레벨 k-1에서 (2ㆍuk ,2ㆍvk)에 중심으로 한 3×3 이웃들이 탐색됨. • 정렬은 움직임 벡터 (uk-1, vk-1)의 레벨 k-1에서 다음을 만족시킴: • ( , )가 목표 프레임에서 레벨 k에 있는 매크로블럭의 중심을 나타내게 가정. 목표 프레임에서 ( , )가 중심인 매크로블럭을 위한 계층적 움직임 벡터 탐색을 위한 절차는 다음과 같이 요약될 수 있음:
절차 10.3 움직임 벡터 : 계층적 탐색 멀티미디어시스템
표 10.1 예제에 따른 움직임 벡터 탐색 방법의 계산 비용에 대한 비교 멀티미디어시스템
10.4 H.261 • H.261: 초기의 디지털 비디오 압축 표준으로서, 움직임 보상 기반 압축의 주요 방식은 나중의 모든 비디오 압축 표준에서 계속 사용했음. • 그 표준은 비디오 폰, 화상 회의 및 ISDN 전화망에서의 다른 오디오비주얼 서비스를 위해 설계되었음. • 비디오 코덱은 p×64kbps의 비트율을 지원하는데, 여기서 p는 1에서 30까지의 범위를 가짐.(그러므로 p×64로도 알려져 있음) • 표준은 150msec 이하의 비디오 부호화기 지연을 요구하고, 비디오는 실시간 양방향 화상 회의를 위해 사용될 수 있었음. 멀티미디어시스템
ITU 권고안 & H.261 비디오 형식 • H.261은 시각적 전화통신 시스템을 위한 아래의 ITU 권고안 집합에 속함. 1. H.221 ᅳ 64에서 1,920kbps를 지원하는 오디오비주얼(audiovisual) 채널을 위한 프레임 구조. 2. H.230 ᅳ오디오비주얼 시스템을 위한 프레임 제어 신호들. 3. H.242 ᅳ오디오비주얼 통신 프로토콜. 4. H.261 ᅳ p×64kbps에서 오디오비주얼 서비스를 위한 비디오 부호화기(encoder)/복호화기(decoder). 5. H.320 ᅳ p×64kbps 전송을 위한 협대역(narrow-band) 오디오비주얼 단말 장치. 멀티미디어시스템
표 10.2 H.261에 의해 지원되는 비디오 형식 멀티미디어시스템
그림 10.4: H.261 프레임 순서 멀티미디어시스템
H.261 프레임 순서 • 두 가지 형태의 영상 프레임이 정의: 인트라-프레임(I-프레임)과 인터-프레임(P-프레임): • I-프레임들은 독립적인 영상으로 취급. JPEG과 비슷한 변환 부호화 방법은 각 I-프레임 내에서 적용. 따라서 그 이름이 “인트라”임. • P-프레임은 독립적이지 않음: 순방향 예측 부호화 방법에 의해 부호화됨.(이전 P-프레임으로부터 예측이 허용됨 ᅳ 이전 I-프레임으로부터가 아니라) • P-프레임 부호화에는 시간 중복성 제거(temporal redundancy removal)가 포함되고, 그에 반해 I-프레임 부호화에는 오직 공간 중복성 제거(spatial redundancy removal)만을 수행함. • 부호화 오류의 전파를 피하기 위해, 일반적으로 I-프레임은 비디오의 각 초마다 두 번 보냄. • H.261에서 움직임 벡터는 항상 완전 화소 단위로 측정되고 ±15화소의 제한된 범위를 가짐. 즉, P=15. 멀티미디어시스템
프레임 내(I-프레임)부호화 그림 10.5: I-프레임 부호화 • 매크로블럭은 Y 프레임에 대해서는 16×16 화소 크기. Cb와 Cr 프레임에 대해서는 4:2:0 색도 서브샘플링이 사용되기 때문에 8×8 화소 크기에 해당함. 하나의 매크로블럭은 각각 8×8 크기를 갖는 4개의 Y 블럭, 1개의 Cb 블럭, 1개의 Cr 블럭으로 구성됨. • 각 8×8 블럭에 대해 DCT 변환이 적용. DCT 계수는 양자화 단계를 거친 후 지그재그 주사되고 엔트로피 부호화 됨. 멀티미디어시스템
프레임 간(P-프레임) 예측 부호화 • 그림 10.6은 움직임 보상에 기반하여 H.261 P-프레임 부호화 방식을 보여줌: • 목표 프레임의 각 매크로블럭을 위해, 움직임 벡터는 앞에서 논의된 탐색 방법 중의 하나에 의해 할당됨. • 예측 후에, 차분 매크로블럭(difference macroblock)은 예측 오차를 측정하기 위해 얻어짐. • 이 각각의 8×8 블럭은 DCT, 양자화, 지그재그 주사, 그리고 엔트로피 부호화 과정을 거침. 멀티미디어시스템
P-프레임 부호화는(목표 매크로블럭 자체가 아니라) 차분 매크로블럭을 부호화함. • 때때로, 좋은 매치가 발견되지 않을 수도 있음. 즉, 예측 오차는 받아들일 수 있게 정해진 수준을 넘어섬. • 매크로블럭 그 자체로 부호화되고(인트라 매크로블럭으로 취급됨), 이 경우에 그것을 움직임 보상이 안된(non-motion compensated) 매크로블럭이라 부름. • 움직임 벡터를 위한 차분 MVD는 엔트로피 부호화를 위해 보내짐: 멀티미디어시스템
그림 10.6: 움직임 보상 기반 H.261 P-프레임 부호화 멀티미디어시스템
H.261에서의 양자화 • H.261에서 양자화는 한 매크로블럭 안에서 모든 DCT계수를 위해, 일정한 단계_크기(step_size)를 사용. • 만약 양자화 전과 후의 DCT 계수를 표현하기 위해 DCT와 QDCT를 사용한다면, 인트라 모드에서 DC 계수들을 위한 것은 다음과 같음: 다른 모든 계수를 위해서는 다음 식과 같음: scale – [1, 31] 범위 안에 있는 정수 멀티미디어시스템
H.261 부호화기와 복호화기 • 그림 10.7은 H.261 부호화기와 복호화기가 어떻게 동작하는지를 비교적 자세한 그림으로 보여줌. 시나리오는 프레임 I, P1및 P2가 부호화되고 그 후에 복호화되는 것을 이용함. • 주목 : 복호화된 프레임(원 프레임이 아니라)은 움직임 예측에서 참조 프레임으로 사용됨. • 동그라미 처져있는 숫자로 표시되어 관찰 포인트를 통과하는 데이터는 표 10.3과 10.4에 요약되어 있음. 멀티미디어시스템
그림 10.7: H.261 부호화기와 복호화기 멀티미디어시스템
그림 10.7(계속): H.261 부호화기와 복호화기 멀티미디어시스템
표 10.3: H.261 부호화기 관찰 포인트에서의 데이터 흐름 표 10.4: H.261 복호화기 관찰 포인트에서의 데이터 흐름 멀티미디어시스템
H.261 비디오 비트스트림의 신택스 살펴보기 1. 그림 계층: PSC (Picture Start Code)는 그림들 사이의 경계를 나타냄. TR (Temporal Reference)은 그림을 위한 타임-스탬프를 제공함. 2. GOB 계층: H.261 그림들은 11×3 매크로블럭의 영역으로 나누어지고, 각각은 GOB(Group of Blocks)로 불림. • 그림 10.9는 CIF 또는 QCIF 휘도 영상에서 GOB들의 배열을 나타냄. • 예를 들면, CIF 영상은 352×288 화소의 영상 해상도에 대응하는 2×6 GOB들을 가짐. 각 GOB는 그것의 시작코드(GBSC: Start Code)와 그룹번호(GN: Group Number)을 가짐. • 그림 10.8은 H.261 비디오 비트스트림의 신택스를 보여줌: 4계층의 체계: 그림, GOB, 매크로블럭, 블럭. 멀티미디어시스템
네트워크 오류가 비트 오류 또는 어떤 비트들의 손실을 야기할 경우에, H.261 비디오는 다음의 식별 가능한(identifiable) GOB에서 복원되고 재동기 될 수 있음. • GQuant는 그것이 어떤 다음의 MQuant(매크로블럭을 위한 양자화기)에 의해 뒤덮어지지 않는다면, 그 GOB에서 사용되는 양자화기를 나타냄. 3. 매크로블럭 계층: 각 매크로블럭(MB)은 GOB 내에서 그것의 위치를 나타내는 주소, 양자화기(MQuant) 그리고 6개의 8×8 영상 블럭(4Y, 1Cb, 1Cr)을 가짐. 4. 블럭 계층: 각 8×8 블럭을 위해, 비트스트림은 DC 값으로 시작하여 AC 계수들을 위한 0-런(Run)의 길이와 다음의 0이 아닌 값(Level)의 쌍들이 따르고, 마지막으로 EOB(End of Block) 코드를 가짐. Run의 범위는[0, 63]이다. Level은 양자화된 값을 발생함. ᅳ그것의 범위는 [-127, 127]이고, level ≠ 0임. 멀티미디어시스템
그림 10.8: H.261 비디오 비트스트림의 신택스 멀티미디어시스템
그림 10.9: H.261 휘도 영상에서 GOB 배열 멀티미디어시스템
10.5 H.263 • H.263은 공중 전화 교환망(PSTN: Public Switched Telephone Networks)상에서 전송되는 화상회의와 다른 오디오비주얼 서비스를 위한 향상된 비디오 부호화 표준. • 64kbps 이하의 비트율에서 낮은 비트율 통신을 목표로 함. • 인터-프레임들의 시간 중복성을 줄이기 위해 예측 부호화는 사용하고, 남겨진 신호의 공간 중복성을 줄이기 위해(인트라-프레임과 인터-프레임 예측을 위해) 변환 부호화를 사용함. 멀티미디어시스템
표 10.5 H.263에 의해 지원되는 비디오 형식 멀티미디어시스템
H.263 & GOB (Group of Blocks) • H.261에서 처럼, H.263 표준도 또한 GOB(Group of Blocks)의 개념을 지원. • H.263에서 GOB들은 고정된 크기를 가지지 않는다는 것이 H.261과의 차이이며, 그들은 항상 영상의 왼쪽 경계에서 시작하고 오른쪽 경계에서 끝남. • 그림 10.10에서 보여지는 것처럼, 각 QCIF 휘도 영상은 9개의 GOB들로 구성되고, 각 GOB는 11×1MBs (176×16화소)를 가짐. 이에 반해 각 4CIF 휘도 영상은 18개의 GOB들로 구성되고, 각 GOB는 44×2MBs (704×32화소)를 가짐. 멀티미디어시스템
그림 10.10: H.263 휘도 영상에서 GOB 배열 멀티미디어시스템
H.263에서 움직임 보상 • MV(움직임벡터)의 수평과 수직 성분은 각각 “이전”, “위” 그리고 “위와 오른쪽” 매크로블럭들로부터 MV1, MV2, MV3로 수평과 수직 성분의 중간값으로부터 예측됨.(그림 10.11(a)를 참조) • 매크로블럭을 위한 MV(u, v)는 다음과 같음: MV(u, v) 자체를 부호화하는 대신에, 오차 벡터( , ) 가 부호화되는데, 여기서 이고 임. 멀티미디어시스템
현 매크로블록의 예측된 MV는 (MV1, MV2, MV3) 의 중간값 현 매크로블록이 그림이나 GOB 의 경계에 있을 때 MV 의 특별한 처리 그림 10.11 H.263에서 움직임 벡터의 예측 멀티미디어시스템
반-화소 정밀도 • 예측 오차를 줄이기 위해 H.261에서 오직 전-화소 정밀도(full-pixel precision)를 사용하는 것에 반하여 H.263에서는 반-화소 정밀도(half-pixel precision)를 지원함. • MV(u, v)의 수평과 수직 성분 u와 v 모두를 위한 기본 범위는 이제 [-16, 15.5]임. • 그림 10.12에서 보이는 것처럼, 반-화소 위치에서 요구되는 화소 값은 간단한 쌍선형 보간법(bilinear interpolation)에 의해 생성됨. 멀티미디어시스템
A, B, C, D: 전화소 위치에서의 화소값 a, b, c, d: 반화소 위치에서의 화소값 그림 10.12: H.263에서 쌍선형 보간법에 의한 반-화소 예측 멀티미디어시스템
선택적인 H.263 부호화 모드 • H.263은 그것의 다양한 부록에서 많이 협상 가능한 부호화 옵션을 규정하고 있음: 1. 제한이 없는 움직임 벡터 모드: • 참조된 화소는 더 이상 영상의 경계 안에 있어야 하는 제한을 받지 않음. • 움직임 벡터가 영상 경계의 밖을 가리킬 때, 참조된 화소에 기하학적으로 가장 가까운 경계 화소의 값이 사용됨. • 움직임 벡터의 최대 범위는 [-31.5, 31.5]임. 멀티미디어시스템
2. 신택스-기반 산술 부호화 모드: • H.261과 마찬가지로, H.263도 DCT 계수들을 위한 기본 부호화 방법으로 가변 길이 부호화(VLC)를 사용함. • H.261과 유사하게, H.263의 신택스도 또한 4개 층의 체계로 구성된다. 각 계층은 고정된 길이 부호화와 가변 길이 부호화의 결합을 사용하여 부호화함. 3. 진보된 예측 모드: • 이 모드에서, 움직임 보상을 위한 매크로블럭 크기는 16에서 8로 줄어듬. • 4개의 움직임 벡터(8×8블럭들의 각각으로부터)는 휘도 영상에서 각 매크로블럭을 위해 생성됨. 멀티미디어시스템
4. PB-프레임 모드: • 그림 10.13에서 보여지는 것처럼, H.263에서 PB-프레임은 하나의 단위로 부호화된 두 영상으로 구성됨. • PB-프레임 모드의 사용은 PTYPE에서 표시됨. • PB-프레임 모드는 적당한 움직임을 가지는 비디오에 대해 만족스러운 결과를 가져옴. • 큰 움직임 하에서는, PB-프레임은 B-프레임만큼 잘 압축하지 못함. 새롭게 향상된 모드는 H.263의 버전 2에서 개발되고 있음. 멀티미디어시스템
PB프레임은 하나의 단위로 부호화된 두 영상으로 • 구성됨 • 이전에 복호화된 I-프레임 또는 P-프레임으로부터 • 예측된 하나의 P-프레임 • 이전에 복호화된 I-프레임 또는 P-프레임과 지금 복호화 • 되고 있는 P-프레임으로부터 예측된 하나의 B-프레임 그림 10.13: H.263에서 PB-프레임 멀티미디어시스템
H.263+와 H.263++ • H.263+의 목적: 잠재적인 응용을 넓히고, 사용자 소스형식, 다른 화소 종횡비, 그리고 클럭 주파수에 관한 추가적인 융통성을 제공하는 것임. • H.263+는 H.263의 4가지 선택 모드에 추가적으로 12개의 새롭게 협의할 수 있는 모드를 제공. • 그것은 차분 움직임 벡터들을 부호화하기 위해 복원 가능한 가변 길이 부호화(RVLC: Reversible Variable Length Coding)를 사용함. • 슬라이스 구조는 추가적인 융통성(flexibility)을 제공하기 위한 GOB를 대체하여 사용함. 멀티미디어시스템
H.263+는 시간적(Temporal), SNR 그리고 공간적 스케일러빌러티(Spatial scalabilities)를 구현함. • 버전 1에서 처럼, B-프레임의 두 움직임 벡터를 P-프레임의 순방향 움직임 벡터로 유도할 필요가 없는 향상된 PB-프레임모드를 지원함. • H.263+는 블럭킹 효과(blocking effects)를 줄이기 위해 부호화 루프에서 디블럭킹 필터들(deblocking filters)을 포함함. 멀티미디어시스템
H.263++는 H.263의 기본 부호화 방법과 강화된 참조그림 선택(ERRS :Enhanced Reference Picture Selection), 데이터 분할 슬라이스(DPS : Data Partition Slice), 그리고 부가적인 추가 향상 정보를 위한 부가적인 권고만을 포함. • ERPS모드는 저장된 프레임들을 위한 다중-프레임 버퍼를 관리함으로써 동작함. ᅳ부호화 효율성(coding efficiency)과 오류 복원력(error resilience) 성능을 향상. • DPS모드는 비트스트림에서 DCT 계수 데이터로부터 움직임 벡터 데이터와 헤더를 분리하여 오류 복원력에 대한 추가적인 향상을 제공하고 복원 가능한 코드를 사용하여 움직임 벡터 데이터를 보호함. 멀티미디어시스템