罗利 纽伦堡

 

前言

H264视频压缩算法现在的确是独具视频压缩技术中使用最广大,最流行的。随着
x264/openh264以及ffmpeg等开源库的生产,半数以上使用者无需再对H264的底细做过多的研商,那大下跌了大千世界使用H264的资本。

但为了用好H264,大家仍旧要对H264的基本原理弄明白才行。前天大家就来看看H264的基本原理。

大红鹰葡京娱乐中心 1

H264概述

H264压缩技术主要选拔了以下三种方式对摄像数据举办压缩。包罗:

  • 帧内预测压缩,解决的是空手数据冗余难题。
  • 帧间预测压缩(运动估量与增补),解决的是时域数据冗徐难题。
  • 平头离散余弦变换(DCT),将空间上的相关性变为频域上无关的多寡然后开展量化。
  • CABAC压缩。

经过压缩后的帧分为:I帧,P帧和B帧:

  • I帧:关键帧,选拔帧内压缩技术。
  • P帧:向前参考帧,在裁减时,只参考前面早已处理的帧。选用帧音压缩技术。
  • B帧:双向参考帧,在回落时,它即参考前而的帧,又参考它背后的帧。选择帧间压缩技术。

除去I/P/B帧外,还有图像种类GOP。

  • GOP:多个I帧之间是一个图像系列,在一个图像连串中唯有一个I帧。如下图所示:

下边我们就来详细描述一下H264压缩技术。

    4月18号

H264压缩技术

H264的基本原理其实格外容易,下大家就概括的讲述一下H264压缩数量的历程。通过摄像头采集到的视频帧(按每秒
30 帧算),被送到 H264
编码器的缓冲区中。编码器先要为每一幅图片划分宏块。

以上面那张图为例:

 去奥兰多的途中,有成片的油菜花,尽管不多但都很整齐,蒙蒙的细雨给拥有的风光都披上了一层薄纱,若隐若现,多条要不停的隧道阻挡了太多的风物,可众多要过的高架桥又让我看看了俯瞰的扩展,每一回外出,为了节省时间我都会接纳夜间行进的车,可乌黑的夜晚让自家错过了沿途众多的美景

划分宏块

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

细分好宏块后,统计宏块的象素值。

以此类推,计算一幅图像中种种宏块的像素值,所有宏块都处理完后如上边的典范。

    4月19号

划分子块

H264对相比较坦荡的图像使用 16X16 大小的宏块。但为了更高的压缩率,还足以在
16X16 的宏块上更划分出更小的子块。子块的尺寸可以是 8X16、 16X8、 8X8、 4X8、
8X4、 4X4格外的利落。

上幅图中,红框内的 16X16
宏块中多数是黄色背景,而多只鹰的有些图像被划在了该宏块内,为了更好的拍卖七只鹰的有的图像,H264就在
16X16 的宏块内又细分出了七个子块。

如此再通过帧内压缩,可以获得更高速的数码。下图是各自采纳mpeg-2和H264对上边宏块进行削减后的结果。其中左半局部为MPEG-2子块分割后收缩的结果,右半部分为H264的子块划压缩后的结果,可以观望H264的分割方法更具优势。

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

 
在自己的影像里,马赛看成东北的一局地,是相比较粗旷干旱的,因为中学地理里的黄土高原八个字实在是太深切人心了,即使不是途径安顿第一站是埃德蒙顿最合适我是不会来此处的,我也从没想过要到埃德蒙顿来,因为自己害怕一刮风就像伊兹密尔那么满天的灰土,在坐轻轨来的途中我平昔不观察这几个所谓的土地荒漠化,一座座山头和岭上都被草木覆盖着,正值青春,一切都突显那么有生气,有种在身在东南的错觉。
   
不知是幸运依然不幸,我在的那两日德雷斯顿都在下雨,下下停停,小暑让那些古村落的全方位都显得那么青春,没有高温,没有风沙,有点湿润,舒服极了。那座城池让我最好奇的是他的绿化面积,我直接认为赤峰的城市绿化面积就够大了,可那里,让自身的确的看出了怎么是大面积的绿化带,在我看来,这座城市可以不要被誉为西北干旱地区了,布里斯托的百废具兴,同样也未尝让自家想到,明朝天鹅绒之路的源点,果真是不容小觑.

帧分组

对于视频数据首要有两类数据冗余,一类是岁月上的数目冗余,另一类是空中上的数码冗余。其中时间上的数码冗余是最大的。下边大家就先来说说视频数据时间上的冗余难点。

为啥说日子上的冗余是最大的呢?假如摄像头每秒抓取30帧,那30帧的多少超过一半状态下都是相关联的。也有可能持续30帧的的数据,可能几十帧,上百帧的数量都是事关尤其细心的。

对于这个关乎越发细心的帧,其实大家只必要保留一帧的数量,其它帧都可以通过这一帧再按某种规则预测出来,所以说视频数据在时光上的冗余是最多的。

为了完毕相关帧通过预测的法子来裁减数量,就必要将视频帧进行分组。那么怎么着判定某些帧关系密切,可以划为一组呢?大家来看一下例证,下边是捕获的一组运动的弹子的视频帧,台球从右上角滚到了左下角。

