一种控制输出数据的方法、装置及电子设备
文献发布时间:2023-06-19 10:22:47
技术领域
本发明涉及视频编码技术领域,具体而言,涉及一种控制输出数据的方法、装置、电子设备及计算机可读存储介质。
背景技术
在传输视频的实时网络中,例如直播网络等,会通过网络带宽评估来分配相应的可用带宽。为保证实施网络的稳定,需要可用带宽比较稳定,一般会要求传输的数据量比较稳定。在传输视频数据时,会按照需求码率对视频数据进行编码压缩,但由于厂家的多样化,有多种多样的实现方式;在压缩相同的视频数据时,即使设定的需求码率相同,但由于实现过程中的方法不同可能造成输出的实际数据量小于需求数据量,或者实际数据量大于需求数据量的情况。
在通过实时网络传输压缩后的视频数据时,若编码器的输出的实际数据量明显小于设定值,可能会造成对可用带宽的低估,导致后续降低可用带宽,从而不能正常传输视频数据,例如不能传输高清视频的数据。若输出数据量明显大于设定值,可能会造成造成可用带宽的超用。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种控制输出数据的方法、装置、电子设备及计算机可读存储介质。
第一方面,本发明实施例提供了一种控制输出数据的方法,包括:
根据编码器生成的视频数据确定当前的第一实际码率;
若所述第一实际码率与预设的期望码率之间的差值大于第一预设值,根据所述第一实际码率与所述期望码率之间的大小关系确定相应的第一调整系数,并根据所述第一调整系数确定目标码率,所述第一实际码率与所述目标码率之间的差值大于所述第一实际码率与所述期望码率之间的差值;
指示所述编码器以所述目标码率生成视频数据。
第二方面,本发明实施例还提供了一种控制输出数据的装置,包括:
实际码率确定模块,用于根据编码器生成的视频数据确定当前的第一实际码率;
第一调整模块,用于若所述第一实际码率与预设的期望码率之间的差值大于第一预设值,根据所述第一实际码率与所述期望码率之间的大小关系确定相应的第一调整系数,并根据所述第一调整系数确定目标码率,所述第一实际码率与所述目标码率之间的差值大于所述第一实际码率与所述期望码率之间的差值;
编码模块,用于指示所述编码器以所述目标码率生成视频数据。
第三方面,本发明实施例提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,所述计算机程序被所述处理器执行时实现上述任意一项所述的控制输出数据的方法中的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的控制输出数据的方法中的步骤。
本发明实施例提供的控制输出数据的方法、装置、电子设备及计算机可读存储介质,通过编码器生成视频数据时的实际码率来判断是否需要调整编码器所设置的码率,通过调整编码器所设置的码率来使得编码器输出数据时的实际码率与期望码率基本一致,使得编码器输出数据的码率符合期望码率。该方法可以有效保证编码器能够以比较稳定的实际码率输出数据,且实际码率与期望码率基本一致,在后续传输该编码器输出的视频数据时,能够减小对网络带宽评估模块的影响,可以正常传输该视频数据。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1示出了本发明实施例所提供的一种控制输出数据的方法的流程图;
图2示出了本发明实施例所提供的另一种控制输出数据的方法的流程图;
图3示出了本发明实施例所提供的一种控制输出数据的装置的结构示意图;
图4示出了本发明实施例所提供的一种用于执行控制输出数据的方法的电子设备的结构示意图。
具体实施方式
在本发明实施例的描述中,所属技术领域的技术人员应当知道,本发明实施例可以实现为方法、装置、电子设备及计算机可读存储介质。因此,本发明实施例可以具体实现为以下形式:完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、硬件和软件结合的形式。此外,在一些实施例中,本发明实施例还可以实现为在一个或多个计算机可读存储介质中的计算机程序产品的形式,该计算机可读存储介质中包含计算机程序代码。
上述计算机可读存储介质可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质包括:电、磁、光、电磁、红外或半导体的系统、装置或器件,或者以上任意的组合。计算机可读存储介质更具体的例子包括:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存(Flash Memory)、光纤、光盘只读存储器(CD-ROM)、光存储器件、磁存储器件或以上任意组合。在本发明实施例中,计算机可读存储介质可以是任意包含或存储程序的有形介质,该程序可以被指令执行系统、装置、器件使用或与其结合使用。
上述计算机可读存储介质包含的计算机程序代码可以用任意适当的介质传输,包括:无线、电线、光缆、射频(Radio Frequency,RF)或者以上任意合适的组合。
可以以汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,例如:Java、Smalltalk、C++,还包括常规的过程式程序设计语言,例如:C语言或类似的程序设计语言。计算机程序代码可以完全的在用户计算机上执行、部分的在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行以及完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括:局域网(LAN)或广域网(WAN),可以连接到用户计算机,也可以连接到外部计算机。
本发明实施例通过流程图和/或方框图描述所提供的方法、装置、电子设备。
应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机可读程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或方框图中的方框规定的功能/操作的装置。
也可以将这些计算机可读程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储介质中。这样,存储在计算机可读存储介质中的指令就产生出一个包括实现流程图和/或方框图中的方框规定的功能/操作的指令装置产品。
也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程数据处理装置上执行的指令能够提供实现流程图和/或方框图中的方框规定的功能/操作的过程。
下面结合本发明实施例中的附图对本发明实施例进行描述。
图1示出了本发明实施例所提供的一种控制输出数据的方法的流程图。如图1所示,该方法包括:
步骤101:根据编码器生成的视频数据确定当前的第一实际码率。
本发明实施中,该编码器为视频编码器,其可以将采集到的视频等编码为相应格式的视频数据,以供网络传输。其中,会预先设置所需的码率,即期望码率,使得该编码器以该期望码率进行编码,即将编码器的码率设置为该期望码率。但由于编码器的编码方式多样化,会导致编码器输出视频数据的码率与该期望码率不一致。本实施例中,可以每间隔一段时间(如周期性地)确定编码器当前的实际码率,为方便区分,本实施例将该实际码率命名为第一实际码率。具体地,可以通过统计该编码器在某个时间段内(如1s、2s等)内生成视频数据的数据量,进而确定该第一实际码率。例如,可以直接将编码器在1s内生成视频数据的数据量作为第一实际码率(二者的数值相同)。
步骤102:若第一实际码率与预设的期望码率之间的差值大于第一预设值,根据第一实际码率与期望码率之间的大小关系确定相应的第一调整系数,并根据第一调整系数确定目标码率。其中,该第一实际码率与目标码率之间的差值大于第一实际码率与期望码率之间的差值。
步骤103:指示编码器以该目标码率生成视频数据。
本发明实施例中,若当前的第一实际码率与期望码率之间的差值大于第一预设值,说明真实的第一实际码率与所需的期望码率之间差异较大,即此时虽然编码器所设置的码率为该期望码率,但编码器没有按照设置的期望码率来输出视频数据,其输出数据与该期望码率不一致,此时,在网络传输该视频数据时可能影响对网络质量的评价,进而影响后续流畅地传输该视频数据。相反地,若第一实际码率与期望码率之间的差值小于第一预设值,此时说明编码器基本上在按照期望码率来输出视频数据,此时可以不调整第一实际码率,或者基于其他策略来调整该第一实际码率,以尽量保证第一实际码率与期望码率一致。其中,该第一预设值为预先设置的一个数值,针对不同的网络,可以设置固定的第一预设值,或者基于期望码率来设置该第一预设值,例如将期望码率的一半、三分之一等设为该第一预设值,具体可基于实际情况而定。
在第一实际码率与期望码率之间的差值大于第一预设值时,则可以根据二者之间的大小关系来确定相应的调整系数,即第一调整系数;其中,若第一实际码率大于期望码率,则二者之间的大小关系为大,此时需要减小该编码器输出视频数据时的实际码率;反之,若该大小关系为小,则需要增大该编码器输出视频数据时的实际码率。
本发明实施例中,通过生成新的目标码率,以希望能够减小编码器的实际码率与该期望码率之间的差值。具体地,第一实际码率与目标码率之间的差值大于第一实际码率与期望码率之间的差值。其中,若大小关系为大,则该第一调整系数为缩小系数,进而根据该缩小系数来生成目标码率,例如将期望码率与缩小系数的乘积作为目标码率;可选地,该缩小系数为期望码率与第一实际码率的比值,以使得目标码率小于该期望码率。相反地,若大小关系为小,则该第一调整系数为放大系数,进而根据该放大系数生成目标码率,例如将将期望码率与放大系数的乘积作为目标码率;可选地,该放大系数为期望码率与第一实际码率的比值,以使得目标码率大于该期望码率。
在确定目标码率之后,则配置该编码器以期望码率生成视频数据改为以目标码率生成视频数据。具体地,若第一实际码率大于期望码率,此时需要下调编码器的码率,即编码器以更小的、小于期望码率的目标码率继续生成视频数据,以希望能够下调编码器后续的实际码率。若第一实际码率小于期望码率,此时需要上调编码器的码率,即编码器以更大的、大于期望码率的目标码率继续生成视频数据,以希望能够使得上调编码器后续的实际码率。
本发明实施例中,在一般情况下,该期望码率是不变的;对于不同的网络或需求,该期望码率可以不同。此外需要说明的是,本实施例中的“A与B之间的差值”指的是A减去B的绝对值,即|A-B|。例如,第一实际码率与期望码率之间的差值指的是第一实际码率减期望码率后的绝对值,即第一实际码率减去期望码率、或者期望码率减去实际码率中的较大值。
本发明实施例提供的一种控制输出数据的方法,通过编码器生成视频数据时的实际码率来判断是否需要调整编码器所设置的码率,通过调整编码器所设置的码率来使得编码器输出数据时的实际码率与期望码率基本一致,使得编码器输出数据的码率符合期望码率。该方法可以有效保证编码器能够以比较稳定的实际码率输出数据,且实际码率与期望码率基本一致,在后续传输该编码器输出的视频数据时,能够减小对网络带宽评估模块的影响,可以正常传输该视频数据。
在上述实施例的基础上,由于对于不同的编码方式,该第一调整系数可能是不同的,且难以准确确定该第一调整系数的大小,本实施例通过多次调整的方式对实际码率进行调整。具体地,在步骤103“指示编码器以该目标码率生成视频数据”之后,该方法还包括:
步骤A1:在间隔预设时间段之后,根据编码器生成的视频数据重新确定当前的第二实际码率。
本发明实施例中,可以每间隔一个时间段即确定一次实际码率,例如在确定第一实际码率之后,间隔预设时间段后再次确定实际码率,即第二实际码率;其中,该预设时间段为预先设置的一个值,该预设时间段可以小于1s,例如200ms、500ms等,从而能够多次快速确定编码器的实际码率,进而对该实际码率进行调整。本领域技术人员可以理解,第一实际码率和第二实际码率均为编码器生成视频数据的实际码率,只是二者对应的时间点不同。
步骤A2:若第二实际码率与期望码率之间的差值满足继续调整条件,对目标码率执行继续调整操作,并指示编码器以调整后的目标码率生成视频数据。
本发明实施例中,预先设置继续调整条件,若该第二实际码率与期望码率之间的差值满足该继续调整条件,则说明该第二实际码率与期望码率仍然存在一定的差异,需要继续调整编码器的设置码率,从而调整编码器的实际码率。本实施例中,编码器的码率会被设置为目标码率,故需要对目标码率进行继续调整,当编码器以调整后的目标码率生成视频数据时,以希望能够再次降低实际码率与期望码率之间的差值。
可选地,若第二实际码率与期望码率之间的差值在继续调整范围内,则说明该差值满足继续调整条件。其中,上述步骤A2“若第二实际码率与期望码率之间的差值满足继续调整条件,对目标码率执行继续调整操作”,包括步骤A21-A22:
步骤A21:若第二实际码率与期望码率之间的差值大于第二预设值、且小于第三预设值,根据期望码率或目标码率设置步长,并根据第二实际码率与期望码率之间的大小关系对目标码率增加或减小步长;其中,步长小于第二预设值。
本发明实施例中,预先设置第二预设值、第三预设值,且与第一预设值相似,只是数值不同;其中,从小到大依次为第二预设值、第三预设值、第一预设值。若通过设置目标码率来让编码器生成视频数据之后,该编码器的实际码率(即第二实际码率)与期望码率之间的差值减小了,且该差值大于第二预设值、小于第三预设值,说明上述通过第一调整系数来生成目标码率的方式可以调整编码器的实际码率,且向着所期望的方向进行调整。但是,在调整后,第二实际码率与期望码率之间仍然具有一定的差值,此时设置某个小于第二预设值的步长,之后对目标码率增加或减小该步长,以进一步减小实际码率与期望码率之间的差值。
具体地,本发明实施例中通过期望码率或目标码率设置该步长,例如将一定比例(如1%、2%等)的期望码率或目标码率设为该步长,之后即可调整该目标码率。本发明实施例中,若第二实际码率与期望码率之间的大小关系为大,即第二实际码率大于该期望码率,此时与第一实际码率大于期望码率时相似,需要减小该实际码率,本实施例通过减小目标码率来减小实际码率,将目标码率减去该步长后所确定的码率作为调整后的目标码率。若第二实际码率与期望码率之间的大小关系为小,则第二实际码率较小,此时需要增大该实际码率,即需要增大目标码率,将目标码率加上该步长后所确定的码率作为调整后的目标码率,进而使得编码器能够以调整后的目标码率来生成视频数据,使得后续的实际码率与期望码率之间的差值更小。
可选地,在上述步骤A21“在对目标码率增加或减小步长”之后,该方法还包括:
步骤A23:重复执行调整操作,直至当前的实际码率与期望码率之间的差值小于第二预设值。
其中,该调整操作包括:在间隔预设时间段之后,根据编码器生成的视频数据重新确定当前的实际码率;在当前的实际码率与期望码率之间的差值大于第二预设值、且小于第三预设值时,继续对目标码率增加或减少步长。
本发明实施例中,可以每间隔预设时间段获取一次编码器的实际码率,在需要时调整目标码率。若在步骤A21之后,再次确定的编码器的实际码率与期望码率之间的差值小于第二预设值,则可以停止调整,或者采用其他策略进行调整。若在步骤A21调整目标码率之后,再次确定的实际码率与期望码率之间的差值仍然在第二预设值与第三预设值之间,则重复执行该调整操作,即重复确定编码器当前的实际码率,若该当前的实际码率与期望码率之间的差值仍然在第二预设值与第三预设值之间,则继续根据当前的实际码率与期望码率之间的大小关系对目标码率增加或减小步长,以减少后续的实际码率与期望码率之间的差值,使得经过一次或多次调整后,实际码率与期望码率之间的差值小于该第二预设值。
步骤A22:若第二实际码率与期望码率之间的差值大于第三预设值、且小于第一预设值或小于初始差值,根据第二实际码率与期望码率之间的大小关系确定相应的第二调整系数,并根据第二调整系数对目标码率进行调整;其中,初始差值为第一实际码率与期望码率之间的差值。
本发明实施例中,在经过步骤102-103调整后,编码器的第二实际码率期望码率之间的差值在第三预设值与第一预设值之间,或者在第三预设值与初始差值之间,则说明第一调整系数具有一定作用,但作用有限;若通过上述步骤A21增加或减少步长的方式进行微调,则可能需要经过过多次增减步长才可以,时效性较差,可能影响后续网络带宽评估。此时,本实施例继续通过调整系数的方式进行调整;具体地,与上述步骤102类似,通过第二实际码率与期望码率之间的大小关系确定相应的第二调整系数,之后直接根据第二调整系数对目标码率进行调整,从而确定调整后的目标码率。
其中,若第二实际码率与期望码率之间的大小关系为大,即第二实际码率大于期望码率,此时第二调整系数为第二缩小系数,进而缩小该目标码率,例如将目标码率与该第二缩小系数的乘积作为调整后的目标码率;可选地,该第二缩小系数为期望码率与第二实际码率之间的比值。若第二实际码率与期望码率之间的大小关系为小,即第二实际码率小于期望码率,此时第二调整系数为第二放大系数,进而放大该目标码率,例如将目标码率与该第二放大系数的乘积作为调整后的目标码率;可选地,该第二放大系数为期望码率与第二实际码率之间的比值。
此外可选地,在上述步骤A1“重新确定当前的第二实际码率”之后,该方法还包括:
步骤A3:若第二实际码率与期望码率之间的差值小于第二预设值,不调整目标码率。
步骤A4:若第二实际码率与期望码率之间的差值大于第一预设值或大于初始差值,在第二实际码率大于期望码率时,向接收视频数据的客户端发送下调播放参数的指令;在第二实际码率小于期望码率时,确定与误差码率相匹配的冗余数据,并将冗余数据作为对视频数据的补偿进行传输;其中,误差码率为期望码率减去第二实际码率后所确定的值。
本发明实施例中,第二预设值为设置的较小的一个值,若第二实际码率与期望码率之间的差值小于该第二预设值,说明通过目标码率进行编码,此时的实际码率(即第二实际码率)与期望码率相近,此时不需要调整该目标码率,即编码器所设置的码率不变。
若第二实际码率与期望码率之间的差值大于第一预设值或大于初始差值,说明上述步骤102-103对调节编码器的实际码率作用不大,此时需要其他方案进行调整。具体地,若第二实际码率大于期望码率,说明编码器的实际码率过大且不易调整,此时向客户端发送下调清晰度等播放参数的指令,以指示客户端下调该播放参数,从而可以降低发送到客户端的视频数据的数据量;即使编码器的实际码率较大,网络中传输的视频数据仍然在比较合理的范围内,有效降低对网络带宽评估的影响。
若第二实际码率小于期望码率,则说明编码器的实际码率过小且不易调整,此时将期望码率减去第二实际码率的值作为误差码率,并生成与该误差码率相匹配的冗余数据,其中,在单位时间内传输的冗余数据的数据量与该误差码率的数值相同,该冗余数据具体可以为随机生成的数据,或者其他视频数据等,本实施例对此不做限定。在传输该编码器生成的视频数据时,同时传输该冗余数据,使得冗余数据加上视频数据的总和与网络所需要传输的数据量相一致,从而可以避免因单纯的视频数据较少,导致网络带宽评估模块认为当前网络质量较差,影响对网络带宽的评估。
本发明实施例中,可以每间隔一个预设时间段就确定实际码率,进而根据实际码率与期望码率之间的差值对编码器所设置的码率进行实时调整。下面通过一个实施例详细介绍该控制输出数据的方法。参见图2所示,该方法包括:
步骤201:将编码器的码率设为目标码率,编码器以该目标码率生成视频数据;其中,该目标码率的初始值为期望码率。
步骤202:每间隔预设时间段,根据编码器生成的视频数据确定当前的实际码率,并确定实际码率与期望码率之间的差值。
步骤203:判断差值是否大于第一预设值,若是,则继续步骤204,否则继续步骤206。
步骤204:判断上一次差值是否小于第一预设值,若是,则继续步骤205,否则继续步骤209。
步骤205:将期望码率与当前的实际码率的比值作为调整系数,把调整系数与当前的目标码率的乘积作为新的目标码率,并把编码器的码率设为新的目标码率,之后重新执行步骤202。
其中,本领域技术人员可以理解,在执行步骤205时,可以首先判断实际码率与期望码率之间的大小,根据二者之间的大小关系来确定该调整系数为放大系数还是缩小系数。具体地,若实际码率大于期望码率,则将期望码率与当前的实际码率的比值作为缩小系数,把缩小系数与目标码率的乘积作为新的目标码率,并把编码器的码率设为新的目标码率;若实际码率小于期望码率,则将期望码率与当前的实际码率的比值作为缩小系数,把缩小系数与目标码率的乘积作为新的目标码率,并把编码器的码率设为新的目标码率,之后重新执行步骤202。
步骤206:判断差值是否大于第三预设值,若是,则继续步骤205,否则继续步骤207。
本发明实施例中,该差值大于第一预设值,或者差值在第三预设值与第一预设值之间时,均通过调整系数对目标码率进行调整,上述的第一调整系数和第二调整系数本质上相同,均可通过期望码率与实际码率的比值来确定。因此,只要差值大于第三预设值,则可以执行步骤205。本实施例还设置第一预设值的目的在于,若调整目标码率之后,该差值大于第一预设值,则需要采用其他策略,例如执行下述的步骤210、211。
步骤207:判断差值是否大于第二预设值,若是,则执行步骤208,否则重新执行步骤202。
步骤208:根据期望码率或当前的目标码率设置步长,并根据实际码率与期望码率之间的大小关系对当前的目标码率增加或减小步长,以确定新的目标码率,并把编码器的码率设为该新的目标码率,之后重新执行步骤202。
步骤209:判断实际码率是否大于期望码率,若是,则继续步骤210,否则继续步骤211。
步骤210:向接收视频数据的客户端发送下调播放参数的指令。
步骤211:确定与误差码率相匹配的冗余数据,并将冗余数据作为对视频数据的补偿进行传输。
本发明实施例提供的一种控制输出数据的方法,通过编码器生成视频数据时的实际码率来判断是否需要调整编码器所设置的码率,通过调整编码器所设置的码率来使得编码器输出数据时的实际码率与期望码率基本一致,使得编码器输出数据的码率符合期望码率。该方法可以有效保证编码器能够以比较稳定的实际码率输出数据,且实际码率与期望码率基本一致,在后续传输该编码器输出的视频数据时,能够减小对网络带宽评估模块的影响,可以正常传输该视频数据。在对目标码率进行调整之后,还可以继续根据实际码率与期望码率之间的差值确定相应的调整策略,如通过增减步长对编码器的实际码率进行微调,或者继续通过调整系数对实际码率进行快速调整,以能够快速、准确地使得编码器输出的实际码率与期望码率尽量相一致。
上文详细描述了本发明实施例提供的控制输出数据的方法,该方法也可以通过相应的装置实现,下面详细描述本发明实施例提供的控制输出数据的装置。
图3示出了本发明实施例所提供的一种控制输出数据的装置的结构示意图。如图3所示,该控制输出数据的装置包括:
实际码率确定模块31,用于根据编码器生成的视频数据确定当前的第一实际码率;
第一调整模块32,用于若所述第一实际码率与预设的期望码率之间的差值大于第一预设值,根据所述第一实际码率与所述期望码率之间的大小关系确定相应的第一调整系数,并根据所述第一调整系数确定目标码率,所述第一实际码率与所述目标码率之间的差值大于所述第一实际码率与所述期望码率之间的差值;
编码模块33,用于指示所述编码器以所述目标码率生成视频数据。
在上述实施例的基础上,该装置还包括第二调整模块;
在所述编码模块33指示所述编码器以所述目标码率生成视频数据之后,所述实际码率确定模块31还用于:在间隔预设时间段之后,根据所述编码器生成的视频数据重新确定当前的第二实际码率;
所述第二调整模块用于,若所述第二实际码率与所述期望码率之间的差值满足继续调整条件,对所述目标码率执行继续调整操作,并指示所述编码器以调整后的目标码率生成视频数据。
在上述实施例的基础上,所述第二调整模块若所述第二实际码率与所述期望码率之间的差值满足继续调整条件,对所述目标码率执行继续调整操作,包括:
若所述第二实际码率与所述期望码率之间的差值大于第二预设值、且小于第三预设值,根据所述期望码率或所述目标码率设置步长,并根据所述第二实际码率与所述期望码率之间的大小关系对所述目标码率增加或减小所述步长;其中,所述步长小于所述第二预设值;
若所述第二实际码率与所述期望码率之间的差值大于第三预设值、且小于所述第一预设值或小于初始差值,根据所述第二实际码率与所述期望码率之间的大小关系确定相应的第二调整系数,并根据所述第二调整系数对所述目标码率进行调整;其中,所述初始差值为所述第一实际码率与所述期望码率之间的差值。
在上述实施例的基础上,在所述第二调整模块对所述目标码率增加或减小所述步长之后,还用于:
重复执行调整操作,直至当前的实际码率与所述期望码率之间的差值小于所述第二预设值;
所述调整操作包括:
在间隔预设时间段之后,根据所述编码器生成的视频数据重新确定当前的实际码率;在所述当前的实际码率与所述期望码率之间的差值大于第二预设值、且小于第三预设值时,继续对所述目标码率增加或减少所述步长。
在上述实施例的基础上,还包括其他模块;
在所述实际码率确定模块31重新确定当前的第二实际码率之后,所述其他模块用于:
若所述第二实际码率与所述期望码率之间的差值小于所述第二预设值,不调整所述目标码率;
若所述第二实际码率与所述期望码率之间的差值大于所述第一预设值或大于所述初始差值,在所述第二实际码率大于所述期望码率时,向接收所述视频数据的客户端发送下调播放参数的指令;在所述第二实际码率小于所述期望码率时,确定与误差码率相匹配的冗余数据,并将所述冗余数据作为对视频数据的补偿进行传输;其中,所述误差码率为所述期望码率减去所述第二实际码率后所确定的值。
在上述实施例的基础上,所述第一调整模块32根据所述第一实际码率与所述期望码率之间的大小关系确定相应的第一调整系数,并根据所述第一调整系数确定目标码率,包括:
在所述第一实际码率小于所述期望码率时,确定放大系数,并将所述期望码率与所述放大系数的乘积作为目标码率;所述放大系数为所述期望码率与所述第一实际码率的比值;
在所述第一实际码率大于所述期望码率时,确定缩小系数,并将所述期望码率与所述缩小系数的乘积作为目标码率;所述缩小系数为所述期望码率与所述第一实际码率的比值。
此外,本发明实施例还提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该收发器、该存储器和处理器分别通过总线相连,计算机程序被处理器执行时实现上述控制输出数据的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
具体的,参见图4所示,本发明实施例还提供了一种电子设备,该电子设备包括总线1110、处理器1120、收发器1130、总线接口1140、存储器1150和用户接口1160。
在本发明实施例中,该电子设备还包括:存储在存储器1150上并可在处理器1120上运行的计算机程序,计算机程序被处理器1120执行时实现上述控制输出数据的方法实施例的各个过程。
收发器1130,用于在处理器1120的控制下接收和发送数据。
本发明实施例中,总线架构(用总线1110来代表),总线1110可以包括任意数量互联的总线和桥,总线1110将包括由处理器1120代表的一个或多个处理器与存储器1150代表的存储器的各种电路连接在一起。
总线1110表示若干类型的总线结构中的任何一种总线结构中的一个或多个,包括存储器总线以及存储器控制器、外围总线、加速图形端口(Accelerate Graphical Port,AGP)、处理器或使用各种总线体系结构中的任意总线结构的局域总线。作为示例而非限制,这样的体系结构包括:工业标准体系结构(Industry Standard Architecture,ISA)总线、微通道体系结构(Micro Channel Architecture,MCA)总线、扩展ISA(Enhanced ISA,EISA)总线、视频电子标准协会(Video Electronics Standards Association,VESA)、外围部件互连(Peripheral Component Interconnect,PCI)总线。
处理器1120可以是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中硬件的集成逻辑电路或软件形式的指令完成。上述的处理器包括:通用处理器、中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)、复杂可编程逻辑器件(Complex Programmable LogicDevice,CPLD)、可编程逻辑阵列(Programmable Logic Array,PLA)、微控制单元(Microcontroller Unit,MCU)或其他可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件组件。可以实现或执行本发明实施例中公开的各方法、步骤及逻辑框图。例如,处理器可以是单核处理器或多核处理器,处理器可以集成于单颗芯片或位于多颗不同的芯片。
处理器1120可以是微处理器或任何常规的处理器。结合本发明实施例所公开的方法步骤可以直接由硬件译码处理器执行完成,或者由译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(Random Access Memory,RAM)、闪存(FlashMemory)、只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、寄存器等本领域公知的可读存储介质中。所述可读存储介质位于存储器中,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
总线1110还可以将,例如外围设备、稳压器或功率管理电路等各种其他电路连接在一起,总线接口1140在总线1110和收发器1130之间提供接口,这些都是本领域所公知的。因此,本发明实施例不再对其进行进一步描述。
收发器1130可以是一个元件,也可以是多个元件,例如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发器1130从其他设备接收外部数据,收发器1130用于将处理器1120处理后的数据发送给其他设备。取决于计算机系统的性质,还可以提供用户接口1160,例如:触摸屏、物理键盘、显示器、鼠标、扬声器、麦克风、轨迹球、操纵杆、触控笔。
应理解,在本发明实施例中,存储器1150可进一步包括相对于处理器1120远程设置的存储器,这些远程设置的存储器可以通过网络连接至服务器。上述网络的一个或多个部分可以是自组织网络(ad hoc network)、内联网(intranet)、外联网(extranet)、虚拟专用网(VPN)、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、无线广域网(WWAN)、城域网(MAN)、互联网(Internet)、公共交换电话网(PSTN)、普通老式电话业务网(POTS)、蜂窝电话网、无线网络、无线保真(Wi-Fi)网络以及两个或更多个上述网络的组合。例如,蜂窝电话网和无线网络可以是全球移动通信(GSM)系统、码分多址(CDMA)系统、全球微波互联接入(WiMAX)系统、通用分组无线业务(GPRS)系统、宽带码分多址(WCDMA)系统、长期演进(LTE)系统、LTE频分双工(FDD)系统、LTE时分双工(TDD)系统、先进长期演进(LTE-A)系统、通用移动通信(UMTS)系统、增强移动宽带(Enhance Mobile Broadband,eMBB)系统、海量机器类通信(massive Machine Type of Communication,mMTC)系统、超可靠低时延通信(UltraReliable Low Latency Communications,uRLLC)系统等。
应理解,本发明实施例中的存储器1150可以是易失性存储器或非易失性存储器,或可包括易失性存储器和非易失性存储器两者。其中,非易失性存储器包括:只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存(Flash Memory)。
易失性存储器包括:随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如:静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本发明实施例描述的电子设备的存储器1150包括但不限于上述和任意其他适合类型的存储器。
在本发明实施例中,存储器1150存储了操作系统1151和应用程序1152的如下元素:可执行模块、数据结构,或者其子集,或者其扩展集。
具体而言,操作系统1151包含各种系统程序,例如:框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序1152包含各种应用程序,例如:媒体播放器(Media Player)、浏览器(Browser),用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序1152中。应用程序1152包括:小程序、对象、组件、逻辑、数据结构以及其他执行特定任务或实现特定抽象数据类型的计算机系统可执行指令。
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述控制输出数据的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
计算机可读存储介质包括:永久性和非永久性、可移动和非可移动媒体,是可以保留和存储供指令执行设备所使用指令的有形设备。计算机可读存储介质包括:电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备以及上述任意合适的组合。计算机可读存储介质包括:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带存储、磁带磁盘存储或其他磁性存储设备、记忆棒、机械编码装置(例如在其上记录有指令的凹槽中的穿孔卡或凸起结构)或任何其他非传输介质、可用于存储可以被计算设备访问的信息。按照本发明实施例中的界定,计算机可读存储介质不包括暂时信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如穿过光纤电缆的光脉冲)或通过导线传输的电信号。
在本申请所提供的几个实施例中,应该理解到,所披露的装置、电子设备和方法,可以通过其他的方式实现。例如,以上描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的、机械的或其他的形式连接。
所述作为分离部件说明的单元可以是或也可以不是物理上分开的,作为单元显示的部件可以是或也可以不是物理单元,既可以位于一个位置,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或全部单元来解决本发明实施例方案要解决的问题。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术作出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(包括:个人计算机、服务器、数据中心或其他网络设备)执行本发明各个实施例所述方法的全部或部分步骤。而上述存储介质包括如前述所列举的各种可以存储程序代码的介质。
以上所述,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例披露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。
- 数据输出装置、数据提供装置、数据输出系统、数据输出装置的控制方法以及数据提供装置的控制方法
- 缆线、缆线的控制信息发送方法、连接装置、电子设备及电子设备的输出数据控制方法