H.264

 


1. 개요
2. 효율
2.1. 낮은 경우
3. 방송 규격
4. 느린 보급 속도
5. 프로파일
5.1. 종류
6. 버전
6.1. Version 1 (2003년)
6.2. Version 2 (2004년)
6.3. Version 3 (2005년)
6.4. Version 4 (2005년)
6.5. Version 5, 6 (2006년)
6.6. Version 7 (2007년)
6.7. Version 8 (2007년)
6.8. Version 9 (2009년)
6.9. Version 10 (2009년)
6.10. Version 11 (2009년)
6.11. Version 12, 13 (2010년)
6.12. Version 14, 15 (2011년)
6.13. Version 16 (2012년)
6.14. Version 17, 18, 19, 20 (2013년)
6.15. Version 21, 22 (2014년)
6.16. Version 23 (2016년)
6.17. Version 24 (2016년)
6.18. Version 25 (2017년)
6.19. Version 26 (2019년)
7. 레벨
8. 여담


1. 개요


2003년에 발표된 동영상 표준 규격. 기존 MPEG-4 Part 2보다 발전된 비디오 코딩이라 AVC(Advanced Video Coding)로도 통용된다.[1]

2. 효율


화질 향상 겸 H.263의 두 배의 압축률을 가지는 것으로 목표로 개발되었고, 실제로 두 배에 가까운 효율을 구현한다. H.262와 H.263 모두를 대체할 만한 코덱으로, 압축률도 좋을 뿐더러 비교적 낮은 비트레이트에서도 좋은 화질을 가진다. 특히 이제까지의 MPEG 계열의 영상 코덱에서 잘 나타나던 눈엣가시인 깍두기 현상이 많이 줄어들었다. H.262/MPEG-2 Part 2 기반의 2시간 분량 DVD[2]를 H.263 또는 MPEG-4 Part 2(DivX, Xvid)에서는 VCD 2장에 담을 수 있었다면, H.264/MPEG-4 Part 10(AVC)에서는 VCD '''1장'''에 담을 수 있는 압축 효율이라는 것. 물론 꼼수가 동원되어야 1장이라는 것이지 꼼수 없이 변환하려면 VCD 1장 반 정도인 1GB 용량은 되어야 한다. (VHS나 12cm 디스크를 넣는 카메라처럼 미니디스크를 넣는 타입에 쓰라고 만든 6cm짜리를 쓰면 1.4~1.6GB 정도가 나온다. 듀얼 레이어 미디어만 2GB대이다. 가격은 M.disc 가격만큼 비싸다.)

2.1. 낮은 경우


H.264 코덱은 압축률이 정말 좋으나 인코더 성능과 옵션에 따라 개떡이 될 수도 있다. 특히 네이버스포츠 저화질 중계에서 갑자기 깍두기가 창궐하는 모습을 쉽게 찾아볼 수 있는데 인코딩 속도를 위해 움직임 검색 옵션을 대폭 낮췄기 때문이다.

3. 방송 규격


블루레이에 기본 코덱으로 채택되면서 H.264가 사용되기 시작되었다.
2006년 12월, HD 방송 규격에도 채택되어 싱가포르의 Mediacorp HD5가 세계 최초로 H.264로 송출되었다. DVB-T 방식으로 방송되었다. (2013년부터 싱가포르 디지털 TV가 DVB-T2로 완전 이행되고 채널 5를 포함한 모든 채널이 HD화되면서 2017년 3월 1일에 방송을 종료했다.)
이어서 일본 일부 지역과 유럽 쪽에서도 H.264로 HD 방송이 송출되기 시작했다. 이즈음 한국도 H.264로 바꿔주세요. 현기증 난단 말이에요란 밈이 퍼지기도 했다. 유선방송 중심(UHD TV, 3D TV, IPTV)으로 H.264로 전환되기 시작했다. 지상파 방송의 경우 MPEG2에서 H.264로 넘어가기 이른감이 있어 지지부진 하다가 UHD 방송을 시작히는 기점(2016년 전후)에 H.264를 건너뛰고 ATSC 3.0 즉 H.265를 채택했다.

