音视频学习从零到整--(8)H264编码原理

音视频学习从零到整--(1)
音视频学习从零到整--(2)
音视频学习从零到整--(3)
音视频学习从零到整--(4)
音视频学习从零到整--(5)
音视频学习从零到整--(6)
音视频学习从零到整--(7)
音视频学习从零到整--(9)
音视频学习从零到整--(10)

一.H264压缩技术.

  • 帧内预测压缩,解决的是空域数据冗余问题.

    什么是空域数据,就是这幅图里数据在宽高空间内包含了很多颜色,光亮.人的肉眼很难察觉的数据. 对于这些数据,我们可以认作冗余.直接压缩掉的.

  • 帧间预测压缩,解决的是时域数据冗余问题.

    在我们之前举例说明过,摄像头在一段时间内所捕捉的数据没有较大的变化,我们针对这一时间内的相同的数据压缩掉.这叫时域数据压缩.

  • 整数离散余弦变换(DCT),将空间上的相关性变为频域上无关的数据然后进行量化.

    这个比较抽象.这个跟数学是紧密联系在一起的.如果对傅里叶变换理解的比较好的.对这个会理解的比较快.如果对傅里叶变换不了解的.可能有稍许困难.傅里叶变换可以把一个复杂波形图变换成许多的正弦波.只是他们之间的频率不一样.以及振幅也不一样.如果它们在频率上没有一致性那么我们就可以对他进行压缩处理.

  • CABAC压缩:无损压缩.

二.宏块划分与分组.

H264宏块划分.可以参考下图.

将一个图片左上角用宏块描述,就是宏块是8*8的元素.取出的颜色,像右边的去描述.描述颜色.将一个图片全部用宏块描述就如下图.

基本的图片的宏块划分就完成了.那是不是每个宏块都是8*8了?并不是的.还有子块划分.

子块划分:

在这个大的宏块里,可以再细化. 我们可以看到在这个大的宏块里,我们更加细化了. 比如我们中间这个全部都是蓝色的这个宏块,就可以用一个色块,更加简单描述就行了.

我们对比旁边的MPEG2和H.264.就会发现MPEG2存储时还说比较完整.占用的空间相对于比较多.而H.264还是减少了很多空间.像重复的颜色他们就用非常简单的色块描述了.

帧分组:
例如,一个台球从一个位置移动到另外一个组. 可以发现它的桌面背景是一样的.只是球体位置发生了变换.这个我们就可以把这一组帧划分为一组.

三. 组内宏块查找

什么是组内宏块查找?
实际就如下图.台球从一角滚到另外一角.相邻的2幅图做组内的宏块查找.
将图逐行扫描,扫描到第三行.发现了台球. 然后围绕它的周围查找.发现了有类似的图块.

运动估算:

然后就把他们放在同一张图中.也就是说台球刚开始从位置1.到第二张图移动到位置2.这之间有一个运动矢量.矢量会包含运动的方向和距离.将所有的图都两两比较.最后就形成了右边这张图.就是右图中红色部分.每一个红色的箭头标注都是一个运动矢量.很多帧就会形成一个连续的运动估算.那么这个估算之后,我们要达到什么结果了?

运动矢量与补偿压缩:

最终将连续的运动估算 换算成下图所表现的.我们就是对齐进行压缩.所有帧的背景都是一样的.变换在哪里了?变换就是它的运动矢量还有台球的数据. 实际经过我们一运算后.它留下的就只是运动矢量数据+残差值的数据. 经过这样的一个计算.帧间压缩数据我们就可以看到实际我们只需要存储一点点数据.而不像以前要将几十帧的所有图片数据保存下来.这就达到了压缩的效果. 这个过程就叫做帧间压缩技术的原理.

四. 帧内预测

帧内压缩是针对于I帧的.因为它解决的是空间的数据冗余.而帧间压缩是解决的时间数据冗余.我们刚刚说明的是帧间压缩技术.将大量在时间轨迹上相同的数据压缩掉.只留下运算估量和残差值.

