使用 IEEE 1394 相機擷取影像出現錯誤訊息"-1074364394 Insufficient Resources Avaiable for Required Video Mode"



硬體: PXI/CompactPCI>>Controllers

問題: 我使用 NI-IMAQdx 驅動程式來控制 FireWire Camera (IEEE 1394) 擷取影像,但是當我試著攝影(Grab)或拍照(Snap)時,出現錯誤訊息 -1074364394 Insufficient resources available for required video mode。為什麼會發生這個錯誤?我該如何解決?

解答: 本上,這個錯誤的發生原因在於相機試著在 FireWire 上短時間內傳輸過多的資料所造成。有許多相機採用的是逐步傳輸影像資料,或是用序列的方式來傳遞;但是 FireWire 傳輸線是用一個個封包來撌輸,而每一個封包會在排定的時間送出,這種方法稱為等時性(isochronous)的資料傳輸。這些封包的大小和傳輸間距取決於影像的大小和位元深度(bit depth),以及擷取之畫面更新速率(frame rate)。倘若影像的擷取參數超出在該頻寬下實際可運作的範圍,便會產生這個錯誤。

若要解決這個問題,封包之大小或速度必須要調整至合理的影像設定。以下的步驟說明了該如何變更設定:
  1. 開啟 Measurement and Automation Explorer (MAX)
  2. 展開 Devices and Interfaces
  3. 展開 Legacy NI-IMAQ IEEE 1394 Devices 或是 NI-IMAQdx Devices,取決於相機所使用的驅動程式。
  4. 選擇欲設定的相機。
  5. 在 MAX 視窗底部瀏覽 Acquisition Attributes 這個頁面。
  6. Video Mode 選取合適的設定。


你也可以手動提高 SpeedPacket Size 這兩個參數,或是選擇合於這兩個參數設定之 Video Mode。根據所使用的相機和驅動程式種類,你可以在選定 Video Mode 之後,再來調整 Speed 與 Packet Size。

我們建議在使用單一相機擷取影像時,將 Speed 設至可允許之最大值,這樣做可以讓驅動程式保留最大的頻寬供相機使用,並且可以使影像資料以最快的速度傳輸。需要注意的是,不要將封包大小(Packet Size)設定超過該速度(Speed)之下可用的最大範圍,否則這個錯誤仍然會發生。以下是在特定速度設定下可允許的封包之最大值:

Camera Speed Maximum Cumulative Packet Size
100 Mbps 1024 bytes
200 Mbps 2048 bytes
400 Mbps 4096 bytes
800 Mbps* 8192 bytes
* Available for IEEE 1394b Cameras Only

對某些相機來說,也可以使用非標準的錄影模式 (Format 7), 來手動調整 Speed 與 Packet Size。值得注意的是,對 Format 7 而言,這裡沒有一個相關的畫面更新速率;若要計算有效之傳輸速率,使用以下的方程式:



Ft = 每秒傳輸之畫面張數
npac = 封包大小,以位元組(byte)為單位
W = 影像寬度之像素
H = 影像高度之像素
npx = 每個像素之位元組大小

說明:傳輸畫面之時間略小於擷取影像之時間。

在使用多台相機擷取影像時,由於每一台相機都會共享 FireWire 卡片上的頻寬,重要的是必須小心每台相機的封包大小和傳輸速度之設定。針對每一張 FireWire 卡片,都會有一個可以送出封包的最大位元組之數值,以及資料傳輸的最大速率。每一台相機所送出的封包大小總合必須小於或等於卡片上所能接受的最大封包大小。

舉例來說,一張 IEEE 1394a 卡片可以在 400 Mbps 下接收的最大封包為 4096 位元組(bytes)。倘若你同時使用兩台相機擷取影像,則每台相機所送出的封包最大為 2048 位元組,如此一來,在 400 Mbps 之下傳輸的封包大小之總和不會超過 4096 位元組。IEEE 1394a 相機與卡片在 400 Mbps 下封包量最大為 4096 位元組,而 IEEE 1394b 相機與卡片則可以在 800 Mbps 下傳輸的封包量為 8192 位元組。

為了避免新增相機連接至卡片上時發生資源不足這個錯誤,必須確認封包總合之大小不會超出範圍。可以藉由調整每台相機之攝影模式,將封包大小減少至可允許之封包量

在這份文件中的附加檔案為 FireWire 頻寬計算器。使用這個檔案來幫助你找出適合你的相機與卡片之最大有效封包大小以及速度之設定。這個計算器可以模擬相機被加入傳輸線上之 FireWire 資源使用量。

如需更多有關 FireWire 傳輸線之資訊,請參考以下所附之相關連結。


相關連結: Developer Zone Tutorial: FireWire® (IEEE 1394) Overview
KnowledgeBase 30O7FC6W: Resource Allocation for IEEE 1394 (FireWire) Cameras in Triggered Mode
KnowledgeBase 3J0A446W: NI-IMAQ for 1394: Slower Frame Rate After Upgrading to Windows XP Service Pack 2 or Later
KnowledgeBase 3AF4N2BQ: FireWire (IEEE-1394) Camera Does Not Appear in MAX

附加檔案:


1394BandwidthCalculator.exe - 1394BandwidthCalculator.exe


報告日期: 08/04/2007
最後更新: 03/04/2009
文件偏號: 4C3CQOBE