在图像压缩中的熵编码的方法与装置转让专利

申请号 : CN201611223621.1

文献号 : CN107040780B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴东兴陈立恒周汉良

申请人 : 联发科技股份有限公司

摘要 :

一种包含适应性熵编码的图像编码的方法以及装置。依据该方法,接收与产生自图像或者视频数据的一组符号相关的多个输入像素。接着决定该组符号的最大比特‑长度。如果该组符号的该最大比特‑长度小于第一比特‑长度阈值,使用GR编码来编码或者解码该组符号;如果该组符号的该最大比特‑长度大于或者等于该第一比特‑长度阈值,使用第二熵编码来编码或者解码该组符号,其中该第二熵编码与GR编码不同。输出与该组符号相关的编码或者解码输出。该组符号的最大比特‑长度在编码器中信号化或者通过解码器解析该比特流而恢复。

权利要求 :

1.一种一组符号的熵编码方法,在编码器或者解码器执行,该方法包含:

接收与产生自图像或者视频数据的一组符号相关的多个输入像素;

决定该组符号的最大比特-长度;

如果该组符号的该最大比特-长度小于第一比特-长度阈值,使用格伦布-莱斯编码来编码或者解码该组符号;

如果该组符号的该最大比特-长度大于或者等于该第一比特-长度阈值,使用第二熵编码来编码或者解码该组符号,其中该第二熵编码与格伦布-莱斯编码不同;以及提供与该组符号相关的编码或者解码输出。

2.根据权利要求1所述的一组符号的熵编码方法,其特征在于,其中该组符号的该最大比特-长度是在该编码器信号化或者在该解码器解析。

3.根据权利要求1所述的一组符号的熵编码方法,其特征在于,其中该格伦布-莱斯编码在该编码器中是将一个给定的符号编码为前缀部分与后缀部分,并且在该解码器中是将该前缀部分与该后缀部分解析为该给定的符号,其中该后缀部分包含K比特,并且K是一个大于或者等于0的整数。

4.根据权利要求3所述的一组符号的熵编码方法,其特征在于,其中该前缀部分的前缀比特-长度小于或者等于第二比特-长度阈值。

5.根据权利要求4所述的一组符号的熵编码方法,其特征在于,其中与该第一比特-长度阈值以及该第二比特-长度阈值有关的信息是在于该组符号相关的比特流中高层级语法中信号化。

6.根据权利要求5所述的一组符号的熵编码方法,其特征在于,其中该高层级语法对应图像参数组。

7.根据权利要求4所述的一组符号的熵编码方法,其特征在于,其中该第二比特-长度阈值对应一个可允许的前缀比特-长度的最大值。

8.根据权利要求4所述的一组符号的熵编码方法,其特征在于,在该编码器,其中一个第二比特-长度阈值被选择,来减少编码复杂度。

9.根据权利要求3所述的一组符号的熵编码方法,其特征在于,其中在该编码器,使用优化程序来决定参数K,以选择一个最优的参数K,来达到该组符号的最小编码比特-长度,并且该最优的参数K是限制为小于或者等于该第一比特-长度阈值。

10.根据权利要求3所述的一组符号的熵编码方法,其特征在于,其中该格伦布-莱斯编码除了该前缀部分与该后缀部分之外,使用指示比特来指示多个符号的正负。

11.根据权利要求3所述的一组符号的熵编码方法,其特征在于,其中当使用该格伦布-莱斯编码时,该组符号的多个前缀部分与多个后缀部分串接为一个比特流,其中该组符号的该多个前缀部分与该多个后缀部分在该一个比特流中交错。

12.根据权利要求3所述的一组符号的熵编码方法,其特征在于,其中当使用该格伦布-莱斯编码时,该组符号的该多个前缀部分与该组符号的该多个后缀部分分别组合为一个比特流。

13.根据权利要求1所述的一组符号的熵编码方法,其特征在于,其中该第二熵编码对应最大比特-长度编码,其中该最大比特-长度编码将一个给定的符号编码为最大比特-长度的后缀数据,并且没有前缀数据,或者解码该最大比特-长度的该后缀数据而无前缀数据为该给定的符号。

14.根据权利要求13所述的一组符号的熵编码方法,其特征在于,其中该最大比特-长度编码将该给定符号的一个正的符号值表达为一个具有该最大比特-长度的二进制值。

15.根据权利要求13所述的一组符号的熵编码方法,其特征在于,其中该最大比特-长度编码将该给定符号的一个负的符号值表达为一个具有该最大比特-长度的2的补码二进制数值。

16.根据权利要求1所述的一组符号的熵编码方法,其特征在于,其中该第一比特-长度阈值设置为0,来前置该组符号使用该第二熵编码。