4. 느린 보급 속도


정말 놀라운 화질을 보여줬지만 DivX, Xvid 대비 놀랍도록 높은 성능을 요구했기에 보급은 더뎠다. 고 발표 당시의 컴퓨터 사양으로는 벅찼고 제대로 GPU 가속을 지원하는 코덱의 보급이 늦었발표한 지 3년 후 2006년 7월 코어 아키텍처 기반의 코어2 듀오가 출시되기 전까지는 CPU 성능만으로 1080p Full HD는 커녕 720p HD 영상 조차 재생하기에는 벅찼다. 2005년 펜티엄 D에 와서야 별다른 조치 없이 720p 30fps 영상이 간신히 재생되었을 정도. 그래서 하드웨어 가속을 GPU에 구현하는 쪽으로 선회했으며, 이를 추상화하는 인터페이스가 MS의 DXVA이다. 주요 GPU 가속 기술은 다음과 같다.
  • 인텔 Clear Video: 인텔 메인보드 내에 온보드 형태로 내장된 GMA 계열의 디코더 전용 기술이었다. 2010년 클락데일 CPU의 내장그래픽부터는 Clear Video HD로 적용되었다.
  • 인텔 Quicksync Video: 2011년 샌디브릿지부터 적용된 인텔 비디오 인코더 겸 디코더 기술이다.
  • AMD AVIVO: 2005년 라데온 X1000 시리즈부터 도입된 기술로, 2007년 중순부터 UVD라는 이름으로, 2017년 10월부터 VCN라는 이름으로 사용되고 있는 기술.
  • NVIDIA PureVideo: 2004년 지포스 6600 시리즈부터 적용된 기술.
이런 가속 버프를 받으려면 해당 기술을 지원하는 그래픽카드를 장착하고 셋팅해야 가능하다. 설령 H.264 하드웨어 가속을 지원하는 보급형 그래픽카드가 장착된 PC가 많았더라도 엔비디아 제어판, 동영상 플레이어의 코덱 설정 등 그걸 다룰 줄 아는 일반인들이 상대적으로 많지 않고 운영체제 자체적으로 지원하지 않았을 때라 널리 쓰이기까지 규격 발표 이후 6년 넘게 걸렸던 것이다. 그래도 기술의 발전은 무서운 것이어서 2009년에 출시된 Windows 7에 들어서야 H.264용 코덱이 기본으로 내장되고, 그 시기에 대응 소프트웨어도 널리 보급된데다 CPU 성능도 나날이 높아져서 널리 사용하게 되었다.
Windows 7이 제대로 돌아갈 성능이라면 이 코덱의 영상 재생에는 기본적인 문제는 없다. Windows 7 운영체제에 2006년 7월 이후에 출시된 중급형 라인 이상의 코어2 듀오 CPU라면 무난하게 1080p 영상을 감상할 수 있다. 2011년부터는 PC뿐만 아니라 일부 하이엔드급 스마트폰으로도 웬만한 1080p 30fps 정도는 가뿐하게 돌리는 편이다. 단, '''4K UHD(3840×2160) 이상의 고해상도'''에서는 어지간한 컴퓨터에서도 재생이 어려운 좌절영상이 되기 쉽다.

5. 프로파일


H.264는 개발될 당시의 컴퓨터 사양이 부족하다는 것을 알았고 프로파일과 레벨별로 나누어 해당되는 몇가지 규격에 맞추면 저사양에서도 무리없게 돌릴 수 있도록 설계가 되어 있다. 이와 관련된 내용은 영어 위키백과에 상세히 나와 있다.참고 물론 고사양 용으로 만들어진 영상을 저사양에서도 돌릴 수 있다는 말은 아니라는 게 함정. 디블럭(Deblock) 필터 같은 걸 꺼서 저사양에서도 안 끊기게 보는 방법도 있지만 대신 깍두기 현상이 난무하게 되는 단점이 있다.
만일 H.264 영상이 제대로 돌아가지 않아 고민이라면 LAVFilters 항목을 참고

