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.

[参考译文] TDA4VM:LDC NV12P12输出不正确

Guru**** 2539500 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1080425/tda4vm-ldc-nv12p12-output-incorrect

部件号:TDA4VM

您好,

使用 TIOVX LDC VPAC 内核 API。

我们正在尝试校正尺寸为1824*948 (NV12P12)的输入图像,以输出尺寸为1792*544 (NV12P12)的图像,并将完全失真的图像作为输出连接到此处。

尽管输入的 LUT 相同,但只有 LUMA (1824*948),但我们获得的仅限 LUMA 的输出是正确的。

注:我们可以通过使用尺寸为1792*948 (NV12P12)的输入图像输出尺寸为1792*544(NV12P12)的输出来生成完美的输出,并对原始 LUT 进行轻微修改。

使用的降尺度系数为1

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

    你好,Monis Raja,

    请您回答以下有关此问题的问题:
    1.您能否在此处简要介绍您的设置?

    2.如何查看输出  NV12P12图像?

    3.请告诉我 NV12P12输入图像的来源?

    此致,
    尼基尔

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

    您好,

    [引用 userid="506459" url="~/support/processors-组/处理器/f/processors- forum/1080425/tda4vm-nv12p12- output-incorrect/4000215#4000215"]1. 您能否在此处简要介绍您的设置?

    单个 LDC 节点的 OpenVX 图形。 输入 NV12P12 -输出 NV12P12。

    (注意:使用的 LUT 是准确的,因为它可以正确地用于相同大小的仅限 LUMA 图像)。

    [引用 userid="506459" url="~/support/processors-组/处理器/f/processors- forum/1080425/tda4vm-nv12p12- output-incorrect/4000215#4000215"]2. 如何查看输出  NV12P12图像?

    按照 TI 包装和包装指南(小 Endian),将12位解包到16位后,将会显示此图像。

    [引用 userid="514332" url="~/support/processors- group/processors/f/processorser-forum/1080425/tda4vm-nv12p12 - output-incorrected"]注:我们可以使用尺寸为1792*948 (NV12P12)的输入图像输出尺寸为1792*544[NV12P12]的原始数据,从而生成完美输出。

    使用相同的解压缩代码可视化其他 NV12P12工作设置,该设置已正确可视化。

    [引用 userid="506459" url="~/support/processors-组/处理器/f/processors- forum/1080425/tda4vm-nv12p12- output-incorrect/4000215#4000215"]3. 请告诉我 NV12P12输入图像的来源?

    输入图像:NV12P12 -这是我们摄像机设置(外部)的转储。

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

    您好,Raja,

    即使您将16位容器中的12位数据解压缩,如何查看这些数据? 您是否使用了一些工具来查看这些数据? 因为大多数工具只支持8位 NV12或 luma 数据,所以想知道您是如何查看图像的,以及使用的工具是否适合查看此格式。  

    从上述描述看来,您使用 的 LUT 不正确,或者可能是 LUT 的大小配置不正确。 那么,请检查您的 LUT 吗?

    此外,请确保 LUT 的行偏移保持16字节对齐。  

    此致,

    布里耶什

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

    您好,

    感谢你的答复。  

    我们使用7YUV 查看具有以下显示配置的图像。

    注意:我们一直使用此配置来查看所有其他未打包的 NV12图像(16位中为12个),这些图像随后在整个管道中使用,并且可以正常工作。

    [引用 userid="80721" url="~/support/processors-组/ processors/f/processors- forum/1080425/tda4vm-nv12p12- output-incorrect/4003139#4003139"]

    从上述描述看来,您使用 的 LUT 不正确,或者可能是 LUT 的大小配置不正确。 那么,请检查您的 LUT 吗?

    [/引用]

    是的,我们 也有同样的疑问,这就是为什么我们尝试使用相同的 LUT,并且只使用需要 输入(1824*948)的 Luma (12英寸16位)图像,并收到了正确的所需输出图像(1792*544)。

    因此,根据我们的理解,我们仅在 LUMA 中使用的 LUT (大小和工作方式相同)和 NV12P12 (大小相同)必须相同。  

    [引用 userid="80721" url="~/support/processors-组/ processors/f/processors- forum/1080425/tda4vm-nv12p12- output-incorrect/4003139#4003139"]

    此外,请确保 LUT 的行偏移保持16字节对齐。  

    [/引用]

    我们正在使用 MapImagePatch 并从二进制文件直接在数据阵列中加载32位 LUT 点。

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

    您好,

    [引用 userid="514332" url="~/support/processors- group/processors/f/processors- forum/1080425/tda4vm-nv12p12- output-incorrect/4007141#4007141]",根据我们的理解,我们仅在 LUMA 中使用的 LUT (大小和作用相同)和 NV12P12大小相同。  [/引用]

    这是正确的,LUT 用于像素,因此当您从仅限美洲豹模式切换到 NV12P12格式时,它将保持不变。  

    [引用 userid="514332" url="~/support/processors- group/processors/f/processors- forum/1080425/tda4vm-LDC-nv12p12 - output-incorrect/4007141#4007141"]我们使用 MapImagePatch 并从二进制文件直接在数据阵列中加载32位 LUT 点。

    这很好,如果这在仅限美洲版模式下工作,它也应该在 NV12P12格式下工作正常。  

     在这种情况下,您如何为 LDC 生成输入? 它是否来自 VISS? 您能否检查此格式的间距并查看其设置是否正确?

    对于 NV12P12生成的输出,能否检查亮度输出是否正确?  

    此致,

    布里耶什

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

    您好,

    [引用 userid="80721" url="~/support/processors-组/处理器/f/processors- forum/1080425/tda4vm-nv12p12- output-incorrect/4008449#4008449"]

     在这种情况下,您如何为 LDC 生成输入? 它是否来自 VISS? 您能否检查此格式的间距并查看其设置是否正确?

    [/引用]


    为了验证此问题,我们创建了一个独立的 OpenVX 图形,该图形只有一个节点- LDC。

    图形本身的输入是打包的鱼眼 NV12P12图像。 拆开包装后,我们可以在7年紫外线下看到鱼眼图像(1824*948)。

    我正在附上用于加载图像的代码,您能否确认这是否正确?

    /resized-image/__size/320x240/__key/communityserver-discussion-components-files/791/pastedimage1646733889545v1.png

    [引用 userid="80721" url="~/support/processors-组/处理器/f/processors- forum/1080425/tda4vm-nv12p12- output-incorrect/4008449#4008449"]

    对于 NV12P12生成的输出,能否检查亮度输出是否正确?  

    [/引用]

    否,只有 NV12P12的 uma 不正确。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="514332" url="~/support/processors-group/processors/f/processors-forum/1080425/tda4vm-nv12p12- output-incorrect/4008803#4008803"]

    我正在附上用于加载图像的代码,您能否确认这是否正确?

    [/引用]
    //------------- //------------- //-------------
    rect.start_x = 0
    rect.start_y = 0
    rect.end_x =宽度//1824
    rect.end_y =高度//948
    Status = vxMapImagePatch(图像
    矩形(&R)
    0
    &MAP_ID1
    &image_addr
    &DATA_pt1
    vx_write_only,
    vx_memory_type_host,
    VX_NOGAP_X
    );
    文件*fp = fopen (文件名,“rb”);
    vx_UINT32 num_bytes;
    num_bytes = fread (data_ptr1width*1.5heightfp);
    IF (num_bytes ==0)
    printf("fread 不正确\n");
    }
    vxUnmapImagePatch (映像map_ID1);

    rect.start_x = 0
    rect.start_y = 0
    rect.end_x =宽度
    rect.end_y =高度
    Status = vxMapImagePatch(图像
    矩形(&R)
    1
    &MAP_ID2
    &image_addr
    &DATA_pt2
    vx_write_only,
    vx_memory_type_host,
    VX_NOGAP_X
    );
    IF (fseek (FP,(无符号 int)((浮点)宽度*(浮点)高度* 1.5f),seek_set)== 0)
    num_bytes = fread (data_ptr2width*1.5height/2fp);
    }
    vxUnmapImagePatch (映像map_ID2);
    //------------- //------------- //-------------
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    在上述代码中,您如何处理图像的间距?  

    我认为,在 OpenVX 中,我们尝试使步幅对齐为64字节,这意味着,对于上述图像宽度1824 (需要 2736字节),节距将为 2752。 是否可以使用 image_addr.stride_y 逐行正确复制图像数据?

    此致,

    布里耶什

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

    您好,

    谢谢,改变步伐有助于我们获得正确的结果。