CN114866772A - 一种编码方法、编码装置及电子设备 - Google Patents
一种编码方法、编码装置及电子设备 Download PDFInfo
- Publication number
- CN114866772A CN114866772A CN202210560975.4A CN202210560975A CN114866772A CN 114866772 A CN114866772 A CN 114866772A CN 202210560975 A CN202210560975 A CN 202210560975A CN 114866772 A CN114866772 A CN 114866772A
- Authority
- CN
- China
- Prior art keywords
- code rate
- coded
- current frame
- target
- image
- 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
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/146—Data rate or code amount at the encoder output
-
- 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/169—Methods 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/17—Methods 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/172—Methods 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
本申请公开了一种编码方法、编码装置、电子设备及计算机可读存储介质。其中,该方法包括:计算当前待编码帧的场景复杂度;根据场景复杂度及预设的第一模型,确定当前待编码帧的可接受量化参数QP,其中,第一模型描述了场景复杂度与可接受QP的映射关系;根据可接受QP及预设的第二模型,确定当前待编码帧的基础码率,其中,第二模型描述了码率与QP的互为映射关系;在指定码率范围内,确定当前待编码帧的目标码率,其中,指定码率范围内的码率最小值为基础码率,指定码率范围内的码率最大值为预设的最大码率;根据目标码率对当前待编码帧进行编码。通过本申请方案,可实现视频流码率的动态智能调节,节约了视频流的存储空间。
Description
技术领域
本申请属于视频处理技术领域,尤其涉及一种编码方法、编码装置、电子设备及计算机可读存储介质。
背景技术
随着社会经济与科学技术的快速发展,越来越多的电子设备搭载了视频拍摄功能。然而,视频流中丰富的视频信息往往会造成其占用的存储空间巨大,进而导致电子设备的成本增加。当前,电子设备通常是对视频流的各帧图像进行编码后再进行存储,而码率控制为编码过程中的一个重要环节。可以认为,电子设备采取的码率控制策略权衡着其视频的画质优劣及码率高低。
目前,常见的码率控制策略是人为将电子设备的目标码率设定为某一定值,例如设定为电子设备所支持的最大码率。这种码率控制策略虽然能够最大限度地保障画质,但常规场景下的视频流往往并不需要这么多的码率。也即,现有码率控制策略存在目标码率设定过高而造成的存储空间浪费的问题。
发明内容
本申请提供了一种编码方法、编码装置、电子设备及计算机可读存储介质,可实现视频流码率的动态智能调节,节约了视频流的存储空间。
第一方面,本申请提供了一种编码方法,包括:
计算当前待编码帧的场景复杂度;
根据场景复杂度及预设的第一模型,确定当前待编码帧的可接受量化参数(Quantizer Parameter,QP),其中,第一模型描述了场景复杂度与可接受QP的映射关系;
根据可接受QP及预设的第二模型,确定当前待编码帧的基础码率,其中,第二模型描述了码率与QP的互为映射关系;
在指定码率范围内,确定当前待编码帧的目标码率,其中,指定码率范围内的码率最小值为基础码率,指定码率范围内的码率最大值为预设的最大码率;
根据目标码率对当前待编码帧进行编码。
第二方面,本申请提供了一种编码装置,包括:
计算模块,用于计算当前待编码帧的场景复杂度;
第一确定模块,用于根据场景复杂度及预设的第一模型,确定当前待编码帧的可接受QP,其中,第一模型描述了场景复杂度与可接受QP的映射关系;
第二确定模块,用于根据可接受QP及预设的第二模型,确定当前待编码帧的基础码率,其中,第二模型描述了码率与QP的互为映射关系;
第三确定模块,用于在指定码率范围内,确定当前待编码帧的目标码率,其中,指定码率范围内的码率最小值为基础码率,指定码率范围内的码率最大值为预设的最大码率;
编码模块,用于根据目标码率对当前待编码帧进行编码。
第三方面,本申请提供了一种电子设备,该电子设备包括存储器、处理器以及存储在该存储器中并可在该处理器上运行的计算机程序,该处理器执行该计算机程序时实现如该第一方面的方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如该第一方面的方法的步骤。
第五方面,本申请提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被一个或多个处理器执行时实现如该第一方面的方法的步骤。
本申请与现有技术相比存在的有益效果是:电子设备在进行编码时,在根据当前待编码帧的场景复杂度来确定出可接受QP后,将该可接受QP所对应的码率确定为基础码率。电子设备随即以该基础码率及预设的最大码率划定出一指定码率范围,并在该指定码率范围内,为当前待编码帧确定出最为适合的目标码率。最终,电子设备会根据该目标码率对当前待编码帧进行编码。上述过程考虑了当前待编码帧的场景复杂度对码率的影响,一定程度地节省了码率带宽以及存储空间。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的编码方法的实现流程示意图;
图2是本申请实施例提供的编码装置的结构框图;
图3是本申请实施例提供的电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
本申请实施例所提供的编码方法应用于电子设备。仅作为示例,该电子设备可以是智能手机、平板电脑或监控摄像机等具备视频拍摄功能的设备,此处不作限定。
下面以监控摄像机为例,对该编码方法作出说明。可以理解,使用安全数码卡(Secure Digital Memory Card/SD card)或云存储是监控摄像机存储监控视频的两种常见方式。在监控视频的时间较长时,监控视频会占用较大的存储空间,对于使用SD卡的方式来说,容易导致其存储空间不足;对于使用云存储的方式来说,其所需要的成本过高。基于此,本申请实施例提供了一种编码方法,可一定程度上节省存储空间,支持监控摄像机进行超长时间的SD卡录像或低云存储成本。
请参阅图1,该编码方法的实现流程详述如下:
步骤101,计算当前待编码帧的场景复杂度。
当前待编码帧,指的是当前监控摄像机即将要进行编码的原始视频帧。监控摄像机通过对当前待编码帧的纹理特征进行统计及分析处理,可计算出该当前待编码帧的场景复杂度。其中,纹理特征包括梯度、对比度、能量、熵和/或相关性等维度,此处不作限定。为便于说明,可将该当前待编码帧的场景复杂度记作c。
步骤102,根据场景复杂度及预设的第一模型,确定当前待编码帧的可接受QP。
监控摄像机中内置了一第一模型,可以理解,该第一模型描述了场景复杂度与可接受QP的映射关系,其中,该可接受QP指的是:在对应的编码前的场景复杂度下,用户所能接受的编码后的最低画质所对应的QP。为便于说明,以f1()表达该映射关系,记可接受QP为QP0,则QP0=f1(c)。
在一些示例中,在场景复杂度仅考虑了单维度的纹理特征的情况下,该第一模型可以是结构简单的函数模型(映射模型)。在另一些示例中,在场景复杂度考虑了多维度的纹理特征的情况下,该第一模型可以是深度学习模型或机器学习模型。本申请实施例不对第一模型的类型作出限定。
步骤103,根据可接受QP及预设的第二模型,确定当前待编码帧的基础码率。
监控摄像机中内置了一第二模型,可以理解,该第二模型描述了码率与QP的互为映射关系。为便于说明,以f2()表达QP到码率的映射关系,记基础码率为R1,则R1=f2(QP0)。
在一些实施例中,对该第二模型的训练简述如下:第二模型首先设定了码率R和QP之间初始的函数关系,该函数关系可表达为:R=f(k1,k2,QP),其中,k1和k2为关系参数,这两个关系参数与场景相关,随场景的动态变化而变化,此处不再赘述。电子设备的编码模块下发QP及其对应的码率R进行编码时,会得到实际的码率,若实际码率和下发的码率不相符,则说明场景发生了变化(通常体现在视频画面有变动)。基于此,电子设备可不断根据这个变化去实时调整关系参数k1和k2。
需要注意的是,在第二模型投入应用后,监控摄像机可根据应用过程中该第二模型的具体表现再进行微调,其微调过程与前文所示出的第二模型的训练过程类似,此处不再赘述。也即,第二模型可以是一个动态模型。
可以理解,该第二模型可在其它电子设备上训练完成后再部署移植到监控摄像机上;或者,也可直接在该监控摄像机上对该第二模型进行训练,此处不对训练第二模型这一操作的执行主体作出限定。
步骤104,在指定码率范围内,确定当前待编码帧的目标码率。
指定码率范围内的码率最小值可这样设定:由于基础码率是根据可接受QP计算而得的,而可接受QP表达了在当前待编码帧的场景复杂度下,用户所能接受的最低画质所对应的QP,因而,可将该基础码率作为指定码率范围内的码率最小值。
指定码率范围内的码率最大值可这样设定:将预设的最大码率作为指定码率范围内的码率最大值。显然,该预设的最大码率是一个定值,其不会随着监控摄像机所拍摄的场景的变化而变化。仅作为示例,该最大码率可以是根据监控摄像机的内存、可存储时长或者带宽设定而得,或者,也可以是由用户自主设定而得,此处不作限定。
记预设的最大码率为R2,则指定码率范围可表达为[R1,R2]。可以理解,根据该指定码率范围可知,由于监控摄像机是在该指定码率范围内确定出当前待编码帧的目标码率,因而该当前待编码帧的目标码率最小可能是R1,最大可能是R2。
步骤105,根据目标码率对当前待编码帧进行编码。
监控摄像机在计算出了当前待编码帧的目标码率后,即可以该目标码率作为编码的依据,对该当前待编码帧进行编码。具体地,通过该目标码率,监控摄像机可计算出相应的码控参数,这些码控参数可被发送至监控摄像机的编码器中,由该编码器根据接收到的码控参数来实现对该当前待编码帧的编码。
在一些实施例中,监控摄像机可结合当前待编码帧的运动信息来在指定码率范围内确定出适应该当前待编码帧的目标码率,则步骤104可包括:
A1、确定当前待编码帧的实时运动区域面积。
当前待编码帧的实时运动区域面积可通过如下几种方式获得:
第一种:根据当前待编码帧与前一帧已编码帧之间的帧差信息统计而得,具体为:根据当前待编码帧与前一帧已编码帧之间存在差异的像素点对的数量确定该前待编码帧的实时运动区域面积。可以理解,由于编码并不改变视频帧的尺寸(也即长宽),因而,当前待编码帧的每个像素点均可在前一帧已编码帧中找到对应位置(也即坐标相同)的像素点。也即,如果当前待编码帧的尺寸为N*M,则当前待编码帧与前一帧已编码帧之间存在N*M个像素点对。通过对这N*M个像素点对是否存在差异进行判断,即可找到存在差异的像素点对的数量L,根据该数量L即可确定当前待编码帧的实时运动区域面积。
需要注意的是,已编码帧,具体指的是:编码后得到的视频帧。也即,如果当前待编码帧为第n帧原始视频帧,则该当前待编码帧的前一帧已编码帧指的是:对第n-1帧原始视频帧编码后所得的视频帧。
然而,由于当前待编码帧是编码前的视频帧,前一帧已编码帧是编码后得到的视频帧,而编码操作不可避免的会带来一定的编码损失,因而,监控摄像机不容易判断出当前待编码帧与前一帧已编码帧之间的像素差异;也即,通过这种方式所得到的当前待编码帧的实时运动区域面积可能有一定的偏差。
第二种:根据当前待编码帧之前的N帧已编码帧的运动信息预测而得,其中,已编码帧的定义可参照前文,此处不再赘述;运动信息可以包括但不限于运动位置、位置变化速度和/或运动区域面积等,此处不作限定。可以理解,在监控摄像机拍摄的场景未发生大幅度变化的情况下,相邻的视频帧之间的变化通常存在一定的规律。基于此,可预先训练一机器学习或深度学习的模型,并以前N帧已编码帧的运动信息作为该模型的输入,实现对当前待编码帧的实时运动区域面积的预测。其中,该前N帧已编码帧的运动信息可从该前N帧已编码帧的编码过程中直接获得;也即,该前N帧已编码帧的运动信息是真实值。如果当前待编码帧为第n帧原始视频帧,则前N帧已编码帧指的是:第n-1帧已编码帧、第n-2帧已编码帧直至第n-N帧已编码帧。
然而,以这种方式进行预测时,并未能考虑到当前待编码帧的具体实际情况,因而,通过这种方式所得到的当前待编码帧的实时运动区域面积也可能有一定的偏差。
第三种:结合以上两种方式而得。也即,一方面确定当前待编码帧与前一帧已编码帧之间的帧差信息,另一方面获取当前待编码帧之前的N帧已编码帧的运动信息,最终根据该帧差信息、该运动信息及预设的第三模型,预测当前待编码帧的实时运动区域面积,其中,第三模型学习了运动区域的变化规律。可以理解,通过帧差信息,可获得对应的实时运动区域面积,记作第一实时运动区域面积;通过当前待编码帧之前的N帧已编码帧的运动信息和第三模型,也可获得对应的实时运动区域面积,记作第二实时运动区域面积;最后,第三模型将该第一实时运动区域面积及第二实时运动区域面积相融合,通过调整第一实时运动区域面积及第二实时运动区域面积的权重,获得最终的实时运动区域面积并输出。
在一些实施例中,对该第三模型的训练简述如下:第三模型对视频流样本进行处理,具体为根据待编码帧与前一帧已编码帧的帧差信息及前N帧已编码帧的运动信息,加权预测待编码帧的每个图像块是否运动,从而得到待编码帧的预测运动面积;根据具体的码控参数对待编码帧进行编码时,编码模块本身能算得待编码帧准确的运动面积,从而以该准确的运动面积作为标签,计算第三模型的损失并对第三模型的模型参数进行优化,以调整权重。在损失达到收敛后,或者,在训练轮次已满足要求后,即可得到已训练的第三模型。
需要注意的是,在第三模型投入应用后,监控摄像机可根据应用过程中该第三模型的具体表现再进行微调,其微调过程与前文所示出的第三模型的训练过程类似,此处不再赘述。也即,第三模型可以是一个动态模型。
可以理解,该第三模型可在其它电子设备上训练完成后再部署移植到监控摄像机上;或者,也可直接在该监控摄像机上对该第三模型进行训练,此处不对训练第三模型这一操作的执行主体作出限定。
A2、根据实时运动区域面积,在指定码率范围内计算得到目标码率。
监控摄像机可根据其所支持的最大码率,预先设定与该最大码率对应的运动区域面积,该运动区域面积即为最大运动区域面积。其中,该最大码率在前文已有描述,此处不再赘述。仅作为示例,监控摄像机可将该最大运动区域面积设定为一帧视频帧的整体面积(总面积);或者,也可设定为该整体面积的一定比例。例如,若将最大运动区域面积设定为一帧视频帧的整体面积的60%,则表示:监控摄像机在当前待编码帧有60%的面积在运动时,就将码率提升为最大码率。
监控摄像机可计算当前待编码帧的实时运动区域面积与预设的最大运动区域面积的比值。为便于说明,可记当前待编码帧的实时运动区域面积为Sp,记最大运动区域面积为Smax,则可计算得到比值b=Sp/Smax。根据该比值、前文已提出的基础码率R1及前文已提出的最大码率R2,监控设备可通过下式计算得到当前待编码帧的目标码率Rt:
Rt=R1+b*(R2-R1)
由前文描述可知:R1是根据当前待编码帧的场景复杂度而得的基础码率,R2是监控摄像机所能够提供的最大码率,b表达了当前待编码帧的运动比例。通过上式可知,在极端情况下:如果当前待编码帧的实时运动区域面积为0,则表示当前待编码帧与前一帧相比几乎没有变化,由于b为0,因而此时监控摄像机将以基础码率对该当前待编码帧进行编码,这样可节省资源;如果当前待编码帧的实时运动区域面积达到最大运动区域,则表示当前待编码帧与前一帧相比运动程度最大,由于b为1,因而此时监控摄像机将以最大码率对该当前待编码帧进行编码,这样可保障画质。
在一些实施例中,步骤105具体包括:
B1、根据目标码率及第二模型,确定当前待编码帧的目标QP。
前文已经说明了,第二模型描述的是码率与QP的互为映射关系。基于此,在已知目标码率的情况下,可通过第二模型确定出与目标码率相对应的QP,该QP即为当前待编码帧的目标QP。如前文所描述的,f2()表达的是QP到码率的映射关系,则码率到QP的映射关系可表示为f2 -1()。记目标QP为QPt,则QPt=f2 -1(Rt)。
B2、根据目标码率确定当前待编码帧的目标帧大小。
这里的目标帧大小(size),并不是指尺寸(也即长宽),而是指对待编码帧进行编码后,所得的已编码帧的期望数据大小,单位为比特(bit)或字节(byte)。可以将该目标帧大小近似理解为目标占用空间。
监控摄像机通过预设的帧率,可获知一秒内视频帧的数量;根据目标码率以及一秒内视频帧的数量,再结合视频流的帧类型的分配比例,即可计算出待编码帧的目标帧大小。
B3、将目标QP及目标帧大小发送至编码器,以指示编码器对当前待编码帧进行编码。
监控摄像机中,真正执行编码操作的是监控摄像机的硬件组成——编码器。基于此,监控设备在通过以上方式计算出了目标QP及目标帧大小之后,即可将这些码控参数下发至编码器处,由编码器参照所接收到的码控参数对当前待编码帧进行编码。
在一些实施例中,第一模型也需要在训练后才可投入使用。需要注意的是,在第一模型的应用过程中,监控摄像机不会再对其进行微调或优化。该第一模型的训练过程简述如下:
C1、构建待编码图像数据集。
在不同拍摄环境下,研发人员可通过监控摄像机或其它可拍摄的电子设备采集获得对应拍摄环境下的图像,这些图像即为待编码图像。可以理解,同一拍摄环境下,可能获得多张不同的待编码图像。
例如,在图书馆环境下,可每隔1分钟拍摄获得一张图像作为待编码图像,则一天可拍摄获得图书馆环境下的多张待编码图像。类似地,在公园环境下,也可每隔1分钟拍摄获得一张图像作为待编码图像,则一天可拍摄获得公园环境下的多张待编码图像。以此类推,即可构建得到待编码数据集。
C2、针对待编码图像数据集中的每个待编码图像,分别根据至少两个QP对待编码图像进行编码,得到待编码图像所对应的至少两个已编码图像。
在预设的QP范围(例如25至52)内,可指定出至少两个QP。则针对任一待编码图像,均可分别根据至少两个QP对该待编码图像进行编码,由此可得到该待编码图像所对应的至少两个已编码图像。假定待编码图像数据集中有X个待编码图像,且预设有Y个QP,由于每个待编码图像均可得到Y个对应的已编码图像,因而最终可得到X*Y个已编码图像。
例如,待编码图像数据集中有I1、I2、I3、……、IX这X个待编码图像,且指定有QP1、QP2、……、QPY这Y个QP,则:针对待编码图像I1,根据QP1对待编码图像I1进行编码,可得到已编码图像I11;根据QP2对待编码图像I1进行编码,可得到已编码图像I12;以此类推,可得到已编码图像I1Y。针对其它各个待编码图像,采用同样的方式进行编码,最终得到X*Y个已编码图像。
C3、计算每个待编码图像的场景复杂度。
例如,待编码图像数据集中有I1、I2、I3、……、IX这X个待编码图像,则可计算得到待编码图像I1的场景复杂度C1,待编码图像I2的场景复杂度C2,以此类推,此处不再赘述。
C4、获取每个已编码图像的评分。
已编码图像的评分为人从画质的角度考虑对图像的主观评分。具体地,可将每个已编码图像推送至专家系统,由多个专家用户在该专家系统上对每个已编码图像进行打分,每个已编码图像从这多个专家用户处所获得的分数均值即为其对应的评分。后续仅需从该专家系统进行数据抓取,即可获得每个已编码图像的评分。
C5、针对每个待编码图像,根据预设的目标评分及待编码图像所对应的每个已编码图像的评分进行筛选,得到待编码图像所对应的目标已编码图像。
正如前文所描述的,每个待编码图像均对应有Y个已编码图像。由于此处是对第一模型进行训练,第一模型期望描述的是场景复杂度与可接受QP的映射关系,而可接受QP的定义为:在对应的编码前的场景复杂度下,用户所能接受的编码后的最低画质所对应的QP,因而针对任一待编码图像来说,其所对应的目标已编码图像可通过如下方式确定:
将待编码图像所对应的每个已编码图像的评分与目标评分比对,确定出候选已编码图像,其中,候选已编码图像的评分不低于该目标评分;
将评分最低的候选已编码图像确定为目标已编码图像。
可以理解,上述过程是在不低于目标评分的基础上,找到评分最接近于该目标评分的已编码图像。
例如,假定Y为5,也即有QP1、QP2、QP3、QP4及QP5这五个QP;相应地,待编码图像I1就会有I11、I12、I13、I14、I15这五张已编码图像。假定在步骤C4后,获知已编码图像I11的评分为62,已编码图像I12的评分为70,已编码图像I13的评分为83,已编码图像I14的评分为81,已编码图像I15的评分为89,而目标评分为80,则可确定待编码图像I1的候选已编码图像为:已编码图像I13、I14及I15。又由于已编码图像I13、I14及I15中,I14的评分最低;也即,已编码图像I14是在不低于目标评分的基础上所找到的评分最接近于该目标评分的已编码图像。由此,可确定待编码图像I1的目标已编码图像为I14。以此类推,可找到每个其它的待编码图像所分别对应的目标已编码图像。
C6、根据每个目标已编码图像所对应的QP及每个待编码图像的场景复杂度训练第一模型。
每个已编码图像都是根据某一个QP对相对应的待编码图像进行编码而得到的,因而,每个已编码图像均有对应的QP,且每个已编码图像均唯一对应一个待编码图像。除此之外,每个待编码图像的场景复杂度也是已知的。由此,在有X张待编码图像的情况下,可形成X组场景复杂度与QP之间的映射关系。以该映射关系作为标签数据,以每个待编码图像的场景复杂度作为输入数据,即可实现对该第一模型的训练。
可以理解,该第一模型可在其它电子设备上训练完成后再部署移植到监控摄像机上;或者,也可直接在该监控摄像机上对该第一模型进行训练,此处不对训练第一模型这一操作的执行主体作出限定。
由上可见,通过本申请实施例,实现了如下技术效果:第一方面,该编码方法结合了场景复杂度熵掩蔽以及运动程度对码率的影响,在保障人眼主观视觉质量的前提下,最大程度地节省了码率带宽以及存储空间。第二方面,第二模型描述了码率与QP的互为映射关系,使得由场景复杂度决定的QP能够与由运动程度决定的码率联系起来,实现了码率的连续实时动态调节,缓解了码率控制不稳定及画质跳跃等问题。第三方面,通过第一模型的训练过程中专家用户对各个已编码图像的评分,建立了场景复杂度与可接受QP之间的映射关系,能最大程度地体现人眼主观对画质量化失真的可接受性,并且还通过目标评分的灵活选定在画质与码率带宽中实现了平衡。第四方面,第二模型及第三模型均为可持续训练的预测模型,二者均可在应用过程中通过实时优化及微调来不断提升准确性,进一步保障了编码过程的智能化。
对应于上文所提供的编码方法,本申请实施例还提供了一种编码装置。如图2所示,该编码装置200包括:
计算模块201,用于计算当前待编码帧的场景复杂度;
第一确定模块202,用于根据场景复杂度及预设的第一模型,确定当前待编码帧的可接受QP,其中,第一模型描述了场景复杂度与可接受QP的映射关系;
第二确定模块203,根据可接受QP及预设的第二模型,确定当前待编码帧的基础码率,其中,第二模型描述了码率与QP的互为映射关系;
第三确定模块204,在指定码率范围内,确定当前待编码帧的目标码率,其中,指定码率范围内的码率最小值为基础码率,指定码率范围内的码率最大值为预设的最大码率;
编码模块205,用于根据目标码率对当前待编码帧进行编码。
在一些实施例中,第三确定模块204,包括:
实时运动区域面积确定单元,用于确定当前待编码帧的实时运动区域面积;
目标码率计算单元,用于根据实时运动区域面积,在指定码率范围内计算得到目标码率。
在一些实施例中,实时运动区域面积确定单元,包括:
帧差信息确定子单元,用于确定当前待编码帧与前一帧已编码帧之间的帧差信息;
历史运动区域面积获取子单元,用于获取当前待编码帧之前的N帧已编码帧的运动区域面积;
实时运动区域面积预测子单元,用于根据帧差信息、运动区域面积及预设的第三模型,预测当前待编码帧的实时运动区域面积,其中,第三模型学习了运动区域的变化规律。
在一些实施例中,目标码率计算单元,包括:
比值计算子单元,用于计算实时运动区域面积与预设的最大运动区域面积的比值;
目标码率计算子单元,用于根据比值、基础码率及最大码率,计算得到目标码率。
在一些实施例中,编码模块205,包括:
目标QP确定单元,用于根据目标码率及第二模型,确定当前待编码帧的目标QP;
目标帧大小确定单元,用于根据目标码率确定当前待编码帧的目标帧大小;
编码单元,用于将目标QP及目标帧大小发送至编码器,以指示编码器对当前待编码帧进行编码。
在一些实施例中,编码装置200还包括训练模块,训练模块包括:
数据集构建单元,用于构建待编码图像数据集;
训练编码单元,用于针对待编码图像数据集中的每个待编码图像,分别根据至少两个QP对待编码图像进行编码,得到待编码图像所对应的至少两个已编码图像;
复杂度计算单元,用于计算每个待编码图像的场景复杂度;
评分获取单元,用于获取每个已编码图像的评分;
图像筛选单元,用于针对每个待编码图像,根据预设的目标评分及待编码图像所对应的每个已编码图像的评分进行筛选,得到待编码图像所对应的目标已编码图像;
第一模型训练单元,用于根据每个目标已编码图像所对应的QP及每个待编码图像的场景复杂度训练第一模型。
在一些实施例中,图像筛选单元,包括:
评分比对子单元,用于将待编码图像所对应的每个已编码图像的评分与目标评分比对,确定候选已编码图像,其中,候选已编码图像的评分不低于目标评分;
目标已编码图像确定子单元,用于将评分最低的候选已编码图像确定为目标已编码图像。
由上可见,通过本申请实施例,实现了如下技术效果:第一方面,该编码方法结合了场景复杂度熵掩蔽以及运动程度对码率的影响,在保障人眼主观视觉质量的前提下,最大程度地节省了码率带宽以及存储空间。第二方面,第二模型描述了码率与QP的互为映射关系,使得由场景复杂度决定的QP能够与由运动程度决定的码率联系起来,实现了码率的连续实时动态调节,缓解了码率控制不稳定及画质跳跃等问题。第三方面,通过第一模型的训练过程中专家用户对各个已编码图像的评分,建立了场景复杂度与可接受QP之间的映射关系,能最大程度地体现人眼主观对画质量化失真的可接受性,并且还通过目标评分的灵活选定在画质与码率带宽中实现了平衡。第四方面,第二模型及第三模型均为可持续训练的预测模型,二者均可在应用过程中通过实时优化及微调来不断提升准确性,进一步保障了编码过程的智能化。
对应于上文所提供的编码方法,本申请实施例还提供了一种电子设备。仅作为示例,该电子设备可以是智能手机、平板电脑或监控摄像机等类型的设备,此处不作限定。请参阅图3,本申请实施例中的电子设备3包括:存储器301,一个或多个处理器302(图3中仅示出一个)及存储在存储器301上并可在处理器上运行的计算机程序。其中:存储器301用于存储软件程序以及单元,处理器302通过运行存储在存储器301的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器302通过运行存储在存储器301的上述计算机程序时实现以下步骤:
计算当前待编码帧的场景复杂度;
根据场景复杂度及预设的第一模型,确定当前待编码帧的可接受QP,其中,第一模型描述了场景复杂度与可接受QP的映射关系;
根据可接受QP及预设的第二模型,确定当前待编码帧的基础码率,其中,第二模型描述了码率与QP的互为映射关系;
在指定码率范围内,确定当前待编码帧的目标码率,其中,指定码率范围内的码率最小值为基础码率,指定码率范围内的码率最大值为预设的最大码率;
根据目标码率对当前待编码帧进行编码。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,在指定码率范围内,确定当前待编码帧的目标码率,包括:
确定当前待编码帧的实时运动区域面积;
根据实时运动区域面积,在指定码率范围内计算得到目标码率。
在上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,确定当前待编码帧的实时运动区域面积,包括:
确定当前待编码帧与前一帧已编码帧之间的帧差信息;
获取当前待编码帧之前的N帧已编码帧的运动区域面积;
根据帧差信息、运动区域面积及预设的第三模型,预测当前待编码帧的实时运动区域面积,其中,第三模型学习了运动区域的变化规律。
在上述第二种可能的实施方式作为基础而提供的第四种可能的实施方式中,根据实时运动区域面积,在指定码率范围内计算得到目标码率,包括:
计算实时运动区域面积与预设的最大运动区域面积的比值;
根据比值、基础码率及最大码率,计算得到目标码率。
在上述第一种可能的实施方式作为基础而提供的第五种可能的实施方式中,根据目标码率对当前待编码帧进行编码,包括:
根据目标码率及第二模型,确定当前待编码帧的目标QP;
根据目标码率确定当前待编码帧的目标帧大小;
将目标QP及目标帧大小发送至编码器,以指示编码器对当前待编码帧进行编码。
在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础,或者上述第三种可能的实施方式作为基础,或者上述第四种可能的实施方式作为基础,或者上述第五种可能的实施方式作为基础而提供的第六种可能的实施方式中,第一模型的训练过程包括:
构建待编码图像数据集;
针对待编码图像数据集中的每个待编码图像,分别根据至少两个QP对待编码图像进行编码,得到待编码图像所对应的至少两个已编码图像;
计算每个待编码图像的场景复杂度;
获取每个已编码图像的评分;
针对每个待编码图像,根据预设的目标评分及待编码图像所对应的每个已编码图像的评分进行筛选,得到待编码图像所对应的目标已编码图像;
根据每个目标已编码图像所对应的QP及每个待编码图像的场景复杂度训练第一模型。
在上述六种可能的实施方式作为基础而提供的第七种可能的实施方式中,根据预设的目标评分及待编码图像所对应的每个已编码图像的评分进行筛选,得到待编码图像所对应的目标已编码图像,包括:
将待编码图像所对应的每个已编码图像的评分与目标评分比对,确定候选已编码图像,其中,候选已编码图像的评分不低于目标评分;
将评分最低的候选已编码图像确定为目标已编码图像。
应当理解,在本申请实施例中,所称处理器302可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器301可以包括只读存储器和随机存取存储器,并向处理器302提供指令和数据。存储器301的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器301还可以存储设备类别的信息。
由上可见,通过本申请实施例,实现了如下技术效果:第一方面,该编码方法结合了场景复杂度熵掩蔽以及运动程度对码率的影响,在保障人眼主观视觉质量的前提下,最大程度地节省了码率带宽以及存储空间。第二方面,第二模型描述了码率与QP的互为映射关系,使得由场景复杂度决定的QP能够与由运动程度决定的码率联系起来,实现了码率的连续实时动态调节,缓解了码率控制不稳定及画质跳跃等问题。第三方面,通过第一模型的训练过程中专家用户对各个已编码图像的评分,建立了场景复杂度与可接受QP之间的映射关系,能最大程度地体现人眼主观对画质量化失真的可接受性,并且还通过目标评分的灵活选定在画质与码率带宽中实现了平衡。第四方面,第二模型及第三模型均为可持续训练的预测模型,二者均可在应用过程中通过实时优化及微调来不断提升准确性,进一步保障了编码过程的智能化。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种编码方法,其特征在于,包括:
计算当前待编码帧的场景复杂度;
根据所述场景复杂度及预设的第一模型,确定所述当前待编码帧的可接受量化参数QP,其中,所述第一模型描述了场景复杂度与可接受QP的映射关系;
根据所述可接受QP及预设的第二模型,确定所述当前待编码帧的基础码率,其中,所述第二模型描述了码率与QP的互为映射关系;
在指定码率范围内,确定所述当前待编码帧的目标码率,其中,所述指定码率范围内的码率最小值为所述基础码率,所述指定码率范围内的码率最大值为预设的最大码率;
根据所述目标码率对所述当前待编码帧进行编码。
2.如权利要求1所述的编码方法,其特征在于,所述在指定码率范围内,确定所述当前待编码帧的目标码率,包括:
确定所述当前待编码帧的实时运动区域面积;
根据所述实时运动区域面积,在所述指定码率范围内计算得到所述目标码率。
3.如权利要求2所述的编码方法,其特征在于,所述确定所述当前待编码帧的实时运动区域面积,包括:
确定所述当前待编码帧与前一帧已编码帧之间的帧差信息;
获取所述当前待编码帧之前的N帧已编码帧的运动区域面积;
根据所述帧差信息、所述运动区域面积及预设的第三模型,预测所述当前待编码帧的实时运动区域面积,其中,所述第三模型学习了运动区域的变化规律。
4.如权利要求2所述的编码方法,其特征在于,所述根据所述实时运动区域面积,在所述指定码率范围内计算得到所述目标码率,包括:
计算所述实时运动区域面积与预设的最大运动区域面积的比值;
根据所述比值、所述基础码率及所述最大码率,计算得到所述目标码率。
5.如权利要求1所述的编码方法,其特征在于,所述根据所述目标码率对所述当前待编码帧进行编码,包括:
根据所述目标码率及所述第二模型,确定所述当前待编码帧的目标QP;
根据所述目标码率确定所述当前待编码帧的目标帧大小;
将所述目标QP及所述目标帧大小发送至编码器,以指示所述编码器对所述当前待编码帧进行编码。
6.如权利要求1至5任一项所述的编码方法,其特征在于,所述第一模型的训练过程包括:
构建待编码图像数据集;
针对所述待编码图像数据集中的每个待编码图像,分别根据至少两个QP对所述待编码图像进行编码,得到所述待编码图像所对应的至少两个已编码图像;
计算每个所述待编码图像的场景复杂度;
获取每个所述已编码图像的评分;
针对每个所述待编码图像,根据预设的目标评分及所述待编码图像所对应的每个已编码图像的评分进行筛选,得到所述待编码图像所对应的目标已编码图像;
根据每个目标已编码图像所对应的QP及每个待编码图像的场景复杂度训练所述第一模型。
7.如权利要求6所述的编码方法,其特征在于,所述根据预设的目标评分及所述待编码图像所对应的每个已编码图像的评分进行筛选,得到所述待编码图像所对应的目标已编码图像,包括:
将所述待编码图像所对应的每个已编码图像的评分与所述目标评分比对,确定候选已编码图像,其中,所述候选已编码图像的评分不低于所述目标评分;
将评分最低的所述候选已编码图像确定为所述目标已编码图像。
8.一种编码装置,其特征在于,包括:
计算模块,用于计算当前待编码帧的场景复杂度;
第一确定模块,用于根据所述场景复杂度及预设的第一模型,确定所述当前待编码帧的可接受量化参数QP,其中,所述第一模型描述了场景复杂度与可接受QP的映射关系;
第二确定模块,用于根据所述可接受QP及预设的第二模型,确定所述当前待编码帧的基础码率,其中,所述第二模型描述了码率与QP的互为映射关系;
第三确定模块,用于在指定码率范围内,确定所述当前待编码帧的目标码率,其中,所述指定码率范围内的码率最小值为所述基础码率,所述指定码率范围内的码率最大值为预设的最大码率;
编码模块,用于根据所述目标码率对所述当前待编码帧进行编码。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210560975.4A CN114866772A (zh) | 2022-05-23 | 2022-05-23 | 一种编码方法、编码装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210560975.4A CN114866772A (zh) | 2022-05-23 | 2022-05-23 | 一种编码方法、编码装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114866772A true CN114866772A (zh) | 2022-08-05 |
Family
ID=82640184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210560975.4A Pending CN114866772A (zh) | 2022-05-23 | 2022-05-23 | 一种编码方法、编码装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114866772A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117528084A (zh) * | 2024-01-04 | 2024-02-06 | 书行科技(北京)有限公司 | 一种视频编码方法、装置、设备及存储介质 |
WO2024124911A1 (zh) * | 2022-12-16 | 2024-06-20 | 书行科技(北京)有限公司 | 视频编码方法、装置、电子设备及存储介质 |
-
2022
- 2022-05-23 CN CN202210560975.4A patent/CN114866772A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024124911A1 (zh) * | 2022-12-16 | 2024-06-20 | 书行科技(北京)有限公司 | 视频编码方法、装置、电子设备及存储介质 |
CN117528084A (zh) * | 2024-01-04 | 2024-02-06 | 书行科技(北京)有限公司 | 一种视频编码方法、装置、设备及存储介质 |
CN117528084B (zh) * | 2024-01-04 | 2024-03-26 | 书行科技(北京)有限公司 | 一种视频编码方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114866772A (zh) | 一种编码方法、编码装置及电子设备 | |
US10496903B2 (en) | Using image analysis algorithms for providing training data to neural networks | |
CN111950723B (zh) | 神经网络模型训练方法、图像处理方法、装置及终端设备 | |
CN106296669B (zh) | 一种图像质量评价方法和装置 | |
CN112399176B (zh) | 一种视频编码方法、装置、计算机设备及存储介质 | |
WO2020042269A1 (zh) | 一种编码过程中的码率调整方法及装置 | |
CN112565777B (zh) | 基于深度学习模型视频数据传输方法、系统、介质及设备 | |
US20230319292A1 (en) | Reinforcement learning based rate control | |
CN114466189B (zh) | 码率控制方法、电子设备及存储介质 | |
WO2021036103A1 (zh) | 图像数据的压缩传输方法、系统和计算机可读存储介质 | |
CN116095355B (zh) | 视频显示控制方法及其装置、设备、介质、产品 | |
CN102938840A (zh) | 应用于多视点视频编码系统的关键帧量化参数选择方法 | |
CN112437301B (zh) | 一种面向视觉分析的码率控制方法、装置、存储介质及终端 | |
CN115767098A (zh) | 面向机器视觉的端-边协同视频编码方法及视频传输系统 | |
CN116992946B (zh) | 模型压缩方法、装置、存储介质和程序产品 | |
CN117273092A (zh) | 一种模型量化方法、装置、电子设备及存储介质 | |
CN115209150B (zh) | 一种视频编码参数获取方法、装置及电子设备 | |
CN116567246A (zh) | Avc编码方法和装置 | |
CN115063673B (zh) | 模型压缩方法、图像处理方法、装置和云设备 | |
CN113923398A (zh) | 一种视频会议实现方法及装置 | |
JP2016082395A (ja) | 符号化装置、符号化方法及びプログラム | |
CN115086663B (zh) | 一种基于深度强化学习的多摄像头实时视频传输方法 | |
CN114531594B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN114938450A (zh) | 一种编码方法、编码装置及电子设备 | |
WO2024109138A1 (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 |