17.一种在编码器或者解码器中执行一组符号的熵编码的装置,该装置包含一个或者多个电子电路或者处理器,设置为:接收与产生自图像或者视频数据的一组符号相关的多个输入像素;

决定该组符号的最大比特-长度;

如果该组符号的该最大比特-长度小于第一比特-长度阈值,使用格伦布-莱斯编码来编码或者解码该组符号;

如果该组符号的该最大比特-长度大于或者等于该第一比特-长度阈值,使用第二熵编码来编码或者解码该组符号,其中该第二熵编码与格伦布-莱斯编码不同;以及提供与该组符号相关的编码或者解码输出。

18.根据权利要求17所述的在编码器或者解码器中 执行一组符号的熵编码的装置,其特征在于,该格伦布-莱斯编码在编码器中是将一个符号编码为一个前缀部分以及一个后缀部分,或者在解码器中是将该前缀部分与该后缀部分解码为该符号,其中该后缀部分包含K比特,并且K是一个大于或者等于0的整数。

19.根据权利要求18所述的在编码器或者解码器中 执行一组符号的熵编码的装置,其特征在于,该前缀部分的前缀比特-长度小于或者等于第二比特-长度阈值。

20.根据权利要求19所述的在编码器或者解码器中 执行一组符号的熵编码的装置,其特征在于,该第二比特-长度阈值对应最大的可允许的前缀比特-长度。

21.根据权利要求19所述的在编码器或者解码器中 执行一组符号的熵编码的装置,其特征在于,其中在该编码器,一个第二比特-长度阈值被选择,来减少编码复杂度。

22.根据权利要求19所述的在编码器或者解码器中 执行一组符号的熵编码的装置,其特征在于,其中该第一比特-长度阈值与该第二比特-长度阈值在编码器中使用,来决定所需的处理复杂度。

23.根据权利要求17所述的在编码器或者解码器中 执行一组符号的熵编码的装置,其特征在于,其中该第二熵编码对应最大比特-长度编码,其中该最大比特-长度编码将一个给定的符号编码为最大比特-长度的后缀数据,并且没有前缀数据,或者解码该最大比特-长度的该后缀数据而无前缀数据为该给定的符号。

24.根据权利要求23所述的在编码器或者解码器中 执行一组符号的熵编码的装置,其特征在于,其中该最大比特-长度编码将该给定符号的一个正的符号值表达为一个具有该最大比特-长度的二进制值。

25.根据权利要求23所述的在编码器或者解码器中 执行一组符号的熵编码的装置,其特征在于,其中该最大比特-长度编码将该给定符号的一个负的符号值表达为一个具有该最大比特-长度的2的补码二进制数值。

说明书 :

在图像压缩中的熵编码的方法与装置

[0001] 优先权声明
[0002] 本申请请求2015年12月28日提交的申请号为62/271,494的美国临时专利申请的优先权。相关的专利申请的全文被本申请引用。

技术领域

[0003] 本发明是关于图像编码系统的熵编码。具体来说,本发明是关于适应性熵编码一组符号,其中该适应性熵编码决定编码这些符号的后缀比特-长度,并且依据该后缀比特-长度是否小于一个比特-长度阈值来选择两个不同的熵编码类型。

背景技术

