MeGUI/电脑电影文件/视频
视频编码器工作原理的基本介绍
- 视频编解码器通常使用三种不同类型的帧:I 帧、P 帧和 B 帧。
- I 帧(I 代表内部,表示在内部)是关键帧。它们就像一个 jpg(唯一相似之处是它们实际上都是压缩图像)的特定帧,用于将视频切成更小的区域,并作为其他帧的参考。这些帧不需要依赖任何其他帧进行解码,这就是“内部”的来源。
- P 帧是预测帧(看出来 P 从哪里来的了吗?)。这意味着它们由两部分组成。第一部分是原始内容,就像 I 帧一样,帧的部分(不是全部)与 jpg 类似。其他部分是“预测”标签的来源 - 它们取自之前的帧。这是困难的部分。假设你的帧上有某人的头部,并且它正在向左移动(平移)。那么,如果第一帧是 I 帧,你可以将第二帧设为 P 帧。然后你会说“将帧 #01 的信息全部向左移动 4 个像素。然后将这个新数据添加到右侧”。然后你就得到了一个 P 帧。啊,原来没那么难嘛。
- B 帧只是 P 帧的逻辑扩展,B 代表双向。B 帧是根据过去和未来帧预测的,并且它们可以包含原始内容。在你了解更多之前,只要假设它是这样工作的,不要为了弄明白为什么它会这样而彻夜难眠。
关于标准和编解码器之间区别的说明:
- 标准是一组规范,旨在用作关于视频(或任何其他内容)格式应如何工作的描述。
- 编码器(又称编解码器)是标准的实现。
- 看出区别了吗?这意味着,当一个标准(比如 MPEG-4 ASP)发布时,许多不同的组织会制作自己的编码器,比如 DivX 和 XviD。没错,你没看错。DivX 编码会生成一个文件,该文件可以使用与 XviD 所需的相同的解码器播放。当然,现实生活永远不会那么美好,不同的编码器会使用标准中的不同功能,甚至添加自己的功能。一个现实世界的例子
- Quicktime h264 仅使用 MPEG-4 AVC 定义的基本功能。像 x264 这样的编码器几乎使用所有功能。这意味着,你很难用 QT 制作出一个与 x264 质量相当的文件。
MeGUI 仅支持 Xvid MPEG-4 ASP 编码和 X264 MPEG-4 AVC 编码。
到目前为止,视频格式最常见的标准组是由 MPEG(Motion Pictures Experts Group)小组发布的。下面列出了部分格式。
可能是现存最古老的视频标准。最初是为了将视频存储在 CD(即 VCD)和其他此类设备上而创建的。最常见的用途是 NTSC 的 352x240 @ 1.5Mbit/s 和 PAL 的 352x288 @ 1.5Mbit/s,通常被称为“VHS 质量”。
旨在比MPEG-1产生更好的质量,但需要更高的比特率。换句话说,如果你查看低于 1.5mbits 的比特率,几乎不会有区别。对于高于此比特率的任何比特率,MPEG-2 将提供显著更好的质量。这种格式是 DVD、SVCD 和 KVCD 所使用的格式。值得注意的是,它也是为数不多的几种视频格式之一,其中除了 YV12 之外的颜色空间在野外可见,MPEG2 偶尔会使用 YUY2。
SP 代表Simple Profile(简单配置文件)。
如下所述,MPEG-4 ASP 的简化版本。删除了许多很酷的功能,现在几乎已经过时了。它的大名鼎鼎的编码器有 Sorenson(用于 QuickTime)和 3ivx。微软尝试提供它的实现(作为 Microsoft Video V1/V2),但他们的实现不符合规范,因此基本上被忽略了。
ASP 代表Advanced Simple Profile(高级简单配置文件)。也称为“MPEG-4 Part 2”。
到目前为止,动漫和“场景”(即美国电视和电影)发布中最常见的格式。两个最大的实现是 DivX 和 XviD。按照现在的计算机标准来看,CPU 要求相当低,质量仍然不错。
常见实现
- Xvid。现今最好的免费实现,可能比大多数商业实现还好。支持 ASP 规范中的几乎所有内容,绝对是这种内容的推荐编码器。这是唯一...
- DivX。通常被新手编码器使用,但 XviD 通常会产生更好的结果。请注意,包含的解码器会产生很差的质量,你不应该在有其他选择的情况下使用它。
- LMP4。代表Libavcodec MP4,一个与 XviD 类似的编码器,但在质量方面落后。由 FFmpeg 和 Libav 团队开发。在 mencoder 和其他几个地方实现。
AVC 代表Advanced Video Coding(高级视频编码)。
维基百科有一篇关于 MPEG-4 AVC 的不错的文章,也就是 h264,也称为 AVC,也称为 MPEG-4 Part 10。继 MPEG-4-ASP 之后,MPEG 视频压缩的下一步。它在编码和解码速度的代价下,提供了显著的压缩改进(仅一个选项就可以提高效率 20%)。
常见实现
- x264。与 XviD 相似 - 它是其标准的唯一开源编码器,而且比所有商业编码器都更好。x264 支持大多数高配置文件选项(请参见维基百科页面,了解哪个功能对应于哪个配置文件级别)。对于个人高质量 h264 来说,它是事实上的编码器,因为它是唯一公开可用的CLI 编码器,而且正如之前所说,它支持的功能最多,并输出最高质量。主页位于 x264.nl。这是 MeGUI 支持的唯一 AVC 编码器。
- Nero Recode。它不像 x264 那样公开那么多的选项,但它包含一个友好的 GUI,而 x264 没有。虽然最终的质量没有 x264 那么好,但它拥有一个 GUI 的事实使其成为初入视频编码领域的用户的不错选择。主页在这里:nero.com。
- Apple h264。这场比赛中获得木勺的是...... 苹果!好吧,它并不是真正的木勺,因为即使是苹果的 h264 实现也比 XviD 好很多。它们的文件是普通的旧版基线配置文件,但也会使用 1 个 B 帧。有关所使用配置文件的更多信息,请点击此处。主页:apple.com/quicktime
由标准化机构ITU-T开发的一组视频规范。
基本上是MPEG4-ASP 的一个子集。通常在移动电话的 3gp 容器中找到。
h263 加上一些随机内容。一些随机内容与 MPEG4-ASP 也不兼容。也就是说,h263+ 在现实世界中比 h263 更罕见,它存在的唯一地方是专有的视频会议软件和一些移动电话。通常在移动电话的 3gp 容器中找到。
MPEG-4 AVC 的另一个名称。
一个免费的编解码器,它是在 On2 发布 VP3 源代码并使其可供自由使用时创建的。开发速度相当缓慢,也就是说它没有发生。这种格式的最大优势在于它完全免费用于任何用途,这意味着对于任何开源狂热者来说,这都是你的必备编解码器。缺点是,与最新的编解码器相比,质量并不是那么出色,而且 ffdshow / VLC / mplayer 实际上是唯一支持它的 Windows 程序。从质量上来说,它与 VP3 几乎相同,比 MPEG-1 略高,但远低于最新的编解码器,例如 MPEG-4 AVC 或 VC-1
On2 是一家制作视频规范和编解码器的公司。由于它们是一家私人公司,因此它们制定的规范显然是封闭和私有的。该公司被谷歌收购。
旧的,罕见的,实际上没有使用。 Theora 是基于此的,质量与 MPEG-1 相当。
On2 在 VP3 之后推出的下一个编解码器,它已成为 Flash 视频格式 (.flv) 的官方编码器之一,因此可以由 Flash 解码。不过,它很少使用,大多数人似乎都使用 h263。现在 MPEG-4 AVC 也是 Flash 视频支持的格式,因此它可能会悄然过时。
On2 在 VP6 之后推出的编解码器。他们声称质量与 MPEG-4 AVC 和 VC-1 相同。没有人真正关心它,并且它早已被淘汰。他们的页面上有一个供个人使用的免费编码器/解码器。
On2 的 VP7 继任者。在谷歌收购 On2 后,它成为一个免版税的编解码器。它被 WebM 格式使用。
VP8 的继任者。
Windows Media Video 编解码器组,由微软开发。阅读 维基百科文章 以获取有关构成 WMV 系列的各种格式(包括 VC-1)的更多信息。通常,所有这些标准的唯一可用编码器是官方的微软编码器。
对官方 MPEG 规范(主要是)进行的各种古代修改,它们存在于 WMV 品牌名称诞生之前。如今基本上看不见了,但在 Windows 的某些版本中仍然存在用于它们的 VfW 编码器。一些全名:Microsoft H.261/3 视频编解码器、Microsoft Video 1/2、MS MPEG Video 1/2(可能与上一项相同)。
微软的视频编解码器,可能在 2000 年左右首次出现。它们是 .wmv 文件中使用的主要编解码器,因此在很多地方都很常见。相对质量一直低于替代方案(即:xvid 和 x264)。也就是说,质量下降并不大,并且保证每个 Windows 计算机上都有解码器。通过 libavcodec 以及任何使用它的东西,甚至在 Linux 上也支持播放。
WMV9 的扩展,它为广播领域添加了一些必需的功能(换句话说,完整的隔行扫描编码(WMV9 仅支持 4:1:1 色彩格式的隔行扫描))。据称质量与 MPEG-4 AVC 相同,但事实并非如此。VC-1 实际上是 AVC 功能的子集(当然是一个完全不兼容的子集),因此它缺少许多强大的编码技术。大多数测试表明质量等于或优于 xvid,这远低于不错的 h264 编码器。在 HD DVD 和蓝光光盘上找到。