CN117333559A - 图像压缩方法、装置、电子设备及存储介质 - Google Patents

图像压缩方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117333559A
CN117333559A CN202311281921.5A CN202311281921A CN117333559A CN 117333559 A CN117333559 A CN 117333559A CN 202311281921 A CN202311281921 A CN 202311281921A CN 117333559 A CN117333559 A CN 117333559A
Authority
CN
China
Prior art keywords
image
type
data
image block
blocks
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
CN202311281921.5A
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.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication 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 Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Priority to CN202311281921.5A priority Critical patent/CN117333559A/zh
Publication of CN117333559A publication Critical patent/CN117333559A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/174Methods 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 an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • 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/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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

本申请公开了一种图像压缩方法、装置、电子设备及存储介质,属于图像技术领域。该图像压缩方法包括:获取第一图像,第一图像为二值图像;将第一图像分割为多个图像块,多个图像块包括以下至少一项:第一类型的图像块,第二类型的图像块;对多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到第一图像的压缩数据。

Description

图像压缩方法、装置、电子设备及存储介质
技术领域
本申请属于图像技术领域,具体涉及一种图像压缩方法、装置、电子设备及存储介质。
背景技术
在图像处理领域经常需要对二值图像进行压缩。相关技术中,通常通过将8个字节(byte)转化为1个byte的压缩方式对二值图像进行压缩。
但是,这种压缩方式的压缩率较低。
发明内容
本申请实施例的目的是提供一种图像压缩方法、装置、电子设备及存储介质,可以提高二值图像的压缩率。
第一方面,本申请实施例提供了一种图像压缩方法,该方法包括:
获取第一图像,第一图像为二值图像;
将第一图像分割为多个图像块,多个图像块包括以下至少一项:第一类型的图像块,第二类型的图像块;
对多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到第一图像的压缩数据。
第二方面,本申请实施例提供了一种图像压缩装置,该装置包括:
获取模块,用于获取第一图像,第一图像为二值图像;
分割模块,用于将第一图像分割为多个图像块,多个图像块包括以下至少一项:第一类型的图像块,第二类型的图像块;
第一编码模块,用于对多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到第一图像的压缩数据。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
在本申请实施例中,能够将二值图像分割为多个图像块,然后对多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到该二值图像的压缩数据。这样,由于是对多个图像块的类型进行编码,且仅对第二类型的图像块采用第一编码方式进行编码,因此压缩率较高。
附图说明
图1是根据一示例性实施例示出的一种图像压缩方法的流程示意图;
图2是根据一示例性实施例示出的一种游标编码的流程示意图;
图3是根据一示例性实施例示出的一种图像压缩的流程示意图;
图4是根据一示例性实施例示出的一种图像解压的流程示意图;
图5是根据一示例性实施例示出的一种图像压缩装置的结构框图;
图6是根据一示例性实施例示出的一种电子设备的结构框图;
图7为实现本申请实施例的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
如背景技术,在图像处理领域,经常会通过二值化的黑白图作为遮罩图,来区分原始图像中的不同区域或对象,然后在遮罩的区域和遮罩区域之外使用不同的图像处理算法。
由于识别图像中的物体区域并生成二值图像是一个比较复杂的计算过程,因此在很多实时且功耗限制较严格的应用场景中,通常会把生成的二值图像进行保存,方便后续直接使用,而无需重新生成二值图像,省时、省功耗。
在对二值图像进行保存时,通常会先对二值图像进行压缩,以便节省存储空间。传统的压缩方法可以通过将8个byte转化为1个byte的方式压缩二值图像,压缩率固定为87.5%,这也许可以满足单张二值图像的压缩需求,但是针对多张二值图像,或者一段尺寸较大、帧率较高、时间较长的视频,使用该传统的压缩方法处理后,数据量依然很大,会占用较大的存储空间、传输带宽和中央处理器(Central Processing Unit,CPU)负载。例如一段1920x1080 30fps的视频,其每分钟产生的二值图像的数据量就高达445M byte,几乎达到一部高清电影的数据量。
另外,若使用常见的视频编码技术,如hevc或avc,虽然可以得到很高的压缩率,但是算法较为复杂,因此压缩效率较低,而且是有损压缩,对于二值图像来说,很容易丢失bit0的数据,造成失真。
本申请实施例提供了一种图像压缩方法、装置、电子设备及存储介质,能够将二值图像分割为多个图像块,然后对多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到该二值图像的压缩数据。这样,由于是对多个图像块的类型进行编码,且仅对第二类型的图像块采用第一编码方式进行编码,因此压缩率较高。而且,本申请实施例中采用的压缩算法简单且是无损压缩,因此压缩效率较高,CPU负担较轻,也不会因丢失数据造成失真。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的图像压缩方法、装置、电子设备及存储介质进行详细地说明。
本申请实施例提供的图像压缩方法可应用于用户想要压缩二值图的应用场景中。
下面结合图1-图4对本申请实施例提供的图像压缩方法进行详细说明。本申请实施例提供的图像压缩方法,执行主体可以为电子设备,需要说明的是,上述执行主体并不构成对本申请的限定。
图1是根据一示例性实施例示出的一种图像压缩方法的流程图。
如图1所示,该图像压缩方法可以包括如下步骤:
步骤110,获取第一图像。
这里,第一图像可以为二值图像。示例性地,该二值图像可以是视频中的视频帧。
示例性地,可以将第一图像存储到第三存储位置(buffer1),当需要获取第一图像时,可以获取存储第一图像的buffer1,根据buffer1调用第一图像。
步骤120,将第一图像分割为多个图像块,所述多个图像块包括以下至少一项:第一类型的图像块,第二类型的图像块。
这里,可以按照预设尺寸将第一图像分割为多个图像块。预设尺寸可以为图像块的尺寸,该预设尺寸可以根据实际需求设置。
示例性地,可以按照预设尺寸,在水平和垂直方向把第一图像分割成多个图像块。
多个图像块可以包括第一类型的图像块,或者包括第二类型的图像块,或者包括第一类型的图像块和第二类型的图像块。图像块的类型可以是根据图像块中的像素值确定的。对于任一图像块,若图像块中的像素值均为1或均为0,则该图像块可以为第一类型的图像块;若图像块中的像素值包括0和1,则图像块可以为第二类型的图像块。
在一种可选的实施方式中,可以采用Zig-Zag扫描方式扫描多个图像块,得到多个图像块分别对应的类型。采用Zig-Zag扫描方式进行扫描,可以尽可能把相同图像内容的图像块排列在一起,从而可以使后续游标编码的压缩率更高。
在一种可选的实施方式中,步骤120可以包括:
将第一图像分割为多个第一图像块;
在多个第一图像块中存在第二图像块的情况下,对第二图像块进行分割,直至多个第一图像块中不存在第二图像块,得到多个图像块。
这里,第二图像块的类型可以为第二类型且尺寸可以大于尺寸阈值。尺寸阈值可以根据实际需求设置。示例性地,尺寸阈值可以为4p×4p。
具体地,可以先按照预设尺寸将第一图像分割为多个第一图像块,然后依次识别每个第一图像块的类型,对于任一第一图像块,若第一图像块的类型为第一类型,则不继续对该第一图像块进行分割;若第一图像块的类型为第二类型,则可以判断该第一图像块的尺寸是否大于尺寸阈值,若小于或等于,则不继续对该第一图像块进行分割;若大于,则可以再次对该第一图像块进行分割,然后继续识别下一个图像块的类型,并重复上述步骤,直至所有图像块中不存在类型为第二类型且尺寸大于尺寸阈值的图像块为止。下一个图像块可以是未被识别的第一图像块和再次对该第一图像块进行分割得到的图像块中的任一个。
示例性地,若第一图像块的尺寸大于4×4,则可以把第一图像块平均分割为4个子图像块。对于处于图像边缘的图像块,可以优先按照4x4的尺寸进行分割,对于未处于图像边缘的图像块,可以按照小于4x4的尺寸进行分割。
如此,通过对类型为第二类型且尺寸大于尺寸阈值的图像块进行再次分割,可以尽量减少第二类型的图像块的数量,从而减少需要采用第一编码方式压缩的图像块的数量,因此可以提高第一图像的压缩率。
在一种可选的实施方式中,在第一图像为视频帧的情况下,可以基于前一个视频帧的分割尺寸确定第一图像对应的预设尺寸。示例性地,第一图像对应的预设尺寸可以略大于前一个视频帧的分割尺寸。根据前一个视频帧的分割尺寸,动态计算当前视频帧的分割尺寸的起始大小,可以很大程度保证编码的效果。
步骤130,对多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到第一图像的压缩数据。
这里,第一编码方式可以为将8个byte转化为1个byte的编码方式。
第一图像的压缩数据可以包括多个图像块的类型的编码和第二类型的图像块的编码。
具体地,若多个图像块中包括第二类型的图像块,则可以采用第一编码方式对第二类型的图像块的进行编码。
示例性地,可以以2bit为单位对图像块的类型进行编码。图像块的类型的编码可以包括00b、01b和10b。其中,00b可以表示图像块中的像素值均为0,01b可以表示图像块中的像素值均为1,10b可以表示图像块中的像素值包括0和1。然后,采用第一编码方式对类型编码为10b的图像块进行编码,便可以得到第一图像的压缩数据。
此外,还可以预先为第一图像的压缩数据分配第四存储位置(buffer2),得到第一图像的压缩数据之后便可以将其存储至buffer2。示例性地,buffer2的大小可以为:(宽×高)/8+17+16bytes,其中,宽可以为第一图像的宽度,高可以为第一图像的高度。
由此,能够将二值图像分割为多个图像块,然后对多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到该二值图像的压缩数据。这样,由于是对多个图像块的类型进行编码,且仅对第二类型的图像块采用第一编码方式进行编码,因此压缩率较高。
在一种可选的实施方式中,步骤130可以包括:
对第三图像块的类型进行编码,得到第三图像块对应的编码数据,并将第三图像块对应的编码数据存储至第一存储位置;
在第三图像块的类型为第二类型的情况下,采用第一编码方式对第三图像块进行编码,得到第三图像块对应的编码数据,并将第三图像块对应的编码数据存储至第二存储位置;
在第一存储位置和第二存储位置存储的总数据量小于或等于数据量阈值的情况下,对第四图像块进行编码,直至总数据量大于数据量阈值或多个图像块均被编码为止;
在多个图像块均被编码的情况下,根据第一存储位置和第二存储位置存储的数据,确定第一图像的压缩数据。
这里,第三图像块可以为多个图像块中的任一个。第四图像块可以为多个图像块中未被编码的图像块。
第一存储位置可以是用于存储图像块的类型编码的存储位置。第二存储位置可以是用于存储采用第一编码方式编码的图像块编码的存储位置。
数据量阈值可以根据实际需求设置。示例性地,数据量阈值可以为:17+(宽×高)/8bytes,其中,宽可以为第一图像的宽度,高可以为第一图像的高度。
第一图像的压缩数据可以包括第一存储位置存储的数据和第二存储位置存储的数据。
具体地,可以预先为图像块的类型的编码分配第一存储位置(buffer3),为采用第一编码方式编码的图像块的编码分配第二存储位置(buffer4)。然后,可以依次对每个图像块进行编码,对于任一图像块,可以先对该图像块的类型进行编码,将该图像块的类型的编码存储至buffer3,若该图像块的类型为第二类型,则可以采用第一编码方式对该图像块进行编码,将采用第一编码方式对该图像块编码的编码数据存储至buffer4。然后,可以判断buffer3和buffer4存储的总数据量是否大于数据量阈值,若否,则可以开始对下一个图像块进行编码,直至总数据量大于数据量阈值或多个图像块均被编码为止。当多个图像块均被编码时,便可以根据buffer3和buffer4存储的数据确定第一图像的压缩数据。
buffer3和buffer4存储的总数据量小于或等于数据量阈值,可以表明第一图像的复杂度较低,采用“对多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码”的编码方式的压缩率较高。
如此,通过在对每个图像块编码后均判断编码数据的总数据量是否大于数据量阈值,并在小于或等于数据量阈值的情况下继续进行编码,可以在确定图像复杂度较低的情况下,继续按照上述方式进行编码,从而可以保证第一图像的压缩率更高。
在一种可选的实施方式中,根据第一存储位置和第二存储位置存储的数据,确定第一图像的压缩数据,可以包括:
采用游标编码对第一存储位置存储的数据进行编码,采用霍夫曼编码对第二存储位置存储的数据进行编码,得到第一图像的压缩数据。
这里,为了进一步提高压缩率可以对第一存储位置和第二存储位置存储的数据进一步进行编码。
若第二存储位置中未存储数据,则可以仅采用游标编码对第一存储位置存储的数据进行编码,得到第一图像的压缩数据。
具体地,可以将游标编码得到的数据存储至buffer2中的数据头后面,可以将霍夫曼编码得到的数据存储至buffer2中的游标编码数据后面。
示例性地,可以设计以10bit为单位的游标码,其中,2bit表示图像块的类型,8bit表示该类型连续的图像块的数量。通过游标编码,用10bit最长可以表示510bit的图像块数据流。例如:01+01100010,就可以表示连续98个像素值均为1的图像块。
在一些示例中,游标编码的过程可以如图2所示,具体包括:步骤201,初始化buffer2中的图像块的类型=-1,图像块的数量=0;步骤202,获取图像块的类型的编码;步骤203,判断当前图像块的类型是否与图像块的类型相同,若是,则执行步骤204,若否,则执行步骤205;步骤204,判断图像块的数量是否等于255,若是,则执行206,若否,则执行步骤208;步骤205,判断图像块的数量是否为0,若是,则执行步骤207,若否,则执行步骤206;步骤206,将图像块的数量的编码写入buffer2,图像块的数量=0;步骤207,将图像块的类型的编码写入buffer2,将图像块的类型更新为当前图像块的类型;步骤208,将图像块的数量+1;步骤209,判断当前图像块是否为最后一个图像块,若是则执行步骤210,若否,则返回执行步骤202;步骤210,将图像块的数量的编码写入buffer2。
示例性地,采用霍夫曼编码对第二存储位置存储的数据进行压缩的过程可以为:扫描第二存储位置存储的数据,用连续出现的bit数量代替bit序列,把表示连续出现的次数叫做符号,扫描完后会生成一个与第二存储位置存储的数据对应的符号序列。若编码时以4px4p的图像块为单位,则在16个bit内必定包含0和1,因此连续相同bit的数量不会超过15,因此可以设定连续0的个数用1至15的数字符号表示,连续1的个数用16至30的数字符号表示。例如:1100 0000 0111 0000用数字符号表示为17,7,18,4。然后可以统计整个符号序列中,每种数字符号出现的次数,并且计算每种数字符号出现的概率,把概率由低到高排列,再把排列后的概率作为叶节点,构建生成霍夫曼二叉树,霍夫曼二叉树构建完后,就可以得到每个概率对应的数字符号的霍夫曼码。也就是会生成表示1至30数字符号编码的霍夫曼码表,以及每个码对应的长度数组。霍夫曼码的特点是出现概率大的符号会分配短的编码,出现概率小的符号会分配长的编码,从而实现数据压缩的效果。扫描符号序列,可以根据霍夫曼表,用霍夫曼码表示对应的数字符号,完成霍夫曼编码,然后可以将霍夫曼编码生成的数据写入霍夫曼码表,形成霍夫曼编码数据流。
如此,通过采用游标编码对第一存储位置存储的数据进行编码,采用霍夫曼编码对第二存储位置存储的数据进行编码,可以对第一图像进行进一步压缩,进一步提升第一图像的压缩率。
在一种可选的实施方式中,该方法还可以包括:
在总数据量大于数据量阈值的情况下,采用第一编码方式对第一图像进行编码,并将第一图像对应的第一标志位设置为第一数值,得到第一图像的压缩数据。
这里,总数据量大于数据量阈值,可以表明第一图像的复杂度较高,采用第一编码方式对第一图像进行编码的压缩率更高。
通过将第一图像对应的第一标志位设置为第一数值,可以表示第一图像的压缩数据是采用第一编码方式编码得到的。
第一标志位和第一数值均可以根据实际需求设置。示例性地,第一标志位可以为bit0,第一数值可以为1。
示例性地,若buffer3和buffer4存储的总数据量大于数据量阈值,则可以采用第一编码方式对第一图像进行编码,并设置bit0=1。
如此,通过在总数据量大于数据量阈值的情况下,采用第一编码方式对第一图像进行编码,可以在第一图像的复杂度较高的情况下,采用对复杂图像压缩率更高的第一编码方式进行编码,从而保证较高的的压缩率,此外通过将第一图像对应的第一标志位设置为第一数值,可以表示第一图像的压缩数据是采用第一编码方式编码得到的,从而便于后续解压时准确确定解码方式。
在一种可选的实施方式中,该方法还可以包括:
在多个图像块的类型均为第一类型的情况下,将第一图像对应的第二标志位设置为第二数值,得到第一图像的压缩数据。
这里,第一类型为像素值均为0的类型或像素值均为1的类型。第二标志位可以包括第一子标志位或第二子标志位。第二数值可以根据实际需求设置。示例性地,第一子标志位可以为bit1,第二子标志位可以为bit2,第二数值可以为1。
具体地,若多个图像块均是像素值均为0的图像块,则表明第一图像中的像素值均为0,若多个图像块均是像素值均为1的图像块,则表明第一图像中的像素值均为1。
示例性地,若多个图像块均是像素值均为0的图像块,则可以设置bit1=1;若多个图像块均是像素值均为1的图像块,则可以设置bit2=1。
如此,通过在多个图像块的类型均为第一类型的情况下,将第一图像对应的第二标志位设置为第二数值,可以通过设置标志位的方式对整张图像的像素值均为0或均为1的图像进行压缩,实现较高的压缩率。
在一种可选的实施方式中,压缩数据还可以包括数据头。
数据头可以定义第一图像的规格以及压缩、解压缩时的一些参数。
示例性地,数据头可以为17Byte。
数据头可以包括数据总量、第一图像的宽度、第一图像的高度、游标编码的数据量、图像块的最大尺寸和标志位。
其中,数据总量可以为4Byte integer,第一图像的宽度可以为2Byte short,第一图像的高度可以为2Byte short,游标编码的数据量可以为4Byte integer,图像块的最大尺寸可以为1Byte,标志位可以为4Byte。
此外,还可以设置写入指针起始位置在数据头之后。
在一种可选的实施方式中,对第一图像进行压缩时,输入参数可以包括:第一图像的存储位置、第一图像的宽度、第一图像的高度、每行数据的起始位置的间隔和压缩数据的存储位置。若第一图像为视频帧,则输入参数还可以包括前一个视频帧的编码统计数据。输出数据可以包括:压缩数据的数据量、压缩数据和第一图像的编码统计数据。
在一种可选的实施方式中,在得到第一图像的压缩数据之后,该方法还可以包括:
解析压缩数据,得到多个图像块的类型的第一编码数据和第二类型的图像块的第二编码数据;
根据多个图像块的第一编码数据,确定多个图像块分别对应的类型;
对第一类型的图像块的第一编码数据进行解码,并采用第一解码方式对第二类型的图像块的第二编码数据进行解码,得到第一图像。
这里,第一解码方式可以与第一编码方式对应。
若多个图像块中包括第二类型的图像块,则压缩数据中可以包括第二编码数据。
具体地,通过读取第一编码数据可以确定多个图像块及其分别对应的类型,对于第一类型的图像块,可以根据第一编码数据解码,对于第二类型的图像块,可以采用第一解码方式对第二编码数据解码。
此外,可以预先为解压得到的第一图像分配存储位置(buffer5),buffer5的大小可以根据压缩数据的数据头中的第一图像的宽度和第一图像的高度确定。按照图像块的最大尺寸分割输出图像,逐块解析第一编码数据和第二编码数据,并把结果填充到图像块对应的输出buffer里。
在一种可选的实施方式中,若在对第一图像的压缩过程中,对图像块的类型编码进行了游标编码,对第二类型的图像块的编码数据进行了霍夫曼编码,则在根据多个图像块的第一编码数据,确定多个图像块分别对应的类型之前,还需要对第一编码数据进行游标解码,在采用第一解码方式对第二类型的图像块的第二编码数据进行解码之前,还需要对第二编码数据进行霍夫曼解码。
示例性地,可以根据数据头中游标编码的数据量从压缩数据中读取游标编码的数据,得到第一编码数据。从游标编码数据的结束位置开始,依次读取霍夫曼码长数组,霍夫曼码表,开始做霍夫曼解码,得到第二编码数据。
示例性地,霍夫曼解码的过程可以为:读取霍夫曼码(也即第二编码数据)长数组,再根据霍夫曼码长,逐bit读取30个符号(1~30)的霍夫曼码,再根据霍夫曼码重建霍夫曼二叉树;逐个bit读取霍夫曼编码数据,并根据bit数值遍历霍夫曼二叉树,直到叶节点,就可以得到这一段bit流对应的霍夫曼码,再根据该码,从霍夫曼表中查找到对应的数值符号,然后根据该数值符号生成连续的0或连续的1,重复此过程,便可以完成第二编码数据的霍夫曼解码。
如此,通过上述过程可以快速准确地对压缩数据进行解压,得到第一图像。
在一种可选的实施方式中,上述对第一类型的图像块的第一编码数据进行解码,并采用第一解码方式对第二类型的图像块的第二编码数据进行解码,得到第一图像,可以包括:
在第五图像块的类型为第一类型的情况下,采用第三数值填充第五图像块;
在第五图像块的类型为第二类型的情况下,采用第一解码方式对第五图像块的第二编码数据进行解码;
在多个图像块中存在未被解码的图像块的情况下,对第六图像块进行解码,直至多个图像块均被解码,得到第一图像。
这里,第五图像块可以为多个图像块中的任一个。第六图像块可以为多个图像块中未被解码的图像块。
第三数值可以为0或1。若第一类型为像素值均为0的类型,则第三数值为0;若第一类型为像素值均为1的类型,则第三数值为1。
具体地,可以依次对每个图像块进行解码,对于任一图像块,若该图像块的类型为像素值均为0的类型,则可以采用0填充该图像块;若该图像块的类型为像素值均为1的类型,则可以采用1填充该图像块;若该图像块为像素值包括0和1的类型,则可以采用第一解码方式对该图像块对应的第二编码数据进行解码,然后可以对下一个图像块进行解码,直至多个图像块均被解码,得到第一图像。
如此,通过上述过程,可以对第一类型的图像块通过填充第三数值进行解码,对第二类型的图像块采用第一解码方式解码,这样可以提高解码效率。
在一种可选的实施方式中,在第五图像块的类型为第二类型的情况下,采用第一解码方式对第五图像块的第二编码数据进行解码,可以包括:
在第五图像块的类型为第二类型且第五图像块的尺寸小于或等于尺寸阈值的情况下,采用第一解码方式对第五图像块的第二编码数据进行解码。
在一种可选的实施方式中,该方法还可以包括:
在第五图像块的类型为第二类型且第五图像块的尺寸大于尺寸阈值的情况下,对第五图像块进行分割,直至多个图像块均被解码。
如此,通过上述过程可以使解码过程中的图像块与编码过程中的图像块更相近,提高解压的准确性。
在一种可选的实施方式中,该方法还可以包括:
读取压缩数据的标志位;
在第一标志位为第一数值的情况下,采用第一解码方式对压缩数据进行解码,得到第一图像;
在第二标志位为第二数值的情况下,采用第四数值填充图像,得到第一图像;。
这里,第一标志位为第一数值可以表明压缩数据是采用第一编码方式压缩得到的,因此可以采用第一编码方式对应的第一解码方式对压缩数据进行解压。
第二标志位可以包括第一子标志位或第二子标志位。第二数值可以根据实际需求设置。示例性地,第一标志位可以为bit0,第一数值可以为1。第一子标志位可以为bit1,第二子标志位可以为bit2,第二数值可以为1。第四数值可以为0或1。
若bit0=1可以表明压缩数据是采用第一编码方式压缩得到的,因此可以采用第一编码方式对应的第一解码方式对压缩数据进行解压,得到第一图像;若bit1=1可以表明第一图像中的像素值均为0,因此可以采用0填充整张图像,得到第一图像;若bit2=1可以表明第一图像中的像素值均为1,因此可以采用1填充整张图像,得到第一图像。
如此,通过读取压缩数据中的标志位便可以快速确定解压方式并进行解压,从而可以提高解压效率。
在一种可选的实施方式中,对压缩数据进行解压时,输入参数可以包括压缩数据,输出数据可以包括第一图像的宽度、第一图像的高度和第一图像。
为了更好地描述整个方案,基于上述各实施例,举一个具体例子,如图3所示,图像压缩过程可以包括步骤301-步骤315,下面对此进行详细解释。
步骤301,获取第一图像。
步骤302,将第一图像分割为多个图像块。
步骤303,识别图像块的类型。
步骤304,将图像块的类型编码存储到第一存储位置。
步骤305,判断图像块的类型是否为第一类型。
若是,则执行步骤306;若否,则执行步骤308。
步骤306,判断第一存储位置和第二位置存储的总数据量是否超过数据量阈值。
若是,则执行步骤307;若否,则执行步骤312。
步骤307,采用第一压缩方式对第一图像进行压缩,并将第一图像的第一标志位设置为第一数值。
步骤308,判断图像块的尺寸是否小于尺寸阈值。
若是,则执行步骤310;若否,则执行步骤309。
步骤309,对图像块进行分割,并返回执行步骤303,识别下一个图像块的类型。
步骤310,使用第一压缩方式压缩图像块。
步骤311,将图像块的压缩数据存储到第二存储位置。
若是,则执行步骤310;若否,则执行步骤309。
步骤312,判断当前图像块是否为最后一个图像块。
若是,则执行步骤313;若否,则执行步骤303。
步骤313,判断多个图像块的类型是否均为第一类型。
若是,则执行步骤314;若否,则执行步骤315。
步骤314,将第一图像对应的第二标志位设置为第二数值。
步骤315,采用游标编码对第一存储位置的数据进行压缩,采用霍夫曼编码对第二存储位置的数据进行压缩。
各步骤具体过程在此不再赘述。
本申请实施例中,由于二值图像背景区域和前景区域的像素值,都是成块的0或者成块的1,因此把二值图像分割为适当大小的图像块,对图像块进行识别,可以得到很多全0或者全1的图像块,这些图像块用2bit的数据就可以实现编码。由于处于背景区域和前景区域交界位置的图像块的像素值,通常会包含0和1,因此可以把这种图像块再次分割,例如将宽和高均缩小一半,在较小的子图像块上继续识别出更多全0或者全1的图像块,继续用2bit的数据做编码。对于已经缩小到尺寸阈值的图像块的像素值,若仍包含0和1,则对该图像块使用将8个byte转化为1个byte的方式进行编码。这样,可以把大量的全0或者全1的图像块,用2bit的数据进行编码,从而实现大幅压缩二值图像的效果。对于包含0和1的图像块,可以使用将8个byte转化为1个byte的方式压缩。
为了进一步提高压缩率,可以对表示图像块的类型的编码数据和用将8个byte转化为1个byte的方式编码的编码数据分别用游标编码和霍夫曼编码,生成最终的压缩数据。使用该方法的压缩率是动态变化的,一般与二值图像的前景内容的复杂程度相关,复杂程度越低的图像,其边缘线条越少,需要用将8个byte转化为1个byte的方式压缩的图像块就越少,压缩率就会更高。
示例性地,采用上述图像压缩方法,对480px270p尺寸的单人像二值图像的视频流进行压缩,平均耗时可以为60.5us,最大耗时可以为992us。压缩数据的平均长度可以为549byte,最大长度可以为695byte,平均压缩比可以为99.58%,最大压缩比可以为99.46%。
本申请实施例中,可以有效地压缩二值图的数据量,极大地减少二值图的存储和传输成本,从而可以在视频图像处理过程中,可以更快速地加载预先生成的二值图,使得应用程序的运行更加顺滑,能耗更低。
为了更好地描述整个方案,基于上述各实施例,举一个具体例子,如图4所示,图像解压过程可以包括步骤401-步骤417,下面对此进行详细解释。
步骤401,解析压缩数据,得到第一编码数据、第二编码数据和标志位。
步骤402,判断第一标志位bit0是否为1。
若是,则执行步骤403;若否,则执行步骤404。
步骤403,采用第一解码方式解码压缩数据,得到第一图像,结束。
步骤404,判断第二标志位bit1是否为1。
若是,则执行步骤405;若否,则执行步骤406。
步骤405,采用0填充整张图像,得到第一图像,结束。
步骤406,判断第二标志位bit2是否为1。
若是,则执行步骤407;若否,则执行步骤408。
步骤407,采用1填充整张图像,得到第一图像,结束。
步骤408,采用游标解码对第一编码数据进行解码,采用霍夫曼解码对第二编码数据进行解码。
步骤409,分割多个图像块。
步骤410,根据第一编码数据确定图像块的类型。
步骤411,判断待图像块的类型。
若图像块的类型为“00”,则执行步骤415;若图像块的类型为“01”,则执行步骤416;若图像块的类型为“10”,则执行步骤412。
步骤412,判断图像块的尺寸是否小于尺寸阈值。
若是,则执行步骤414;若否,则执行步骤413。
步骤413,将图像块分割为多个图像块,并返回执行步骤410确定下一个图像块的类型。
步骤414,采用第一解码方式解码图像块。
步骤415,采用0填充图像块。
步骤416,采用1填充图像块。
步骤417,判断当前图像块是否为最后一个图像块。
若是,则结束;若否,则返回执行步骤410。
各步骤具体过程在此不再赘述。
本申请实施例提供的图像压缩方法,执行主体可以为图像压缩装置。本申请实施例中以图像压缩装置执行图像压缩方法为例,说明本申请实施例提供的图像压缩装置。
基于相同的发明构思,本申请还提供了一种图像压缩装置。下面结合图5对本申请实施例提供的图像压缩装置进行详细说明。
图5是根据一示例性实施例示出的一种图像压缩装置的结构框图。
如图5所示,图像压缩装置500可以包括:
获取模块501,用于获取第一图像,第一图像为二值图像;
分割模块502,用于将第一图像分割为多个图像块,多个图像块包括以下至少一项:第一类型的图像块,第二类型的图像块;
第一编码模块503,用于对多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到第一图像的压缩数据。
下面对上述图像压缩装置500进行详细说明,具体如下所示:
在其中一个实施例中,分割模块502可以包括:
第一分割子模块,用于将第一图像分割为多个第一图像块;
第二分割子模块,用于在多个第一图像块中存在第二图像块的情况下,对第二图像块进行分割,直至多个第一图像块中不存在第二图像块,得到多个图像块,第二图像块的类型为第二类型且尺寸大于尺寸阈值。
在其中一个实施例中,第一编码模块503可以包括:
第一编码子模块,用于对第三图像块的类型进行编码,得到第三图像块对应的编码数据,并将第三图像块对应的编码数据存储至第一存储位置,第三图像块为多个图像块中的任一个;
第二编码子模块,用于在第三图像块的类型为第二类型的情况下,采用第一编码方式对第三图像块进行编码,得到第三图像块对应的编码数据,并将第三图像块对应的编码数据存储至第二存储位置;
第三编码子模块,用于在第一存储位置和第二存储位置存储的总数据量小于或等于数据量阈值的情况下,对第四图像块进行编码,直至总数据量大于数据量阈值或多个图像块均被编码为止,第四图像块为多个图像块中未被编码的图像块;
确定子模块,用于在多个图像块均被编码的情况下,根据第一存储位置和第二存储位置存储的数据,确定第一图像的压缩数据。
在其中一个实施例中,确定子模块可以包括:
编码单元,用于采用游标编码对第一存储位置存储的数据进行编码,采用霍夫曼编码对第二存储位置存储的数据进行编码,得到第一图像的压缩数据。
在其中一个实施例中,图像压缩装置500还可以包括:
第二编码模块,用于在总数据量大于数据量阈值的情况下,采用第一编码方式对第一图像进行编码,并将第一图像对应的第一标志位设置为第一数值,得到第一图像的压缩数据。
在其中一个实施例中,图像压缩装置500还可以包括:
设置模块,用于在多个图像块的类型均为第一类型的情况下,将第一图像对应的第二标志位设置为第二数值,得到第一图像的压缩数据。
在其中一个实施例中,图像压缩装置500还可以包括:
解析模块,用于在得到第一图像的压缩数据之后,解析压缩数据,得到多个图像块的类型的第一编码数据和第二类型的图像块的第二编码数据;
确定模块,用于根据多个图像块的第一编码数据,确定多个图像块分别对应的类型;
解码模块,用于对第一类型的图像块的第一编码数据进行解码,并采用第一解码方式对第二类型的图像块的第二编码数据进行解码,得到第一图像,第一解码方式与第一编码方式对应。
在其中一个实施例中,解码模块可以包括:
填充子模块,用于在第五图像块的类型为第一类型的情况下,采用第三数值填充第五图像块,第五图像块为多个图像块中的任一个;
第一解码子模块,用于在第五图像块的类型为第二类型的情况下,采用第一解码方式对第五图像块的第二编码数据进行解码;
第二解码子模块,用于在多个图像块中存在未被解码的图像块的情况下,对第六图像块进行解码,直至多个图像块均被解码,得到第一图像,第六图像块为多个图像块中未被解码的图像块。
由此,能够将二值图像分割为多个图像块,然后对多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到该二值图像的压缩数据。这样,由于是对多个图像块的类型进行编码,且仅对第二类型的图像块采用第一编码方式进行编码,因此压缩率较高。
本申请实施例中的图像压缩装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的图像压缩装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的图像压缩装置能够实现图1至图4的方法实施例实现的各个过程,实现相同的技术效果,为避免重复,这里不再赘述。
可选地,如图6所示,本申请实施例还提供一种电子设备600,包括处理器601和存储器602,存储器602上存储有可在所述处理器601上运行的程序或指令,该程序或指令被处理器601执行时实现上述图像压缩方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图7为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备700包括但不限于:射频单元701、网络模块702、音频输出单元703、输入单元704、传感器705、显示单元706、用户输入单元707、接口单元708、存储器709、以及处理器710等部件。
本领域技术人员可以理解,电子设备700还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器710逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图7中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器710,用于获取第一图像,第一图像为二值图像;
将第一图像分割为多个图像块,多个图像块包括以下至少一项:第一类型的图像块,第二类型的图像块;
对多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到第一图像的压缩数据。
由此,能够将二值图像分割为多个图像块,然后对多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到该二值图像的压缩数据。这样,由于是对多个图像块的类型进行编码,且仅对第二类型的图像块采用第一编码方式进行编码,因此压缩率较高。
可选地,处理器710,还用于将第一图像分割为多个第一图像块;
在多个第一图像块中存在第二图像块的情况下,对第二图像块进行分割,直至多个第一图像块中不存在第二图像块,得到多个图像块,第二图像块的类型为第二类型且尺寸大于尺寸阈值。
如此,通过对类型为第二类型且尺寸大于尺寸阈值的图像块进行再次分割,可以尽量减少第二类型的图像块的数量,从而减少需要采用第一编码方式压缩的图像块的数量,因此可以提高第一图像的压缩率。
可选地,处理器710,还用于对第三图像块的类型进行编码,得到第三图像块对应的编码数据,并将第三图像块对应的编码数据存储至第一存储位置,第三图像块为多个图像块中的任一个;
在第三图像块的类型为第二类型的情况下,采用第一编码方式对第三图像块进行编码,得到第三图像块对应的编码数据,并将第三图像块对应的编码数据存储至第二存储位置;
在第一存储位置和第二存储位置存储的总数据量小于或等于数据量阈值的情况下,对第四图像块进行编码,直至总数据量大于数据量阈值或多个图像块均被编码为止,第四图像块为多个图像块中未被编码的图像块;
在多个图像块均被编码的情况下,根据第一存储位置和第二存储位置存储的数据,确定第一图像的压缩数据。
如此,通过在对每个图像块编码后均判断编码数据的总数据量是否大于数据量阈值,并在小于或等于数据量阈值的情况下继续进行编码,可以在确定图像复杂度较低的情况下,继续按照上述方式进行编码,从而可以保证第一图像的压缩率更高。
可选地,处理器710,还用于采用游标编码对第一存储位置存储的数据进行编码,采用霍夫曼编码对第二存储位置存储的数据进行编码,得到第一图像的压缩数据。
如此,通过采用游标编码对第一存储位置存储的数据进行编码,采用霍夫曼编码对第二存储位置存储的数据进行编码,可以对第一图像进行进一步压缩,进一步提升第一图像的压缩率。
可选地,处理器710,还用于在总数据量大于数据量阈值的情况下,采用第一编码方式对第一图像进行编码,并将第一图像对应的第一标志位设置为第一数值,得到第一图像的压缩数据。
如此,通过在总数据量大于数据量阈值的情况下,采用第一编码方式对第一图像进行编码,可以在第一图像的复杂度较高的情况下,采用对复杂图像压缩率更高的第一编码方式进行编码,从而保证较高的压缩率,此外通过将第一图像对应的第一标志位设置为第一数值,可以表示第一图像的压缩数据是采用第一编码方式编码得到的,从而便于后续解压时准确确定解码方式。
可选地,处理器710,还用于在多个图像块的类型均为第一类型的情况下,将第一图像对应的第二标志位设置为第二数值,得到第一图像的压缩数据。
如此,通过在多个图像块的类型均为第一类型的情况下,将第一图像对应的第二标志位设置为第二数值,可以通过设置标志位的方式对整张图像的像素值均为0或均为1的图像进行压缩,实现较高的压缩率。
可选地,处理器710,还用于在得到第一图像的压缩数据之后,解析压缩数据,得到多个图像块的类型的第一编码数据和第二类型的图像块的第二编码数据;
根据多个图像块的第一编码数据,确定多个图像块分别对应的类型;
对第一类型的图像块的第一编码数据进行解码,并采用第一解码方式对第二类型的图像块的第二编码数据进行解码,得到第一图像,第一解码方式与第一编码方式对应。
如此,通过上述过程可以快速准确地对压缩数据进行解压,得到第一图像。
可选地,处理器710,还用于在第五图像块的类型为第一类型的情况下,采用第三数值填充第五图像块,第五图像块为多个图像块中的任一个;
在第五图像块的类型为第二类型的情况下,采用第一解码方式对第五图像块的第二编码数据进行解码;
在多个图像块中存在未被解码的图像块的情况下,对第六图像块进行解码,直至多个图像块均被解码,得到第一图像,第六图像块为多个图像块中未被解码的图像块。
如此,通过上述过程,可以对第一类型的图像块通过填充第三数值进行解码,对第二类型的图像块采用第一解码方式解码,这样可以提高解码效率。
应理解的是,本申请实施例中,输入单元704可以包括图形处理器(GraphicsProcessing Unit,GPU)7041和麦克风7042,图形处理器7041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元706可包括显示面板7061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板7061。用户输入单元707包括触控面板7071以及其他输入设备7072中的至少一种。触控面板7071,也称为触摸屏。触控面板7071可包括触摸检测装置和触摸控制器两个部分。其他输入设备7072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器709可用于存储软件程序以及各种数据。存储器709可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器709可以包括易失性存储器或非易失性存储器,或者,存储器709可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器709包括但不限于这些和任意其它适合类型的存储器。
处理器710可包括一个或多个处理单元;可选地,处理器710集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器710中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述图像压缩方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器、随机存取存储器、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述图像压缩方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述图像压缩方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (11)