[0004] 已发展了多种视频编码标准来减少视频传输所需的比特率或者存储空间的容积。举例来说,MPEG-2、MPEG-4以及AVC/H.264已经在多种应用中被广泛地使用。近年来,在较新的视频压缩格式,例如VP8、VP9以及新兴的HEVC(高效率视频编码,High Efficiency Video Coding)标准中,编码效率已经大幅增进。
[0005] 在涉及到图像显示的多种装置中,有另一种应用需要数据压缩。具体来说,连接计算机至显示器、机顶盒至电视机、以及应用处理器至显示屏幕的显示链接是在工业中广泛使用的数字接口格式。显示链接使用数字界面。与日益增长的对于较高显示分辨率以及较高帧率的需求一同,通过显示链接传输的数据量也变得极其高。举例来说,在机顶盒装置以及1080p HDTV之间的显示链接在120赫兹(Hz)帧率需要大于7G比特/每秒。对于超高清电视(UHD,Ultra High Definition TV),所需的数据将高至四倍。因此,显示链接通常是为压缩格式。举例来说,显示流压缩(DSC,Display Stream Compression)格式被电子视频标准协会(VESA,Video Electronics Standards Association)与MIPI联盟共同开发来解决在显示应用中的数据压缩需求。
[0006] 归因于不同的需求,DSC标准与通常的流行的视频编码标准不同,例如MPEG-2/4、AVC/H.264以及HEVC。举例来说,在显示应用中用于压缩的色彩空间可能是YCoCg色彩空间,而并非是YUV色彩空间。更进一步,DSC仅仅包含帧内压缩,而不包含帧间压缩,来最小化处理延迟并且避免对于参考图像缓冲的需要。在典型的应用中,对于DSC所需压缩率显著小于对于视频存储或者网络传输所需要的压缩率。图1A是示例性的DSC编码器的主要功能模块的示意图。如图1A所示,DSC编码器包含一个源缓冲器110、预测/量化/重建单元112、VLC熵编码单元114、平整度决定单元(flatness determination unit)116、速率控制单元118、线缓冲器(line buffer)120以及索引色彩历史单元(indexed color history(图示中简化为ICH)unit)122。如果输入图像数据是RGB色彩格式,在DSC编码器中使用色彩控制转换器(图1A中没有显示),其对应RGB至YCoCg色彩格式转换。来自平整度决定单元116的信息可用来调整在速率控制单元118中的QP(量化参数)。如图1A所示,使用VLC熵编码单元114来熵编码平整度指示,并且平整度指示被整合至比特流中。依据DSC,如图1B所示,多个像素是使用
1x3区块尺寸来处理,其中当前区块130是通过在相同的像素行中的参考区块132来预测。参考区块132的位置是通过一个对应的区块向量134来指示。
[0007] 针对日益增长的对于显示链接来支持更高分辨率以及色彩向量的更高比特-长度的需求,VESA发起努力来建立高级显示流压缩标准(Advanced Display Stream Compression,ADSC)。并且,ADSC支持原始的4:2:0以及4:2:2编码来消除对于转换像素为RGB向量的需求。举例来说,ADSC允许更有效的以YCbCr4:2:0色彩采样格式的压缩。此外,ADSC也支持高动态范围(High Dynamic Range,HDR)来适应在较新的电视节目与电影中的较高的色彩深度。
[0008] 对于显示链接的处理通常使用基于区块的压缩,其中一个图像被分割为多个区块并且该压缩是应用至每一个区块。进一步来说,该压缩设定可应用至小于一个图像的一个图像单元。举例来说,高级DSC(ADSC)发展为应用至每一个图像的多个切片(slice),并且目标比特率是实施于每一个切片。每一个切片分割为编码单元(即区块),并且每一个编码单元包含NxM像素的区块,其中N对应区块宽度并且M对应区块高度。依据ADSC,每一个区块的特点是以“平整度”来度量,其中每一个区块的平整度可归类为如下的五种平整度类型:
[0009] 类型:-1,代表“复杂区块”
[0010] 类型:0,代表“平整区域”
[0011] 类型:1,代表“平整区域(与类型0相比较稍不平整)”
[0012] 类型:2,代表“复杂至平整区块”
[0013] 类型:3,代表“平整至复杂区块”
[0014] 平整度类型是依据每一个区块以及其相邻区块的的复杂性信息来决定的。平整度类型影响在每一个区块中的速率控制行为。依据当前的ADSC试行标准,平整度类型的语法(syntax)是在每一个编码单元信号化。
[0015] 需要进一步改进ADSC的压缩效率。具体来说,本发明提出了针对熵编码的性能改进。

发明内容

