什么是视频编码 编解码技术及压缩技术

什么是视频编码 编解码技术及压缩技术

视频如果不被压缩不进行编码那么原始视频大小将会特别大在传输的时候如果带宽不够视频将会断点或者进入缓冲区对于用户体验极其不好(大家一定不想观看之时看到缓冲)

在本文中,我们将研究编码,编解码器和压缩技术的过程。这包括推荐编解码器的用途,尽管取决于具体情况。它还说明了为什么某些与压缩相关的工件可能会出现在您的视频中。因此,您将更好地了解此过程以及它与自适应比特率流的关系。
•什么是视频编码?
•为什么编码很重要?
•什么是编解码器?
•什么是最好的视频编解码器?
•什么是最好的音频编解码器?
•那么推荐的编解码器是什么?
•压缩技术
•图像大小调整
•帧间和视频帧
•色度子采样
•改变帧速率

什么是视频编码?

视频编码是压缩和可能改变视频内容格式的过程,有时甚至将模拟源更改为数字源。在压缩方面,目标是减少占用空间。这是因为它是一个有损的过程,会抛弃与视频相关的信息。在解压缩以进行回放时,创建原始的近似值。应用的压缩越多,抛出的数据越多,近似值与原始数据相比越差。

为什么编码很重要?

现在,视频编码很重要的原因有两个。第一个,特别是与流媒体相关的是,它使通过互联网传输视频变得更加容易。这是因为压缩减少了所需的带宽,同时提供了高质量的体验。在没有压缩的情况下,由于正常的连接速度不够,原始视频内容将使许多人无法通过因特网流式传输内容。重要的方面是比特率,或视频中每秒的数据量。对于流媒体,这将决定他们是否可以轻松地观看内容,或者他们是否会被卡在缓冲视频中。

视频编码的第二个原因是兼容性。实际上,有时内容已经被压缩到足够的大小,但仍然需要进行编码以实现兼容性,尽管这通常被更准确地描述为代码转换。兼容可能涉及某些服务或程序,这些服务或程序需要某些编码规范。它还可以包括增加与观众回放的兼容性。

视频编码的过程由视频编解码器或视频压缩标准决定。

什么是编解码器?

视频编解码器是通过软件或硬件应用程序完成的视频压缩标准。每个编解码器包括用于压缩视频的编码器和用于重新创建视频的近似值以用于回放的解码器。名称编解码器实际上来自于将这两个概念合并为一个单词:enCOder和DECoder。

示例视频编解码器包括H.264,VP8,RV40以及这些编解码器的许多其他标准或更高版本,例如VP9。虽然这些标准与视频流有关,但视频通常与音频流捆绑在一起,而音频流可以有自己的压缩标准。音频压缩标准的示例(通常称为音频编解码器)包括LAME / MP3,Fraunhofer FDK AAC,FLAC等。

不应将这些编解码器与用于封装所有内容的容器混淆。MKV(Matroska视频),MOV(MOVie的缩写),AVI(音频视频交错)和其他文件类型是这些容器格式的示例。这些容器没有定义如何编码和解码视频数据。相反,它们以兼容应用程序可以回放内容的方式存储来自编解码器的字节。此外,这些容器不仅存储视频和音频信息,还存储元数据。但是,这可能会令人困惑,因为某些音频编解码器与文件容器具有相同的名称,例如FLAC。

什么是视频编码:视频编解码器

什么是最好的视频编解码器?

如果没有更多信息,这是一个无法直接回答的问题。原因是不同的视频编解码器在某些领域是最好的。

对于通过互联网的高质量视频流,H.264已经成为一种常见的编解码器,估计占据了大部分多媒体流量。编解码器以其出色的质量,编码速度和压缩效率而闻名,尽管不如后来的HEVC(高效视频编码,也称为H.265)压缩标准那么高效。H.264还可以支持4K视频流,这对于2003年创建的编解码器来说非常具有前瞻性。

但是,如上所述,HEVC已经提供了更先进的视频压缩标准。这种编解码器在压缩方面效率更高,这将允许更多人在较慢的连接上观看高质量视频。它也不孤单。2009年,谷歌收购了On2,让他们控制了VP8编解码器。虽然这个编解码器无法风靡世界,但它得到了改进,并发布了一个名为VP9的新编解码器。Netflix 测试了这些后来的格式与H.264相比,使用其目录中的5,000个12秒剪辑。由此,他们发现两种编解码器都能够将比特率大小降低50%,并且仍能达到与H.264相似的质量。在这两者中,HEVC在许多分辨率和质量指标上都优于VP9。例外情况是1080p分辨率,它要么接近,要么在某些情况下使VP9更有效。

