CN113395244B - 码流控制方法、装置及设备、存储介质 - Google Patents

码流控制方法、装置及设备、存储介质 Download PDF

Info

Publication number
CN113395244B
CN113395244B CN202010177931.4A CN202010177931A CN113395244B CN 113395244 B CN113395244 B CN 113395244B CN 202010177931 A CN202010177931 A CN 202010177931A CN 113395244 B CN113395244 B CN 113395244B
Authority
CN
China
Prior art keywords
code stream
stream data
frame rate
determining
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010177931.4A
Other languages
English (en)
Other versions
CN113395244A (zh
Inventor
胡驰坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202010177931.4A priority Critical patent/CN113395244B/zh
Publication of CN113395244A publication Critical patent/CN113395244A/zh
Application granted granted Critical
Publication of CN113395244B publication Critical patent/CN113395244B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • H04W28/18Negotiating wireless communication parameters
    • H04W28/22Negotiating communication rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供一种码流控制方法、装置及设备、存储介质,该方法包括:依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率;当所述目标帧率与所述码流数据生成端的当前帧率不一致时,控制所述码流数据生成端将所述当前帧率调整为所述目标帧率,以使所述码流数据生成端按照所述目标帧率生成码流数据。可改善码流数据的传输情况。

Description

码流控制方法、装置及设备、存储介质
技术领域
本发明涉及通信技术领域,尤其涉及的是一种码流控制方法、装置及设备、存储介质。
背景技术
为了实现图像的远距离传输,通常发送设备需要对图像进行编码以生成码流数据,然后发送设备将生成的码流数据传输至接收设备,以节省传输所需的带宽。无线传输受限于核心网为终端设备提供的承载策略、以及接入网给终端设备分配的空口资源与空口质量,实际传输时因受这些约束会出现网络波动。比如,当空口恶化或核心网的负载过高时,如果发送设备中码流数据仍持续高速产出,码流数据会在发送设备中堆积,导致码流数据传输延迟等问题。因此,有必要进行码流控制,以避免码流数据在发送设备中大量堆积。
相关码流控制方式中,根据当前信道最大带宽、及终端设备集成的Modem(调制解调器)模组提供的参考信号接收质量来控制码流,比如,参考信号接收质量越好,则在当前信道最大带宽承受范围内控制码流数据的生成速度越快。
但是,当前信道最大带宽是一个理论值,缺乏实际参考意义,而且Modem模组提供的参考信号接收质量是下行链路(基站到终端设备)的质量参考值,无法衡量上行链路的质量,也获取不到上行链路的质量衡量信息。因此,上述方式中,码流控制很难满足网络真实需要,导致码流数据的传输情况较差。
发明内容
有鉴于此,本发明提供一种码流控制方法、装置及设备、存储介质,可改善码流数据的传输情况。
本发明第一方面提供一种码流控制方法,该方法包括:
依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率;
当所述目标帧率与所述码流数据生成端的当前帧率不一致时,控制所述码流数据生成端将所述当前帧率调整为所述目标帧率,以使所述码流数据生成端按照所述目标帧率生成码流数据。
根据本发明的一个实施例,所述依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率包括:
依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据滞留量;
依据所述码流数据滞留量,确定码流数据生成端生成码流数据的目标帧率。
根据本发明的一个实施例,所述码流数据发送信息包括被成功发送的码流数据量N1;
所述依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据滞留量,包括:
获取所述码流数据生成端在所述当前统计周期内生成的码流数据量N2;
依据所述码流数据量N2与所述码流数据量N1,确定当前统计周期内的码流数据滞留量。
根据本发明的一个实施例,
所述依据所述码流数据滞留量,确定码流数据生成端生成码流数据的目标帧率包括:
依据所述码流数据滞留量和预设的码流数据目标滞留量确定帧率调整参数,其中,所述帧率调整参数用于调整所述码流数据滞留量以缩小所述码流数据滞留量与所述预设的码流数据目标滞留量之间的差异;
依据所述帧率调整参数与所述当前帧率确定所述目标帧率。
根据本发明的一个实施例,所述依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率包括:
依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据发送成功率;
依据所述码流数据发送成功率,确定码流数据生成端生成码流数据的目标帧率。
根据本发明的一个实施例,所述码流数据发送信息包括被成功发送的码流数据量N1;
所述依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据发送成功率,包括:
获取所述码流数据生成端在所述当前统计周期内生成的码流数据量N2;
计算所述码流数据量N1与所述码流数据量N2的比值,将所述比值确定为所述码流数据发送成功率。
根据本发明的一个实施例,所述依据所述码流数据发送成功率,确定码流数据生成端生成码流数据的目标帧率包括:
依据所述码流数据发送成功率和预设的码流数据目标发送成功率确定帧率调整参数,其中,所述帧率调整参数用于调整所述码流数据发送成功率以缩小所述码流数据发送成功率和预设的码流数据目标发送成功率之间的差异;
依据所述帧率调整参数与所述当前帧率确定所述目标帧率。
根据本发明的一个实施例,所述依据所述帧率调整参数与所述当前帧率确定所述目标帧率包括:
依据已配置的图像分辨率与当前帧率计算出当前带宽,所述图像分辨率与图像被编码生成的码流数据相关;
依据所述当前带宽与所述帧率调整参数计算出目标带宽;
根据所述目标带宽与所述图像分辨率计算出所述目标帧率。
本发明第二方面提供一种码流控制装置,该装置包括:
目标帧率确定模块,用于依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率;
帧率调整模块,用于当所述目标帧率与所述码流数据生成端的当前帧率不一致时,控制所述码流数据生成端将所述当前帧率调整为所述目标帧率,以使所述码流数据生成端按照所述目标帧率生成码流数据。
根据本发明的一个实施例,所述目标帧率确定模块依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率时,具体用于:
依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据滞留量;
依据所述码流数据滞留量,确定码流数据生成端生成码流数据的目标帧率。
根据本发明的一个实施例,所述码流数据发送信息包括被成功发送的码流数据量N1;
所述目标帧率确定模块依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据滞留量时,具体用于:
获取所述码流数据生成端在所述当前统计周期内生成的码流数据量N2;
依据所述码流数据量N2与所述码流数据量N1,确定当前统计周期内的码流数据滞留量。
根据本发明的一个实施例,
所述目标帧率确定模块依据所述码流数据滞留量,确定码流数据生成端生成码流数据的目标帧率时,具体用于:
依据所述码流数据滞留量和预设的码流数据目标滞留量确定帧率调整参数,其中,所述帧率调整参数用于调整所述码流数据滞留量以缩小所述码流数据滞留量与所述预设的码流数据目标滞留量之间的差异;
依据所述帧率调整参数与所述当前帧率确定所述目标帧率。
根据本发明的一个实施例,所述目标帧率确定模块依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率时,具体用于:
依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据发送成功率;
依据所述码流数据发送成功率,确定码流数据生成端生成码流数据的目标帧率。
根据本发明的一个实施例,所述码流数据发送信息包括被成功发送的码流数据量N1;
所述目标帧率确定模块依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据发送成功率时,具体用于:
获取所述码流数据生成端在所述当前统计周期内生成的码流数据量N2;
计算所述码流数据量N1与所述码流数据量N2的比值,将所述比值确定为所述码流数据发送成功率。
根据本发明的一个实施例,所述目标帧率确定模块依据所述码流数据发送成功率,确定码流数据生成端生成码流数据的目标帧率时,具体用于:
依据所述码流数据发送成功率和预设的码流数据目标发送成功率确定帧率调整参数,其中,所述帧率调整参数用于调整所述码流数据发送成功率以缩小所述码流数据发送成功率和预设的码流数据目标发送成功率之间的差异;
依据所述帧率调整参数与所述当前帧率确定所述目标帧率。
根据本发明的一个实施例,所述目标帧率确定模块依据所述帧率调整参数与所述当前帧率确定所述目标帧率时,具体用于:
依据已配置的图像分辨率与当前帧率计算出当前带宽,所述图像分辨率与图像被编码生成的码流数据相关;
依据所述当前带宽与所述帧率调整参数计算出目标带宽;
根据所述目标带宽与所述图像分辨率计算出所述目标帧率。
本发明第三方面提供一种电子设备,包括处理器及存储器;所述存储器存储有可被处理器调用的程序;其中,所述处理器执行所述程序时,实现如前述实施例所述的码流控制方法。
本发明第四方面提供一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现如前述实施例所述的码流控制方法。
本发明实施例具有以下有益效果:
本发明实施例中,根据当前统计周期内的码流数据发送信息确定目标帧率,并控制码流数据生成端按照目标帧率生成码流数据,由于当前统计周期内的码流数据发送信息可以真实反映当前统计周期内的码流数据消费情况,消费过慢表明网络有拥塞的情况或趋势,消费过快表明当前带宽有剩余,所以据此计算出的目标帧率可以保证码流数据的生成与消费趋于平衡,从而使得码流满足网络真实需要,既可改善码流数据的传输情况,避免高延迟、丢帧等问题,又可充分利用网络带宽。
附图说明
图1是本发明一实施例的码流控制方法的流程示意图;
图2是本发明一实施例的应用场景示意图;
图3是本发明一实施例所应用的终端设备的架构示意图;
图4是本发明一实施例的码流控制装置的结构框图;
图5是本发明一实施例的电子设备的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例并不代表与本发明相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种器件,但这些信息不应限于这些术语。这些术语仅用来将同一类型的器件彼此区分开。例如,在不脱离本发明范围的情况下,第一器件也可以被称为第二器件,类似地,第二器件也可以被称为第一器件。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使得本发明的描述更清楚简洁,下面对本发明中的一些技术术语进行解释:
空口:即空中接口,基站和终端设备之间的无线传输规范,它定义每个无线信道的使用频率、带宽、接入时机、编码方法以及越区切换,使无线通信像有线通信一样可靠。
RSRQ:Reference Signal Receiving Quality的缩写,参考信号接收质量,所有子载波的功率与载波接收信号强度指示(RSSI)的比值。
MSM:Mobile Station Modem的缩写,移动基带工作站,或者说Modem模组。
RTT:Round-Trip time的缩写,往返时延,即数据发送时刻到接收到确认消息时刻的差值。
核心网:移动网络可以被划分为三个部分,分别为基站子系统、网络子系统和系统支撑部分,核心网是网络子系统的主要组成部分,提供用户连接、用户管理、业务承载等功能。
接入网:网络子系统的主要组成部分,提供终端接入等功能。
承载:指承载网(核心网中负责业务承载的部分)提供的各类语音和数据业务服务、资源等。
IPC:InterProcess Communication的缩写,进程间通信。
Netlink:一种特殊的socket,用于用户进程与内核间的异步通信。
WDS(Wireless Data Service):无线数据服务协议。
码流:也称码率,Data Rate,图像被编码后生成的码流数据在单位时间内的流量或者说数据量。
帧率:Frame Rate,即FPS,每秒帧数,一定程度决定人眼看到的画面的流畅程度。
字节:计算机中的一种容量计量单位。
内核:操作系统的重要组成,位于应用层与硬件之间。
PID:Proportional(比例)、Integral(积分)、Differential(微分)的缩写,结合比例、积分和微分三种环节于一体的控制算法,通过这三个算法的组合可有效地纠正被控制对象的偏差,从而使其达到一个稳定的状态。
相关码流控制方式中,一方面,由于控制码流所依据的当前信道最大带宽只是一个理论值,实际带宽与该当前信道最大带宽可能会有较大出入,比如,理论上当前信道最大带宽比较大,所以将码流控制地较大,然而,如果此时实际带宽较小,则无法承受那么大的码流,会发生高延迟、丢帧等问题;另一方面,由于调节码流所依据的参考信号接收质量只能反映下行链路的质量,并无法获知上行链路的质量,有可能下行链路质量较好时上行链路质量较差、或者下行链路质量较差时上行链路质量较好,而终端设备传输码流数据实际所用的是上行链路,所以下行链路的质量无法真实反映传输情况,据此控制的码流可能无法适应真实网络情况,实际传输仍有可能发生高延迟、丢帧等问题。
其中,产生高延迟的情况比如:在基于TCP(传输控制协议)传输依据码流数据生成的报文时,如果RTT等网络参数恶化(如RTT升高),则会调整用户发送窗口,该用户发送窗口限定了每次可发送的数据量,以此来缓解传输链路上的拥塞;但是,在确定恶化与窗口调整的过程中,链路会比较拥塞,这样会导致TCP报文发生丢包;由于TCP的特性,需要重传丢失的报文,甚至有可能反复重传,加重链路拥塞程度,导致报文的传输产生高延迟问题。在码流数据为视频数据的情况下,如果产生高延迟问题,那么,接收设备播放接收的码流数据时,就会出现卡顿现象。另外,在确认RTT恢复正常之后,会恢复用户发送窗口,但在确定正常及窗口恢复的过程中,会浪费有效带宽。
产生丢帧的情况比如:基于UDP(用户数据报协议)传输报文时,如果网络拥塞,可能会导致丢包问题,由于UDP的特性,丢包之后并不会重发,所以会导致视频丢帧问题。
此外,不同用户在核心网中被提供的承载策略可能是不同的;而且,不同时间段核心网承担的负载不同,接入网能够给终端设备分配的空口资源相应也不同,比如,后半夜核心网承担的负载比较少,接入网给终端设备分配的空口资源较多。这些不同也会影响码流数据的传输情况,相关码流控制方式中,未考虑到上述不同,导致控制结果更不符合网络实际需要。
本发明实施例中,根据当前统计周期内的码流数据发送信息确定目标帧率,并控制码流数据生成端按照目标帧率生成码流数据,由于当前统计周期内的码流数据发送信息可以真实反映当前统计周期内的码流数据消费情况,消费过慢表明网络有拥塞的情况或趋势,消费过快表明当前带宽有剩余,所以据此计算出的目标帧率可以保证码流数据的生成与消费趋于平衡,从而使得码流满足网络真实需要,既可改善码流数据的传输情况,避免高延迟、丢帧等问题,又可充分利用网络带宽。
下面对本发明实施例的码流控制方法进行具体描述,但不应以此为限。
在一个实施例中,参看图1,码流控制方法可以包括以下步骤:
S100:依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率;
S200:当所述目标帧率与所述码流数据生成端的当前帧率不一致时,控制所述码流数据生成端将所述当前帧率调整为所述目标帧率,以使所述码流数据生成端按照所述目标帧率生成码流数据。
本发明实施例中,码流控制方法的执行主体可以为终端设备,更具体的可以为终端设备中的处理器。其中,终端设备可以为手机、平板、计算机、车载设备等,具体类型不限,只要是能够发送码流数据的设备均可。
参看图2,终端设备可以包括码流数据生成端和码流数据发送端。码流数据生成端可以按照一定的帧率对图像进行编码以生成码流数据,比如帧率为F1,则可以每秒将视频中F1个视频帧进行编码生成码流数据。码流数据发送端可以将码流数据生成端生成的码流数据进行发送,具体发送给哪个设备不做限定。这里的发送也可以说是消费码流数据。
终端设备中可以启动指定进程,通过指定进程来实现步骤S100~S200,即图2中的码流控制部分。
步骤S100中,依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率。
终端设备可以周期地获取码流数据发送端的码流数据发送信息,在当前统计周期的统计时刻到达时,可以获取码流数据发送端在当前统计周期内的码流数据发送信息。
码流数据发送端在当前统计周期内的码流数据发送信息可以表征当前统计周期内码流数据的发送情况,也就是上一统计周期的统计时刻到当前统计周期的统计时刻这一时间段内码流数据的发送情况,也即,码流数据的消费情况。
具体来说,当前统计周期内的码流数据发送信息可以包括:当前统计周期内被成功发送的码流数据量等,具体不限于此,比如还可以包括当前统计周期内码流数据的发送速率,只要能够反映当前统计周期内码流数据的发送情况即可。
依据当前统计周期内的码流数据发送信息确定码流数据生成端生成码流数据的目标帧率,具体可以包括:如果码流数据发送信息表明当前统计周期内被成功发送的码流数据量过大(可以跟相应的设定量比较),则确定较小的目标帧率,比如是比码流数据生成端的当前帧率小的帧率,具体小多少不限,可以是设定值,也可以是通过一定计算确定的值;如果码流数据发送信息表明当前统计周期内被成功发送的码流数据量过小,则确定较大的目标帧率,比如是比码流数据生成端的当前帧率大的帧率,具体大多少不限,可以是一个设定值,也可以是通过一定计算确定的值。
由于图像是以帧为单位进行编码以生成码流数据的,所以这里确定的是码流数据生成端生成码流数据的目标帧率。通过调整帧率,可以调整码流数据生成端生成码流数据的速度,也即调整码流。
步骤S200中,当所述目标帧率与所述码流数据生成端的当前帧率不一致时,控制所述码流数据生成端将所述当前帧率调整为所述目标帧率,以使所述码流数据生成端按照所述目标帧率生成码流数据。
在确定出目标帧率时,可以进行目标帧率与所述码流数据生成端的当前帧率是否一致的判断,在不一致时,向码流数据生成端发送目标帧率;码流数据生成端在收到目标帧率后,可直接将当前帧率调整为目标帧率,从而按照目标帧率生成码流数据。
或者,在确定出目标帧率时,可以直接向码流数据生成端发送目标帧率;码流数据生成端在收到目标帧率后,可以先进行目标帧率与所述码流数据生成端的当前帧率是否一致的判断,如果不一致,则将当前帧率调整为目标帧率,从而按照目标帧率生成码流数据。
以上两种方式都可以实现当所述目标帧率与所述码流数据生成端的当前帧率不一致时,控制所述码流数据生成端将所述当前帧率调整为所述目标帧率。当然,具体也不限于上述方式。
可选的,码流数据可以以报文的形式从码流数据发送端中发送到其他设备,比如,可以通过终端设备中的指定进程根据操作系统内核的网络协议栈将码流数据封装成报文,并将报文送入到码流数据发送端中;码流数据发送端会将接收的报文发送出去,如果接收报文的速度大于发送报文的速度,会导致报文在码流数据发送端中堆积,此时通过控制码流数据生成端生成码流数据的帧率,以减缓码流数据生成速度,可以使得码流数据发送端中堆积的报文及时地发送出去,更可避免堆积更多报文。
在一个实施例中,步骤S100中,所述依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率,可以包括以下步骤:
S101:依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据滞留量;
S102:依据所述码流数据滞留量,确定码流数据生成端生成码流数据的目标帧率。
当前统计周期内的码流数据滞留量,是指当前统计周期内应被发送、但未被成功发送的码流数据。在码流数据需被封装成报文进行发送的情况下,码流数据滞留量可以为滞留报文个数、和/或、滞留报文字节数等。
依据所述码流数据滞留量,确定码流数据生成端生成码流数据的目标帧率,可以为:如果码流数据滞留量过大(可以跟相应的设定量比较),则确定一个小的目标帧率;如果码流数据滞留量过小,则确定较大的目标帧率。目标帧率具体大小不限,可以根据码流数据滞留量大小而定。
在一个实施例中,所述码流数据发送信息包括被成功发送的码流数据量N1;
步骤S101中,所述依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据滞留量,可以包括以下步骤:
S1011:获取所述码流数据生成端在所述当前统计周期内生成的码流数据量N2;
S1012:依据所述码流数据量N2与所述码流数据量N1,确定当前统计周期内的码流数据滞留量。
码流数据发送端可以定期上报消费事件报告,消费事件报告可以包含相应统计周期内被成功发送的码流数据量,上报时刻可以与统计周期的统计时刻相同。如此,可以从码流数据发送端在当前统计周期的统计时刻到达时上报的消费事件报告中,获取被成功发送的码流数据量N1。
在码流数据需被封装成报文的情况下,码流数据量N1可以包括:当前统计周期内被成功发送的报文个数、和/或、当前统计周期内被成功发送的报文字节数,当然具体也不限于此,比如还可以包括这些报文的比特数等。
码流数据生成端在所述当前统计周期内生成的码流数据量N2,可以从码流数据生成端获取,或者根据码流数据生成端输出的码流数据进行统计得到。比如,在码流数据需被封装成报文的情况下,终端设备中的指定进程可以对根据码流数据封装得到的报文进行统计,得到码流数据量N2。相应的,码流数据量N2可以包括:根据当前统计周期内生成的码流数据封装得到的报文个数、和/或、根据当前统计周期内生成的码流数据封装得到的报文字节数。
在确定了码流数据量N2与所述码流数据量N1的情况下,可以确定当前统计周期内的码流数据滞留量。可选的,步骤S1012中,所述依据所述码流数据量N2与所述码流数据量N1,确定当前统计周期内的码流数据滞留量,可以包括以下步骤:
在当前统计周期为首个统计周期时,计算所述码流数据量N2与所述码流数据量N1的差值,将该差值确定为所述当前统计周期内的码流数据滞留量;
在当前统计周期为非首个统计周期时,计算所述码流数据量N2与上一统计周期结束时的码流数据滞留量N3之和得到第一值,计算所述第一值与所述码流数据量N1的差值,将该差值确定为所述当前统计周期内的码流数据滞留量。
在一种情况中,码流数据量N1可以包括当前统计周期内被成功发送的报文个数,码流数据量N2可以包括根据当前统计周期内生成的码流数据封装得到的报文个数,那么,在当前统计周期为首个统计周期时,当前统计周期内的码流数据滞留量为N2-N1,具体为滞留报文个数。
在另一种情况中,码流数据量N1可以包括当前统计周期内被成功发送的报文字节数,码流数据量N2可以包括根据当前统计周期内生成的码流数据封装得到的报文字节数,那么,在当前统计周期为非首个统计周期时,当前统计周期内的码流数据滞留量为N2-N1+N3,具体为滞留报文个数,N3为上一统计周期结束时滞留报文个数。
当然,上述两种情况也可以进行结合,即滞留数据量可以包括滞留报文个数及滞留报文字节数,具体不做限定。
在一个实施例中,步骤S102中,所述依据所述码流数据滞留量,确定码流数据生成端生成码流数据的目标帧率,可以包括以下步骤:
S1021:依据所述码流数据滞留量和预设的码流数据目标滞留量确定帧率调整参数,其中,所述帧率调整参数用于调整所述码流数据滞留量以缩小所述码流数据滞留量与所述预设的码流数据目标滞留量之间的差异;
S1022:依据所述帧率调整参数与所述当前帧率确定所述目标帧率。
码流数据滞留量是根据实际码流数据消费情况确定出的,由于实际可能会有用户数量、环境等各种因素影响网络传输,所以不同统计周期内的码流数据滞留量可能会有所波动,而理想的情况是每个统计周期内的码流数据滞留量可以稳定在期望值。
为此,可以预先设置码流数据目标滞留量作为期望值。在确定出当前统计周期内的码流数据滞留量后,可以计算码流数据滞留量和预设的码流数据目标滞留量的差值,将该差值作为帧率调整参数、或者、对该差值进行处理得到的值作为帧率调整参数,当然具体方式不限于此。
帧率调整参数作为帧率调整的反馈信息,可在帧率调整后使得码流数据滞留量稳定在码流数据目标滞留量、或者向码流数据目标滞留量逼近,即可缩小所述码流数据滞留量与所述预设的码流数据目标滞留量之间的差异。
可选的,步骤S1021中,依据所述码流数据滞留量和预设的码流数据目标滞留量确定帧率调整参数,可以包括以下步骤:
计算预设的码流数据目标滞留量与所述码流数据滞留量之差,得到滞留量差值;
将所述滞留量差值与预设的平滑因子相乘,得到所述帧率调整参数,其中,所述平滑因子小于1。
由于平滑因子小于1,所以将滞留量差值与平滑因子相乘,相当于将滞留量差值进行了映射处理,得到一个绝对值比滞留量差值更小的帧率调整参数,依据该帧率调整参数计算目标帧率,可以适当地减小当前帧率到目标帧率的变化量,起到帧率平滑的作用,避免帧率变化过快。
步骤S1022中,依据所述帧率调整参数与所述当前帧率确定所述目标帧率,比如可以包括:若帧率调整参数指示上调当前帧率,则将当前帧率与一定值(可以是设定的值或者经过计算确定的值)相加得到目标帧率;若帧率调整参数指示下调当前帧率,则将当前帧率与一定值(可以是设定的值或者经过计算确定的值)相减得到目标帧率。当然,具体确定方式不限于此。
在一个实施例中,步骤S1022中,所述依据所述帧率调整参数与所述当前帧率确定所述目标帧率,可以包括以下步骤:
依据已配置的图像分辨率与当前帧率计算出当前带宽,所述图像分辨率与图像被编码生成的码流数据相关;
依据所述当前带宽与所述帧率调整参数计算出目标带宽;
根据所述目标带宽与所述图像分辨率计算出所述目标帧率。
图像分辨率是指图像的尺寸或大小,这里的图像分辨率与图像被编码生成的码流数据相关,可以是被编码而生成码流数据的图像的分辨率。
根据图像分辨率和当前帧率,可以计算出每秒图像被编码所生成的码流数据量,也就是当前带宽,计算方式比如是将图像分辨率与当前帧率的乘积作为当前带宽,具体不限于此,还可以结合图像编码方式进行计算,比如,编码的方式使得编码后数据量是原数据量的一半时,可以将图像分辨率与当前帧率的乘积的一半作为当前带宽。
依据所述当前带宽与所述帧率调整参数计算出目标带宽时,可以采用求和的方式计算,即将当前带宽与所述帧率调整参数之和确定为目标带宽,当然,具体计算方式不限于此。
计算出目标带宽之后,可以根据目标带宽与所述图像分辨率计算出所述目标帧率,比如可以将目标带宽与图像分辨率的比值确定为目标帧率,具体不限于此,还可以结合图像编码方式进行计算。
在一个实施例中,步骤S100中,所述依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率,可以包括以下步骤:
S103:依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据发送成功率;
S104:依据所述码流数据发送成功率,确定码流数据生成端生成码流数据的目标帧率。
当前统计周期内的码流数据发送成功率可以是当前统计周期内被成功发送的码流数据在生成的码流数据中的占比。在码流数据需被封装成报文的情况下,码流数据发送成功率可以包括:当前统计周期内被成功发送的报文个数在生成的报文个数中的占比、和/或、当前统计周期内被成功发送的报文字节数在生成的报文字节数中的占比。当然,码流数据发送成功率具体不限于此,也可以使得当前统计周期内被成功发送的码流数据在应发送的码流数据(包括生成的码流数据及滞留的码流数据)中的占比。
依据所述码流数据发送成功率,确定码流数据生成端生成码流数据的目标帧率,可以为:如果码流数据发送成功率过大(可以跟相应的设定量比较),则确定一个小的目标帧率;如果码流数据发送成功率过小,则确定较大的目标帧率。目标帧率具体大小不限,可以根据码流数据发送成功率的大小而定。
在一个实施例中,所述码流数据发送信息包括被成功发送的码流数据量N1;
步骤S103中,所述依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据发送成功率,可以包括以下步骤:
S1031:获取所述码流数据生成端在所述当前统计周期内生成的码流数据量N2;
S1032:计算所述码流数据量N1与所述码流数据量N2的比值,将所述比值确定为所述码流数据发送成功率。
码流数据发送端可以定期上报消费事件报告,消费事件报告可以包含相应周期内被成功发送的码流数据量,上报时刻可以与统计周期的统计时刻相同。如此,可以从码流数据发送端在当前统计周期的统计时刻到达时上报的消费事件报告中,获取被成功发送的码流数据量N1。
在码流数据需被封装成报文的情况下,码流数据量N1可以包括:当前统计周期内被成功发送的报文个数、和/或、当前统计周期内被成功发送的报文字节数,当然具体也不限于此,比如还可以包括这些报文的比特数等。
码流数据生成端在所述当前统计周期内生成的码流数据量N2,可以从码流数据生成端获取,或者根据码流数据生成端输出的码流数据进行统计得到。比如,在码流数据需被封装成报文的情况下,终端设备中的指定进程可以对码流数据经封装得到的报文进行统计,得到码流数据量N2。相应的,码流数据量N2可以包括:根据当前统计周期内生成的码流数据封装得到的报文个数、和/或、根据当前统计周期内生成的码流数据封装得到的报文字节数。
在确定了码流数据量N2与所述码流数据量N1的情况下,可以确定当前统计周期内的码流数据发送成功率,本实施例中,将码流数据量N1与所述码流数据量N2的比值确定为码流数据发送成功率,即N1/N2,当然具体不限于此。
在一种情况中,码流数据量N1可以包括当前统计周期内被成功发送的报文个数,码流数据量N2可以包括根据当前统计周期内生成的码流数据封装得到的报文个数,这种情况下,N1/N2为报文个数的比值。
在另一种情况中,码流数据量N1可以包括当前统计周期内被成功发送的报文字节数,码流数据量N2可以包括根据当前统计周期内生成的码流数据封装得到的报文字节数,这种情况下,N1/N2为报文字节数的比值。
当然,上述两种情况也可以进行结合,即码流数据发送成功率可以包括报文个数的比值及报文字节数的比值,具体不做限定。
在一个实施例中,步骤S104中,所述依据所述码流数据发送成功率,确定码流数据生成端生成码流数据的目标帧率,可以包括以下步骤:
S1041:依据所述码流数据发送成功率和预设的码流数据目标发送成功率确定帧率调整参数,其中,所述帧率调整参数用于调整所述码流数据发送成功率以缩小所述码流数据发送成功率和预设的码流数据目标发送成功率之间的差异;
S1042:依据所述帧率调整参数与所述当前帧率确定所述目标帧率。
码流数据发送成功率是根据实际的码流数据消费情况确定出的,由于实际可能会因为用户数量、环境等各种因素影响网络传输,所以不同统计周期内的码流数据发送成功率可能会有波动,而理想的情况是每个统计周期内的码流数据发送成功率可以稳定在期望值。
为此,可以预先设置码流数据目标发送成功率作为期望值。在确定出当前统计周期内的码流数据发送成功率后,可以计算码流数据发送成功率和预设的码流数据目标发送成功率的差值,将该差值作为帧率调整参数、或者、对该差值进行处理得到的值作为帧率调整参数,当然具体方式不限于此。
帧率调整参数作为帧率调整的反馈信息,可在帧率调整后使得码流数据发送成功率稳定在预设的码流数据目标发送成功率、或者向预设的码流数据目标发送成功率逼近,即可缩小所述码流数据发送成功率和预设的码流数据目标发送成功率之间的差异。
可选的,步骤S1041中,依据所述码流数据发送成功率和预设的码流数据目标发送成功率确定帧率调整参数,可以包括以下步骤:
计算预设的码流数据目标发送成功率与所述码流数据发送成功率之差,得到发送成功率差值;
将所述发送成功率差值与预设的平滑因子相乘,得到所述帧率调整参数,其中,所述平滑因子小于1。
由于平滑因子小于1,所以将发送成功率差值与平滑因子相乘,相当于将发送成功率差值进行了映射处理,得到一个绝对值比发送成功率差值更小的帧率调整参数,依据该帧率调整参数计算目标帧率,可以适当地减小当前帧率到目标帧率的变化量,起到帧率平滑的作用,避免帧率变化过快。
步骤S1042的具体内容可以参看前述实施例中的步骤S1022,相同之处在此不再赘述。
下面用更具体的实施例来说明目标帧率的确定方式。
在实际使用场景中,比如实时视频传输场景中,码流数据的生成与发送之间应该维持平衡,从而避免在网络环境较差时持续高速生成码流数据造成网络拥塞,同时可以充分利用带宽。但实际上无线环境是变化的,所以如果码流数据的生成速度始终不变,会造成码流数据的生成与发送之间失衡,这会导致网络拥塞或无法充分利用带宽。
以滞留报文字节数为例,滞留报文字节数应当维持在一定期望值。在网络环境差时,如果保持生成码流数据的帧率不变,则滞留报文字节数会持续增加;在网络环境好时,如果生成码流数据的帧率太低,则滞留报文字节数会减小甚至变成0,会浪费带宽。换言之,滞留报文字节数可以反映当前真实的网络环境状况。
因此,可以根据滞留报文字节数来确定目标帧率,以使滞留报文字节数稳定在期望值。比如,可以采用预设的PID控制算法来实现目标帧率的确定,以使滞留报文字节数稳定在期望值,具体如下:
假设:Sv是滞留报文字节数的期望值,Pv是滞留报文字节数;
基于Sv和Pv计算出Et,即t时刻(当前统计周期的统计时刻)Sv和Pv的差值:Et=Sv-Pv,结合前述实施例,将Et作为帧率调整参数,在依据图像分辨率及当前帧率计算出当前带宽之后,依据当前带宽和Et计算出目标带宽,再依据目标带宽和图像分辨率可以计算出目标帧率。
在目标帧率与当前帧率不一致时,可以确定出当前帧率需要调整的帧率,比如上调1帧,下调1帧,具体可以通过目标帧率与当前帧率作差确定。
但是,无线网络的特点是空中环境变化比较大,直接基于Et来调整,会出现上下调整帧率太大的问题。比如,当前帧率是18帧每秒,如果在下一时刻变成22帧每秒,则因为这种帧率快速变化,用户看到的画面前后变化就会比较明显。
为此,可以对Et进行缩小处理,将上述的Et乘以一个小于1的平滑因子,设定平滑因子为Kp,将确定出的OUT=Kp×Et作为帧率调整参数。结合前述实施例,将OUT替代Et最终计算出目标帧率,可以平滑帧率变化情况,避免用户看到的画面变化过于明显。
这里的帧率调整参数OUT的计算,可以通过PID控制算法中的P(比例控制)部分实现,即平滑因子Kp作为P部分的比例系数,差值Et作为P部分的输入参数。
但是,PID控制算法中,单纯的比例控制会积累误差(在PID控制算法中叫余差),因为帧率调整的最小单位是1帧(但根据帧率调整参数反推出的数据可能不是整帧数),所以可能每一次调整都会存在一个余差,这个余差会积累。
为了避免余差累积导致计算出的目标帧率误差过大,可以借助PID中的I(积分)部分进行控制,具体如下:
假设:0时刻到t时刻每次Sv和Pv的差值为E0,E1,E2,E3,…,Et-1,Et
将Et积分:
Figure BDA0002411428790000201
实际计算就是:/>
Figure BDA0002411428790000202
(Et有正有负,所以计算结果有可能是正的,也有可能是负的);
P部分与I部分综合考虑后,确定出的帧率调整参数OUT的计算公式如下:
Figure BDA0002411428790000203
为了使得帧率控制更平滑,可以对I(积分)部分一同进行比例控制(设定比例系数为Ki),最终帧率调整参数OUT的计算公式为:
Figure BDA0002411428790000204
其中,Kp和Ki可以根据设备及使用场景来确定,具体不做限定;
再来结合前述实施例,将这里的OUT替代Et最终计算出目标帧率,可以使帧率调节更平滑,可以在避免帧率快速变化的同时,避免较大的调整误差。
可以理解,上述方式是以滞留报文字节数为例展开说明的,但是并不应限制于滞留报文字节数,比如滞留报文个数也是适用的。
下面结合图3示出的终端设备来说明一下本发明实施例的码流控制方法。
图3中,终端设备包含4个部分,MSM、MSM驱动、指定进程、及DSP(数字信号处理)系统,其中:
DSP系统可以由软件、硬件组成,硬件可以包括DSP芯片等。DSP系统作为码流数据生成端,可以将图像按照一定的帧率进行编码以生成码流数据。DSP系统可以通过IPC接口与指定进程交互,比如,可以响应于指定进程发送的帧率配置请求而调整已配置的帧率,以及将生成的码流数据传输给指定进程等。
指定进程可以通过Netlink接口与MSM驱动交互,比如,接收MSM驱动上报的消费统计信息,配置MSM驱动的消费统计周期,以及将来自DSP系统的码流数据发送给MSM驱动(具体可以是将根据内核网络协议栈对收到的码流数据进行封装得到的报文发送给MSM驱动)等。消费统计信息比如可以包括:码流数据滞留量、和/或、码流数据发送成功率等;指定进程可以根据消费统计信息计算出目标帧率,并将目标帧率携带在帧率配置请求中通过IPC接口发送给DSP系统,以使DSP系统将当前帧率调整为目标帧率。
MSM驱动可以与MSM交互,可以将来自DSP系统的码流数据发送给MSM(具体可以是由指定进程对码流数据进行封装所得的报文发送给MSM),发送消费事件报告配置请求以配置MSM上报消费事件报告的周期、内容,以及接收MSM上报的消费事件报告(比如WDS事件报告)等。消费事件报告的内容可以包括:当前统计周期内的码流数据发送信息(具体可以是报文个数和/或报文字节数)。以报文字节数为例,MSM驱动可以根据消费事件报告中的码流数据发送信息,统计出当前统计周期内的消费统计信息,并通过Netlink接口上报给指定进程。为了避免消费统计信息出现错误,可以对被成功发送的报文进行过滤,即将由非码流数据封装而成的报文过滤掉,比如ARP报文等,避免其他报文影响对消费统计信息的统计。
MSM根据MSM驱动下发的消费事件报告配置请求,以通知的形式在每个统计周期的统计时刻到达时上报消费事件报告。MSM是可以与运营商的接入网交互的实体,作为码流数据发送端,将码流数据(具体可以是报文)发送至接入网中,接入网会将码流数据传输至核心网,最终到达另一终端设备或服务器等。
整体来说,在进行码流控制时,DSP系统可以按照用户配置的帧率等信息生成原始的码流数据,码流数据经指定进程、MSM驱动后到达MSM,并最终由MSM发出。MSM在每个统计周期的统计时刻,将消费事件报告以通知的形式上报MSM驱动。MSM驱动收到消费事件报告后,依据消费事件报告中的码流数据发送信息计算当前时刻的消费统计信息,以通知的形式将消费统计信息上报给指定进程。指定进程通过PID算法对消费统计信息进行处理后,得到目标帧率,并将目标帧率携带在帧率配置请求中发送给DSP系统。DSP系统可以响应帧率配置请求,将当前帧率调整为目标帧率。通过上述四个部分的配合,可实现码流的自适应调整。
本发明还提供一种码流控制装置,在一个实施例中,参看图4,该装置100包括:
目标帧率确定模块101,用于依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率;
帧率调整模块102,用于当所述目标帧率与所述码流数据生成端的当前帧率不一致时,控制所述码流数据生成端将所述当前帧率调整为所述目标帧率,以使所述码流数据生成端按照所述目标帧率生成码流数据。
在一个实施例中,所述目标帧率确定模块依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率时,具体用于:
依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据滞留量;
依据所述码流数据滞留量,确定码流数据生成端生成码流数据的目标帧率。
在一个实施例中,所述码流数据发送信息包括被成功发送的码流数据量N1;
所述目标帧率确定模块依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据滞留量时,具体用于:
获取所述码流数据生成端在所述当前统计周期内生成的码流数据量N2;
依据所述码流数据量N2与所述码流数据量N1,确定当前统计周期内的码流数据滞留量。
在一个实施例中,
所述目标帧率确定模块依据所述码流数据滞留量,确定码流数据生成端生成码流数据的目标帧率时,具体用于:
依据所述码流数据滞留量和预设的码流数据目标滞留量确定帧率调整参数,其中,所述帧率调整参数用于调整所述码流数据滞留量以缩小所述码流数据滞留量与所述预设的码流数据目标滞留量之间的差异;
依据所述帧率调整参数与所述当前帧率确定所述目标帧率。
在一个实施例中,所述目标帧率确定模块依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率时,具体用于:
依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据发送成功率;
依据所述码流数据发送成功率,确定码流数据生成端生成码流数据的目标帧率。
在一个实施例中,所述码流数据发送信息包括被成功发送的码流数据量N1;
所述目标帧率确定模块依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据发送成功率时,具体用于:
获取所述码流数据生成端在所述当前统计周期内生成的码流数据量N2;
计算所述码流数据量N1与所述码流数据量N2的比值,将所述比值确定为所述码流数据发送成功率。
在一个实施例中,所述目标帧率确定模块依据所述码流数据发送成功率,确定码流数据生成端生成码流数据的目标帧率时,具体用于:
依据所述码流数据发送成功率和预设的码流数据目标发送成功率确定帧率调整参数,其中,所述帧率调整参数用于调整所述码流数据发送成功率以缩小所述码流数据发送成功率和预设的码流数据目标发送成功率之间的差异;
依据所述帧率调整参数与所述当前帧率确定所述目标帧率。
在一个实施例中,所述目标帧率确定模块依据所述帧率调整参数与所述当前帧率确定所述目标帧率时,具体用于:
依据已配置的图像分辨率与当前帧率计算出当前带宽,所述图像分辨率与图像被编码生成的码流数据相关;
依据所述当前带宽与所述帧率调整参数计算出目标带宽;
根据所述目标带宽与所述图像分辨率计算出所述目标帧率。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元。
本发明还提供一种电子设备,包括处理器及存储器;所述存储器存储有可被处理器调用的程序;其中,所述处理器执行所述程序时,实现如前述实施例中所述的码流控制方法。
本发明码流控制装置的实施例可以应用在电子设备上。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,图5是本发明根据一示例性实施例示出的码流控制装置100所在电子设备的一种硬件结构图,除了图5所示的处理器510、内存530、接口520、以及非易失性存储器540之外,实施例中装置100所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
本发明还提供一种机器可读存储介质,其上存储有程序,该程序被处理器执行时,实现如前述实施例中任意一项所述的码流控制方法。
本发明可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。机器可读存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。机器可读存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (11)

1.一种码流控制方法,其特征在于,该方法包括:
依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率;所述码流数据发送信息包括被成功发送的码流数据量;
其中,所述目标帧率的帧率调整参数计算公式包括:
Figure FDA0003964641210000011
Et包括t时刻Sv和Pv的差值;所述t时刻是当前统计周期的统计时刻;Sv是滞留报文字节数的期望值,Pv是滞留报文字节数;Kp包括小于1的平滑因子;
当所述目标帧率与所述码流数据生成端的当前帧率不一致时,控制所述码流数据生成端将所述当前帧率调整为所述目标帧率,以使所述码流数据生成端按照所述目标帧率生成码流数据,以缩小码流数据滞留量与预设的码流数据目标滞留量之间的差异,和/或以缩小码流数据发送成功率和预设的码流数据目标发送成功率之间的差异;所述码流数据滞留量包括:统计周期内应被发送、但未被成功发送的码流数据。
2.如权利要求1所述的码流控制方法,其特征在于,所述依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率包括:
依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据滞留量;
依据所述码流数据滞留量,确定码流数据生成端生成码流数据的目标帧率。
3.如权利要求2所述的码流控制方法,其特征在于,所述码流数据发送信息包括被成功发送的码流数据量N1;
所述依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据滞留量,包括:
获取所述码流数据生成端在所述当前统计周期内生成的码流数据量N2;
依据所述码流数据量N2与所述码流数据量N1,确定当前统计周期内的码流数据滞留量。
4.如权利要求2所述的码流控制方法,其特征在于,
所述依据所述码流数据滞留量,确定码流数据生成端生成码流数据的目标帧率包括:
依据所述码流数据滞留量和预设的码流数据目标滞留量确定帧率调整参数,其中,所述帧率调整参数用于调整所述码流数据滞留量以缩小所述码流数据滞留量与所述预设的码流数据目标滞留量之间的差异;
依据所述帧率调整参数与所述当前帧率确定所述目标帧率。
5.如权利要求1所述的码流控制方法,其特征在于,所述依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率包括:
依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据发送成功率;
依据所述码流数据发送成功率,确定码流数据生成端生成码流数据的目标帧率。
6.如权利要求5所述的码流控制方法,其特征在于,所述码流数据发送信息包括被成功发送的码流数据量N1;
所述依据码流数据发送端在当前统计周期内的码流数据发送信息,确定当前统计周期内的码流数据发送成功率,包括:
获取所述码流数据生成端在所述当前统计周期内生成的码流数据量N2;
计算所述码流数据量N1与所述码流数据量N2的比值,将所述比值确定为所述码流数据发送成功率。
7.如权利要求5所述的码流控制方法,其特征在于,所述依据所述码流数据发送成功率,确定码流数据生成端生成码流数据的目标帧率包括:
依据所述码流数据发送成功率和预设的码流数据目标发送成功率确定帧率调整参数,其中,所述帧率调整参数用于调整所述码流数据发送成功率以缩小所述码流数据发送成功率和预设的码流数据目标发送成功率之间的差异;
依据所述帧率调整参数与所述当前帧率确定所述目标帧率。
8.如权利要求4或7所述的码流控制方法,其特征在于,所述依据所述帧率调整参数与所述当前帧率确定所述目标帧率包括:
依据已配置的图像分辨率与当前帧率计算出当前带宽,所述图像分辨率与图像被编码生成的码流数据相关;
依据所述当前带宽与所述帧率调整参数计算出目标带宽;
根据所述目标带宽与所述图像分辨率计算出所述目标帧率。
9.一种码流控制装置,其特征在于,该装置包括:
目标帧率确定模块,用于依据码流数据发送端在当前统计周期内的码流数据发送信息,确定码流数据生成端生成码流数据的目标帧率;所述码流数据发送信息包括被成功发送的码流数据量;
其中,所述目标帧率的帧率调整参数计算公式包括:
Figure FDA0003964641210000031
Et包括t时刻Sv和Pv的差值;所述t时刻是当前统计周期的统计时刻;Sv是滞留报文字节数的期望值,Pv是滞留报文字节数;Kp包括小于1的平滑因子;
帧率调整模块,用于当所述目标帧率与所述码流数据生成端的当前帧率不一致时,控制所述码流数据生成端将所述当前帧率调整为所述目标帧率,以使所述码流数据生成端按照所述目标帧率生成码流数据,以缩小码流数据滞留量与预设的码流数据目标滞留量之间的差异,和/或以缩小码流数据发送成功率和预设的码流数据目标发送成功率之间的差异;所述码流数据滞留量包括:统计周期内应被发送、但未被成功发送的码流数据。
10.一种电子设备,其特征在于,包括处理器及存储器;所述存储器存储有可被处理器调用的程序;其中,所述处理器执行所述程序时,实现如权利要求1-8中任意一项所述的码流控制方法。
11.一种机器可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现如权利要求1-8中任意一项所述的码流控制方法。
CN202010177931.4A 2020-03-13 2020-03-13 码流控制方法、装置及设备、存储介质 Active CN113395244B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010177931.4A CN113395244B (zh) 2020-03-13 2020-03-13 码流控制方法、装置及设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010177931.4A CN113395244B (zh) 2020-03-13 2020-03-13 码流控制方法、装置及设备、存储介质

Publications (2)

Publication Number Publication Date
CN113395244A CN113395244A (zh) 2021-09-14
CN113395244B true CN113395244B (zh) 2023-03-24

Family

ID=77616419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010177931.4A Active CN113395244B (zh) 2020-03-13 2020-03-13 码流控制方法、装置及设备、存储介质

Country Status (1)

Country Link
CN (1) CN113395244B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103702139A (zh) * 2013-12-13 2014-04-02 华中科技大学 一种移动环境下基于可扩展编码的视频点播系统
CN105208390A (zh) * 2014-06-30 2015-12-30 杭州海康威视数字技术股份有限公司 视频编码的码率控制方法及其系统
CN108540827A (zh) * 2017-03-01 2018-09-14 杭州海康威视数字技术股份有限公司 数据处理方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101222296B (zh) * 2008-01-31 2010-06-09 上海交通大学 上行蜂窝视频通信中自适应的传输方法及系统
CN105635734B (zh) * 2014-11-03 2019-04-12 掌赢信息科技(上海)有限公司 基于视频通话场景的自适应视频编码方法及装置
CN105681793B (zh) * 2016-01-06 2018-10-23 四川大学 基于视频内容复杂度自适应的极低延迟高性能视频编码帧内码率控制方法
CN108235016B (zh) * 2016-12-21 2019-08-23 杭州海康威视数字技术股份有限公司 一种码率控制方法及装置
CN110572424A (zh) * 2018-06-06 2019-12-13 杭州海康威视数字技术股份有限公司 设备控制方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103702139A (zh) * 2013-12-13 2014-04-02 华中科技大学 一种移动环境下基于可扩展编码的视频点播系统
CN105208390A (zh) * 2014-06-30 2015-12-30 杭州海康威视数字技术股份有限公司 视频编码的码率控制方法及其系统
CN108540827A (zh) * 2017-03-01 2018-09-14 杭州海康威视数字技术股份有限公司 数据处理方法及装置

Also Published As

Publication number Publication date
CN113395244A (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
US11503307B2 (en) System and method for automatic encoder adjustment based on transport data
RU2305908C2 (ru) Адаптивный способ оценивания скорости передачи мультимедийных данных
EP2859703B1 (en) Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US20050213502A1 (en) Method and system for controlling operation of a network, such as a WLAN, related network and computer program product therefor
US9042444B2 (en) System and method for transmission of data signals over a wireless network
CN109818874B (zh) 数据传输方法、设备及计算机存储介质
US20120230390A1 (en) Adaptive Control of Encoders for Continuous Data Streaming
JP2005503722A (ja) 輻輳制御用に伝送レートを計算するためにバッファサイズの受領を用いるデータ通信方法とシステム
US20160156563A1 (en) Network Assisted Rate Adaptation
AU2021200428C1 (en) System and method for automatic encoder adjustment based on transport data
CN109076062B (zh) 边缘节点控制
US11190430B2 (en) Determining the bandwidth of a communication link
CN113395244B (zh) 码流控制方法、装置及设备、存储介质
CN113542215A (zh) 一种提升流媒体传输性能的方法及相关装置
CN116388854B (zh) 通过调节虚拟信道传输数据信息的方法、装置及存储介质
Ţurcanu et al. The optimization of video transmission quality in wireless networks
CN114650420A (zh) 通信控制方法、装置、设备和计算机可读存储介质
CN111314145A (zh) 一种流量控制方法、终端、交换机
CN117729389A (zh) 适用于自组网的视频低延时传输及带宽自适应控制方法
CN114727308A (zh) 一种信息处理方法、装置、设备及可读存储介质
Huszák New methods for improving multimedia quality in IP networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant