浅谈视频采集卡的兼容性

现在市面上的很多压缩卡,无论硬压卡还是软压卡,都存在若干兼容性问题,例如有的不支持AMD的CPU,有的不支持威盛芯片组的主板,有的不支持SIS的集成显卡,有的不支持某些PCI-E的显卡等等,等等。最离谱的是有的视频采集卡要求必须用ATI的显卡、INTEL的CPU、8系列的主板等。那么到底是什么原因造成了上述各种各样的兼容性问题?又如何解决?下面我根据自己的认识谈谈兼容性产生的原因及解决办法。
首先从CPU说起,其实无论AMD还是INTEL的主流CPU,都采用的是x86架构,使用的是x86的指令集系统,所以,如果软件采用标准x86指令集的话是不存在兼容性的,就像大多数软件一样,在什么样的CPU上都能运行。但作为压缩卡,尤其是软压卡,为了加快视频编解码速度往往都需要采用扩展的多媒体指令集,于是问题就产生了,因为AMD有它的3D Now!等多媒体指令集,INTEL有它的MMX/SSE/SSE2/SSE3/SSE4等指令集。这样,一旦程序只针对某种多媒体指令集开发的话,就会产生兼容性问题,也就是在有的CPU能运行在有的CPU不能运行的问题。解决办法就是动态判断CPU类型,然后分别针对不同的CPU编写不同的代码,当然这样做会导致开发量增加。幸运的是,对于AMD的CPU,其不仅支持自己的3D Now!多媒体指令集还支持INTEL的MMX和SSE(关于AMD的CPU 为什么会支持INTEL的MMX/SSE大家可以查阅相关资料),所以,如果开发人员仅仅使用MMX多媒体指令集的话即使不动态判断CPU类型也不会有问题(当然,586以下的CPU 会有问题,只是现在应该没有586的CPU在跑视频采集卡了吧)。总而言之,CPU的兼容性是容易解决的,事实上,由于硬压卡是在卡子
父亲的脊梁
本身的DSP中进行压缩,更不应该存在CPU 的兼容性问题,如果硬压卡也挑AMD的CPU,那多半是其它原因造成的,例如是因为没有处理好同AMD的CPU配套的主板芯片组而产生问题,从而间接地被用户认为是CPU的问题。
其次说一下显卡,其实绝大多数兼容性问题都是显卡造成的。我们知道,视频采集卡采集的视频数据是非常大的,为了能够及时快速地预览这些数据,必须采用DirectDraw技术进行预览(DirectDraw是微软DirectX的一部分,关于DirectDraw的更多知识我这里就不说了,总之,有了DirectDraw,应用程序就不必关心具体的硬件上的细节,而只管按照DirectDraw的接口进行调用即可,DirectDraw会负责与具体的硬件打交道,如果硬件不支持,DirectDraw也会通过软件来模拟硬件功能)。那么显卡兼容性是怎么产生的呢?原因就是所有的显卡都有显卡驱动,不同的显卡驱动实现的细节不尽相同,它们对DirectDraw的支持也不尽相同,如果开发人员对DirectDraw的理解不够透彻,就会写出兼容性不好的代码。例如有的显卡驱动不支持YUY2预览而如果开发人员只提供了YUY2预览功能则这个视频采集卡就不兼容所有不支持YUY2预览的显卡驱动。注意,我这里之所以说是显卡驱动而不是显卡,是因为显卡驱动和显卡是两回事,就像视频采集卡和视频采集卡驱动一样,同样采用SAA7130HL或者TW6802芯片的视频采集卡,驱动不一样,效果就不一样。所以,有时候,当某个视频采集卡不能正确预览图像的时候更换一下显卡驱动就好了,并不一定需要更换显卡,也或者,更换一下视频采集卡的驱动也好了,更或者,更换一下别的品牌的视频采集卡和驱动也好了。总之,对于用户来说其实解
决办法多种多样。不过,话说回来,这些其实都不是解决办法,因为用户是多种多样的,很多用户甚至根本搞不清楚什么是显卡驱动,又如何让她去解决这些兼容性问题?所以,根本的解决之道还是视频采集卡的开发人员,从开发环节就彻底解决这些问题,不要在用户那里出现兼容性问题,这才是正道。根据我这些年的开发经验和实际实践过程来看,其实只要认真编写驱动程序和DirectDraw,基本还是可以解决显卡兼容性问题的,不管是SIS或者INTEL的集成显卡还是NVIDIA或者ATI芯片的独立显卡。根据我的实际测试,只要处理好针对YUY2/YV12/RGB565/RGB555这四种格式的预览基本没有显示不出来图像的,如果上述四种还是不行,最后还可以采用RGB32或者RGB24这两种,这6种加起来是不可能有不兼容的了,因为还不兼容,那除非是这个显
卡只能显示到256。这种显卡现在还有吗?
氢原子光谱最后再说一下主板,不同的主板往往采用不同的主板芯片组,而主板本身除了芯片组外由于布线、做工、用料等的不同也有不同的差异,这就是主板兼容性的原因所在。所以说大厂的主板稳定性和兼容性要好一些的原因也在这里。不过,主板兼容性的根本原因还是主板芯片组,因为主板芯片组如同显卡芯片或者视频采集卡的采集芯片一样,型号不同性能不同。所以,当某种主板芯片组和视频采集卡不兼容时采用相同型号芯片组的不同主板往往都会和这款视频采集卡存在兼容性问题。基本上,视频采集卡和主板芯片组之间很少有完全不兼容的,之所以很多视频采集卡不兼容采用威盛的芯片组的主板,还是因为驱动或者接口程序没有写好,只考虑了一般情况而没有考虑特例。
总而言之,不断地提高兼容性是作为一个视频采集卡厂家开发人员永远需要面对的问题,不能任何借口来要求用户更换其它硬件来兼容自己的视频采集卡,只能不断完善自己的视频采集卡,让自己的视频采集卡去兼容其它硬件。作为安防监控行业的从业者,我看到太多的厂家都习以为常地以为视频采集卡不兼容其它硬件不是自己的错,是别人的硬件设计的不好,甚至觉得理所当然,其实这种态度是非常不可取的,是不严谨的。
写上述这篇文章,一方面是总结一下我的实际开发经验,一方面也是告诫自己,千万不可以固步自封,要不断超越现有技术,做出更好的产品。为什么这么说呢,是因为前几天旷视安公司要求我们的软压卡软件最大必须支持到24路以上,因为市面上已经有很多支持24路甚至32路的软压卡的软件了。而在此之前我们的软压卡最多支持到16路,之所以设定到16路是因为当时计算认为当前的普通PC上的32位的33MHZ的PCI总线理论上最大能传输26路CIF画面的全实时视频,再扣除控制信号、地址信号以及其它占用包括DMA申请等我觉得实际上最大也就能传输到16路,而按照这个思路实际测试也证明确实不能超过16路,超过的话就会产生总线资源紧张导致画面拉丝或跳动。所以我们一直设定了16路的上限并认为理所当然,还认为别人之所以实现了更高路数是通过降低画面大小或者抽帧解决的,是不可取的。但是,市场是不管你的实现细节的,对于客户他注意的是人家实现了24路而你的没有,客户就会觉得是不是你的产品和技术不行,也就会对公司产生不信任(尤其是像我们公司这种地处山东济南,地理位置上客户就觉得不如北京或者深圳的公司,呵呵,经常发生客户拿着我们的产品再去
vb数据库编程实例1995年高考语文第一题深圳所谓的真正的视频采集厂家的现象)。为此,我前几天又认真分析了一段时间,以求突破16路这个上限。我首先分析了硬压卡,他们为什么可以实现32路甚至48路?
汉字到底有多形象
分析的结果就是,第一,对于需要保存或网传的数据都是经过压缩的,数据量很小,第二他们的预览数据是经过卡子上的DSP重新组合的,也就是说不管多少路最大传输尺寸不超过屏幕尺寸对应的数据量。所以硬压卡可以突破PCI总线带宽的限制并可以轻松实现更高路数。但软压卡没有DSP,如何重组画面,如何减少预览数据量?经过一晚上的冥思苦想,我终于到了解决办法,当然这个解决办法是建立在Techwell公司的TW6802芯片的RISC指令代码之上的。RISC指令就是指简单指令集系统,是相对于INTEL或者AMD等的CPU所采用的复杂指令集系统而言的,但RISC指令虽然简单,却对我来说非常有用,从而可以让我写出非常灵活的数据采集代码,实现了硬压卡的DSP所实现的减少预览画面数据量的功能。从而为实现24路甚至更高路数打好了基础。所以我要说,技术是需要不断超越的,千万不可以形成思维定势,固步自封。
本文由视频采集卡厂家旷视安www.360ccd编辑整理,转载请保留链接!
昂达vx530

本文发布于:2024-09-22 13:22:23,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/145879.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:视频   显卡   预览
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议