H.264/MPEG-4 AVC

website = https://www.itu.int/rec/T-REC-H.264 섬네일 블록 단위 움직임 보상 기반의 영상 압축 표준인 **H.264** 또는 **MPEG-4 파트 10, Advanced Video Coding** (**MPEG-4 AVC**)는 동영상 녹화, 압축, 배포를 위한 방식들 중 현재 가장 보편적으로 사용되고 있는 포맷이다. H.264/AVC 프로젝트의 목표는 기존의 표준들보다 실질적으로 낮은 비트율(다시 말해, MPEG-2, H.263, 또는 MPEG-4 Part 2의 비트율보다 적거나 절반)로써, 수많은 비실용적인 설계 복잡도 증가와 개발에 지나치게 고비용이 들이지 않고 훌륭한 비디오 품질을 제공할 수 있는 표준을 만드는 것이었다. 추가 목표로는 높은 비트율과 낮은 비트율, 높은 해상도와 낮은 해상도의 비디오들, 방송, DVD 저장장치들, RTP/IP 네트워크 패킷들, 그리고 ITU-T 멀티미디어 전화 시스템들과 같은 매우 다양한 애플리케이션들과 네트워크와 시스템들에 적용시킬수 있는 표준으로 채택되기에 충분한 유연성을 제공하는 것이었다. H.264 표준은 다양한 수의 프로파일들의 "표준들의 집합체"로 볼 수 있다. 하나의 재생기(Decoder)는 이 프로파일 전부를 필요로 하지는 않지만, 적어도 하나의 프로파일로 재생된다. 그리고 재생기 규격은 프로파일들을 해독될 수 있게 기술된다. H.264는 보통 손실압축 용도로 사용될 수도 있지만, 손실 영상 내에 실제로 무손실압축 영역을 만들거나 드물게 전체를 무손실 인코딩 하는 것도 가능하다. 이 표준은 ITU-T의 비디오 코딩 전문가 그룹(Video Coding Experts Group, VCEG)과 ISO/IEC의 동화상 전문가 그룹(Moving Picture Experts Group, MPEG)이 공동으로 조인트 비디오 팀(Joint Video Team, JVT)을 구성하고 표준화를 진행한 결과물로 나온 것이다. 그러므로 ITU-T의 H.264와 ISO/IEC의 **MPEG-4 파트 10 AVC**(공식적으로는 ISO/IEC 14496-10-MPEG-4 파트 10, 고급 비디오 부호화)은 기술적으로 동일한 표준안이다. 표준안은 2003년 5월에 발표되었다. H.264는 블루레이 디스크를 위한 코덱 표준 중 하나로 잘 알려져 있다. 모든 블루레이 디스크 플레이어는 항상 H.264를 디코딩할 수 있어야 하기 때문이다. H.264는 또한 비메오, 유튜브, 아이튠즈 스토어 영상 등의 인터넷 스트리밍 서비스와 어도비 플래시 플레이어 및 마이크로소프트 실버라이트 등의 웹 소프트웨어, 다양한 HDTV 방송(지상파: ATSC, ISDB-T, DVB-T, DVB-T2 케이블: DVB-C 위성: DVB-S, DVB-S2)에 널리 사용된다. H.264는 다양한 단체가 소유 한 특허로 보호된다. H.264에 필수적인 대부분의 특허는 (전부는 아니지만) MPEG LAurl-status=dead 특허 풀에서 관리한다. 특허 된 H.264 기술을 상업적으로 사용하려면 MPEG LA 및 기타 특허 소유자에게 로열티를 지불해야한다. H.264를 채용 한 제품을 구입 한 소비자에게 별도로 사용료를 부과 할 수는 없지만, 제품 가격에 그 비용이 포함된다. MPEG LA는 최종 사용자가 인터넷 비디오 스트리밍을 위한 H.264 기술 사용을 무료로 허용했다. Cisco Systems는 오픈 소스로 공개된 H.264 인코더 용 바이너리(OpenH264)access-date=2016-04-20 사용자들을 대신하여 MPEG LA에 로열티를 지불한다. H.264 알고리즘에 영향을 미치거나 기술하는 특허들은 100 개가 넘는다. 그 중 일부는 특허 만료가 되었지만, 대부분은 2028년 만료 기점을 가진다.
# 개요
H.264는 국제 표준화기구인 ITU-T와 ISO에서 공동으로 제안한 차세대 동영상 압축기술로 대개 H.264/AVC 혹은 AVC/H.264, H.264/MPEG-4 AVC, MPEG-4/H.264 AVC라고 불린다. MPEG3에 비해 40% 정도, MPEG2에 비해 60% 이상 전송속도가 빠르다. H.264는 MPEG2 등 기존의 동영상 압축 표준에 비해 유연성과 압축 효율이 높지만 인코딩이나 디코딩을 구현할 때 복잡도가 증가한다. MPEG측에서는 MPEG-4 part 10의 명칭인 AVC(Advanced Video Coding, 고급 영상 부호화)라고 부르고 있다.
# 명명
H.264 이름은 VCEG(Video Coding Experts Group) 비디오 코딩 표준의 H.26x 라인의 멤버 인 ITU-T 명명 표준을 따른다. MPEG-4 AVC 이름은 MPEG-4로 알려진 표준 제품군인 ISO/IEC 14496의 파트10 인 ISO/IEC MPEG의 명명 표준과 관련된다. 이 표준은 ITU-T에서 VCEG 프로젝트 인 H.26L로 초기 개발 작업을 한 후 VCEG와 MPEG의 파트너십으로 공동 개발되었다. 따라서 일반적으로 업적을 강조하기 위해 H.264/AVC, AVC/H.264, H.264/MPEG-4 AVC 또는 MPEG-4/H.264 AVC와 같은 이름으로 참조하여 명명했다. 때로는 이를 개발한 JVT(Joint Video Team) 조직과 관련하여 "JVT 코덱"이라고도 한다. MPEG-2로 알려진 비디오 압축 표준은 MPEG-2 비디오가 ITU-T 커뮤니티에 H.262로 알려져있는 MPEG와 ITU-T 간의 파트너쉽에서 비롯된 것이다.accessdate=2007-04-15 일부 소프트웨어 프로그램 (예 : VLC 미디어 플레이어)는 표준을 AVC1로 내부적으로 식별한다.
# 역사
1998년 초, 비디오 코딩 전문가 그룹(VCEG-ITU-T SG16 Q.6)은 다양한 어플리케이션에서 다른 기존의 비디오 코딩 표준과 비교하여 두 배의 코딩 효율을 목표로할 (현수준에 필요한 비트 전송률을 절반으로 줄이는) H.26L이라는 프로젝트에 대한 제안을 발표했다. VCEG는 Gary Sullivan(Microsoft, 이전의 PictureTel, U.S.).이 의장직을 맡았다. 새 표준에 대한 첫 번째 초안 설계는 1999년 8월에 채택되었다. 2000년 Thomas Wiegand (Heinrich Hertz Institute, Germany)는 VCEG 공동 의장이되었다. 2001년 12월, VCEG와 MovingPictureExpertGroup(MPEG/ISO/IECJTC1/JTC298/SM. WG/11)은 비디오 코딩 표준을 최종 확정하기 위한 선언문과 함께 공동 비디오 팀(Joint Video Team/JVT)을 구성했다. 이 규격에 대한 정식 승인은 2003년 3월에 이루어졌다. JVT은 Gary Sullivan, Thomas Wiegand, 그리고 Ajay Luthra (Motorola, U.S.: 이후 Arris, U.S.)이 의장이 되었다. 2004년 6월에는 Fidelity range extensions(FRext)프로젝트가 마무리되었다. 2005년 1월부터 2007년 11월까지 JVTsms Scalable Video Coding(SVC)이라는 Annex(G)에 의해 확장성으로 H.264.AVC의 확장에 따른 확장에 작업하고 있었다. JVT관리 팀은 Jens-RainerOhm(Aachen University, Germany)에 의해 확장되었다. 2006년 7월부터 2009년 11월까지 JVT은 TV및 3DTV의 무료 시청 방향으로 H.264/ATCUC의 확장인 Multiview Video Coding(MVC)에 관한 작업을 하였다. 그 작업에는 표준의 두가지 새로운 프로파일, Multiview High Profile과 Stereo High Profile의 개발이 포함되었다.
# 특징
H.264/AVC는 기존의 표준(MPEG-2, H.263, MPEG-4 파트 2)과 비교했을 때, 낮은 (절반 이하의) 비트레이트에서 비슷하거나 더 좋은 화질을 얻을 수 있도록 개발되었다. 그리고 구현할 때에 설계 상의 유연성도 고려되었다. 또 다른 목표로서 다양한 시스템에 적용될 수 있도록 하였고, (보기: 높고 낮은 해상도, 높고 낮은 비트레이트 영상) 다양한 종류의 네트워크와 시스템에서 작동하도록 하였다. (보기: 방송, DVD 저장, RTP/IP 패킷 네트워크, ITU-T 화상 전화) 2003년 표준안 발표 이후, JVT는 H.264에 대한 확장 표준안을 개발하였으며, 그 결과 FRExt(Fidelity Range Extensions)라고 부르는 표준을 기반한 확장을 발표하였다(~ 2007년 버전 7). 이 확장들은 샘플 정확도를 향상시켜서 고선명 비디오를 얻을 수 있게 하고(10,12비트 코딩 포함) 높은 해상도, 색 정보를 포함한다(YUV 4:2:2, YUV 4:4:4 같은). 또한 SVC(Scalable Video Coding) 모드를 추가로 지원하였으며(2007년 버전 8), 2009년 다중 카메라를 이용할 수 있는 MVC(Multiview Video Coding) 확장안이 발표되었다.
# 프로파일과 레벨
범용 비디오 부호화 기술을 사용 영역에 맞게 특정 기술들만을 사용할 수 있도록 설정 해둔 이것을 프로파일이라고 한다. 최초 발표된 표준에는 모바일 방송과 같은 저전력, 저해상도에 적합한 베이스라인(Baseline) 프로파일과, 압축률을 최대한 높이기 위한 기술들로 이루어진 메인 프로파일, 스트리밍 환경에 적합한 기술들이 추가된 확장(Extended) 프로파일의 세 가지가 있었으며 표준안이 개정되면서 몇 가지의 프로파일들이 추가되었다.
## 프로파일
현재 H.264/AVC에서 제공되고 있는 프로파일은 다음과 같다. {| class=wikitable |- ! colspan = "2" | 프로파일 번호 || 프로파일 이름 || 주요 특징 |- | rowspan="4" | || 66 || Baseline || 저전력, 저해상도, 낮은 딜레이를 가짐. CAVLC만 사용, B픽처 사용하지 않음 |- | 66 || Constrained Baseline || Baseline과 Main프로파일의 교집합이 되는 기술만 사용 |- | 77 || Main || 산술부호화 및 B픽처 사용으로 효율을 높임 |- | 88 || Extended || 스트리밍을 위한 기술 및 오류 내성기술 사용 |- | rowspan="8" | FRExT || 100 || High || 8x8 DCT 사용,8x8 화면내 예측 사용 |- | 110 || High 10 || High 프로파일 + 10bit/pixel인 영상 지원 |- | 110 || High 10 Intra || High10 프로파일에서 화면 내 예측 기술만 사용 |- | 122 || High 4:2:2 || High10 프로파일 + 4:2:2 컬러 포맷 지원 |- | 122 || High 4:2:2 Intra || High 4:2:2에서 화면 내 예측 기술만 사용 |- | 244 || High 4:4:4 Predictive || 최대 14bit/pixel 지원, 4:4:4 컬러 포맷 지원 |- | 244 || High 4:4:4 Intra || High 4:4:4 Predictive에서 화면 내 예측 기술만 지원 |- | 44 || CAVLC 4:4:4 Intra || High 4:4:4 Intra에서 CAVLC로 사용(CABAC사용하지 않음) |- |}
## 레벨
{| class="wikitable" |+ 최대 속성값의 레벨at=See Tables A-1, A-6 and A-7 for the tabulated level-dependent capabilities. |- ! 레벨
! 최대
디코딩 속도
(매크로블록/초) ! 최대
프레임 크기
(매크로블록) ! 최대 비디오
비트레이트 (비디오
코딩 레이어) (VCL)
(Constrained Baseline,
Baseline, Extended
, Main Profiles)
(kbits/초) ! 고해상도 예시
@ 최고 프레임레이트
(최대 저장 프레임)

추가 상세 정보 보기/숨기기

|- ! 1 | 1,485 | 99 | 64 |

128×96@30.9 (8)

176×144@15.0 (4) |- ! 1b | 1,485 | 99 | 128 |

128×96@30.9 (8)

176×144@15.0 (4) |- ! 1.1 | 3,000 | 396 | 192 |

176×144@30.3 (9)
320×240@10.0 (3)

352×288@7.5 (2) |- ! 1.2 | 6,000 | 396 | 384 |

320×240@20.0 (7)

352×288@15.2 (6) |- ! 1.3 | 11,880 | 396 | 768 |

320×240@36.0 (7)

352×288@30.0 (6) |- ! 2 | 11,880 | 396 | 2,000 |

320×240@36.0 (7)

352×288@30.0 (6) |- ! 2.1 | 19,800 | 792 | 4,000 |

352×480@30.0 (7)

352×576@25.0 (6) |- ! 2.2 | 20,250 | 1,620 | 4,000 |

352×480@30.7 (12)
352×576@25.6 (10)
720×480@15.0 (6)

720×576@12.5 (5) |- ! 3 | 40,500 | 1,620 | 10,000 |

352×480@61.4 (12)
352×576@51.1 (10)
720×480@30.0 (6)

720×576@25.0 (5) |- ! 3.1 | 108,000 | 3,600 | 14,000 |

720×480@80.0 (13)
720×576@66.7 (11)

1,280×720@30.0 (5) |- ! 3.2 | 216,000 | 5,120 | 20,000 |

1,280×720@60.0 (5)

1,280×1,024@42.2 (4) |- ! 4 | 245,760 | 8,192 | 20,000 |

1,280×720@68.3 (9)
1,920×1,080@30.1 (4)

2,048×1,024@30.0 (4) |- ! 4.1 | 245,760 | 8,192 | 50,000 |

1,280×720@68.3 (9)
1,920×1,080@30.1 (4)

2,048×1,024@30.0 (4) |- ! 4.2 | 522,240 | 8,704 | 50,000 |

1,280×720@145.1 (9)
1,920×1,080@64.0 (4)

2,048×1,080@60.0 (4) |- ! 5 | 589,824 | 22,080 | 135,000 |

1,920×1,080@72.3 (13)
2,048×1,024@72.0 (13)
2,048×1,080@67.8 (12)
2,560×1,920@30.7 (5)

3,672×1,536@26.7 (5) |- ! 5.1 | 983,040 | 36,864 | 240,000 |

1,920×1,080@120.5 (16)
2,560×1,920@51.2 (9)
3,840×2,160@31.7 (5)
4,096×2,048@30.0 (5)
4,096×2,160@28.5 (5)

4,096×2,304@26.7 (5) |- ! 5.2 | 2,073,600 | 36,864 | 240,000 |

1,920×1,080@172.0 (16)
2,560×1,920@108.0 (9)
3,840×2,160@66.8 (5)
4,096×2,048@63.3 (5)
4,096×2,160@60.0 (5)

4,096×2,304@56.3 (5) |- ! 6 | 4,177,920 | 139,264 | 240,000 |

3,840×2,160@128.9 (16)
7,680×4,320@32.2 (5)

8,192×4,320@30.2 (5) |- ! 6.1 | 8,355,840 | 139,264 | 480,000 |

3,840×2,160@257.9 (16)
7,680×4,320@64.5 (5)

8,192×4,320@60.4 (5) |- ! 6.2 | 16,711,680 | 139,264 | 800,000 |

3,840×2,160@300.0 (16)
7,680×4,320@128.9 (5)

8,192×4,320@120.9 (5) |}
# 버전
H.264/AVC는 2003년 표준안 발표 이후, 여러 번의 개선 및 기술 추가작업을 진행하여 왔다. * 버전 1: 2003년 5월 발표된 최초 출판 버전. Baseline, Main, Extended의 세 가지 프로파일을 포함하고 있다. * 버전 2: 2004년 5월 발표되었으며, 출판시의 몇 가지 오류에 대한 수정이 있었다. * 버전 3: 2005년 5월 작성되었으며, 기존 출판오류 수정 및 첫 번째 개정안으로서 FRExT(Fidelity Range Extensions) 프로파일을 추가하였다. * 버전 4: 2005년 9월 발표되었으며, 수정안(corrigendum) 및 개정안(amendment)이 통합되었다. * 버전 5: FRExT 프로파일 중 High 4:4:4 프로파일이 제거되었다. * 버전 6: 2006년 6월 버전 5와 함께 발표되었으며, 색상 공간 지원 기능을 추가하였다. * 버전 7: 2007년 4월 발표되었으며, 개정안에 5개의 프로파일이 포함되었다.(High 10 Intra, High 4:2:2 Intra, High 4:4:4 Intra, CAVLC 4:4:4 Intra, High 4:4:4 Predictive) * 버전 8: 2007년 11월에 발표되었으며, 세 개의 스케일러블 프로파일(Scalable Baseline, Scalable High, and Scalable High Intra)을 지원하여 Scalable Video Coding(SVC)를 지원하였다. * 버전 9: 몇 가지 오류에 대한 수정을 하여 2009년 1월 발표하였다. * 버전 10: 다중 카메라를 이용할 수 있는 Multiview Video Coding(MVC) 프로파일(Multiview High)을 추가하였다. * 버전 11: 버전 10과 함께 Constrained Baseline 추가하여 2009년 3월 발표하였다.
# 라이선스
H.264에는 다수의 특허권이 포함되어 있으며, 이 규격을 채용한 하드웨어 제품/소프트웨어 제품을 제조하는 기업은 특허 사용료를 지불해야 한다. 이 라이선스에 대한 관리는 특허 풀인 MPEG - LA 컨소시엄이 특허권자의 위탁을 받아 업무를 대행하고 있다.
# 이용

