摄像头视频采集压缩及传输原理

摄像头基本的功能仍是视频传输,那么它是依靠怎样的原理来实现的呢?所谓视频传输:
  就是将图片一张张传到屏幕,因为传输速度很快,因此可让你们看到连续动态的画面,就像放电影同样。通常当画面的传输数量达到每秒24帧时,画面就有了连续性。
下边咱们将介绍摄像头视频采集压缩及传输的整个过程。
一.摄像头的工做原理(获取视频数据)
摄 像头的工做原理大体为:景物经过镜头(LENS)生成的光学图像投射到图像传感器表面上,而后转为电信号,通过A/D(模数转换)转换后变为数字图像信 号,再送到数字信号处理芯片(DSP)中加工处理,再经过USB接口传输到电脑中处理,经过显示器就能够看到图像了。下图是摄像头工做的流程图:
算法

 
注1:图像传感器(SENSOR)是一种半导体芯片,其表面包含有几十万到几百万的光电二极管。光电二极管受到光照射时,就会产生电荷。
注2:数字信号处理芯片DSP(DIGITAL SIGNAL PROCESSING)功能:主要是经过一系列复杂的数学算法运算,对数字图像信号参数进行优化处理,并把处理后的信号经过USB等接口传到PC等设备。
DSP结构框架:
1. ISP(image signal processor)(镜像信号处理器)
2. JPEG encoder(JPEG图像解码器)
3. USB device controller(USB设备控制器)
而视频要求将获取的视频图像经过互联网传送到异地的电脑上显示出来这其中就涉及到对于得到的视频图像的传输。
在 进行这种图片的传输时,必须将图片进行压缩,通常压缩方式有如H.26一、JPEG、MPEG等,不然传输所需的带宽会变得很大。你们用 RealPlayer不知是否留意,当播放电影的时候,在播放器的下方会有一个传输速度250kbps、400kbps、1000kbps…画面的质量越 高,这个速度也就越大。而摄像头进行视频传输也是这个原理,若是将摄像头的分辨率调到640×480,捕捉到的图片每张 大小约为50kb左右,每秒30帧,那么摄像头传输视频所需的速度为50×30/s=1500kbps=1.5Mbps。而在实际生活中,人们通常用于网 络视频聊天时的分辨率为320×240甚至更低,传输的帧数为每秒24帧。换言之,此时视频传输速率将不到300kbps,人们就能够进行较为流畅的视频 传输聊天。若是采用更高的压缩视频方式,如MPEG-1等等,能够将传输速率下降到200kbps不到。这个就是通常视频聊天时,摄像头所需的网络传输速 度。
二.视频压缩部分
视频的压缩是视频处理的核心,按照是否实时性能够分为非实时压缩和实时压缩。而视频传输(如QQ视频即时聊天)属于要求视频压缩为实时压缩。
下面对于视频为何能压缩进行说明。
视频压缩是有损压缩,通常说来,视频压缩的压缩率都很高,可以作到这么
高 的压缩率是由于视频图像有着很是大的时间和空间的冗余度。所谓的时间冗余度指的是两帧相邻的图像他们相同位置的像素值比较相似,具备很大的相关性,尤为是 静止图像,甚至两帧图像彻底相同,对运动图像,经过某种运算(运动估计),应该说他们也具备很高的相关性;而空间相关性指的是同一帧图像,相邻的两个像素 也具有必定的相关性。这些相关性是视频压缩算法的初始假设,换句话说,若是不知足这两个条件(全白噪声图像,场景频繁切换图像等),视频压缩的效果是会很 差的。
去除时间相关性的关键算法是运动估计,它找出当前图像宏块在上一帧图像中最匹配的位置,不少时候,咱们只须要把这个相对坐标记录下来,就够 了,这样就节省了大量码字,提升了压缩率。视频压缩算法中,运动估计永远是最关键最核心的部分。去除空间相关性是经过DCT变换来实现的,把时域上的数据 映射到频域上,而后对DCT系数进行量化处理,基本上,全部的有损压缩,都会有量化,它提升压缩率最明显。
图像的原始文件是比较大的,必须通过图 像压缩才可以进行快速的传输以及顺畅的播放。而压缩比正是来衡量影像压缩大小的参数。通常来讲,摄像头的压缩比率大都是5:1。也就是说,若是在未压缩之 前30秒的图像的容量是30MB,那么按照摄像头5:1的压缩比率来对图像进行压缩之后,它的大小就变成了6MB了。
主要的视频压缩算法包括:M-JPEG、Mpeg、H.26四、Wavelet(小波压缩)、JPEG 2000、AVS。
基本上视频压缩的核心就这些。
三.视频传输部分
为了保证数字视频网络传输的实时性和图像的质量,传输层协议的选择是整个设计和实现的关键。Internet在IP层上使用两种传输协议:一种是TCP(传输控制协议),它是面向链接的网络协议;另外一种是UDP(用户数据报协议),它是无链接的网络协议。
TCP传输:TCP(传输控制协议)是一种面向链接的网络传输协议。支持多数据流操做,提供流控和错误控制,乃至对乱序到达报文的从新排序,所以,TCP传输提供了可靠的数据传输服务。
使用TCP传输的通常的过程:
客户机向服务器发出链接的请求后,服务器接收到后,向客户机发出链接确认,实现链接后,双方进行数据传输。
UDP 传输: UDP(用户数据报协议)是一种无链接的网络传输协议。提供一种基本的低延时的称谓数据报的传输服务。不须要像TCP传输同样需预先创建一条链接。UDP 无计时机制、流控或拥塞管理机制。丢失的数据不会重传。所以提供一种不可靠的的应用数据传输服务。但在一个良好的网络环境下如 局域网内,使用UDP传输数据仍是比较可靠,且效率很高。
IP组播技术:组播技术是一种容许一个或多个发送者发送单一或多个发送者的数据包到多个 接收者的网络技术。组播源把数据报发送到特定的组播组,而只有加入到该组播组的主机才能接收到这些数据包。组播可大大节省网络宽带,由于不管有多少个目标 地址,在整个网络的任何一条链路上只船送单一的数据包。
1.TCP/IP协议和实时传输
TCP/IP协议最初是为提供非实时数据业务而设 计的。IP协议负责主机之间的数据传输,不进行检错和纠错。所以,常常发生数据丢失或失序现象。为保证数据的可靠传输,人们将TCP协议用于IP数据的传 输,以提升接收端的检错和纠错能力。当检测到数据包丢失或错误时,就会要求发送端从新发送,这样一来就不可避免地引发了传输延时和耗用网络的带宽。所以传 统的TCP/IP协议传输实时音频、视频数据的能力较差。固然在传输用于回放的视频和音频数据时,TCP协议也是一种选择。若是有足够大的缓冲区、充足的 网络带宽,在TCP协议上,接近实时的视音频传输也是可能的。然而,若是在丢包率较高、网络情况很差的状况下,利用TCP协议进行视频或音频通讯几乎是不 可能的。
  TCP和其它可靠的传输层协议如XTP不适合实时视音频传输的缘由主要有如下几个方面:
  1 .TCP的重传机制
  咱们知道,在TCP/IP协议中,当发送方发现数据丢失时,它将要求重传丢失的数据包。然而这将须要一个甚至更多的周期(根据TCP/IP的快速重传机 制,这将须要三个额外的帧延迟),这种重传对于实时性要求较高的视音频数据通讯来讲几乎是灾难性的,由于接收方不得不等待重传数据的到来,从而形成了延迟 和断点(音频的不连续或视频的凝固等等)。
  2 .TCP的拥塞控制机制
  TCP的拥塞控制机制在探测到有数据包丢失时,它就会减少它的拥塞窗口。而另外一方面,音频、视频在特定的编码方式下,产生的编码数量(即码率)是不可能忽然改变的。正确的拥塞控制应该是变换音频、视频信息的编码方式,调节视频信息的帧频或图像幅面的大小等等。
  3 .TCP报文头的大小
  TCP不适合于实时视音频传输的另外一个缺陷是,它的报文头比UDP的报文头大。TCP的报文头为40个字节,而UDP的报文头仅为12个字节。而且,这些 可靠的传输层协议不能提供时间戳(Time Stamp)和编解码信息(Encoding Information),而这些信息偏偏是接收方(即客户端)的应用程序所须要的。所以TCP是不适合于视音频信息的实时传输的。
  4 .启动速度慢
  即使是在网络运行状态良好、没有丢包的状况下,因为TCP的启动须要创建链接,于是在初始化的过程当中,须要较长的时间,而在一个实时视音频传输应用中,尽可能少的延迟正是咱们所指望的。
  因而可知,TCP协议是不适合用来传输实时视音频数据的,为了实现视音频数据的实时传输,咱们须要寻求其它的途径。
