发明内容
为解决上述问题,本发明的目的在于提出一种3G可视电话及其工作方法,通过调整视频图像质量和减少视频发送数据的个数来适应高速路的状况,保持视频通话的正常进行。
本发明提供了一种3G可视电话,包括:
用户接口模块,用于本地用户将3G可视电话的模式设置为高速模式;
质量控制模块,用于在高速模式下降低本地的编码速度至第一预设值和/或降低本地的编码质量至第二预设值,以及降低解码速度至第一预设值;并通过具有预设标记的时间戳请求对端用户降低编码速度至第一预设值和/或编码质量至第二预设值,以及降低解码速度至第一预设值;
时间戳控制模块,用于监控对端用户发送过来的时间戳,如果该时间戳具有预设标记,则通知质量控制模块降低本地的编码速度至第一预设值和/或降低本地的编码质量至第二预设值,以及降低解码速度至第一预设值。
用户接口模块,还用于其设置的高速模式记录在数据库中。
质量控制模块,用于在数据库中查询到该3G可视电话设置为高速模式之后:降低本地的编码速度至第一预设值和/或降低本地的编码质量至第二预设值,以及降低解码速度至第一预设值;并通过具有预设标记的时间戳请求对端用户降低编码速度至第一预设值和/或编码质量至第二预设值,以及降低解码速度至第一预设值。
用户接口模块,还用于提供是否启动高速路模式的菜单。
对端用户接收到具有预设标记的时间戳之后,降低本地的编码速度至第一预设值和/或降低本地的编码质量至第二预设值,并降低解码速度至第一预设值。
第一预设值为5秒/帧。
第二预设值nQP=5~25。
本发明提供了一种3G可视电话的工作方法,包括:
步骤1,本地用户将3G可视电话设置为高速模式;
步骤2,降低本地的编码速度至第一预设值和/或降低本地的编码质量至第二预设值,以及降低解码速度至第一预设值;并通过具有预设标记的时间戳请求对端用户降低编码速度至第一预设值和/或降低编码质量至第二预设值,以及降低解码速度至第一预设值;
步骤3,对端用户接收到具有预设标记的时间戳请求后,降低编码速度至第一预设值和/或降低编码质量至第二预设值,并降低解码速度至第一预设值。
步骤1中,将本地用户的3G可视电话设置为高速模式后,将设置的高速模式记录在数据库中。
步骤2中,在数据库中查询到该3G可视电话设置为高速模式之后:降低本地的编码速度至第一预设值和/或降低本地的编码质量至第二预设值,以及降低解码速度至第一预设值;并通过具有预设标记的时间戳请求对端用户降低编码速度至第一预设值和/或编码质量至第二预设值,以及降低解码速度至第一预设值。
步骤1进一步包括:通过菜单启动高速路模式。
在目前的3G网络环境下,本发明通过降低编码器的编码质量和速率,降低视频数据90~94%左右,使高速模式下打视频电话成为可能。
具体实施方式
本发明通过菜单的设置功能,可以选择是否开启高速模式,该功能开启后,手机的可视电话切换到高速环境模式。
该功能开启后,手机需要做以下的处理:
音频部分保持不变;
根据视频电话的H324.M协议栈,可以发送带参数的消息去通知对方手机,这里已启动高速模式,对方手机收到并解析消息后,可以控制减小编码器的编码发送数据,并降低帧速率。需要注意的是,对方手机要支持解析这个要求减小帧速率和帧编码大小的消息;
通知本地的编码器,减小I视频数据编码的大小,一般编码的数据为1K~8K bytes,可减小为0.2K~0.5Kbytes;
由正常可视电话的帧速15帧/秒减小为5帧/秒,减少了终端侧数据的发送。
这样,此种模式下大约减少了正常数据的90%~95%,从而,基本上可以在100公里左右的视频电话功能。
本发明中,为了使视频数据能成功的发送和接收,通过降低视频质量换取更高的数据成功率。
如图3所示,本发明提供的3G手机300主要包括:
用户接口模块301:用户可以设置是否开启高速模式。
质量控制模块302:接收并处理时间戳监控模块发过来的消息,控制视频数据的解码速度和质量,控制的手段是通过调整帧速率控制参数和帧编码参数来实现的,此模块控制本地手机的编码质量和帧速率;发送具有预设标记的时间戳通知对方手机减小视频数据的尺寸和速率。
时间戳监控模块303:用于监控对方终端发送过来的时间戳,如果该时间戳具有预设标记,则通知本地的质量控制模块。目前视频电话的H324.M协议栈中规定,所有的视频数据都需要携带时间戳标志,音频数据也需要携带时间戳标志,目的是发送到通话对端的音、视频同步。而目前协议栈中没有处理高速路模式的消息,所以,本发明设计的高速路消息是通过附着在时间戳消息的后面字段中实现的,另一端需要识别这个字段才可以。原则上讲,另一端的手机也需要支持并解析本发明定义的消息才可以。监控的作用就是解析时间戳模块后面的字段,如果发现附着了高速路模式的消息,则通知编码器,降低帧速率和编码质量。该模块的目的是发送消息给通话的对方手机,通知对方手机去控制编码的帧速率和编码质量。只有双方都控制好编码的速率和质量,才能把可视电话的视频数据(包括发送和接收)降低下来。
用户接口模块301:有可视的用户接口界面,用户通过菜单选择进入该模块,并设置是否开启可视电话中的高速模式功能。
用户接口模块的功能是把用户的设置项写进数据库,当可视电话启动的时候,在视频解码器解码之前,先访问数据库并检查是否启动高速路模式,并根据是否开启此功能,执行相应的程序流程。如果用户没有启动,则执行正常的可视电话。
用户接口模块301的工作流程如下:
步骤101,进入是否启动高速路模式菜单设置;
步骤102,判断是否开启高速路模式功能;
步骤103,将设置的结果记录在数据库中。
通话对端不需要设置为高速路模式,正常模式既可。但是必须能够接收并解析对方发过来的要求减小调整帧速率控制参数和帧编码参数消息,即可以根据消息动态的调整本手机的发送视频数据速率和尺寸。
质量控制模块302:控制本地编码器的编码质量和速率,在高速情况下减小视频编码质量和速率,同时利用时间戳发送消息通知通话的另一方,也减小视频编码的质量和速率。
目前,高速模式下(时速100~160公里),打语音电话基本上没有问题,语音电话中的音频数据的速率是:
V语音=12.2bbps/s
而视频通话中,音频和视频的速率总共为:
V视频=12.2kbps语音+48kbps/s视频=60bps/s
而通过多次现场测试,3G模式下的高速路上,速率20~24Kbps/s是可以接受的视频电话(掉话几率很小),这样就需要降低视频数据为正常情况下的:
1-(24-12.2)/48≈75%
1-(20-12.2)/48≈84%
即大约需要降低视频数据75~84%左右,才能在100~160公里的高速环境下打视频电话。
可视电话的通话过程中,本地的编码质量和速率都是可以通过参数控制的,当用户开启了高速模式,需要大幅度减小可视电话的视频数据以保证通话的持续进行,这样需要发送、接收的视频数据都要大幅度减小才可达到目标。
本地的编码器比较容易控制,通过函数接口,发送本地的编码控制参数给编码器,就可以实现编码质量和速率的控制,比如CORELOGIC公司的MUSE解码芯片,其编码质量范围为:nQP=1~30,共30个级别,其中“1”为最高级质量编码,编码出来I帧图片一般为为8K~16Kbytes,而“30”为最低质量编码,同样一幅图片,编码出来的尺寸比“1”级小10~12倍。
基于实际环境中的调试经验,本发明中使用的nQP范围为5级~25级。其原因是25级以上的图像质量效果太差;而5级以下的编码虽然质量很高,但是图像尺寸约为12Kbytes以上,对于国内目前的网络环境而言,传输很容易因数据量过大而不流畅。
通过降低编码质量,编码生成的图片比正常质量下的图片小了90%左右,保证数据的发送在高速环境下基本上没有问题,Size=(1-1/10)*100%=90%。
同样,编码速率也可以由参数来控制,一般编码速率为1~30帧/秒,中国移动要求的标准速率为15帧/秒。高速情况下,可以通过参数设置,减小帧速为5帧/秒。这样虽然帧数减少了3倍(15/5=3),但由于I帧比较大,减小的数据量不多。总体上,减小了部分数据量。
通话的另一方,通过视频电话交互中的消息,来通知远程的通话方,降低编码质量和速率,来保证接收的视频数据量的减小。
本发明提供的3G手机的工作流程如图2所示,包括:
步骤201,可视电话呼叫;
步骤202,初始化可视电话的编解码器;
步骤203,检查是否为高速模式,如果是,执行步骤204,否则执行步骤209;
步骤204,降低视频编码器的编码质量;
步骤205,降低视频编码器编码速;
步骤206,发送时间戳消息对方,请求降低编码质量和速率;
步骤207,视频解码器开始解码;
步骤208,可视电话通话中;
步骤209,正常编码数据,转入步骤207。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的普通技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。