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.
你(们)好
我们的客户在通过 VIP 将 RAW8格式图像数据传输到内存时遇到问题。
图像尺寸为1280x960。 (客户在波形上确认、即将发出的 HSYNC 信号的数量实际上为960。)
但是、1280x961数据被传送到内存中。
-此行为不取决于 VIP1/2/2和 Porta/B 任何 VIP 端口都出现问题。
-关于存储器中存储的数据,上部1280x960是预期的图像数据,但最后会添加一条额外的数据行
因此,存储在内存中的总图像尺寸不是1280x960,而是1280x961。
-一个额外数据行的内容有时全为0,有时是最后一行的图像数据。
RAW8或 YUV422格式发生了这种情况,但 RAW16格式没有发生这种情况
是否超出预期行为? (原因是什么?)
如果不是预期的结果、您能否支持解决该问题?
谢谢、此致、
哈塔。
您好、Ha Ta、
缓冲应用程序正在创建的分辨率是多少?
对 VIP 输出的观察结果是否直接? 或者是否涉及任何颜色转换/缩放?
请告诉我此处使用的是哪个 SDK 版本。
谢谢、此致、
Sunita。
此外、什么是输入接口、HS & VS 或 DE & VS?
Rgds、
Brijesh
您好、Ha Ta、
此外、还有几个要检查的点
PORta_size 寄存 器、用于反映解析器检测到的帧大小。
2. HSYNC 极性
谢谢、此致、
Sunita。
你好,Sunita
客户需要在今天内了解您对此问题的状态。
请尽快回答以下2个问题。
1:您是否已经有任何想法来解决此问题?
2: 您估计此问题将在多长时间内得到解决?
以下是您的问题的答案。
缓冲应用程序正在创建的分辨率是多少?
⇒1280 x 960
对 VIP 输出的观察结果是否直接? 或者是否涉及任何颜色转换/缩放?
⇒不涉及任何颜色转换/缩放
请告诉我此处使用的是哪个 SDK 版本。
⇒SDK:ti-processor-sdk-rtos-am57xx-evm-04.02.00.09-Windows-x86-Install.exe
PDK:v1.0.9
什么是输入接口、HS & VS 或 DE & VS?
⇒HS 和 VS
还有一些要检查的点
PORta_size 寄存器、用于反映解析器检测到的帧大小。
⇒0x 05 00 03 C0 (1280、960)
2. HSYNC 极性
⇒1 (高电平有效)
谢谢、此致、
哈塔。
Hata、您好!
VIP 报告的帧大小为1280x960,缓冲区也分配为1280x960帧大小,那么您如何看到额外的行?
您是否看到存储器中写入的行超过960行?
输入是否还包括任何垂直消隐?
此致、
Brijesh
您好、Brijesh
>您是否看到存储器中写入的行数超过960行?
是的、因此、为其他存储器保留的存储器区域将被销毁。
额外的线路有时是 ALL0、有时也是
有时它是所有的0值、有时它具有与最后一行相同的数据。
>输入是否还包括任何垂直消隐?
我将确认。
请回复
1:您是否已经有任何想法来解决此问题?
2: 您估计此问题将在多长时间内得到解决?
谢谢、此致、
哈塔。
>输入是否还包括任何垂直消隐?
垂直处于非活动状态期间存在消隐周期。
在此期间没有任何数据。
没有任何原因、但客户 对此问题怀疑 PDMA。
谢谢、此致、
哈塔。
Hata、您好!
我真的怀疑这是来自 DMA 引擎。
由于您使用的是 HS & VS 信号、垂直前沿和后沿区域(不是活动垂直垂直垂直垂直垂直垂直同步区域的一部分)也将由 VIP 捕获。 应使用 VIP 修剪器裁剪/修剪。 我们甚至可以限制描述符中的 DMA 写入。
但为此、我们需要知道确切的垂直帧时序。 然后、我们可以使用上述机制之一将帧大小限制为960行。
您将使用哪些驱动程序作为 VIP?
此致、
Brijesh
您好、Brijesh
"哪种驱动程序"是什么意思?
它们正在使用
SDK:ti-processor-sdk-rtos-am57xx-evm-04.02.00.09-Windows-x86-Install.exe
PDK:v1.0.9
谢谢、此致、
哈塔。
Hata、您好!
我是说您使用的是 PDK 驱动程序或 Linux 驱动程序。
此致、
Brijesh
你(们)好
正如我之前所说的、它们使用 RTOS。 因此、我相信他们使用的是 PDK 驱动程序。
Hata、您好!
好的、包括消隐在内的输入视频帧大小是多少? 您能否共享输入视频的视频定时?
Rgds、
Brijesh
我们使用 VIP 端口捕获单帧图像、而不是视频帧。
每次采集时启动和停止 VIP。
因此,我们无法定义“包括消隐在内的视频帧大小”。
Hata、您好!
如果您是 H 输入作为 HSYNC 输入、并在 VIP 中将 HS 和 VS 输入配置为低电平有效输入、那么当 VSYNC 为高电平时、从 HSYNC 的一个上升沿到下一个上升沿的整个线路将在存储器中被捕捉。 如果 VS 为高电平时有960个以上的 HS 脉冲、则 VIP 将捕获所有这些脉冲。
因此、请确保在此期间 HS 的脉冲恰好为960。
此致、
Brijesh
您好、Brijesh
是的、客户确认 HS 的数量确切为960。
Hata、您好!
如果恰好有960个 HS 脉冲、当 VSYNC 处于活动状态时、VIP 将在存储器中捕获960条线路。 VIP 大小寄存器还确认有960条线路。
还有一种方法可以确认接收到的行数是否为960。 在 PDK 驱动程序中、我们可以在每个 fvid2_frame 中提供 RT 参数、驱动程序将返回每个帧捕获的帧大小。 您能否添加它并查看它是否报告超过960行的时间?
此致、
Brijesh
您好、Brijesh
我在将 VPS_CaptRtParams 设置为 Fvid2_Frame.perFrameCfg 后确认了以下值、并且传输完成、
CaptRtParams .captudedOutWidth = 1280
CaptRtParams .captudedOutHeight = 960
因此、输入高度可以是960、但传输高度可以是961。
哪个 VPDMA 寄存器与高度数量相关?
谢谢、此致、
哈塔。
Hata、您好!
如果 RT 参数报告大小为1280x960、则 DMA 引擎不会写入超过960条线路、至少对于该帧是如此。
您能否检查 RT 参数以确定多个帧? 请为每个 Fvi2_frame 提供单独的 RT 参数结构实例、以返回多个帧的大小。
如果使用3个 Fvid2_Frames、则分配3个 RT 参数实例、然后将其传递给 fvid2_frame。 当您取消帧的队列时、请检查多个帧的 RT 参数值。
此致、
Brijesh
你(们)好
我们仅使用1个 Fvid2_Frame 进行单次捕获。
在每次捕获中、RT 参数报告大小为1280x960、并且为961行写入缓冲区。
Hata、您好!
如果 RT 参数报告960条线路、则 DMA 写入960条线路的可能性极小。 您如何知道它超过960条线路?
在向 VIP 提交帧之前,您能否在961行写入已知模式,然后在捕获后,您能否看到模式是否被覆盖?
此致、
Brijesh
您好、Brijesh
他们开始调查此问题、因为发生了数据损坏。
它们准备了大小为1280x960的存储器缓冲器。
其他存储器区域中发生数据损坏。
它的内容有时全为0、有时是最后一行的图像数据。
这种行为不取决于 VIP1/2/2和 PORta/B 任何 VIP 端口都出现问题。
RAW8或 YUV422格式发生了这种情况、但 RAW16格式没有发生
Hata、您好!
几个问题
1、当写入超过960行时、您是否看到 RT 参数报告的行数超过960行?
2、似乎缓冲区中填充了0x00或0xFF、该值是由传感器发送的吗?
您是否还可以尝试使用 VPS_VpdmaMaxSizeParams 接口来限制写入存储器的帧大小? 此结构需要通过 IOCTL_VPS_CAPT_SET_VIP_MAX_SIZE ioctl 传递。 它包含每个实例的 maxWidth 和 maxHeight 参数。 在这种情况下、将 maxWidth/maxHeight 设置为 VPS_VPDMA_MAX_OUT_WIDTH_REG1、然后将 Reg1中的最大大小设置为1280x960。
此致、
Brijesh
此致、
Brijesh
>1:当写入超过960行时,您是否看到 RT 参数报告超过960行?
不可以、每次捕获时、缓冲器写入的行数超过960行、
RtParams 每次报告1280 x 960。
>2:似乎缓冲区中填充了0x00或0xFF,该值是否由传感器发送?
它不是来自传感器的数据。
但是、有时是最后一行的图像数据。
>是否还可以尝试使用 VPS_VpdmaMaxSizeParams 接口限制写入存储器的帧大小?
此结构需要通过 IOCTL_VPS_CAPT_SET_VIP_MAX_SIZE ioctl 传递。
它包含每个实例的 maxWidth 和 maxHeight 参数。
在这种情况下、将 maxWidth/maxHeight 设置为 VPS_VPDMA_MAX_OUT_WIDTH_REG1、然后将 Reg1中的最大大小设置为1280x960。
正如您所说、我试图限制帧大小、但没有任何变化。
(vipPrms->outStreamInfo:VPS_CaptVipOutInfo)
你(们)好
您是否有任何更新?
你(们)好
您是否有任何更新?
Hata、您好!
将1280x960设置为 DMA 中的限值后、它无法写入超过960条线路。 这很不可能。 这是其他东西。 在捕获完成之前、系统中的其他人是否可能正在使用此缓冲区?
您是否可以在不使用任何其他组件的情况下使用独立的捕获模块、并查看最后一行是否已被写入?
此致、
Brijesh
Hata、您好!
是否有关于此问题的进一步更新?
让我们知道它是否已解决、问题是否可以解决。
此致、
Brijesh
您好、Brijesh
我正在向客户确认这一点。
顺便说一下、作为客户的验证、行为取决于图像格式。
根据您 提到的规范、这种行为是不可能的、但是否存在缺陷?
您可以尝试使用不同的图像格式进行类似的简单测试吗?
谢谢、此致、
哈塔。
Hata、您好!
这种行为不太可能与格式有关。 DMA 不知道格式、它根据此配置限制大小。
您能否获得有关其工作格式以及不工作格式的更多信息?
此致、
Brijesh
您好 、Brijesh
所有信息都在我的第一条评论中、因此请仔细参考、但问题发生在 RAW8或 YUV422中、而不是 RAW16中。
RAW8/YUV422和 RAW16可通过 VIP 中的不同路径。
恐怕这会导致这种行为的原因。
谢谢、此致、
哈塔。
Hata、您好!
好的、RAW8和 YUV422数据的输入接口是什么? 在这些情况下、了解 VIP 的像素非常重要。
由于它对 RAW16位工作正常、我觉得这是一些次要配置问题。
此致、
Brijesh
Hata、您好!
我的意思是工作用例和非工作用例之间的接口大小是多少? 在这两种情况下、它是8位、即8条数据线吗? 还是不同?
此致、
Brijesh