H264编码器会按顺序,每一遍取出两幅相邻的帧举行宏块相比较,计算两帧的相似度。如下图:

经过宏块扫描与宏块搜索可以发现那五个帧的关联度是可怜高的。进而发现这一组帧的关联度都是非凡高的。因而,上边这几帧就足以划分为一组。其算法是:在附近几幅图像画面中,一般有差距的像素唯有10%之内的点,亮度差值变化不当先2%,而色度差值的变化唯有1%之内,大家认为这么的图可以分到一组。

在这么一组帧中,经过编码后,大家只保留第一帖的总体数据,别的帧都通过参考上一帧总计出来。大家称第一帧为IDR/I帧,其他帧大家称为P/B帧,那样编码后的数码帧组大家称为GOP

(在去兵马俑景区的公交车上,有一个女孩子坐在老幼病残的交椅上,上来一个老太太就站在她的身边,可他像没事人一样坐在这里没有让座,那个坐在座位上的年轻女孩子始终马耳东风,面不改色,我瞧不起的看了她一些眼,可他照旧神仙般的坐在那里,而那几个老太太直到有位长者下车他才坐上,我任由那么些年轻女孩子是如何理由坐在那里,她的那种作为给弗罗茨瓦夫国民抹黑了,更把中国人的素质给拉低了
!)

大红鹰葡京娱乐中心,移动估摸与增补

在H264编码器少将帧分组后,就要总计帧组内物体的运动矢量了。还以上面运动的台球摄像帧为例,大家来看一下它是何等总计运动矢量的。

H264编码器首先按顺序从缓冲区头顶取出两帧摄像数据,然后开展宏块扫描。当发现其间一幅图片中有实体时,就在另一幅图的近乎地点(搜索窗口中)进行检索。即使此刻在另一幅图中找到该物体,那么就可以计算出物体的运动矢量了。上面那幅图就是摸索后的弹子移动的岗位。

透过上图中台球地点距离,就可以计算出台图运行的样子和离开。H264依次把每一帧中球移动的离开和取向都记录下来就成了上边的样板。

举手投足矢量计算出来后,将同样部分(也就是粉色部分)减去,就获取了增补数额。我们最终只需求将补偿数额开展压缩保存,将来在解码时就足以还原原图了。压缩补偿后的数量只必要记录很少的一些多少。如下所示:

我们把运动矢量与互补称为帧间裁减技术,它解决的是视频帧在岁月上的数额冗余。除了帧间压缩,帧内也要拓展数据压缩,帧内数据压缩解决的是空间上的多寡冗余。下边我们就来介绍一下帧内压缩技术。

 
到了兵马俑博物馆领票,学生半价75元,那地方很大,要走一会才到遗址,那一路上的风景是更加美的,有过一场雨的润滑后让总体浮现更美了,兵马俑一号坑是面积最大的,可看到东西才觉得这么多年我都是被教科书和电视给骗了,我一向没看出来有何气势磅礴,很多陶俑都已碎掉,是新兴一点点粘上的,而那几个木制的马车和兵器木把早已腐朽的找不到痕迹,参观完兵马俑和秦始皇陵当成让自家长见识了,讲解员说她不是一位暴君,而是一位伟人的暴君!当时的社会风貌必须求用强硬的一手来治理,他联合六国后所面临的难点是足够多的,而这个题材也需求些卓殊手段,他联合六国,统一文字,统一货币,那个都为现在的中华奠定了深厚的底蕴,很可惜他只活到50多岁,他所以要为自己建造庞大的不法帝皇陵是因为他认为仙逝不是终极,而是一个进程,他要在私自继续享福,有本事打下一个朝代,那享受也是本来的,说他暴政,其实也不然,他借使实在没有人性,那么大家今日观察的就不是伫立在那的一个个陶俑,而是一堆堆的残骸,固然她死后也有妃嫔和民工为其陪葬,但自己现在总的来说,这一切并然而分,当之无愧的千古一帝。

帧内预测

人眼对图象都有一个识别度,对低频的亮度很灵巧,对屡次的亮度不太灵敏。所以根据一些研究,可以将一幅图像中人眼不敏感的多少去除掉。那样就提议了帧内预测技术。

H264的帧内压缩与JPEG很相像。一幅图像被划分好宏块后,对每个宏块可以展开 9
种情势的展望。找出与原图最接近的一种预测形式。

上边那幅图是对整幅图中的每个宏块举办前瞻的历程。

帧内预测后的图像与原有图像的对待如下:

接下来,将原有图像与帧内预测后的图像相减得残差值。

再将大家事先得到的估摸情势音信一起保存起来,那样我们就可以在解码时回涨原图了。效果如下:

