具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
参见图2,图2为本发明保持视频图像连续性的方法的流程图。具体步骤为:
步骤201,视频编码器采用不同码率分别对视频中每一帧画面进行编码,并将每一帧画面不同码率的数据报文通过网络传输给视频解码器;其中,各码率的和为视频会话协商出的会话总码率。
步骤202,视频解码器按照码率的不同对接收到的数据报文分别保存和解码,并按照视频画面帧的顺序进行显示。
步骤203,对于每一帧画面的显示,如果视频解码器接收到视频编码器采用的最高码率编码的当前视频画面帧的数据报文,则显示该解码后最高码率数据报文;如果视频解码器未接收到因网络拥塞而被丢弃的,视频解码器采用的最高码率编码的当前视频画面帧的数据报文,则在解码后数据报文中选择当前码率最高的解码后数据报文,并切换为显示择出的解码后数据报文。
本发明实施例中提到的码率可以用M来表示,对于不同码率可以由高到低依次排序为M1,M2,...,Mi,...,Mn,其中,Mi为Mn+1的ri倍,ri为大于等于1的数,n为不同码率的个数,n为大于等于2的自然数,i为小于等于n的自然数。这里之所以倍数为ri,因为Mi与Mi+1的比值可以是一样的,也可以是不一样,根据需要或应用经验而定,只要所有的不同码率的和为会话总码率即可。
视频解码器统计接收数据报文的丢包率,如果丢包率低于第一预设值,频解码器发送修改(Modify)报文给视频编码器,通知视频编码器调高ri的值;视频解码器收到视频编码器发来的已调高ri值的确认报文。
如果丢包率高于第二预设值时,需要降低ri的值,过程同上述调高过程,这里不再赘述。
本发明在显示每帧画面时,不仅按照最高码率解码后的数据报文进行显示,还可以根据分辨率或者丢包率来切换显示。如果当前显示画面的实际分辨率小于码率为Mi解码后的数据报文显示画面的分辨率到第一预设值以上时,切换为显示码率为Mi+1解码后数据报文显示;如果当前显示画面的实际分辨率大于码率为Mi解码后的数据报文显示画面的分辨率的值到第二预设值以上时,切换为显示码率为Mi-1解码后数据报文。这里的第一预设值和第二预设值可以根据经验值来确定。
下面描述对于丢包率的变化,如何进行切换显示。
统计不同码率数据报文的丢包率,当丢包率高于码率为Mi视频的可容忍丢包率,并持续预设时间时,切换为显示码率为Mi+1解码后数据报文;当丢包率低于码率为Mi的可容忍丢包率,并持续预设时间时,切换为显示码率为Mi-1解码后数据报文。
在视频解码器收到视频数据报文之前,首先视频会话启动,视频解码器和视频编码器进行协商,假设会话协商结果为视频编码器要求查看TMbps的视频,即会话总码率为TMbps;并且通过单通道传输视频数据流。在实际应用中,使用者可以根据具体需要来对要发送的每帧视频画面进行多次编码,在本实施例中,以两次编码为例,来详细说明本发明的视频报文传输过程,其中,码率较高的称为高码率,码率较低的称为低码率。
参见图3,图3为本发明具体实施例中保持视频图像连续性的方法的流程图。具体步骤为:
步骤301,视频编码器对要传输的视频的每帧画面采用不同码率编码两次,将编码后的高码率数据报文和低码率数据报文均通过网络传输给视频解码器,其中,高低码率码率的和为视频会话协商出的会话总码率。
本步骤中对每帧画面编码两次后的数据报文添加应用层标识,用于区分不同码率的数据报文;为报文添加差分服务编码点(DSCP)标签,用于标识报文的优先级。其中,高码率报文打低优先级标识,低码率报文打高优先级标识,根据使用者对该视频的重视程度而定,当使用者认为该视频非常重要时,为本步骤中的数据报文打的优先级标识均应高于普通数据业务的优先级。当在传输过程中,网络拥塞时,优先丢弃高码率报文,本发明具体实施例中根据DSCP标签,优先丢弃优先级低的报文。
本步骤中进行的两次编码,一次为高码率,假设为HMbps,另一次为低码率,假设为LMbps,其中H+L=T。假设高码率为3.5Mbps,那么低码率为0.5Mbps。
该步骤中的不同码率可以事先设定,也可以通过动态调整。具体实现方式如下:
设会话总码率为TMbps,高低码率比值为r,则高码率H=r×T/(1+r);低码率L=T/(1+r)。其中,1<r<=100,r的范围为根据实际经验和习惯获得的较合适比例范围,如果r的比值更大的时候,如果网络拥塞,将高码率的报文丢弃,而低码率的报文由于码率太低将显示的画面质量太差,这样的高低码率划分将没有太大意义。
上述对r值的调整的实现方法参见图4,图4为动态降低r的流程图。具体步骤为:
步骤401,视频解码器统计丢包率较低。
视频解码器统计接收报文的丢包率,如果网络条件很好,丢包率很低,这时候可以考虑适当调高高码率报文的码率,以便提供更好的显示质量,丢包率的触发条件可以以不同码率报文的丢包容忍度为依据,当统计丢包率低于可容忍丢包率预设值以上,可以调高r值。通常该处的预设值可以设为80%。
步骤402,视频解码器向视频编码器发送Modify报文,通知视频编码器调高r值。
步骤403,视频编码器调高r值。
本步骤中的视频编码器收到Modify报文,Modify报文携带视频解码器ID、视频编码器ID和当前画面对应会话ID。是否携带r值可选,当携带r值时视频编码器根据当前画面对应会话ID和r值直接调整对应r值;当报文未携带r值时,视频编码器根据当前画面对应会话ID以及自身应用情况适当提高r值。
步骤404,视频编码器向视频解码器发送已调高r值确认报文。
本步骤中的确认报文携带视频解码器ID、视频编码器ID和当前画面对应会话ID。是否携带r值可选,当携带r值时,视频解码器收到该确认报文时,根据报文携带的r值调整维护队列的长度,也可以不进行调整。
步骤405,视频编码器等待预设时间,未再收到调整r的Modify报文,用新的r值计算高低码率的值。
如果在等待时间内再次收到Modify报文,继续对r值调整,以最后一次调整为准,重新计算高低码率的值。
步骤406,视频编码器按调整后的高低码率值发送高低码率数据报文给视频解码器。
视频解码器统计丢包率,当网络条件很差时,统计丢包率高于可容忍丢包率预设值以上,一般预设百分比设为50%,这时网络中可能存在拥塞,高码率报文可能已经被交换机设备丢弃,这时候考虑降低r值。降低r值的过程同调高r值过程类似,这里不再赘述。
步骤302,视频解码器为该次会话维护两个队列,收到视频解码器发来的每帧画面的数据报文,根据报文携带的码率不同,分别将高、低码率的数据报文进入两个队列。
本步骤中视频解码器按照应用层标识的不同对接收到的数据报文分别进入两个队列。
步骤303,视频解码器对两个队列的数据报文分别解码,并按照视频画面帧的顺序进行显示。
步骤304,对于每一帧画面,如果收到该帧高码率的数据报文,则显示该帧采用高码率编码的解码后的数据报文。
步骤305,如果未收到高码率的数据报文,切换为显示该帧采用低码率编码的解码后的数据报文。
本步骤中,当网络拥塞时,该帧采用高码率编码的数据报文有丢失,视频解码器未收到时,切换为显示采用低码率编码的数据报文。
下面详细描述一下高低码率解码后,优先选择高码率报文切换,但是根据网络情况,也可切换显示。
第一种切换显示方式,根据画面的实际分辨率变化进行切换。
如果当前显示画面的实际分辨率小于高码率报文分辨率到一定阀值D以上,切换到低码率报文队列显示;如果当前显示画面的实际分辨率大于低码率报文分辨率到一定阀值d以上,切换到高码率报文队列显示。其中,D和d值的大小可以根据实际应用情况进行设置。
下面举具体例子来详细说明。
例如,高码率报文为720p(1280*720),低码率报文为QCIF(176*144)。如果实际画面为CIF(352*288),则可以选择切换到低码率队列显示。如果实际画面为D1(704*576),则可以选择切换到高码率队列显示。
第二种切换方式,通过高低码率报文队列的丢包率进行切换。
分别统计2个队列的丢包率,高码率视频对于丢包率的容忍度较低,而低码率视频对报文丢包率容忍度较高,当统计丢包率高于高码率视频的可容忍丢包率,并持续预设时间时,切换到低码率报文队列显示。根据丢包率统计结果,当丢包率低于高码率视频的可容忍丢包率,可选择切换回高码率报文队列显示。
本实施例中,不同码率的数据报文可以同时发送,也可以分先后发送。实际应用中,低码率数据报文的数据量较小,在传输和解码工作上负担较轻,视频编码器可以优先发送低码率的报文,当视频解码器收到该低码率报文开始解码时,视频编码器开始混杂发送高码率报文。
视频会话协商时,还可以协商多条数据流通道,视频编码器将不同码率的数据报文通过不同数据流通道传送给视频解码器。
本实施例还可应用于双向视频。实现只需在视频编码器端如上所述的方式设置视频解码器,在视频编码器端如上所述的方式设置视频编码器,数据报文传输方式也同上,这里不再赘述。
基于上述同样的发明构思,本发明还提出一种保持视频图像连续性的视频编码器。参见图5,图5为本发明保持视频图像连续性的视频编码器的结构示意图。该视频编码器包括:编码单元501和发送单元502。
编码单元501,与发送单元502相连,用于采用不同码率分别对视频中每一帧画面进行编码;其中,各码率的和为视频会话协商出的会话总码率;
发送单元502,用于将每一帧画面不同码率的数据报文通过网络传输给视频解码器。
较佳地,该视频编码器进一步包括:标识单元503。
标识单元503,与编码单元501相连,用于为不同码率的数据报文添加应用层标识,使所述视频编码器根据收到的数据报文的应用层标识区分不同码率的数据报文。
较佳地,标识单元503,进一步用于为不同码率的数据报文添加DSCP标签,该DSCP标签用于标识报文优先级;当网络拥塞时,使网络根据数据报文携带的DSCP标签从优先级低到高的顺序优先丢弃优先级低的数据报文;其中,按各码率从高到低的顺序为各数据报文分别分配从低到高的优先级。
较佳地,发送单元502,进一步用于向视频解码器从单通道传输不同码率的数据报文;该单通道传输为视频会话协商出的;
或,发送单元502,进一步用于向视频解码器从多通道传输不同码率的数据报文;该多通道传输为视频会话协商出的。
基于上述同样的发明构思,本发明还提出一种保持视频图像连续性的视频解码器。参见图6,图6为本发明保持视频图像连续性的视频解码器的结构示意图。该视频解码器包括:接收单元601、处理单元602和显示单元603;
接收单元601,与处理单元602相连,用于通过网络接收到来自视频编码器的数据报文,该数据报文是视频编码器对视频中每一帧画面编码后获得的数据报文,且每一帧画面是采用不同码率分别进行编码的,各码率的和为视频会话协商出的所述视频解码器要查看的会话总码率;
处理单元602,与显示单元602相连,用于将接收单元601接收的数据报文按照码率的不同分别保存和解码;
显示单元603,用于将处理单元602解码后数据报文按照视频画面帧的顺序进行显示;对于每一帧画面的显示,如果接收单元601接收到所述视频编码器采用的最高码率编码的当前视频画面帧的数据报文,则显示该解码后最高码率数据报文;如果接收单元601未接收到因网络拥塞而被丢弃的当前视频画面帧的最高码率数据报文,则在解码后数据报文中选择码率最高的解码后数据报文,并切换为显示选择出的解码后数据报文。
较佳地,各码率的关系为:各码率由高到低依次排序为M1,M2,...,Mi,...,Mn,其中,Mi为Mi+1的ri倍,ri为大于1的数,n为不同码率的个数,n为大于等于2的自然数,i为小于等于n的自然数。
较佳地,该视频解码器进一步包括:统计单元604和调整单元605;
统计单元604,与接收单元601相连,用于统计接收数据报文的丢包率;
调整单元605,与统计单元604相连,用于当统计单元604统计丢包率低于第一预设值时,向视频解码器发送Modify报文给视频编码器,通知视频编码器调高ri值;或,用于当所述统计单元统计丢包率高于第二预设值时,向视频解码器发送Modify报文给视频编码器,通知视频编码器降低ri值;
接收单元601,进一步用于当调整单元605通知视频编码器调高ri值之后,接收到视频编码器发来的已调高ri值的确认报文;或用于当调整单元605通知视频编码器降低ri值之后,接收到视频编码器发来的已降低ri值的确认报文。
较佳地,接收单元601,进一步用于接收视频编码器发来的已调高或较低ri值的确认报文之后,接收到不同码率的数据报文;该不同码率的数据报文为用调高或降低后的ri值重新计算的不同码率进行编码的数据报文。
较佳地,该视频解码器进一步包括:切换单元;
切换单元606,与显示单元601相连,用于如果当前显示画面的实际分辨率小于码率为Mi解码后的数据报文显示画面的分辨率到第三预设值以上时,切换为显示码率为Mi+1解码后数据报文显示;如果当前显示画面的实际分辨率大于码率为Mi解码后的数据报文显示画面的分辨率的值到第四预设值以上时,切换为显示码率为Mi-1解码后数据报文;
显示单元601,显示切换单元606切换后的解码后的数据报文;
或,
切换单元606,与统计单元604和显示单元601相连,用于当统计单元604统计不同码率数据报文的丢包率高于码率为Mi视频的第一预设容忍丢包率,并持续预设时间时,切换为显示码率为Mi+1解码后数据报文;用于当统计单元604统计不同码率数据报文丢包率低于码率为Mi视频的第二预设容忍丢包率,并持续预设时间时,切换为显示码率为Mi-1解码后数据报文;
显示单元601,显示切换单元606切换后的解码后数据报文。
较佳地,接收单元601,进一步用于从单通道收到视频编码器传输的不同码率的数据报文;该单通道为视频会话协商出的;
或,接收单元601,进一步用于从多通道收到视频编码器传输的不同码率的数据报文;该多通道为视频会话协商出的。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本发明的视频编码器采用不同码率对视频图像中的每一帧环面进行编码,并通过网络传输给视频解码器,其中,各不同码率的码率和为会话总码率,因此与现有传输方式相比,并未增加网络的传输负担。视频解码器收到视频编码器发来的编码后的数据报文,按码率的不同分别保存并能解码。按照视频画面帧的顺序进行显示。现有技术中用单一码率传输该帧的数据报文,如果网络拥塞时,该数据报文被丢低,则无法连续显示视频图像。而本发明多个不同码率对同一帧的画面进行传输,当网络拥塞时,高码率编码的数据报文被丢低,较低码率的数据报文还是会被传输,因此,在显示该帧画面时,不会出现卡顿、黑屏或者中断。因此本发明在网络拥塞时,在保证视频传输实时的情况下,能够保持视频图像的连续性。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。