2

私は、カメラ メーカー独自の API を介して特殊なカメラからビデオをキャプチャする C# プログラムを作成しました。キャプチャしたフレームを FileStream オブジェクトを介してディスクに書き込むことはできますが、フレームレートに関しては、カメラとディスク I/O に翻弄されます。

必要なフレームレートで確実にディスクに書き込む最善の方法は何ですか? リアルタイムの平均フレームレートを計算し、特定のフレームレートを維持するためにフレームを追加/破棄するアルゴリズムはありますか?

4

2 に答える 2

0

情報が少ないので何とも言えません。

フォーマットは何ですか?圧縮はありますか?

カメラ API はどのようにフレームを送信していますか? カメラが要求したフレーム レートを送信するように、タイミングが設定されていますか? そうであれば、実際に I/O 速度を扱っています。

高品質が必要で、圧縮せずに書き込んでいる場合は、ロスレス圧縮アルゴリズムをいくつか試して、処理とドライブ I/O のバランスをとることができます。ボトルネックが高いドライブ I/O にある場合、速度が向上する可能性があります。

フレームの場合、それを実装する方法があります。通常、フレームにはタイムスタンプがあり、それを検索して、他のフレームに非常に近いフレームを破棄する必要があります。

60 fps が必要な場合、フレーム間のミリ秒単位のスペースは 1000/60=16 ミリ秒です。取得したフレームのタイムスタンプが最後から 13 ミリ秒である場合、それを破棄してディスクに書き込まないでください。

于 2013-08-15T01:08:25.560 に答える