一种流媒体视频混合帧率控制的方法和装置的制造方法

文档序号:10539367阅读:251来源:国知局
一种流媒体视频混合帧率控制的方法和装置的制造方法
【专利摘要】本发明实施例提供了一种流媒体视频混合帧率控制的方法及装置,一路或多路流媒体视频被分别载入对应的一个或多个缓冲区中,所述流媒体视频包括视频帧,所述的方法包括:确定所述一路或多路流媒体视频对应的权值;分别从所述一个或多个缓冲区中,逐帧提取对应的一路或多路流媒体视频进行混合;当存在空缓冲区时,统计存储有流媒体视频的缓冲区中所有流媒体视频的权值之和为第一总权值;判断所述第一总权值是否小于预置阈值;若是,则针对所述存储有流媒体视频的缓冲区进行扩容;若否,则在所述空缓冲区中进行插帧。本发明用以在流畅性和实时性这两种需求中找到平衡点,并使得用户体验相比单独使用任何一种方法更佳。
【专利说明】
一种流媒体视频混合帧率控制的方法和装置
技术领域
[0001] 本发明涉及视频处理技术领域,特别是涉及一种流媒体视频混合帧率控制方法和 一种流媒体视频混合帧率控制装置。
【背景技术】
[0002] 随着媒体市场与网络服务越来越紧密的融合,流媒体传播和使用日益广泛,其中, 在视频会议系统的MCU(Multipoint Control Unit,多点控制单元),以及安防监控系统的 分割器等系统中,流媒体视频混合技术开始替代原有的模拟视频混合器被大量应用。
[0003] 以视频会议系统的MCU为例,在Μ⑶中的视频混合器(video mixer)获取若干终端 的流媒体视频混合到同一个视频中,并以固定的帧率将该混合视频输出进行后续的编码、 传输等工作,实际中通过解码、混合、编码的二次压缩模式节约了带宽和终端性能。以前在 安防监控系统中的分割器主要作用于模拟信号的处理,而随着安防监控系统的网络化,其 处理模式也与视频会议系统一样,将流媒体视频进行二次压缩模式。
[0004] 在视频会议系统及安防监控系统中基于网络数据源的视频混合器又称之为流媒 体视频混合器。在流媒体视频混合器中,由于网络抖动、帧率不对称(各个输入的流媒体视 频与混合输出视频的帧率不一致)等原因,流媒体视频混合器必须采取帧率控制措施,使得 混合器输出稳定的帧率的混合视频用于后续的编码。
[0005] 帧率控制方法主要有两种,一种方法是面向流畅性优先的,该方法通过设定一个 较大的缓冲区来保证视频的流畅性,但是会导致较大的延迟。另一种方法是面向实时性最 优,该方法是尽可能减小缓冲区,提高了实时性,但是会导致视频的流畅性较差。
[0006] 在流媒体视频混合器中,流畅性和实时性是相互制约和相互矛盾的,因此,目前需 要本领域技术人员迫切解决的一个技术问题就是:提出一种流媒体视频混合帧率控制机 制,在流畅性和实时性这两种需求中找到平衡点,并使得用户体验相比单独使用任何一种 方法更佳。

【发明内容】

