文件比较策略

时间:2010-03-26 18:47:57

标签: algorithm video hash comparison pattern-matching

我正在搜索可能用于以编程方式查找可能彼此重复的文件的策略。特别是在这种情况下,视频。

我不是在寻找完全匹配(就像在彩虹和阳光下那样好)。我只是想收集内容可能相同的视频对,以便人类可以比较它们以确认。例如,相同的内容,不同的分辨率。

到目前为止的策略:

  • 散列
  • 比较文件大小
  • 比较视频长度
  • 比较文件名
  • 持续保持调查结果“记住”以前的重复
  • 上面的混合和匹配策略

您是否了解上述策略的任何策略或改进?

有没有人知道任何产生散列范围的散列函数,表明整体内容是“接近”。

2 个答案:

答案 0 :(得分:3)

对于有效的n路比较,您需要将视频缩小为小参数空间(“指纹”),其具有与视频相似性良好相关的相似性度量。例如,散列不是一个好的参数空间,因为输入视频中的微小差异会导致散列的巨大差异。在频谱的另一侧,视频长度不是一个好参数,因为相当不同的视频可以具有相同的长度。

良好的参数空间取决于您想要忽略的差异类型以及要放大的类型。可能有效的一个选择是将视频划分为时间维度中的10秒间隔和空间维度中的16个矩形。然后在10秒间隔内获取每个矩形的平均颜色。然后使用参数向量之间的欧氏距离作为相似性度量。 (即对于每个时间间隔,对于每个方格,对于每个颜色通道,减去两个强度,取正方形并将它们全部加在一起)如果您需要检测可能是其他剪辑的一小部分的剪辑,它会变得有点棘手,但计算特征向量的一般原则应该有效。例如,场景变化检测应该有助于创建视频长度不变参数。

答案 1 :(得分:0)

这对计算机几乎是不可能的。视频流中最微小的差异(例如宽度减少一个像素)将导致完全不同的数据流。要进行任何有意义的比较,您必须将视频重新编码为已知格式和分辨率,帧速率非常低。然后,您可以开始查看每个帧以查看它们是否彼此相似。这是一项非常密集的工作,包括计算和算法。