首页> 中国专利> 一种3G网络环境下的移动音视频实时通信方法

一种3G网络环境下的移动音视频实时通信方法

摘要

本发明提供了一种3G网络环境下的移动音视频实时通信方法,所述方法通过在音视频的收发两端和编解码处理的前后做一些先验判断和处理,使音视频数据包的传输及处理具有更好的网络适应性。本发明提供的移动音视频通信方法可以在保证低延时的前提下,显著提高音视频业务的服务质量。

著录项

  • 公开/公告号CN102497578A

    专利类型发明专利

  • 公开/公告日2012-06-13

    原文格式PDF

  • 申请/专利权人 武汉大学;

    申请/专利号CN201110379059.2

  • 申请日2011-11-25

  • 分类号H04N21/23(20110101);H04N21/43(20110101);

  • 代理机构武汉科皓知识产权代理事务所(特殊普通合伙);

  • 代理人薛玲

  • 地址 430072 湖北省武汉市武昌区珞珈山武汉大学

  • 入库时间 2023-12-18 05:25:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-12

    未缴年费专利权终止 IPC(主分类):H04N21/23 授权公告日:20140521 终止日期:20161125 申请日:20111125

    专利权的终止

  • 2014-05-21

    授权

    授权

  • 2012-07-11

    实质审查的生效 IPC(主分类):H04N21/23 申请日:20111125

    实质审查的生效

  • 2012-06-13

    公开

    公开

说明书

技术领域

本发明涉及通信领域,特别针对移动多媒体通信的特殊需求,具体而言,就是一种3G 网络环境下低延时、鲁棒性移动音视频通信方法。

背景技术

随着移动通信技术的飞跃发展,移动通信已全面迈入了3G时代,开创了高速率移动通 信的新阶段。3G时代的技术进步使得移动通信的环境条件得到明显改善,驱动移动通信业 进入新一轮增长高峰,这其中,移动音视频通信业务最具发展前景,应用需求也最为迫切, 已在移动安防应急、移动指挥调度、移动视频会议、移动娱乐等领域取得一定的成就。但是, 由于无线信道固有的特点,如可靠性不高、容易丢包,带宽随时可能变化等,在一定程度上 限制了移动音视频业务的发展和推广。同时,移动终端的异构性也加大了移动音视频的实现 难度。目前,严重影响用户体验的两个主要问题是“延时”和“质量差”,如何保障移动音视频 业务的服务质量已成为当前多媒体领域与移动通信领域的研究热点。

移动终端大都基于ARM平台,而多数ARM处理器对于多媒体处理的能力都较弱,因此 一种简单的,不提高编解码复杂度,又能对无线网络有着良好适应性的方法,将成为移动音 视频应用的强大助推器。

发明内容

本发明的目的在于提供一种3G网络环境下低延时、鲁棒性的移动音视频通信方法。该 方法在对音视频数据包的收发与处理上最大限度地与无线网络的固有特点相适应,可以在保 证低延时的前提下,显著提高音视频业务的服务质量。

本发明的技术方案为一种3G网络环境下的移动音视频实时通信方法,在音频发送端进 行音频采集、音频编码、码流封装和数据包发送,在视频发送端进行视频采集、视频编码、 码流封装和数据包发送,在音频接收端进行数据包接收、排序及码流拆分、音频解码和语音 播放,在视频接收端进行数据包接收、排序及码流拼接、视频解码和视频显示,

在视频发送端进行视频编码时,对移动终端实时采集得到的视频图像采用分片机制进行 压缩编码,且分片时仅指定数据片中宏块的最大数目;在视频发送端进行码流封装时,把含 剧烈运动信息的数据片单独封装成数据包,对于属于一帧但不含剧烈运动信息的连续多个数 据片合并封装成一个数据包;

在视频发送端进行数据包发送时,对一帧码流封装后所得到的多个数据包进行有间隔的 发送,实现方式为,计算出要发送的当前数据包和下一个数据包的间隔时间,然后将当前数 据包发出,等待间隔时间后,将下一个数据包作为要发送的当前数据包,计算间隔时间并发 送,直到通信终止;所述间隔时间根据要发送的当前数据包的尺寸、所属帧封装成数据包的 数目、网络上限带宽、处理时延及编码帧率计算得到;

