编码方法、装置、存储介质及电子设备
文献发布时间:2023-06-19 10:48:02
技术领域
本公开涉及视频图像编码领域,具体地,涉及一种编码方法、装置、存储介质及电子设备。
背景技术
视频编解码技术旨在将采集到的视频信号压缩成不同标准格式的数据,以便于传输或存储。在视频压缩过程中,视频帧压缩后的大小和质量与编码器在编码过程中选择的参数相关,例如,帧类(I/P/B帧)、运动信息、量化参数(Quantization Parameter,QP)等,其中,量化参数控制的是有损量化处理过程中损失数据量的大小,能够反映空间细节压缩情况,量化参数设置的越小,图像细节被保留的越多,视频传输需要的码率越大,量化参数设置的越大,细节丢失越多,视频传输需要的码率越低,但图像失真加强,图像质量下降。
相关技术中,在设置量化参数时,通常不会考虑到视频图像内容,不会针对不同的视频内容给出更合理的量化参数,不利于在保证视频传输所需码率不变的情况下,提升视频质量。
发明内容
本公开的目的是提供一种编码方法、装置、存储介质及电子设备。
为了实现上述目的,本公开的第一方面提供一种编码方法,所述方法包括:
从待编码的视频图像中获取待编码数据;
根据用户输入的码率控制参数确定所述待编码数据对应的像素比特数和量化参数;
在根据所述像素比特数和所述量化参数确定所述待编码数据对应的编码模式为目标编码模式的情况下,获取所述待编码数据中每个编码单元对应的待定量化参数,时域纹理值和空域纹理值;
根据每个编码单元的所述时域纹理值和所述空域纹理值对该编码单元的待定量化参数进行调整,以得到每个编码单元对应的目标量化参数;
根据每个编码单元对应的所述目标量化参数对所述待编码数据进行编码。
可选地,所述从待编码的视频图像中获取待编码数据,包括:
在预设编码级别为GOP级编码的情况下,从待编码的视频图像中获取以GOP为单位的待编码数据;
在预设编码级别为帧级编码的情况下,从待编码的视频图像中获取以帧为单位的待编码数据;
在预设编码级别为行级编码的情况下,从待编码的视频图像中获取以行为单位的待编码数据。
可选地,所述码率控制参数包括分辨率,在预设编码级别为GOP级编码的情况下,所述待编码数据为一个GOP图像,所述根据用户输入的码率控制参数确定所述待编码数据对应的像素比特数,包括:
获取所述GOP图像中第一帧图像对应的目标比特数;
获取目标比特数与所述分辨率的比值,以得到所述待编码数据对应的像素比特数。
可选地,所述根据用户输入的码率控制参数确定所述待编码数据对应的量化参数,包括:
根据所述码率控制参数通过预设帧级码率控制算法,得到所述待编码数据对应的量化参数。
可选地,所述根据所述像素比特数和所述量化参数确定所述待编码数据对应的编码模式为目标编码模式,包括:
在所述像素比特数小于或者等于预设像素比特数阈值,且所述量化参数大于预设量化参数阈值的情况下,确定所述编码模式为所述目标编码模式。
可选地,所述获取所述待编码数据中每个编码单元对应的时域纹理值,包括:
获取所述待编码数据中每个编码单元与时域帧的同位编码单元的亮度平均绝对误差值,其中,所述时域帧为该编码单元所在帧的前一帧,或者预设参考帧;
将所述亮度平均绝对误差值作为所述时域纹理值。
可选地,所述获取所述待编码数据中每个编码单元对应的空域纹理值,包括:
获取每个编码单元对应的梯度值;
将每个编码单元对应的所述梯度值确定为所述空域纹理值。
可选地,所述根据所述时域纹理值和所述空域纹理值对该编码单元的待定量化参数进行调整,以得到该编码单元对应的目标量化参数,包括:
在所述时域纹理值大于预设时域纹理阈值,且所述空域纹理值大于空域纹理阈值的情况下,通过第一预设调整方式调节所述待定量化参数,以得到所述目标量化参数;
在所述时域纹理值大于预设时域纹理阈值,且所述空域纹理值小于或者等于空域纹理阈值的情况下,通过第二预设调整方式调节所述待定量化参数,以得到所述目标量化参数;
在所述时域纹理值小于或者等于预设时域纹理阈值,且所述空域纹理值大于所述空域纹理阈值的情况下,通过第三预设调整方式调节所述待定量化参数,以得到所述目标量化参数;
在所述时域纹理值小于或者等于预设时域纹理阈值,且所述空域纹理值小于或者等于所述空域纹理阈值的情况下,通过第四预设调整方式调节所述待定量化参数,以得到所述目标量化参数;
其中,所述第一预设调整方式,所述第二预设调整方式,所述第三预设调整方式和所述第四预设调整方式相同或不同。
可选地,所述方法还包括:
根据所述码率控制参数通过预设编码单元级码率控制算法确定当前编码单元对应的待定量化参数。
可选地,所述第一预设调整方式和所述第四预设调整方式为:
若所述待定量化参数小于当前编码单元所在帧的帧级量化参数,则在所述待定量化参数的基础上增加第一预设偏移值;若所述待定量化参数大于或者等于当前编码单元所在帧的帧级量化参数,则在所述待定量化参数的基础上增加第二预设偏移值,得到所述目标量化参数,所述第一预设偏移值大于所述第二预设偏移值;
所述第二预设调整方式和所述第三预设调整方式为:
若所述待定量化参数小于当前编码单元所在帧的帧级量化参数,则在所述待定量化参数的基础上减少第二预设偏移值;若所述待定量化参数大于或者等于当前编码单元所在帧的帧级量化参数,则在所述待定量化参数的基础上减少第一预设偏移值。
可选地,在所述根据每个编码单元对应的所述目标量化参数对所述待编码数据进行编码之前,所述方法还包括:
获取每个编码单元对应的第一量化参数值和第二量化参数值,所述第一量化参数值为每个编码单元对应的时域同位编码单元实际编码的量化参数值,所述第二量化参数值为所述编码单元所在帧中上一个已编码的编码单元的实际编码量化参数值;
根据所述第一量化参数值和第一预设上限偏移量与第一预设下限偏移量生成第一限制区间;
根据所述第二量化参数值和第二预设上限偏移量与第二预设下限偏移量生成第二限制区间;
根据该编码单元所在帧的帧级量化参数和第三预设上限偏移量与第三预设下限偏移量生成第三限制区间;
根据所述第一限制区间,所述第二限制区间和所述第三限制区间对所述目标量化参数进行限制处理,以得到限制处理后的目标量化参数;
相应地,所述根据每个编码单元对应的所述目标量化参数对所述待编码数据进行编码,包括:
根据每个编码单元对应的所述限制处理后的目标量化参数对所述待编码数据进行编码。
可选地,所述根据所述第一限制区间,所述第二限制区间和所述第三限制区间对所述目标量化参数进行限制处理,以得到限制处理后的目标量化参数,包括:
按照所述第一限制区间,所述第二限制区间和所述第三限制区间对应的预设优先级对所述目标量化参数进行限制处理。
可选地,在所述第一限制区间的优先级高于所述第二限制区间的优先级,所述第二限制区间的优先级高于所述第三限制区间的优先级的情况下,所述按照所述第一限制区间,所述第二限制区间和所述第三限制区间对应的预设优先级对所述目标量化参数进行限制处理包括:
根据所述第一限制区间按照预设限制规则对所述目标量化参数进行数据处理,以得到更新后的目标量化参数;
根据所述第二限制区间按照所述预设限制规则对所述当前的目标量化参数进行数据处理,得到更新后的目标量化参数;
根据所述第三限制区间按照所述预设限制规则对当前所述更新后的目标量化参数进行数据处理,得到所述限制处理后的目标量化参数。
可选地,所述预设限制规则为:
在确定目标量化参数位于当前限制区间的情况下,将所述目标量化参数作为更新后的目标量化参数,在确定所述目标量化参数小于当前限制区间的下限值的情况下,将所述当前限制区间的下限值作为更新后的目标量化参数;在确定所述目标量化参数大于当前限制区间的上限值的情况下,将所述当前限制区间的上限值作为更新后的目标量化参数;
其中,所述当前限制区间为第一限制区间,第二限制区间,第三限制区间中的任一个。
在本公开的第二方面提供一种编码装置,所述装置包括:
第一获取模块,被配置为从待编码的视频图像中获取待编码数据;
第一确定模块,被配置为根据用户输入的码率控制参数确定所述待编码数据对应的像素比特数和量化参数;
第二确定模块,被配置为在根据所述像素比特数和所述量化参数确定所述待编码数据对应的编码模式为目标编码模式的情况下,获取所述待编码数据中每个编码单元对应的待定量化参数,时域纹理值和空域纹理值;
调整模块,被配置为根据每个编码单元的所述时域纹理值和所述空域纹理值对该编码单元的待定量化参数进行调整,以得到每个编码单元对应的目标量化参数;
编码模块,被配置为根据每个编码单元对应的所述目标量化参数对所述待编码数据进行编码。
可选地,所述第一获取模块被配置为:
在预设编码级别为GOP(Group of picture,图像组)级编码的情况下,从待编码的视频图像中获取以GOP为单位的待编码数据;
在预设编码级别为帧级编码的情况下,从待编码的视频图像中获取以帧为单位的待编码数据;
在预设编码级别为行级编码的情况下,从待编码的视频图像中获取以行为单位的待编码数据。
可选地,所述码率控制参数包括分辨率,在预设编码级别为GOP级编码的情况下,所述待编码数据为一个GOP图像,所述第一确定模块,被配置为:
获取所述GOP图像中第一帧图像对应的目标比特数;
获取目标比特数与所述分辨率的比值,以得到所述待编码数据对应的像素比特数。
可选地,所述第一确定模块,被配置为:
根据所述码率控制参数通过预设帧级码率控制算法,得到所述待编码数据对应的量化参数。
可选地,所述第二确定模块,被配置为:
在所述像素比特数小于或者等于预设像素比特数阈值,且所述量化参数大于预设量化参数阈值的情况下,确定所述编码模式为所述目标编码模式。
可选地,所述获取所述待编码数据中每个编码单元对应的时域纹理值,包括:
获取所述待编码数据中每个编码单元与时域帧的同位编码单元的亮度平均绝对误差值,其中,所述时域帧为该编码单元所在帧的前一帧,或者预设参考帧;
将所述亮度平均绝对误差值作为所述时域纹理值。
可选地,所述第二确定模块,被配置为:
获取每个编码单元对应的梯度值;
将每个编码单元对应的所述梯度值确定为所述空域纹理值。
可选地,所述调整模块,被配置为:
在所述时域纹理值大于预设时域纹理阈值,且所述空域纹理值大于空域纹理阈值的情况下,通过第一预设调整方式调节所述待定量化参数,以得到所述目标量化参数;
在所述时域纹理值大于预设时域纹理阈值,且所述空域纹理值小于或者等于空域纹理阈值的情况下,通过第二预设调整方式调节所述待定量化参数,以得到所述目标量化参数;
在所述时域纹理值小于或者等于预设时域纹理阈值,且所述空域纹理值大于所述空域纹理阈值的情况下,通过第三预设调整方式调节所述待定量化参数,以得到所述目标量化参数;
在所述时域纹理值小于或者等于预设时域纹理阈值,且所述空域纹理值小于或者等于所述空域纹理阈值的情况下,通过第四预设调整方式调节所述待定量化参数,以得到所述目标量化参数;
其中,所述第一预设调整方式,所述第二预设调整方式,所述第三预设调整方式和所述第四预设调整方式相同或不同。
可选地,所述装置还包括:
第三确定模块,被配置为根据所述码率控制参数通过预设编码单元级码率控制算法确定当前编码单元对应的待定量化参数。
可选地,所述第一预设调整方式和所述第四预设调整方式为:
若所述待定量化参数小于当前编码单元所在帧的帧级量化参数,则在所述待定量化参数的基础上增加第一预设偏移值;若所述待定量化参数大于或者等于当前编码单元所在帧的帧级量化参数,则在所述待定量化参数的基础上增加第二预设偏移值,得到所述目标量化参数,所述第一预设偏移值大于所述第二预设偏移值;
所述第二预设调整方式和所述第三预设调整方式为:
若所述待定量化参数小于当前编码单元所在帧的帧级量化参数,则在所述待定量化参数的基础上减少第二预设偏移值;若所述待定量化参数大于或者等于当前编码单元所在帧的帧级量化参数,则在所述待定量化参数的基础上减少第一预设偏移值。
可选地,所述装置还包括:
第二获取模块,被配置为获取每个编码单元对应的第一量化参数值和第二量化参数值,所述第一量化参数值为每个编码单元对应的时域同位编码单元实际编码的量化参数值,所述第二量化参数值为所述编码单元所在帧中上一个已编码的编码单元的实际编码量化参数值;
第一生成模块,被配置为根据所述第一量化参数值和第一预设上限偏移量与第一预设下限偏移量生成第一限制区间;
第二生成模块,被配置为根据所述第二量化参数值和第二预设上限偏移量与第二预设下限偏移量生成第二限制区间;
第三生成模块,被配置为根据该编码单元所在帧的帧级量化参数和第三预设上限偏移量与第三预设下限偏移量生成第三限制区间;
限制模块,被配置为根据所述第一限制区间,所述第二限制区间和所述第三限制区间对所述目标量化参数进行限制处理,以得到限制处理后的目标量化参数;
相应地,所述编码模块被配置为:
根据每个编码单元对应的所述限制处理后的目标量化参数对所述待编码数据进行编码。
可选地,所述限制模块,被配置为:
按照所述第一限制区间,所述第二限制区间和所述第三限制区间对应的预设优先级对所述目标量化参数进行限制处理。
可选地,在所述第一限制区间的优先级高于所述第二限制区间的优先级,所述第二限制区间的优先级高于所述第三限制区间的优先级的情况下,所述限制模块,被配置为:
根据所述第一限制区间按照预设限制规则对所述目标量化参数进行数据处理,以得到更新后的目标量化参数;
根据所述第二限制区间按照所述预设限制规则对所述当前的目标量化参数进行数据处理,得到更新后的目标量化参数;
根据所述第三限制区间按照所述预设限制规则对当前所述更新后的目标量化参数进行数据处理,得到所述限制处理后的目标量化参数。
可选地,所述预设限制规则为:
在确定目标量化参数位于当前限制区间的情况下,将所述目标量化参数作为更新后的目标量化参数,在确定所述目标量化参数小于当前限制区间的下限值的情况下,将所述当前限制区间的下限值作为更新后的目标量化参数;在确定所述目标量化参数大于当前限制区间的上限值的情况下,将所述当前限制区间的上限值作为更新后的目标量化参数;
其中,所述当前限制区间为第一限制区间,第二限制区间,第三限制区间中的任一个。
在本公开的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上第一方面所述方法的步骤。
在本公开的第四方面提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现以上第一方面所述方法的步骤。
上述技术方案,通过获取用户输入的码率控制参数;从待编码的视频图像中获取待编码数据;根据所述码率控制参数确定所述待编码数据对应的像素比特数和量化参数;在根据所述像素比特数和所述量化参数确定所述待编码数据对应的编码模式为目标编码模式的情况下,获取所述待编码数据中每个编码单元对应的待定量化参数,时域纹理值和空域纹理值;根据每个编码单元的所述时域纹理值和所述空域纹理值对该编码单元的待定量化参数进行调整,以得到每个编码单元对应的目标量化参数;根据每个编码单元对应的所述目标量化参数对所述待编码数据进行编码。这样,能够根据每个编码单元的所述时域纹理值和所述空域纹理值对该编码单元的待定量化参数进行调整,以得到每个编码单元对应的目标量化参数,能够给出更合理的量化参数,有利于合理控制分配至每个编码单元上的码率,从而能够在保证视频传输码率的不变的情况下,有效提升视频会议时显示的视频图像质量。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开一示例性实施例示出的一种编码方法的流程图;
图2是根据本公开图1所示实施例示出的一种编码方法的流程图;
图3是本公开一示例性实施例示出的一种编码装置的框图;
图4是根据本公开图3所示实施例示出的一种编码装置的框图;
图5是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在介绍本公开的具体实施方式之前,首先对本公开的应用场景进行以下说明,本公开可以应用于视频图像的编码过程,经过视频编码能够将视频图像压缩成不同标准格式的数据,便于传输或存储。在视频压缩过程中,选择的量化参数的大小会与视频传输需要的码率负相关,会与图像的失真程度正相关,也就是说,选择量化参数的大小会直接影响视频传输需要的码率和后期视频播放的质量。
发明人发现,相关技术中在设置量化参数时,通常无法根据视频内容的不同去调整每个编码单元的量化参数,无法更精细的控制每个编码单元的量化参数,从而不能更合理的分配码率,不利于在保证视频传输所需码率的情况下,提升视频质量。
为了解决以上技术问题,本公开提供一种编码方法、装置、存储介质及电子设备,该编码方法通过该待编码数据的像素比特数和量化参数对该待编码数据的编码模式进行分类,在确定该编码模式为目标编码模式的情况下,根据该待编码数据中每个编码单元的所述时域纹理值和所述空域纹理值对该编码单元的待定量化参数进行调整,以得到每个编码单元对应的目标量化参数,然后根据每个编码单元对应的所述目标量化参数对所述待编码数据进行编码,能够根据每帧图像的内容给出更合理的量化参数,有利于合理控制分配至每个编码单元上的码率,从而在保证视频传输码率不变的情况下,有效提升视频会议时显示的视频图像质量。
以下结合具体的实施例对本公开进行说明。
图1是本公开一示例性实施例示出的一种编码方法的流程图;参见图1,所述方法可以包括以下步骤:
步骤101,从待编码的视频图像中获取待编码数据。
本步骤中一种可能的实施方式为:在预设编码级别为GOP级编码的情况下,从待编码的视频图像中获取以GOP为单位的待编码数据;在预设编码级别为帧级编码的情况下,从待编码的视频图像中获取以帧为单位的待编码数据;在预设编码级别为行级编码的情况下,从待编码的视频图像中获取以行为单位的待编码数据。
步骤102,根据用户输入的码率控制参数确定该待编码数据对应的像素比特数和量化参数。
其中,该码率控制参数可以包括目标码率,帧率,以及分辨率。需要说明的是,在步骤101所述的从待编码的视频图像中获取待编码数据之前,可以通过预设接口(例如,预设文本输入框)获取用户输入的该码率控制参数,以使整个编码过程根据该码率控制参数进行编码。
本步骤中,获取该待编码数据对应的量化参数的实施方式为:根据该码率控制参数通过预设帧级码率控制算法,得到该待编码数据对应的量化参数。其中,该预设帧级码率控制算法可以是:H.264/AVC(Advanced Video Coding,高级视频编码)、H.265/HEVC(HighEfficiency Video Coding,高性能视频编码)、VP8(Open and royalty-free videocompression format,开放媒体联盟视频编码标准)、VP9(The WebM Project’s next-generation open video codec,开放媒体联盟视频编码标准)、AV1(Alliance for openmedia video codec 1.0;开放媒体联盟视频编码标准)任一个中的帧级码率控制算法,还可以是现有技术中的其他帧级码率控制算法,本公开在此不再赘述。
另外,在该待编码数据为以GOP为单位的编码数据的情况下,该待编码数据为一个GOP图像,该待编码数据对应的像素比特数可以通过以下方式获取:获取该GOP图像中第一帧图像对应的目标比特数;获取目标比特数与该分辨率的比值,以得到该待编码数据对应的像素比特数。
示例地,GOP图像的第一帧图像为I帧,该I帧对应的比特数即该目标比特数为
在该待编码数据为以帧为单位的编码数据的情况下,该待编码数据对应的像素比特数的计算方法为:获取该待编码数据中当前帧图像的比特数,获取该当前帧图像的比特数与当前帧图像的分辨率的第一比值,并将该第一比值确定为该待编码数据对应的像素比特数。
在该待编码数据为以行为单位的编码数据的情况下,该待编码数据对应的像素比特数的计算方法为:获取该待编码数据中当前行图像的比特数,获取该当前行图像的比特数与当前行图像的宽度的第二比值,并将该第二比值确定为该待编码数据对应的像素比特数。
步骤103,在根据该像素比特数和该量化参数确定该待编码数据对应的编码模式为目标编码模式的情况下,获取该待编码数据中每个编码单元对应的待定量化参数,时域纹理值和空域纹理值。
其中,在该像素比特数小于或者等于预设像素比特数阈值,且该量化参数大于预设量化参数阈值的情况下,确定该编码模式为该目标编码模式,该目标码率模式可以是低码率编码模式。
示例地,该待编码数据的像素比特数用
本步骤中,编码单元对应的待定量化参数的获取方式可以是:根据该码率控制参数通过预设编码单元级码率控制算法确定当前编码单元对应的待定量化参数,其中,该预设编码单元级码率控制算法可以是H.264/AVC、H.265/HEVC、VP8、VP9、AV1任一个中的预设编码单元级码率控制算法,还可以是现有技术中的其他预设编码单元级码率控制算法,本公开在此不再赘述。
该编码单元对应的时域纹理值的获取方式可以为:获取该待编码数据中每个编码 单元与时域帧的同位编码单元的亮度平均绝对误差值,其中,该时域帧为该编码单元所在 帧的前一帧,或者预设参考帧;将该亮度平均绝对误差值作为该时域纹理值。其中,该亮度 平均绝对误差值(
其中,
该编码单元对应的空域纹理值的获取方式可以为:获取每个编码单元对应的梯度值;将每个编码单元对应的该梯度值确定为该空域纹理值。其中,该编码单元对应的梯度值(G)的计算公式为:
其中,该
步骤104,根据每个编码单元的该时域纹理值和该空域纹理值对该编码单元的待定量化参数进行调整,以得到每个编码单元对应的目标量化参数。
本步骤中一种可能的实施方式包括:
在该时域纹理值大于预设时域纹理阈值,且该空域纹理值大于空域纹理阈值的情况下,通过第一预设调整方式调节该待定量化参数,以得到该目标量化参数;
在该时域纹理值大于预设时域纹理阈值,且该空域纹理值小于或者等于空域纹理阈值的情况下,通过第二预设调整方式调节该待定量化参数,以得到该目标量化参数;
在该时域纹理值小于或者等于预设时域纹理阈值,且该空域纹理值大于该空域纹理阈值的情况下,通过第三预设调整方式调节该待定量化参数,以得到该目标量化参数;
在该时域纹理值小于或者等于预设时域纹理阈值,且该空域纹理值小于或者等于该空域纹理阈值的情况下,通过第四预设调整方式调节该待定量化参数,以得到该目标量化参数;
其中,该第一预设调整方式,该第二预设调整方式,该第三预设调整方式和该第四预设调整方式相同或不同。
示例地,将
表1
其中,
可选地,该第一预设调整方式和该第四预设调整方式为:
若该待定量化参数小于当前编码单元所在帧的帧级量化参数,则在该待定量化参数的基础上增加第一预设偏移值;若该待定量化参数大于或者等于当前编码单元所在帧的帧级量化参数,则在该待定量化参数的基础上增加第二预设偏移值,得到该目标量化参数,该第一预设偏移值大于该第二预设偏移值;
该第二预设调整方式和该第三预设调整方式为:
若该待定量化参数小于当前编码单元所在帧的帧级量化参数,则在该待定量化参数的基础上减少第二预设偏移值;若该待定量化参数大于或者等于当前编码单元所在帧的帧级量化参数,则在该待定量化参数的基础上减少第一预设偏移值。
示例地,仍以上述表1为例,在该表1中,该
步骤105,根据每个编码单元对应的该目标量化参数对该待编码数据进行编码。
本步骤中,在对该待编码数据中的每个编码单元进行编码时,都按照上述步骤101至步骤104所示的方法对该编码单元的待定量化参数进行调整,以得到更为合理的目标量化参数,根据该目标量化参数对该编码单元进行编码,直至完成整个待编码数据中的所有编码单元。
上述技术方案,能够根据每个编码单元的该时域纹理值和该空域纹理值对该编码单元的待定量化参数进行调整,以得到每个编码单元对应的目标量化参数,能够给出更合理的量化参数,有利于合理控制分配至每个编码单元上的码率,从而能够有效提升视频质量。
图2是根据本公开图1所示实施例示出的一种编码方法的流程图;参见图2,在图1中所示步骤105所述的根据每个编码单元对应的该目标量化参数对该待编码数据进行编码之前,该方法还可以包括以下步骤:
步骤106,获取每个编码单元对应的第一量化参数值和第二量化参数值。
其中,该第一量化参数值为每个编码单元对应的时域同位编码单元实际编码的量化参数值,该第二量化参数值为该编码单元所在帧中上一个已编码的编码单元的实际编码量化参数值。
步骤107,根据该第一量化参数值和第一预设上限偏移量与第一预设下限偏移量生成第一限制区间。
示例地,在该第一量化参数值用
步骤108,根据该第二量化参数值和第二预设上限偏移量与第二预设下限偏移量生成第二限制区间。
示例地,在该第二量化参数值用
步骤109,根据该编码单元所在帧的帧级量化参数和第三预设上限偏移量与第三预设下限偏移量生成第三限制区间。
示例地,在该帧级量化参数值用
步骤110,根据该第一限制区间,该第二限制区间和该第三限制区间对该目标量化参数进行限制处理,以得到限制处理后的目标量化参数。
其中,可以按照该第一限制区间,该第二限制区间和该第三限制区间对应的预设优先级对该目标量化参数进行限制处理。
一种可能的实施方式中,若设置该第一限制区间的优先级高于该第二限制区间的优先级,该第二限制区间的优先级高于该第三限制区间的优先级,则可以先根据该第一限制区间按照预设限制规则对该目标量化参数进行数据处理,以得到更新后的目标量化参数;然后根据该第二限制区间按照该预设限制规则对该当前的目标量化参数进行数据处理,得到更新后的目标量化参数;再根据该第三限制区间按照该预设限制规则对当前该更新后的目标量化参数进行数据处理,得到该限制处理后的目标量化参数。
在上述实施方式中,该预设限制规则可以为:
在确定目标量化参数位于当前限制区间的情况下,将该目标量化参数作为更新后的目标量化参数,在确定该目标量化参数小于当前限制区间的下限值的情况下,将该当前限制区间的下限值作为更新后的目标量化参数;在确定该目标量化参数大于当前限制区间的上限值的情况下,将该当前限制区间的上限值作为更新后的目标量化参数;其中,该当前限制区间为第一限制区间,第二限制区间,第三限制区间中的任一个。
需要说明的是,在得到该限制处理后的目标量化参数之后,可以根据每个编码单元对应的该限制处理后的目标量化参数对该待编码数据进行编码。
示例地,在编码一个1080P的视频时,采用以平均码率控制4096kbps的目标码率, 帧率(Frame Per Second,FPS)为25的设置下进行编码,其他编码设置均设为默认设置,进 行帧级码控,即设置的预设编码级别为帧级编码,每次从待编码图像中获取一帧的编码数 据作为待编码数据,通过预设帧级码率控制方法计算该待编码数据对应的量化参数,其中 预设帧级码率控制方法可以为编码器默认的码率控制方法,如软件编码器x264等中对应帧 级码率控制方法。在当前的待编码数据为该待编码图像中的第二帧P帧时,通过该过程,可 以计算得出第二帧P帧的帧级量化参数即该待编码数据对应的量化参数
在得到该待编码数据的量化参数
以上技术方案,通过对调整后的目标量化参数进行限制,从而在该待编码数据的整体上对该量化参数进行调整,有利于从整体上保证图像质量,从而能够提升视频会议过程中显示的图像质量。
图3是本公开一示例性实施例示出的一种编码装置的框图;参见3,该装置可以包括:
第一获取模块301,被配置为从待编码的视频图像中获取待编码数据;
第一确定模块302,被配置为根据用户输入的码率控制参数确定该待编码数据对应的像素比特数和量化参数;
第二确定模块303,被配置为在根据该像素比特数和该量化参数确定该待编码数据对应的编码模式为目标编码模式的情况下,获取该待编码数据中每个编码单元对应的待定量化参数,时域纹理值和空域纹理值;
调整模块304,被配置为根据每个编码单元的该时域纹理值和该空域纹理值对该编码单元的待定量化参数进行调整,以得到每个编码单元对应的目标量化参数;
编码模块305,被配置为根据每个编码单元对应的该目标量化参数对该待编码数据进行编码。
上述技术方案,能够根据每个编码单元的该时域纹理值和该空域纹理值对该编码单元的待定量化参数进行调整,以得到每个编码单元对应的目标量化参数,能够给出更合理的量化参数,有利于合理控制分配至每个编码单元上的码率,从而能够有效提升视频质量。
可选地,该第一获取模块301被配置为:
在预设编码级别为GOP级编码的情况下,从待编码的视频图像中获取以GOP为单位的待编码数据;
在预设编码级别为帧级编码的情况下,从待编码的视频图像中获取以帧为单位的待编码数据;
在预设编码级别为行级编码的情况下,从待编码的视频图像中获取以行为单位的待编码数据。
可选地,该码率控制参数包括分辨率,在预设编码级别为GOP级编码的情况下,该待编码数据为一个GOP图像,该第一确定模块,被配置为:
获取该GOP图像中第一帧图像对应的目标比特数;
获取目标比特数与该分辨率的比值,以得到该待编码数据对应的像素比特数。
可选地,该第一确定模块302,被配置为:
根据该码率控制参数通过预设帧级码率控制算法,得到该待编码数据对应的量化参数。
可选地,该第二确定模块303,被配置为:
在该像素比特数小于或者等于预设像素比特数阈值,且该量化参数大于预设量化参数阈值的情况下,确定该编码模式为该目标编码模式。
可选地,该获取该待编码数据中每个编码单元对应的时域纹理值,包括:
获取该待编码数据中每个编码单元与时域帧的同位编码单元的亮度平均绝对误差值,其中,该时域帧为该编码单元所在帧的前一帧,或者预设参考帧;
将该亮度平均绝对误差值作为该时域纹理值。
可选地,该第二确定模块303,被配置为:
获取每个编码单元对应的梯度值;
将每个编码单元对应的该梯度值确定为该空域纹理值。
可选地,该调整模块304,被配置为:
在该时域纹理值大于预设时域纹理阈值,且该空域纹理值大于空域纹理阈值的情况下,通过第一预设调整方式调节该待定量化参数,以得到该目标量化参数;
在该时域纹理值大于预设时域纹理阈值,且该空域纹理值小于或者等于空域纹理阈值的情况下,通过第二预设调整方式调节该待定量化参数,以得到该目标量化参数;
在该时域纹理值小于或者等于预设时域纹理阈值,且该空域纹理值大于该空域纹理阈值的情况下,通过第三预设调整方式调节该待定量化参数,以得到该目标量化参数;
在该时域纹理值小于或者等于预设时域纹理阈值,且该空域纹理值小于或者等于该空域纹理阈值的情况下,通过第四预设调整方式调节该待定量化参数,以得到该目标量化参数;
其中,该第一预设调整方式,该第二预设调整方式,该第三预设调整方式和该第四预设调整方式相同或不同。
图4是根据本公开图3所示实施例示出的一种编码装置的框图;参见图4,该装置可以包括:
第三确定模块306,被配置为根据该码率控制参数通过预设编码单元级码率控制算法确定当前编码单元对应的待定量化参数。
可选地,该第一预设调整方式和该第四预设调整方式为:
若该待定量化参数小于当前编码单元所在帧的帧级量化参数,则在该待定量化参数的基础上增加第一预设偏移值;若该待定量化参数大于或者等于当前编码单元所在帧的帧级量化参数,则在该待定量化参数的基础上增加第二预设偏移值,得到该目标量化参数,该第一预设偏移值大于该第二预设偏移值;
该第二预设调整方式和该第三预设调整方式为:
若该待定量化参数小于当前编码单元所在帧的帧级量化参数,则在该待定量化参数的基础上减少第二预设偏移值;若该待定量化参数大于或者等于当前编码单元所在帧的帧级量化参数,则在该待定量化参数的基础上减少第一预设偏移值。
可选地,该装置还包括:
第二获取模块307,被配置为获取每个编码单元对应的第一量化参数值和第二量化参数值,该第一量化参数值为每个编码单元对应的时域同位编码单元实际编码的量化参数值,该第二量化参数值为该编码单元所在帧中上一个已编码的编码单元的实际编码量化参数值;
第一生成模块308,被配置为根据该第一量化参数值和第一预设上限偏移量与第一预设下限偏移量生成第一限制区间;
第二生成模块309,被配置为根据该第二量化参数值和第二预设上限偏移量与第二预设下限偏移量生成第二限制区间;
第三生成模块310,被配置为根据该编码单元所在帧的帧级量化参数和第三预设上限偏移量与第三预设下限偏移量生成第三限制区间;
限制模块311,被配置为根据该第一限制区间,该第二限制区间和该第三限制区间对该目标量化参数进行限制处理,以得到限制处理后的目标量化参数;
相应地,该编码模块305被配置为:
根据每个编码单元对应的该限制处理后的目标量化参数对该待编码数据进行编码。
可选地,该限制模块311,被配置为:
按照该第一限制区间,该第二限制区间和该第三限制区间对应的预设优先级对该目标量化参数进行限制处理。
可选地,在该第一限制区间的优先级高于该第二限制区间的优先级,该第二限制区间的优先级高于该第三限制区间的优先级的情况下,该限制模块311,被配置为:
根据该第一限制区间按照预设限制规则对该目标量化参数进行数据处理,以得到更新后的目标量化参数;
根据该第二限制区间按照该预设限制规则对该当前的目标量化参数进行数据处理,得到更新后的目标量化参数;
根据该第三限制区间按照该预设限制规则对该当前更新后的目标量化参数进行数据处理,得到该限制处理后的目标量化参数。
可选地,该预设限制规则为:
在确定目标量化参数位于当前限制区间的情况下,将该目标量化参数作为更新后的目标量化参数,在确定该目标量化参数小于当前限制区间的下限值的情况下,将该当前限制区间的下限值作为更新后的目标量化参数;在确定该目标量化参数大于当前限制区间的上限值的情况下,将该当前限制区间的上限值作为更新后的目标量化参数;
其中,该当前限制区间为第一限制区间,第二限制区间,第三限制区间中的任一个。
以上技术方案,通过对调整后的目标量化参数进行限制,从而在该待编码数据的整体上对该量化参数进行调整,有利于从整体上保证图像质量,从而能够提升视频会议过程中显示的图像质量。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种电子设备的框图。如图5所示,该电子设备500可以包括:处理器501,存储器502。该电子设备500还可以包括多媒体组件503,输入/输出(I/O)接口504,以及通信组件505中的一者或多者。
其中,处理器501用于控制该电子设备500的整体操作,以完成上述的编码方法中的全部或部分步骤。存储器502用于存储各种类型的数据以支持在该电子设备500的操作,这些数据例如可以包括用于在该电子设备500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件503可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器502或通过通信组件505发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口504为处理器501和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件505用于该电子设备500与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件505可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的编码方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的编码方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器502,上述程序指令可由电子设备500的处理器501执行以完成上述的编码方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思区间内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护区间。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
- 视频编码方法、装置、电子设备和存储介质
- 视频编码方法、装置、电子设备及存储介质