对于重复数据删除电视剧片头的存储选项

现代文件系统,如APFS、Btrfs、XFS和ZFS支持重复数据删除文件和文件块。可以存储重复数据删除可用于减少类似的电视节目的介绍序列存储需求?有什么其他的选择有哪些?

同样的电视节目多数情节都会有相同的序列介绍。没有人希望通过存储相同数据的多个副本浪费自己的可用存储空间。(除用于备份的目的,当然。)让我们来探讨可用存储重复数据删除方法和它们如何适用于这个问题。

有几种不同的文件系统级存储重复数据删除方法。它的要点是相同的数据块可以被多个文件引用,而不消耗额外的存储空间。实现它的具体细节各不相同,我将在本文中讨论其中一些。最后,我还将讨论文件系统重复数据删除的一些替代方法。

在将一个大文件写入任何存储介质之前,它被分解成更易于管理的块。块大小通常与底层存储媒体的块大小匹配。文件系统重复数据删除的主要方法是块级重复数据删除。这可以在写入块之前在带内完成,方法是将它与由所有其他块组成的表进行比较。这种方法的缺点是它需要大量的内存来存储比较表。或者,可以稍后在带外完成。

此方法对于我们的场景不太有用。每一集的介绍片段可能不会在相同的壁钟时间开始。即使他们做了,他们仍然被编码和存储在文件的不同位置对应的每一集。这两集不太可能在开头和结尾的同一时间出现。

这种方法还有一个与文件本身有关的更基本的问题。视频编解码器以固有的有损和不可预测的结果对原始数据进行采样。对相同的视频序列重新编码两次不太可能产生完全相同的文件。压缩方案也会根据之前视频中的数据进行不同的启动。视频可能看起来和人一模一样,但是文件会完全不同。

您可以通过将引入序列编码一次,然后在每个文件的适当时间将其拼接起来来弥补这个问题。许多视频容器格式都支持将不同的剪辑拼接到一个文件中。无损视频拼接本身就很复杂,当您想要保存确切的底层文件结构时,这个任务就变得非常复杂。

这仍然是不够对准一个固定长度的文件组块的块。有迹象表明,可以采取这个问题的关心,以及两个选项。

第一种选择是在介绍序列之前添加零字节填充,使其与chunker对齐。这需要了解目标文件系统和媒体容器格式的精确信息。Linux上的Btrfs、OCFS2和XFS支持API调用fideduperange可用于分离块对齐的相同数据。

第二个选择是,以取代一些更聪明的固定长度的组块。一个滚动分块读取的最小长度到该文件,然后查找该文件中的模式在那里可以做裁减。它不能保证,但更可能在大块同一个地方不同的文件,从而产生重复的块。没有文件系统目前使用滚动组块,但是。

然而,也有其他的选择要考虑全在一起。我早些时候,视频编码器可以合并拼接不同的视频到对方提及。A few media container formats — including MKV, WebM, and QuickTime — lets you reference media segments external to the file itself. You can encode the intro sequence once in a separate file (or even as a part of e.g. the first episode), and then include references to that sequence in other files. This is a variation of the methods that I’ve already discussed. However, you run into different problems like limited player app support for external segment references.

一个更好的和更广泛的支持的方法是创建每集播放列表。还有的XSPF和M3U8媒体播放列表文件的广泛支持。您可以完全接受媒体块,并将其保存为独立的文件,而不是教学文件系统或媒体播放器魔术。这是很容易创建的重复数据删除的视频文件的播放列表比它要仔细操作视频文件变得更加deduplicateable。每集将至少包含三个视频文件:前奏,共享介绍序列之前和之后的前奏。作为一个不错的奖金,前进按钮将让你刚好跳过介绍序列!

因此,有多少空间可以为您节省?让我们看看星际之门SG-1的一个插曲。平均插曲是42分25秒。前奏序列是约58秒(情节的2,28%)。那你可能会希望在理想条件下保存量的。

但是让我们假设你愿意延长甚至更多的努力去复制你的媒体文件!的米高梅狮子吼在每一集的开始和结束4秒。这可能会被削减,甚至在同一个情节重复数据删除。双重秘密制作和壁虎电影公司片尾处,每次3秒结束比赛。包括前奏,可以可靠地进行重复数据删除每集至少72秒(2,83%)。

片尾字幕很难重复,因为每一集的字幕都不一样。要同步音乐也很困难。然而,经过努力-应该有可能删除某些剧集之间至少部分的结尾字幕。

像《星际之门》SG-1这样的电视剧也有很多电脑生成的图像,这些图像在不同的章节中重复使用。可以想象,至少可以删除一些旋转的星际门和宇宙飞船的外部画面。然而,该剧试图通过水平翻转等技巧将这些场景与每一集区分开来。

所有这一切都需要付出巨大的努力,但收效甚微。如果你能以非常高的质量储存大量的电视剧,这可能是值得的。然而,这将是一个巨大的工作量,并且没有任何工具来自动完成这项任务。

一个高效的重复数据删除文件系统的吸引力在于它理论上自动处理这一切。这听起来很有道理,一个重复数据删除文件系统应该能够处理重复的媒体内容。不幸的是,因为这在这篇文章中探讨,这个问题就会变得混乱,只要你涉及到真实的数据。真实的数据往往是较为凌乱比人们第一眼承担。

有可能是一个平行宇宙,在那里,就是类似于我们自己的,但他们从来没有设法显著增加容量,降低数字存储的成本。在这一理论的平行宇宙,我敢肯定,出现了很多更多的精力投放到自动化,使这种类型的优化更为可行。或者,也许他们已经集中全部精力投入到荒谬的高效压缩和视频编解码器呢?

有趣的额外事实:从各种电视节目中重复的静止帧在专题插图在文章的顶部可能被删除!图像可以作为PNG或无损WebP文件,大小适合您的设备。在较小的图像尺寸中,复制的帧通过每种格式的本地压缩得到去复制。由于图像格式的前置/后置缓冲区的大小限制,它不能在较大的尺寸中工作。