CN112399181B - 图像编解码的方法、装置和存储介质 - Google Patents

图像编解码的方法、装置和存储介质 Download PDF

Info

Publication number
CN112399181B
CN112399181B CN201910766066.4A CN201910766066A CN112399181B CN 112399181 B CN112399181 B CN 112399181B CN 201910766066 A CN201910766066 A CN 201910766066A CN 112399181 B CN112399181 B CN 112399181B
Authority
CN
China
Prior art keywords
value
values
level
run
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910766066.4A
Other languages
English (en)
Other versions
CN112399181A (zh
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 CN201910766066.4A priority Critical patent/CN112399181B/zh
Priority to EP20853918.9A priority patent/EP4017004A4/en
Priority to PCT/CN2020/107673 priority patent/WO2021031877A1/zh
Publication of CN112399181A publication Critical patent/CN112399181A/zh
Priority to US17/674,676 priority patent/US11863799B2/en
Application granted granted Critical
Publication of CN112399181B publication Critical patent/CN112399181B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length 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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length 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/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/124Quantisation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties

Landscapes

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

Abstract

本申请公开了用于图像编解码的方法、装置和芯片,其中,编码方法首先通过图像量化后的序列来获取游程值序列和级别值序列,基于游程值和级别值的分布概率,按照映射规则得到更新后的级别值的分布概率,最后根据级别值序列和更新后的级别值的分布概率进行熵编码,输出编码后的图像数据。译码侧仅需额外获知映射规则即可完成译码。该方法实施简单,能够提高图像的压缩效率,有效降低表征图像的数据量。

Description

图像编解码的方法、装置和存储介质
技术领域
本申请涉及图像处理与压缩领域,并且更具体地,涉及用于图像编解码的方法、装置和芯片。
背景技术
图像编码,即图像压缩,就是在保证一定重构质量的前提下,通过去除图像数据中的各种冗余,以尽量少的比特数来表征图像信息。图像压缩编码技术可以追溯到1984年通信行业对电视信号数字化传输的研究,至今已有超过30年的历史。JPEG、JPEG2000、MPEG-1、MPEG-2、MPEG-4、H.261、H.263等编码国际标准已经获得了极大的成功,新的图像编码方法还在不断涌现。
数字图像信号已被广泛应用于人们的日常生活中,已成为一种最常见的多媒体信号。图像编码技术通过消除原始图像信号内部的空间冗余而实现了图像数据的压缩,有效降低了表征图像所需的数据量。不过,在图像数据量减少的同时,其质量也会受到一定的影响。通常情况下,图像的压缩率越高,质量损失就越大。高效的图像编码算法要求在实现高压缩率的同时,也要保证压缩后的图像具有较高的质量。随着现代电子信息技术的不断发展,人们对图像清晰度和保真度的要求越来越高,同时,保存和传输高分辨率、高保真度的图像则需要更大的存储空间以及更高的网络带宽。如何有效降低表征图像的数据量,实现有限存储空间和带宽下高分辨率、高保真度图像的有效存储和传输,是图像压缩领域亟待解决的一个问题。
发明内容
本申请提供了用于图像编解码的方法、装置及芯片,可以有效降低表征图像的数据量,提高图像的压缩效率,同时不增加编解码的复杂度,实施简单。下面将从多个方面介绍本申请的发明内容,容易理解,以下多个方面以及多个方面的实现方式可以互相参考。
第一方面,本申请提供一种用于图像编码的方法,该方法包括获取图像量化后系数的一维序列,该一维序列基于扫描该量化后的系数的二维矩阵得到。基于该系数的一维序列获取游程值序列和级别值序列,该游程值序列为N={N0,N1,N2,…,Nm-1},该级别值序列为a={a0,a1,a2,…,an-1},该m和n均是正整数,该游程值序列中的每个游程值对应一个取值分布概率,该级别值序列中的每个级别值对应一个取值分布概率。基于游程值的取值分布概率和级别值的取值分布概率,按照预设的映射规则得到更新后的级别值的取值分布概率。根据该级别值序列和该更新后的级别值的分布概率进行编码,具体地,进行熵编码,获得并输出编码后的图像数据。
可见,在获得图像量化后系数的一维序列之后,对该一维序列进行游程编码得到一串数字对(即多组游程值N和级别值a):{(N1,a1),(N2,a2),(N3,a3),(N4,a4),…,(Ni,ai),..,},现有技术中将N和a视为同一信源按照特定概率生成实际上人为去除了它们的相对位置信息,使得信源熵增大,带来不必要冗余。本申请将N和a看成两个信源产生的数据的特定拼接,故分别统计N和a的分布概率得到方案所述的游程值序列和级别值序列,游程值序列中的元素即是该一维序列游程编码后得到的游程值可能取到的值,游程值序列中的元素对应一个分布概率,级别值序列类似。然后,利用本申请方案中的多种映射规则,将游程值映射到级别值,得到更新后的级别值的取值分布概率,利用级别值及其分布概率进行熵编码,具体地,进行哈夫曼编码,利用级别值来表示游程值继续完成图像编码。本申请的技术方案可实施性强,简单,将N和a做拆分处理带来了压缩上的性能增益,缩短了编码码字的平均长度,同时又不增加哈夫曼的编译码复杂度。
第二方面,本申请提供一种用于图像编码的装置,该装置包括获取单元,用于获取图像量化后系数的一维序列,该一维序列基于扫描该量化后的系数的二维矩阵得到。基于该系数的一维序列获取游程值序列和级别值序列,该游程值序列为N={N0,N1,N2,…,Nm-1},该级别值序列为a={a0,a1,a2,…,an-1},该m和n均是正整数,该游程值序列中的每个游程值对应一个取值分布概率,该级别值序列中的每个级别值对应一个取值分布概率。处理单元,用于基于游程值的取值分布概率和级别值的取值分布概率,按照预设的映射规则得到更新后的级别值的取值分布概率。编码及输出单元,用于根据该级别值序列和该更新后的级别值的分布概率进行熵编码,获得并输出编码后的图像数据。
第三方面,本申请还提供一种用于图像编码的装置,该装置包括至少一个输入接口,用于获取图像量化后系数的一维序列,该一维序列基于扫描该量化后的系数的二维矩阵得到。基于该系数的一维序列获取游程值序列和级别值序列,该游程值序列为N={N0,N1,N2,…,Nm-1},该级别值序列为a={a0,a1,a2,…,an-1},该m和n均是正整数,该游程值序列中的每个游程值对应一个取值分布概率,该级别值序列中的每个级别值对应一个取值分布概率。逻辑电路,用于基于游程值的取值分布概率和级别值的取值分布概率,按照预设的映射规则得到更新后的级别值的取值分布概率,以及用于根据该级别值序列和该更新后的级别值的分布概率进行熵编码。至少一个输出接口,用于输出编码后的图像数据。
在第一方面、第二方面或第三方面的一些实现方式下,对于所述游程值序列的m种取值中分布概率最大的游程值Nu,将其映射到所述级别值序列的n种取值中分布概率最大的级别值ax,得到更新后的级别值ax的分布概率,所述u和x是非负整数。即游程值Nu映射到级别值ax,得到更新后的级别值ax的取值分布概率,该更新后的级别值ax的取值分布概率基于该游程值Nu的取值分布概率与该级别值ax的取值分布概率产生,其中,该游程值序列包括m种取值,该游程值Nu为该游程值序列的m种取值中分布概率最大的游程值取值,该级别值序列包括n种取值,该级别值ax为该级别值序列的n种取值中分布概率最大的级别值取值,该m和n为正整数。
在第一方面、第二方面或第三方面的一些实现方式下,根据该级别值ax在该级别值序列中的位置,将该游程值分别映射到该级别值,得到更新后的级别值的取值分布概率。
通过分析一般图像经过游程编码后得到的游程值和级别值的分布概率情况,发现,游程值取值的分布概率大致上呈现由大到小的规律,级别值取值的分布概率基本上呈现以分布概率最大值点为中心,左右对称分布的规律,利用一般图像的游程值和级别值分布概率的特点,可以对映射方案进行简化,即依据级别值ax在级别值序列中的位置,完成游程值到级别值的映射,得到更新后的级别值的分布概率。
在第一方面、第二方面或第三方面的一些实现方式下,该预设的映射规则包括该游程值按照该游程值的取值分布概率从大到小的顺序映射到按照该级别值的取值分布概率从大到小排序的该级别值,得到更新后级别值的取值分布概率。
在第一方面、第二方面或第三方面的一些实现方式下,按照该游程值对应的分布概率从大到小的顺序,得到按照分布概率排序的游程值序列:N0′,N1′,N2′,...,Nm-1′,按照该级别值对应的分布概率从大到小的顺序,得到按照分布概率排序的级别值序列:a0′,a1′,a2′,...,an-1′,该m和n为正整数,其中,当m小于n时,创建游程值Nm′,Nm+1′,Nm+2′,...,Nn-1′,该游程值Nm′,Nm+1′,Nm+2′,...,Nn-1′对应的分布概率均为零,将游程值Ni′分别映射到级别值ai′,该i∈[0,n-1]且该i为整数,当m大于n时,创建级别值an′,an+1′,an+2′,...,am′,该级别值an′,an+1′,an+2′,...,am′对应的分布概率均为零,将游程值Ni′分别映射到级别值ai′,该i∈[0,m-1]且该i为整数,当m等于n时,将游程值Ni′分别映射到级别值ai′,该i∈[0,n-1]且该i为整数;得到更新后级别值的分布概率,或者按照该游程值对应的分布概率从大到小的顺序,得到按照分布概率排序的游程值序列:N0′,N1′,N2′,...,Nm-1′,按照该级别值对应的分布概率从大到小的顺序,得到按照分布概率排序的级别值序列:a0′,a1′,a2′,...,an-1′,该m和n为正整数,其中,当m小于n时,将游程值Ni′分别映射到级别值ai′,该i∈[0,m-1]且该i为整数,未映射到的级别值的分布概率不变,当m大于n时,将游程值Ni′分别映射到级别值ai′,该i∈[0,n-1]且该i为整数,未映射的游程值的分布概率不变,该未映射的游程值添加到该级别值序列,当m等于n时,将游程值Ni′分别映射到级别值ai′,该i∈[0,n-1]且该i为整数;得到更新后级别值的分布概率。
可以理解,按照该映射规则,分布概率最大的游程值与分布概率最大的级别值结合,分布概率第二大的游程值与分布概率第二大的级别值结合,以此类推,直到分布概率最小的游程值或分布概率最小的级别值完成结合为止。该方案与本申请的其他映射方案相比,可以取得更好的压缩效率,充分利用N和a两个信源的概率分布。
在第一方面、第二方面或第三方面的一些实现方式下,该预设的映射规则包括按照该游程值在该游程值序列中的顺序或逆序,将该游程值映射到该级别值,得到更新后级别值的取值分布概率。
在第一方面、第二方面或第三方面的一些实现方式下,当m小于或等于(n-x)时,该游程值Ni分别映射到级别值ax+i,级别值ax为该级别值的n种取值中分布概率最大的级别值取值,该i∈[0,m-1]且该i为整数,该x为非负整数,未映射到的级别值的分布概率不变,当m大于(n-x)时,该游程值Ni分别映射到该级别值ax+i,该级别值ax为该级别值的n种取值中分布概率最大的级别值取值,该i∈[0,n-x]且该i为整数,该x为非负整数,未映射的游程值的分布概率不变,该未映射的游程值添加到该级别值序列,未映射到的级别值的分布概率不变;得到更新后级别值的分布概率,或者当m小于或等于(x+1)时,该游程值Ni分别映射到级别值ax-i,级别值ax为该级别值的n种取值中分布概率最大的级别值取值,该i∈[0,m-1]且该i为整数,该x为非负整数,未映射到的级别值的分布概率不变,当m大于(x+1)时,该游程值Ni分别映射到该级别值ax-i,该级别值ax为该级别值的n种取值中分布概率最大的级别值取值,该i∈[0,x+1]且该i为整数,该x为非负整数,未映射的游程值的分布概率不变,该未映射的游程值添加到该级别值序列,未映射到的级别值的分布概率不变;得到更新后级别值的分布概率。
与最优的映射规则相比,该映射方案对原映射规则进行了一些简化,这使得压缩效率得到较优提升的同时仅需额外传输极少量数据,该少量数据用于通知译码端映射规则。
在第一方面、第二方面或第三方面的一些实现方式下,该预设的映射规则包括该游程值序列中,奇数次序的游程值映射到第一组级别值a1,非零偶数次序的游程值映射到第二组级别值a2,该第一组级别值a1和该第二组级别值a2中的级别值不重复。
在第一方面、第二方面或第三方面的一些实现方式下,游程值N0映射到级别值ax,该级别值ax为该级别值的n种取值中取值分布概率最大的级别值取值;该游程值序列中,该奇数次序的游程值分别映射到该第一组级别值a1,该第一组级别值a1在该级别值序列中的序号小于x,该非零偶数次序的游程值分别映射到该第二组级别值a2,该第二组级别值a2在该级别值序列中的序号大于x,x为非负整数;或者该游程值序列中,该非零偶数次序的游程值分别映射到该第一组级别值a1,该第一组级别值a1在该级别值序列中的序号小于x,该奇数次序的游程值分别映射到该第二组级别值a2,该第二组级别值a2在该级别值序列中的序号大于x,x为非负整数。
与最优的映射规则相比,该映射方案对原映射规则进行了一些简化,但是利用了级别值概率分布的特点,使得压缩效率与最优方案相比不会损失很多。这使得压缩效率得到较优提升的同时仅需额外传输极少量数据,该少量数据用于通知译码端映射规则。
在第一方面、第二方面或第三方面的一些实现方式下,该熵编码包括哈弗曼Huffman编码。
第四方面,本申请提供一种用于图像译码的方法,该方法包括获取编码后的图像数据。对该编码后的图像数据进行第一译码,得到第一译码后的图像数据,该第一译码后的图像数据包括第一译码后的游程值和级别值,该第一译码后的游程值基于该级别值确定。
根据预设的映射规则对该第一译码后的图像数据进行解映射,得到该图像数据的游程值和级别值。基于该图像数据的游程值和级别值进行第二译码,获得第二译码后的图像数据。
第五方面,本申请提供一种用于图像译码的装置,该装置包括获取单元,第一译码单元、解映射单元、第二译码单元。获取单元用于获取编码后的图像数据。第一译码单元用于对所述编码后的图像数据进行第一译码,得到第一译码后的图像数据,所述第一译码后的图像数据包括第一译码后的游程值和级别值,所述第一译码后的游程值基于所述级别值确定。解映射单元用于根据预设的映射规则对所述第一译码后的图像数据进行解映射,得到所述图像数据的游程值和级别值。第二译码单元用于基于所述图像数据的游程值和级别值进行第二译码,获得第二译码后的图像数据。
第六方面,本申请提供一种用于图像译码的装置,该装置包括至少一个输入接口(Input(s)),逻辑电路,至少一个输出接口(Output(s))。至少一个输入接口用于获取编码后的图像数据。逻辑电路用于对所述编码后的图像数据进行第一译码,得到第一译码后的图像数据,所述第一译码后的图像数据包括第一译码后的游程值和级别值,所述第一译码后的游程值基于所述级别值确定,以及用于根据预设的映射规则对所述第一译码后的图像数据进行解映射,得到所述图像数据的游程值和级别值,以及基于所述图像数据的游程值和级别值进行第二译码,获得第二译码后的图像数据。至少一个输出接口用于输出第二译码后的图像数据。
在第四方面、第五方面或第六方面的一些实现方式下,根据级别值ax在该级别数值序列中的位置,确定该游程值和该级别值之间的映射关系,该级别值ax为该级别值的n种取值中分布概率最大的级别值取值。
在第四方面、第五方面或第六方面的一些实现方式下,该预设的映射规则包括该游程值按照该游程值的取值分布概率从大到小的顺序映射到按照该级别值的取值分布概率从大到小排序的该级别值,得到更新后级别值的取值分布概率。
在第四方面、第五方面或第六方面的一些实现方式下,该预设的映射规则包括按照该游程值在该游程值序列中的顺序或逆序,将该游程值映射到该级别值,得到更新后级别值的取值分布概率。
在第四方面、第五方面或第六方面的一些实现方式下,该预设映射规则包括该游程值序列中,奇数次序的游程值映射到第一组级别值a1,非零偶数次序的游程值映射到第二组级别值a2,该第一组级别值a1和该第二组级别值a2中的级别值不重复。
第七方面,本申请提供一种用于图像处理的装置,该装置包括处理器,存储器;两者电偶合,该存储器用于存储计算机可读指令或者计算机程序,该处理器用于读取该计算机可读指令或者计算机程序以实现如上述方面及其实现方式中任意一项所述的编码方法和/或上述方面及其实现方式中任意一项所述的译码方法。
第八方面,本申请提供一种计算机可读存储介质,其特征在于,包括计算机程序指令,当其在计算机上运行时,实现如上述方面及其实现方式中任意一项所述的编码方法和/或上述方面及其实现方式中任意一项所述的译码方法。
第九方面,本申请提供一种计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行如上述方面及其实现方式中任意一项所述的编码方法和/或上述方面及其实现方式中任意一项所述的译码方法。
第十方面,本申请提供一种计算机程序,该计算机程序产品被计算机执行如上述方面及其实现方式中任意一项所述的编码方法和/或上述方面及其实现方式中任意一项所述的译码方法。
在本申请实施例中,图像编码器首先获取图像量化后系数的一维序列,所述一维序列基于扫描所述量化后的系数的二维矩阵得到。基于所述系数的一维序列获取游程值序列和级别值序列,所述游程值序列中的每个游程值对应一个分布概率,所述级别值序列中的每个级别值对应一个分布概率。基于游程值的分布概率和级别值的分布概率,按照预设的映射规则得到更新后的级别值的分布概率。最后根据所述级别值序列和所述更新后的级别值的分布概率进行编码,获得并输出编码后的图像数据。而在译码器侧,得到编码后的图像数据后,利用获取的映射规则对第一译码后的图像数据进行解映射,得到游程值和级别值。再进行第二译码,获得图像。译码器侧与传统译码方案相比,仅需额外获知映射规则,编译码的复杂度没有增加。本申请技术方案可实施性强,流程简单,可以有效降低表征图像的数据量,提高图像的压缩效率。
附图说明
以下对本申请实施例用到的附图进行介绍。
图1是一套典型的JPEG图像压缩流程图;
图2是采用Zig-Zag扫描将二维系数矩阵转换成一维序列的取值顺序;
图3是哈夫曼编码原理的示意图;
图4是一个经过哈夫曼编码得到的统计概率分布的实施例;
图5是本申请实施例提供的一种图像编码流程的框架图;
图6是本申请实施例提供的一种图像译码流程的框架图;
图7是本申请实施例提供的一种用于图像编码的方法流程图;
图8是本申请实施例提供的一种用于图像编码的方法的原理图;
图9是基于该图像编码方法的一个具体映射规则的示意图;
图10是真实图像经过游程编码后得到的游程和级别值的分布概率统计图;
图11是本申请实施例提供的另一种用于图像编码的方法的原理图;
图12是基于该图像编码方法的一个具体映射规则的示意图;
图13是本申请实施例提供一种磁感波导线圈1004(第二线圈)示意图;
图14是基于该图像编码方法的另一个具体映射规则的示意图;
图15是本申请实施例提供的一种用于图像编码的方法的原理图;
图16是基于该图像编码方法的又一个具体映射规则的示意图;
图17是本申请实施例提供的一种用于图像译码的方法流程图;
图18是本申请实施例提供的一种用于图像编码的装置1800;
图19是本申请实施例提供的一种用于图像编码的装置1900;
图20是本申请实施例提供的一种用于图像编码的装置2000;
图21是本申请实施例提供的一种用于图像译码的装置2100;
图22是本申请实施例提供的一种用于图像译码的装置2200;
图23是本申请实施例提供的一种用于图像译码的装置2300。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请中使用的术语"部件"、"模块"、"***"等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在两个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地***、分布式***和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它***交互的互联网)的信号通过本地和/或远程进程来通信。需要说明的是,本申请方法实施例中步骤的编号,只具有标识方法中各步骤的作用,并不限定各编号步骤之间的先后顺序。
在介绍本申请的具体实施例之前,先对图像及视频数据压缩中用到的编解码技术进行介绍。
游程编码(Run-Length Encoding,RLE),又称为运行长度编码或行程编码,是一种被广泛应用于图像及视频数据压缩中的编码技术。其本质是一种与数据性质无关的无损数据压缩技术,基于“使用变动长度的码来取代连续重复出现的原始数据”来实现压缩。
以Joint Photographic Expert Group(JPEG)图像压缩编码为例,JPEG标准图像压缩方法是在静止且连续色调图像方面最受欢迎,最有效的方法,该算法适用于绝大多数静态连续色调图像压缩的场合,同时它能获得较高的压缩比,保证恢复图像视觉失真小。
一套典型的JPEG图像压缩流程如图1所示。原始图像首先经过色域转换(colortransform)得到Y,U,V三个灰度矩阵,再对该矩阵进行相应的平移(level offset)调整好灰度范围。然后将平移好的灰度矩阵按照8×8的小矩阵分块(不够的补0)进行离散余弦变换(Discrete Cosine Transform,DCT)得到相应各离散频率的分量信息。经过DCT后,数据中隐藏的规律被发掘了出来,杂乱的数据被转换成几个工整变化的数据。DCT转换后的矩阵中第一个是一个不变化的线性数据,因此又被称为“直流分量”,简称DC,后面的数据被称为“交流分量”,简称AC,这个称呼起源于信号分析中的术语。
再对这些频率分量信息进行量化(Uniform Scalar Quantization),得到直流分量系数(DC Coefficient)和交流分量系数(AC Coefficient)。JPEG算法提供了两张标准的量化系数矩阵,分别用于处理亮度数据和色差数据。对于交流分量系数来说,因为图像信号本身以低频分量为主,而且人眼对低频分量更敏感,通常对AC部分量化的量化步长更大,这就导致AC部分的信号可能会出现多个零。在实际的压缩过程中,还可以根据需要在这些系数的基础上再乘以一个系数,以使更多或更少的数据变成0,我们平时使用的图像处理软件在生成jpg文件时,就是通过控制这个系数控制压缩质量。
在进入图像处理的下一环节之前,矩阵的量化还有最后一步要做,就是把量化后的二维矩阵转变成一个一维数组(或称序列),以方便后面的霍夫曼压缩,但在做这个顺序转换时,需要按照一个特定的取值顺序。如图2所示,可以采用Zig-Zag扫描将8×8的矩阵转换成一个序列串,图中所述示例即为(15,0,-2,-1,-1,-1,0,…)。可以发现该序列串尾部很可能出现很多个连续的0。为节省空间,对此序列串再进行游程编码得到一串更短的序列。具体来说,这里的游程编码就是对一个含有很多连续0的数字序列串进行的操作,序列串中任何一个非0数字a将被编码为两个数字(N,a),这里N代表数字a位置前面的连续的0的个数,N称为游程值,a称为级别值。例如序列(0,0,8,0,5,5,0,0,0,6)将被编码为{(2,8),(1,5),(0,5),(3,6)};(9,0,0,0,0,4,0,0,0,0,0,1)将被编码为{(0,9),(4,4),(5,1)}。得到游程编码的数据后,因为每个数字的概率不一样,还需要对其进行熵编码(Entropy coding)去除冗余。***中一般采用霍夫曼编码(哈弗曼编码)(Huffman coding)或者算术编码(Arithmetic coding)。本申请实施例将采用霍夫曼编码作为示例,但并不排除其他编码方法的采用,例如极化编码(Polar coding),低密度校验编码(LDPC coding)等等。
对于传统熵编码方案,如霍夫曼编码,是将游程编码后的数据视为由单一信源按特定分布独立产生的。所以在做霍夫曼编码前,需要统计每一个数字出现的概率,并由此概率按照哈夫曼编码生成对应的字典(霍夫曼树),其基本原则就是将出现概率较大的数字用较短的二进制比特表示,而将出现概率较小的数字用较长的二进制比特表示。可以参考如图3所示的一个霍夫曼编码的例子,其中,字符(a,b,c,d,e,f)的概率分布为45%,13%,12%,16%,9%,5%,从f和e开始,自底向上,先构建叶子节点,然后逐步向上,最终完成整颗树。先把字符中的一个符号出列,也就是最小频率的符号,然后再出列一个符号。这两个符号将作为哈夫曼树的节点,而且这两个节点将生成新节点,也就是它们父节点。新节点的频率,即权值,为孩子节点的和。把这个新节点添加到哈弗曼树中。重复上面的步骤,两个符号出列,构造新的父节点,……,直到队列最后只剩下一个节点,这个节点也就是哈夫曼树的根节点了。最终a=0,b=101,c=100,d=111,e=1101,f=1100。完成上述哈夫曼编码后,JPEG图像压缩过程结束。
根据上述对游程编码和熵编码的描述,游程编码得到一串数字对{(N1,a1),(N2,a2),(N3,a3),(N4,a4),…,(Ni,ai),..,},其中Ni代表数字ai前面出现的连续0的个数。熵编码将游程编码得到的数字符号ai前面出现的0的个数Ni,视为由同一离散信源按某一固定分布产生的信号进行统计和压缩。如N={0,1,2}(即Ni取值为0,或者1,或者2),a={4,5,6,7},统计其各自出现的频率为{0.3,0.15,0.05,0.1,0.20,0.05,0.15}。其经过哈夫曼编码时得到的统计概率分布如图4所示。
经过哈夫曼编码后得到的字典为[00,011,1111,110,10,1110,010],分别用来表示{0,1,2,4,5,6,7}。实现的平均压缩长度为2.6比特。而此时概率组合{0.3,0.15,0.05,0.1,0.20,0.05,0.15}所对应的熵为2.5710。哈夫曼编码已经很接近最优性能。
但如何在此基础之上进一步提高编码的性能呢?观察发现上述根据游程编码后的序列串统计一个概率分布再进行哈夫曼编码的过程没有利用上符号N和a的相对位置信息。具体来说,N和a每次都是配对出现的,而且N总是在a的前面。而将N和a视为同一信源按照特定概率生成实际上人为去除了它们的相对位置信息,这使得信源熵增大,带来不必要的冗余。
这里做简要分析。假设游程值N所对应的部分的概率分布为P={p1,...,pi,...},级别值a部分所对应的部分的概率分布为Q={q1,...,qi,...}。因为N和a是配对出现,而且顺序是固定的。实际经过游程编码后的序列,可以看成是两个信源产生的数据的固定拼接。第一个信源以概率分布P产生所有的游程值N,第二个信源以概率分布Q产生所有的级别值a。第一个信源所对应的熵为
Figure GDA0003588559440000081
而第二个信源所对应的熵为
Figure GDA0003588559440000082
因为Ni和ai是配对出现,两部分数据的出现的概率是1/2和1/2,所以实际经过游程编码后的数据的熵为
Figure GDA0003588559440000083
仍以图4的分布为示例,N取值为{0,1,2},概率分布为
Figure GDA0003588559440000084
(除以0.5是为了归一化);a取值为{4,5,6,7},概率分布为
Figure GDA0003588559440000085
可以算出HP=1.2955,Hq=1.8464,
Figure GDA0003588559440000086
这比之前直接按照概率分布{0.3,0.15,0.05,0.1,0.20,0.05,0.15}计算得到的熵减小了1比特。下面证明采用上述将N和a拆开压缩的方法较现有技术而言最多可以缩小1个比特的平均长度。
定义一个变量Xθ,其中θ取值为{0,1}。当θ=0时,Xθ=N;当θ=1时,Xθ=a。且θ取0或者1的概率均为1/2。其实θ对应于位置信息,在给定θ时,Xθ关于θ的条件熵为:
Figure GDA0003588559440000087
Figure GDA0003588559440000088
Figure GDA0003588559440000089
而现有压缩方法则是当Xθ为信源序号进行压缩,所以现有的游程编码对应的信源熵为H(Xθ)。再根据互信息公式得到H(Xθ)=H(Xθ|θ)+I(Xθ;θ)。因为θ为二元信号,I(Xθ;θ)≤1。而当Xθ完全决定θ时,I(Xθ;θ)=H(θ)=1;此时说明N和a的对应的可能数字没有交集。如上面的例子,N的可能是{0,1,2),a的可能是{4,5,6,7},没有任何交集,知道任意一个{0,1,2,4,5,6,7}中的数字,就明确知道它来至N或者a。在此情况下,压缩平均长度缩小1比特,达到最优值。一般情况下,support集合会出现交集,N和a的分布会出现一定程度的交叠,所以平均长度会带来小于1比特的缩减。
通过上述分析可知,将N和a做拆分处理会带来压缩上的性能增益。可以考虑分别将N和a所对应的数据进行哈夫曼编码。同一示例中,N的分布为{0.6,0.3,0.1},经过哈夫曼编码得到的映射为{0-->0,1-->10,2-->11},平均长度为1.4;a的分布为{0.2,0.4,0.1,0.3},经过哈夫曼编码得到的映射为{4-->000,5-->1,6-->001,7-->01},平均长度为1.9;则可以实现的平均长度为1.65。但这里需要将以上两组映射都告知熵编码译码器,并进行两次哈夫曼译码,让***变得更复杂,且延迟较大。
本申请将采用一种有效的合并方法,将两部分的数据集合有效的合并在一起,再对合并后的分布进行一次哈夫曼编码,即实现了压缩效率的提高,又不增加哈夫曼的编译码复杂度。
图5是本申请实施例提供的一种图像编码流程的框架图,包含该流程功能的***可以支持本申请实施例提供的各种图像编码方法。如图5所示,图像数据先后经过色域转换、灰度平移、8×8的DCT变换、数据量化、Zig-Zag扫描、以及游程编码(RLE)得到多组游程值和级别值(N,a),再分别统计N和a的数据集合及其分布,然后根据各自分布和映射关系将两个分布合并起来,最终对整合后新分布做哈夫曼编码(熵编码)完成数据压缩。而图像恢复的过程为本流程的反过程,其流程如图6所示,图6是本申请实施例提供的一种图像译码流程的框架图,包含该流程功能的***可以支持本申请实施例提供的各种图像译码方法。压缩后的图像数据先经过哈弗曼译码(熵译码)得到多组合并后的游程值和级别值,该映射后的游程值根据映射规则用级别值表示,根据映射规则对合并后的游程值进行解合并,得到游程值和级别值(N,a),再继续进行游程译码(RLD)、逆ZigZag扫描、反量化、IDCT、灰度平移补偿、色域转换,最后得到译码后的图像。可以理解的是,包含编码功能的***和译码功能的***可以整合成一个***,也可以两个***独立存在。接下来将具体介绍不同的实施方案。
图7是本申请实施例提供的一种用于图像编码的方法流程图,该方法包括:
S101.获取图像量化后系数的一维序列,该一维序列基于扫描该量化后的系数的二维矩阵得到;基于该系数的一维序列获取游程值序列和级别值序列,该游程值序列为N={N0,N1,N2,…,Nm-1},该级别值序列为a={a0,a1,a2,…,an-1},该m和n均是正整数,该游程值序列中的每个游程值对应一个取值分布概率,该级别值序列中的每个级别值对应一个取值分布概率;
S102.基于游程值的取值分布概率和级别值的取值分布概率,按照预设的映射规则得到更新后的级别值的取值分布概率;
S103.根据该级别值序列和该更新后的级别值的分布概率进行编码,获得并输出编码后的图像数据。
如上面图像数据处理的一般方法所述,在步骤S101中,首先获取图像数据经量化处理得到的直流分量系数和交流分量系数,采用Zigzag之字形扫描该直流分量系数和交流分量系数构成的矩阵,生成该图像经量化后的系数的序列串。使用一个具体的例子进行说明,如下二维矩阵的量化过程所示,
Figure GDA0003588559440000091
可以看到,大量的数据经过量化后变成了0,少量的数据被量化成整数,为了方便后续的霍夫曼huffman编码(Huffman压缩),我们需要将这个量化后的二维矩阵转化成一个一维的数组(序列)。采用Zigzag之字形的顺序获取数值,目的是尽可能的把系数0放在一起,通过观察发现,大量的0集中在该矩阵的右下角,所以采用由左上角到右下角的顺序读取该二维矩阵的系数:{-26,-3,0,-3,-2,-6,2,-4,1,-3,0,1,5,,1,2,-1,1,-1,2,0,0,0,0,0,-1,-1,0,0,0,0,…,0,0}。
在实际的压缩过程中,系数中的0出现的概率非常高,首先对其中的0进行处理,游程编码(Run Length Encoding,RLE),对于连续重复出现的字符有很好的压缩率。我们把数据中的非零的数据,以及数据前面0的个数作为一个处理单元。该处理单元包括游程值(runlength value)N和级别值(level value)a两部分,其中,游程值N表示在该单元的级别值a之前连续零系数的数目,级别值a表示该处理单元的非零系数的数值。可以理解,处理单元中的级别值a也可以是零系数,例如处理单元(15,0)表示16个0。
继续用一个简单的例子进行说明,假设图像量化后系数的一维序列为:{35,7,0,0,0,-6,-2,0,0,-9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,…,0},那么该一维序列可以处理为:(0,35),(0,7),(3,-6),(0,-2),(2,-9),(15,0),(2,8),EOB,或者也可以直接表达为序列{0,35,0,7,3,-6,0,-2,2,-9,15,0,2,8,EOB}或者其他能够反映游程值和级别值的形式。可以设置规则,如果其中某个单元的0的个数超过16,则需要分成每16个一组,如果最后一个单元全都是0,则使用特殊字符“EOB”表示,EOB意思就是“后面的数据全都是0”。
在步骤S101中,出于方便本技术方案实施的考虑,对上述的游程值和级别值进行分布概率统计,统计出不同游程值在全部游程值取值中出现的概率和不同级别值在全部级别值取值中出现的概率。构造游程值序列和级别值序列,游程值序列为N={N0,N1,N2,…,Nm-1},级别值序列为a={a0,a1,a2,…,an-1},该m和n均是正整数,游程值序列中的每个元素为不同的游程值的取值,级别值序列中的每个元素为不同的级别值的取值,一般而言,游程值的取值范围为[0,64],小于级别值的取值范围。在另一个实施例中,可以不构造游程值序列和级别值序列,直接使用统计的结果,其方式可以采用在线计算或者离线计算。同时,该游程值序列中的每个游程值对应一个取值分布概率,该级别值序列中的每个级别值也对应一个取值分布概率。
在步骤S102中,基于游程值的取值分布概率和级别值的取值分布概率,按照预设的映射规则得到更新后的级别值的取值分布概率。其中,将游程值序列中的每个元素映射到级别值序列中的每个元素,在一个具体实施例中,映射的规则是映射后只保留级别值序列中的元素,该游程值的取值分布概率和该级别值的取值分布概率相加作为更新后的级别值的取值分布概率。在该具体实施例的一种可能情况中,游程值由于某种原因无法全部映射到级别值,那么保留没有映射的游程值,和级别值一起参与霍夫曼Huffman编码,另一种可能的情况中,游程值全部映射完,但还有多余的级别值取值,那么保留多余的级别值取值,将全部级别值一起参与霍夫曼Huffman编码。本申请文件虽然围绕游程值映射到级别值来阐述本申请的技术方案,但容易联想到的是,也可以将级别值映射到游程值,映射规则可以参考本申请方案中游程值映射到级别值的映射规则和方法,做适当调整或者颠倒两者对应关系得到。
在一个具体实施例中,游程值Nu映射到级别值ax,得到更新后的级别值ax的取值分布概率,该更新后的级别值ax的取值分布概率基于该游程值Nu的取值分布概率与该级别值ax的取值分布概率产生,该u和x是非负整数,其中,该游程值序列包括m种取值,则该游程值Nu为该游程值序列的m种取值中分布概率最大的游程值取值,该级别值序列包括n种取值,则该级别值ax为该级别值序列的n种取值中分布概率最大的级别值取值,该m和n为正整数。一个具体的例子来进行说明,游程值0是所述游程值序列中分布概率最大的游程值取值,分布概率为0.5,级别值1是所述级别值序列中分布概率最大的级别值取值,分布概率为0.3,则经过映射后,仅保留级别值1参与后续的霍夫曼Huffman编码,且其更新后的级别值的取值分布概率为0.8。
在另一个具体实施例中,根据所述级别值ax在所述级别值序列中的位置,将所述游程值分别映射到所述级别值,得到更新后的级别值的取值分布概率。在该具体实施例中,分布概率最大的级别值ax可以当做一个映射位置的参考,只有充分利用分布概率最大的级别值(和/或分布概率最大的游程值),才能尽可能大的发挥霍夫曼Huffman编码的特点,使霍夫曼编码后的码字缩短。
最后,在步骤S103中,根据所述级别值序列和所述更新后的级别值的分布概率进行熵编码,获得并输出编码后的图像数据。应该理解,本公开的技术方案聚焦于游程编码或者说熵编码的改进,并且可以将该公开的技术方案融合进现有的图像压缩的编解码技术当中,所以可以理解的是,本公开并没有过多的描述现有技术的特征,提到的现有技术特征用于帮助提升本公开的技术方案的完整性。
图8是本申请实施例提供的一种用于图像编码的方法的原理图,首先获取游程值序列和级别值序列,获取的方法如上述实施例步骤S101所述,该游程值序列为N={N0,N1,N2,...,Nm-1},该级别值序列为a={a0,a1,a2,...,an-1},该m和n均是正整数。该游程值序列中的每个游程值对应一个取值分布概率,每个游程值所对应的取值分布概率按照概率从大到小的顺序为:p0,p1,p2,...,pm-1,该级别值序列中的每个级别值对应一个取值分布概率,每个级别值所对应的取值分布概率按照概率从大到小的顺序为:q0,q1,q2,...,qn-1
基于游程值的取值分布概率和级别值的取值分布概率,按照预设的映射规则得到更新后的级别值的取值分布概率,具体的映射规则为:该游程值按照该游程值的取值分布概率从大到小的顺序映射到按照该级别值的取值分布概率从大到小排序的该级别值,得到更新后级别值的取值分布概率。即将取值分布概率最大的游程值与取值分布概率最大的级别值结合(映射),取值分布概率第二大的游程值与取值分布概率第二大的级别值结合,以此类推,直到取值分布概率最小的游程值或取值分布概率最小的级别值完成结合为止,值得注意的是,取值分布概率最小的游程值并不一定与取值分布概率最小的级别值结合(映射),因为游程值序列元素和级别值序列元素的个数并不一定相等,所以两者任何一个序列的全部元素率先完成结合,即停止结合,保留没有完成映射的元素参与霍夫曼huffman编码,可选的,还可以将游程值序列元素和级别值序列中元素个数较少的序列进行补充元素,使两个序列的元素个数相等,再进行结合(映射)。
最后根据该级别值序列和该更新后的级别值的分布概率进行熵编码,获得并输出编码后的图像数据。该熵编码可以是霍夫曼huffman编码,算数编码,polar编码,LDPC编码等等。本申请不做限制。本申请实施例不再赘述熵编码的具体种类。
按照霍夫曼huffman的编码原理,若将游程值Ni对应的霍夫曼huffman字典中的比特长度表示为li,将级别值ai对应的霍夫曼huffman字典中的比特长度表示为ki,则满足如下关系:l0≤l1≤l2≤…≤lm-1,q0≤q1≤q2≤…≤qn-1。采用上述的映射方法之后,仍可以保证概率较大的项用较短的长度表示,因为合并后的概率仍满足排序
Figure GDA0003588559440000111
在一个具体实施例中,按照该游程值对应的取值分布概率从大到小的顺序,得到按照分布概率排序的游程值序列:N0′,N1′,N2′,...,Nm-1′,按照该级别值对应的取值分布概率从大到小的顺序,得到按照分布概率排序的级别值序列:a0′,a1′,a2′,...,an-1′,该m和n为正整数,其中,
当m小于n时,游程值序列元素的数量少于级别值序列元素的数量,即游程值取值的种类少于级别值取值的种类,采用先补齐再映射的方法,创建游程值Nm′,Nm+1′,Nm+2′,...,Nn-1′,该游程值Nm′,Nm+1′,Nm+2′,...,Nn-1′对应的取值分布概率均为零,将游程值Ni分别映射到级别值ai,该i∈[0,n-1]且该i为整数,
当m大于n时,游程值序列元素的数量大于级别值序列元素的数量,即游程值取值的种类大于级别值取值的种类,采用先补齐再映射的方法,创建级别值an′,an+1′,an+2′,...,am′,该级别值an′,an+1′,an+2′,...,am′对应的取值分布概率均为零,将游程值Ni分别映射到级别值ai,该i∈[0,n-1]且该i为整数,
当m等于n时,游程值序列元素的数量等于级别值序列元素的数量,即游程值取值的种类等于级别值取值的种类,将游程值Ni分别映射到级别值ai,该i∈[0,n-1]且该i为整数,得到更新后级别值的取值分布概率;
或者按照该游程值对应的取值分布概率从大到小的顺序,得到按照分布概率排序的游程值序列:N0′,N1′,N2′,...,Nm-1′,按照该级别值对应的取值分布概率从大到小的顺序,得到按照分布概率排序的级别值序列:a0′,a1′,a2′,...,an-1′,该m和n为正整数,其中,
当m小于n时,游程值序列元素的数量少于级别值序列元素的数量,即游程值取值的种类少于级别值取值的种类,采用直接映射的方法,将游程值Ni′分别映射到级别值ai′,该i∈[0,n-1]且该i为整数,未映射到的级别值的取值分布概率不变,
当m大于n时,游程值序列元素的数量大于级别值序列元素的数量,即游程值取值的种类大于级别值取值的种类,采用直接映射的方法,将游程值Ni′分别映射到级别值ai′,该i∈[0,n-1]且该i为整数,未映射的游程值的取值分布概率不变,
当m等于n时,游程值序列元素的数量等于级别值序列元素的数量,即游程值取值的种类等于级别值取值的种类,将游程值Ni′分别映射到级别值ai′,该i∈[0,n-1]且该i为整数,得到更新后级别值的取值分布概率。
映射完成后,根据该级别值序列和该更新后的级别值的分布概率进行熵编码,获得并输出编码后的图像数据。
需要注意的是,为了正确恢复图像数据,需要在译码时做a0′→N0′,a1′→N1′,a2′→N2′,...,ai′→Ni′,,...的反映射。由于在这种映射规则下,ai′和Ni′均为排序过后的标号,所以不一定是按照自然数大小的排序,需要将具体的映射关系全部存下来并告知译码器,或者编码器和译码器约定映射规则,具体的译码方法将在后续实施例中进行介绍。虽然这种映射规则是较优的一种方案,但这将带来一部分额外的数据冗余。接下来的映射方案将结合ai和Ni的统计分布的一些特点,对映射方案做一些简化。
图9是基于该图像编码方法的一个具体映射规则的示意图,首先统计游程值和级别值的分布情况,获取游程值序列和级别值序列,得到游程值序列为N={0,1,2},级别值序列为a={4,5,6,7},该游程值序列中每个元素对应的分布概率(归一化分布)为:0.6,0.3,0.1。该级别值序列中每个元素对应的分布概率(归一化分布)为:0.2,0.4,0.1,0.3。按照分布概率从大到小的顺序对上述两个序列中的元素重新排序得到按照分布概率排序的游程值序列:0,1,2,得到按照分布概率排序的级别值序列:5,7,4,6。按照上述方法确定的映射关系即为0→5,1→7,2→4,→表示映射成。容易算出级别值{5,7,4,6}更新后的取值分布概率(归一化分布)为0.5,0.3,0.15,0.05(图4中原始游程值和原始级别值的概率已经为后续的归一化分布做了处理)。另外,还可以算出合并后的信源熵变为1.6477bit,而采用霍夫曼压缩的平均长度为1.700,与未实施本申请方法的现有技术相比,信源熵从2.5710bit降低到1.6477bit,大幅降低了信源熵,也缩短了霍夫曼压缩的平均长度。可以观察到本申请方案信源熵没有达到1bit的缩减,原因是两个分布存在一定的差异,所以是严格小于1bit。
相较于传统方法,在游程编码后将(N,a)视为同一信源按同一特定分布产生的序列,本申请实施例将游程值和级别值两个部分的分布先单独统计,再经过所述方法映射合并,达到了近似对两部分数据进行独立压缩的效果,但是又共享了同一个霍夫曼编码树。需要注意的是,因为此过程采用了概率排序,导致游程值N和基本值a的符号集合不一定按照从小到大的取值排列,所以译码器需要获取该映射关系,以及需要额外的空间存储该映射关系。
真实的图像数据经过游程编码后得到的游程值的分布概率情况和级别值的分布概率情况如图10所示,可以发现,游程值取值的分布概率大致上呈现由大到小的规律,其中偶尔有跳变的点,但是不影响总体的趋势。级别值取值则在取值的中间某位置存在一个分布概率的最大值点,可以认为级别值取值的分布概率呈现以该分布概率最大值点为中心,左右对称分布的情况,利用一般图像的游程值和级别值分布概率的特点,对映射方案进行简化。
图11是本申请实施例提供的另一种用于图像编码的方法的原理图,与上述方法类似,同样首先获取游程值序列和级别值序列,获取的方法如上述实施例步骤S101所述,该游程值序列为N={N0,N1,N2,...,Nm-1},该级别值序列为a={a0,a1,a2,...,an-1},该m和n均是正整数。该游程值序列中的每个游程值对应一个取值分布概率,该级别值序列中的每个级别值对应一个取值分布概率。
基于游程值的取值分布概率和级别值的取值分布概率,按照预设的映射规则得到更新后的级别值的取值分布概率,该映射规则为:按照该游程值在该游程值序列中的顺序或逆序,将该游程值映射到该级别值,得到更新后级别值的取值分布概率。具体来讲,利用上述分析图像的游程值和级别值分布概率的特点,将所有游程值Ni映射到具有最大分布概率的级别值ax的右侧,不再需要对游程值和级别值按照分布概率进行重新排序,更进一步地,甚至不需要对游程值的取值进行分布概率统计。而且合并后的新的分布会经过霍夫曼编码,其映射字典会告知译码端,拥有最短比特长度的字符就对应ax,即找到了游程值N0。(如果有多个最短比特长度,只需要译码端再接收很少量冗余信息标明N0的对应关系)。知道ax的值后,就可以按ax→N0,ax+1→N1,ax+2→N2,…,映射回原始游程值。
在一个具体实施例中,当m小于或等于(n-x)时,游程值序列元素的数量少于或等于级别值序列中分布概率最大的元素及该元素右侧全部元素的数量之和,即游程值取值的种类少于或等于最大分布概率级别值取值及该值右侧全部取值的种类之和,游程值可以全部完成映射,该游程值Ni分别映射到级别值ax+i,级别值ax为该级别值的n种取值中取值分布概率最大的级别值取值,该i∈[0,m-1]且该i为整数,该x为非负整数,未映射到的级别值的分布概率不变。
映射完成后,根据该级别值序列和该更新后的级别值的分布概率进行熵编码,获得并输出编码后的图像数据。
当m大于(n-x)时,游程值序列元素的数量大于级别值序列概率最大值元素及最大值右侧全部元素的数量之和,即游程值取值的种类大于最大分布概率级别值取值及该值右侧全部取值的种类之和,游程值只能部分完成映射,该游程值Ni分别映射到该级别值ax+i,该级别值ax为该级别值的n种取值中取值分布概率最大的级别值取值,该i∈[0,n-x]且该i为整数,该x为非负整数,未映射到的游程值的分布概率不变,未映射到的级别值的分布概率不变。
映射完成后,根据该级别值序列、未映射到的游程值和该更新后的级别值的分布概率进行熵编码,获得并输出编码后的图像数据。
图12是基于该图像编码方法的一个具体映射规则的示意图,按照上述中折右侧的方法进行映射,获取游程值序列和级别值序列,得到游程值序列为N={0,1,2},级别值序列为a={4,5,6,7},无需对游程值和级别值两部分的分布按概率来排序。只需找到分布概率最大的级别值项ax=5,可以理解的是,为了找到分布概率最大的级别值可能需要对该级别值序列的分布概率进行统计。
将0映射成5,1映射成6,2映射成7。整个过程如图12所示,得到映射后的级别值序列{4,5,6,7},容易算出级别值{4,5,6,7}更新后的取值分布概率(归一化分布)为0.1,0.5,0.20,0.20(图中原始游程值和原始级别值的概率已经为后续的归一化分布做了处理)。可以计算出新的分布对应的熵为1.7610bit。相较于前面的方案来说,信源熵有所增加,这是因为除去最大概率项的其他项的合并并不能保证是最优的。而经过哈夫曼编码后的平均长度为1.8000,同样有所增加,不过仍优于传统方案。
可以看出相较于前面的映射方案,中折右侧映射方案损失了一部分压缩率,但是其好处是不需要存下整个映射规律。在译码端反映射回原始数据(解映射)时,上述示例中只需要知道是游程值位置的级别值5映射回0,而5刚好是新的分布中最短哈夫曼长度对应的项,而0是游程值的最小可能值,在一般情况下,译码器侧也不需要特意获取或存储这一信息。可能需要获取或存储游程值的最大值,这样译码时就知道把5映射回0,6映射回1,7映射回2。
首先统计游程值和级别值的分布情况,获取游程值序列和级别值序列,得到游程值序列为N={0,1,2},级别值序列为a={5,7,4,6},该游程值序列中每个元素对应的分布概率(归一化分布)为:0.6,0.3,0.1。该级别值序列中每个元素对应的分布概率(归一化分布)为:0.2,0.4,01,0.3。按照分布概率从大到小的顺序对上述两个序列中的元素重新排序得到按照分布概率排序的游程值序列:0,1,2,得到按照分布概率排序的级别值序列:5,7,4,6。按照上述方法确定的映射关系即为0→5,1→7,2→4,→表示映射到。容易算出级别值{5,7,4,6}更新后的取值分布概率为0.5,0.3,0.15,0.05。另外,还可以算出合并后的信源熵变为1.6477bit,而采用霍夫曼压缩的平均长度为1.700,与未实施本申请方法的现有技术相比,大幅降低了信源熵,缩短了霍夫曼压缩的平均长度。
图13是本申请实施例提供的另一种用于图像编码的方法的原理图,准备工作和图7相关的方法相同,不再赘述,直接以一个具体实施例来论述映射规则的差异。
在一个具体实施例中,当m小于或等于(x+1)时,游程值序列元素的数量少于或等于级别值序列中分布概率最大的元素及该元素左侧全部元素的数量之和,即游程值取值的种类少于或等于最大分布概率级别值取值及该值右侧全部取值的种类之和,游程值可以全部完成映射,该游程值Ni分别映射到级别值ax-i,级别值ax为该级别值的n种取值中取值分布概率最大的级别值取值,该i∈[0,m-1]且该i为整数,该x为非负整数,未映射到的级别值的分布概率不变。
映射完成后,根据该级别值序列和该更新后的级别值的分布概率进行熵编码,获得并输出编码后的图像数据。
当m大于(x+1)时,该游程值Ni分别映射到该级别值ax-i,该级别值ax为该级别值的n种取值中取值分布概率最大的级别值取值,该i∈[0,x+1]且该i为整数,该x为非负整数,未映射到的游程值的分布概率不变,未映射到的级别值的分布概率不变。
映射完成后,根据该级别值序列、未映射到的游程值和该更新后的级别值的分布概率进行熵编码,获得并输出编码后的图像数据。
图14是基于该图像编码方法的另一个具体映射规则的示意图,类似地,中折左侧映射方案与实施例中的中折右侧映射方案十分相似。按照上述中折左侧映射方法的描述,获取游程值序列和级别值序列,得到游程值序列为N={0,1,2},级别值序列为a={4,5,6,7},无需对游程值和级别值两部分的分布按概率来排序。只需找到分布概率最大的级别值项ax=5。
由于该示意的例子中ax的左边只有1个元素(级别值4),再补充一个元素3,该级别值3对应的分布概率为0,使游程值能够全部映射完毕。整个过程如图12所示,得到映射后的级别值序列{3,4,5,6,7},容易算出级别值{3,4,5,6,7}更新后的取值分布概率(归一化分布)为0.05,0.25,0.50,0.05,0.15(图中原始游程值和原始级别值的概率已经为后续的归一化分布做了处理)。可以算出此时的信源熵为1.8427bit,经过哈夫曼编码后的平均长度为1.850。相较于中折右侧的映射方法,损失稍大一些。
图15是本申请实施例提供的一种用于图像编码的方法的原理图,与上述方法类似,同样首先获取游程值序列和级别值序列,获取的方法如上述实施例步骤S101所述,该游程值序列为N={N0,N1,N2,…,Nm-1},该级别值序列为a={a0,a1,a2,…,an-1},该m和n均是正整数。该游程值序列中的每个游程值对应一个取值分布概率,该级别值序列中的每个级别值对应一个取值分布概率。
基于游程值的取值分布概率和级别值的取值分布概率,按照预设的映射规则得到更新后的级别值的取值分布概率,该映射规则为:该游程值序列中,奇数次序的游程值映射到第一组级别值a1,非零偶数次序的游程值映射到第二组级别值a2,该第一组级别值a1和该第二组级别值a2中的级别值不重复。具体来讲,为了更加充分的利用级别值的动态范围,可以采用对称交叉映射的方法,先将N0映射至级别值的最大分布概率项ax。再将下一项N1映射至a右边第一项,即ax+1,然后将再下一项N2映射至ax左边第一项,即ax-1,以此类推,一直左右交叉映射。当然也可以先将N1映射至ax左边第一项ax-1,而将N2映射至ax右边第一项ax+1。只要编码器和译码器统一个先左后右或是先右后左的映射规律即可。这种方法的好处是可以充分利用到a中的大概率项,相比与上面偏向于最大分布概率项ax一侧的映射方式,该方法可以近一步缩小平均长度。译码时解映射也很方便,只需找到霍夫曼最短的序列对应的符号ax,利用编译码器约定的规则,把原本是游程值位置上的ax映射回N0,ax+1映射回N1,ax-1映射回N2,以此类推。
在一个具体实施例中,游程值N0映射到级别值ax,该级别值ax为该级别值的n种取值中取值分布概率最大的级别值取值;
该游程值序列中,奇数次序的游程值分别映射到该第一组级别值a1,该第一组级别值a1在该级别值序列中的序号小于x,该非零偶数次序的游程值分别映射到该第二组级别值a2,该第二组级别值a2在该级别值序列中的序号大于x,x为非负整数;或者
该游程值序列中,非零偶数次序的游程值分别映射到该第一组级别值a1,该第一组级别值a1在该级别值序列中的序号小于x,该奇数次序的游程值分别映射到该第二组级别值a2,该第二组级别值a2在该级别值序列中的序号大于x,x为非负整数。
图16是基于该图像编码方法的又一个具体映射规则的示意图,按照上述对称交叉的方法进行映射,图中采用的是先左后右的交叉顺序。类似的,首先获取游程值序列和级别值序列,得到游程值序列为N={0,1,2},级别值序列为a={4,5,6,7},找到级别值中对应的分布概率最大的级别值ax=5。于是得到映射关系:将0映射成5,1映射成4,2映射成6。整个过程如图10所示,得到映射后的级别值序列{4,5,6,7},容易算出级别值{4,5,6,7}更新后的取值分布概率(归一化分布)为0.25,0.50,0.10,0.15(图中原始游程值和原始级别值的概率已经为后续的归一化分布做了处理)。计算出信源熵为1.7427bit,哈夫曼编码平均长度为1.7500。同理也可以采用先右后左的交叉顺序,这里就不再赘述。
完成极化游程编码的后续处理改进,注意到游程编码结果序列中(N,a)前后符号具有不同的分布。通过对两部分数据单独统计分布,再设计多种方法将该分布做有效融合。融合方案包括按照分布规律映射、中折右侧映射、中折左侧映射和对称交叉映射。最终使得数据压缩率提高,而相应的映射规律很少或者几乎不带来额外信息。另外可考虑将本技术推广至有记忆信源的压缩。
图17是本申请实施例提供的一种用于图像译码的方法流程图,该方法包括:
S201.获取编码后的图像数据;
S202.对该编码后的图像数据进行第一译码,得到第一译码后的图像数据,该第一译码后的图像数据包括第一译码后的游程值和级别值,该第一译码后的游程值基于该级别值确定;
S203.根据预设的映射规则对该第一译码后的图像数据进行解映射,得到该图像数据的游程值和级别值;
S204.基于该图像数据的游程值和级别值进行第二译码,获得第二译码后的图像数据。
具体地,根据级别值ax在该级别数值序列中的位置,确定该游程值和该级别值之间的映射关系,该级别值ax为该级别值的n种取值中分布概率最大的级别值取值。
可选的,该预设的映射规则包括:该游程值按照该游程值的取值分布概率从大到小的顺序映射到按照该级别值的取值分布概率从大到小排序的该级别值,得到更新后级别值的取值分布概率。
可选的,该预设的映射规则包括:按照该游程值在该游程值序列中的顺序或逆序,将该游程值映射到该级别值,得到更新后级别值的取值分布概率。
可选的,该预设映射规则包括:该游程值序列中,奇数次序的游程值映射到第一组级别值a1,非零偶数次序的游程值映射到第二组级别值a2,该第一组级别值a1和该第二组级别值a2中的级别值不重复。映射规则的细节可以参考上述编码侧中描述的映射方法和示例,不再赘述。
根据采用的熵编码方法,在译码侧采用对应的熵译码(熵解码)方法。***中一般采用霍夫曼译码(哈弗曼译码)(Huffman decoding)或者算术译码(Arithmeticdecoding)。本申请实施例将采用霍夫曼译码作为示例,但并不排除其他熵译码的采用,例如极化译码(Polar decoding),低密度校验译码(LDPC decoding)等等。
图18是本申请实施例提供的一种用于图像编码的装置1800,其可以用于执行上述的图像编码方法和具体实施例。如图18所示,所述装置1800包括:获取单元1801,处理单元1802和编码及输出单元1803。
获取单元1801,用于获取图像量化后系数的一维序列,所述一维序列基于扫描所述量化后的系数的二维矩阵得到;基于所述系数的一维序列获取游程值序列和级别值序列,所述游程值序列为N={N0,N1,N2,…,Nm-1},所述级别值序列为a={a0,a1,a2,…,an-1},所述m和n均是正整数,所述游程值序列中的每个游程值对应一个取值分布概率,所述级别值序列中的每个级别值对应一个取值分布概率。
处理单元1802,用于基于游程值的取值分布概率和级别值的取值分布概率,按照预设的映射规则得到更新后的级别值的取值分布概率。
编码及输出单元1803,用于根据所述级别值序列和所述更新后的级别值的分布概率进行熵编码,获得并输出编码后的图像数据。
由于编码方法已经在前的具体实施例进行了介绍,该装置1800仅是用于根据程序执行该编码方法,因此涉及编码方法的具体描述,特别是处理单元1802中预设的映射规则可以参考图7至图16对应实施例的相关部分,此处不再赘述。
图19是本申请实施例提供的一种用于图像编码的装置1900,其可以用于执行上述的图像编码方法和具体实施例。如图19所示,所述装置1900包括:处理器1901,存储器1902。
所述存储器1902用于存储计算机可读指令或者计算机程序,所述处理器1901用于读取所述计算机可读指令或者计算机程序以实现图7至图19对应实施例的相关部分所述的编码方法。
可选的,存储器1902(Memory#1)可以独立于处理器1901之外或者独立于图像编码装置1900之外(Memory#3),也可以集成到处理器1901之中(Memory#3)。
图20是本申请实施例提供的一种用于图像编码的装置2000,其可以用于执行上述的图像编码方法和具体实施例。如图20所示,所述装置包括:至少一个输入接口(Input(s))2001,逻辑电路2002,至少一个输出接口(Output(s))2003。
至少一个输入接口2001,用于获取图像量化后系数的一维序列,所述一维序列基于扫描所述量化后的系数的二维矩阵得到;基于所述系数的一维序列获取游程值序列和级别值序列,所述游程值序列为N={N0,N1,N2,…,Nm-1},所述级别值序列为a={a0,a1,a2,…,an-1},所述m和n均是正整数,所述游程值序列中的每个游程值对应一个取值分布概率,所述级别值序列中的每个级别值对应一个取值分布概率。
逻辑电路2002,用于基于游程值的取值分布概率和级别值的取值分布概率,按照预设的映射规则得到更新后的级别值的取值分布概率,以及用于根据所述级别值序列和所述更新后的级别值的分布概率进行熵编码。
输出接口2003,用于输出编码后的图像数据。
有关逻辑电路2002中预设的映射规则等内容可以参考前述的编码方法。
可选的,上述的逻辑电路2002可以是芯片,图像处理器GPU,编码器,编码电路或其他可以实现本申请图像编码方法的集成电路。
由于编码方法在前面的方法实施例中已经介绍过,该装置2000只是用于执行该编码方法,因此涉及编码方法的具体描述,特别是处理单元1502中预设的映射规则可以参考对应实施例的相关部分,此处不再赘述。
图20所示的图像编码装置2000还可以进一步包括存储器(图中未画出),用于存储输出接口2003输出的编码后图像数据(编码块)。
可选的,本申请中的图像编码装置可以是任何具体图像处理功能的设备,典型的,图像编码装置可以是:手机、平板电脑、便携式笔记本电脑、台式电脑、工作站、虚拟\混合\增强现实设备、导航设备、智能手表、无人机、具有图像采集和/或处理功能的手持设备/车载设备/可穿戴设备/***,或未来的其他图像处理设备等。
可选的,本申请中的图像编码装置还可以是芯片,集成电路。
本申请实施例中的图像编码装置可能有部分单元(或器件)为通过硬件电路来实现而另一部分单元(或器件)通过软件来实现,也可能其中所有单元(或器件)都通过硬件电路来实现,还可能其中所有单元(或器件)都通过软件来实现。下述图像译码装置具有相同特征,下文不再赘述。
图21是本申请实施例提供的一种用于图像译码的装置2100,其可以用于执行上述的图像译码方法和具体实施例。如图21所示,所述装置2100包括:获取单元2101,第一译码单元2102、解映射单元2103、第二译码单元2104。
获取单元2101,用于获取编码后的图像数据。
第一译码单元2102,用于对所述编码后的图像数据进行第一译码,得到第一译码后的图像数据,所述第一译码后的图像数据包括第一译码后的游程值和级别值,所述第一译码后的游程值基于所述级别值确定。
解映射单元2103,用于根据预设的映射规则对所述第一译码后的图像数据进行解映射,得到所述图像数据的游程值和级别值。
第二译码单元2104,用于基于所述图像数据的游程值和级别值进行第二译码,获得第二译码后的图像数据。
由于译码方法已经在前的具体实施例进行了介绍,该装置2100仅是用于根据程序执行该译码方法,因此涉及译码方法的具体描述,特别是解映射单元2103中预设的映射规则可以参考图7至图16对应实施例的相关部分,此处不再赘述。
图22是本申请实施例提供的一种用于图像译码的装置2200,其可以用于执行上述的图像译码方法和具体实施例。如图22所示,所述装置2200包括:处理器2201,存储器2202。
所述存储器2202用于存储计算机可读指令或者计算机程序,所述处理器2201用于读取所述计算机可读指令或者计算机程序以实现实施例的相关部分所述的译码方法。
可选的,存储器2202(Memory#1)可以独立于处理器2201之外或者独立于图像译码装置2200之外(Memory#3),也可以集成到处理器2201之中(Memory#2)。
图23是本申请实施例提供的一种用于图像译码的装置2300,其可以用于执行上述的图像译码方法和具体实施例。如图23所示,所述装置包括:至少一个输入接口(Input(s))2301,逻辑电路2302,至少一个输出接口(Output(s))2303。
至少一个输入接口2301,用于获取编码后的图像数据。
逻辑电路2302,用于对所述编码后的图像数据进行第一译码,得到第一译码后的图像数据,所述第一译码后的图像数据包括第一译码后的游程值和级别值,所述第一译码后的游程值基于所述级别值确定,以及用于根据预设的映射规则对所述第一译码后的图像数据进行解映射,得到所述图像数据的游程值和级别值,以及基于所述图像数据的游程值和级别值进行第二译码,获得第二译码后的图像数据。
输出接口2303,用于输出第二译码后的图像数据。
可选的,上述的逻辑电路2302可以是芯片,图像处理器GPU,译码器,译码电路或其他可以实现本申请图像译码方法的集成电路。
由于译码方法在前面的方法实施例中已经介绍过,该装置2300只是用于执行该译码方法,因此涉及译码方法的具体描述,特别是处理单元1502中预设的映射规则可以参考对应实施例的相关部分,此处不再赘述。
图23所示的图像译码装置2300还可以进一步包括显示器(图中未画出),用于显示输出接口2303输出的译码后图像。
可选的,本申请中的图像译码装置可以是任何具体图像处理功能的设备,与编码装置相同,不再赘述。
可选的,本申请中的图像译码装置还可以是芯片,集成电路。
本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,该计算机程序指令被计算机执行时实现上述任一实施例中的方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品被计算机执行时实现上述任一实施例中的方法。
本申请实施例还提供了一种计算机程序,该计算机程序产品被计算机执行时实现上述任一实施例中的方法。
本申请实施例所说的编码装置或译码装置,在实际使用中可能是分别独立的设备;也可能是集成在一起的设备,用于将获取的图像数据进行压缩处理,进一步地存储到存储器中,或者获取编码后的图像数据进行图像译码,进一步地显示到装置的显示器上。
本申请实施例描述的各示例的单元及方法过程,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
该功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例该方法的全部或部分步骤。

Claims (30)

1.一种用于图像编码的方法,其特征在于,所述方法包括:
获取图像量化后系数的一维序列,所述一维序列基于扫描所述量化后的系数的二维矩阵得到;基于所述系数的一维序列获取游程值序列和级别值序列,所述游程值序列为N={N0,N1,N2,...,Nm-1},所述级别值序列为a={a0,a1,a2,...,an-1},所述m和n均是正整数,所述游程值序列中的每个游程值对应一个分布概率,所述级别值序列中的每个级别值对应一个分布概率;
基于游程值的分布概率和级别值的分布概率,按照预设的映射规则得到更新后的级别值的分布概率;
根据所述级别值序列和所述更新后的级别值的分布概率进行编码,获得并输出编码后的图像数据。
2.根据权利要求1所述的方法,其特征在于,所述基于游程值的分布概率和级别值的分布概率,按照预设的映射规则得到更新后的级别值的分布概率为:
对于所述游程值序列的m种取值中分布概率最大的游程值Nu,将其映射到所述级别值序列的n种取值中分布概率最大的级别值ax,得到更新后的级别值ax的分布概率,所述u和x是非负整数。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述级别值ax在所述级别值序列中的位置,将所述游程值分别映射到所述级别值,得到更新后的级别值的分布概率。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述预设的映射规则包括:
所述游程值按照所述游程值的分布概率从大到小的顺序映射到按照所述级别值的分布概率从大到小排序的所述级别值,得到更新后的级别值的分布概率。
5.根据权利要求4所述的方法,其特征在于,
按照所述游程值对应的分布概率从大到小的顺序,得到按照分布概率排序的游程值序列:N0′,N1′,N2′,...,Nm-1′,按照所述级别值对应的分布概率从大到小的顺序,得到按照分布概率排序的级别值序列:a0′,a1′,a2′,...,an-1′,所述m和n为正整数,其中,当m小于n时,创建游程值Nm′,Nm+1′,Nm+2′,...,Nn-1′,所述游程值Nm′,Nm+1′,Nm+2′,...,Nn-1′对应的分布概率均为零,将游程值Ni′分别映射到级别值ai′,所述i∈[0,n-1]且所述i为整数,当m大于n时,创建级别值an′,an+1′,an+2′,...,am′,所述级别值an′,an+1′,an+2′,...,am′对应的分布概率均为零,将游程值Ni′分别映射到级别值ai′,所述i∈[0,m-1]且所述i为整数,当m等于n时,将游程值Ni′分别映射到级别值ai′,所述i∈[0,n-1]且所述i为整数;得到更新后级别值的分布概率,或者
按照所述游程值对应的分布概率从大到小的顺序,得到按照分布概率排序的游程值序列:N0′,N1′,N2′,...,Nm-1′,按照所述级别值对应的分布概率从大到小的顺序,得到按照分布概率排序的级别值序列:a0′,a1′,a2′,...,an-1′,所述m和n为正整数,其中,当m小于n时,将游程值Ni′分别映射到级别值ai′,所述i∈[0,m-1]且所述i为整数,未映射到的级别值的分布概率不变,当m大于n时,将游程值Ni′分别映射到级别值ai′,所述i∈[0,n-1]且所述i为整数,未映射的游程值的分布概率不变,所述未映射的游程值添加到所述级别值序列,当m等于n时,将游程值Ni′分别映射到级别值ai′,所述i∈[0,n-1]且所述i为整数;得到更新后级别值的分布概率。
6.根据权利要求1所述的方法,其特征在于,所述预设的映射规则包括:
按照所述游程值序列中游程值取值递增或递减的顺序,将所述游程值映射到所述级别值,得到更新后级别值的分布概率。
7.根据权利要求6所述的方法,其特征在于,
当m小于或等于(n-x)时,所述游程值Ni分别映射到级别值ax+i,级别值ax为所述级别值的n种取值中分布概率最大的级别值取值,所述i∈[0,m-1]且所述i为整数,所述x为非负整数,未映射到的级别值的分布概率不变,当m大于(n-x)时,所述游程值Ni分别映射到所述级别值ax+i,所述级别值ax为所述级别值的n种取值中分布概率最大的级别值取值,所述i∈[0,n-x]且所述i为整数,所述x为非负整数,未映射的游程值的分布概率不变,所述未映射的游程值添加到所述级别值序列,未映射到的级别值的分布概率不变;得到更新后级别值的分布概率,或者
当m小于或等于(x+1)时,所述游程值Ni分别映射到级别值ax-i,级别值ax为所述级别值的n种取值中分布概率最大的级别值取值,所述i∈[0,m-1]且所述i为整数,所述x为非负整数,未映射到的级别值的分布概率不变,当m大于(x+1)时,所述游程值Ni分别映射到所述级别值ax-i,所述级别值ax为所述级别值的n种取值中分布概率最大的级别值取值,所述i∈[0,x+1]且所述i为整数,所述x为非负整数,未映射的游程值的分布概率不变,所述未映射的游程值添加到所述级别值序列,未映射到的级别值的分布概率不变;得到更新后级别值的分布概率。
8.根据权利要求1所述的方法,其特征在于,所述预设的映射规则包括:
所述游程值序列中,奇数次序的游程值映射到第一组级别值a1,非零偶数次序的游程值映射到第二组级别值a2,所述第一组级别值a1和所述第二组级别值a2中的级别值不重复。
9.根据权利要求8所述的方法,其特征在于,
游程值N0映射到级别值ax,所述级别值ax为所述级别值的n种取值中分布概率最大的级别值取值;
所述游程值序列中,所述奇数次序的游程值分别映射到所述第一组级别值a1,所述第一组级别值a1在所述级别值序列中的序号小于x,所述非零偶数次序的游程值分别映射到所述第二组级别值a2,所述第二组级别值a2在所述级别值序列中的序号大于x,x为非负整数;或者
所述游程值序列中,所述非零偶数次序的游程值分别映射到所述第一组级别值a1,所述第一组级别值a1在所述级别值序列中的序号小于x,所述奇数次序的游程值分别映射到所述第二组级别值a2,所述第二组级别值a2在所述级别值序列中的序号大于x,x为非负整数。
10.一种用于图像译码的方法,其特征在于,所述方法包括:
获取编码后的图像数据;
对所述编码后的图像数据进行第一译码,得到第一译码后的图像数据,所述第一译码后的图像数据包括第一译码后的游程值和级别值,所述第一译码后的游程值基于所述级别值确定;
根据预设的映射规则对所述第一译码后的图像数据进行解映射,得到所述图像数据的游程值和级别值;
基于所述图像数据的游程值和级别值进行第二译码,获得第二译码后的图像数据。
11.根据权利要求10所述的方法,其特征在于,
根据级别值ax在所述级别数值序列中的位置,确定所述游程值和所述级别值之间的映射关系,所述级别值ax为所述级别值的n种取值中分布概率最大的级别值取值。
12.根据权利要求10所述的方法,其特征在于,所述预设的映射规则包括:
所述游程值按照所述游程值的分布概率从大到小的顺序映射到按照所述级别值的分布概率从大到小排序的所述级别值,得到更新后级别值的分布概率。
13.根据权利要求10所述的方法,其特征在于,所述预设的映射规则包括:
按照所述游程值序列中游程值取值递增或递减的顺序,将所述游程值映射到所述级别值,得到更新后级别值的分布概率。
14.根据权利要求10所述的方法,其特征在于,所述预设映射规则包括:
所述游程值序列中,奇数次序的游程值映射到第一组级别值a1,非零偶数次序的游程值映射到第二组级别值a2,所述第一组级别值a1和所述第二组级别值a2中的级别值不重复。
15.一种用于图像编码的装置,其特征在于,所述装置包括:
获取单元,用于获取图像量化后系数的一维序列,所述一维序列基于扫描所述量化后的系数的二维矩阵得到;基于所述系数的一维序列获取游程值序列和级别值序列,所述游程值序列为N={N0,N1,N2,...,Nm-1},所述级别值序列为a={a0,a1,a2,...,an-1},所述m和n均是正整数,所述游程值序列中的每个游程值对应一个分布概率,所述级别值序列中的每个级别值对应一个分布概率;
处理单元,用于基于游程值的分布概率和级别值的分布概率,按照预设的映射规则得到更新后的级别值的分布概率;
编码及输出单元,用于根据所述级别值序列和所述更新后的级别值的分布概率进行熵编码,获得并输出编码后的图像数据。
16.一种用于图像编码的装置,其特征在于,所述装置包括:
输入接口,用于获取图像量化后系数的一维序列,所述一维序列基于扫描所述量化后的系数的二维矩阵得到;基于所述系数的一维序列获取游程值序列和级别值序列,所述游程值序列为N={N0,N1,N2,...,Nm-1},所述级别值序列为a={a0,a1,a2,...,an-1},所述m和n均是正整数,所述游程值序列中的每个游程值对应一个分布概率,所述级别值序列中的每个级别值对应一个分布概率;
逻辑电路,用于基于游程值的分布概率和级别值的分布概率,按照预设的映射规则得到更新后的级别值的分布概率,以及用于根据所述级别值序列和所述更新后的级别值的分布概率进行熵编码;
输出接口,用于输出编码后的图像数据。
17.根据权利要求15或16所述的装置,其特征在于,所述映射规则包括:
对于所述游程值序列的m种取值中分布概率最大的游程值Nu,将其映射到所述级别值序列的n种取值中分布概率最大的级别值ax,得到更新后的级别值ax的分布概率,所述u和x是非负整数。
18.根据权利要求17所述的装置,其特征在于,
根据所述级别值ax在所述级别值序列中的位置,将所述游程值分别映射到所述级别值,得到更新后的级别值的分布概率。
19.根据权利要求15或16所述的装置,其特征在于,所述预设的映射规则包括:
所述游程值按照所述游程值的分布概率从大到小的顺序映射到按照所述级别值的分布概率从大到小排序的所述级别值,得到更新后级别值的分布概率。
20.根据权利要求15或16所述的装置,其特征在于,所述预设的映射规则包括:
按照所述游程值序列中游程值取值递增或递减的顺序,将所述游程值映射到所述级别值,得到更新后级别值的分布概率。
21.根据权利要求15或16所述的装置,其特征在于,所述预设的映射规则包括:
所述游程值序列中,奇数次序的游程值映射到第一组级别值a1,非零偶数次序的游程值映射到第二组级别值a2,所述第一组级别值a1和所述第二组级别值a2中的级别值不重复。
22.一种用于图像译码的装置,其特征在于,所述装置包括:
获取单元,用于获取编码后的图像数据;
第一译码单元,用于对所述编码后的图像数据进行第一译码,得到第一译码后的图像数据,所述第一译码后的图像数据包括第一译码后的游程值和级别值,所述第一译码后的游程值基于所述级别值确定;
解映射单元,用于根据预设的映射规则对所述第一译码后的图像数据进行解映射,得到所述图像数据的游程值和级别值;
第二译码单元,用于基于所述图像数据的游程值和级别值进行第二译码,获得第二译码后的图像数据。
23.一种用于图像译码的装置,其特征在于,所述装置包括:
输入接口,用于获取编码后的图像数据;
逻辑电路,用于对所述编码后的图像数据进行第一译码,得到第一译码后的图像数据,所述第一译码后的图像数据包括第一译码后的游程值和级别值,所述第一译码后的游程值基于所述级别值确定,以及用于根据预设的映射规则对所述第一译码后的图像数据进行解映射,得到所述图像数据的游程值和级别值,以及基于所述图像数据的游程值和级别值进行第二译码,获得第二译码后的图像数据;
输出接口,用于输出第二译码后的图像数据。
24.根据权利要求22或23所述的装置,其特征在于,所述预设的映射规则包括:
对于所述游程值序列的m种取值中分布概率最大的游程值Nu,将其映射到所述级别值序列的n种取值中分布概率最大的级别值ax,得到更新后的级别值ax的分布概率,所述u和x是非负整数。
25.根据权利要求24所述的装置,其特征在于,
根据所述级别值ax在所述级别值序列中的位置,将所述游程值分别映射到所述级别值,得到更新后的级别值的分布概率。
26.根据权利要求22或23所述的装置,其特征在于,所述预设的映射规则包括:
所述游程值按照所述游程值的分布概率从大到小的顺序映射到按照所述级别值的分布概率从大到小排序的所述级别值,得到更新后级别值的分布概率。
27.根据权利要求22或23所述的装置,其特征在于,所述预设的映射规则包括:
按照所述游程值序列中游程值取值递增或递减的顺序,将所述游程值映射到所述级别值,得到更新后级别值的分布概率。
28.根据权利要求22或23所述的装置,其特征在于,所述预设的映射规则包括:
所述游程值序列中,奇数次序的游程值映射到第一组级别值a1,非零偶数次序的游程值映射到第二组级别值a2,所述第一组级别值a1和所述第二组级别值a2中的级别值不重复。
29.一种用于图像处理的装置,其特征在于,所述装置包括:处理器,存储器;
所述存储器与所述处理器电偶合,所述存储器用于存储计算机可读指令或者计算机程序,所述处理器用于读取所述计算机可读指令或者计算机程序以实现如权利要求1-9中任意一项所述的编码方法和/或权利要求10-14中任意一项所述的译码方法。
30.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当其在计算机上运行时,使得所述计算机执行如权利要求1-14中任意一项所述的编码方法或译码方法。
CN201910766066.4A 2019-08-19 2019-08-19 图像编解码的方法、装置和存储介质 Active CN112399181B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910766066.4A CN112399181B (zh) 2019-08-19 2019-08-19 图像编解码的方法、装置和存储介质
EP20853918.9A EP4017004A4 (en) 2019-08-19 2020-08-07 METHODS AND APPARATUS FOR PICTURE ENCODING AND DECODING, AND CHIP
PCT/CN2020/107673 WO2021031877A1 (zh) 2019-08-19 2020-08-07 图像编解码的方法、装置和芯片
US17/674,676 US11863799B2 (en) 2019-08-19 2022-02-17 Image encoding method and apparatus, image decoding method and apparatus, and chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910766066.4A CN112399181B (zh) 2019-08-19 2019-08-19 图像编解码的方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN112399181A CN112399181A (zh) 2021-02-23
CN112399181B true CN112399181B (zh) 2022-08-26

Family

ID=74603579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910766066.4A Active CN112399181B (zh) 2019-08-19 2019-08-19 图像编解码的方法、装置和存储介质

Country Status (4)

Country Link
US (1) US11863799B2 (zh)
EP (1) EP4017004A4 (zh)
CN (1) CN112399181B (zh)
WO (1) WO2021031877A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116347105A (zh) * 2021-12-24 2023-06-27 中兴通讯股份有限公司 一种点云编码方法、装置、通信节点及存储介质
CN116132107B (zh) * 2022-12-16 2024-04-12 苏州可米可酷食品有限公司 基于数据云处理产品全生命周期质量数据追溯管理***
CN115955569B (zh) * 2023-03-14 2023-05-23 海伦市动物防疫检疫中心 一种用于动物防疫检疫中心的监控视频数据传输方法
CN116708845B (zh) * 2023-08-04 2023-10-31 佳木斯大学 基于5g技术的肠胃医疗图像通讯传输方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003084076A1 (en) * 2002-04-02 2003-10-09 Nokia Corporation Coding transform coefficients in image / video encoder and/or decoders
CN101198056A (zh) * 2006-12-05 2008-06-11 华为技术有限公司 变长编码方法及装置
CN101572814A (zh) * 2008-04-29 2009-11-04 合肥坤安电子科技有限公司 一种二次游程编码方法
WO2012030445A1 (en) * 2010-09-02 2012-03-08 Sony Corporation Run length coding with context model for image compression using sparse dictionaries
CN102438145A (zh) * 2011-11-22 2012-05-02 广州中大电讯科技有限公司 一种基于Huffman编码的图片无损压缩方法
CN102682810A (zh) * 2011-03-17 2012-09-19 清华大学 游程长度比率调制数据记录方法及其***
CN103200407A (zh) * 2013-04-16 2013-07-10 中国科学院光电技术研究所 一种自适应熵编码器
CN104349168A (zh) * 2014-08-11 2015-02-11 大连戴姆科技有限公司 一种超高速图像实时压缩方法
WO2016209757A1 (en) * 2015-06-22 2016-12-29 Cisco Technology, Inc. Block-based video coding using a mixture of square and rectangular blocks
CN106559179A (zh) * 2016-12-07 2017-04-05 天津君邦科技有限公司 联合信源信道可变长符号级可逆编解码方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6571019B1 (en) * 1995-10-26 2003-05-27 Hyundai Curitel, Inc Apparatus and method of encoding/decoding a coded block pattern
JP3603000B2 (ja) * 2000-02-01 2004-12-15 カネボウ株式会社 ハフマン符号化装置、ハフマン符号化方法およびハフマン符号化処理プログラムを記録した記録媒体
PT2391019E (pt) * 2002-03-27 2014-08-29 Panasonic Ip Corp America Método de descodificação de comprimento variável, suporte de armazenamento, dispositivo de descodificação de comprimento ariável
JP4368575B2 (ja) * 2002-04-19 2009-11-18 パナソニック株式会社 可変長復号化方法、可変長復号化装置およびプログラム
JP4090862B2 (ja) * 2002-04-26 2008-05-28 松下電器産業株式会社 可変長符号化方法および可変長復号化方法
DK1400954T3 (da) * 2002-09-04 2008-03-31 Microsoft Corp Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde/niveau-moduser
CN1214649C (zh) * 2003-09-18 2005-08-10 中国科学院计算技术研究所 用于视频预测残差系数编码的熵编码方法
US20120082230A1 (en) * 2010-10-01 2012-04-05 Qualcomm Incorporated Variable length coding of video block coefficients
US10171810B2 (en) * 2015-06-22 2019-01-01 Cisco Technology, Inc. Transform coefficient coding using level-mode and run-mode
US10244261B2 (en) * 2017-01-26 2019-03-26 Google Llc Transform coefficient coding using level maps

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003084076A1 (en) * 2002-04-02 2003-10-09 Nokia Corporation Coding transform coefficients in image / video encoder and/or decoders
CN1656690A (zh) * 2002-04-02 2005-08-17 诺基亚有限公司 在图像/视频编码器和/或解码器中将变换系数编码
CN101198056A (zh) * 2006-12-05 2008-06-11 华为技术有限公司 变长编码方法及装置
CN101572814A (zh) * 2008-04-29 2009-11-04 合肥坤安电子科技有限公司 一种二次游程编码方法
WO2012030445A1 (en) * 2010-09-02 2012-03-08 Sony Corporation Run length coding with context model for image compression using sparse dictionaries
CN102682810A (zh) * 2011-03-17 2012-09-19 清华大学 游程长度比率调制数据记录方法及其***
CN102438145A (zh) * 2011-11-22 2012-05-02 广州中大电讯科技有限公司 一种基于Huffman编码的图片无损压缩方法
CN103200407A (zh) * 2013-04-16 2013-07-10 中国科学院光电技术研究所 一种自适应熵编码器
CN104349168A (zh) * 2014-08-11 2015-02-11 大连戴姆科技有限公司 一种超高速图像实时压缩方法
WO2016209757A1 (en) * 2015-06-22 2016-12-29 Cisco Technology, Inc. Block-based video coding using a mixture of square and rectangular blocks
CN106559179A (zh) * 2016-12-07 2017-04-05 天津君邦科技有限公司 联合信源信道可变长符号级可逆编解码方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Effective video compression technique using modified run length encoding;Poorva G. Waingankar等;《International Conference on Signal Processing(ICSP 2016)》;20180517;全文 *
彩色图像压缩的量化编码方法研究;杨树媛;《软件导刊》;20150723;全文 *

Also Published As

Publication number Publication date
EP4017004A4 (en) 2022-10-19
US11863799B2 (en) 2024-01-02
CN112399181A (zh) 2021-02-23
US20220174329A1 (en) 2022-06-02
EP4017004A1 (en) 2022-06-22
WO2021031877A1 (zh) 2021-02-25

Similar Documents

Publication Publication Date Title
CN112399181B (zh) 图像编解码的方法、装置和存储介质
US20230388531A1 (en) Methods and apparatuses for encoding and decoding a bytestream
CN101588502B (zh) 应用Golomb-Rice编码法的DCT压缩法
CN110710217B (zh) 用于对最后有效系数标志进行代码化的方法和设备
KR20070026512A (ko) 컬러 이미지 인코딩을 위한 방법, 시스템 및 소프트웨어제품
WO2007056657A2 (en) Extended amplitude coding for clustered transform coefficients
US12020461B2 (en) Method and apparatus for Haar-based point cloud coding
CN112398484A (zh) 一种编码方法及相关设备
RU2313174C2 (ru) Адаптивный способ и система для отображения значений параметров в индексы кодовых слов
US20120230422A1 (en) Method and System Using Prediction and Error Correction for the Compact Representation of Quantization Matrices In Video Compression
KR101627000B1 (ko) 디지털 데이터 처리 방법
CN105592313A (zh) 一种分组自适应熵编码压缩方法
Kabir et al. Edge-based transformation and entropy coding for lossless image compression
CN105163130B (zh) 一种基于离散Tchebichef正交多项式的图像无损压缩方法
TW200529104A (en) Compressing image data
CN105472395B (zh) 一种基于离散Krawtchouk正交多项式的图像无损压缩方法
CN112449191A (zh) 压缩多个图像的方法、解压缩图像的方法和装置
CN111107377A (zh) 深度图像压缩方法及其装置、设备和存储介质
KR101577848B1 (ko) 규칙적인 지점의 네트워크에서 벡터를 카운팅하는 방법
CN110710208A (zh) 嵌入关于eob位置的信息
CN116527904B (zh) 熵编码方法、熵解码方法及相关装置
Tola Comparative study of compression functions in modern web programming languages
Oehler et al. Unbalanced tree-growing algorithms for practical image compression
Zha Progressive lossless image compression using image decomposition and context quantization
Iqbal et al. Improved JPEG Coding by Filtering 8× 8 DCT Blocks. J

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant