1

では、質問する前に少し背景を説明します。QuickTime Java を使用して、ビデオからフレームを取得できます。私の目標は、検索方法で特定のフレームを取得し、フレームを比較して類似しているかどうかを確認することです。二分探索が非常に効率的であることは知っていますが、フレームが 1000 個ほどあり、2 つのフレームを比較するたびに 1 つのフレームを取得するコストが非常に高い場合はどうでしょうか。

私の質問は次のとおりです。Javaでこの問題を解決するためのバイナリ検索よりも高速なアプローチはありますか? 時間のコストを削減する方法はありますか?

4

2 に答える 2

0

私がこれを正しく理解していれば、あなたが基本的にやろうとしていることは、遷移時間のベクトルを見つけることです(そして、遷移とは、スライドの変更を意味します)。

そして、2つのフレームに同じスライドが含まれているかどうかを確認するための何らかのメカニズムがすでにあるようです。

私は間違いなくある種の二分探索に行きます。最初と最後のフレームから開始し、常にそれらの中間のフレームと比較します(時間に関して)。2つのフレームが同じである場合、それらの間を見る必要はありません(プレゼンテーションが線形であり、重複するスライドがないと仮定します)。また、表示されるスライドの最小期間を導入することもできます(たとえば、スライドが少なくとも3秒間表示されると仮定します)。これにより、再帰のより早いブレークポイントが提供されます。

フレームの関連部分(ビーマー領域の検出)のみを提供することで、比較を支援することもできます。

于 2012-06-20T17:22:34.350 に答える
0

二分探索は、ソートされたセットでのみ機能します。そのため、その方法を使用して「通常の」ビデオで失われたフレームを見つけることを期待しないでください。

于 2012-06-21T13:06:37.710 に答える