CN117834887A - 图像编码方法、解码方法、装置、电子设备及存储介质 - Google Patents
图像编码方法、解码方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117834887A CN117834887A CN202410010042.7A CN202410010042A CN117834887A CN 117834887 A CN117834887 A CN 117834887A CN 202410010042 A CN202410010042 A CN 202410010042A CN 117834887 A CN117834887 A CN 117834887A
- Authority
- CN
- China
- Prior art keywords
- image
- intra
- decoding
- mode
- 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
- 238000000034 method Methods 0.000 title claims abstract description 115
- 230000006835 compression Effects 0.000 claims abstract description 212
- 238000007906 compression Methods 0.000 claims abstract description 212
- 238000004364 calculation method Methods 0.000 claims description 66
- 238000004422 calculation algorithm Methods 0.000 claims description 65
- 238000005457 optimization Methods 0.000 claims description 43
- 230000004044 response Effects 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 17
- 238000012163 sequencing technique Methods 0.000 claims description 10
- 238000012216 screening Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 36
- 230000005540 biological transmission Effects 0.000 abstract description 15
- 230000000875 corresponding effect Effects 0.000 description 30
- 230000008569 process Effects 0.000 description 23
- 238000013139 quantization Methods 0.000 description 19
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000002596 correlated effect Effects 0.000 description 4
- 230000035945 sensitivity Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000011056 performance test Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- 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/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
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开提供了一种图像编码方法、解码方法、装置、电子设备及存储介质,属于音视频处理技术领域。该方法提出了一种新的图像压缩格式,定义了该图像压缩格式的元数据信息,该元数据信息包括两类;一类用于指示采用该图像压缩格式进行图像编码;另一类包括一个新的参数集,该参数集中包括两个变量,一个变量用于指示兼容的视频编码标准的版本号,另一个变量用于指示采用该图像压缩格式进行图像编码。基于此,该方法支持通过元数据信息控制该图像压缩格式兼容的视频编码标准,比如兼容VVC,由于VVC拥有更高的压缩效率,所以该图像压缩格式同样具备较高的压缩效率,因此基于该图像压缩格式进行图像编码,能够节省存储空间和传输的带宽成本。
Description
技术领域
本公开涉及音视频处理技术领域,特别涉及一种图像编码方法、解码方法、装置、电子设备及存储介质。
背景技术
图像编码也称图像压缩,是指通过将图像文件中的冗余数据去掉来减小文件大小的过程。其中,压缩后的图像文件不仅会占用更少的存储空间,而且还可以加快图像的传输速度。
通常情况下,图像压缩方式分为无损压缩和有损压缩两种。无损压缩一般应用于需要保持图像质量的场景,例如专业图像编辑、医学图像处理等。针对无损压缩,会将冗余数据删除或使用更小的表示方式进行表示,以达到减小文件大小的目的。有损压缩则可以应用于更广泛的场景,例如在线图像分享、媒体流传输等。针对有损压缩,会根据人类对图像的感知规律,将一些对图像影响不大的信息删除或降低图像精度,以达到减小文件大小的目的。
特别地,在大规模图像压缩场景中,在追求图像画质和保障用户体验的前提下,还需考虑占用存储空间的大小和图像传输的带宽成本。换言之,对存储空间的占用和传输的带宽成本,是图像编码过程中必须考虑的。
发明内容
本公开提供一种图像编码方法、解码方法、装置、电子设备及存储介质。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种图像编码方法,包括:
获取待处理的原始图像;
基于目标图像压缩格式对所述原始图像进行编码,得到编码图像;其中,所述编码图像的图像文件中包括元数据信息,所述元数据信息包括第一类元数据和第二类元数据;
所述第一类元数据用于指示采用所述目标图像压缩格式进行图像编码;
所述第二类元数据包括NAL(Network Abstraction Layer,网络抽象层)单元数据,所述NAL单元数据中包括指定参数集,所述指定参数集中包括第一变量和第二变量;所述第一变量用于指示兼容的视频编码标准的版本号,所述第二变量用于指示采用所述目标图像压缩格式进行图像编码。
在一些实施例中,所述第二类元数据包括解码控制数据,所述解码控制数据中包括所述NAL单元数据,所述解码控制数据给出了对所述NAL单元数据进行处理的方式。
在一些实施例中,所述基于目标图像压缩格式对所述原始图像进行编码,得到编码图像,包括:
调用编码器,基于所述目标图像压缩格式对所述原始图像进行编码,得到所述编码图像;
其中,所述编码图像为具有所述目标图像压缩格式的图像文件;所述编码器包括多种帧内预测模式和多种编码工具,所述多种编码工具中的每种编码工具包括多个帧内预测算法。
在一些实施例中,所述调用编码器,基于所述目标图像压缩格式对所述原始图像进行编码,得到所述编码图像,包括:
基于原始的量化参数值、第一数值、第二数值和所述原始图像的SATD(Sum ofAbsolute Transformed Difference,残差变换绝对值和)值,确定新的量化参数值;
调用编码器,基于所述新的量化参数值对所述原始图像进行编码,得到所述编码图像;
其中,所述新的量化参数值与所述SATD值呈正相关;所述第二数值用于表征人眼对图像中平滑区域的敏感性。
在一些实施例中,所述调用编码器,基于所述目标图像压缩格式对所述原始图像进行编码,得到所述编码图像,包括:
获取每种编码工具的编码性价比;基于每种编码工具的编码性价比,确定用于图像编码的编码工具;
获取每种帧内预测算法的编码性价比;基于每种帧内预测算法的编码性价比,用于图像编码的帧内预测算法;
基于每种帧内预测模式对应的SATD值,在所述多种帧内预测模式中确定最佳帧内预测模式;
基于确定的编码工具、帧内预测算法和所述最佳帧内预测模式,对所述原始图像进行编码,得到所述编码图像。
在一些实施例中,所述获取每种编码工具的编码性价比,包括:
对于任一种编码工具,获取所述编码工具的编码复杂度和压缩效率;
将所述编码工具的压缩效率与编码复杂度之比,作为所述编码工具的编码性价比。
在一些实施例中,所述基于每种编码工具的编码性价比,确定用于图像编码的编码工具,包括:
获取性价比阈值;
对于任一种编码工具,响应于所述编码工具的编码性价比大于所述性价比阈值,将所述编码工具确定为用于图像编码的编码工具。
在一些实施例中,所述基于每种帧内预测模式对应的SATD值,在所述多种帧内预测模式中确定最佳帧内预测模式,包括:
对每种帧内预测模式对应的SATD值进行排序,得到排序结果;
基于所述排序结果,在所述多种帧内预测模式中筛选出M种候选模式;M为正整数;
对所述M种候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
在一些实施例中,所述对所述M种候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式,包括:
将SATD值最小的候选模式作为最佳候选模式,将所述最佳候选模式对应的SATD值作为最佳SATD值;
在其他候选模式中,响应于当前候选模式对应的SATD值大于第三数值与所述最佳SATD值之积,删除当前候选模式;
对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
在一些实施例中,所述对所述M种候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式,包括:
获取所述M种候选模式对应的SATD值的平均值和标准差;
在其他候选模式中,响应于当前候选模式对应的SATD值大于所述平均值与所述标准差之和,删除当前候选模式;
对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
在一些实施例中,所述对所述M种候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式,包括:
对于所述M种候选模式中的第i种候选模式,响应于所述第i种候选模式的率失真代价满足预设条件,将所述第i种候选模式的率失真代价作为最佳率失真代价;
其中,所述预设条件是指,所述第i种候选模式的率失真代价在做完率失真优化计算的候选模式中是最小的;
对于所述M种候选模式中的第j种候选模式,响应于所述第j种候选模式的率失真代价大于第四数值与所述最佳率失真代价之积,删除所述第j种候选模式以及与所述第j种候选模式相似的候选模式;其中,i和j均为正整数;
对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
在一些实施例中,所述相似的候选模式是指与所述第j种候选模式的帧内预测角度之差位于目标角度范围内的模式。
根据本公开实施例的第二方面,提供一种图像解码方法,包括:
获取基于目标图像压缩格式编码得到的编码图像;
其中,所述编码图像的图像文件中包括元数据信息,所述元数据信息包括第一类元数据和第二类元数据;所述第一类元数据用于指示采用所述目标图像压缩格式进行图像编码;所述第二类元数据包括NAL单元数据,所述NAL单元数据中包括指定参数集,所述指定参数集中包括第一变量和第二变量;所述第一变量用于指示兼容的视频编码标准的版本号,所述第二变量用于指示采用所述目标图像压缩格式进行图像编码;
对所述编码图像进行解码,得到原始图像。
在一些实施例中,所述第二类元数据包括解码控制数据,所述解码控制数据中包括所述NAL单元数据,所述解码控制数据给出了对所述NAL单元数据进行处理的方式。
在一些实施例中,所述对所述编码图像进行解码,得到原始图像,包括:
调用解码器,对所述编码图像进行解码,得到所述原始图像;
其中,所述解码器包括多种帧内预测模式和多种解码工具。
在一些实施例中,所述调用解码器,对所述解码图像进行解码,得到所述原始图像,包括:
获取每种帧内预测模式的解码复杂度;基于每种帧内预测模式的解码复杂度,确定用于图像解码的帧内预测模式;
获取每种解码工具的解码复杂度;基于每种解码工具的解码复杂度,确定用于图像解码的解码工具;
基于确定的帧内预测模式和解码工具,对所述编码图像进行解码,得到所述原始图像。
在一些实施例中,所述获取每种帧内预测模式的解码复杂度,包括:
在所述多种帧内预测模式中,对于任一种帧内预测模式,获取所述帧内预测模式的解码耗时;
获取使用所述帧内预测模式进行解码处理的系数块面积;
将所述解码耗时与所述系数块面积之比,作为所述帧内预测模式的解码复杂度。
在一些实施例中,所述基于每种帧内预测模式的解码复杂度,确定用于图像解码的帧内预测模式,包括:
获取第一解码复杂度阈值和第二解码复杂度阈值;其中,所述第一解码复杂度阈值小于所述第二解码复杂度阈值;
在所述多种帧内预测模式中,对于任一种帧内预测模式,响应于所述帧内预测模式的解码复杂度大于所述第二解码复杂度阈值,删除所述帧内预测模式;
响应于所述帧内预测模式的解码复杂度大于所述第一解码复杂度阈值且小于所述第二解码复杂度阈值,降低所述帧内预测模式被选中用于解码的次数;
在未被删除的帧内预测模式中,确定用于图像解码的帧内预测模式。
在一些实施例中,所述在未被删除的帧内预测模式中,确定用于图像解码的帧内预测模式,包括:
获取所述编码图像的图像文件大小和图像质量损失;
在未被删除的帧内预测模式中,对于任一种帧内预测模式,基于所述图像文件大小、所述图像质量损失和所述帧内预测模式的解码复杂度,确定所述帧内预测模式的率失真代价;
其中,率失真代价小的帧内预测模式被选中用于解码的概率大于率失真代价大的帧内预测模式。
根据本公开实施例的第三方面,提供一种图像编码装置,包括:
第一获取模块,被配置为获取待处理的原始图像;
编码模块,被配置为基于目标图像压缩格式对所述原始图像进行编码,得到编码图像;
其中,所述编码图像的图像文件中包括元数据信息,所述元数据信息包括第一类元数据和第二类元数据;所述第一类元数据用于指示采用所述目标图像压缩格式进行图像编码;所述第二类元数据包括NAL单元数据,所述NAL单元数据中包括指定参数集,所述指定参数集中包括第一变量和第二变量;所述第一变量用于指示兼容的视频编码标准的版本号,所述第二变量用于指示采用所述目标图像压缩格式进行图像编码。
在一些实施例中,所述第二类元数据包括解码控制数据,所述解码控制数据中包括所述NAL单元数据,所述解码控制数据给出了对所述NAL单元数据进行处理的方式。
在一些实施例中,所述编码模块,被配置为:
调用编码器,基于所述目标图像压缩格式对所述原始图像进行编码,得到所述编码图像;
其中,所述编码图像为具有所述目标图像压缩格式的图像文件;所述编码器包括多种帧内预测模式和多种编码工具,所述多种编码工具中的每种编码工具包括多个帧内预测算法。
在一些实施例中,所述编码模块,被配置为:
基于原始的量化参数值、第一数值、第二数值和所述原始图像的SATD值,确定新的量化参数值;
调用编码器,基于所述新的量化参数值对所述原始图像进行编码,得到所述编码图像;
其中,所述新的量化参数值与所述SATD值呈正相关;所述第二数值用于表征人眼对图像中平滑区域的敏感性。
在一些实施例中,所述编码模块,被配置为:
获取每种编码工具的编码性价比;基于每种编码工具的编码性价比,确定用于图像编码的编码工具;
获取每种帧内预测算法的编码性价比;基于每种帧内预测算法的编码性价比,用于图像编码的帧内预测算法;
基于每种帧内预测模式对应的SATD值,在所述多种帧内预测模式中确定最佳帧内预测模式;
基于确定的编码工具、帧内预测算法和所述最佳帧内预测模式,对所述原始图像进行编码,得到所述编码图像。
在一些实施例中,所述编码模块,被配置为:
对于任一种编码工具,获取所述编码工具的编码复杂度和压缩效率;
将所述编码工具的压缩效率与编码复杂度之比,作为所述编码工具的编码性价比。
在一些实施例中,所述编码模块,被配置为:
获取性价比阈值;
对于任一种编码工具,响应于所述编码工具的编码性价比大于所述性价比阈值,将所述编码工具确定为用于图像编码的编码工具。
在一些实施例中,所述编码模块,被配置为:
对每种帧内预测模式对应的SATD值进行排序,得到排序结果;
基于所述排序结果,在所述多种帧内预测模式中筛选出M种候选模式;M为正整数;
对所述M种候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
在一些实施例中,所述编码模块,被配置为:
将SATD值最小的候选模式作为最佳候选模式,将所述最佳候选模式对应的SATD值作为最佳SATD值;
在其他候选模式中,响应于当前候选模式对应的SATD值大于第三数值与所述最佳SATD值之积,删除当前候选模式;
对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
在一些实施例中,所述编码模块,被配置为:
获取所述M种候选模式对应的SATD值的平均值和标准差;
在其他候选模式中,响应于当前候选模式对应的SATD值大于所述平均值与所述标准差之和,删除当前候选模式;
对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
在一些实施例中,所述编码模块,被配置为:
对于所述M种候选模式中的第i种候选模式,响应于所述第i种候选模式的率失真代价满足预设条件,将所述第i种候选模式的率失真代价作为最佳率失真代价;
其中,所述预设条件是指,所述第i种候选模式的率失真代价在做完率失真优化计算的候选模式中是最小的;
对于所述M种候选模式中的第j种候选模式,响应于所述第j种候选模式的率失真代价大于第四数值与所述最佳率失真代价之积,删除所述第j种候选模式以及与所述第j种候选模式相似的候选模式;其中,i和j均为正整数;
对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
在一些实施例中,所述相似的候选模式是指与所述第j种候选模式的帧内预测角度之差位于目标角度范围内的模式。
根据本公开实施例的第四方面,提供一种图像解码装置,包括:
第二获取模块,被配置为获取基于目标图像压缩格式编码得到的编码图像;
其中,所述编码图像的图像文件中包括元数据信息,所述元数据信息包括第一类元数据和第二类元数据;所述第一类元数据用于指示采用所述目标图像压缩格式进行图像编码;所述第二类元数据包括NAL单元数据,所述NAL单元数据中包括指定参数集,所述指定参数集中包括第一变量和第二变量;所述第一变量用于指示兼容的视频编码标准的版本号,所述第二变量用于指示采用所述目标图像压缩格式进行图像编码;
解码模块,被配置为对所述编码图像进行解码,得到原始图像。
在一些实施例中,所述第二类元数据包括解码控制数据,所述解码控制数据中包括所述NAL单元数据,所述解码控制数据给出了对所述NAL单元数据进行处理的方式。
在一些实施例中,所述解码模块,被配置为:
调用解码器,对所述编码图像进行解码,得到所述原始图像;
其中,所述解码器包括多种帧内预测模式和多种解码工具。
在一些实施例中,所述解码模块,被配置为:
获取每种帧内预测模式的解码复杂度;基于每种帧内预测模式的解码复杂度,确定用于图像解码的帧内预测模式;
获取每种解码工具的解码复杂度;基于每种解码工具的解码复杂度,确定用于图像解码的解码工具;
基于确定的帧内预测模式和解码工具,对所述编码图像进行解码,得到所述原始图像。
在一些实施例中,所述解码模块,被配置为:
在所述多种帧内预测模式中,对于任一种帧内预测模式,获取所述帧内预测模式的解码耗时;
获取使用所述帧内预测模式进行解码处理的系数块面积;
将所述解码耗时与所述系数块面积之比,作为所述帧内预测模式的解码复杂度。
在一些实施例中,所述解码模块,被配置为:
获取第一解码复杂度阈值和第二解码复杂度阈值;其中,所述第一解码复杂度阈值小于所述第二解码复杂度阈值;
在所述多种帧内预测模式中,对于任一种帧内预测模式,响应于所述帧内预测模式的解码复杂度大于所述第二解码复杂度阈值,删除所述帧内预测模式;
响应于所述帧内预测模式的解码复杂度大于所述第一解码复杂度阈值且小于所述第二解码复杂度阈值,降低所述帧内预测模式被选中用于解码的次数;
在未被删除的帧内预测模式中,确定用于图像解码的帧内预测模式。
在一些实施例中,所述解码模块,被配置为:
获取所述编码图像的图像文件大小和图像质量损失;
在未被删除的帧内预测模式中,对于任一种帧内预测模式,基于所述图像文件大小、所述图像质量损失和所述帧内预测模式的解码复杂度,确定所述帧内预测模式的率失真代价;
其中,率失真代价小的帧内预测模式被选中用于解码的概率大于率失真代价大的帧内预测模式。
根据本公开实施例的第五方面,提供一种电子设备,该电子设备包括:
一个或多个处理器;
用于存储该处理器可执行程序代码的存储器;
其中,该处理器被配置为执行该程序代码,以实现上述第一方面所述的图像编码方法;或,第二方面所述的图像解码方法。
根据本公开实施例的第六方面,提供一种计算机可读存储介质,在该计算机可读存储介质中的程序代码由电子设备的处理器执行的情况下,使得电子设备能够执行上述第一方面所述的图像编码方法;或,第二方面所述的图像解码方法。
根据本公开实施例的第七方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的图像编码方法;或,第二方面所述的图像解码方法。
本公开实施例提出了一种新的图像压缩格式,并基于这种图像压缩格式进行图像编码。详细来说,定义了这种图像压缩格式的元数据信息,该元数据信息包括两类元数据;一类元数据用于指示采用这种图像压缩格式进行图像编码;另一类元数据包括NAL单元数据,其中,NAL单元数据中包括一个新的参数集,这个参数集中包括两个变量,一个变量用于指示兼容的视频编码标准的版本号,另一个变量用于指示采用这种图像压缩格式进行图像编码。
基于以上设计,本公开实施例支持通过元数据信息控制这种图像压缩格式兼容的视频编码标准,比如兼容VVC(Versatile Video Coding,多功能视频编码标准),由于VVC拥有更高的压缩效率,所以这种图像压缩格式同样具备较高的压缩效率,因此基于这种图像压缩格式进行图像编码,在确保图像画质和用户体验的前提下,能够节省存储空间和图像传输的带宽成本,适用于在大规模图像压缩场景。另外,除了VVC之外,这种图像压缩格式还可扩展性地兼容比VVC更先进的视频编码标准。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种图像编解码方法的实施环境示意图。
图2是根据一示例性实施例示出的另一种图像编解码方法的实施环境示意图。
图3是根据一示例性实施例示出的一种图像编码方法的流程图。
图4是根据一示例性实施例示出的一种图像解码方法的流程图。
图5是根据一示例性实施例示出的一种图像编解码方法的流程图。
图6是根据一示例性实施例示出的一种图像解码方法的整体执行流程图。
图7是根据一示例性实施例示出的一种图像编码装置的框图。
图8是根据一示例性实施例示出的一种图像解码装置的框图。
图9是根据一示例性实施例示出的一种终端的框图。
图10是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面先对本公开实施例涉及的一些缩略语或关键术语进行介绍。
1.有损压缩和无损压缩
有损压缩相较于无损压缩可以获得更高的压缩效率,节省存储空间以及文件传输的带宽成本。其中,压缩效率是指在保持相同PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)下,压缩率提升的百分比,即压缩后的文件大小减少的百分比。
常用的无损压缩算法包括GIF(Graphics Interchange Format,图形交换格式)、PNG(Portable Network Graphics,便携式网络图形)和TIFF(Tag Image File Format,标签图像文件格式)等。
常用的有损压缩算法包括JPEG(Joint Photographic Experts Group,一种常用的图像存储格式)和HEIF(High Efficiency Image File Format,高效率图像封装格式)等。其中,HEIF图像是以HEVC(High Efficiency Video Coding,高效率视频编码)编码器进行压缩的图像文件。在有损压缩的图像格式中,HEIF是一种十分高效的图像封装格式,比JPEG具有更高的压缩效率。
2.后端媒体处理服务、业务后端和图像库服务
后端媒体处理服务是指提供图像、视频、音频等处理的后端服务。示例性地,这些服务包括视频剪辑和编辑、图像处理和音频处理等。其中,图像处理包括图像压缩,即可以对原始图像进行压缩,得到具有不同图像压缩格式的图像。
业务后端通常是指一个网站或应用的核心服务端,负责处理用户请求、完成各种业务逻辑、管理数据存储、调度各种资源等。对于具有不同图像压缩格式的图像,业务后端根据用户需求运用业务逻辑下发图像,比如将图像下发到移动终端侧,由移动终端侧安装的目标应用(比如短视频应用)将图像展示给用户。
图像库服务是一种通过API(Application Programming Interface,应用程序编程接口)调用的图像管理服务,主要用于存储、管理和处理大量的图像资源。对于与上述目标应用关联的图像,图像库服务可以根据图像压缩格式,调用对应的图像解码器进行图像解码,并将成功解码的图像展示给用户。
3.RDO(Rate Distortion Optimization,率失真优化)
其中,RDO是一种使编码后的图像在文件大小(用rate表示)和图像质量损失(用distortion表示)之间保持最佳平衡的优化方法。而RDcost(Rate Distortion Cost,率失真代价)是一个用于反映图像在文件大小和图像质量之间平衡情况的指标。
示例性地,RDcost的一种计算公式为:
RDcost=D+λR
其中,D表示图像质量损失,R表示图像编码所需比特数(rate),λ是给定的参数。
图1是根据一示例性实施例示出的一种图像编解码方法的实施环境示意图。
参见图1,该实施环境包括:图像编码设备101和图像解码设备102。
其中,图像编码设备101简称编码设备,用于执行本公开实施例提供的图像编码方法。图像解码设备102简称解码设备,用于执行本公开实施例提供的图像解码方法。
在本公开实施例中,编码设备101用于基于一种新的图像压缩方式进行图像编码,并将编码后的图像通过网络连接传输至解码设备102。而解码设备102用于对接收到的图像进行解码,得到可显示在显示屏幕上的图像。
在一些实施例中,如图2所示,编码设备101为服务器,即服务器侧执行图像编码;解码设备102为终端,即终端侧执行图像解码。其中,终端101是用户使用的电子设备。示例性地,终端101上安装有目标应用,终端101基于该目标应用实现上述图像解码方法。
另外,该目标应用可以为具有图像编解码功能的即时通讯应用,比如短视频应用,本公开对此不作限定。
在另一些实施例中,终端101的类型为智能手机、平板电脑等设备。图1仅是以终端101为智能手机进行举例说明。另外,本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为几个,或者上述设备为几十个或几百个,或者更多数量,本公开实施例对终端的数量和类型均不作限定。
在另一些实施例中,服务器102还用于为该目标应用提供后台服务。另外,服务器102通过无线网络或有线网络与终端101相连。另外,本公开实施例涉及的服务器还可以包括其他功能服务器,以便提供更全面且多样化的服务。
基于上述实施环境,考虑到对存储空间的占用和图像传输的带宽成本,本公开实施例提出了一种新的图像压缩格式,即KVIF(Kuaishou Video Interchange Format,基于KVC编码的图像压缩格式),在大规模图像压缩场景落地,能够在确保图像画质和用户体验的前提下减少对存储空间的占用并降低图像传输的带宽成本。
换一种表达方式,本公开实施例基于VVC提出了一种新的图像压缩格式(KVIF),设计了KVIF的封装格式并定义了KVIF的meta(元数据)信息,可扩展地支持封装VVC以及比VVC更先进的视频编码标准,相比于HEIF具有更高的扩展性(支持更多的视频编码标准),并且得益于VVC比HEVC具有更高的压缩效率,因此KVIF图像比HEIF图像具有更高的压缩效率。其中,VVC是新一代视频编码标准,比上一代视频编码标准HEVC拥有更高的压缩效率。而meta信息通常指的是存储在文件头部的元数据信息,用于描述图像或视频的相关属性,例如图像的宽高,颜色空间等信息。
另外,本公开实施例还提出了一种以KVIF编码器对图像进行编码,以KVIF解码器对编码后的图像进行解码的方法。这种方法使得后端媒体处理服务、业务后端和图像库服务可以顺利地处理KVIF图像,使得KVIF图像可以大规模落地。换言之,本公开实施例提出了一种以KVIF编码器对图像进行压缩,以KVIF解码器对图像进行解码的方法。该方法具备可扩展性,即除了KVIF可以使用,HEIF也可以使用,后续新出现的其他图像压缩格式依旧可以使用,详见后文描述。
需要说明的是,相比于HEIF,KVIF大幅度地提升了图像压缩效率。另外,为了进一步提升KVIF的图像压缩效率和图像画质以及降低KVIF的编解码复杂度,本公开实施例还提出了进一步的优化方法。
详细来说,本公开实施例提出了一种针对图像压缩的QP(QuantizationParameter,量化参数)调整算法,以进一步提升图像质量和图像压缩效率。其中,QP是图像压缩中用于控制图像质量和图像压缩效率的一种参数。QP与图像质量和图像压缩效率之间存在着一定的平衡。若QP值越高,则图像压缩效率越高,但图像质量也越差;反之,若QP值越低,则图像压缩效率越低,但图像质量也更高。因此,通过调整QP值可以实现在图像质量与图像压缩效率之间寻找到最佳平衡点。另外,本公开实施例对KVIF编码器和KVIF解码器进行优化,大幅度降低了KVIF的编解码复杂度,详见后文描述。
下面通过如下实施例对上述图像编码方法和上述图像解码方法进行详细介绍。
图3是根据一示例性实施例示出的一种图像编码方法的流程图,如图3所示,该图像编码方法应用于电子设备中,比如图1所示的编码设备。该图像编码方法包括以下步骤:
在301中,编码设备获取待处理的原始图像。
以大规模图像压缩场景为例,原始图像可以是用户创作的图类作品、作品封面、在视频中抽取的视频封面等,本公开对此不作限定。其中,原始图像的源图像格式可以是JPEG、WEBP、PNG、GIF或HEIF等。
在302中,编码设备基于目标图像压缩格式对原始图像进行编码,得到编码图像;其中,该编码图像的图像文件中包括元数据信息,该元数据信息包括第一类元数据和第二类元数据;第一类元数据用于指示采用目标图像压缩格式进行图像编码;第二类元数据包括NAL单元数据,该NAL单元数据中包括指定参数集,指定参数集中包括第一变量和第二变量;第一变量用于指示兼容的视频编码标准的版本号,第二变量用于指示采用目标图像压缩格式进行图像编码。
需要说明的是,目标图像压缩格式在本文中指代KVIF。相应地,上述编码图像即为具有目标图像压缩格式的图像文件,即KVIF图像。另外,上述元数据信息指代meta信息,第一类元数据即为iinf(Item Information Box,媒体项信息盒),第二类元数据即为iprp。
其中,iinf包括infe(Item Information Entry,媒体项信息实体),iprp(ItemProperties Box,媒体项属性盒)包括ipco(Item Property Container,媒体项信息容器)。iinf用于存储关于特定媒体项的信息。每个infe描述了单个媒体项的详细信息,比如媒体项的类型、属性、关联项等,infe的结构可以根据媒体项的不同类型而变化。iprp包括媒体项的附加属性值,例如色彩空间、Gamma值、exif(Exchangeable image file format,可交换图像文件格式)数据或GPS(Global Positioning System,全球定位系统)数据等。ipco用于以容器形式存储用于控制解码的数据(也称解码控制数据),比如存储KVIF图像的压缩参数和配置信息等。
在本公开实施例中,KVIF的meta信息的结构如下所示:
在meta信息的infe中定义了一个新的字段,infe中的item_type=kvc7,使得图像库服务可以区分KVIF和其他图像压缩格式,并且使得KVIF解码器可以顺利读取和处理KVIF图像。另外,在meta信息的ipco中定义了一种新的KvLC容器格式,用于存储KVIF图像的压缩参数和配置信息。其中,KvLC中包含了NAL单元数据,该NAL单元数据包括图像编码中的参数集KPS(也被称为指定参数集)、SPS(Sequence Parameter Set,序列参数集)和PPS(PictureParameter Set,图像参数集),这些参数集中包含了图像的一些基本描述信息,为KVIF解码器提供了图像解码所需的控制信息。即,KVIF解码器可以通过KvLC解析这些参数集,再解析图像数据,从而顺利读取和处理KVIF图像,确保图像能够精确地呈现出来和正常播放。
需要说明的是,NAL是视频编码标准中的一个概念,NAL是一种用于视频数据传输和存储的抽象层,可以将视频数据流分解成多个NAL单元,以方便传输和存储。其中,KvLC的语法如下:
这段语法描述了KvLC里面的语法元素,并提供了对NAL单元数据进行处理的方法:
reserved:一个5位的变量,值为二进制11011。
LengthSizeMinusOne:一个2位的无符号整数,表示NAL单元长度的大小(减1)。
reserved:一个1位的变量,值为0。
num_of_arrays:一个8位的无符号整数,表示NAL单元数组的数量。
其中,NAL单元数组中包括多个NAL单元。另外,该类还包括一个for循环,其迭代次数为num_of_arrays,每次迭代都会处理NAL单元数组。在循环内部,可以看到:
array_completeness:一个1位的无符号整数,表示NAL单元数组是否完整。
reserved:一个2位的变量,值为0。
num_nalus:一个16位的无符号整数,表示NAL单元的数量。
nal_unit_length:一个16位的无符号整数,表示NAL单元的长度(以比特为单位)。
nal_unit:一个长度为8*nal_unit_length的比特流,表示NAL单元的内容,即视频头信息。
在本公开实施例中,KPS的语法如下:
这段语法描述了KPS里面的语法元素:
kwai_parameter_set_version_id是一个7位的变量(也被称为第一变量),用于指示视频编码标准的版本号。kwai_is_kpg_still_picture是一个1位的变量,值为1,用于指示采用KVIF进行图像编码。换言之,可以使用kwai_parameter_set_version_id控制视频编码标准的版本号,使得KVIF可以兼容或支持其他的视频编码标准。
本公开实施例提出了一种新的图像压缩格式,并基于这种图像压缩格式进行图像编码。详细来说,定义了这种图像压缩格式的元数据信息,该元数据信息包括两类元数据;一类元数据用于指示采用这种图像压缩格式进行图像编码;另一类元数据包括NAL单元数据,其中,NAL单元数据中包括一个新的参数集,这个参数集中包括两个变量,一个变量用于指示兼容的视频编码标准的版本号,另一个变量用于指示采用这种图像压缩格式进行图像编码。
基于以上设计,本公开实施例支持通过元数据信息控制这种图像压缩格式兼容的视频编码标准,比如兼容VVC,由于VVC拥有更高的压缩效率,所以这种图像压缩格式同样具备较高的压缩效率,因此基于这种图像压缩格式进行图像编码,在确保图像画质和用户体验的前提下,能够节省存储空间和图像传输的带宽成本,适用于在大规模图像压缩场景。另外,除了VVC之外,这种图像压缩格式还可扩展性地兼容比VVC更先进的视频编码标准。
图4是根据一示例性实施例示出的一种图像解码方法的流程图,如图4所示,该图像解码方法应用于电子设备中,比如图1所示的解码设备。该图像解码方法包括以下步骤:
在401中,解码设备获取基于目标图像压缩格式编码得到的编码图像。
在一些实施例中,编码设备为服务器,解码设备为终端,比如移动终端。另外,编码设备也可作为解码设备,解码设备也可作为编码设备使用,本公开对此不作限定。
示例性地,如图5所示,作为编码设备的服务器侧包括后端媒体处理服务和业务后端。移动终端侧包括图像库服务。其中,后端媒体处理服务在原有的图像压缩格式的基础上,调用KVIF编码器再额外转出一路KVIF图像;而业务后端负责下发KVIF图像的URL(Uniform Resource Locator,统一资源定位器)到移动终端侧;而图像库服务负责调用KVIF解码器进行解码并展示KVIF图像,下面对后端媒体处理服务和业务后端的功能进行详述。
本公开实施例改造了前述的后端媒体处理服务,使得后端媒体处理服务可以调用KVIF编码器对图像进行压缩,转码成KVIF图像。其中,KVIF编码器由基于VVC的编码器改造而来,利用了VVC标准帧内预测技术,基于编码性价比对帧内预测模式、编码工具和帧内预测快速算法(简称帧内预测算法)进行筛选组合,详见后续步骤602,得到了压缩效率和编码速度都具有卓越性能的KVIF编码器。
本公开实施例还设置了业务后端的下发策略,是否下发KVIF图像细化到场景+图像分辨率的粒度,比如图集、封面下各分辨率采用独立下发开关进行控制,而具体场景下的下发开关是否生效,以移动端监控指标判断。示例性地,移动端监控指标包括但不限于:带宽成本、图像QoS(Quality of Service,服务质量)、展示量、天窗率、首屏展示耗时,下载量、下载耗时、下载成功率、解码量、解码耗时、解码成功率,图像平均大小等。如果KVIF图像的下发开关生效,则在HEIF被调用之前,优先调用KVIF;否则,以下发HEIF图像作为降级策略。
本公开实施例改造了前述的图像库服务,使得图像库服务可以调用KVIF解码器对图像进行解码,KVIF解码器由基于VVC的解码器改造而来,能够在移动终端展示KVIF图像。
在402中,解码设备对编码图像进行解码,得到原始图像。
本公开实施例提出了一种新的图像压缩格式,并基于这种图像压缩格式进行图像编码。详细来说,定义了这种图像压缩格式的元数据信息,该元数据信息包括两类元数据;一类元数据用于指示采用这种图像压缩格式进行图像编码;另一类元数据包括NAL单元数据,其中,NAL单元数据中包括一个新的参数集,这个参数集中包括两个变量,一个变量用于指示兼容的视频编码标准的版本号,另一个变量用于指示采用这种图像压缩格式进行图像编码。
基于以上设计,本公开实施例支持通过元数据信息控制这种图像压缩格式兼容的视频编码标准,比如兼容VVC,由于VVC拥有更高的压缩效率,所以这种图像压缩格式同样具备较高的压缩效率,因此基于这种图像压缩格式进行图像编码,在确保图像画质和用户体验的前提下,能够节省存储空间和图像传输的带宽成本,适用于在大规模图像压缩场景。另外,除了VVC之外,这种图像压缩格式还可扩展性地兼容比VVC更先进的视频编码标准。
上述图3和图4所示仅为本公开的基本流程,下面基于一种具体实现方式,来对本公开提供的方案进行进一步阐述,图6是根据一示例性实施例示出的一种图像编解码方法的流程图,如图6所示,以编码设备和解码设备之间的交互为例,该图像编解码方法包括以下步骤:
在601中,编码设备获取待处理的原始图像。
此步骤可以参考前述步骤301,此处不再赘述。
在602中,编码设备基于目标图像压缩格式对原始图像进行编码,得到编码图像。
在本公开实施例中,编码设备调用KVIF编码器,基于目标图像压缩格式对原始图像进行编码,得到编码图像。KVIF编码器包括多种(比如67种)帧内预测模式和多种编码工具,而每种编码工具又进一步包括多个帧内预测快速算法(在本文中也称帧内预测算法)。
其中,帧内预测技术是指利用图像中相邻像素之间的相似性或者关联性,使用当前图像中己编码的相邻像素预测当前像素,从而达到去除空间冗余的目的,得到的预测残差将经过后续的变换、量化和熵编码等模块进一步处理,生成最终的码流。
VVC使用的帧内预测模式从HEVC使用的35种扩展到67种,包括HEVC原有的帧内预测模式、VVC中新出现的帧内预测模式、DC模式和Planar模式。DC模式适用于大面积平坦区域;Planer模式适用于像素值缓慢变化的区域,其核心思想是通过使用重建像素的线性插值来预测当前待编码的像素。
另外,为了提高帧内预测模式的性能,VVC使用的帧内预测模式相比HEVC,增加了多种高效编码工具,包括IBC(Intra Block Copy,帧内块复制)、PDPC(Position Dependentintra Prediction Combination,位置相关的组合帧内预测)、CCLM(Cross ComponentLinear Model intra prediction,跨亮度色度的线性模型帧内预测)、MRL(MultipleReference Line intra prediction,多参考行帧内预测)、ISP(Intra Sub-Partition,帧内预测子块划分)、MIP(Matrix weighted Intra Prediction,矩阵加权平均的帧内预测)、LFNST(Low-Frequency Non-Separable Transform,低频不可分离变换)等。
在一些实施例中,本公开实施例提出了一种针对图像压缩的QP调整算法。
为了进一步提升KVIF图像的画质和压缩率,在KVIF编码器内部设计了针对图像压缩的QP调整算法。该算法具备可扩展性,即除了KVIF编码器可以使用,其他视频编码标准的编码器也可以使用,是一种可扩展的图像压缩优化方法。该方法使用QP控制图像质量和压缩率。示例性地,本公开实施例基于图像的SATD值对QP进行调整,比如通过如下计算公式获取新的QP值,以新的QP值替代原始的QP,作为编码过程使用的量化参数。
New QP=QP*c0*satd1-qcompress
其中,c0为给定的超参数,在本文中也称第一数值;qcompress同为给定的超参数,在本文中也称第二数值,且0<qcompress<1,用于表征人眼对图像中平滑区域的敏感性。这是因为人眼在处理图像时,会对连接在一起的区域以及颜色或灰度值相似的区域产生更强的感知。QP为原始的量化参数值;New QP值为新的量化参数值,其与SATD值是正相关关系。详细来说,SATD值较小代表图像越平滑,此时New QP值也会较小,编码图像得到的压缩率较低,但图像质量也更高,这样对于平滑图像可以保证其画质。相反,对于SATD值较大的图像,New QP值也会较大,编码图像得到的压缩率也会更高。
在得到新的量化参数值后,便可以基于新的量化参数值进行图像编码。在另一些实施例中,本公开实施例还提出了一种针对KVIF编码器优化的方法。
由于VVC比HEVC增加了帧内预测模式和编码工具,虽然有效提高了压缩效率,但同时也会大幅度增加编码复杂度。为此,本公开实施例提出一种针对KVIF编码器的优化方法,目的是大幅度降低基于KVIF进行图像编码的编码复杂度。其中,编码复杂度过高会消耗较多的机器资源,编码时间过长也会导致任务堆积。
针对编码器的优化,本公开实施例提出通过搭建大规模测试框架,对工具和算法进行调整,定义了工具和算法的性价比指标(也被称为编码性价比),提出了针对KVIF编码器的快速算法优化,有效提升了编码速度。
示例性地,KVIF编码器的优化流程包括但不限于如下步骤:
1、整理了KVIF编码器中工具参数集和算法参数集。
2、搭建大规模测试框架来测试这些工具和算法的编码复杂度和压缩效率。
3、建立了结果收集分析机制,获取这些工具和算法的性价比指标,并据此调整工具和算法。
4、针对KVIF编码器的快速算法优化。
简言之,在编码过程中,首先获取每种编码工具的编码性价比,进而基于每种编码工具的编码性价比,确定用于图像编码的编码工具;以及,获取每种帧内预测算法的编码性价比;基于每种帧内预测算法的编码性价比,用于图像编码的帧内预测算法。接下来,基于每种帧内预测模式对应的SATD值,在多种帧内预测模式中确定最佳帧内预测模式。最后,基于确定的编码工具、确定的帧内预测算法和最佳帧内预测模式,对原始图像进行编码,得到编码图像。
针对步骤1,不同工具和算法的编码复杂度和压缩效率不同。例如,有些工具的编码复杂度很高,压缩效率很低,这种称为低性价比工具。而有些工具的编码复杂度很低,压缩效率很高,这种称为高性价比工具。为了在尽量不损失压缩效率的前提下降低编码复杂度,整理了KVIF编码器的工具以及算法。
针对步骤2,如果对每种工具和算法进行性价比测试,会有较大的人力消耗,所以搭建了大规模测试框架,可以一次性对所有工具和算法进行性价比测试,得到所有工具和算法的编码复杂度和压缩效率,据此得到每个工具和算法的性价比指标,即编码性价比。
以工具为例,编码复杂度是指,使用该工具增加的编码耗时在整体编码耗时中的百分比占比。在一些实施例中,前述获取每种编码工具的编码性价比,可以采用如下方式:
对于任一种编码工具,获取该种编码工具的编码复杂度和压缩效率;将该种编码工具的压缩效率与编码复杂度之比,作为该种编码工具的编码性价比。
示例性地,假设A工具的编码复杂度为t%,压缩效率为a%,则A工具的性价比指标=a/t。例如,如果MRL的编码复杂度为3.5%(打开MRL会比关闭MRL多3.5%的编码时间),MRL的压缩效率为0.5%(在保持相同PSNR下,打开MRL会比关闭MRL提升0.5%的压缩率,即压缩后的文件大小减少0.5%),则MRL的性价比指标为0.5/3.5=1/7。
针对步骤3,在计算得到每个工具和算法的编码性价比之后,接下来会对这些工具和算法按照编码性价比进行调整。在一些实施例中,基于每种编码工具的编码性价比,确定用于图像编码的编码工具,可以采用如下方式:
获取性价比阈值T;对于任一种编码工具,响应于该种编码工具的编码性价比大于性价比阈值T,将该种编码工具确定为用于图像编码的编码工具。换言之,如果一个工具的编码性比价大于T,则将其开启使用;如果一个工具的编码性比价小于T,则将其关闭。
通过上述方式,可以在尽量不损失压缩性能的前提下,关闭高编码复杂度的工具,提高编码速度。例如,在实验中,设置阈值T=1/50,ISP和IBC的编码性价比均较低,小于T,则将这些性价比过低的工具关闭,以提升编码速度。
需要说明的是,对于算法的编码性价比计算,以及基于每种算法的编码性价比确定用于图像编码的算法,与上述工具的处理方式类似,此处不再赘述。
针对步骤4,在完成工具和算法的调整之后,接着做针对图片编码器的快速算法优化。
示例性地,VVC中的帧内预测流程可以分为如下两步:
第一步、获取各种帧内预测模式对应的SATD值,并根据获取到的SATD值进行排序,得到M种候选模式。其中,M为正整数。
第二步、对筛选出来的候选模式进行RDO计算,筛选出RDcost最小的模式,作为最终的帧内预测模式。
总结来说,首先对每种帧内预测模式对应的SATD值进行排序,得到排序结果;之后基于排序结果,在多种帧内预测模式中筛选出M种候选模式;最终,对M种候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到用于图像编码的最佳帧内预测模式。
在一些实施例中,通过如下几种快速算法对筛选出来的M种候选模式进行剪枝。
方式一、将SATD值最小的候选模式作为最佳候选模式,并将最佳候选模式对应的SATD值作为最佳SATD值;在其他候选模式中,响应于当前候选模式对应的SATD值大于c1与最佳SATD值之积,删除当前候选模式;对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到最佳帧内预测模式。
换言之,该种快速算法将SATD值最小的候选模式设为最佳候选模式,它对应的SATD值记为best SATD值。接下来,将其他候选模式的SATD值与best SATD值进行对比;如果候选模式的SATD>c1*best SATD,则表明该候选模式残差较大,剔除该候选模式,即该候选模式不做RDO计算,减少编码复杂度。
其中,c1在本文中也被称为第三数值,具体取值可以为1.05、1.1等。
方式二、获取M种候选模式对应的SATD值的平均值和标准差;在其他候选模式中,响应于当前候选模式对应的SATD值大于平均值与标准差之和,删除当前候选模式;对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到最佳帧内预测模式。
换言之,该种快速算法计算全部候选模式对应的SATD值的平均值mean SATD,全部候选模式对应的SATD值的标准差记为std SATD;如果候选模式的SATD>mean SATD+stdSATD,则表明该候选模式残差较大,剔除该候选模式。
方式三、在M种候选模式中,对于第i种候选模式,响应于第i种候选模式的率失真代价满足预设条件,将第i种候选模式的率失真代价作为最佳率失真代价;其中,预设条件是指,第i种候选模式的率失真代价在做完率失真优化计算的候选模式中是最小的;对于第j种候选模式,响应于第j种候选模式的率失真代价大于c2与最佳率失真代价之积,删除第j种候选模式以及与第j种候选模式相似的候选模式;对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到最佳帧内预测模式。
在一些实施例中,相似的候选模式是指与第j种候选模式的帧内预测角度之差位于目标角度范围内的模式。例如,当第j种候选模式是竖直方向预测时(比如帧内预测模式50),与其相似的候选模式可以为偏竖直方向模式(比如帧内预测模式46-54)。
另外,i和j为正整数;c2在本文中也被称为第四数值,具体取值可以为1.05、1.1等。
换言之,对于M种候选模式中的任一种候选模式,如果该候选模式是bad mode,则剔除该候选模式,不做RDO计算;否则,进行RDO计算。如果该候选模式的RDcost是做完RDO计算的候选模式中最小的,则将其记为best RDcost。如果该候选模式的RDcost>c2*bestRDcost,则该候选模式以及与其相似的候选模式记为bad mode。
在603中,编码设备将基于目标图像压缩格式编码得到的编码图像发送给解码设备。
在本公开实施例中,编码设备既可以通过有线网络将编码图像发送给解码设备,也可以通过无线网络将编码图像发送给解码设备,本公开对此不作限定。
在604中,解码设备在接收到编码图像后,对编码图像进行解码得到原始图像,并展示解码后得到的原始图像。
由于VVC比HEVC增加了帧内预测模式和解码工具,虽然有效提高了压缩效率,但同时也会大幅度增加解码复杂度。为此,本公开实施例还提出了一种针对KVIF解码器的优化方法,目的是大幅度降低解码复杂度。其中,解码复杂度过高会导致用户在解码侧不能及时看到图像,导致用户体验下降。
针对解码器的优化,本公开实施例通过解码分析工具来分析不同帧内预测模式和解码工具的解码复杂度,以此来调整模式和工具。另外,本公开实施例还提出了考虑解码复杂度的率失真决策,该决策有利于选择解码复杂度低的模式,提升解码速度。
示例性地,KVIF解码器的优化流程包括但不限于如下步骤:
a、通过解码分析工具,统计不同帧内预测模式和解码工具的解码耗时以及解码处理的系数块面积大小。
b、分析不同帧内预测模式和解码工具的解码复杂度,调整模式和工具。
c、实现图像专用的快速解码率失真决策,即提出了考虑解码复杂度的率失真决策。
简言之,在解码过程中,首先获取每种帧内预测模式的解码复杂度,并基于每种帧内预测模式的解码复杂度,确定用于图像解码的帧内预测模式;以及,获取每种解码工具的解码复杂度,并基于每种解码工具的解码复杂度,确定用于图像解码的解码工具;进而,基于确定的帧内预测模式和确定解码工具,对编码图像进行解码,得到原始图像。
针对步骤a,在解码过程中有多种帧内预测模式可以选择,比如包括前述的67种帧内预测模式和MIP模式。这些模式在解码侧的解码复杂度有很大不同,为了分析KVIF的解码复杂度,提出了解码分析工具,该工具可以统计不同模式的解码耗时以及解码处理的系数块面积大小。即,使用该工具可以统计luma和chroma分量下不同模式的解码耗时以及解码处理的系数块面积大小,计算得到每个模式的解码复杂度。其中,系数块面积大小以像素为单位,不区分0系数块和非0系数块。在一些实施例中,获取每种帧内预测模式的解码复杂度,可以采用如下方式:
在前述的67种帧内预测模式和MIP模式中,对于任一种帧内预测模式,获取该模式的解码耗时和使用该模式进行解码处理的系数块面积,进而将该模式的解码耗时与系数块面积之比,作为该模式的解码复杂度。
示例性地,假设B模式的解码耗时为t1 us,解码处理的系数块面积为m,则B模式的解码复杂度=t1/m。例如,对于一张图像,使用DC模式的解码耗时为200us(该图像中使用DC模式的所有系数块解码时间总和),DC模式解码处理的系数块面积为40000像素(该图像中使用DC模式的所有系数块面积之和),那么DC模式的解码复杂度为200/40000=1/200。
针对步骤2,基于每种帧内预测模式的解码复杂度,确定用于图像解码的帧内预测模式,可以采用如下方式:
获取第一解码复杂度阈值T1和第二解码复杂度阈值T2;其中,第一解码复杂度阈值T1小于第二解码复杂度阈值T2;对于任一种帧内预测模式,响应于该模式的解码复杂度大于第二解码复杂度阈值T2,删除该模式;响应于帧内预测模式的解码复杂度大于第一解码复杂度阈值T1且小于第二解码复杂度阈值T2,降低该模式被选中用于解码的次数;最终,在未被删除的帧内预测模式中,确定用于图像解码的帧内预测模式。
换言之,本公开实施例会设置两个解码复杂度阈值,当一个模式的解码复杂度大于T2时,表明其解码复杂度极高,将其直接关闭。当一个模式的解码复杂度大于T1且小于T2时,表明其解码复杂度较高,使用快速解码率失真决策,降低选择该模式用于解码的次数,以提升解码速度。
其中,对于67种帧内预测模式和MIP模式,解码复杂度较低的模式为DC模式、MIP模式、水平方向预测模式(比如帧内预测模式18)和竖直方向预测模式(比如帧内预测模式50)。而解码复杂较高的模式通常为Planar模式和普通角度预测模式。如果直接删除Planar模式或普通角度预测模式,压缩性能会有很大的损失。为了保持压缩性能并且提升解码速度,本公开实施例还提出了一种考虑了解码复杂度的率失真决策,详见后文描述。
需要说明的是,对于工具的解码复杂度计算,以及基于每种工具的解码复杂度确定用于图像解码的工具,与上述模式的处理方式类似,此处不再赘述。
另外,以T1=1/80和T2=1/40为例,LFNST的解码复杂度大于T2,表明其解码复杂度极高,为了提升解码速度,会直接关闭该工具。
针对步骤c,为了使得KVIF解码器在率失真决策时选择更多解码复杂度低的模式,本公开实施例通过如下计算公式来计算RDcost:
RDcost1=D+λ*R+c3*k1
其中,k1为解码复杂度,c3为给定的参数。
需要说明的是,如果当前模式的解码复杂度较高,那么计算得到RDcost1值会比原先的RDcost值更大,KVIF解码器会倾向于选择RDcost1值更小的帧内预测模式,从而在文件大小、图像质量和解码复杂度三者之间平衡。另外,采用新的RDcost计算方式,相较于使用前述的RDcost计算方式,KVIF解码器会倾向于选择更多解码复杂度低的模式,从而降低解码耗时。
相应地,前述的在未被删除的帧内预测模式中,确定用于图像解码的帧内预测模式,可以采用如下方式:
获取编码图像的图像文件大小和图像质量损失;在未被删除的帧内预测模式中,对于任一种帧内预测模式,基于图像文件大小、图像质量损失和该模式的解码复杂度,确定该模式的率失真代价;其中,率失真代价小的模式被选中用于解码的概率大于率失真代价大的模式。
综上所述,本公开实施例提供的图像编解码方案,提出了新一代图像压缩格式KVIF,设计了KVIF的封装格式以及定义了KVIF的meta信息。另外,还提出了一种新的参数集KPS,不但支持封装VVC,还可扩展地支持封装比VVC更先进的视频编码标准。另外,得益于VVC相较于HEVC拥有更高的压缩效率,因此KVIF图像相较于HEIF图像拥有更高的压缩效率。另外,本公开实施例还提出了一种以KVIF编码器对图像进行压缩,以KVIF解码器对图像进行解码的方法,使得KVIF图像可以大规模落地。
另外,本公开实施例还提出了一种针对图像压缩的QP调整算法,进一步提升了图像压缩效率和图像画质。另外,对于图像编码耗时的优化,本公开实施例定义了工具和算法的性价比指标,并根据这一性价比指标对工具和算法进行调整,可以快速地将编码耗时降下来,同时保持一定的压缩效率。另外,对于图像编码耗时的优化,本公开实施例还提出了多个剪枝候选模式的快速算法,在不同场景下可以选择不同的算法,有效地降低了编码耗时。另外,对于图像解码耗时的优化,本公开实施例研发了解码分析工具,定义了解码复杂度指标,可以分析不同模式和工具的解码复杂度,并根据解码复杂度对模式和工具进行调整,有效地降低了解码耗时。另外,对于图像解码耗时的优化,本公开实施例一种考虑了解码复杂度的率失真决策,既保持了压缩效率又降低了解码耗时,是一种权衡压缩效率和解码复杂度的有效方法。
示例性地,由于KVIF是一种压缩率更高的新型图像压缩格式,这使得KVIF在图集和封面的业务场景下能够替代HEIF顺利落地,提升了15%-20%的压缩率。另外,针对图像压缩的QP调整算法提升了3%的压缩率,并且解决了个别KVIF图像比HEIF图像在文件大小上更大或个别KVIF在图像画质上过差的问题。另外,本公开实施例提出的针对KVIF编解码器优化的方法,能够大幅度降低基于KVIF进行图像编解码的编码复杂度和解码复杂度。另外,针对KVIF编码侧,720p图像的平均编码耗时从约7.5s降低至约2s,降低了约75%编码时间,即平均编码速度从约0.13fps(刷新率)提升至约0.5fps,解码速度提升了约2.85倍。另外,针对KVIF解码侧,双线程平均解码耗时从约85ms降低至约55ms,降低了约35%解码时间,即平均解码速度从约12fps提升至约18fps,解码速度提升了约50%。总结来讲,KVIF编码耗时从HEIF的20倍降低为2-4倍,KVIF双线程解码耗时从HEIF的1.5倍降低为1-1.1倍。
图7是根据一示例性实施例示出的一种图像编码装置的框图。参照图7,该装置包括:
第一获取模块701,被配置为获取待处理的原始图像;
编码模块702,被配置为基于目标图像压缩格式对原始图像进行编码,得到编码图像;
其中,所述编码图像的图像文件中包括元数据信息,所述元数据信息包括第一类元数据和第二类元数据;所述第一类元数据用于指示采用所述目标图像压缩格式进行图像编码;所述第二类元数据包括NAL单元数据,所述NAL单元数据中包括指定参数集,所述指定参数集中包括第一变量和第二变量;所述第一变量用于指示兼容的视频编码标准的版本号,所述第二变量用于指示采用所述目标图像压缩格式进行图像编码。
本公开实施例提出了一种新的图像压缩格式,并基于这种图像压缩格式进行图像编码。详细来说,定义了这种图像压缩格式的元数据信息,该元数据信息包括两类元数据;一类元数据用于指示采用这种图像压缩格式进行图像编码;另一类元数据包括NAL单元数据,其中,NAL单元数据中包括一个新的参数集,这个参数集中包括两个变量,一个变量用于指示兼容的视频编码标准的版本号,另一个变量用于指示采用这种图像压缩格式进行图像编码。
基于以上设计,本公开实施例支持通过元数据信息控制这种图像压缩格式兼容的视频编码标准,比如兼容VVC,由于VVC拥有更高的压缩效率,所以这种图像压缩格式同样具备较高的压缩效率,因此基于这种图像压缩格式进行图像编码,在确保图像画质和用户体验的前提下,能够节省存储空间和图像传输的带宽成本,适用于在大规模图像压缩场景。另外,除了VVC之外,这种图像压缩格式还可扩展性地兼容比VVC更先进的视频编码标准。
在一些实施例中,所述第二类元数据包括解码控制数据,所述解码控制数据中包括所述NAL单元数据,所述解码控制数据给出了对所述NAL单元数据进行处理的方式。
在一些实施例中,编码模块702,被配置为:
调用编码器,基于所述目标图像压缩格式对所述原始图像进行编码,得到所述编码图像;
其中,所述编码图像为具有所述目标图像压缩格式的图像文件;所述编码器包括多种帧内预测模式和多种编码工具,所述多种编码工具中的每种编码工具包括多个帧内预测算法。
在一些实施例中,编码模块702,被配置为:
基于原始的量化参数值、第一数值、第二数值和所述原始图像的SATD值,确定新的量化参数值;
调用编码器,基于所述新的量化参数值对所述原始图像进行编码,得到所述编码图像;
其中,所述新的量化参数值与所述SATD值呈正相关;所述第二数值用于表征人眼对图像中平滑区域的敏感性。
在一些实施例中,编码模块702,被配置为:
获取每种编码工具的编码性价比;基于每种编码工具的编码性价比,确定用于图像编码的编码工具;
获取每种帧内预测算法的编码性价比;基于每种帧内预测算法的编码性价比,用于图像编码的帧内预测算法;
基于每种帧内预测模式对应的SATD值,在所述多种帧内预测模式中确定最佳帧内预测模式;
基于确定的编码工具、帧内预测算法和所述最佳帧内预测模式,对所述原始图像进行编码,得到所述编码图像。
在一些实施例中,编码模块702,被配置为:
对于任一种编码工具,获取所述编码工具的编码复杂度和压缩效率;
将所述编码工具的压缩效率与编码复杂度之比,作为所述编码工具的编码性价比。
在一些实施例中,编码模块702,被配置为:
获取性价比阈值;
对于任一种编码工具,响应于所述编码工具的编码性价比大于所述性价比阈值,将所述编码工具确定为用于图像编码的编码工具。
在一些实施例中,编码模块702,被配置为:
对每种帧内预测模式对应的SATD值进行排序,得到排序结果;
基于所述排序结果,在所述多种帧内预测模式中筛选出M种候选模式;M为正整数;
对所述M种候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
在一些实施例中,编码模块702,被配置为:
将SATD值最小的候选模式作为最佳候选模式,将所述最佳候选模式对应的SATD值作为最佳SATD值;
在其他候选模式中,响应于当前候选模式对应的SATD值大于第三数值与所述最佳SATD值之积,删除当前候选模式;
对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
在一些实施例中,编码模块702,被配置为:
获取所述M种候选模式对应的SATD值的平均值和标准差;
在其他候选模式中,响应于当前候选模式对应的SATD值大于所述平均值与所述标准差之和,删除当前候选模式;
对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
在一些实施例中,编码模块702,被配置为:
对于所述M种候选模式中的第i种候选模式,响应于所述第i种候选模式的率失真代价满足预设条件,将所述第i种候选模式的率失真代价作为最佳率失真代价;
其中,所述预设条件是指,所述第i种候选模式的率失真代价在做完率失真优化计算的候选模式中是最小的;
对于所述M种候选模式中的第j种候选模式,响应于所述第j种候选模式的率失真代价大于第四数值与所述最佳率失真代价之积,删除所述第j种候选模式以及与所述第j种候选模式相似的候选模式;其中,i和j均为正整数;
对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
在一些实施例中,所述相似的候选模式是指与所述第j种候选模式的帧内预测角度之差位于目标角度范围内的模式。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再赘述。
图8是根据一示例性实施例示出的一种图像解码装置的框图。参照图8,该装置包括:
第二获取模块801,被配置为获取基于目标图像压缩格式编码得到的编码图像;
其中,所述编码图像的图像文件中包括元数据信息,所述元数据信息包括第一类元数据和第二类元数据;所述第一类元数据用于指示采用所述目标图像压缩格式进行图像编码;所述第二类元数据包括NAL单元数据,所述NAL单元数据中包括指定参数集,所述指定参数集中包括第一变量和第二变量;所述第一变量用于指示兼容的视频编码标准的版本号,所述第二变量用于指示采用所述目标图像压缩格式进行图像编码;
解码模块802,被配置为对所述编码图像进行解码,得到原始图像。
本公开实施例提出了一种新的图像压缩格式,并基于这种图像压缩格式进行图像编码。详细来说,定义了这种图像压缩格式的元数据信息,该元数据信息包括两类元数据;一类元数据用于指示采用这种图像压缩格式进行图像编码;另一类元数据包括NAL单元数据,其中,NAL单元数据中包括一个新的参数集,这个参数集中包括两个变量,一个变量用于指示兼容的视频编码标准的版本号,另一个变量用于指示采用这种图像压缩格式进行图像编码。
基于以上设计,本公开实施例支持通过元数据信息控制这种图像压缩格式兼容的视频编码标准,比如兼容VVC,由于VVC拥有更高的压缩效率,所以这种图像压缩格式同样具备较高的压缩效率,因此基于这种图像压缩格式进行图像编码,在确保图像画质和用户体验的前提下,能够节省存储空间和图像传输的带宽成本,适用于在大规模图像压缩场景。另外,除了VVC之外,这种图像压缩格式还可扩展性地兼容比VVC更先进的视频编码标准。
在一些实施例中,所述第二类元数据包括解码控制数据,所述解码控制数据中包括所述NAL单元数据,所述解码控制数据给出了对所述NAL单元数据进行处理的方式。
在一些实施例中,解码模块802,被配置为:
调用解码器,对所述编码图像进行解码,得到所述原始图像;
其中,所述解码器包括多种帧内预测模式和多种解码工具。
在一些实施例中,解码模块802,被配置为:
获取每种帧内预测模式的解码复杂度;基于每种帧内预测模式的解码复杂度,确定用于图像解码的帧内预测模式;
获取每种解码工具的解码复杂度;基于每种解码工具的解码复杂度,确定用于图像解码的解码工具;
基于确定的帧内预测模式和解码工具,对所述编码图像进行解码,得到所述原始图像。
在一些实施例中,解码模块802,被配置为:
在所述多种帧内预测模式中,对于任一种帧内预测模式,获取所述帧内预测模式的解码耗时;
获取使用所述帧内预测模式进行解码处理的系数块面积;
将所述解码耗时与所述系数块面积之比,作为所述帧内预测模式的解码复杂度。
在一些实施例中,解码模块802,被配置为:
获取第一解码复杂度阈值和第二解码复杂度阈值;其中,所述第一解码复杂度阈值小于所述第二解码复杂度阈值;
在所述多种帧内预测模式中,对于任一种帧内预测模式,响应于所述帧内预测模式的解码复杂度大于所述第二解码复杂度阈值,删除所述帧内预测模式;
响应于所述帧内预测模式的解码复杂度大于所述第一解码复杂度阈值且小于所述第二解码复杂度阈值,降低所述帧内预测模式被选中用于解码的次数;
在未被删除的帧内预测模式中,确定用于图像解码的帧内预测模式。
在一些实施例中,解码模块802,被配置为:
获取所述编码图像的图像文件大小和图像质量损失;
在未被删除的帧内预测模式中,对于任一种帧内预测模式,基于所述图像文件大小、所述图像质量损失和所述帧内预测模式的解码复杂度,确定所述帧内预测模式的率失真代价;
其中,率失真代价小的帧内预测模式被选中用于解码的概率大于率失真代价大的帧内预测模式。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再赘述。
需要说明的是,上述实施例提供的图像编码装置在进行图像编码、图像解码装置在进行图像解码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将电子设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图像编码装置与图像编码方法实施例,上述实施例提供的图像解码装置与图像解码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一些实施例中,还提供了一种电子设备,该电子设备包括:
一个或多个处理器;
用于存储所述处理器可执行程序代码的存储器;
其中,所述处理器被配置为执行该程序代码,以实现上述图像编码方法或图像解码方法。
其中,响应于电子设备被提供为终端,图9是根据一示例性实施例示出的一种终端的框图。
通常,计算机设备900包括有:处理器901和存储器902。
处理器901包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-ProgrammableGate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。或者,处理器901包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。在一些实施例中,处理器901还包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902包括一个或多个计算机可读存储介质,该计算机可读存储介质是非暂态的。存储器902还包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器901所执行以实现本公开中方法实施例提供的图像编码方法或图像解码方法。
在一些实施例中,计算机设备900还包括:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间通过总线或信号线相连。各个外围设备通过总线、信号线或电路板与外围设备接口903相连。外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907和电源908中的至少一种。
外围设备接口903被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在另一些实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个在单独的芯片或电路板上实现,本公开对此不作限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。在一些实施例中,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不作限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI包括图形、文本、图标、视频及其它们的任意组合。在显示屏905是触摸显示屏的情况下,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号作为控制信号输入至处理器901进行处理。此时,显示屏905还用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905为一个,设置在计算机设备900的前面板;在另一些实施例中,显示屏905为至少两个,分别设置在计算机设备900的不同表面或呈折叠设计;在另一些实施例中,显示屏905是柔性显示屏,设置在计算机设备900的弯曲表面上或折叠面上。或者,显示屏905设置成非矩形的不规则图形,也即异形屏。显示屏905采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。在一些实施例中,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在另一些实施例中,摄像头组件906还包括闪光灯。闪光灯是单色温闪光灯或双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,用于不同色温下的光线补偿。
音频电路907包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风为多个,分别设置在计算机设备900的不同部位。或者,麦克风是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器是传统的薄膜扬声器或压电陶瓷扬声器。在扬声器是压电陶瓷扬声器的情况下,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还包括耳机插孔。
电源908用于为计算机设备900中的各个组件进行供电。电源908是交流电、直流电、一次性电池或可充电电池。在电源908包括可充电电池的情况下,该可充电电池是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还用于支持快充技术。
本领域技术人员可以理解,图9中示出的结构并不构成对计算机设备900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在另一些实施例中,还提供了另一种电子设备,该电子设备包括:
一个或多个处理器;
用于存储所述处理器可执行程序代码的存储器;
其中,所述处理器被配置为执行该程序代码,以实现上述图像编码方法或图像解码方法。
其中,响应于电子设备被提供为服务器,图10是根据一示例性实施例示出的一种服务器的框图。
服务器1000可因配置或性能不同而产生比较大的差异,包括一个或一个以上处理器(Central Processing Units,CPU)1001和一个或一个以上的存储器1002,其中,所述存储器1002中存储有至少一条程序代码,所述至少一条程序代码由所述处理器1001加载并执行以实现上述各个方法实施例提供的视频生成方法。当然,服务器1000还具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,服务器1000还包括其他用于实现设备功能的部件,在此不做赘述。
在另一些实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器,上述指令由电子设备的处理器执行以实现上述图像编码方法或图像解码方法。在另一些实施例中,计算机可读存储介质是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在另一些实施例中,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被电子设备的处理器执行时以实现上述图像编码方法或图像解码方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (15)
1.一种图像编码方法,其特征在于,所述方法包括:
获取待处理的原始图像;
基于目标图像压缩格式对所述原始图像进行编码,得到编码图像;其中,所述编码图像的图像文件中包括元数据信息,所述元数据信息包括第一类元数据和第二类元数据;
所述第一类元数据用于指示采用所述目标图像压缩格式进行图像编码;所述第二类元数据包括网络抽象层NAL单元数据,所述NAL单元数据中包括指定参数集,所述指定参数集中包括第一变量和第二变量;所述第一变量用于指示兼容的视频编码标准的版本号,所述第二变量用于指示采用所述目标图像压缩格式进行图像编码。
2.根据权利要求1所述的图像编码方法,其特征在于,所述基于目标图像压缩格式对所述原始图像进行编码,得到编码图像,包括:
调用编码器,基于所述目标图像压缩格式对所述原始图像进行编码,得到所述编码图像;
其中,所述编码图像为具有所述目标图像压缩格式的图像文件;所述编码器包括多种帧内预测模式和多种编码工具,所述多种编码工具中的每种编码工具包括多个帧内预测算法。
3.根据权利要求2所述的图像编码方法,其特征在于,所述调用编码器,基于所述目标图像压缩格式对所述原始图像进行编码,得到所述编码图像,包括:
获取每种编码工具的编码性价比;基于每种编码工具的编码性价比,确定用于图像编码的编码工具;
获取每种帧内预测算法的编码性价比;基于每种帧内预测算法的编码性价比,用于图像编码的帧内预测算法;
基于每种帧内预测模式对应的残差变换绝对值和SATD值,在所述多种帧内预测模式中确定最佳帧内预测模式;
基于确定的编码工具、帧内预测算法和所述最佳帧内预测模式,对所述原始图像进行编码,得到所述编码图像。
4.根据权利要求3所述的图像编码方法,其特征在于,所述基于每种帧内预测模式对应的残差变换绝对值和SATD值,在所述多种帧内预测模式中确定最佳帧内预测模式,包括:
对每种帧内预测模式对应的SATD值进行排序,得到排序结果;
基于所述排序结果,在所述多种帧内预测模式中筛选出M种候选模式;M为正整数;
对所述M种候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
5.根据权利要求4所述的图像编码方法,其特征在于,所述对所述M种候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式,包括:
将SATD值最小的候选模式作为最佳候选模式,将所述最佳候选模式对应的SATD值作为最佳SATD值;
在其他候选模式中,响应于当前候选模式对应的SATD值大于第三数值与所述最佳SATD值之积,删除当前候选模式;
对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
6.根据权利要求4所述的图像编码方法,其特征在于,所述对所述M种候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式,包括:
对于所述M种候选模式中的第i种候选模式,响应于所述第i种候选模式的率失真代价满足预设条件,将所述第i种候选模式的率失真代价作为最佳率失真代价;
其中,所述预设条件是指,所述第i种候选模式的率失真代价在做完率失真优化计算的候选模式中是最小的;
对于所述M种候选模式中的第j种候选模式,响应于所述第j种候选模式的率失真代价大于第四数值与所述最佳率失真代价之积,删除所述第j种候选模式以及与所述第j种候选模式相似的候选模式;其中,i和j均为正整数;
对剩余的候选模式进行率失真优化计算,并基于得到的计算结果确定率失真代价最小的模式,得到所述最佳帧内预测模式。
7.一种图像解码方法,其特征在于,所述方法包括:
获取基于目标图像压缩格式编码得到的编码图像;
其中,所述编码图像的图像文件中包括元数据信息,所述元数据信息包括第一类元数据和第二类元数据;所述第一类元数据用于指示采用所述目标图像压缩格式进行图像编码;所述第二类元数据包括网络抽象层NAL单元数据,所述NAL单元数据中包括指定参数集,所述指定参数集中包括第一变量和第二变量;所述第一变量用于指示兼容的视频编码标准的版本号,所述第二变量用于指示采用所述目标图像压缩格式进行图像编码;
对所述编码图像进行解码,得到原始图像。
8.根据权利要求7所述的图像解码方法,其特征在于,所述对所述编码图像进行解码,得到原始图像,包括:
调用解码器,对所述编码图像进行解码,得到所述原始图像;
其中,所述解码器包括多种帧内预测模式和多种解码工具。
9.根据权利要求8所述的图像解码方法,其特征在于,所述调用解码器,对所述解码图像进行解码,得到所述原始图像,包括:
获取每种帧内预测模式的解码复杂度;基于每种帧内预测模式的解码复杂度,确定用于图像解码的帧内预测模式;
获取每种解码工具的解码复杂度;基于每种解码工具的解码复杂度,确定用于图像解码的解码工具;
基于确定的帧内预测模式和解码工具,对所述编码图像进行解码,得到所述原始图像。
10.根据权利要求9所述的图像解码方法,其特征在于,所述基于每种帧内预测模式的解码复杂度,确定用于图像解码的帧内预测模式,包括:
获取第一解码复杂度阈值和第二解码复杂度阈值;其中,所述第一解码复杂度阈值小于所述第二解码复杂度阈值;
在所述多种帧内预测模式中,对于任一种帧内预测模式,响应于所述帧内预测模式的解码复杂度大于所述第二解码复杂度阈值,删除所述帧内预测模式;
响应于所述帧内预测模式的解码复杂度大于所述第一解码复杂度阈值且小于所述第二解码复杂度阈值,降低所述帧内预测模式被选中用于解码的次数;
在未被删除的帧内预测模式中,确定用于图像解码的帧内预测模式。
11.根据权利要求10所述的图像解码方法,其特征在于,所述在未被删除的帧内预测模式中,确定用于图像解码的帧内预测模式,包括:
获取所述编码图像的图像文件大小和图像质量损失;
在未被删除的帧内预测模式中,对于任一种帧内预测模式,基于所述图像文件大小、所述图像质量损失和所述帧内预测模式的解码复杂度,确定所述帧内预测模式的率失真代价;
其中,率失真代价小的帧内预测模式被选中用于解码的概率大于率失真代价大的帧内预测模式。
12.一种图像编码装置,其特征在于,所述装置包括:
第一获取模块,被配置为获取待处理的原始图像;
编码模块,被配置为基于目标图像压缩格式对所述原始图像进行编码,得到编码图像;
其中,所述编码图像的图像文件中包括元数据信息,所述元数据信息包括第一类元数据和第二类元数据;所述第一类元数据用于指示采用所述目标图像压缩格式进行图像编码;所述第二类元数据包括网络抽象层NAL单元数据,所述NAL单元数据中包括指定参数集,所述指定参数集中包括第一变量和第二变量;所述第一变量用于指示兼容的视频编码标准的版本号,所述第二变量用于指示采用所述目标图像压缩格式进行图像编码。
13.一种图像解码装置,其特征在于,所述装置包括:
第二获取模块,被配置为获取基于目标图像压缩格式编码得到的编码图像;
其中,所述编码图像的图像文件中包括元数据信息,所述元数据信息包括第一类元数据和第二类元数据;所述第一类元数据用于指示采用所述目标图像压缩格式进行图像编码;所述第二类元数据包括网络抽象层NAL单元数据,所述NAL单元数据中包括指定参数集,所述指定参数集中包括第一变量和第二变量;所述第一变量用于指示兼容的视频编码标准的版本号,所述第二变量用于指示采用所述目标图像压缩格式进行图像编码;
解码模块,被配置为对所述编码图像进行解码,得到原始图像。
14.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
用于存储所述处理器可执行程序代码的存储器;
其中,所述处理器被配置为执行所述程序代码,以实现如权利要求1至6中任一项所述的图像编码方法;或,如权利要求7至11中任一项所述的图像解码方法。
15.一种计算机可读存储介质,其特征在于,在所述计算机可读存储介质中的指令由电子设备的处理器执行的情况下,使得电子设备能够执行如权利要求1至6中任一项所述的图像编码方法;或,如权利要求7至11中任一项所述的图像解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410010042.7A CN117834887A (zh) | 2024-01-03 | 2024-01-03 | 图像编码方法、解码方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410010042.7A CN117834887A (zh) | 2024-01-03 | 2024-01-03 | 图像编码方法、解码方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117834887A true CN117834887A (zh) | 2024-04-05 |
Family
ID=90505662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410010042.7A Pending CN117834887A (zh) | 2024-01-03 | 2024-01-03 | 图像编码方法、解码方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117834887A (zh) |
-
2024
- 2024-01-03 CN CN202410010042.7A patent/CN117834887A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11070799B2 (en) | Encoder, decoder and corresponding methods for intra prediction | |
CN108235036B (zh) | Sao编码方法和设备以及sao解码方法和设备 | |
CN108600752B (zh) | 视频编码方法和设备以及计算机可读存储介质 | |
CN112740696B (zh) | 视频编码和解码 | |
WO2020175893A1 (ko) | Aps 시그널링 기반 비디오 또는 영상 코딩 | |
EP3809705B1 (en) | Motion vector prediction method and device, and codec | |
CN110677649B (zh) | 基于机器学习的去伪影方法、去伪影模型训练方法及装置 | |
US11849109B2 (en) | Image prediction method, apparatus, and system, device, and storage medium | |
CN105594212A (zh) | 用于确定运动矢量的方法及其设备 | |
US11895297B2 (en) | Prediction mode determining method and apparatus, encoding device, and decoding device | |
CN104541510A (zh) | 参考画面列表能够被改变的帧间预测方法及其设备 | |
US11496754B2 (en) | Video encoder, video decoder, and corresponding method of predicting random access pictures | |
KR20220046683A (ko) | 기하학적 파티션 모드를 위한 코딩 프로세스 | |
WO2020143589A1 (zh) | 视频图像解码、编码方法及装置 | |
CN105264890A (zh) | 用于补偿亮度差的层间视频编码方法和设备以及层间视频解码方法和设备 | |
KR20160035502A (ko) | 참조 빈도에 따라 참조 영상 데이터를 제어하는 비디오 부복호화 방법 및 장치 | |
CN105532005B (zh) | 用于层间编码的方法和设备以及用于使用残差预测对视频进行层间解码的方法和设备 | |
CN117834887A (zh) | 图像编码方法、解码方法、装置、电子设备及存储介质 | |
CN115334349A (zh) | 音频处理方法、装置、电子设备及存储介质 | |
CN105340273A (zh) | 用于预测用于层间视频解码的视差矢量的方法以及编码方法和设备 | |
EP3886438A1 (en) | Flag bit context modeling method and device | |
EP3893505A1 (en) | Method and device for determining prediction mode, coding device, and decoding device | |
CN116760986B (zh) | 候选运动矢量生成方法、装置、计算机设备和存储介质 | |
WO2020181540A1 (zh) | 一种视频处理方法、装置、编码设备及解码设备 | |
CN116489352A (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 |