結構
RectU
一個以 2D 購物車對齊的整數、長方形對齊區域 空格鍵,並且包含未簽署的地點和距離欄位。
這個類型不會指定單位。使用這個類型的通訊協定 指定向量空間的特性,包括方向和 。
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
| x | uint32 | 矩形的 X 軸起點位置。 | 無預設 | 
| y | uint32 | 矩形的 Y 軸位置。 | 無預設 | 
| width | uint32 | 沿著 X 軸的距離。 區域包含從  | 無預設 | 
| height | uint32 | 沿著 Y 軸的距離。 區域包含從  | 無預設 | 
ENUMS
ColorSpace 彈性
類型:uint32
定義於 fuchsia.images2/image_format.fidl
表示用來解讀影片像素值的色域。
此清單針對色彩空間標準的每個子類,分別提供一個項目。
因此,如果我們支援 RGB 變化版本 709, 我們會在這份清單中新增該變化版本專屬的項目。同樣是 2020 或 2100 的 RGB 變化版本。同樣地,針對 YcCbcCrc 變化版本 2020 年。同樣地,ICtCp 變體為 2100。
請參閱 ImageFormatIsSupportedColorSpaceForPixelFormat()瞭解
可能支援 PixelFormat 和 ColorSpace 的組合。
一般來說,如果 PixelFormat 符合以下條件,則不支援 ColorSpace
位元/樣本的位元數與色域的規格或任何
PixelFormat 與 RGB 與 YUV 不相符。
「有限範圍」在以下的留言中,是指黑白人 定義為 (及色標的 SIM 卡),但不應解讀為 確保名詞的「範圍有限」。 換句話說,「範圍有限」並不一定會 值低於黑色或大於白色,或超出「受限」的範圍每個色碼範圍 「完整範圍」的黑色為 0,白色則是最大可能/允許的數值上限 值 (以色度來說也是如此)。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 無效 | 0 | 顏色空間類型無效。 | 
| 標準圖像 | 1 | sRGB、Gamma 傳遞函數和完整範圍 (依規格) | 
| REC601_NTSC | 2 | 601 NTSC (「525 行」) YCbCr 原色,有限範圍 | 
| REC601_NTSC_FULL_RANGE | 3 | 601 NTSC (「525 行」) YCbCr 初選,完整範圍 | 
| REC601_PAL | 4 | 601 PAL (「625 行」) YCbCr 初選,有限範圍 | 
| REC601_PAL_FULL_RANGE | 5 | 601 PAL (「625 行」) YCbCr 初選,完整範圍 | 
| REC709 | 6 | 709 YCbCr (非 RGB),範圍有限 | 
| REC2020 | 7 | 2020 YCbCr (非 RGB,而非 YcCbcCrc)、10 或 12 位元,根據
 | 
| REC2100 | 8 | 2100 YCbCr (非 RGB,而非 ICtCp),10 或 12 位元,根據
 | 
| 略過 | 9 | 像素格式不代表顏色,就是 應用程式特定的顏色空間,無法由另一個項目描述 列舉這些例子 | 
| DO_NOT_CARE | 4294967294 | 用戶端明確指出, 選擇 / 使用的色域。 | 
PixelFormat 彈性
類型:uint32
定義於 fuchsia.images2/image_format.fidl
表示影片像素的編碼方式。
格式名稱中的管道順序反映了實際的版面配置 管道。
每個值都須由 RE 決定。您想要的色彩空間 (與 Vulkan 相比)。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 無效 | 0 | |
| R8G8B8A8 | 1 | 僅限 RGB,每個 R/G/B/A 樣本各 8 位元 與 VK_FORMAT_R8G8B8A8_UNORM 相容。 | 
| R8G8B8X8 | 119 | 僅限 RGB,每個 R/G/B/X 樣本各 8 位元 即使系統將其視為不透明,也能與 VK_FORMAT_R8G8B8A8_UNORM 相容。 | 
| B8G8R8A8 | 101 | 32bpp BGRA,1 面。僅限 RGB,每個 B/G/R/A 樣本 8 位元。 與 VK_FORMAT_B8G8R8A8_UNORM 相容。 在 sysmem(1) 中,此為 BGRA32。 | 
| B8G8R8X8 | 120 | 32bpp BGRA,1 面。僅限 RGB,每個 B/G/R/X 樣本各 8 位元。 與 VK_FORMAT_B8G8R8A8_UNORM (不透明) 相容。 | 
| I420 | 102 | 僅限 YUV,每個 Y 樣本 8 位元 與 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM 相容。 | 
| M420 | 103 | 僅限 YUV,每個 Y 樣本 8 位元 與任何 vulkan 格式都不相容。 | 
| NV12 | 104 | 僅限 YUV,每個 Y 樣本 8 位元 與 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM 相容。 | 
| YUY2 | 105 | 僅限 YUV,每個 Y 樣本 8 位元 與 VK_FORMAT_G8B8G8R8_422_UNORM 相容。 | 
| MJPEG | 106 | 這是保留值,目前並未使用。 | 
| YV12 | 107 | 僅限 YUV,每個 Y 樣本 8 位元 與 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM 相容。U 飛機可能位於以下兩者之一:
圖片的 B 或 R 平面 (如果是 V 平面);順序可能是
通過內部研究
 | 
