H.264/H.265/H.266音视频编码基础

Posted xiangzhihong8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了H.264/H.265/H.266音视频编码基础相关的知识,希望对你有一定的参考价值。

一、背景

跟音频编码一样,视频编码最重要的目的也是为了进行数据压缩,以此来降低数据传输和存储成本。

以一路分辨率 720x1280(常说的 720P),帧率为 30 fps 的视频为例,如果不经过编码压缩,直接传输或存储原始的 RGB 数据,对应的码率是:720 * 1280 * 3 * 8 * 30 = 632.8125 Mbps (宽 * 高 * 像素字节数 * 字节比特数 * 帧数)。一分钟的时间所需要的数据量是:632.8125 Mbps * 60s = 4.63 GB。

这个数据量很大,需要很高的存储或传输成本,因此需要采用编码压缩技术以减少码率。而对信息进行压缩,可以从这几个方面着手:

  • 信源包含的符号出现概率的非均匀性,使得信源是可以被压缩的:熵编码就利用信源的统计特性进行码率压缩的编码方式。比如著名的哈夫曼编码(也是熵编码的一种),就是当信源中各符号的出现概率都一样时编码效率最低。
  • 信源的相关性,使得信源是可以被压缩的:比如信息 A 和信息 B 的相关性,使得我们可以由信息 A 加残差 D(D = A - B) 来推导信息 B,这样只编码 A 和 D 来实现压缩,这就是所谓的差分编码技术。
  • 人的感知对不同信源的敏感度不一样,使得信源是可以被压缩的:对人感知不敏感的信息进行部分或全部忽略来实现压缩。

要对视频进行编码,则主要是研究视频数据中的冗余信息,并对其进行压缩。视频信息主要包括这几个方面的冗余:

以上是关于H.264/H.265/H.266音视频编码基础的主要内容,如果未能解决你的问题,请参考以下文章

视频技术基础02:视频编码基础

FFmpeg基础:获取音视频的各种编码参数

Android音视频H264编码基础

Android音视频基础知识

浅尝视频编码原理

媒体基础视频重新编码产生音频流同步偏移