论文部分内容阅读
引言:在Internet飞速发展和广泛普及的今天,信息传输从两方面加强力度:一是多媒体化;二是实时化。在此基础上,高保真准动态图像采集、压缩和远程传输技术成为许多先进国家计算机领域的重要研究课题。本文主要阐述其主要技术及其优化策略。
1.系统总体结构
在物理上,本系统分为发送站点和接收站点两部分。在逻辑上,本系统分为图像采集、压缩和传输子系统、性能控制子系统。整个系统包含六个独立的功能模块。
2.系统的关键技术和优化策略
2.1 视频采集技术分析和选择
为了实时视频采集,需要安装相应的视频采集设备。即视频采集卡和摄像头等。并需要安装相应的驱动软件来支持这些设备的运行。
Windows2000操作系统提供了VFW(Video for Windows SDK)。VFW包含了大量与视频采集有关的编程接口。这些编程接口通过操作系统提供的VFW-to-WDM Voide Capture Mapper调用设备驱动程序中的相关例程,为系统的图像采集提供了底层接口编程基础。
VFW提供了两种视频采集模式:Preview(简称P模式)和Overlay(简称O模式)。本系统设计中采用了Overlay模式。·O模式稳定性较好,但也要求电源性能较好,采用Overlay模式进行视频采集,这一选择对稳定性起到了较好的优化作用。实际运行过程表明,上述分析是正确的。
2.2 视频压缩、解压缩技术的优先和优化
针对视频应用中可能遇到的各种情况,本系统的压缩、解压缩模块设计采用三种压缩方案,使用时可以从中选择一种,以适应不同环境和不同需求。
通过分析和测试表明,格式转换、对关键帧和非关键帧离散余弦变换DCT、对非关键帧的帧间压缩是最重要最耗时的环节。为此,在设计中对这些环节进行了优化。
具体讲,在格式转换、DCT变换中,一是在采集到的RGB色彩空间图像到压缩算法视频输入格式CIF变换中,用整型算法和移位相结合的优化转换函数代替速度较慢的浮点运算;二是在关键帧和非关键帧的DCT变换中,采用零系数预测策略对DCT变换的输入数据分类,节省了大量无效运算;三是采用多媒体处理指令集MMX实现DCT变换,大幅度提高了运算速度。
笔者在对H.263源程序分析的基础上进行了优化,采用混合压缩编码方案。此方案将上述两种方式结合起来,从而使系统有效地适用于Internet传输。因为远程站点之间通过Internet进行传输时,信道的数据传输率不是固定的。所以,系统中通过信道测试反馈信息改变量化时的步长,从而调节视频信息的数码率,以便更好地适应信道传输率的变化。
优化方案的思想是:通过传输模块反馈回来的信息,得知当前网络的传输速率,以此来调整压缩算法的各个参数,即压缩质量、每秒帧数等,获得当前最好的帧率和质量。
具体从两方面实施:一是对帧内压缩方法进行优化;二是对帧间压缩方法进行优化。
对帧内压缩方法的优化主要通过改变压缩质量的参数来调节图像质量和压缩比。
对帧间压缩方法的改进是通过改变频率、关键帧间的距离调节传输速率。改变每秒采集和传输图像的数目,以改变传输数据的大小。帧间压缩要用到运动补偿,其关键在于两帧之间的差别大小。如果图像只有微小的变化,那么经过作差后压缩效果较好;如果图像变化很大,那么经过作差后压缩效果较差。为充分利用运行压缩的特点,根据图像变化的大小来调节关键帧间的距离。在图像变化不大的情况下,非关键帧数据较少,此时拉长关键帧间的距离既可以低传输率,又不影响图像的质量;在图像变化较大的情况下,非关键帧数据较多,此时缩短关键帧间的距离,以增加运动补偿的效果。
2.3 用UDP和RTP实现图像传输并实时优化
采用建立在UDP基础上的实时传输协议RTP。
用UDP协议进行数据传输的优点是不需要建立连接,传输速度快。缺点是容易丢失数据包,而且数据包的顺序容易混乱。
RTP是基于UDP的网络传输协议,编程时通过时间标签(Time-temping)机制、信息序列编号(Sequence Numbering)机制和有效数据类型标识(Payload Type Identifier)机制的联合使用,在允许的延迟范围中保证数据的实时传输质量,对于少量信息包的丢失,则采用补偿方法解决。时间标签用来标明实时数据块生成时间,接收方可据此正确排列数据接收顺序,并保证实时数据传输同步,一帧图像数据组成的RTP信息包有相同的时间标签。序列编号通过配合时间标签设置,同一帧图像的RTP信息包有相同的时间标签,但有不同的序列编号。有效数据类型标识用来定义各种数据压缩方法,并可通过手动或自动方式动态调整,在信息拥挤时可提高压缩比。
对实时可靠性进行了优化,具体策略:建立一条以UDP作为传输协议的数据通路,在传输时把压缩过的视频流打包;另建一条以TCP为传输协议的控制通路,其作用是反馈一些控制命令给发送方,从而最小限度地防止传输中的错误。
2.4 视频传输中的自适应技术
自适应机制由检测模块、反馈模块和决策模块组成。发送端将视频图像压缩后,打成RTP数据包,然后用RTP协议发送。发送站点的自适应检测模块检测并记录有关的发送信息,包括传输率、字节数等。接收站点通过自适应反馈模块检测有关的信息,并将其发送到接收站点的检测模块。后者将发送和接收时的信息相比较,再将比较结果传送到自适应决策模块。为了尽可能节省信息量,接收端自适应反馈模块向发送端检测模块只发送一个信息包序列号。这样后者可计算出信息包的传输时间,并在多次检测基础上得到带宽平均评估值。发送端再根据评估值改变视频采集频率和压缩比,调整视频数据量,从而实现自适应功能。
2.5 发送和接收的同步技术
本系统采用Client/Server结构。在这种结构中,只有Client端才能连接请求建立连接,而且一个Client端可与多个Server建立连接。因此,将接收站点作为Client,发送站点作为Server。当接收站点需要得到远端的视频图像时,便发出连接请求。这种方式适用于系统视频采集站点处于恶劣环境中无人看管的情况。
Server端采集视频数据并进行压缩后,发送给Client,Client将数据解压缩后显示视频图像。系统设计中,为了适应不同的网络环境和图像要求,对视频质量配置了双向调节功能。即一方面,视频采集站点可直接调节图像质量,另一方面接收站点也可以调节采集站点的图像采集和压缩参数,从而是调节图像质量。
对图像质量的双向调节功能基于如下设计:
将Client端控制面板中的参数(采样间隔、关键帧数、关键帧质量、非关键帧质量)传递给Server端,再由Server端依据这些参数进行视频采集和压缩;
Client端和Server端在设置上保持一致,即无论哪一方改变设置,都会使对方的控制面板保持一致。具体实现时,设计了一个用8字节表示的comp_config_packet结构;当在Server端或Client端拖动控制面板上的滚动条时,将改变后的各项数据填充到comp_config_packet结构中,并将此结构发送到Client端或Server端;当Client端或Server端接收到该数据结构后,立即据此改变对应控制面板中的各项数据,并在控制面板上作相应显示。
(作者单位:河北广电网络集团邯郸有限公司)
1.系统总体结构
在物理上,本系统分为发送站点和接收站点两部分。在逻辑上,本系统分为图像采集、压缩和传输子系统、性能控制子系统。整个系统包含六个独立的功能模块。
2.系统的关键技术和优化策略
2.1 视频采集技术分析和选择
为了实时视频采集,需要安装相应的视频采集设备。即视频采集卡和摄像头等。并需要安装相应的驱动软件来支持这些设备的运行。
Windows2000操作系统提供了VFW(Video for Windows SDK)。VFW包含了大量与视频采集有关的编程接口。这些编程接口通过操作系统提供的VFW-to-WDM Voide Capture Mapper调用设备驱动程序中的相关例程,为系统的图像采集提供了底层接口编程基础。
VFW提供了两种视频采集模式:Preview(简称P模式)和Overlay(简称O模式)。本系统设计中采用了Overlay模式。·O模式稳定性较好,但也要求电源性能较好,采用Overlay模式进行视频采集,这一选择对稳定性起到了较好的优化作用。实际运行过程表明,上述分析是正确的。
2.2 视频压缩、解压缩技术的优先和优化
针对视频应用中可能遇到的各种情况,本系统的压缩、解压缩模块设计采用三种压缩方案,使用时可以从中选择一种,以适应不同环境和不同需求。
通过分析和测试表明,格式转换、对关键帧和非关键帧离散余弦变换DCT、对非关键帧的帧间压缩是最重要最耗时的环节。为此,在设计中对这些环节进行了优化。
具体讲,在格式转换、DCT变换中,一是在采集到的RGB色彩空间图像到压缩算法视频输入格式CIF变换中,用整型算法和移位相结合的优化转换函数代替速度较慢的浮点运算;二是在关键帧和非关键帧的DCT变换中,采用零系数预测策略对DCT变换的输入数据分类,节省了大量无效运算;三是采用多媒体处理指令集MMX实现DCT变换,大幅度提高了运算速度。
笔者在对H.263源程序分析的基础上进行了优化,采用混合压缩编码方案。此方案将上述两种方式结合起来,从而使系统有效地适用于Internet传输。因为远程站点之间通过Internet进行传输时,信道的数据传输率不是固定的。所以,系统中通过信道测试反馈信息改变量化时的步长,从而调节视频信息的数码率,以便更好地适应信道传输率的变化。
优化方案的思想是:通过传输模块反馈回来的信息,得知当前网络的传输速率,以此来调整压缩算法的各个参数,即压缩质量、每秒帧数等,获得当前最好的帧率和质量。
具体从两方面实施:一是对帧内压缩方法进行优化;二是对帧间压缩方法进行优化。
对帧内压缩方法的优化主要通过改变压缩质量的参数来调节图像质量和压缩比。
对帧间压缩方法的改进是通过改变频率、关键帧间的距离调节传输速率。改变每秒采集和传输图像的数目,以改变传输数据的大小。帧间压缩要用到运动补偿,其关键在于两帧之间的差别大小。如果图像只有微小的变化,那么经过作差后压缩效果较好;如果图像变化很大,那么经过作差后压缩效果较差。为充分利用运行压缩的特点,根据图像变化的大小来调节关键帧间的距离。在图像变化不大的情况下,非关键帧数据较少,此时拉长关键帧间的距离既可以低传输率,又不影响图像的质量;在图像变化较大的情况下,非关键帧数据较多,此时缩短关键帧间的距离,以增加运动补偿的效果。
2.3 用UDP和RTP实现图像传输并实时优化
采用建立在UDP基础上的实时传输协议RTP。
用UDP协议进行数据传输的优点是不需要建立连接,传输速度快。缺点是容易丢失数据包,而且数据包的顺序容易混乱。
RTP是基于UDP的网络传输协议,编程时通过时间标签(Time-temping)机制、信息序列编号(Sequence Numbering)机制和有效数据类型标识(Payload Type Identifier)机制的联合使用,在允许的延迟范围中保证数据的实时传输质量,对于少量信息包的丢失,则采用补偿方法解决。时间标签用来标明实时数据块生成时间,接收方可据此正确排列数据接收顺序,并保证实时数据传输同步,一帧图像数据组成的RTP信息包有相同的时间标签。序列编号通过配合时间标签设置,同一帧图像的RTP信息包有相同的时间标签,但有不同的序列编号。有效数据类型标识用来定义各种数据压缩方法,并可通过手动或自动方式动态调整,在信息拥挤时可提高压缩比。
对实时可靠性进行了优化,具体策略:建立一条以UDP作为传输协议的数据通路,在传输时把压缩过的视频流打包;另建一条以TCP为传输协议的控制通路,其作用是反馈一些控制命令给发送方,从而最小限度地防止传输中的错误。
2.4 视频传输中的自适应技术
自适应机制由检测模块、反馈模块和决策模块组成。发送端将视频图像压缩后,打成RTP数据包,然后用RTP协议发送。发送站点的自适应检测模块检测并记录有关的发送信息,包括传输率、字节数等。接收站点通过自适应反馈模块检测有关的信息,并将其发送到接收站点的检测模块。后者将发送和接收时的信息相比较,再将比较结果传送到自适应决策模块。为了尽可能节省信息量,接收端自适应反馈模块向发送端检测模块只发送一个信息包序列号。这样后者可计算出信息包的传输时间,并在多次检测基础上得到带宽平均评估值。发送端再根据评估值改变视频采集频率和压缩比,调整视频数据量,从而实现自适应功能。
2.5 发送和接收的同步技术
本系统采用Client/Server结构。在这种结构中,只有Client端才能连接请求建立连接,而且一个Client端可与多个Server建立连接。因此,将接收站点作为Client,发送站点作为Server。当接收站点需要得到远端的视频图像时,便发出连接请求。这种方式适用于系统视频采集站点处于恶劣环境中无人看管的情况。
Server端采集视频数据并进行压缩后,发送给Client,Client将数据解压缩后显示视频图像。系统设计中,为了适应不同的网络环境和图像要求,对视频质量配置了双向调节功能。即一方面,视频采集站点可直接调节图像质量,另一方面接收站点也可以调节采集站点的图像采集和压缩参数,从而是调节图像质量。
对图像质量的双向调节功能基于如下设计:
将Client端控制面板中的参数(采样间隔、关键帧数、关键帧质量、非关键帧质量)传递给Server端,再由Server端依据这些参数进行视频采集和压缩;
Client端和Server端在设置上保持一致,即无论哪一方改变设置,都会使对方的控制面板保持一致。具体实现时,设计了一个用8字节表示的comp_config_packet结构;当在Server端或Client端拖动控制面板上的滚动条时,将改变后的各项数据填充到comp_config_packet结构中,并将此结构发送到Client端或Server端;当Client端或Server端接收到该数据结构后,立即据此改变对应控制面板中的各项数据,并在控制面板上作相应显示。
(作者单位:河北广电网络集团邯郸有限公司)