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.

[参考译文] PROCESSOR-SDK-J722S:调试用于主机仿真的 MSC 库函数

Guru**** 2536510 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1534945/processor-sdk-j722s-debugging-msc-lib-function-for-host-emulation

器件型号:PROCESSOR-SDK-J722S


工具/软件:

你好,这是 Yosep(约瑟夫)从 StradVision。

我们正在尝试使用在该库中定义的函数 libscalar.a.
在本地、它位于以下目录中
  • 92_j722s/vhwa_c_models/vpac3/lib/PC/x86_64/linux/release/libscalar.a
我们正在尝试使用下面的“scaler_top_processing"函“函数
以便将 NV12 映像转换为 BGR、如 scalar_core.h 中所定义
  • int scaler_top_processing (unsigned short * imgInput[2]、unsigned short * imgOutput[scaler_NUM_pipes]、Scaler_Config * config);

然而、基于“0"的“的返回值以及存储在“imgOutput"中“中的输出数据、该函数似乎更合适
行为不符合预期。

由于源代码不可用、无法进一步诊断问题。

我还在共享实际值“ Scaler_Config *Config“已设置为。


e2e.ti.com/.../scaler_5F00_config.txt

我也很乐意分享输入和输出图像数据的转储文件、
但似乎无法共享.nv12 或.bgr 格式的文件
通过使用此编辑器的拖放方法功能。


