feat(dma2d): support RGB24 and BGR24 scramble conversion

Add async color convert coverage for direct RGB24/BGR24 byte-order swaps
and
thread both TX and RX CSC state through DMA2D transactions for future
extensibility.
This commit is contained in:
morris
2026-06-30 12:00:13 +08:00
parent 3160a1a73f
commit 02cf2a8a3d
6 changed files with 344 additions and 79 deletions
@@ -148,7 +148,7 @@
支持的转换格式
--------------
本驱动支持以下格式组合:
本驱动当前支持以下格式组合:
.. list-table::
:header-rows: 1
@@ -156,32 +156,54 @@
* - 源格式
- 目标格式
- 转换标准
* - 与目标格式相同(跳过转换)
- 与源格式相同(跳过转换)
* - ``ESP_COLOR_FOURCC_RGB16``
- ``ESP_COLOR_FOURCC_RGB16``
- 不适用
* - RGB565
- RGB888
* - ``ESP_COLOR_FOURCC_BGR24``
- ``ESP_COLOR_FOURCC_BGR24``
- 不适用
* - RGB888
- RGB565
* - ``ESP_COLOR_FOURCC_RGB24``
- ``ESP_COLOR_FOURCC_RGB24``
- 不适用
* - RGB888
- UYVY422
* - ``ESP_COLOR_FOURCC_UYVY``
- ``ESP_COLOR_FOURCC_UYVY``
- 不适用
* - ``ESP_COLOR_FOURCC_BGR24``
- ``ESP_COLOR_FOURCC_RGB24``
- 不适用
* - ``ESP_COLOR_FOURCC_RGB24``
- ``ESP_COLOR_FOURCC_BGR24``
- 不适用
* - ``ESP_COLOR_FOURCC_RGB16``
- ``ESP_COLOR_FOURCC_BGR24``
- 不适用
* - ``ESP_COLOR_FOURCC_BGR24``
- ``ESP_COLOR_FOURCC_RGB16``
- 不适用
* - ``ESP_COLOR_FOURCC_RGB24``
- ``ESP_COLOR_FOURCC_RGB16``
- 不适用
* - ``ESP_COLOR_FOURCC_BGR24``
- ``ESP_COLOR_FOURCC_UYVY``
- BT.601
* - RGB888
- UYVY422
* - ``ESP_COLOR_FOURCC_BGR24``
- ``ESP_COLOR_FOURCC_UYVY``
- BT.709
* - UYVY422
- RGB888
* - ``ESP_COLOR_FOURCC_RGB24``
- ``ESP_COLOR_FOURCC_UYVY``
- BT.601
* - UYVY422
- RGB888
* - ``ESP_COLOR_FOURCC_RGB24``
- ``ESP_COLOR_FOURCC_UYVY``
- BT.709
* - ``ESP_COLOR_FOURCC_UYVY``
- ``ESP_COLOR_FOURCC_BGR24``
- BT.601
* - ``ESP_COLOR_FOURCC_UYVY``
- ``ESP_COLOR_FOURCC_BGR24``
- BT.709
.. note::
在本驱动中,RGB888 使用 ``ESP_COLOR_FOURCC_BGR24``,UYVY422 使用 ``ESP_COLOR_FOURCC_UYVY``。
所有请求都需要设置 :cpp:member:`async_color_convert_request_t::src_color_format` 和
:cpp:member:`async_color_convert_request_t::dst_color_format`。
当在 RGB 和 YUV 之间转换时,还需要设置 :cpp:member:`async_color_convert_request_t::color_conv_std`。