微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 基于IPv6 的高清视频系统实现与性能分析

基于IPv6 的高清视频系统实现与性能分析

时间:11-05 来源:电子设计信息网 点击:

摘要: 数字视频是互联网的典型应用之一,HDV(高清数字视频) 的高品质在下一代网络应用中具有重要示范意义。 HDV 本身数据流量大,在网络传输中的性能和对网络的影响与普通视频应用不同。 设计和实现了一种基于IPv6 的HDV网络视频系统,在国内和国际IPv6 网络上进行了试运行。 同时设计了HDV系统的性能监测子系统,对高清视频系统与网络性能的相互关系进行了测量和分析。 结果表明:高清视频的质量对网络状况有依赖性,但在网络带宽接近饱和状态下视频质量的波动对网络背景变化并不敏感;高清视频应用的丢包率与网络层丢包率的统计曲线模态正相关,但相关系数仅在0. 83 左右。

关键词: 高清视频; 网络应用; 性能分析; IPv6

引 言

数字视频传输是下一代互联网的典型应用[1 ] 。当前互联网上的视频应用向高品质、高实时性方向发展。 高清晰度视频HDV (high definition video) 因其高的分辨率和图像质量成为网络视频应用发展的一种趋势。 HDV 网络视频的应用主要有两大类:一类基于MPEG2 或H.264 压缩方式[2 、3 ] ;一类是非压缩方式。 前者的特点是数据占用带宽相对较小,但是延迟较大;后者实时性好,但是所需网络带宽较大(几百Mbp s 到1. 5 Gbp s 不等) 。 在适用范围上,非压缩高清视频用于实时性和保真度要求较高的情况,如远程医疗等,但由于其对网络带宽的高要求,只能够在专线网络环境下应用。

基于压缩方式的HDV 视频传输网络带宽占用相对较小,在目前的高速网以及正在发展的下一代网络(如CERNET2) 上是能够实用的,但与普通质量的视频相比较,其单路视频占用带宽仍然很大(20~100 Mbp s 不等) ,属于大数据流量的应用。

与普通质量的网络视频应用不同,HDV 视频本身的单路大数据量会对网络性能产生明显的影响而反过来影响应用本身的质量。 实验中发现, HDV 视频的质量对网络背景的变化有相关性,但其相关性与普通质量的网络视频有所不同。 因此通过定量的测量和分析,研究HDV 应用性能和网络性能的相互影响规律,对于深入了解大流量的应用对网络的要求以便更好地提供网络服务和提高HDV 传输质量有积极意义。

目前,基于IPv6 的高清视频系统在IPv6 网上的应用还很少,实现基于IPv6 的高清视频系统并研究其网络性能,对下一代互联网新应用的实用化和推广具有重要意义。

本文设计和实现了一个基于IPv6 的HDV 网络视频传输系统,应用到国内和国际的IPv6 主干网。同时针对该应用设计了测量子系统,对不同网络条件下HDV 视频质量和网络性能的相关性进行研究。

高清视频系统构架与实现

高清视频系统基本模块与实现

基于压缩编码的HDV 网络视频传输系统包括6 个基本的模块---视频采集、压缩编码、发送引擎、网络传输、接收与组帧、解码显示。 本文设计的HDV 视频传输系统的结构框图如图1 所示。 虚线框所包含的部分为性能测量子系统。

HDV 视频传输系统基本功能模块实现如下:

(1) 视频采集:采用Sony-FX1 (1080i) 或JVC-HDR(720p) 作为视频源,视频信号通过1394 线输入视频压缩卡。

(2) 视频压缩与编码:本系统采用MPEG2 标准进行视频压缩编码。

(3) 网络发送引擎:对压缩编码后的MPEG2 数据流进行打包发送,数据包包头按RTP 包头填充,记录时间戳、序列号等。 在发送引擎中,以48 kbp s大小的Sample 数据块为单位进行发送,每个Sam-ple 被分为43 个包,同一Sample 内的包打相同的时间戳,并以序列号标识先后顺序。

(4) 网络传输:数据发送和接收同时支持IPv4/IPv6 地址,传输网络为支持IPv4/ IPv6 的双栈环境。

(5) 网络接收与组帧引擎:接收端计算机对收到的数据包根据时间戳和序列号进行合并组帧。

(6) 解码与显示:解码和显示部分先要对视频和音频进行分离,然后分别送到显示设备和音频设备进行播放。 需要指出的是,720p 和1080i 在音频视频同步方面有所区别,720p 在音频和视频方面有相同的PID ,而1080i 则不同,需要分别处理。

HDV 性能测量子系统

HDV 系统性能测量子系统是对基本功能的扩展。 利用此子系统,可以实时监测HDV 视频系统的运行状态,并记录系统运行数据以作分析用。 除数据采集和数据输出接口,子系统还预留了基于参数测量的控制接口。 可以在这些控制接口实施优化调度算法,以达到控制HDV 视频质量的目的。测量子系统为图1 中虚线框内部分。

(1) 发送引擎监测:在发送端记录发送数据包的序列号和时间戳;同时统计单位时间内发送的包数,实时计算发包速率。

(2) 网络传输测量:测量系统发送端与接收端之间链路的拥塞状况。 此功能是通过定时发送一定数量的ICMP 报文然后统计应答报文来实现,可以得到网络层丢包率等参数。

(3) 接收组帧引擎监测:监测接收组帧引擎接收数据包与解包( depacketize) 的情况,解包后可以得到各包的序列号和时间戳;在多种时间粒度下作统计,可以得到应用层丢包率等参数。需要指出,在统计丢包率时要首先定义统计的时间粒度。 时间粒度的选取不仅要注意应尽可能精确以利于编程计算丢包率,同时要注意,由于相同Sample 的43 个包被认为是逻辑上同时产生的,它们的时间戳是相同的,分开统计既不符合逻辑规律也不符合实际的物理组帧规律。 考虑到这一点,统计丢包的时间单位的划分时刻必须选在Sample 的边界上。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top