跳至內容
測試伺服器
開發伺服器

Line Pitch#

透過 Line Pitch camera feature,您可以增加每像素行傳輸的位元組數。為了增加 Line Pitch,相機會在每行後面附加數個數值為零的位元組。

如果您想要將影像資料對齊至固定大小的位元組群組(例如 4 位元組 (32 位元) 或 8 位元組 (64 位元) 字組),此功能將非常有用。資料對齊可提升效能。

使用功能#

運作原理#

像素資料是從感光元件逐行讀取的。針對每個影像行,相機傳輸的位元組數量取決於 Image ROI 寬度以及所使用的 Pixel Format。

透過 Line Pitch 功能,您可以增加每行傳輸的位元組數。為了增加 Line Pitch,相機會在每行附加數個數值為零的位元組。這可讓您將影像資料對齊至例如 4 位元組或 8 位元組的字組。

範例:如果您將 Image ROI 寬度設為 250 像素,且 Pixel Format 設為 Mono 8,則每行傳輸的像素資料量為 250 位元組(250 像素 x 8 位元色彩深度 = 250 位元組)。

此資料無法對齊至 4 位元組或 8 位元組字組,因為 250 不是 4 或 8 的倍數。若要將影像資料對齊至 4 位元組字組,您必須將 Line Pitch 從 250 位元組增加至至少 252 位元組(252 是 4 的下一個倍數)。若要將影像資料對齊至 8 位元組字組,您必須將 Line Pitch 增加至至少 256 位元組。

資訊

如果啟用了 Data Chunks,調整 Line Pitch 將不會影響 Chunk 資料。系統只會將零新增至影像資料中,而不會新增至 Chunk 資料中。

決定 Line Pitch#

若要判斷目前的 Line Pitch,請取得以下項目的值: LinePitch 參數中選擇性地指定 HTML 記錄檔 (*.html) 的路徑與檔名。

這一定會傳回以位元組為單位的目前 Line Pitch,無論 LinePitchEnable 參數設定為何。

設定 Line Pitch,將影像資料對齊至 4 位元組 (Byte) 字組#

若要將影像資料對齊至 4 位元組字組:

  1. 將 Pixel Format 設為任何格式(封包式 12 位元像素格式除外,例如 Mono 12p 或 Bayer 12p)。
  2. 將相機中的 LinePitchEnable 參數設為 true.

如果目前的 Line Pitch 不是 4 的倍數,Line Pitch 會自動設為 4 的下一個倍數。此時影像資料已對齊至 4 位元組字組 (32 位元字組)。

設定 Line Pitch,將影像資料對齊至任意字組大小#

若要設定 Line Pitch 並將影像資料對齊至任何字組大小:

  1. 將 Pixel Format 設為任何格式(封包式 12 位元像素格式除外,例如 Mono 12p 或 Bayer 12p)。
  2. 將相機中的 LinePitchEnable 參數設為 true.
    如果目前的 Line Pitch 不是 4 的倍數,Line Pitch 會自動設為 4 的下一個倍數。
  3. 取得 LinePitch 參數中選擇性地指定 HTML 記錄檔 (*.html) 的路徑與檔名。
    這會傳回 Line Pitch 調整的最小可能值。
  4. 將相機中的 LinePitch 參數設定為所需的數值。
    若要進行 4 位元組、8 位元組、16 位元組等字組對齊,請將參數值設為 4、8、16 等的下一個倍數,並從步驟 2 中確定的最小可能值開始算起。 範例: 如果在步驟 2 中確定的值為 252,且您想要將影像資料對齊至 8 位元組字組,請將 LinePitch 參數設為 256(= 8 的下一個倍數)。

範例程式碼#

// Enable the line pitch feature
camera.LinePitchEnable.SetValue(true);
// Get the current line pitch
int64_t i = camera.LinePitch.GetValue();
// Set the Line Pitch parameter value to the next multiple of 8
camera.LinePitch.SetValue(((i+7)/8)*8);

此範例程式碼僅提供 C++ 版本。

您也可以 use the pylon Viewer 來輕鬆設定參數。