1.一种图像压缩方法,其特征在于,所述方法包括:
获取第一图像,所述第一图像为二值图像;
将所述第一图像分割为多个图像块,所述多个图像块包括以下至少一项:第一类型的图像块,第二类型的图像块;
对所述多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到所述第一图像的压缩数据。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一图像分割为多个图像块,包括:
将所述第一图像分割为多个第一图像块;
在所述多个第一图像块中存在第二图像块的情况下,对所述第二图像块进行分割,直至所述多个第一图像块中不存在所述第二图像块,得到所述多个图像块,所述第二图像块的类型为第二类型且尺寸大于尺寸阈值。
3.根据权利要求1所述的方法,其特征在于,所述对所述多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到所述第一图像的压缩数据,包括:
对第三图像块的类型进行编码,得到所述第三图像块对应的编码数据,并将所述第三图像块对应的编码数据存储至第一存储位置,所述第三图像块为所述多个图像块中的任一个;
在所述第三图像块的类型为第二类型的情况下,采用所述第一编码方式对所述第三图像块进行编码,得到所述第三图像块对应的编码数据,并将所述第三图像块对应的编码数据存储至第二存储位置;
在所述第一存储位置和所述第二存储位置存储的总数据量小于或等于数据量阈值的情况下,对第四图像块进行编码,直至所述总数据量大于所述数据量阈值或所述多个图像块均被编码为止,所述第四图像块为所述多个图像块中未被编码的图像块;
在所述多个图像块均被编码的情况下,根据所述第一存储位置和所述第二存储位置存储的数据,确定所述第一图像的压缩数据。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一存储位置和所述第二存储位置存储的数据,确定所述第一图像的压缩数据,包括:
采用游标编码对所述第一存储位置存储的数据进行编码,采用霍夫曼编码对所述第二存储位置存储的数据进行编码,得到所述第一图像的压缩数据。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述总数据量大于所述数据量阈值的情况下,采用所述第一编码方式对所述第一图像进行编码,并将所述第一图像对应的第一标志位设置为第一数值,得到所述第一图像的压缩数据。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述多个图像块的类型均为第一类型的情况下,将所述第一图像对应的第二标志位设置为第二数值,得到所述第一图像的压缩数据。
7.根据权利要求1所述的方法,其特征在于,在所述得到所述第一图像的压缩数据之后,所述方法还包括:
解析所述压缩数据,得到多个图像块的类型的第一编码数据和第二类型的图像块的第二编码数据;
根据所述多个图像块的第一编码数据,确定所述多个图像块分别对应的类型;
对第一类型的图像块的第一编码数据进行解码,并采用第一解码方式对第二类型的图像块的第二编码数据进行解码,得到所述第一图像,所述第一解码方式与所述第一编码方式对应。
8.根据权利要求7所述的方法,其特征在于,所述对第一类型的图像块的第一编码数据进行解码,并采用第一解码方式对第二类型的图像块的第二编码数据进行解码,得到所述第一图像,包括:
在第五图像块的类型为第一类型的情况下,采用第三数值填充所述第五图像块,所述第五图像块为所述多个图像块中的任一个;
在所述第五图像块的类型为第二类型的情况下,采用所述第一解码方式对所述第五图像块的第二编码数据进行解码;
在所述多个图像块中存在未被解码的图像块的情况下,对第六图像块进行解码,直至所述多个图像块均被解码,得到所述第一图像,所述第六图像块为所述多个图像块中未被解码的图像块。
9.一种图像压缩装置,其特征在于,所述装置包括:
获取模块,用于获取第一图像,所述第一图像为二值图像;
分割模块,用于将所述第一图像分割为多个图像块,所述多个图像块包括以下至少一项:第一类型的图像块,第二类型的图像块;
第一编码模块,用于对所述多个图像块的类型进行编码,并采用第一编码方式对第二类型的图像块的进行编码,得到所述第一图像的压缩数据。
10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-8任一项所述的图像压缩方法的步骤。
11.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-8任一项所述的图像压缩方法的步骤。
CN202311281921.5A 2023-09-28 2023-09-28 图像压缩方法、装置、电子设备及存储介质 Pending CN117333559A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311281921.5A CN117333559A (zh) 2023-09-28 2023-09-28 图像压缩方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311281921.5A CN117333559A (zh) 2023-09-28 2023-09-28 图像压缩方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117333559A true CN117333559A (zh) 2024-01-02