在视频接收端进行排序及码流拼接时,若在对移动终端接收到的数据包进行排序的过程 中发现有数据包丢失,则在码流拼接过程中计算有数据包丢失的这帧码流中是否存在含剧烈 运动信息的数据片,若存在则这帧码流经解码后得到的图像不予显示;

在音频接收端使用三个并行的过程,其中一个过程进行数据包接收,一个过程进行排序 及码流拆分,一个过程进行音频解码和语音播放。

而且,视频发送端进行码流封装时,对每一帧码流的具体处理包括以下步骤,

步骤1.1,设当前帧码流的尺寸记为size,当前帧码流中所包含的数据片数目记为n,将 要封装成数据包的码流数据记为pack,将要封装成数据包的码流数据pack的尺寸记为 packSize,连续多个不含剧烈运动信息的数据片合并之后的上限尺寸记为maxPackSize,第i 个数据片中的码流数据记为slice[i],第i个数据片的尺寸记为length[i],测试的经验阈值记 为Th1;

步骤1.2,令i=1,pack=slice[i],packSize=length[i],若length[i]>size/n且length[i] -size/n>Th1,则认为第i个数据片为含剧烈运动信息的数据片,转到步骤1.4;否则,进行步 骤1.3;

步骤1.3,若i<n,length[i+1]-size/n<Th1且packSize<=maxPackSize-length[i+1],则令 pack=pack+slice[i+1],packSize=packSize+length[i+1],i=i+1,转到步骤1.3;否则,进入步骤 1.4;

步骤1.4,把要封装成数据包的码流数据pack封装成一个数据包;

步骤1.5,若i<n,转到步骤1.2;否则,当前帧码流处理完成。

而且,在视频发送端进行数据包发送时,对每一帧码流的具体处理包括以下步骤,

步骤2.1,通过测试获取处理时延

步骤2.2,计算数据包的发送时延a,a=((L*8)/(B*1000))*1000=(8*L)/B,其中L为数据包 的长度,B是网络上限带宽;

步骤2.3,计算所允许的最大数据包发送间隔b,b=(1/(u*f))*1000=103/(u*f),其中u是数 据包所属帧封装成数据包的数目,f是视频的编码帧率;

步骤2.4,若则若则否则t=0;

步骤2.5,发送当前数据包;

步骤2.6,等待一个时间间隔λ*t,然后转到步骤2.2,准备发送下一个数据包,其中λ是 经验系数,0<λ<1。

而且,在视频接收端进行排序及码流拼接时,对每一帧码流的具体处理包括以下步骤,

步骤3.1,根据数据包的包头信息取出属于当前帧的所有数据包并进行排序,然后通过检 测数据包的序列号是否按照指定长度递增来确定有无数据包丢失,若无,正常解码当前帧码 流并显示图像;若有,进行步骤3.2;

步骤3.2,首先通过检测起始码和NAL单元的类型得到当前帧码流中数据片的数目及各 数据片的尺寸,然后再对数据片进行遍历,若出现len-total/num>Th2,则认为当前帧码流中 存在含剧烈运动信息的数据片,不予显示;否则,正常解码当前帧码流并显示图像;其中, len是单个数据片的尺寸,total是当前帧码流中数据片的总尺寸,num是当前帧码流中数据片 的个数,Th2是测试的经验阈值。

而且,在音频接收端把对音频处理的三个过程分别放在三个独立的线程中并行执行处理, 并使用四级缓存对这三个线程进行协同;

第一级缓存是接收缓存,在进行数据包接收时存放数据包,在进行数据包排序前从中提 取数据包;

第二级缓存是排序缓存,存放待排序的数据包,并进行数据包排序;

第三级缓存是解码缓存,存放已排序的数据包,进行音频解码时从中提取数据包;

第四级缓存是同步播放缓存,存放进行音频解码后的语音,进行语音播放时从中提取语 音。