[0016] 本发明提供了一种包含适应性熵编码的图像编码的方法与装置。依据该方法,接收与产生自图像或者视频数据的一组符号相关的多个输入像素。接着决定该组符号的最大比特-长度。如果该组符号的该最大比特-长度小于第一比特-长度阈值,使用GR编码来编码或者解码该组符号;如果该组符号的该最大比特-长度大于或者等于该第一比特-长度阈值,使用第二熵编码来编码或者解码该组符号,其中该第二熵编码与GR编码不同。输出与该组符号相关的编码或者解码输出。该组符号的最大比特-长度是在编码器端信号化,从而在解码器端可通过解析比特流来恢复信息。
[0017] 当选择GR编码时,GR编码在该编码器中是将一个给定的符号编码为前缀部分与后缀部分,并且在该解码器中是将该前缀部分与该后缀部分解析为该给定的符号,其中该后缀部分包含K比特,并且K是一个大于或者等于0的整数。其中该前缀部分的前缀比特-长度小于或者等于第二比特-长度阈值,来管理编码或者解码该前缀部分的复杂度。与该第一比特-长度阈值以及该第二比特-长度阈值有关的信息是在与该组符号相关的比特流中高层级语法中信号化。举例来说,其中该高层级语法对应图像参数组(PPS)。其中该第二比特-长度阈值对应一个可允许的前缀比特-长度的最大值,并且其中一个较小的第二比特-长度阈值被选择,来减少编码复杂度。在该编码器,使用优化程序来决定参数K,以选择一个最优的参数K,来达到该组符号的最小编码比特-长度,并且该最优的参数K是限制为小于或者等于该第一比特-长度阈值。其中该GR编码除了该前缀部分与该后缀部分之外,使用指示比特来指示多个符号的正负。
[0018] 当选择使用该GR编码时,该组符号的多个前缀部分与多个后缀部分串接为一个比特流,其中该组符号的该多个前缀部分与该多个后缀部分在该一个比特流中交错。此外,该组符号的该多个前缀部分与该组符号的该多个后缀部分也可以分别组合为一个比特流。
[0019] 该第二熵编码对应最大比特-长度编码,其中该最大比特-长度编码将一个给定的符号编码为最大比特-长度的后缀数据,并且没有前缀数据,或者解码该最大比特-长度的该后缀数据而无前缀数据为该给定的符号。其中该最大比特-长度编码将该给定符号的一个正的符号值表达为一个具有该最大比特-长度的二进制值。该最大比特-长度编码将给给定符号的一个负的符号值表达为一个具有该最大比特-长度的2的补码二进制数值。该第一比特-长度阈值设置为0,来前置该组符号使用该第二熵编码。

附图说明

[0020] 图1A是依据显示流压缩标准(DSC)的示例性系统的主要功能方块的举例说明。
[0021] 图1B是依据显示流压缩标准(DSC)的区块预测的示意图。
[0022] 图2A是依据高级显示流压缩标准(ADSC)初稿的主要功能方块的举例说明。
[0023] 图2B是依据高级显示流压缩标准(ADSC)初稿的模式决策处理的举例说明。
[0024] 图3是结合适应性GR熵编码以及传统的ADSC熵编码(即最大比特-长度编码)的编码系统的示意流程图。
[0025] 图4是依据本发明的实施例的获得GR编码的最佳的K的示意流程图。
[0026] 图5是依据本发明的一实施例的适应性熵编码的示意流程图。
[0027] 图6是依据本发明的另一实施例的适应性熵编码的示意流程图。

具体实施方式

