H264系列--简单的视频编码历史介绍

Android FFmpeg专题结构

什么是视频编码

所谓视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式

常见视频编码格式

编码格式有很多,如下图:


视频编码格式.png

目前比较常用的编码有

  • H26x系列 : 由ITU(国际电传视讯联盟)主导,侧重网络传输
  • MPEG系列:由ISO(国际标准组织机构)下属的MPEG(运动图象专家组)开发
  • PV8/PV9:VP8是类似于 H.264 的另一种视频编码,由 On2 公司开发。后来 Google 收购了 On2. 主要应用在webrtc中,音视频通话一般都是基于webrtc实现的

目前在这些众多编码格式中, 做音视频开发最关注的应该就是H.264/AVC和H.265/HEVC

H.264/AVC 和 H.265/HEVC 历史

对于未入门的人可能会对命名有点疑惑,比如对于H.264, 还会看到有些标签还写成MPEG-4/AVC. 前面我们讲过H.26X系统由ITU主导开发, MPEG系列由ISO主导开发. 而H.264 和H.265 是由ITU和ISO共同开发的, H.264,H.265是ITU组织对着两种编码格式的命名, MPEG-4/AVC ,MPEG-4/HEVC是ISO组织对这两种编码格式的命名.

如果想利用Android MediaCodec对H.264 进行编解码,传进去的参数即为video/avc, H.265 即为 video/hevc

 try {
    MediaCodec mediaCodec = MediaCodec.createDecoderByType("video/avc");
  } catch (IOException e) {
    e.printStackTrace();
  }

下面是百度百科上对ITU 和 ISO的一个简介:

MPEG系列

由ISO(国际标准组织机构)下属的MPEG(运动图象专家组)开发 视频编码方面主要是Mpeg1(vcd)、Mpeg2(DVD)、Mpeg4(DVDRIP使用的都是它的变种,如:divx,xvid等)、Mpeg4 AVC;音频编码方面主要是MPEG Audio Layer 1/2、MPEG Audio Layer 3(mp3)、MPEG-2 AAC 、MPEG-4 AAC等。注意:DVD音频没有采用Mpeg的。MPEG是运动图像专家组(Moving Picture Experts Group)的缩写,于1988年成立,是为数字视/音频制定压缩标准的专家组,已拥有300多名成员,包括IBM、SUN、BBC、NEC、INTEL、AT&T等世界知名公司。MPEG组织最初得到的授权是制定用于“活动图像”编码的各种标准,随后扩充为“及其伴随的音频”及其组合编码。后来针对不同的应用需求,解除了“用于数字存储媒体”的限制,成为制定“活动图像和音频编码标准的组织。MPEG组织制定的各个标准都有不同的目标和应用,已提出MPEG-1、MPEG-2、MPEG-4、MPEG-7、MPEG-21标准

H.26X系列

由ITU(国际电传视讯联盟)主导,侧重网络传输,(注只是视频编码),ITU-T 的标准包括 H.261、H.263、H.264,主要应用于实时视频通信领域,如视频会议;MPEG 系列标准是由ISO/IEC制定的,主要应用于视频存储(DVD)、广播电视、互联网或无线网络的流媒体等。两个组织也共同制定了一些标准,H.262标准等同于 MPEG-2的视频编码标准,而H.264标准则被纳入 MPEG-4的第10部分

简单用两幅图表示一下

两大组织.png
编码历史.jpg

H.264 和 H.265

这里只做简单字面区分,具体细节后面文章进行详述.

  • H.265/HEVC的编码架构大致上和H.264/AVC的架构相似.
  • 在相同的图象质量下,相比于H.264,通过H.265编码的视频大小将减少大约39-44%.
  • 在码率减少51-74%的情况下,H.265编码视频的质量还能与H.264编码视频近似甚至更好,其本质上说是比预期的信噪比(PSNR)要好.
  • H.265的提出主要是针对 4k, 8k分辨率的发展, 对于一些有经验的,可能还记得一部蓝光或4k电影,采用H.264编码都需要几十G的大小.

既然H.265 比H.264 的优势这么大,那么为什么没有普及呢. 可能主要原因是H.265的编解码难度比较大,另一方面也可能是之前的编码已经广泛得到了应用,替换成本比较高

推荐阅读更多精彩内容