CN116916032A - 视频编码方法、装置、电子设备及存储介质 - Google Patents

视频编码方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116916032A
CN116916032A CN202311013733.4A CN202311013733A CN116916032A CN 116916032 A CN116916032 A CN 116916032A CN 202311013733 A CN202311013733 A CN 202311013733A CN 116916032 A CN116916032 A CN 116916032A
Authority
CN
China
Prior art keywords
encoder
frame
encoding
type
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.)
Pending
Application number
CN202311013733.4A
Other languages
English (en)
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.)
Beijing Zhongguancun Kejin Technology Co Ltd
Original Assignee
Beijing Zhongguancun Kejin 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 Beijing Zhongguancun Kejin Technology Co Ltd filed Critical Beijing Zhongguancun Kejin Technology Co Ltd
Priority to CN202311013733.4A priority Critical patent/CN116916032A/zh
Publication of CN116916032A publication Critical patent/CN116916032A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/172Methods 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 an image region, e.g. an object the region being a picture, frame or field

Landscapes

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

Abstract

本公开提供了一种视频编码方法、装置、电子设备及存储介质,该方法包括:针对接收到的原始视频流中包含的多个图像帧进行编码处理,得到相对应的多个帧编码数据;针对多个帧编码数据进行合并处理,得到与原始视频流相对应的联合编码数据流;其中,与每个帧编码数据通过以下方式得到:动态监测与图像帧相对应的当前资源占用率,从至少两种编码器类型中动态选择与当前资源占用率相匹配的目标编码器类型,通过目标编码器类型的目标编码器对图像帧进行编码处理,得到与图像帧相对应的帧编码数据。该方法通过根据实时资源占用率动态切换的适配类型的视频编码器实现对原始视频流的联合编码,在合理调配资源的前提下提升视频编码的效率。

Description

