一种视频编码方法、装置、设备和介质
文献发布时间:2023-06-19 19:28:50
技术领域
本发明涉及视频编解码技术领域,尤其涉及一种视频编码方法、装置、设备和介质。
背景技术
视频编解码技术旨在将对采集到的视频压缩成不同的标准格式的数据,用于传输或存储,视频编解码的标准有H.264/先进视频编码标准(Advanced Video Coding,AVC)、H.265/高性能视频编码标准(High Efficiency Video Coding,HEVC)、H.266/通用视频编码标准(Versatile Video Coding,VVC)等。
码率控制是视频编码标准的关键技术之一,通过对编码过程中的编码参数进行调节,可以对视频数据进行数据压缩,进而控制各个时刻的码率大小。视频中的每一幅图片被称为一帧,一帧压缩后的大小与编码器在编码过程中的参数相关,这些参数包括帧的类型、运动信息、量化参数(Quanlization Parameter,QP)等。上述参数中的量化参数控制的是有损量化处理过程中损失数据量的大小,对编码帧的大小有直接影响。
现有技术中基于量化参数进行码率控制的常用方式有:固定码率(Constant BitRate,CBR)和可变码率(Variable Bit Rate,VBR)。CBR对码率控制的要求相比VBR更加严格,因为CBR要求局部码率保持恒定,而VBR允许局部码率在一定范围内浮动,而保持主观质量的稳定。随着多媒体技术的发展,对视频流的码率控制的性能要求也提高,对CBR而言,一个准确的码率控制,可以最大限度的满足不浪费带宽传输的数据,对VBR而言,则能够在保持主观质量的前提下尽可能的节省码率。
码率控制一般会从三个层面对码率进行控制,分别为:图片组(Group ofPicture,GOP)级、帧级、宏块级;GOP级码控是指视频在编码时通常被划分为多个连续的GOP,是码率控制过程中进行处理的最大单元,GOP级码控过程会根据目标码率以及缓冲区状态为每个GOP合理地分配目标比特数;帧级码控是指每个GOP中又会包含多个视频帧,帧级码控过程则会根据该GOP总的目标比特数以及视频帧的特性为每帧图像分配目标比特数;宏块级码控过程对整帧视频中的每个编码宏块单独进行分析,根据每个编码宏块的特性得到宏块的比特;在根据GOP级、帧级、宏块级的比特计算量化参数时,采用的是率失真理论,率失真理论在数据压缩中,为数据压缩的性能提供理论极限和比较标准,依靠率失真理论提高视频压缩质量的方法被称为率失真优化(Rate-distortion optimization,RDO);R-λ模型作为码率控制模型中的一种,使用的就是率失真优化,通过R-λ模型构建了分配比特(R)与率失真参数(λ)之间的数学关系模型,再通过率失真参数(λ)与量化参数(QP)之间的映射关系,求出量化参数,从而控制码率的大小。而R-Q模型则直接构建了分配比特(R)与量化因子(Qscale)之间的数学关系模型,再由Qscale计算得到QP。
现有技术中的视频监控场景判别方法及其监控图像编码方法、及装置中,将监控得到的前一视频帧以及当前视频帧相减得到残差帧,然后统计残差帧非零像素点数目与残差帧所有像素点的比值,若比值大于设定的阈值,则认为当前场景为运动场景,否则为静止场景,针对识别到的运动场景或静止场景,采用运动场景或静止场景的图像编码方法,从而实现了监控图像编码。
但是现有技术在静态场景下,两帧之间的像素值基本仍会存在部分的差异,直接用非零像素与所有像素的比值来确定其是否为运动场景或者静态场景,容易产生误判;并且对于一个场景,只粗略的分为运动场景和静止场景,而在实际应用中,存在多种情况,例如大运动场景、中等运动场景、小运动场景、静止场景等;因此的视频编码方法节省码率的效果较差。
发明内容
本发明提供了一种视频编码方法、装置、设备和介质,用以解决现有的视频编码方法节省码率的效果较差的问题。
本发明提供了一种视频编码方法,所述方法包括:
获取目标视频中的每个视频帧;
针对所述每个视频帧,将该视频帧划分为预设大小的每个图像块,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,根据所述目标比值、以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的运动等级为该视频帧的目标运动等级,其中所述预设大小为单个像素点大小或预设边长的矩形大小;
针对所述每个视频帧,根据该视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数;
针对所述每个视频帧,将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特;
针对所述每个视频帧,将该视频帧的目标比特输入到码率控制模型,得到输出的该视频帧的量化参数;
根据所述目标视频中所述每个视频帧的量化参数,对所述目标视频中所述每个视频帧进行编码,得到压缩后的码流。
进一步地,所述确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值包括:
确定该视频帧的前背景掩膜图像,根据所述前背景掩膜图像确定该视频帧中的前景图像块,根据该视频帧中前景图像块的第一数量以及该视频帧中图像块的总数量,得到所述第一数量与所述总数量的目标比值。
进一步地,所述对该视频帧进行检测确定该视频帧的前背景掩膜图像之后,所述根据所述前背景掩膜图像确定该视频帧中的前景图像块之前,所述方法还包括:
对所述前背景掩膜图像进行连通域标记,确定每个连通域的预设参数的第一参数值,其中所述预设参数为连通域面积或连通域内像素点个数,针对每个连通域,判断该连通域的第一参数值是否小于第一预设阈值,若是将该连通域内所有像素点的掩膜值均填充为背景掩膜值,若否将该连通域内所有像素点的掩膜值均填充为前景掩膜值,得到更新后的前背景掩膜图像;
根据更新后的前背景掩膜图像,确定该视频帧中更新后的前景图像块。
进一步地,所述对所述前背景掩膜图像进行连通域标记之前,所述方法还包括:
根据所述前背景掩膜图像,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的第一比值,根据所述第一比值、第二预设阈值以及第三预设阈值,判断所述第一比值是否小于所述第二预设阈值,其中所述第三预设阈值大于所述第二预设阈值,若是,对所述前背景掩膜图像进行先膨胀后腐蚀的处理;若否,判断所述第一比值是否大于所述第三预设阈值,若是,对所述前背景掩膜图像进行先腐蚀后膨胀的处理,若否,不进行处理。
进一步地,所述将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特包括:
若该视频帧为关键帧,判断该视频帧是否为第一个关键帧,若是,则确定图片组的最大比特与预设系数的第一乘积值,将所述第一乘积值确定为该视频帧的目标比特,若否,则确定该视频帧的所述目标码率系数与该视频帧的上一帧的码率系数的第二比值,并确定所述第二比值与该视频帧的上一帧的比特的第二乘积值,将所述第二乘积值确定为该视频帧的目标比特;
若该视频帧为非关键帧,则确定所述最大比特减第一个关键帧的比特的第一差值,并确定图片组包含的视频帧数量减预设数量的第二差值,根据所述第一差值和所述第二差值的第三比值、以及所述目标码率系数,确定所述第三比值与该视频帧的所述目标码率系数的第三乘积值,将所述第三乘积值确定为该视频帧的目标比特。
相应地,本发明提供了一种视频编码方法,所述方法包括:
获取目标视频中的每个视频帧;
针对所述每个视频帧,将该视频帧划分为预设大小的每个图像块,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,根据所述目标比值、以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的运动等级为该视频帧的目标运动等级,其中所述预设大小为单个像素点大小或预设边长的矩形大小;
针对所述每个视频帧,根据该视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数;
针对所述每个视频帧,将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特,根据该视频帧的每个像素点的像素值,确定该视频帧和该视频帧的每个图像块的纹理复杂度的每个第二参数值,其中所述纹理复杂度为梯度、方差、平均绝对差和绝对误差和等参数中的任一种;
针对该视频帧的每个图像块,确定该图像块的第二参数值和该视频帧的第二参数值的第四比值,并确定所述第四比值与该视频帧的所述目标比特的第四乘积值为该图像块的第一比特,将该图像块的第一比特输入到码率控制模型,得到输出的该图像块的候选量化参数;
若该图像块为前景图像块,根据预先保存的第二映射关系,确定该图像块的所述候选量化参数在所述第二映射关系中对应的目标量化参数,若该图像块为背景图像块,根据预先保存的第三映射关系,确定该图像块的所述候选量化参数在所述第三映射关系中对应的目标量化参数;
根据所述目标视频中所述每个视频帧的每个图像块的目标量化参数,对所述目标视频中所述每个视频帧的每个图像块进行编码。
相应地,本发明提供了一种视频编码装置,所述装置包括:
获取模块,用于获取目标视频中的每个视频帧;
第一确定模块,用于针对所述每个视频帧,将该视频帧划分为预设大小的每个图像块,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,根据所述目标比值、以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的运动等级为该视频帧的目标运动等级,其中所述预设大小为单个像素点大小或预设边长的矩形大小;
第二确定模块,用于针对所述每个视频帧,根据该视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数;
第三确定模块,用于针对所述每个视频帧,将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特;
第四确定模块,用于针对所述每个视频帧,将该视频帧的目标比特输入到码率控制模型,得到输出的该视频帧的量化参数;
编码模块,用于根据所述目标视频中所述每个视频帧的量化参数,对所述目标视频中所述每个视频帧进行编码,得到压缩后的码流。
进一步地,所述第一确定模块,具体用于确定该视频帧的前背景掩膜图像,根据所述前背景掩膜图像确定该视频帧中的前景图像块,根据该视频帧中前景图像块的第一数量以及该视频帧中图像块的总数量,得到所述第一数量与所述总数量的目标比值。
进一步地,所述第一确定模块,还用于所述对该视频帧进行检测确定该视频帧的前背景掩膜图像之后,所述根据所述前背景掩膜图像确定该视频帧中的前景图像块之前,对所述前背景掩膜图像进行连通域标记,确定每个连通域的预设参数的第一参数值,其中所述预设参数为连通域面积或连通域内像素点个数,针对每个连通域,判断该连通域的第一参数值是否小于第一预设阈值,若是将该连通域内所有像素点的掩膜值均填充为背景掩膜值,若否将该连通域内所有像素点的掩膜值均填充为前景掩膜值,得到更新后的前背景掩膜图像;根据更新后的前背景掩膜图像,确定该视频帧中更新后的前景图像块。
进一步地,所述第一确定模块,还用于所述对所述前背景掩膜图像进行连通域标记之前,根据所述前背景掩膜图像,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的第一比值,根据所述第一比值、第二预设阈值以及第三预设阈值,判断所述第一比值是否小于所述第二预设阈值,其中所述第三预设阈值大于所述第二预设阈值,若是,对所述前背景掩膜图像进行先膨胀后腐蚀的处理;若否,判断所述第一比值是否大于所述第三预设阈值,若是,对所述前背景掩膜图像进行先腐蚀后膨胀的处理,若否,不进行处理。
进一步地,所述第三确定模块,具体用于若该视频帧为关键帧,判断该视频帧是否为第一个关键帧,若是,则确定图片组的最大比特与预设系数的第一乘积值,将所述第一乘积值确定为该视频帧的目标比特,若否,则确定该视频帧的所述目标码率系数与该视频帧的上一帧的码率系数的第二比值,并确定所述第二比值与该视频帧的上一帧的比特的第二乘积值,将所述第二乘积值确定为该视频帧的目标比特;若该视频帧为非关键帧,则确定所述最大比特减第一个关键帧的比特的第一差值,并确定图片组包含的视频帧数量减预设数量的第二差值,根据所述第一差值和所述第二差值的第三比值、以及所述目标码率系数,确定所述第三比值与该视频帧的所述目标码率系数的第三乘积值,将所述第三乘积值确定为该视频帧的目标比特。
相应地,本发明提供了一种视频编码装置,所述装置包括:
获取模块,用于获取目标视频中的每个视频帧;
第一确定模块,用于针对所述每个视频帧,将该视频帧划分为预设大小的每个图像块,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,根据所述目标比值、以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的运动等级为该视频帧的目标运动等级,其中所述预设大小为单个像素点大小或预设边长的矩形大小;
第二确定模块,用于针对所述每个视频帧,根据该视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数;
第三确定模块,用于针对所述每个视频帧,将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特,根据该视频帧的每个像素点的像素值,确定该视频帧和该视频帧的每个图像块的纹理复杂度的每个第二参数值,其中所述纹理复杂度为梯度、方差、平均绝对差和绝对误差和等参数中的任一种;
第四确定模块,用于针对该视频帧的每个图像块,确定该图像块的第二参数值和该视频帧的第二参数值的第四比值,并确定所述第四比值与该视频帧的所述目标比特的第四乘积值为该图像块的第一比特,将该图像块的第一比特输入到码率控制模型,得到输出的该图像块的候选量化参数;
第五确定模块,用于若该图像块为前景图像块,根据预先保存的第二映射关系,确定该图像块的所述候选量化参数在所述第二映射关系中对应的目标量化参数,若该图像块为背景图像块,根据预先保存的第三映射关系,确定该图像块的所述候选量化参数在所述第三映射关系中对应的目标量化参数;
编码模块,具体用于根据所述目标视频中所述每个视频帧的每个图像块的目标量化参数,对所述目标视频中所述每个视频帧的每个图像块进行编码,得到压缩后的码流。
相应地,本发明提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器实现上述视频编码方法中任一所述方法的步骤。
相应地,本发明提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述视频编码方法中任一所述方法的步骤。
本发明提供了一种视频编码方法、装置、设备和介质,本发明中针对每个视频帧,将该视频帧划分为预设大小的每个图像块,通过检测视频帧中前景图像块的个数占图像块总数的目标比值,根据目标比值以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的目标运动等级,并根据视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数,将目标码率系数、图片组的最大比特和图片组包含的帧数量输入视频帧的比特确定函数,确定视频帧的目标比特输入到图片组的最大比特,确定所述视频帧的目标比特输入到码率控制模型,得到输出的量化参数,基于目标视频中每个视频帧的量化参数,对目标视频中每个视频帧进行编码,得到压缩后的码流,由于本发明获取每一视频帧的运动情况确定运动等级,并基于运动等级确定当前视频帧的目标码率,根据目标码率确定视频帧分配的目标比特,根据目标比特映射得到视频帧的量化参数,根据目标视频中每个视频帧的量化参数,对目标视频中每个视频帧进行编码,得到压缩后的码流,相比现有技术简单的将视频帧中的场景分为运动场景和静止场景,进而采用对应地固定编码方式进行编码的方法,本发明实现了在运动时用较高的目标码率,在静止时主动降低目标码率,进而节省整体码率的目的。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种视频编码方法的过程示意图;
图2为本发明实施例提供的一种目标运动等级与码率系数的线性关系的示意图;
图3为本发明实施例提供的一种视频编码装置的结构示意图;
图4为本发明实施例提供的一种视频编码装置的结构示意图;
图5为本发明实施例提供的一种视频编码装置的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了在进行视频编码时,提高码率控制的精准度较差以节省码率,本发明实施例提供了一种视频编码方法、装置、设备和介质。
实施例1:
图1为本发明实施例提供的一种视频编码方法的过程示意图,该过程包括以下步骤:
S101:获取目标视频中的每个视频帧。
为了在进行视频编码时,提高码率控制的精准度较差以节省码率,本发明实施例提供的一种视频编码方法应用于电子设备,该视频编码方法为对视频的帧级编码方法,即通过确定视频中的每一视频帧的量化参数,确定视频压缩后的码流;该电子设备可以是主机、平板电脑、笔记本电脑、智能手机等智能终端设备,也可以是服务器,该服务器可以是本地服务器,也可以是云端服务器,本发明实施例对此不做限制。
该电子设备获取目标视频,具体可以是通过该电子设备自身的图像采集装置采集到目标视频,也可以是通过与该电子设备连接其他设备接收到目标视频,还可以是获取该电子设备自身预先保存的目标视频,本发明实施例中对此不做限制;在获取到目标视频后,该电子设备从目标视频帧中获取到每个视频帧。
S102:针对所述每个视频帧,将该视频帧划分为预设大小的每个图像块,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,根据所述目标比值、以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的运动等级为该视频帧的目标运动等级,其中所述预设大小为单个像素点大小或预设边长的矩形大小。
针对每个视频帧,该电子设备将该视频帧划分为预设大小的每个图像块,其中预设大小是用户预先设置的,其中,预设大小为单个像素点大小或预设边长的矩形大小,若希望提高码率控制的精准度,则可以将预设边长设置地较小一些,若希望提高进行图像编码的效率,则可以将预设边长设置地较小一些;例如将宽度为W高度为H的视频帧划分为互不重叠的图像块,图像块的大小为MxN。
该电子设备对该视频帧进行检测确定每个图像块中的前景图像块,前景是指在主题前面或靠近镜头位置的人物或景物,也可以将前景图像块称为运动图像块;根据前景图像块的个数、以及该视频帧的图像块总数,确定前景图像块的个数占图像块总数的目标比值。
为了确定出该视频帧的运动等级,该电子设备预先保存有数值范围与运动等级的对应关系,根据确定出的目标比值,确定目标比值所在的目标数值范围;根据目标数值范围、以及数值范围与运动等级的对应关系,确定目标数值范围对应的运动等级为目标运动等级;目标运动等级越小,表示该视频帧越接近静态场景,可以分配较少的比特,目标运动等级越高表示该视频帧越接近运动场景,需要分配较多比特。
例如数值范围与运动等级的对应关系可以表示为obj
S103:针对所述每个视频帧,根据该视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数。
为了确定出该视频帧分配的码率系数,该电子设备预先保存有码率系数与运动等级的第一映射关系,根据确定出的目标运动等级,确定目标运动等级在第一映射关系中对应的码率系数为该视频帧的目标码率系数。
下面通过一个具体的实施例对本发明中确定视频帧的目标比特的方法进行说明,根据目标运动等级motion_grade计算视频帧分配的码率系数rate_grade的第一映射关系以线性关系进行举例,若视频帧为关键帧:rate_grade=(a+b*motion_grade)
图2为本发明实施例提供的一种目标运动等级与码率系数的线性关系的示意图,如图2所示,横轴x表示为(0.05+0.1*motion_grade),纵轴y表示为码率系数rate_grade,图2中的从上到下(图2中的上下)的每根线依次对应的α的值为1/8、1/4、1/2、1、3/2、2、4、8。对于关键帧,为了在大运动场景下尽可能多分配比特,例如x在0.7-0.9等,其系数α1可取0.5。对于非关键帧,为了在静态下尽可能少分配比特,例如x在0.1到0.5之间,选择系数α2为1.5。
假如当前帧为非关键帧,且motion_grade为3,base_ratio+0.1*motion_grade则为0.35,因此根据图2可得rate_grade为0.21。
S104:针对所述每个视频帧,将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特。
针对每个视频帧,根据该视频帧的目标码率系数、图片组的最大比特和图片组包含的帧数量,将目标码率系数、最大比特和帧数量输入视频帧的比特确定函数,确定输出的该视频帧被分配的目标比特。
S105:针对所述每个视频帧,将该视频帧的目标比特输入到码率控制模型,得到输出的该视频帧的量化参数。
针对每个视频帧,将该视频帧的目标比特输入到码率控制模型,得到输出的该视频帧的量化参数;其中码率控制模型可以是R-λ模型,也可以是R-Q模型,本发明实施例对此不做限制。
例如码率控制模型可以是R-λ模型时,具体公式为λ=α·R
S106:根据所述目标视频中所述每个视频帧的量化参数,对所述目标视频中所述每个视频帧进行编码,得到压缩后的码流。
在确定出目标视频中每个视频帧的量化参数,根据每个量化参数对目标视频中的每个视频帧进行编码,得到压缩后的每个视频帧组成的压缩后的码流;具体根据量化参数对视频帧编码的方法为现有技术中,本发明实施例对此不做赘述。
由于在本发明实施例中,针对每个视频帧,将该视频帧划分为预设大小的每个图像块,通过检测视频帧中前景图像块的个数占图像块总数的目标比值,根据目标比值以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的目标运动等级,并根据视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数,从而在运动等级大时用较高的目标码率系数,在静止时主动降低目标码率系数,并将目标码率系数、图片组的最大比特和图片组包含的帧数量输入视频帧的比特确定函数,确定视频帧的目标比特输入到图片组的最大比特,确定所述视频帧的目标比特输入到码率控制模型,得到输出的量化参数,基于目标视频中所述每个视频帧的量化参数,对目标视频中所述每个视频帧进行编码,得到压缩后的码流,由于本发明获取每一视频帧的运动情况确定运动等级,并基于运动等级确定当前视频帧的目标码率,根据目标码率确定视频帧分配的目标比特,根据目标比特映射得到视频帧的量化参数,根据目标视频中每个视频帧的量化参数,对目标视频中每个视频帧进行编码,得到压缩后的码流,相比现有技术简单的将视频帧中的场景分为运动场景和静止场景,进而采用对应地固定编码方式进行编码的方法,本发明实现了在运动时用较高的目标码率,在静止时主动降低目标码率,进而节省整体码率的目的。
实施例2:
为了确定出前景图像块的个数占图像块总数的目标比值,在上述实施例的基础上,在本发明实施例中,所述确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值包括:
确定该视频帧的前背景掩膜图像,根据所述前背景掩膜图像确定该视频帧中的前景图像块,根据该视频帧中前景图像块的第一数量以及该视频帧中图像块的总数量,得到所述第一数量与所述总数量的目标比值。
为了确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,该电子设备对该视频帧进行检测,确定出该视频帧的前背景掩膜图像,具体可以是采用高斯混合模型、帧差法、光流法进行检测,本发明实施例中对此不做限制。
当预设大小为单个像素点大小时,检测得到前背景掩膜图像的大小与该视频帧的大小相同,当预设大小为预设边长的矩形大小时,例如预设大小为MxN的矩形大小时,当该视频帧的大小为WxH,前背景掩膜图像的长为W/M,宽为H/N。
例如该电子设备采用帧差法对该视频帧进行检测时,该视频帧的大小为1920x1080,将其划分为8x8大小互不重叠的块后,计算每个图像块与前一帧对应位置的图像块的差异diff值,其中
若当前块diff大于设定的阈值T1,则认为当前块为前景图像块,也可以记为运动图像块,否则当前图像块为背景图像块,也记为静止图像块,一般地,此处的T1可取值20,对该视频帧的所有图像块做同样的处理,就可得到整个帧的前背景情况,将前景图像块在前背景掩膜图像对应位置的像素点的掩膜值设置为预设前景掩膜值,将背景图像块在前背景掩膜图像对应位置的像素点的掩膜值设置为预设背景掩膜值,从而得到该视频帧的前背景掩膜图像;该视频帧的前背景掩膜图像的大小为240x135。
在确定出该视频帧的前背景掩膜图像后,根据前背景掩膜图像中每个像素点的掩膜值,确定掩膜值为预设前景掩膜值的像素点对应位置的图像块为前景图像块;根据前景图像块的第一数量、以及图像块的总数量,确定第一数量与总数量的目标比值。
实施例3:
为了提高确定前景图像块的准确度,在上述各实施例的基础上,在本发明实施例中,所述对该视频帧进行检测确定该视频帧的前背景掩膜图像之后,所述根据所述前背景掩膜图像确定该视频帧中的前景图像块之前,所述方法还包括:
对所述前背景掩膜图像进行连通域标记,确定每个连通域的预设参数的第一参数值,其中所述预设参数为连通域面积或连通域内像素点个数,针对每个连通域,判断该连通域的第一参数值是否小于第一预设阈值,若是将该连通域内所有像素点的掩膜值均填充为背景掩膜值,若否将该连通域内所有像素点的掩膜值均填充为前景掩膜值,得到更新后的前背景掩膜图像;
根据更新后的前背景掩膜图像,确定该视频帧中更新后的前景图像块。
该电子设备对前背景掩膜图像进行连通域标记,确定前背景掩膜图像中的每个连通域,并根据确定出的每个连通域确定预设参数的第一参数值,其中预设参数为连通域面积或连通域内像素点个数。
针对每个连通域,该电子设备对该连通域的第一参数指进行比较,判断该连通域的第一参数值是否小于第一预设阈值,若该连通域的第一参数值小于第一预设阈值,则认为该连通域属于背景部分的边缘或噪声形成的连通域,因此将该连通域内所有像素点的掩膜值均填充为背景掩膜值;若该连通域的第一参数值不小于第一预设阈值,则将该连通域内所有像素点的掩膜值均填充为前景掩膜值,从而得到较为完整的前景图像块,提高前背景掩膜检测的完整性和准确性。
为了进一步地提高前背景掩膜检测的完整性和准确性,在本发明实施例中,所述对所述前背景掩膜图像进行连通域标记之前,所述方法还包括:
根据所述前背景掩膜图像,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的第一比值,根据所述第一比值、第二预设阈值以及第三预设阈值,判断所述第一比值是否小于所述第二预设阈值,其中所述第三预设阈值大于所述第二预设阈值,若是,对所述前背景掩膜图像进行先膨胀后腐蚀的处理;若否,判断所述第一比值是否大于所述第三预设阈值,若是,对所述前背景掩膜图像进行先腐蚀后膨胀的处理,若否,不进行处理。
该电子设备根据前背景掩膜图像,确定该视频帧中前景图像块的个数、以及该视频帧的图像块总数,并确定出前景图像块的个数与图像块总数的第一比值,根据该第一比值以及第二预设阈值和第三预设阈值,判断第一比值是否小于第二预设阈值,若第一比值小于第二预设阈值,则认为前景检测结果不够完整,前景中可能存在空洞等,因此对前背景掩膜图像进行先膨胀后腐蚀的形态学处理;先膨胀后腐蚀则用来填充物体内细小的空洞,连接邻近物体,平滑其边界。
若该第一比值不小于第二预设阈值,则判断该第一比值是否大于第三预设阈值,若第一比值大于第三预设阈值,则认为前景检测结果比较完整,可能还存在一部分背景干扰,所以对前背景掩膜图像进行先腐蚀后膨胀的形态学处理,消除背景中孤立点的影响,先腐蚀后膨胀通常用来消除小物体,在纤细点处分离物体,平滑较大的物体边界;若第一比值不大于第三预设阈值,则认为此时的前景检测结果基本完整,同时背景的干扰也可忽略不计,因此对前背景掩膜图像不做形态学处理。
其中,腐蚀算法采用一个全为1的NxN矩阵扫描前背景掩膜图像中的每一个像素点,即矩阵的中心元素与前背景掩膜图像的像素点位置对应,用该矩阵中的每一个像素与其覆盖的像素点的像素值做逻辑“与”操作,如果运算结果都为1,则该像素点的像素值为1,否则为0;膨胀运算采用一个全为1的NxN矩阵扫描前背景掩膜图像中的每一个像素点,即矩阵的中心元素与前背景掩膜图像的像素点位置对应,用该矩阵中的每一个像素与其覆盖的像素点的像素值做逻辑“或”操作,如果运算结果都为0,则该像素为0,否则为1。
例如,该电子设备对前背景掩膜图像进行如下处理:若P
由于本发明实施例中,对前背景掩膜贪图像进行自适应形态学处理以及连通域计算,能够去除孤立噪点,提高运动前景检测的完整性和准确性,相对于现有技术中使用预处理的帧进行判定当前场景为运动场景或者静态场景,方法更为简便,且不存在延迟问题。
实施例4:
为了确定出视频帧的目标比特,在上述各实施例的基础上,在本发明实施例中,所述将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特包括:
若该视频帧为关键帧,判断该视频帧是否为第一个关键帧,若是,则确定图片组的最大比特与预设系数的第一乘积值,将所述第一乘积值确定为该视频帧的目标比特,若否,则确定该视频帧的所述目标码率系数与该视频帧的上一帧的码率系数的第二比值,并确定所述第二比值与该视频帧的上一帧的比特的第二乘积值,将所述第二乘积值确定为该视频帧的目标比特;
若该视频帧为非关键帧,则确定所述最大比特减第一个关键帧的比特的第一差值,并确定图片组包含的视频帧数量减预设数量的第二差值,根据所述第一差值和所述第二差值的第三比值、以及所述目标码率系数,确定所述第三比值与该视频帧的所述目标码率系数的第三乘积值,将所述第三乘积值确定为该视频帧的目标比特。
该电子设备在确定该视频帧的目标比特时,若该视频帧为关键帧,则判断该视频帧是否为第一个关键帧,若该视频帧为第一个关键帧,则根据图片组的最大比特以及预设系数,确定最大比特与预设系数的第一乘积值,将第一乘积值确定为该视频帧的目标比特;其中图片组的最大比特
若该视频帧分为第一个关键帧,则确定该视频帧的目标码率系数与该视频帧的上一帧的码率系数的第二比值,并根据第二比值以及该视频帧的上一帧的比特,确定第二比值与上一帧的比特的第二乘积值,将第二乘积值确定为该视频帧的目标比特。
例如,当前的视频帧为关键帧时,针对第一帧:
若该视频帧为非关键帧,则根据图片组的最大比特以及计算出第一个关键帧的比特,确定最大比特与第一个关键帧的比特的第一差值,根据图片组包含的视频帧数量、以及预设数量,其中预设数量为1,确定视频帧数量与预设数量的第二差值,根据第一差值和第二差值,确定第一差值和第二差值的第三比值,其中第三比值即表示图片组除去第一个关键帧后的剩余视频帧的平均比特;根据第三比值以及该视频帧的目标码率系数,确定第三比值与目标码率系数的第三乘积值,将第三乘积值确定为该视频帧的目标比特。
例如,当前的视频帧为非关键帧,首先计算出图片组除去第一个关键帧后的剩余视频帧的平均比特
由于在本发明实施例中,使用比较容易获得的参数以及特征来进行调整,参数计算简单、获取简单,能够很好地满足软件视频编解码装置使用,且能很好地适配进不同视频编码标准中。
实施例5:
为了节省码率,本发明实施例提供了一种视频编码方法,该方法包括:
获取目标视频中的每个视频帧;
针对所述每个视频帧,将该视频帧划分为预设大小的每个图像块,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,根据所述目标比值、以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的运动等级为该视频帧的目标运动等级,其中所述预设大小为单个像素点大小或预设边长的矩形大小;
针对所述每个视频帧,根据该视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数;
针对所述每个视频帧,将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特,根据该视频帧的每个像素点的像素值,确定该视频帧和该视频帧的每个图像块的纹理复杂度的每个第二参数值,其中所述纹理复杂度为梯度、方差、平均绝对差和绝对误差和等参数中的任一种;
针对该视频帧的每个图像块,确定该图像块的第二参数值和该视频帧的第二参数值的第四比值,并确定所述第四比值与该视频帧的所述目标比特的第四乘积值为该图像块的第一比特,将该图像块的第一比特输入到码率控制模型,得到输出的该图像块的候选量化参数;
若该图像块为前景图像块,根据预先保存的第二映射关系,确定该图像块的所述候选量化参数在所述第二映射关系中对应的目标量化参数,若该图像块为背景图像块,根据预先保存的第三映射关系,确定该图像块的所述候选量化参数在所述第三映射关系中对应的目标量化参数;
根据所述目标视频中所述每个视频帧的每个图像块的目标量化参数,对所述目标视频中所述每个视频帧的每个图像块进行编码,得到压缩后的码流。
为了实现在进行视频编码时,提高码率控制的精准度较差以节省码率,本发明实施例提供的一种视频编码方法应用于电子设备,该视频编码方法为对视频的宏块级编码方法,即通过确定视频中的每一视频帧的每一图像块的量化参数,来确定视频压缩后的码流;该电子设备可以是主机、平板电脑、笔记本电脑、智能手机等智能终端设备,也可以是服务器,该服务器可以是本地服务器,也可以是云端服务器,本发明实施例对此不做限制;该电子设备可以与上述实施例1-5中执行视频编码的电子设备为同一电子设备,也可以非为同一电子设备。
该电子设备获取目标视频,具体可以是通过该电子设备自身的图像采集装置采集到目标视频,也可以是通过与该电子设备连接其他设备接收到目标视频,还可以是获取该电子设备自身预先保存的目标视频,本发明实施例中对此不做限制;在获取到目标视频后,该电子设备从目标视频帧中获取到每个视频帧。
针对每个视频帧,该电子设备将该视频帧划分为预设大小的每个图像块,其中预设大小是用户预先设置的,其中,预设大小为单个像素点大小或预设边长的矩形大小,对该视频帧进行检测确定每个图像块中的前景图像块,根据前景图像块的个数、以及该视频帧的图像块总数,确定前景图像块的个数占图像块总数的目标比值。
为了确定出该视频帧的运动等级,该电子设备预先保存有数值范围与运动等级的对应关系,根据确定出的目标比值,确定目标比值所在的目标数值范围;根据目标数值范围、以及数值范围与运动等级的对应关系,确定目标数值范围对应的运动等级为目标运动等级;目标运动等级越小,表示该视频帧越接近静态场景,可以分配较少的比特,目标运动等级越高表示该视频帧越接近运动场景,需要分配较多比特。
为了确定出该视频帧分配的码率系数,该电子设备预先保存有码率系数与运动等级的第一映射关系,根据确定出的目标运动等级,确定目标运动等级在第一映射关系中对应的码率系数为该视频帧的目标码率系数。
针对每个视频帧,根据该视频帧的目标码率系数、图片组的最大比特和图片组包含的帧数量,将目标码率系数、最大比特和帧数量输入视频帧的比特确定函数,确定输出的该视频帧被分配的目标比特,根据该视频帧的每个像素点的像素值,确定该视频帧的纹理复杂度的第二参数值;根据每个图像块中的每个像素点的像素值,确定每个图像块的纹理复杂度的第二参数值,其中纹理复杂度为梯度、方差、平均绝对差和绝对误差和等参数中的任一种,例如纹理复杂度为梯度时,第二参数值即为梯度值。
为了实现对目标视频的宏块级编码,该电子设备针对该视频帧的每个图像块,确定出每个图像块被分配的比特,具体是该电子设备确定该图像块的第二参数值和该视频帧的第二参数值的第四比值,根据该第四比值以及该视频帧的目标比特,确定该第四比值与目标比特的第四乘积值,将第四乘积值确定为该图像块的第一比特。
为了实现对目标视频的宏块级编码,该电子设备将该图像块的第一比特输入到码率控制模型,得到输出的该图像块的候选量化参数;若该图像块前景图像块,则根据前景图像块的候选量化参数与目标量化参数的第二映射关系,确定该图像块的候选量化参数在第二映射关系中对应的目标量化参数;若该图像块为背景图像块,则根据背景图像块的候选量化参数与目标量化参数的第三映射关系,确定该图像块的候选量化参数在第三映射关系中对应的目标量化参数。
例如,根据视频帧的目标比特
根据当前视频帧的前背景掩膜图像判断每个图像块为静止图像块还是运动图像块,由此调整每个图像块的QP,其中当前图像块为静止图像块时,QP=f
在确定出每个视频帧的每个图像块的目标量化参数后,对目标视频中每个视频帧的每个图像块进行编码,得到压缩后的每个视频帧的每个图像块组成的压缩后的码流。
实施例6:
图3为本发明实施例提供的一种视频编码装置的结构示意图,如图3所示,该装置包括:
获取模块301,用于获取目标视频中的每个视频帧;
第一确定模块302,用于针对所述每个视频帧,将该视频帧划分为预设大小的每个图像块,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,根据所述目标比值、以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的运动等级为该视频帧的目标运动等级,其中所述预设大小为单个像素点大小或预设边长的矩形大小;
第二确定模块303,用于针对所述每个视频帧,根据该视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数;
第三确定模块304,用于针对所述每个视频帧,将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特;
第四确定模块305,用于针对所述每个视频帧,将该视频帧的目标比特输入到码率控制模型,得到输出的该视频帧的量化参数;
编码模块306,用于根据所述目标视频中所述每个视频帧的量化参数,对所述目标视频中所述每个视频帧进行编码,得到压缩后的码流。
进一步地,所述第一确定模块302,具体用于确定该视频帧的前背景掩膜图像,根据所述前背景掩膜图像确定该视频帧中的前景图像块,根据该视频帧中前景图像块的第一数量以及该视频帧中图像块的总数量,得到所述第一数量与所述总数量的目标比值。
进一步地,所述第一确定模块302,还用于所述对该视频帧进行检测确定该视频帧的前背景掩膜图像之后,所述根据所述前背景掩膜图像确定该视频帧中的前景图像块之前,对所述前背景掩膜图像进行连通域标记,确定每个连通域的预设参数的第一参数值,其中所述预设参数为连通域面积或连通域内像素点个数,针对每个连通域,判断该连通域的第一参数值是否小于第一预设阈值,若是将该连通域内所有像素点的掩膜值均填充为背景掩膜值,若否将该连通域内所有像素点的掩膜值均填充为前景掩膜值,得到更新后的前背景掩膜图像;根据更新后的前背景掩膜图像,确定该视频帧中更新后的前景图像块。
进一步地,所述第一确定模块302,还用于所述对所述前背景掩膜图像进行连通域标记之前,根据所述前背景掩膜图像,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的第一比值,根据所述第一比值、第二预设阈值以及第三预设阈值,判断所述第一比值是否小于所述第二预设阈值,其中所述第三预设阈值大于所述第二预设阈值,若是,对所述前背景掩膜图像进行先膨胀后腐蚀的处理;若否,判断所述第一比值是否大于所述第三预设阈值,若是,对所述前背景掩膜图像进行先腐蚀后膨胀的处理,若否,不进行处理。
进一步地,所述第三确定模块304,具体用于若该视频帧为关键帧,判断该视频帧是否为第一个关键帧,若是,则确定图片组的最大比特与预设系数的第一乘积值,将所述第一乘积值确定为该视频帧的目标比特,若否,则确定该视频帧的所述目标码率系数与该视频帧的上一帧的码率系数的第二比值,并确定所述第二比值与该视频帧的上一帧的比特的第二乘积值,将所述第二乘积值确定为该视频帧的目标比特;若该视频帧为非关键帧,则确定所述最大比特减第一个关键帧的比特的第一差值,并确定图片组包含的视频帧数量减预设数量的第二差值,根据所述第一差值和所述第二差值的第三比值、以及所述目标码率系数,确定所述第三比值与该视频帧的所述目标码率系数的第三乘积值,将所述第三乘积值确定为该视频帧的目标比特。
图4为本发明实施例提供的一种视频编码装置的结构示意图,如图4所示,该装置包括:前背景分割模块401、形态学处理模块402、连通域计算模块403、运动等级分析模块404、帧级QP求取模块405、宏块级QP求取模块406、编码模块407。
前背景分割模块401,用于获取到目标视频的每个视频帧,通过运动检测方法对视频帧的前背景情况进行检测,用于后续运动等级的分析;相当于上述实施例中的获取模块301和第一确定模块302。
形态学处理模块402,用于在前背景分割模块401之后,对提取的视频帧的前背景掩膜图像进行处理,消除噪点和空洞;相当于上述实施例中的第一确定模块302。
连通域计算模块403,用于对形态学处理模块402之后的前背景掩膜进行连通域标记;相当于上述实施例中的第一确定模块302。
运动等级分析模块404,用于计算当前的视频帧的运动等级;相当于上述实施例中的第一确定模块302。
帧级QP求取模块405,用于计算视频帧的量化参数;相当于上述实施例中的第二确定模块303、第三确定模块304和第四确定模块305。
宏块级QP求取模块406,用于计算视频帧的每个图像块的量化参数;相当于上述实施例中的第四确定模块305。
编码模块407,用于对目标视频中每个视频帧进行编码,得到压缩后的码流,相当于上述实施例中的编码模块306。
实施例7:
图5为本发明实施例提供的一种视频编码装置的结构示意图,如图5所示,该装置包括:
获取模块501,用于获取目标视频中的每个视频帧;
第一确定模块502,用于针对所述每个视频帧,将该视频帧划分为预设大小的每个图像块,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,根据所述目标比值、以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的运动等级为该视频帧的目标运动等级,其中所述预设大小为单个像素点大小或预设边长的矩形大小;
第二确定模块503,用于针对所述每个视频帧,根据该视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数;
第三确定模块504,用于针对所述每个视频帧,将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特,根据该视频帧的每个像素点的像素值,确定该视频帧和该视频帧的每个图像块的纹理复杂度的每个第二参数值,其中所述纹理复杂度为梯度、方差、平均绝对差和绝对误差和等参数中的任一种;
第四确定模块505,用于针对该视频帧的每个图像块,确定该图像块的第二参数值和该视频帧的第二参数值的第四比值,并确定所述第四比值与该视频帧的所述目标比特的第四乘积值为该图像块的第一比特,将该图像块的第一比特输入到码率控制模型,得到输出的该图像块的候选量化参数;
第五确定模块506,用于若该图像块为前景图像块,根据预先保存的第二映射关系,确定该图像块的所述候选量化参数在所述第二映射关系中对应的目标量化参数,若该图像块为背景图像块,根据预先保存的第三映射关系,确定该图像块的所述候选量化参数在所述第三映射关系中对应的目标量化参数;
编码模块507,用于根据所述目标视频中所述每个视频帧的每个图像块的目标量化参数,对所述目标视频中所述每个视频帧的每个图像块进行编码,得到压缩后的码流。
实施例8:
图6为本发明实施例提供的一种电子设备的结构示意图,在上述各实施例的基础上,本申请还提供了一种电子设备,如图6所示,包括:处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。
所述存储器603中存储有计算机程序,当所述程序被所述处理器601执行时,使得所述处理器601执行如下步骤:
获取目标视频中的每个视频帧;
针对所述每个视频帧,将该视频帧划分为预设大小的每个图像块,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,根据所述目标比值、以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的运动等级为该视频帧的目标运动等级,其中所述预设大小为单个像素点大小或预设边长的矩形大小;
针对所述每个视频帧,根据该视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数;
针对所述每个视频帧,将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特;
针对所述每个视频帧,将该视频帧的目标比特输入到码率控制模型,得到输出的该视频帧的量化参数;
根据所述目标视频中所述每个视频帧的量化参数,对所述目标视频中所述每个视频帧进行编码,得到压缩后的码流。
进一步地,所述处理器601具体用于所述确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值包括:
确定该视频帧的前背景掩膜图像,根据所述前背景掩膜图像确定该视频帧中的前景图像块,根据该视频帧中前景图像块的第一数量以及该视频帧中图像块的总数量,得到所述第一数量与所述总数量的目标比值。
进一步地,所述处理器601还用于所述对该视频帧进行检测确定该视频帧的前背景掩膜图像之后,所述根据所述前背景掩膜图像确定该视频帧中的前景图像块之前,所述方法还包括:
对所述前背景掩膜图像进行连通域标记,确定每个连通域的预设参数的第一参数值,其中所述预设参数为连通域面积或连通域内像素点个数,针对每个连通域,判断该连通域的第一参数值是否小于第一预设阈值,若是将该连通域内所有像素点的掩膜值均填充为背景掩膜值,若否将该连通域内所有像素点的掩膜值均填充为前景掩膜值,得到更新后的前背景掩膜图像;
根据更新后的前背景掩膜图像,确定该视频帧中更新后的前景图像块。
进一步地,所述处理器601还用于所述对所述前背景掩膜图像进行连通域标记之前,所述方法还包括:
根据所述前背景掩膜图像,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的第一比值,根据所述第一比值、第二预设阈值以及第三预设阈值,判断所述第一比值是否小于所述第二预设阈值,其中所述第三预设阈值大于所述第二预设阈值,若是,对所述前背景掩膜图像进行先膨胀后腐蚀的处理;若否,判断所述第一比值是否大于所述第三预设阈值,若是,对所述前背景掩膜图像进行先腐蚀后膨胀的处理,若否,不进行处理。
进一步地,所述处理器601具体用于所述将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特包括:
若该视频帧为关键帧,判断该视频帧是否为第一个关键帧,若是,则确定图片组的最大比特与预设系数的第一乘积值,将所述第一乘积值确定为该视频帧的目标比特,若否,则确定该视频帧的所述目标码率系数与该视频帧的上一帧的码率系数的第二比值,并确定所述第二比值与该视频帧的上一帧的比特的第二乘积值,将所述第二乘积值确定为该视频帧的目标比特;
若该视频帧为非关键帧,则确定所述最大比特减第一个关键帧的比特的第一差值,并确定图片组包含的视频帧数量减预设数量的第二差值,根据所述第一差值和所述第二差值的第三比值、以及所述目标码率系数,确定所述第三比值与该视频帧的所述目标码率系数的第三乘积值,将所述第三乘积值确定为该视频帧的目标比特。
或,所述处理器601用于获取目标视频中的每个视频帧;
针对所述每个视频帧,将该视频帧划分为预设大小的每个图像块,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,根据所述目标比值、以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的运动等级为该视频帧的目标运动等级,其中所述预设大小为单个像素点大小或预设边长的矩形大小;
针对所述每个视频帧,根据该视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数;
针对所述每个视频帧,将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特,根据该视频帧的每个像素点的像素值,确定该视频帧和该视频帧的每个图像块的纹理复杂度的每个第二参数值,其中所述纹理复杂度为梯度、方差、平均绝对差和绝对误差和等参数中的任一种;
针对该视频帧的每个图像块,确定该图像块的第二参数值和该视频帧的第二参数值的第四比值,并确定所述第四比值与该视频帧的所述目标比特的第四乘积值为该图像块的第一比特,将该图像块的第一比特输入到码率控制模型,得到输出的该图像块的候选量化参数;
若该图像块为前景图像块,根据预先保存的第二映射关系,确定该图像块的所述候选量化参数在所述第二映射关系中对应的目标量化参数,若该图像块为背景图像块,根据预先保存的第三映射关系,确定该图像块的所述候选量化参数在所述第三映射关系中对应的目标量化参数;
根据所述目标视频中所述每个视频帧的每个图像块的目标量化参数,对所述目标视频中所述每个视频帧的每个图像块进行编码,得到压缩后的码流。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口602用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
实施例8:
在上述各实施例的基础上,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行时实现如下步骤:
获取目标视频中的每个视频帧;
针对所述每个视频帧,将该视频帧划分为预设大小的每个图像块,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,根据所述目标比值、以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的运动等级为该视频帧的目标运动等级,其中所述预设大小为单个像素点大小或预设边长的矩形大小;
针对所述每个视频帧,根据该视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数;
针对所述每个视频帧,将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特;
针对所述每个视频帧,将该视频帧的目标比特输入到码率控制模型,得到输出的该视频帧的量化参数;
根据所述目标视频中所述每个视频帧的量化参数,对所述目标视频中所述每个视频帧进行编码,得到压缩后的码流。
进一步地,所述确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值包括:
确定该视频帧的前背景掩膜图像,根据所述前背景掩膜图像确定该视频帧中的前景图像块,根据该视频帧中前景图像块的第一数量以及该视频帧中图像块的总数量,得到所述第一数量与所述总数量的目标比值。
进一步地,所述对该视频帧进行检测确定该视频帧的前背景掩膜图像之后,所述根据所述前背景掩膜图像确定该视频帧中的前景图像块之前,所述方法还包括:
对所述前背景掩膜图像进行连通域标记,确定每个连通域的预设参数的第一参数值,其中所述预设参数为连通域面积或连通域内像素点个数,针对每个连通域,判断该连通域的第一参数值是否小于第一预设阈值,若是将该连通域内所有像素点的掩膜值均填充为背景掩膜值,若否将该连通域内所有像素点的掩膜值均填充为前景掩膜值,得到更新后的前背景掩膜图像;
根据更新后的前背景掩膜图像,确定该视频帧中更新后的前景图像块。
进一步地,所述对所述前背景掩膜图像进行连通域标记之前,所述方法还包括:
根据所述前背景掩膜图像,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的第一比值,根据所述第一比值、第二预设阈值以及第三预设阈值,判断所述第一比值是否小于所述第二预设阈值,其中所述第三预设阈值大于所述第二预设阈值,若是,对所述前背景掩膜图像进行先膨胀后腐蚀的处理;若否,判断所述第一比值是否大于所述第三预设阈值,若是,对所述前背景掩膜图像进行先腐蚀后膨胀的处理,若否,不进行处理。
进一步地,所述将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特包括:
若该视频帧为关键帧,判断该视频帧是否为第一个关键帧,若是,则确定图片组的最大比特与预设系数的第一乘积值,将所述第一乘积值确定为该视频帧的目标比特,若否,则确定该视频帧的所述目标码率系数与该视频帧的上一帧的码率系数的第二比值,并确定所述第二比值与该视频帧的上一帧的比特的第二乘积值,将所述第二乘积值确定为该视频帧的目标比特;
若该视频帧为非关键帧,则确定所述最大比特减第一个关键帧的比特的第一差值,并确定图片组包含的视频帧数量减预设数量的第二差值,根据所述第一差值和所述第二差值的第三比值、以及所述目标码率系数,确定所述第三比值与该视频帧的所述目标码率系数的第三乘积值,将所述第三乘积值确定为该视频帧的目标比特。
或,所述处理器执行时实现如下步骤:
获取目标视频中的每个视频帧;
针对所述每个视频帧,将该视频帧划分为预设大小的每个图像块,确定该视频帧中前景图像块的个数占该视频帧的图像块总数的目标比值,根据所述目标比值、以及数值范围与运动等级的对应关系,确定所述目标比值所在目标数值范围对应的运动等级为该视频帧的目标运动等级,其中所述预设大小为单个像素点大小或预设边长的矩形大小;
针对所述每个视频帧,根据该视频帧的目标运动等级、以及码率系数与运动等级的第一映射关系,确定该视频帧的目标码率系数;
针对所述每个视频帧,将该视频帧的目标码率系数、图片组的最大比特和所述图片组包含的帧数量输入视频帧的比特确定函数,确定输出的该视频帧的目标比特,根据该视频帧的每个像素点的像素值,确定该视频帧和该视频帧的每个图像块的纹理复杂度的每个第二参数值,其中所述纹理复杂度为梯度、方差、平均绝对差和绝对误差和等参数中的任一种;
针对该视频帧的每个图像块,确定该图像块的第二参数值和该视频帧的第二参数值的第四比值,并确定所述第四比值与该视频帧的所述目标比特的第四乘积值为该图像块的第一比特,将该图像块的第一比特输入到码率控制模型,得到输出的该图像块的候选量化参数;
若该图像块为前景图像块,根据预先保存的第二映射关系,确定该图像块的所述候选量化参数在所述第二映射关系中对应的目标量化参数,若该图像块为背景图像块,根据预先保存的第三映射关系,确定该图像块的所述候选量化参数在所述第三映射关系中对应的目标量化参数;
所述根据所述目标视频中所述每个视频帧的量化参数,对所述目标视频中所述每个视频帧进行编码包括:
根据所述目标视频中所述每个视频帧的每个图像块的目标量化参数,对所述目标视频中所述每个视频帧的每个图像块进行编码。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
- 一种视频编码方法、解码方法、装置及电子设备
- 一种虚拟形象视频播放方法、装置、电子设备及存储介质
- 一种视频聊天的方法、装置、设备和计算机存储介质
- 一种指定多元素的视频连麦方法、装置、设备及存储介质
- 一种视频缓存分析方法、装置、设备及介质
- 视频解码方法及装置、视频编码方法及装置、介质和设备
- 视频编码装置、视频编码方法、视频再现装置、视频再现方法、视频记录介质以及视频数据流