CN114793283A - 图像编码方法、图像解码方法、终端设备及可读存储介质 - Google Patents

图像编码方法、图像解码方法、终端设备及可读存储介质 Download PDF

Info

Publication number
CN114793283A
CN114793283A CN202110102455.4A CN202110102455A CN114793283A CN 114793283 A CN114793283 A CN 114793283A CN 202110102455 A CN202110102455 A CN 202110102455A CN 114793283 A CN114793283 A CN 114793283A
Authority
CN
China
Prior art keywords
image
target
resolution
coding
original
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
Application number
CN202110102455.4A
Other languages
English (en)
Inventor
周建东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110102455.4A priority Critical patent/CN114793283A/zh
Publication of CN114793283A publication Critical patent/CN114793283A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Abstract

本申请适用于终端技术领域,尤其涉及图像编码方法、图像解码方法、终端设备及可读存储介质。本申请可以使得高分辨率图像在低分辨的终端设备上进行显示时,只需要进行部分图像数据和差分数据的传输或者获取,以有效缩短图像数据的传输时长,提高图像传输速度,或者有效缩短图像数据的获取时长,提高图像获取速度。而且,终端设备也只需要对部分图像数据和差分数据进行解码,即可以得到满足终端设备显示需求的目标图像,以有效减少终端设备进行图像处理时的运算复杂度,减少终端设备的处理功耗,提升图像的处理效率,提高图像呈现速度,提升用户体验。

Description