[0028] 如下的说明是实现本发明的最佳实施方式。如下说明仅仅用来帮助理解本发明的精神,而并非是作为本发明的限制。本发明的范围以权利要求书为准。
[0029] 在大多数图像与视频编码系统中,源像素被处理从而移除或者减少冗余,从而处理的源像素更适用于有效的传输或者存储。举例来说,源像素可能投射至预测处理、变换处理、或者组合来产生预测冗余或者变换系数。量化处理也可应用于预测冗余或者变换系数来减少所需的数据代表。该处理将产生一组处理数据,例如量化的冗余或者变换系数。该组处理的数据与相关的编码信息与参数,例如针对多个像素的一个区块的编码模式,使用熵编码来一同编码至最终的比特流,,从而利用在处理的数据、编码信息与参数中的统计的冗余。待编码至比特流的编码的数据、编码信息与参数通常称为符号(symbol)。
[0030] 在当前的ADSC初稿中,使用一个简单的熵编码方法来编码一组符号。首先,每一组符号的最大比特-长度被决定。每一组符号接着使用最大比特-长度来熵编码。对应于熵编码的符号的二进制串(binary string)与最大比特-长度一同在比特流中信号化。
[0031] 图2A是依据ADSC初稿的示例性的编码系统的主要功能模块示意图。ADSC编码器包含源缓冲器210、模式决策单元212来选择对于当前编码的区块的最佳模式、区块编码单元214来使用由模式决定单元212选择的最佳模式来应用预测器、量化以及重建至当前区块、VLC熵编码单元216、平整度决定单元218、速率控制单元220以及重建缓冲器222。重建数据在重建缓冲器222中缓冲。在重建缓冲器222中缓冲的重建数据将作为参考数据使用来编码当前区块以及/或者后续的区块。在重建缓冲器222中缓冲的数据也用来进行模式选择。
[0032] 依据ADSC,多种编码模式被使用来编码多个区块。编码模式包含变换模式(Transform mode)、DPCM模式、区块预测(BP,block prediction)模式、图样模式(Pattern mode)、中间点预测(MPP,midpoint prediction)模式以及MPP后备(MPPF,MPP fallback)模式。中间点预测模式使用一个中间值作为在每一个愉快中的预测因子(predictor)。举例来说,中间点值(midpoint value)可通过多个像素的一半或者动态区域或者当前区块的多个相邻重建像素的中间值来决定。
[0033] 图2B是依据ADSC初稿的模式决定处理的示例性说明。模式的类型包含了7种不同的模式(230至236)。对于每一个模式,计算速率-失真成本(R-D cost,rate-distortion cost,图示中简称为R-D成本),并且提供给各自的处理单元(240)来执行速率-失真最优化、缓冲器预算以及误差检查功能。处理单元240监控对于每一个可用的模式的缓冲器预算。一部分模式可通过编码器/解码器设置来关闭,并且这些设置可以较高层级语法(例如图像参数设置PPS)来信号化。本发明可使用与图2A以及图2B相似的处理流程。然而,熵编码单元216在本发明的实施例中可以是一个合并的实施例。变换BP模型最佳模式
[0034] 在图像与视频处理的领域中,由于其较高的编码效率,GR(Golomb-Rice)熵编码被广泛地使用。GR编码依据一个选择的后缀比特-长度将一个符号编码为前缀部分(prefix part)与后缀部分(suffix part)。
[0035] 本发明揭露了一种适应性的熵编码技术,其决定一组符号的最大比特-长度,并且适应性地依据该组符号的最大比特-长度在GR编码或者最大比特-长度编码之间选择。具体来说,如果该组符号的最大比特-长度小于第一比特-长度阈值,该组符号使用GR编码。如果该组符号的最大比特-长度大于或者等于该第一比特-长度阈值,该组符号使用最大比特-长度编码。
[0036] 上述举例的熵编码是基于将该组符号的最大比特-长度与第一比特-长度阈值进行比较而获得。基于相似的原则,上述处理也可以通过如果该组符号的最大比特-长度小于或者等于(第一比特-长度阈值-1)则选择GR编码,如果该组符号的最大比特-长度大于(第一比特-长度阈值-1)则选择最大比特-长度编码来实现。更进一步,(第一比特-长度阈值-1)也可称为新比特-长度阈值。
[0037] 当选择GR编码来编码时,GR编码处理包含编码一个符号为一个前缀部分以及一个后缀部分,该前缀部分的比特-长度小于第二比特-长度阈值。GR编码也选择一个后缀比特-长度,在本说明中用K来指示。一个选择最佳的K来达到最优编码效率的例子将在以下部分中说明。当选择最大比特-长度编码时,最大比特-长度编码处理包含以最大比特-长度编码该组合中的所有符号。最大比特-长度编码可视为GR编码的一个变形,其中后缀数据是该组符号的最大比特-长度(即对于最大比特-长度编码,该组符号的最大比特-长度设定为K),并且不存在前缀数据。
[0038] GR编码的第一个例子说明如下:
[0039] ●符号值=11(十进制值)
[0040] ●后缀比特-长度K=3
[0041] ●GR编码的后缀=符号值%2K=3→编码为011(二进制串),其中“%”代表求余操作符。
[0042] ●GR编码的前缀=符号值/2K=1→编码为10(二进制串)。
[0043] ●GR编码的指示比特(Sign bit),其中值“0”代表一个非负值。
[0044] ●因此,符号值11(十进制值)的GR编码为:
[0045] ●10 011 其中10是前缀,011是后缀,并且 是指示比特。
[0046] GR编码的第二个例子如下所示:
[0047] ●符号值=0(十进制值)。
[0048] ●后缀比特-长度K=4。
[0049] ●GR编码的后缀=符号值%2K=0→编码为0000(二进制串)。
[0050] ●GR编码的前缀=符号值/2K=0→编码为0(二进制值)。
[0051] ●由于编码符号值是0→不需要指示比特。
[0052] ●因此,符号值0(十进制值)的GR编码为:
[0053] ■0 0000,其中0是前缀并且0000是后缀。.
[0054] GR编码的第三个举例说明如下:
[0055] ●符号值=-25(十进制值)
[0056] ●后缀比特-长度K=3
[0057] ●GR编码的后缀=符号值%2K=1→编码为001(二进制串)。
[0058] ●GR编码的前缀=符号值/2K=3→编码为0001(二进制串)。
[0059] ●GR编码的指示比特,其中值“0”代表为一个非负值。
[0060] ●因此,符号值-25(十进制值)的GR编码为:
[0061] ■0001 0011,其中0001是前缀,001是后缀,并且1是指示比特。
[0062] 如上所述,当使用最大比特-长度编码时,该组中的所有符号都使用固定的长度编码,编码长度等于最大比特-长度。最大比特-长度编码的第一个举例说明如下:
[0063] ●符号值=5(十进制值)
[0064] ●后缀比特-长度K=8
[0065] ●符号值5的最大比特-长度编码是:
[0066] 00000101。
[0067] 最大比特-长度编码的第二个举例说明如下:
[0068] ●符号值=-7(十进制值)
[0069] ●后缀比特-长度K=8
[0070] ●符号值-7的最大比特-长度编码为:
[0071] 11111001,这是符号值-7的一个2的补码(2’scomp lement)表示。
[0072] 本发明也涉及第二适应性熵编码技术,其中决定一组符号的最大比特-长度,并且依据该组符号的最大比特-长度适应性地在GR编码与最大比特-长度编码之间选择。具体来说,如果该组符号的最大比特-长度小于第一比特-长度阈值,该组符号使用GR编码。如果该组符号的最大比特-长度大于或者等于第一比特-长度阈值,该组符号使用最大比特-长度编码。当选择使用GR编码时,GR编码处理包含将一个符号编码为前缀部分与后缀部分,其中前缀部分的比特-长度小于第二比特-长度阈值。当选择最大比特-长度编码时,最大比特-长度编码包含将该组符号中的所有符号编码为具有该组符号的最大比特-长度的后缀数据,并且没有前缀数据。最大比特-长度编码处理进一步包含如果该符号值是一个非零值,将该组符号编码为具有一个指示比特。其中指示比特用来指示该符号值的正负。
[0073] 如上所述的第一适应性熵编码的三个GR编码的举例说明同样也可应用至第二适应性熵编码技术。
[0074] 依据第二适应性熵编码技术的最大比特-长度编码的第一个举例说明如下:
[0075] 符号值=5(十进制值)
[0076] 后缀比特-长度K=7
[0077] 符号值5的最大比特-长度编码是:
[0078] 0000101 其中 代表指示比特。
[0079] 依据第二适应性熵编码技术的最大比特-长度编码的第二个举例说明如下:
[0080] 符号值=-7(十进制值)
[0081] 后缀比特-长度K=8
[0082] 符号值-7的最大深度编码是:
[0083] 0000111 其中 代表指示比特。
[0084] 虽然上述两种适应性熵编码技术都在GR编码与最大比特-长度编码之间选择,当该组符号的最大比特-长度大于或者等于该第一比特-长度阈值时,本发明并不局限于最大比特-长度编码。因此,本发明也提供第三适应性熵编码技术,其决定该组符号的最大比特-长度,并且依据选择的后缀比特-长度(K)来在GR编码与第二熵编码之间选择。具体来说,如果该组符号的最大比特-长度小于第一比特-长度阈值,该组符号使用GR编码。如果该组符号的最大比特-长度大于或者等于第一比特-长度阈值,该组符号使用第二熵编码,其中该第二熵编码与该GR编码不同。当选择使用GR编码时,GR编码处理包含将一个符号编码为一个前缀部分与一个后缀部分,其中该前缀部分的比特-长度小于第二比特-长度阈值。第二熵编码包含最大比特-长度编码。
[0085] 本发明可应用至从图像与视频编码产生的符号。举例来说,本发明可应用至高级显示流压缩(ADSC)的符号。在传统的ADSC处理中,该组符号的最大比特-长度是针对当前编码的该组符号来决定的。检查当前编码的该组符号的二进制代表,并且据此决定最大比特-长度。举例来说,如果一组包含四个具有符号值对应{127、5、3、11}的符号,该组符号的最大比特-长度是7,其原因为符号值127需要7比特(即‘1111111”)来进行二进制代表。在另一个例子中,如果一组符号包含四个具有符号值对应{1、1、3、4}的符号,该组符号的最大比特-长度是3,其原因为符号值4需要3比特(即‘100”)来进行二进制代表。该系统也选择第一比特-长度阈值,并且比较该组符号的最大比特-长度与第一比特-长度阈值,来决定是否使用GR编码或者最大比特-长度编码。
[0086] 举例来说,如果使用GR编码并且后缀比特-长度等于3,符号值-26将具有前缀值3(即二进制值11)以及后缀值2(即二进制值010)。前缀部分编码为三个连续的1以及后续一个停止比特“0”。换言之,前缀部分是“1110”。后缀部分是“010”。由于符号值是负的,最后使用指示比特“1”。据此,这个例子的GR编码是“1110|010|1”,其中指示符“|”用来举例说明分别的前缀、后缀以及指示部分。
[0087] 图3是结合GR熵编码与传统的ADSC熵编码(即最大比特-长度编码)的编码系统的示例性流程图。在步骤310,获取待编码的一组符号,其中这些符号与以DPCM模式、BP模式或者变换模式编码的一个区块相关。该组符号的最大比特-长度在步骤320中决定。这个步骤可基于传统的程序,例如ADSC v0.51。另一方面,对于当前组的GR编码的最佳后缀长度(K)在步骤330中决定。最大比特-长度与第一比特-长度阈值(在这个例子中,即MaxSuffix)比较,来决定该最大比特-长度是否小于该阈值(即MaxSuffix),在步骤340中进行检查。如果步骤340的结果为“是”,该组符号是使用具有K-比特后缀的GR编码,如步骤350所示。如果步骤340的结果为“否”,该组符号是使用原始的熵编码(即最大比特-长度编码),如步骤360所示。
[0088] 图4是依据本发明的实施例的对于GR编码来获得步骤330中的最佳的K的举例说明。如步骤410所示,k的值初始设置为0。在步骤420,检查k是否达到了对于GR编码的后缀长度的极限(即MaxSuffix)。如果结果为“是”,获得K的程序终止。否则(即在步骤420中的“是”的路径),执行步骤430,其计算每一个符号的前缀/后缀/指示比特的比特-长度。在步骤440,这些符号的前缀长度与一个前缀-长度阈值(即MaxPrefix)进行比较检查。其中MaxPrefix对应一个可允许的前缀比特-长度的最大值。如果该符号的前缀长度大于MaxPrefix(即步骤440的“是”路径),则执行步骤470来将k增加1(即k++)。否则(即步骤440的“否”路径),则执行步骤450。在步骤450,将使用k作为GR编码的后缀长度的当前组的比特长度(比特-长度k)与使用K作为GR编码的后缀长度的当前组的比特长度(比特-长度K)进行比较。如果比特-长度k小于比特-长度K(即步骤450的“是”路径),如步骤460所示,K与比特-长度K都使用k与比特-长度k来分别更新。否则(即步骤450的“否”路径),k在步骤470中增加。
k增加之后,流程重复至步骤430。
[0089] 在图4中,获取最佳的K来最优化GR编码的编码处理。在图4所示的例子中,有两个极限(即MaxPrefix与MaxSuffix)来限制GR编码中的最大编码字(codeword)的尺寸与最小编码字的尺寸之间的差。这两个参数可通过高-层级(high-level)语法(例如PPS)来信号化。基于本发明的适应性熵编码的硬件实现是可扩展的。举例来说,对应的解码器可基于在PPS中信号化的两个参数来决定计算复杂性,来据此配置或者调整所需计算资源。计算复杂性也依赖于应用至下层数据的处理类型以及硬件的时钟速率。上述的适应性熵编码可通过设置最大后缀为0来强制使用非GR编码(即关闭GR编码)。
[0090] 如上所述,两个参数MaxPrefix与MaxSuffix可用来控制适应性熵编码的编码复杂性。表1举例说明了依据本发明的实施例的适应性熵编码的例子,其中后缀设置为4。列出了对于不同的符号值的前缀部分与后缀部分,其中前缀编码的最大长度是8(即针对符号值等于127的“11111110”)。如果MaxPrefix设置为8,由于没有前缀编码超出8的比特长度,表1中产生的GR编码都是有效的。然而,如果MaxPrefix设置为4,由于针对符号值等于127的前缀编码超出了4的比特长度,表1中产生的GR编码是无效的。如本领域所知,较长的可变编码导致较高的复杂性。因此,对应于MaxPrefix等于8的参数导致有效的编码。然而,这个系统引起较高的复杂性。另一方面,对应于MaxPrefix等于4导致较低的复杂性。然而,其导致无效的编码。
[0091] Table1
[0092]后缀=4 值 前缀 后缀
符号1 127 11111110 1111
符号2 5 0 0101
符号3 3 0 0011
符号4 11 0 1011
[0093] 表2是依据本发明的实施例的适应性熵编码的另一个举例说明,其中后缀设置为5。列出了对于不同的符号值的前缀部分与后缀部分,其中前缀编码的最大长度是4(即对于符号值等于27是“1110”)。如果MaxPrefix设置为8,由于没有前缀编码超出比特长度8,表2中产生的GR编码是都有效的。并且,如果MaxPrefix设置为4,表2中产生的GR编码是有效的,其原因为对于符号值等于127的前缀编码具有一个等于4的比特长度。因此,表2中的例子是一个好的选择,其可产生有效的编码并且保持较低复杂性。
[0094] 表2
[0095]后缀=5 值 前缀 后缀
符号1 127 1110 11111
符号2 5 0 00101
符号3 3 0 00011
符号4 11 0 01011
[0096] 如上面的例子中所述,可通过限制最大可允许前置长度来减少编码的复杂性。产生的GR编码可依据多个符号的顺序来一个接一个传输。依据本方法,与这些符号相关的前缀部分与后缀部分将以一个交错的方式传输。此外,前缀部分与后缀部分可分别组合。图5是比特流传输格式的举例说明。列出了4个符号的GR编码(510),其分别包含前缀部分与后缀部分。比特流520对应具有交错的前缀部分与后缀部分的流格式。比特流530对应具有前缀部分与后缀部分分别组合的流格式。
[0097] 图6是依据本发明的实施例的适应性熵编码的示例流程图。在图6中所示的方法可通过图2A中所示的熵编码单元216来实现。在步骤610,该方法接收与产生自图像或者视频数据的一组符号相关的多个输入像素。在编码器端,输入数据对应由编码处理产生的符号,并且这些符号投射至熵编码来产生比特流。举例来说,对应于DPCM、BP模式或者变换模式相关的符号的这些符号将要熵编码。以图2A中所示的DPCM为例,熵编码单元216接收与产生至图像或者视频数据的一组符号相关的输入像素。在解码器端,输入数据对应待熵解码来恢复对应的符号的二进制串,其对应于与待熵编码的与DPCM、BP模式或者变换模式相关的多个符号。该组符号的最大比特-长度在步骤620中决定。其中该组符号的该最大比特-长度是在该编码器信号化或者在该解码器解析。举例来说,在编码器端,熵编码器,例如图2A中的熵编码单元决定该组符号的最大比特-长度。如上所述,本发明依据该组符号的最大比特-长度适应性地选择GR编码或者其他的熵编码。如果该组符号的最大比特-长度小于第一比特-长度阈值,在步骤630,该组符号是使用GR编码来编码或者解码。如果该组符号的最大比特-长度大于或者等于第一比特-长度阈值,在步骤640,该组符号是使用第二熵编码(即其他熵编码)来编码或者解码的,其中该第二熵编码与GR编码不同。如上所述,在编码器端,步骤630与步骤640进一步在步骤620之后通过一个熵编码器(例如图2A中的熵编码单元216)来执行。相似地,在解码器端,熵解码器仅仅执行步骤630与步骤640来适应性地依据该组符号的最大比特-长度来选择GR编码或者其他熵编码。与该组符号相关的编码输出或者解码输出接着被提供给步骤650。
[0098] 上述流程是依据本发明的实施例的图像编码的举例说明。本领域技术人员可修正每一个步骤、重新安排这些步骤、拆分一个步骤或者结合多个步骤来实现本发明,而不偏离本发明的精神。
[0099] 上述流程可对应软件程序代码来在一个计算机、手机、数字信号处理器或者可程序装置来执行本发明。程序代码可以是多种程序语言,例如C++。上述流程也可对应基于硬件的实现,其中一个或者多个电子电路(例如ASIC(专用集成电路)以及FPGA(现场可编程门阵列)或者处理器(例如DSP(数字信号处理器)))。
[0100] 上述说明的目的之一是使得本领域技术人员能够依照提供的具体的应用以及所需的条件来实现本发明。上述实施例的多种变型对于本领域的技术人员来说也是可以预见的,并且在此定义的多种原则也可应用至其他的实施例。因此,本发明并不局限于上述公开的具体的实施例,而应该扩展至符合本发明的精神的最广范围。在上述的具体说明中,提供了多种具体的细节,这仅仅是帮助深入理解本发明而使用。本领域技术人员可理解本发明可以实现。
[0101] 本发明的上述实施例能够以多种硬件、软件代码或者其组合来实现。举例来说,本发明的一个实施例可以是一个集成电路,集成至一个图像压缩芯片,或者一个程序代码,集成至图像压缩软件,来执行上述设计。本发明的实施例也可以是程序代码,由数字信号处理器(DSP)来执行以实现上述设计。本发明也包含多种功能,其由一个计算机处理器、数字信号处理器、微处理器或者现场可编程阵列来执行。这些处理器能够设置为,通过执行由本发明的实施例中的具体方法所定义的机器可读软件代码或者韧体代码,依据本发明来执行具体的任务。上述软件代码或者韧体代码能够以不同的程序语言或者不同的格式或者风格来发展。这些软件代码也可以针对不同的目标平台来实现。然而,来依据本发明执行任务的软件代码或者其他配置方式代码的不同的代码格式、风格、语言都不偏离本发明的精神。
[0102] 本发明通过上述实施例进行举例说明,本发明并非局限于上述举例说明。本发明应理解为涵盖本领域技术人员可了解的多种变型的实施方式与相似的安排。因此,本发明的权利要求书应该理解为涵盖本领域技术人员可了解的多种变型的实施方式与相似的安排的较广范围。