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.

[参考译文] DRA744:VIP:摄像头输入有时看起来像奇数行、偶数行反转

Guru**** 2558670 points
Other Parts Discussed in Thread: TVP5158

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/683545/dra744-vip-camera-input-sometimes-looks-like-odd-and-even-rows-are-reversed

器件型号:DRA744
Thread 中讨论的其他器件:TVP5158

大家好,  

i m 在 Android jellybean 内核3.8  上。

在我的应用程序中 ,我正在使用摄像机并进行流式传输 ,  系统正常工作 ,但   我收集的图像有时(大约50%的时间)不“正确”:它看起来 很奇怪,甚至是行被颠倒。

问:  我是否会遇到错误 i839?    

关于如何解决此问题的任何建议/意见?    

谢谢你  

此致

卡洛

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

    Android 支持的摄像头是通过 TVP5158连接的 JAMR 板模拟摄像头。
    由于这是模拟摄像机 BT565、因此视频被隔行扫描。

    VPE 硬件用于执行反交错、然后最终渐进映像由 HAL 层传递。

    "奇数和偶数行被反转"听起来像是 VPE 驱动器的反交错配置中的问题。
    勘误表 i839是关于内存中的字节顺序的。 例如、RGBA 可能被写为 ABGR。
    我认为此症状与勘误表无关。


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

    正如 Nikhil 所建议的、这不太可能与勘误表相关。 我们以前曾看到过此问题、即摄像头 HAL 在反交错时不检查字段类型、因此每当出现跌落时、顶部/底部字段都会反转。

    Marshmallow 中创建了一个补丁、可解决问题: review.omapzoom.org

    谢谢、
    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 David:
    谢谢,但我正在使用 VIP。
    我们在 VIP 上找到了一个解决方法,如果可以用于生产,我需要您的确认:

    -HAL 摄像头我们在 V4 L2_field_SEQ_TB 中配置视频帧格式(该帧在单个缓冲区中包含序列顶部+底部);
    -VIP 驱动程序采用"数据传输描述符格式"位"字段"(位24);
    -->如果 Field = 1,VIP Driver 将帧包含底部+顶部的信息传递给 HAL 摄像机。 如果 Field = 0 VIP Driver 传递给 HAL 摄像机,则帧包含的信息为 top + bottom。
    Camera HAL 它根据从 VIP 接收到的信息动态汇编视频帧

    您认为它是正确的吗? 是否有副作用?
    非常感谢
    此致
    卡洛
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Carlo、

    我认为我们的 VIP 驱动程序不支持 V4L2_field_SEQ_TB? 这通常由 VPE 处理。 我不相信我们提供的摄像机 HAL 也支持使用 V4L2_field_SEQ_TB。  

    假设这些问题已得到解决、还必须确保在跌落磁场的情况下、TB 顺序保持不变、并且不存在时间顺序问题。 由于我们不使用 V4L2_FIELD_SEQ_TB、因此我无法对正确性做进一步的评论。 但是、它看起来受 VPE 驱动程序支持。  

    如果不使用 VPE 或另一个自适应反交错解决方案、粗略的场阶表示可能会导致常见的反交错伪影、如下所示:  

    谢谢、

    David

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

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

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

    Yordan,您好!

    我正在与达拉斯的同事共同努力,但仍有 问题

    请将其保持打开 一段时间

    谢谢你

    此致

    卡洛

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

    没问题。 如果您有任何进展或新问题、请在此处填写。

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

    我将关闭此主题、您可以在出现新问题时在此处重新打开它。

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

    现在、我们似乎已经从 NV12中的 VPE 中获得了一个良好的图像。

    然后、VPE NV12帧以汇编器格式 nv12+STRIDE (类似于您提到的 convertYUV422ToNV12Tiler)进行转换、最后发送给 sendFrameToSubscribers。

    在任何情况下、我们都需要向 VPE 帧的每一行填充"跨度"(4096)。
    汇编器函数仅是此特定用途所必需的。

    接下来、我们有几个问题:

    1.这需要大量的 CPU 使用;您知道是否有办法避免使用?

    我们正在使用:Jacinto DRA744、Linux 内核3.8、Android Jelly Bean 4.3。 您是否知道 Android 的更新版本是否仍需要它?

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

    您好、Carlo、

    最新版本的 Camera HAL 不使用 convyU422ToNV12Tiler 函数。 相反、我们通过对 V4LM2M.CPP 的 processFrame 调用对所有 CSC 和去交错使用 VPE。 这会将所有负载从 CPU 转移到 VPE。  

    谢谢、

    David