Operator ConvertPixelFormat

Operator Library: Base

「ConvertPixelFormat」運算子在將算術位元組寬度與位元寬度調整 至所需的輸出像素格式時,會盡可能保留最多資訊。 因此,此運算子允許在輸出鏈路上定義位元寬度與算術位元組寬度。

演算法的核心原則有兩方面:

  1. 透過裁剪來改變運算方式
    • unsigned to signed: the MSB at the output is used as a sign bit
    • 有符號轉無符號:將值截斷為正數,也就是說,若某個值小於 0,則將其設為零
  2. 在保持相對亮度的前提下,變更位元寬度 y
    • 若輸出位元寬度增加,該值會向左移位以符合所需的位元寬度
    • 若輸出位元寬度減少,則會將該數值進行除法運算並進行四捨五入,以符合所需的位元寬度

因此,輸出值可由以下公式決定:

輸入 Bit Width 輸出 Bit Width 輸入Arithmetic 輸出Arithmetic 輸入值 輸出值 備註
十進位 二進位 十進位 二進位
4 5 無號數 無號數 10 1010 20 10100 值 * 2
5 4 無號數 無號數 15 1111 8 1000 該數值除以 2 並進行四捨五入
5 4 無號數 無號數 31 11111 15 1111 數值被截斷至最大值
4 4 無號數 有號 11 1011 6 0100 該數值除以 2 並進行四捨五入
4 4 有號 無號數 4 0100 8 1000 值 * 2
5 4 有號 無號數 10 01010 10 1010 保留的值
5 4 有號 無號數 -2 11110 0 0000 數值被截斷為 0
5 4 有號 有號 -7 11001 -4 1100 該數值除以 2 並進行四捨五入

表 34. 範例


對於色彩連結,每個色彩成分都會分別進行處理。

I/O Properties

Property Value
Operator Type O
Input Link I,資料輸入
Output Link O,資料輸出

Supported Link Format

Link Parameter Input Link I Output Link O
Bit Width [1, 64]1 [1, 64]2
Arithmetic {unsigned, signed} {unsigned, signed}
Parallelism any as I
Kernel Columns any as I
Kernel Rows any as I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} as I
Color Format any as I
Color Flavor any as I
Max. Img Width any as I
Max. Img Height any as I

1

輸入 Bit Width 的範圍為 [1, 64]。 對於有號輸入,範圍為 [2, 64]。 對於無號彩色輸入,範圍為 [3, 63],而對於有號彩色,範圍則為 [6, 63]。

2

輸出位元寬度的範圍為 [1, 64]。 對於有符號輸出,其範圍為 [2, 64]。 對於無符號色彩輸出,其範圍為 [3, 63];至於有符號色彩輸出,其範圍則為 [6, 63]。

Parameters

無

Examples of Use

以下範例示範了如何使用 ConvertPixelFormat 運算子: