Difference between revisions of "H.264"

From MultimediaWiki
Jump to navigation Jump to search
m (comment on how cool it is to name your codec "advanced")
(remove dead link)
 
(12 intermediate revisions by 7 users not shown)
Line 1: Line 1:
* FOURCCs: AVC1, DAVC, H264, X264
* FOURCCs: AVC1, DAVC, H264, X264, VSSH
* Matroska CodecID: V_MPEG4/ISO/AVC
* Matroska CodecID: V_MPEG4/ISO/AVC
* Technical Description: [http://students.washington.edu/lorenm/src/x264/ITU-T_H264.pdf.gz http://students.washington.edu/lorenm/src/x264/ITU-T_H264.pdf.gz]
* Technical Description: [http://akuvian.org/src/x264/ITU-T_H264.pdf.gz http://akuvian.org/src/x264/ITU-T_H264.pdf.gz]
* Draft Specs from 2003: [http://www.dspr.com/www/technology/JVT-G050.pdf http://www.dspr.com/www/technology/JVT-G050.pdf]
* Specs : http://www.itu.int/rec/T-REC-H.264/en
* Reference Decoder : http://iphome.hhi.de/suehring/tml/
* Samples:
** AVC1: http://samples.mplayerhq.hu/V-codecs/AVC1/
** H264: http://samples.mplayerhq.hu/V-codecs/h264/
** VSSH: http://samples.mplayerhq.hu/V-codecs/VSSH/


MPEG-4 part 10 video, also known as AVC, or "Advanced Video Coding." Gee, the codec even has the word "Advanced" in the name - it '''must''' be good!
MPEG-4 part 10 video, also known as AVC, or "Advanced Video Coding."  
 
==AVC vs. H.264==
AVC and H.264 are synonymous.  The standard is known by the full names "ISO/IEC 14496-10" and "ITU-T Recommendation H.264".  In addition, a number of alternate names are used (or have been) in reference to this standard.  These include:
 
* MPEG-4 part 10
* MPEG-4 AVC
* AVC
* MPEG-4 (in the broadcasting world MPEG4 part 2 is ignored)
* H.264
* JVT (Joint Video Team, nowadays rarely used referring to actual spec)
* H.26L (early drafts went by this name)
 
All of the above (and those I've missed) include the Annex B byte-stream format. Unlike earlier MPEG1/2/4 and H.26x codecs, the H.264 specification proper does not define a full bit-stream syntax.  It describes a number of NAL (Network Abstraction Layer) units, a sequence of which can be decoded into video frames.  These NAL units have no boundary markers, and rely on some unspecified format to provide framing.
 
Annex B of of the document specifies one such format, which wraps NAL units in a format resembling a traditional MPEG video elementary stream, thus making it suitable for use with containers like MPEG PS/TS unable to provide the required framing.  Other formats, such as ISO base media based formats, are able to properly separate the NAL units and do not need the Annex B wrapping.
 
The H.264 spec suffers from a deficiency. It defines several header-type NAL units ([[SPS]] and [[PPS]]) without specifying how to pack them into the single codec data field available in most containers.  Fortunately, most containers seem to have adopted the packing used by the ISO format known as [[MP4]].
 
==Extensions to H.264==
 
* [[Scalable_Video_Coding]] has been added to H.264: the reference implementation is here: http://ip.hhi.de/imagecom_G1/savce/downloads/SVC-Reference-Software.htm


[[Category:Video Codecs]]
[[Category:Video Codecs]]

Latest revision as of 11:01, 20 June 2016

MPEG-4 part 10 video, also known as AVC, or "Advanced Video Coding."

AVC vs. H.264

AVC and H.264 are synonymous. The standard is known by the full names "ISO/IEC 14496-10" and "ITU-T Recommendation H.264". In addition, a number of alternate names are used (or have been) in reference to this standard. These include:

  • MPEG-4 part 10
  • MPEG-4 AVC
  • AVC
  • MPEG-4 (in the broadcasting world MPEG4 part 2 is ignored)
  • H.264
  • JVT (Joint Video Team, nowadays rarely used referring to actual spec)
  • H.26L (early drafts went by this name)

All of the above (and those I've missed) include the Annex B byte-stream format. Unlike earlier MPEG1/2/4 and H.26x codecs, the H.264 specification proper does not define a full bit-stream syntax. It describes a number of NAL (Network Abstraction Layer) units, a sequence of which can be decoded into video frames. These NAL units have no boundary markers, and rely on some unspecified format to provide framing.

Annex B of of the document specifies one such format, which wraps NAL units in a format resembling a traditional MPEG video elementary stream, thus making it suitable for use with containers like MPEG PS/TS unable to provide the required framing. Other formats, such as ISO base media based formats, are able to properly separate the NAL units and do not need the Annex B wrapping.

The H.264 spec suffers from a deficiency. It defines several header-type NAL units (SPS and PPS) without specifying how to pack them into the single codec data field available in most containers. Fortunately, most containers seem to have adopted the packing used by the ISO format known as MP4.

Extensions to H.264