本发明所提出的方法在音视频的收发两端和编解码处理的前后做一些先验判断和处理, 并由此改变网络传输的方式及音视频数据包处理的流程来提高网络适应性,所涉及的计算均 简单而有效,几乎没有增加计算复杂度。本发明中对视频的处理分为三部分:首先,视频编 码时采用分片机制且分片时仅指定片中宏块的最大数目,并对生成的可独立解码的数据片采 用不同的策略进行封装,以使数据包的封装自适应于视频的内容。新一代视频编码标准 H.264/AVC、AVS等均包含片的句法,支持分片机制,所不同的是在AVS中称为条带;其次, 在一帧码流的多个数据包之间添加自适应于网络的发送时间间隔,以减少网络拥塞和数据包 乱序的可能性;最后,通过在视频接收端屏蔽一些视觉效果比较差的视频图像来进一步提高 视频的显示质量。音频的信息量虽然远小于视频,但人耳对声音比较敏感,结合实时语音通 信对延时要求比较严格的特点,本发明中对数据包的处理采用三个并行的过程和四级缓存来 最大限度地抵消网络的不稳定因素,在保证低延时的同时有效地提高了语音的通信质量。

附图说明

图1本发明实施例的移动音视频实时通信方法所涉及处理环节流程图;

图2本发明实施例的语音接收端协同处理示意图。

具体实施方式

以下结合附图和实施例详细说明本发明技术方案。

参见图1,现有技术提供的移动音视频实时通信方法,移动终端上的处理主要包括在音 频发送端进行音频采集、音频编码、码流封装和数据包发送,在视频发送端进行视频采集、 视频编码、码流封装和数据包发送,在音频接收端进行数据包接收、排序及码流拆分、音频 解码和语音播放,在视频接收端进行数据包接收、排序及码流拼接、视频解码和视频显示。 本发明实施例提供的移动音视频通信方法对以下几部分进行改进:

[S1]视频编码、码流封装

在视频发送端进行编码时,对移动终端实时采集得到的视频图像采用分片机制进行压缩 编码,且分片时仅指定数据片中宏块的数目,即首先把一帧视频图像划分为若干个数据片, 然后对各数据片进行编码。这样以来,由剧烈运动区域的宏块所组成的数据片在尺寸上要明 显大于由静止区域的宏块所组成的数据片,即用数据片的尺寸来反映视频内容的运动性。

实施例对一帧码流所包含的多个可独立解码的数据片在发送之前采用不同的封装策略, 使数据包的封装自适应于视频的内容。在视频发送端进行码流封装时,把含剧烈运动信息的 数据片单独封装成数据包,对于属于一帧但不含剧烈运动信息的连续多个数据片合并封装成 一个数据包。

实施例的视频发送端进行码流封装时,对每一帧码流的具体处理包括以下步骤:

步骤1.1,设当前帧码流的尺寸记为size,当前帧码流中所包含的数据片数目记为n,将 要封装成数据包的码流数据记为pack,将要封装成数据包的码流数据pack的尺寸记为 packSize,连续多个不含剧烈运动信息的数据片合并之后的上限尺寸记为maxPackSize,第i 个数据片中的码流数据记为slice[i],第i个数据片的尺寸记为length[i],测试的经验阈值记 为Th1;

步骤1.2,令i=1,pack=slice[i],packSize=length[i],若length[i]>size/n且length[i] -size/n>Th1,则认为第i个分片为含剧烈运动信息的数据片,转到步骤1.4;否则,进行步骤 1.3;

步骤1.3,若i<n,length[i+1]-size/n<Th1且packSize<=maxPackSize-length[i+1],则令 pack=pack+slice[i+1],packSize=packSize+length[i+1],i=i+1,即将第i+1个数据片中的码流 数据加入pack,将码流数据pack的尺寸加上第i+1个数据片的尺寸后更新,然后转到步骤1.3; 否则,进入步骤1.4;

步骤1.4,把要封装成数据包的码流数据pack封装成一个数据包;

步骤1.5,若i<n,转到步骤1.2;否则,当前帧码流处理完成。具体实施时,可以转到步 骤1.1,处理下一帧视频码流,直到通信终止。

这里“数据”的单位均为字节,“尺寸”就是字节的数目。这样,既将含剧烈运动信息的数 据片单独封装,提高了可靠性,又把连续多个小尺寸的数据片合并封装,在保证数据包上限 尺寸的同时减少了数据包发送的频率,降低了因数据包发送过密而造成网络拥塞和延时的可 能性。

[S2]视频数据包发送

在视频发送端进行数据包发送时,对一帧视频码流封装后所得到的多个数据包进行有间 隔的发送,计算出要发送的当前数据包和下一个数据包的间隔时间,然后将当前数据包发出, 等待间隔时间后,将下一个数据包作为要发送的当前数据包,计算间隔时间并发送,直到通 信终止;所述间隔时间根据要发送的当前数据包的尺寸、所属帧封装成数据包的数目、网络 上限带宽、处理时延及编码帧率计算得到。

