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

H.264/MPEG-4 Part 10 (1)

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

1. H.264/MPEG-4 Part 10 개요

 

H.264/MPEG-4 Part 10ITUVCEGISO/IEC MPEG의 연합 비디오 팀에 의해 발표된 고효율 비디오 압축 표준이다. 여기에서는 H.264/MPEG-4 Part 10의 개발 과정과 전반적인 부호, 복호기 구조를 살펴본다.

 

1.1 H.264/MPEG-4 Part 10의 연혁

국제 전기통신 연합
   (ITU,
International Telecommunication Union)

Telecommunication Standardization Sector(ITU-T)의 연구 그룹인 VCEG(Video Coding Experts Group, ITU-T SG16 Q.6)을 통하여 통신 네트워크와 컴퓨터 네트워크를 통한 비디오 통신과 관련된 표준안들을 개발하고 있다.

1990ISDN 망을 대상으로 하는 통신용 동영상 부호화표준인 H.261이어 1995일반 전화망을 목표로 하는 H.263을 발표하였으며, 이의 성능을 향상시킨 차기 버전들을 발표하였다.

1998H.26L이라고 부르는 프로젝트에 대한 제안을 모집하게 되는데, 여기에서는기존 비디오 부호화 표준들에 비해 부호화 효율을 두 배로 증가시키는 것을 목표로 삼고 있다.
     → 199910월 첫 번째 드래프트 설계가 채택되었다.
□ 국제 표준화 기구
    (ISO, International Organization for Standardization)

MPEG(Moving Picture Experts Group, ISO/IEC JTC1/SC29/WG11)이라는 워킹 그룹에서 동영상과 오디오의 압축 및 다 중화에 관한 표준을 제정 및 관리 진행하 고 있다.


1992CD-ROM과 같은 저장 매체를 목
표로 하는 MPEG-1을 발표하였고, 디지털 방송을 위한 고품질 동영상 부호화 표준안 개발 작업을 ITU-T와 공동으로 수행하여 MPEG-2(H.262)1994년 발표하였다.

1993MPEG-4 프로젝트가 시작되었으MPEG-4 Visual(MPEG-4 Part2)1999년에 발표되며, 2001MPEG-4 Visual
Edition 2가 발표된다.
JVT(Joint Video Team)의 구성

MPEG-4 Visual의 압축 방법은 H.263에 기반을 두고 있는데, 여러 가지 압축 기술들을 비교한 결과 H.26L이 가장 최선의 선택인 것으로 평가되었다.
이에 따라 H.26L의 최종 단계를 관리하
기 위해 200112월에 MPEGVCEG는 연합 비디오 팀(JVT)을 조직하였다.

그 결과 20033월 새로운 비디오 부호화 표준안이 발표되었으며, ITU-T에서는 이를
Recommendation H.264, ISO/IEC는 국제표준 14496-10(MPEG-4 part 10) Advanced Video Coding(AVC)로 승인하였다.

 

H.264/AVC는 최소한 다음과 같은 응용 범위를 포함하도록 설계되었다.

케이블, 위성, 케이블 모뎀, DSL, 지상파 등을 통한 방송

광 자기 장치, DVD 등의 대화식 또는 순차 저장장치

ISDN, 이더넷, LAN, DSL, 무선 및 모바일 네트워크, 모뎀 등 또는 이들이 혼합된 망을 통한 대화형 서비스

ISDN, 케이블 모뎀, DSL, LAN, 무선 네트워크 등을 통한 VOD 또는 멀티미디어 스트리밍 서비스

ISDN, DSL, 이더넷, LAN, 무선 및 모바일 네트워크 등을 통한 멀티미디어 메시지 전달 서비스(multimedia messaging services, MMS)

 

1.2 H.264 코덱

H.264는 부호화된 비디오 비트 스트림의 신택스와 이러한 비트 스트림을 복호화하는 방법을 정의한다.

부호기와 복호기의 개괄적 구조

표준안에 호환되는 부호기와 복호기의 전반적 구성은 블록현상 제거 필터(디블로킹 필터deblocking filter)가 적용되어 있는 점 외에는 이전의 표준안들에 해당되는 부호기 및 복호기 구조와 다를 바가 없다.

