This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM62P:在 Linux 中将 UYVY 转换为 NV12

Guru**** 2487425 points
Other Parts Discussed in Thread: AM62P

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1433347/am62p-convert-uyvy-to-nv12-in-linux

器件型号:AM62P

工具与软件:

您好、TI 专家

我们使用的传感器图像格式是帧速率为30的 UYVY 格式。

我们将先前的项目移植到 am62p。 这要求我们将 UYVY 格式转换为 NV12格式。 我们发现、使用先前的转换函数、转换一帧图像至少需要45ms、这太长了。 因此、我们想知道是否有快速的方法来转换 am62p。 如果是、我应该如何继续? 我们的代码可在 Linux 系统上运行。

谢谢

WUZEHAI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Wu

    是否有具体的原因要将 UYVY 转换为 NV12? 如果您想将此转换后的数据传递给编码器、那么我们现在在编码器上支持 UYVY 格式、以便您节省颜色转换时间。  

    如果用例与编码不同、您是否尝试过 ticolorconvert?

    此致、

    Suren

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Suren:

    根据之前工程的代码架构、最终需要将其转换为 RGB 格式以进行显示、而输入需要 NV12格式。

    如何使用 ticolorConvert?

    谢谢

    WUZEHAI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Wu

    您可以使用 ticolorconvert、如下所示:

    gst-launch-1.0 -v v4l2src device=/dev/video2 ! video/x-raw、格式=UYVY、宽度=1920、高度=1080、帧速率=30/1! ticolorconvert! video/x-raw、格式=NV12! v4l2h264enc! filesink location=temp.264

    希望这对您有所帮助。

    此致、

    Suren

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Suren

    我们没有使用 gstream。 我想知道我们是否可以移植 ticolorConvert。 因此我们可能需要 ticolorConvert 的源代码。

    谢谢!

    WUZEHAI

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Wu

    请查找 ticolorconvert 代码:

    https://github.com/TexasInstruments/edgeai-gst-plugins/blob/main/ext/ti/gstticolorconvert.c

    实际逻辑中、您可以参考以下代码:

    https://git.ti.com/cgit/edgeai/edgeai-apps-utils/tree/src sdgeai/edgeai_dl_color_conve_armv8_utils.c?h=development

    希望这对您有所帮助。

    此致、

    Suren

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Suren

    根据链接、我们找到了转换函数:

    colorConvert_YUVXtoNV12_i8u_o8u_ARMv8

    我们在4个线程中同时转换4个帧的图像、使用此函数转换一个帧大约需要100ms。 因此、这种方法可能仍然无法满足我们的需求。  

    是否有任何其他解决方案可用?

    谢谢

    Wu Zehai

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    吴泽海

    您是否打算直接使用 UYVY 输入进行编码?

    如果是这种情况、则无需 ticolorconvert 即可将其转换为 NV12、因为编码器中支持 UYVY/YUY2。

    应用以下补丁:

    e2e.ti.com/.../v0_2D00_0001_2D00_media_2D00_chips_2D00_media_2D00_wave5_2D00_Support_2D00_one_2D00_planar_2D00_YUV422-_2800_2_2900_.patch

    希望这对您有所帮助

    此致、

    Suren

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Suren

    我们需要将 UYVY 转换为 RGB 以进行显示。

    Thansk

    Wu Zehai

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Wu

    在这种情况下、您可能需要使用 GPU 进行颜色转换。 在 AM62P 的硬件中没有颜色转换。  

    此致、

    Suren