0

libdc1394 を使用して、firewire カメラ用のフレームグラバーをコーディングしようとしています。カメラの初期化は適切に行われ、ビデオ モードはサポート対象に設定されDC1394_VIDEO_MODE_640x480_YUV422、フレームはエラーなしで取得されます。

ただし、問題は、返されるフレームが 640x480x1.5 バイトで構成されていることです。これは、実際には YUV411 パッケージです。また、ビデオ フレーム構造体には、使用されたビデオ モードが YUV411 であることが示されています。

しかし、データは実際には YUV411 でデコードされません。代わりに、YUV422 デコードは有効な画像を生成しますが、フレーム データの最後のバイトが欠落しているため、画像の下部領域が欠落しています (YUV422 は 1 ピクセルあたり 16 ビット、YUV411 は 1 ピクセルあたり 12 ビットです)。

現在、カメラは IIDC v1.30 に準拠しており、libdc1394 はそれをサポートしています。サポートされている唯一のビデオ モード (libdc1394 で述べられているように) が使用されており、それがカメラのマニュアルにカメラが使用していると記載されています。

グーグルでこの問題を回避する方法が見つかりませんでした。手がかりはありますか?

4

1 に答える 1

0

問題は、デバイスのファームウェアがビデオ モードの正しい値を返さないことにあります。これは、必要な値を返すように libdc1394 にパッチを適用することで解決できます。

于 2009-07-07T10:02:24.477 に答える