그러나 예측, 변환, 양자화, 엔트로피 부호화 등의 각 블록을 구성하는 세부적 기능에는 여러 가지 중요한 변화가 있다.

 

(1) 부호기

입력 프레임 또는 필드 Fn은 매크로 블록 단위로 처리된다.

 

각각의 매크로 블록은 화면 내 부호화 또는 화면 간 부호화 모드로 예측부호화 된다.

     ▷ 화면 내 부호화 모드 (인트라 모드, intra mode)

            ¤ 현재 슬라이스에 속하며, 이미 부호화와 복호화를 거쳐 복원된 샘플들을 사용하여 예측을 한다.

            ¤ 디블로킹 필터를 적용하지 않은 복원 샘플 uF'n을 사용하여 예측을 하는 점에 주의하라.

      ▷ 화면 간 부호화 모드 (인터 모드, inter mode)

            ¤ 현재 매크로 블록에 대한 예측 블록을 위해 list0list1이라는 참조 프레임의 집합을 사용 한다. 이전 표준들에서 현재 프레임의 앞에 있는 한 장의 참조 프레임만 사용하거나(P-), 또는 앞과 뒤에 있는 두 장의 참조 프레임만 사용(B-화면)하는 것과 대조적이다.

            ¤ 참조 프레임들은 디플로킹 필터를 거친 것이다.

 

예측 블록은 현재 블록으로부터 빼져서 오차블록 Dn을 생성하고, 이는 변환 및 양자화, 재배, 엔트로피 부호화 과정을 거쳐 부호화 비트열이 된다. 여기에 디코딩에 필요한 부가정보가 결합되어 압축된 비트 스트림을 형성한다.

압축 비트스트림은 NAL(Network Abstraction Layer)을 통해 전송되거나 저장된다.

부호기에는 복호기의 처리 과정을 포함함으로써, 예측에 필요한 참조 프레임을 생성한다.

 

(2) 복호기

NAL로부터 받은 압축된 비트 스트림을 엔트로피 복호화를 거쳐 양자화 계수를 복원한다.

역 양자화 및 역 변환을 거쳐 오차블록 D'n을 복원한다. 손실부호화를 거쳤으므로, D'n은 원래의 오차블록 Dn과는 차이가 있다.

헤더에 포함된 부가정보를 이용하여 예측 블록을 생성하고, 이에 D'n을 더해 uF'n을 복원한다.

uF'n은 블록단위 부호화 및 복호화 과정에 의해 블록화 현상이 발생할 수 있으므로, 이에 디블로킹 필터를 취하여 복호화된 화면 F'n을 생성한다.


2. H.264/AVC의 구조

 

본 절에서는 H.264/AVC에서 제공하는 프로파일에 대하여 간략히 소개한다. 또한 사용되는 비디오 형식과 H.264/AVC를 구성하는 기본적 요소들에 대하여 정의한다.

 

2.1 프로파일과 레벨

H.264에는 Baseline Main, Extended라는 세 가지 프로파일이 정의되어 있다.

Baseline 프로파일 개요
     ¤ I-슬라이스와 P-슬라이스를 사용하는 화면 내 및 화면 간 부호화
      ¤ 컨텍스트 적응형 가변길이 부호(context-adaptive variable length codes, CAVLC)를 사용하는 엔트로피 부호화 지원
응용분야 : 화상전화, 화상회의, 무선 통신 등에 유용
Main 프로파일 개요
      ¤ 비월주사 비디오
      ¤ B-슬라이스를 사용한 화면 간 부호화
      ¤ 컨텍스트 기반 이진 산술 부호화(context-adaptive binary arithmetic coding, CABAC)를 사용하는 엔트로피 부호화 지원
응용분야 : TV 방송 및 비디오 저장
Extended 프로파일 개요
      ¤ 부호화된 비트스트림(SP-슬라이스와 SI-슬라이스) 사이의 효율적인 전환
      ¤ 향상된 에러 복구 기능 (데이터 분할, data partitioning)