透过帧内与帧间的削减后,固然数额有大幅削减,但还有优化的半空中。

 
 我所看到的那些城市的不足,那就是早上的路灯,实在是太暗,而且有很多是不亮的,我不明了设计者是否就为了这种朦朦胧胧的感觉到,所以才会这么,但我仍旧认为如故亮点好,要不然夜景真没什么美观的。深夜七点多,在青旅打了会台球,实在没意思,于是就打算出去坐公交看看夜景,306路双层巴士,坐在上层靠窗的职位,居高临下,看那多少个匆匆忙忙赶路的车和人,从起点坐到终点,望着外面的山水,听着外面的响声,尽情的感想着那座都市的魅力,从终端坐到源点,依然坐在上层靠窗的地方,戴上耳麦,来点慢节奏的音乐,把声音调大片段,大到听不到除音乐以外的鸣响,望着窗外匆匆而过的任何,什么都不想,只沉浸在音乐中,这样何尝不是一种浪漫?!

对残差数据做DCT

可以将残差数据做整数离散余弦变换,去掉数据的相关性,进一步削减数量。如下图所示,左边为原数据的宏块,左侧为总括出的残差数据的宏块。

将残差数据宏块数字化后如下图所示:

将残差数据宏块举办 DCT 转换。

去掉相关联的多寡后,大家得以看看数据被进一步回落了。

做完 DCT 后,还不够,还要开展 CABAC 举行无损压缩。

 
 在斯科普里的回民街,我吃到了正宗的肉夹馍和羊肉泡馍,可我以为最好吃的是在秦始皇陵买个要命烤地瓜,黄土地里生长出来的东西,味道真是没的说!
   
 都说钟楼是古村马尔默最合适的地标,可看完将来真的没什么好的,让自身打动的是里面钟鼓乐的演艺,中国文化的博雅从那里演绎的淋漓,钟楼的夜景还不易,晕黄的灯光在体现着另一种美,钟楼所作为汉中市的骨干地方,她所对应的四条道路非常宽阔,也万分繁忙,所要经过的车子匆匆忙忙,而经过的那一个人却是悠然自得,他们走走停停,在他们感兴趣的地点驻足,而让我停留下来的,是背靠钟楼,面向开元商城的五个小伙,一个打手鼓,一个弹着吉他唱着歌,他们在演艺,我不觉得是卖唱,即使他们前边摆着琴盒,就算有人往里面“扔”钱,可自我依旧把它作为是演唱会,五个怀抱音乐梦想的年轻人,在向第三者诉说着他们的只求,而他们的歌声,根本不亚于这一个所谓的歌手,他们是人流中最亮的点滴,梦想的光环在炫耀着她们。本来我是想往他们琴盒里“放”一元的,可自己所听的第三首歌竟是郝云的《活着》
,让本来要挪步离开的本身又停下来,那是自身非常喜欢的一首歌,固然他们的曲调和郝云唱的有点分化等,可在他们的动静里,我就像是我听到了越来越多的东西,他们是在用其余一种当时向大家演绎着所谓的期望和现实性,他们是让自家羡慕的,因为自己也渴望能有一天和他们相同,弹着吉他唱着歌,不为其余,只为感受那种美好,离开的时候,我往他们的琴盒里放了五元钱,看演唱会总是要领票的,何况是那般地道的演艺,他们在做着我想做却又没做的事,感谢那五个青年

CABAC

地方的帧内压缩是属于有损压缩技术。也就是说图像被削减后,不能够完全恢复生机。而CABAC属于无损压缩技术。

无损压缩技术大家最熟习的或者就是哈夫曼编码了,给高频的词一个短码,给低频词一个长码从而达到数据压缩的目的。MPEG-2中应用的VLC就是那种算法,大家以
A-Z 作为例子,A属于高频数据,Z属于低频数据。看看它是何许做的。

CABAC也是给高频数据短码,给低频数据长码。同时还会按照上下文相关性进行削减,那种办法又比VLC高效很多。其功效如下:

后天将 A-Z 换成摄像帧,它就成了下边的榜样。

从地点那张图中肯定可以见到选择 CACBA 的无损压缩方案要比 VLC 高效的多。

     4月20号

小结

迄今截至,大家就将H264的编码原理讲完了。本篇小说首要讲了以下以点内容:

  1. 简音介绍了H264中的一些基本概念。如I/P/B帧, GOP。
  2. 详尽讲解了H264编码的基本原理,包含:
  • 宏块的分割
  • 图像分组
  • 帧内压缩技术原理
  • 帧间减少技术原理。
  • DCT
  • CABAC压缩原理。

指望以上内容能对你抱有扶助。谢谢!

 
 这几天就住在城墙边的书院青年酒店里,一家格外棒的青旅。早晨九点多就醒了,今天不曾布置,因为12点事先要退房,想再睡一觉到11点再起床,可睡不着,刷了一钟头的乐乎,11点起床洗漱收拾东西,办理完退房手续,买了些明信片,然后坐在3号庭院的沙发上挨到一点多,可肚子在抗议,背着包走吧,走了一站路抵达钟楼附近,进了家面馆,味千杂酱面,我要了最利于的,还要25元,量就那么一些,而且店里的餐巾纸是收费的!奸商!现在我正坐在这家店里写着日志!

                                           二〇一五年5月于博洛尼亚

                                                 我是sl姚想以后

大红鹰葡京娱乐中心 2