音视频二:H264宏块划分原理

在上一篇《音视频一、音视频本质及ffmpeg安装》中介绍了视频文件格式,视频封装格式,音视频编码格式,以及利用ffmpeg验证音视频主要由音频和视频组成。

本章主要是对音视频一些基础概念的理解。

块结构的混合编码

第一种采用 “块结构的混合编码” 方案的编码标准:音视频鼻祖H261。

先看一个例子:假如一个渐变的图片,按像素保存的方式和块结构保存的方式,两种方式对比:

  • 按像素保存的方式:一张200*100的图片,一共需要2万个像素保存,一个像素用RGBA保存,一共8万个字节。

  • 如果换一种方式:图片宽,图片高,起始点(宽、高),终止点(宽、高),起始点颜色(RGBA),终止点颜色(RGBA)。只需要14个字节就能保存这张图片的所有信息,而且能完整还原。

这个例子中,在没有损坏画质的前提下,图片的压缩效果非常好。

音视频中某一帧的图片,肯定不会那么巧,刚好整张图片渐变,但科学家利用这个特点,应用到音频领域编码算法上,以下面这张图片为例:


示例图片.png
放大很多倍后再观察.png

科学家对图片放大很多倍后的微观层面分析,在图片的一些部分,可以采用渐变处理方法来达到压缩数据的目的,而一些像素差异很大的地方,按他原本的数据进行处理。这样来达到画质在人眼中分辨不出来的效果。人眼对微观分辨没有那么敏感,所以这种处理后,人眼基本感觉不出来。即使放到微观层面,小块并不都是绝对的渐变,但是不影响效果,当然这种编码算法是有损的,权衡利弊之后值得采用。

拓展知识点:实际上存在无损编码格式的应用,电影院采用的jpeg2000,它是一种通过存储原图片的方式进行视频播放,因为它要放大到巨型屏幕上,如果采用压缩编码,还原之后就会出现上图中的情况,为了观影体验,所以没法压缩,当然这不在我们考虑的范围内。

H264压缩技术

了解了块结构混合编码后,理解H264的基本原理其实非常简单,下我们就简单的描述一下H264压缩数据的过程。通过摄像头采集到的视频帧(按每秒 30 帧算),被送到 H264 编码器的缓冲区中。编码器先要为每一幅图片划分宏块。

以下面这张图为例:


示例图片

划分宏块

H264默认是使用 16X16 大小的区域作为一个宏块,也可以划分成 8X8 大小。


整张图片都是由这样的宏块组成

划分好宏块后,计算宏块的象素值。

像素计算

以此类推,计算一幅图像中每个宏块的像素值,所有宏块都处理完后如下面的样子。

最终一帧图像由很多个宏块表示

划分子块

H264对比较平坦的图像使用 16X16 大小的宏块。但为了更高的压缩率,还可以在 16X16 的宏块上更划分出更小的子块。子块的大小可以是 8X16、 16X8、 8X8、 4X8、 8X4、 4X4非常的灵活。

子块划分示例

上幅图中,红框内的 16X16 宏块中大部分是蓝色背景,而三只鹰的部分图像被划在了该宏块内,为了更好的处理三只鹰的部分图像,H264就在 16X16 的宏块内又划分出了多个子块。

16x16宏块中又划分子块

这样再经过帧内压缩,可以得到更高效的数据。下图是分别使用mpeg-2和H264对上面宏块进行压缩后的结果。其中左半部分为MPEG-2子块划分后压缩的结果,右半部分为H264的子块划压缩后的结果,可以看出H264的划分方法更具优势。

经过H264处理的帧数据大大减少

宏块划分好后,就可以对H264编码器缓存中的所有图片进行分组了。

宏块的划分规则

来源于《H.264视频编码官方中文帮助文档》第6.3节 图像和条带的空间分割

一幅图像如何分割为条带和宏块。图像被划分为条带。条带由一系列的宏块组成,当使用宏块自 适应帧/场解码时则由一系列宏块对组成。

每个宏块均包含一个 16×16 的亮度阵列,当视频格式不是单色时,还包含和两个相应的色度阵列。如果没 有使用宏块自适应帧/场解码,每个宏块代表图像中的一个空间矩形区域。例如,如图 6-7 所示,一幅图像被分为 两个条带。

宏块条带划分.png

6.4节 反向扫描过程和相邻数据的推导过程

规定反向扫描过程,例如索引值到位置的映射,以及相邻数据的导出过程。

6.4.1 反向宏块扫描过程
这里我们需要知道的是编码算法会将每帧图片每个宏块都进行扫描。进行计算后,得到最优的划分结果。

6.4.2 反向宏块分割和子宏块分割的扫描过程


宏块的分割与扫描.png

如果一个16x16的宏块,数据波动比较大,那我们就接着对宏块进行划分,知道划分成4x4为止。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容