Theora 1.1 发布 – 你需要了解的信息

Theora 1.0 发布不到一年后,Xiph 的优秀团队发布了 Theora 1.1。1.1 版本是 Theora 编码器和解码器 的纯软件版本。它没有对 Theora 格式进行任何更改。现有的 Theora 视频应该能够继续使用新的解码器播放,并且新的 Theora 编码器生成的比特流可以在能够播放 Theora 内容的现有播放器中工作。

1.1 版本主要改进了 Theora 编码器。这篇文章将尝试向大家提供关于这些更改的高级概述,以及它们对 Web 开发人员和考虑部署 Theora 来支持 HTML5 视频的人员意味着什么。Theora 对于 Web 开发人员来说是一项重要的技术——它是目前唯一符合 W3C 专利政策 的竞争性编解码器。

以下列出了此版本中一些重要的更改。我们将详细介绍每个项目。

  • Theora 1.1 提高了视频质量。
  • 实时流媒体的码率控制现在运行良好。
  • 编码器添加了双通道模式,可以创建具有非常可预测带宽需求的码率控制视频。
  • 编码过程中的 CPU 使用率更加稳定。
  • 解码器性能得到了提升。

Theora 1.1 提高了视频质量。

Theora 1.0 编码器的一个问题是它生成的视频看起来比较模糊。通过 Xiph 开发人员之一 Monty 提供的两张图片可以清楚地看到 1.1 的改进。在新的标签页中打开每个图片并进行切换。你可以看到明显的区别。

这在文本边缘也表现得很明显。以下是我们 Firefox 3.5 促销视频 中的一个例子。第一个使用的是 1.0 编码器 (9.0MB),第二个使用的是 1.1 编码器 (8.2MB)。你会注意到,不仅边缘更加清晰,而且文本边缘周围的噪点也少了很多。同样,如果你在标签页中打开它们并进行切换,你就可以看到区别。

请注意,原始的 视频 接近 17MB。这主要是为了使文本清晰。通过这些更改,我们可能可以使用更低带宽版本的视频,可能小到 9.9MB。这是一个很大的差别。

请注意,我们讨论的是在相同视频比特率下的质量改进。这意味着我们要么能够在相同的文件大小下生成更高质量的视频,要么能够减小文件大小并保持相同的质量——无论哪种方式,这都是一个巨大的胜利。

实时流媒体的码率控制现在运行良好。

在描述此更改之前,必须先说明一些重要内容。这就是使用可变比特率 (VBR)恒定比特率 (CBR) 编码的视频之间的区别。

在可变比特率编码中,表示视频中两帧之间差异所需的数据量可以增长。当从一个运动不多的场景切换到一个运动剧烈的场景时,这种情况最常发生。你可能会很容易地从需要 40Kb/秒增加到 400Kb/秒,因为整个背景都在移动。

在恒定比特率编码中,用于表示从一帧到下一帧变化的数据量被固定在某个最大值。如果你有一个较低的最大值,并且有一组帧需要大量比特来表示从一个到下一个的变化,则需要牺牲一些东西才能保持在该最大值以内。通常会牺牲一些视频质量,或者编码器会开始丢帧以保持在水印之下。

这导致了一个非常简单的规则:如果你想要获得尽可能高的视频质量,则应该使用可变比特率编码。这意味着,当你对视频进行编码时,应该使用质量设置(0-99、低/中/高、1-10),而不是选择比特率(60Kb/秒、200Kb/秒)。对于 Web 上的大多数用例来说,VBR 编码的视频实际上运行良好,因为用户可以在当前位置之前缓存相当多的视频,因此这些数据突发不会影响用户体验。

但是,在某些情况下,使用恒定比特率非常重要。这些包括

  1. 通过 HTTP 进行的具有大量客户端的低延迟实时流媒体。
  2. 流式传输大型文件,其中不希望使用大型预读缓冲区。
  3. 数据大量突发导致 CPU 处理大量突发的情况。

