H264编码原理之帧间预测与帧内预测

H264基本概念

视频的本质就是很多帧图片,在视频采集过程中其实就是图片采集,而h264编码就是对这些图片进行压缩,以便于存储和传输。针对一帧帧的图片,引申出以下的概念:

· I帧:关键帧,采用帧内压缩技术

举个例子,如果你用摄像头对着一棵树来拍摄,1秒之内,实际你发生的变化是非常少的。1秒钟之内实际很少有大幅度的变化.摄像机一般一秒钟会抓取几十帧的数据。动画一般都是15帧/s,平时我们的视频文件一般也就是30帧/s,对于一些要求比较高的,对动作的精细度有要求,想要捕捉到完整的动作的,高级的摄像机一般是60帧/s。I帧一般都是一组帧的第一帧,I帧需要完整的保存下来,如果没有这个关键帧后面解码数据,是完成不了的.所以I帧特别关键.。

· P帧:向前参考帧.压缩时只参考前一个帧.属于帧间压缩技术

视频的第一帧会被作为关键帧完整保存下来.而后面的帧会向前依赖.也就是第二帧依赖于第一个帧.后面所有的帧只存储于前一帧的差异.这样就能将数据大大的减少.从而达到一个高压缩率的效果.

· B帧:双向参考帧,压缩时即参考前一帧也参考后一帧.帧间压缩技术.

B帧,即参考前一帧,也参考后一帧.这样就使得它的压缩率更高.存储的数据量更小.如果B帧的数量越多,你的压缩率就越高.这是B帧的优点,但是B帧最大的缺点是,如果是实时互动的直播,那时与B帧就要参考后面的帧才能解码,那在网络中就要等待后面的帧传输过来.这就与网络有关了.如果网络状态很好的话,解码会比较快,如果网络不好时解码会稍微慢一些.丢包时还需要重传.对实时互动的直播,一般不会使用B帧。(如果我们对实时性的要求不高的话,就可以使用B帧,单对于一些实时性要求比较高的直播来说,B帧可以完全不用的)

GOF(Group of Frame)一组帧

如果在一秒钟内,有30帧.这30帧可以画成一组.如果摄像机或者镜头它一分钟之内它都没有发生大的变化.那也可以把这一分钟内所有的帧画做一组.

一组帧:

一个I帧到下一个I帧.这一组的数据.包括B帧/P帧.我们称为GOF(如下图)

补充:

简单分析一下我们在平时看视频时候会发现花屏或者卡顿的现象,主要是一组帧(GOF)里面的P帧缺失或者受损让解码时候发生错误导致的。为了避免花屏的发生,一般会不显示发生P帧或者I帧丢失的那一组帧,等到下一个I帧到来时才显示下一组帧,然而这样子治标不治本,长时间显示上一组帧,会导致卡顿现象的发生。

帧内预测压缩

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

帧间预测压缩

解决的是时域数据冗余问题,摄像头在一段时间内所捕捉的数据没有较大的变化,我们针对这一时间内的相同的数据压缩掉.这叫时域数据压缩。

(除以上之外还有CABAC无损压缩与整数离散余弦变换(DCT)

在分析帧内预测与帧间预测之前我们还需知道宏块划分与分组

H264宏块划分:

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

基本上宏块划分就完成了,那么宏块还可以在细分吗?当然是可以的,宏块可以进行子块的划分,如下图:

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

由上图可以看出,MPEG2和H.264.就会发现MPEG2存储时还算比较完整.占用的空间相对于比较多.而H.264还是减少了很多空间.像重复的颜色他们就用非常简单的色块描述了。

帧间预测压缩分析

现在我们有一组帧(如下图),记录的是桌球在桌球台上的运动,好明显这一组帧的背景就是桌球台,这是不变的,改变的就是桌球的位置,这就是帧分组

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

以上操作找到了对应的宏块,然后就会进行运动估算。然后把他们放在同一张图上面(如下图),而在两个位置之间就会存在着一个运动矢量。矢量会包含运动的方向和距离。以此类推,我们将所有的图进行两两比较的话,就会得出第一张图+很多帧的运动矢量,数据就达到了很大的减少。

你以为这样子就结束了嘛?其不然!虽然说每张图的背景都一样的,其实还是存在着一些差别的。好明显就是台球的数据,有些我们肉眼看不清的数据,例如光线的影响。所以帧间预测过程中还会对每帧图进行残差数据的计算,实际经过我们一运算后.它留下的就只是运动矢量数据+残差值的数据。经过这样的一个计算.帧间压缩数据我们就可以看到实际我们只需要存储一点点数据.而不像以前要将几十帧的所有图片数据保存下来.这就达到了压缩的效果,这个过程就叫做帧间压缩技术的原理。

帧内预测压缩分析

帧内预测压缩在平时开发中使用较多,帧内压缩是针对于I帧的。因为它解决的是空间的数据冗余,而帧间压缩是解决的时间数据冗余。我们刚刚说明的是帧间压缩技术,将大量在时间轨迹上相同的数据压缩掉,只留下运算估量和残差值。

而帧内压缩用到了完全不同的技术手段,我们首先计算出每个宏块的宏块模式,一共9种。如图所示:


参考文献:

帧内预测9种模式原理介绍(1)

帧内预测9种模式原理介绍(2)

经过计算最后得到的数据是每个宏块预测得出宏块的模式数据,如图所示:

在每个宏块模式确定之后呢,就可以形成一张“预测图”,左边是预测图,右边是源图。

得到的“预测图”与原图比较起来还是显得比较粗糙的,然后两者进行残差数据的计算,得到残差值。如图:

低下的就是源于,灰色图就是残差值。

预测模式与残差值压缩:

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

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

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