CN113473126B - 视频流的处理方法、装置、电子设备及计算机可读介质 - Google Patents

视频流的处理方法、装置、电子设备及计算机可读介质 Download PDF

Info

Publication number
CN113473126B
CN113473126B CN202010244868.1A CN202010244868A CN113473126B CN 113473126 B CN113473126 B CN 113473126B CN 202010244868 A CN202010244868 A CN 202010244868A CN 113473126 B CN113473126 B CN 113473126B
Authority
CN
China
Prior art keywords
video
processing
frame
video frame
frames
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
CN202010244868.1A
Other languages
English (en)
Other versions
CN113473126A (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 CN202010244868.1A priority Critical patent/CN113473126B/zh
Priority to EP21781084.5A priority patent/EP4099694A4/en
Priority to PCT/CN2021/082611 priority patent/WO2021197157A1/zh
Publication of CN113473126A publication Critical patent/CN113473126A/zh
Priority to US17/956,156 priority patent/US20230034764A1/en
Application granted granted Critical
Publication of CN113473126B publication Critical patent/CN113473126B/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/127Prioritisation of hardware or computational resources
    • 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
    • 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8193Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool

Abstract

本申请实施例提供了一种视频流的处理方法、装置、电子设备及计算机可读介质,涉及互联网技术领域。其中,所述方法包括:通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中;通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理,以获得处理后的视频帧;基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流。通过本申请实施例,不仅能够有效降低视频流处理的软件复杂度,而且还能够有效提高视频流的处理速度。

Description

视频流的处理方法、装置、电子设备及计算机可读介质
技术领域
本申请实施例涉及互联网技术领域,尤其涉及一种视频流的处理方法、装置、电子设备及计算机可读介质。
背景技术
随着计算机技术和互联网技术的发展,越来越多的用户在更多场合需要对自己个人录制或工作需求录制的音视频进行处理,如变调、加背景音乐、音频转换、对视频素材进行剪辑回放等,目前市场上也有很多对音视频进行处理的软件和技术,如FFmpeg(FastForward MPEG,开源免费跨平台的视频和音频流方案)技术,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec。由于FFmpeg支持多种编解码格式,很多开发者基于FFmpeg来实现对视频的编解码、画面缩放,画面合成等各种功能。因此,FFmpeg被广泛应用于各种视频播放软件中。例如,在视频流应用软件中,许多服务使用FFmpeg作为视频编码、解码及视频处理的基础框架。又例如,在直播场景中,从网络采集设备中读取视频流后,使用FFmpeg解码为原始视频帧,经过帧处理,而后重新编码为新的视频流。
随着深度学习的发展,视频越来越依赖不同的深度学习模型进行视频处理。例如,在窄带高清传输等场景下,需要对视频帧图像的不同部分进行目标识别、图像增强等操作。而FFmpeg中所支持的传统图像变换难以支持深度学习模型对视频进行处理。因此,业界常见的处理方式为将解码后的原始视频帧逐帧保存为图片,而后采用深度学习模型对图片进行处理,之后将处理后的图片重新编码成视频。具体地,如图1A所示,使用FFmpeg对输入的视频流进行解码,获得原始视频帧,并将原始视频帧逐帧保存为图片存储于磁盘中,而后从磁盘中读取图片,并采用深度学习模型对读取的图片进行处理,获得处理后的图片,之后使用FFmpeg将处理后的图片重新编码成视频。然而,这种处理方式在于将整个处理流程分散在不同的软件模块之中,提高了视频流处理的软件复杂度。具体地,视频流解码成原始视频帧和推理后的图片编码成视频由FFmpeg完成,而模型推理由tensorRT框架或者tensorflow框架完成。此外,将原始视频帧逐帧保存为图片存储于磁盘中,并从磁盘中读取图片,降低了视频流的处理速度。
由此可见,如何降低视频流处理的软件复杂度,并提高视频流的处理速度成为当前亟待解决的技术问题。
发明内容
本申请的目的在于提出一种视频流的处理方法、装置、电子设备及计算机可读介质,用于解决现有技术中存在的如何降低视频流处理的软件复杂度,并提高视频流的处理速度的技术问题。
根据本申请实施例的第一方面,提供了一种视频流的处理方法。所述方法包括:通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中;通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理,以获得处理后的视频帧;基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流。
根据本申请实施例的第二方面,提供了一种视频流的处理装置。所述装置包括:第一存入模块,用于通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中;处理模块,用于通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理,以获得处理后的视频帧;生成模块,用于基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流。
根据本申请实施例的第三方面,提供了一种电子设备,包括:一个或多个处理器;计算机可读介质,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例的第一方面所述的视频流的处理方法。
根据本申请实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的第一方面所述的视频流的处理方法。
根据本申请实施例提供的视频流的处理方案,通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中;通过视频帧处理模型,对第一缓冲区中的视频帧进行处理,以获得处理后的视频帧;基于处理后的视频帧,生成原始视频流对应的标准视频流,与现有的其它方式相比,通过调用视频流处理工具的视频流处理接口,对视频流进行处理,有效降低了视频流处理的软件复杂度,进而提高了视频流的处理速度。此外,将原始视频流中的视频帧存入第一缓冲区中,而无需额外将视频帧保存为图片并读取图片,在保证视频帧的质量的同时,还提高了整个视频流处理的速度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1A为现有技术提供的视频流的处理过程的示意图;
图1B为本申请实施例一中视频流的处理方法的步骤流程图;
图1C为根据本申请实施例一提供的视频流的处理过程的示意图;
图2A为本申请实施例二中视频流的处理方法的步骤流程图;
图2B为根据本申请实施例二提供的视频流的处理过程的示意图;
图3为本申请实施例三中视频流的处理装置的结构示意图;
图4为本申请实施例四中视频流的处理装置的结构示意图;
图5为本申请实施例五中视频流的处理装置的结构示意图;
图6为本申请实施例六中电子设备的结构示意图;
图7为本申请实施例七中电子设备的硬件结构。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅配置为解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
参照图1B,示出了本申请实施例一的视频流的处理方法的步骤流程图。
具体地,本实施例提供的视频流的处理方法包括以下步骤:
在步骤S101中,通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中。
在本申请实施例中,所述视频流处理工具可为FFmpeg(Fast Forward MPEG,开源免费跨平台的视频和音频流方案)工具。所述视频流处理接口可为FFmpeg工具的视频滤波器接口。具体地,将实现本申请实施例提供的视频流的处理方法的软件模块作为FFmpeg工具的视频滤波器内嵌入FFmpeg工具之中,也即是利用了FFmpeg工具的视频滤波器接口实现了视频流的处理方法的软件模块。所述视频滤波器可理解为对视频帧进行各种变换的过滤器,例如缩放、旋转、色彩变换、滤波等操作。所述原始视频流可为网络采集设备采集的原始视频流,例如,手机终端的摄像头采集的原始视频流,平板电脑的摄像头采集的原始视频流,监控摄像头采集的原始视频流。所述第一缓冲区可为缓冲队列。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述将原始视频流中的视频帧存入第一缓冲区中之前,所述方法还包括:对所述原始视频流中的视频帧进行预处理,以获得适于所述视频帧处理模型处理的视频帧,所述将原始视频流中的视频帧存入第一缓冲区中,包括:将适于所述视频帧处理模型处理的视频帧存入所述第一缓冲区中。籍此,通过对原始视频流中的视频帧进行预处理,能够获得适于视频帧处理模型处理的视频帧。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在对所述原始视频流中的视频帧进行预处理时,对所述原始视频流中的视频帧中的像素点的像素值进行值域缩放,以获得适于所述视频帧处理模型处理的视频帧。籍此,通过对原始视频流中的视频帧中的像素点的像素值进行值域缩放,能够获得适于视频帧处理模型处理的视频帧。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在训练视频帧处理模型时,输入的视频帧样本的像素点的像素值是正态分布的,这样视频帧处理模型更容易训练收敛。在视频帧处理模型训练收敛之后,在实际的业务场景中也希望输入的待处理的视频帧的像素点的像素值是正态分布的。因此,可对视频帧进行预处理,以获得适于视频帧处理模型处理的视频帧。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S102中,通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理,以获得处理后的视频帧。
在本申请实施例中,所述视频帧处理模型可理解为用于处理视频帧的神经网络模型,例如,图像增强模型、图像超分辨率模型、图像美颜模型等。视频帧处理模型针对视频帧的处理可理解为视频帧处理模型针对视频帧的推理。具体地,当视频帧处理模型被训练完成后,需要部署到视频帧处理的业务场景中。使用实际场景中的视频帧进行预测,这一过程即为视频帧处理模型的推理。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理之后,所述方法还包括:将所述处理后的视频帧存入第二缓冲区中;从所述第二缓冲区中取出所述处理后的视频帧;对从所述第二缓冲区中取出的所述处理后的视频帧进行后处理,以将所述处理后的视频帧的数据格式恢复为视频图像数据格式。籍此,通过对从第二缓冲区中取出的处理后的视频帧进行后处理,能够将处理后的视频帧的数据格式恢复为视频图像数据格式,从而方便于后续针对处理后的视频帧的编码压缩。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在对从所述第二缓冲区中取出的所述处理后的视频帧进行后处理时,对从所述第二缓冲区中取出的所述处理后的视频帧中的像素点的像素值进行值域缩放,以将所述处理后的视频帧的数据格式恢复为视频图像数据格式。籍此,通过对从第二缓冲区中取出的处理后的视频帧中的像素点的像素值进行值域缩放,能够将处理后的视频帧的数据格式恢复为视频图像数据格式,从而方便于后续针对处理后的视频帧的编码压缩。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,处理后的视频帧的像素点的像素值不在正常的范围内,需要对处理后的视频帧进行后处理,将处理后的视频帧的像素点的像素值恢复在正常的范围内。然后,再将像素值恢复后的视频帧的数据格式恢复为视频图像数据格式。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S103中,基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流。
在一些可选实施例中,在基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流时,对所述数据格式恢复为所述视频图像数据格式的所述处理后的视频帧进行编码,以获得所述原始视频流对应的标准视频流。其中,所述视频图像数据格式可为YUV数据格式或者RGB数据格式。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,如图1C所示,对输入的原始视频流进行解码,以获得原始视频流中的视频帧。在获得原始视频流中的视频帧之后,对视频帧进行预处理,以获得预处理视频帧。在获得预处理视频帧之后,将预处理视频帧存入预处理视频帧缓冲队列。然后,从预处理视频帧缓冲队列中取出预处理视频帧,并通过视频帧处理模型,对预处理视频帧进行处理,以获得处理后视频帧,再将处理后视频帧存入处理后视频帧缓冲队列。之后,从处理后视频帧缓冲队列中取出处理后视频帧,并对处理后视频帧进行后处理,以获得后处理视频帧。最后,对后处理视频帧进行编码,以获得原始视频流对应的标准视频流。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
根据本申请实施例提供的视频流的处理方法,通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中;通过视频帧处理模型,对第一缓冲区中的视频帧进行处理,以获得处理后的视频帧;基于处理后的视频帧,生成原始视频流对应的标准视频流,与现有的其它方式相比,通过调用视频流处理工具的视频流处理接口,对视频流进行处理,有效降低了视频流处理的软件复杂度,进而提高了视频流的处理速度。此外,将原始视频流中的视频帧存入第一缓冲区中,而无需额外将视频帧保存为图片并读取图片,在保证视频帧的质量的同时,还提高了整个视频流处理的速度。
本实施例的视频流的处理方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、眼镜、手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、HoloLens、Gear VR)等。
参照图2A,示出了本申请实施例二的视频流的处理方法的步骤流程图。
具体地,本实施例提供的视频流的处理方法包括以下步骤:
在步骤S201中,通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中。
在本申请实施例中,所述视频流处理工具可为FFmpeg(Fast Forward MPEG,开源免费跨平台的视频和音频流方案)工具。所述视频流处理接口可为FFmpeg工具的视频滤波器接口。具体地,将实现本申请实施例提供的视频流的处理方法的软件模块作为FFmpeg工具的视频滤波器内嵌入FFmpeg工具之中,也即是利用了FFmpeg工具的视频滤波器接口实现了视频流的处理方法的软件模块。所述视频滤波器可理解为对视频帧进行各种变换的过滤器,例如缩放、旋转、色彩变换、滤波等操作。所述原始视频流可为网络采集设备采集的原始视频流,例如,手机终端的摄像头采集的原始视频流,平板电脑的摄像头采集的原始视频流,监控摄像头采集的原始视频流。所述第一缓冲区可为缓冲队列。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述将原始视频流中的视频帧存入第一缓冲区中之前,所述方法还包括:对所述原始视频流中的视频帧进行预处理,以获得适于所述视频帧处理模型处理的视频帧,所述将原始视频流中的视频帧存入第一缓冲区中,包括:将适于所述视频帧处理模型处理的视频帧存入所述第一缓冲区中。籍此,通过对原始视频流中的视频帧进行预处理,能够获得适于视频帧处理模型处理的视频帧。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在对所述原始视频流中的视频帧进行预处理时,对所述原始视频流中的视频帧中的像素点的像素值进行值域缩放,以获得适于所述视频帧处理模型处理的视频帧。籍此,通过对原始视频流中的视频帧中的像素点的像素值进行值域缩放,能够获得适于视频帧处理模型处理的视频帧。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在训练视频帧处理模型时,输入的视频帧样本的像素点的像素值是正态分布的,这样视频帧处理模型更容易训练收敛。在视频帧处理模型训练收敛之后,在实际的业务场景中也希望输入的待处理的视频帧的像素点的像素值是正态分布的。因此,可对视频帧进行预处理,以获得适于视频帧处理模型处理的视频帧。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S202中,基于所述视频帧的下一视频帧的解码时长,确定所述视频帧处理模型批量处理所述第一缓冲区中的视频帧的批大小。
在本申请实施例中,所述批量处理可理解为对所述第一缓冲区中的视频帧进行批量的处理。所述视频帧处理模型通过批量处理所述第一缓冲区中的视频帧,处理效率更高,平均处理时间更低。所述视频帧处理模型可理解为用于处理视频帧的神经网络模型,例如,图像增强模型、图像超分辨率模型、图像美颜模型等。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述确定所述视频帧处理模型批量处理所述第一缓冲区中的视频帧的批大小之前,所述方法还包括:在解码所述原始视频流中的图像组中的所述视频帧时,根据所述图像组的信息,确定所述下一视频帧的解码时长。其中,所述图像组可理解为一组连续的画面,由一张I帧和多张B帧/P帧组成,也即是视频流编码的视频帧序列。籍此,通过图像组的信息,能够准确地下一视频帧的解码时长。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,所述图像组的信息包括所述视频帧的下一视频帧的帧类型。在根据所述图像组的信息,确定所述下一视频帧的解码时长时,当所述下一视频帧的帧类型为帧内编码帧时,确定所述下一视频帧的解码时长为所述帧内编码帧的解码时长;当所述下一视频帧的帧类型为前向预测编码帧时,确定所述下一视频帧的解码时长为所述前向预测编码帧的解码时长;当所述下一视频帧的帧类型为双向预测内插编码帧时,根据所述下一视频帧的下一视频帧的帧类型,确定所述视频帧的下一视频帧的解码时长。其中,所述帧内编码帧的解码时长和所述前向预测编码帧的解码时长是预先统计的,并且配置好的。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在根据所述下一视频帧的下一视频帧的帧类型,确定所述视频帧的下一视频帧的解码时长时,当所述视频帧的下一视频帧的下一视频帧的帧类型为帧内编码帧时,确定所述视频帧的下一视频帧的解码时长为所述帧内编码帧的解码时长与所述双向预测内插编码帧的解码时长之和;当所述视频帧的下一视频帧的下一视频帧的帧类型为前向预测编码帧时,确定所述视频帧的下一视频帧的解码时长为所述前向预测编码帧的解码时长与所述双向预测内插编码帧的解码时长之和。其中,所述双向预测内插编码帧的解码时长是预先统计的,并且配置好的。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,与其它数据不相同,视频流有其独特特性。视频流由于数据量巨大,一般会进行编码压缩以减小传输和存储压力。而在编码压缩算法中,一般会将视频流中的视频图像分割为图像组,在图像组中,不同的视频帧解码导致的时延不同。以X264编码为例,视频图像被编码为I帧、B帧和P帧,而B帧由于其双向预测的特性,需等待后一关键帧解码后才能进行解码。因此,需要考虑视频流的编码特性,根据图像组中的视频帧的类型,确定图像组中的视频帧的解码时长。其中,I帧,即帧内编码帧。I帧为关键帧,在编解码时无需依赖其他帧进行处理。P帧,即前向预测编码帧,记录了与前一个I帧或P帧的差别信息,编解码时依赖前一I帧或P帧。B帧,即双向预测内插编码帧,包含了本帧与前后帧之间的差别信息,需要依靠前一关键帧(I帧或P帧)与后一关键帧(I帧或P帧)进行编解码。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,在基于所述视频帧的下一视频帧的解码时长,确定所述视频帧处理模型批量处理所述第一缓冲区中的视频帧的批大小时,基于所述下一视频帧的解码时长、所述下一视频帧的预处理时长,及所述视频帧存入所述第一缓冲区的第一时间戳,确定所述下一视频帧存入所述第一缓冲区的第二时间戳;确定所述下一视频帧存入所述第一缓冲区时所述第一缓冲区中的视频帧的数量,及所述视频帧处理模型以所述数量为所述批大小批量处理所述第一缓冲区中的视频帧的时长;基于所述第二时间戳和所述时长,确定所述视频帧处理模型以所述数量为所述批大小完成所述第一缓冲区中的视频帧的批量处理的第三时间戳;如果确定所述第三时间戳与所述下一视频帧存入所述第一缓冲区时所述第一缓冲区中的视频帧完成预处理的最小时间戳的差值大于或等于预先设定的所述视频帧处理模型的最大处理时长,则确定所述视频帧处理模型批量处理所述第一缓冲区中的视频帧的批大小为所述数量。其中,所述预处理时长和不同批大小下视频帧处理模型的批量处理时长是预先统计的,并且配置好的。籍此,能够基于视频帧的下一视频帧的解码时长,自适应地确定视频帧处理模型批量处理第一缓冲区中的视频帧的批大小。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,所述方法还包括:如果确定所述差值小于所述最大处理时长,则等待所述下一视频帧的下一视频帧存入所述第一缓冲区,直到等待时长等于所述最大处理时长与所述差值的差值。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S203中,通过所述视频帧处理模型,根据确定的所述批大小,对所述第一缓冲区中的视频帧进行批量处理,以获得批量处理后的视频帧。
在一些可选实施例中,所述通过所述视频帧处理模型,根据确定的所述批大小,对所述第一缓冲区中的视频帧进行批量处理之后,所述方法还包括:将所述批量处理后的视频帧存入第二缓冲区中;从所述第二缓冲区中取出所述批量处理后的视频帧;对从所述第二缓冲区中取出的所述批量处理后的视频帧进行后处理,以将所述批量处理后的视频帧的数据格式恢复为视频图像数据格式。籍此,通过对从第二缓冲区中取出的批量处理后的视频帧进行后处理,能够将批量处理后的视频帧的数据格式恢复为视频图像数据格式,从而方便于后续针对批量处理后的视频帧的编码压缩。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在对从所述第二缓冲区中取出的所述批量处理后的视频帧进行后处理时,对从所述第二缓冲区中取出的所述批量处理后的视频帧中的像素点的像素值进行值域缩放,以将所述批量处理后的视频帧的数据格式恢复为视频图像数据格式。籍此,通过对从第二缓冲区中取出的批量处理后的视频帧中的像素点的像素值进行值域缩放,能够将批量处理后的视频帧的数据格式恢复为视频图像数据格式,从而方便于后续针对批量处理后的视频帧的编码压缩。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,批量处理后的视频帧的像素点的像素值不在正常的范围内,需要对批量处理后的视频帧进行后处理,将批量处理后的视频帧的像素点的像素值恢复在正常的范围内。然后,再将像素值恢复后的视频帧的数据格式恢复为视频图像数据格式。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S204中,基于所述批量处理后的视频帧,生成所述原始视频流对应的标准视频流。
在一些可选实施例中,在基于所述批量处理后的视频帧,生成所述原始视频流对应的标准视频流时,对所述数据格式恢复为所述视频图像数据格式的所述批量处理后的视频帧进行编码,以获得所述原始视频流对应的标准视频流。其中,所述视频图像数据格式可为YUV数据格式或者RGB数据格式。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,由于需要自适应地选择合适的批大小,因此需要预先统计不同批大小下视频帧处理模型所需的处理时长tprocess,预处理所需的处理时长tpreprocess,所有视频帧的预处理时长均为tpreprocess,I帧的解码时长tI,P帧的解码时长tP,B帧的解码时长tB。此外,还需要设定视频帧处理模型的最大处理时长tmax。如图2B所示,视频流的处理流程如下:首先读取输入的原始视频流。使用硬件加速的h264解码器解码原始视频流,转换为原始的视频帧。在解码每一个图像组中的图像帧时,根据图像组的信息可计算下一视频帧图像解码所需的时长tdecode。当下一视频帧为B帧时,tdecode为B帧的下一个关键帧的解码时长与B帧的解码时长之和,即:
Figure BDA0002433734350000131
当下一视频帧为P帧时,tdecode=tP,当下一视频帧为I帧时,tdecode=tI。然后,执行包含自适应批处理的模型推理的视频帧处理。具体地,首先将视频帧进行预处理,这一部分包含传统的图像处理方法、归一化和值域缩放等。同时记录视频帧预处理完成时间戳tready。在完成预处理后,等待缓冲队列Q未满。当缓冲队列Q未满时,使用处理线程将视频帧、视频帧的下一视频帧的解码时长tdecode,及视频帧的预处理完成时间戳tready存入缓冲队列,并记录存入缓存队列的当前时间戳tnow。若在当前时间戳tnow下,为了满足tmax的限制,需要自适应地选择合适的批大小进行模型推理。具体来说,在缓冲队列Q中,可以推测当视频帧的下一视频帧存入缓冲队列Q后,以缓冲队列Q的长度为批大小的模型处理完成时间戳为:
tfinish=tprocess[len(Q)+1]+tdecode[len(Q)]+tnow+tpreprocess
如果继续等待,则需要满足限制条件
Figure BDA0002433734350000132
当满足此条件时,将模型处理部分挂起,等待下一视频帧的下一视频帧存入缓冲队列Q,直到等待时长达到
Figure BDA0002433734350000133
为止。否则,执行模型批量处理操作,并将模型批量处理后的视频帧存入另一缓冲队列。其中,len(Q)为缓冲队列Q的当前长度。当另一缓冲队列不为空时,从另一缓冲队列中取出批量处理后的视频帧,对批量处理后的视频帧进行后处理操作,将批量处理后的视频帧的数据格式恢复为YUV或RGB数据格式。最后,编码输出标准视频流。使用硬件加速的h264编码器将数据格式恢复后的批量处理后的视频帧编码为标准视频流。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在实际应用中,通过引入自适应批处理的操作,考虑了视频分组中的视频帧的编解码的特性,并利用了GPU在批大小较大时效率较高的特点,进一步提升了视频流处理性能和实时性。此外,本实施例提供的视频流处理流程不是以机器学习框架结合编解码器构建的视频流处理流程,推理性能较tensorflow等框架更高,与框架无强耦合,适合不同场景下的视频流处理。例如,在实际直播场景中,以TensorRT框架为处理框架设计的软件模块结合cuda加速的预处理部分,合计加速为原有方案的近7倍。结合自适应批处理后仍可能有10%~20%的性能提升。
在本申请实施例一的基础上,基于视频帧的下一视频帧的解码时长,确定视频帧处理模型批量处理第一缓冲区中的视频帧的批大小,并通过视频帧处理模型,根据确定的批大小,对第一缓冲区中的视频帧进行批量处理,以获得批量处理后的视频帧,与现有的其它方式相比,能够基于视频帧的下一视频帧的解码时长,自适应地确定视频帧处理模型批量处理第一缓冲区中的视频帧的批大小,并通过视频帧处理模型,根据确定的批大小,对第一缓冲区中的视频帧进行批量处理,在有效保证视频流处理的实时性的同时,还进一步提高了整个视频流处理的速度。
本实施例的视频流的处理方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、眼镜、手表、可穿戴设备、虚拟显示设备或显示增强设备(如Google Glass、Oculus Rift、HoloLens、Gear VR)等。
参照图3,示出了本申请实施例三中视频流的处理装置的结构示意图。
本实施例提供的视频流的处理装置包括:第一存入模块301,用于通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中;处理模块302,用于通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理,以获得处理后的视频帧;生成模块303,用于基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流。
本实施例的视频流的处理装置用于实现前述多个方法实施例中相应的视频流的处理方法,并具有相应的方法实施例的有益效果,在此不再赘述。
参照图4,示出了本申请实施例四中视频流的处理装置的结构示意图。
本实施例提供的视频流的处理装置包括:第一存入模块401,用于通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中;处理模块404,用于通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理,以获得处理后的视频帧;生成模块405,用于基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流。
可选地,所述处理模块404之前,所述装置还包括:第一确定模块403,用于基于所述视频帧的下一视频帧的解码时长,确定所述视频帧处理模型批量处理所述第一缓冲区中的视频帧的批大小,所述处理模块404,具体用于:通过所述视频帧处理模型,根据确定的所述批大小,对所述第一缓冲区中的视频帧进行批量处理,以获得批量处理后的视频帧。
可选地,所述第一确定模块403之前,所述装置还包括:第二确定模块402,用于在解码所述原始视频流中的图像组中的所述视频帧时,根据所述图像组的信息,确定所述下一视频帧的解码时长。
可选地,所述图像组的信息包括所述视频帧的下一视频帧的帧类型,所述第二确定模块402,包括:第一确定子模块4021,用于当所述下一视频帧的帧类型为帧内编码帧时,确定所述下一视频帧的解码时长为所述帧内编码帧的解码时长;第二确定子模块4022,用于当所述下一视频帧的帧类型为前向预测编码帧时,确定所述下一视频帧的解码时长为所述前向预测编码帧的解码时长;第三确定子模块4023,用于当所述下一视频帧的帧类型为双向预测内插编码帧时,根据所述下一视频帧的下一视频帧的帧类型,确定所述视频帧的下一视频帧的解码时长。
可选地,所述第三确定子模块4023,具体用于:当所述视频帧的下一视频帧的下一视频帧的帧类型为帧内编码帧时,确定所述视频帧的下一视频帧的解码时长为所述帧内编码帧的解码时长与所述双向预测内插编码帧的解码时长之和;当所述视频帧的下一视频帧的下一视频帧的帧类型为前向预测编码帧时,确定所述视频帧的下一视频帧的解码时长为所述前向预测编码帧的解码时长与所述双向预测内插编码帧的解码时长之和。
可选地,所述第一确定模块403,包括:第四确定子模块4031,用于基于所述下一视频帧的解码时长、所述下一视频帧的预处理时长,及所述视频帧存入所述第一缓冲区的第一时间戳,确定所述下一视频帧存入所述第一缓冲区的第二时间戳;第五确定子模块4032,用于确定所述下一视频帧存入所述第一缓冲区时所述第一缓冲区中的视频帧的数量,及所述视频帧处理模型以所述数量为所述批大小批量处理所述第一缓冲区中的视频帧的时长;第六确定子模块4033,用于基于所述第二时间戳和所述时长,确定所述视频帧处理模型以所述数量为所述批大小完成所述第一缓冲区中的视频帧的批量处理的第三时间戳;第七确定子模块4034,用于如果确定所述第三时间戳与所述下一视频帧存入所述第一缓冲区时所述第一缓冲区中的视频帧完成预处理的最小时间戳的差值大于或等于预先设定的所述视频帧处理模型的最大处理时长,则确定所述视频帧处理模型批量处理所述第一缓冲区中的视频帧的批大小为所述数量。
可选地,所述第一确定模块403还包括:等待子模块4035,用于如果确定所述差值小于所述最大处理时长,则等待所述下一视频帧的下一视频帧存入所述第一缓冲区,直到等待时长等于所述最大处理时长与所述差值的差值。
本实施例的视频流的处理装置用于实现前述多个方法实施例中相应的视频流的处理方法,并具有相应的方法实施例的有益效果,在此不再赘述。
参照图5,示出了本申请实施例五中视频流的处理装置的结构示意图。
本实施例提供的视频流的处理装置包括:第一存入模块502,用于通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中;处理模块503,用于通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理,以获得处理后的视频帧;生成模块507,用于基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流。
可选地,所述第一存入模块502之前,所述装置还包括:预处理模块501,用于对所述原始视频流中的视频帧进行预处理,以获得适于所述视频帧处理模型处理的视频帧,所述第一存入模块502,具体用于:将适于所述视频帧处理模型处理的视频帧存入所述第一缓冲区中。
可选地,所述预处理模块501,具体用于:对所述原始视频流中的视频帧中的像素点的像素值进行值域缩放,以获得适于所述视频帧处理模型处理的视频帧。
可选地,所述处理模块503之后,所述装置还包括:第二存入模块504,用于将所述批量处理后的视频帧存入第二缓冲区中;取出模块505,用于从所述第二缓冲区中取出所述批量处理后的视频帧;后处理模块506,用于对从所述第二缓冲区中取出的所述批量处理后的视频帧进行后处理,以将所述批量处理后的视频帧的数据格式恢复为视频图像数据格式。
可选地,所述后处理模块506,具体用于:对从所述第二缓冲区中取出的所述批量处理后的视频帧中的像素点的像素值进行值域缩放,以将所述批量处理后的视频帧的数据格式恢复为视频图像数据格式。
可选地,所述生成模块507,具体用于:对所述数据格式恢复为所述视频图像数据格式的所述批量处理后的视频帧进行编码,以获得所述原始视频流对应的标准视频流。
本实施例的视频流的处理装置用于实现前述多个方法实施例中相应的视频流的处理方法,并具有相应的方法实施例的有益效果,在此不再赘述。
图6为本申请实施例六中电子设备的结构示意图;该电子设备可以包括:
一个或多个处理器601;
计算机可读介质602,可以配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例一或实施例二所述的视频流的处理方法。
图7为本申请实施例七中电子设备的硬件结构;如图7所示,该电子设备的硬件结构可以包括:处理器701,通信接口702,计算机可读介质703和通信总线704;
其中处理器701、通信接口702、计算机可读介质703通过通信总线704完成相互间的通信;
可选地,通信接口702可以为通信模块的接口,如GSM模块的接口;
其中,处理器701具体可以配置为:通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中;通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理,以获得处理后的视频帧;基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流。
处理器701可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
计算机可读介质703可以是,但不限于,随机存取存储介质(Random AccessMemory,RAM),只读存储介质(Read Only Memory,ROM),可编程只读存储介质(Programmable Read-Only Memory,PROM),可擦除只读存储介质(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储介质(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(RAM)、只读存储介质(ROM)、可擦式可编程只读存储介质(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储介质(CD-ROM)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写配置为执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一存入模块、处理模块和生成模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一存入模块还可以被描述为“通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中的模块”。
作为另一方面,本申请还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一或实施例二所描述的视频流的处理方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中;通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理,以获得处理后的视频帧;基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流。
在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。
当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)插入在这两者之间。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (14)

1.一种视频流的处理方法,包括:
通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中;
基于所述视频帧的下一视频帧的解码时长,确定所述视频帧处理模型批量处理所述第一缓冲区中的视频帧的批大小;
通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理,以获得处理后的视频帧;
基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流;
其中,所述通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理,包括:
通过所述视频帧处理模型,根据确定的所述批大小,对所述第一缓冲区中的视频帧进行批量处理,以获得批量处理后的视频帧。
2.根据权利要求1所述的方法,其中,所述将原始视频流中的视频帧存入第一缓冲区中之前,所述方法还包括:
对所述原始视频流中的视频帧进行预处理,以获得适于所述视频帧处理模型处理的视频帧,
所述将原始视频流中的视频帧存入第一缓冲区中,包括:
将适于所述视频帧处理模型处理的视频帧存入所述第一缓冲区中。
3.根据权利要求2所述的方法,其中,所述对所述原始视频流中的视频帧进行预处理,包括:
对所述原始视频流中的视频帧中的像素点的像素值进行值域缩放,以获得适于所述视频帧处理模型处理的视频帧。
4.根据权利要求1所述的方法,其中,所述确定所述视频帧处理模型批量处理所述第一缓冲区中的视频帧的批大小之前,所述方法还包括:
在解码所述原始视频流中的图像组中的所述视频帧时,根据所述图像组的信息,确定所述下一视频帧的解码时长。
5.根据权利要求4所述的方法,其中,所述图像组的信息包括所述视频帧的下一视频帧的帧类型,
所述根据所述图像组的信息,确定所述下一视频帧的解码时长,包括:
当所述下一视频帧的帧类型为帧内编码帧时,确定所述下一视频帧的解码时长为所述帧内编码帧的解码时长;
当所述下一视频帧的帧类型为前向预测编码帧时,确定所述下一视频帧的解码时长为所述前向预测编码帧的解码时长;
当所述下一视频帧的帧类型为双向预测内插编码帧时,根据所述下一视频帧的下一视频帧的帧类型,确定所述视频帧的下一视频帧的解码时长。
6.根据权利要求5所述的方法,其中,所述根据所述下一视频帧的下一视频帧的帧类型,确定所述视频帧的下一视频帧的解码时长,包括:
当所述视频帧的下一视频帧的下一视频帧的帧类型为帧内编码帧时,确定所述视频帧的下一视频帧的解码时长为所述帧内编码帧的解码时长与所述双向预测内插编码帧的解码时长之和;
当所述视频帧的下一视频帧的下一视频帧的帧类型为前向预测编码帧时,确定所述视频帧的下一视频帧的解码时长为所述前向预测编码帧的解码时长与所述双向预测内插编码帧的解码时长之和。
7.根据权利要求1所述的方法,其中,所述基于所述视频帧的下一视频帧的解码时长,确定所述视频帧处理模型批量处理所述第一缓冲区中的视频帧的批大小,包括:
基于所述下一视频帧的解码时长、所述下一视频帧的预处理时长,及所述视频帧存入所述第一缓冲区的第一时间戳,确定所述下一视频帧存入所述第一缓冲区的第二时间戳;
确定所述下一视频帧存入所述第一缓冲区时所述第一缓冲区中的视频帧的数量,及所述视频帧处理模型以所述数量为所述批大小批量处理所述第一缓冲区中的视频帧的时长;
基于所述第二时间戳和所述时长,确定所述视频帧处理模型以所述数量为所述批大小完成所述第一缓冲区中的视频帧的批量处理的第三时间戳;
如果确定所述第三时间戳与所述下一视频帧存入所述第一缓冲区时所述第一缓冲区中的视频帧完成预处理的最小时间戳的差值大于或等于预先设定的所述视频帧处理模型的最大处理时长,则确定所述视频帧处理模型批量处理所述第一缓冲区中的视频帧的批大小为所述数量。
8.根据权利要求7所述的方法,其中,所述方法还包括:
如果确定所述差值小于所述最大处理时长,则等待所述下一视频帧的下一视频帧存入所述第一缓冲区,直到等待时长等于所述最大处理时长与所述差值的差值。
9.根据权利要求1所述的方法,其中,所述通过所述视频帧处理模型,根据确定的所述批大小,对所述第一缓冲区中的视频帧进行批量处理之后,所述方法还包括:
将所述批量处理后的视频帧存入第二缓冲区中;
从所述第二缓冲区中取出所述批量处理后的视频帧;
对从所述第二缓冲区中取出的所述批量处理后的视频帧进行后处理,以将所述批量处理后的视频帧的数据格式恢复为视频图像数据格式。
10.根据权利要求9所述的方法,其中,所述对从所述第二缓冲区中取出的所述批量处理后的视频帧进行后处理,包括:
对从所述第二缓冲区中取出的所述批量处理后的视频帧中的像素点的像素值进行值域缩放,以将所述批量处理后的视频帧的数据格式恢复为视频图像数据格式。
11.根据权利要求9所述的方法,其中,所述基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流,包括:
对所述数据格式恢复为所述视频图像数据格式的所述批量处理后的视频帧进行编码,以获得所述原始视频流对应的标准视频流。
12.一种视频流的处理装置,所述装置包括:
第一存入模块,用于通过调用视频流处理工具的视频流处理接口,将原始视频流中的视频帧存入第一缓冲区中;
第一确定模块,用于基于所述视频帧的下一视频帧的解码时长,确定所述视频帧处理模型批量处理所述第一缓冲区中的视频帧的批大小;
处理模块,用于通过视频帧处理模型,对所述第一缓冲区中的视频帧进行处理,以获得处理后的视频帧;
生成模块,用于基于所述处理后的视频帧,生成所述原始视频流对应的标准视频流;
所述处理模块具体用于:通过所述视频帧处理模型,根据确定的所述批大小,对所述第一缓冲区中的视频帧进行批量处理,以获得批量处理后的视频帧。
13.一种电子设备,所述设备包括:
一个或多个处理器;
计算机可读介质,配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任意一项权利要求所述的视频流的处理方法。
14.一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-11中任意一项权利要求所述的视频流的处理方法。
CN202010244868.1A 2020-03-31 2020-03-31 视频流的处理方法、装置、电子设备及计算机可读介质 Active CN113473126B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010244868.1A CN113473126B (zh) 2020-03-31 2020-03-31 视频流的处理方法、装置、电子设备及计算机可读介质
EP21781084.5A EP4099694A4 (en) 2020-03-31 2021-03-24 Video stream processing method and apparatus, and electronic device and computer-readable medium
PCT/CN2021/082611 WO2021197157A1 (zh) 2020-03-31 2021-03-24 视频流的处理方法、装置、电子设备及计算机可读介质
US17/956,156 US20230034764A1 (en) 2020-03-31 2022-09-29 Video stream processing method and apparatus, and electronic device and computer-readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010244868.1A CN113473126B (zh) 2020-03-31 2020-03-31 视频流的处理方法、装置、电子设备及计算机可读介质

Publications (2)

Publication Number Publication Date
CN113473126A CN113473126A (zh) 2021-10-01
CN113473126B true CN113473126B (zh) 2023-03-17

Family

ID=77866046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010244868.1A Active CN113473126B (zh) 2020-03-31 2020-03-31 视频流的处理方法、装置、电子设备及计算机可读介质

Country Status (4)

Country Link
US (1) US20230034764A1 (zh)
EP (1) EP4099694A4 (zh)
CN (1) CN113473126B (zh)
WO (1) WO2021197157A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114040247A (zh) * 2021-11-09 2022-02-11 新智认知数据服务有限公司 网络视频流的处理方法、电子设备及计算机可读存储介质
CN114389893A (zh) * 2022-01-22 2022-04-22 重庆长安汽车股份有限公司 一种活体视频处理的车辆实名认证系统、认证方法及汽车
CN114449295A (zh) * 2022-01-30 2022-05-06 京东方科技集团股份有限公司 视频处理方法、装置、电子设备及存储介质
CN117241043B (zh) * 2023-11-10 2024-03-19 深圳中微电科技有限公司 视频硬件解码错误恢复的方法、系统及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7706384B2 (en) * 2007-04-20 2010-04-27 Sharp Laboratories Of America, Inc. Packet scheduling with quality-aware frame dropping for video streaming
CN105827976A (zh) * 2016-04-26 2016-08-03 北京博瑞空间科技发展有限公司 基于gpu的视频采集与处理装置及系统
CN106204488A (zh) * 2016-07-12 2016-12-07 湖南翰博薇微电子科技有限公司 一种OpenCL加速的视频去雾方法
CN106507204B (zh) * 2016-12-07 2020-03-17 腾讯科技(上海)有限公司 一种视频倒放方法和装置
US10397594B2 (en) * 2017-04-28 2019-08-27 Hewlett Packard Enterprise Development Lp Real-time processing of IoT data
CN107295285B (zh) * 2017-08-11 2018-07-27 腾讯科技(深圳)有限公司 视频数据的处理方法、处理装置及存储介质
CN108881916A (zh) * 2018-06-21 2018-11-23 深圳市斯迈龙科技有限公司 远程桌面的视频优化处理方法及装置
CN109672931B (zh) * 2018-12-20 2020-03-20 北京百度网讯科技有限公司 用于处理视频帧的方法和装置

Also Published As

Publication number Publication date
US20230034764A1 (en) 2023-02-02
WO2021197157A1 (zh) 2021-10-07
CN113473126A (zh) 2021-10-01
EP4099694A4 (en) 2023-06-28
EP4099694A1 (en) 2022-12-07

Similar Documents

Publication Publication Date Title
CN113473126B (zh) 视频流的处理方法、装置、电子设备及计算机可读介质
WO2021036795A1 (zh) 视频超分辨率处理方法及装置
US10819994B2 (en) Image encoding and decoding methods and devices thereof
CN112203085B (zh) 图像处理方法、装置、终端和存储介质
CN112235569B (zh) 基于h264压缩域的快速视频分类方法、系统及装置
CN113259671B (zh) 视频编解码中的环路滤波方法、装置、设备及存储介质
CN111343503B (zh) 视频的转码方法、装置、电子设备及存储介质
CN110049347B (zh) 在直播界面配置图像的方法、系统、终端和装置
CN111526363A (zh) 编码的方法及装置、终端和存储介质
CN112261417B (zh) 视频推送方法及系统、设备及可读存储介质
CN112203086B (zh) 图像处理方法、装置、终端和存储介质
CN111432213A (zh) 用于视频和图像压缩的自适应贴片数据大小编码
CN112449182A (zh) 视频编码方法、装置、设备及存储介质
CN113645448A (zh) 一种适用于指挥调度的视频解码方法和装置
CN114205662A (zh) iOS端的低延迟视频渲染方法及装置
WO2024078066A1 (zh) 视频解码方法、视频编码方法、装置、存储介质及设备
EP3014885A1 (en) Picture referencing control for video decoding using a graphics processor
CN113747242B (zh) 图像处理方法、装置、电子设备及存储介质
CN115861121A (zh) 模型训练方法、图像处理方法、装置、电子设备和介质
WO2022156688A1 (zh) 分层编解码的方法及装置
CN112291483B (zh) 视频推送方法及系统、电子设备及可读存储介质
TW202220452A (zh) 用於視訊處理的方法及影像處理裝置
CN115706810A (zh) 视频帧调整方法、装置、电子设备和存储介质
US20100232768A1 (en) Recording device, reproducing device, and method
CN117097913A (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: 40063926

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant