H.264 因作为蓝光光盘的编解码器标准而闻名,所有蓝光播放器都必须能够解码H.264。更重要的是,由于苹果毅然放弃了Adobe的VP6编码而选择了H.264,这一标准随着数以亿计的iPad和iPhone一起走进了千家万户,成为了当前视频编码领域的标准。绝对优势,占据80%以上份额。 H.264还广泛应用于网络流数据、各种高清电视广播、卫星电视广播等领域。与之前的编码标准相比,H.264 具有一些新的特性,例如多参考帧的运动补偿、可变块大小运动补偿、帧内预测编码等。利用这些新特性,H.264 比其他编码标准具有更多的优势。编码标准。高视频质量和较低码率也得到了人们的认可并广泛应用。
H.264的最大优点是数据压缩比高。在相同图像质量条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.52倍。低比特率对于H.264的高压缩比起着重要作用。与MPEG-2、MPEG-4ASP等压缩技术相比,H.264压缩技术将大大节省用户的下载时间和数据使用费用。特别值得一提的是,H.264不仅压缩比高,而且图像质量高、流畅。正因为如此,H.264压缩的视频数据在网络传输过程中需要更少的带宽。它也更经济。
H264是新一代编码标准。它以高压缩、高质量和支持多种网络上的流媒体传输而闻名。在编码方面,参考一段时间内图像的统计结果可以看出,相邻图像之间普遍存在差异。像素内只有10%以内的点,亮度差异变化不超过2%,色度差异变化仅在1%以内。因此,对于变化不大的图像,我们可以先对完整的图像帧A进行编码,然后后续的B帧就不对整个图像进行编码,而只写与A帧的差异,这样B帧只是完整的帧。 1/10 或更少!如果B帧之后的C帧变化不大,我们可以继续参考B对C帧进行编码,如此循环下去。我们将此图像称为序列(序列是具有相同特征的一段数据)。当一幅图像与前一帧相比变化很大,并且无法通过参考前一帧来生成时,我们就结束上一个序列并开始下一个序列。序列,即针对该图像生成完整的帧A1,并参考A1生成后续图像,只写入与A1的差异。
2. 什么是I帧、P帧、B帧?
H264协议中定义了三种类型的帧。完全编码的帧称为I 帧。参考前一I帧生成的仅包含差分编码的帧称为P帧。还有一种参考前后帧进行编码的帧,称为B 帧。
H264使用的核心算法是帧内压缩和帧间压缩。帧内压缩是生成I帧的算法,帧间压缩是生成B帧和P帧的算法。
在H264 中,图像以序列为单位进行组织。序列是对图像进行编码后的数据流,以I帧开始并以下一个I帧结束。
序列的第一幅图像称为IDR图像(立即刷新图像),IDR图像都是I帧图像。 H.264 引入了IDR 图像来进行解码重新同步。当解码器解码IDR图像时,它立即清除参考帧队列,输出或丢弃所有解码数据,重新搜索参数集,并开始新的序列。这样,如果之前的序列出现重大错误,就有机会在这里重新同步。 IDR 图像之后的图像永远不会使用IDR 之前图像的数据进行解码。
序列是对内容差异不大的图像进行编码生成的数据流。当运动变化相对较少时,一个序列可能会很长,因为低运动变化意味着图像的内容变化很少,所以可以编译一个I帧,然后继续P帧和B帧。当运动变化较大时,序列可能会比较短,例如可能包含1个I帧和3或4个P帧。
三种框架的介绍
我框架
帧内编码帧,I帧代表关键帧,你可以理解为完整保留了这一帧;解码时只需要该帧的数据(因为它包含完整的图片)。
特征
它是全帧压缩编码帧。它对全帧图像信息进行JPEG压缩编码和传输。
在解码过程中,仅使用I帧的数据就可以重建完整的图像。
I 帧描述图像背景和移动主体的细节
I 帧是在不参考其他图片的情况下生成的。
I帧是P帧和B帧的参考帧(其质量直接影响同组后续帧的质量)
I帧是帧组GOP的基础帧(第一帧)。一组中只有一个I 框。
I帧不需要考虑运动矢量
I帧所占用的数据中的信息量较大。
P架
前向预测编码帧。 P帧表示该帧与前一个关键帧(或P帧)之间的差异。解码时需要将本帧中定义的差异与之前缓存的图片进行叠加,生成最终的图片。 (即差异帧,P帧没有完整的图片数据,只有与前一帧的图片不同的数据),通过充分减少图像序列中前一编码帧的时间冗余信息来压缩编码传输数据量的图像,也称为预测帧
P帧的预测重建:P帧以I帧为参考帧,在I帧中求出P帧中“某一点”的预测值和运动向量,取预测差值与运动矢量。在接收端,根据运动矢量从I帧中找到P帧“某点”的预测值,并与差值相加,得到P帧“某点”的样本值,从而得到完整的P帧。
特点:
P帧是比I帧晚1到2帧的编码帧。
P帧使用运动补偿来传输它与前一个I或P帧之间的差异和运动矢量(预测误差)。
解码时,必须将I帧中的预测值和预测误差相加,才能重建完整的P帧图像。
P帧属于前向预测帧间编码。它仅指与其最近的前一个I帧或P帧
P帧可以是其后面的P帧的参考帧,也可以是其前后的B帧的参考帧。
由于P帧是参考帧,因此可能会导致解码错误的扩散。
由于是差分传输,P帧的压缩度比较高。
B架
双向预测插值编码帧。 B帧是双向差异帧,即B帧记录了本帧与前后帧的差异(具体比较复杂,有4种情况,不过我这样说是为了简单一点) 。也就是说,要解码B帧,不仅要获取上一张缓存的图片,还要解码,通过将上一张和下一张图片与本帧的数据叠加得到最终的图片。 B帧压缩率高,但解码时CPU会很累。
B帧的预测重建:B帧以前面的I或P帧以及后面的P帧为参考帧,“找出”B帧中“某一点”的预测值和两个运动向量,并取预测差异和运动矢量传输。接收端根据运动矢量“找到(计算)”两个参考帧中的预测值,并与差值相加,得到B帧的“某点”样本值,从而得到完整的B帧。
特征:
B 帧是根据前面的I 或P 帧以及后面的P 帧预测的。
B帧传输的是它与前一个I或P帧以及后一个P帧之间的预测误差和运动矢量。
B 帧是双向预测编码帧
B帧压缩比最高,因为它只反映C参考帧之间运动主体的变化,预测更准确。
B帧不是参考帧,不会造成解码错误的扩散。
I、B、P帧是根据压缩算法的需要人为定义的。它们都是真实的物理框架。一般来说,I帧的压缩率为7(与JPG类似),P帧为20,B帧可以达到50。可见,使用B帧可以节省很多空间,节省的空间可以是用于节省更多的I帧,可以在相同码率下提供更好的图像质量。
3.H264和H265压缩方式
H.265又称为HEVC(全称:High Efficiency Video Coding,本文统称为H.265),是ITU-T H.264/MPEG-4 AVC标准的后继者。 2004 年,它由ISO/IEC 运动图像专家组(MPEG) 和ITU-T 视频编码专家组(VCEG) 开发为ISO/IEC 23008-2 MPEG-H 第2 部分或ITU-T H.265。 HEVC/H.265视频压缩标准的第一版于2013年4月13日被国际电信联盟(ITU-T)接受为官方标准。
H265/HEVC的编码架构与H.264/AVC大致类似,主要包括:帧内预测、帧间预测、变换、量化、去区域分块滤波器(deblocking filter)、熵编码(entropycoding)和其他模块。然而,在HEVC编码架构中,整体被分为三个基本单元:编码单元(CU)、预测单元(PU)和变换单元(TU)。
H264压缩方法:分组:将几帧图像划分为一组(GOP,即序列)。为了防止运动变化,帧数不宜过高。
定义帧:将每组中的每一帧图像定义为三种类型,即I帧、B帧和P帧;
预测帧:以I帧为基础帧,用I帧预测P帧,然后由I帧和P帧预测B帧;
数据传输:最终存储并传输I帧数据与预测之间的差异信息。
帧内压缩也称为空间压缩。
压缩一帧图像时,只考虑该帧的数据,而不考虑相邻帧之间的冗余信息。这实际上类似于静态图像压缩。帧内一般采用有损压缩算法。由于帧内压缩对完整图像进行编码,因此可以独立解码和显示。帧内压缩一般不能实现非常高的压缩,类似于编码jpeg。
帧间压缩
相邻帧的数据之间存在很大的相关性,或者说前后两帧的信息变化很小。也就是说,连续视频的相邻帧之间存在冗余信息。根据这一特性,对相邻帧之间的冗余量进行压缩,可以进一步增大压缩量,降低压缩比。帧间压缩,也称为时间压缩,通过比较时间线上不同帧之间的数据来压缩数据。帧间压缩通常是无损的。帧差分算法是一种典型的时间压缩方法。它比较本帧与相邻帧的差异,只记录本帧与其相邻帧的差异,这样可以大大减少数据量。
有损压缩和无损(Lossy less)压缩。
无损压缩是指压缩前和压缩后的数据完全相同。大多数无损压缩使用RLE 游程编码算法。
有损压缩是指解压后的数据与压缩前的数据不一致。在压缩过程中,一些人眼和耳朵不敏感的图像或音频信息会丢失,并且丢失的信息无法恢复。几乎所有高压缩算法都使用有损压缩来实现低数据率的目标。数据丢失率与压缩比有关。压缩比越小,丢失的数据就越多,解压效果一般也越差。另外,一些有损压缩算法使用多次重复压缩,这会导致额外的数据丢失。
与H.264/AVC相比,H.265/HEVC提供了更多不同的工具来降低比特率。就编码单元而言,最小为8x8,最大为64x64。将信息量少的区域(颜色变化不明显,如车身的红色部分、地面的灰色部分)划分为较大的宏块,编码后的码字较少,而将宏块划分为细节较多的地方(轮胎)块相应较小且较多,编码后码字较多。这相当于对图像进行集中编码,从而降低整体码率,相应提高编码效率。同时,H.265的帧内预测模式支持33个方向(H.264仅支持8个),并提供更好的运动补偿处理和矢量预测方法。
当前的HEVC 标准具有三种模式:Main、Main10 和Main Still Picture。 Main模式支持8位色深(即红、绿、蓝各有256种色度,共1670万种颜色),Main10模式支持10位色深,将用在超高清电视上(超高清电视)。前两个将色度采样格式限制为4:2:0。预计该标准将在2014年进行扩展,以支持4:2:2和4:4:4采样格式(即提供更高的色彩再现)和多视图编码(例如3D立体视频编码)。
事实上,H.265和H.264标准在各种功能上有一些重叠。例如,H.264 标准的Hi10P 部分支持10 位色深视频。另一方面,H.264部分(Hi444PP)还可以支持4:4:4色度采样和14位色深。在这种情况下,H.265 和H.264 之间的区别在于,前者可以使用更少的带宽来提供相同的功能,但代价是设备计算能力:H.265 编码的视频需要更多的计算能力来解码。支持H.265解码的芯片已发布——。美国Broadcom在今年1月初的CES展会上发布了Brahma BCM 7445芯片。它是一款采用28纳米工艺的四核处理器。可同时对4路1080P视频数据流进行转码,或解析H.265编码的分辨率为40962160的超高清视频。 H.265标准的诞生是为了在有限的带宽下传输更高质量的在线视频。对于大多数专业人士来说,H.265 编码标准并不陌生。它是继H.264之后ITU-TVCEG制定的视频编码标准。 H.265标准主要围绕现有视频编码标准H.264。除了保留一些原有的技术外,还增加了可以改善代码流程、编码质量、延迟和算法复杂度之间关系的功能。相关技术。 H.265研究的主要内容包括提高压缩效率、提高鲁棒性和错误恢复能力、降低实时延迟、减少信道获取时间和随机接入延迟、降低复杂度等。
H.265 重用了H.264 中定义的许多概念。两者都是基于块的视频编码技术,因此它们具有相同的根源和相似的编码方法,包括:
1、将图片划分为宏块,最后划分为块。
2、采用帧内压缩技术,减少空间冗余。
3.使用帧间压缩技术减少时间冗余(运动估计和补偿)。
4. 使用变换和量化来压缩残差数据。
【深入解析:H264/H265视频编码技术详解】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我现在还在用老旧的 H.264 码率视频,听说 H.265 更先进吗?
有20位网友表示赞同!
学习一下这些编码概念,以后看视频能更懂一些。
有9位网友表示赞同!
想在手机上录像更高画质一点,应该注意什么编码格式呢?
有10位网友表示赞同!
看完这篇文字,好像 H.265 比 H.264 节省了很多流量啊!
有20位网友表示赞同!
以前都没注意到视频用的编码格式,现在才知道原来还有这么个区别。
有13位网友表示赞同!
感觉这个知识点很难理解,需要再仔细研究一下...
有12位网友表示赞同!
如果想上传视频,哪个编码格式更合适呢?
有13位网友表示赞同!
这篇文字介绍的很清晰了,能让我很快明白 H.264 和 H.265 的区别。
有8位网友表示赞同!
学习技术真的太重要了!以后视频处理再也不用蒙圈。
有17位网友表示赞同!
编码格式影响视频质量吗?有人可以帮我解释一下吗?
有6位网友表示赞同!
我经常剪辑短视频,选用什么编码格式比较好呢?
有8位网友表示赞同!
看来 H.265 是未来发展的趋势啊!
有5位网友表示赞同!
这个博客文章挺有用的,我马上就把它分享给我的朋友们。
有5位网友表示赞同!
H.264 和 H.265 都可以用在直播吗?
有10位网友表示赞同!
想进一步了解相关软件的应用方法,有人可以推荐一下吗?
有16位网友表示赞同!
以后看视频的时候,可以注意屏幕右下角那个编码格式了。
有20位网友表示赞同!
文章写的真好!让我对 H.264/H265 这个coding concept 有了一个全新的理解。
有14位网友表示赞同!
这篇文章给我打开了新视野,谢谢作者的分享!
有10位网友表示赞同!
我一直在寻找关于 H.264 和 H.265 的资料,这篇博客文章刚好满足我的需求+
有16位网友表示赞同!
这个主题一直令我感到困扰,现在终于找到了答案,真是太好了!
有16位网友表示赞同!