我遇到了无法仅通过算法解决的问题。
假设我有一个视频捕获,它总是以固定速率 F(假设每秒 30 帧)捕获视频帧。
我想要的是将此帧序列“拆分”为 n 个(比如说四个)子序列。每个子序列都有其帧速率 fn,这显然 < F。子序列中的帧在时间上是等距的,因此例如一些有效的 10 fps 序列 f1 将像 F = 30 fps 和时间 = 1 秒那样构造:
(0 是不属于子序列的帧,1 是属于的帧):
100 (in 1 second it will repeated like: 100100100100100100100100100100)
或者
010 (again, in 1 sec it will go like: 010010010010010010010010010010)
或者,对于 F = 30 和 f = 8:
100000001
(并且在以“1”重新开始之前需要 MCD (30,8) = 120 帧)。
问题是子序列不能碰撞,所以如果 F=30,f1 = 10 fps(每三帧)和 f2 = 5 fps(每六帧),这个序列是可以的:
102100 (again, in a second: 102100102100102100102100102100)
但是如果我们加上 f3 = 6 fps
132100 (1 AND 3) <--- collides! 02100102100102100102100
或者
102103102130102 (1 AND 3) <--- collides! 00102100102100
第三个子序列将与第一个子序列发生冲突。
问题是:
- 有没有办法找到n个(n <= 4)子序列的帧速率的每个组合,它们不会发生冲突并且会等距?
(我需要一般情况,但在这种特殊情况下,我只需要一个序列的所有有效组合(平凡),两个序列的所有有效组合,三个序列的所有有效组合,以及四个序列的所有有效组合) .
希望有人能启发我的想法。谢谢!