CN108124155B - 一种码率控制方法、装置及电子设备 - Google Patents

一种码率控制方法、装置及电子设备 Download PDF

Info

Publication number
CN108124155B
CN108124155B CN201611088303.9A CN201611088303A CN108124155B CN 108124155 B CN108124155 B CN 108124155B CN 201611088303 A CN201611088303 A CN 201611088303A CN 108124155 B CN108124155 B CN 108124155B
Authority
CN
China
Prior art keywords
rate
coding rate
coding
target
code rate
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
CN201611088303.9A
Other languages
English (en)
Other versions
CN108124155A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201611088303.9A priority Critical patent/CN108124155B/zh
Publication of CN108124155A publication Critical patent/CN108124155A/zh
Application granted granted Critical
Publication of CN108124155B publication Critical patent/CN108124155B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请提供一种码率控制方法、装置及电子设备;所述码率控制方法包括:获取目标编码码率对应的量化参数QP门限值;当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。本申请能够在环境发生变化时保证推流的流畅性。

Description

一种码率控制方法、装置及电子设备
技术领域
本发明涉及网络领域,尤其涉及一种码率控制方法、装置及电子设备。
背景技术
在网络直播、视频聊天等应用场景中,将音视频数据推送到服务器的过程可称为推流,进行推流的移动终端可以称为移动推流端,一般包括采集模块、编码器和网络上传模块;采集模块通过摄像头和麦克风获取到最原始的音视频信号,编码器则对这些原始的音视频信号进行编码(即:将原始的音视频信号按照某种方法进行压缩),最后由网络上传模块上传到服务器。
目前,可以通过预先设置编码器的目标编码码率(即:期望编码器能够达到的编码码率)来进行码率控制;编码码率表示一秒钟的音视频数据经过编码器编码后生成的数据量,单位通常是比特每秒(bps)、千比特每秒(kbps)、兆比特每秒(mbps)等;比如编码码率是600kbps,就表示每一秒原始的音视频信号在编码后会得到600kb的数据。
一般情况下,编码器的实际编码码率与目标编码码率能够一致,但有些场景下也有例外。比如视频编码器的目标编码码率为N1,假设正常情况下所采集的视频信号中两帧的差别为M,这时视频编码器的QP值为Q1,实际编码码率在N1左右。但是,对于采集的视频在较长一段时间内是静止的这种情况,由于两帧之间的差别是非常小的(接近于0),这样编码后得到数据量将很小,造成该情况下视频编码器的实际编码码率N2会很小,甚至远远小于N1。视频编码器可以通过降低量化参数(Quantization Parameter,QP)值来提高实际编码码率,使其接近目标编码码率。但是由于这时两帧的差别极小,即使QP值降低成远小于Q1的Q2,但实际编码码率还是不会有太大的增加。如果在QP值被降得很低时拍摄的场景突然发生了变化,两帧的差别重新变成了M,由于QP值目前是Q2,因此视频编码器的实际编码码率会突然增大,并可能远超N2和N1。而实际编码码率过高将导致编码后的数据有可能无法及时上传,影响推流的流畅性。
发明内容
本申请提供一种码率控制方法、装置及电子设备,能够在环境发生变化时保证推流的流畅性。
本申请采用如下技术方案。
一种码率控制方法,包括:
获取目标编码码率对应的量化参数QP门限值;
当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。
可选地,所述获取目标编码码率对应的QP门限值包括:
根据预先建立的QP值与编码码率的对应关系,获取目标编码码率对应的QP值,以获取的QP值作为所述目标编码码率对应的QP门限值。
可选地,所述的码率控制方法还包括:
获取缓冲数据量、数据上传速度、实际编码码率;
当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率。
可选地,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率。
可选地,所述第一编码码率是90%的所述数据上传速度。
可选地,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
可选地,所述第二编码码率是90%的所述数据上传速度;
所述第三编码码率是:所述数据上传速度与实际编码码率和预设编码码率中的较大值的平均值的90%。
可选地,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量小于预设阈值达到预定时间长度时,如果目标编码码率不小于预设编码码率,则将目标编码码率设置成大于原目标编码码率的第四编码码率;如果目标编码码率小于预设编码码率,则将目标编码码率设置成大于第四编码码率的第五编码码率。
可选地,所述第四编码码率是原目标编码码率的110%;所述第五编码码率是原目标编码码率的120%。
一种码率控制方法,包括:
获取缓冲数据量、数据上传速度、实际编码码率;
当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率。
可选地,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率。
可选地,所述第一编码码率是90%的所述数据上传速度。
可选地,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
可选地,所述第二编码码率是90%的所述数据上传速度;
所述第三编码码率是:所述数据上传速度与实际编码码率和预设编码码率中的较大值的平均值的90%。
可选地,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量小于预设阈值达到预定时间长度时,如果目标编码码率不小于预设编码码率,则将目标编码码率设置成大于原目标编码码率的第四编码码率;如果目标编码码率小于预设编码码率,则将目标编码码率设置成大于第四编码码率的第五编码码率。
可选地,所述第四编码码率是原目标编码码率的110%;所述第五编码码率是原目标编码码率的120%。
可选地,所述的码率控制方法还包括:
获取目标编码码率对应的量化参数QP门限值;
当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。
可选地,所述获取目标编码码率对应的QP门限值包括:
根据预先建立的QP值与编码码率的对应关系,获取目标编码码率对应的QP值,以获取的QP值作为所述目标编码码率对应的QP门限值。
一种码率控制装置,包括:
获取模块,用于获取目标编码码率对应的量化参数QP门限值;
量化参数调整模块,用于当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。
可选地,所述获取模块获取目标编码码率对应的QP门限值包括:
所述获取模块根据预先建立的QP值与编码码率的对应关系,获取目标编码码率对应的QP值,以获取的QP值作为所述目标编码码率对应的QP门限值。
可选地,所述的码率控制装置还包括:
监视模块,用于获取缓冲数据量、数据上传速度、实际编码码率;
编码码率调整模块,用于当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率。
可选地,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
所述编码码率调整模块当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率。
可选地,所述第一编码码率是90%的所述数据上传速度。
可选地,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
可选地,所述第二编码码率是90%的所述数据上传速度;
所述第三编码码率是:所述数据上传速度与实际编码码率和预设编码码率中的较大值的平均值的90%。
可选地,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量小于预设阈值达到预定时间长度时,如果目标编码码率不小于预设编码码率,则将目标编码码率设置成大于原目标编码码率的第四编码码率;如果目标编码码率小于预设编码码率,则将目标编码码率设置成大于第四编码码率的第五编码码率。
可选地,所述第四编码码率是原目标编码码率的110%;所述第五编码码率是原目标编码码率的120%。
一种码率控制装置,包括:
监视模块,用于获取缓冲数据量、数据上传速度、实际编码码率;
编码码率调整模块,用于当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率。
可选地,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率。
可选地,所述第一编码码率是90%的所述数据上传速度。
可选地,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
可选地,所述第二编码码率是90%的所述数据上传速度;
所述第三编码码率是:所述数据上传速度与实际编码码率和预设编码码率中的较大值的平均值的90%。
可选地,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量小于预设阈值达到预定时间长度时,如果目标编码码率不小于预设编码码率,则将目标编码码率设置成大于原目标编码码率的第四编码码率;如果目标编码码率小于预设编码码率,则将目标编码码率设置成大于第四编码码率的第五编码码率。
可选地,所述第四编码码率是原目标编码码率的110%;所述第五编码码率是原目标编码码率的120%。
可选地,所述的码率控制装置还包括:
获取模块,用于获取目标编码码率对应的量化参数QP门限值;
量化参数调整模块,用于当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。
可选地,所述获取模块获取目标编码码率对应的QP门限值包括:
所述获取模块根据预先建立的QP值与编码码率的对应关系,获取目标编码码率对应的QP值,以获取的QP值作为所述目标编码码率对应的QP门限值。
一种用于进行码率控制的电子设备,包括:
第一存储器和第一处理器;
所述第一存储器用于保存用于进行码率控制的程序;所述用于进行码率控制的程序在被所述第一处理器读取执行时,执行以下操作:
获取目标编码码率对应的量化参数QP门限值;
当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。
一种用于进行码率控制的电子设备,包括:
第二存储器和第二处理器;
所述第二存储器用于保存用于进行码率控制的程序;所述用于进行码率控制的程序在被所述第二处理器读取执行时,执行以下操作:
获取缓冲数据量、数据上传速度、实际编码码率;
当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率。
本申请包括以下优点:
本申请至少一个实施例通过QP门限值可以保证QP值不会被调整得过小,从而避免了当画面从静止转成活动时,实际编码码率过大而影响推流的流畅性。
本申请至少一个实施例中,根据缓冲数据量、数据上传速度和实际编码码率三者对目标编码码率进行调整,可以使得在网络抖动的情况下,目标编码码率可以随着网络带宽的变化而做出相应的改变,从而实现对码率的动态控制,保证推流的流畅。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有优点。
附图说明
图1是实施例一的码率控制方法的流程图;
图2是实施例二的码率控制方法的流程图;
图3是实施例一的码率控制装置的示意图;
图4是实施例二的码率控制装置的示意图。
具体实施方式
下面将结合附图及实施例对本申请的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一种配置中,进行码率控制的计算设备可包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存(memory)。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。内存可能包括模块1,模块2,……。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
实施例一、一种码率控制方法,如图1所示,包括步骤S110~S120:
S110、获取目标编码码率对应的QP门限值;
S120、当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。
本实施例中,实际编码码率和目标编码码率不一致可以是指:实际编码码率和目标编码码率不同,或者实际编码码率与目标编码码率之间的差值的绝对值大于预设门限。当通过调整QP值调整实际编码码率时,QP值越大则压缩率越高,实际编码码率越小;QP值越小则压缩率越低,实际编码码率越大。本实施例通过QP门限值可以保证QP值不会被调整得过小,从而避免了实际编码码率过大而影响推流的流畅性。
由于音频编码码率较小,且基本上是固定的,所以码率控制的对象通常都是指视频编码。本实施例中的目标编码码率、实际编码码率等可以专指对于视频的编码码率;相应地,编码器可以专指视频编码器;在需要对音频进行码率控制的场合,目标编码码率、实际编码码率也可以是指对于音频的编码码率。
本实施例中,步骤S110不仅可以在调整QP值之前进行,也可以在调整QP值后进行。
本实施例的方法可以但不限于适用于移动推流端;步骤S110~S120可以由编码器执行,也可以由移动推流端中的其它能够设置编码器的参数的部分执行。
一种实现方式中,所述获取目标编码码率对应的QP门限值可以包括:
根据预先建立的QP值与编码码率的对应关系,获取目标编码码率对应的QP值,以获取的QP值作为所述目标编码码率对应的QP门限值。
本实现方式中,QP值与编码码率的对应关系可以通过实验获得,比如可以在正常采集场景(不会出现画面长时间静止等特殊情况的场景)下,获取各QP值所对应的实际编码码率,得到编码码率和QP值之间的对应关系;目标编码码率即期望达到的编码码率,通过目标编码码率可以在该对应关系中找到对应的QP值,以该QP值作为QP门限值。
比如假设QP值为x时的实际编码码率为y,则当目标编码码率为y时,QP门限值为x。
可以通过多次实验的结果来获得各QP值所对应的实际编码码率,比如在n个正常采集场景中分别获取QP值为x时的实际编码码率,比如得到的实际编码码率分别是y1、y2、……、yn,可以取y1、y2、……、yn的平均值作为QP值为x时对应的编码码率y。
本实现方式中,QP值与编码码率的对应关系可以但不限于表示成关系曲线的形式,也可以表示为表格等形式。
其它实现方式中,也可以通过实验等方式确定目标编码码率与QP门限值之间的对应关系,在获取目标编码码率对应的QP门限值时,可以直接根据该对应关系查询目标编码码率对应的QP门限值。
一种实现方式中,所述方法还可以包括:
S130、获取缓冲数据量、数据上传速度、实际编码码率;
S140、当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率调整目标编码码率。
本实现方式中的步骤S130、S140和S110、S120没有必然的前后顺序;如果先进行步骤S130、S140调整了目标编码码率,则步骤S110、S120中的目标编码码率是调整后的目标编码码率;如果未调整目标编码码率,则步骤S110、S120中的目标编码码率是原先的目标编码码率。
一般来说,判断推流技术好坏的标准有两个:(1)上传的视频能否流畅的播放(假设播放端的网络条件非常好,视频的卡顿与播放端无关);(2)同等网络条件下视频更清晰。其中视频的流畅性比清晰度更重要。
而推流时一般通过无线网络进行上传,无线网络包括wifi、4G、3G等;无线网络的特征是带宽有限,且具有抖动性,即:网络带宽会忽高忽低。当网络带宽高的时候,数据上传速度就会快;反之,网络带宽低的时候,数据上传速度就会变慢。
如果要想上传的视频保持流畅,实际编码码率就要低于数据上传速度,其中,数据上传速度受制于网络带宽,是单位时间内通过网络能够上传的最大数据量,单位包括bps、kbps、mbps等。但是,由于在满足流畅性的基础上,还需要保证清晰度,而视频的清晰度与视频的实际编码码率是直接相关的,实际编码码率越高,视频清晰度越高;实际编码码率越低,则清晰度越低;因此,实际编码码率不能低于数据上传速度太多。
本实现方式中,缓冲数据量是指缓冲区中编码后待上传的数据的大小;比如在视频编码器与网络上传模块之间,设有一个视频缓冲区。编码后的视频数据存入到缓冲区中,而网络上传模块则直接从缓冲区中读取编码后的视频数据,缓冲区中数据量的变化可以反映出网络带宽的变化。当缓冲区中的数据增多时,表明网络条件变差了,数据上传速度小于实际编码码率,这时就应该降低实际编码码率(即数据的生成速度);反之,如果缓冲区中的数据减少了,表明数据上传速度大于实际编码码率,这时可以提高实际编码码率。还有一种情况,缓冲数据量长时间为0,这表明编码的数据都能够及时的上传,即数据上传速度大于或等于实际编码码率,此时也可以提高实际编码码率。由于编码器的实际编码码率需要编码后才能得到,所以需要通过设置编码器的目标编码码率,来相应调整实际编码码率。
本实现方式中,满足预定条件可以但不限于是指缓冲数据量、数据上传速度、实际编码码率中的一个或多个的情况与预设情况匹配,比如大于、或小于、或等于某个值,再比如相互之间的大小关系符合预设情况。预设情况一般是实际编码码率不适合当前网络带宽的情况,比如实际编码码率大于当前网络带宽所能提供的数据上传速度、再比如实际编码码率小于当前网络带宽所能提供的数据上传速度较多(影响清晰度)等。在其它实现方式中,预定条件也可以包含收到调整指令、调整周期到达等,还可以根据需要自行设置该预定条件。
本实现方式中,根据缓冲数据量、数据上传速度和实际编码码率三者对目标编码码率进行调整,可以使得目标编码码率随着网络带宽的变化而做出相应的改变,从而实现对码率的动态控制。
本实现方式中,可以实时监控缓冲数据量、数据上传速度、实际编码码率,一旦满足预定条件就进行目标编码码率的调整;也可以周期性或根据指令获取缓冲数据量、数据上传速度、实际编码码率,判断是否满足预定条件,一旦满足预定条件就进行目标编码码率的调整。
本实现方式中,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率可以包括:
当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率。
其中,所述第一编码码率可以但不限于是90%的所述数据上传速度。在其它实现方式中,所述第一编码码率也可以是数据上传速度乘以n1%;n1可以但不限于设置成90左右,比如但不限于设置成85~95的任意值。
本实现方式中,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率可以包括:
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
其中,预设编码码率可以是视频的清晰度达到一定标准时所采用的实际编码码率。
其中,所述第二编码码率可以但不限于是90%的所述数据上传速度。在其它实现方式中,所述第二编码码率也可以是数据上传速度乘以n2%;n2可以但不限于设置成90左右,比如但不限于设置成85~95的任意值。
其中,所述第三编码码率可以但不限于是:所述数据上传速度与实际编码码率和预设编码码率中的较大值的平均值的90%;即:
90%×[数据上传速度+Max(实际编码码率,预设编码码率)]/2。
在其它实现方式中,所述第三编码码率也可以是数据上传速度与实际编码码率和预设编码码率中的较大值的平均值乘以n3%;n3可以但不限于设置成90左右,比如但不限于设置成85~95的任意值。本实现方式中,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率可以包括:
当缓冲数据量小于预设阈值达到预定时间长度时,如果目标编码码率不小于预设编码码率,则将目标编码码率设置成大于原目标编码码率的第四编码码率;如果目标编码码率小于预设编码码率,则将目标编码码率设置成大于第四编码码率的第五编码码率。
其中,所述第四编码码率可以但不限于为原目标编码码率的110%;在其它实现方式中,所述第四编码码率也可以是数据上传速度乘以n4%;n4可以但不限于设置成110左右,比如但不限于设置成105~115的任意值。
其中,所述第五编码码率可以但不限于为原目标编码码率的120%;在其它实现方式中,所述第五编码码率也可以是数据上传速度乘以n5%;n5可以但不限于设置成120左右,比如但不限于设置成115~125的任意值。
下面用一个例子介绍本实施例,该例子可以应用于网络直播或视频聊天等场景中,进行直播或进行视频聊天的用户通过手机、平板电脑、笔记本电脑或其它设备完成推流的过程,比如通过这些设备上的摄像头和麦克风分别完成视频信号和音频信号的采集,通过这些设备中的音、视频编码器对音、视频信号进行编码,通过这些设备中的无线网卡上传编码后的数据。
本例子中,用户用于推流的设备中,由视频编码器或其它可以对视频编码器的参数进行监视、调整的部件来执行本实施例的方法,以对视频编码器进行码率控制。在用户用于推流的设备中,预先保存了QP值与编码码率的关系曲线;该关系曲线可以通过在正常拍摄场景下记录QP值对应的实际编码码率来建立。
本例子中,对视频编码器进行码率控制的流程如下,包括步骤201~202:
201、实时获取视频缓冲区中的缓冲数据量BufferingFame、视频数据上传速度UploadBitrate、视频编码器的实际编码码率EncodingBitrate。
202、根据BufferingFrames、UploadBitrate和EncodingBitrate来调整视频编码器的目标编码码率TargetBitrate;可以在调整目标编码码率后,根据上述关系曲线获取TargetBitrate对应的QP值,作为QP门限值MinQP;也可以在调整QP时再获取目标编码码率对应的QP值,作为QP门限值。若视频编码器编码过程中调整QP时,调整到的QP值小于MinQP,则令QP=MinQP。
调整TargetBitrate的方式如下:
C1、如果BufferingFrames大于预设阈值BufferingThreshold,且UploadBitrate小于EncodingBitrate,则设置TargetBitrate为UploadBitrate的90%。
C2、如果BufferingFrames大于BufferingThreshold,且UploadBitrate大于EncodingBitrate,可以分两种情况处理:
设置TargetBitrate=UploadBitrate×90%。若TargetBitrate小于预设编码码率OptimBitrate,则TargetBitrate的值不变,仍为UploadBitrate×90%;若TargetBitrate大于OptimBitrate,则TargetBitrate=(UploadBitrate+Max(EncodingBitrate,OptimBitrate))/2×90%。
TargetBitrate等于OptimBitrate时可以为UploadBitrate×90%,也可以为TargetBitrate=(UploadBitrate+Max(EncodingBitrate,OptimBitrate))/2×90%。
其中,OptimBitrate是视频的清晰度达到了一个让人基本满意的标准时的EncodingBitrate。
C3、如果BufferingFrames小于BufferingThreshold,且能保持预定时间长度,也分两种情况处理:
若当前的TargetBitrate小于OptimBitrate,则设置新的TargetBitrate是原先TargetBitrate的120%;否则,设置新的TargetBitrate是原先TargetBitrate的110%。
TargetBitrate等于OptimBitrate时,可以设置TargetBitrate是原先TargetBitrate的120%或110%。
BufferingFrames等于BufferingThreshold时可以按照BufferingFrames小于BufferingThreshold时的情况处理,也可以按照BufferingFrames大于BufferingThreshold时的情况处理。
本例子中,TargetBitrate和MinQP都作为参数传递给编码器,以保证当推流画面从长期静止突然转入运动时编码器的码率不会飙升,并且在网络抖动的情况下,也可以在保证视频流畅性的同时,又提高视频的清晰度。
实施例二、一种码率控制方法,如图2所示,包括步骤S210~S220:
S210、获取缓冲数据量、数据上传速度、实际编码码率;
S220、当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率。
本实施例的实现细节可参考实施例一的一种实现方式中,步骤S130和S140的具体实现细节。
一种实现方式中,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率可以包括:
当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率。
其中,所述第一编码码率可以但不限于是90%的所述数据上传速度。
一种实现方式中,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率可以包括:
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
其中,所述第二编码码率可以但不限于是90%的所述数据上传速度。
其中,所述第三编码码率可以但不限于是:所述数据上传速度与实际编码码率和预设编码码率中的较大值的平均值的90%。
一种实现方式中,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率可以包括:
当缓冲数据量小于预设阈值达到预定时间长度时,如果目标编码码率不小于预设编码码率,则将目标编码码率设置成大于原目标编码码率的第四编码码率;如果目标编码码率小于预设编码码率,则将目标编码码率设置成大于第四编码码率的第五编码码率。
其中,所述第四编码码率可以但不限于是原目标编码码率的110%。
其中,所述第五编码码率可以但不限于是原目标编码码率的120%。
一种实现方式中,所述的码率控制方法还可以包括:
S230、获取目标编码码率对应的QP门限值;
S240、当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。
步骤S230、S240和步骤S210、S220之间没有必然的前后顺序;如果先通过步骤S210、S220调整了目标编码码率,则步骤S230、S240中的目标编码码率是指调整后的目标编码码率;如果先进行步骤S230和S240,则步骤S230、S240中的目标编码码率是指未经步骤S240调整的目标编码码率。
本实现方式中,所述获取目标编码码率对应的QP门限值可以包括:
根据预先建立的QP值与编码码率的对应关系,获取目标编码码率对应的QP值,以获取的QP值作为所述目标编码码率对应的QP门限值。
本实现方式中,步骤S230和S240的其它实现细节可参见实施例一中步骤S110和S120的实现细节。
实施例三、一种码率控制装置,如图3所示,包括:
获取模块31,用于获取目标编码码率对应的QP门限值;
量化参数调整模块32,用于当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。
本实施例中,所述获取模块31是上述码率控制装置中负责获取QP门限值的部分,可以是软件、硬件或两者的结合。
本实施例中,所述量化参数调整模块32是上述码率控制装置中负责调整QP值的部分,可以是软件、硬件或两者的结合。
一种实现方式中,所述获取模块获取目标编码码率对应的QP门限值可以包括:
所述获取模块根据预先建立的QP值与编码码率的对应关系,获取目标编码码率对应的QP值,以获取的QP值作为所述目标编码码率对应的QP门限值。
一种实现方式中,所述的码率控制装置还可以包括:
监视模块,用于获取缓冲数据量、数据上传速度、实际编码码率;
编码码率调整模块,用于当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率。
本实施例中,所述监视模块是上述码率控制装置中负责获取相应信息的部分,可以是软件、硬件或两者的结合。
本实施例中,所述编码码率调整模块是上述码率控制装置中负责调整目标编码码率的部分,可以是软件、硬件或两者的结合。
本实现方式中,监视模块和编码码率调整模块的操作分别对应于实施例一的一种实现方式中的步骤S130和S140,这两个模块操作的其它实现细节可参见实施例一的上述实现方式。
本实现方式中,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率可以包括:
所述编码码率调整模块当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率。
其中,所述第一编码码率可以但不限于是90%的所述数据上传速度。
本实现方式中,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率可以包括:
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
其中,所述第二编码码率可以但不限于是90%的所述数据上传速度。
其中,所述第三编码码率可以但不限于是:所述数据上传速度与实际编码码率和预设编码码率中的较大值的平均值的90%。
本实现方式中,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率可以包括:
当缓冲数据量小于预设阈值达到预定时间长度时,如果目标编码码率不小于预设编码码率,则将目标编码码率设置成大于原目标编码码率的第四编码码率;如果目标编码码率小于预设编码码率,则将目标编码码率设置成大于第四编码码率的第五编码码率。
其中,所述第四编码码率可以但不限于是原目标编码码率的110%。
其中,所述第五编码码率可以但不限于是原目标编码码率的120%。
本实施例的码率控制装置的获取模块和量化参数调整模块的操作可以分别对应于实施例一中的步骤S110~S120,这两个模块操作的其它实现细节可参见实施例一。
实施例四、一种码率控制装置,如图4所示,包括:
监视模块41,用于获取缓冲数据量、数据上传速度、实际编码码率;
编码码率调整模块42,用于当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率。
本实施例中,所述监视模块41是上述码率控制装置中负责获取相应信息的部分,可以是软件、硬件或两者的结合。
本实施例中,所述编码码率调整模块42是上述码率控制装置中负责调整目标编码码率的部分,可以是软件、硬件或两者的结合。
一种实现方式中,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率可以包括:
当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率。
本实现方式中,所述第一编码码率可以但不限于是90%的所述数据上传速度。
一种实现方式中,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率可以包括:
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
本实现方式中,所述第二编码码率可以但不限于是90%的所述数据上传速度。
本实现方式中,所述第三编码码率可以但不限于是:所述数据上传速度与实际编码码率和预设编码码率中的较大值的平均值的90%。
一种实现方式中,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率可以包括:
当缓冲数据量小于预设阈值达到预定时间长度时,如果目标编码码率不小于预设编码码率,则将目标编码码率设置成大于原目标编码码率的第四编码码率;如果目标编码码率小于预设编码码率,则将目标编码码率设置成大于第四编码码率的第五编码码率。
本实现方式中,所述第四编码码率可以但不限于是原目标编码码率的110%。
本实现方式中,所述第五编码码率可以但不限于是原目标编码码率的120%。
一种实现方式中,所述的码率控制装置还可以包括:
获取模块,用于获取目标编码码率对应的量化参数QP门限值;
量化参数调整模块,用于当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。
本实现方式中,所述获取模块是上述码率控制装置中负责获取QP门限值的部分,可以是软件、硬件或两者的结合。
本实现方式中,所述量化参数调整模块是上述码率控制装置中负责调整QP值的部分,可以是软件、硬件或两者的结合。
本实现方式中,获取模块和量化参数调整模块的操作分别对应于实施例二的一种实现方式中的步骤S230和S240,这两个模块操作的其它实现细节可参见实施例二的上述实现方式。
本实现方式中,所述获取模块获取目标编码码率对应的QP门限值可以包括:
所述获取模块根据预先建立的QP值与编码码率的对应关系,获取目标编码码率对应的QP值,以获取的QP值作为所述目标编码码率对应的QP门限值。
本实施例的码率控制装置的监视模块和编码码率调整模块的操作分别对应于实施例二中的步骤S210~S220,这两个模块操作的其它实现细节可参见实施例二。
实施例五、一种用于进行码率控制的电子设备,包括:
第一存储器和第一处理器;
所述第一存储器用于保存用于进行码率控制的程序;所述用于进行码率控制的程序在被所述第一处理器读取执行时,执行以下操作:
获取目标编码码率对应的量化参数QP门限值;
当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。
本实施例中,用于进行码率控制的程序在被第一处理器读取执行时,所执行的操作对应于实施例一中的步骤S110~S120;该程序所执行的操作的其它细节可参见实施例一。
实施例六、一种用于进行码率控制的电子设备,包括:
第二存储器和第二处理器;
所述第二存储器用于保存用于进行码率控制的程序;所述用于进行码率控制的程序在被所述第二处理器读取执行时,执行以下操作:
获取缓冲数据量、数据上传速度、实际编码码率;
当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率。
本实施例中,用于进行码率控制的程序在被第二处理器读取执行时,所执行的操作对应于实施例二中的步骤S210~S220;该程序所执行的操作的其它细节可参见实施例二。
在既使用实施例五的电子设备,又使用实施例六的电子设备的情况下,这两个电子设备有可能复用硬件,比如第一存储器和第二存储器可以复用同一个存储器,第一处理器和第二处理器也可以复用同一个处理器。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
当然,本申请还可有其他多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请的权利要求的保护范围。

