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