8. NPCM 影片驅動

此驅動用於控制新唐 NPCM SoC 上存在的影片捕獲/差異 (VCD) 引擎和編碼壓縮引擎 (ECE)。 VCD 可以從數字影片輸入捕獲幀,並比較記憶體中的兩個幀,ECE 可以將幀資料壓縮為 HEXTILE 格式。

8.1. 驅動特定控制

8.1.1. V4L2_CID_NPCM_CAPTURE_MODE

VCD 引擎支援兩種模式

  • COMPLETE 模式

    將下一個完整幀捕獲到記憶體中。

  • DIFF 模式

    將傳入幀與儲存在記憶體中的幀進行比較,並更新記憶體中已區分的幀。

應用程式可以使用 V4L2_CID_NPCM_CAPTURE_MODE 控制來設定具有不同控制值的 VCD 模式 (enum v4l2_npcm_capture_mode)

  • V4L2_NPCM_CAPTURE_MODE_COMPLETE:將 VCD 設定為 COMPLETE 模式。

  • V4L2_NPCM_CAPTURE_MODE_DIFF:將 VCD 設定為 DIFF 模式。

8.1.2. V4L2_CID_NPCM_RECT_COUNT

如果使用 V4L2_PIX_FMT_HEXTILE 格式,VCD 將捕獲幀資料,然後 ECE 將資料壓縮為 HEXTILE 矩形,並使用遠端幀緩衝區協議中定義的佈局將其儲存在 V4L2 影片緩衝區中

(RFC 6143, https://www.rfc-editor.org/rfc/rfc6143.html#section-7.6.1)

+--------------+--------------+-------------------+
| No. of bytes | Type [Value] | Description       |
+--------------+--------------+-------------------+
| 2            | U16          | x-position        |
| 2            | U16          | y-position        |
| 2            | U16          | width             |
| 2            | U16          | height            |
| 4            | S32          | encoding-type (5) |
+--------------+--------------+-------------------+
|             HEXTILE rectangle data              |
+-------------------------------------------------+

應用程式可以透過 VIDIOC_DQBUF 獲取影片緩衝區,然後呼叫 V4L2_CID_NPCM_RECT_COUNT 控制來獲取此緩衝區中的 HEXTILE 矩形數量。

8.2. 參考

include/uapi/linux/npcm-video.h

版權所有 © 2022 新唐科技