用于数字数据压缩的方法和设备
阅读说明:本技术 用于数字数据压缩的方法和设备 (Method and apparatus for digital data compression ) 是由 帕斯卡尔·休伯特·佩莱格里 查尔斯·丹尼尔·巴斯查尔特 加埃尔·鲁弗鲁瓦 于 2018-07-10 设计创作,主要内容包括:本发明涉及一种用于压缩输入数据集的方法,其中,将输入数据集中的系数分组为多个系数组,确定表示每一组所需的位平面数量、GCLI,应用量化,保留有限数量的位平面,将预测机制应用于所述GCLI以获得残差,并且对所述残差执行熵编码。熵编码后的残差以及保留的位平面允许解码器以最小的元数据成本重建经量化的数据。(The invention relates to a method for compressing an input data set, wherein coefficients in the input data set are grouped into a plurality of coefficient groups, the number of bit-planes required to represent each group, GCLI, is determined, quantization is applied, a limited number of bit-planes is reserved, a prediction mechanism is applied to the GCLI to obtain a residual, and entropy coding is performed on the residual. The entropy encoded residual and the reserved bitplanes allow the decoder to reconstruct the quantized data with minimal metadata cost.)
技术领域
本发明涉及一种用于将包括系数序列的输入数据集压缩为压缩数据集的方法,并且涉及一种用于对所述压缩数据集进行解压缩的方法。本发明还涉及一种压缩数据集,并且涉及一种用于执行该压缩方法的设备以及一种用于执行所述解压缩方法的设备。
背景技术
当需要传输与通信信道的可用带宽相比将需要更大比特率的数据或存储与存储介质的容量相比更大大小的数据时,就需要数据压缩。当数据包含大量冗余时,这是可能的,并且在不影响传输目的情况下可以移除一些细节。当通过压缩-解压缩周期未修改数据时,压缩被认为是无损的,因此在发射器和接收器处是相同的。然而,通常不可能保证无损压缩,因为它取决于数据的固有特性,其中的冗余和仅通过巧妙的编码移除冗余的能力并不能总是成功地降低比特率或数据成本。在这种情况下,需要有损压缩方案,并且编码器通过量化来减少数据中包含的信息,以便以质量为代价来保证所需的压缩数据集大小。
文献SMPTE注册披露文献SMPTE RDD 35:2016、2016年3月24日、第1-53页、XP055366991描述了TICO视频压缩方案比特流、解码过程以及将比特流映射到IP网络的规定。在此过程中,获得残差并使用一元编码进行编码。
文献WO03/092286描述了一种用于将参数值映射到码字索引的自适应方法和系统。该方法需要将差异或参数分类为至少第一组和第二组的步骤。这需要在编码器和解码器处进行额外的缓冲和处理。这也增加了过程的等待时间。
文献EP2773122A1也与TICO视频压缩方案有关,描述了一种用于无损数据压缩的方法和设备,其中,将所述数据分组为具有m个位的n个字的组;针对每一组检测最大编码行索引(GCLI)的值,GCLI是一组中的字的位中的最高权重非零位的索引;针对每一组生成输出数据集,该输出数据集包括该组中的权重最低的字的GCLI位以及包括GCLI值的元数据。该方法的实现非常简单,并且非常高效,尤其是在许多数据具有较小值的情况下。GCLI的值被包括在零(当一组中的所有字均为零时)与m(当一组中的至少一个字具有权重m等于1的位时)之间。因此,GCLI的二进制编码需要
个位、其是大于x的最小整数。该文献还提出了改进方案,其中,用GCLI值与GCLI的预测值之间的差值代替输出数据集中的GCLI。这样做,待编码的值较小,并且一元编码可能比GCLI的二进制编码需要更少的空间。然而,似乎即使在使用所述改进方案时,GCLI的编码也可能表示压缩数据集中的大量数据,尤其是在许多系数变为零时。另外,当压缩数据集大小超过数据预算并且必须执行有损压缩时,该文献没有解决对量化的需求。因此,需要一种用于压缩输入数据集的方法,该方法易于实施、需要较少的空间用于编码包含GCLI的元数据、并解决量化问题。
发明内容
本发明的目的是解决上面提到的问题。具体地,本发明的目的是提供一种具有低复杂度的压缩和解压缩方法和设备,其中,减少了元数据所需的数据预算。
本发明由独立权利要求限定。从属权利要求限定了有利的实施例。
根据本发明的第一方面,提供了一种用于根据压缩参数来压缩一个或多个输入数据集的方法,该输入数据集或每个输入数据集包括M个系数的序列,每个系数具有m个位,这m个位将包括在0与2m-1之间的量值编码为一个或多个相应的压缩数据集,每个压缩数据集包括量值压缩数据集和元数据压缩数据集,其中,所述压缩参数可以包括M;m;n;t;量化类型;映射模式,该映射模式为负先或正先;在该输入数据集表示显示图像的情况下显示图像的行数和列数;在像素序列是显示图像的去相关变换的情况下子带的行数;预测模式,其可以是水平预测或垂直预测;确定预测因子的初始值的方式;熵编码模式;在熵编码是Rice编码的情况下Rice编码的参数k的值;以及边界模式,
针对该输入数据集或每个输入数据集,该方法包括以下步骤:
A.将这些系数分组为具有n个系数的一个或多个连续组,分组因数n大于或等于2,每个系数组具有针对这些系数的不同权重的m个量值位平面;
B.针对每个系数组i,
a)确定最大编码行索引(GCLI)的值,该GCLIi是所述组i中这些系数的量值的位中的最高权重非零位的索引,该索引从最低有效位的1到最高有效位的m进行计数,对于其中所有系数均等于零的组,该GCLI为零;
b)执行量化以使得经量化系数包括在0到2(m-t)-1的范围内,从而提供n个经量化系数,其中,t是量化水平;
c)如果GCLIi≥t+1,则针对所述组的每个位平面,将具有权重1至权重GCLIi-t的经量化系数的位平面复制到量值压缩数据集;
d)如果GCLIi≤t,则不进行任何操作
e)根据所述系数序列中的一组或多组先行系数的GCLI,计算GCLIi的预测因子predi,对于所述系数序列的第一系数组,该预测因子predi等于pred_init;
f)计算残差ri
ri=max(GCLIi-t,0)-max(predi-t,0);
g)将该残差ri映射到代码,所述映射可通过执行以下步骤获得
(1)将r最小值、GCLIi所有可能值的残差的最小值计算为
r最小值=-max(predi-t,0);
(2)将r最大值、GCLIi所有可能值的残差的最大值计算为
r最大值=max(m-max(predi,t),0);
(3)如果是负先映射模式,则计算C首先=-1,如果是正先映射模式,则计算C首先=+1;
(4)计算
-如果边界模式是“以最小值为边界”,触发器=|r最小值|;
-如果边界模式是“以最小值/最大值为边界”,触发器=MIN(|r最小值|,r最大值);
-如果边界模式是“以最大值为边界”,触发器=|r最大值|;
-如果边界模式是“没有边界”,触发器=m;
(5)IF|r|<=触发器,THEN
IF r*C首先>0,THEN
C=2*|r|-1
ELSE C=2*|r|
ELSE C=触发器+|r|
h)提供代码C的熵编码,并将所述编码复制到该元数据压缩数据集中。
优选地,所述熵编码为Rice编码,其中,k=0、1或2。更优选地,k=0。
优选地,n小于或等于8,或者等于4。
可以有利地通过移除这些系数组的t个最低位平面来执行所述量化。
可以通过对非去相关的输入数据集执行去相关变换来获得所述输入数据集。
所述M个系数的序列可以对应于包括像素行和像素列的显示图像的一行或多行的像素序列或者包括像素行和像素列的显示图像的去相关变换的子带的一行或多行的像素序列。
根据本发明的利用水平预测的实施例,在步骤B.e)中,GCLIi的所述预测因子predi为系数序列中先前组系数的GCLI,对于系数序列中的第一系数组,该预测因子为pred_init。
根据本发明的利用垂直预测的实施例,在步骤B.e)中,如果所述GCLI大于t,则GCLIi的所述预测因子predi为前一行像素的同一列中的像素组的GCLI,并且如果所述GCLI小于或等于t,则该预测因子为零,对于第一行像素的像素组,该预测因子为pred_init。
在本发明的利用垂直预测的压缩方法的优选实施例中,所述一个或多个输入数据集包括至少两个输入数据集,第一输入数据集具有量化水平t1,第二输入数据集具有量化水平t2,在显示图像中该第一输入数据集的最后一行像素在该第二输入数据集的第一行像素之上,如果所述GCLI>t1,则该第二输入数据集的第一行像素的像素组的预测因子等于该第一输入数据集的同一列中的最后一行像素的像素组的GCLI,并且如果所述GCLI≤t1,则该预测因子等于零。
根据本发明的第二方面,提供了一种用于根据压缩参数对一个或多个压缩数据集进行解压缩的方法,每个压缩数据集包括元数据压缩数据集和量值压缩数据集,该元数据压缩数据集包括熵编码后的代码ci的序列,该量值压缩数据集包括系数的位平面,该一个或多个压缩数据集可通过本发明的第一方面的方法获得、具有相同的压缩参数、被解压缩为一个或多个相应的解压缩数据集,每个解压缩数据集包括系数序列,每个系数具有对量值进行编码的m个位,包括以下步骤:
a)将预测因子predi’初始化为pred_init;
如果预测模式是垂直的,则将一行GCLI previ初始化为pred_init;
b)从所述元数据压缩数据集提取代码ci;
c)如果预测模式是垂直的,则计算
predi’=previ;
d)获得与所述代码ci相对应的残差ri,该对应关系可通过执行以下步骤获得
(1)针对包括在r最小值与r最大值之间的所有r值执行本发明的第一方面的步骤B.g),从而提供表格;
(2)从所述表格获得与所述代码cii相对应的残差ri;
e)计算为与所述代码相对应的组存储的位平面的数量nbp,所述位平面的数量为
nbp=ri+predi’;
f)如果所述位平面的数量nbp等于零,则提供该解压缩数据集中具有从t+1到m的所有为零的位平面的n个m位字的序列;
g)如果所述位平面的数量nbp与零不同,则提供具有从来自该量值压缩数据集的后续n位位平面提取的t+1至t+nbp个位平面且具有等于零的t+1+nbp至m个位平面的n个m位字的序列;
h)如果预测模式是水平的,则用nbp替换predi’;如果预测模式是垂直的,则替换previ=nbp;
i)针对连续的代码和位平面重复步骤b)至g),直到该元数据压缩数据集中的所有代码都已使用为止。在步骤d)中,可以通过实际执行步骤d(1)和d(2)或通过诸如搜索算法或公式的其他等效方法来执行残差n。
当已经根据本发明的利用垂直预测的所述优选实施例执行了压缩时,在用于对这两个或更多个输入数据集进行解压缩的方法中,对于第二数据集的第一行,可以有利地将为第一数据集的最后一行获得的previ的相应值作为预测因子predi’。
在本发明的压缩方法和解压缩方法中,pred_init可以等于零或等于int(m/2)。
根据本发明的第三方面,提供了一种与未压缩数据集相对应的压缩数据集,所述未压缩数据集包括M个系数的序列,每个系数具有对量值进行编码的m个位,所述压缩数据集可通过本发明的压缩方法从所述未压缩数据集获得,该压缩数据集包括:
·元数据压缩数据集,该元数据压缩数据集包括熵编码后的代码的序列;以及
·量值压缩数据集,该量值压缩数据集包括系数的位平面。
根据本发明的第四方面,提供了一种用于压缩包括M个系数的序列的输入数据集的设备,每个系数具有m个位,这m个位将量值编码为压缩数据集,该压缩数据集包括量值压缩数据集、元数据压缩数据集,该设备包括逻辑电路、ASIC、FPGA、GPU和CPU中的至少一个,被配置用于执行本发明的压缩方法的步骤。
根据本发明的第五方面,提供了一种用于将压缩数据集解压缩为解压缩数据集的设备,该压缩数据集具有表示压缩参数的数据并包括元数据压缩数据集和量值压缩数据集,所述压缩参数包括M、m、n、t的值,量化类型,映射模式,该映射模式为负先或正先,熵编码的类型、以及预测模式,该元数据压缩数据集包括Rice编码后的代码的序列,该量值压缩数据集包括系数的位平面,该解压缩数据集包括系数序列,每个系数具有对量值进行编码的m个位,所述压缩数据集可通过本发明的压缩方法获得、被解压缩为解压缩数据集,所述解压缩数据集包括M个系数的序列,每个系数具有对量值进行编码的m个位,该设备包括逻辑电路、ASIC、FPGA、GPU和CPU中的至少一个、被配置用于执行本发明的解压缩方法的步骤。
附图说明
图1是本发明的用于压缩的设备与用于解压缩的设备之间的数据流的示意图;
图2是示意性地表示两个输入数据集以及如何在这两个数据集的边界处进行垂直预测,在未进行量化的情况下与GCLI成函数关系的残差。
图3是表示在未进行量化的情况下与GCLI成函数关系的残差的图表。
图4是表示在量化的情况下与GCLI成函数关系的残差的图表。
图5和图6是表示在|r最小值|小于r最大值的情况下,通过分别首先映射负值和首先映射正值而开始的残差与代码之间的映射的图表。
图7和图8是表示在|r最小值|大于r最大值的情况下,通过分别首先映射负值和首先映射正值而开始的残差与代码之间的映射的图表。
图9示出了针对本发明的不同图像和不同实施例获得的结果。
附图既未按比例绘制也不成比例。
具体实施方式
图1是本发明的用于压缩的设备与用于解压缩的设备之间的数据流的示意图。输入数据集可以包括M个系数的序列,每个系数具有对量值进行编码的m个位。输入数据集可以表示具有多个行和列的显示图像,或者表示显示图像的变换,比如图像的小波变换的子带。用于压缩的设备处理输入数据集并生成压缩数据集。压缩数据集可以包括量值压缩数据集和元数据压缩数据集。另外,用于压缩的设备可以生成一组压缩参数。这些压缩参数可以包括:
-M,输入数据集中的系数的数量;
-m,输入数据集的系数的量值中的位数量;
-n,分组因子;
-t,量化水平;
-量化类型;
-映射模式,该映射模式为负先或正先;
-在该输入数据集表示显示图像的情况下显示图像的行数和列数;
-在像素序列是显示图像的去相关变换的情况下行数和子带;
-预测模式,其可以是水平预测或垂直预测;
-初始预测因子pred_init,在没有先行GCLI可用于确定预测因子时使用;
-确定预测因子的初始值的方式;
-熵编码模式;
-在熵编码是Rice编码的情况下Rice编码的参数k的值;以及
-边界模式,该边界模式是以下之一
-以最小值为边界;
-以最小值/最大值为边界;
-以最大值为边界;
-没有边界。
这些压缩参数由用于压缩的设备使用,并且由用于解压缩的设备使用。这些参数中的一些可以从压缩设备传送到解压缩设备,或者可以固定并在压缩设备与解压缩设备之间预先商定。用于解压缩的设备生成类似于输入数据集的解压缩数据集,但是由于量化而导致一些质量损失。
下面的表1是M=12个系数的序列的示例,每个系数具有m=15个量值位,这些系数被分组为具有n=4个系数的三组。针对每一组,表示了GCLI,GCLI是最大编码行索引,即所述组中系数量值的位中的最高权重非零位的索引。表示了一个简单的量化,其中,系数的t=4个最低位平面被截断,即量化水平t为4。
表I
系数
这三个连续组的GCLI为8、7和3。如果使用预测方法并用等式1给出的残差代替GCLI:
ri=GCLIi-predi (等式1),
则可以获得较小的待编码值。另外,当执行量化时,解压缩设备用于解码数据所需的残差n可以被计算为ri=max(GCLIi-t,0)-max(predi-t,0) (等式2)
根据等式2的残差ri向解码器提供必要的信息,同时使待编码值保持尽可能地小。假设将预测因子作为序列中的前一GCLI(水平预测),并且第一个示例之前的组的GCLI为7,则残差n如下:
表II
在该示例中可以看出,残差ri是较小值。待传输的位平面的数量nbp(即表I中虚线以上的位平面的数量)在GCLI>t时等于GCLI-t,并且如果GCLI≤t,则等于零。
表III是示出了对被分组为七个组、生成七个GCLI的系数序列进行处理的示例。量化水平t为6。在编码器处,第一组的初始预测因子被视为pred_init=0。随后的预测因子被视为序列GCLIi-1中前一组的GCLI。这种预测模式适用于一般情况,并且适用于当输入数据集表示图像并且使用水平预测模式时的情况。根据等式2计算残差n。将nbp个位平面从经量化系数复制到量值压缩数据集。将残差的序列和位平面提供给解码器。
在解码器处,以与在编码器处相同的方式获得第一组的初始预测因子(在示例中,predi_init=0)。使用等式3计算位平面的数量nbp。
nbp=ri+predi’ (等式3)
后一组的预测因子被视为当前组的nbp,其对应于经量化系数的GCLI。可以通过在nbp值不为空时将t添加到nbp值上、而在nbp值为空时保持零值来获得解压缩数据集系数的GCLI’。可以看出,如果输入数据集的GCLI大于t,则这些GCLI’等于输入数据集的GCLI;并且如果GCLI≤t,则这些GCLI’等于零,因为在这种情况下,所有系数位平面都已被移除,从而在解码器处产生零系数。
表III
t=6
当输入数据集对应于包括像素行和像素列的显示图像的一行或多行的像素序列或者对应于包括像素行和像素列的显示图像的去相关变换的子带的一行或多行的像素序列时,垂直预测时可能的。已经观察到垂直预测得到了良好的结果。
表IV示出了与表III的示例类似的示例,但应用了垂直预测。考虑到前一行I-1,对GCLI的行I进行处理。预测因子predi的确定方式如下:
IF GCLIi(I-1)≤t THEN predi=0 ELSE predi=GCLIi(I-1)
根据等式2计算残差。
在解码器处,与前一行(行I-1)的经量化系数相对应的GCLI’的集合保存在缓冲区中以用于处理行I。利用以下等式计算预测因子pred’i
pred’i=GCLI’i(I-1) (等式4)
并且根据等式3计算位平面的数量。当前行的GCLI’等于位平面的数量nbp,i,并被存储以供下一行使用。对于数据集的第一行,使用初始化为值pred_init的行。
表IV
t=6
当输入数据表示图像并包括两个或更多个输入数据集时,并且当第一数据集的最后一行紧接在第二数据集的第一行之上时,可以利用前一段中讨论的第一行的预测因子的初始化来独立地处理这两个数据集。然而,在本发明的优选实施例中,第一数据集的最后一行可以用作第二数据集的第一行的预测因子。当第一数据集的量化水平t1不同于第二数据集的量化水平t2时,会出现特殊情况。图2表示了以量化水平t1量化第一数据集的情况。第一数据集的最后一行(行I-1)包括具有GCLIg1的组11。第二数据集20包括第一行(行I),该第一行具有紧接在g1的组下方的GCLIg2。
表V是第一数据集具有量化水平t1=10、第二数据集具有量化水平t2=6的示例。
与表IV的情况不同的是,在编码器处,预测因子的确定方式如下:
IF GCLIi(I-1)≤t1 THEN predi=0ELSE predi=GCLIi(I-1)(等式5)
其中,使用t1代替t。在解码器处,预测因子来自第一数据集的最后一行的previ元素。
表V
t=6
图3是表示针对预测因子pred=2和pred=8的两个值在未进行量化的情况下由等式1给出的、与GCLI成函数关系的残差的图表。残差的可能值的数量等于GCLI的值的数量。如果预测因子是好的预测因子,则残差接近或等于零。
图4是表示在进行量化、量化水平t等于4的情况下如等式2所给出的、与在0与15之间(或更一般地,m)的GCLI的可能值成函数关系的残差的图表。对于pred=8,残差的下界r最小值等于-4。对于pred=2,残差的下界r最小值等于0。上界r最大值与图3的上界相同,r最大值=13。还表示了t=1、pred=8的情况的图表。下界r最小值为零,并且上界r最大值为5。
残差的下界r最小值和上界r最大值的一般表达式由以下等式给出
r最小值=-max(predi-t,0) (等式6)
并且
r最大值=max(m-max(predi,t),0) (等式7)
量化后的残差值的范围相对于未进行量化的值的范围减小了。
根据本发明,可以将残差的值映射到非负整数C。这在图5、图6、图7和图8上进行展示。通过将值r=0映射到C=0、然后将r=-1映射到C=1、将r=1映射到C=2、将r=-2映射到C=3等可以将r最小值与r最大值之间的残差映射到一定范围的非负整数。这由图5至图8的方形标记表示。在图5和图7中,负值r=-1首先被映射到C=1(负先映射)。在图6和图8中,正值r=1首先被映射到C=1(正先映射)。图5和图6是表示m=15、pred=8且t=4的情况的图表。r最大值的值大于r最小值的绝对值。GCLI的可能值在0到15的范围内。以这种方式,将r的最可能的值(即值或零附近的r)映射到C的最小值。然后可以如下所述高效地对C进行编码。图7和图8是表示m=15、pred=12且t=2的情况的图表。
根据本发明的优选实施例,可以通过考虑以下内容来改进残差到非负整数C的映射:当r最大值大于|r最小值|时,可以通过将r最小值以上的残差映射到连续的C值(而不是步进2)来减小C值的范围。这被称为“有界C(Bounded C)”方法,并在图5和图6中用圆形标记来表示。C值达到最大值11,而不是针对负先情况(图5)的最大值14,并且也不是针对正先情况(图6)的最大值13。当r最大值小于|r最小值|时,可以获得类似的结果,如图7和图8中的圆标记所示:C值达到最大值13,而不是针对负先情况(图7)的最大值19,并且也不是针对正先情况(图8)的最大值20。因此,关于在不使用“有界C”方法的情况下的C值,C的最大值是有界的。
在选项“以最小值为边界”中,包括在触发器与r最大值之间的残差(如果有的话)的代码C的值小于不使用“有界C”方法的值。
在选项“以最大值为边界”中,包括在-触发器与r最小值之间的残差(如果有的话)的代码C的值小于不使用“有界C”方法的值。
在选项“以最小值/最大值为边界”中,包括在-触发器与r最小值之间的残差(如果有的话)的代码C的值以及包括在触发器与r最大值之间的残差(如果有的话)的代码C的值小于不使用“有界C”方法的值。
可以通过执行映射算法的以下步骤来获得根据负先映射模式或正先映射模式对应于残差范围的代码C:
我们首先定义以下两个参数:
如果为负先,C首先=-1,如果为正先,C首先=+1
当使用本发明的“有界C”改进方案时,选择边界模式,该边界模式是以下之一
-以最小值为边界;
-以最小值/最大值为边界;
-以最大值为边界;
-没有边界。
触发器的确定方式如下:
如果是以最小值为边界,则触发器=|r最小值|,
如果是以最小值/最大值为边界,则触发器=MIN(|r最小值|,r最大值),
如果是以最大值为边界,则触发器=r最大值。
如果是没有边界,则触发器=m。
然后可以通过执行以下步骤来计算代码C:
选项“负先”更加令人关注,因为它可以确保预测因子以下所有值的编码更短,其中包括已通过量化移除的所有值。这在图9中示出,其中的“负先”方法的相对优点是明显优于“正先”方法。
与“以最小值为边界”的边界模式相比,“以最小值/最大值为边界”的边界模式并没有提供显著优势,因此,如果该方法的实施提供了不考虑r最大值的增益,则可以安全地简化该方法。
而且,可以从预定的查找表获得映射。
逆映射是双射的,因此可以在解码器处执行其逆映射。
下面的表VI提供了针对系数组以m=15位被编码的从1到8的连续八个GCLI’的示例。量化水平是t=4。对于i=1,初始预测因子已选择为int(m/2),即7。对于每个后续GCLI,已将预测因子确定为前一个GCLI。对于每个连续的GCLI,已根据等式2计算了残差ri,并且已分别根据等式6和等式7确定了r最小值和r最大值。已根据不同的选项为每个GCLI计算了触发器的值。在最后一行中,代码C已处于选项“以最小值为边界”中,并且为负先。取决于当前GCLI的预测因子predi,每个GCLI都独立于输入数据集中的其他GCLI进行处理。
表VI
表VII给出了根据不同的边界模式和映射模式对这8个代码C进行编码所需的位数量。
表VII
粗体值对应于表VI中所示的示例。可以看出,负先给出了更好的结果。“以最小值/最大值为边界”的边界模式给出了更好的结果,但“以最小值为边界”也很好。
在编码器处准备的信息(即位平面和对残差进行编码的代码C)使得解码器可以从接收到的代码C和重建的预测因子中确定要从量值压缩数据集中提取以重建原始的经量化数据集的位平面的数量nbp。在编码器处用于对残差进行编码的触发器在解码器处不被需要,并且也不在元数据压缩数据集中传输。
解码器从先前步骤或从pred_init接收C值并且具有pred值。根据这两个值,解码器可以分别根据等式6和等式7计算r最小值和r最大值。了解了映射模式和边界模式后,解码器计算触发器。然后,解码器可以根据映射算法的上述步骤来计算与在r最小值与r最大值之间的所有r值相对应的代码C。这会生成给出在r最小值至r最大值之间的r值与C的相应值之间的对应关系的表。然后,解码器在该表中获得r值作为与C相对应的值。
在表VIII的示例中,已经接收到代码C=5,其中预测因子等于7,并且量化水平t=4。可以计算r最小值和r最大值的值,并且构建用于r最小值与r最大值之间的所有可能的残差的表。计算r的这11个值中的每一个的代码C,并将其***表中。然后在表中搜索接收到的代码C=5的值,以找到r的相应值r=-3。用于执行代码C的解码的其他等效方法,比如表中的(二进制)搜索或公式。
表VIII
本发明的方法中针对残差所获得的代码C是非负整数。如果预测因子是准确的预测因子,则残差将是很小的值。熵编码用于在元数据中对C进行编码。用于C的优选熵编码是Rice编码。根据参数k对非负整数N进行的Rice编码如下:
-将N除以2k,并且对所得到的商进行一元编码;
-以k个位对除法的余数进行二进制编码。
下表中给出了在0与10之间的N且k=0、1和2的示例值:
在k=0的情况下,对于N=0,代码的长度是一个位。因此,当预测准确时,值k=0是本发明方法的优选值,并且在待编码的残差中会频繁出现值0。然而,如果预测的准确性不够理想,则可能会出现较大的N值,并且较大的k值(比如k=1或2)可能是最佳的,其中较大的N值需要较少的位。Rice编码是前缀码。因此,该组可能代码中的任何代码都不是该组可能代码中另一个代码的前缀。在代码之间不需要任何特殊标记,并且解码器可以明确地从元数据压缩数据集中提取连续的代码。
量化步骤将在0与2m-1之间的系数量值的2m个值的集合应用于在0与2(m-t)-1之间的2m-t个值的集合。执行此量化的一种简单方式是移除未经量化系数的t个最低权重位。然而,在本发明中可以使用其他量化方法。
图9示出了针对本发明的不同图像和不同实施例获得的结果。对于16个测试图像中的每个图像,条形图示出了关于不使用本发明的编码、而是使用一元编码对残差进行编码(比如文献SMPTE RDD 35:2016)的方法的PSNR(峰值信噪比)。条形图依次表示
·仅使用|r最小值|边界并采用负先映射模式(min_neg1st)的情况;
·仅使用|r最小值|边界并采用正先映射模式(min_pos1st)的情况;
·同时使用|r最小值|边界和r最大值边界并采用负先映射模式(minmax_neg1st)的情况;
·同时使用|r最小值|边界和r最大值边界并采用正先映射模式(minmax_pos1st)的情况。
·|r最小值|边界和r最大值边界都不使用并采用负先映射模式(no_minmax)的情况。
这些结果表明,同时使用|r最小值|边界和r最大值边界相对于仅使用|r最小值|边界提供了非常小的改进。在这两种情况下,使用负先映射模式都明显优于使用正先映射模式。
本描述解决了对系数的量值的处理。这些方法适用于无符号系数。当输入数据包括带符号系数时,这些方法也适用。这些带符号系数可以被编码为符号+量值或被变换为符号+量值格式。将一组的系数的符号位分组为符号位平面,并且将符号位平面与量值位平面一起进行处理。本发明涉及一种用于压缩输入数据集的方法,其中,将输入数据集中的系数分组为多个系数组,确定表示每一组所需的位平面数量、GCLI,应用量化,保留有限数量的位平面,将预测机制应用于GCLI以获得残差,并且对残差执行熵编码。熵编码后的残差以及保留的位平面允许解码器以最小的元数据成本重建经量化的数据。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:双去块滤波阈值