CN111510715B - 视频处理方法、系统、计算机设备及存储介质 - Google Patents
视频处理方法、系统、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111510715B CN111510715B CN201910097364.9A CN201910097364A CN111510715B CN 111510715 B CN111510715 B CN 111510715B CN 201910097364 A CN201910097364 A CN 201910097364A CN 111510715 B CN111510715 B CN 111510715B
- Authority
- CN
- China
- Prior art keywords
- time
- encoding
- coding
- parameter
- complexity
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例提供了一种视频处理方法,该方法包括:获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间;根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。本申请实施例可以自适应地确定是否增加编码复杂度以提升编码质量,提升视频播放质量;或降低编码复杂度以提升编码效率,以避免视频播放延迟的问题。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种视频处理方法、系统、计算机设备及计算机可读存储介质。
背景技术
随着视频业务在各个领域的应用和发展,视频编解码成为各方关注和发展的关键技术之一。所谓视频编码是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。为不断地适应新的需求,国际标准组织(诸如ITU-T、IEC等标准组织)近年来联合制定了多个视频编码标准,例如,H.264/AVC(Advanced Video Coding,高级视频编码)、H.265/HEVC(High Efficiency Video Coding,高效率视频编码)。
现有的视频编码技术,通常以单一的编码复杂度来编码视频内容,这种视频编码技术无法同时适应各类视频的编码场景,而易出现视频播放延迟的问题和视频播放质量不高的问题。
发明内容
本申请实施例的目的是提供一种视频处理方法、系统、计算机设备及计算机可读存储介质,用于解决通过现有视频编码技术进行视频编码导致的视频播放延迟的问题和视频播放质量不高的问题。
本申请实施例的一个方面提供了一种视频处理方法,所述视频处理方法包括:获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间;及根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
可选的,所述获取目标视频中已编码帧的编码时间参数,包括:监测每帧在被编码过程中得到的编码使用时间;将每帧在被编码过程中得到的编码使用时间记录到预配置的时间队列中。
可选的,所述根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,包括:根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数;如果确定调整所述编码复杂度参数,根据所述时间队列中的编码使用时间将所述编码复杂度参数由第一编码复杂度参数调整为第二编码复杂度参数,并清空所述时间队列。
可选的,所述编码时间参数还包括帧生成时间;所述获取目标视频中已编码帧的编码时间参数,还包括:监测每帧在被编码过程中得到的编码使用时间和帧生成时间;将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。
可选的,所述根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,包括:基于所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低编码复杂度;及当确定不调整所述编码复杂度参数以降低编码复杂度时,基于所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
可选的,所述根据所述编码时间参数,调整用于处理所述目标视频中未编码帧的编码复杂度参数,包括:根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度;如果确定降低所述编码复杂度,则下调所述编码复杂度参数;如果确定不降低所述编码复杂度,则根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度;如果确定增加所述编码复杂度,则上调所述编码复杂度参数;如果确定不增加所述编码复杂度,则不调整所述编码复杂度参数;其中,在所述编码复杂度参数被调整的情况下清空所述时间队列。
可选的,所述根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度,包括:计算所述时间队列中的帧生成时间的帧生成平均时间;判断所述帧生成平均时间是否大于预设阈值;如果所述帧生成平均时间大于所述预设阈值,则确定降低所述编码复杂度;如果所述帧生成平均时间不大于所述预设阈值,则确定不降低所述编码复杂度。
可选的,所述根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度,包括:计算所述时间队列中的编码使用时间的编码使用平均时间;根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,其中,所述编码参考平均时间为所述编码复杂度参数多次被下调时对应的多个编码使用平均时间的平均数值。
可选的,所述根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,包括:根据预设复杂度增加系数和所述编码使用平均时间,预估增加所述编码复杂度情况下的编码预估平均时间;判断所述编码预估平均时间是否小于所述编码参考平均时间;如果所述编码预估平均时间小于所述编码参考平均时间,则确定调整所述编码复杂度参数以增加编码复杂度。
可选的,所述方法还包括:根据倒计时操作调整所述编码复杂度参数,包括:在所述编码复杂度参数被调整的情况下或在所述倒计时达到预设时间阈值的情况下,重置所述倒计时操作;及在所述倒计时达到所述预设时间阈值的情况下,调整所述编码复杂度参数以增加编码复杂度。
本申请实施例的另一个方面还提供了一种视频处理系统,所述视频处理系统包括:获取模块,用于获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间;调整模块,用于根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
本申请实施例的再一个方面提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述计算机程序时用于实现如上任一项所述的视频处理方法的步骤。
本申请实施例的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时用于实现如上任一项所述的视频处理方法的步骤。
本申请实施例提供的视频处理方法、系统、计算机设备及计算机可读存储介质,可以基于已编码帧的编码时间参数,获知在当前编码复杂度参数下的实际编码效率,从而可以自适应地确定是否增加编码复杂度以提升编码质量,提升视频播放质量;或降低编码复杂度以提升编码效率,以避免视频播放延迟的问题。
附图说明
图1示意性示出了根据本申请实施例一的视频处理方法的流程图;
图2示意性示出了根据本申请实施例二的视频处理方法的流程图;
图3示意性示出了根据本申请实施例三的视频处理方法的流程图;
图4示意性示出了根据本申请实施例四的视频处理系统的框图;以及
图5示意性示出了根据本申请实施例五的适于实现视频处理方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
不同视频具有不同的信息复杂度,以及不同视频在被编码过程中也可能使用不同的计算资源,以单一的编码复杂度来编码视频内容,不同视频编码对应的平均编码速度会有较大差别。另外,对单一视频编码的过程中,也会因为不同帧的信息复杂度的因素,导致瞬时编码速度在编码整个视频的过程中发生较大波动。可知,这种视频编码技术无法同时适应各类视频的编码场景,而易出现视频播放延迟的问题和视频播放质量不高的问题。为解决上述问题,本申请实施例提供了视频处理方法,在对某个视频编码的过程中,通过调节编码复杂度来控制瞬时编码速度。具体如下。
实施例一
图1示意性示出了根据本申请实施例一的视频处理方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备为执行主体进行示例性描述。
如图1所示,该视频处理方法可以包括步骤S100~步骤S102,其中:
步骤S100,获取目标视频中已编码帧的编码时间参数。
所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间。即,所述计算机设备在利用CPU等运算资源实际编码一帧所使用的时间。
在示例性的实施例中,获取目标视频中已编码帧的编码时间参数,可以包括步骤S100a~S100b:步骤S100a,监测每帧在被编码过程中得到的编码使用时间;步骤S100b,将每帧在被编码过程中得到的编码使用时间记录到预配置的时间队列中,以实时更新所述时间队列。
所述时间队列的队列长度可以自定义,如,可以存储0.5秒所需帧数的编码时间参数,可以存储100帧的编码时间参数等。
所述时间队列为先入先出队列,每个已编码帧的编码时间参数以编码时间顺序被发送到所述时间队列中。在所述时间队列的存储空间用完的情况下,后续已编码帧的编码时间参数会被发送到所述时间队列中,同时所述时间队列存储的最老编码时间参数会被删除。
示例性的,假设当前时间队列中依顺序存储有第N~第N+100个帧对应的第N~第N+100的编码时间参数,当第N+101个帧的编码时间参数被产生时,更新所述时间队列为:依顺序存储有第N+1~第N+101个帧对应的第N+1~第N+101的编码时间参数。
需要说明的是,本申请实施例应用于所述计算机设备中,所述计算机设备可以是手机、电脑、监控设备、视频会议系统、云服务器或服务器集群等各类电子设备。为方便理解,下面举例说明本申请实施例的应用场景,应该理解,本申请实施例描述的应用场景仅仅作为一个示例,其并不具有限定性。以所述计算机设备为视频会议系统为例,在本申请实施例的应用场景中,视频会议系统在接收到各方传输的原始视频后,需要对接收的原始视频进行视频编码,如将原始视频压缩成H.265/HEVC视频流,并将H.265/HEVC视频流分发到各个会议终端。应该理解,所述视频会议系统的编解码能力是有限的,以较高的编码复杂度编码所述原始视频的每帧图像,可能会影响编码效率,从而造成视频播放延迟;以较低的编码复杂度编码所述原始视频,可能会影响画面输出质量。基于此,所述运用本实施例的视频会议系统可以根据当时的运算能力来自适应地调整针对所述原始视频的编码复杂度,以达到编码复杂度和编码效率之间的动态平衡。而根据当时的运算能力来自适应调整针对所述原始视频的编码复杂度,其方式之一是:通过所述原始视频中的部分已编码帧的编码时间参数,来确定当时的运算能力是否支撑增加编码复杂度。另外,所述视频会议系统在首次接收到所述原始视频时,初始化的编码复杂度可以自定义。
步骤S102,根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
在示例性的实施例中,根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,可以包括步骤S102a~S102b:步骤S102a,根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数;步骤S102b,如果确定调整所述编码复杂度参数,根据所述时间队列中的编码使用时间将所述编码复杂度参数由第一编码复杂度参数调整为第二编码复杂度参数,并清空所述时间队列。
例如,计算所述时间队列中所有编码使用时间的平均数值,通过该平均数值确定所述计算机设备是否能够支撑当前编码复杂度参数下的视频编码操作。该确定依据可以自定义,如通过阈值等。
本申请实施例一提供的视频处理方法,可以基于已编码帧的编码时间参数,获知在当前编码复杂度参数下的实际编码效率,从而可以自适应地确定是否增加编码复杂度以提升编码质量,提升视频播放质量;或降低编码复杂度以提升编码效率,以避免视频播放延迟的问题。
另外,本申请实施例一提供的视频处理方法,由于动态调整编码复杂度参数,使得在多个编码实例同时编码并共享同一个计算资源池的时候,可以提高同时编码的实例数,并提高计算资源的利用率。
实施例二
图2示意性示出了根据本申请实施例二的视频处理方法的流程图。该视频处理方法可以包括步骤S200~步骤S202,其中:
步骤S200,获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间和帧生成时间。
所述编码使用时间为在非等待状态下编码一帧所使用的时间。
所述帧生成时间(frame_time)为编码一帧所使用的总时间,是评估性能时重要的考虑因素。
所述帧生成时间可以认为是帧率的倒数,为一帧图像从送入处理器(编码单元)到压缩好送出处理器的物理时间。
为了便于理解,下面简单区分一下编码使用时间ctu_time和帧生成时间frame_time:
(1)在编码每帧仅使用一个线程的情况下:
frame_time≈ctu_time+预分析时间+该帧编码时候的等待时间;
(2)在编码每帧使用多个线程的情况下:
frame_time≈ctu_time/平均线程数+预分析时间+该帧编码时候的等待时间;
需要说明的是,以上仅是对编码使用时间和帧生成时间之间关系的示例性定义,并非用于限定两者关系。
在示例性的实施例中,获取目标视频中已编码帧的编码时间参数,可以包括步骤S200a~S200b:步骤S200a,监测每帧在被编码过程中得到的编码使用时间和帧生成时间;步骤S200b,将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。所述时间队列为先入先出队列,每个已编码帧的编码时间参数以编码时间顺序被发送到所述时间队列中。
步骤S202,根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
在示例性的实施例中,编码使用时间可以用于确定是否调整所述编码复杂度参数以增加编码复杂度。帧生成时间可以用于确定是否调整所述编码复杂度参数以降低编码复杂度。
根据所述编码时间参数,调整用于处理所述目标视频中未编码帧的编码复杂度参数,可以包括步骤S202a~S202b:步骤S202a,基于所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低编码复杂度;步骤S202b,当确定不调整所述编码复杂度参数以降低编码复杂度时,基于所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
应当理解:
编码使用时间,可以作为确定是否增加编码复杂度的依据:由于编码使用时间反映的是在非等待状态下编码一帧所使用的时间。
帧生成时间,可以作为确定是否降低编码复杂度的依据:在给定帧率的前提下,1秒可以编码50帧,如果1秒实际编码40帧,平均每编码一帧需要0.025秒(即,该1秒内各个帧对应的帧生成时间的平均数值),则说明所述计算机设备当前运算能力不能够支撑当前编码复杂度参数下的视频编码操作,因此需要调整所述编码复杂度参数以降低编码复杂度,从而保证编码效率。
帧生成时间,并不能作为确定是否增加编码复杂度的依据:假设以所述计算机设备当前的运算能力能够支撑1秒编码80帧,因此理论上平均每编码一帧需要0.0125秒,然而,实时编码时的帧率是恒定的,即在给定帧率的前提下,每秒向处理器(编码单元)输入50帧,因此实际上平均每编码一帧仍然占据了0.02秒(即,该1秒内各个帧对应的帧生成时间的平均数值始终大于或等于0.02秒),并不能反映所述计算机设备当前运算能力是否可以支撑更高编码复杂度下的视频编码操作。
实施例三
图3示意性示出了根据本申请实施例三的视频处理方法的流程图。该视频处理方法可以包括步骤S300~步骤S302,其中:
步骤S300,监测每帧在被编码过程中得到的编码使用时间和帧生成时间。
所述编码使用时间为在非等待状态下编码一帧所使用的时间。
所述帧生成时间为编码一帧所使用的时间。
步骤S302,将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。所述时间队列为先入先出队列,每个已编码帧的编码时间参数以编码时间顺序被发送到所述时间队列中。
步骤S304,根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度。如果是,进入步骤S306;否则进入步骤S308。
在示例性的实施例中,所述步骤S304可以包括步骤S304a~S304d。
步骤S304a,计算所述时间队列中的帧生成时间的帧生成平均时间。
步骤S304b,判断所述帧生成平均时间是否大于预设阈值。如果是,进入步骤S304c;否则进入步骤S304d。
在示例性的实施例中,在判断所述帧生成平均时间是否大于预设阈值之前,还可以包括:确认此时用于编码操作的各个线程的编码复杂度参数是否均已经更新为上一次调整操作指示的编码复杂度参数;如果均已经更新为上一次调整操作指示的编码度参数,则进入步骤S304b;否则暂停不执行步骤S304直至均已更新完毕。
步骤S304c,确定降低所述编码复杂度。进入步骤S306。
步骤S304d,确定不降低所述编码复杂度。进入步骤S308。
步骤S306,下调所述编码复杂度参数。进入步骤S314。
需要说明的是,所述步骤S306在于降低编码未编码帧时的编码复杂度。
步骤S308,根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。如果是,进入步骤S310;否则进入步骤S312。
在示例性的实施例中,所述步骤S308可以包括步骤S308a~S308b。
步骤S308a,计算所述时间队列中的编码使用时间的编码使用平均时间;
步骤S308b,根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
其中,所述编码参考平均时间为所述编码复杂度参数多次被下调时对应的多个编码使用平均时间的平均数值。具体的,获取编码参考平均时间的具体步骤可以步骤:监测所述编码复杂度参数每次被下调时的时间队列中的编码使用时间的编码使用平均时间;将所述编码复杂度参数每次被下调时的时间队列中的编码使用时间的编码使用平均时间记录到预定宽度的参考队列中,以实时更新所述参考队列。
所述参考队列的队列长度可以自定义,如,可以存储10个编码使用平均时间。所述参考队列为先入先出队列。在所述参考队列的存储空间用完的情况下,参考队列中的最老编码使用平均时间会被删除,最新的编码使用平均时间会被加入。
在可选的实施例中,在所述编码使用平均时间大于或等于编码参考平均时间的情况下,表示当前的编码状态和之前的编码状态发生较大的变化,即当前这个编码参考平均时间不再具有参考意义,因此,在此情况下需要重置所述编码参考平均时间,如将所述编码参考平均时间重置为空。
在可选的实施例中,所述步骤S308b可以包括:根据预设复杂度增加系数和所述编码使用平均时间,预估增加所述编码复杂度情况下的编码预估平均时间;判断所述编码预估平均时间是否小于所述编码参考平均时间;如果所述编码预估平均时间小于所述编码参考平均时间,则确定调整所述编码复杂度参数以增加编码复杂度。
预设复杂度增加系数为:预先配置的各个编码复杂度之间的复杂度增加系数。比如第二编码复杂度相对于第一编码复杂度而言,具有更高的编码复杂度,可以量化为第二编码复杂度的编码复杂度是第一编码复杂度的编码复杂度的1.2倍,则如果由第一编码复杂度上调到第二编码复杂度,对应的复杂度增加系数为1.2。
示例性的,通过预设复杂度增加系数乘以所述编码使用平均时间,计算得到增加所述编码复杂度情况下的编码预估平均时间。
需说明的是,在所述倒计时期间所述编码复杂度参数发生调整的情况下,重置所述倒计时操作。
步骤S310,上调所述编码复杂度参数。进入步骤S314。
需要说明的是,所述步骤S310在于增加编码未编码帧时的编码复杂度。
步骤S312,不调整所述编码复杂度参数。
步骤S314,清空所述时间队列。
即,在所述编码复杂度参数被调整的情况下,清空所述时间队列。
在一可选的实施例中,所述视频处理方法,还可以包括根据倒计时操作调整所述编码复杂度参数的步骤。具体的,可以包括:
在所述编码复杂度参数被调整的情况下或在所述倒计时达到预设时间阈值的情况下,重置所述倒计时操作。在所述倒计时达到所述预设时间阈值的情况下,调整所述编码复杂度参数以增加编码复杂度。且,在此情形下,清空所述参考队列,以及空置所述编码参考平均时间。
实施例四
图4示出了根据本申请实施例四的视频处理系统的框图,该视频处理系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述视频处理系统在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图4所示,所述视频处理系统可以包括以下组成部分:
获取模块200,用于获取目标视频中已编码帧的编码时间参数;
所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间
调整模块202,用于根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
在示例性的实施例中,所述获取模块200包括:监测单元,用于监测每帧在被编码过程中得到的编码使用时间;记录单元,用于将每帧在被编码过程中得到的编码使用时间记录到预配置的时间队列中。
在示例性的实施例中,所述调整模块202包括:确定单元,用于根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数;调整单元,用于如果确定调整所述编码复杂度参数,根据所述时间队列中的编码使用时间将所述编码复杂度参数由第一编码复杂度参数调整为第二编码复杂度参数,并清空所述时间队列。
在示例性的实施例中,所述编码时间参数还包括帧生成时间;所述监测单元,还用于监测每帧在被编码过程中得到的编码使用时间和帧生成时间;所述记录单元,还用于将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。
在示例性的实施例中,所述调整模块202包括:第一确定单元,用于基于所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低编码复杂度;及第二确定单元,用于当确定不调整所述编码复杂度参数以降低编码复杂度时,基于所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
在示例性的实施例中,所述调整模块202还包括第一调整单元、第二调整单元、第三调整单元和队列清空单元:所述第一确定单元,还用于:根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度;所述第一调整单元,用于如果确定降低所述编码复杂度,则下调所述编码复杂度参数;所述第二确定单元,还用于如果确定不降低所述编码复杂度,则根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度;所述第二调整单元,用于如果确定增加所述编码复杂度,则上调所述编码复杂度参数;所述第三调整单元,用于如果确定不增加所述编码复杂度,则不调整所述编码复杂度参数;所述队列清空单元,用于在所述编码复杂度参数被调整的情况下清空所述时间队列。
在示例性的实施例中,第一确定单元包括:第一计算子单元,用于计算所述时间队列中的帧生成时间的帧生成平均时间;第一判断子单元,用于判断所述帧生成平均时间是否大于预设阈值;第一确定子单元,用于如果所述帧生成平均时间大于所述预设阈值,则确定降低所述编码复杂度;第二确定子单元,用于如果所述帧生成平均时间不大于所述预设阈值,则确定不降低所述编码复杂度。
在示例性的实施例中,所述第二确定单元包括:第二计算子单元,用于计算所述时间队列中的编码使用时间的编码使用平均时间;第三确定子单元,用于根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,其中,所述编码参考平均时间为所述编码复杂度参数多次被下调时对应的多个编码使用平均时间的平均数值。
在示例性的实施例中,第三确定子单元,用于:根据预设复杂度增加系数和所述编码使用平均时间,预估增加所述编码复杂度情况下的编码预估平均时间;判断所述编码预估平均时间是否小于所述编码参考平均时间;如果所述编码预估平均时间小于所述编码参考平均时间,则确定调整所述编码复杂度参数以增加编码复杂度。
在示例性的实施例中,还包括倒计时模块,用于根据倒计时操作调整所述编码复杂度参数。具体的,所述倒计时模块,用于在所述编码复杂度参数被调整的情况下或在所述倒计时达到预设时间阈值的情况下,重置所述倒计时操作;在所述倒计时达到所述预设时间阈值的情况下,调整所述编码复杂度参数以增加编码复杂度。
实施例五
图5示意性示出了根据本申请实施例五的适于实现视频处理方法的计算机设备的硬件架构示意图。本实施例中,计算机设备400是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、监控设备、视频会议系统、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图5所示,计算机设备400至少包括但不限于:可通过系统总线相互通信连接存储器410、处理器420、网络接口430。其中:
存储器410至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器410可以是计算机设备400的内部存储模块,例如该计算机设备400的硬盘或内存。在另一些实施例中,存储器410也可以是计算机设备400的外部存储设备,例如该计算机设备400上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器410还可以既包括计算机设备400的内部存储模块也包括其外部存储设备。本实施例中,存储器410通常用于存储安装于计算机设备400的操作系统和各类应用软件,例如视频处理方法的程序代码等。此外,存储器410还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器420在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器420通常用于控制计算机设备400的总体操作,例如执行与计算机设备400进行数据交互或者通信相关的控制和处理等。本实施例中,处理器420用于运行存储器410中存储的程序代码或者处理数据。
网络接口430可包括无线网络接口或有线网络接口,该网络接口430通常用于在计算机设备400与其他计算机设备之间建立通信连接。例如,网络接口430用于通过网络将计算机设备400与外部终端相连,在计算机设备400与外部终端之间的建立数据传输通道和通信连接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图5仅示出了具有部件410-430的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器410中的视频处理方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器420)所执行,以完成本发明。
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的视频处理方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的视频处理方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (13)
1.一种视频处理方法,其特征在于,所述视频处理方法包括:
获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间和帧生成时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间,帧生成时间为编码一帧所使用的总时间;及
根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,包括:基于帧生成时间,确定是否调整所述编码复杂度参数以降低编码复杂度;及基于所述编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
2.根据权利要求1所述的视频处理方法,其特征在于,所述获取目标视频中已编码帧的编码时间参数,包括:
监测每帧在被编码过程中得到的编码使用时间;
将每帧在被编码过程中得到的编码使用时间记录到预配置的时间队列中。
3.根据权利要求2所述的视频处理方法,其特征在于,所述根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,包括:
根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数;
如果确定调整所述编码复杂度参数,根据所述时间队列中的编码使用时间将所述编码复杂度参数由第一编码复杂度参数调整为第二编码复杂度参数,并清空所述时间队列。
4.根据权利要求2所述的视频处理方法,其特征在于,所述编码时间参数还包括帧生成时间;
所述获取目标视频中已编码帧的编码时间参数,还包括:
监测每帧在被编码过程中得到的编码使用时间和帧生成时间;
将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。
5.根据权利要求4所述的视频处理方法,其特征在于,所述根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,包括:
基于所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低编码复杂度;及
当确定不调整所述编码复杂度参数以降低编码复杂度时,基于所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
6.根据权利要求5所述的视频处理方法,其特征在于,所述根据所述编码时间参数,调整用于处理所述目标视频中未编码帧的编码复杂度参数,包括:
根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度;
如果确定降低所述编码复杂度,则下调所述编码复杂度参数;
如果确定不降低所述编码复杂度,则根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度;
如果确定增加所述编码复杂度,则上调所述编码复杂度参数;
如果确定不增加所述编码复杂度,则不调整所述编码复杂度参数;
其中,在所述编码复杂度参数被调整的情况下清空所述时间队列。
7.根据权利要求6所述的视频处理方法,其特征在于,所述根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度,包括:
计算所述时间队列中的帧生成时间的帧生成平均时间;
判断所述帧生成平均时间是否大于预设阈值;
如果所述帧生成平均时间大于所述预设阈值,则确定降低所述编码复杂度;
如果所述帧生成平均时间不大于所述预设阈值,则确定不降低所述编码复杂度。
8.根据权利要求6所述的视频处理方法,其特征在于,所述根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度,包括:
计算所述时间队列中的编码使用时间的编码使用平均时间;
根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,其中,所述编码参考平均时间为所述编码复杂度参数多次被下调时对应的多个编码使用平均时间的平均数值。
9.根据权利要求8所述的视频处理方法,其特征在于,所述根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,包括:
根据预设复杂度增加系数和所述编码使用平均时间,预估增加所述编码复杂度情况下的编码预估平均时间;
判断所述编码预估平均时间是否小于所述编码参考平均时间;
如果所述编码预估平均时间小于所述编码参考平均时间,则确定调整所述编码复杂度参数以增加编码复杂度。
10.根据权利要求9所述的视频处理方法,其特征在于,所述方法还包括根据倒计时操作调整所述编码复杂度参数,包括:
在所述编码复杂度参数被调整的情况下或在所述倒计时达到预设时间阈值的情况下,重置所述倒计时操作;及
在所述倒计时达到所述预设时间阈值的情况下,调整所述编码复杂度参数以增加编码复杂度。
11.一种视频处理系统,其特征在于,所述视频处理系统包括:
获取模块,用于获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间和帧生成时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间,帧生成时间为编码一帧所使用的总时间;
调整模块,用于根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,包括:基于帧生成时间,确定是否调整所述编码复杂度参数以降低编码复杂度;及基于所述编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
12.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至10任一项所述视频处理方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时用于实现权利要求1至10任一项所述视频处理方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910097364.9A CN111510715B (zh) | 2019-01-31 | 2019-01-31 | 视频处理方法、系统、计算机设备及存储介质 |
US16/631,308 US11375203B2 (en) | 2019-01-31 | 2019-06-27 | Video processing method, system, device and computer-readable storage medium |
PCT/CN2019/093263 WO2020155538A1 (zh) | 2019-01-31 | 2019-06-27 | 视频处理方法、系统、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910097364.9A CN111510715B (zh) | 2019-01-31 | 2019-01-31 | 视频处理方法、系统、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111510715A CN111510715A (zh) | 2020-08-07 |
CN111510715B true CN111510715B (zh) | 2022-03-01 |
Family
ID=71841779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910097364.9A Active CN111510715B (zh) | 2019-01-31 | 2019-01-31 | 视频处理方法、系统、计算机设备及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11375203B2 (zh) |
CN (1) | CN111510715B (zh) |
WO (1) | WO2020155538A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111263153B (zh) * | 2020-02-20 | 2022-10-11 | 广州市百果园信息技术有限公司 | 视频编码方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105120295A (zh) * | 2015-08-11 | 2015-12-02 | 北京航空航天大学 | 一种基于四叉树编码分割的hevc复杂度控制方法 |
CN107105240A (zh) * | 2017-03-22 | 2017-08-29 | 中南大学 | 一种hevc‑scc复杂度控制方法及其系统 |
CN108322740A (zh) * | 2018-01-10 | 2018-07-24 | 宁波大学 | 一种编码复杂度可控的编码方法 |
CN108734628A (zh) * | 2017-04-17 | 2018-11-02 | 英特尔公司 | 基于功率和基于目标的图形质量调整 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060262847A1 (en) * | 2005-05-17 | 2006-11-23 | Benq Corporation | Method of adaptive encoding video signal and apparatus thereof |
CN103841418B (zh) | 2012-11-22 | 2016-12-21 | 中国科学院声学研究所 | 一种3g网络中视频监控器码率控制的优化方法及系统 |
CN106550269A (zh) * | 2015-09-17 | 2017-03-29 | 联发科技股份有限公司 | 自适应视频解码方法、解码器以及音频/视频播放系统 |
US10567775B2 (en) * | 2016-10-01 | 2020-02-18 | Intel Corporation | Method and system of hardware accelerated video coding with per-frame parameter control |
US10674158B2 (en) * | 2017-06-15 | 2020-06-02 | Beamr Imaging Ltd | Method and system of video coding optimization |
-
2019
- 2019-01-31 CN CN201910097364.9A patent/CN111510715B/zh active Active
- 2019-06-27 WO PCT/CN2019/093263 patent/WO2020155538A1/zh active Application Filing
- 2019-06-27 US US16/631,308 patent/US11375203B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105120295A (zh) * | 2015-08-11 | 2015-12-02 | 北京航空航天大学 | 一种基于四叉树编码分割的hevc复杂度控制方法 |
CN107105240A (zh) * | 2017-03-22 | 2017-08-29 | 中南大学 | 一种hevc‑scc复杂度控制方法及其系统 |
CN108734628A (zh) * | 2017-04-17 | 2018-11-02 | 英特尔公司 | 基于功率和基于目标的图形质量调整 |
CN108322740A (zh) * | 2018-01-10 | 2018-07-24 | 宁波大学 | 一种编码复杂度可控的编码方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020155538A1 (zh) | 2020-08-06 |
US11375203B2 (en) | 2022-06-28 |
CN111510715A (zh) | 2020-08-07 |
US20210352295A1 (en) | 2021-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12003743B2 (en) | Video stream decoding method and apparatus, terminal device, and storage medium | |
US10735740B2 (en) | Bit rate control method and device | |
CN109729353B (zh) | 一种视频编码方法、装置、系统及介质 | |
CN112422977A (zh) | 音视频转码任务的分配方法和分配装置 | |
CN111510715B (zh) | 视频处理方法、系统、计算机设备及存储介质 | |
CN110324681B (zh) | 多媒体数据的切片方法、装置、存储介质及传输系统 | |
CN107229516B (zh) | 一种数据处理方法及装置 | |
CN113497955A (zh) | 一种视频处理系统 | |
CN111405293B (zh) | 一种视频传输方法及装置 | |
CN114245175A (zh) | 视频转码方法、装置、电子设备及存储介质 | |
CN115278289B (zh) | 一种云应用渲染视频帧处理方法与装置 | |
WO2023231414A1 (zh) | 率失真优化量化方法及装置 | |
CN112131423A (zh) | 图片获取方法、装置及系统 | |
CN114025190A (zh) | 多码率调度方法和多码率调度装置 | |
CN118573870B (zh) | 一种视频编码方法、装置、设备以及存储介质 | |
WO2024124911A1 (zh) | 视频编码方法、装置、电子设备及存储介质 | |
RU2818891C1 (ru) | Способ и устройство, вычислительное устройство и носитель данных для кодирования видео | |
US11601650B2 (en) | Dynamic allocation of virtual and/or physical resources vis-a-vis virtual machines in video stream processing | |
CN112685367B (zh) | 文件分享进度的指示方法、电子设备及计算机可读存储介质 | |
CN115190309B (zh) | 视频帧处理方法、训练方法、装置、设备及存储介质 | |
CN117354522A (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN116546046A (zh) | 数据传输处理方法、装置、控制设备及存储介质 | |
CN116795531A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
CN118101939A (zh) | 一种设备的编码方法、设备和计算机可读存储介质 | |
CN118535306A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |