取消
  • 技术文章
  • 视频编码器的软件功能组成

    视频编码器的软件功能组成

    视频编码器的软件功能主要包括视频的编码压缩、与客户端的连接、发送视频流给客户端、接收客户端发送来的配置及控制命令、接收前端传感器的信号状态改变并更新服务器、对登录连接的用户进行认证、提供Web服务等。

    编码器软件
    声明:部分内容及图片来源于网络,如有侵权请联系删除。

    视频编码器的软件一般包括如下几个部分:操作系统、Web服务、CGI应用、编码压缩程序、网络传输协议、视频存储管理等。

    目前多数视频编码器的软件系统采用嵌入式Linux作为操作系统平台,在Linux系统中,软件采用分层的体系结构,软件系统构建在硬件系统之上,硬件系统在固件(Firmware]的支持下工作,系统的应用程序工作在用户模式,而设备驱动程序则工作在内核模式。

    1.嵌入式系统(Linux)

    嵌入式视频编码器是一种集软、 硬件于一体的设备,主要包括处理器、嵌入式操作系统及相华应用软件。嵌入式操作系统是实时的、支持嵌入式系统应用的系统平台,是嵌入式设备中查要的软件部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动及通讯协议等,具体特点如下:

    A、指令精简,处理速度快。
    B、调用速度快,系统数据多置于Flash缓存内。
    C、性能稳定,嵌入式系统是一种集软硬件于一体的可独立工作的设备。
    D、适合于大量的视频数据应用。
    E、实时性好,其软件固态化,因而系统处理实时性好。

    通常,在视频编码器系统中,Linux负责整个系统软件的总体调度,Linux 系统通常包括如下儿个部分: Linux 内核[Kernel)、文件系统(Filesystem)、设备驱动和TCP/IP网络协议栈等。

    嵌入式系统需要通过各种硬件驱动程序来完成对各个外设的操作,在嵌入式软件系统设计中,硬件设备驱动开发是一个重要的部分。 由于嵌入式系统设计是针对特定场合和应用设计的,还须开发相应的网卡驱动、USB 驱动和对应的1/0控制瑞口驱动程序,这些驱动模块和Linux中其他模块共同构成了嵌入式系统的软件运行平台。

    2.应用软件

    嵌入式视频编码器系统除了有相关的硬件平台和软件平台外,还需要运行在平台上面的各种应用程序,主要实现的功能包括Web服务、客户连接认证、视频流的发送、控制流的接收与余令执行、报警状态检测与响应、视频内容分析、PTZ操作等。

    Web服务:支持IE客户访问。
    客户认证:对请求连接的客户进行认证,并反馈参数。
    数据发送:将视频流发送给客户端并动态更新。
    PTZ操作:接受PTZ指令并发送给串口,完成对云台、镜头等设备的控制。
    报警:对外部报警信号接收及做出相关动作响应。
    VCA:视频内容分析功能。

    3.编码压缩

    编码压缩工作主要完成对采集、数字化的视频图像的编码压缩。对采集到的图像数据进行压缩可以有两种方案,一种是用硬件来压缩, 另一种压缩方法就是用软件来实现。

    MPEG-4压缩方式是目前种主流的编码方法。而H.264是更先进的方法,与其他压缩编码方式比较,利用H.264标准可以获得更高的压缩比及更好的图像质量。

    4.网络传输

    目前网络上数据的传输主要采用TCP和UDP协议。TCP协议能提供有序、可靠的服务,但是一旦数据丢失会带来严重的延迟,无法保证实时性; UDP 是节约资源的传输层协议,其操作执行比TCP快得多,它适合于不断出现的、与时间相关的应用。由于音、视频数据对实时性要求比较高,而控制数据则对可靠性要求较高,因此,通常系统采用两种通信协议: TCP/IP协议传输通信控制数据,UDP/IP 协议传输视频数据。

    由于UDP的不可靠性,基于UDP的应用程序在不可靠网络使用时必须自己解决可靠性问题,诸如报文丢失、重复、失序和流量控制等问题。在实现连续媒体数据传输时,发送方和接受方应该能处理图像传输中发生的数据丢失、延迟等一些问题。 因此,在UDP协议之上,采用RTP(实时传输协议)和RTCP[实时传输控制协议)来完成视频数据的传输。

    5.客户端应用

    此处的客户端软件是指编码器厂商提供的简易客户应用程序,可以实现一些基本功能,对于大型系统及项目,一般另外有中央管理软件及NVR平台,并利用专用的客户端程序实现强大的功能。客户端主要完成视频数据的接收、解码和显示工作,同时还可以设置编码器的参数。从功能角度,客户端的软件体系结构可划分为3个模块:设备控制模块、网络的接收与反馈模块、显示模块。



    返回