| B8G8R8 | 108 | 24 bpp BGR,1 圈。僅限 RGB,每個 B/G/R 樣本 8 位元 與 VK_FORMAT_B8G8R8_UNORM 相容。 在 sysmem(1) 中,此為 BGR24。 | 
| R5G6B5 | 109 | 16bpp RGB、1 平面。5 位元 R、6 位元 G、5 位元 B 與 VK_FORMAT_R5G6B5_UNORM_PACK16 相容。 在 sysmem(1) 中,此為 RGB565。 | 
| R3G3B2 | 110 | 8bpp RGB、1 平面。3 位元 R、3 位元 G、2 位元 B 與任何 vulkan 格式都不相容。 在 sysmem(1) 中,此為 RGB332。 | 
| R2G2B2X2 | 111 | 8bpp RGB、1 平面。2 位元 R、2 位元 G、2 位元 B 與任何 vulkan 格式都不相容。 在 sysmem(1) 中,此為 RGB2220。 | 
| L8 | 112 | 8bpp,純亮 (紅色、綠色和藍色具有相同的值)。 與 VK_FORMAT_R8_UNORM 相容。 大部分的客戶偏好使用 R8。 | 
| R8 | 113 | 8bpp,僅限紅色 (綠色和藍色會被解讀為 0)。 與 VK_FORMAT_R8_UNORM 相容。 | 
| R8G8 | 114 | 16bpp RG,1 號飛機。8 位元 R、8 位元 G。 與 VK_FORMAT_R8G8_UNORM 相容。 | 
| A2R10G10B10 | 115 | 32bpp RGBA、1 平面。2 位元 A、10 位元 R/G/B。 與 VK_FORMAT_A2R10G10B10_UNORM_PACK32 相容。 | 
| A2B10G10R10 | 116 | 32bpp BGRA,1 面。2 位元 A、10 位元 R/G/B。 與 VK_FORMAT_A2B10G10R10_UNORM_PACK32 相容。 | 
| P010 | 117 | 僅限 YUV,每個 Y 樣本 16 位元 這與 NV12 類似,但包含 16 位元樣本的最低 6 位元 並將每個樣本設為 0 和/或略過每個 16 位元的耐力 樣本是主機端序 (LE 系統上的 LE,BE 系統)。警匪 先是 16 位元 Cb,然後是 16 位元 Cr,交錯 Cb Cr Cb Cr 等 與 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 相容。 | 
| R8G8B8 | 118 | 24bpp RGB、1 平面。僅限 RGB,每個 R/G/B 樣本均 8 位元 與 VK_FORMAT_R8G8B8_UNORM 相容。 | 
| DO_NOT_CARE | 4294967294 | 用戶端明確指出,
選擇 / 使用。設定這個值時,用戶端必須
未設定「 | 
PixelFormatModifier 彈性
類型:uint64
定義於 fuchsia.images2/format_modifier.fidl
上方 8 位元是供應商代碼。較低 56 位元是由供應商定義。
定義的 PixelFormatModifier 值是具體、完整且有效
的值 (除了有專屬的 INVALID 和 DO_NOT_CARE 以外)
意義)。
其他有效或可能有效的 pixel_format_modifier 值不是
定義為 PixelFormatModifier 值,通常是因為該值不是
應用情境 (也可能是最近用過,但尚未定義到
PixelFormatModifier)。您可以將這類值指定為
pixel_format_modifier 欄位中的 PixelFormatModifier 值,雖然
缺少對應的已定義 PixelFormatModifier 值。如果這樣
是在測試程式碼之外使用,請考慮在
PixelFormatModifier。所有這類值都必須符合上限 8 位元
供應商程式碼 (請勿在/合適供應商以外的地方定義/使用值)
程式碼)。
個別定義的 FORMATMODIFIER* uint64 值是由供應商設定
位元欄位值,請自行輸入無效值。這些 uint64
值可用於建立或解讀 PixelFormatModifier 值
依據供應商專屬的 位元欄位呼叫
pixel_format_modifier 設為支援的值時 (不包括
DO_NOT_CARE、INVALID、LINEAR),否則排列像素資料的方式。
則是由 pixel_format 欄位指定的
一些傾斜、壓縮 (通常為無損的)
減少記憶體頻寬,而非縮減影格緩衝區大小),
消除、追蹤泥土,但一般不會修改
pixel_format。在某些情況下,每個圖片或每個圖塊都有標題
互動或類似的內容您通常仍需設定 pixel_format 欄位
有效支援的值,與
pixel_format_modifier,而該 pixel_format 值也可以貢獻
有關 ImageFormat 的整體意義。也就是「修飾符」
名稱中有一部分比「覆寫」正確答案是:
| 名稱 | 值 | 說明 | 
|---|---|---|
| DO_NOT_CARE | 72057594037927934 | |
| 無效 | 72057594037927935 | |
| 線性 | 0 | |
| INTEL_I915_X_TILED | 72057594037927937 | |
| INTEL_I915_Y_TILED | 72057594037927938 | |
| INTEL_I915_YF_TILED | 72057594037927939 | |
| INTEL_I915_Y_TILED_CCS | 72057594054705154 | |
| INTEL_I915_YF_TILED_CCS | 72057594054705155 | |
| ARM_AFBC_16X16 | 576460752303423489 | |
| ARM_AFBC_32X8 | 576460752303423490 | |
| ARM_LINEAR_TE | 576460752303427584 | |
| ARM_AFBC_16X16_TE | 576460752303427585 | |
| ARM_AFBC_32X8_TE | 576460752303427586 | |
| ARM_AFBC_16X16_YUV_TILED_HEADER | 576460752303431697 | |
| ARM_AFBC_16X16_SPLIT_BLOCK_SPARSE_YUV | 576460752303423601 | |
| ARM_AFBC_16X16_SPLIT_BLOCK_SPARSE_YUV_TE | 576460752303427697 | |
| ARM_AFBC_16X16_SPLIT_BLOCK_SPARSE_YUV_TILED_HEADER | 576460752303431793 | |
| ARM_AFBC_16X16_SPLIT_BLOCK_SPARSE_YUV_TE_TILED_HEADER | 576460752303435889 | |
| GOOGLE_GOLDFISH_OPTIMAL | 7421932185906577409 | 
資料表
ImageFormat
定義於 fuchsia.images2/image_format.fidl
說明圖片的格式。
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | pixel_format | PixelFormat | 說明像素的編碼方式。 | 
| 2 | pixel_format_modifier | PixelFormatModifier | 供應商專用像素格式修飾符。請參閱「 format_modifier.fidl」。 | 
| 3 | color_space | ColorSpace | 指出用來解讀像素值的色域。 | 
| 4 | size | fuchsia.math/SizeU | 圖片大小 (以像素為單位)。 另請參閱  緩衝區中不一定所有可定址的像素位置
填入有效的像素資料請參閱  圖片的右側和底部可能會有一些有效像素,
不會顯示詳情請參閱《 | 
| 5 | bytes_per_row | uint32 | 每列的位元組數。如果是多飛機 YUV 格式,請使用數字 Y 層中每個資料列的位元組數 如未設定這個欄位,則每列末端不會有邊框間距
比方針。換句話說,在未設定的情況下,步距等於
「每個寬度像素的刪除位元組」乘以  設定之後,這個欄位中的值必須大於或等於「每個寬度的刪除位元組」
Pixel」乘以  也稱為「步距」、「行距」、「行列偏移」 位移」等名稱。 具體來說,這個情況並不常見 (但不一定是必要做法)
BGR24 (每像素 3 個位元組) 在每個結尾加上邊框間距
這樣每一列的像素都會從 4 位元組對齊的偏移值開始
圖片開頭 (左上方像素)。邊框間距大小是
不一定可以用像素大小除法 (「步位元組」
所以我們可以使用這個欄位來指出邊框間距
而不是試圖將邊框間距納入更大的「假造」
 | 
| 6 | display_rect | fuchsia.math/RectU | 顯示畫面的矩形。這裡是位置 應該顯示矩形廣告尺寸 (以像素為單位) 顯示「整張圖片」實際操作時 
 在影片解碼器的輸出內容中,display_rect 以外的像素是
絕不顯示 (測試計畫以外),但必須加以保留
正確的解碼器函式 下游紋理篩選作業應避免讓任何像素 display_rect 之外的部分會影響任何已顯示 像素,為了避免右側或底部邊緣流入 由解碼程序定義的任意像素 (不適用於 螢幕。 未設定這個欄位時的行為會因通訊協定而異。某些
系統可能會實作通訊協定,改回  警告:fuchsia.sysmem.Images2 (V1) 無法處理非零的 x、y,所以 任何非零 x、y 的 y (V2) 都會使轉換為 V1。由於 實際發生非零 x 的稀疏度,甚至是已移至新位置的元件 在某些情況下,V2 可能仍會假設 x 和 y 皆為 0,直到有 實際理由來植入及測試非零 x y 的處理方法。 傳送非零 x、y 到下游轉譯和/或螢幕的症狀 假設 0, 0 的管道會顯示錯誤,但不會導致當機 因為 0、0 代表 x,y 不會導致讀數超出緩衝區 上下限 新增日期:18 | 
| 7 | valid_size | fuchsia.math/SizeU | 影格的大小 (以具備有效像素數量為準) 像素資料解碼階段,但對像素資料 供顯示。 將 Valid_size 轉換為能直接比擬的矩形
 如果是影片解碼器, | 
| 8 | pixel_aspect_ratio | fuchsia.math/SizeU | 影片預計顯示時的像素顯示比例。 YUV 格式的像素顯示比例 (AKA 樣本顯示比例) 又稱 SAR),用於 Luma (AKA Y) 樣本。 製作人應確保寬度和高度值相對應 即可算出分數 (視需要除以 GCF 值) 消費者應將這個欄位解讀為不明像素 長寬比。在某些情況下可能適合使用預設值 1:1,但 消費者可能會根據 OOB 指標判斷實際的像素顯示比例。 |