Family

ID=89275008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311281921.5A Pending CN117333559A (zh) 2023-09-28 2023-09-28 图像压缩方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117333559A (zh)

Similar Documents

Publication Publication Date Title
US10499086B2 (en) Video data encoding and decoding methods and apparatuses
US8019166B2 (en) Image data compression method and apparatuses, image display method and apparatuses
US20030055833A1 (en) Data structure for efficient access to variable-size data
EP3343446A1 (en) Method and apparatus for encoding and decoding lists of pixels
CN110113617B (zh) 图像压缩与解压缩的方法、装置、电子设备及存储介质
TWI479456B (zh) 使用誤差平面編碼的數據壓縮方法及裝置
CN108347602B (zh) 用于无损压缩视频数据的方法和装置
US6584226B1 (en) Method and apparatus for implementing motion estimation in video compression
CN113225554B (zh) 一种基于神经网络的图像编解码方法、装置、存储介质及终端
CN107103632B (zh) 图像压缩方法及装置
JP2011234363A (ja) 画像処理システム及び方法
CN108668169B (zh) 图像信息处理方法及装置、存储介质
US8594194B2 (en) Compression method using adaptive field data selection
CN108668170B (zh) 图像信息处理方法及装置、存储介质
CN105163124A (zh) 一种图像编码方法、图像解码方法及装置
CN117333559A (zh) 图像压缩方法、装置、电子设备及存储介质
CN107172425B (zh) 缩略图生成方法、装置及终端设备
JPH08130652A (ja) 2次元画像データの圧縮方式および伸長方式
TWI484829B (zh) 圖像處理系統及方法
WO2024140568A1 (zh) 图像处理方法、装置、电子设备及可读存储介质
CN116708793B (zh) 视频的传输方法、装置、设备及存储介质
JP3817135B2 (ja) 画像データ符号化方法
JP3420389B2 (ja) 画像符号化方法及びその装置
KR100495001B1 (ko) 이미지 압축 부호화 방법 및 시스템
CN116320395A (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