对于通过 HTTP 进行的低延迟实时流媒体,了解在需要处理突然的数据突发时会发生什么非常重要。HTTP 运行在 TCP 之上。在 TCP 中,连接需要一段时间才能增加其带宽。(“一段时间”的意思是“不是那么长”,但它足够长,会影响我们在此用例中想要的低延迟连接。这就是为什么许多低延迟应用程序不使用 TCP 的原因。但我们正在讨论通过 HTTP 传输视频。)如果你有大量数据突发并且 TCP 窗口需要很长时间才能打开,你就会开始在服务器上构建一个大型发送缓冲区。(并且请记住,在此用例中,你有很多客户端连接!)这需要大量内存来保存每个客户端的发送缓冲区。然后发生的情况是,服务器会开始大量关闭连接,因为它需要节省内存或者因为它认为客户端已变得无法访问。更糟糕的是,即使连接扩展然后缩小,它也会重新稳定在低速率,并且必须重复此过程。用户体验是视频流停止并重新启动或在服务器挂起时完全停止工作。解决方案?使用恒定速率,它不需要 TCP 窗口突然打开,也不需要为每个客户端提供大型发送缓冲区。

对于流式传输大型文件的用例,客户端缓存大量数据可能不合理。你可能也正在向大量客户端提供大量数据,并且可能也希望避免大型发送缓冲区问题,只是出于不同的原因。

对于你在 CPU 受限环境中的最后一个用例,可变比特率视频的突发特性意味着通常需要大量 CPU 突发来处理这些突发。虽然 CPU 的突发速度比 TCP 快,但你可能正在与受限处理器(例如移动设备)通信,或者你可能正在提供接近高清大小的内容的文件,而 CPU 通常难以解码这些内容。

无论如何,恒定比特率编码都有许多用例。回到 Theora 1.1 中改进的内容的问题。

在 Theora 1.0 中,码率控制编码模式非常糟糕。这导致了两件事

  1. 尝试进行实时流媒体的人遇到了问题。
  2. 使用码率控制设置将 Theora 的整体质量与其他编码器的质量进行比较的人,看到的 Theora 结果比该格式实际代表的结果更差。

第一个问题很清楚——它坏了,应该修复。并且已经修复了。新的编码器在保持比特率方面做得很好,可以动态更改质量,丢弃帧,甚至包括“软目标”模式,以便比特率可以稍微波动以保持质量,同时偶尔会违反带宽规则。

编码器还具有一项很棒的新功能,人们会发现它非常有用。现在可以为视频编码指定最大速率上限,同时还可以指定最低质量下限。这意味着编码器将尝试在速率约束内保持非常清晰的视频帧。这意味着它会积极丢弃帧,而不是创建模糊或低质量的帧增量。虽然这听起来像是权衡取舍,但实际上非常有用。如果你正在展示演示文稿的实时视频,你通常希望幻灯片的视频清晰,并且较低的帧更新率是可以接受的。

Theora 1.0 中糟糕的码率控制导致的第二个问题是营销问题。人们通常会使用固定比特率模式而不是质量模式进行编码,并将结果视为格式的反映,而不是编码器的问题。我们希望人们在使用新的编码器时能够获得更好的结果。

编码器添加了双通道模式,可以创建具有非常可预测带宽需求的码率控制视频。

除了在 1.1 中修复单通道码率控制编码器之外,还添加了一个双通道编码选项。这意味着,如果你正在转码文件(而不是进行实时流媒体),则可以根据需要在文件中创建非常一致的比特率。这是因为编码器可以提前查看流以有效地分配比特。 来自 Xiph 的 Monty 制作了一个图表,显示了一个文件在使用单通道和双通道时的比特率示例。

上图:使用默认双通道比特率管理与单通道(使用 –soft-target)在 [黑客帝国电影片段] 处以 300kbps 编码时的量化器选择(大致对应于编码质量)图表。两种编码都产生了相同的比特率。单通道编码的质量变化很大,因为编码器无法提前计划。

编码过程中的 CPU 使用率更加稳定。

进行实时流媒体的人通常会在高运动事件期间看到 CPU 使用率出现巨大峰值。这个问题已经得到修复,现在在单通道码率受限编码期间,CPU 使用率更加稳定,从而使实时流式传输视频变得更加容易。

解码器性能得到了提升。

最后但并非最不重要的是,在 1.1 版本中,解码器速度更快。速度提升多少在很大程度上取决于片段,但人们报告说,新的编码器比 libtheora 的 1.0 版本快 1.5-2 倍。

