首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >电视(电视)视频实时像素级分析推荐标准

电视(电视)视频实时像素级分析推荐标准
EN

Stack Overflow用户
提问于 2011-12-05 23:07:05
回答 2查看 1.9K关注 0票数 6

[注:这是对先前的问题的重写,它被认为是不适当的和关闭的。]

我需要做一些像素级的电视(电视)视频分析。这一分析的确切性质并不相关,但它基本上涉及到从MPEG-2传输流开始的每一帧电视视频的每个像素。主机平台将是服务器级、多处理器64位Linux机器.

我需要一个库,它可以处理传输流的解码,并向我提供实时的图像数据。OpenCV和ffmpeg是我为这项工作考虑的两个库。OpenCV很吸引人,因为我听说它很容易使用API和丰富的图像分析支持,但我没有使用它的经验。我过去曾使用ffmpeg从文件中提取视频帧数据进行分析,但缺乏图像分析支持(虽然Intel的IPP可以补充)。

除了对这个问题的处理方法(不包括实际图像分析)的一般性建议外,我还有一些更具体的问题可以帮助我开始:

  1. 作为实时视频分析的基础,ffmpeg或OpenCV在工业中是普遍使用的,还是我应该考虑的其他东西?
  2. OpenCV能够对视频帧进行实时解码,同时还能留下足够的剩余时间进行非平凡的图像分析和实时分析吗?
  3. 是否足以使用ffpmeg进行MPEG-2传输流解码,或者直接使用MPEG-2解码库(如果是,哪一个)?
  4. 对于输出帧是否有特定的像素格式,而ffmpeg或OpenCV在制作时特别有效(如RGB、YUV或YUV422等)?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-06 02:49:58

1.

我肯定会推荐OpenCV用于“实时”图像分析。我想你指的是跟上电视帧速率的能力(例如NTSC (29.97 fps)或PAL (25 fps))。当然,正如注释中提到的,这当然取决于您拥有的硬件,以及图像大小SD (480 P)和HD (720 p或1080 p)。FFmpeg当然有它的怪癖,但你很难找到一个更好的免费选择。它的功能和灵活性令人印象深刻;我相信这也是OpenCV开发人员决定使用它作为OpenCV视频解码/编码的后端的原因之一。

2.

在使用OpenCV解码时,我还没有看到高延迟的问题.您的系统有多少延迟?如果需要提高性能,请考虑使用单独的线程进行捕获/解码和图像分析。由于您提到有多处理器系统,这应该更好地利用您的处理能力。我肯定会推荐使用最新的Intel i7(或者可能是与Xeon相当的)体系结构,因为这将给您提供当今最好的性能。

我已经在几个嵌入式系统上使用了OpenCV,所以我非常熟悉您对峰值性能的要求。我已经发现很多次,它是不必要的处理一个完整的帧图像(特别是当试图确定掩码)。我强烈建议,如果您有困难处理您获得的视频流采样图像。这有时可以立即给你4-8X加速(取决于你的低样本因素)。在性能方面,我肯定会推荐使用英特尔的IPP。由于OpenCV最初是一个英特尔项目,IPP和OpenCV很好地融合在一起。

最后,由于图像处理是那些“令人尴尬的并行”问题字段之一,所以请不要忘记,如果需要,可以使用GPU作为硬件加速器来解决您的问题。OpenCV最近在这方面做了很多工作,所以如果需要的话,您应该可以使用这些工具。

3.

我认为FFmpeg是一个很好的起点;我能想到的大多数替代品(手制动器、编码器等)。倾向于使用ffmpeg作为后端,但如果您愿意的话,您可能可以使用IPP的视频编码库。

4.

OpenCV对颜色的内部表示是BGR,除非您使用像cvtColor这样的东西来转换它。如果希望看到FFmpeg支持的像素格式列表,则可以运行

代码语言:javascript
运行
复制
ffmpeg -pix_fmts 

看看它能输入和输出什么。

票数 6
EN

Stack Overflow用户

发布于 2011-12-06 06:40:03

仅就第四个问题而言:

视频流以422格式编码: YUV、YUV422、YCbCr等。将它们转换为BGR并返回(用于重新编码)占用了大量时间。因此,如果您可以编写在YUV上运行的算法,您将立即获得性能提升。

备注1.虽然OpenCV本机支持BGR映像,但您可以让它处理YUV,并对其内部进行一些关注和了解。

例如,如果要检测视频中的某些人,只需取解码视频缓冲区的上半部分(它包含图像的灰度表示)并对其进行处理。

备注2.如果您想要访问opencv中的YUV图像,您必须在应用程序中直接使用ffmpeg API。OpenCV在VideoCapture API中强制将YUV转换为BGR。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8393207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档