지난 25일에 ITU에서 H.265/HEVC 표준의 승인이 있었네요.
http://www.itu.int/net/pressoffice/press_releases/2013/01.aspx#.UQekEx11F8F
H.265/HEVC는 H.264/AVC를 잇는 차세대 동영상 압축 표준인데 H.264/AVC와 비교하면 약 두 배 정도의 압축률을 갖는다고 합니다.
아래는 위키에서 가져온 표인데 동일한 PSNR 수치에서의 표준별 비트레이트 감소율입니다.
H.264/AVC와 비교하면 동일한 PSNR 수치에서 약 35%의 비트레이트를 감소시킬 수 있다는 말이죠.
아무래도 H.265/HEVC는 기존의 H.264/AVC와의 비교가 많을 것 같아서 둘 사이의 차이점을 몇가지 정리해 봤습니다.
1) 압축의 기본 단위라고 할 수 있는 기존의 매크로블럭이 CTU(Coding Tree Unit)로 대체됩니다.
CTU는 루마 CTB(Coding Tree Block)과 크로마 CTB로 구성되는데 루마 CTB의 크기는 16x16, 32x32, 64x64 중 하나를 선택할 수 있습니다.
하나의 CTU는 다시 하위의 CU(Coding Unit)들로 나눠질 수 있고 이 CU는 다시 PU(Prediction Unit)와 TU(Transform Unit)로 나눠집니다.
PU는 인트라, 인터 예측의 단위이고 TU는 주파수 변환, 양자화의 단위입니다.
PU는 4x4 ~ 64x64의 크기를, TU는 4x4, 8x8, 16x16, 32x32의 크기를 가질 수 있습니다.
2) H.264/AVC 표준에서는 CABAC과 CAVLC의 두 가지 엔트로피 코딩을 사용했지만 H.265/HEVC에서는 CABAC만을 사용합니다.
3) 인트라 예측에는 33개의 예측 모드와 DC, Planar 모드를 합해서 총 35가지의 모드가 가능합니다. H.264/AVC는 총 9개였죠.
4) 인터 예측에는 Qpel 단위에서 7탭, 8탭 필터가 사용됩니다. H.264/AVC는 Hpel 단위에서 6탭 필터, Qpel 단위에서는 median 필터를
사용했습니다. 예측에 사용되는 블럭의 크기는 최소 4x4 부터 64x64 까지 가능합니다.
5) 움직임 벡터 예측에는 AMVP와 merge 모드를 사용할 수 있습니다. AMVP는 참조 프레임과 인접 블럭의 데이터를 이용하는 예측 방법이고
merge 모드는 H.264/AVC의 skip, direct 모드와 비슷하다고 합니다.
6) 주파수 변환의 블럭 사이즈는 H.264/AVC의 4x4, 8x8에서 16x16, 32x32가 추가됩니다.
7) 기존의 In-loop Deblocking 필터와 더불어 픽셀 단위의 오프셋을 추가해주는 SAO 필터가 적용됩니다.
위키를 보고 몇가지만 간략하게 정리해 봤는데 확실히 H.264/AVC 보다는 훨씬 복잡한 것 같습니다.
Doom9을 찾아보니 HM 9.2 버전의 인코더와 디코더가 있길래 테스트 인코딩도 한번 해봤습니다.
똑같은 소스를 x264로도 인코딩해서 PSNR을 비교해 봤는데 아래가 그 결과입니다. (비트레이트를 동일하게 맞췄습니다.)
HM의 결과가 좋게 나오긴 했지만 최적화가 잘 이루어진 x264를 원시적인 HM 인코더와 비교하는 것은 불공평?하다고 볼 수도 있겠네요..
tappencoder.exe -i test.yuv -c encoder_randomaccess_main.cfg -wdt 1280 -hgt 720 -fr 60 -q 30 -b test.h265
x264r2245.exe --preset veryslow --tune psnr --pass 2 --bitrate 1550 --output test.h264 test.avs
Y-PSNR U-PSNR V-PSNR
36.9530 43.3453 45.0783 -> HM 9.2 tappencoder (HEVC)
35.5090 41.4520 43.4230 -> x264r2245 (AVC)
그리고 아래는 x264의 --tune psnr을 빼고 인코딩한 영상과의 비교 스크린샷입니다.
일부러 어느쪽이 AVC(x264)이고 어느쪽이 HEVC(tappencoder)인지는 표시를 안 해놨습니다.
스크린샷만 보고 예상한 다음 맨 밑의 결과와 비교해 보세요 ㅎㅎ;
같은 화면의 스크린샷 3장 중 첫 번째가 원본 영상(1280x720)의 스크린샷입니다.
클릭하면 모두 원본 크기로 볼 수 있습니다.
'인코딩 일반' 카테고리의 다른 글
x264의 --level 옵션 (17) | 2013.02.25 |
---|---|
레벨 조정과 컬러 매트릭스 (17) | 2013.02.14 |
x264의 VBV 옵션 (7) | 2013.01.24 |
프로그레시브로 송출되는 지상파 디지털 방송? (3) | 2013.01.16 |
동영상 압축과 주파수 변환 (2) | 2013.01.12 |