即将登陆您附近的某个产品。

此版本是库版本。它本身不是产品,而是其他产品包含的内容。因此,在接下来的几天和几周内,我们将看到其他产品采用并开始将其用作其版本的一部分。

尽情享受吧!


39 条评论

  1. Kurt (supernova_00)

    Firefox 升级到此编码器的错误报告是什么?

    2009 年 9 月 25 日 上午 10:53

  2. Gerv

    Firefox 3.6 中是否会包含 1.1 解码器?:-)

    Gerv

    2009 年 9 月 25 日 上午 11:35

  3. John Dowdell

    您好,Chris,是否考虑过发布一组插件,以便其他浏览器的用户也可以观看这些视频?或者内容开发者仍然需要进行多重编码?

    谢谢,jd/adobe

    2009 年 9 月 25 日 上午 11:38

  4. F1LT3R

    这些改进令人惊叹。更低比特率下获得更高质量的视频意味着有人付出了非常非常大的努力。显然,这值得付出努力。

    2009 年 9 月 25 日 下午 1:12

  5. dave

    @jd/abode:Firefox、Opera 和 Chrome 已经可以原生播放这些视频(Opera 目前只有测试版本),Safari 可以使用 XiphQT Quicktime 组件,IE 可以使用 ChromeFrame。

    @ Christopher Blizzard:我认为你有一处细微的错误,你说“如果你正在转码文件(而不是进行实时流媒体),则可以创建非常一致的比特率”。实际上,比特率会发生变化,双通道模式让你能够在指定总大小(因此是特定的*平均*比特率)下获得恒定的质量,但瞬时比特率会根据需要升高和降低。对于实时流媒体,你才是想要一致的比特率。

    2009年9月25日 14:01

  6. Blair McBride

    我不断地对Xiph在Theora上所做的出色工作感到印象深刻——另一个开源成功的案例。

    2009年9月25日 20:18

  7. Drazick

    Firefox什么时候会集成1.1解码器?
    FF 3.6会集成吗?

    2009年9月26日 01:50

  8. Asa Dotzler

    编码器的更改是视频质量方面最大的改进。您无需等待Firefox集成新的解码器即可在使用1.1编码的视频中看到巨大的改进。

    2009年9月26日 11:28

  9. Steve

    Firefox什么时候会集成1.1解码器?
    FF 3.6会集成吗?

    我认为解码器并没有真正的变化

    * 它不包含对Theora格式的任何更改。
    * 新的Theora编码器生成的比特流可以在能够播放Theora内容的现有播放器中使用。
    * 1.1版本主要是对Theora编码器的改进。

    2009年9月26日 11:37

  10. marius

    据我所知,Firefox和其他浏览器不需要升级解码器,因为使用新版本Theora编码的影片与旧版本完全兼容。

    升级后的解码器只有在某种程度上降低解码CPU占用或针对某些架构进行汇编优化时才有用……诸如此类……否则,内置的解码器在解码任何影片方面都不会有任何问题。

    2009年9月26日 11:40

  11. Matthew Gregan

    我正在将Theora 1.1解码器导入主干(错误507554)。我不确定它是否会进入Firefox 3.6。

    2009年9月26日 12:57

  12. […] 您可以在本文中找到这些新功能的详细说明。[…]

    2009年9月26日 14:34

  13. […] “我们很高兴宣布新的libtheora稳定版本发布,该版本参考并实现了Xiph.org基金会的Theora视频格式。此次发布的版本为1.1,代号“Thusnelda”,吸收了过去几年里我们所做的所有编译器改进,有些代码甚至可以追溯到2003年。相比1.0解码器,这个版本的速度提升了很多,而且有很多的改进。”更多变更信息,点击查看Mozilla的文章。[…]

    2009年9月26日 17:52

  14. Ben Waggoner

    我进行了一些特定场景的测试,将Theora 1.1与x264和VC-1 Encoder SDK的当前版本进行了比较,测试了离线VBR和实时CBR编码。

    http://cid-bee3c9ac9541c85b.skydrive.live.com/browse.aspx/.Public/Theora%5E_1.1

    Theora肯定得到了改进,但我在这些示例中看到了很多基本模式。Theora可以通过后处理滤镜得到很好的改进。并且1遍CBR在处理更具挑战性的内容之前需要更多改进才能产生良好的质量。

    2009年9月26日 20:31

  15. John S. Gook

    太糟糕了,像MPEG-4第10部分AVC这样的真正技术从很久以前就能做到这一点,而且速度只有这个“增强版”Thoera所需速度的一半。更重要的是,它不会随机崩溃,因为AVC是由真正的工程师设计的,而不是自以为是的孩子试图“对抗权威”。

    2009年9月26日 21:10

  16. mmmh

    这段视频真是太棒了。质量极佳。

    感谢这篇内容丰富的文章。 :)

    2009年9月27日 00:54

  17. Dot

    要让Firefogg使用1.1稳定版,我是否只需将ffmpeg2theora替换为主干版本?或者我应该等待Firefogg发布?

    2009年9月27日 04:36

  18. […] 在发布说明中,我们发现了一个完整的更改列表,尽管也许hacks.mozilla.org的家伙们更[…]

    2009年9月28日 00:04

  19. Raju Bitter

    太棒了,对于渴望高质量开放视频的人来说是个好消息!

    2009年9月28日 01:03

  20. […] 来自Mozilla的Blizzard发表了一篇详细的博文,介绍了这些改进以及它们对开放视频创作者、分发者和观看者的意义。[…]

    2009年9月28日 08:10

  21. michael dale

    我想提一下,您可以使用firefogg.org上的浏览器内编码扩展程序试用1.1 Theora编码器

    http://firefogg.org/make/index.html

    2009年9月28日 08:17

  22. Sage Ross

    不错。我有一个错误报告,我不确定在哪里提交。

    我昨天尝试使用Firefogg和ffmpeg2theora命令行进行两遍编码,但它无法工作。使用Firefogg(昨天安装),当选择两遍时,它根本无法超过0%完成(不选择时工作正常),而使用ffmpeg2theora(昨天的每日构建)则会显示一条关于无法创建临时文件的错误消息。

    这是在Windows Vista上。

    2009年9月28日 10:58

    1. Ananda

      这听起来像是Windows Vista特有的权限问题,默认情况下,Windows Vista不允许软件写入配置文件(我的文档、桌面等)之外的任何文件夹。提交错误报告的合适位置是ffmpeg2theora项目网站和Firefogg的网站。

      “使用Firefogg(昨天安装),当选择两遍时,它根本无法超过0%完成(不选择时工作正常),而使用ffmpeg2theora(昨天的每日构建)则会显示一条关于无法创建临时文件的错误消息。

      这是在Windows Vista上。”

      2010年2月2日 08:55

  23. Rahul Sundaram

    Christopher Blizzard – 非常棒的文章

    Matthew Gregan – 如果能实现就好了。或者您可以考虑至少以可选方式为Linux集成gstreamer。

    2009年9月29日 03:20

  24. […] […]

    2009年9月29日 09:11

  25. […] Firefox 3.5出现在Ubuntu 9.10中,并且Theora编码器和解码器有了极大的改进,<video>标签的广泛采用可能是发生在线Linux上最好的事情[…]

    2009年9月30日 12:37

  26. david cs

    为什么使用1.1编码的视频比v1.0更模糊?

    2009年9月30日 22:02

  27. […] 由vinicius (vini_ipsmakerΘyahoo·com·br)发送:“这个免费视频编解码器发布了新版本。新版本有很多改进;我认为只要等待HTML5,我们就会看到Theora成为最常用的编解码器之一。现在还需要Dirac改进,并且CELT变得稳定。”[参考:hacks.mozilla.org] […]

    2009年10月1日 04:01

  28. Robin

    “解码器性能已得到改进”部分中有一个错别字,文本中写的是“编码器”,而不是“解码器”。

    2009年10月2日 06:52

  29. […] 在质量方面达到同等水平,尽管格式本身没有更新,但Mozilla的Christopher Blizzard出色地展示了Theora 1.1编解码器(压缩-解压缩软件)带来的巨大改进。这些[…]

    2009年10月2日 08:51

  30. Tack

    我在theora 1.1 fx35_overview视频中确实看到了一些更多的振铃,所以也许10MB有点过于乐观了。

    2009年10月2日 09:47

  31. […] 我们需要等一段时间才能看到这些变化。该公司成员之一Chris Blizzard预计,该领域的初步实验将在几周内准备进行预评估。[…]

    2009年10月2日 12:33

  32. Tony Lovasco

    在我的所有测试中,Theora 1.1都比1.0有了巨大的改进。Theora终于开始为受专利限制的编解码器(如Xvid)提供一些真正的竞争。

    2009年10月3日 09:23

  33. David

    John S. Gook:Theora是VP3的增强版本。VP3由On2开发,而不是“孩子们”。VP3也是Flash视频编解码器基础。这与“对抗权威”无关。Mozilla无法合法地发布AVC。你想让他们做什么——关闭源代码、限制分发并为每个Firefox下载支付版税吗?在发表恶意评论之前,请了解一些事实。

    2009年10月5日 20:05

  34. dave

    再次观看宣传视频时,我注意到当显示文本卡片时(例如徽标或Fast、Faster、Fastest文本),您仍然可以看到大约1像素的Mike Beltzner的头发在顶部晃动。

    这不仅有点分散注意力,而且不利于压缩。

    2009年10月6日 08:38

  35. […] 新一代(Ogg) Theora视频 – 多年来,Theora,一种不受已知专利限制的开放且免费的格式,为热爱自由的用户提供了共享视频的方式。Fedora 12包含新的Theora 1.1,它实现了与H.264相当的高质量,满足了对高质量媒体的需求,无论是流媒体还是下载形式,都能提供清晰、生动的媒体。这要归功于Xiph.Org基金会的Christopher “Monty” Montgomery(由Red Hat赞助)、其他Xiph开发者以及Mozilla.org的贡献,Theora视频现在提供了更好的质量,主要通过编码器的增强实现,而无需更改格式,使其可供所有Theora用户使用。使用Theora视频和Vorbis音频格式,Firefox 3.5和使用Gstreamer多媒体框架的应用程序可以开箱即用地提供比Fedora先前版本更好的免费网络媒体。Theora正被包括维基百科、VideoPress和DailyMotion在内的多个热门网站迅速采用。Fedora项目很自豪地支持自由文化和开放内容社区,这是我们使命的一部分。更多详细信息,请访问https://hacks.mozilla.ac.cn/2009/09/theora-1-1-released/ […]

    2009年11月18日 02:35

  36. […] 新一代(Ogg) Theora视频 – 多年来,Theora,一种不受已知专利限制的开放且免费的格式,为热爱自由的用户提供了共享视频的方式。Fedora 12包含新的Theora 1.1,它实现了与H.264相当的高质量,满足了对高质量媒体的需求,无论是流媒体还是下载形式,都能提供清晰、生动的媒体。这要归功于Xiph.Org基金会的Christopher “Monty” Montgomery(由Red Hat赞助)、其他Xiph开发者以及Mozilla.org的贡献,Theora视频现在提供了更好的质量,主要通过编码器的增强实现,而无需更改格式,使其可供所有Theora用户使用。使用Theora视频和Vorbis音频格式,Firefox 3.5和使用Gstreamer多媒体框架的应用程序可以开箱即用地提供比Fedora先前版本更好的免费网络媒体。Theora正被包括维基百科、VideoPress和DailyMotion在内的多个热门网站迅速采用。Fedora项目很自豪地支持自由文化和开放内容社区,这是我们使命的一部分。更多详细信息,请访问https://hacks.mozilla.ac.cn/2009/09/theora-1-1-released/ […]

    2009年11月19日 01:12

  37. […] 支持自由文化和开放内容社区,这是我们使命的一部分。更多详细信息,请访问hacks.mozilla.org上的theora 1.1发布 – 您应该了解的信息图形支持改进 – Fedora 12引入了对AMD Radeon HD的实验性3D支持[…]

    2009年12月5日 03:04

  38. Daniel Hendrycks

    http://www.petitionspot.com/petitions/oggandyoutube/

    在YouTube的HTML5播放器上使用Ogg的请愿书。请就此撰写一篇文章。

    2010年1月24日 11:24

本文的评论已关闭。