视频编码方法、装置、电子设备及存储介质
技术领域
本公开涉及音视频技术领域,特别涉及一种视频编码方法、装置、电子设备及存储介质。
背景技术
视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,可以看到动作连续的视频。由于连续的帧之间相似性极高,为便于储存传输,需要对原始的视频进行编码压缩,以去除空间、时间维度的冗余。视频编码指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件。目前视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264等。
在现有技术中,通常仅采用单一类型的视频编码器实现对原始视频的压缩编码处理。然而,不同类型的视频编码器存在不同的缺点。例如,仅支持单一的编码方式,导致编码效率较低;或者,资源占用率较高,可能造成***卡顿等。因此,在采用单一类型的视频编码器进行压缩编码处理的过程中,由于未能根据实际的资源占用情况动态配置视频编码器,从而存在无法兼顾资源占用率和编码处理效率的问题。
发明内容
本公开提供一种视频编码方法、装置、电子设备及存储介质,用以在合理调配资源的前提下提升视频编码的效率。
第一方面,本公开提供了一种视频编码方法,该视频编码方法包括:
针对接收到的原始视频流中包含的多个图像帧进行编码处理,得到与多个图像帧相对应的多个帧编码数据;
针对与多个图像帧相对应的多个帧编码数据进行合并处理,得到与原始视频流相对应的联合编码数据流;
其中,与每个图像帧相对应的帧编码数据通过以下方式得到:动态监测与图像帧相对应的当前资源占用率,根据当前资源占用率,从至少两种编码器类型中动态选择与当前资源占用率相匹配的目标编码器类型,通过目标编码器类型的目标编码器对图像帧进行编码处理,得到与图像帧相对应的帧编码数据。
第二方面,本公开提供了一种视频编码装置,该视频编码装置包括:
编码模块,用于针对接收到的原始视频流中包含的多个图像帧进行编码处理,得到与多个图像帧相对应的多个帧编码数据;
合并模块,用于针对与多个图像帧相对应的多个帧编码数据进行合并处理,得到与原始视频流相对应的联合编码数据流;
其中,与每个图像帧相对应的帧编码数据通过以下方式得到:动态监测与图像帧相对应的当前资源占用率,根据当前资源占用率,从至少两种编码器类型中动态选择与当前资源占用率相匹配的目标编码器类型,通过目标编码器类型的目标编码器对图像帧进行编码处理,得到与图像帧相对应的帧编码数据。
第三方面,本公开提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的一个或多个计算机程序,一个或多个计算机程序被至少一个处理器执行,以使至少一个处理器能够执行上述的视频编码方法。
第四方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序在被处理器/处理核执行时实现上述的视频编码方法。
根据本公开所提供的一种视频编码方法,首先,针对接收到的原始视频流中包含的多个图像帧进行编码处理,得到与多个图像帧相对应的多个帧编码数据;然后,针对与多个图像帧相对应的多个帧编码数据进行合并处理,得到与原始视频流相对应的联合编码数据流;其中,与每个图像帧相对应的帧编码数据通过以下方式得到:动态监测与图像帧相对应的当前资源占用率,根据当前资源占用率,从至少两种编码器类型中动态选择与当前资源占用率相匹配的目标编码器类型,通过目标编码器类型的目标编码器对图像帧进行编码处理,得到与图像帧相对应的帧编码数据。本公开实施例所提供的视频编码方法,能够根据当前资源占用率,选取与当前资源占用率相匹配的视频编码器,分别对原始视频流中包含的每个图像帧进行编码处理,再将每个图像帧对应的编码结果合并得到与原始视频流相对应的联合编码数据流。由此可知,该方法能够根据实时资源占用率动态切换不同类型的视频编码器,实现采用多种类型的视频编码器对原始视频流进行联合编码处理,从而通过适配类型的视频编码器兼顾资源占用率和编码处理效率,在合理调配资源的前提下提升视频编码的效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本公开实施例提供的一种视频编码方法的流程图;
图2为本公开又一实施例提供的一种视频编码方法的流程图;
图3为本公开实施例提供的一种视频编码装置的框图;
图4为本公开实施例提供的一种电子设备的框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
根据本公开实施例的视频编码方法可以由终端设备或服务器等电子设备执行,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,服务器可以为独立的物理服务器、由多个物理服务器组成的服务器集群、或者能够进行云计算的云服务器。该方法可以通过处理器调用存储器中存储的计算机可读程序指令的方式来实现。
在现有技术中,通常仅采用单一类型的视频编码器实现对原始视频的压缩编码处理。然而,不同类型的视频编码器存在不同的缺点。例如,仅支持单一的编码方式,导致编码效率较低;或者,资源占用率较高,可能造成***卡顿等。因此,在采用单一类型的视频编码器进行压缩编码处理的过程中,由于未能根据实际的资源占用情况动态配置视频编码器,从而存在无法兼顾资源占用率和编码处理效率的问题。为了解决上述问题,本公开提供了一种视频编码方法,该方法根据当前资源占用率,选取与当前资源占用率相匹配的视频编码器,分别对原始视频流中包含的每个图像帧进行编码处理,再将每个图像帧对应的编码结果合并得到与原始视频流相对应的联合编码数据流;能够根据实时资源占用率动态切换不同类型的视频编码器,实现采用多种类型的视频编码器对原始视频流进行联合编码处理,从而通过适配类型的视频编码器兼顾资源占用率和编码处理效率,在合理调配资源的前提下提升视频编码的效率。
图1为本公开实施例提供的一种视频编码方法的流程图。参照图1,该方法包括:
步骤S110:针对接收到的原始视频流中包含的多个图像帧进行编码处理,得到与多个图像帧相对应的多个帧编码数据。
视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,可以看到动作连续的视频。由于连续的帧之间相似性极高,为便于储存传输,需要对原始的视频进行编码压缩,以去除空间、时间维度的冗余。视频编码指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件。目前视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264等。
在一种可选的实现方式中,针对同一种编解码标准,存在多种基于该编码标准实现的视频编码器,并且不同类型的编码器具有不同的优势和劣势。例如,常用的基于H.264标准实现的编码器包括OpenH264编码器和X264编码器,X264编码器的编码效率和资源占用率都高于OpenH264编码器。因此,为了更合理地对***资源进行配置,并进一步提升视频图像编码的效率,在针对每个图像帧进行编码处理时,以当前资源占用率为依据选取适配类型的编码器实现编码。
具体地,步骤S110中的与每个图像帧相对应的帧编码数据通过以下方式得到:动态监测与图像帧相对应的当前资源占用率,根据当前资源占用率,从至少两种编码器类型中动态选择与当前资源占用率相匹配的目标编码器类型,通过目标编码器类型的目标编码器对图像帧进行编码处理,得到与图像帧相对应的帧编码数据。
在一种可选的实现方式中,在对每个图像帧进行编码处理之前,获取当前的***资源占用率作为与当前图像帧相对应的当前资源占用率。或者,通过预先设置监测时间间隔,每隔预设监测时间间隔,获取当前的***资源占用率,实现对资源占用率的动态监测。其中,预设监测时间间隔可以设置为较小的数值,例如设置为相较于针对一个图像帧进行编码所需时间更小的数值。需要说明的是,动态监测资源占用率的具体实现方式由本领域技术人员在实施该方法时视实际业务场景需求决定,在此不作限制。
在一种可选的实现方式中,资源占用率包括:中央处理器(CPU)资源占用率、***内存资源占用率等。具体选取何种资源的实时资源占用率作为编码器选择依据,由本领域技术人员在实施该方法时视实际业务场景需求决定,在此不作限制。
步骤S120:针对与多个图像帧相对应的多个帧编码数据进行合并处理,得到与原始视频流相对应的联合编码数据流。
视频图像数据有很强的相关性,即存在大量的冗余信息。其中,冗余信息可分为空域冗余信息和时域冗余信息。视频编码(压缩技术)就是将数据中的冗余信息去掉(去除数据之间的相关性),压缩技术包含帧内图像数据压缩技术、帧间图像数据压缩技术和熵编码压缩技术。
在步骤S120中,多个帧编码数据是分别由多个图像帧经过编码处理得到的编码结果,已在步骤S110中获取得到。经过压缩编码处理的帧编码数据去除了对应图像帧中的冗余信息,仅保留了对应图像帧中特有的数据信息。相较于对应的图像帧,帧编码数据的数据量大大减少,占用更少的内存,缓解直接传输图像帧数据可能造成的通信线路故障及数据存储容量紧张的问题。
在一种可选的实现方式中,与多个图像帧相对应的多个帧编码数据,分别通过多个不同类型的编码器进行编码处理得到。其中,多个不同类型的编码器基于同一编码标准实现,例如,OpenH264编码器和X264编码器都基于H.264标准实现。因此,上述分别通过多个不同类型的编码器进行编码处理得到的与多个图像帧相对应的多个帧编码数据具有相同的编码格式。从而,对上述多个帧编码数据进行合并处理,可以直接通过基于二进制的顺次拼接实现。针对与接收到的原始视频流中包含的多个图像帧相对应的多个帧编码数据进行合并处理,合并结果即为通过多种类型编码器联合编码得到的与原始视频流相对应的联合编码数据流。
综上所述,根据本公开实施例所提供的一种视频编码方法,首先,针对接收到的原始视频流中包含的多个图像帧进行编码处理,得到与多个图像帧相对应的多个帧编码数据;然后,针对与多个图像帧相对应的多个帧编码数据进行合并处理,得到与原始视频流相对应的联合编码数据流;其中,与每个图像帧相对应的帧编码数据通过以下方式得到:动态监测与图像帧相对应的当前资源占用率,根据当前资源占用率,从至少两种编码器类型中动态选择与当前资源占用率相匹配的目标编码器类型,通过目标编码器类型的目标编码器对图像帧进行编码处理,得到与图像帧相对应的帧编码数据。本公开实施例所提供的视频编码方法,能够根据当前资源占用率,选取与当前资源占用率相匹配的视频编码器,分别对原始视频流中包含的每个图像帧进行编码处理,再将每个图像帧对应的编码结果合并得到与原始视频流相对应的联合编码数据流。由此可知,该方法能够根据实时资源占用率动态切换不同类型的视频编码器,实现采用多种类型的视频编码器对原始视频流进行联合编码处理,从而通过适配类型的视频编码器兼顾资源占用率和编码处理效率,在合理调配资源的前提下提升视频编码的效率。
图2为本公开又一实施例提供的一种视频编码方法的流程图。参照图2,该方法包括:
步骤S210:针对接收到的原始视频流中包含的每个图像帧,动态监测与该图像帧相对应的当前资源占用率。
视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,可以看到动作连续的视频。图像帧是组成视频的最小单位。
在一种可选的实现方式中,获取当前的***资源占用率作为与当前图像帧相对应的当前资源占用率,以实现对与当前图像帧相对应的当前资源占用率的动态监测。或者,通过预先设置监测时间间隔,每隔预设监测时间间隔,获取当前的***资源占用率,实现对资源占用率的动态监测。其中,预设监测时间间隔可以设置为较小的数值,例如设置为相较于针对一个图像帧进行编码所需时间更小的数值。需要说明的是,动态监测资源占用率的具体实现方式由本领域技术人员在实施该方法时视实际业务场景需求决定,在此不作限制。
在一种可选的实现方式中,资源占用率包括:中央处理器(CPU)资源占用率、***内存资源占用率等。具体对何种资源的实时资源占用率进行动态监测,由本领域技术人员在实施该方法时视实际业务场景需求决定,在此不作限制。
步骤S220:针对接收到的原始视频流中包含的每个图像帧,根据当前资源占用率,从至少两种编码器类型中动态选择与当前资源占用率相匹配的目标编码器类型,通过目标编码器类型的目标编码器对该图像帧进行编码处理,得到与该图像帧相对应的帧编码数据。
图像帧是组成视频的最小单位。由于连续的帧之间相似性极高,为便于储存传输,需要对原始的视频进行编码压缩,以去除空间、时间维度的冗余。视频编码指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件。目前视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264等。
在一种可选的实现方式中,针对同一种编解码标准,存在多种基于该编码标准实现的视频编码器,并且不同类型的编码器具有不同的优势和劣势。为了更合理地对***资源进行配置,并进一步提升视频图像编码的效率,在针对每个图像帧进行编码处理时,以当前资源占用率为依据选取适配类型的编码器实现编码。
因此,在步骤S220中,至少两种编码器类型包括:第一类型以及第二类型。其中,第一类型的编码器的资源占用率小于第二类型的编码器的资源占用率,第一类型的编码器的编码效率低于第二类型的编码器的编码效率。由此可知,第一类型的编码器同时具有资源占用率较小的优势和编码效率较低的劣势,第二类型的编码器同时具有编码效率较高的优势和资源占用率较大的劣势。
基于上述第一类型的编码器和第二类型的编码器,步骤S220中根据当前资源占用率,从至少两种编码器类型中动态选择与当前资源占用率相匹配的目标编码器类型,通过目标编码器类型的目标编码器对图像帧进行编码处理的具体实现方式包括:
若当前资源占用率超过预设阈值,则选择第一类型作为目标编码器类型,通过第一类型的目标编码器对图像帧进行编码处理;若当前资源占用率未超过预设阈值,则选择第二类型作为目标编码器类型,通过第二类型的目标编码器对图像帧进行编码处理。其中,用于评估当前资源占用率的预设阈值由本领域技术人员在实施该方法时视实际业务场景需求具体设置,在此不作限制。
通过上述具体实现方式,在针对每个图像帧进行编码处理时,以当前资源占用率为依据,选取可以同时兼顾当前资源占用率和编码处理效率的编码器实现编码,从而更合理地对***资源进行配置,并进一步提升视频图像编码的效率。
H.264是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。H.264具有很高的数据压缩比率,将大大节省用户的下载时间和数据流量收费。同时,H.264还拥有高质量流畅的图像,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。
在一种可选的实现方式中,本实施例中的视频编码方法基于H.264标准实现,则上述第一类型的编码器包括:OpenH264编码器,第二类型的编码器包括:X264编码器。其中,OpenH264编码器是一个轻量级的H.264编码器,具有较小的代码库,易于移植到各种***和设备上,相对较快且易于使用。然而,OpenH264编码器仅仅支持H.264的基本档编码方式,不支持H.264其他档次的编码方式,导致编码效率并不高。X264编码器是一个高效的H.264编码器,具有高性能和质量稳定性等方面的优势,通常用于制作高质量、低比特率的视频。然而,X264编码器相对较慢,需要更多的计算资源。
对于上述两种类型的编码器,OpenH264编码器仅能做到与X264的superfast档次速度相当,但压缩效率落后超过20%。并且,OpenH264编码器在码率控制方面的效果也不如X264编码器,X264编码器的码率控制设计更加精确。然而,X264编码器在设计上的复杂度更高,不如OpenH264做到轻便性和简易性。因此,OpenH264编码器的资源占用率小于X264编码器的资源占用率,OpenH264编码器的编码效率低于X264编码器的编码效率。
视频分辨率指的是视频图像在一个单位尺寸内的精密度,分辨率的单位为PPI(Pixels Per Inch),通常叫做像素每英寸。在通过终端设备对视频进行显示时,可以根据视频用途、观看设备、带宽、存储容量等影响因素,对不同分辨率的视频进行选择显示。其中,将原始视频按照不同压缩程度进行编码得到压缩编码数据,进而通过对不同压缩程度对应的压缩编码数据进行解码得到相对应的不同分辨率的视频。
在一种可选的实现方式中,为了实现针对原始视频流的多分辨率编码,每种编码器类型的目标编码器进一步包括:多个对应于多种预设分辨率的子编码器,且多个子编码器相互并行运行。其中,多种预设分辨率由本领域技术人员在实施该方法时视实际业务场景需求具体设置,在此不作限制,例如多种预设分辨率可以包括:1080p、720p、480p等。
基于上述实现方式,通过目标编码器类型的目标编码器对图像帧进行编码处理包括:分别通过多个对应于多种预设分辨率的子编码器,对图像帧进行编码处理,得到与当前图像帧相对应的多个帧编码数据;其中,多个帧编码数据分别对应于多种预设分辨率。并且,多个对应于多种预设分辨率的子编码器属于同一种类型的目标编码器。
步骤S230:针对与原始视频流中包含的多个图像帧相对应的多个帧编码数据进行合并处理,得到与原始视频流相对应的联合编码数据流。
视频图像数据有很强的相关性,即存在大量的冗余信息。其中,冗余信息可分为空域冗余信息和时域冗余信息。视频编码(压缩技术)就是将数据中的冗余信息去掉(去除数据之间的相关性),压缩技术包含帧内图像数据压缩技术、帧间图像数据压缩技术和熵编码压缩技术。
在步骤S230中,多个帧编码数据是分别由多个图像帧经过编码处理得到的编码结果,已在步骤S220中获取得到。经过压缩编码处理的帧编码数据去除了对应图像帧中的冗余信息,仅保留了对应图像帧中特有的数据信息。相较于对应的图像帧,帧编码数据的数据量大大减少,占用更少的内存,缓解直接传输图像帧数据可能造成的通信线路故障及数据存储容量紧张的问题。
根据步骤S220所提供的实现方式可知,与多个图像帧相对应的多个帧编码数据,分别通过从至少两种类型的编码器中动态选择的目标编码器进行编码处理得到。其中,至少两种类型的编码器基于同一编码标准实现,例如,OpenH264编码器和X264编码器都基于H.264标准实现。因此,上述分别通过从至少两种类型的编码器中动态选择的目标编码器进行编码处理得到的与多个图像帧相对应的多个帧编码数据具有相同的编码格式。从而,对上述多个帧编码数据进行合并处理,可以直接通过基于二进制的顺次拼接实现。针对与接收到的原始视频流中包含的多个图像帧相对应的多个帧编码数据进行合并处理,合并结果即为通过至少两种类型的编码器联合编码得到的与原始视频流相对应的联合编码数据流。
在一种可选的实现方式中,为了实现针对原始视频流的多分辨率编码,步骤S230中分别与每个图像帧相对应的帧编码数据包括:与当前图像帧相对应的分别对应于多种预设分辨率的多个帧编码数据,则针对任一预设分辨率,步骤S230具体包括:
将多种预设分辨率中的任一分辨率确定为目标分辨率,针对每个图像帧对应的多个帧编码数据提取与目标分辨率相对应的目标帧编码数据,针对多个图像帧对应的多个目标帧编码数据进行合并处理,得到与目标分辨率相对应的联合编码数据流。
步骤S240:将联合编码数据流发送至解码器进行解码处理,得到与原始视频流相对应的视频图像,将视频图像传输至显示端进行显示。
视频解码器是对已编码的数字视频进行还原解码操作的程序(视频播放器)或设备。在一种可选的实现方式中,上述步骤S220中至少两种类型的编码器基于同一编码标准实现,例如,OpenH264编码器和X264编码器都基于H.264标准实现。因此,上述分别通过从至少两种类型的编码器中动态选择的目标编码器进行编码处理得到的与多个图像帧相对应的多个帧编码数据具有相同的编码格式。
从而,在步骤S240中,可以通过同一解码器实现对通过至少两种候选编码器类型的编码器编码得到的联合编码数据流进行解码处理,即解码器支持对至少两种候选编码器类型的编码器编码得到的编码数据进行解码处理。
在一种可选的实现方式中,本实施例中的视频编码方法基于H.264标准实现,则解码器具体包括:FFmpeg解码器。FFmpeg是一个集成多种音视频编解码器的开源库,支持H.264、AAC、MP3等常用格式,并且具有广泛的应用场景,如视频编辑软件、转码工具、流媒体服务器等。
在一种可选的实现方式中,为了实现针对原始视频流的多分辨率编码,步骤S240中的联合编码数据流包括:与多种预设分辨率相对应的多个联合编码数据流,则针对任一预设分辨率,将与该预设分辨率相对应的联合编码数据流发送至解码器进行解码处理,得到与该预设分辨率相对应的视频图像,将视频图像传输至显示端进行显示,以实现对指定分辨率的视频图像的显示。
在一种可选的实现方式中,本实施例中提供的视频编码方法通过基于WebRTC实现的***实现,***的原始程序代码中包含与第一类型的编码器相对应的第一代码段,以及用于调用第二类型的编码器的调用接口;其中,与第二编码器相对应的第二代码段中包含用于实现以下操作的代码:分辨率转换操作,码率转换操作,帧率转换操作,和/或关键帧发送操作。
WebRTC(Web Real-Time Communications)是一项实时通讯技术,允许网络应用或者站点在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流、音频流和/或其他任意数据的传输。WebRTC提供视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能。其中,视频编解码技术尤其重要,编码效率的高低直接决定视频通话的好坏。
在现有的WebRTC中,采用OpenH264编码作为默认的H.264编码器,即在需要获取H.264码流时,WebRTC会调用OpenH264编码器对视频进行编码处理,X264编码器并未被集成到WebRTC的原始程序代码中。
由此可知,在一种可选的实现方式中,本实施例中的视频编码方法基于H.264标准实现,则上述第一类型的编码器包括:OpenH264编码器,第二类型的编码器包括:X264编码器。并且,本实施例中提供的视频编码方法通过基于WebRTC实现的***实现,则为了实现编码器类型的动态切换,***的原始程序代码中包含与OpenH264编码器相对应的第一代码段,以及用于调用X264编码器的调用接口;其中,与OpenH264编码器相对应的第一代码段以及与X264编码器相对应的第二代码段中均包含用于实现以下操作的代码:分辨率转换操作,码率转换操作,帧率转换操作,和/或关键帧发送操作。
综上所述,根据本公开实施例所提供的一种视频编码方法,首先,针对接收到的原始视频流中包含的每个图像帧,动态监测与该图像帧相对应的当前资源占用率;其次,针对接收到的原始视频流中包含的每个图像帧,根据当前资源占用率,从至少两种编码器类型中动态选择与当前资源占用率相匹配的目标编码器类型,通过目标编码器类型的目标编码器对该图像帧进行编码处理,得到与该图像帧相对应的帧编码数据;然后,针对与原始视频流中包含的多个图像帧相对应的多个帧编码数据进行合并处理,得到与原始视频流相对应的联合编码数据流;最后,将联合编码数据流发送至解码器进行解码处理,得到与原始视频流相对应的视频图像,将视频图像传输至显示端进行显示;其中,针对接收到的原始视频流中包含的每个图像帧,通过多个相互并行运行的子编码器,实现针对原始视频流的多分辨率编码。由此可知,该方法能够根据实时资源占用率动态切换不同类型的视频编码器,实现采用多种类型的视频编码器对原始视频流进行联合编码处理,从而通过适配类型的视频编码器兼顾资源占用率和编码处理效率,在合理调配资源的前提下提升视频编码的效率;同时,通过多个相互并行运行的子编码器,实现针对原始视频流的多分辨率编码,满足更多样化的编码需求。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
图3为本公开实施例提供的一种视频编码装置的框图。
参照图3,本公开实施例提供了一种视频编码装置30,该视频编码装置30包括:
编码模块31,用于针对接收到的原始视频流中包含的多个图像帧进行编码处理,得到与多个图像帧相对应的多个帧编码数据;
合并模块32,用于针对与多个图像帧相对应的多个帧编码数据进行合并处理,得到与原始视频流相对应的联合编码数据流;
其中,与每个图像帧相对应的帧编码数据通过以下方式得到:动态监测与图像帧相对应的当前资源占用率,根据当前资源占用率,从至少两种编码器类型中动态选择与当前资源占用率相匹配的目标编码器类型,通过目标编码器类型的目标编码器对图像帧进行编码处理,得到与图像帧相对应的帧编码数据。
可选地,至少两种编码器类型包括:第一类型以及第二类型,第一类型的编码器的资源占用率小于第二类型的编码器的资源占用率;编码模块31具体用于:
若当前资源占用率超过预设阈值,则选择第一类型作为目标编码器类型,通过第一类型的目标编码器对图像帧进行编码处理;
若当前资源占用率未超过预设阈值,则选择第二类型作为目标编码器类型,通过第二类型的目标编码器对图像帧进行编码处理。
可选地,第一类型的编码器包括:OpenH264编码器,第二类型的编码器包括:X264编码器。
可选地,每种编码器类型的目标编码器进一步包括:多个对应于多种预设分辨率的子编码器,且多个子编码器相互并行运行;编码模块31具体用于:
分别通过多个对应于多种预设分辨率的子编码器,对图像帧进行编码处理,得到与当前图像帧相对应的多个帧编码数据;其中,多个帧编码数据分别对应于多种预设分辨率。
可选地,合并模块32具体用于:
将多种预设分辨率中的任一分辨率确定为目标分辨率,针对每个图像帧对应的多个帧编码数据提取与目标分辨率相对应的目标帧编码数据,针对多个图像帧对应的多个目标帧编码数据进行合并处理,得到与目标分辨率相对应的联合编码数据流。
可选地,视频编码装置30还包括解码模块,用于:
将联合编码数据流发送至解码器进行解码处理,得到与原始视频流相对应的视频图像,将视频图像传输至显示端进行显示;其中,解码器支持对至少两种候选编码器类型的编码器编码得到的编码数据进行解码处理。
可选地,视频编码装置30通过基于WebRTC实现的***实现,***的原始程序代码中包含与第一类型的编码器相对应的第一代码段,以及用于调用第二类型的编码器的调用接口;其中,与第二编码器相对应的第二代码段中包含用于实现以下操作的代码:分辨率转换操作,码率转换操作,帧率转换操作,和/或关键帧发送操作。
上述各个模块的具体结构和工作原理可参照方法实施例相应部分的描述,此处不再赘述。
上述视频编码装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图4为本公开实施例提供的一种电子设备的框图。
参照图4,本公开实施例提供了一种电子设备40,该电子设备40包括:至少一个处理器401;至少一个存储器402,以及一个或多个I/O接口403,连接在处理器401与存储器402之间;其中,存储器402存储有可被至少一个处理器401执行的一个或多个计算机程序,一个或多个计算机程序被至少一个处理器401执行,以使至少一个处理器401能够执行上述的视频编码方法。
上述电子设备中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序在被处理器/处理核执行时实现上述的视频编码方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备的处理器中运行时,电子设备中的处理器执行上述视频编码方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、闪存或其他存储器技术、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里所描述的计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
这里参照根据本公开实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