图像编码方法、图像解码方法、终端设备及可读存储介质
技术领域
本申请属于终端技术领域,尤其涉及图像编码方法、图像解码方法、终端设备及计算机可读存储介质。
背景技术
随着图像采集设备的发展,图像分辨率越来越高。但现有的终端设备中显示屏的屏幕分辨率远远低于图像分辨率,即受终端设备显示能力的限制,终端设备通常不能根据图像分辨率来进行图像呈现。但高分辨率图像会增加图像传输的时长,导致图像传输速度慢,且会增加图像解码显示等图像处理时的运算复杂度,造成终端设备的处理功耗高,使得图像呈现速度慢,影响用户体验。
发明内容
本申请实施例提供了一种图像编码方法、图像解码方法、终端设备及计算机可读存储介质,可以解决高分辨率图像导致图像传输速度慢、运算复杂度高、终端设备的处理功耗高以及图像呈现速度慢的问题。
第一方面,本申请实施例提供了一种图像编码方法,可以包括:
获取原始图像的第一分辨率和目标图像的第二分辨率,并根据所述第一分辨率和所述第二分辨率确定所述目标图像对应的目标编码轮次;
根据所述目标编码轮次获取所述原始图像对应的中间图像,并利用下采样算法对所述中间图像进行下采样,得到预测图像;
根据所述第二分辨率对所述原始图像进行缩放,得到所述原始图像对应的缩放图像,并将所述缩放图像与所述预测图像进行差分处理,得到差分图像;
利用压缩算法对所述差分图像进行压缩,得到所述差分图像对应的差分数据;
根据所述第二分辨率、所述目标编码轮次、所述下采样算法、所述压缩算法、所述差分数据以及原始编码文件得到所述原始图像的目标编码文件,所述原始编码文件为对所述原始图像进行编码得到的编码文件。
通过上述的图像编码方法,可以在原有图像编码的基础上,选取一定编码轮次的中间图像为基础,下采样作为低分辨率的目标图像的预测图像,并基于预测图像和原始图像对应的缩放图像得到差分图像。然后,在原始编码文件中插入差分图像对应的差分数据,从而可以通过预测图像与差分数据一起精确还原特定的低分辨率的目标图像,实现兼容原有编码方法的可变分辨率的图像编码。同时,在对基于该图像编码方法编码的图像进行分享时,可以根据接收设备的显示分辨率进行部分图像数据的传输,可以大幅减少需要传输的数据量,提高图像传输速度,提升用户体验。
在第一方面的一种可能的实现方式中,所述原始编码文件为通过JPEG累进模式对所述原始图像进行编码得到的编码文件。
示例性的,所述根据所述第一分辨率和所述第二分辨率确定所述目标图像对应的目标编码轮次,可以包括:
根据所述原始编码文件获取各编码轮次对应的已编码系数数量;
根据所述第一分辨率、所述第二分辨率和所述已编码系数数量确定所述目标图像对应的目标编码轮次,所述目标编码轮次为所述各编码轮次中的任一个。
在该方案提供的图像编码方法中,当原有图像编码为基于频谱选择的JPEG累进模式的图像编码时,由于频谱选择是先编码每一个像素块中的低频系数,然后再逐轮编码每一个像素块中的高频系数。即对每一个像素块中的64个DCT系数做多轮编码,每一轮仅编码各像素块中的一部分DCT系数,以使得随着编码轮次的增加,所编码的DCT系数的数量逐渐增加,从而逐渐增加图像的清晰度。因此,可以根据第一分辨率、第二分辨率和已编码的DCT系数的数量来准确确定目标图像对应的目标编码轮次。
示例性的,所述根据所述第一分辨率和所述第二分辨率确定所述目标图像对应的目标编码轮次,可以包括:
根据所述原始编码文件获取离散余弦变换系数的总字节数和各编码轮次对应的已编码字节数;
根据所述第一分辨率、所述第二分辨率、所述总字节数和所述已编码字节数确定所述目标图像对应的目标编码轮次,所述目标编码轮次为所述各编码轮次中的任一个。
在该方案提供的图像编码方法中,当原有图像编码为基于逐次近似的JPEG累进模式的图像编码时,由于逐次近似是先编码每一个像素块中各DCT系数的高位字节,然后再逐轮编码各DCT系数的低位字节,使得每个DCT系数的值越来越准确,从而逐渐增加图像的清晰度。因此,可以根据第一分辨率、第二分辨率、总字节数和已编码字节数来准确确定目标图像对应的目标编码轮次。
在第一方面的另一种可能的实现方式中,所述原始编码文件为通过PNG隔行扫描模式对所述原始图像进行编码得到的编码文件。
示例性的,所述根据所述第一分辨率和所述第二分辨率确定所述目标图像对应的目标编码轮次,可以包括:
根据所述原始编码文件获取各编码轮次对应的已编码像素数量;
根据所述第一分辨率、所述第二分辨率和所述已编码像素数量确定所述目标图像对应的目标编码轮次,所述目标编码轮次为所述各编码轮次中的任一个。
在该方案提供的图像编码方法中,当原有图像编码为PNG隔行扫描模式的图像编码时,由于PNG隔行扫描模式的每一轮扫描只扫描图像的部分像素。即PNG隔行扫描模式通过七轮扫描渐进地补充图像数据,以使得可以先快速显示出图像轮廓,然后随着扫描轮次的增加,逐渐增加图像数据,从而逐步提高图像的清晰度。因此,可以根据第一分辨率、第二分辨率和已编码像素数量来准确确定目标图像对应的目标编码轮次。
具体地,所述根据所述目标编码轮次获取所述原始图像对应的中间图像,可以包括:
从所述原始编码文件中获取所述目标编码轮次对应的图像数据,并对所述图像数据进行解码,得到所述原始图像对应的中间图像。
可以理解的是,所述根据所述第二分辨率、所述目标编码轮次、所述下采样算法、所述压缩算法、所述差分数据以及原始编码文件得到所述原始图像的目标编码文件,可以包括:
确定所述目标编码轮次对应的图像数据在所述原始编码文件中的第一位置,并根据所述第一位置确定所述差分数据在所述原始编码文件中的第二位置;
将所述差分数据插入至所述第二位置;
对所述第二分辨率、所述目标编码轮次、所述下采样算法的第一算法类型、所述压缩算法的第二算法类型进行编码,得到变分辨率文件头;
将所述变分辨率文件头插入至所述原始编码文件的原文件头。
在该方案提供的图像编码方法中,可对目标图像对应的第二分辨率、目标编码轮次、下采样算法对应的第一算法类型、压缩算法对应的第二算法类型进行编码,得到变分辨率文件头,并可以将变分辨率文件头和差分数据分别以自定义扩展字段的方式插入到原始编码文件,得到目标编码文件。其中,为了方便、快速地确定原始图像是否可以进行变分辨率显示,可以将变分辨率文件头插入至原始编码文件中原文件头的后面或者前面,构成目标编码文件的新文件头。同时,为了使得可以仅通过获取目标编码文件中的部分图像数据,即可以解码得到低分辨率的目标图像,可以将差分数据插入至原始编码文件中该目标编码轮次所对应的图像数据的前面或者后面,使得在进行图像的解码显示时,在确定低分辨率的目标图像所对应的目标编码轮次后,可以仅获取至该目标编码轮次所对应的图像数据和差分数据,即可以解码得到低分辨率的目标图像,提高图像呈现速度,提升用户体验。
第二方面,本申请实施例提供了一种图像解码方法,可以包括:
获取终端设备的显示分辨率,并根据所述显示分辨率和目标编码文件确定目标图像的目标分辨率,所述目标编码文件为根据上述第一方面中任一项所述的方法编码得到的编码文件;
根据所述目标分辨率确定所述目标图像对应的目标编码轮次,并根据所述目标编码轮次获取所述目标图像对应的图像数据和差分数据;
对所述图像数据进行解码,得到中间图像,并利用下采样算法对所述中间图像进行下采样,得到预测图像;
对所述差分数据进行解码,得到差分图像,并根据所述预测图像和所述差分图像生成所述目标分辨率的目标图像。
通过上述的图像解码方法,在终端设备的显示分辨率低于原始图像的第一分辨率时,终端设备可以根据自身的显示分辨率和原始图像可支持显示的第二分辨率获取部分图像数据和差分数据,并仅需要对部分图像数据和差分数据进行解码,即可以得到满足终端设备显示需求的目标图像,可以有效减少终端设备进行图像显示时的数据获取量,降低终端设备进行图像解码显示时的运算复杂度,降低终端设备的处理功耗,提高终端设备进行图像呈现的速度,提升用户的使用体验。
示例性的,所述利用下采样算法对所述中间图像进行下采样,得到预测图像,可以包括:
根据所述目标分辨率获取所述中间图像对应的下采样算法,并利用所述下采样算法对所述中间图像进行下采样,得到所述预测图像。
示例性的,所述对所述差分数据进行解码,得到差分图像,可以包括:
根据所述目标分辨率获取所述差分图像对应的压缩算法,并根据所述压缩算法对所述差分数据进行解码,得到所述差分图像。
具体地,所述根据所述预测图像和所述差分图像生成所述目标分辨率的目标图像,可以包括:
将所述预测图像和所述差分图像进行合并处理,得到所述目标分辨率的目标图像。
第三方面,本申请实施例提供了一种图像编码装置,可以包括:
编码轮次确定模块,用于获取原始图像的第一分辨率和目标图像的第二分辨率,并根据所述第一分辨率和所述第二分辨率确定所述目标图像对应的目标编码轮次;
预测图像获取模块,用于根据所述目标编码轮次获取所述原始图像对应的中间图像,并利用下采样算法对所述中间图像进行下采样,得到预测图像;
差分图像获取模块,用于根据所述第二分辨率对所述原始图像进行缩放,得到所述原始图像对应的缩放图像,并将所述缩放图像与所述预测图像进行差分处理,得到差分图像;
差分数据获取模块,用于利用压缩算法对所述差分图像进行压缩,得到所述差分图像对应的差分数据;
图像编码模块,用于根据所述第二分辨率、所述目标编码轮次、所述下采样算法、所述压缩算法、所述差分数据以及原始编码文件得到所述原始图像的目标编码文件,所述原始编码文件为对所述原始图像进行编码得到的编码文件。
在第三方面的一种可能的实现方式中,所述原始编码文件为通过JPEG累进模式对所述原始图像进行编码得到的编码文件。
示例性的,所述编码轮次确定模块,可以包括:
系数数量获取单元,用于根据所述原始编码文件获取各编码轮次对应的已编码系数数量;
第一编码轮次确定单元,用于根据所述第一分辨率、所述第二分辨率和所述已编码系数数量确定所述目标图像对应的目标编码轮次,所述目标编码轮次为所述各编码轮次中的任一个。
示例性的,所述编码轮次确定模块,可以包括:
字节数获取单元,用于根据所述原始编码文件获取离散余弦变换系数的总字节数和各编码轮次对应的已编码字节数;
第二编码轮次确定单元,用于根据所述第一分辨率、所述第二分辨率、所述总字节数和所述已编码字节数确定所述目标图像对应的目标编码轮次,所述目标编码轮次为所述各编码轮次中的任一个。
在第三方面的另一种可能的实现方式中,所述原始编码文件为通过PNG隔行扫描模式对所述原始图像进行编码得到的编码文件。
示例性的,所述编码轮次确定模块,可以包括:
像素数量获取单元,用于根据所述原始编码文件获取各编码轮次对应的已编码像素数量;
第三编码轮次确定单元,用于根据所述第一分辨率、所述第二分辨率和所述已编码像素数量确定所述目标图像对应的目标编码轮次,所述目标编码轮次为所述各编码轮次中的任一个。
具体地,所述差分图像获取模块,可以包括:
中间图像获取单元,用于从所述原始编码文件中获取所述目标编码轮次对应的图像数据,并对所述图像数据进行解码,得到所述原始图像对应的中间图像。
可选的,所述图像编码模块,可以包括:
位置确定单元,用于确定所述目标编码轮次对应的图像数据在所述原始编码文件中的第一位置,并根据所述第一位置确定所述差分数据在所述原始编码文件中的第二位置;
差分数据插入单元,用于将所述差分数据插入至所述第二位置;
文件头获取单元,用于对所述第二分辨率、所述目标编码轮次、所述下采样算法的第一算法类型、所述压缩算法的第二算法类型进行编码,得到变分辨率文件头;
文件头插入单元,用于将所述变分辨率文件头插入至所述原始编码文件的原文件头。
第四方面,本申请实施例提供了一种图像解码装置,可以包括:
分辨率确定模块,用于获取终端设备的显示分辨率,并根据所述显示分辨率和目标编码文件确定目标图像的目标分辨率,所述目标编码文件为根据上述第一方面中任一项所述的方法编码得到的编码文件;
编码轮次确定模块,用于根据所述目标分辨率确定所述目标图像对应的目标编码轮次,并根据所述目标编码轮次获取所述目标图像对应的图像数据和差分数据;
预测图像获取模块,用于对所述图像数据进行解码,得到中间图像,并利用下采样算法对所述中间图像进行下采样,得到预测图像;
图像解码模块,用于对所述差分数据进行解码,得到差分图像,并根据所述预测图像和所述差分图像生成所述目标分辨率的目标图像。
示例性的,所述预测图像获取模块,具体用于根据所述目标分辨率获取所述中间图像对应的下采样算法,并利用所述下采样算法对所述中间图像进行下采样,得到所述预测图像。
示例性的,所述图像解码模块,可以包括:
差分图像获取单元,用于根据所述目标分辨率获取所述差分图像对应的压缩算法,并根据所述压缩算法对所述差分数据进行解码,得到所述差分图像。
具体地,所述图像解码模块,还可以包括:
图像合并单元,用于将所述预测图像和所述差分图像进行合并处理,得到所述目标分辨率的目标图像。
第五方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,使所述终端设备实现上述第一方面中任一项所述的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被计算机执行时,使所述计算机实现上述第一方面中任一项所述的方法。
第七方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的方法。
附图说明
图1是本申请一实施例提供的图像编码方法或者图像解码方法所适用于的终端设备的结构示意图;
图2是本申请一实施例提供的图像编码方法或者图像解码方法所适用于的软件架构示意图;
图3是本申请一实施例对JPEG累进模式编码的图像进行解码显示的场景示意图;
图4是本申请一实施例提供的图像编码方法的流程示意图;
图5是本申请一实施例提供的图像解码方法的流程示意图;
图6是本申请一实施例提供的PNG隔行扫描模式的扫描示意图。
具体实施方式
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
此外,本申请实施例中提到的“多个”应当被解释为两个或两个以上。
本申请实施例中提供的图像编码方法或者图像解码方法中涉及的步骤仅仅作为示例,并非所有的步骤均是必须执行的步骤,或者并非各个信息或消息中的内容均是必选的,在使用过程中可以根据需要酌情增加或减少。本申请实施例中同一个步骤或者具有相同功能的步骤或者消息在不同实施例之间可以互相参考借鉴。
本申请实施例描述的业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
随着媒体体验要求和图像采集设备的发展,以照片为代表的图像分辨率越来越高,例如现有某手机拍摄得到的图像分辨率可达8192×6144。但现有终端设备中显示屏的屏幕分辨率远远低于图像分辨率,例如现有某手机中显示屏的屏幕分辨率约为2640*1200,约为上述图像分辨率的1/16,现有某笔记本电脑中显示屏的屏幕分辨率约为3000×2000,约为上述图像分辨率的1/8,等等。受终端设备显示能力的限制,现有终端设备通常不能完整呈现如此高分辨的图像。但高分辨率图像因具有较大的数据量,使得终端设备在进行图像解码显示等图像处理的运算复杂度较大、中央处理器(central processing unit,CPU)的占用率高,造成终端设备的处理功耗高,导致图像呈现速度慢,影响用户体验。另外,在云服务器或者多终端设备互联进行图像分享时,高分辨率图像具有的较大数据量耗费的传输时间也较多,图像传输速度慢,影响用户体验。
即对于只能显示图像的几分之一或者十几分之一的终端设备而言,高分辨率图像在数据传输和图像处理上具有较大的浪费,极大地降低了图像传输速度和图像呈现速度,增加了终端设备的处理功耗,影响用户体验。
目前,联合图像专家组(joint photographic experts group,JPEG)提供的层次模式可以实现变分辨率,即通过对高分辨率图像进行变分辨率处理,以针对低分辨率的终端设备,可以传输较低分辨率的图像数据,减少数据传输量,提高图像传输速度,同时可以降低终端设备的处理功耗,提高终端设备的图像呈现速度。
具体地,JPEG层次模式是将同一图像的不同分辨率版本以多帧方式先后压缩编码到同一个图片文件中,形成塔型编码。塔型编码的第一帧是能够独立解码的非差分帧,后续帧是基于前一帧做预测计算出的差分帧,且后一帧的分辨率在宽高上比前一帧扩大一倍,直到最后一帧表达图像的原有分辨率。差分帧的数据信息量小、压缩率高,因此,JPEG层次模式下多帧压缩编码后的图片文件的大小,一般不会大于原有分辨率图像进行单图压缩编码后的图片文件的大小。其中,终端设备如果只需要还原特定较小分辨率的图像,可以只读取压缩编码后的图片文件中自文件头开始的部分数据,并对该部分数据进行解码显示,来得到特定较小分辨率的图像。但由于JPEG层次模式的编解码方法比较复杂,且不能兼容已经广泛支持的JPEG累进模式,使得JPEG层次模式在生态推广上比较困难。例如,目前主流的商用解码库、浏览器和操作系统中使用的一般都是JPEG累进模式,基本没有应用和实现JPEG层次模式。而目前的JPEG累进模式不具有变分辨率的能力,在进行高分辨率图像的传输和解码显示等图像处理时,仍会造成终端设备的处理功耗高,导致图像传输速度和图像呈现速度慢,影响用户体验。
为解决上述问题,本申请实施例提供了一种图像编码方法、图像解码方法、终端设备及计算机可读存储介质。该图像编码方法,在基于JPEG累进模式或者便携式网络图形(portable network graphics,PNG)的隔行扫描模式对高分辨率的原始图像进行编码时,可以根据原始图像的第一分辨率确定低分辨率的目标图像的第二分辨率,并可以根据第一分辨率与第二分辨率确定目标图像对应的目标编码轮次。随后,可以获取该目标编码轮次对应的中间图像,并对中间图像进行下采样,得到目标图像对应的预测图像。然后,可以根据第二分辨率直接对原始图像进行缩放,得到缩放图像,并将缩放图像与预测图像进行差分处理,得到差分图像。最后,可以对差分图像进行压缩编码,得到差分图像对应的差分数据,并可以将差分数据添加至JPEG累进模式编码或者PNG隔行扫描模式对应的原始编码文件中,得到原始图像对应的目标编码文件。在进行图像解码显示时,终端设备可以获取终端设备的显示分辨率,并可以根据显示分辨率和目标编码文件确定目标图像的目标分辨率。然后,终端设备可以根据目标分辨率确定目标图像对应的目标编码轮次,并从目标编码文件中获取该目标编码轮次所对应的中间图像的图像数据以及该目标编码轮次对应的差分数据。随后,终端设备可以对中间图像的图像数据进行解码,得到中间图像,并可以对中间图像进行下采样,得到预测图像。同时,终端设备可以对差分数据进行解码,得到差分图像。最后,终端设备可以根据预测图像和差分图像,得到目标分辨率的目标图像。
即本申请实施例以JPEG累进模式或者以PNG隔行扫描模式为基础,构建可以兼容JPEG累进模式或者PNG隔行扫描模式的图像编码方法,该图像编码方法可以使得高分辨率图像在低分辨终端设备上进行显示时,只需要进行部分图像数据和差分数据的传输或者获取,以有效缩短图像数据的传输时长,提高图像传输速度,或者有效缩短图像数据的获取时长,提高图像获取速度。而且,终端设备也只需要对部分图像数据和差分数据进行解码,即可以得到满足终端设备显示需求的目标图像,以有效减少终端设备进行图像处理时的运算复杂度,减少终端设备的处理功耗,提升图像处理效率,提高图像呈现速度,提升用户体验,具有较强的易用性和实用性。
可以理解的是,本申请实施例涉及的终端设备可以为手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、桌上型计算机、云端服务器等,本申请实施例对终端设备的具体类型不作任何限制。
以下首先介绍本申请实施例涉及的终端设备。请参阅图1,图1示出了终端设备100的一种结构示意图。
终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现终端设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现终端设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。
终端设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端设备100可以支持一种或多种视频编解码器。这样,终端设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备100的各种功能应用以及数据处理。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端设备100的接触和分离。终端设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。终端设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端设备100中,不能和终端设备100分离。
终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。
图2是本申请实施例的终端设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合捕获拍照场景,示例性说明终端设备100软件以及硬件的工作流程。
当触摸传感器180K接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头193捕获静态图像或视频。
以下将结合附图和具体应用场景分别对本申请实施例提供的图像编码方法和图像解码方法分别进行详细说明。
【实施例一】
该实施例提供的图像编码方法在JPEG累进模式的基础上进行扩展,以实现可以兼容JPEG累进模式的可变分辨率的图像编码。因此,在对该图像编码方法编码得到的图像进行解码显示时,终端设备可以解码得到特定的低分辨率图像,或者可以解码得到原有的高分辨率图像,以满足不同场景的显示需求。下面对基于JPEG累进模式的图像编码和图像解码分别进行详细说明。
一、基于JPEG累进模式的图像编码
JPEG累进模式的编码过程主要包括:(1)将原始图像分成多个8*8的像素块,每一个像素块具有64个像素;(2)对每一个像素块,进行离散余弦变换(discrete cosinetransform,DCT),得到该像素块对应的64个DCT系数;3、分别对各像素块的64个DCT系数进行量化,并对量化后的DCT系数进行编码。其中,与JPEG顺序模式将各像素块的所有DCT系数按照从左到右、从上到下一次性编码不同,JPEG累进模式是将各像素块的所有DCT系数分成多轮进行编码、传输,在进行图像显示时,也可以逐轮解码并显示,以使得可以先快速显示出图像轮廓,然后随着解码轮次的增加,逐渐增加图像数据,从而逐步提高图像的清晰度。请参阅图3,图3示出了对JPEG累进模式编码的图像进行显示的场景示意图,由图3中的(a)至图3中的(e)可知,随着解码轮次的增加,图像数据逐渐增加,所显示图像的清晰度也逐渐增加。
可以理解的是,JPEG累进模式的实现方式可以是:a.频谱选择;b.逐步近似;c.a与b两种的组合。
频谱选择:先编码每一个像素块中的低频系数,然后再逐轮编码每一个像素块中的高频系数,即对每一个像素块中的64个DCT系数做多轮编码,每一轮仅编码各像素块中的一部分DCT系数。例如,第一轮可以编码各像素块的直流系数,第二轮可以继续编码各像素块的第一个交流系数和第二个交流系数,第三轮可以继续编码各像素块的第三个交流系数、第四个交流系数、第五个交流系数以及第六个交流系数等,以此类推,直至将各像素块的64个DCT系数全部编码。其中,对每一个8*8的像素块进行DCT变换后,可以得到一个8*8的DCT系数矩阵,从该矩阵的左上角到右下角,DCT系数代表越来越高频率的系数。直流系数是指各像素块中从左上角开始的第一个DCT系数,交流系数是指各像素块中除直流系数以外的其他63个DCT系数。
逐次近似:先编码每一个像素块中各DCT系数的高位字节,然后再逐轮编码各DCT系数的低位字节,使得每个DCT系数的值越来越准确,因此,在进行图像显示时,也可以随着解码轮次的增加,逐步提高图像的清晰度。但逐次近似是针对交流系数而言的,即逐次近似的每一轮编码中,需要对除直流系数外的所有交流系数进行编码,但都只编码每一个交流系数的部分字节。对于直流系数,则需要对所有字节(包括高位字节和低位字节)进行一次编码。示例性的,第一轮可以对各像素块的直流系数(即直流系数的所有字节)进行编码,第二轮可以继续对所有交流系数的第一个高位字节进行编码,第三轮可以继续对所有交流系数的第二个高位字节进行编码,以此类推,直至最后一轮对所有交流系数的最后一个低位字节进行编码。
请参阅图4,图4示出了本实施例提供的图像编码方法的示意性流程图。如图4所示,该图像编码方法可以包括:
S401、获取原始图像的第一分辨率和目标图像的第二分辨率,并根据第一分辨率和第二分辨率确定目标图像对应的目标编码轮次。
其中,目标图像为原始图像的低分辨率版本,即目标图像与原始图像的内容相同,但目标图像的第二分辨率低于原始图像的第一分辨率。应理解,本实施例对目标图像的个数和第二分辨率不作具体限定,可以根据原始图像的第一分辨率和具体应用场景来确定目标图像的个数和第二分辨率。由于JPEG累进模式是以8*8像素块为处理单元,本实施例可以基于64的倍数和第一分辨率来确定目标图像的第二分辨率。例如,可以将目标图像的第二分辨率确定为第一分辨率的1/64,或者可以将目标图像的第二分辨率确定为第一分辨率的1/32,或者可以将目标图像的第二分辨率确定为第一分辨率的1/16,等等。以下以目标图像为一个为例进行说明。应理解,当目标图像为两个或者两个以上时,可以参照图4的方法分别进行各目标图像的处理。
需要说明的是,由于JPEG累进模式中各8*8像素块的处理都是相同的,因此,以下以针对任一个8*8像素块为例进行说明。即以下所述的DCT系数数量是指一个8*8像素块中的DCT系数数量,最少采样点数是指需要在一个8*8像素块中最少采样的点数。
在基于频谱选择的JPEG累进模式中,可以根据原始图像的第一分辨率、目标图像的第二分辨率,以及各编码轮次对应的DCT系数数量确定目标图像对应的目标编码轮次。示例性的,可以先根据第一分辨率与第二分辨率确定目标图像所需的最少采样点数。然后,可以确定与该最少采样点数相近的DCT系数数量,并可以将所确定的DCT系数数量所对应的编码轮次确定为目标图像对应的目标编码轮次。其中,各编码轮次对应的DCT系数数量是指截止至该轮编码已进行编码的DCT系数的总数量。具体地,第一轮编码对应的DCT系数数量可以为第一轮所编码的DCT系数的数量;第二轮编码对应的DCT系数数量可以为第一轮所编码的DCT系数的数量与第二轮所编码的DCT系数的数量之和;第三轮编码对应的DCT系数数量可以为第一轮所编码的DCT系数的数量、第二轮所编码的DCT系数的数量和第三轮所编码的DCT系数的数量之和,等等。
例如,当第一轮对1个DCT系数(即直流系数)进行编码,第二轮继续对3个DCT系数进行编码,第三轮继续对5个DCT系数进行编码,第四轮继续对12个DCT系数进行编码时,则第一轮编码对应的DCT系数数量可以为1个,第二轮编码对应的DCT系数数量可以为4个,第三轮编码对应的DCT系数数量可以为9个,第四轮编码对应的DCT系数数量可以为21个。因此,当最少采样点数为1个时,则可以将目标图像对应的目标编码轮次确定为第一轮;当最少采样点数为4个时,则可以将目标图像对应的目标编码轮次确定为第二轮;当最少采样点数为8个时,则可以将目标图像对应的目标编码轮次确定为第三轮;当最少采样点数为16个时,则可以将目标图像对应的目标编码轮次确定为第四轮,等等。
需要说明的是,为提高后续预测图像的准确性,本实施例中,在确定与最少采样点数相近的DCT系数数量时,可以从大于或者等于最少采样点数的DCT系数数量中确定。例如当最少采样点数为4个时,则可以从大于或者等于4的DCT系数数量中确定与最少采样点数相近的DCT系数数量,假定第二轮编码对应的DCT系数数量为3个,第三轮编码对应的DCT系数数量为5个,则可以将第三轮编码对应的DCT系数数量5个确定为与最少采样点数相近的DCT系数数量。
下面对根据第一分辨率与第二分辨率确定目标图像所需的最少采样点数进行说明。
本实施例中,当目标图像的第二分辨率为原始图像的第一分辨率的1/64时,表示需要在原始图像的每一个像素块(即每64个像素)中确定至少一个采样点来构成目标图像,此时可以将目标图像对应的最少采样点数确定为1个;当第二分辨率为第一分辨率的1/32时,表示需要在原始图像的每32个像素中确定至少一个采样点来构成目标图像,即需要在每一个像素块中确定至少2个采样点来构成目标图像,此时可以将目标图像对应的最少采样点数确定为2个;当第二分辨率为第一分辨率的1/16时,表示需要在原始图像的每16个像素中确定至少一个采样点来构成目标图像,即需要在每一个像素块中确定至少4个采样点来构成目标图像,此时可以将目标图像对应的最少采样点数确定为4个;当第二分辨率为第一分辨率的1/8时,表示需要在原始图像的每8个像素中确定至少一个采样点来构成目标图像,即需要在每一个像素块中确定至少8个采样点来构成目标图像,此时可以将目标图像对应的最少采样点数确定为8个;当第二分辨率为第一分辨率的1/4时,表示需要在原始图像的每4个像素中确定至少一个采样点来构成目标图像,即需要在每一个像素块中确定至少16个采样点来构成目标图像,此时可以将目标图像对应的最少采样点数确定为16个;当第二分辨率为第一分辨率的1/2时,表示需要在原始图像的每2个像素中确定至少一个采样点来构成目标图像,即需要在每一个像素块中确定至少32个采样点来构成目标图像,此时可以将目标图像对应的最少采样点数确定为32个,等等。
类似的,在基于逐次近似的JPEG累进模式中,可以根据原始图像的第一分辨率、目标图像的第二分辨率、DCT系数具有的总字节数以及各编码轮次对应的已编码字节数确定目标图像对应的目标编码轮次。示例性的,可以先根据第一分辨率与第二分辨率确定目标图像所需的最少采样点数。然后,可以根据DCT系数具有的总字节数和各编码轮次对应的已编码字节数确定各编码轮次对应的DCT系数数量,并将与最少采样点数相近的DCT系数数量所对应的编码轮次确定为目标图像对应的目标编码轮次。
其中,由于逐次近似是针对交流系数而言,而直流系数仍需要在第一轮编码中进行所有字节的完整编码,因此第一轮编码对应的DCT系数数量可以直接为1个。其他各编码轮次(除第一轮编码以外的各轮编码)对应的DCT系数数量可以通过(1+63*各编码轮次对应的已编码字节数/DCT系数具有的总字节数)来确定。应理解,各编码轮次对应的已编码字节数是指截止至该轮编码为止,DCT系数中已进行编码的所有字节的位数。
示例性的,当DCT系数具有的总字节数为8位,其中,前四位为高位字节,后四位为低位字节,且第一轮对直流系数进行编码,第二轮继续对各交流系数的第一个高位字节进行编码,第三轮继续对各交流系数的第二个高位字节进行编码,第四轮继续对各交流系数的第三个高位字节进行编码,第五轮继续对各交流系数的第四个高位字节进行编码,第六轮继续对各交流系数的第一个低位字节进行编码,第七轮继续对各交流系数的第二个低位字节进行编码,第八轮继续对各交流系数的第三个低位字节进行编码,第九轮继续对各交流系数的第四个低位字节进行编码时,第一轮编码对应的DCT系数数量可以为1,第二轮编码对应的DCT系数数量可以为(1+63*1/8),第三轮编码对应的DCT系数数量可以为(1+63*2/8),第四轮编码对应的DCT系数数量可以为(1+63*3/8),第五轮编码对应的DCT系数数量可以为(1+63*4/8),第六轮编码对应的DCT系数数量可以为(1+63*5/8),第七轮编码对应的DCT系数数量可以为(1+63*6/8),第八轮编码对应的DCT系数数量可以为(1+63*7/8),第九轮编码对应的DCT系数数量可以为(1+63*8/8)。
因此,当最少采样点数为1个时,则可以将目标图像对应的目标编码轮次确定为第一轮;当最少采样点数为4个时,则可以将目标图像对应的目标编码轮次确定为第二轮;当最少采样点数为8个时,则可以将目标图像对应的目标编码轮次确定为第二轮;当最少采样点数为16个时,则可以将目标图像对应的目标编码轮次确定为第三轮;当最少采样点数为32个时,则可以将目标图像对应的目标编码轮次确定为第五轮,等等。
与基于频谱选择的JPEG累进模式类似,在基于逐次近似的JPEG累进模式中,在确定与最少采样点数相近的DCT系数数量时,也可以从大于或者等于最少采样点数的DCT系数数量中确定,以提高后续预测图像的准确性。另外,最少采样点数的确定可以参照前述基于频谱选择的JPEG累进模式中最少采样点数的确定内容。
S402、根据目标编码轮次获取原始图像对应的中间图像,并利用下采样算法对中间图像进行下采样,得到预测图像。
可以理解的是,在基于JPEG累进模式对原始图像进行多轮编码后,可以得到如下述表1所述的原始编码文件。本实施例可以根据目标编码轮次获取原始编码文件中的部分图像数据,并可以通过对部分图像数据进行解码来得到中间图像。例如,当目标编码轮次为第一轮时,可以对表1中的第一轮图像数据进行解码,得到中间图像;当目标编码轮次为第二轮时,可以对表1中的第一轮图像数据和第二轮图像数据进行解码,得到中间图像;当目标编码轮次为第三轮时,可以对表1中的第一轮图像数据、第二轮图像数据和第三轮图像数据进行解码,得到中间图像,等等。
表1
Figure BDA0002914923330000171
其中,中间图像是原始图像的近似版本,即中间图像的分辨率与原始图像的第一分辨率相同,但中间图像的清晰度低于原始图像的清晰度。例如,在中间图像是基于第一轮图像数据解码得到时,由于第一轮图像数据只有各像素块中的直流系数,因此中间图像的每一个像素块中所有像素的像素值均为该像素块中直流系数所对应的像素的像素值,从而使得中间图像的清晰度明显低于原始图像的清晰度,即基于中间图像本身无法得到清晰的、低分辨率的图像。因此,本实施例中,可以利用预设的下采样算法对中间图像进行下采样,并将下采样得到的图像确定为低分辨率的目标图像对应的预测图像,从而可以根据预测图像来得到低分辨率、清晰的目标图像。
可以理解的是,本实施例对下采样算法不作具体限定,例如可以采样线性均值算法来进行中间图像的下采样。即可以先将中间图像划分成多个像素块。然后,对每一个像素块,计算该像素块中所有像素值的平均值,将计算得到的平均值确定为一个采样点(即预测图像对应的一个像素),并将所有采样点构成的图像确定为预测图像。在此,所划分的像素块大小可以根据原始图像的第一分辨率与目标图像的第二分辨率来确定。例如,在第二分辨率为第一分辨率的1/64时,所划分的像素块可以为8*8的像素块;在第二分辨率为第一分辨率的1/16时,所划分的像素块可以为4*4的像素块;在第二分辨率为第一分辨率的1/32时,所划分的像素块可以为8*4或者4*8的像素块,等等。
其中,当第二分辨率为第一分辨率的1/64时,所确定的目标编码轮次可以为第一轮,即中间图像可以基于第一轮图像数据解码得到,此时中间图像的任一个8*8像素块中的64个像素的像素值都是相同的,即对各8*8像素块进行线性均值所得到的结果与该像素块中的任一像素的像素值相同,因此,此时可以直接从各像素块简单抽样一个像素来作为各像素块对应的一个采样点,然后将这些采样点构成的图像确定为预测图像。当第二分辨率为第一分辨率的1/16时,可以确定目标编码轮次可以为第二轮或者第三轮等,而第二轮图像数据或者第三轮图像数据中可以包含有交流系数,即可以包含有更丰富的高频细节,因此,此时可以对各4*4像素块进行线性均值计算,来得到每16个像素对应的一个采样点,然后将这些采样点构成的图像确定为预测图像。
S403、根据第二分辨率对原始图像进行缩放,得到原始图像对应的缩放图像,将缩放图像与预测图像进行差分处理,得到差分图像,并利用压缩算法对差分图像进行压缩,得到差分图像对应的差分数据。
可以理解的是,缩放图像是指直接将原始图像缩放至第二分辨率所得到的图像。本实施例中,可以采用最邻近差值算法或者双线性差值算法等任一现有的缩放算法来对原始图像进行缩放,得到第二分辨率的缩放图像。然后,可以对缩放图像与预测图像进行逐像素的差分处理,得到差分图像,并利用预设的压缩算法对差分图像进行压缩编码,得到差分图像对应的差分数据,使得进行图像解码时,可以根据预测图像和差分数据得到低分辨率的、清晰的目标图像。
其中,对缩放图像与预测图像进行逐像素的差分处理,是指将缩放图像中各像素与预设图像中相同位置处的像素进行像素值的相减,得到各像素之间的差值,并将各像素之间的差值作为差分图像中相同位置处像素的像素值。
例如,当缩放图像中第一个像素的像素值为231、第二个像素的像素值为224、第三个像素的像素值为217、第四个像素的像素值为203,预测图像中第一个像素的像素值为231、第二个像素的像素值为214、第三个像素的像素值为217、第四个像素的像素值为201时,则可以确定差分图像中第一个像素的像素值为0、第二个像素的像素值为10、第三个像素的像素值为0、第四个像素的像素值为2。
本实施例对差分图像进行压缩的压缩算法不作具体限定,可以利用现有的任一压缩算法来进行差分图像的压缩。但考虑到内部一致性和简单性,可以采用JPEG已有的压缩算法来进行差分图像的压缩。
S404、根据第二分辨率、目标编码轮次、下采样算法、压缩算法、差分数据以及原始编码文件得到原始图像的目标编码文件。
具体地,可以对目标图像对应的第二分辨率、目标编码轮次、下采样算法对应的第一算法类型、压缩算法对应的第二算法类型进行编码,得到变分辨率文件头,并可以将变分辨率文件头和差分数据分别以自定义扩展字段的方式插入到JPEG累进模式对应的原始编码文件,得到目标编码文件。例如,可以将变分辨率文件头和差分数据分别插入上述表1所述的原始编码文件,得到如下表2所述的目标编码文件。
表2
Figure BDA0002914923330000181
需要说明的是,本实施例对变分辨率文件头和差分数据在原始编码文件中的插入位置不作具体限定,但为了方便、快速地确定原始图像是否可以进行变分辨率显示,可以将变分辨率文件头插入至原始编码文件中原文件头的后面或者前面(其中,上述表2以插入原文件头的后面为例进行说明),构成目标编码文件的新文件头。
同时,为了使得可以仅通过获取目标编码文件中的部分图像数据,即可以解码得到低分辨率的目标图像,可以将差分数据插入至原始编码文件中该目标编码轮次所对应的图像数据的前面或者后面(其中,上述表2以插入该目标编码轮次对应的图像数据的后面为例进行说明),使得在进行图像的解码显示时,在确定低分辨率的目标图像所对应的目标编码轮次后,可以仅获取至该目标编码轮次所对应的图像数据和差分数据,即可以解码得到低分辨率的目标图像,可以有效减少终端设备的数据获取量,降低终端设备进行图像解码显示的运算复杂度,降低终端设备的处理功耗,提高图像呈现速度,提升用户体验。而且,在进行图像分享时,也可以有效减少云服务器或者终端设备传输的数据量,降低云服务器或者终端设备的传输功耗,提升图像传输速度,提升用户体验。
可以理解的是,当目标图像包括多个时,变分辨率文件头中也可以包括多个目标图像对应的第二分辨率、目标编码轮次、下采样算法对应的第一算法类型以及压缩算法对应的第二算法类型等。即此时的变分辨率文件头可以为一个列表,列表中的每一列表项与一个目标图像相对应。也就是说,每一个列表项中可以包括一个目标图像对应的第二分辨率、目标编码轮次、下采样算法对应的第一算法类型以及压缩算法对应的第二算法类型等。此时,所插入的差分数据的个数与目标图像的个数对应,即本实施例中,可以是每一轮图像数据均插入有对应的差分数据,也可以是其中的部分轮次的图像数据插入有对应的差分数据。例如如表1所述,当目标图像包括2个,可以是在第一轮图像数据和第三轮图像数据的后面分别插入对应的差分数据。
本实施例中,选取JPEG累进模式的一定编码轮次的中间图像为基础,下采样作为低分辨率的目标图像的预测图像,并基于预测图像和原始图像对应的缩放图像得到差分图像。然后,在JPEG累进模式对应的原始编码文件中插入差分图像对应的差分数据,从而可以通过预测图像与差分数据一起精确还原特定的低分辨率的目标图像,实现兼容JPEG累进模式的可变分辨率的图像编码。同时,在对基于该图像编码方法编码的图像进行分享时,可以根据接收设备的显示分辨率进行部分图像数据的传输,从而可以大幅减少需要传输的数据量,提高图像传输速度,提升用户体验。
二、基于JPEG累进模式的图像解码
请参阅图5,图5示出了本实施例提供的图像解码方法的示意性流程图,该图像解码方法可以应用于终端设备。如图5所示,该图像解码方法可以包括:
S501、获取终端设备的显示分辨率,并根据显示分辨率和目标编码文件确定目标图像的目标分辨率。
在需要进行原始图像的解码显示时,终端设备可以先获取目标编码文件的文件头,并可以根据文件头确定原始图像的第一分辨率和原始图像所支持显示的第二分辨率。随后,终端设备可以根据自身的显示分辨率和原始图像所支持显示的第二分辨率确定目标图像的目标分辨率。其中,目标分辨率为第二分辨率中的任一个。具体地,终端设备可以将原始图像所支持显示的第二分辨率中与终端设备的显示分辨率最接近的第二分辨率确定为目标图像的目标分辨率。
应理解,原始图像可以是云服务器或者其他终端设备实时传输至终端设备的图像,也可以终端设备中已存储的图像。目标编码文件可以为通过前述的图像编码方法对原始图像进行编码得到的编码文件。第二分辨率为低于原始图像的第一分辨率的分辨率,即第二分辨率为原始图像所支持显示的低分辨率。目标图像即为原始图像的某一低分辨率版本,且目标图像为将在终端设备上进行显示的图像。
例如,在原始图像所支持显示的第二分辨率包括分辨率A、分辨率B和分辨率C,且分辨率A为第一分辨率的1/64、分辨率B为第一分辨率的1/32、分辨率C为第一分辨率的1/16时,若终端设备的显示分辨率为第一分辨率的1/128,则可以确定目标图像的目标分辨率为分辨率A;若终端设备的显示分辨率为第一分辨率的1/32,则可以确定目标图像的目标分辨率为分辨率B,等等。
S502、根据目标分辨率确定目标图像对应的目标编码轮次,并根据目标编码轮次获取目标图像对应的图像数据和差分数据。
可以理解的是,目标编码文件的变分辨率文件头中记录有各第二分辨率所对应的编码轮次。因此,终端设备在确定目标图像的目标分辨率(即某一第二分辨率)后,可以根据目标分辨率和目标编码文件中的变分辨率文件头,确定目标图像对应的目标编码轮次。随后,终端设备可以获取截止至该目标编码轮次的所有图像数据和该目标编码轮次所对应的差分数据,即仅需要获取部分图像数据和差分数据即可进行目标图像的解码还原,而不需要获取目标编码文件中的所有图像数据,极大地降低了图像数据的获取数量,可以有效提高目标图像的呈现速度。
例如,当目标编码轮次为第一轮时,终端设备可以获取第一轮图像数据和第一轮所对应的差分数据。当目标编码轮次为第三轮时,终端设备可以获取第一轮图像数据、第二轮图像数据和第三轮图像数据,以及获取第三轮所对应的差分数据,等等。
S503、对图像数据进行解码,得到中间图像,并利用下采样算法对中间图像进行下采样,得到预测图像。
目标编码文件的变分辨率文件头中记录有各第二分辨率对应的下采样算法的第一算法类型。本实施例中,终端设备可以根据变分辨率文件头中,目标分辨率对应的第一算法类型来确定下采样算法。即终端设备可以利用图像编码中,所使用的下采样算法来对中间图像进行下采样,得到预测图像。也就是说,图像解码过程对该中间图像所使用的下采样算法与图像编码过程中对该中间图像所使用的下采样算法为相同的算法,以方便后续可以得到清晰的、低分辨率的图像。其中,利用下采样算法对中间图像进行下采样的过程可以参考前述图像编码中的下采样过程,在此不再赘述。
S504、对差分数据进行解码,得到差分图像,并根据预测图像和差分图像生成目标分辨率的目标图像。
应理解,目标编码文件的变分辨率文件头中还记录有与各第二分辨率相关的差分数据所对应的压缩算法的第二算法类型。本实施例中,终端设备可以根据变分辨率文件头中,目标分辨率对应的第二算法类型来确定差分图像对应的压缩算法,并可以根据该压缩算法对差分数据进行解码还原,得到差分图像,从而可以根据差分图像和预测图像来得到第二分辨率的目标图像。
具体地,终端设备可以将预测图像和差分图像进行合并,例如可以将预测图像和差分图像中相同位置处的像素的像素值进行相加,并可以将相加得到的像素值作为目标图像中该相同位置处的像素的像素值,从而得到低分辨率的、清晰的目标图像。
例如,当差分图像中第一个像素的像素值为0、第二个像素的像素值10、第三个像素的像素值为0、第四个像素的像素值2,预测图像中第一个像素的像素值为231、第二个像素的像素值为214、第三个像素的像素值为217、第四个像素的像素值为201时,则可以确定目标图像中第一个像素的像素值为231、第二个像素的像素值为224、第三个像素的像素值为217、第四个像素的像素值为203。
需要说明的是,当终端设备不支持原始图像的变分辨率显示时,即当终端设备无法识别目标编码文件中的自定义扩展字段时,终端设备可以忽略目标编码文件中的自定义扩展字段,即可以忽略目标编码文件中的变分辨率文件头和差分数据,而可以直接按照原有的JPEG累进模式的解码方式来进行图像数据的解码显示,即可以直接获取各轮图像数据来进行解码显示。或者,当终端设备的显示分辨率与原始图像的第一分辨率相近时,终端设备也可以直接按照原有的JPEG累进模式的解码方式来进行图像数据的解码显示。
本实施例中,在终端设备的显示分辨率低于原始图像的第一分辨率时,终端设备可以根据自身的显示分辨率和原始图像可支持显示的第二分辨率获取部分图像数据和差分数据,以对该部分图像数据和差分数据进行解码,即可以得到满足终端设备显示需求的目标图像,可以有效减少终端设备进行图像显示时的数据获取量,降低终端设备进行图像解码显示时的运算复杂度,降低终端设备的处理功耗,提高终端设备进行图像呈现的速度,提升用户的使用体验。
【实施例二】
该实施例提供的图像编码方法在PNG隔行扫描模式的基础上进行扩展,以实现可以兼容PNG隔行扫描模式的可变分辨率的图像编码。因此,在对该图像编码方法编码得到的图像进行解码显示时,终端设备可以解码得到特定的低分辨率图像,或者可以解码得到原有的高分辨率图像,以满足不同场景的显示需求。下面对基于PNG隔行扫描模式的图像编码和图像解码进行详细说明。
一、基于PNG隔行扫描模式的图像编码
其中,PNG隔行扫描模式可以采用7遍隔行扫描(Adam7)算法在空间域对图像执行多轮扫描,每一轮扫描只扫描图像的部分像素。即PNG隔行扫描模式通过七轮扫描渐进地补充图像数据,以使得可以先快速显示出图像轮廓,然后随着扫描轮次的增加,逐渐增加图像数据,从而逐步提高图像的清晰度。
请参阅图6,图6示出了PNG隔行扫描模式的扫描示意图,其中,图6中的数字用于表示该位置处的像素所对应的扫描轮次。如图6中的(a)所示,第一轮扫描可以从原始图像的左上角(假定此坐标为(0,0))开始,以8个像素为偏移单位来进行像素扫描,即第一次扫描的像素可以为(0,0)、(8,0)、……、(0,8)、(8,8),等等;如图6中的(b)所示,第二轮扫描分别以第一轮扫描得到的各像素为起点,以4个像素为偏移单位,在水平方向上进行像素扫描,即第二扫描的像素可以为(4,0)、(12,0)、……、(4,8)、(12,8),等等;如图6中的(c)所示,第三轮扫描分别以第二轮扫描得到的各像素为起点,以4个像素为偏移单位,在竖直方向上进行像素扫描,即第三扫描的像素可以为(0,4)、(4,4)、(8,4)、(12,4)、……、(0,12)、(4,12)、(8,12)、(12,12),等等;如图6中的(d)所示,第四轮扫描分别以第三轮扫描得到的各像素为起点,以2个像素为偏移单位,在水平方向上进行像素扫描,即第四扫描的像素可以为(2,0)、(6,0)、(10,0)、(14,0)……、(2,4)、(6,4)、(10,4)、(14,4)、……、(2,8)、(6,8)、(10,8)、(14,8)、……、(2,12)、(6,12)、(10,12)、(14,12),等等;如图6中的(e)所示,第五轮扫描分别以第四轮扫描得到的各像素为起点,以2个像素为偏移单位,在竖直方向上进行像素扫描,即第五扫描的像素可以为(0,2)、(2,2)、(4,2)、(6,2)、……(14,2)、……、(0,6)、(2,6)、(4,6)、(6,6)、……、(14,6)、……、(0,10)、(2,10)、(4,10)、……、(14,10)、……、(0,14)、(2,14)、(4,14)、……、(14,14),等等;如图6中的(f)所示,第六轮扫描分别以第五轮扫描得到的各像素为起点,以1个像素为偏移单位,在水平方向上进行像素扫描,即第六轮扫描的像素可以为(1,0)、(3,0)、(5,0)、……(15,0)、……、(1,3)、(3,3)、(5,3)、……(15,3)、……、(1,14)、(3,14)、(5,14)、……(15,14),等等;如图6中的(g)所示,第七轮扫描则为所有剩余未扫描的像素,即为第1行、第3行、……、第15行的所有像素。
本实施例中,基于PNG隔行扫描模式的图像编码则可以按照PNG隔行扫描模式的扫描顺序进行编码,即第一轮可以编码PNG隔行扫描模式中第一轮扫描的像素,第二轮可以编码PNG隔行扫描模式中第二轮扫描的像素,第三轮可以编码PNG隔行扫描模式中第三轮扫描的像素,第四轮可以编码PNG隔行扫描模式中第四轮扫描的像素,第五轮可以编码PNG隔行扫描模式中第五轮扫描的像素,第六轮可以编码PNG隔行扫描模式中第六轮扫描的像素,第七轮则可以编码PNG隔行扫描模式中第七轮扫描的像素。
与实施例一中基于JPEG累进模式的图像编码类似,本实施例提供的基于PNG隔行扫描模式的图像编码方法也可以包括:
1、获取原始图像的第一分辨率和目标图像的第二分辨率,并根据第一分辨率和第二分辨率确定目标图像对应的目标编码轮次。
在此,第一分辨率和第二分辨率的确定方式与实施例一S401中第一分辨率和第二分辨率的确定方式相同,具体内容可以参照S401的描述,在此不再赘述。
本实施例中,终端设备可以根据原始图像的第一分辨率、目标图像的第二分辨率,以及各编码轮次对应的像素数量确定目标图像对应的目标编码轮次。与实施例一类似,本实施例中的描述以针对任一个8*8的像素块为例进行说明,即以下所述的像素数量是指一个8*8像素块中的像素数量,最少采样点数是指需要在一个8*8像素块中最少采样的点数。
示例性的,可以先根据第一分辨率与第二分辨率确定目标图像所需的最少采样点数。然后,可以确定与该最少采样点数相近的像素数量,并可以将所确定的像素数量所对应的编码轮次确定为目标图像对应的编码轮次。其中,各编码轮次对应的像素数量是指截止至该轮编码为止,已进行编码的像素的总数量。
例如,如图6中的(a)所示,第一轮编码对应的像素数量可以为1个;如图6中的(b)所示,第二轮编码对应的像素数量可以为2个;如图6中的(c)所示,第三轮编码对应的像素数量可以为4个;如图6中的(d)所示,第四轮编码对应的像素数量可以为8个;如图6中的(e)所示,第五轮编码对应的像素数量可以为16个;如图6中的(f)所示,第六轮编码对应的像素数量可以为32个;如图6中的(g)所示,第七轮编码对应的像素数量可以为64个。因此,当最少采样点数为1个,即当目标图像的第二分辨率为原始图像的第一分辨率的1/64时,可以将目标图像对应的目标编码轮次确定为第一轮;当最少采样点数为4个,即当目标图像的第二分辨率为原始图像的第一分辨率的1/16时,可以将目标图像对应的目标编码轮次确定为第三轮;当最少采样点数为16个,即当目标图像的第二分辨率为原始图像的第一分辨率的1/4时,可以将目标图像对应的目标编码轮次确定为第五轮,等等。
应理解,最少采样点数的确定方式与实施例一中最少采样点数的确定方式相同,具体内容可以参照实施例一中的描述,在此不再赘述。
2、根据目标编码轮次获取原始图像对应的中间图像,并利用下采样算法对中间图像进行下采样,得到预测图像。
与实施例一类似,在基于PNG隔行扫描模式对原始图像进行多轮编码后,可以得到上述表1所述的原始编码文件。此时,表1中的第一轮图像数据、第二轮图像数据、第三轮图像数据、……、第n轮图像数据均是指直接对像素进行编码得到的数据。本实施例可以根据目标编码轮次获取原始编码文件中的部分图像数据,并可以通过对部分图像数据进行解码来得到中间图像。其中,利用下采样算法对中间图像进行下采样,得到预测图像的内容与实施例一中“利用下采样算法对中间图像进行下采样,得到预测图像”的内容相同,具体内容可以参照实施例一中的描述,在此不再赘述。
3、根据第二分辨率对原始图像进行缩放,得到原始图像对应的缩放图像,将缩放图像与预测图像进行差分处理,得到差分图像,并利用压缩算法对差分图像进行压缩,得到差分图像对应的差分数据。
在此,获取差分数据的过程与实施例一S403中获取差分数据的过程相同,具体内容可以参照实施例一S403中的描述,在此不再赘述。
4、根据第二分辨率、目标编码轮次、下采样算法、压缩算法、差分数据以及原始编码文件得到原始图像的目标编码文件。
同样地,根据第二分辨率、目标编码轮次、下采样算法、压缩算法、差分数据以及原始编码文件得到原始图像的目标编码文件的过程与实施例一S404中得到目标编码文件的过程相同,具体内容可以参照实施例一S404中的描述,在此不再赘述。
本实施例中,选取PNG隔行扫描模式的一定编码轮次的中间图像为基础,下采样作为低分辨率图像的预测图像,并可以基于预测图像和原始图像对应的缩放图像得到差分图像。然后,在PNG隔行扫描模式对应的原始编码文件中插入差分图像对应的差分数据,从而可以通过预测图像与差分数据一起精确还原特定的低分辨率图像,实现兼容PNG隔行扫描模式的可变分辨率的图像编码。同时,在对基于该图像编码方法编码的图像进行分享时,可以根据接收设备的显示分辨率进行部分图像数据的传输,从而可以大幅减少需要传输的数据量,提高图像传输速度,提升用户体验。
二、基于PNG隔行扫描模式的图像解码
与实施例一中基于JPEG累进模式的图像解码类似,本实施例提供的基于PNG隔行扫描模式的图像解码方法也可以包括:
1、获取终端设备的显示分辨率,并根据显示分辨率和目标编码文件确定目标图像的目标分辨率。
与实施例一中的S501类似,在需要进行原始图像的解码显示时,终端设备可以获取目标编码文件的文件头,并可以根据文件头确定原始图像的第一分辨率和原始图像可支持显示的第二分辨率。随后,终端设备可以根据自身的显示分辨率和原始图像可支持显示的第二分辨率确定目标图像的目标分辨率。其中,目标分辨率为第二分辨率中的任一个。目标编码文件可以为通过本实施例前述所述的图像编码方法对原始图像进行编码得到的编码文件。
具体地,终端设备可以将原始图像所支持显示的第二分辨率中与终端设备的显示分辨率最接近的第二分辨率确定为目标图像的目标分辨率。
2、根据目标分辨率确定目标图像对应的目标编码轮次,并根据目标编码轮次获取目标图像对应的图像数据和差分数据。
与实施例一中的S502类似,目标编码文件的变分辨率文件头中记录有各第二分辨率所对应的编码轮次。因此,终端设备在确定目标图像的目标分辨率(即某一第二分辨率)后,可以根据目标分辨率和目标编码文件中的变分辨率文件头,确定目标图像对应的目标编码轮次。随后,终端设备可以获取截止至该目标编码轮次的所有图像数据和该目标编码轮次所对应的差分数据,即仅需要获取目标图像对应的部分图像数据和差分数据即可,而不需要获取目标编码文件中的所有图像数据,极大地降低了图像数据的获取数量,可以有效提高目标图像的呈现速度。
3、对图像数据进行解码,得到中间图像,并利用下采样算法对中间图像进行下采样,得到预测图像。
与实施例一中的S503类似,目标编码文件的变分辨率文件头中记录有各第二分辨率所对应的下采样算法的第一算法类型。本实施例中,终端设备可以根据变分辨率文件头中,目标分辨率对应的第一算法类型来确定下采样算法。即终端设备可以利用图像编码中,所使用的下采样算法来对中间图像进行下采样,得到预测图像。也就是说,图像解码过程中对该中间图像所使用的下采样算法与图像编码过程中对该中间图像所使用的下采样算法为相同的算法,从而方便后续解码得到清晰的、低分辨率的图像。
4、对差分数据进行解码,得到差分图像,并根据预测图像和差分图像生成目标分辨率的目标图像。
与实施例一中的S504类似,目标编码文件的变分辨率文件头中还记录有与各第二分辨率相关的差分数据所对应的压缩算法的第二算法类型。本实施例中,终端设备可以根据变分辨率文件头中,目标分辨率对应的第二算法类型来确定差分图像对应的压缩算法,从而可以根据该压缩算法对差分数据进行解码还原,得到差分图像。然后,终端设备可以将预测图像和差分图像进行合并,例如将预测图像和差分图像中相同位置处的像素的像素值进行相加,并可以将相加得到的像素值作为目标图像中该相同位置处的像素的像素值,从而得到低分辨率的、清晰的目标图像。
需要说明的是,当终端设备不支持原始图像的变分辨率显示时,即当终端设备无法识别目标编码文件中的自定义扩展字段时,终端设备可以忽略目标编码文件中的自定义扩展字段,即可以忽略目标编码文件中的变分辨率文件头和差分数据,而可以直接按照原有的PNG隔行扫描模式对应的解码方式来进行图像数据的解码显示,即可以直接获取各轮图像数据来进行解码显示。或者,当终端设备的显示分辨率与原始图像的第一分辨率相近时,终端设备也可以直接按照原有的PNG隔行扫描模式对应的解码方式来进行图像数据的解码显示。
本实施例中,在终端设备的显示分辨率低于原始图像的第一分辨率时,终端设备可以根据自身的显示分辨率和原始图像可支持显示的目标分辨率获取部分图像数据和差分数据,以对该部分图像数据和差分数据进行解码,即可以得到满足终端设备显示需求的目标图像,可以有效减少终端设备进行图像显示时的数据获取量,降低终端设备进行图像解码显示时的运算复杂度,降低终端设备的处理功耗,提高终端设备进行图像呈现的速度,提升用户的使用体验。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请实施例还提供了一种终端设备,所述终端设备包括至少一个存储器、至少一个处理器以及存储在所述至少一个存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时,使所述终端设备实现上述任意各个方法实施例中的步骤。示例性的,所述终端设备的结构可以如图1所示。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被计算机执行时,使所述计算机实现上述任意各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备实现上述任意各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质至少可以包括:能够将计算机程序代码携带到装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(read-only memory,ROM)、随机存取存储器(random accessmemory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (14)

1.一种图像编码方法,其特征在于,包括:
获取原始图像的第一分辨率和目标图像的第二分辨率,并根据所述第一分辨率和所述第二分辨率确定所述目标图像对应的目标编码轮次;
根据所述目标编码轮次获取所述原始图像对应的中间图像,并利用下采样算法对所述中间图像进行下采样,得到预测图像;
根据所述第二分辨率对所述原始图像进行缩放,得到所述原始图像对应的缩放图像,并将所述缩放图像与所述预测图像进行差分处理,得到差分图像;
利用压缩算法对所述差分图像进行压缩,得到所述差分图像对应的差分数据;
根据所述第二分辨率、所述目标编码轮次、所述下采样算法、所述压缩算法、所述差分数据以及原始编码文件得到所述原始图像的目标编码文件,所述原始编码文件为对所述原始图像进行编码得到的编码文件。
2.根据权利要求1所述的方法,其特征在于,所述原始编码文件为通过JPEG累进模式对所述原始图像进行编码得到的编码文件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一分辨率和所述第二分辨率确定所述目标图像对应的目标编码轮次,包括:
根据所述原始编码文件获取各编码轮次对应的已编码系数数量;
根据所述第一分辨率、所述第二分辨率和所述已编码系数数量确定所述目标图像对应的目标编码轮次,所述目标编码轮次为所述各编码轮次中的任一个。
4.根据权利要求2所述的方法,其特征在于,所述根据所述第一分辨率和所述第二分辨率确定所述目标图像对应的目标编码轮次,包括:
根据所述原始编码文件获取离散余弦变换系数的总字节数和各编码轮次对应的已编码字节数;
根据所述第一分辨率、所述第二分辨率、所述总字节数和所述已编码字节数确定所述目标图像对应的目标编码轮次,所述目标编码轮次为所述各编码轮次中的任一个。
5.根据权利要求1所述的方法,其特征在于,所述原始编码文件为通过PNG隔行扫描模式对所述原始图像进行编码得到的编码文件。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一分辨率和所述第二分辨率确定所述目标图像对应的目标编码轮次,包括:
根据所述原始编码文件获取各编码轮次对应的已编码像素数量;
根据所述第一分辨率、所述第二分辨率和所述已编码像素数量确定所述目标图像对应的目标编码轮次,所述目标编码轮次为所述各编码轮次中的任一个。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述根据所述目标编码轮次获取所述原始图像对应的中间图像,包括:
从所述原始编码文件中获取所述目标编码轮次对应的图像数据,并对所述图像数据进行解码,得到所述原始图像对应的中间图像。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述根据所述第二分辨率、所述目标编码轮次、所述下采样算法、所述压缩算法、所述差分数据以及原始编码文件得到所述原始图像的目标编码文件,包括:
确定所述目标编码轮次对应的图像数据在所述原始编码文件中的第一位置,并根据所述第一位置确定所述差分数据在所述原始编码文件中的第二位置;
将所述差分数据插入至所述第二位置;
对所述第二分辨率、所述目标编码轮次、所述下采样算法的第一算法类型、所述压缩算法的第二算法类型进行编码,得到变分辨率文件头;
将所述变分辨率文件头插入至所述原始编码文件的原文件头。
9.一种图像解码方法,其特征在于,包括:
获取终端设备的显示分辨率,并根据所述显示分辨率和目标编码文件确定目标图像的目标分辨率,所述目标编码文件为根据权利要求1至8中任一项所述的方法编码得到的编码文件;
根据所述目标分辨率确定所述目标图像对应的目标编码轮次,并根据所述目标编码轮次获取所述目标图像对应的图像数据和差分数据;
对所述图像数据进行解码,得到中间图像,并利用下采样算法对所述中间图像进行下采样,得到预测图像;
对所述差分数据进行解码,得到差分图像,并根据所述预测图像和所述差分图像生成所述目标分辨率的目标图像。
10.根据权利要求9所述的方法,其特征在于,所述利用下采样算法对所述中间图像进行下采样,得到预测图像,包括:
根据所述目标分辨率获取所述中间图像对应的下采样算法,并利用所述下采样算法对所述中间图像进行下采样,得到所述预测图像。
11.根据权利要求9或10所述的方法,其特征在于,所述对所述差分数据进行解码,得到差分图像,包括:
根据所述目标分辨率获取所述差分图像对应的压缩算法,并根据所述压缩算法对所述差分数据进行解码,得到所述差分图像。
12.根据权利要求9至11中任一项所述的方法,其特征在于,所述根据所述预测图像和所述差分图像生成所述目标分辨率的目标图像,包括:
将所述预测图像和所述差分图像进行合并处理,得到所述目标分辨率的目标图像。
13.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,使所述终端设备实现如权利要求1至12中任一项所述的方法。
14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被计算机执行时,使所述计算机实现如权利要求1至12中任一项所述的方法。
CN202110102455.4A 2021-01-25 2021-01-25 图像编码方法、图像解码方法、终端设备及可读存储介质 Pending CN114793283A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110102455.4A CN114793283A (zh) 2021-01-25 2021-01-25 图像编码方法、图像解码方法、终端设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110102455.4A CN114793283A (zh) 2021-01-25 2021-01-25 图像编码方法、图像解码方法、终端设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN114793283A true CN114793283A (zh) 2022-07-26

Family

ID=82459639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110102455.4A Pending CN114793283A (zh) 2021-01-25 2021-01-25 图像编码方法、图像解码方法、终端设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN114793283A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115118922A (zh) * 2022-08-31 2022-09-27 全时云商务服务股份有限公司 一种云会议中实时视频合屏插入动图的方法与装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115118922A (zh) * 2022-08-31 2022-09-27 全时云商务服务股份有限公司 一种云会议中实时视频合屏插入动图的方法与装置

Similar Documents

Publication Publication Date Title
CN115473957B (zh) 一种图像处理方法和电子设备
WO2020093988A1 (zh) 一种图像处理方法及电子设备
WO2022007862A1 (zh) 图像处理方法、系统、电子设备及计算机可读存储介质
WO2021190348A1 (zh) 图像处理方法和电子设备
CN113838490A (zh) 视频合成方法、装置、电子设备及存储介质
CN113538227A (zh) 一种基于语义分割的图像处理方法及相关设备
CN116009802A (zh) 页面显示方法、电子设备及计算机可读存储介质
CN115119048B (zh) 一种视频流处理方法及电子设备
CN114793283A (zh) 图像编码方法、图像解码方法、终端设备及可读存储介质
WO2023160179A1 (zh) 倍率切换方法和倍率切换装置
CN116052701B (zh) 一种音频处理方法及电子设备
CN115686182B (zh) 增强现实视频的处理方法与电子设备
CN114173189A (zh) 视频编辑方法和电子设备
CN115686403A (zh) 显示参数的调整方法、电子设备、芯片及可读存储介质
CN114708289A (zh) 一种图像帧预测的方法及电子设备
CN115460343B (zh) 图像处理方法、设备及存储介质
CN116723415B (zh) 缩略图生成的方法及终端设备
CN116095512B (zh) 终端设备的拍照方法及相关装置
EP4296845A1 (en) Screen projection method and system, and related apparatus
CN116993619B (zh) 图像处理方法及相关设备
CN117082295B (zh) 图像流处理方法、设备及存储介质
CN115776532B (zh) 一种录像中抓拍图像的方法及电子设备
CN116095220B (zh) 参数确定方法及相关装置
CN115802144B (zh) 视频拍摄方法及相关设备
WO2024002164A1 (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