实施例在视频发送端进行数据包发送时,对每一帧码流的具体处理包括以下步骤:

步骤2.1,通过测试获取处理时延

步骤2.2,计算数据包的发送时延a,a=((L*8)/(B*1000))*1000=(8*L)/B,其中L为数据包 的长度,B是网络的上限带宽;

步骤2.3,计算所允许的最大数据包发送间隔b,b=(1/(u*f))*1000=103/(u*f),其中u是数 据包所属帧封装成数据包的数目,f是视频的编码帧率;

步骤2.4,若则若则否则t=0;

步骤2.5,发送当前数据包;

步骤2.6,等待一个时间间隔λ*t,然后转到步骤2.2,准备发送下一个数据包,其中λ是 经验系数,0<λ<1。

其中,t是数据包的发送时间间隔,a、b、t的单位均是ms(毫秒),L的单位是byte(字 节),B的单位是kbit/s(千比特/秒),f单位是帧/秒。

步骤2.2是从局部出发计算数据包的发送时延,若网络稳定并按这个时间间隔发包,可 以保证一个数据包到达目的地之后再发送下一个数据包,不会出现乱序。步骤2.3是从全局 出发计算这一帧码流所含数据包的平均发送时间,对于单个数据包而言,就是它的最大发送 间隔,若网络稳定并按这个时间间隔发包,可以保证数据及时发出,不至于阻塞在发送端。 步骤2.4是步骤2.3和2.3的折中,若网络稳定并按这个时间间隔发包,既保证数据包能够及 时发出,不会因此带来延时,又在各数据包之间增加了时间间隔,大大减少了网络拥塞和乱 序的可能性。步骤2.4的极限情况才是连续无间隔的非友好发送方式(数据包之间只有处理 时延)。步骤2.6对计算出的时间间隔乘上经验系数,以抵消在实际应用中网络抖动等不稳定 因素的影响,经验系数λ可以在具体实施时实验得到。

[S3]视频数据包排序、码流拼接

在视频接收端进行排序及码流拼接时,若在对移动终端接收到的数据包进行排序的过程 中发现有数据包丢失,则在码流拼接过程中计算有数据包丢失的这帧码流中是否存在含剧烈 运动信息的数据片,若存在则这帧码流经解码后得到的图像不予显示。即通过屏蔽一些视觉 效果比较差的图像来提高移动终端的视频质量。

实施例在视频接收端进行排序及码流拼接时,对每一帧码流的具体处理包括以下步骤:

步骤3.1,根据数据包的包头信息取出属于当前帧的所有数据包并进行排序,包头信息仅 与数据包封装时所使用的传输协议有关,例如RTP(Real-time Transport Protocol)实时传送 协议,头部信息主要包含数据包的类型、序列号、时戳、负载长度等信息,实际使用时同一 帧码流的数据包被赋予相同的时戳和递增的序列号,这样以来,检测数据包的序列号便可以 确定有无数据包丢失,若无,正常解码当前帧码流并显示图像;若有,进行步骤3.2;

步骤3.2,首先通过检测起始码和NAL(Network Abstraction Layer网络抽象层)单元的 类型得到当前帧码流中数据片的数目及各数据片的尺寸,起始码仅与所使用的编码标准有关, 例如,H.264/AVC标准的起始码为0x000001,NAL单元的类型取值范围为0~31,取值5代 表IDR(刷新帧)帧中片,取值7代表序列参数集,取值8代表图像参数集,等等;然后再 对数据片进行遍历,若出现len-total/num>Th2,则认为当前帧码流中存在含剧烈运动信息的 数据片,不予显示;否则,正常解码当前帧码流并显示图像。其中,len是单个数据片的尺寸, total是当前帧不完整的码流中数据片的总尺寸,num是当前帧不完整的码流中数据片的个数, Th2是测试的经验阈值,len、total的单位均是:byte(字节)。

在确定有数据包丢失的前提下,不显示含剧烈运动信息的码流解码后的图像,而对于不 含剧烈运动信息的码流多对应运动变化很小或静止的图像,由解码器里的容错机制对丢失的 数据片进行修补并解码后所得到的图像对人的视觉感受影响有限,因此可以显示。这样做可 能会使视频损失一定的连贯性,但对于移动终端,更重要的是视频的显示质量,宁缺勿滥。

