Logo

Linux 核心

6.16.0-rc4

快速搜尋

目錄

  • 開發流程
  • 提交補丁
  • 行為準則
  • 維護者手冊
  • 所有開發流程文件
  • 核心 API
  • 驅動 API
    • 驅動作者通用資訊
    • 有用的支援庫
    • 匯流排級文件
    • 子系統特定 API
      • Linux 802.11 驅動開發者指南
      • ACPI 支援
      • 核心驅動 lp855x
      • 通用時鐘框架
      • 機密計算
      • 控制檯驅動
      • 加密驅動
      • DMAEngine 文件
      • Linux 核心 dpll 子系統
      • 錯誤檢測和糾正 (EDAC) 裝置
      • Extcon 裝置子系統
      • Linux 韌體 API
      • FPGA 子系統
      • 幀緩衝區庫
      • 管理幀緩衝區孔徑的所有權
      • 通用計數器介面
      • 通用輸入/輸出 (GPIO)
      • 高速同步序列介面 (HSI)
      • Linux 硬體時間戳引擎 (HTE)
      • I2C 和 SMBus 子系統
      • 工業 I/O
      • InfiniBand 和遠端 DMA (RDMA) 介面
      • 輸入子系統
      • 通用系統互連子系統
      • 衛星 MC 的 IPMB 驅動
      • Linux IPMI 驅動
      • libATA 開發者指南
      • 通用郵箱框架
      • RAID
      • 媒體子系統核心內部 API
      • Intel(R) 管理引擎介面 (Intel(R) MEI)
      • 記憶體控制器驅動
      • 基於訊息的裝置
      • 雜項裝置
      • 並行埠裝置
      • 16x50 UART 驅動
      • 脈衝寬度調製 (PWM)
      • MMC/SD/SDIO 卡支援
      • 記憶體技術裝置 (MTD)
      • MTD NAND 驅動程式設計介面
      • 近場通訊
      • NTB 驅動
      • 非易失性記憶體裝置 (NVDIMM)
      • NVMEM 子系統
      • PARPORT 介面文件
      • 通用 PHY 框架
      • PINCTRL (引腳控制) 子系統
      • PLDM 韌體快閃記憶體更新庫
      • pldmfw 庫概述
      • PPS - 每秒脈衝
      • Linux 的 PTP 硬體時鐘基礎設施
      • 脈衝寬度調製 (PWM) 介面
      • 電源排序 API
      • 電壓和電流調節器 API
      • 復位控制器 API
      • rfkill - RF 開關支援
      • 編寫 s390 通道裝置驅動
      • SCSI 介面指南
      • 序列裝置支援
      • SM501 驅動
      • SoundWire 文件
      • 序列外設介面 (SPI)
      • 表面系統聚合模組 (SSAM)
      • Linux Switchtec 支援
      • 同步檔案 API 指南
      • target 和 iSCSI 介面指南
      • TEE (可信執行環境) 驅動 API
      • 散熱
      • TTY
      • WBRF - Wifi 頻段 RFI 緩解
      • WMI 驅動 API
      • Xilinx FPGA
      • 為 Zorro 裝置編寫裝置驅動
  • 子系統
  • 鎖定
  • 許可規則
  • 編寫文件
  • 開發工具
  • 測試指南
  • Hacking 指南
  • 跟蹤
  • 故障注入
  • 即時補丁
  • Rust
  • 管理
  • 構建系統
  • 報告問題
  • 使用者空間工具
  • 使用者空間 API
  • 韌體
  • 韌體和裝置樹
  • CPU 架構
  • 未分類文件
  • 翻譯

本頁

  • 顯示原始碼

2.29. V4L2 JPEG 頭部相關函式和資料結構¶

struct v4l2_jpeg_reference¶

對 JPEG 緩衝區的引用

定義:

struct v4l2_jpeg_reference {
    u8 *start;
    size_t length;
};

成員

start

指向引用段或表的起始位置的指標

length

引用段或表的大小

描述

引用標記段時,start 指向緊隨標記程式碼之後的位置,length 是段引數的大小,不包括標記程式碼。

struct v4l2_jpeg_frame_component_spec¶

幀元件規範

定義:

struct v4l2_jpeg_frame_component_spec {
    u8 component_identifier;
    u8 horizontal_sampling_factor;
    u8 vertical_sampling_factor;
    u8 quantization_table_selector;
};

成員

component_identifier

C[i]

horizontal_sampling_factor

H[i]

vertical_sampling_factor

V[i]

quantization_table_selector

量化表目標選擇器 Tq[i]

struct v4l2_jpeg_frame_header¶

JPEG 幀頭部

定義:

struct v4l2_jpeg_frame_header {
    u16 height;
    u16 width;
    u8 precision;
    u8 num_components;
    struct v4l2_jpeg_frame_component_spec component[V4L2_JPEG_MAX_COMPONENTS];
    enum v4l2_jpeg_chroma_subsampling subsampling;
};

成員

height

Y

width

X

precision

P

num_components

Nf

component

元件規範,參見 v4l2_jpeg_frame_component_spec

subsampling

從元件規範解碼的子取樣

struct v4l2_jpeg_scan_component_spec¶

掃描元件規範

定義:

struct v4l2_jpeg_scan_component_spec {
    u8 component_selector;
    u8 dc_entropy_coding_table_selector;
    u8 ac_entropy_coding_table_selector;
};

成員

component_selector

Cs[j]

dc_entropy_coding_table_selector

Td[j]

ac_entropy_coding_table_selector

Ta[j]