而帧内我们采用了其他的压缩原理

如下图,首先要经过计算,选择用那种模式.对每一个宏块采用不同的模式运算.

当每个宏块都选定了模式之后.就形成了下图的这样的效果.每个宏块都选择一个帧内预测的模式.帧内预测一共有9种模式.
帧内预测9种模式原理介绍(1)
帧内预测9种模式原理介绍(2)

让每个宏块挑选好模式之后,我们就可以使用块预测模式.预测完了之后,它就得到一个张"预测图".
左边是预测图,右边是源图.

计算的预测图和原图是有差别的. 原图比较圆润.预测图相对而言比较粗糙. 现在有两幅图.这时就做2张图的差计算.

计算帧内预测残差值:

底下的图就是我们的原图.通过预测与原图的差得出一个结果.这个灰色图就是残差值.

预测模式与残差值压缩:
拿到参差值之后,我们就进行压缩. 压缩时保存,残差数据和每个宏块选择的模式信息数据. 那么有了这2个数据之后.当我们解码时,首先通过宏块的模式信息计算出预测图.然后将预测图与我们的残差值进行累积.就能还原成原图像. 那这个过程就是"帧内压缩技术"的原理过程.

五.DCT压缩

DCT压缩也是整数余弦压缩技术. 那它是如何压缩?
我们划分一个可量化的宏块.

然后将量化的宏块根据DCT数学方法.进行压缩.

压缩后的就成这个样子.
左上角有数据分布,右下角数据为空.从而达到数据量减少的作用.那它是如果做到的了? 这个如果计算是需要非常深的数学功底.如果感兴趣的可以在网络上搜索一下.

DCT压缩原理(1)
DCT压缩原理维基百科

六.VLC压缩

VLC 用类似哈夫曼码. 用短码来记录高频数据.用长码记录低频数据.
频率高的就编为短码,频率低的就编为长码.

经过VLC压缩之后,就变成了无损压缩的方式了.

CABAC压缩(上下文适应无损压缩技术)

VLC实际上是MPEG2使用的技术.而H264使用的是CABAC.也就是上下文适应技术.除了使用哈夫曼短码高频,长码高频的方式还加上了上下文适应的技术.根据上下文就可以加大压缩比.

对比:
VLC压缩的数据都是大块.无损压缩.
而CABAC压缩,会随着压缩的数据增大,上下文信息全面.压缩比随之增大.数据块从大块降低成小数据块.

文章图片来源于网络,如未能核实来源或转发内容图片有瑕疵,请及时私信本人进行修改或者删除.


推荐文集

* 抖音效果实现

* BAT—最新iOS面试题总结

* iOS面试题合集

原文作者:集才华美貌于一身的—C姐

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

推荐阅读更多精彩内容

  • 音视频学习从零到整(1)音视频学习从零到整(2)音视频学习从零到整(3)音视频学习从零到整(4)音视频学习从零到整...
    CC老师_HelloCoder阅读 8,196评论 2 36
  • 在目前,无论在各个行只要和视频相关的,我们都可以看见H264相关的身影,H264作为目前使用最广泛的视频压缩标准,...
    DramaScript阅读 21,557评论 7 56
  • ### YUV颜色空间 视频是由一帧一帧的数据连接而成,而一帧视频数据其实就是一张图片。 yuv是一种图片储存格式...
    天使君阅读 3,261评论 0 4
  • 音视频学习从零到整(1)音视频学习从零到整(2)音视频学习从零到整(3)音视频学习从零到整(4)音视频学习从零到整...
    CC老师_HelloCoder阅读 5,490评论 2 30
  • 有个部落从不穿内裤,游人劝他们说:穿内裤很卫生,也很暖和。于是穿上了,可大便时却没有脱掉,回头一看,咦!真干净,...
    RainyCai阅读 978评论 2 4