H.264 & H.265 비교
럼퍼스의 맞춤형 솔루션 MEDIAWORKS는 다양한 코덱을 특화하여 customer에게 맞는 서비스를 제공합니다.
최근 트렌드의 코덱의 특징에 대해 상세하게 정리하자면 다음과 같습니다.
H.264
- 인터 프레임의 효율적인 예측
-
움직임 추정은 아래 16x16, 4x4 블록, 가변 크기의 서브 매크로 블록의 검색을 제공한다.
모션 벡터는 luminance를 1/4 정도까지 허용하며 색수차는 최대 1/8까지 허용한다.
게다가, 움직임 벡터 인코딩은 크게 인터 예측을 활용하여 향상된다.
(아래 인트라와 인터 프레임을 사례에 따라 적절히 활용하면 뛰어난 압축률과 화질을 지닌다.) - 인트라 프레임의 예측 및 변환
- H.264는 4x4 또는 16x16 블록 중 하나를 수행 방향에 따라 예측을 위해 여러 방향 모드까지 허용하는 변환하기 전에 내 코드 블록에 대한 인트라 예측을 수행한다.
- - 부드러운 움직임에 대한 개선 인코딩
- AVC 표준은 스킵 모드로 부호화 매크로 블록에 대한 옵션의 새로운 범위를 제공합니다. 기본적으로 매크로 블록 대신 다른 매크로 블록이 다른 프레임에서 촬영하는 데 사용되는 인코딩하지 않습니다. 그래서 카메라가 원활하게 움직일 때, 전체 그림은 낮은 비트 전송률에서 좋은 결과를 보여줍니다. 이 새로운 기능에 잘 감사로 천천히 이동합니다.
- 엔트로피 코딩
- 표준 엔트로피 코딩의 두 가지 대체하고 효율적인 프로세스를 제공합니다. 상황에 적응 가변 길이 코딩 (CAVLC)는 엔트로피 인코더는 호프만과 같은 압축 알고리즘을 사용합니다. 적정 품질을 제공하면서 CAVLC는, 빠른 데이터 압축을 할 수 있습니다. 상황에 적응 이진 산술 코딩 (CABAC)는 인코딩 된 데이터의 기본 확률 모델에 대한 고효율 자동 조정을 제공하는 산술 코더입니다. CABAC 악용이 가장 높은 압축 효율 비율을 달성 할 수 있습니다, 그러나, 그것은 CAVLC보다 더 많은 하드웨어 리소스가 필요합니다.
H.265/HEVC
H.265/HEVC는 H.264/AVC를 잇는 차세대 동영상 압축 표준인데 H.264/AVC와 비교하면 약 두 배 정도의 압축률을 자랑한다.
(아직 HEVC는 코덱의 기술의 안정화 단계)
아래는 위키에서 가져온 표인데 동일한 PSNR 수치에서의 표준별 비트레이트 감소율이다.
기존 H.264 AVC HP(high profile)에 비해 HEVC MP(Main profile)이 35.4% 가량 비트레이트 감소율을 볼 수 있다.
Encoding | Bit-Rate Savings Relative to | |||
---|---|---|---|---|
H.264/MEPG-4 AVC HP | MEPG-4 ASP | H.263 HLP | MEPG-2/H.262MP | |
HEVC MP | 35.4% | 63.7% | 65.1% | 70.8% |
H.264/MEPG-4 AVC HP | - | 44.5% | 46.4% | 55.4% |
MEPG-4 ASP | - | - | 3.9% | 19.7% |
H.263 HLP | - | - | - | 16.2% |
이는 기존 MACRO BLOCK 방식에서 CTU(Coding Tree Unit)으로 방식이 변경되며 효율적이며 복잡한 압축방식을 갖게 됐다. 아래의 그림에서와 같이 H.264에 비해 그룹화 된 CU(Coding Unit)가 많 체계적으로 잡히며 필요한 부분에 대해서만 복잡성을 가지는 것을 볼 수 있다.
H.264보다 간결하면서도 complexity가 필요한 부분에 대해서만 CTU 분리
H.264 AVC와 H.265 HEVC의 차이점을 간략히 정리하자면
1) 압축의 기본 단위라고 할 수 있는 기존의 매크로블럭이 CTU(Coding Tree Unit)로 대체
2) H.264/AVC 표준에서는 CABAC과 CAVLC의 두 가지 엔트로피 코딩을 사용했지만 H.265/HEVC에서는 CABAC만을 사용
(다만 복잡성을 가지지 않는 단조로운 영상의 경우에는 CAVLC를 이용하기도 함)
3) 인트라 예측에는 33개의 예측 모드와 DC, Planar 모드를 합해서 총 35가지의 모드가 가능
4) 인터 예측에는 Qpel 단위에서 7탭, 8탭 필터를 사용했습니다. 예측에 사용되는 블럭의 크기는 최소 4x4 부터 64x64 까지 가능
5) 움직임 벡터 예측에는 AMVP와 merge 모드를 사용
6) 주파수 변환의 블럭 사이즈는 H.264/AVC의 4x4, 8x8에서 16x16, 32x32가 추가
7) 기존의 In-loop Deblocking 필터와 더불어 픽셀 단위의 오프셋을 추가해주는 SAO 필터가 적용
H.264(HP) | HEVC High efficiency | HEVC Low complexity |
---|---|---|
16 × 16 macroblock | Coding unit quadtree structure (64 × 64 down to 8 × 8) | |
Partitions down to 4 × 4 | Prediction units (64 × 64 down to 4 × 4, square intra/inter + non-square inter) | |
8 × 8 and 4 × 4 transforms | Transforms unites (32 × 32, 16 × 16, 8 × 8, 4 × 4 intra/inter + non-square inter) | |
Intra prediction (9 directions) | Intra prediction (17 directions for 4 × 4, 3 directions for 16 × 16, 34 directions for rest) | |
Inter prediction luma 6-tap + 2-tap to 1/4 pel | Inter prediction luma 8-tap to 1/4 pel | |
Inter prediction chroma bi-linear interpolation | Inter prediction chroma 4-tap to 1/8 pel | |
Motion vector prediction | Advanced motion vector prediction (spatial + temporal) | |
CABAC or CAVLC | CABAC (Context Adaptive Binary Arithmetic Docing) |
CAVLC (Context Adaptive Variabl Length Coding) |
8b/sample storage and output | 10b/sample storage and output | 8b/sample storage and output |
Deblocking filter | 10b/sample storage and output | 8b/sample storage and output |
Adaptive Loop Filter (AFL) and Sample Adaptive Offset (SAO) filter | Sample Adaptive Offset (SAO) filter |
아래 2개의 스크린샷을 비교해보면 High profile을 가진 H.264와도 육안으로 비교 시 큰 차이가 없음을 확인할 수 있다.
(물론 채도의 차이는 있지만 화질의 차이는 없다.)
클릭하시면 더 큰 이미지를 보실 수 있습니다.
H.264 AVC HP
H.265 HEVC MP