응용분야 : 스트리밍 미디어 응용분야에 유용

레벨

코덱의 성능 제한을 정의한다.

샘플 프로세싱 비율, 화면 크기, 압축 비트율 및 메모리 요구량과 같은 파라미터에 제한을 가한다.

 

2.2 비디오 형식

4:2:0 순차주사 비디오 프레임의 샘플링 형식

4:2:0 비월주사 비디오 프레임의 샘플링 형식

2.3 VCLNAL

H.264/AVC는 케이블, 위성, 지상파, ISDN, Ethernet, DSL 등의 전송매체와 DVD와 같은 저장 매체 등 다양한 매체를 통한 응용을 위해 설계되었다. 앞으로도 새로운 응용 및 미래의 네트워크가 등장하여 활용될 수 있을 것이다.

 

이러한 점에서 다양한 응용과 네트워크를 어떻게 다룰 것인가의 문제가 대두된다.

 

이러한 문제에 대처할 수 있는 유연성을 갖출 수 있도록 하기 위해 H.264/AVCVCLNAL을 분리하여 정의하고 있다.

     ▷ VCL(Video Coding Layer)

            ¤ 비디오 내용을 효율적으로 표현한다.

            ¤ VCL의 출력 : VCL 데이터(부호화된 비디오 데이터를 나타내는 연속적인 비트들)

            ¤ VCL 데이터는 전송하거나 저장하기 전에 NAL 유닛으로 매핑된다.

      ▷ NAL(Network Abstraction Layer)

            ¤ 비디오의 VCL 데이터를 형식을 맞추어 구성하고, 다양한 전송 계층이나 저장 매체를 통해 전달하기에 적합한 방식으로 헤더 정보를 제공한다.

            ¤ VCL NAL 유닛 : 비디오 화면의 샘플 값들을 표현하는 데이터(VCL 데이터)를 포함한다.

            ¤ VCL NAL 유닛 : 파라미터 집합(많은 수의 VCL NAL 유닛들에 적용될 중요한 헤더 데이)과 추가적인 개선 정보(타이밍 정보와 같은)를 포함한다.

 

2.4 참조 화면

이전의 비디오 부호화 표준들에서는 움직임 보상 예측 부호화를 하기 위해 한 장 또는 두 장의 참조 화면을 보관한다. P-화면의 경우 이전의 I-화면 또는 P-화면이 참조 화면으로 사용되, B-화면의 경우는 이전의 I-화면 또는 P-화면, 그리고/또는 이후의 I-화면 또는 P-화면이 참조 화면으로 사용된다.

 

그러나 H.264/AVC에서는 참조 화면의 선택 대상이 확대되었다. , 부호기와 복호기는 하나 또는 두 개의 참조 화면 리스트를 유지하고 있어, 이전에 부호화 및 복호화 된 화면들의 집합을 담고 있다. 이를 list0list1이라 하는데, P 슬라이스의 경우 list0라는 하나의 리스트를 통해 예측되고, B 슬라이스의 경우 list0 list1을 이용하여 매크로 블록들을 예측한다.

 

2.5 매크로블록

하나의 화면은 매크로 블록들의 집합으로 분할된다. 매크로 블록은 16×16 크기의 휘도 샘플8×8 크기의 Cb Cr 샘플로 구성된다.

 

매크로 블록은 화면내 부호화가 이루어지는 I 매크로 블록과 화면간 움직임 보상 예측 부호화가 이루어지는 P 매크로 블록과 B 매크로 블록으로 구분된다.

 

P B 매크로 블록은 움직임 보상의 효율을 높이기 위해 16×16, 16×8, 8×16, 8×8 크기의 휘도 샘플 및 이와 관련된 색차 샘플들의 블록으로 분할될 수 있는데, 이를 매크로 블록 파티(macroblock partitions)이라고 한다.

 

8×8 크기의 파티션으로 분할된 경우에는 다시 각각의 8×8 서브 매크로 블록(sub-macroblock)8×8, 8×4, 4×8, 4×4 크기의 휘도 샘플 및 관련된 색차 샘플들의 블록으로 분할할 수 있는데, 이를 서브 매크로 블록 파티션(sub-macroblock partitions)이라고 한.