[0007] 本发明实施例所要解决的技术问题是提供一种流媒体视频混合帧率控制方法,用 以在流畅性和实时性这两种需求中找到平衡点,并使得用户体验相比单独使用任何一种方 法更佳。
[0008] 相应的,本发明实施例还提供了一种流媒体视频混合帧率控制装置,用以保证上 述方法的实现及应用。
[0009] 为了解决上述问题,本发明公开了一种流媒体视频混合帧率控制的方法,一路或 多路流媒体视频被分别载入对应的一个或多个缓冲区中,所述流媒体视频包括视频帧,所 述的方法包括:
[0010] 确定所述一路或多路流媒体视频对应的权值;
[0011] 分别从所述一个或多个缓冲区中,逐帧提取对应的一路或多路流媒体视频进行混 合;
[0012] 当存在空缓冲区时,统计存储有流媒体视频的缓冲区中所有流媒体视频的权值之 和为第一总权值;
[0013] 判断所述第一总权值是否小于预置阈值;若是,则针对所述存储有流媒体视频的 缓冲区进行扩容;若否,则在所述空缓冲区中进行插帧。
[0014] 优选地,所述确定所述一路或多路流媒体视频对应的权值的步骤包括:
[0015] 读取预置配置文件中的布局参数;所述布局参数包括所述一路或多路流媒体视频 的像素在预置的总像素中所占的比值;
[0016] 将所述比值分别作为所述一路或多路流媒体视频的权值。
[0017] 优选地,所述确定所述一路或多路流媒体视频对应的权值的步骤包括:
[0018] 接收额外参数;所述额外参数中包括所述一路或多路流媒体视频新的权值;
[0019] 将所述新的权值作为所述一路或多路流媒体视频的权值。
[0020] 优选地,在所述确定一路或多路流媒体视频对应的权值的步骤之后,还包括:
[0021 ]计算所述一路或多路流媒体视频的权值之和获得第二总权值;
[0022] 判断所述第二总权值是否不等于预设数值;
[0023] 若是,则计算所述一路或多路流媒体视频的权值,与预设数值和第二总权值的比 值之积,作为所述一路或多路流媒体视频的权值。
[0024] 优选地,所述在空缓冲区中进行插帧的步骤包括:
[0025] 复制所述空缓冲区所对应的流媒体视频前一进行混合的视频帧;
[0026] 将所述视频帧插入所述空缓冲区中。
[0027] 优选地,所述K为0.7。
[0028] 本发明实施例还公开了一种流媒体视频混合帧率控制的装置,一路或多路流媒体 视频被分别载入对应的一个或多个缓冲区中,所述流媒体视频包括视频帧,所述的装置包 括:
[0029] 确定模块,用于确定所述一路或多路流媒体视频对应的权值;
[0030] 混合模块,用于分别从所述一个或多个缓冲区中,逐帧提取对应的一路或多路流 媒体视频进行混合;
[0031] 统计模块,用于在存在空缓冲区时,统计存储有流媒体视频的缓冲区中所有流媒 体视频的权值之和为第一总权值;
[0032] 判断模块,用于判断所述第一总权值是否小于预置阈值;若是,则调用扩容模块, 若否,则调用插帧模块;
[0033]扩容模块,用于针对所述存储有流媒体视频的缓冲区进行扩容;
[0034]插帧模块,用于在所述空缓冲区中进行插帧。
[0035]优选地,所述确定模块包括:
[0036] 读取子模块,用于读取预置配置文件中的布局参数;所述布局参数包括所述一路 或多路流媒体视频的像素在预置的总像素中所占的比值;
[0037] 第一调整子模块,用于将所述比值分别作为所述一路或多路流媒体视频的权值。 [0038]优选地,所述确定模块包括:
[0039]接收子模块,用于接收额外参数;所述额外参数中包括所述一路或多路流媒体视 频新的权值;
[0040]第二调整子模块,用于将所述新的权值作为所述一路或多路流媒体视频的权值。 [0041 ] 优选地,所述装置还包括:
[0042]计算模块,用于计算所述一路或多路流媒体视频的权值之和获得第二总权值; [0043]判断模块,用于判断所述第二总权值是否不等于预设数值;若是,则调用第三调整 丰旲块;
[0044] 第三调整模块,用于计算所述一路或多路流媒体视频的权值,与预设数值和第二 总权值的比值之积,作为所述一路或多路流媒体视频的权值。
[0045] 与现有技术相比,本发明实施例包括以下优点:
[0046] 在本发明实施例中,根据视频内容、布局参数、用户需求等条件计算权值,当网络 抖动导致缓冲区为空时,将对权值的计算结果作为跳帧或增大缓冲的依据,由此来动态控 制缓冲区大小,这种自适应的过程将使得缓冲区最终被设定为一个合理的大小。由于不需 要保证全部视频的流畅,因此可以在所需缓冲区较少,延迟时间较短的情形下保证了视频 的流畅性及实时性,提高用户体验效果。
【附图说明】
[0047] 图1是一种流媒体视频混合器的基本工作流程;
[0048] 图2是一种视频混合布局a的不意图;
[0049]图3是一种视频混合布局b的不意图;
[0050]图4是本发明的一种流媒体视频混合帧率控制方法实施例1的步骤流程图;
[0051 ]图5是本发明的一种流媒体视频混合帧率控制方法实施例2的步骤流程图;
[0052]图6是一种视频混合布局c的不意图;
[0053]图7是本发明的一种排队论模型的示意图;
[0054] 图8是本发明的一种缓存区与满足对应的帧率控制方法需求概率的示意图;
[0055] 图9是本发明的一种缓存区与满足对应的帧率控制方法需求概率的总示意图。
[0056] 图10是本发明的一种流媒体视频混合帧率控制装置实施例的结构框图。
【具体实施方式】
[0057] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。
[0058]以视频会议系统的MCU为例,参照图1所示的一种流媒体视频混合器的基本工作流 程,具体流程如下所示:
[0059] 在视频会议系统中,各终端的流媒体视频从不同的网络链路到达多点控制单元 Μ⑶,经过缓冲区,在帧率控制(Frame rate control)作用下,流媒体视频按照一定的时间 间隔采用解码器分别进行解码,将解码后的图像刷入流媒体视频混合器进行视频混合生成 新的图像,再经过编码、封装组成新的视频流,分发给各个终端。
[0060] 在具体实现中,当流媒体视频混合器的输入帧率与输出帧率不相等,或者由于网 络中存在的噪声或交换设备性能问题导致的网络抖动而导致输入到达不稳定的时候,需要 采取帧率控制。例如,当输入帧率为20 (帧/秒),输出帧率为30 (帧/秒)时,理论上,需要每隔 2帧就插入(复制)1帧数据进行混合,但是考虑到网络抖动导致的流媒体视频到达不稳定, 则可能会根据缓冲区内的流媒体视频的情况随机进行插帧,甚至有可能会因为过大的网络 抖动导致流媒体视频到达严重迟缓而采取跳帧(丢弃)操作,来保证各路流媒体视频的同 步。
[0061] 若采用流畅性最优的帧率控制方法,则要求网络抖动时,尽可能不跳过任何帧,以 保障视频的流畅性,因此该方法需要较大的缓冲区,导致延迟较长。若采用实时性最优的帧 率控制方法,则要求尽可能减小缓冲区,提高实时性,由于较小的缓冲区无法应对网络抖动 带来的干扰,因此该方法会导致大量跳帧,使得视频流畅性不佳。
[0062] 在通常采用的帧率控制方法中,各路流媒体视频被平等对待,系统需要保证所有 视频的流畅性,导致系统需要一个比处理单一视频大很多的缓冲区。相反,若设定一个较小 的缓冲区,由于平等对待的原因,各路流媒体视频由于网络抖动导致的插帧或丢帧的机会 也是相同的。
[0063] 在流媒体视频混合器在进行视频混合的时候,会将流媒体视频缩放、裁剪,并按照 一定的布局进行排列,在具体实现中,最终输出的视频中一定会存在一个用户最关注的视 频区域,也就是流媒体混合器的某一路输入视频是用户最关注的。参照图2所示的一种视频 混合布局a的不意图及图3所不的一种视频混合布局b的不意图,在图2及图3这两个视频混 合布局示意图中,标号为1的视频是用户最关注的内容,其余的234则次之。如果只需要优先 保证标号1这一路视频的流畅性和实时性,系统则可以在保证用户体验的情况下,尽可能的 减小延迟并保障流畅性。
[0064]正是本专利发明人基于上述情况,创造性地提出本发明实施例的核心构思之一在 于,提出的关注内容优先的帧率控制机制,对各路流媒体视频进行加权,并由权值之和作为 跳帧或增大缓冲的依据,由此来动态控制缓冲区大小,这种自适应的过程将使得缓冲区最 终被设定为一个合理的大小。相比"流畅性最优",由于并不要求保证全部视频流畅,因此需 要的缓冲区更小。相比"实时性最优",保证了主体的流畅性。达到了最佳用户体验的目标, 在实时性和流畅性之间找到了最优的平衡点。
[0065] 参照图4,示出了本发明的一种流媒体视频混合帧率控制的方法实施例1的步骤流 程图,一路或多路流媒体视频可以被分别载入对应的一个或多个缓冲区中,所述流媒体视 频可以包括视频帧,所述的方法具体可以包括如下步骤:
[0066] 步骤101,确定所述一路或多路流媒体视频对应的权值;
[0067] 在具体实现中,流媒体视频通过RTSP(real time streaming protocol,实时流传 输协议)等协议接入系统,经过解封装后得到压缩视频数据。其中,所述压缩视频数据的格 式可以为 11264、11263、丽1¥、11^)682、¥口8、」口68等等。
[0068] 在流媒体视频混合器进行视频混合的时候,将视频缩放、裁剪并按照一定的布局 进行排列,而最终输出的视频中会存在一个用户最关注的视频区域,也就是混合器的某一 路输入视频是用户最关注的。为了保证用户体验效果,故对各路流媒体视频可以根据用户 关注程度设置不同的权值。
[0069] 步骤102,分别从所述一个或多个缓冲区中,逐帧提取对应的一路或多路流媒体视 频进行混合;
[0070] 在具体实现中,流媒体混合器从缓冲区以帧为单位获取各路流媒体视频,按照指 定的布局进行缩放、排列,混合成视频数据。其中,混合成的视频数据可以是YUV(Luma and Chroma,一种颜色编码方法)数据。目前主要的视频都是基于YUV,YUV还可以细分为1420、 YUY2、NV12等多种格式。当然,混合视频还可以是基于RGB或RGBA等其他格式的数据。
[0071] 需要说明的是,当接收用户或其他设备(例如智能跟踪系统)的指令,做出布局切 换时,需要通知流媒体视频混合器改变缩放、排列方式时,以及重新计算权值,即需要重新 执行步骤101。
[0072] 步骤103,当存在空缓冲区时,统计存储有流媒体视频的缓冲区中所有流媒体视频 的权值之和为第一总权值;
[0073] 在实际应用中,当由于网络抖动等因素导致缓冲区为空时,即流媒体视频混合器 当前无法获取某一路或某些路流媒体视频时,此时启动策略控制,结合各路流媒体视频的 权值,经过计算获得计算结果,并采用计算结果决定流媒体视频混合器的处理方式,比如是 否调整缓冲区的大小。
[0074] 步骤104,判断所述第一总权值是否小于预置阈值;若是,则执行步骤105,若否,则 执行步骤106;
[0075] 步骤105,针对所述存储有流媒体视频的缓冲区进行扩容;
[0076] 步骤106,在所述空缓冲区中进行插帧。
[0077] 在本发明实施例中,如果存在空缓冲区,则统计存储有流媒体视频的缓冲区中所 有流媒体视频的权值之和计算总权值,并判断所述总权值是否小于预置阈值。其中,若小于 预置阈值,则说明当前视频的流畅性不满足预期值,应当增大存储有流媒体视频的缓冲区; 若大于预置阈值,则说明当前视频的流畅性满足预期值,为了保证流媒体视频混合器工作 的时候每一路的流媒体视频都至少有一帧数据,因此在空缓冲区中进行插帧操作。
[0078] 为了使本来技术人员进一步了解本发明实施例,以下采用具体的示例进行说明。 具体而言,在本发明具体应用的一种优选示例中,基于关注内容优先的帧率方法可以包括 如下模块:
[0079] 输入源管理模块:负责通过各种实时流媒体协议连接输入源,获取流媒体视频数 据后进行解码。
[0080] 缓冲区模块:用于缓冲解码后的流媒体视频的图像。
[0081 ]帧率控制模块:控制混合过程中的帧率。
[0082] 权值计算模块:按照预设规则设定各路流媒体视频的权值。
[0083] 策略控制模块:对网络抖动等情况进行判定,决定流媒体混合器对各路流媒体视 频的处理方式。
[0084] 混合器模块:将多路解码后的流媒体视频的图像按照一定布局混合成一个图像。
[0085] 导播模块:接收用户或其他设备产生的切换指令,控制流媒体视频混合器改变布 局。
[0086] 编码模块:将流媒体视频混合器输出的视频编码压缩。
[0087] 直播录制模块:将压缩的视频直播出去或录制到硬盘。
[0088]需要说明的是,由于完全可以不直播、录制,故也是可以仅仅通过显示设备进行显 示,其中仅用于显示的这种应用叫做画面分割器。缓冲区可以设置在解码前,也可以设置在 解码后。
[0089] 参照图5,示出了本发明的一种流媒体视频混合帧率控制的方法实施例2的步骤流 程图,一路或多路流媒体视频可以被分别载入对应的一个或多个缓冲区中,所述流媒体视 频可以包括视频帧,所述的方法具体可以包括如下步骤:
[0090] 步骤201,读取预置配置文件中的布局参数;所述布局参数包括所述一路或多路流 媒体视频的像素在预置的总像素中所占的比值;
[0091] 在具体实现中,布局参数可以预先存储于流媒体视频混合器的配置文件中。当载 入配置文件时,按照布局参数进行缩放、排列,混合成视频数据。
[0092] 步骤202,将所述比值分别作为所述一路或多路流媒体视频的权值;
[0093] 在本发明实施例中,各路流媒体视频的权值可以是按照各路视频所占像素的比 例。例如流媒体视频混合器在本次处理N路流媒体视频的混合任务,混合后输出的总的像素 为S (分辨率长*分辨率高),若某一路流媒体视频在布局中所占像素为Sn,则该流媒体视频 在帧率控制时的权值C n= Sn/S。
[0094] 以图1的视频混合布局为例,假设输入源的像素均为1280*720,可以设定流媒体视 频混合器输出分辨率为1706*720。其中视频1无需缩放,其占用像素为1280*720,视频2、3、4 缩放为426*240,此时视频1、2、3、4的权值分别为0.75、0.083、0.083、0.083。
[0095] 在本发明的一种优选实施例中,所述权值还可以通过如下方式获得:
[0096] 步骤S11,接收额外参数;所述额外参数中包括所述一路或多路流媒体视频新的权 值;
[0097]步骤S12,将所述新的权值作为所述一路或多路流媒体视频的权值。
[0098] 在实际应用中,比如在一些特定情况下用户可能希望手动指定权值,例如在图1的 视频混合布局中,视频1、2、3所占像素相等,但是用户更多关注视频1,为了便于用户配置, 只需要用户设定视频1为"主画面",为视频1设定一个较高的权值(例如0.6),余下的权值再 按照像素比例分配即可。
[0099] 需要说明的是,根据视频内容、布局参数、用户需求等条件进行权值计算,或者根 据以上某些条件的综合情况进行计算,取得权值。比如在具体实现中还可以根据视频内的 动态程度计算(视频内容动态高的赋予较高权值),或者根据视频在布局中所处位置计算 (不同的位置赋予不同的权值),本发明实施例对此不作限制。
[0100] 在本发明的一种优选实施例中,所述的方法还可以包括:
[0101 ]计算所述一路或多路流媒体视频的权值之和获得第二总权值;
[0102] 步骤S21,判断所述第二总权值是否不等于预设数值;若是,则执行步骤S22;
[0103] 步骤S22,计算所述一路或多路流媒体视频的权值,与预设数值和第二总权值的比 值之积,作为所述一路或多路流媒体视频的权值。
[0104] 在本发明实施例中,各路流媒体视频的权值经过一次分配之后,还需要进行校验。
[0105] 具体而言,权值的校验过程可以是判定权值之和是否等于预设数值,若否则需要 进行权值的调整,使得最终使权值之和等于预设数值,必要时还需要进行等比例缩放。
[0106] 校验过程的伪代码如下所示:
[0107]
[0108] 上述伪代码的具体过程为:
[0109] 1、计算各路流媒体视频的权值之和sum,并设置预设数值m= 1。
[0110]需要说明的是,预设数值可以是任意合理值。比如,对于图2的视频混合布局,其输 出的图像中被各路流媒体视频全部分配完毕,则可以设置预设数值m=l,而对于图3的视频 混合布局,其输出的图像中视频1及视频2重叠,则可以设置预设数值m为大于1的数值,故在 本发明实施例中对此不作限制。
[0111] 2、判断各路流媒体视频在布局中所占像素之和是否不等于流媒体视频混合器输 出总的像素(即权值之和sum不等于预设数值m),比如小于或大于输出总的像素。其中对于 小于输出总的像素的情况具体可以参照图6所示的一种视频混合布局c的示意图。
[0112] 3、若权值之和sum不等于预设数值m,则将每一个权值乘以m/sum倍,例如,若m= 1, 则可以将每一个权值放大1/sum倍,使最终各路流媒体视频的权值之和sum=m〇
[0113] 当然,也可以采用其他方式对权值进行校验,使得最终使权值之和等于预设数值, 本发明实施例对此不作限制。
[0114] 步骤203,分别从所述一个或多个缓冲区中,逐帧提取对应的一路或多路流媒体视 频进行混合;
[0115] 步骤204,当存在空缓冲区时,统计存储有流媒体视频的缓冲区中所有流媒体视频 的权值之和为第一总权值;
[0116]步骤205,判断所述第一总权值是否小于预置阈值;若是,则执行步骤206,若否,则 执行步骤207;
[0117]步骤206,针对所述存储有流媒体视频的缓冲区进行扩容;
[0118] 步骤207,在所述空缓冲区中进行插帧。
[0119] 在本发明的一种优选实施例中,所述步骤207可以包括如下子步骤:
[0120] 子步骤S31,复制所述空缓冲区所对应的流媒体视频前一进行混合的视频帧;
[0121 ]子步骤S32将所述视频帧插入所述空缓冲区中。
[0122] 在具体实现中,由于网络抖动可能造成在某一路或某些路的缓冲区为空的情况。 此时判断缓冲区空的情况是由单次网络抖动造成还是多次网络抖动造成。若为单次网络抖 动造成,则暂时认为该路流媒体视频数据已经离线,则从流媒体视频混合器中删除该流媒 体视频;若为多次网络抖动造成,则认为该流媒体视频的网络抖动较大,需要判定是否有必 要加大系统缓冲区。
[0123] 判定过程伪代码如下:
[0124] j
[0125] 上述伪代码的具体过程为:
[0126]
〗、将缙冲区非空的各路流媒体视频的权值进行累加得到总权值C sum,其中
[0127] 2、若该总权值小于K,即Csum〈K,则认为当前视频混合效果经过加权计算后不满足 的预期值,应该增大缓冲区,提高流畅性。
[0128] 其中,K(取值范围(0,m),例如0.7,其中K值越高则流畅性越高,当K = 0时则和实时 性优先效果一致,当K=m时则和流畅性优先效果一致)。
[0129] 3、若该总权值大于K,即Csum彡K,则认为当前视频混合效果经过加权计算后满足的 预期值,为了保证流媒体视频混合器工作的时候每一路的流媒体视频都至少有一帧数据, 对缓冲区为空的流媒体视频进行插帧处理,比如可以复制前一帧进行流媒体视频混合的视 频帧数据放入到缓冲区中。
[0130] 为了使本领域技术人员进一步理解本发明实施例的优点,以下采用对比的方式对 面向关注内容最优的帧率控制方法进行详细说明。
[0131] 本发明实施例中在对目前主要采用的两种帧率控制方法研宄的基础上,提出了一 种关注内容优先的帧率控制方法。利用排队论的相关理论,对三种方法进行建模,比较在不 同需求的情况下各种模型的优劣。
[0132] 排队论模型建立:
[0133] 由于实时流媒体数据在源端以恒定速率输出,并非随机到达,固无法直接套用排 队论模型,但是网络上的噪声或者干扰信号引起网络抖动的数据包占用通道的过程可以被 认为是随机到达服从泊松分布的。而在同一假定通道内的输入内容流可以认为是跟干扰信 号的到达过程存在线性相关性的。将图1中虚线内的帧率控制部分转换为如图7所示的本发 明的一种排队论模型的示意图。
[0134] 若以输入内容流作为讨论对象,需要计算各队列(即缓冲区)的队长为0的概率及 其对系统的影响。但需要将模型转换为以噪声流为讨论对象的模型,转换后形式和图7所示 不变,但输入对象为噪声流,计算对象变为各队列被噪声占满的概率及其对系统的影响。
[0135] 若链路带宽为w,输入内容比特率为b,则对于噪声的服务率为y=w_b,超过该速率 的噪声则会导致内容流无法到达缓冲区,此时可视为噪声占用缓冲区。为了简化论证过程, 本示例中假设各输入内容流的比特率相同,各链路的抖动强度及带宽相同。由于抖动强度 相同,即各路噪声到达率. .=λΝ = λ,同理又由于各路输入内容比特率和带宽相同, 则μL = μ2...=μΝ = μ。设最大队长为Ν,队列数为Κ。由于到达符合泊松分布,服务为定长分 布,队列(缓冲区)有限,因此,该模型实际上是Κ个M/D/1/N/m并联再串联的混合模型。串联 服务的规则根据三种帧率控制方法所面向的需求不同而有着相应差别。
[0136] 1、面向流畅性最优的帧率控制方法
[0137] 流畅性最优的帧率控制方法要求每一个视频画面都尽可能流畅,不跳过任何数 据。即要求各缓冲区的内容流不能为空,等同于各缓冲区不能被噪声流占满。也就是说,若 系统中任意队列发生被噪声占满的现象则违背流畅性最优要求。
[0138] 由M/D/1/N/m模型计算公式可知,队列到达最长限制的概率为:
[0139] ΡΝ=ρΝΡ〇
[0142] 则满足流畅性最优需求时,Κ个队列均未到达上限的概率为:
[0140]
[0141]
[0143]
[0144] 假设带宽w=10(100kb/s),输入内容比特率b = 8(100kb/s),噪声到达率λ=1 (100kb/s),则服务率y = 2(100kb/s),若队列上限N=5(100kb),共Κ = 9个队列,计算的出满 足需求的概率为:
[0145] Ρ = 〇.865
[0146] 即当缓冲区为500kb时,系统运行过程中有86.5%的概率满足流畅性需求。
[0147] 2、面向实时性最优的帧率控制方法
[0148]实时性最优的帧率控制方法要求较高的应用,在可接受的效果范围内尽可能减小 缓冲甚至无缓冲,来达到最小延迟的要求。同理,已知队列到达上限的概率为:
[0149]
[0150] 若要求同时出现跳帧的画面不超过30%,即要求同时到达上限的队列不超过k = K*30%。
[0151] 则满足实时性最优需求时,至少有K-k个队列未被噪声占满的概率为:
[0152]
[0153] 在上文相同条件下,计算得出:
[0154] P = 〇.88
[0155] 即当缓冲区为500kb时,系统运行过程中有88%的概率满足实时性需求。
[0156] 3、面向关注内容最优的帧率控制方法
[0157] 在具体实现中,视频混合时一般会按照用户的需求进行缩放、排列,例如图2,3所 示的混合形式。图2及图3中,序号为1的视频所标示的画面为用户最关注的内容,那么可以 在保证该画面效果最优的情况下尽可能降低延迟时间,而在可接受范围内忽略其他非关注 画面的跳帧情况。这样的方法就是面向关注内容最优的帧率控制方法。
[0158] 因为只考虑某一个视频的效果最优,所以系统中只需要保证某一个队列在指定时 间内的为空的概率低于限定值即可。那么计算过程可以将系统看作是一个单队的M/D/1/N/ °°模型的系统A,加上一个K-1个M/D/1/N/oo模型并联再串联的系统B,系统总的缓冲值取A、 B两个系统的最大值。
[0159] 首先计算A系统。
[0160] 对于单队系统,其满足需求的概率:
[0161]
[0162] 在上文相同条件下,计算得出:
[0163] PA=0.984
[0164] 再计算B系统。由于B系统的是弱化流畅性强调实时性的需求,其计算方法符合面 向实时性最优的计算方法,即:
[0165]
[0166] 在上文相同条件下,计算得出:
[0167] Pb = 0.894
[0168]贝IJA、B系统同时满足需求的概率为:
[0169] P = Pa*Pb = 0.879
[0170] 即当缓冲区为500kb时,系统运行中87.9%的概率满足关注内容优先需求。
[0171 ]对三种帧率控制方式进行对比分析:
[0172]示例中通过假定条件代入参数的方法,计算了在特定条件下,各种方法在相同条 件下满足需求的概率。为了进一步分析各方法在不同限定条件下的情况,通过matlab绘制 了各方法中缓存N与缓存满足需求的概率P的关系,具体可以参照图8所示的本发明的一种 缓存区满足对应的帧率控制方法需求概率的示意图,其中a为流畅度优先方法,b为实时性 优先方法,C为关注内容优先方法,d为三者合成图像。为了进一步便于比较各方法在相同条 件下的差异,将三种方法绘制到同一图像,具体可以参照图9所示的本发明的一种缓存与满 足对应的帧率控制方法需求概率的总示意图。图9(a)中易于看出,在任何相同的条件下,关 注内容优先方法满足需求的概率介于其他两种帧率控制方法之间,推理可知,若满足概率 相同的情况下,该方法所需的缓冲区大小也介于其他两种方法之间,如图9(b)虚线所示。综 上可知,关注内容优先方法可以在不降低用户体验的情况下,在一定程度上减小所需的缓 冲时长。
[0173]本示例中讨论的流媒体视频混合技术中的两种常用的帧率控制方法,以及在两种 常用帧率控制方法的基础上提出了面向关注内容最优的帧率控制方法。通过建模,利用排 队论的相关理论,对几种方法进行了分析和比较。比较可以发现,面向关注内容最优的帧率 控制方法可以在流畅性与实时性两种需求中找到合适的平衡点,用户体验效果好。
[0174]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组 合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依 据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该 知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施 例所必须的。
[0175] 参照图10,示出了本发明一种流媒体视频混合帧率控制的装置实施例的结构框 图,一路或多路流媒体视频可以被分别载入对应的一个或多个缓冲区中,所述流媒体视频 可以包括视频帧,具体可以包括如下模块:
[0176] 确定模块301,用于确定所述一路或多路流媒体视频对应的权值;
[0177] 在本发明的一种优选实施例中,所述确定模块301可以包括:
[0178] 读取子模块,用于读取预置配置文件中的布局参数;所述布局参数包括所述一路 或多路流媒体视频的像素在预置的总像素中所占的比值;
[0179] 第一调整子模块,用于将所述比值分别作为所述一路或多路流媒体视频的权值。
[0180] 在本发明的一种优选实施例中,所述确定模块301可以包括:
[0181] 接收子模块,用于接收额外参数;所述额外参数中包括所述一路或多路流媒体视 频新的权值;
[0182] 第二调整子模块,用于将所述新的权值作为所述一路或多路流媒体视频的权值。
[0183] 混合模块302,用于分别从所述一个或多个缓冲区中,逐帧提取对应的一路或多路 流媒体视频进行混合;
[0184] 统计模块303,用于在存在空缓冲区时,统计存储有流媒体视频的缓冲区中所有流 媒体视频的权值之和为第一总权值;
[0185] 判断模块304,用于判断所述第一总权值是否小于预置阈值;若是,则调用扩容模 块305,若否,则调用插帧模块306;
[0186] 扩容模块305,用于针对所述存储有流媒体视频的缓冲区进行扩容;
[0187] 插帧模块306,用于在所述空缓冲区中进行插帧。
[0188] 在本发明的一种优选实施例中,所述装置还可以包括:
[0189] 计算模块,用于计算所述一路或多路流媒体视频的权值之和获得第二总权值;
[0190] 判断模块,用于判断所述第二总权值是否不等于预设数值;若是,则调用第三调整 丰旲块;
[0191 ]第三调整模块,用于计算所述一路或多路流媒体视频的权值,与预设数值和第二 总权值的比值之积,作为所述一路或多路流媒体视频的权值。
[0192] 对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关 之处参见方法实施例的部分说明即可。
[0193] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与 其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0194] 本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算 机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和 硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可 用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上 实施的计算机程序产品的形式。
[0195] 本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序 产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图 中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些 计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设 备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执 行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中 指定的功能的装置。
[0196] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备 以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包 括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方 框或多个方框中指定的功能。
[0197] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得 在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在 计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程 和/或方框图一个方框或多个方框中指定的功能的步骤。
[0198] 尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基 本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为 包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0199] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将 一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作 之间存在任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意 在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包 括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品 或者终端设备所固有的要素。在没有更多限制的情况下,由语句"包括一个......"限定的 要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要 素。
[0200] 以上对本发明所提供的一种流媒体视频混合帧率控制方法和一种流媒体视频混 合帧率控制装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进 行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本 领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处, 综上所述,本说明书内容不应理解为对本发明的限制。
【主权项】
1. 一种流媒体视频混合帧率控制的方法,其特征在于,一路或多路流媒体视频被分别 载入对应的一个或多个缓冲区中,所述流媒体视频包括视频帧,所述的方法包括: 确定所述一路或多路流媒体视频对应的权值; 分别从所述一个或多个缓冲区中,逐帧提取对应的一路或多路流媒体视频进行混合; 当存在空缓冲区时,统计存储有流媒体视频的缓冲区中所有流媒体视频的权值之和为 第一总权值; 判断所述第一总权值是否小于预置阈值;若是,则针对所述存储有流媒体视频的缓冲 区进行扩容;若否,则在所述空缓冲区中进行插帧。2. 根据权利要求1所述的方法,其特征在于,所述确定所述一路或多路流媒体视频对应 的权值的步骤包括: 读取预置配置文件中的布局参数;所述布局参数包括所述一路或多路流媒体视频的像 素在预置的总像素中所占的比值; 将所述比值分别作为所述一路或多路流媒体视频的权值。3. 根据权利要求1或2所述的方法,其特征在于,所述确定所述一路或多路流媒体视频 对应的权值的步骤包括: 接收额外参数;所述额外参数中包括所述一路或多路流媒体视频新的权值; 将所述新的权值作为所述一路或多路流媒体视频的权值。4. 根据权利要求1所述的方法,其特征在于,在所述确定一路或多路流媒体视频对应的 权值的步骤之后,还包括: 计算所述一路或多路流媒体视频的权值之和获得第二总权值; 判断所述第二总权值是否不等于预设数值; 若是,则计算所述一路或多路流媒体视频的权值,与预设数值和第二总权值的比值之 积,作为所述一路或多路流媒体视频的权值。5. 根据权利要求1所述的方法,其特征在于,所述在空缓冲区中进行插帧的步骤包括: 复制所述空缓冲区所对应的流媒体视频前一进行混合的视频帧; 将所述视频帧插入所述空缓冲区中。6. 根据权利要求1所述的方法,其特征在于,所述K为0.7。7. -种流媒体视频混合帧率控制的装置,其特征在于,一路或多路流媒体视频被分别 载入对应的一个或多个缓冲区中,所述流媒体视频包括视频帧,所述的装置包括: 确定模块,用于确定所述一路或多路流媒体视频对应的权值; 混合模块,用于分别从所述一个或多个缓冲区中,逐帧提取对应的一路或多路流媒体 视频进彳丁混合; 统计模块,用于在存在空缓冲区时,统计存储有流媒体视频的缓冲区中所有流媒体视 频的权值之和为第一总权值; 判断模块,用于判断所述第一总权值是否小于预置阈值;若是,则调用扩容模块,若否, 则调用插帧模块; 扩容模块,用于针对所述存储有流媒体视频的缓冲区进行扩容; 插帧模块,用于在所述空缓冲区中进行插帧。8. 根据权利要求7所述的装置,其特征在于,所述确定模块包括: 读取子模块,用于读取预置配置文件中的布局参数;所述布局参数包括所述一路或多 路流媒体视频的像素在预置的总像素中所占的比值; 第一调整子模块,用于将所述比值分别作为所述一路或多路流媒体视频的权值。9. 根据权利要求7或8所述的装置,其特征在于,所述确定模块包括: 接收子模块,用于接收额外参数;所述额外参数中包括所述一路或多路流媒体视频新 的权值; 第二调整子模块,用于将所述新的权值作为所述一路或多路流媒体视频的权值。10. 根据权利要求7所述的装置,其特征在于,还包括: 计算模块,用于计算所述一路或多路流媒体视频的权值之和获得第二总权值; 判断模块,用于判断所述第二总权值是否不等于预设数值;若是,则调用第三调整模 块; 第三调整模块,用于计算所述一路或多路流媒体视频的权值,与预设数值和第二总权 值的比值之积,作为所述一路或多路流媒体视频的权值。
【文档编号】H04N21/238GK105898384SQ201610270343
【公开日】2016年8月24日
【申请日】2016年4月26日
【发明人】叶荣华, 刘志聪, 孙石平, 张冲
【申请人】广州盈可视电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1