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.

[参考译文] TDA4VEN-Q1:关于修改 LDCbin 文件's LDC_INITXY 会导致屏幕崩溃的问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1648586/tda4ven-q1-regarding-the-issue-where-modifying-the-ldcbin-file-s-ldc_initxy-causes-the-screen-to-crash

器件型号: TDA4VEN-Q1

尊敬的 TI 专家:

最近、我需要使用 LDC 旋转图像并对其执行扩展处理。 我通过尺寸为 2534x8160 的大型网状网络实现了这一功能。 当我将 INITY 设置为 0 甚至 1000 时、程序可以正常运行、显示也正常。 但是、当我将 INITY 设置为高于 1300 时、屏幕将冻结。 此外、此崩溃不会立即发生、而是在程序运行了几秒钟到几十秒后发生。 您能告诉我问题是什么吗? 此外,使用相同的方法,如果网格的分辨率是 2534x4272 或 6528x5272 ,这样的问题将不会发生。

附件包含相应的 XML 和网格文件。  其中有问题的是 b、而 c 和 d 是 normal.XML.zip 

此致、

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

    尊敬的 Ding:

    大网格的大小为 2534x8160。

    LDC 的图像大小限制为 8192x8192。
    您的网格大小在限制范围内。

    您能告诉我问题是什么吗? [/报价]

    我不知道有类似的土发公司问题。
    很可能是网格 LUT 中出现了问题。

    附件包含相应的 XML 和网格文件。

    xml 文件是由 TDA4 ISP 调优工具生成的吗?
    “Dcc_LDC_WDR_R1_b_1.txt“对我来说看起来很奇怪。

    您能否分享您对此 LUT 的调优工具的输入和输出?

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

    最好是共享 “dcc_LDC_WDR_R1_b_1.txt“的调优工具工程。

    使用整个网格生成输出图像时、您是否看到任何警告/错误?

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

    您好、  

    此 LDC LUT 不是使用 DCC 生成的、而是我自己编写的脚本的结果。 生成过程相当复杂、因此我们无法为您提供必要的输入。 但是、之所以出现此问题、是因为我们在脚本中包含了一个顺时针旋转 90°的步骤。 当图像不旋转时、即当 LUT 的输出大小为 8160x1534 时、图像是正常的。 此外、通过使用此脚本输出分辨率小于此大小的其他 LUT、无论是否旋转、图片都是正常的。 我想知道您是否可以根据我提供的 LUT 和 XML 找到相关的问题。 或者、您是否怀疑哪个器件可能是问题所在?

    此致、

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

    尊敬的 Ding:

    此 LDC LUT 不是使用 DCC 生成的、而是由我自己编写的脚本的结果。 生成过程相当复杂、因此我们无法为您提供必要的输入。

    我懂了

    但是、出现此问题是因为我们在脚本中包括了顺时针旋转 90°的步骤。 当图像不旋转时、即当 LUT 的输出大小为 8160x1534 时、图像是正常的。 此外、通过使用此脚本输出分辨率小于此大小的其他 LUT、无论是否旋转、图片都是正常的。

    这是可以的、但我无法判断错误是在您的 LUT 中还是在我对 LUT 的解码中。

    我想知道您是否可以根据我提供的 LUT 和 XML 找到相关问题。 或者、您是否怀疑哪个器件可能是问题所在?

    xml 中的 LUT 不适合我。

    如果您可以使用或修改脚本来创建调优工具输入格式的 LUT、然后我们可以检查调优工具中是否存在错误。

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

    尊敬的 Gang:

    修改该脚本后、我能够生成 DCC LDC 模块的输入 LUT。 但是、当我将 LUT 导入 DCC 并处理图像时、DCC 报告了错误:LDC 错误标志:bit0 = 1:超出输入图像帧绑定或网格帧绑定(仅警告:削波)
    bit1 = 1:超出像素块限制(PIXPAD 太小;仅警告:削波)
    bit2 = 1:内部像素缓冲区溢出(输入图像块太大)
    bit3 = 0:内部网格缓冲区溢出(网格向下采样太小)
    bit4 = 0:affine/pwarp 内部上溢
    bit5 = 0:外网格块边界(仅警告:削波)。 但是、奇怪的是、当我将 XML 转换为 bin 文件并在 TDA4 板上运行它时、可以在 init_X 和 init_Y 设置为 0 时显示图像。 只有当 INIT_X 和 INIT_Y 超过特定值时、屏幕才会冻结。

    此外、现在通过使用算法修改 LUT 来实现 LDC 的 90 度旋转。 我注意到 LDC 模块本身支持仿射变换矩阵。 LDC 的仿射变换矩阵是否可用于执行图像的 90°旋转? 是否会出现同样的问题? 从确保功能稳定运行的角度来看、LDC 处理图像后、我们需要在垂直屏幕上显示图像。 您建议在 LDC 模块或 DSS 模块中旋转图像吗?

    此致、

    e2e.ti.com/.../dcc_5F00_input.zip

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

    尊敬的 Ding:

    bit0 = 1:超出输入图像帧边界或网格帧边界(仅警告:回剪)

    这通常是可以的(只是一个警告)。

    bit1 = 1:超出像素块绑定(PIXPAD 太小;仅警告:截断)

    这有时可能会导致一些小伪影。

    bit2 = 1:内部像素缓冲区溢出(输入图像块太大)

    这通常会导致伪影。
    在某些情况下、这可能会导致不良的 DDR 流量(在极端情况下可能导致长时间延迟和挂起)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以使用 LDC 的仿射变换矩阵来执行图像的 90°旋转?

    是的、可以。

    是否会出现同样的问题?

    问题必须出现在网格 LUT 中。

    从确保函数稳定运行的角度来看、我们需要在 LDC 处理完图像后在垂直屏幕上显示图像。 您建议在 LDC 模块或 DSS 模块中旋转图像吗?

    两者都是可能的、但 LDC 可以通过一种方式提高效率。

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

    您分享了“view_display_1920x1536_ch_1_00001120.YUV“。
    我想这是 LDC 输入图像。

    为什么 xml 文件中的 LDC 输入图像大小要大得多?

    2534 // LDC_INPUT_FRSZ W 输入帧宽度
    8160 // LDC_INPUT_FRSZ H 输入帧高度

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

    我无法在调优工具中正确使用“dcc_lut.txt“和“view_display_1920x1536_ch_1_00001120.YUV“。
    “dcc_lut.txt“似乎为 8160x2534 输出图像大小。
    在将输出/网格图像大小更改为 8160x2534 后、我仍然收到调优工具错误。

    请检查它们是否已正确共享/复制。

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

    尊敬的 Gang:

    是的、“View_display_1920x1536_ch_1_00001120.YUV“是 LDC 的输入。 LUT 的大小为 8160x2534、因为当我处理输入图像(包括填充,透视变换和失真消除)时、某些像素会飞在画布之外。 因此、我需要展开画布以完成计算、然后再次压缩、这导致 LUT 分辨率比输入图像大得多。 如前所述、将这个 LUT 和 XML 转换为二进制格式并在 TDA4VEN 上运行后、我们将配置这个 LDC 节点和 init_X/init_Y 的输出大小以获取预期映像(这可以成功)。 我们的经验是、在 TDA4VEN 上运行 LDC 时、输入图像的大小可能与 LDC LUT 和输出图像不同。 然而、这似乎无法在 DCC 中完成。

    此致、

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

    尊敬的 Ding:

    LUT 的大小为 8160x2534、因为当我处理输入图像(包括填充,透视变换和失真消除)时、某些像素会飞在画布之外。 因此、我需要展开画布以完成计算、然后再次压缩、这导致 LUT 分辨率比输入图像大得多。 [/报价]

    我不确定我是否理解。
    输入图像尺寸必须与实际输入图像尺寸相同。
    超出输入图像范围的大小是非法的。

    LUT 分辨率比输入图像大得多。 [/报价]

    LUT 和输出图像尺寸可能大于输入图像尺寸。

    我们的经验是、在 TDA4VEN 上运行 LDC 时、输入图像的大小可能与 LDC LUT 和输出图像不同。 但是、这似乎无法在 DCC 中完成。
    [/quote]

    您可以在调优工具中独立设置输入图像大小、网格大小、输出图像大小。

    我看不到的是如何 在调优工具中正确使用共享的“Dcc_lut.txt“。
    它适用于 8160x2534 输出图像大小(不是 2534x8160)、并且在调优工具中会产生错误、输出图像错误。

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

    尊敬的 Gang:

    您提到、使用 LDC 进行 90°旋转将更加高效。 您能详细说明一下吗? 最近、当我们使用 LDC 执行 90°旋转时、我们发现在由 90°逆时针旋转时、我们需要配置较小的 OBH 和 OBW 值、以避免 VPAC 在软件运行期间卡住的问题。 不过、这会导致 LDC 增加一帧的处理时间并降低帧速率。 您能告诉我、与 LDC 相比、使用 DSS 进行旋转有哪些优缺点?

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您提到使用 LDC 进行 90°旋转会更加高效。 您能详细说明一下吗? [/报价]

    我不能回顾到现在发表这一评论的背景。
    我可能的意思是“口粮“和“不口粮“,一个可以更有效。

    最近、当我们使用 LDC 执行 90°旋转时、我们发现、当被 90°逆时针旋转时、我们需要配置更小的 OBH 和 OBW 值、以避免 VPAC 在软件运行期间卡住问题。 [/报价]

    添加旋转会改变 LDC 输入图像块模式、因此 OBW 和 OBH 必须以不同的方式进行优化。
    这可能会提高或降低效率。

    一般来说、除非您的网格 LUT 存在一些问题、否则我不会指望 LDC 卡住。

    您能告诉我使用 DSS 进行轮换相对于 LDC 的优缺点吗?
    [/quote]

    我不熟悉 DSS 详细信息。
    对于纯 90 度、它可能会更有效、因为它可能会针对这一点进行优化。

    LDC 是一种更通用的逐块变换。
    根据整体 DDR 流量模式、在其他几何变换的基础上添加 90 度旋转效率可能更高或更低。

    [/quote][/quote]