## 사용율
2003년 발표 후, 고사양의 필요로 사용률이 지지부진 하였다. 사용률 급증의 시초는 2009년 Windows7에 H.264 코덱을 기본 탑재함에 있다. 2010년 PC용 소프트웨어 플레이어 보급이 대중화되었으며, 2011년 스마트폰 보급 대중화와 함께 현재까지 가장 보편적인 코덱으로 자리매김 하고 있다.
## 브라우저
어도비 플래시가 H.264를 지원하여 현재 인터넷에서 가장 많이 사용되고 있는 동영상 규격은 H.264이다. 그러나 특허 사용료 문제로 인해 웹브라우저가 표준으로 지원하는 동영상 압축 표준으로는 H.264가 여전히 논란이 되고 있다. 웹 표시 차세대 규격인 HTML5 에서는 비디오 요소로 동영상 재생을 하는 기능이 있어, 이것에 사용하는 동영상 포맷에 대해 애플과 마이크로소프트는 H.264를 추진하고 있다. 그러나 이미 HTML5에 대응하고있는 모질라 파이어폭스와 오페라, 구글 크롬은 모두 video 태그를 사용한 동영상 재생 기능 H.264를 표준으로 지원하지 않고 WebM을 지원하고 있다. 초기에는 구글 크롬도 H.264를 지원했지만, 구글은 2011년 1월 14일, 향후 특허 사용료가 요구되는 H.264을 피하고, 특허 자유 규격을 요구 WebM을 중심으로 움직임에 협조한다는 방침을 발표하면서, 크롬 11에서 지원을 종료했다. 현재 HTML4와 같은 브라우저는 H.264뿐만 아니라 특정 동영상이나 정지 화면, 음성 각 압축 표준을 표준으로 대응하지 않고도 플러그인에서 지원할 수 많은 HTML5 되어도 선택의 여지가 남아 있는 것으로 간주되고 있다. 마이크로소프트는 인터넷 익스플로러 9에서 H.264를 표준으로 지원하고 WebM을 플러그인으로 지원하고 있다.