其他环境详细信息
  1. GPU : NVIDIA GeForce RTX 4080
  2. 驱动程序版本:570.86.15
  3. CUDA 版本:12.8.   
  4. 操作系统: Ubuntu 20.04.6.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../MSC_5F00_SCALER_5F00_IMG_5F00_DUMP.zip

    压缩输入和输出图像转储数据后、我可以上传它。
    请参阅文件的内容。

    输入图像尺寸= 1920 * 1536 * 3/2
    输出映像大小= 896 * 512 * 3

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

    尊敬的 Yosep:  

    感谢您提供的信息、我将回顾此内容。 我有几个问题:

    它是否在 Vision-Apps SDK (Linux+RTOS) 或标准 Linux SDK 上进行了测试?  您使用的是哪个 SDK 版本?

    我目前没有 J722s 板、因此我会尝试快速获得一个。

    谢谢您、
    Sarabesh S.

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

    尊敬的 Sarabesh:

    如果我正确理解了您的问题、
    在这种特定情况下、我们实际上没有使用 VisionApps SDK 或标准 Linux SDK。

    我们正在使用上面提供的环境详细信息在服务器系统上测试库。
    缺少的一条信息可能是 CPU、即 AMD Ryzen Threadripper PRO。

    我们要做的是、在 Linux 主机上、导入并使用 libscalar.a 库
    进行映像转换。

    希望这能回答您的问题。
    很抱歉晚才回复!

    谢谢、
    Yosep K.

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

    尊敬的 Yosep:

    感谢您对此进行澄清。 我不确定我是在这里为您提供帮助的正确专家。 我会将此 TT 重定向到正确的分配。  

    谢谢您、
    Sarabesh S.

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

    尊敬的 Yosep:

    但标量不支持从  NV12 映像到 BGR 的格式转换。 标量仅支持缩放操作。  

    此致、

    Brijesh

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

    您好、Brijesh
    那么、是否有一个函数可以进行 NV12 -> BGR 转换?

    谢谢、
    Joseph。

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

    您好、 Joseph:

    否、未处于 PC 仿真模式。  

    在目标模式下、DSS WB 路径可以支持此转换。  

    此致、

    Brijesh

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

    每周 7 月 23 日、  

    [quote userid=“80721" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1534945/processor-sdk-j722s-debugging-msc-lib-function-for-host-emulation/5925925

    否、未处于 PC 仿真模式。  

    [/报价]

    我将看看是否有任何替代方法、与 Brijesh 交谈。

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

    感谢您的跟进。
    好极了。

    谢谢你。
    Yosep K.

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

    Yoseop

    我们在上周后半期在内部进行了讨论、研究了 DSS 还是 GPU 是否具有此类功能。  通过讨论、我们确认在 PC Emulation 模式下、没有 任何库函数来进行此转换。 此外、在目标模式下、我们可以使用 DSS、但 DSS 在 PC 仿真模式下不可用。

    然后我们转向 GPU。  在目标模式下(意味着直接在板上运行)、GPU 可以支持转换、但在 PC 仿真模式下、Imagination 工具包中没有任何内容表明该模式支持 GPU。

    总之, Stradvision 似乎需要编写一些自定义实现来转换此格式。 YUV 2 RGB 是直接的 3x3 矩阵乘法、有许多方法可以将 YUV420 转换为 YUV444。 一种简单的方法是色度复制。

    John  

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

    约翰·赫尔
    我知道 PC 仿真模式不支持颜色转换功能。
    这是否意味着可以获得某种对图像缩放的支持??

    我已尝试在主机 PC 和上“模拟“或实现图像缩放和颜色转换
    两者都会导致最终转换后的图像出现轻微差异。

    如果我能获得某种扩展支持、我认为这可能会有所帮助。

    谢谢、
    Joseph

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

    Yoseop  

    请注意、分配的工程师上周已经下班、下周将回来。  

    John  

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

    您好、 Joseph:

    主机仿真模式支持 MSC 标量、但不支持颜色转换。  

    此致、

    Brijesh

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

    您好、Brijesh
    感谢您的答复。

    定义为“MSC 标量在主机仿真模式下受支持“、
    1. 是否指的是 “scaler_top_processing"函“函数,该函数位于该线程的正文中?
    MSC scalar ==“scaler_top_processing"  ?“??

    2.或者是否有独立的功能可以测试出来。

    如果 1 为真、我们从头开始说起、并需要对正确输入的支持。
    如果 2 为真、请说明这条路径。

    谢谢您、
    Joseph K.

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

    您好 Joseph、

    scaler_top_processing 是用于访问 MSC 标量的主 API、但正如我之前提到的、它不支持从 NV12 到 RGB 的格式转换。

    此致、

    Brijesh

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

    您好、Brijesh
    因此,我应该至少能够使用 scaler_top_processing 将输入缩放到所需的尺寸,而忽略 格式转换?
    在当前状态下、scaler_top_processing 根本不起作用。

    此致、
    Joseph

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

    您好、Joseph:

    是的、这是正确的功能。 此 API 获取指向输入和输出图像的指针以及指向配置的指针、并据此执行缩放操作。  

    您认为它根本不起作用是什么意思? 您是否看到任何错误或错误的输出??

    此致、

    Brijesh

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

    您好、Brijesh

    是的、正如我在该线程的正文中提到的、函数返回“0",“,输出、输出图像似乎无效。

    我附上了我在正文中使用的 scaler_config 值、也在该线程的第一个注释中附加了输入和输出图像数据。

    您能看一下它并看看是否有任何问题吗? 返回值“0"也“也表示什么?

    谢谢您、
    Joseph

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

    您好、Joseph:

    好的、我请求 Gullipalli Suneetha 在这里提供帮助。  

    此致、

    Brijesh

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

    您好、Joseph:  

    返回值为 0 表示函数成功执行、没有任何错误。

    我已经检查了您的配置。 您能否解释一下为什么设置了以下值? 我想了解选择这些特定配置值背后的原因。

                    // Assign values to coef_sp[0]
                    settings.coef_sp[0][0] = 3432;
                    settings.coef_sp[0][1] = 0;
                    settings.coef_sp[0][2] = -2799;
                    settings.coef_sp[0][3] = 21845;
                    settings.coef_sp[0][4] = 3432;
    
                    // Assign values to coef_sp[1]
                    settings.coef_sp[1][0] = 0;
                    settings.coef_sp[1][1] = 21302;
                    settings.coef_sp[1][2] = 0;
                    settings.coef_sp[1][3] = -1;
                    settings.coef_sp[1][4] = -1;
                    
                    settings.unitParams[0].initPhaseX = 2341;
                    settings.unitParams[0].initPhaseY = 2340;
                    settings.unitParams[0].hzScale = 8777;
                    settings.unitParams[0].vtScale = 8776;
                    settings.unitParams[0].filter_mode = 1;



    此致、

    Suneetha。

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

    您好、Gullipalli、

    简而言之、这些值源自 TI 电路板。
    另一名专门将我们的软件移植到 TI 电路板的员工
    在用于 scaler_top_processing 的函数调用处设置断点、
    他给了我在那个精确时刻可见的变量的值。

    他为该函数设置的唯一值如代码片段所示、加上输入图像宽度、高度和 in_img_FORMAT 都是 NV12。

        // create coeff param
        tivx_vpac_msc_coefficients_t coeff_params;
        // resize : Nearest neighbor
        int32_t coeff_value[TIVX_VPAC_MSC_MAX_MP_COEFF_SET][TIVX_VPAC_MSC_MAX_TAP] = {
            {0, 0, 256, 0, 0},
            {0, 0, 0, 256, 0},
            {0, 0, 256, 0, 0},
            {0, 0, 0, 256, 0},
        };
    
        for (uint32_t set_idx = 0; set_idx < TIVX_VPAC_MSC_MAX_MP_COEFF_SET; set_idx++) {
            for (uint32_t phase_idx = 0; phase_idx < TIVX_VPAC_MSC_32_PHASE_COEFF; phase_idx++) {
                memcpy(&(coeff_params.multi_phase[set_idx][phase_idx * TIVX_VPAC_MSC_MAX_TAP]), &coeff_value[set_idx][0], sizeof(int32_t) * TIVX_VPAC_MSC_MAX_TAP);
            }
        }


    因此、大多数系数都是以某种方式计算得出的、或以其他方式源自 TI 电路板。

    谢谢、
    Joseph。

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

    您好、Joseph。

    感谢您分享详细信息。 澄清一下—函数 scaler_top_processing 是主机仿真流程的一部分、通常不需要 TI 板运行。 根据您的注释、您的员工似乎在 TI 板上执行期间在 scaler_top_processing 内设置了一个断点、并捕获了该点的变量值。

    您能否确认这些值是在电路板执行中获取的、还是在 PC 上以主机仿真模式运行时获取的? 这种区别将帮助我们更好地指导您。

    此致、

    Suneetha。

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

    您好、Gullipalli、

    我已与我的同事核实、

    在电路板执行期间引用了这些值。

    谢谢、
    Joseph。

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

    您好、Joseph、  

    感谢您的确认。 请参阅以下示例、了解缩小 NV12 映像的正确配置。
    https://git.ti.com/cgit/processor-sdk/imaging/tree/kernels/hwa/test/test_vpac_msc_scale_multi_output.c?h=main#n587

    此致、

    Suneetha。