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.

[参考译文] 通过 HDMI 在 DSS -VID1流水线中显示1280 * 720 NV12图像显示最后一行的绿色线

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/661476/displaying-1280-720-nv12-image-in-dss--vid1-pipeline-via-hdmi-showing-last-row-with-green-line

尊敬的先生:

我正在使用 DRA74xx 并在 cortex M4 IPU1中运行直接显示驱动程序代码。 除了  通过 VID1- DSS 流水线显示一张 NV12图片(1280*720)外,其他一切看起来都很好。 此图片在显示屏中将最后一行显示为绿线。

当我填充 (1280*721*1.5)数据字节时, 最后一行将变为 损坏的像素,并呈散射绿色。  我的结论 是,这张图片必须用垂直向上缩放比例1来显示。 从1280*720到1280*721。

我的结论是对的吗? 如果是、我必须修改什么是 VID1 DSS 寄存器。 我尝试更改 DISPC_VID1_FIR (0x5800 10E0)寄存器。 但问题仍然存在

数据流路径为 DSS。 VID1->HDMI ->LVDs->Display。

请告诉我实际的问题是什么以及如何解决。

此致、

Jeyaseelan

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

    您使用哪款 SDK?

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

    我没有得到您的数据流。 是 HDMI -> LVDS ->显示吗?
    谁将 HDMI 转换为 LVDS?

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

    您好、Brijesh/Yadav、

    这是一个自定义驱动程序,可直接从 M4-IPU1访问 DSS 寄存器,而不是通过任何 SDK 访问 DSS 寄存器。

    我们使用串行器- DS90UB914A 用于 HDMI 到 LVDS

    请告诉我,在 VID1的 DISPC 中使用多相位滤波器的显示控制器进行垂直向上调节是否可用于将1280*720转换为1280*721的 NV12图像。 如果是,要配置的寄存器是什么以及顺序是什么。

    同时确认此升标是否会删除最后一行中的绿线。

    此致、

    Jeyaseelan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    914用于 HDMI 到 LVDS 的转换?? 奇怪吗?

    视频流水线中有一个标量、它可能会将720到721行进行转换。 请检查是否已启用。
    除此之外、请检查是否正确设置了 LCD 的大小。 即使 VID 大小设置为720、如果 LCD 大小设置为721、它也将输出721行。

    但我想当您填满整个721行缓冲区时、您会看到输出存在差异、这意味着您的输入视频流水线本身配置不正确。 请检查视频管道配置。

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

    它实际上是 DS90UB913A 串行器和 DS90UB913A -通过 FPD-III 链路的解串器(类似于 LVDS)。

    如果我们在复制 NV12帧之前先用0x80填充存储器区域(1280 * 720*3),问题就会得到解决。 如果有人知道背后发生了什么、请分享。

    memset (VID1_MEM_ADDR、0x80、(DRA7XX_BA_PIC_width * DRA7XX_BA_PIC_HEIGHT * 3));

    此致、
    Jeyaseelan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为什么尺寸为1280x720xd? 为什么不是1280x720x1.5? 您是否使用 YUV420帧格式?

    Rgds、
    Brijesh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    同一个管道用于显示2个源、1个来自 RGB 源、另一个来自 NV12。上述初始化在开始时完成一次、然后在这些源之间切换。
    是的,NV12源应该是1280*720*1.5。 如果也使用1280*720*1.5进行初始化,我将检查行为并进行更新。

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

    因此、您尝试同时显示 RGB 和 NV12。 但是、当您更改源时、您是否还更改 VID 流水线的配置? 当输入格式发生变化时,许多配置都发生了变化,例如,输入格式、间距、标量等。

    Rgds、
    Brijesh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,我们只是这样做。 根据用户选择的来源,显示配置会动态更改。 CSC、换算、显示控制器配置等、并通过电视输出显示。

    此致、
    Jeyaseelan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可以使用722到720的流水线标量将其缩小。 能否检查路径中是否启用了标量?

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

    我们还没有收到您的回复、我假设您能够解决您的问题。
    如果不是、只需在下面发布回复(如果该线程由于超时而锁定、则创建新线程)。

    此致、
    Yordan