通过这些测试,这不会使HEVC成为最好的编解码器吗?虽然从技术上讲它优于H.264,但它忽略了旧编解码器的一个关键优势:兼容性。H.264在各种设备上得到广泛支持,例如,直到2017年底的iOS 11,iPhone才能支持HEVC。因此,尽管不是那么先进,但H.264在许多情况下仍然受到青睐,以便覆盖更广泛的观众进行播放。

注意,H.264编解码器有时也称为X.264。然而,这不是相同的编解码器,但实际上是编解码器与许可的H.264实现的免费等效。

什么是最好的音频编解码器?

像视频一样,不同的音频编解码器在不同的东西上表现出色 AAC(高级音频编码)和MP3(MPEG-1音频层3)是两种有损格式,在音频和视频爱好者中广为人知。鉴于它们是有损的,这些格式实质上是删除与音频相关的信息,以便压缩所需的空间。这种压缩的作用是达到适当的平衡,节省足够的空间而不会明显影响音频质量。

现在这两种音频编码方法已经存在了一段时间。MP3最初于1993年问世,与当时未压缩的标准相比,将音频文件的大小减小到10%,而AAC于1997年首次发布。作为后来的格式,AAC可能就不足为奇了。更有效地压缩音频质量。尽管该声明的确切程度一直存在争议,但即使是MP3格式的创作者,弗劳恩霍夫集成电路研究所也宣称AAC是“手机上音乐下载和视频的事实上的标准”…尽管声明很方便地发生在他们的一些MP3专利已经过期(并且还有一些奇怪的故事声称MP3已经死了,这不太可能的结果)。因此,尽管MP3在今天具有更多的设备兼容性,但AAC受益于卓越的压缩,并且是流式传输两者视频内容的首选方法。不仅如此,而且与视频相关的移动设备上的大量传输取决于音频是AAC。IBM Cloud Video就是一个例子,尽管可以根据需要对音频进行转码以满足这些规范。

现在AAC和MP3远不是数字音频的唯一格式。还有许多其他例子,既像WMA(Windows Media Audio)那样有损,也像APAC(Apple Lossless Audio Codec)一样无损。其中一种格式是FLAC(Free Lossless Audio Codec),它是无损的。这意味着可以从压缩数据中完美地重建原始音频数据。虽然音轨的大小小于WAV(波形音频文件格式),一种未压缩的格式,但与AAC和MP3等有损格式相比,它仍然需要更多的音频流数据。因此,虽然在像蓝光这样的物理媒体上看到了失败,但在尺寸很重要的情况下流媒体却不常见。

那么推荐的编解码器是什么?

支持兼容性,H.264和AAC被广泛使用,IBM Cloud Video支持H.264视频编解码器和用于流式传输的AAC音频编解码器。虽然两者都不是最先进的,但是两者都可以产生高质量的内容并且施加良 此外,使用这些编解码器压缩的视频内容可以覆盖大量受众,特别是通过移动设备。

压缩技术

现在我们已经检查了一些编解码器,让我们看看一些压缩技术。编解码器利用这些技术智能地减小视频内容的大小。我们的目标是没有这样做的巨大冲击的视频质量。也就是说,某些技术对终端观众来说比其他技术更明显。

图像大小调整

压缩的常用技术是调整大小或降低分辨率。这是因为视频的分辨率越高,每帧中包含的信息就越多。例如,1280×720视频在每帧中有921,600像素的可能性,假设它是一个i帧(稍微多一点)。相比之下,640×360视频每帧可能有230,400像素。

因此,减少数据量的一种方法是“缩小”图像大小然后重新采样。这将创建更少的像素,从而降低图像中的细节水平,从而减少所需的信息量。这个概念已成为自适应比特率流的基石。这是为视频提供多个质量级别的过程,并且通常根据创建的不同分辨率来记录这些级别。

调整大小的神器可以是“像素化”的外观。这有时被称为宏块,虽然通常这比仅仅像素化更明显。通常,这是图像的一部分看起来块状的现象。这可以是低分辨率图像和帧间帧的组合,其中视频中的细节实际上正在改变,但是视频的区域被保持为帧间处理的一部分。虽然这减少了视频所需的数据量,但却以视频质量为代价。

请注意,此调整大小过程有时也称为缩放。但是,缩放有时会带来未压缩的含义。例如,有时它用于描述拍摄相同尺寸的图像并以较小的方式呈现它。在这些情况下,像素数不会改变,因此不会应用压缩。