Claims (28)

1.一种码率控制方法,包括:
获取目标编码码率对应的量化参数QP门限值;
当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值;
获取缓冲数据量、数据上传速度、实际编码码率;
当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率,包括:
当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率;
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
2.如权利要求1所述的码率控制方法,其特征在于,所述获取目标编码码率对应的QP门限值包括:
根据预先建立的QP值与编码码率的对应关系,获取目标编码码率对应的QP值,以获取的QP值作为所述目标编码码率对应的QP门限值。
3.如权利要求1所述的码率控制方法,其特征在于:
所述第一编码码率是90%的所述数据上传速度。
4.如权利要求1所述的码率控制方法,其特征在于:
所述第二编码码率是90%的所述数据上传速度;
所述第三编码码率是:所述数据上传速度与实际编码码率和预设编码码率中的较大值的平均值的90%。
5.如权利要求1所述的码率控制方法,其特征在于,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量小于预设阈值达到预定时间长度时,如果目标编码码率不小于预设编码码率,则将目标编码码率设置成大于原目标编码码率的第四编码码率;如果目标编码码率小于预设编码码率,则将目标编码码率设置成大于第四编码码率的第五编码码率。
6.如权利要求5所述的码率控制方法,其特征在于:
所述第四编码码率是原目标编码码率的110%;所述第五编码码率是原目标编码码率的120%。
7.一种码率控制方法,包括:
获取缓冲数据量、数据上传速度、实际编码码率;
当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率,包括:
当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率;
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
8.如权利要求7所述的码率控制方法,其特征在于:
所述第一编码码率是90%的所述数据上传速度。
9.如权利要求7所述的码率控制方法,其特征在于:
所述第二编码码率是90%的所述数据上传速度;
所述第三编码码率是:所述数据上传速度与实际编码码率和预设编码码率中的较大值的平均值的90%。
10.如权利要求7所述的码率控制方法,其特征在于,所述当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量小于预设阈值达到预定时间长度时,如果目标编码码率不小于预设编码码率,则将目标编码码率设置成大于原目标编码码率的第四编码码率;如果目标编码码率小于预设编码码率,则将目标编码码率设置成大于第四编码码率的第五编码码率。
11.如权利要求10所述的码率控制方法,其特征在于:
所述第四编码码率是原目标编码码率的110%;所述第五编码码率是原目标编码码率的120%。
12.如权利要求7~11中任一项所述的码率控制方法,其特征在于,还包括:
获取目标编码码率对应的量化参数QP门限值;
当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。
13.如权利要求12所述的码率控制方法,其特征在于,所述获取目标编码码率对应的QP门限值包括:
根据预先建立的QP值与编码码率的对应关系,获取目标编码码率对应的QP值,以获取的QP值作为所述目标编码码率对应的QP门限值。
14.一种码率控制装置,其特征在于,包括:
获取模块,用于获取目标编码码率对应的量化参数QP门限值;
量化参数调整模块,用于当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值;
监视模块,用于获取缓冲数据量、数据上传速度、实际编码码率;
编码码率调整模块,用于当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率,包括:
所述编码码率调整模块当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率;
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
15.如权利要求14所述的码率控制装置,其特征在于,所述获取模块获取目标编码码率对应的QP门限值包括:
所述获取模块根据预先建立的QP值与编码码率的对应关系,获取目标编码码率对应的QP值,以获取的QP值作为所述目标编码码率对应的QP门限值。
16.如权利要求14所述的码率控制装置,其特征在于:
所述第一编码码率是90%的所述数据上传速度。
17.如权利要求14所述的码率控制装置,其特征在于:
所述第二编码码率是90%的所述数据上传速度;
所述第三编码码率是:所述数据上传速度与实际编码码率和预设编码码率中的较大值的平均值的90%。
18.如权利要求14所述的码率控制装置,其特征在于,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量小于预设阈值达到预定时间长度时,如果目标编码码率不小于预设编码码率,则将目标编码码率设置成大于原目标编码码率的第四编码码率;如果目标编码码率小于预设编码码率,则将目标编码码率设置成大于第四编码码率的第五编码码率。
19.如权利要求18所述的码率控制装置,其特征在于:
所述第四编码码率是原目标编码码率的110%;所述第五编码码率是原目标编码码率的120%。
20.一种码率控制装置,其特征在于,包括:
监视模块,用于获取缓冲数据量、数据上传速度、实际编码码率;
编码码率调整模块,用于当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率,包括:
当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率;
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
21.如权利要求20所述的码率控制装置,其特征在于:
所述第一编码码率是90%的所述数据上传速度。
22.如权利要求20所述的码率控制装置,其特征在于:
所述第二编码码率是90%的所述数据上传速度;
所述第三编码码率是:所述数据上传速度与实际编码码率和预设编码码率中的较大值的平均值的90%。
23.如权利要求20所述的码率控制装置,其特征在于,所述编码码率调整模块当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率包括:
当缓冲数据量小于预设阈值达到预定时间长度时,如果目标编码码率不小于预设编码码率,则将目标编码码率设置成大于原目标编码码率的第四编码码率;如果目标编码码率小于预设编码码率,则将目标编码码率设置成大于第四编码码率的第五编码码率。
24.如权利要求23所述的码率控制装置,其特征在于:
所述第四编码码率是原目标编码码率的110%;所述第五编码码率是原目标编码码率的120%。
25.如权利要求20~24中任一项所述的码率控制装置,其特征在于,还包括:
获取模块,用于获取目标编码码率对应的量化参数QP门限值;
量化参数调整模块,用于当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值。
26.如权利要求25所述的码率控制装置,其特征在于,所述获取模块获取目标编码码率对应的QP门限值包括:
所述获取模块根据预先建立的QP值与编码码率的对应关系,获取目标编码码率对应的QP值,以获取的QP值作为所述目标编码码率对应的QP门限值。
27.一种用于进行码率控制的电子设备,包括:
第一存储器和第一处理器;
其特征在于:
所述第一存储器用于保存用于进行码率控制的程序;所述用于进行码率控制的程序在被所述第一处理器读取执行时,执行以下操作:
获取目标编码码率对应的量化参数QP门限值;
当实际编码码率和目标编码码率不一致时,调整QP值;如果调整后的QP值小于所述QP门限值,则将QP值设置成所述QP门限值;
获取缓冲数据量、数据上传速度、实际编码码率;
当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率,包括:
当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率;
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
28.一种用于进行码率控制的电子设备,包括:
第二存储器和第二处理器;
其特征在于:
所述第二存储器用于保存用于进行码率控制的程序;所述用于进行码率控制的程序在被所述第二处理器读取执行时,执行以下操作:
获取缓冲数据量、数据上传速度、实际编码码率;
当满足预定条件时,根据所获取的缓冲数据量、数据上传速度、实际编码码率确定目标编码码率,包括:
当缓冲数据量大于预设阈值时,如果数据上传速度小于实际编码码率,则将目标编码码率设置成小于所述数据上传速度的第一编码码率;
当缓冲数据量大于预设阈值且数据上传速度大于实际编码码率时,设置小于所述数据上传速度的第二编码码率;
如果所述第二编码码率小于预设编码码率,则将目标编码码率设置成所述第二编码码率;
如果所述第二编码码率大于预设编码码率,则将目标编码码率设置成小于第二编码码率的第三编码码率。
CN201611088303.9A 2016-11-30 2016-11-30 一种码率控制方法、装置及电子设备 Active CN108124155B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611088303.9A CN108124155B (zh) 2016-11-30 2016-11-30 一种码率控制方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611088303.9A CN108124155B (zh) 2016-11-30 2016-11-30 一种码率控制方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN108124155A CN108124155A (zh) 2018-06-05
CN108124155B true CN108124155B (zh) 2021-02-05