2.6 슬라이스

하나의 화면은 하나 또는 그 이상의 슬라이스로 부호화된다.

슬라이스 당 매크로 블록 수는 하나의 화면 내에서 일정할 필요는 없다.

5가지 종류의 슬라이스가 존재하며, 하나의 부호화된 화면에 서로 다른 종류의 슬라이스들이 혼합되어 포함될 수 있다.

H.264/AVC 슬라이스의 종류는 다음과 같다.

슬라이스 종류 설명 프로파일
I (Intra) I 매크로 블록만을 포함한다.
각 블록은 동일 슬라이스 내의 이전에 부호화된 데이터로 부터 예측된다.
All
P (Predicted) P 매크로 블록 그리고/또는 I 매크로 블록을 포함한다.
P 매크로 블록은 list0의 참조 화면 중 하나로부터 예측된다.
All
B (Bi-predictive) B 매크로 블록 그리고/또는 I 매크로 블록을 포함한다
B 매크로 블록은 list0 그리고/또는 list1의 참조 화면 중 각각 하나로부터 예측된다.
Extended
Main
SP (Switching P) 부호화된 비트스트림 사이의 스위칭을 용이하게 한다.
P 그리고/또는 I 매크로 블록을 포함한다.
Extended
SI (Switching I) 부호화된 비트스트림 사이의 스위칭을 용이하게 한다.
SI 매크로 블록을 포함한다.
Extended

3. 부호화 효율 개선 요소

 

H.264/AVC는 앞서 개발된 비디오 부호화 표준들에서 사용하는 DPCM/DCT 기반 부호화 방식의 골격을 유지하고 있다. 그러나 세부적으로는 부호화 효율을 높이기 위한 많은 변화가 있다. 절에서는 H.264/AVC에서 부호화 효율을 개선하기 위해 도입하고 있는 주요 요소들을 간략히 소개한다.

 

H.264/AVC는 이전의 비디오 부호화 방식들에 비해 부호화 효율을 개선할 수 있도록 하기 위해 예측 성능을 향상시킬 수 있도록 하는 다음과 같은 요소들을 포함한다.

 

작은 크기의 가변 블록 크기 움직임 보상

움직임 보상을 위한 블록의 크기나 형태를 선택하는데 더 큰 유연성을 부여한다. 최소 휘도 이동보상 블록 크기는 4×4이다.

1/4 픽셀 움직임 보상

MPEG-4 VisualAdvanced 프로파일에서와 같이 1/4 픽셀 단위의 움직임 벡터를 사용하, 보간 처리의 복잡도를 더 줄인다.

그림의 경계로 향하는 움직임 벡터

H.263에서 선택적 기능으로 채용한, 그림 경계의 외삽(extrapolation) 기술이 사용되어, 움직임 추정된 참조 화면의 블록이 경계 외부를 포함할 수 있다.

다중 참조 화면 움직임 보상

이전의 방식들에서는 P-화면을 움직임 보상 예측 부호화하기 위해 이전의 I-화면 또는 P-화면 하나를 참조 화면으로 사용하였다. 그러나 H.264/AVC에서는 H.263++에서 도입된 기술을 선택하여 더 많은 수의 참조 화면으로부터 예측을 할 수 있게 하고 있다.

B-화면의 경우에도 부호화하려는 화면보다 앞에 있는 여러 장의 I-화면 또는 P-화면과 뒤에 있는 여러 장의 I-화면 또는 P-화면을 이용하여 예측을 할 수 있게 한다.

디스플레이 순서와 참조 순서의 분리

이전의 표준들에서는 움직임 보상의 참조 목적을 위한 화면 배열과 디스플레이 목적을 위한 화면 배열 순서사이에 엄격한 의존관계가 있었다.

H.264/AVC에서는 이러한 제한이 많이 제거되어, 부호기가 참조 및 디스플레이 목적을 위한 화면 배열 순서를 선택할 수 있도록 하고 있으며, 이에 대한 제한점은 복호를 위해 요구하게 되는 복호기 측 메모리 용량이다.

 