帧间和视频帧

一种可能未被广泛实现的视频压缩技术是帧间帧。这是一个逐帧减少“冗余”信息的过程。例如,具有30的FPS(每秒帧数)的视频意味着视频的一秒等于30帧或静止图像。当一起玩时,它们模拟运动。但是,在这30帧(称为GOP,图像组)中,帧与帧之间的元素几乎保持不变。实现这一点,引入了帧间删除冗余数据。基本上减少了用于传达元素在帧中没有变化的数据。

为了更好地理解这个概念,让我们想象它。

什么是视频编码:帧间

这是一个被抛出和尖刺的排球的静止图像。在这个例子中有相当多的运动,排球被抛出,球被尖刺,沙子飞扬,元素像树木和水一样从风中移动。无论如何,有些部分可以重复使用,特别是天空区域。这些在封闭区域中可见,因为这些元素不会改变。因此,不是花费宝贵的数据来传达天空的一部分没有改变,而是简单地重复使用它们来节省空间。因此,只有视频的以下元素实际上在本系列的帧之间发生变化。

什么是视频编码:帧间

内置于H.264等视频编解码器中的这种技术解释了为什么具有较高运动的视频在应用大量压缩时会占用更多数据或看起来更糟。为了执行该技术,该过程利用三种不同类型的帧来实现这一点:i帧,p帧和b帧。

I帧
也称为关键帧,这是视频的全帧图像。i帧出现的频率取决于它的编码方式。编码器(如Telestream Wirecast和vMix)将允许您选择关键帧间隔。这将注意到i帧的创建频率。创建i帧的次数越多,所需的空间就越多。然而,每2秒进行一次周期性i帧有很多好处,其中最大的一个是自适应流,这只能改变i帧的质量设置。

P帧
预测帧的缩写,这是一个仅包含部分图像的增量帧。它将向后看向i帧或另一个p帧,以查看图像的一部分是否相同。如果是这样,将排除该部分以节省空间。

B帧
双向预测帧的缩写,这是一个三角帧,也只包含一些图像。然而,这与p帧之间的区别在于,当选择在另一帧中存在的细节时,它可以向后或向前看其他delta帧或i帧。因此,B帧提供了改进的压缩,而不会影响观看体验。但是,它们确实需要更高的编码配置文件。

有关整个过程的更多详细信息,请查看我们的 关键帧,帧间和视频压缩文章。

色度子采样

曾经见过一个渐变(颜色从一个渐变到另一个),它有一种刺眼,不自然的外观吗?这可能是减少图像中颜色数量的结果。

正如所料,表示图像所需的颜色信息越多,它所占用的空间就越多。因此,压缩视频数据的一种方法是丢弃一些此颜色信息。这是一个称为色度子采样的过程。其背后的主要思想是人眼检测亮度的差异比色度信息更容易。结果,它试图在牺牲色彩质量的同时保持亮度。

简而言之,这是通过将RGB(红色,绿色,蓝色)光谱转换为YC B C R来实现的。在这样做时,亮度被分离(标记为“Y”)并且可以未压缩地传递。同时,色度信息包含在C B C R中,有可能减少它们以节省空间。这是一个难以描述的过程,但基本上将“Y”视为图像的灰度版本。这与C B “版本” 重叠,其中包含黄色和蓝色的阴影,以及包含绿色和红色阴影的C R “版本”。

什么是视频编码:YCBCR

将所有这些元素添加到一起,您就拥有了一个完整的彩色图像。

在压缩时,通常以类似于4:2:2的方式注意到4:4:4的未压缩版本。在后一示例中,尚未应用色度子采样,并且每个都具有相同的采样率,因此不应用压缩。现在,每个数字线与YC的面积的乙 Ç ř。所以4:2:2意味着灰度版本(Y)没有被压缩,因为它仍然是4,而C B 和C R 都被减少到2,因此它们的采样率是亮度的一半。结果,所需带宽量下降了33%([4 + 2 + 2] / [4 + 4 + 4] = 66%数据与原始数据相比)。存在其他变体,例如4:1:1,其甚至更多地减少带宽,并且4:2:0,其实际上在C之间交替B和C R 在水平线上压缩。

改变帧速率

压缩视频的另一种方法是减少每秒的帧数。这减少了视频所需的数据量,因为传输每秒所需的信息更少。然而,这可能比其他方法更具破坏性,因为太多地降低帧速率将导致视频缺乏流畅的运动。

作者:纳兰少
链接:https://www.jianshu.com/p/d06f0ee82d7f
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(热爱互联网的西电研究生)