5.1. 종류


  • Baseline
  • Constrained Baseline
  • Main
  • Extended
  • High
  • High 10
  • High 10 intra
  • High 4:2:2
  • High 4:2:2 intra
  • High 4:4:4 Predictive
  • High 4:4:4 intra
  • CAVLC 4:4:4 intra
  • Multiview High

6. 버전



6.1. Version 1 (2003년)


  • Baseline : H.264 중에서 복잡도가 가장 낮은 타입으로, 주로 스마트폰, 태블릿, 동영상 기능이 있는 MP3 플레이어에서 재생할 동영상에 많이 쓰인다. 화질이 중요하지 않고, 모바일 기기에 주로 재생할 것이라면 이 타입으로 인코딩하는 것이 좋다. 하지만 2015년 기준으로 스마트폰과 태블릿의 성능이 많이 향상되어 초저가형이 아닌 이상 굳이 이 프로파일을 고집할 필요는 없다. EBSi의 인강 동영상 파일은 720p급 조차도 이 프로파일로 인코딩되어 있다.
  • Main : 중간 타입. 480p 동영상은 이쪽이 많다. SD화질 방송용으로도 쓰인다.
  • Extended : 데이터가 일부분 누락되어도 최대한 재생이 되도록 스트리밍에 최적화 되어있다.

6.2. Version 2 (2004년)


기존 Version 1의 마이너 체인지 버전.

6.3. Version 3 (2005년)


  • High : HD급 혹은 Full HD급 고화질 동영상에 많이 쓰인다. 연산이 가장 많이 소요되는 타입이라 저사양 기기에서 사용 시 CPU에 무리를 줄 수 있다. 720p 이상 동영상에 많으며 1080p에서는 사실상 표준이다. Full HD급 최신 태블릿은 High를 지원하므로, High로 맞춰 인코딩 하자.
  • High 10
  • High 4:2:2
  • High 4:4:4

6.4. Version 4 (2005년)


기존 Version 3의 마이너 체인지 버전. 새로운 종횡비가 일부 추가.

6.5. Version 5, 6 (2006년)


Version 3부터 존재했던 High 4:4:4 프로필이 제거되고 확장된 색역을 추가.

6.6. Version 7 (2007년)


  • High 4:4:4 Predictive
  • High 10 Intra
  • High 4:2:2 Intra
  • High 4:4:4 Intra
  • CAVLC 4:4:4 Intra

6.7. Version 8 (2007년)


  • Scalable Video Coding(SVC) 기술이 추가.
  • Scalable Baseline
  • Scalable High
  • Scalable High Intra

6.8. Version 9 (2009년)


기존 Version 8의 마이너 체인지 버전.

6.9. Version 10 (2009년)


  • Constrained Baseline

6.10. Version 11 (2009년)


  • Multiview Video Coding(MVC) 기술이 추가.
  • Multiview High

6.11. Version 12, 13 (2010년)


  • Stereo High

6.12. Version 14, 15 (2011년)


  • 4K UHD 해상도를 지원하는 Level 5.x 항목이 추가.
  • Progressive High

6.13. Version 16 (2012년)


  • Constrained High
  • Scalable Constrained Baseline
  • Scalable Constrained High

6.14. Version 17, 18, 19, 20 (2013년)


  • 3D 스테레오스코픽 비디오를 위한 깊이 맵 데이터 코딩이 추가.
  • 멀티뷰 비디오를 위한 확장된 서브-비트스트림의 에러 검출 기능이 추가.
  • 4K UHD TV를 위한 Rec. 2020 색공간 추가.
  • Multiview Depth High

6.15. Version 21, 22 (2014년)


  • Enhanced Multiview Depth High
  • Multi-resolution Frame Compatible(MFC) High

6.16. Version 23 (2016년)



6.17. Version 24 (2016년)


  • 8K 해상도 지원 (레벨 6, 6.1, 6.2)

6.18. Version 25 (2017년)



6.19. Version 26 (2019년)



7. 레벨