[S4]音频接收端的处理

针对人耳对声音比较敏感的特点,对音频接收端的处理过程使用三个并行的过程和四级 缓存来实现。其中一个过程进行数据包接收,一个过程进行排序及码流拆分,一个过程进行 音频解码和语音播放。

[S401]音频数据包接收

音频数据包的接收作为一个独立的过程放在一个单独的线程中执行,所使用的多媒体传 输协议底层接收缓存的尺寸等于X个语音包的长度。所允许的最大延时记为δ毫秒,一个音 频数据包所包含的音频帧数记为N,一帧语音的时间记为S毫秒,调节X或N的取值,使得 X*N*S<δ。

[S402]音频数据包排序、码流拆分

音频数据包的排序作为一个独立的过程放在一个单独的线程中执行,所使用排序缓存的 尺寸等于Y个语音包的长度。由于一帧音频码流的信息量比较小,单个语音包一般包含多帧 音频码流,这时需要对码流进行拆分,确保以帧为单位进行解码。

[S403]音频解码、语音播放

音频数据包的解码和语音的播放作为一个整体放在一个单独的线程中执行。解码所使用 缓存的尺寸等于Z个语音包的长度,调节Y与Z的值,使Y+Z大于X。移动终端底层同步 播放缓存的长度设置为(BufSize/frame+1)*frame,BufSize是指同步播放缓存的默认长度,frame 是指解码之后一帧原始语音的长度,BufSize和frame的单位均为:byte(字节)。

实施例把移动终端通过3G网络收到的数据包的处理分为三个过程:①数据包接收、② 排序及码流拆分、③音频解码和语音播放;将这三个过程分别放在三个独立的线程中并行处 理,并使用四级缓存对这三个功能独立且并行执行的线程进行协同,在保证低延时的同时, 极大的提高了语音通话的质量。参见图2:

第一级缓存是接收缓存,在进行数据包接收时(过程1)存放数据包,在进行数据包排 序前从中提取数据包;

第二级缓存是排序缓存,存放待排序的数据包,第二级缓存是排序缓存,存放待排序的 数据包,并进行数据包排序(过程2);

第三级缓存是解码缓存,存放已排序的数据包,进行音频解码时(过程3)从中提取数 据包;

第四级缓存是同步播放缓存,存放进行音频解码后的语音,进行语音播放时(过程3) 从中提取语音。

使用四级缓存对三个线程进行协同的具体说明如下:

第一级缓存是指所使用的多媒体传输协议其底层的接收缓存,这个缓存用来缓冲因网络 抖动而导致的收包不均匀,在接收时使用,尺寸等于X个语音包的长度。该缓存可以有效平 滑网络的抖动,即长时间未收到数据包而后一次性收到大量数据包的情况。同时,这个缓存 也决定了语音的延时时间,把所允许的最大延时记为δ毫秒,一个音频数据包所包含的音频 帧数记为N,一帧语音的时间记为S毫秒,那么,总的声音延时为X*N*S毫秒。调节X或N 的取值,使得X*N*S<δ,即可保证延时在δ毫秒以内。要注意的是,X的取值不能过小,否 则会因为接收缓存过小而使同时到达的多个数据包部分被丢弃,将严重影响声音的质量。

第二级缓存用来对数据包进行排序,在接收后使用,尺寸等于Y个语音包的长度,即仅 考虑连续Y个语音包乱序的情况,对于序号跨度超出这个范围的数据包视为无效。

第三级缓存用来存放已排序的数据包,在排序后使用,尺寸等于Z个语音包的长度,用 于缓冲接收与播放之间速度的不匹配。Y+Z要大于X,防止因缓存满而失去缓冲作用。

第四级缓存是指移动终端底层的同步播放缓存,用来存放解码后的语音,在解码后使用, 长度设置为(BufSize/frame+1)*frame,能够缓冲移动终端播放每帧音频数据所花费的时间差, 这里的时间是指从一帧语音流进入缓存到播放完毕所花费的总时间,即包含了排队时延。其 中,BufSize是指同步播放缓存的默认长度,这个长度随终端类型和型号的不同差别可能会很 大;frame是指解码之后一帧原始语音的长度;BufSize和frame的单位均为:byte(字节)。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技 术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不 会偏离本发明的精神或者超越所附权利要求书所定义的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号