解码方法、解码装置、存储介质及电子设备
文献发布时间:2023-06-19 11:21:00
技术领域
本公开的实施方式涉及图像技术领域,更具体地,本公开的实施方式涉及一种解码方法、解码装置、计算机可读存储介质及电子设备。
背景技术
本部分旨在为权利要求中陈述的本公开的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。
通常,由图像采集设备直接采集到的图像或视频输出文件均包含大量的数据,为便于传输,需要对其进行压缩编码。压缩编码后的数据可以通过有线或者无线网络传输至用户端,由用户端对压缩编码后的数据进行解码,并转换为解压缩后的图像数据。
发明内容
然而,为了提高输出传输的效率,往往需要将压缩图像的传输码率控制在一定范围内,但随着码率的降低,压缩图像的数据量不断减少,但也会导致解码时所能获得的图像质量大幅降低。
为此,非常需要一种解码方法,以提升解码后的图像质量。
在本上下文中,本公开的实施方式期望提供一种解码方法、解码装置、计算机可读存储介质及电子设备。
根据本公开实施方式的第一方面,提供一种解码方法,包括:获取待解码图像,所述待解码图像包括原始图像参数;根据所述待解码图像的变换参数对所述待解码图像进行解码,得到解码图像,所述变换参数包括分辨率变换参数和尺度变换参数;通过所述解码图像生成所述待解码图像的输出图像。
在一种可选的实施方式中,所述待解码图像包括多个子图像,所述待解码图像的变换参数包括所述多个子图像的变换参数;所述根据所述待解码图像的变换参数对所述待解码图像进行解码,得到解码图像,包括:根据所述多个子图像的变换参数确定每个子图像的变换参数;根据所述子图像的变换参数对所述子图像进行解码,得到所述子图像的子解码图像;所述通过所述解码图像生成所述待解码图像的输出图像,包括:通过所述子解码图像生成所述待解码图像的输出图像。
在一种可选的实施方式中,所述方法还包括:根据所述多个子图像的变换参数的数量确定队列数量;按照所述队列数量生成关于所述解码图像的参考图像队列;所述根据所述多个子图像的变换参数确定每个子图像的变换参数,包括:在所述参考图像队列中,确定每个所述子图像的目标参考图像队列;通过所述目标参考图像队列确定每个所述子图像的变换参数。
在一种可选的实施方式中,所述根据所述子图像的变换参数对所述子图像进行解码,得到所述子图像的子解码图像,包括:将第一子图像的变换参数确定为第一变换参数;以第二子图像在所述第一变换参数下对应的变换图像为参考,对所述第一子图像进行解码,生成所述第一子图像的子解码图像。
在一种可选的实施方式中,所述原始图像参数包括所述待解码图像的原始分辨率参数,所述通过所述解码图像生成所述待解码图像的输出图像,包括:根据所述原始分辨率参数对所述解码图像进行上采样,生成分辨率与所述原始分辨率参数相同的输出图像。
在一种可选的实施方式中,所述原始图像参数包括所述待解码图像的原始尺度参数,所述通过所述解码图像生成所述待解码图像的输出图像,包括:根据所述原始尺度参数,通过去模糊化操作对所述解码图像进行尺度扩展,生成图像尺度与所述原始尺度参数相同的输出图像。
在一种可选的实施方式中,在通过所述解码图像生成所述待解码图像的输出图像时,所述方法还包括:对所述解码图像进行环路滤波,生成所述输出图像。
根据本公开实施方式的第二方面,提供一种解码装置,包括:获取模块,用于获取待解码图像,所述待解码图像包括原始图像参数;解码模块,用于根据所述待解码图像的变换参数对所述待解码图像进行解码,得到解码图像,所述变换参数包括分辨率变换参数和尺度变换参数;生成模块,用于通过所述解码图像生成所述待解码图像的输出图像。
在一种可选的实施方式中,所述待解码图像包括多个子图像,所述待解码图像的变换参数包括所述多个子图像的变换参数;所述解码模块包括:参数确定单元,用于根据所述多个子图像的变换参数确定每个子图像的变换参数;解码单元,用于根据所述子图像的变换参数对所述子图像进行解码,得到所述子图像的子解码图像;所述生成模块用于通过所述子解码图像生成所述待解码图像的输出图像。
在一种可选的实施方式中,所述解码模块还包括:队列数量确定单元,用于根据所述多个子图像的变换参数的数量确定队列数量;队列生成单元,用于按照所述队列数量生成关于所述解码图像的参考图像队列;所述参数确定单元还包括:队列确定子单元,用于在所述参考图像队列中,确定每个所述子图像的目标参考图像队列;参数确定子单元,用于通过所述目标参考图像队列确定每个所述子图像的变换参数。
在一种可选的实施方式中,所述解码单元包括:变换参数确定子单元,用于将第一子图像的变换参数确定为第一变换参数;解码子单元,用于以第二子图像在所述第一变换参数下对应的变换图像为参考,对所述第一子图像进行解码,生成所述第一子图像的子解码图像。
在一种可选的实施方式中,所述原始图像参数包括所述待解码图像的原始分辨率参数,所述生成模块用于根据所述原始分辨率参数对所述解码图像进行上采样,生成分辨率与所述原始分辨率参数相同的输出图像。
在一种可选的实施方式中,所述原始图像参数包括所述待解码图像的原始尺度参数,所述生成模块用于根据所述原始尺度参数,通过去模糊化操作对所述解码图像进行尺度扩展,生成图像尺度与所述原始尺度参数相同的输出图像。
在一种可选的实施方式中,在通过所述解码图像生成所述待解码图像的输出图像时,所述生成模块还用于对所述解码图像进行环路滤波,生成所述输出图像。
根据本公开实施方式的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种解码方法。
根据本公开实施方式的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一种解码方法。
根据本公开实施方式的解码方法、装置、存储介质及电子设备,可以根据待解码图像的变换参数对待解码图像进行解码,得到解码图像,并通过解码图像生成待解码图像的输出图像。一方面,本公开可以将待解码图像转换为具有较高图像质量的输出图像,减少图像损失;另一方面,通过利用待解码图像的变换参数对待解码图像进行解码,可以提高图像的解码效率。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示出了根据本公开实施方式的一种系统架构的示意图;
图2示出了根据本公开实施方式的一种解码方法的流程图;
图3示出了根据本公开实施方式的一种原始图像的示意图;
图4示出了根据本公开实施方式的一种解码方法的子流程图;
图5示出了根据本公开实施方式的另一种解码方法的子流程图;
图6示出了根据本公开实施方式的一种子图像的解码示意图;
图7示出了根据本公开实施方式的一种解码架构的示意图;
图8示出了根据本公开实施方式的一种编码方法的流程图;
图9示出了根据本公开实施方式的一种多尺度变换的示意图;
图10示出了根据本公开实施方式的另一种多尺度变换的示意图;
图11示出了根据本公开实施方式的一种编码架构的示意图;
图12示出了根据本公开实施方式的一种编码方法的子流程图;
图13示出了根据本公开实施方式的另一种编码方法的子流程图;
图14示出了根据本公开实施方式的一种解码装置的结构图;以及
图15示出了根据本公开实施方式的一种电子设备的结构图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提供一种解码方法、解码装置、计算机可读存储介质及电子设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐述本公开的原理和精神。
本公开发明人发现,为了提高输出传输的效率,往往需要将压缩图像的传输码率控制在一定范围内,但随着码率的降低,压缩图像的数据量不断减少,但也会导致解码时所能获得的图像质量大幅降低。
鉴于上述内容,本公开的基本思想在于:提供一种解码方法、解码装置、计算机可读存储介质及电子设备,可以根据待解码图像的变换参数对待解码图像进行解码,得到解码图像,并通过解码图像生成待解码图像的输出图像。一方面,本公开可以将待解码图像转换为具有较高图像质量的输出图像,减少图像损失;另一方面,通过利用待解码图像的变换参数对待解码图像进行解码,可以提高图像的解码效率。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
需要注意的是,下述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
本公开可以应用于传输图像数据等场景,例如:在接收到编码端发送的待解码图像后,可以通过执行本示例性实施方式,根据待解码图像的变换参数对待解码图像进行解码,得到解码图像,并通过解码图像生成待解码图像的输出图像,该输出图像可以直接用于显示或播放,且具有较高的图像质量。
本公开的示例性实施方式首先提供一种解码方法。图1示出了该方法运行环境的系统架构图。如图1所示,该系统架构100可以包括:终端设备110和服务端120。终端设备110表示具备编码和/或解码功能的终端设备,如智能手机、平板电脑、个人电脑等。终端设备110和服务端120之间可以通过提供通信链路的介质,如有线、无线通信链路或者光纤电缆等进行信息交互,例如,终端设备110可以对获取的图像进行编码,并将编码后生成的数据发送至服务端,由服务端120接收终端设备110发送的编码后的数据,并对其进行解码。
需要说明的是,本示例性实施方式对于图1中各设备的数量不做限制,例如可以根据实现需要而设置任意数量的终端设备110,服务端120可以是由多台服务器形成的集群。
本公开的示例性实施方式所提供的解码方法一般由服务端120执行,相应的,解码装置可以设置于服务端120中。但本领域技术人员容易理解的是,本公开的示例性实施方式所提供的解码方法也可以由终端设备110执行,相应的,解码装置可以设置于终端设备110中。举例而言,在一种可选的实施方式中,可以由终端设备110对获取的图像进行编码,并将编码后的数据上传至服务端120,由服务端120通过本示例性实施方式所提供的解码方法对编码后的数据进行解码,或者,也可以由服务端120对获取的图像进行编码,并传输至终端设备110,由终端设备110通过本示例性实施方式所提供的解码方法对编码后的数据进行解码。
图2示出了由上述终端设备110或服务端120所执行的解码方法的示例性流程,可以包括:
步骤S210,获取待解码图像,该待解码图像包括原始图像参数。
其中,待解码图像是指解码端接收到的图像序列,可以是实时获取的图像序列,也可以是预先存储的待解码图像序列;原始图像参数是指待解码图像编码前的图像信息。
步骤S220,根据待解码图像的变换参数对待解码图像进行解码,得到解码图像,该变换参数包括分辨率变换参数和尺度变换参数。
其中,变换参数可以是由分辨率变换参数和尺度变换参数组成的参数组合,且每组变换参数可以包括一个分辨率变换参数和一个尺度变换参数。
在获取待编码图像后,可以先根据待编码图像的变换参数对待编码图像进行处理,然后按照相应的解码方式对处理后的待编码图像进行解码,来生成解码图像。
步骤S230,通过解码图像生成待解码图像的输出图像。
在得到待解码图像的解码图像后,可以根据待编码图像的原始图像参数对解码图像进行变换处理,将解码图像转换为高质量的输出图像。
根据本示例性实施方式中的解码方法,可以根据待解码图像的变换参数对待解码图像进行解码,得到解码图像,并通过解码图像生成待解码图像的输出图像。一方面,通过利用待解码图像的变换参数对待解码图像进行解码,可以提高图像的解码效率;另一方面,将解码图像转换为输出图像,可以将待解码图像恢复为具有较高质量的输出图像,提升了图像的显示效果。
下面分别对图2中的每个步骤做具体说明。
步骤S210中,获取待解码图像,该待解码图像包括原始图像参数。
待解码图像是指解码端接收到的图像序列,可以是实时获取的图像序列,也可以是预先存储的待解码图像序列;原始图像参数是指待解码图像编码前的图像信息,即,原始图像的图像信息,可以包括原始图像的格式、分辨率、尺度和颜色信息等。
本示例性实施方式中,可以接收编码端发送的码流数据,并按照预先确定的语法结构对码流数据进行解析,例如,可以首先将码流数据分离为多个字节单元,并对每个字节单元进行解析,得到待解码图像和待解码图像的参数信息等。
步骤S220中,根据待解码图像的变换参数对待解码图像进行解码,得到解码图像。
其中,变换参数可以是由分辨率变换参数和尺度变换参数组成的参数组合,且每组变换参数可以包括一个分辨率变换参数和一个尺度变换参数。此外,根据原始图像的图像类型,每组变换参数还可以包括像素深度变换参数、位平面数目变换参数和彩色空间类型变换参数等其他变换参数。
在获取待编码图像后,可以先根据待编码图像的变换参数对待编码图像进行处理,然后按照相应的解码方式对处理后的待编码图像进行解码,来生成解码图像。
本示例性实施方式中,各待解码图像的变换参数可能相同,也可能不同。基于此,在对待解码图像进行解码时,可以根据待解码图像的变换参数对上一个待解码图像进行变换处理,使得上一个待解码图像的变换参数与当前待解码图像的变换参数一致,然后以上一个待解码图像经过变换处理后得到的变换图像为参考,对上述待解码图像进行解码。
在一种可选的实施方式中,待解码图像可以由多个子图像构成,相应的,待解码图像的变换参数也可以包括多个子图像的变换参数。其中,待解码图像的子图像可以是原始图像的子区域编码后生成的图像序列,原始图像的子区域是指原始图像中的局部图像区域,例如,参考图3所示,原始图像300中每个相同大小的正方形区域为一个子区域,待解码图像的子图像是由每个子区域编码生成的图像序列。
需要说明的是,在编码过程中,原始图像每个子区域的大小和形状等均可以依据图像类型等适应性调整,例如,可以根据原始图像的前景画面和背景画面,将原始图像按照前景画面和背景画面的区域划分为两个子区域,对这两个子区域进行编码,可以得到待解码图像的两个子图像;或者也可以将前景画面和背景画面分别划分为多个不同大小和形状的子区域,相应的,可以得到多个不同大小和形状的子区域对应的子图像。
考虑到在编码过程中,可以利用图像序列时域的相关性采用帧间预测的编码方式对原始图像进行编码,而帧间预测是以参考图像为基础的。因此,为了在解码时快速确定每个待解码图像的参考图像,在一种可选的实施方式中,在获取待解码图像后,还可以根据待解码图像所包含的子图像的变换参数的数量确定队列数量,并按照队列数量生成关于解码图像的参考图像队列,一个参考图像队列对应一种变换参数。例如,假设变换参数为由M个分辨率变换参数和N个尺度变换参数组成的参数组合,则可以生成M*N个队列的参考图像队列;或者也可以将变换参数的数量直接确定为队列数量,来生成参考图像队列,其中,M,N均为正整数。
解码图像可以是对待解码图像进行解码后生成的图像,参考图像队列可以用于存储待解码图像中每个子图像的参考图像,每个子图像的参考图像可以是通过上一个子图像的解码图像与当前子图像的输入图像进行运动估计得到的解码图像。
当待解码图像包括多个子图像时,参考图4所示,对待解码图像进行解码可以包括步骤S410~S420:
在步骤S410中,根据多个子图像的变换参数确定每个子图像的变换参数。
本示例性实施方式中,所有的子图像可以对应一种或多种变换参数,为了确定每个子图像的变换参数,可以按照变换参数的对应关系在上述多个子图像的变换参数中确定每个子图像的变换参数,例如,可以将多个子图像的变换参数按照一定顺序排列,然后根据每个子图像的图像序列确定其对应的变换参数顺序,如可以根据编码端的编码规则从每个子图像的图像序列的首部位置读取变换参数顺序,从而在多个子图像的变换参数中查找到每个子图像的变换参数顺序所对应的变换参数。
在参考图像队列中,子图像与其对应的解码图像可以具有相同的变换参数,因此,在一种可选的实施方式中,可以通过参考图像队列确定每个子图像的变换参数,具体的,可以首先在参考图像队列中确定每个子图像的目标参考图像队列,如可以从每个子图像的图像序列中读取子图像的队列信息,来确定子图像的目标参考图像队列,然后通过目标参考图像队列确定每个子图像的变换参数。
在一种可选的实施方式中,每个子图像的变换参数也可以直接存储在其对应的子图像的图像序列中,此时,在确定每个子图像的变换参数时,只需要从子图像的图像序列中提取变换参数即可。
在步骤S420中,根据子图像的变换参数对该子图像进行解码,得到该子图像的子解码图像。
在确定每个子图像的变换参数后,可以依据每个子图像的变换参数对子图像进行变换处理,然后对变换后的图像进行解码,得到每个子图像的子解码图像。
在一种可选的实施方式中,在根据子图像的变换参数对该子图像进行解码时,参考图5所示,可以包括以下步骤S510~S520:
在步骤S510中,将第一子图像的变换参数确定为第一变换参数。
在步骤S520中,以第二子图像在第一变换参数下对应的变换图像为参考,对第一子图像进行编码,生成第一子图像的子解码图像。
其中,第一子图像是指当前需要进行解码的子图像,第二子图像是指第一子图像的前一个子图像,即上一个进行解码的子图像。
在对待解码图像进行解码时,可以按照待解码图像中子图像的顺序依次对每个子图像进行解码。具体的,对于当前需要进行解码的子图像,即第一子图像,可以先确定第一子图像的变换参数,作为第一变换参数,然后获取前一个子图像,即第二子图像,按照第一变换参数对第二子图像进行变换处理,得到第二子图像在第一变换参数下的变换图像,以该变换图像为参考,对第一子图像进行解码,得到第一子图像的子解码图像。其中,对第一子图像进行解码可以按照第一子图像中的编码块的大小和顺序,依次对每个编码块进行解码,例如,参考图6所示,可以以编码块0为起始,依次对编码块1、编码块2……编码块n进行解码,得到每个编码块对应的解码块,最后将每个编码块对应的解码块转换为第一子图像的子解码图像。在完成第一子图像的解码后,可以将下一个子图像作为新的第一子图像,将第一子图像作为新的第二子图像,继续对下一个子图像进行解码,直至完成全部子图像的解码,得到全部子图像的子解码图像。需要说明的是,图6中示出的编码块的解码顺序仅为示例性说明,本公开的保护范围并不以此为限。
进一步的,图7示出了本示例性实施方式中的一种解码架构,步骤S220中对待解码图像进行解码的方法可以通过该解码架构完成。具体的,可以包括以下过程:
(1)首先,由解码控制模块701给出实施预测处理时的处理单位的编码块的尺寸,以及具有该尺寸的编码块被分层地分割时的上限的层次数;同时,解码控制模块701也可以从可利用的解码模式中选择适合于分层地分割的各个编码块的解码模式。
(2)由反量化模块702对待解码图像进行逆量化处理,以及对逆量化处理后的压缩数据进行逆变换处理,将逆变换处理后的压缩数据作为解压缩后的差分图像的输出。例如,可以根据解码控制模块701中的量化参数对待编码图像进行反量化,然后根据DCT(Discrete Cosine Transform,离散余弦变换)变换的可逆性,按照解码控制模块701给出的编码块的尺寸单位对实施了逆量化后的图像数据进行逆DCT变换处理,将实施逆量化后的图像数据转换为解压缩后的差分图像的输出。
(3)将反量化模块702输出的压缩数据和编码块的预测图像相加,并通过滤波模块702进行滤波处理,得到上述编码块的解码图像。其中,预测图像是由预测模块704参考上一个编码块的解码图像,使用从解码控制模块701输出的预测参数,对上述编码块进行预测生成的。
(4)按照(1)~(3)生成待解码图像每个编码块的解码图像,然后根据每个编码块的解码图像生成待编码图像的解码图像。
步骤S230中,通过解码图像生成待解码图像的输出图像。
在得到待解码图像的解码图像后,可以根据待编码图像的原始图像参数对解码图像进行变换处理,将解码图像转换为高质量的输出图像。例如,可以根据原始图像所具有的原始图像参数对解码图像进行变换处理,将解码图像恢复为与原始图像具有相同图像参数,如分辨率、尺度或颜色信息等的输出图像。
当待解码图像包括多个子图像时,在一种可选的实施方式中,待解码图像的输出图像也可以通过多个子图像解码生成的子解码图像生成。具体而言,可以利用子图像的变换参数对其对应的子解码图像进行变换处理,来生成子解码图像的子输出图像,将每个子输出图像按照一定顺序进行拼合,生成待解码图像的输出图像。
在一种可选的实施方式中,当待解码图像的原始图像参数包括原始分辨率参数时,可以根据原始分辨率参数对解码图像进行上采样,生成分辨率与原始分辨率参数相同的输出图像。例如,可以通过插值方法,如最近邻插值、双线性插值等计算解码图像在任意两个像素之间的插值像素,将插值像素插入至解码图像,生成具有较高分辨率的输出图像。此外,也可以通过超分辨率重建算法,如迭代反投影法、邻域嵌入法等将解码图像转换为具有较高分辨率的输出图像。
在一种可选的实施方式中,当待解码图像的原始图像参数包括原始尺度参数时,可以根据原始尺度参数,通过去模糊化操作对解码图像进行尺度扩展,生成图像尺度与原始尺度参数相同的输出图像。例如,可以通过模糊核将解码图像转换为模糊图像,并依据该模糊图像提取解码图像对应的图像区域的细节信息,将细节信息与解码图像进行融合,生成解码图像的输出图像。
通过根据原始分辨率参数或原始尺度参数对解码图像进行处理,可以将压缩变换后的解码图像重建为具有较高图像质量的输出图像。
此外,在通过解码图像生成待解码图像的输出图像时,在生成解码图像时,为了减小解码图像的失真,在一种可选的实施方式中,还可以对解码图像进行环路滤波,来生成输出图像。参考图7所示,在生成待解码图像的解码图像后,可以通过滤波模块703对解码图像进行滤波处理,去除在每个解码图像边界发生的失真,然后通过反损失模块705执行步骤S230对滤波处理后的解码图像进行变换处理,生成输出图像。具体的滤波方式可以包括:去块滤波、样本自适应补偿滤波和自适应环路滤波等中的任意一种或多种,本示例性实施方式对此不做具体限定。
进一步的,本示例性实施方式还提供了一种编码方法,该方法可以用于生成本示例性实施方式中的待解码图像。参考图8所示,可以包括以下步骤S810~S840:
步骤S810,获取原始图像的待编码图像。
本示例性实施方式中,待编码图像可以是原始图像本身,也可以是由原始图像划分而成的每个子区域图像,将每个子区域图像进行编码,可以得到本示例性实施方式解码方法中的每个子图像。
步骤S820,利用多组变换参数对待编码图像进行变换处理,得到待编码图像在每组变换参数下对应的变换图像,每组变换参数包括分辨率变换参数和尺度变换参数。
其中,多组变换参数可以与本示例性实施方式上述解码方法中的变换参数相同,每组变换参数可以包括分辨率变换参数和/或尺度变换参数,也可以包括像素深度变换参数、位平面数目变换参数和彩色空间类型变换参数等其他变换参数。
本示例性实施方式中,可以通过利用多组变换参数对待编码图像进行变换处理,来减少待编码图像的图像数据。举例而言,可以按照多组变换参数中各组变换参数的次序,依次按照各组变换参数中的每个变换参数对待编码图像进行变换处理,得到各组变换参数对应的变换图像,该变换图像的各个图像参数与对应的一组变换参数中的各个参数相匹配。
在一种可选的实施方式中,可以利用上述多组变换参数对待编码图像进行多尺度变换,得到每组变换参数下对应的变换图像。具体而言,可以按照各组变换参数在图像尺度空间生成待编码图像的多尺度表示,例如,可以根据多组变换参数对待编码图像进行分辨率和尺度的变换,将待编码图像转换为每组变换参数所对应的多尺度表示,得到变换图像。
图9示出了本示例性实施方式中一种多尺度变换的示意图,如图所示,待编码图像的初始像素值为N,对待编码图像进行多尺度变换可以包括两个方向,即尺度方向和分辨率方向上的变换。在尺度方向,可以通过低通滤波器对待编码图像进行平滑处理,使得待编码图像的尺度不断增大,可以看出,随着尺度的增大,待编码图像显示为逐渐模糊的近似图像,各个层级近似图像的尺度依次为:k*δ,k
在一种可选的实施方式中,也可以通过小波分解对待编码图像进行多尺度变换。具体的,参考图10所示,L、H分别表示小波分解的高低频信息,低频信息表示待编码图像的整体信息,高频信息表示待编码图像的细节信息。如图所示,在第一分解层上,将待编码图像分解为LL1、HL1、LH1和HH1四个频带分量,在第二分解层上,对低频分量LL1进行分解,得到LL2、HL2、LH2和HH2四个频带分量,然后继续对新的低频分量LL2进行分解,直至分解达到预设次数。其中,四个频带分量是各分解图像与小波基函数求内积,然后在分解图像的行和列上分别进行下采样生成的。
通过对待编码图像进行多尺度变换,可以在深层结构上分析待编码图像的信息,得到待编码图像在每种尺度下的图像特征,能够提高提取待编码图像的特征的准确性,同时也可以实现待编码图像数据的降维,减少待编码图像的图像数据。
进一步的,图11示出了本示例性实施方式中的一种编码架构,步骤S820的方法可以通过图11中的损失模块1101完成,使得可以利用多组变换参数将输入的待编码图像依次转换为相应的变换图像。其中,编码控制模块1102可以用于决定多组变换参数的数量和每组变换参数的参数值。
通过利用多组变换参数对待编码图像进行变换处理,可以预先减少待编码图像的数据量,提高图像的编码效率。
步骤S830,确定变换图像中的目标变换图像。
其中,目标变换图像可以作为进行编码的待编码图像的输入图像,相比待编码图像,目标变换图像的数据量更少,对其进行编码所得到的编码效率更高。
在一种可选的实施方式中,可以对变换图像进行逆变换,通过逆变换后的变换图像与待编码图像的误差确定目标变换图像。例如,对于每个变换图像,可以对变换图像进行上采样或下采样,将变换图像恢复为分辨率与待编码图像的分辨率相同的恢复图像,并计算每个恢复图像与待编码图像之间的误差,将最小误差对应的变换图像确定为目标变换图像,或者也可以将误差小于一定阈值的变换图像确定为目标变换图像。
考虑到编码后的图像需要在解码端进行解码,并复原成与待编码图像具有相同图像参数的重建图像,在一种可选的实施方式中,也可以通过对变换图像进行编码,生成重建图像,并根据该重建图像确定待编码图像的目标变换图像。举例而言,可以对每个变换图像进行编码,剔除变换图像中的冗余信息,然后根据编码后的图像重建出各变换图像的重建图像,将各变换图像的重建图像与待编码图像进行比较,确定变换图像的图像误差,将最小的图像误差对应的变换图像确定为目标变换图像。
在一种可选的实施方式中,在对变换图像进行编码,生成重建图像,并根据重建图像确定待编码图像的目标变换图像时,参考图12所示,可以包括以下步骤S1210~S1230:
在步骤S1210中,对变换图像进行编码,生成该变换图像的编码图像。
本示例性实施方式中,对变换图像的编码可以包括两个过程,即变换和量化,在进行编码时可以用控制器给出编码参数,根据编码参数中的变换图像的区块的大小单位对差分图像进行Z字型描述和变换处理,例如DCT(Discrete Cosine Transform,离散余弦变换),然后对得到的变换图像的DCT系数进行相应的量化,经量化处理后再进行VLC(Variable-length Coding,变长编码)处理,得到变换图像的编码图像。
在步骤S1220中,按照待编码图像的原始图像参数对编码图像进行多尺度变换,生成重建图像。
其中,原始图像参数待编码图像的初始图像参数,可以包括分辨率参数、尺度参数和颜色参数等。
本示例性实施方式中,编码图像的图像参数与变换图像相同,为了复原编码图像,使其与待编码图像具有尽可能接近的图像质量,可以根据待编码图像的原始图像参数对编码图像进行多尺度变换,将编码图像转换为重建图像。
在一种可选的实施方式中,当原始图像参数包括分辨率参数时,步骤S1220可以通过以下方法实现:
在编码图像中,将分辨率小于分辨率参数的编码图像确定为低分辨率图像;对上述低分辨率图像进行上采样,生成低分辨率图像的重建图像。
在对低分辨率图像进行上采样时,可以通过插值方法,如最近邻插值、双线性插值等计算低分辨率图像在任意两个像素之间的插值像素,将插值像素插入至低分辨率图像,生成高分辨率的重建图像。此外,也可以通过超分辨率重建算法,如迭代反投影法、邻域嵌入法等将低分辨率图像转换为高分辨率的重建图像。
在一种可选的实施方式中,当原始图像参数可以包括尺度参数时,步骤S1220也可以通过以下方法实现:
在编码图像中,将图像尺度小于尺度参数的编码图像确定为小尺度图像;通过去模糊化操作对小尺度图像进行尺度扩展,生成小尺度图像的重建图像。
在对小尺度图像进行尺度扩展时,可以通过模糊核将小尺度图像转换为模糊图像,并依据该模糊图像提取小尺度图像对应的图像区域的细节信息,将细节信息与小尺度图像进行融合,生成小尺度图像的重建图像。
在步骤S1230中,根据重建图像确定变换图像的率失真误差,将小于误差阈值的率失真误差对应的变换图像确定为待编码图像的目标变换图像。
本示例性实施方式中,为了尽可能地减小重建图像的失真,可以将平均误差或均方误差等作为评估重建图像的失真测度,计算重建图像的率失真误差,将小于误差阈值的率失真误差对应的变换图像确定为目标变换图像,或者也可以将率失真误差中的最小误差所对应的变换图像确定为目标变换图像。以下示出了一种计算率失真误差的伪代码:
进一步的,在一种可选的实施方式中,在根据重建图像确定待编码图像的目标变换图像后,参考图13所示,还可以执行以下步骤S1310~S1320:
步骤S1310,根据多组变换参数的数量生成关于变换图像的参考图像队列,该参考图像队列与多组变换参数一一对应。
步骤S1320,将目标变换图像对应的重建图像添加到所述参考图像队列中。
具体而言,可以根据多组变换参数的数量确定队列数量,并按照该队列数量生成参考图像队列,也就是说,参考图像队列的队列数量与多组变换参数的数量一致,且每个参考图像队列对应一组变换参数。将目标变换图像的重建图像添加到参考图像队列中,使得在对下一个待编码图像的目标变换图像进行编码时,可以通过参考图像队列快速确定下一个待编码图像的目标变换图像的参考图像,以此提高对待编码图像进行编码的效率。
在一种可选的实施方式中,也可以将目标变换图像对应的全部重建图像添加到参考图像队列中。目标变换图像对应的全部重建图像可以通过对目标变换图像进行多尺度变换得到,具体的,可以根据多组变换参数对目标变换图像进行变换处理,例如,可以根据变换参数中的分辨率变换参数,对目标变换图像进行上采样或下采样,生成分辨率与各组分辨率变换参数相同的重建图像。
通过将目标变换图像对应的全部重建图像添加到参考图像队列中,可以在对下一个待编码图像的目标变换图像进行编码时,可以在参考图像队列中快速确定目标变换图像的参考图像,进一步提高对待编码图像进行编码的效率。
进一步的,在一种可选的实施方式中,对变换图像进行编码,生成重建图像,并根据重建图像确定目标变换图像的方法可以通过图11所示的编码架构完成。具体的,可以包括以下过程:
(1)首先由编码控制模块1102给出实施预测处理时的处理单位的编码块的尺寸,以及具有该尺寸的编码块被分层地分割时的上限的层次数;同时,编码控制模块1102也可以从可利用的编码模式中选择适合于分层地分割的各个编码块的编码模式;由块分割模块1103按照编码控制模块1102中的编码块的尺寸,对通过损失模块1101处理后生成的变换图像的输入图像进行分割,直至达到编码控制模块1102决定的具有上述尺寸的编码块被分层地分割时的上限的层次数为止。
(2)由量化模块1104根据编码参数中的变换图像的变换块的尺寸单位对差分图像进行Z字型描述和变换处理,例如DCT变换等,然后对得到的变换图像的DCT系数进行相应的量化。其中,差分图像是由块分割模块1103分割的编码块减去预测模块1106生成的预测图像生成的图像。
反量化模块1105可以对从量化模块1104输出的压缩数据进行逆量化处理,以及对逆量化处理后的压缩数据进行逆变换处理,将逆变换处理后的压缩数据作为解压缩后的差分图像的输出。例如,可以根据编码控制模块1102中的量化参数对量化模块1104输出的压缩数据进行反量化,然后根据DCT变换的可逆性,按照上述编码参数中的编码块的尺寸单位对实施了逆量化后的压缩数据进行逆DCT变换处理,将实施逆量化后的压缩数据恢复为解压缩后的差分图像的输出。
(3)预测模块1106可以一边参考上一个编码块的参考图像,一边使用从编码控制模块1102输出的预测参数,对接收到的编码块进行预测处理,生成预测图像。上一个编码块为经过量化模块1104处理后的编码块,上一个编码块经过量化模块1104和反量化模块1105处理后,与通过预测模块11011生成的预测图像相加,得到参考图像。
(4)按照(1)~(3)生成变换图像每个编码块的参考图像,将每个编码块的参考图像进行组合,生成变换图像的重建图像。
在一种可选的实施方式中,上述编码架构还可以包括滤波模块1107,可以对生成的每个编码块进行滤波处理,去除在块边界中发生的失真。
步骤S840,对目标变换图像进行编码,生成码流数据。
其中,码流数据是指图像数据在数字信道中传输的数据流。通过对目标变换图像进行编码,可以将图像数据转换为适于数字信道传输的码流数据。
在确定目标变换图像后,可以按照任意一种有损或无损的编码方式对目标变换图像进行编码,例如,可以通过霍夫曼编码或差分脉冲编码调制方法等对其进行编码,并生成码流数据。由于相比待编码图像,目标变换图像具有更小的数据量,且其对应的重建图像具有最小的图像失真,因此,通过对目标变换图像进行编码,可以在确保图像质量的基础上,有效提高待编码图像的编码效率和图像压缩比。
本示例性实施方式中,一张图像可以划分为多个子图像,而每个子图像即为一个待编码图像,由此,为了实现每张图像的编码,在一种可选的实施方式中,在对目标变换图像进行编码,生成码流数据时,可以将第一子图像的目标变换图像对应的变换参数确定为第一目标变换参数;以第二子图像在第一目标变换参数下对应的变换图像为参考,对第一子图像的目标变换图像进行编码,生成码流数据。其中,第一子图像是指当前需要进行编码的子图像,第二子图像是指第一子图像的前一个子图像。
对于每个第一子图像,即当前子图像,可以先获取第二子图像,即前一个子图像的目标变换图像,对该目标变换图像进行变换处理,将该目标变换图像转换为图像参数与第一子图像的目标变换图像相同的变换图像,然后以该变换图像作为第一子图像的参考,对第一子图像进行编码,例如,可以将第一子图像划分为多个编码块,并对每个编码块进行编码,生成第一子图像的码流数据,继而将下一个子图像作为新的第一子图像,并将当前子图像作为新的第二子图像,继续对下一个子图像进行编码,直至完成全部子图像的编码,得到全部子图像的码流数据。
在一种可选的实施方式中,可以通过图11所示的编码架构对目标变换图像进行编码,在编码完成后,通过图11所示的熵编码模块1108生成码流数据,具体的,可以通过编码控制模块1102获取编码模式和编码参数,由熵编码模块1108按照获得的编码模式和编码参数对目标变换图像的编码数据进行可变长编码,生成复用了编码数据、编码模式和编码参数的比特流。
本公开示例性实施方式还提供一种解码装置。参考图14所示,该解码装置1400可以包括:
获取模块1410,用于获取待解码图像,待解码图像包括原始图像参数;
解码模块1420,用于根据待解码图像的变换参数对待解码图像进行解码,得到解码图像,变换参数包括分辨率变换参数和尺度变换参数;
生成模块1430,用于通过解码图像生成待解码图像的输出图像。
在一种可选的实施方式中,待解码图像包括多个子图像,待解码图像的变换参数包括多个子图像的变换参数;解码模块1420包括:
参数确定单元,用于根据多个子图像的变换参数确定每个子图像的变换参数;
解码单元,用于根据子图像的变换参数对子图像进行解码,得到子图像的子解码图像;
生成模块1430用于通过子解码图像生成待解码图像的输出图像。
在一种可选的实施方式中,解码模块1420还包括:
队列数量确定单元,用于根据多个子图像的变换参数的数量确定队列数量;
队列生成单元,用于按照队列数量生成关于解码图像的参考图像队列;
参数确定单元还包括:
队列确定子单元,用于在参考图像队列中,确定每个子图像的目标参考图像队列;
参数确定子单元,用于通过目标参考图像队列确定每个子图像的变换参数。
在一种可选的实施方式中,解码单元包括:
变换参数确定子单元,用于将第一子图像的变换参数确定为第一变换参数;
解码子单元,用于以第二子图像在第一变换参数下对应的变换图像为参考,对第一子图像进行解码,生成第一子图像的子解码图像。
在一种可选的实施方式中,原始图像参数包括待解码图像的原始分辨率参数,生成模块1430用于根据原始分辨率参数对解码图像进行上采样,生成分辨率与原始分辨率参数相同的输出图像。
在一种可选的实施方式中,原始图像参数包括待解码图像的原始尺度参数,生成模块1430用于根据原始尺度参数,通过去模糊化操作对解码图像进行尺度扩展,生成图像尺度与原始尺度参数相同的输出图像。
在一种可选的实施方式中,在通过解码图像生成待解码图像的输出图像时,生成模块1430还用于对解码图像进行环路滤波,生成输出图像。
此外,本公开实施方式的其他具体细节在上述方法的发明实施方式中已经详细说明,在此不再赘述。
下面对本公开示例性实施方式的存储介质进行说明。
本示例性实施方式中,可以通过程序产品实现上述方法,如可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
该程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RE等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如"C"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
参考图15对本公开示例性实施方式的电子设备进行说明。该电子设备可以是上述终端设备110或服务端120。
图15显示的电子设备1500仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图15所示,电子设备1500以通用计算设备的形式表现。电子设备1500的组件可以包括但不限于:至少一个处理单元1510、至少一个存储单元1520、连接不同系统组件(包括存储单元1520和处理单元1510)的总线1530、显示单元1540。
其中,存储单元存储有程序代码,程序代码可以被处理单元1510执行,使得处理单元1510执行本说明书上述"示例性方法"部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元1510可以执行如图2、图4至图5、图8、图12至图13所示的方法步骤等。
存储单元1520可以包括易失性存储单元,例如随机存取存储单元(RAM)1521和/或高速缓存存储单元1522,还可以进一步包括只读存储单元(ROM)1523。
存储单元1520还可以包括具有一组(至少一个)程序模块1525的程序/实用工具1524,这样的程序模块1525包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1530可以包括数据总线、地址总线和控制总线。
电子设备1500也可以与一个或多个外部设备1600(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口1550进行。电子设备1500还包括显示单元1540,其连接到输入/输出(I/O)接口1550,用于进行显示。并且,电子设备1500还可以通过网络适配器1560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1560通过总线1530与电子设备1500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
- 一种解码方法、解码装置、电子设备和可读存储介质
- 视频解码方法、视频解码装置、存储介质与电子设备