Claims (10)

1.一种视频编码方法,其特征在于,包括:
针对接收到的原始视频流中包含的多个图像帧进行编码处理,得到与所述多个图像帧相对应的多个帧编码数据;
针对所述与所述多个图像帧相对应的多个帧编码数据进行合并处理,得到与所述原始视频流相对应的联合编码数据流;
其中,与每个图像帧相对应的帧编码数据通过以下方式得到:动态监测与所述图像帧相对应的当前资源占用率,根据所述当前资源占用率,从至少两种编码器类型中动态选择与所述当前资源占用率相匹配的目标编码器类型,通过所述目标编码器类型的目标编码器对所述图像帧进行编码处理,得到与所述图像帧相对应的帧编码数据。
2.根据权利要求1所述的方法,其特征在于,所述至少两种编码器类型包括:第一类型以及第二类型,所述第一类型的编码器的资源占用率小于所述第二类型的编码器的资源占用率;
所述根据所述当前资源占用率,从至少两种编码器类型中动态选择与所述当前资源占用率相匹配的目标编码器类型,通过所述目标编码器类型的目标编码器对所述图像帧进行编码处理包括:
若所述当前资源占用率超过预设阈值,则选择第一类型作为所述目标编码器类型,通过所述第一类型的目标编码器对所述图像帧进行编码处理;
若所述当前资源占用率未超过预设阈值,则选择第二类型作为所述目标编码器类型,通过所述第二类型的目标编码器对所述图像帧进行编码处理。
3.根据权利要求2所述的方法,其特征在于,所述第一类型的编码器包括:OpenH264编码器,所述第二类型的编码器包括:X264编码器。
4.根据权利要求1所述的方法,其特征在于,每种编码器类型的目标编码器进一步包括:多个对应于多种预设分辨率的子编码器,且多个子编码器相互并行运行;
所述通过所述目标编码器类型的目标编码器对所述图像帧进行编码处理包括:
分别通过多个对应于多种预设分辨率的子编码器,对所述图像帧进行编码处理,得到与所述当前图像帧相对应的多个帧编码数据;其中,所述多个帧编码数据分别对应于所述多种预设分辨率。
5.根据权利要求4所述的方法,其特征在于,所述针对所述与所述多个图像帧相对应的多个帧编码数据进行合并处理,得到与所述原始视频流相对应的联合编码数据流包括:
将所述多种预设分辨率中的任一分辨率确定为目标分辨率,针对每个图像帧对应的多个帧编码数据提取与所述目标分辨率相对应的目标帧编码数据,针对多个图像帧对应的多个目标帧编码数据进行合并处理,得到与所述目标分辨率相对应的联合编码数据流。
6.根据权利要求1所述的方法,其特征在于,所述得到与所述原始视频流相对应的联合编码数据流之后,还包括:
将所述联合编码数据流发送至解码器进行解码处理,得到与所述原始视频流相对应的视频图像,将所述视频图像传输至显示端进行显示;其中,所述解码器支持对所述至少两种候选编码器类型的编码器编码得到的编码数据进行解码处理。
7.根据权利要求2所述的方法,其特征在于,所述方法通过基于WebRTC实现的***实现,所述***的原始程序代码中包含与所述第一类型的编码器相对应的第一代码段,以及用于调用所述第二类型的编码器的调用接口;其中,与所述第二编码器相对应的第二代码段中包含用于实现以下操作的代码:分辨率转换操作,码率转换操作,帧率转换操作,和/或关键帧发送操作。
8.一种视频编码装置,其特征在于,包括:
编码模块,用于针对接收到的原始视频流中包含的多个图像帧进行编码处理,得到与所述多个图像帧相对应的多个帧编码数据;
合并模块,用于针对所述与所述多个图像帧相对应的多个帧编码数据进行合并处理,得到与所述原始视频流相对应的联合编码数据流;
其中,与每个图像帧相对应的帧编码数据通过以下方式得到:动态监测与所述图像帧相对应的当前资源占用率,根据所述当前资源占用率,从至少两种编码器类型中动态选择与所述当前资源占用率相匹配的目标编码器类型,通过所述目标编码器类型的目标编码器对所述图像帧进行编码处理,得到与所述图像帧相对应的帧编码数据。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,所述一个或多个计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-7中任一项所述的视频编码方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-7中任一项所述的视频编码方法。
CN202311013733.4A 2023-08-11 2023-08-11 视频编码方法、装置、电子设备及存储介质 Pending CN116916032A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311013733.4A CN116916032A (zh) 2023-08-11 2023-08-11 视频编码方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311013733.4A CN116916032A (zh) 2023-08-11 2023-08-11 视频编码方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116916032A true CN116916032A (zh) 2023-10-20