2.RTP协议适合实时视音频传输
  RTP(Real-Time Transport Protocol)/RTCP(Real-Time Transport Control Protocol)是一种应用型的传输层协议,它并不提供任何传输可靠性的保证和流量的拥塞控制机制。它是由IETF(Internet Engineering Task Force)为视音频的实时传输而设计的传输协议。RTP协议位于UDP协议之上,在功能上独立于下面的传输层(UDP)和网络层,但不能单独做为一个层 次存在,一般是利用低层的UDP协议对实时视音频数据进行组播(Multicast)或单播(Unicast),从而实现多点或单点视音频数据的传输。
  UDP是一种无链接的数据报投递服务,虽然没有TCP那么可靠,而且没法保证明时视音频传输业务的服务质量(QoS),须要RTCP实时监控数据传输和服 务质量,可是,因为UDP的传输延时低于TCP,能与音频和视频流很好地匹配。所以,在实际应用中,RTP/RTCP/UDP用于音视频媒体,而TCP用 于数据和控制信令的传输。 
总结:若是接收端和发送端处于同一个局域网内,因为有充分的带宽保证,在知足视频传输的实时性方面,TCP也能够有 比较好的表现,TCP和基于UDP的RTP的视频传输性能相差不大。因为在局域网内带宽不是主要矛盾,此时视频数据传输所表现出来的延时主要体现为处理延 时,它是由处理机的处理能力以及采用的处理机制所决定的 。可是当在广域网中进行视频数据传输时,此时的传输性能极大地取决于可用的带宽,因为TCP是面向链接的传输层协议,它的重传机制和拥塞控制机制,将使网 络情况进一步恶化,从而带来灾难性的延时。同时,在这种网络环境下,经过TCP传输的视频数据,在接收端重建、回放时,断点很是明显,体现为明显的断断续 续,传输的实时性和传输质量都没法保障。相对而言,采用RTP传输的视频数据的实时性和传输质量就要好得多。
四.视频图像的异地显示
当压 缩过的视频经过互联网传输到异地的时候,对于互联网传输过来的视频信息,首先是要进行解码,而后才是显示。解码的芯片有必定的性能要求,比编码器低些,但 是毕竟是视频数据处理,通用的芯片(不支持MMX等多媒体指令)可能会比较吃力。显示设备主要有电视、监视器和显示器,他们的信号接口是不同的,电视监 视器是模拟的电信号,显示器的输入应该是数字信号。
以上是摄像头如何获取图像数据及获取的数据存放在什么地方,如何压缩和传输及如何在异地释放和播放出来的整个过程
服务器

相关文章
相关标签/搜索