8. NPCM 视频驱动

此驱动程序用于控制新唐 NPCM SoC 上存在的视频捕获/差分 (VCD) 引擎和编码压缩引擎 (ECE)。 VCD 可以从数字视频输入捕获帧并比较内存中的两个帧,而 ECE 可以将帧数据压缩为 HEXTILE 格式。

8.1. 驱动程序特定控件

8.1.1. V4L2_CID_NPCM_CAPTURE_MODE

VCD 引擎支持两种模式

  • 完整模式

    将下一个完整帧捕获到内存中。

  • 差分模式

    将传入帧与内存中存储的帧进行比较,并更新内存中已区分的帧。

应用程序可以使用 V4L2_CID_NPCM_CAPTURE_MODE 控件设置 VCD 模式,使用不同的控件值(enum v4l2_npcm_capture_mode)

  • V4L2_NPCM_CAPTURE_MODE_COMPLETE:将 VCD 设置为完整模式。

  • V4L2_NPCM_CAPTURE_MODE_DIFF:将 VCD 设置为差分模式。

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 新唐科技