Family

ID=62225658

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611088303.9A Active CN108124155B (zh) 2016-11-30 2016-11-30 一种码率控制方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108124155B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110198444B (zh) * 2019-04-16 2021-07-09 浙江大华技术股份有限公司 视频帧编码方法、视频帧编码设备及具有存储功能的装置
CN112565834B (zh) * 2021-02-24 2021-05-11 北京创世云科技股份有限公司 一种控制输出数据的方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101547349A (zh) * 2009-04-27 2009-09-30 宁波大学 一种对视频信号的二次avs编码码率控制的方法
US7940843B1 (en) * 2002-12-16 2011-05-10 Apple Inc. Method of implementing improved rate control for a multimedia compression and encoding system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141380A (en) * 1998-09-18 2000-10-31 Sarnoff Corporation Frame-level rate control for video compression
JP2007116655A (ja) * 2005-09-20 2007-05-10 Victor Co Of Japan Ltd 動画像符号化装置
JP5098043B2 (ja) * 2008-02-26 2012-12-12 株式会社メガチップス トランスコーダ
CN102316313B (zh) * 2010-06-29 2013-08-28 凌阳科技股份有限公司 嵌入式实时视频压缩系统中的低复杂度的比特率控制方法
CN102752591B (zh) * 2012-06-14 2014-09-17 南京信息工程大学 基于综合因子的h.264码率控制方法
CN105025249B (zh) * 2014-04-22 2018-12-07 中国移动通信集团江苏有限公司 视频监控数据传输控制方法、装置及视频监控系统
CN105227957A (zh) * 2015-10-30 2016-01-06 深圳云聚汇数码有限公司 移动网络环境中视频编码码率控制装置、方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7940843B1 (en) * 2002-12-16 2011-05-10 Apple Inc. Method of implementing improved rate control for a multimedia compression and encoding system
CN101547349A (zh) * 2009-04-27 2009-09-30 宁波大学 一种对视频信号的二次avs编码码率控制的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种低延迟限制下H.264码率控制算法;沈毅;《微计算机信息》;20080331;第237-240页 *