Level
최대 비트레이트
최대 해상도
최대 프레임속도
Baseline Profile
Main Profile
Extended Profile
High Profile
High 10 Profile
High 422 Profile
High 444 Profile
1.0
64kbps
80kbps
192kbps
256kbps
128x96 30.9fps
176×144 15.0fps
1.0b
128kbps
160kbps
384kbps
512kbps
1.1
192kbps
240kbps
576kbps
768kbps
176×144 30.3fps
320x240 10.0fps
352x288 7.5fps
1.2
384kbps
480kbps
1,152kbps
1,536kbps
320x240 20.0fps
352x288 15.2fps
1.3
768kbps
960kbps
2,304kbps
3,072kbps
320x240 36.0fps
352x288 30.0fps
2.0
2Mbps
2.5Mbps
6Mbps
8Mbps
2.1
4Mbps
5Mbps
12Mbps
16Mbps
352x480 30.0fps
352x576 25.0fps
2.2
352x480 30.7fps
352x576 25.6fps
720×480 15.0fps
720×576 12.5fps
3.0
10Mbps
12.5Mbps
30Mbps
40Mbps
352x480 61.4fps
352x576 51.1fps
'''720×480 30.0fps'''
720×576 25.0fps
3.1
14Mbps
17.5Mbps
42Mbps
56Mbps
720×480 80.0fps
720×576 66.7fps
'''1280×720 30.0fps'''
3.2
20Mbps
25Mbps
60Mbps
80Mbps
'''1280×720 60.0fps'''
1280x1024 42.2fps
4.0
1280×720 68.3fps
'''1920x1080 30.1fps'''
2048x1024 30.0fps
4.1
50Mbps
62.5Mbps
150Mbps
200Mbps
4.2
1280×720 145.1fps
'''1920x1080 64.0fps'''
2048x1080 60.0fps
5.0
135Mbps
168.75Mbps
405Mbps
540Mbps
1920×1080 72.3fps
2048x1024 72.0fps
1920x1080 67.8fps
2560×1920 30.7fps
3672×1536 26.7fps
5.1
240Mbps
300Mbps
720Mbps
960Mbps
1920×1080 120.5fps
2560×1920 51.2fps
'''3840×2160 31.7fps'''
4096×2048 30.0fps
4096×2160 28.5fps
4096×2304 26.7fps
5.2
1920×1080 172.0fps
2560×1920 108.0fps
'''3840×2160 66.8fps'''
4096×2048 63.3fps
4096×2160 60.0fps
4096×2304 56.3fps
6.0
3840x2160 128.9fps
7680x4320 32.2fps
8192x4320 30.2fps
6.1
480Mbps
600Mbps
1,440Mbps
1,920Mbps
3840x2160 257.9fps
7680x4320 64.5fps
8192x4320 60.4fps
6.2
800Mbps
1Gbps
2.4Gbps
3.2Gbps
3840x2160 300fps
7680x4320 128.9fps
8192x4320 120.9fps

8. 여담


  • AVI, MKV, MP4 컨테이너에서 지원하고 있다.
  • x264의 경우 초창기에는 기본 옵션이 최적화되지 못해서 그냥 인코딩하면 화질이 별로였지만 2009년 이후로는 최적화된 preset을 내장시켰기 때문에 기본값으로 대충 인코딩해도 최상의 결과를 얻을 수 있다.
  • 쿼드코어의 인텔 코어 i5급은 되어야 720p 30fps 영상을 실시간으로 인코딩할 수 있다. 스마트폰은 훨씬 구린 CPU로 4K급 인코딩이 가능한 기종이 있는데 그건 전용 하드웨어(DSP)와 그 하드웨어에 최적화된 코덱을 사용하기 때문이다.
  • H264 코덱 중 Cisco Systems의 OpenH264는 해당 바이너리(소스코드 아님)를 사용하는 모든 소프트웨어 프로젝트에 대해 MPEG LA를 사용하는 로열티를 대신 지불해준다. 즉 바이너리(DLL 등)만 사용하는 경우에는 무료로 사용 가능한 인코딩 모듈.
  • 2023년~2027년 사이 주요 특허가 만료될 예정이다.
[1] avc1이라고 표현되기도 한다.[2] 일반적인 DVD는 최대 135분(2시간 15분) 분량을 담을 수 있다.


분류