struct v4l2_jpeg_scan_header¶

JPEG 掃描頭部

定義:

struct v4l2_jpeg_scan_header {
    u8 num_components;
    struct v4l2_jpeg_scan_component_spec component[V4L2_JPEG_MAX_COMPONENTS];
};

成員

num_components

Ns

component

元件規範,參見 v4l2_jpeg_scan_component_spec

enum v4l2_jpeg_app14_tf¶

APP14 轉換標誌 根據 Rec. ITU-T T.872 (06/2012) 6.5.3,APP14 段用於顏色編碼,它包含一個轉換標誌,其值可能為 0、1 和 2,解釋如下

常量

V4L2_JPEG_APP14_TF_CMYK_RGB

CMYK 用於使用四個元件編碼的影像,RGB 用於使用三個元件編碼的影像

V4L2_JPEG_APP14_TF_YCBCR

使用 YCbCr 編碼的包含三個元件的影像

V4L2_JPEG_APP14_TF_YCCK

使用 YCCK 編碼的包含四個元件的影像

V4L2_JPEG_APP14_TF_UNKNOWN

指示 app14 不存在

struct v4l2_jpeg_header¶

已解析的 JPEG 頭部

定義:

struct v4l2_jpeg_header {
    struct v4l2_jpeg_reference sof;
    struct v4l2_jpeg_reference sos;
    unsigned int num_dht;
    struct v4l2_jpeg_reference dht[V4L2_JPEG_MAX_TABLES];
    unsigned int num_dqt;
    struct v4l2_jpeg_reference dqt[V4L2_JPEG_MAX_TABLES];
    struct v4l2_jpeg_frame_header frame;
    struct v4l2_jpeg_scan_header *scan;
    struct v4l2_jpeg_reference *quantization_tables;
    struct v4l2_jpeg_reference *huffman_tables;
    u16 restart_interval;
    size_t ecs_offset;
    enum v4l2_jpeg_app14_tf app14_tf;
};

成員

sof

指向幀頭部和大小的指標

sos

指向掃描頭部和大小的指標

num_dht

dht 中的條目數

dht

指向霍夫曼表和大小的指標

num_dqt

dqt 中的條目數

dqt

指向量化表和大小的指標

frame

已解析的幀頭部

scan

指向已解析的掃描頭部的指標,可選

quantization_tables

對四個量化表的引用,可選

huffman_tables

對 DC0、DC1、AC0、AC1 順序的四個霍夫曼表的引用,可選

restart_interval

每個重啟間隔的 MCU 數量,Ri

ecs_offset

到熵編碼段的位元組緩衝區偏移量

app14_tf

來自 app14 資料的轉換標誌

描述

當此結構傳遞給 v4l2_jpeg_parse_header 時,可選的 scan、quantization_tables 和 huffman_tables 指標必須初始化為 NULL 或指向有效的記憶體。

int v4l2_jpeg_parse_header(void *buf, size_t len, struct v4l2_jpeg_header *out)¶

定位標記段並選擇性地解析頭部

引數

void *buf

JPEG 緩衝區的地址,應以 SOI 標記開頭

size_t len

JPEG 緩衝區的長度

struct v4l2_jpeg_header *out

返回標記段位置並選擇性地解析頭部

描述

out->scan_header 指標必須初始化為 NULL 或指向有效的 v4l2_jpeg_scan_header 結構。 out->huffman_tables 和 out->quantization_tables 指標必須初始化為 NULL 或指向每個包含 4 個 v4l2_jpeg_reference 結構的有效陣列。

如果解析失敗,則返回 0 或負錯誤。

int v4l2_jpeg_parse_frame_header(void *buf, size_t len, struct v4l2_jpeg_frame_header *frame_header)¶

解析幀頭部

引數

void *buf

幀頭部的地址,在 SOF0 標記之後

size_t len

幀頭部的長度

struct v4l2_jpeg_frame_header *frame_header

返回已解析的幀頭部

描述

如果解析失敗,則返回 0 或負錯誤。

int v4l2_jpeg_parse_scan_header(void *buf, size_t len, struct v4l2_jpeg_scan_header *scan_header)¶

解析掃描頭部

引數

void *buf

掃描頭部的地址,在 SOS 標記之後

size_t len

掃描頭部的長度

struct v4l2_jpeg_scan_header *scan_header

返回已解析的掃描頭部

描述

如果解析失敗,則返回 0 或負錯誤。

int v4l2_jpeg_parse_quantization_tables(void *buf, size_t len, u8 precision, struct v4l2_jpeg_reference *q_tables)¶

解析量化表段

引數

void *buf

量化表段的地址,在 DQT 標記之後

size_t len

量化表段的長度

u8 precision

每個元件的取樣精度 (P),以位為單位

struct v4l2_jpeg_reference *q_tables

返回緩衝區中對四個可能的量化表目標的四個引用

描述

如果解析失敗,則返回 0 或負錯誤。

int v4l2_jpeg_parse_huffman_tables(void *buf, size_t len, struct v4l2_jpeg_reference *huffman_tables)¶

解析霍夫曼表段

引數

void *buf

霍夫曼表段的地址,在 DHT 標記之後

size_t len

霍夫曼表段的長度

struct v4l2_jpeg_reference *huffman_tables

返回緩衝區中對四個可能的霍夫曼表目標的四個引用,順序為 DC0、DC1、AC0、AC1

描述

如果解析失敗,則返回 0 或負錯誤。

©核心開發社群。 | 由 Sphinx 5.3.0 & Alabaster 0.7.16 驅動 | 頁面原始碼