Family

ID=88351092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311013733.4A Pending CN116916032A (zh) 2023-08-11 2023-08-11 视频编码方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116916032A (zh)

Similar Documents

Publication Publication Date Title
US11778229B2 (en) Conditional signalling of reference picture list modification information
JP7303322B2 (ja) イントラ予測のためのエンコーダ、デコーダおよび対応する方法
JP6059219B2 (ja) ビデオ符号化及び復号化における待ち時間の低減
KR102058759B1 (ko) 디코딩된 픽쳐 버퍼 및 참조 픽쳐 목록들에 관한 상태 정보의 시그널링 기법
KR102179360B1 (ko) 비디오 스플라이싱을 단순화시키기 위한 버퍼링 정보에 대한 구문 및 의미
US11638003B2 (en) Video coding and decoding methods and devices using a library picture bitstream
CN113748677A (zh) 编码器、解码器及对应的帧内预测方法
JP7314300B2 (ja) イントラ予測のための方法および装置
JP2022524357A (ja) エンコーダ、デコーダ、及び対応するインター予測方法
CN114501010A (zh) 图像编码方法、图像解码方法及相关装置
US11496754B2 (en) Video encoder, video decoder, and corresponding method of predicting random access pictures
US11323695B2 (en) Bidirectional intra prediction signaling
JP2023126795A (ja) ビデオコーディングにおけるクロマイントラ予測のための方法及び装置
US10432946B2 (en) De-juddering techniques for coded video
CN115866297A (zh) 视频处理方法、装置、设备及存储介质
CN116916032A (zh) 视频编码方法、装置、电子设备及存储介质
KR20060043050A (ko) 영상 신호의 인코딩 및 디코딩 방법
CN117136544A (zh) 视频流式传输中的参数集指示的方法
KR20060043867A (ko) 영상 신호의 인코딩 및 디코딩 방법

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