B-화면을 이용한 예측

이전 표준들에서는 B-화면은 다른 화면을 예측하기 위한 참조 화면으로 사용할 수 없었다.

H.264/AVC는 이러한 제한을 제거하여 성능을 개선하고 있다.

 

가중 예측

움직임 보상 예측 신호에 대해 가중치를 곱하고 옵셋을 더하는 방식을 사용할 수 있다.

이러한 방식은 페이드(화면이 서서히 사라지거나 나타나는 것)가 일어나는 장면에 대해 부호화 효율을 크게 향상시킬 수 있다.

화면내 부호화를 위한 방향성 공간 예측

현재 화면의 이전에 복호화된 부분의 경계를 외삽하는 새로운 기법이 화면내 부호화되는 화면 영역에 적용된다.

이 방식은 예측 신호의 질을 개선하며, 화면내 부호화가 되지 않은 이웃 영역으로부터 예측할 수 있도록 한다.

 

루프 내 디블로킹 필터링

블록 기반 비디오 부호화 방법은 블로킹 현상이 발생한다. 적응적 디블로킹 필터를 활용하는 것은 비디오 화질을 개선하는 잘 알려진 방법으로서, 개관적 화질과 주관적 화질을 동시에 개선할 수 있다.

디블로킹 필터의 적용은 움직임 보상 예측 루프 안에 포함시킴으로써, 개선된 화면이 다른 화면의 예측에 활용될 수 있도록 한다.


정리하기

 

1. 요약정리

H.264/MPEG-4 Part 10 개요

ITU-T의 연구그룹인 VCEGISO/IEC의 워킹그룹인 MPEG이 공동으로 발표한 고효율 비디오 압축 부호화 표준이다.

기존 비디오 부호화 표준들에 비해 부호화 효율을 두 배로 증가시키기 위한 H.26L 프로젝트를 바탕으로 개발되었다.

다른 비디오 부호화 표준들과 마찬가지로 부호화된 비디오 비트 스트림의 신택스와 이러한 비트 스트림을 복호화하는 방법을 정의하고 있다.

부호기 및 복호기의 전반적 구성은 이전 표준안들을 따르고 있으나, 각 블록을 구성하는 세부적 기능에는 중대한 변화가 있다.

 

H.264의 구조

Baseline Main, Extended라는 세 가지 프로파일이 정의된다.

비디오 샘플링 형식은 4:2:0 순차주사 및 4:2:0 비월주사가 사용된다.

VCLNAL을 분리 정의하여, 다양한 응용과 네트워크 환경에 대처할 수 있는 유연성을 갖추도록 하고 있다.

참조 화면의 선택 대상을 확대하여 보다 정확한 움직임 보상을 할 수 있도록 한다.

 

부호화 효율 개선 요소

작은 크기의 가변 블록 크기 움직임 보상을 통해 유연성을 높인다.

1/4 픽셀 움직임 보상을 사용한다.

그림 경계의 외삽 기술을 사용하여 화면 경계 외부로 향하는 움직임 추정을 할 수 있다.

여러 장의 참조 화면으로부터 움직임 보상을 할 수 있도록 한다.

B-화면을 예측에 이용할 수 있다.

가중 예측을 사용하여, 페이드와 같은 효과가 존재하는 화면의 예측 부호화 효율을 향상시 킨다.

디블로킹 필터를 사용하여 블록 기반 부호화에서 발생하는 블로킹 현상을 완화한다.

 

2. 참고자료

Thomas Wiegand, Gary J. Sullivan, "Overview of the H.264/AVC Video Coding Standard," IEEE Tran. Circuits Syst. Video Technol., Vol.13, No.7, pp.560-576, July 2003.

'정보과학 > 영상통신시스템' 카테고리의 다른 글

영상 통신을 위한 인터넷 기술 (1)  (1) 2023.10.18
H.264/MPEG-4 Part 10 (2)  (0) 2023.10.18
MPEG-4 Visual (2)  (1) 2023.10.05
MPEG-4 Visual (1)  (0) 2023.10.04
MPEG 개요  (0) 2023.09.25