CN113422955B - Heif图像编码方法和解码方法以及编码装置和解码装置 - Google Patents
Heif图像编码方法和解码方法以及编码装置和解码装置 Download PDFInfo
- Publication number
- CN113422955B CN113422955B CN202110667390.8A CN202110667390A CN113422955B CN 113422955 B CN113422955 B CN 113422955B CN 202110667390 A CN202110667390 A CN 202110667390A CN 113422955 B CN113422955 B CN 113422955B
- Authority
- CN
- China
- Prior art keywords
- blocks
- block
- cost value
- final
- base
- 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.)
- Active
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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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
提供了一种HEIF图像编码方法和解码方法以及编码装置和解码装置,所述HEIF图像编码方法包括:将HEIF图像分割为尺寸相同的多个基础区块;通过对所述多个基础区块进行动态分块处理来获得多个最终区块;采用并行方式对所述多个最终区块进行编码以获得HEIF图像的编码数据,其中,通过对所述多个基础区块进行动态分块处理来获得多个最终区块的步骤包括:通过对所述多个基础区块中的每一个基础区块进行预编码来确定所述每一个基础区块的编码代价值;基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块。
Description
技术领域
本申请总体上涉及图像编解码技术,更具体地,涉及一种基于动态分块的HEIF图像编码方法和解码方法以及编码装置和解码装置。
背景技术
高效率图像文件格式(High Efficiency Image File Format,HEIF)是一种基于高效率视频编码(HEVC)的高效率的新一代图像格式,目前被广泛应用于手机等电子设备的图像拍摄和存储中。相对于普通JPEG格式的图像,HEIF图像可节省50%存储空间,并且使用HEIF格式还可减少提升图像质量且减少传输带宽。
在现有技术中,对HEIF图像的编解码过程采用了固定大小的基础分块图像组的方式,具体地,在编码端,通过将图像分割为分辨率一致的矩阵形状的图像组,然后分别采用HEVC的编码方式对每一个分块图像进行编码来对HEIF图像进行编码。相应地,在解码端,通过对每一个分块图像分别进行解码,然后将解码出的分块进行组合来对HEIF图像进行解码。为了优化编解码性能,现有的解决方案是采用优化的HEVC方法对HEIF文件图像组内的各个图像进行处理,具体地,将HEIF图像分割为多个基础分块图像,计算每一个基础分块图像的代价值,选择HEVC编解码过程的代价值最低的方式来对HEIF图像的每一个基础分块图像进行处理。然而,在现有的解决方案对HEIF图像进行解码时,当使用多个CPU对多个HEIF图像的分块进行并行解码时,由于针对每一个分块编码生成的数据量大小不一致,因此,在解码端,数据量大小之间较大的差异将导致每一个CPU的负载不均衡,影响了解码的效率。
因此,需要一种能够避免解码时CPU的负载不均衡且提高HEIF图像解码速度的方法和装置。
发明内容
技术问题
为解决现有技术中的上述及其他缺点,提出了一种基于HEIF图像编码方法和解码方法以及编码装置和解码装置。
技术方案
根据本公开的一种HEIF图像编码方法可包括:将HEIF图像分割为尺寸相同的多个基础区块;通过对所述多个基础区块进行动态分块处理来获得多个最终区块;采用并行方式对所述多个最终区块进行编码以获得HEIF图像的编码数据。在根据本公开的HEIF图像编码方法中,通过对所述多个基础区块进行动态分块处理来获得多个最终区块的步骤可包括:通过对所述多个基础区块中的每一个基础区块进行预编码来确定所述每一个基础区块的编码代价值;基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块。
在根据本公开的HEIF图像编码方法中,编码数据可包括图像基本信息、所述多个最终区块的区块信息和所述多个最终区块的编码信息,其中,所述多个最终区块的所述区块信息包括所述多个最终区块的位置、所述多个最终区块的尺寸、所述多个最终区块的代价值、所述多个最终区块的数量。
在根据本公开的HEIF图像编码方法中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤可包括:将所述每一个基础区块的编码代价值与第一阈值进行比较;当所述多个基础区块中存在编码代价值大于第一阈值的基础区块时,按照至少一种动态分割方法将编码代价值大于第一阈值的基础区块进一步分割为新区块。
在根据本公开的HEIF图像编码方法中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤还可包括:针对每一种动态分割方法,确定每一个新区块的编码代价值;计算每一个新区块以及所有未被进一步分割的基础区块的编码代价值的方差;将所述至少一种动态分割方法中的与最小的所述方差对应的动态分割方法确定为所述至少一个动态分割方法中的最佳动态分割方法。
在根据本公开的HEIF图像编码方法中,确定每一个新区块的编码代价值的步骤可包括:通过对分割后的新区块重新进行预编码来确定分割后的新区块的编码代价值。
在根据本公开的HEIF图像编码方法中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤可包括:将所述每一个基础区块的编码代价值与第二阈值进行比较;当所述多个基础区块中存在编码代价值小于第二阈值的相邻基础区块时,按照至少一种合并方法将编码代价值小于第二阈值的相邻基础区块合并为新区块。
在根据本公开的HEIF图像编码方法中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤还可包括:针对每一种合并方法,确定每一个新区块的编码代价值;计算每一个新区块以及所有未被合并的基础区块的编码代价值的方差;将所述至少一种合并方法中的与最小的所述方差对应的合并方法确定为所述至少一个合并方法中的最佳合并方法。
在根据本公开的HEIF图像编码方法,其中,确定每一个新区块的编码代价值的步骤可包括:将相邻基础区块在合并之前的编码代价值相加来获得相邻基础区块在合并后的新区块的编码代价值。
在根据本公开的HEIF图像编码方法中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤还可包括:对于合并生成的最终区块,将用于合并生成该最终区块的基础区块的区块信息确定为子区块信息,并且将用于合并生成该最终区块的基础区块的子区块信息共同记录为相应的最终区块的区块信息。
在根据本公开的HEIF图像编码方法中,所述编码代价值可以是以下三项中的至少一项的加权和:区块在编码时的CPU占用率、对区块编码产生的压缩数据块大小和对区块编码耗费的编码时间。
在根据本公开的HEIF图像编码方法中,采用并行方式对所述多个最终区块进行编码的步骤可包括:当CPU核的数量大于或等于最终区块的数量时,将一个CPU核用于对一个最终区块进行编码;以及当CPU核的数量小于最终区块的数量时,基于CPU核的数量和每一个最终区块的编码代价值动态分配将由每一个CPU核编码的最终区块。
在根据本公开的HEIF图像编码方法中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤可包括:将所述每一个基础区块的编码代价值与第一阈值和第二阈值进行比较,其中,第一阈值大于第二阈值;当所述多个基础区块中存在编码代价值大于第一阈值的基础区块时,按照至少一种动态分割方法将编码代价值大于第一阈值的基础区块进一步分割为新区块;当所述多个基础区块中存在编码代价值小于第二阈值的相邻基础区块时,按照至少一种合并方法将编码代价值小于第二阈值的相邻基础区块合并为新区块。
在根据本公开的HEIF图像编码方法中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤还可包括:针对动态分割方法和合并方法的每一种组合方案,确定每一个新区块的编码代价值;计算每一个新区块以及所有未被合并或进一步分割的基础区块的编码代价值的方差;从所有组合方案中选择与最小的所述方差对应的组合方案,以确定所述至少一个动态分割方法中的最佳动态分割方法和所述至少一个合并方法中的最佳合并方法。
在根据本公开的HEIF图像编码方法中,针对动态分割方法和合并方法的每一种组合方案,确定每一个新区块的编码代价值的步骤可包括:对于每一种合并方法,将相邻基础区块在合并之前的编码代价值相加来获得相邻基础区块在合并后的新区块的编码代价值;针对每一种动态分割方法,通过对分割后的新区块重新进行预编码来确定分割后的新区块的编码代价值。
根据本公开的一种HEIF图像解码方法可包括:获得HEIF图像的编码数据;从编码数据解析图像基本信息、多个区块的区块信息和所述多个区块的编码信息;并行地对所述多个区块的所述编码信息进行解码来获得所述多个区块;基于所述图像基本信息和所述多个区块的所述区块信息将解码出的所述多个区块进行合并。
在根据本公开的HEIF图像解码方法中,所述多个区块的区块信息可包括所述多个区块的位置、所述多个区块的尺寸、所述多个区块的代价值、所述多个区块的数量。
在根据本公开的HEIF图像解码方法中,并行地对所述多个区块的所述编码信息进行解码来获得多个区块的步骤可包括基于CPU核的数量确定所述多个区块中的每一个区块的编码信息被动态分配的CPU核,其中,当CPU核的数量大于或等于所述多个区块的数量时,将一个CPU核分配为处理一个区块的编码信息;以及当CPU核的数量小于所述多个区块的数量时,基于CPU核的数量和所述每一个区块的编码代价值动态分配将由每一个CPU核处理的区块的编码信息。
在根据本公开的HEIF图像解码方法中,基于CPU核的数量和所述每一个区块的编码代价值动态分配将由每一个CPU核处理的区块的编码信息的步骤可包括:按照至少一种分组方式将所述多个区块的编码信息划分为与CPU核的数量相等的数量个组;根据所述每一个区块的编码代价值计算每一种分组方式生成的组的编码代价值的方差;从所述至少一种分组方式中选择与最小的所述方差对应的分组方式,并根据该分组方式将区块的编码信息动态分配给CPU核。
根据本公开的一种HEIF图像编码装置可包括:分割单元,被配置为将HEIF图像分割为尺寸相同的多个基础区块,并通过对所述多个基础区块进行动态分块处理来获得多个最终区块;编码单元,被配置为采用并行方式对所述多个最终区块进行编码以获得HEIF图像的编码数据。在根据本公开的HEIF图像编码装置中,分割单元可被配置为通过以下操作对所述多个基础区块进行动态分块处理来获得多个最终区块:通过对所述多个基础区块中的每一个基础区块进行预编码来确定所述每一个基础区块的编码代价值;基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块。
在根据本公开的HEIF图像编码装置中,编码数据可包括图像基本信息、所述多个最终区块的区块信息和所述多个最终区块的编码信息,其中,所述多个最终区块的所述区块信息包括所述多个最终区块的位置、所述多个最终区块的尺寸、所述多个最终区块的代价值、所述多个最终区块的数量。
在根据本公开的HEIF图像编码装置中,分割单元可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:将所述每一个基础区块的编码代价值与第一阈值进行比较;当所述多个基础区块中存在编码代价值大于第一阈值的基础区块时,按照至少一种动态分割方法将编码代价值大于第一阈值的基础区块进一步分割为新区块。
在根据本公开的HEIF图像编码装置中,分割单元还可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:针对每一种动态分割方法,确定每一个新区块的编码代价值;计算每一个新区块以及所有未被进一步分割的基础区块的编码代价值的方差;将所述至少一种动态分割方法中的与最小的所述方差对应的动态分割方法确定为所述至少一个动态分割方法中的最佳动态分割方法。
在根据本公开的HEIF图像编码装置中,分割单元被配置为通过以下操作确定每一个新区块的编码代价值:通过对分割后的新区块重新进行预编码来确定分割后的新区块的编码代价值。
在根据本公开的HEIF图像编码装置中,分割单元可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:将所述每一个基础区块的编码代价值与第二阈值进行比较;当所述多个基础区块中存在编码代价值小于第二阈值的相邻基础区块时,按照至少一种合并方法将编码代价值小于第二阈值的相邻基础区块合并为新区块。在根据本公开的HEIF图像编码装置中,分割单元还可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:针对每一种合并方法,确定每一个新区块的编码代价值;计算每一个新区块以及所有未被合并的基础区块的编码代价值的方差;将所述至少一种合并方法中的与最小的所述方差对应的合并方法确定为所述至少一个合并方法中的最佳合并方法。
在根据本公开的HEIF图像编码方法,其中,分割单元被配置为通过以下操作确定每一个新区块的编码代价值:将相邻基础区块在合并之前的编码代价值相加来获得相邻基础区块在合并后的新区块的编码代价值。
在根据本公开的HEIF图像编码方法中,分割单元可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:对于合并生成的最终区块,将用于合并生成该最终区块的基础区块的区块信息确定为子区块信息,并且将用于合并生成该最终区块的基础区块的子区块信息共同记录为相应的最终区块的区块信息。
在根据本公开的HEIF图像编码方法中,所述编码代价值可以是以下三项中的至少一项的加权和:区块在编码时的CPU占用率、对区块编码产生的压缩数据块大小和对区块编码耗费的编码时间。
在根据本公开的HEIF图像编码方法中,编码单元可被配置为通过以下操作采用并行方式对所述多个最终区块进行编码可包括:当CPU核的数量大于或等于最终区块的数量时,将一个CPU核用于对一个最终区块进行编码;以及当CPU核的数量小于最终区块的数量时,基于CPU核的数量和每一个最终区块的编码代价值动态分配将由每一个CPU核编码的最终区块。
在根据本公开的HEIF图像编码装置中,分割单元可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:将所述每一个基础区块的编码代价值与第一阈值和第二阈值进行比较,其中,第一阈值大于第二阈值;当所述多个基础区块中存在编码代价值大于第一阈值的基础区块时,按照至少一种动态分割方法将编码代价值大于第一阈值的基础区块进一步分割为新区块;当所述多个基础区块中存在编码代价值小于第二阈值的相邻基础区块时,按照至少一种合并方法将编码代价值小于第二阈值的相邻基础区块合并为新区块。
在根据本公开的HEIF图像编码装置中,分割单元还可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:针对动态分割方法和合并方法的每一种组合方案,确定每一个新区块的编码代价值;计算每一个新区块以及所有未被合并或进一步分割的基础区块的编码代价值的方差;从所有组合方案中选择与最小的所述方差对应的组合方案,以确定所述至少一个动态分割方法中的最佳动态分割方法和所述至少一个合并方法中的最佳合并方法。
在根据本公开的HEIF图像编码装置中,分割单元可被配置为通过以下操作确定每一个新区块的编码代价值:对于每一种合并方法,将相邻基础区块在合并之前的编码代价值相加来获得相邻基础区块在合并后的新区块的编码代价值;针对每一种动态分割方法,通过对分割后的新区块重新进行预编码来确定分割后的新区块的编码代价值。
根据本公开的一种HEIF图像解码装置可包括:获取单元,被配置为获得HEIF图像的编码数据;解析单元,被配置为从编码数据解析图像基本信息、多个区块的区块信息和所述多个区块的编码信息;解码单元,被配置为并行地对所述多个区块的所述编码信息进行解码来获得所述多个区块,并基于所述图像基本信息和所述多个区块的所述区块信息将解码出的所述多个区块进行合并。
在根据本公开的HEIF图像解码装置中,所述多个区块的区块信息可包括所述多个区块的位置、所述多个区块的尺寸、所述多个区块的代价值、所述多个区块的数量。
在根据本公开的HEIF图像解码装置中,解码单元可被配置为通过以下操作并行地对所述多个区块的所述编码信息进行解码来获得多个区块:基于CPU核的数量确定所述多个区块中的每一个区块的编码信息被动态分配的CPU核,其中,当CPU核的数量大于或等于所述多个区块的数量时,将一个CPU核分配为处理一个区块的编码信息;以及当CPU核的数量小于所述多个区块的数量时,基于CPU核的数量和所述每一个区块的编码代价值动态分配将由每一个CPU核处理的区块的编码信息。
在根据本公开的HEIF图像解码装置中,解码单元可被配置为通过以下操作基于CPU核的数量和所述每一个区块的编码代价值动态分配将由每一个CPU核处理的区块的编码信息:按照至少一种分组方式将所述多个区块的编码信息划分为与CPU核的数量相等的数量个组;根据所述每一个区块的编码代价值计算每一种分组方式生成的组的编码代价值的方差;从所述至少一种分组方式中选择与最小的所述方差对应的分组方式,并根据该分组方式将区块的编码信息动态分配给CPU核。
根据本公开的一种电子设备可包括:存储器和处理器;所述存储器中存储有计算机程序;所述处理器在运行所述计算机程序时执行以上所述的HEIF图像编码方法或以上所述的HEIF图像解码方法。
根据本公开的一种存储有程序的计算机可读存储介质,所述程序在被处理器执行时可实现以上所述的HEIF图像编码方法或以上所述的HEIF图像解码方法。
应当理解的是,前述概述的特征是本公开的以下详细描述的示例性方面,而不限制本公开的范围。
有益效果
本公开提出的基于动态分块的HEIF图像编码方法和解码方法以及编码装置和解码可有效地避免解码时CPU的负载不均衡,提升了电子设备对HEIF图像的解码速度。
除了解决现有技术中的对HEIF图像进行解码时的负载不均衡和解码速度慢的问题,还解决了对HEIF图像进行解码的资源消耗高的问题。
可从本公开获得的效果可以不受上述效果的限制,并且本公开所属技术领域的普通技术人员可从以下描述中清楚地理解其他未提及的效果。
附图说明
图1是示出根据本公开的HEIF图像编码方法的流程图。
图2是示出根据本公开的从HEIF图像分割出的基础区块的示图。
图3是示出根据本公开的对基础区块进一步分割得到新区块的示图。
图4是示出根据本公开的对HEIF图像进行动态分块得到的最终区块的示图。
图5是示出根据本公开的使用多个CPU核对多个区块进行编码的过程的示图。
图6是示出根据本公开的HEIF图像解码方法的流程图。
图7是示出根据本公开的使用多个CPU核对多个区块进行解码的过程的一个示例的示图。
图8是示出根据本公开的使用多个CPU核对多个区块进行解码的过程的另一个示例的示图。
图9是示出根据本公开的HEIF图像编码装置的框图。
图10是示出根据本公开的HEIF图像解码装置的框图。
具体实施方式
在下文中,将参照附图详细地描述本公开的实施例。
在本说明书中使用的术语“包括”或“包含”说明存在所陈述的特征、整体、步骤、操作、元件、组件和/或它们的组合,但不排除存在或添加一个或更多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合。诸如“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A、B或C”、“A、B和C中的至少一个”以及“A、B或C中的至少一个”的短语中的每一个短语可包括在与所述多个短语中的相应一个短语中一起列举出的项的所有可能组合。
在本说明书中使用的术语“区块”表示用于执行特定编码/解码处理的基本单元。
图1是示出根据本公开的HEIF图像编码方法的流程图。
参照图1,在步骤S101,将HEIF图像分割为尺寸相同的多个基础区块。根据本公开的实施例,HEIF图像可以是YUV数据格式的图像数据,其中,Y分量是用于描述灰阶值的亮度(Luminance或Luma)信号,U分量和V分量分别是用于描述色彩和/或饱和度的色度(Chrominance或Chroma)信号,其被用于指定像素的颜色。除了YUV数据格式之外,HEIF图像还可以是其它数据格式,本公开不对HEIF图像所采用的数据格式进行限制,任何数据格式的HEIF图像均可以采用本公开所提及的技术进行编码和解码。
根据本公开的实施例,在对图像进行初次分割时,将图像分割为尺寸相同的多个基础区块,例如,尺寸相同的多个矩形形状的基础区块,每个基础区块对应图像的不同位置,形成初始的图像数据区域。这里,将参照图2对步骤S102进行详细描述。
如图2中所示,假设原始HEIF图像由512×512像素组成,若将基础区块的尺寸选为128×128像素,则可将原始HEIF图像分割为由16个基础区块(即,B1、B2、……、B15和B16)构成的4×4矩阵区域。在以上描述中,基础区块的宽度和高度分别相同,但是本公开不限于此,基础区块的宽度和高度可彼此不同。
通过将图像分割为多个基础区块的方式,可使用多个CPU核针对每一个基础区块进行编码处理实现整个图像的并行编码,从而提高编码处理速度。
返回参照图1,在步骤S102,可通过对所述多个基础区块进行动态分块处理来获得多个最终区块。动态分块处理可以是针对区块进行的各种处理,可包括但不限于对区块进行动态分割的处理、将区块与其他区块合并的处理和保持区块原样的处理中的至少一种。
具体地,对所述多个基础区块进行动态分块处理的步骤可包括:通过对所述多个基础区块中的每一个基础区块进行预编码来计算所述每一个基础区块的编码代价值,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块。
在本实施例中,可根据CPU占用率、压缩数据块大小、编码时间中的至少一个性能指标来确定区块的编码代价值,但本公开不限于此,还可以采用任何其它能够表征编码代价值的性能指标来体现区块编码的代价。CPU占用率被用于衡量CPU负载性能,可以是对该区块进行编码时的CPU使用率。压缩数据块大小可以是计算出的该区块被编码后所产生的压缩数据的大小,也就是说,区块被编码后占用的存储空间大小。编码时间可以是对区块进行编码所耗费的时间。
在本实施例中,可根据每一个区块的CPU占用率、编码时间和压缩数据块大小中的至少一个的加权和来计算编码代价值。
具体地讲,例如,可将多个区块的总编码代价值表示为P,将多个区块分别定义为区块B1至BN(其中,N是区块的数量),区块B1至BN的代价值分别表示为P1、P2、……、PN,图像的多个区块的总编码代价值P是所有的P1、P2、……、PN相加的总和。区块B1至BN的CPU占用率可分别表示为H1、H2、……、HN,区块B1至BN的编码时间可分别表示为T1、T2、……、TN,并且区块B1至BN的压缩数据块大小可分别表示为M1、M2、……、MN。例如,可按照以下的等式1,根据每一个区块的CPU占用率、编码时间和压缩数据块大小的加权和来计算每一个区块Bn的编码代价值Pn。
Pn=αHn+βTn+χMn(等式1)
在等式1中,n可以是从1至N的自然数,即,区块的编号;α、β和χ可分别表示CPU占用率、编码时间和压缩数据块大小对编码代价值的影响因子,并且分别是由经验值所确定的0至1之间的值。例如,对第一区块的编码代价值进行计算时,将n确定为1,则第一区块的编码代价值P1为αH1+βT1+χM1的值。
在以上示例中,采用了每一个区块的CPU占用率、编码时间和压缩数据块大小这三者的加权和来计算每一个区块的编码代价值,然而,本公开不限于此,CPU占用率、编码时间和压缩数据块大小中之一或两者来计算每一个区块的编码代价值,并且可本公开可采用任何其它能够表征编码代价值的性能指标来体现区块编码的代价。
在一个示例中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤可包括:将所述每一个基础区块的编码代价值与第一阈值进行比较,当所述多个基础区块中存在编码代价值大于(或大于等于)第一阈值的基础区块时,按照至少一种动态分割方法将编码代价值大于第一阈值的基础区块进一步分割为新区块。第一阈值是根据多个基础区块的编码代价值来确定的。例如,第一阈值可以是多个基础区块的编码代价值的平均值的j倍,其中,j为大于1的正数。对区块进行分割的分割方法可包括但不限于二拆分、三拆分、四拆分,如图3中(a)、(b)和(c)所示,然而图3所示出的内容仅是示例,本公开不限于图3中所示出的拆分方法。
此外,对所述每一个基础区块进行动态分块处理还可包括:当分割出的新区块中存在编码代价值大于(或大于等于)第一阈值,可再次按照至少一种动态分割方法将编码代价值大于第一阈值的新区块进一步分割为新区块。可根据新区块的编码代价值重复执行以上动态分割方法。
基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤可包括基于每一种动态分割方法的新区块的编码代价值来确定最终的图像分块方式。具体地,可对多个基础区块执行多种动态分割方法。针对每一种动态分割方法,可确定每一个新区块的编码代价值,计算每一个新区块以及所有未被进一步分割的基础区块的编码代价值的方差,将所述至少一种动态分割方法中的与最小的所述方差对应的动态分割方法确定为所述至少一个动态分割方法中的最佳动态分割方法。
在该示例中,确定新区块的编码代价值的步骤可包括:针对每一种动态分割方法,可通过对分割后的新区块重新进行预编码来确定分割后的新区块的编码代价值。
在另一示例中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤可包括:将所述每一个基础区块的编码代价值与第二阈值进行比较,当所述多个基础区块中存在编码代价值小于(或小于等于)第二阈值的相邻基础区块时,按照至少一种动态合并方法将编码代价值小于第二阈值的相邻基础区块合并为新区块。例如,当在所述多个基础区块中存在两个编码代价值均小于(或小于等于)第二阈值的相邻的基础区块时,将所述两个相邻基础区块合并为新的区块。第二阈值是根据多个基础区块的编码代价值来确定的。当如图2中所示,在所述多个基础区块中存在编码代价值均小于(或小于等于)第二阈值的相邻的三个基础区块B1、B2和B5时,可将相邻的两个基础区块B1和B2合并为新的区块,也可以将相邻的两个基础区块B1和B5合并为新的区块。此外,当如图2中所示,在所述多个基础区块中存在编码代价值均小于(或小于等于)第二阈值的相邻的三个基础区块B1、B2和B3时,可将相邻的两个基础区块B1和B2合并为新的区块,可以将相邻的两个基础区块B2和B3合并为新的区块,也可以将相邻的三个基础区块B1、B2和B3合并为新的区块。例如,第二阈值可以是多个基础区块的编码代价值的平均值的k倍,其中,k为小于1的正数。
此外,对所述每一个基础区块进行动态分块处理还可包括:当合并出的新区块中存在编码代价值小于(或小于等于)第二阈值,可再次按照至少一种合并方法将编码代价值小于第二阈值的新区块合并为新区块。可根据新区块的编码代价值重复执行以上合并方法。
基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤可包括基于每一种合并方法的新区块的编码代价值来确定最终的图像分块方式。具体地,可对多个基础区块执行多种合并方法。针对每一种合并方法,确定每一个新区块的编码代价值;计算每一个新区块以及所有未被合并的基础区块的编码代价值的方差;从所述至少一种合并方法中选择与最小的所述方差对应的合并方法,以确定所述至少一个合并方法中的最佳合并方法。
在该示例中,确定新区块的编码代价值的步骤可包括:针对每一种合并方法,将相邻基础区块在合并之前的编码代价值相加来获得相邻基础区块在合并后的新区块的编码代价值。
在另一示例中,将所述每一个基础区块的编码代价值与第一阈值和第二阈值进行比较,其中,第一阈值大于第二阈值。当所述多个基础区块中存在编码代价值大于(或大于等于)第一阈值的基础区块时,按照至少一种动态分割方法将编码代价值大于(或大于等于)第一阈值的基础区块进一步分割为新区块,以及当所述多个基础区块中存在编码代价值小于(或小于等于)第二阈值的相邻基础区块时,按照至少一种合并方法将编码代价值小于(或小于等于)第二阈值的相邻基础区块合并为新区块。第一阈值和第二阈值是根据多个基础区块的编码代价值来确定的。例如,第一阈值可以是多个基础区块的编码代价值的平均值的j倍,其中,j为大于1的正数,第二阈值可以是多个基础区块的编码代价值的平均值的k倍,其中,k为小于1的正数。对区块进行分割的分割方法可包括但不限于二拆分、三拆分、四拆分,如以上参照图3所描述的。
此外,对所述每一个基础区块进行动态分块处理还可包括:当分割出的新区块中存在编码代价值大于(或大于等于)第一阈值,可再次按照至少一种动态分割方法将编码代价值大于第一阈值的新区块进一步分割为新区块,以及当合并出的新区块中存在编码代价值小于(或小于等于)第二阈值,可再次按照至少一种动态合并方法将编码代价值小于第二阈值的新区块合并为新区块。可根据新区块的编码代价值重复执行以上分割和合并方法。
基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤可包括基于每一种动态分割方法与合并方法的组合方案的新区块的编码代价值来确定最终图像分块方式。具体地,可对多个基础区块执行动态分割方法和合并方法的多种组合方案。针对每一种组合方案,确定每一个新区块的编码代价值,计算每一个新区块以及所有未被合并或进一步分割的基础区块的编码代价值的方差,从所有组合方案中选择与最小的所述方差对应的组合方案,以确定所述至少一个动态分割方法中的最佳动态分割方法和所述至少一个合并方法中的最佳合并方法,进而获得动态分割方法和合并方法的最佳组合方案。
在该示例中,确定新区块的编码代价值的步骤可包括:对于每一种合并方法,将相邻基础区块在合并之前的编码代价值相加来获得相邻基础区块在合并后的新区块的编码代价值;针对每一种动态分割方法,通过对分割后的新区块重新进行预编码来确定分割后的新区块的编码代价值。
图4是示出根据本公开的HEIF图像在被动态分块处理后得到的区块的示例的示图。
在图4中,所示出的多个区块C1至C14可以是在最终确定的由动态分割方法和合并方法组成的组合方案下被动态分块的多个区块。在图4中,区块C1、区块C3、区块C9、区块C10、区块C11和区块C14是未被合并且未被进一步分割的区块,可分别与基础区块B1、基础区块B3、基础区块B9、基础区块B10、基础区块B11和基础区块B14对应;区块C2、区块C4、区块12以及区块13是被合并的新区块,其中,区块C2对应于基础区块B2和基础区块B3,区块C4对应于基础区块B5和基础区块B9,区块C12对应于基础区块B8和基础区块B12,区块C13对应于基础区块B13、基础区块B14和基础区块B15;区块C5、区块C6、区块C7和区块C8是被进一步分割的新区块,四个区块C5、C6、C7和C8对应于基础区块B6。图4所示出的HEIF图像分块方式仅是示例。
此外,在多个最终区块被获得时,对于合并生成的最终区块,可将用于合并生成该最终区块的基础区块的区块信息确定为子区块信息,并且可将用于合并生成该最终区块的基础区块的子区块信息共同记录为该最终区块的区块信息,而无需对合并生成的该最终区块(即新区块)进行重复计算。例如,可将基础区块B2和基础区块B3的区块信息共同记录为区块C2的区块信息,具体地,可直接将基础区块B2和基础区块B3的位置打包记录为区块C2的位置,可直接将基础区块B2和基础区块B3的尺寸打包记录为区块C2的尺寸,可将基础区块B2和基础区块B3的编码代价值之和记录为区块C2的编码代价值。
对于分割的最终区块,需要重新计算通过分割而生成的最终区块的区块信息并进行记录。区块信息可包括但不限于区块的位置、尺寸、编码代价值和数量。
返回参照图1,在步骤S103,可采用并行方式对所述多个最终区块进行编码以获得HEIF图像的编码数据。
在HEIF图像的多个最终区块(例如,如图4所示出的多个最终区块)被获得时,可使用多个CPU核对所述多个最终区块进行并行编码,从而获得包括HEIF图像的图像基本信息、多个最终区块的区块信息和多个最终区块的编码信息的HEIF图像的编码数据。图像基本信息可包括例如图像的分辨率、图像的文件格式等。区块信息可包括但不限于所述多个最终区块的位置、所述多个最终区块的尺寸、所述多个最终区块的编码代价值和所述多个最终区块的数量。如果所述最终区块中的至少一个最终区块是由基础区块合并生成的最终区块,则该最终区块的区块信息由用于合并生成该最终区块的基础区块的区块信息构成。编码信息可指对区块进行编码所产生的编码结果。
这里,将参照图5描述采用并行方式对所述多个最终区块C1至CX(其中,X为正整数)进行编码的处理。图5是示出根据本公开的使用多个CPU核对图4示出的多个最终区块进行编码的过程的示图。
参照图5,当多个CPU核的数量大于或等于最终区块C1至CX(其中,X为正整数)的数量X时,将每一个区块分配给一个CPU核进行编码处理。如图5所示出的,将HEIF图像的待处理的最终区块C1至Cn(在图5中,X为n)分别分配给CPU1至CPU n,通过多个CPU对多个最终区块C1至Cn进行编码,得到所述多个最终区块的多个编码信息R1至Rn。
当多个CPU核的数量小于最终区块C1至CX(其中,X为正整数)的数量X时,基于CPU核的数量和每一个区块的编码代价值动态分配将由每一个CPU核编码的最终区块(未示出)。
具体地讲,基于CPU核的数量和每一个区块的编码代价值动态分配将由每一个CPU核编码的最终区块的步骤可包括:按照至少一种分组方法将多个最终区块划分为与CPU核的数量相等的数量个组;根据所述每一个最终区块的编码代价值计算每一种分组方式生成的组的编码代价值的方差;从所述至少一种分组方式中选择与最小的所述方差对应的分组方式,并根据该分组方式将最终区块动态分配给CPU核。
例如,当存在4个最终区块(D1至D4)且3个CPU核(CPU1至CPU3)时,可按照6种组合方法将4个最终区块划分为3个组,然后根据每一个最终区块的编码代价值计算每一种分组方式生成的组的编码代价值的方差(例如S1至S6),然后从6种分组方式中选择与方差S1至S6中最小的方差对应的分组方式,最后根据该分组方式将最终区块分配给3个CPU核。
根据以上描述获得的区块信息和编码信息,可获得包括图像基本信息、区块信息和编码信息的HEIF图像的编码数据。
图6是示出根据本公开的HEIF图像解码方法的流程图。
参照图6,在步骤S201,可获得HEIF图像的编码数据。具体地,可接收HEIF图像的编码数据并将HEIF编码数据读取到内存,以用于进行处理。
在步骤S202,可从编码数据解析图像基本信息、多个区块的区块信息和所述多个区块的编码信息。其中,所述多个区块的区块信息包括所述多个区块的位置、所述多个区块的尺寸、所述多个区块的代价值、所述多个区块的数量。具体地,根据HEIF格式解析出编码数据中的图像基本信息、多个区块的区块信息和所述多个区块的编码信息。图像基本信息可包括图像的分辨率、图像的文件格式等。
在步骤S203,可并行地对所述每一个区块的编码信息进行解码来获得多个区块。具体地,可使用多个CPU核对编码数据进行并行解码来获得多个区块。并行地对所述多个区块的所述编码信息进行解码来获得多个区块的步骤可包括:基于CPU核的数量确定多个区块中的每一个区块的编码信息被动态分配的CPU核。下面将参照图7和图8对此进行详细描述。
图7和图8是示出根据本公开的使用多个CPU核对多个区块进行解码的过程的示图。
具体地,基于CPU核的数量确定所述多个区块中的每一个区块的编码信息被动态分配的CPU核的步骤可包括:当CPU核的数量n大于或等于多个区块的数量X(X为正整数)时,将一个CPU核分配为处理一个区块的编码信息。参照图7,当多个CPU核的数量n等于多个区块的数量n(在图7中,X为n)时,将一个区块的编码信息分配给一个CPU核进行解码处理。如图7所示出的,将HEIF图像的待处理的编码信息R1至Rn分别分配给CPU1至CPU n,通过多个CPU对多个区块进行并行解码,得到多个区块C1至Cn。
在另一示例中,当CPU核的数量小于多个区块的数量X(X为正整数)时,基于CPU核的数量和每一个区块的编码代价值动态分配将由每一个CPU核处理的区块的编码信息。具体地讲,当多个CPU核的数量小于多个区块的数量X时,基于CPU核的数量和所述每一个区块的编码代价值动态分配将由每一个CPU核处理的区块的编码信息的步骤可包括:按照至少一种分组方法将多个区块的编码信息划分为与CPU核的数量相等的数量个组,可根据所述每一个区块的编码代价值计算每一种分组方式生成的组的编码代价值的方差,从所述至少一种分组方式中选择与最小的所述方差对应的分组方式,并根据该分组方式将区块的编码信息动态分配给CPU核。
参照图8,当多个CPU核的数量为4,并且区块的数量大于4(例如为7)时,可按照至少一种分组方式将7个区块的编码信息划分为4个组,通过将一个组内的所有区块的编码代价值相加来计算每一个组的编码代价值,计算每一种分组方式的组的编码代价值的方差,从7种分组方式中选择方差最小的分组方式作为最终进行并行解码的分组方式,如图8中所示,最终的分组方式为R1和R4被分配给CPU1,R2和R5被分配给CPU2,R3和R6被分配给CPU3,R7被分配给CPU4。
返回参照图6,在步骤S204,基于图像基本信息和多个区块的区块信息将解码出的区块进行合并。具体地,基于从编码数据解析出的图像基本信息和区块信息将在步骤S203解码出的多个区块合并为整个图像,例如,如图7所示出的将区块C1、区块C2、区块C3……、区块Cn合并为整个图像,从而完成对HEIF图像的解码。
在下文中,将描述根据本公开的HEIF图像编码装置和HEIF图像解码装置。
图9是示出根据本公开的HEIF图像编码装置100的框图。
参照图9,HEIF图像编码装置100可包括分割单元101和编码单元102。具体地,HEIF图像编码装置100可被用于对HEIF图像执行图像编码处理。分割单元101可被配置为将HEIF图像分割为尺寸相同的多个基础区块,并通过对所述多个基础区块进行动态分块处理来获得多个最终区块。编码单元102可被配置为采用并行方式对所述多个最终区块进行编码以获得HEIF图像的编码数据。
具体地,根据本公开的实施例,编码数据可包括图像基本信息、所述多个最终区块的区块信息和所述多个最终区块的编码信息,其中,所述多个最终区块的所述区块信息包括所述多个最终区块的位置、所述多个最终区块的尺寸、所述多个最终区块的代价值、最终区块的数量。
在本公开的一个实施例中,分割单元101可被配置为通过以下操作对所述多个基础区块进行动态分块处理来获得多个最终区块:通过对所述多个基础区块中的每一个基础区块进行预编码来确定所述每一个基础区块的编码代价值,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块。
在该实施例中,分割单元101可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:将所述每一个基础区块的编码代价值与第一阈值进行比较,当所述多个基础区块中存在编码代价值大于第一阈值的基础区块时,按照至少一种动态分割方法将编码代价值大于第一阈值的基础区块进一步分割为新区块。
在该实施例中,分割单元101可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:针对每一种动态分割方法,确定每一个新区块的编码代价值,计算每一个新区块以及所有未被进一步分割的基础区块的编码代价值的方差,将所述至少一种动态分割方法中的与最小的所述方差对应的动态分割方法确定为所述至少一个动态分割方法中的最佳动态分割方法。
在另一个实施例中,分割单元101可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:将所述每一个基础区块的编码代价值与第二阈值进行比较,当所述多个基础区块中存在编码代价值小于第二阈值的相邻基础区块时,按照至少一种合并方法将编码代价值小于第二阈值的相邻基础区块合并为新区块。
在该实施例中,分割单元101还可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:针对每一种合并方法,确定每一个新区块的编码代价值,计算每一个新区块以及所有未被合并的基础区块的编码代价值的方差,将所述至少一种合并方法中的与最小的所述方差对应的合并方法确定为所述至少一个合并方法中的最佳合并方法。
在该实施例中,分割单元101可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:将所述每一个基础区块的编码代价值与第一阈值和第二阈值进行比较,其中,第一阈值大于第二阈值,当所述多个基础区块中存在编码代价值大于第一阈值的基础区块时,按照至少一种动态分割方法将编码代价值大于第一阈值的基础区块进一步分割为新区块,当所述多个基础区块中存在编码代价值小于第二阈值的相邻基础区块时,按照至少一种合并方法将编码代价值小于第二阈值的相邻基础区块合并为新区块。
在该实施例中,分割单元101可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:针对动态分割方法和合并方法的每一种组合方案,确定每一个新区块的编码代价值,计算每一个新区块以及所有未被合并或进一步分割的基础区块的编码代价值的方案,从所有组合方案中选择与最小的所述方差对应的组合方案,以确定所述至少一个动态分割方法中的最佳动态分割方法和所述至少一个合并方法中的最佳合并方法。
在该实施例中,分割单元101可被配置为通过以下操作确定每一个新区块的编码代价值:对于每一种合并方法,将相邻基础区块在合并之前的编码代价值相加来获得相邻基础区块在合并后的新区块的编码代价值,针对每一种动态分割方法,通过对分割后的新区块重新进行预编码来确定分割后的新区块的编码代价值。
在以上所述的各种实施例中,编码代价值可以是以下三项的加权和:区块在编码时的CPU占用率、对区块编码产生的压缩数据块大小和对区块编码耗费的编码时间。
此外,分割单元101可被配置为通过以下操作基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块:对于合并生成的最终区块,将用于合并生成该最终区块的基础区块的区块信息确定为子区块信息,并且将用于合并生成该最终区块的基础区块的子区块信息共同记录为相应的最终区块的区块信息。
在本公开中,编码单元102可被配置为通过以下操作采用并行方式对所述多个最终区块进行编码:当CPU核的数量大于或等于最终区块的数量时,将一个CPU核用于对一个最终区块进行编码;以及当CPU核的数量小于最终区块的数量时,基于CPU核的数量和每一个最终区块的编码代价值动态分配将由每一个CPU核编码的最终区块。由于以上已参照图1至图5对编码方法进行了详细描述,因此,这里不再进行赘述。
图10是示出根据本公开的HEIF图像解码装置200的框图。
参照图10,HEIF图像解码装置200可包括获取单元201、解析单元202、解码单元203。具体地,HEIF图像解码装置200可被用于对HEIF图像执行图像解码处理。获取单元201可被配置为获取HEIF图像的编码数据。解析单元202可被配置为从编码数据解析图像基本信息、多个区块的区块信息和所述多个区块的编码信息。解码单元203可被配置为并行地对所述多个区块的所述编码信息进行解码来获得多个区块,并基于所述图像基本信息和所述多个区块的所述区块信息将解码出的所述多个区块进行合并。
具体地,根据本公开的实施例,所述多个区块的区块信息可包括所述多个区块的位置、所述多个区块的尺寸、所述多个区块的代价值、所述多个区块的数量。
根据本公开的实施例,解码单元203可被配置为通过以下操作并行地对所述多个区块的所述编码信息进行解码来获得多个区块:基于CPU核的数量确定所述多个区块中的每一个区块的编码信息被动态分配的CPU核。
根据本公开的实施例,解码单元203还可被配置为通过以下操作基于CPU核的数量确定所述多个区块中的每一个区块的编码信息被动态分配的CPU核:当CPU核的数量大于或等于所述多个区块的数量时,将一个CPU核分配为处理一个区块的编码信息,以及当CPU核的数量小于所述多个区块的数量时,基于CPU核的数量和所述每一个区块的编码代价值动态分配将由每一个CPU核处理的区块的编码信息。
根据本公开的实施例,解码单元203可被配置为通过以下操作基于CPU核的数量和所述每一个区块的编码代价值动态分配将由每一个CPU核处理的区块的编码信息:按照至少一种分组方式将所述多个区块的编码信息划分为与CPU核的数量相等的数量个组,根据所述每一个区块的编码代价值计算每一种分组方式生成的组的编码代价值的方差,从所述至少一种分组方式中选择与最小的所述方差对应的分组方式,并根据该分组方式将区块的编码信息动态分配给CPU核。由于以上已参照图6和图7对此进行了详细描述,因此此处不再进行赘述。
本公开的另一方面在于提供一种电子设备,所述电子设备可包括存储器和处理器;所述存储器中存储有计算机程序;所述处理器在运行所述计算机程序时可执行所述的HEIF图像编码方法或HEIF图像解码方法。
此外,本公开的另一方面在于提供一种包括存储有程序的计算机可读存储介质,所述程序在被处理器执行时可实现以上所述的HEIF图像编码方法或HEIF图像解码方法。
尽管已经参照各种示例实施例示出和描述了本申请,但本申请不限于特定实施例或附图,并且本领域普通技术人员将理解,在不脱离由所附权利要求及其等同物限定的本申请的精神和范围的情况下,可对其进行形式和细节上的各种改变。
Claims (19)
1.一种HEIF图像编码方法,包括:
将HEIF图像分割为尺寸相同的多个基础区块;
通过对所述多个基础区块进行动态分块处理来获得多个最终区块;
采用并行方式对所述多个最终区块进行编码以获得HEIF图像的编码数据,
其中,通过对所述多个基础区块进行动态分块处理来获得多个最终区块的步骤包括:
通过对所述多个基础区块中的每一个基础区块进行预编码来确定所述每一个基础区块的编码代价值;
对所述多个基础区块执行动态分块处理;
计算每次动态分块处理的新区块以及未被动态分块处理的基础区块的编码代价值的方差;
将具有最小的所述方差的多个区块确定为所述多个最终区块。
2.如权利要求1所述的HEIF图像编码方法,其中,编码数据包括图像基本信息、所述多个最终区块的区块信息和所述多个最终区块的编码信息,其中,所述多个最终区块的所述区块信息包括所述多个最终区块的位置、所述多个最终区块的尺寸、所述多个最终区块的代价值、所述多个最终区块的数量。
3.如权利要求1所述的HEIF图像编码方法,其中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤包括:
将所述每一个基础区块的编码代价值与第一阈值进行比较;
当所述多个基础区块中存在编码代价值大于第一阈值的基础区块时,按照至少一种动态分割方法将编码代价值大于第一阈值的基础区块进一步分割为新区块。
4.如权利要求3所述的HEIF图像编码方法,其中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤还包括:
针对每一种动态分割方法,确定每一个新区块的编码代价值;
计算每一个新区块以及所有未被进一步分割的基础区块的编码代价值的方差;
将所述至少一种动态分割方法中的与最小的所述方差对应的动态分割方法确定为所述至少一个动态分割方法中的最佳动态分割方法。
5.如权利要求4所述的HEIF图像编码方法,其中,确定每一个新区块的编码代价值的步骤包括:
通过对分割后的新区块重新进行预编码来确定分割后的新区块的编码代价值。
6.如权利要求1所述的HEIF图像编码方法,其中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤包括:
将所述每一个基础区块的编码代价值与第二阈值进行比较;
当所述多个基础区块中存在编码代价值小于第二阈值的相邻基础区块时,按照至少一种合并方法将编码代价值小于第二阈值的相邻基础区块合并为新区块。
7.如权利要求6所述的HEIF图像编码方法,其中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤还包括:
针对每一种合并方法,确定每一个新区块的编码代价值;
计算每一个新区块以及所有未被合并的基础区块的编码代价值的方差;
将所述至少一种合并方法中的与最小的所述方差对应的合并方法确定为所述至少一个合并方法中的最佳合并方法。
8.如权利要求7所述的HEIF图像编码方法,其中,确定每一个新区块的编码代价值的步骤包括:
将相邻基础区块在合并之前的编码代价值相加来获得相邻基础区块在合并后的新区块的编码代价值。
9.如权利要求7所述的HEIF图像编码方法,其中,基于所述每一个基础区块的编码代价值对所述每一个基础区块进行动态分块处理来获得所述多个最终区块的步骤还包括:
对于合并生成的最终区块,将用于合并生成该最终区块的基础区块的区块信息确定为子区块信息,并且将用于合并生成该最终区块的基础区块的子区块信息共同记录为相应的最终区块的区块信息。
10.如权利要求1至9中的任一项所述的HEIF图像编码方法,其中,所述编码代价值是以下三项中的至少一项的加权和:区块在编码时的CPU占用率、对区块编码产生的压缩数据块大小和对区块编码耗费的编码时间。
11.如权利要求1所述的HEIF图像编码方法,其中,采用并行方式对所述多个最终区块进行编码的步骤包括:
当CPU核的数量大于或等于最终区块的数量时,将一个CPU核用于对一个最终区块进行编码;以及
当CPU核的数量小于最终区块的数量时,基于CPU核的数量和每一个最终区块的编码代价值动态分配将由每一个CPU核编码的最终区块。
12.一种对HEIF图像的编码数据进行解码的HEIF图像解码方法,其中,所述HEIF图像的编码数据是使用如权利要求1所述的HEIF图像编码方法被编码的,所述HEIF图像解码方法包括:
获得所述HEIF图像的编码数据;
从编码数据解析图像基本信息、多个区块的区块信息和所述多个区块的编码信息;
并行地对所述多个区块的所述编码信息进行解码来获得多个区块;
基于所述图像基本信息和所述多个区块的所述区块信息将解码出的所述多个区块进行合并。
13.如权利要求12所述的HEIF图像解码方法,其中,所述多个区块的区块信息包括所述多个区块的位置、所述多个区块的尺寸、所述多个区块的代价值、所述多个区块的数量。
14.如权利要求12所述的HEIF图像解码方法,其中,并行地对所述多个区块的所述编码信息进行解码来获得多个区块的步骤包括基于CPU核的数量确定所述多个区块中的每一个区块的编码信息被动态分配的CPU核,
其中,当CPU核的数量大于或等于所述多个区块的数量时,将一个CPU核分配为处理一个区块的编码信息;以及
当CPU核的数量小于所述多个区块的数量时,基于CPU核的数量和所述每一个区块的编码代价值动态分配将由每一个CPU核处理的区块的编码信息。
15.如权利要求14所述的HEIF图像解码方法,其中,基于CPU核的数量和所述每一个区块的编码代价值动态分配将由每一个CPU核处理的区块的编码信息的步骤包括:
按照至少一种分组方式将所述多个区块的编码信息划分为与CPU核的数量相等的数量个组;
根据所述每一个区块的编码代价值计算每一种分组方式生成的组的编码代价值的方差;
从所述至少一种分组方式中选择与最小的所述方差对应的分组方式,并根据该分组方式将区块的编码信息动态分配给CPU核。
16.一种HEIF图像编码装置,包括:
分割单元,被配置为将HEIF图像分割为尺寸相同的多个基础区块,并通过对所述多个基础区块进行动态分块处理来获得多个最终区块;
编码单元,被配置为采用并行方式对所述多个最终区块进行编码以获得HEIF图像的编码数据,
其中,分割单元被配置为通过以下操作对所述多个基础区块进行动态分块处理来获得多个最终区块:
通过对所述多个基础区块中的每一个基础区块进行预编码来确定所述每一个基础区块的编码代价值;
对所述多个基础区块执行动态分块处理;
计算每次动态分块处理的新区块以及未被动态分块处理的基础区块的编码代价值的方差;
将具有最小的所述方差的多个区块确定为所述多个最终区块。
17.一种用于对HEIF图像的编码数据进行解码的HEIF图像解码装置,其中,所述HEIF图像的编码数据是使用如权利要求1所述的HEIF图像编码方法被编码的,所述HEIF图像解码装置包括:
获取单元,被配置为获得所述HEIF图像的编码数据;
解析单元,被配置为从编码数据解析图像基本信息、多个区块的区块信息和所述多个区块的编码信息;
解码单元,被配置为并行地对所述多个区块的所述编码信息进行解码来获得所述多个区块,并基于所述图像基本信息和所述多个区块的所述区块信息将解码出的所述多个区块进行合并。
18.一种电子设备,其中,所述电子设备包括存储器和处理器;
所述存储器中存储有计算机程序;
所述处理器在运行所述计算机程序时执行权利要求1至11中任一项所述的HEIF图像编码方法或权利要求12至15中任一项所述的HEIF图像解码方法。
19.一种存储有程序的计算机可读存储介质,所述程序在被处理器执行时实现权利要求1至11中任一项所述的HEIF图像编码方法或权利要求12至15中任一项所述的HEIF图像解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110667390.8A CN113422955B (zh) | 2021-06-16 | 2021-06-16 | Heif图像编码方法和解码方法以及编码装置和解码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110667390.8A CN113422955B (zh) | 2021-06-16 | 2021-06-16 | Heif图像编码方法和解码方法以及编码装置和解码装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113422955A CN113422955A (zh) | 2021-09-21 |
CN113422955B true CN113422955B (zh) | 2023-04-21 |
Family
ID=77788767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110667390.8A Active CN113422955B (zh) | 2021-06-16 | 2021-06-16 | Heif图像编码方法和解码方法以及编码装置和解码装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113422955B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098473B (zh) * | 2006-06-30 | 2012-05-09 | 联想(北京)有限公司 | 一种图像编码方法及装置 |
JP7246855B2 (ja) * | 2018-02-16 | 2023-03-28 | キヤノン株式会社 | 撮像装置、記録装置及び表示制御装置 |
CN109886861B (zh) * | 2019-01-08 | 2023-04-11 | 北京城市网邻信息技术有限公司 | 一种高效率图档格式heif图像加载方法及装置 |
JP7442302B2 (ja) * | 2019-11-22 | 2024-03-04 | キヤノン株式会社 | データ処理装置およびその制御方法、プログラム |
CN112150567B (zh) * | 2020-11-06 | 2023-07-18 | 北京深维科技有限公司 | 一种heif图像编码方法及相关设备 |
-
2021
- 2021-06-16 CN CN202110667390.8A patent/CN113422955B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113422955A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10939112B2 (en) | Method and device for video coding and decoding | |
US10986351B2 (en) | Method and device for decoding image by using partition unit including additional region | |
CN107886560B (zh) | 动画资源的处理方法及装置 | |
JP6149076B2 (ja) | イメージ、および、ビデオ符号化のパレットインデックスシグナリングの方法および装置 | |
US20170332073A1 (en) | Image Coding Method, Decoding Method, Coding Device and Decoding Device | |
US20170155899A1 (en) | Image compression method and apparatus using matching | |
US20230051471A1 (en) | Method and device for decoding image by using partition unit including additional region | |
US20170013261A1 (en) | Method and device for coding image, and method and device for decoding image | |
US20110293009A1 (en) | Video processing system, computer program product and method for managing a transfer of information between a memory unit and a decoder | |
CN101557524A (zh) | 活动图像的编码方法 | |
US10200716B2 (en) | Parallel intra-prediction encoding/decoding process utilizing PIPCM and/or PIDC for selected sections | |
US11653019B2 (en) | Image coding and decoding methods, image processing device and computer storage medium | |
US7433526B2 (en) | Method for compressing images and image sequences through adaptive partitioning | |
CN112055219B (zh) | 一种串匹配预测方法、装置及计算机可读存储介质 | |
US20230262221A1 (en) | Method and device for video coding and decoding | |
EP3506637A1 (en) | Image encoding device, image decoding device, and data structure | |
CN114365493A (zh) | 应用于调色板表推导的并行直方图计算 | |
US20220116613A1 (en) | Video encoding method and device, and video decoding method and device | |
CN108600755B (zh) | 图像帧编码方法及装置 | |
CN111654696B (zh) | 一种帧内的多参考行预测方法、装置、存储介质及终端 | |
CN113422955B (zh) | Heif图像编码方法和解码方法以及编码装置和解码装置 | |
CN117014618A (zh) | 一种基于图像压缩的分块方法、***及电子设备 | |
CN113365080B (zh) | 串编码技术的编解码方法、设备及存储介质 | |
CN112437307B (zh) | 一种视频编码方法、装置、电子设备及介质 | |
CN105828079B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |