CN116208769A - 视频编码方法和装置、电子设备、存储介质 - Google Patents
视频编码方法和装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN116208769A CN116208769A CN202310266790.7A CN202310266790A CN116208769A CN 116208769 A CN116208769 A CN 116208769A CN 202310266790 A CN202310266790 A CN 202310266790A CN 116208769 A CN116208769 A CN 116208769A
- Authority
- CN
- China
- Prior art keywords
- video
- mode
- frame
- determining
- coding
- 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/102—Methods 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/124—Quantisation
-
- 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/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- 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
-
- 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/176—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 block, e.g. a macroblock
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开提供一种视频编码方法和装置、电子设备、存储介质,涉及视频处理技术领域。该方法包括:响应于视频接收端的计算性能小于预设第一阈值,获取视频中待编码的第一视频帧之前的固定数量的第二视频帧的重建帧;对每两个重建帧进行图像匹配,确定每两个重建帧中对应图像块之间的第一匹配度;根据各第一匹配度,确定第一视频帧是否为背景帧;响应于确定第一视频帧为背景帧,采用第一模式对第一视频帧的宏块进行编码。本公开可以解决相关技术中接收端视频播放流畅度差和设备卡顿的问题。
Description
技术领域
本公开涉及视频处理技术领域,具体而言,涉及一种视频编码方法和装置、电子设备、存储介质。
背景技术
视频编码是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。在现有各种视频编码标准中,需要通过编码模式决策算法来确定编码的模式。但是由于编码模式决策算法复杂度较高,往往会消耗较多的计算资源,在实时视频通信场景下,容易引起接收端视频播放流畅度较差或设备卡顿等问题,尤其是在设备计算资源有限的情况下该问题尤为严重。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种视频编码方法和装置、***及电子设备,进而在一定程度上解决了相关技术中接收端视频播放流畅度差和设备卡顿的问题。
根据本公开的第一方面,提供了一种视频编码方法,方法包括:响应于视频接收端的计算性能小于预设第一阈值,获取视频中待编码的第一视频帧之前的固定数量的第二视频帧的重建帧;对每两个重建帧进行图像匹配,确定每两个重建帧中对应图像块之间的第一匹配度;根据各第一匹配度,确定第一视频帧是否为背景帧;响应于确定第一视频帧为背景帧,采用第一模式对第一视频帧的宏块进行编码。
可选地,确定第一视频帧是否为背景帧,包括:对于每个图像块,根据该图像块的各第一匹配度,确定该图像块的第二匹配度;响应于第二匹配度小于匹配阈值,确定该图像块为背景图像块;响应于背景图像块在重建帧中的占比大于预设第二阈值,确定第一视频帧为背景帧。
可选地,方法还包括:获取各第二视频帧中的同位块的量化参数,同位块为与第一视频帧的当前编码宏块同位置的宏块;确定每两个第二视频帧的量化参数的参数差;统计各同位块的被参考次数;根据各参数差及对应的被参考次数,确定当前编码宏块的编码模式,并采用该编码模式对当前编码宏块进行编码。
可选地,根据参数差和被参考次数,确定当前编码宏块的编码模式,包括:根据各参数差,确定第二视频帧的总参数差;响应于总参数差大于预设第三阈值且各同位块的被参考次数之和大于预设第四阈值,通过目标编码模式决策过程确定当前编码宏块的编码模式,目标编码模式决策过程对应的候选编码模式不包括第一模式;响应于总参数差大于预设第三阈值且各同位块的被参考次数之和小于预设第五阈值,对第一模式和第二模式进行决策比较,确定代价较小的模式为当前编码宏块的编码模式,第二模式的计算量大于第一模式。
可选地,方法还包括:响应于视频接收端的计算性能小于预设第一阈值,调整该接收端的视频编码的量化参数的上下限值,和/或调整视频编码的熵编码方式为第一熵编码方式。
可选地,方法还包括:响应于视频接收端的计算性能小于预设第六阈值,省略该接收端的视频编码过程中的滤波处理,第六阈值小于第一阈值。
可选地,方法还包括:响应于视频接收端的开机操作,通过监测接口获取视频接收端的计算性能。
根据本公开的第二方面,提供一种视频编码装置,装置包括:获取模块,用于响应于视频接收端的计算性能小于预设第一阈值,获取视频中待编码的第一视频帧之前的固定数量的第二视频帧的重建帧;第一确定模块,用于确定每两个重建帧中对应图像块之间的第一匹配度;第二确定模块,用于根据各第一匹配度,确定第一视频帧是否为背景帧;编码模块,用于响应于确定第一视频帧为背景帧,采用第一模式对第一视频帧的宏块进行编码。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。
根据本公开的第四方面,提供一种电子设备,包括:一个或多个处理器;以及存储装置,用于一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行上述任一实施例所述的方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在本公开示例实施方式所提供的视频编码方法中,一方面,可以根据待编码的第一视频帧之前的固定数量的第二视频帧的重建帧之间的第一匹配度,确定该待编码的第一视频帧是否为背景帧,在该第一视频帧为背景帧的情况下,直接采用第一模式对其进行编码,可以省略对该背景帧部分的编码模式决策过程,从而可以节省计算资源,提升编码性能,解决了实时通信场景下的视频播放流畅度差和设备卡顿的问题。另一方面,针对视频接收端计算性能小于第一阈值,即接收端设备计算性能较差的情况,在保证基本视频质量的前提下,保证该类设备在实时通信场景下的视频流畅度和***可用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出了根据本公开的一个实施例中视频编码方法的流程图之一。
图2示意性示出了根据本公开的一个实施例的视频编码过程及重建帧的示意图。
图3示意性示出了根据本公开的一个实施例的快速决策过程的示意图。
图4示意性示出了根据本公开的另一个实施例中视频编码方法的流程图之二。
图5示意性示出了根据本公开的一个实施例中视频编码装置的结构框图。
图6示出了适于用来实现本公开实施例的电子设备框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本申请的视频编码方法可以在各类电子设备上执行。在未做特殊说明的情况下,电子设备可以执行本申请实施例中的任一步骤,可以是电子设备的处理器执行该步骤。电子设备可以是各种能够进行视频通信的终端设备,如平板电脑或智能手机等,本示例对此不做限定。还需说明的是,本申请实施例中的任一步骤是电子设备可以独立执行的,即电子设备执行下述实施例中的任一步骤时,可以不依赖于其它步骤的执行。
视频编码流程可以包括预测编码(帧内预测和帧间预测)、变换编码、量化、滤波、熵编码等过程。其中,相邻图像里面的物体往往具有时间上的相关性,帧间编码是利用视频信息前后帧之间的关联进行视频压缩的。帧间编码模式可分为合并模式(Merge)、跳过模式(Skip)、仿射合并模式(Affine Merge)、普通的帧间模式(Inter_ME)和仿射模式(Affine)等。在视频编码过程中,帧间编码模式决策过程中的时间复杂度较大,本申请对计算性能较低的接收端进行编码流程优化,包括帧间决策过程的优化。
下面,结合具体的实施例,对本说明书实施例披露的视频编码方法进行介绍。
参考图1所示,本公开提供的一种示例实施方式的视频编码方法,应用于业务服务器,可以包括以下步骤。
步骤S110,响应于视频接收端的计算性能小于预设第一阈值,获取视频中待编码的第一视频帧之前的固定数量的第二视频帧的重建帧。
步骤S120,对每两个重建帧进行图像匹配,确定每两个重建帧中对应图像块之间的第一匹配度。
步骤S130,根据各第一匹配度,确定第一视频帧是否为背景帧。
步骤S140,响应于确定第一视频帧为背景帧,采用第一模式对第一视频帧的宏块进行编码。
在本示例实施方式所提供的视频编码方法中,一方面,可以根据待编码的第一视频帧之前的固定数量的第二视频帧的重建帧之间的第一匹配度,确定该待编码的第一视频帧是否为背景帧,在该第一视频帧为背景帧的情况下,直接采用第一模式对其进行编码,可以省略对该背景帧部分的编码模式决策过程,从而可以节省计算资源,提升编码性能,解决了实时通信场景下的视频播放流畅度差和设备卡顿的问题。另一方面,针对视频接收端计算性能小于第一阈值,即接收端设备计算性能较差的情况,在保证基本视频质量的前提下,保证该类设备在实时通信场景下的视频流畅度和***可用性。
以下对本公开的各个步骤进行更加详细的描述。
在步骤S110中,响应于视频接收端的计算性能小于预设第一阈值,获取视频中待编码的第一视频帧之前的固定数量的第二视频帧的重建帧。
在本示例实施方式中,视频接收端可以是实时通信场景下的视频的接收端设备,例如,远程多端视频会议场景。计算性能可以包括接收端设备的CPU、内存、存储空间等硬件资源性能中的一种或多种,例如,可以通过内存空间来指示设备的计算性能,本示例对此不做限定。第一阈值可以根据实际业务情况进行设定,也可以在不同场景或时段对第一阈值进行调整,本示例对此不做限定。本公开针对计算性能较差的接收端设备的视频编码过程而设计。
在本示例实施方式中,第一视频帧是指待编码的视频帧,例如,第一视频帧可以是待编码的当前视频帧。第二视频帧是视频序列中第一视频帧之前的若干相邻视频帧。固定数量可以是大于1的整数(如2、3、4等),如第二视频帧可以是待编码的当前帧之前的两帧视频帧。重建帧是第二视频帧的已重建视频帧。
示例性地,如图2所示,第一视频帧为第i帧视频帧,第二视频帧为第i-1帧和第i-2帧,获取已重建的第i-1帧和第i-2帧重建帧。
在步骤S120中,对每两个重建帧进行图像匹配,确定每两个重建帧中对应图像块之间的第一匹配度。
在本示例实施方式中,可以先对各重建帧进行图像块划分,可以根据视频编码过程中的宏块大小对重建帧进行划分,也可以自定义进行图像块划分,本示例对此不走限定。例如,可以按16×16对每个重建帧进行图像块划分。
在本示例实施方式中,可以采用各种图像匹配算法进行图像匹配,例如平均绝对差算法(MAD)、绝对误差和算法(SAD)、误差平方和算法(SSD)等等,本示例对此不做限定。相应地,第一匹配度可以是两个重建帧的对应图像块之间的MAD、SAD或SSD。本示例中,在重建帧的帧数大于2的情况下,可以分别计算每两个重建帧对应图像块之间的第一匹配度(如SAD)。
在步骤S130中,根据第一匹配度,确定第一视频帧是否为背景帧。
在本示例实施方式中,可以根据图像块的第一匹配度确定该图像块是否为背景图像块,再根据背景图像块的数量确定第一视频帧是否为背景帧。
示例性地,对于每个图像块,根据该图像块的各第一匹配度,确定该图像块的第二匹配度。
在本示例实施方式中,第一匹配度是指一次图像匹配过程中的图像块匹配度,第二匹配度是指对该图像块的多次图像匹配过程进行融合后的匹配度。对于每个图像块,可以根据每对进行图像匹配的重建帧中每个图像块的第一匹配度,确定该图像块的第二匹配度。
示例性地,当重建帧的数量等于2时,可以将该图像块的第一匹配度作为第二匹配度。当重建帧的数量大于2时,可以对该图像块的多个第一匹配度进行加权求和,将加权求和结果作为该图像块的第二匹配度。例如,当重建帧的数量为3,即重建帧分别为i-1、i-2、i-3,则对于每个图像块,可以确定该图像块在每次图像匹配过程中的第一匹配度,可以包括3次图像匹配,分别是i-1与i-2匹配,i-1与i-3匹配,i-2与i-3匹配,得到对应的三个第一匹配度,对三个第一匹配度进行加权求和,确定该图像块的第二匹配度。在加权求和过程中,可以根据重建帧对应的第二视频帧距离第一视频帧的距离,确定权值。例如,对i-1与i-2对应的第一匹配度分配较高权重(如权重为0.5),另外两个第一匹配度分配较小权重(如权重分别为0.3、0.2)。
响应于第二匹配度小于匹配阈值,确定该图像块为背景图像块。
在本示例实施方式中,匹配阈值可以根据经验进行设置,例如,匹配阈值可以设置为320。
响应于背景图像块在重建帧中的占比大于预设第二阈值,确定第一视频帧为背景帧。
在本示例实施方式中,可以统计背景图像块的数量N1,重建帧的总图像块数量N2,则背景图像块在重建帧中的占比N1/N2。第二阈值可以根据实际情况进行设置或调整,示例性地,第二阈值可以设置为大于0.8,例如第二阈值为0.9。当重建帧中的背景图像块数量较多时,可以认为第一视频帧为背景帧的概率较大。
在步骤S140中,响应于确定第一视频帧为背景帧,采用第一模式对第一视频帧的宏块进行编码。
在本示例实施方式中,第一模式是指帧间编码模式,第一模式用于表征第一视频帧的宏块无运动矢量、无像素残差;在一种实施方式中,第一模式可以为跳过模式(Skip模式),从而可以省略第一视频帧中背景帧的模式决策过程,降低编码计算复杂度。
在一些实施例中,为了提升编码性能同时,尽可能保证视频质量在可控范围内,参考图3,方法还包括以下步骤S301-310。
步骤S301,获取各第二视频帧中的同位块的量化参数。
在本示例实施方式中,同位块为与第一视频帧的当前编码宏块具有相同位置的宏块,可以从***中获取每个第二视频帧中同位块的量化参数。
步骤S302,确定每两个第二视频帧的量化参数的参数差。
在本示例实施方式中,可以与图像匹配过程类似,计算每两个量化参数之差。
步骤S303,统计各同位块的被参考次数。
在本示例实施方式中,可以统计每个同位块在整个视频编码过程中的被参考次数。可以认为被参考次数较大的同位块重要程度较高。
步骤S304,根据各参数差,确定第二视频帧的总参数差ref。
在本示例实施方式中,当第二视频帧的数量为2,则可以直接将两帧的同位块的参数差作为总参数差。当第二视频帧的数量大于2,则可以对每两帧内同位块的参数差进行加权求和,将加权求和结果作为总参数差。可以将距离第一视频帧较近的第二视频帧的参数差设置较大权重,距离较远的设置较小权重,各参数差权重之和可以为1。
步骤S305,判断是否满足总参数差ref大于预设第三阈值且各同位块的被参考次数之和sum大于预设第四阈值,若是,转至步骤S306,否则转至步骤S307。
在本示例实施方式中,第三阈值和第四阈值分别可以根据实际业务情况或者经验获得,本示例对此不做限定。例如,在第二视频帧的数量为2时,第三阈值可以设置为3,第四阈值可以设置为5。
步骤S306,通过目标编码模式决策过程确定当前编码宏块的编码模式,转至步骤S310。
在本示例实施方式中,目标编码模式决策过程可以是不包括第一模式的编码决策过程,即现有的模式决策方法中去除对Skip模式进行判断的操作后的模式决策方法,也即不进行skip模式的判断操作,直接进行其他模式判断操作的决策过程,如对于openH264来讲,可以不进行Skip模式的判断操作,直接进行P16x16模式的判断操作以及后续对P8x8模式以及I4x4模式的判断操作,从中选取代价最小的模式作为最佳宏块模式,即当前编码宏块的编码模式。P是指利用前面已解码的像素作为参考实现帧内预测的方式,16x16是指P宏块的尺寸为16x16,I是指帧内模式。
在本示例实施方式中,可以通过省略Skip模式的快速决策过程,简化决策过程,降低计算复杂度。
步骤S307,判断是否满足总参数差ref大于预设第三阈值且各同位块的被参考次数之和sum小于预设第五阈值,若是,转至步骤S308,否则,转至步骤S309。
在本示例实施方式中,第五阈值可以根据实际业务情况或者经验确定,本示例对此不做限定。例如,在第二视频帧的数量为2时,第五阈值可以设置为1。
步骤S308,对第一模式和第二模式进行决策比较,确定代价较小的模式为当前编码宏块的编码模式,转至步骤S310。
在本示例实施方式中,第二模式的计算量大于第一模式。第二模式用于表征每一编码宏块有像素残差、无运动矢量。在一种可行的方式中,第二模式可以为P16x16模式;其中,P是指利用前面已解码的像素作为参考实现帧内预测的方式。可以计算两种模式的代价函数值,如计算每种模式的SATD(Sum of Absolute Transformed Difference,哈曼德变换后的系数绝对值之和),将SATD值较小对应的模式作为当前编码宏块的编码模式。
步骤S309,根据现有模式决策过程进行编码模式确定,转至步骤S310。
在本示例实施方式中,可以根据实际的视频编码标准进行模式决策。
步骤S310,采用确定的编码模式对当前编码宏块进行编码。
在本示例实施方式中,可以利用确定的编码模式对当前编码宏块进行预测编码。
在一些实施例中,方法还包括:响应于视频接收端的计算性能小于预设第一阈值,调整该接收端的视频编码的量化参数的上下限值,和/或调整视频编码的熵编码方式为第一熵编码方式。
在本示例实施方式中,在监测到接收端设备性能小于第一阈值的情况下,可以缩小编码器中的量化参数的取值范围,即调整量化参数上下限,例如,可以减小量化参数的取值上限,增加量化参数的取值下限,例如,将量化参数的取值范围从0-50,调整为28-42。
在本示例实施方式中,在监测到接收端设备性能小于第一阈值的情况下,还可以调整熵编码方式为第一熵编码方式,第一熵编码方式是指计算量较小的方式,如可以将编码器的熵编码方式由CABAC(Context-based Adaptive Binary Arithmetic Coding,基于上下文的自适应二进制算数编码器)调整为CAVLC(Context-based Adaptive Variable-Length Coding,基于上下文的自适应可变长编码),以降低计算复杂度。
在一些实施例中,方法还包括:响应于视频接收端的计算性能小于预设第六阈值,省略该接收端的视频编码过程中的滤波处理。
在本示例实施方式中,第六阈值小于第一阈值,可以根据实际业务情况设置第六阈值。示例性地,当计算性能通过内存大小来表征时,可以设置第一阈值为2GB,第六阈值为1GB。本示例通过省略编码过程中的滤波处理,进一步简化计算复杂度,保证实时通信场景下的视频流畅度。
在一些实施例中,方法还包括:响应于视频接收端的开机操作,通过监测接口获取视频接收端的计算性能。
在本示例实施方式中,可以通过在接收端设备中配置计算性能监测接口,在设备开机时,获取设备计算性能,并通过监测接口下发监测结果给编码器,以在计算性能较差时,优化编码器的编码过程。
举例而言,如图4所示,本公开的视频编码方法可以通过以下步骤S401-S422实现。
步骤S401,视频接收端开机,通过监测接口获取设备计算性能。
步骤S402,判断计算性能是否小于第一阈值,若是,转至步骤S403,否则,转至步骤S422。
步骤S403,调整该接收端的视频编码的量化参数的上下限值,且调整视频编码的熵编码方式为第一熵编码方式。
步骤S404,判断计算性能是否小于第六阈值,若是,转至步骤S405,否则,转至步骤S406。
步骤S405,关闭该接收端的编码器的滤波模块,即在编码过程中省略滤波处理过程。
步骤S406,获取视频中待编码的第一视频帧之前的两帧第二视频帧的重建帧。
步骤S407,对两个重建帧进行图像匹配,确定两个重建帧中对应图像块之间的第一匹配度。
步骤S408,判断当前图像块的第一匹配度是否小于匹配阈值,若是转至步骤S409,否则,转至S410。
步骤S409,确定该图像块为背景图像块。
步骤S410,进入下一图像块的判断。
步骤S411,判断是否匹配结束,即是否所有图像块都匹配结束,若是,转至S412,否则转至步骤S410。
步骤S412,判断背景图像块在重建帧中的占比是否大于预设第二阈值,若是,转至步骤S413,否则,转至步骤S414。
步骤S413,确定第一视频帧为背景帧,采用第一模式对第一视频帧的宏块进行编码。
步骤S414,获取各第二视频帧中的同位块的量化参数。
步骤S415,确定两个第二视频帧的量化参数的参数差,统计各同位块的被参考次数。
步骤S416,判断是否满足第一条件:参数差大于预设第三阈值且各同位块的被参考次数之和大于预设第四阈值,若是,则转至步骤S417,否则,转至步骤S418。
步骤S417,通过目标编码模式决策过程确定当前编码宏块的编码模式,转至步骤S421,目标编码模式决策过程对应的候选编码模式不包括第一模式。
步骤S418,判断是否满足第二条件:参数差大于预设第三阈值且各同位块的被参考次数之和小于预设第五阈值,若是转至步骤S419,否则转至步骤是420。
步骤S419,对第一模式和第二模式进行决策比较,确定代价较小的模式为当前编码宏块的编码模式,转至S421,第二模式的计算量大于第一模式。
步骤S420,采用现有模式决策过程确定编码模式,转至步骤S421。
步骤S421,编码器采用确定的编码模式进行第一视频帧的宏块编码。
步骤S422,编码器采用现有视频编码方式进行第一视频帧的宏块编码。本示例中,在接收端设备的计算性能足够的情况下,不进行编码优化。
以上实施例中,以第二视频帧的数量为两帧进行说明,在第二视频帧的数量大于两帧的情况下,只需要对相应参数进行加权处理即可,如前述实施例所示,本示例在此不再赘述。
本发明针对实时媒体流场景下存在接收端设备计算性能较低的情况,对于该类设备,很可能出现设备无法支撑实时视频编解码处理的情况,出现视频卡顿,甚至死机的情况。
对于该类设备需要在保证基本视频质量的前提下,尽可能的减少视频编码过程的计算复杂度和计算量。本申请通过对编码器进行预设配置剪枝操作(调整量化参数上下限和熵编码方式)和优化模式决策过程(包括预测背景帧、目标编码模式决策过程和简化的两模式决策比较过程)的方式,大大降低了视频编码过程中的计算复杂度和计算量,能够保证低性能接收端的视频播放流畅度,避免设备卡顿或死机的问题,保证通信过程正常进行。
进一步的,本示例实施方式中,还提供了一种视频编码装置500。该视频编码装置500可以应用于视频终端。参考图5所示,该视频编码装置500可以包括:获取模块510、第一确定模块520、第二确定模块和编码模块530,获取模块510,用于响应于视频接收端的计算性能小于预设第一阈值,获取视频中待编码的第一视频帧之前的固定数量的第二视频帧的重建帧;第一确定模块520,用于确定每两个重建帧中对应图像块之间的第一匹配度;第二确定模块530,用于根据各第一匹配度,确定第一视频帧是否为背景帧;编码模块540,用于响应于确定第一视频帧为背景帧,采用第一模式对第一视频帧的宏块进行编码。
在本公开的一种示例性实施例中,第二确定模块530还可以用于:对于每个图像块,根据该图像块的各第一匹配度,确定该图像块的第二匹配度;响应于第二匹配度小于匹配阈值,确定该图像块为背景图像块;响应于背景图像块在重建帧中的占比大于预设第二阈值,确定第一视频帧为背景帧。
在本公开的一种示例性实施例中,装置500还包括决策模块,决策模块可以用于:获取各第二视频帧中的同位块的量化参数,同位块为与第一视频帧的当前编码宏块同位置的宏块;确定每两个第二视频帧的量化参数的参数差;统计各同位块的被参考次数;根据各参数差及对应的被参考次数,确定当前编码宏块的编码模式,并采用该编码模式对当前编码宏块进行编码。
在本公开的一种示例性实施例中,决策模块还可以用于:根据各参数差,确定第二视频帧的总参数差;响应于总参数差大于预设第三阈值且各同位块的被参考次数之和大于预设第四阈值,通过目标编码模式决策过程确定当前编码宏块的编码模式,目标编码模式决策过程对应的候选编码模式不包括第一模式;响应于总参数差大于预设第三阈值且各同位块的被参考次数之和小于预设第五阈值,对第一模式和第二模式进行决策比较,确定代价较小的模式为当前编码宏块的编码模式,第二模式的计算量大于第一模式。
在本公开的一种示例性实施例中,装置500还包括剪枝模块,剪枝模块可以用于响应于视频接收端的计算性能小于预设第一阈值,调整该接收端的视频编码的量化参数的上下限值,和/或调整视频编码的熵编码方式为第一熵编码方式。
在本公开的一种示例性实施例中,剪枝模块还可以用于:响应于视频接收端的计算性能小于预设第六阈值,省略该接收端的视频编码过程中的滤波处理,第六阈值小于第一阈值。
在本公开的一种示例性实施例中,装置500还可以包括监测模块,监测模块可以用于响应于视频接收端的开机操作,通过监测接口获取视频接收端的计算性能。
上述视频编码装置中各模块或单元的具体细节已经在对应的视频编码方法中进行了详细的描述,因此此处不再赘述。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中的方法。例如,电子设备可以实现如图1~图4所示的各个流程步骤等。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
下面参照图6来描述根据本公开的这种实施例的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用电子设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同***组件(包括存储单元620和处理单元610)的总线630、显示单元640。
其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备670(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RA标识***、磁带驱动器以及数据备份存储***等。
在示例性实施例中,还提供了一种计算机程序产品,例如,可以包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质;当计算机程序产品在计算机上运行时,使得计算机执行上述实施例中的方法。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台电子设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等,均应视为本公开的一部分。
应可理解的是,本说明书公开和限定的本公开延伸到文中和/或附图中提到或明显的两个或两个以上单独特征的所有可替代组合。所有这些不同的组合构成本公开的多个可替代方面。本说明书的实施方式说明了已知用于实现本公开的最佳方式,并且将使本领域技术人员能够利用本公开。
Claims (10)
1.一种视频编码方法,其特征在于,包括:
响应于视频接收端的计算性能小于预设第一阈值,获取所述视频中待编码的第一视频帧之前的固定数量的第二视频帧的重建帧;
对每两个重建帧进行图像匹配,确定每两个重建帧中对应图像块之间的第一匹配度;
根据各所述第一匹配度,确定所述第一视频帧是否为背景帧;
响应于确定所述第一视频帧为背景帧,采用第一模式对所述第一视频帧的宏块进行编码。
2.根据权利要求1所述的视频编码方法,其特征在于,所述确定所述第一视频帧是否为背景帧,包括:
对于每个图像块,根据该图像块的各所述第一匹配度,确定该图像块的第二匹配度;
响应于所述第二匹配度小于匹配阈值,确定该图像块为背景图像块;
响应于所述背景图像块在所述重建帧中的占比大于预设第二阈值,确定所述第一视频帧为背景帧。
3.根据权利要求1或2所述的视频编码方法,其特征在于,所述方法还包括:
获取各所述第二视频帧中的同位块的量化参数,所述同位块为与所述第一视频帧的当前编码宏块同位置的宏块;
确定每两个所述第二视频帧的所述量化参数的参数差;
统计各所述同位块的被参考次数;
根据各所述参数差及对应的被参考次数,确定所述当前编码宏块的编码模式,并采用该编码模式对所述当前编码宏块进行编码。
4.根据权利要求3所述的视频编码方法,其特征在于,所述根据所述参数差和所述被参考次数,确定所述当前编码宏块的编码模式,包括:
根据各所述参数差,确定所述第二视频帧的总参数差;
响应于所述总参数差大于预设第三阈值且各所述同位块的所述被参考次数之和大于预设第四阈值,通过目标编码模式决策过程确定所述当前编码宏块的编码模式,所述目标编码模式决策过程对应的候选编码模式不包括所述第一模式;
响应于所述总参数差大于预设第三阈值且各所述同位块的所述被参考次数之和小于预设第五阈值,对所述第一模式和第二模式进行决策比较,确定代价较小的模式为所述当前编码宏块的编码模式,所述第二模式的计算量大于所述第一模式。
5.根据权利要求1所述的视频编码方法,其特征在于,所述方法还包括:
响应于视频接收端的计算性能小于预设第一阈值,调整该接收端的视频编码的量化参数的上下限值,和/或调整所述视频编码的熵编码方式为第一熵编码方式。
6.根据权利要求5所述的视频编码方法,其特征在于,所述方法还包括:
响应于视频接收端的计算性能小于预设第六阈值,省略该接收端的所述视频编码过程中的滤波处理,所述第六阈值小于所述第一阈值。
7.根据权利要求1、5或6所述的视频编码方法,其特征在于,所述方法还包括:
响应于所述视频接收端的开机操作,通过监测接口获取所述视频接收端的计算性能。
8.一种视频编码装置,其特征在于,所述装置包括:
获取模块,用于响应于视频接收端的计算性能小于预设第一阈值,获取所述视频中待编码的第一视频帧之前的固定数量的第二视频帧的重建帧;
第一确定模块,用于确定每两个重建帧中对应图像块之间的第一匹配度;
第二确定模块,用于根据各所述第一匹配度,确定所述第一视频帧是否为背景帧;
编码模块,用于响应于确定所述第一视频帧为背景帧,采用第一模式对所述第一视频帧的宏块进行编码。
9.一种电子设备,其特征在于,包括:一个或多个处理器;以及
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310266790.7A CN116208769A (zh) | 2023-03-15 | 2023-03-15 | 视频编码方法和装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310266790.7A CN116208769A (zh) | 2023-03-15 | 2023-03-15 | 视频编码方法和装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116208769A true CN116208769A (zh) | 2023-06-02 |
Family
ID=86512862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310266790.7A Pending CN116208769A (zh) | 2023-03-15 | 2023-03-15 | 视频编码方法和装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116208769A (zh) |
-
2023
- 2023-03-15 CN CN202310266790.7A patent/CN116208769A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109089119B (zh) | 一种运动矢量预测的方法及设备 | |
RU2703957C1 (ru) | Устройство кодирования видео с предсказанием, способ кодирования видео с предсказанием, программа кодирования видео с предсказанием, устройство декодирования видео с предсказанием, способ декодирования видео с предсказанием и программа декодирования видео с предсказанием | |
JP5624178B2 (ja) | 映像復号化方法 | |
KR20200024817A (ko) | 영상 복호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체 | |
US10091526B2 (en) | Method and apparatus for motion vector encoding/decoding using spatial division, and method and apparatus for image encoding/decoding using same | |
US20140241436A1 (en) | Method and device for determining parameters for encoding or decoding of an image of a video sequence | |
JP2015165696A (ja) | 映像復号化方法及び装置 | |
JP2009526436A (ja) | ビデオ符号化向けの動き予測の予測子として利用可能な動き情報を再使用する方法及び装置 | |
JP2023052767A (ja) | 映像処理方法及び符号化器 | |
WO2022121787A1 (zh) | 视频预测编码的方法及装置 | |
KR20190108539A (ko) | 이전 블록의 움직임 벡터를 현재 블록의 움직임 벡터로 이용하는 영상 부호화, 복호화 방법 및 장치 | |
JP2020519186A (ja) | フレーム内予測方法、装置、ビデオ符号化装置、及び記憶媒体 | |
CN113383550A (zh) | 光流修正的提前终止 | |
CN113597757A (zh) | 具有区域数自适应的几何划分的形状自适应离散余弦变换 | |
JP2023107799A (ja) | ビデオピクチャの復号および符号化の方法ならびに装置 | |
WO2020143585A1 (zh) | 视频编码器、视频解码器及相应方法 | |
US20220360814A1 (en) | Enhanced motion vector prediction | |
CN110149512B (zh) | 帧间预测加速方法、装置、计算机存储介质及设备 | |
US9712839B2 (en) | Picture coding device, picture coding method, and picture coding program, and picture decoding device, picture decoding method, and picture decoding program | |
JP5938424B2 (ja) | 画像ブロックを再構成および符号化する方法 | |
JP2015211386A (ja) | 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム | |
US20230056211A1 (en) | Video encoding method and apparatus, video decoding method and apparatus, computer program product, computer-readable storage medium, and electronic device | |
KR20130023444A (ko) | 다단계 화면간 예측을 이용한 영상 부호화/복호화 장치 및 방법 | |
CN116033162A (zh) | 率失真编码模式的选择方法及装置、编码方法及*** | |
WO2019067907A1 (en) | APPARATUS AND METHOD FOR ENCODING IMAGE BLOCK |
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 |