Also Published As

Publication number Publication date
CN108124155A (zh) 2018-06-05

Similar Documents

Publication Publication Date Title
CN107846590B (zh) 一种视频编码的方法和视频编码器
US10645449B2 (en) Method and apparatus of content-based self-adaptive video transcoding
JP6134650B2 (ja) シーンに基づく適用性のあるビットレート制御
US8875208B1 (en) High quality multimedia transmission from a mobile device for live and on-demand viewing
CN109788316B (zh) 码率控制、视频转码方法与装置、计算机设备及存储介质
US11546596B2 (en) Dynamic codec adaptation
US8867611B2 (en) Video transmitting method and system with image quality adjusting function
US20170103577A1 (en) Method and apparatus for optimizing video streaming for virtual reality
JP2015536594A (ja) 積極的なビデオフレームドロップ
US10659514B2 (en) System for video monitoring with adaptive bitrate to sustain image quality
CN108881931B (zh) 一种数据缓冲方法及网络设备
US10097746B2 (en) Method and system for dynamically adjusting a camera setting for a video stream
CN112738516A (zh) 编码方法、装置、存储介质及电子设备
CN108124155B (zh) 一种码率控制方法、装置及电子设备
CN114245196B (zh) 一种录屏推流方法、装置、电子设备及存储介质
US20180027244A1 (en) Video encoding apparatus with video encoder adaptively controlled according to at least transmission status of communication link and associated video encoding method
US10848769B2 (en) Method and system for encoding video streams
US10270832B1 (en) Method and system for modifying a media stream having a variable data rate
CN116962613A (zh) 数据传输方法及装置、计算机设备、存储介质
US10721473B2 (en) Systems and methods for adjusting the frame rate of transmitted video based on the level of motion in the video
JP6999633B2 (ja) ビデオ記録システム内の複数のカメラの間での適応的ストレージ
US10097609B1 (en) Method and system for dynamically adjusting a data rate of a video stream
CA2927653C (en) Cloud encoding system
CN111836080B (zh) 视频参数优化方法及装置
CN112004082B (zh) 一种双帧作为控制单元的码率控制的优化方法

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1256085

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant