CN101044687A - 用于数据压缩优化的方法、系统和计算机程序产品 - Google Patents

用于数据压缩优化的方法、系统和计算机程序产品 Download PDF

Info

Publication number
CN101044687A
CN101044687A CN200580030761.0A CN200580030761A CN101044687A CN 101044687 A CN101044687 A CN 101044687A CN 200580030761 A CN200580030761 A CN 200580030761A CN 101044687 A CN101044687 A CN 101044687A
Authority
CN
China
Prior art keywords
sequence
node
coefficient
run
index
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.)
Granted
Application number
CN200580030761.0A
Other languages
English (en)
Other versions
CN101044687B (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.)
Maliki Innovation Co ltd
Original Assignee
JET DATA 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 JET DATA CO Ltd filed Critical JET DATA CO Ltd
Priority claimed from PCT/CA2005/001084 external-priority patent/WO2006005182A1/en
Publication of CN101044687A publication Critical patent/CN101044687A/zh
Application granted granted Critical
Publication of CN101044687B publication Critical patent/CN101044687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明涉及在给定量化表和行程指数微分编码分布下通过确定由确定成本的序列对(run,index derivative)所表示的确定成本的n个系数指数序列而压缩n个系数序列,其中每个序列对(run,index derivative)限定了相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数(digital number),(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个(run,index derivative)对限定了表示特定值的多个连续指数的行程值(run value)、和在特定值的连续指数的数量后的指数值所获得的基于指数的值。这其中涉及到了:(a)使用给定的量化表和行程指数微分编码来为多个可能的序列对(run,index derivative)制订成本函数;(b)将该成本函数提供给在多个可能的序列对(run,index derivative)中的每个序列以确定关联成本;和(c)基于可能的序列对(run,index derivative)的关联成本函数从多个可能的序列对(run,index derivative)中选择确定成本的序列对(run,index derivative);并基于行程指数微分编码分布使用熵编码对相应选定的序列对(run,index derivative)编码。

Description

用于数据压缩优化的方法、系统和计算机程序产品
相关申请:本申请要求由En-hui Yang和Longji Wang于2004年7月16日提交的标题为“JOINT OPTIMIZATION OF RUN-LENGTH CODING,CONTEXT-BASED ARTIHMETIC CODING AND QUANTIZATION STEPSIZES(行程编码、基于上下文的算术编码和量化步长的联合优化)”的美国临时申请No.60/588,380的权益,以及他们于2004年7月14日提交的标题为“JOINTOPTIMIZATION OF RUN-LENGTH CODING,HUFFMAN CODING ANDQUANTIZATION TABLE WITH COMPLETE BASELINE JPEG DECODERCOMPATIBILITY(具有完整的基线JPEG解码器兼容性的行程编码、霍夫曼编码和量化表的联合优化)”美国临时申请No.60/587,555的权益,现将其全部内容引用在此作为参考。
发明领域
[0001]本发明总地涉及数据压缩,更具体地涉及基于行程指数(run-index)微分编码分布的量化步长、量化系数和熵编码的联合优化。
背景技术
[0002]如W.Pennebaker和J.Mitchell在“JPEG still image data compressionstandard(JPEG静态图像数据压缩标准)”中所描述的(Kluwer Academic出版商,1993年)(以下称之为“参考文献[1]”),和G..Wallace在“The JPEG still-imagecompression standard(JPEG静态图像压缩标准)”(Commun.ACM,1991年4月,第34卷第30-44页)(以下称之为“参考文献[2]”)中所描述的,JPEG是一种常见的基于DCT的静态图像压缩标准。JPEG格式在诸如万维网和数字相机等中有着广泛的使用。
[0003]JPEG编码系统的普及已经激发了对JPEG优化方案的研究——例如,参见J.Huang和T.Meng于1991年4月在Proc.IEEE Int.Conf.Acoustics,Speech and Signal Processing,第2621-2624页中的“Optimal quantizer step sizesfor transform coders(用于变换编码器的优化量化器步长)”(以下称之为“参考文献[3]”);S.Wu和A.Gersho于1993年在Proc.IEEE Int.Conf.Acoustics,Speechand Signal Processing,第5卷,第389-392页中的“Rate-constrainedpicture-adaptive quantization for JPEG baseline coders(用于JPEG基线编码器的强制速率图片适应性量化)”(以下称之为“参考文献[4]”);V.Ratnakar和M.Livny于1995年在Proc.Data Compression Conf..,第332-341中的“RD-OPT:Anefficient algorithm for optimizing DCT quantization tables(RD-OPT:用于优化DCT量化表的有效法则)”(以下称之为“参考文献[5]”);V.Ranakar和M.Livny于2000年2月在IEEE Trans Image Processing,第9卷,第267-370中的“Anefficient algorithm for optimizing DCT quantization tables(用于优化DCT量化表的有效法则)”(以下称之为“参考文献[6]”);K.Ramchandran和M.Vetterli于1994年9月在IEEE Trans Image Processing,第3卷,第700-704页的“Rate-distotionoptimal fast thresholding with complete JPEG/MPEG decoder compatibility(具有完全JPEG/MPEG解码器兼容性的速率失真优化快速阀值)”(以下称之为“参考文献[7]”);M.Crouse和K.Ramchandran于1995年在Proc.IEEE Int.Conf.Acoustics,Speech and Signal Processing,第23311-2334页中的“Jointthresholding and quantizer selection for decoder-compatible baseline JPEG(用于兼容解码器的基线JPEG的联合阀值和量化选择)”(以下称之为“参考文献[8]”);和M.Crouse和K.Ramchandran于1997年2月在IEEE Trans Image Processing,第6卷,第285-297中的“Joint thresholding and quantizer selection for transformimage coding:Entropy constrained analysis and applications to baseline JPEG(用于变换图像编码的阀值和量化选择:对基线JPEG的熵强制分析和应用)”(以下称之为“参考文献[9]”)。所有这些参考文献所描述的规则都忠于JPEG语法。由于这些规则仅优化了JPEG编码器而没有改变标准的JPEG解码器,因此它们不仅能进一步降低JPEG压缩图像的尺寸,而且还具有易于展开的优点。这个独有的特性使得它们在接收终端并不善于支持新的解码器的应用中十分有吸引力,诸如在无线通信中。
量化表优化
[0004]JPEG量化步长很大程度上决定了在JPEG压缩图像中速率失真折中。但,由于量化表是独立于图像的,因此使用默认的量化表并不是最佳的。因此,所有量化表优化方案的目的都是为每个图像分量得到有效、图像自适应的量化表。量化表优化的问题能从以下轻易地阐明。(为了不失一般性,我们在以下讨论中仅考虑一个图像分量。)给定具有目标位率Rbudget的输入图像,想找到一组量化步长{Qk:k=0,...,63}以最小化整个失真
D = Σ n = 1 Num _ Blk Σ k = 0 63 D n , k ( Q k ) - - - ( 1 )
对位率约束
R = Σ n = 1 Num _ Blk R n ( Q 0 , . . . , Q 63 ) ≤ R budget - - - ( 2 )
其中Num_Blk是块数量,Dn,k(Qk)是在其由步长Qk量化时在第nth块中第kth个DCT系数的失真,而Rn(Q0,...,Q63)是在用量化表{Q0,…,Q63}对第nth块编码所产生的位数。
[0005]由于JPEG使用零行程(run-length)编码,其将从不同频率频带来的零系数指数(coefficient index)合并成一个符号,因此位率并不是简单地通过对每个单独的系数指数编码所得的位之和。因此,很难用传统的位分配技术来对(1)和(2)得到最优解。Huang和Meng(参见参考文献[3])提出了一种梯度下降技术(gradient descent technique),其基于DCT系数的概率分布为拉普拉斯算子的假定而对量化表设计问题解决局部最优解。其后又提出了急切的最速下降方案,其并未假定DCT系数的概率分布(参见参考文献[4])。开始于大步长的初始量化表,响应低位率和高失真,这些算法每次均减少在量化表的一个入口处的补偿步长直至达到目标位率。在每次迭代中,总是以对用于量化表的一个入口的所有可能降低的步长值最大化在失真中降低的比率以增加位率。算法上,这些算法都在找寻解决如下最大化问题的k和q的值
max k max q - ΔD | Q k → q ΔR | Q k → q - - - ( 3 )
其中ΔD|Qk→q和ΔR|Qk→q分别为在失真中的改变以及当量化表的第kth个入口中Qk由q取代时整个的位率。这些增量由以下计算
ΔD | Q k → q = Σ n = 1 Num _ blk [ D n , k ( q ) - D n , k ( Q k ) ] - - - ( 4 )
ΔR | Q k → q = Σ n = 1 Num _ blk [ R n ( Q 0 , . . . , q , . . . Q 63 ) - R n ( Q 0 , . . . q k , . . . Q 63 ) ] - - - ( 5 )
重复迭代直到|Rbudget-R(Q0,...,Q63)|≤ε,其中ε为由用户指定的收敛性判别标准(convergence criterion)。
[0006]上述的两个算法在运算上都很昂贵。Ratnakar和Livny(参见参考文献[5]和[6])提出了一种比较有效的算法来基于DCT系数分布统计构建量化表而无需重复整个压缩-解压缩的循环。他们提供了一种动态编程途径来在比率和失真的大范围中优化量化表并得到了与在参考文献[4]中方案类似的性能。
优化阀值
[0007]在JPEG中,相同的量化表必须提供给每个图像块。即便当使用图像自适应量化表时也是如此。这样,JPEG量化就缺乏局部针对性,这意味着在特定块的特性和平均块统计之间的差异仍存在潜在的增益。这就是最优快速阀值算法的动因(参见参考文献[7]),它降低了在R-D方向上显著的系数指数。在计算上,对于固定的量化器,在原始图像X和施加位预算限制的量化图像
Figure A20058003076100402
给定阀值图像
Figure A20058003076100403
使失真最小化,即,
min [ D ( X , X ~ ) | X ^ ] subjecttoR ( X ~ ) ≤ R budget - - - ( 6 )
[0008]等效的未受限问题是使如下最小化
J ( λ ) = D ( X , X ~ ) + λR ( X ~ ) - - - ( 7 )
[0009]采用动态编程算法来解决上述递归优化问题(7)。它为每个0≤k≤63计算Jk *,然后,找到使该Jk *最小化的k*,即,找到最佳非零系数以独立地结束在每个块中的扫描。读者可以详细参阅参考文献[7]。由于只有不显著的系数指数改变了,因此最优快速阀值算法(参见参考文献[7])并未解决具有JPEG解码器兼容性的系数指数的全部优化。
联合阀值和量化器选择
[0010]由于阀值算法采用块水平统计的同时,适应性量化器选择方案利用了广泛图像的统计,因此它们的运算近似于“正交”。这意味着将它们绑定在一起是很有益处的。霍夫曼表另一种留给JPEG编码器的自由参数。因此,Crous和Ramchandran(参见参考文献[8]和[9]),提出了一种对这三个参数的联合优化的方案,即,
min T , Q , H D ( T , Q ) subjecttoR ( T , Q , H ) ≤ R budget - - - ( 8 )
其中Q为量化表,H为合成的霍夫曼表,T为一组二进制阀值标志,其为是否对系数指数取阀值的信号。(8)的受限最小化问题被过渡成拉格朗日乘子的非受限问题,
min T , Q , H D ( T , Q ) [ J ( λ ) = D ( T , Q ) + λR ( T , Q , H ) ]
[0011]接着,他们提出了一种算法,其反复选择每个Q、T、H以在假定其他参数都固定的情况下最小化拉格朗日成本(9)。
JPEG的局限
[0012]上述讨论都集中在JPEG语法限定内的优化。但,若给定了JPEG语法,R-D性能,则JPEG优化方法的改进会受限。部分限制来源于由JPEG编码器所使用的糟糕的上下文模型,其不能取得存在于空间和频率域中的像素校正的全部益处。因此,在文献中提出了基于上下文的算术编码来替代在JPEG中所使用的霍夫曼编码以得到更好的R-D性能。
发明内容
[0013]根据本发明的第一方面,提供了一种在给定量化表和行程指数微分编码分布下通过确定由确定成本的序列对(run,index derivative)所表示的确定成本的n个系数指数序列而压缩n个系数序列的方法,其中每个序列对(run,indexderivative)限定了相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数(digital number),(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个序列对(run,index derivative)限定了表示特定值的多个连续指数的行程值(run value)、和在特定值的连续指数的数量后面由指数值所获得的基于指数的值。该方法包括步骤:(a)使用给定的量化表和行程指数微分编码来为多个可能的序列对(run,index derivative)制订成本函数;(b)将该成本函数提供给在多个可能的序列对(run,index derivative)中的每个序列以确定关联成本;和(c)基于多个可能的序列对(run,index derivative)的每一个的关联成本从多个可能的序列对(run,index derivative)中选择确定成本的序列对(run,index derivative);并基于行程指数微分编码分布使用熵编码对相应选定的序列对(run,index derivative)编码。
[0014]根据本发明的第二方面,提供了一种通过确定输出量化表、由确定成本的序列对(run,index derivative)所表示的确定成本的n个系数指数序列、和行程指数微分编码分布来压缩n个系数指数的方法,其中每个(run、indexderivative)序列对限定了相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个序列对(run,index derivative)限定了表示特定值的多个连续指数的行程值(run value)、和从特定值的连续指数的数量后面的指数值所获得的基于指数的值,其中,n个系数指数的序列和量化表一起确定了软决策量化的系数的序列。该方法包括步骤:(a)选择第0th个量化表;(b)选择第0th个行程指数微分编码分布;(c)将计数器t设定为0;(d)使用第tth个量化表和行程指数微分代码分布来制定用于第tth多个可能的序列对(run,index derivative)的第tth个成本函数;和(e)将该第tth个成本函数提供给在第tth多个可能的序列对(run,index derivative)中的每个可能的序列以确定第tth个关联成本;(f)基于该第tth个关联成本从第tth多个可能的序列对(run,index derivative)中选择第tth个确定成本的序列对(run,index derivative);(g)如果该第tth个确定成本的序列对(run,index derivative)与第tth个量化表和行程指数微分分布一起满足选择标准,则选择该第tth个确定成本的序列对(run,index derivative)作为n个系数指数确定成本的序列而该第tth个量化表作为输出量化表,否则就从该第tth个确定成本的序列对(run,index derivative)通过将t加一而确定第(t+1)th个量化表和行程指数微分编码分布,同时返回到步骤(d);和(h)基于第tth个行程指数微分编码分布对相应选定的确定成本的序列对(run,index derivative)编码。
[0015]根据本发明的第三方面,提供了一种通过联合确定输出量化表、输出行程指数微分分布而为在n个系数序列的序列中的n个系数序列的每个、由最终确定成本的序列对(run,index derivative)表示的最终确定成本的系数指数序列而压缩n个系数序列的序列的方法,其中每个序列对(run,index derivative)限定相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个序列对(run,index derivative)限定了表示特定值的多个连续指数的行程值(run value)、从特定值的连续指数的数量后的指数值所获得的基于指数的值,其中系数指数序列与量化表一起确定n个软决策(soft-decision)量化的系数序列。该方法包括步骤:(a)选择第0th个量化表;(b)选择第0th个行程指数微分编码分布;(c)设定计数器t为0;(d)为在n个系数序列的序列中的每个n个系数序列,(i)使用第tth个量化表和行程指数微分编码分布来为关联的第tth多个可能的序列对(run,index derivative)制定第tth个成本函数;(ii)将该成本函数提供给在关联的第tth多个可能的序列对(run,index derivative)中的每个可能的序列以确定关联成本;(iii)基于该关联成本从关联的第tth多个可能的序列对(run,index derivative)中选择关联的第tth个确定成本的序列对(run,index derivative);(e)在步骤(d)后,将该总成本函数提供给在多个可能的序列对(run,index derivative)中的每个可能的序列,以确定第tth个总的成本;(f)如果该第tth个总的成本满足选择标准,则选择第tth个量化表和行程指数微分编码分布作为输出量化表和输出行程指数微分编码分布,并且为在n个系数序列的序列中的每个n个系数序列,将由最终的确定成本的序列对(run,index derivative)所表示的最终确定成本的系数指数序列作为关联的第tth个序列对(run,index derivative);否则就从该第tth个确定成本的序列对(run,index derivative)通过将t加一而确定第(t+1)th个量化表和行程指数微分编码分布,同时返回到步骤(d);和(g)使用霍夫曼编码对相应选定的序列对(run,index derivative)编码。
[0016]根据本发明的第四方面,提供了一种在给定量化表和行程指数微分编码分布下通过确定由确定成本的序列对(run,index derivative)所表示的确定成本的n个系数序列而压缩n个系数序列的数据处理系统,其中每个序列对(run,index derivative)限定相应的系数指数序列,以便(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个序列对(run,index derivative)都限定了表示特定值的多个连续指数的行程值(run value),和从特定值的连续指数的数量后的指数值所获得的基于指数的值。该数据处理系统包括步骤:(a)初始化装置,其使用给定的量化表和行程指数微分编码分布来为多个可能的序列对(run,index derivative)制定成本函数;和(b)计算装置,其用来将该成本函数提供给在多个可能的序列对(run,indexderivative)中的每个可能序列以确定关联成本;基于多个可能的序列对(run,indexderivative)中的每个的关联成本而从多个可能的序列对(run,index derivative)中选择确定成本的序列对(run,index derivative);并基于行程指数微分编码分布使用熵编码对相应选定的确定成本的序列对(run,index derivative)编码。
[0017]根据本发明的第五方面,提供了一种通过确定输出量化表、由确定成本的序列对(run,index derivative)表示的确定成本的n个系数指数序列和行程指数微分编码分布而压缩n个系数序列的数据处理系统,每个序列对(run,indexderivative)限定相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个序列对(run,index derivative)限定了表示特定值的多个连续指数的行程值(run value)、从特定值的连续指数的数量后的指数值所获得的基于指数的值,其中系数指数序列与量化表一起确定n个软决策量化系数序列。该数据处理系统包括:(a)初始化装置,其选择第0th个量化表和第0th个行程指数微分编码分布,并将计数器t设定为0;(b)计算装置,其(i)使用第tth个量化表和行程指数微分编码分布来为第tth多个可能的序列对(run,index derivative)制订第tth个成本函数;(ii)将该第tth个成本函数提供给在第tth多个可能的序列对(run,index derivative)中每个可能的序列以确定第tth个关联成本;(iii)基于该第tth个关联成本从第tth多个可能的序列对(run,index derivative)中选定第tth个确定成本的序列对(run,index derivative);(iv)如果该第tth个确定成本的序列对(run,indexderivative)与第tth个量化表和行程指数微分编码分布满足选择标准,则选定该第tth个确定成本的序列对(run,index derivative)作为n个系数指数确定成本的函数,而将第tth个量化表作为输出量化表,否则就从该第tth个确定成本的序列对(run,index derivative)通过将t加一而确定第(t+1)th个量化表和行程指数微分编码分布,同时返回到步骤(i);和(v)基于第tth个行程指数微分编码分布使用熵编码对相应选定的确定成本的序列对(run,index derivative)编码。
[0018]根据本发明的第六方面,提供了一种通过联合确定输出量化表、输出行程指数微分分布而为在n个系数序列的序列中的n个系数序列的每个、由最终确定成本的序列对(run,index derivative)表示的最终确定成本的系数指数序列而压缩n个系数序列的序列的数据处理系统,其中每个序列对(run,indexderivative)限定相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个(run,index derivative)对都限定了表示特定值的多个连续指数的行程值(runvalue)、从特定值的连续指数的数量后的指数值所获得的基于指数的值,其中系数指数序列与量化表一起确定n个软决策量化系数序列。该数据处理系统:(a)初始化装置,其用于选择第0th个量化表和第0th个行程尺寸分布;(b)计算装置,其为在n个系数序列的序列中的n个系数的每个序列,(i)使用第tth个量化表和行程指数微分编码分布来为关联的第tth多个可能的序列对(run,indexderivative)制定第tth个成本函数;(ii)将该成本函数提供给在关联的第tth多个可能的序列对(run,index derivative)中的每个可能的序列以确定关联成本;(iii)基于该关联成本从关联的第tth多个可能的序列对(run,index derivative)中选择关联的第tth个确定成本的序列对(run,index derivative);(iv)在步骤(i)至(iii)后,为在n个系数序列的序列中的n个系数序列的每个而将该总的成本函数提供给第tth个关联的确定成本的序列对(run,index derivative),以确定第tth个总的成本;(v)如果该第tth个总的成本满足选择标准,则选择第tth个量化表和行程指数微分编码分布作为输出量化表和输出行程指数微分编码分布,并为在n个系数序列的序列中的n个系数序列的每个而将由最终确定成本的序列对(run,indexderivative)表示的最终确定成本的系数指数序列作为关联的第tth个序列对(run,index derivative);否则,通过将t加一而从第tth个确定成本的序列对(run,indexderivative)的选定序列中确定第(t+1)th个量化表和行程指数微分编码分布,并返回到步骤(i);和(v)使用霍夫曼编码对相应选定的序列对(run,index derivative)编码。
[0019]根据本发明的第七方面,提供了一种计算机程序产品,其使用在计算机系统上来通过在给定量化表和行程指数微分编码分布下通过确定由确定成本的序列对(run,index derivative)表示确定成本的n个系数指数序列来压缩n个系数序列,其中每个序列对(run,index derivative)限定了相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数(digital number),(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个序列对(run,indexderivative)限定了表示特定值的多个连续指数的行程值(run value)、和从特定值的连续指数的数量后的指数值所获得的基于指数的值。该计算机程序产品包括记录介质,和记录在记录介质上用来指示计算机系统执行以下步骤的装置:(a)使用给定的量化表和行程指数微分编码来为多个可能的序列对(run,indexderivative)制订成本函数;(b)将该成本函数提供给在多个可能的序列对(run,index derivative)中的每个序列以确定关联成本;和(c)基于可能的序列对(run,index derivative)的关联成本函数从多个可能的序列对(run,index derivative)中选择确定成本的序列对(run,index derivative);并基于行程指数微分编码分布使用熵编码对相应选定的序列对(run,index derivative)编码。
[0020]根据本发明的第八方面,提供了一种计算机程序产品,其使用在计算机上来通过确定输出量化表、由确定成本的序列对(run,index derivative)所表示的确定成本的n个系数指数序列、和行程指数微分编码分布来压缩n个系数指数的方法,其中每个(run、size、ID)三重序列都限定了相应的系数指数序列以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个(run,index derivative)对都限定了表示特定值的多个连续指数的行程值(run value)、和从特定值的连续指数的数量后的指数值所获得的基于指数的值。该计算机程序产品包括记录介质,和记录在记录介质上用来指示计算机系统执行以下步骤的装置:(a)选择第0th个量化表;(b)选择第0th个行程指数微分编码分布;(c)将计数器t设定为0;(d)使用第tth个量化表和行程指数微分代码分布来制定用于第tth多个可能的序列对(run,index derivative)的第tth个成本函数;和(e)将该第t个成本函数提供给在第tth多个可能的序列对(run,index derivative)中的每个可能的序列以确定第tth个关联成本;(f)基于该第tth个关联成本从第tth多个可能的序列对(run,index derivative)中选择第tth个确定成本的序列对(run,index derivative);(g)如果该第tth个确定成本的序列对(run,index derivative)与第tth个量化表和行程指数微分分布一起满足选择标准,则选择该第tth个确定成本的序列对(run,indexderivative)作为n个系数指数确定成本的序列而该第tth个量化表作为输出量化表,否则就从该第tth个确定成本的序列对(run,index derivative)通过将t加一而确定第(t+1)th个量化表和行程指数微分编码分布,同时返回到步骤(d);和(h)基于第tth个行程指数微分编码分布对相应选定的确定成本的序列对(run,index derivative)编码。
[0021]根据本发明的第九方面,提供了一种计算机程序产品,其使用在计算机上来通过联合确定输出量化表、输出行程指数微分分布而为在n个系数序列的序列中的n个系数序列的每个、由最终确定成本的序列对(run,indexderivative)表示的最终确定成本的系数指数序列而压缩n个系数序列的序列的方法,其中每个序列对(run,index derivative)限定相应的系数指数序列以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个序列对(run,index derivative)限定了表示特定值的多个连续指数的行程值(run value)、从特定值的连续指数的数量后的指数值所获得的基于指数的值,其中系数指数序列与量化表一起确定n个软决策(soft-decision)量化系数序列。该计算机程序产品包括记录介质,和记录在记录介质上用来指示计算机系统执行以下步骤的装置:(a)选择第0th个量化表;(b)选择第0th个行程指数微分编码分布;(c)设定计数器t为0;(d)为在n个系数序列的序列中的每个n个系数序列,(i)使用第tth个量化表和行程指数微分编码分布来为关联的第tth多个可能的序列对(run,index derivative)制定第tth个成本函数;(ii)将该成本函数提供给在关联的第tth多个可能的序列对(run,index derivative)中的每个可能的序列以确定关联成本;(iii)基于该关联成本从关联的第tth多个可能的序列对(run,index derivative)中选择关联的第tth个确定成本的序列对(run,index derivative);(e)在步骤(d)后,将该总成本函数提供给在多个可能的序列对(run,index derivative)中的每个可能的序列,以确定第tth个总的成本;(f)如果该第tth个总的成本满足选择标准,则选择第tth个量化表和行程指数微分编码分布作为输出量化表和输出行程指数微分编码分布,并且为在n个系数序列的序列中的每个n个系数序列,将由最终的确定成本的序列对(run,index derivative)所表示的最终确定成本的系数指数序列作为关联的第tth个序列对(run,index derivative);否则就从该第tth个确定成本的序列对(run,index derivative)通过将t加一而确定第(t+1)th个量化表和行程指数微分编码分布,同时返回到步骤(d);和(g)使用霍夫曼编码对相应选定的确定成本的序列对(run,index derivative)编码。
附图说明
[0022]现将参考以下附图对优选实施例进行详细描述,其中:
[0023]图1显示了JPEG编码器的方框图;
[0024]图2显示了根据本发明的一个方面对量化、行程编码和霍夫曼编码的联合优化的方框图;
[0025]图3显示了根据本发明的一个方面的用来表示不同的可能系数指数(或,等同地,行程尺寸对)的定向图;
[0026]图4显示了从图3的图而来的连接和节点的序列;
[0027]图5显示了根据本发明的进一步方面的用于表示DC指数可以认为是n个系数序列的明确值的框架结构;
[0028]图6a、6b和6c表示了根据本发明的一个方面的用于联合优化行程编码、霍夫曼编码和优化表的处理。
[0029]图7显示了根据本发明的一个方面的用于联合优化行程编码、霍夫曼编码和优化表的处理的流程图。
[0030]图8显示了图7中处理的迭代处理的初始化的流程图;
[0031]图9显示了用于确定在图7中的特定块的最优路径的处理的流程图;
[0032]图10显示了由在图9中的最优路径确定处理所调用的块初始化处理的流程图;
[0033]图11图示了由图9中的处理所调用的增量成本计算处理的流程图;
[0034]图12显示了用于更新由图7的处理所调用的量化表的处理的流程图;
[0035]图13显示了根据本发明的一个方面的数据处理系统的流程图;
[0036]图14显示了用于不同量化表的比率-失真曲线的曲线图;
[0037]图15的曲线图显示了根据本发明的一个方面的反映迭代的联合优化算法的不同迭代数的比率-失真曲线;
[0038]图16将根据本发明的不同方面所提供的优化方法的不同配置的比率-失真(PSNR)曲线划分成512×512的Lena图像;
[0039]图17将根据本发明的不同方面所提供的优化方法的不同配置的比率-失真(PSNR)曲线划分成512×512的Barbara图像;
[0040]图18将根据本发明的一个方面的用于512×512的Lena图像从基于格状的DC优化所得结果划分为DC熵vs.DC失真;
[0041]图19显示了根据本发明的一个方面的并不限于JPEG语法的通用编码器的结构图;
[0042]图20显示了将图19的通用编码器应用到未压缩的图像中的结构图;
[0043]图21显示了根据本发明的进一步方面表示不同的行程水平(run-level)对序列的直线;
[0044]图22a至22d罗列了伪码,其显示了根据本发明进一步方面的基于曲线图的优化方法;
[0045]图23显示了根据本发明进一步方面的用于联合优化行程编码、基于上下文的算术编码和量化步长的处理的流程图;
[0046]图24显示了图23的处理的迭代处理的初始化的流程图;
[0047]图25显示了在图23的处理中用来为特定块确定最佳路径的处理的流程图;
[0048]图26显示了在图25的流程图中调用的对基本/规则状态计算成本的处理的流程图;
[0049]图27显示了在图25的流程图中调用的对延伸状态计算成本的处理;
[0050]图28显示了由图23的流程图的处理所调用的更新量化表的处理的流程图;
[0052]图30将根据本发明进一步的不同方面所提供的优化方法的不同配置的比率-失真(PSNR)曲线划分成512×512的Barbara图像;
[0053]图31给定缩放比例的默认量化表而将根据本发明的不同方面所提供的优化方法的不同配置的比率-失真(PSNR)曲线划分成512×512的Barbara图像;
[0054]图32给定缩放比例的默认量化表而将根据本发明的不同方面所提供的优化方法的不同配置的比率-失真(PSNR)曲线划分成512×512的Lena图像。
具体实施方式
部分I:具有完全基线JPEG兼容性的行程编码、霍夫曼编码额量化表的联合优化
[0055]图1中显示了执行三个基本步骤的JPEG编码器20。编码器20首先将输入的图像22分割成8×8块,接着按照光栅扫描的顺序一个接一个处理这8×8个图像块(基线JPEG)。每个块首先通过8×8DCT24而从像素域过渡成DCT域。然后,合成的DCT系数使用8×8的量化表26来统一地量化。从量化28来的系数指数为在步骤30中使用零行程编码和霍夫曼编码进行编码的熵。如果必须使用步长来量化所有的图像块,则JPEG语法将量化步长和霍夫曼码字留给编码器选择。这种构架提供了巨大的机会在编码器20应用比率-失真(R-D)因素,其中量化表26和霍夫曼表32是编码器能优化的两个自由参数。
[0056]编码器还能优化的第三个但有些隐藏的自由参数是图象数据本身。取决于图象数据在整个JPEG编码处理期间的阶段,图象数据表现为不同的形式,如在图2中所示。在硬决策量化前,它们表现为DCT系数34的形式;而在硬决策量化后,它们表现为DCT指数36的形式,即量化的DCT系数由所使用的量化步长归一化;在锯齿形序列化和行程编码后,在指定各个类别(run、size)代码和同类(in category)指数38内的DCT指数的精确幅度的整数后,它们表现为行程指数对(run-size)的形式。同类(为了简明起见,我们将这样的整数称之为同类同类指数)。要注意的是,DCT指数与量化步长一起确定量化的DCT系数。虽然JPEG语法允许量化表在编码器定制,但通常使用按标准给定的示例性的量化表的缩放版本(参见参考文献[1])(称之为默认表)。由于默认表是独立于图像的并且缩放比例并不是图像自适应的,因此默认表的缩放比例不是最理想的。即便使用图像自适应的量化表,JPEG也必须为每个图像块提供相同的表,以表示从优化系数指数,即DCT指数中仍然保留了潜在增益。要注意的是,硬决策量化加系数指数优化等于软决策量化。由于系数指数能等同地表示为同类行程尺寸对,其后面是经过行程编码的同类指数,因此我们可以简单地将系数指数优化称之为与步长和霍夫曼优化并行的行程编码优化。如以下所描述的,我们不仅提出了非常灵巧、基于曲线图的行程编码优化方案,还提供了一种用于联合优化如分别在图2的步骤40、42和44中的行程编码、霍夫曼编码和量化步长的迭代优化方案。
                      形式问题说明
[0057]现在,我们来制定我们的联合优化问题,其中对在基线JEG中的所有三个自由参数进行最小化处理。在这部分中我们仅考虑AC系数的优化。DC系数的优化将在以后讨论。
[0058]在JPEG编码中给定输入图像I0和固定量化表Q,系数指数通过行程编码完全确定了后继是用于每个8×8块的同类指数的行程尺寸对序列,反之亦然。我们的的问题是对后继是同同类的指数ID的所有可能的行程尺寸对(R,S)序列、所有可能的霍夫曼编码表H、和所有可能的量化表Q进行约束的最优化(constrained optimization)
min ( R , S , ID ) , H , Q d [ I 0 , ( R , S , ID ) Q ] subjecttor [ ( R , S ) , H ] ≤ r budget - - - ( 10 )
或等价于
min ( R , S , ID ) , H , Q r [ ( R , S , ) , H ] subjecttod [ I 0 , ( R , S , ID ) Q ] ≤ d budget - - - ( 11 )
其中d[I0,(R,S,ID)Q]表示在原始图像I0和由(R,S,ID)和Q对所有AC系数所确定的重构图像之间的失真,r[(R,S),H]表示用于所有从选定的序列(R,S,ID)和霍夫曼表H所得的AC系数的压缩率。在公式(10)和(11)中,rbudget和dbudget分别是比率约束(rate constraint)和失真约束(distortion constraint)。根据拉格朗日乘子,我们可以将比率约束问题或失真约束问题转化成以下的非约束问题。
min ( R , S , ID ) , H , Q { J ( λ ) = d [ I 0 , ( R , S , ID , ) Q ] + λ · r [ ( R , S ) , H ] } - - - ( 12 )
其中拉格朗日乘子λ是固定参数,其表示用于失真比率的折中(tradeoff),而J(λ)为与拉格朗日成本。这种类型的优化落入到所谓的固定斜率编码(fixedslope coding)的类型中,该固定斜率编码由E.-h.Yang,Z.Zhang,和T.Berger于1997年9月在IEEE Trans.Inform.Theory,第43卷,第1465-1476页的“Fixedslope universal lossy data compression(固定斜率的通用有损数据压缩)”(以下称之为“参考文献[10]”)以及E.-h.Yang和Z.Zhang于1999年3月在IEEE Trans.Inform.Theory,第45卷,第586-608页的“Variable-rate trellis source coding(可变比率的栅格信源编码)”(以下称之为“参考文献[11]”)中所倡导。
[0059]介绍性地,将我们的联合优化问题与联合阀值和量化器选择进行比较(参见参考文献[8]和[9])。另一方面,这两者都是旨在联合优化三个参数的迭代处理。另一方面,我们的方案在两个方面显著不同(参见参考文献[8]和[9])。首先,我们考虑了系数指数或(R,S,ID)序列的全部优化而不是考虑只忽略无关紧要的系数指数表示的部分优化(参见参考文献[8]和[9])。正如我们在以下部分中所要看见的,这使得全部的优化都是非常灵巧、可有效计算的解决方案。这与所提出的相对耗时和繁琐解决方案的部分优化(参见参考文献[7],[8]和[9]))截然不同。其次,我们不需要提供任何耗时的量化器选择方案来在每次迭代中找出R-D的优化步长。相反,我们使用默认的量化表作为起始点,随后为步长的局部优化而在每次迭代中有效地更新步长。
                     问题的解决方案
[0060]比率失真优化问题(12)就是失真、比率、霍夫曼表、量化表和序列(R,S,ID)的联合优化。为了使优化问题易于处理,我们提出了一种迭代算法,其假定其他两个参数固定,反复选择序列(R,S,ID)、霍夫曼表、和量化表来使(12)的拉格朗日成本最小。由于行程尺寸概率分布P完全决定了霍夫曼表,因此我们使用P来替代在优化处理中的霍夫曼表H。这种迭代算法可以描述如下:
1)从给定图像I0和量化表Q0而初始化行程尺寸分布P0。由于量化是独立于图像的,因此这种将预定的量化表Q0应用到I0就称之为硬量化(hard-quantization)。(例如,初始的行程尺寸分布P0可以是通过使用由初始Q0所给定的硬决策量化器所得的(run、size)对序列的经验分布,并用于量化I0的DCT系数。)设定t=0,并指定公差ε作为收敛性判别标准(convergence criterion)。
2)为任意t≥0固定Pt和Qt。找到能满足以下最小式的优化序列(Rt,St,IDt)
min R , S , ID { J ( λ ) = d [ I 0 , ( R , S , ID ) Qt ] + λ · r [ ( R , S ) , P t ] }
其中,由Jt(λ)表示d[I0,(Rt,St,IDt)Qt]+λ·r[(Rt,St),Pt]
3)固定(Rt,St,IDt)。将Qt和Pt分别更新成Qt+1和Pt+1以便Qt+1和Pt+1一起满足以下最小式
min ( Q , P ) { J ( λ ) = d [ I 0 , ( R t , S t , ID t ) Q ] + λ · r [ ( R t , S t , ) , P ] }
其中以上的最小化对所有的量化表Q和所有的行程尺寸概率分布P进行。要注意的是Pt+1可以选定为(Rt,St)的经验行程尺寸分布。
4)对t=0,1,2,...重复进行步骤2)和3)直到Jt(λ)-Jt+1(λ)≤ε。接着输出(Rt+1,St+1,IDt+1),Qt+1和Pt+1
[0061]由于拉格朗日成本函数在每一步中并不增加,因此保证了收敛性。迭代算法的核心是步骤2)和步骤3),即,找到序列以用给定的Q和P最小化拉格朗日成本J(λ),并用图像的新指数更新量化步长。这两步将在以下分别叙述。
基于曲线图的行程编码优化
[0062]如上所述,即便根据图像自适应的量化表,JPEG量化缺乏局部自适应性,这显示出从系数指数本身的优化依然剩余潜在的增益。这种增益可在步骤2)中使用。优化阀值(参见参考文献[7])仅考虑了系数指数的部分优化,即忽略在R-D方向(R-Dsense)中不显著的系数。我们提出了一种高效的基于曲线图的优化搜索算法以优化在R-D方向中的全部系数指数。它不仅能忽略(drop)非显著的系数,而且还能将它们从一种分类变为另一种——如果在R-D方向中需要,甚至将零系数变为很小的非零系数也是可能的。换句话说,我们的基于曲线图的最佳路径搜索算法在所有的可能系数指数(或等效地,优化行程尺寸对)中发现优化系数指数以最小化拉格朗日成本。由于给定了Q和P,因此拉格朗日成本J(λ)是以块方式(block-wise)增加的,在步骤2)中的最小化能通过一块接一块的方式解决。也就是说,可以为每个8×8图像块独立地确定优化序列(R,S,ID)。这样,在以下中,我们仅限于讨论一个8×8的图像块。
[0063]让我们限定一个具有65个节点(或状态)的定向图。如在图3中所示,首先的64个状态,其用数字i=0,1,...,63表示,相应于锯齿形顺序中8×8图像块的64个系数指数。最后一个状态是称之为末状态(end state)的特定状态,其被用来处理EOB(end-of-block(块末端))。每个状态i(i≤63)可以具有从相应于在(R,S)对中的run、R的先前的16个状态j(j<i)引入的连接。(在JPEG语法中,R从0到15取值)。末状态可以具有从具有表示EOB编码(即,在第i个系数后的编码(0,0))的状态i(i≤62)来的每个连接的所有其他状态来的引入连接。状态63进到状态端点而没有EOB代码。对于给定的状态i(i≤63)以及它的前趋i-r-1(0≤r≤15),在它们之间存在10个并行的过渡,其相应于在(R,S)对中的尺寸组,S。为了简明起见,我们仅仅画出在图3中所示的曲线图中的一个过渡;整个曲线图都需要S的延伸。对于每个i,其中i>15,从相应于对(15,0)的状态i-16到状态i还存在一个过渡,即,ZRL(零行程)编码。我们从状态i-r-1到状态i将成本分配给每个过渡(r,s),其中该成本被限定为当第ith个DCT系数被量化为尺寸组s(即,该系数指数需要s位来表示它的幅度)并且在该第ith个DCT系数被量化为零之前所有的r个DCT系数立即出现时从从状态i-r-1到状态i进行的拉格朗日成本。具体地,这个增加的成本等于
Σ j = i - 1 i - 1 C j 2 + | C i - q i · ID i | 2 + λ · ( - log 2 P ( r , s ) + s ) - - - ( 13 )
其中,Cj,j=1,2,...,63,为第jth个DCT系数,IDi为相应于尺寸组s的同类指数,其中该尺寸组在由该尺寸组s所指定的分类中的所有同类指数之间使Ci产生最小化失真,而qi为第ith个量化步长。类似地,对于从状态i(i≤62)到末状态的过渡,它的成本限定为
Σ j = i + 1 63 C j 2 + λ · ( - log 2 P ( 0,0 ) ) - - - ( 14 )
从状态63到末状态的过渡未分配成本。
[0064]很容易看出,根据以上的描述,8×8块的行程尺寸对的每个序列相应于具有拉格朗日成本的从状态0到末状态的一条路径。例如,块的行程尺寸对序列(0,5),(4,3),(15,0),(9,1),(1,0)相应于图4所示的路径。另一方面,在定向图中并不是所有从状态0到末状态都代表8×8块的行程尺寸对的合法序列。我们将称这样的路径是非法路径。例如,从状态0到状态1的过渡(0,5)以及从状态1到状态17的过渡(15,0)和从状态17到末状态的过渡(0,0)构成的路径就是非法路径,并且其不表示8×8块的行程尺寸对的合法序列。当,不难看出,对于任意非法路径,总是存在合法路径,该合法路径的拉格朗日成本要比非法路径的要小。因此,在包括了合法路径和非法路径的所有可能路径中从状态0到末状态具有最小总的拉格朗日成本的最佳路径一定是合法路径。此外,最佳路径连同其相应的如在公式(13)中所确定的同类指数一起为任意给定的Q,P和8×8块获得了步骤2)中的最小化。同样地,我们可以将快速动态编程算法应用到整个定向图,以便为给定的8×8块找到优化序列。应当指出的是,基线JPEG语法并不会为8×8块产生由(15,0)结束的序列(R,S)。理论上,通过我们的动态编程所找到的优化(R,S)序列可以由(15,0)至状态63而结束,即使其不太可能在实际应用中发生(当(15,0)的熵率(entropy rate)比(0,0)的熵率要小时才可能发生)。但,由(15,0)至状态63结束的(R,S)序列为合法路径并且可以由JPEG语法来正确地编码/解码。
[0065]以下将更详细的一步步描述该算法。开始时,该算法基于给定行程尺寸分布P而为每个行程尺寸对(r,s)预先计算λ·(-log2P(r,s)+s)。为每个状态i,递归预计算由忽略在状态前的前述1至15个系数获得的失真以及在该状态结束该块的余数成本。该算法从状态0(DC系数)开始。忽略所有AC系数的成本存储在J0中。接着,进到状态1(第一AC系数)。存在十条路径从状态0开始到状态1。这十条路径相应于该第一AC指数可以落入的10个尺寸分类。与每条路径关联的成本使用公式(13)来计算,其中还预先计算在(13)中的第一项,而IDi如下来确定。为了简明起见,这里我们只考虑正指数;对称性地可以类似地处理负指数。假定IDi‘为响应输入Ci的具有步长qi的硬决策量化器的输出,其落入到由s‘所指定的分类中。如果s=s‘,则由于在这样的尺寸组中IDi导致了Ci的最小失真,因此选定IDi作为IDi‘。如果s<s‘,则由于这个最大的数导致了在这个组中的最小失真,因此选定IDi作为该尺寸组s中的最大数。类似地,如果s>s‘,则选定IDi作为该尺寸组s中的最小数。在计算出十个增加成本后,我们可以找到从状态0到状态1的最小成本并能够记录该最小成本以及导致到状态1的最小成本的行程尺寸对(r,s)。接着,将忽略(dropping)从2到63的所有系数的成本加入到状态1的最小成本。这个总和存储在Ji中,其即为当第一AC系数为要被发送的最后的非零系数时这个块的总的最小成本。进行到状态2,从状态0到状态2存在110条路径。在这些路径中,十条路径是直接从状态0到状态2,而100条路径是从状态0通过状态1到状态2(10乘10)。确定在状态2终止的最佳路径的最有效的方法是使用动态编程算法。由于与在状态0和状态1终止关联的最小成本是已知的,因此找到终止在状态2中的最小成本路径的工作就是简单地找到从状态0到状态2和从状态1到状态2的最小增加成本。分别将这两个最小增加成本加入状态0和状态1的最小成本;在这两个总和之中较小的一个就是状态2的最小成本。这个最小成本和导致该最小成本的行程尺寸对(r,s)都存储在状态2中。接着,将忽略所有从3到63的系数的成本加入到状态2的最小成本。该总和存储在Ji中,其即为当第二AC系数为要被发送的最后的非零系数时这个块的总的最小成本。要注意的是,如果到状态2的最小路径是直接从状态0来的,则在所存储的状态2的行程尺寸对(r,s)中所存储的r为1,这意味着该第一AC被量化或强制为0。如果该到状态2的最小路径是从状态1来的,则所存储的r为0,这意味着该第一AC指数是非零的。该递归继续到第三系数,直到在位置63的最后的系数也进行完了。此时,我们比较Jk(k=0,1,...,63)的值,并找到最小值,也就是说,对某个k*的Jk。通过在每个状态中所存储的对(r,s)的帮助下从k*返回,可以在所有可能的路径中找到从状态0到末状态具有最小成本的最佳路径,从而得到给定8×8块的优化序列(R,S,ID)。这个算法的伪码如图6a、6b和6c所示。
[0066]以上的处理是全动态编程方法。为了进一步降低计算的复杂性,我们可以对其进行细微地修改。具体地,在实际中我们并不一定要比较在从一个状态到另一个状态的10或11个并行过渡中增加的成本。反而,对我们来说,只要比较在与尺寸组s-1,s,和s+1关联的过渡中的增加成本就已经足够了,其中s为相应于给定硬决策量化器的输出的尺寸组。与其他组关联的过渡最有可能导致更大的增加成本。我们应当比较在以下所述的实验结果中这两个方案的复杂性和性能差异。
优化量化表更新
[0067]为了更新在步骤3)中的量化步长,我们需要解决以下的最小化问题
min Q d [ I 0 , ( R , S , ID ) Q ]
由于一旦给定了(R,S,ID),则压缩率就与Q无关,其中I0表示要被压缩的原始图像,Q=(q0,q1,...,q63)代表了量化表。让Ci,j表示以第jth块的锯齿形顺序中在第ith个位置处的I0的DCT系数。序列(R,S,ID)确定DCT指数,即,由量化步长归一化量化的DCT系数。让Ki,j表示以从(R,S,ID)获得的第jth块的锯齿形顺序在第ith个位置的DCT指数。接着,通过Ki,j qi给定以第jth块的锯齿形顺序中在第ith个位置处的量化的DCT系数。根据Ci,j和Ki,j qi,我们可以将d[I0,(R,S,ID)Q]重写为
d [ I 0 , ( R , S , ID ) Q ] = Σ l - 1 63 Σ j = 1 Num _ blk ( C i , j - K i , j q i ) 2 - - - ( 15 )
其中Num_Blk为在给定图像中的8×8块的数量。
[0068]在公式(15)中,其遵循d[I0,(R,S,ID)Q]的最小化可以通过独立地为每个i=1,2,...,63最小化公式(15)内部总和而获得。我们的目的是找到一组新的量化步长
Figure A20058003076100563
(1≤i≤63)来最小化
min q ^ i Σ j = 1 Num _ blk ( C i , j - K i , j q i ) , i = 1 , . . . , 63 - - - ( 16 )
[0069]公式(16)可以写作
min q ^ i Σ j = 1 Num _ blk C i , j 2 - 2 C i , j K i , j q ^ i + K i , j 2 q ^ i 2 , i = 1 , . . . , 63 - - - ( 17 )
[0070]这些二次函数的最小化可以对公式(17)的
Figure A20058003076100566
取导数而估算。当按下式时,获得了公式(16)的最小化
q = Σ j = 1 Num _ blk C i , j · K i , j Σ j = 1 Num _ blk K i , j 2 , i = 1 , . . . , 63
从而更新在步骤3)中的步长。
                    基于栅格的DC优化
[0071]在这部分,我们根据量化步长和霍夫曼表考虑量化的DC系数的联合优化。在JPEG语法中,量化的DC系数使用一维预测器差异性编码,其为先前的量化DC值。由于对量化DC编码的成本仅仅取决于先前量化的DC系数,因此在联合优化中使用栅格。
[0072]让我们限定栅格具有N个阶段,其相应于DC系数的数量,即,在重新开始的间隔中8×8块的数量(DC系数的预测初始于在每个重新开始的间隔和每个扫描开始的0处(参见参考文献[1])。每个阶段都具有M个状态,其相应于DC指数能取的不同值,同时在相邻阶段中的状态能完全连接,如同在图5中所示的。在每个阶段中的每个状态都与作为从初始状态到该状态的最小成本的成本关联。找到优化DC指数序列的处理从0阶段开始直至N-1阶段。在N-1阶段,具有最小成本的状态被挑选出来并且从0阶段到N-1阶段的具有最小成本的最佳路径被向后描绘出,从而产生优化DC指数序列。
[0073]以下将更具体地一步步描述该处理。让x(i,j)表示在阶段i中的第jth个状态(0≤i≤N-1,0≤j≤M-1),让v(i,j)表示相应于状态x(i,j)的Dc指数值。让cost_mini(i,j)表示从初始状态到x(i,j)的最小成本。让cost_inc(i-1,j’,i,j)表示从x(i-1,j’)到x(i,j)的增加成本,其限定如下
cost_inc(i-1,j’,i,j)=|DC1-q0·v(i,j)|2+λ·(-log2P(S)+S)    (19)
其中q0为用于DC系数的量化步长,DCi为第ith个系数,S为|v(i,j)-v(i-1,j’)|之差的组类,而P(S)为在12个尺寸类(0≤S≤11)中的概率。与初始状态关联的成本被设定为0。我们从阶段0开始。由于每个状态只有一个引入路径,因此在0阶段中对每个状态的成本为从初始状态增加的成本。接着,我们转到阶段1并从状态0开始。从x(0,j’)到x(1,0)存在M条引入路径(0≤j’≤M-1)。使用公式(19)来计算M个增加成本(即,cost_inc(i-1,j’,1,0))同时将这些M个增加成本分别加入到与在阶段0处的M个状态关联的M个最小成本。选定最小的并将其记录为状态x(1,0)的cost_mini(1,0)。为了回撤的目的还记录优化前趋。以相同的方式,我们需要为在阶段1中的其他M-1个状态找到cost_mini(1,j)(0≤j≤M-1)和优化前趋。该过程对阶段2继续进行直到阶段N-1。此时,我们为0≤j≤M-1找到了具有最小cost_mini(N-1,j)的j*。这个cost_mini(N-1,j*)为从初始状态到阶段N-1的最佳路径的最小成本。在每个状态中所存储的优化前趋的帮助下通过从j*回撤,可以找到从初始状态到阶段N-1的最优路径。从而,得到优化DC指数序列。
[0074]在获得优化DC指数序列后,如以上所讨论的,我们可以以相同的方式更新P(S)和量化步长q0。接着如同我们为根据量化步长和霍夫曼表联合优化量化AC系数所作的一样,重复该优化处理。
[0075]在基线JPEG中DC指数能上达2047个不同的值(-1023至1023),其在每阶段中需要2047个状态。大量的状态不仅增加了以上算法的复杂性,而且还需要大量的存储位置。实际上,如果DC系数被软量化到与硬决策量化器的输出相差很远的值,则最有可能导致更高的成本路径。因此,在实际的基于栅格的DC量化的执行中,我们可以只设置相应于在硬决策量化器的输出附近的DC指数的少量状态。例如,我们可以在相应于硬决策量化器输出的具有中间状态的每个阶段只使用33个状态,而以上和以下的16个状态分别相应于比硬决策量化器的输出要大或要小的16个邻近指数。这就在轻微降低性能的同时显著地降低了计算的复杂性和存储器的需求。
[0076]在图7的流程中显示了根据本发明一方面的用于联合优化行程编码、霍夫曼编码和量化表的处理。在步骤52,开始迭代处理,如在图8的流程图中详细概括的一样。在步骤54,j,表示N个总块的第jth块的指数,被设定为1。在步骤56,处理为块j确定最佳路径,在这种情况下,为第一块。这将在图9中的流程图中详细概括。在查询58,其确定了j是否为最后的块。这通过将j与N(总的块数量)进行比较而得。如果j比N要小,则在步骤60中增加j。
[0077]为每个块j找到最佳路径的处理继续,直到j=N。当j=N时,就确定了N个块的每个的最佳路径。在步骤62中计算J(λ)的第(t+1)th个值作为与N个块的每个关联的总的最小失真。然后,该值与在查询64中的J(λ)的第tth个值进行比较。若在J(λ)的第tth个值与J(λ)的第(t+1)th个值之间的差小于ε(选择标准,或更具体地,收敛性判别标准),则认为已完成了优化。若不是这种情况,则联合优化处理转到步骤66并且更新量化表Qt+1,如在图12的流程图中所详细概括的。
[0078]在步骤68,使用第(t+1)th个概率分布函数来计算与行程尺寸对(r,s)关联的熵率。在步骤70,增加指数t,随后执行额外的迭代。若确定了满足在查询64中的选择标准,则使用与行程尺寸对(r,s)关联的第(t+1)th个概率分布函数在步骤72中产生定制的霍夫曼表。步骤74使用这些定制的霍夫曼表来对行程尺寸对和指数编码。用于联合优化行程编码、霍夫曼编码和量化表的处理完成。
[0079]现参考图8的流程图,更详细地描述在图7的流程图的步骤52中的迭代处理的初始化。在步骤82,选择拉格朗日乘子,λ。它是表示用于失真的比率折衷的固定参数。在步骤84,选择收敛性判别标准ε。这就是通过连续迭代的拉格朗日成本,Jt(λ),的量被认为该迭带是成功和完成必须低于的的量。
[0080]在步骤86,产生初始量化表Q0。步骤88使用给定的图像I0和在先前步骤中产生的量化表Q0来确定行程尺寸分布P0(r,s)。在步骤90,该行程尺寸分布接着用于计算与行程尺寸对(r,s)关联的熵率。在步骤92,基于原始DCT系数和拉格朗日算子λ而计算初始的拉格朗日成本J0(λ)、量化表Q0和与行程尺寸对(r,s)关联的熵率。在步骤94,将N设定为等于图像块的数量,而在步骤96,当指数被强制到尺寸组0时,为给第ith个DCT系数发送的指数ID(i,0)被设定为0,其中,15<i<63。最后,在步骤98,迭代指数t设定等于0并且完成初始化迭代处理的处理。
[0081]现参考图9的流程图,在图7中的流程图更详细地描述了用于为步骤56的块j确定最佳路径的处理。在步骤112,初始化块j,如在图10的流程图中详细概括的。在步骤114,current minicost,为块j的状态i存储当前最低拉哥朗日成本的变量,被设定为大数。在步骤116,变量k被分配一个值,以表示从先前状态引入连接的数。若i>15,则k被分配的值是15。若i≤15,则k=i-1。在步骤118,与行程关联的变量r被设定为等于0,而在步骤120,与尺寸组关联的变量s被设定为0。
[0082]在查询122,处理确定关系式s=0和r<15是否为真。若不是这种情况,则在步骤124计算对状态i的成本,正如在图11的流程图中所详细概括的一样。在查询126,对状态i的成本与当前最小的成本,current_cost,进行比较。若J,对状态i的成本比current_cost要少,则用J替换current_cost并且在步骤128将变量r、s、id(i,s)和J存储到状态i。
[0083]在当前成本不少于current_minicost时从步骤128,以及从查询126,当找到s=0和r<15持续为真时从查询122,处理转到查询130,其询问s是否少于10。若s<10,则在步骤132增加s并且与计算对状态i的成本关联的迭代与更新的变量一起重复。若在查询130中s≥10,则查询134询问r是否小于k。若r<k,则在步骤136中r增加,在步骤120中将s重置为0,并且重复用于计算对状态i的成本的迭代。但,若r不少于k,则查询138询问i是否少于63。若存在这种情况,则在步骤140增加i并且重复整个迭代。若i不少于63,则认为所有的成本都已被计算并且在步骤142中通过回撤而确定块j的最佳路径。在步骤144,从最佳路径来的行程尺寸对(r,s)用来更新行程尺寸概率分布函数Pt+1(r,s),同时完成对块j找寻最佳路径的处理。
[0084]现参考图10的流程图,更详细地描述图9的流程图中步骤112的用于块j的初始化。在步骤152中,块成本的末端,对0≤i≤62,递归地计算eob_cost(i)。这相应于在状态i后忽略所有系数的成本。在步骤154,失真,对i≤r≤15和2≤i≤63,递归地计算dist(r,i)。这涉及到忽略在状态i-r-1和状态i之间的所有系数的均方失真(MSE)。
[0085]在步骤156,第二失真度量(distortion metric),对于1≤i≤63和1≤s≤10,计算d(i,s)。当相应的指数强制到尺寸组s中时,这是从第ith个DCT系数(1≤i≤63)导出均方失真(MSE)。在步骤158,当指数在尺寸组s中时,计算用于第i个DCT系数的要被发送的指数id(i,s),其中1≤i≤63和1≤s≤10。最后,在步骤160,状态值数i被设定为等于1同时完成对块j的初始化。
[0086]现参考图11的流程图,用于计算对状态i的成本的过程,在图9的流程图的步骤124进行了详细描述。查询172询问s是否等于0。若发现这种情况为真,则步骤174确定从状态i-r-1(其中r=15)到状态i增加的失真作为在忽略状态i-16和i之间所有系数的均方失真和忽略在当前块中的第ith个DCT系数的均方失真的总和。接着,在步骤176中计算对状态i的的成本,来作为对状态i-r-1的成本、从状态i-r-1到状态i增加的失真、以及与由λ测量的与行程尺寸对(15,0)关联的熵率的总和。
[0087]若s在查询172不等于0,则在步骤178中计算增加的失真作为忽略在状态i-r-1和状态i之间所有系数的均方失真和当若强制到尺寸组s中则相应的指数时从第i个DCT系数所得的均方失真的总和。接着在步骤180中计算对状态i的成本作为对状态i-r-1的成本,加上从状态i-r-1到状态i的增加成本,加上与由λ测量的行程尺寸对(15,0)关联的熵率的总和。当该迭代的成本已经在步骤176或步骤180中计算时,完成对状态i的成本计算。
[0088]现参考图12的流程图,详细说明图7的流程图的步骤66用于更新量化表Qt+1的处理。在步骤192中,分子阵列,num(i)对1≤i≤63初始为0。类似地,在步骤194,分母阵列,den(i)也对1≤i≤63初始为0。在步骤196,块指数j初始为1。在步骤198,块j从它的行程尺寸和指数格式恢复以产生系数指数阵列Ki,j。在步骤200,指数i,其表示在第j块的锯齿形顺序中的位置被设定为1。
[0089]在步骤202,计算在分子阵列中的第ith个值以作为它的当前值和第jth个块的原始的第ith个DCT系数和在以第jth个块的锯齿形顺序中第ith个位置恢复的DCT系数的乘积的总和,正如在步骤198中从行程尺寸和指数格式一样。在步骤204,计算在分母阵列中的第ith个值以作为它的当前值和在以第jthu个块的锯齿形顺序中第ith个位置的DCT指数的平方。
[0090]查询206询问i是否小于63。若i<63,则在步骤208中增加i并且计算与新的i关联的分子和分母值。若在查询206中i不小于63,则查询210询问j是否比N(块的总数量)小。如果j<N,则在步骤212增加j并且基于下一个块执行分子和分母的计算。否则在步骤214将i设定等于1。
[0091]在步骤216,计算与在量化表Qt+1的锯齿形顺序中的第ith个位置关联的值,qi,以作为在位置i的分母上的分子值。查询218询问i是否小于63。若这种情况为真,则在步骤220增加i并且计算在量化表中的余数位置。否则,完成Qt+1的更新。
[0092]参考图13,其显示根据本发明的优选方面的用于执行诸如与图7-12相关联的如上所述的压缩方法的数据处理系统230的结构图。如所示,系统230包括显示器232,其用于显示例如要被传输的图像等。类似地,存储器234可以包括要被传输的JPEG或MPEG文件。在通过用户界面236从用户接收指令时,微处理器238使用计算模块和初始模块(未示出)以上述描述的方式压缩输入的图像数据,随后将压缩的数据提供给子系统240。然后,通信子系统240向网络242传输该压缩的数据。
[0093]如上所述,虽然从通信子系统240向网络242传输的方式可以是无线的或通过电话线,或通过更高带宽的连接,但系统240可以集成到数码相机或移动电话中。
                        实验结果
AC系数的优化
[0094]上述的基于曲线图的行程编码优化算法和迭代的联合优化算法为解码器的兼容优化可以适用于JPEG和MPEG编码环境。它们两者都以给定的量化表开始。由于以上讨论的量化步长更新算法仅取得了局部优化性,因此如果必须使用默认的量化表,则默认的量化表的初始缩放比例对R-D性能有直接的影响。例如,图14显示了使用我们的基于曲线图的行程编码优化方法对512×512的Barbara图像的影响。曲线“a”相应于默认的量化表而曲线“b”相应于0.5精密标度(即,所有步长长度的一半)。这些曲线通过所有感兴趣的正值清除拉格朗日算子λ而得到。对于比较的目的,通过缩放量化表而取得的R-D曲线也给定为“c”可以看出,我们可以从曲线“a”或曲线“b”取的点X的相同的失真。从曲线“a”我们可以使用小λ来得到点Y。(由于可以预乘熵率因此在执行比率以降低复杂性之前替换λ;-1/λ在R-D曲线上具有坡度的物理意义)。从曲线“b”我们可以使用比较大地λ来得到点Z。即便对分检索(binary search)方法能够用来找到在R-D方向上优化的初始比例缩放因子,根据经验所确定的比例能很好地起作用并可以取得通过优化方案所取得的大多数增益。在我们的实验中也使用了经验方法。
[0095]给定初始量化表,在迭代的联合优化算法中的叠代数还在计算复杂性和取得压缩性能上有直接的影响。图15比较了为512×512Lena图像从一次迭代(仅优化行程尺寸对)、两次迭代和全部迭代(收敛性判别标准ε设定为0.1同时迭代的结果的平均数为大约6)取得的R-D曲线。可以看出,从全部联合优化所得到的大多数增益可以在两次迭代中取得。
[0096]如上所述,量化步长更新算法仅能得到局部优化性。除了比例缩放的默认量化表外,所提出的联合量化算法还可以很轻易地被配置来从诸如从在参考文献[3]-[5]中的任何方案所得的任意其他的量化表开始。(应当指出的是,在参考文献[3]-[5]中提出的方案仅仅解决了如何设计用于硬决策量化的优化量化表;同样地,从这些方案中所得到的量化表对我们在本发明中所考虑的软决策量化不是最优的。但,作为用于我们迭代联合优化算法的初始量化表,这些量化表优于比例缩放的默认量化表。)在我们的试验中,我们选择在参考文献[5]中的快速算法来产生以此开始的初始量化表。图16和表I比较了我们的优化方法和用于512×512Lena图像的参考方法的不同配置的峰值信噪比(PeakSignal-Noise Ratio,PSNR)性能。图17和表II比较了512×512Barbara图像的相同性能。定制的霍夫曼表用在最后的熵编码阶段。几条备注是按序的。首先,在参考文献[7]和[9]中的优化自适应阀值方案是所提出的行程编码优化的子集。因此,建议的行程编码优化方案像我们期望的在任意位率下的两个图像优于优化自适应阈值方案。其次,由于在低位率更多的系数被量化为零,因此量化表优化在低位率起着较少的作用。所提出具有初始缩放比例默认量化表的联合优化方案在低位率可以比在参考文献[9]中的联合优化方案取得更好的结果。第三,对于例如Barbara等的复杂图像,由于存在更多要被优化的非零系数,因此所提出的具有从参考文献[5]所产生的初始量化表的联合优化方案在所有位率相比于在参考文献[9]中的联合优化方案要作得更好。对于例如Lina等简单图像,由于量化表在低位率起着较小的作用,因此所提出的联合优化方案在低位率相比于在参考文献[9]中的方案仍然能取得更好的结果。但,由于我们的方法并不在每次迭代中尽其可能地找出优化量化步长,因此在参考文献[9]的方案对于Lena图像在高位率仍然能取得较好的结果。第四,相比于定制的基线JPEG,所提出的联合优化方案显著地改进了目标PSNR,对于低位率的例如Barbara等复杂图像,对比可知其性能超出了一些例如在1993年12月J.Shapiro的“Embeded imagecoding using zerotress of wavelet coefficients(使用小波系数的零树的内嵌图像编码)”(IEEE Trans.Signal Processing,第41卷,第3445-3462页)(以下称之为参考文献[13])中所提出的Shapiro’s内嵌零树小波算法等现有技术的基于小波图像编码器的所报结果。表III和IV列出了所提出的优化方案对于另外两种图像(512×512的Mandrill和Goldhill)的PSNR结果。
表I具有不同优化方法的PSNR比较(512×512的Lena)
 比率(bpp)   定制基线 自适应阀值[9]   行程编码优化   联合优化+初始缩放比例默认量化表 [5]的联合优化+初始量化表   联合优化[9]   基线小波过渡编码器[12]   内嵌零树小波算法[13]
 .25   31.64 32.1   32.19   32.39 32.45   32.3   33.17   38.17
 .50   34.90 35.3   35.38   35.74 35.99   35.9   36.18   36.28
 .75   36.56 37.2   37.25   37.59 38.05   38.1   38.02   N/A
 1.00   37.94 38.4   38.58   39.12 39.50   39.6   39.42   39.55
表II具有不同优化方法的PSNR比较(512×512的Barbara)
 比率(bpp)   定制基线   自适应阀值   行程编码优  联合优化+  [5]的联合   联合优化   基线小波过   内嵌零树小
  [9]   化   初始缩放比例默认量化表  优化+初始量化表   [9]   渡编码器[12]   波算法[13]
  .25   24.95   25.9   26.01   26.91  27.00   26.7   26.64   26.77
  .50   28.10   29.3   29.49   30.63  30.90   30.6   29.54   30.53
  .75   31.02   31.9   32.23   33.13  33.79   33.6   32.55   N/A
  1.00   33.16   34.1   34.41   35.22  36.01   35.9   34.56   35.14
表III512×512的Mandrill的PSNR结果
 比率(bpp)   定制基线   行程编码优化   联合优化+初始缩放比例默认量化衣  [5]的联合优化+初始量化表   基线小波过渡编码器[12]
 .25   22.31   22.70   22.92  22.95   22.87
 .50   24.17   24.59   25.25  25.33   25.04
 .75   25.52   26.05   27.11  27.22   26.95
 1.00   26.67   27.38   28.48  28.85   28.45
表IV512×512的Goldbill的PSNR结果
  比率(bpp)   定制基线   行程编码优化   联合优化+初始缩放比例默认量化表  [5]的联合优化+初始量化表   基线小波过渡编码器[12]
  .25   29.30   29.72   29.97  30.00   30.08
  .50   31.72   32.15   32.50  32.64   32.62
  .75   33.26   33.73   34.28  34.52   34.42
  1.00   34.55   35.05   35.83  36.05   35.94
计算复杂性
[0097]现在我们介绍一些行程编码优化算法和迭代联合优化算法的计算复杂性的结果。如上所述,给定状态和前趋,我们可以通过比较所有的10个寸组或3个尺寸组(即,从硬决策量化器来的尺寸组和从软决策量化器来的尺寸组)来找出最小的增加成本。我们的实验显示了这两个方案在所感兴趣的区域中取得了相同的性能。仅在λ非常大时,我们可以看出比较10个尺寸组的结果略微好于比较3个尺寸组的结果。但,实际上,由于会导致大的失真或不能接收的低劣图像质量,因此并不使用很大的λ值。因此,在本发明中所有的实验结果都可以通过比较3个尺寸组而得到。表V列出了在奔腾PC(Pentium PC)上对512×512的Lena图像进行一次迭代时用于所提出的联合优化算法的C代码执行的CPU时间。可以看出,我们的算法相比于参考文献[7]和[9]中的方案是非常高效的(对512×512的图像在SPARC-II工作站上,参考文献[7]中的快速阀值算法一次迭代花费大约6.1秒;而在参考文献[9]中的方案一次迭代花费大约几十秒)。当将所提出的联合优化算法应用于网路图像加速时,其花费大约0.2秒来用2次迭代优化通常尺寸(300×200)JPEG彩色图像。
表V.在所提出的联合优化算法在奔腾PC上一次迭代的CPU时间(512×512Lena)
  设置   浮点DCT   快速整数DCT
  比较3个尺寸组   1.5s   0.3s
  比较10个尺寸组   2.0s   0.7s
DC系数的优化
[0098]在先前的实验中并没有优化量化的DC系数。与AC系数不同,DC系数通常非常大并且对于在JPEG语法中的霍夫曼编码差别只有12个尺寸组(与AC系数的162个不同的行程尺寸对相反)。因此,从基于栅格的DC系数来的增益是有限的。当从DC优化来的增益平均为位率时,在PSNR上的所有改进都是可以忽略的。为了显示从在部分V中所概括基于栅格的DC优化所得到的性能的改进,图18图示了对于512×512Lena图像的DC熵vs.DC失真。从这些绘图,即便增益非常有限,我们也可以清楚地看出在缩放比例的步长上基于栅格的DC优化算法的改进。
部分II:行程编码、基于上下文的算术编码和量化步长的联合优化
[0099]以上的讨论提出了一种基于曲线图的联合优化算法,其联合优化了JPEG编码器的三个自由参数:量化步长、霍夫曼表和RUN-SIZE对格式的DCT指数。这种联合优化算法在计算上非常有效,并对已有的JPEG和MPEG编码器具有完全的兼容性。
[00100]现在,假定我们考虑不同的情况,其中抛开对JPEG兼容性的要求,但相比于那些JPEG编码器和解码器,编码器和解码器都需要具有低计算复杂性。(这种情况常应用于诸如JPEG压缩图像的重新编码中)。我们应当如何进一步改进在上述JPEG兼容的联合优化的顶部的比率失真性能呢?
[00101]一旦消除了JPEG兼容性的要求,任何现有技术中的图像压缩/解压缩算法和方案,诸如,在1993年12月J.Shapiro的“Embeded image coding usingzerotress of wavelet coefficients(使用小波系数的零树的内嵌图像编码)”(IEEETrans.Signal Processing,第41卷,第3445-3462页)(以下称之为参考文献[13])中所提出的Shapiro’s内嵌零树小波算法;在Said和W.A.Pearlman的“New,fast,and efficient image codec based on set partitioning in hierarchical trees”中所描述的.层次树中的设定分离(SPIHT)(IEEE Trans.Circuits,Syst.,Video Technol,第6卷,第243-249页,1996年6月)(以下称之为“参考文献[15]”);在D.Taubman的“High performance scalable image compression with EBCOT”中描述的具有最佳平截的内嵌块编码(IEEE Trans.Image Processing,第9卷,第1158-1170页,2000年7月)(以下称之为“参考文献[15]”);在X.Wu的“High-order contextmodeling and embedded conditional entropy coding of wavelet coefficients for imagecompression”中描述的小波系数或DCT系数的基于上下文的熵编码(在Proc.31Asilomar Conf.Signal,System,Computers,第1378-1382页,1997年11月);Tu,J.Liang,和T.Tran的“Adaptive Runlength Coding”(IEEE Signal ProcessingLetters,第10卷,第61-64页,2003年3月);和Tu和T.Tran的“Context-basedEntropy Coding of Block Transform Coefficients for Image Compression”(IEEETrans.Image Processing,第11卷,第1271-1283页,2002年11月)(以下分别称之为“参考文献[16]”、“参考文献[17]”和“参考文献[18]”);在T.Tran,J.Liang,和C.Tu的“Lapped Transform via Time-domain Pre-and Post-Filtering”中描述的预置和后置滤波技术(IEEE.Trans.Signal Processing,第51卷,第1557-1571页,2003年6月)(以下称之为“参考文献[19]”);都可能被应用以改进给定图像的比率失真性能。但,由于他们固有的编码结构,因此这些方法在编码器和解码器上不能满足严厉的计算复杂性的需求。
[00102]在这部分中将提供不同的方法。为了满足严厉的计算复杂性的需求,我们用基于上下文的算术编码来替代霍夫曼编码。在这种方式中,我们避免了执行在计算上高昂的小波变换和反向小波变换以及额外DCT变换和反向DCT变换,特别是在JPEG压缩图像重新编码的情况下。为了改进比率-失真性能,我们接着联合第优化行程编码、基于上下文的编码,和量化步长,如图19中所示,在图19中显示了JPEG压缩图像的重新编码。在图20中显示了未压缩图像的编码。
[00103]图19和20显示了根据本发明的一个方面的编码器320在不同环境中的操作的方框图。在图19的情况中,输入是JPEG图像。如结合图1的描述,本JPEG图像已经进行了霍夫曼编码和量化。因此,为了开始量化、行程编码和基于上下文算法编码的联合优化,这个JPEG图像首先必须在步骤322中解码霍夫曼编码而在步骤324中进行量化。基于合成的DCT系数,在步骤326中的量化、在步骤328中的行程编码和基于上下文的算术编码(在步骤330中)的联合优化使用上下文模块332来进行。
[00104]在图20中,编码器320对未压缩的图像340执行操作,而不是如图19中那样对JPEG图像进行操作。类似于图1的JPEG编码器20,图20的编码器320首先将未压缩的图像340分割成8×8块,然后,处理这些8×8的图像块。在DCT步骤342中通过8×8DCT每个块都首先从图像域转换成DC域。基于该合成的DCT系数,在步骤326中的量化、在步骤328中的行程编码和在步骤330中的基于上下文的算术编码的联合优化使用上下文模块332来进行。
RUN和LEVEL的上下文建模
[00105]JPEG标准使用行程编码来将量化系数块排序为以如下所示增加频率的次序的锯齿形序列
(DC)(run,size)(Amplitude)...(run,size)(Amplitude)(EOB)接着对该序列进行霍夫曼编码。在上下文建模和关联的熵编码中,DCT系数的幅度通常被合并成尺寸部分以形成如下所示的(run,level)序列
(DC)(run,level)(Amplitude)...(run,level)(Amplitude)(EOB)其中,RUN仍然表示先于非零的系数指数的连续零AC系数指数的数量,而LEVEL为非零系数指数的值。EOB符号表示在当前块中不存在额外的非零系数指数。
[00106]Tu等人的[17]提出了上下文建模方案,其使用量化DCT块的RUN-LEVEL序列属性,诸如小RUN要比大RUN出现的频率高,而具有小幅度的LEVEL比具有大幅度的LEVEL发生的频繁等。接着,使用基于上下文的二进制算术码分别对RUN和LEVEL编码(EOB视作特殊的RUN符号)。为了由二进制算术编码器对非二进制符号进行编码,该符号首先要被二进制化。由于小RUN和小LEVEL出现比较频繁,因此较短的二进制序列应当分配给较小的RUN和LEVEL。在Tu等人的[17]中详细描述了一种满足这种需求的简单二进制方案,其详细描述如下:RUN二进制为由“1”跟随的(RUN+1)“0’s”;EOB视为特定的RUN并二进制为“1”;LEVEL二进制为除了标志位外由结尾“1”所跟随的(|LEVEL|-1)“0’s”。块的DC系数从其左边相邻的块和它的顶部的DC值而预测。如果该预测的DC余数是非零,则以相同的方式将其二进制作为规则的LEVEL符号的二进制。由于不同位的统计可能大不一样,因此不同的模型通常使用不同的位来最大化编码的效率。
基于上下文算术编码的联合优化
[00107]基于上下文算术编码的联合优化的基本构思类似于在部分I中所描述的JPEG兼容性的联合优化。对所有(run,level)(或缩写为(R,L))对序列、所有可能的上下文模型M和所有可能的量化表Q进行强制优化。因此,该优化问题可以表述为如下:
min ( R , L ) , M , Q d [ I 0 , ( R , L ) Q ] subjecttor [ ( R , L ) , M ] ≤ r budget - - - ( 20 )
其中d[I0,(R,L)Q]表示在原始图像I0和在所有AC系数上由(R,L)和Q所确定的重新构建的图像之间的失真,而r[(R,L),M]表示为从所选定的(R,L)对和上下文模型M所得的所有AC系数的压缩率。等效的非强制性优化问题是
min ( R , L ) , M , Q { J ( λ ) = d [ I 0 , ( R , L ) Q ] + λ · r [ ( R , L ) , M ] } - - - ( 21 )
其中拉格朗日乘子λ是固定参数,其表示用于失真比率的折中(tradeoff),而J(λ)为与拉格朗日成本。在本部分中,我们选择适当的上下文并在每次迭代中的每个上下文中更新(或优化)概率分布。接着,解决本非强制优化问题的迭代算法可以如下描述:
1)从给定图像I0和量化表Q0初始化上下文模型分布P(M0)。设定t=0,
并指定公差ε作为收敛性判别标准(convergence criterion)。
2)为任意t≥0固定P(Mt)和Qt。找到能满足以下最小式的优化序列(Rt,Lt)
min ( R , L ) { J ( λ ) = d [ I 0 , ( R , L ) Qt ] + λ · r [ ( R , L ) , P ( M t ) ] }
其中,由Jt(λ)表示d[I0,(Rt,Lt)Qt]+λ·r[(Rt,Lt),P(Mt)]
3)固定(Rt,Lt)。将P(Mt)和Qt分别更新成P(Mt+1)和Qt+1以便P(Mt+1)和Qt+1一起满足以下最小式
min P ( M ) , Q { J ( λ ) = d [ I 0 , ( R t , L t ) Q ] + λ · r [ ( R t , L t ) , P ( M ) ] }
4)对t=0,1,2,...重复进行步骤2)和3)直到Jt(λ)-Jt+1(λ)≤ε。接着输出(Rt+1,Lt+1),Qt+1和P(Mt+1)。
[00108]该迭代算法的核心是步骤2)和步骤3),即,找出序列(R,L)以最小化给定P(M)和Q的拉格朗日成本J(λ),并用该图像新的指数更新量化步长。在部分I中同样的量化步长更新算法也能用于后面的目的。下文中,我们专注于步骤2),即如何为给定上下文模型和量化步长的分布,为每个块找到优化序列(R,L)。
适用的上下文模型
[00109]以下使用的上下文模型是一组从参考文献[17]而来但为DC、RUN、和LEVEL稍微修改了的上下文模型,其合并在此作为参考。
(1)用于DC余数的上下文模型
[00110]为DC余数的幅值使用了两个上下文,其是在当前DC指数和顶部相邻块的DC指数之间的差别,并取决于顶部相邻块的DC余数是否为零。
(2)用于第一个RUN的上下文模块
[00111]第一个RUN是以相邻块的平面为条件的。使用了五个上下文模型来对块的第一个RUN编码。前三个模型用来对相应于具有非零的AC指数的左边和上边的相邻块之一,或全部,或全不是的第一个RUN的第一个二进位编码。第四模型用来为第一个RUN的第二个二进位编码,而第五模型用来为所有剩余的二进制位编码。
[00112]应当指出的是,第一个RUN的五个上下文模型都仅在最后的熵编码阶段使用;在联合优化处理中并不会涉及它们(在联合优化处理中,我们只为第一RUN采用固定模型)。这是因为第一个RUN是以相邻块的平面熵为条件的,因此,在联合优化中包括第一个RUN将导致更复杂的联合优化算法。由于第一个RUN编码仅使用了在位率中非常小的片断,因此可以很好地调整压缩。
(3)用于其他RUN的上下文模型
[00113]其他RUN符号以前述LEVEL的幅值和锯齿形顺序为条件的,其分别用m和zz表示。则上下文模型可以选定如:
(zz<6和m=1),(zz<6和m>1),(6≤zz<15和m=1)
(6≤zz<15和m>1),(zz≥15)               (22)
[00114]此外,可以为第一个二进位、第二个二进位和所有剩余的二进位使用不同的模型。总共15个上下文模型都可以用于其他的RUN。
(4)用于LEVEL幅值的上下文模型
[00115]LEVEL的幅值以zz,当前LEVEL的锯齿形顺序,和r,当前RUN为条件。上下文模型选定为:
(0<zz<3),(3≤zz<6),(6≤zz<15和r<3)
(15≤zz或3≤r)                            (23)
[00116]此外,可以为第一个二进位、和所有剩余的二进位使用不同的模型。总共8个上下文模型都可以用于LEVEL幅值。
[00117]一个额外的单个模型可以用于LEVEL和DC余数的标记位但也不会进入联合优化。总的来说,可以使用31个二进制上下文模型来对DCT系数指数编码。
基于曲线图的RUN-LEVEL优化
[00118]类似于部分I的基于曲线图优化的构思也用来在基于上下文算术编码的联合优化中找出优化序列(R,L)。但,由于现在通常给定锯齿形顺序和前述LEVEL的幅值编码RUN,因此使用了与部分I中所考虑的不同的曲线图。
[00119]从RUN编码的方式,可以遵循如下,在RUN编码中所将量化的幅值(单一或非单一的)与前14个AC系数的锯齿形顺序一起使用;但,在前14个后的AC系数的量化振幅仅基于锯齿形顺序而不是基于幅值进行编码。为了解决该额外的依赖性,我们为前14个AC系数的每个限定一个或多个状态。具体地,我们限定具有64个超级节点(或超级状态)的定向图,其相应于锯齿形顺序的8×8个图像块的64个系数指数以及末端状态(末端节点),如图21所示。相应于前14个AC系数的前14个超级节点的每个(状态0相应于DC系数)包括两个状态(或节点):一个称之为基本状态,其表示相应的AC系数的幅值>1(状态1’到状态14’),另一个称之为扩展状态,其表示相应的AC系数大额幅值等于1(状态1到状态14)。剩余的超级状态(状态15到状态63以及状态0)的每个仅具有一个状态并被称之为规则状态。每个非末端的状态都可以包括从前面16个超级节点来的引入连接(incoming connection),其相应于在(R,L)对中的RUN,R,其中R的取值是从0到15。末端状态可以具有从其他所有状态来的引入连接,其相应于EOB节点,即代码(0,0)。状态63到末端状态而没有EOB代码。对于给定的基本状态i’(1≤i’≤14)以及它的前趋i’-r-1(0≤r≤15)(虽然对于前14个状态r≤13),在它们中间存在2m-2个平行的过渡,其中m为LEVEL的最大幅值。要注意的是,前趋可以是基本状态或扩展状态。我们从状态i’-r-1到状态i’分配给每个过渡(r,l’)成本(-m≤l’≤m,|l’|>1),其被限定为当第t’个DCT系数被量化为l’(|l’|>1)并且所有的r个DCT系数在第t’个DCT系数被量化为零之前立即出现时从状态i’-r-1到状态i’增加的拉格朗日成本。该增加成本被限定为:
Σ j = l ′ - r l ′ - 1 C j 2 + ( C l ′ - q l ′ · l ′ ) + λ · f ( r , l ′ ) , | l ′ | > 1 - - - ( 24 )
其中Ci’和qi’分别为第ith个DCT系数和第ith个量化步长;而f(r,l’)为长度函数,其基于上下文模型M的当前概率分布从过渡(r,l’)映射到熵率。要注意的是,给定上下文模型M的r的概率分布仅取决于前趋,而给定上下文模型M的l’概率分布取决于r和i’状态。类似地,对于给定的扩展状态i(1≤i≤14)和它的前趋i-r-1,在它们之间存在两个过渡,(r,1)和(r,-1)。由于单独处理标记位,因此为了简便起见,我们仅画出了图21中定向图的一个过渡。这两个过渡的拉格朗日成本,即第ith个DCT系数被量化为统一的并且在第ith个DCT系数被量化成零之前所有的r个DCT系数立即出现,被限定为:
Figure A20058003076100712
[00120]对于规则状态i(15≤i≤63)和它的前趋i-r-1,在它们之间存在2m个平行的过渡(要注意的是,如果前趋的位置小于15,则基本节点和扩展节点对状态i都具有2m个平行的过渡)。与从状态i-r-1到状态i关联的过渡(r,l)(-m≤l≤m,l≠0)增加的拉格朗日成本类似地可以限定为:
Σ j = i - r i - 1 C j 2 + ( C i - q i · l ) 2 + λ · f ( r , l ) , l ≠ 0 - - - ( 26 )
[00121]对于从每个超级状态i(如果1≤i≤14,则是基本状态和扩展状态)到末端状态的过渡,它的成本被限定为:
Σ j = i + 1 63 C j 2 + λ · f ( 0,0 )
[00122]对于每个规则状态i(i≥16),从状态i-16到i(取决于i-16的位置)存在一个或两个以上的过渡,其相应于对(15,0),即ZRL(零行程)编码,。它的成本被限定为:
Σ j = l - 15 i C j 2 + λ · f ( 15 , 0 )
其中对(15,0)被视作具有16个长度的特定RUN。根据上述限定,8×8个块的每个(R,L)对序列都相应于具有拉格朗日成本的从状态0到末端状态的路径。类似于部分I的方法,可以将快速动态编程算法应用到整个定向图来为给定的8×8块找出优化序列(R,L)。快速动态编程算法的详细描述类似于部分1。因此在图22a到22d的伪码中略述了相应的伪码。
[00123]在图23的流程图中显示了根据本发明的一个方面的用于联合优化行程编码、基于上下文算术编码和量化步长处理。在步骤352,开始迭代处理,如在图24的流程图中详细概括的。在步骤353,开始统一所有的上下文模型入口。接着,在步骤354,表示N个总的块的第jth个块的指数被设定为1。在步骤356,该处理确定在本第一行程通径、第一块中用于块j的最佳路径。这在图25的流程图中详细概括。在查询358,处理确定j是否是最后的块。这通过将j与N(总的块数)进行比较而得到。如果j比N小,则在步骤360中增加j。
[00124]为每个块j找出最佳路径的处理一直持续到j等于N。当j等于N时,可以确定为N个块的每个的最佳路径。在图23的方法中的步骤362中计算J(λ)的第(t+1)th个值作为与N个块的每个关联的最小成本的和。接着在查询364中将该值与J(λ)的第tth个值进行比较,如果在J(λ)的第tth个值和在J(λ)的第(t+1)th个值间的差别小于ε(选择标准,或更具体地,收敛性判别标准),则认为优化完成。如果不是这种情况,则联合优化处理继续到步骤366,其中量化表被更新为Qt+1,正如在图29的流程图中所详细概括的。上下文模型P(Mt)可以使用在迭代t的末端的上下文模型的概率分布来更新到P(Mt+1),正如在段落[0099]中所讨论的。在实际的实现中,自适应基于上下文的算术编码实际上既应用于联合优化也应用于最终的编码/解码。在每个迭代开始时自适应基于上下文的算术编码设定上下文模型的入口为统一的,如在步骤353中所指定的每次迭代的开始和在步骤444指定的在每个块的末端更新上下文模型。在步骤370,增加指数t,并且在步骤353连续执行再次开始的额外迭代。
[00125]如若已经确定在查询364中选择标准是令人满意的,则在步骤374中使用基于上下文的算术编码来对选定的(r,l)对编码。在步骤374后,完成用于联合优化行程编码、基于上下文的算术编码和量化表的处理。
[00126]现在参考图24的流程图,更详细的描述在图23的流程图的步骤352中的迭代处理的初始化。在步骤382,选择拉格朗日乘子λ。它是一个固定参数,用来表示失真率的折中。在步骤384,选择敛性判别标准ε。这就是连续迭代的拉格朗日成本,Jt(λ),的差被认为成功和完成迭代所必需低于的量。
[00127]在步骤386中,产生初始量化表Q0。在步骤392,为了确保初始拉格朗日成本超过了由该方法确定的最小成本,初始拉格朗日成本J0(λ)被设定为非常大的数。在步骤394,N被设定为等于图像块的数量,在步骤396,M被设定为等于要被比较的过渡的数量。如上所述,虽然该步骤仅处理基本节点和规则节点,但要被比较的过渡数量取决于在询问中的状态或节点是否是基本节点、扩展节点或规则节点而不同。在步骤398,迭代指数t被设定等于0并且完成初始化叠代处理的处理。
[00128]现在,参考图25的流程图,更详细地概括在图23的流程图中图周356的用于对块j确定最佳路径的处理。在步骤412,确定用于当前块的dist(r,i);d(i,l)和eob_dist(t):(1)dist(r,i)为忽略在状态i-r-1和状态i间的所有系数的均方失真;(2)d(i,l)为当相应指数的幅值为1时从Ci,j得出的均方失真;(3)eob_dist(t)为在状态i后忽略系数的均方失真(eob表示末端块)。在步骤416,i被设定为等于1,表示图25的方法在块j的第一AC系数开始。在步骤418,用于基本状态的minicost,和用于扩展状态的minicost_ext都被设定等于大数,但两者并不一定要是相同的大数。在步骤420,第ith个系数指数的幅值被设定等于相应的由当前用于该锯齿形顺序的系数的量化步长首先分隔的第i个DCT系数,随后转到最接近的整数。在步骤422,给变量k赋值以表示在该系数前立即运行的最大可能行程值。如果,i比15大,而k被赋值为值15。如果i小于等于15,则k被设定为i-1。在步骤424,与RUN相关的变量,被设定为0。
[00129]在步骤426,计算对状态i的成本,其中i为基本或规则状态。在查询428,处理器确定当前系数是否为前14个系数之一,以确定是否存在扩展状态。如果当前状态是前14个系数之一,则接着查询428返回真的回答,同时方法继续到步骤430,其中在该方法接着进行到查询432之前确定对第ith个扩展状态的成本。如果i超过了14,则方法直接从查询428转到查询432,跳过步骤430。
[00130]在查询432,方法询问r是否比k小。如果r比k小,则r在步骤434中增加,并重复用于计算对状态i的成本的迭代。如果r不小于k,则方法进行到步骤436,其中计算特定过渡(15,0)(即,零行程编码)的成本。当然,如果i小于或等于15,则就没有特定过渡,因此也没有特定的过渡成本。方法接着进行到查询438。
[00131]查询438询问i是否小于63,也就是说,图25的流程图是否已经遍历了图21的定向图的所有超级节点。如果i小于63,则查询438返回为真的答案同时方法进行到步骤440,在其中增加i。随后,在步骤418开是重复整个迭带。另一方面,如果查询438返回假的答案,那么,就认为已经计算了对每个状态的最小成本(要注意的是,状态0的最小成本为0)。在步骤442,当第ith个DCT系数为要被发送的最后的非零系数时,其中J*(λ),0≤i≤63,,计算该块的总的最小成本作为对状态i的最小成本、忽略在状态i(即,eob_dis(t))后的系数的均方失真和由λ所缩放比例的与行程水平对(0,0)(即,末端块编码)关联的熵率的总和。该块的总的最小成本,J*(i*),通过比较值J*(i*),0≤i≤63,而确定。通过根据所存储的行程水平对和进入状态类型而从i*回撤,可以确定块j的行程水平对格式的最佳路径。在步骤444,使用从最佳路径的行程水平对来更新上下文模型并完成了为块j找出最佳路径的处理。
[00132]现参考图26的流程图详细概括图25的步骤426中的对第ith个基本/规则状态计算成本。在步骤446,表示要被考虑的特定过渡的偏移m开始时被设定为0。该方法接着进行到步骤448,其中计算增加的成本(dist_inc)以作为以下的总和,(1)从忽略在状态i-r-1和状态i(dist(r,i))间的所有系数所得的均方失真,和(2)当相应的水平值被强制为I-m(dist(i,I-m))时从第ith个DCT系数得到的均方失真。在步骤450,计算状态i的成本作为对状态i-r-1、在步骤448中计算的增加的失真和与由λ缩放比例的行程水平对(r,I-m)关联的熵率的和。[00133]方法接着进行到查询452,其询问这个总的成本是否小于开始时在步骤418被设定为大数的minicost项。如果确定该对状态i的成本小于minicost,则方法进行到步骤454,其中用J代替minicost。此外在方法进行到查询456之前在步骤454记录所有的r,I-m,J和对状态i的引入状态类型。如果查询452返回了假的答案,则由于J大于或等于minicost,则方法直接进行到查询456而跳过步骤454。
[00134]在查询456,方法检查前述状态是否是前14个基本状态之一,或规则状态。如果查询456返回了真的答案,则前述状态为基本状态,同时方法进入到步骤458、查询460和步骤462。如果查询456返回了假的答案,则由于前述状态是规则状态而不是基本状态,因此方法跳过步骤458、查询460和步骤462,反而直接进到查询464。
[00135]在步骤458,方法通过前述扩展状态而不是基本状态检查对状态i的成本。也就是说,状态i的成本被计算为对扩展状态i-r-1,从扩展状态i-r-1到状态i的增加失真和与行程水平对(r,I-m)关联的熵率的总和。接着方法进行到查询460,其检查该总的成本是否小于minicost。如果J比minicost小,则方法进行到步骤462,其中用J替代minicost。在此步骤中,还记录下r,I-m,J和对状态i的引入状态类型。接下来方法进入查询464,其检查从前述状态到当前状态的所有特定过渡是否都已经被检查了。如果m小于M-1,则并不是所有的这种过渡都已被检查了,并且方法进行到步骤466,在其中m加1。接着,方法为另一个过渡返回到步骤448。另一方面,如果m不小于M-1,则步骤464返回假的答案,并且完成图26中对第i个基本/规则状态成本的计算。
[00136]现在参考图27的流程图详细概括在图25的流程图中的步骤430,在步骤中,计算对第ith个扩展状态的成本计算。在步骤468,计算增加失真作为以下的总和,(1)从忽略在状态i-r-1和状态i(dist(r,i))间的所有系数所得的均方失真,和(2)当相应的指数被强制为具有水平值1时,从第ith个DCT系数得到的均方失真。在步骤470,从前述基本状态i-r-1来的对状态i的成本被计算来作为对基本状态i-r-1的成本、从基本状态i-r-1到状态i的增加失真以及由λ按比例缩放的行程水平对(r,1)关联的熵率的总和。接着,方法进行到查询472,其检查在步骤470中计算的成本,J是否小于开始时在步骤418中被设定为大数的minicost_ext。如果J小于minicost_ext,则方法进行到步骤474,其中用J替代minicost_ext。还是在步骤474中,还记录下r,1,J和对状态i的引入状态类型。方法进到步骤476。如果J大于或等于minicost_ext,那么,方法从查询472直接进到步骤476。
[00137]在步骤476,从前面扩展的状态i-r-1计算对状态i的成本作为扩展的状态i-r-1的成本、从扩展的状态i-r-1代状态i增加失真、由λ按比例缩放的行程水平对(r,1)关联的熵率的总和。如果在步骤476中所确定的成本,J,小于minicost_ext,则查询478返回真的答案并且方法进行到步骤480,其中用J代替minicost_ext。图27的方法在步骤480后结束。此外,在步骤480中还记录下r,1,J和对状态i的引入状态类型。如果在步骤476中确定的总的成本J不小于minicost_ext,则图27的方法不执行步骤480就终止。
[00138]参考图28,详细概括在图25的流程图中步骤436中为特定过渡(15,0)的成本计算。回想对每个规则状态i(i大于或等于16)的成本计算,从状态i-16存在一个或两个额外的过渡(取决于状态i-16是否是包括有两种状态的前14个超级状态中的一个)。这些过渡相应于零行程(ZRL)编码(15,0)。该额外过渡成本在图28的流程图中的方法中确定。
[00139]查询482通过检查i是否小于或等于62且大于或等于16而开始。也就是说,如果i为63,则i相应于最后的系数,并且需要单独考虑。另一方面,如果i小于16,则行程当然不是15。这样,如果查询482表示i在闭区间[16,62]外,则方法终止。否则,图28的方法进行到步骤484,在其中确定从状态i-r-1(如果r等于15)到状态i的增加失真作为以下的总和,(1)忽略在状态i-16和状态i间的所有系数所得的均方失真,和(2)在当前块中忽略第ith个DCT系数得到的均方失真。接着,在步骤486中计算的对状态i的成本,J,作为对基本或规则状态i-16的成本、从状态i-16到状态i的增加失真以及在步骤486中由λ按比例缩放的行程水平对(r,1)关联的熵率的总和。
[00140]如果在步骤486中计算的对状态i的成本,J,小于minicost,则方法从查询488进入步骤490,在其中用J代替minicost。此外,在步骤490中记录行程15、用于第ith个节点的水平值0、成本J和对状态i的引入状态类型。接着方法进入查询492。如果在步骤486中计算的成本不小于minicost,则图28的方法直接从查询488进入到查询492。
[00141]查询492检查i是否小于或等于30,这是由于如果i小于或等于30,则在特定过渡(15,0)下的前述节点可能是扩展节点,而如果i大于30,则在特定过渡(15,0)下的前述节点将是规则节点。如果i小于或等于30,则在终止前,图28的方法进入到步骤494、查询496和步骤498,而如果i大于30,则图28的方法在查询492后终止。
[00142]在步骤494,计算对状态i的成本作为扩展状态i-16的成本、从扩展状态i-16到状态i的增加成本失真以及与行程水平对(15,0)关联的熵率的总和。如果在步骤492中计算的成本,J,小于minicost,则方法通过查询496进入步骤498。可替换地,如果该成本,J,不小于minicost,则图28的方法在查询496后终止。在步骤498,将minicost更新为在步骤494中计算的成本,J。此外,记录15的行程、用于第ith个节点的水平值0、J和对状态i(扩展)的引入状态类型。接着,图28的方法终止。
[00143]现在参考图29的流程图,详细概括在图23的流程图的步骤366中用来更新量化表Qt+1的处理。在步骤500,分子阵列num(i)被初始化为0,0≤i≤63。类似地,在步骤502,分母阵列den(i)也被初始化为0,0≤i≤63。在步骤504,块指数j被初始化为1。在步骤506,从行程水平格式恢复块j以产生系数指数阵列Ki,j。在步骤508,表示第jth块以锯齿形顺序中DCT系数位置的指数i被设定为一。在步骤510,计算分子阵列中的第ith个值作为其当前值和第j个块(Ci,j)的原始的第ith个DCT系数与在步骤506(Ki,j)中所确定的以第jth个块的锯齿形顺序中在第i个位置上恢复的DCT系数乘积的总和。在步骤512,计算分母阵列中的第ith个值作为其当前值和第jth个块(K2 i,j)的锯齿形顺序中第ith个位置上的DCT指数序列的总和。
[00144]查询514询问i是否小于63(也就是说,在本块中的所有系数是否已经被考虑了)。如果i小于63,则方法从查询514进入到步骤516,并在其中增加i,接着方法为下一个系数而返回到步骤510。另一方面,如果i不小于63,则方法从查询514进入进入查询517,并在其中询问j是否小于N,即总的块数。如果j小于N,则在步骤518中增加j并且基于下一个块来更新分子和分母阵列,如上述图29的方法返回到步骤506所描述的。否则,在步骤519设定i=1。
[00145]在步骤520,计算与量化表Qt+1,qi的锯齿形顺序中第ith个位置关联的值作为在位置i的分母上的分子值。接着,查询522询问i是否小于63。如果为真,则在步骤524将i增加并计算在量化表中剩余的元素。否则,完成Qt+1的更新并终止图29的方法。
[00146]在本部分的余下部分,我们来看一个计算给定过渡的熵率的实例。
[00147]实例:对于给定的I计算在图21中的从状态14到状态16的过渡的熵率(即,从状态14到状态16的过渡(1,I)的熵率)。
[00148]除了特定的过渡(0,0)和(15,0)外,与任何过渡关联的熵率都包括三个部分:RUN的熵率、LEVEL标识的熵率和LEVEL幅值的熵率。
[00149]RUN的熵率为当前RUN的每一位的熵率,1,其根据上述的二进制化方案而被二进制化为三位001。由于该RUN并不是第一个RUN(从状态0开始的RUN才是第一个RUN),因此它的第一位、第二为和余下位使用不同的上下文模型,该上下文模型从前述LEVEL的锯齿形顺序(这里,由于该过渡从状态14开始,因此这里的锯齿形顺序为14)和状态14的LEVEL幅值(由于该过渡从扩展状态开始,因此使用相应于统一幅值的上下文模型)而确定。一旦确定了上下文模型,我们就能基于当前上下文模型的概率分布找出相应的熵率。
[00150]为在最后的熵编码阶段的标志位使用固定的上下文模型。我们可以使用一位(由λ适当地比例缩放)作为在增加的拉格朗日成本中标志位的成本。
[00151]LEVEL的幅值被二进制化为由结束“1”跟随的(|LEVEL|-1)”0’s”。幅值的第一位和余下位使用不同的上下文模型,这由当前状态的矩形顺序(这里,当前状态的锯齿形顺序为16)和当前run(这里,当前run为1)确定。给定LEVEL,I,因此可以确定熵率。
[00152]实际上,我们并不一定要比较在前趋和基本状态间所有的2m-2个过渡或在前趋和规则状态间所有的2m个过渡中的增加成本。相反,我们可以仅比较在LEVEL=I+1,I,I-1,I-2,9-3,...,(其中I为具有最新的量化步长的硬决策器的输出的绝对值)中的几个(例如,4个)过渡。其他的水平大都可能导致大的增加成本。当在比较中的过渡数量在下一个部分中改变了时,我们应当比较性能和复杂性的不同。
[00153]依然根据本发明的进一步方面,在图13中所示的数据处理系统230还可以用来执行诸如结合附图19至29所描述的压缩方法。在这些情况下,存储器234可以包括从JPEG或MPEG文件所获得的霍夫曼解码的图像,以及未压缩的图像。在经由用户界面236而从用户接收指令时,微处理器238使用计算模块和初始化模块以上述的方式压缩输入的图像数据,随后将该压缩数据提供给通信子系统240。通信子系统240接着可以将这些压缩数据传送到网络242。
[00154]如在部分I中所述,系统240可以集成到数字相机或移动电话中,而从通信子系统240到网络242的传输模式可以是无线的,或通过电话线、以及高速宽带连接。
                         试验结果
[00155]正如在最后一个部分中所讨论的,给定状态(而不是任意的扩展状态或末端状态)和前趋,存在2m或2m-2个可能的过渡,其中m为LEVEL的最大幅值。我们可以通过比较在这些每两个状态间直至2m或2m-2个任意多个过渡来找出最小增加成本。模拟的结果显示了仅比较两个过渡就能得到我们采用全部比较方案所取得的多数增益。作为实例,图30划出了当对512×512的Barbara图像比较中过渡数量改变时的R-D曲线。当在比较中的过渡数量大于4时,压缩性能几乎没有变化。在以下的试验中,我们在任意两个状态间仅比较四个过渡。表VI图示了在奔腾PC上对512×512的Barbara图像进行一次迭代时基于上下文算术编码的联合优化算法的C代码执行的CPU时间。
表VI.所提出的联合优化算法在奔腾PC上CPU时间(512×512的Barbara)
  设定   浮点DCT   快速整数DCT
  比较1个过渡   1.7s   0.30s
  比较4个过渡   1.7s   0.35s
  比较20个过渡   1.9s   0.48s
[00156]在本部分中以上概括的迭代算法从初始的量化表开始并在迭代期间使用在部分I中所概括的算法更新步长。由于在部分I中步长更新算法仅仅取得了局部优化,因此初始的量化表还在一定程度上影响R-D性能。正如我们在部分I中所做的,我们能够使用从参考文献[1]或在诸如从参考文献[3]、[9]和[5]中的方案所得到的量化表等其他任何缩减的默认量化表。在本部分中,我们仅用缩放的默认量化表的算法开始并比较在基于霍夫曼编码的联合优化算法和基于上下文的算术编码的联合优化间的性能。图31显示了对于512×512的Barbara图像基于上下文的算术联合优化算法和基于霍夫曼编码的联合优化算法的PSNR性能。该曲线是通过对给定缩减的默认量化表搜索拉格朗日乘子λ而得到的。为了图示的目的,在图31中还显示了由混合方案所产生的PSNR性能曲线,在该混合方案中在基于霍夫曼编码的联合优化方案中霍夫曼编码的最后一个阶段由基于上下文的算术编码代替。可以很容易的看出,在基于霍夫曼编码的联合优化算法上的基于上下文的算术编码的增益来自于两部分。第一部分来自于在定制的霍夫曼编码上的基于上下文的算术编码的增益。而第二部分来自于联合优化。图32为512×512的Lena图像而比较了相同的性能。表VII和VIII为这两种图像罗列了在最常见的位率上的编码结果,其中默认的量化表为每一个位率而在开始线性地缩放。从这些表和图可以看出,通过限定至0.5dB,或10~15%的尺寸减小,基于上下文的算术编码的联合优化方法始终优于基于霍夫曼编码的联合优化算法。
表VII具有不同优化方法的PSNR的比较(512×512的Barbara图像)
 比率(bpp)   定制基线   基于霍夫曼编码的联合优化[1]   基于霍夫曼编码的联合优化+基于上下文的算术编码   基于上下文的算术编码的联合优化
 .25   25.31   26.93   27.03   27.24
 .50   28.34   30.65   31.06   31.11
 .75   31.02   33.12   33.53   33.72
 1.00   33.16   35.18   35.52   35.68
表VII具有不同优化方法的PSNR的比较(512×512的Lena图像)
 比率(bpp)   定制基线   基于霍夫曼编码的联合优化[1]   基于霍夫曼编码的联合优化+基于上下文的算术编码   基于上下文的算术编码的联合优化
 .25   31.63   32.37   32.92   32.96
 .50   34.90   35.75   36.18   36.22
 .75   36.62   37.60   38.07   38.11
 1.00   37.91   39.13   39.46   39.53
[00157]本发明还可以有其他的变化和改进。例如,以上在部分II中描述的上下文模型也可以很容易地由其他上下文模型替代。而且,虽然以上描述的本发明的方面依赖于(run,size)对和对(run,level),但本领域的技术人员可以清楚地明白,通过来自基于指数的值而不是来自系数指数的尺寸和水平,可以使用其他的(run,index derivative)对。所有的这种类似的修改或改变都被认为是在由所附权利要求所限定的本发明的范围中的。

Claims (117)

1、一种在给定量化表和行程指数微分编码分布下通过确定由确定成本的序列对(run,index derivative)所表示的确定成本的n个系数指数序列而压缩n个系数序列的方法,其中每个序列对(run,index derivative)限定了相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个(run,index derivative)对限定了表示特定值的多个连续指数的行程值(run value)、和在特定值的连续指数的数量后的指数值所获得的基于指数的值,该方法包括步骤:
(a)使用给定的量化表和行程指数微分编码分布来为多个可能的序列对(run,index derivative)制订成本函数;
(b)将该成本函数提供给在多个可能的序列对(run,index derivative)中的每个可能的序列以确定关联成本;和
(c)基于多个可能的序列对(run,index derivative)的每一个的关联成本从多个可能的序列对(run,index derivative)中选择确定成本的序列对(run,indexderivative);并基于行程指数微分编码分布使用熵编码对相应选定的序列对(run,index derivative)编码。
2、根据权利要求1的方法,其中步骤(b)包括,在多个可能的序列对(run,index derivative)中为每个可能的序列对(run,index derivative):
(i)确定n个系数指数的相应序列;
(ii)使用给定量化表和相应n个系数指数序列确定相应的n个量化的系数序列;
(iii)确定在n个系数序列和相应的n个量化的系数序列间的失真;
(iv)确定从使用给定的行程尺寸分布所得到总的压缩率以对序列对(run,index derivative)编码;和
(v)确定关联成本作为失真和总的压缩率的函数。
3、根据权利要求1的方法,其中步骤(c)包括:
(i)以与n个系数序列一一对应的关系提供n个超级节点序列,其中每个超级节点包括至少一个节点,以便每个系数Ci具有相应的第ith个超级节点,其中i大于等于1且小于等于n;
(ii)提供前述的初始节点和跟随n个节点序列的末端节点;
(iii)在包括了初始节点、超级节点以及末端节点的节点对之间提供多个连接以表示可能的(run,index derivative)对;
(iv)通过为在多个连接中的每个连接确定关联增加成本而确定在多个可能的序列中每个序列的关联成本;
(v)从多个连接确定最小连接成本序列,其中连接序列经由至少一个超级节点从初始节点延伸到末端节点;和
(vi)从最小成本的连接序列确定确定的成本的序列对(run,indexderivative)。
4、根据权利要求3的方法,其中步骤(c)(v)进一步包括使用动态编程在多个连接中找出最小成本的连接序列,其中该最小成本的连接序列经由至少一个超级节点从初始节点延伸到末端节点。
5、根据权利要求3的方法,其中步骤(c)(iv)还包括:
(i)为表示关联(run,index derivative)对的每个连接,从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点限定增加率成本,作为所需要的位数以对关联的(run,index derivative)对的行程值和从关联的(run,indexderivative)对得到的基于指数的值进行编码;
(ii)为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定增加失真成本,作为当系数Ci被量化为从关联的(run,indexderivative)对得到的与基于指数的值关联的值和从系数Ci-r到系数Ci-1出现的所有的r个系数都被量化为特定值时的失真;和
(iii)为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定关联增加成本,作为增加失真成本和增加率成本的函数。
6、根据权利要求3的方法,其中每个(run,index derivative)对为对(run,level),以便基于指数的值被限定为水平值,其被限定为特定值的连续指数的数量后的指数值。
7、根据权利要求6的方法,其中在包括了初始节点、超级节点、和末端节点的多个节点间提供多个连接,包括:
(i)为在至少具有包括在n个超级节点的序列中的该超级节点之前的初始节点的前趋节点的最大行程数的n个超级节点序列中的每个节点,建立将该超级节点连接到在包括了在该超级节点之前的初始节点的节点的最大行程数中的每个节点的最大连接水平数,其中在该连接的最大水平数的每个连接相应于不同的水平值;
(ii)为在具有比包括了在n个超级节点序列中的该超级节点之前的初始节点的前趋节点的最大行程数量要少的n个超级节点的序列中的每个节点,建立将该超级节点连接到包括在该超级节点之前的初始节点的所有节点的最大连接水平数,其中在最大水平连接数中的每个连接相应于不同的水平值;和
(iii)为在n个超级节点序列中的每个节点和初始节点,建立到末端节点的单独连接。
8、根据权利要求7的方法,其中,在步骤(c)中,在相应确定成本的序列对(run,level)中每个对(run,level)的行程值和水平值都单独编码。
9、根据权利要求8的方法,其中
n个系数序列包括第一组系数和与第一组系数不相交的第二组系数;
步骤(c)包括根据下面的步骤对在相应的确定成本的序列对(run,level)中的每个对(run,level)的行程值编码:
如果相应于在与行程值关联的特定值的连续指数的数量之前的指数的系数在第一组系数中,则指数的水平值和顺序位置在n个系数序列中的行程关联的特定值的连续指数的数量之前,和
如果相应于在与行程值关联的特定值的连续指数的数量之前的指数的系数在第二组系数中,则该指数的顺序位置在n个系数序列中的行程关联的特定值的连续指数的数量之前。
10、根据权利要求9的方法,其中
用于在第一组系数中的每个系数的关联超级节点包括两个关联的节点;
用于在第二组系数中的每个系数的关联超级节点包括单个关联的节点;和
在超级节点对间的多个连接包括在表示多个对(run,level)的非关联节点对间的多个连接。
11、根据权利要求10的方法,其中在多个超级节点间提供多个连接,进一步包括:
(i)为在n个超级节点序列中的每个超级节点,使用由给定量化表限定的硬决策量化器来确定输出水平以量化在n个系数序列中相应的系数;
(ii)为在至少具有在n个超级节点序列中该超级节点之前最大行程数量的前趋节点的n个节点序列中的每个超级节点和初始节点,建立将该超级节点中的节点连接到在该超级节点之前的最大行程数节点(为初始节点或超级节点)中的每个节点的缩减数量的连接,其中在缩减数量的连接中的每个连接相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;
(iii)为在具有少于在n个超级节点序列中在该超级节点之前的最大行程数的前趋节点的n个超级节点序列中的每个超级节点和初始节点,建立将该超级节点中的节点连接到在该超级节点之前的所有节点(为初始节点或超级节点)的缩减数量的连接,其中在缩减数量的连接中的每个连接相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;和
(iv)为在n个超级节点序列中的每个节点和初始节点,建立到末端节点的单个连接。
12、一种通过确定输出量化表、由确定成本的序列对(run,indexderivative)所表示的确定成本的n个系数指数序列、和行程指数微分编码分布来压缩n个系数指数的方法,其中每个序列对(run、index derivative)限定了相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个(run,index derivative)对限定了表示特定值的多个连续指数的行程值(run value)、和在特定值的连续指数的数量后的指数值所获得的基于指数的值,其中,n个系数指数的序列和量化表一起确定了n个软决策量化的系数的序列,该方法包括步骤:
(a)选择第0th个量化表;
(b)选择第0th个行程指数微分编码分布;
(c)将计数器t设定为0;
(d)使用第tth个量化表和行程指数微分代码分布来制定用于第tth多个可能的(run,index derivative)对的第tth个成本函数;和
(e)将该第tth个成本函数提供给在第tth多个可能的序列对(run,indexderivative)中的每个可能的序列以确定第tth个关联成本;
(f)基于该第tth个关联成本从第tth多个可能的序列对(run,indexderivative)中选择第tth个确定成本的序列对(run,index derivative);
(g)如果该第tth个确定成本的序列对(run,index derivative)与第tth个量化表和行程指数微分分布一起满足选择标准,则选择该第tth个确定成本的序列对(run,index derivative)作为n个系数指数确定成本的序列而该第tth个量化表作为输出量化表,否则就从该第tth个确定成本的序列对(run,index derivative)通过将t加一而确定第(t+1)th个量化表和行程指数微分编码分布,同时返回到步骤
(d);和
(h)基于第tth个行程指数微分编码分布,使用熵编码对相应选定的确定成本的序列对(run,index derivative)编码。
13、根据权利要求12的方法,其中步骤(b)包括使用第0th个量化表以硬决策的方式量化n个系数序列,以确定(run,index derivative)对的开始序列,接着选择(run,index derivative)对的开始序列的行程指数微分编码分布作为第0th个行程指数微分编码分布。
14、根据权利要求12的方法,其中步骤(e)还包括为在多个可能的序列对(run,index derivative)中的每个可能的序列对(run,index derivative):
(i)确定相应的n个系数指数序列;
(ii)使用第tth个量化表和相应n个系数指数序列确定相应的n个量化的系数序列;
(iii)确定在n个系数序列和相应的n个量化的系数序列间的失真;
(iv)确定从使用第tth个行程指数微分编码分布所得到总的压缩率,以对序列对(run,index derivative)编码;和
(v)确定关联成本作为失真和总的压缩的函数。
15、根据权利要求12的方法,其中步骤(f)包括
(i)以与n个系数序列一一对应的关系提供n个超级节点序列,其中每个超级节点包括至少一个节点,以便每个系数Ci具有相应的第ith个超级节点,其中i大于等于1且小于等于n;
(ii)提供前述的初始节点和跟随n个超级节点序列的末端节点;
(iii)在包括了初始节点、超级节点以及末端节点的节点对之间提供多个连接以表示可能的(run,index derivative)对;
(iv)通过为在多个连接中的每个连接确定关联增加成本而为多个可能的序列中每个序列确定关联成本;
(v)从多个连接确定最小连接成本序列,其中连接序列经由至少一个超级节点从初始节点延伸到末端节点;和
(vi)从最小成本的连接序列确定确定的成本的序列对(run,indexderivative)。
16、根据权利要求15的方法,其中步骤(f)(iv)进一步包括:
(i)为表示关联(run,index derivative)对的每个连接,从初始节点和第(i-r-1)th个超级节点指一到第ith个超级节点限定增加率成本,作为所需要的位数以对关联的(run,index derivative)对的行程值和从关联的(run,indexderivative)对得到的基于指数的值进行编码;
(ii)为从初始节点和第(i-r-1)th个超级节点指一到第ith个超级节点的每个连接限定增加失真成本,作为当系数Ci被量化为与基于指数的值关联的值和从系数Ci-r-1到系数Ci-1出现的所有的r个系数都被量化为特定值时的失真;和
(iii)为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定关联增加成本,作为增加失真成本和增加率成本的函数。
17、根据权利要求15的方法,其中步骤(f)(v)进一步包括包括使用动态编程来在多个连接中找出最小成本的连接序列,其中该最小成本的连接序列经由至少一个超级节点从初始节点延伸到末端节点。
18、根据权利要求12的方法,其中在步骤(g)中的第(t+1)th量化表通过解出二次方程而从第tth个确定成本的序列对(run,index derivative)得到。
19、根据权利要求12的方法,其中选择在步骤(g)中的第(t+1)th行程指数微分编码分布作为第tth个确定成本的序列对(run,index derivative)的经验行程指数微分编码分布。
20、根据权利要求15的方法,其中每个(run,index derivative)对是(run,level)对,以便限定基于指数的值为水平值,其被限定为特定值的连续指数数量后的指数值。
21、根据权利要求20的方法,其中在多个包括了初始节点、超级节点和末端节点的节点间提供多个连接包括:
(i)为在至少具有包括原始节点和在n个超级节点的序列中的该超级节点之前的任何超级节点的前趋节点的最大行程数的n个超级节点序列中的每个节点,建立将该超级节点连接到该超级节点之前的节点的最大行程数中的每个节点的最大连接水平数,其中在该连接的最大水平数中的每个节点相应于不同的水平值;
(ii)为在由原始节点超前的n个超级节点序列中的该超级节点之前的前趋节点的最大行程数量要少的n个超级节点的序列中的每个节点,建立将该超级节点连接到包括在该超级节点之前的初始节点的所有节点的最大连接水平数,其中在最大水平连接数中的每个连接相应于不同的水平值;和
(iii)为在由原始节点超前的n个超级节点序列中的每个节点,建立到末端节点的单独连接。
22、根据权利要求20的方法,其中,在步骤(h)中,在相应确定成本的序列对(run,level)中每个对(run,level)的行程值和水平值都单独编码。
23、根据权利要求22的方法,其中
n个系数序列包括第一组系数和与第一组系数不相交的第二组系数;
步骤(f)包括根据下述步骤对在相应的确定成本的序列对(run,level)中的每个对(run,level)的行程值编码:
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数在第一组系数中,则指数的水平值和顺序位置在n个系数序列中的与行程关联的特定值的连续系数的数量之前,和
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数在第二组系数中,则该系数的顺序位置在n个系数序列中的与行程关联的特定值的连续系数的数量之前。
24、根据权利要求23的方法,其中
用于在第一组系数中的每个系数的关联超级节点包括两个关联的节点;
用于在第二组系数中的每个系数的关联超级节点包括单个关联的节点;和
在超级节点对间的多个连接包括在表示多个对(run,level)的非关联节点对间的多个连接。
25、根据权利要求24的方法,其中在多个超级节点间提供多个连接进一步包括:
(i)为在n个超级节点序列中的每个超级节点,使用由给定量化表限定的硬决策量化器来确定输出水平,以量化在n个系数序列中相应的系数;
(ii)为在至少具有由原始节点超前的n个超级节点序列中该超级节点之前的原始阶段的前趋节点的最大行程数量的n个超级节点序列中的每个超级节点,建立将该超级节点中的节点连接到在该超级节点之前的最大行程数节点(为初始节点或超级节点)中的每个节点的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;
(iii)为在具有少于由原始节点超前的n个超级节点序列中该超级节点之前的最大行程数的前趋节点的n个超级节点序列中的每个超级节点,建立将该超级节点中的节点连接到在该超级节点之前的所有节点的缩减数量连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;和
(iv)为在由原始节点超前的n个超级节点序列中的每个节点,建立到末端节点的单个连接。
26、一种通过联合确定输出量化表、输出行程指数微分分布而为在n个系数序列的序列中的n个系数的每个序列、由最终确定成本的序列对(run,indexderivative)表示的最终确定成本的系数指数序列而压缩n个系数序列的序列的方法,其中每个序列对(run,index derivative)限定相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个(run,index derivative)对限定了表示特定值的多个连续指数的行程值(run value)、在特定值的连续指数的数量后从指数值所获得的基于指数的值,其中系数指数序列与量化表一起确定n个软决策量化的系数序列,该方法包括步骤:
(a)选择第0th个量化表;
(b)选择第0th个行程指数微分编码分布;
(c)设定计数器t为0;
(d)为在n个系数序列的序列中的n个系数的每个序列,
(i)使用第tth个量化表和行程指数微分编码分布来为关联的第tth多个可能的序列对(run,index derivative)制定第t个成本函数;
(ii))将该成本函数提供给在关联的第tth多个可能的序列对(run,indexderivative)中的每个可能的序列以确定关联成本;
(iii)基于该关联成本从关联的第tth多个可能的序列对(run,indexderivative)中选择关联的第t个确定成本的序列对(run,index derivative);
(e)在步骤(d)后,将该总成本函数提供给第tth个关联的确定成本序列对(run,index derivative),用于n个系数序列的序列中的n个系数的每个序列,以确定第tth个总的成本;
(f)如果该第tth个总的成本满足选择标准,则选择第tth个量化表和行程指数微分编码分布作为输出量化表和输出行程指数微分编码分布,并且为在n个系数序列的序列中的n个系数的每个序列,将由最终的确定成本的序列对(run,index derivative)所表示的最终确定成本的系数指数序列作为关联的第tth个序列对(run,index derivative);否则就从该第tth个确定成本的序列对(run,index derivative)选择的序列通过将t加一而确定第(t+1)th个量化表和行程指数微分编码分布,同时返回到步骤(d);和
(g)使用霍夫曼编码对相应选定的序列对(run,index derivative)编码。
27、根据权利要求26的方法,其中步骤(b)包括:对n个系数的序列的序列中的n个系数的每个序列,使用第0th个量化表以硬决策的方式量化n个系数序列,以确定序列对(run,index derivative)的开始序列,接着选择序列对(run、index derivative)的开始序列的行程指数微分编码分布作为第0th个行程指数微分编码分布。
28、根据权利要求26的方法,其中步骤(d)还包括,对于n个系数序列中的n个系数的每个序列,和对于关联的第tth多个可能的序列对(run,indexderivative)中的每个可能的序列对(run,index derivative):
确定相应的n个系数指数序列;
使用第tth个量化表和相应n个系数指数序列确定相应的n个量化的系数序列;
确定在n个系数序列和相应的n个量化的系数序列间的关联失真;
确定从使用第tth个行程指数微分编码分布所得到关联的总的压缩率以对序列对(run,index derivative)编码;和
确定关联成本作为失真和总的压缩率的函数。
29、根据权利要求26的方法,其中步骤(d)包括对于n个系数序列的序列中的n个系数的每个序列:
以与n个系数序列一一对应的关系提供n个超级节点序列,其中每个超级节点包括至少一个节点,以便每个系数Ci具有相应的第ith个超级节点,其中i大于等于1且小于等于n;
提供前述的初始节点和跟随n个超级节点序列的末端节点;
在包括了初始节点、超级节点以及末端节点的节点对之间提供多个连接以表示关联的第个tth多个可能的序列对(runn,index derivative);
为在多个连接中的每个连接确定关联成本而作为关联的增加成本;
从多个连接确定最小连接成本序列,其中连接序列经由至少一个超级节点从初始节点延伸到末端节点;和
从最小成本的连接序列确定确定的成本的序列对(run,index derivative)。
30、根据权利要求29的方法,其中步骤(d)进一步包括,对于n个系数序列的序列中的n个系数的每个序列,使用动态编程找出在多个连接中最低成本的连接序列,其中连接序列从初始节点经由至少一个超级节点延伸至末端节点。
31、根据权利要求29的方法,其中步骤(d)进一步包括,对于n个系数序列的序列中的n个系数的每个序列,
(i)为表示从初始节点和第(i-r-1)th个超级节点之一到第i个超级节点的关联(run,index derivative)对的每个连接限定增加率成本,作为所需要的位数使用第tth个行程指数微分编码分布对关联(run,index derivative)对的行程值和从关联(run,index derivative)对得到的基于指数的值进行编码;
(ii)为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定增加失真成本,作为当系数Ci被量化为与基于指数的值关联的值和从系数Ci-r到系数Ci-1出现的所有的r个系数都被量化为特定值时的失真;和
(iii)为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定关联增加成本,作为增加失真成本和增加率成本的函数。
32、根据权利要求29的方法,其中每个(run,index derivative)对是对(run,level),以便限定基于指数的值为水平值,其被限定为在特定值的连续指数数量后的指数值。
33、根据权利要求32的方法,其中在多个包括了初始节点、超级节点和末端节点的节点间提供多个连接,包括:
为在至少具有包括有在n个超级节点中的该超级节点之前的初始节点的前趋节点的最大行程数的n个超级节点序列中的每个超级节点,建立将该超级节点连接到在包括了在该超级节点之前的初始节点的节点的最大行程数中的每个节点的最大连接水平数,其中在该连接的最大水平数相应于不同的水平值;
为在具有比包括了在n个超级节点序列中的该超级节点之前的初始节点的前趋节点的最大行程数量要少的n个超级节点的序列中的每个超级节点,建立将该超级节点连接到包括在该超级节点之前的初始节点的所有节点的最大连接水平数,其中在最大水平连接数中的每个连接相应于不同的水平值;和
为在n个超级节点序列中的每个节点和初始节点,建立到末端节点的单独连接。
34、根据权利要求26的方法,其中在步骤(f)中的第(t+1)th量化表通过解出二次方程而从第tth个确定成本的序列对(run,index derivative)的选定序列而得到。
35、根据权利要求26的方法,其中在步骤(f)中的第(t+1)th行程指数微分编码分布从用于在n个系数序列的序列中的n个系数的所有序列的所有第tth个确定成本的序列对(run,index derivative)而得到。
36、根据权利要求32的方法,其中在步骤(g)中,在相应确定成本的序列对(run,level)中的每个对(run,level)的行程值和水平值都单独编码。
37、根据权利要求36的方法,其中
n个系数序列的序列中的n个系数的每个序列包括第一组系数和与第一组系数不相交的第二组系数;
步骤(g)包括根据下述步骤对在n个系数序列的序列中的n个系数的每个序列,在相应的确定成本的序列对(run,level)中的每个对(run,level)的行程值编码:
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数在第一组系数中,则指数的水平值和顺序位置在与n个系数序列中的行程关联的特定值的连续系数的数量之前,和
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数在第二组系数中,则该系数的顺序位置在与n个系数序列中的行程关联的特定值的连续系数的数量之前。
38、根据权利要求37的方法,其中对于n个系数序列的序列中的n个系数的每个序列,
用于在第一组系数中的每个系数的关联超级节点包括两个关联的节点;
用于在第二组系数中的每个系数的关联超级节点包括单个关联的节点;和
在超级节点对间的多个连接包括在表示多个对(run,level)的非关联节点对间的多个连接。
39、据权利要求38的方法,其中为在n个系数序列的序列中的n个系数的每个序列,在多个超级节点间提供多个连接进一步包括:
(i)对于n个超级节点序列中的每个超级节点,使用由给定量化表限定的硬决策量化器来确定输出水平,以量化在n个系数序列中相应的系数;
(ii)为在至少具有由初始节点超前的n个超级节点序列中该超级节点之前的初始节点最大行程数量的前趋节点的n个超级节点序列中的每个超级节点,建立将该超级节点中的节点连接到在该超级节点之前的最大行程数节点中的每个节点的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;
(iii)为在具有少于由初始节点超前的n个超级节点序列中该超级节点之前的最大行程数的前趋节点的n个超级节点序列中的每个超级节点,建立将该超级节点中的节点连接到在该超级节点之前的所有节点的缩减数量的连接,其中在缩减数量的连接中的每个连接相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;和
(iv)为由初始节点超前的n个超级节点序列中的每个节点,建立到末端节点的单个连接。
40、一种在给定量化表和行程指数微分编码分布下通过确定由确定成本的序列对(run,index derivative)所表示的确定成本的n个系数序列而压缩n个系数序列的数据处理系统,其中每个序列对(run,index derivative)限定相应的系数指数序列,以便(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个序列对(run,indexderivative)限定了表示特定值的多个连续指数的行程值(run value),和在特定值的连续指数的数量后的指数值所获得的基于指数的值,该数据处理系统包括:
(a)初始化装置,其使用给定的量化表和行程指数微分编码分布来为多个可能的序列对(run index derivative)制定成本函数;和
(b)计算装置,其用来将该成本函数提供给在多个可能的序列对(run,index derivative)中的每个可能序列以确定关联成本;基于多个可能的序列对(run,index derivative)中的每个的关联成本而从多个可能的序列对(run,index derivative)中选择确定成本的序列对(run,index derivative);并基于行程指数微分编码分布使用熵编码对相应选定的确定成本的序列对(run,index derivative)编码。
41、根据权利要求40的数据处理系统,其中计算装置进一步用来为在多个可能的序列对(run,index derivative)中为每个可能的序列对(run,indexderivative)执行以下步骤:
(i)确定n个系数指数的相应序列;
(ii)使用给定量化表和相应n个系数指数序列确定相应的n个量化的系数序列;
(iii)确定在n个系数序列和相应的n个量化的系数序列间的失真;
(iv)确定从使用给定的行程尺寸微分编码分布所得到总的压缩率以对序列对(run,index derivative)编码;和
(v)确定关联成本作为失真和总的压缩率的函数。
42、根据权利要求40的数据处理系统,其中计算装置进一步用来执行步骤:
(i)以与n个系数序列一一对应的关系提供n个超级节点序列,其中每个超级节点包括至少一个节点,以便每个系数Ci具有相应的第ith个超级节点,其中i大于等于1且小于等于n;
(ii)提供前述的初始节点和跟随n个节点序列的末端节点;
(iii)在包括了初始节点、超级节点以及末端节点的节点对之间提供多个连接以表示可能的(run,index derivative)对;
(iv)通过为在多个连接中的每个连接确定关联增加成本而确定在多个可能的序列中每个序列的关联成本;
(v)从多个连接确定最小连接成本序列,其中连接序列经由至少一个超级节点从初始节点延伸到末端节点;和
(vi)从最小成本的连接序列确定确定成本的序列对(run,indexderivative)。
43、根据权利要求42的数据处理系统,其中计算装置进一步用来使用动态编程来在多个连接中找出最小成本的连接序列,其中该最小成本的连接序列经由至少一个超级节点从初始节点延伸到末端节点。
44、根据权利要求42的数据处理系统,其中计算装置进一步用来执行步骤:
(i)为表示关联(run,index derivative)对的每个连接,从初始节点和(第i-r-1)th个超级节点之一到第ith个超级节点限定增加率成本,作为所需要的位数以对关联的(run,index derivative)对的行程值和从关联的(run,indexderivative)对得到的基于指数的值进行编码;
(ii)为每个连接从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点限定增加失真成本,作为当系数Ci被量化为与从关联的(run,indexderivative)对得到的基于指数的值关联的值和从系数Ci-r到系数Ci-1出现的所有的r个系数都被量化为特定值时的失真;和
(iii)为从初始节点和第(i-r-1个)th超级节点之一到第ith个超级节点的每个连接限定关联增加成本,作为增加失真成本和增加率成本的函数。
45、根据权利要求42的数据处理系统,其中每个(run,index derivative)对为对(run,level),以便基于指数的值被限定为水平值,该水平值被限定为在特定值的连续指数数量后的指数值。
46、根据权利要求45的数据处理系统,其中在包括了初始节点、超级节点、和末端节点的多个节点间提供多个连接,包括:
(i)为在至少包括在n个超级节点中的该超级节点之前的初始节点的前趋节点的最大行程数的n个超级节点序列中的每个节点,建立将该超级节点连接到包括了在该超级节点之前的初始节点的节点的最大行程数中的每个节点的最大连接水平数,其中在该连接的最大水平数的每个连接相应于不同的水平值;
(ii)为在具有比包括了在n个超级节点序列中的该超级节点之前的初始节点的前趋节点的最大行程数量要少的n个超级节点的序列中的每个超级节点,建立将该超级节点连接到包括该超级节点之前的初始节点的所有节点的最大连接水平数,其中在最大水平连接数中的每个连接相应于不同的水平值;和
(iii)为在n个超级节点序列中的每个节点和初始节点,建立到末端节点的单独连接。
47、根据权利要求46的数据处理系统,其中在相应确定成本的序列对(run,level)中每个对(run,level)的行程值和水平值都单独编码。
48、根据权利要求46的数据处理系统,其中
n个系数序列包括第一组系数和与第一组系数不相交的第二组系数;
计算装置进一步基于下述步骤对在相应的确定成本的序列对(run,level)中的每个对(run,level)的行程值编码:
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数在第一组系数中,则指数的水平值和顺序位置在与n个系数序列中的行程关联的特定值的连续系数的数量之前,和
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数在第二组系数中,则该系数的顺序位置在与n个系数序列中的行程关联的特定值的连续系数的数量之前。
49、根据权利要求48的数据处理系统,其中
用于在第一组系数中的每个系数的关联超级节点包括两个关联的节点;
用于在第二组系数中的每个系数的关联超级节点包括单个关联的节点;和
在超级节点对间的多个连接包括在表示多个对(run,level)的非关联节点对间的多个连接。
50、根据权利要求49的数据处理系统,其中在多个超级节点间提供多个连接,进一步包括:
(i)为在n个超级节点序列中的每个超级节点,使用由给定量化表限定的硬决策量化器来确定输出水平以量化在n个系数序列中相应的系数;
(ii)为在至少具有在n个超级节点序列中该超级节点之前最多行程数量的前趋节点的n个节点序列中的每个超级节点和初始节点,建立将该超级节点中的节点连接到在该超级节点之前的最大行程数节点(为初始节点或超级节点)中的每个节点的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;
(iii)为在具有少于在n个超级节点序列中该超级节点之前的最大行程数的前趋节点的n个超级节点序列中的每个超级节点和初始节点,建立将该超级节点中的节点连接到在该超级节点之前的所有节点(为初始节点或超级节点)的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;和
(iv)为在n个超级节点序列中的每个节点和初始节点,建立到末端节点的单个连接。
51、一种通过确定输出量化表、由确定成本的序列对(run,indexderivative)表示的确定成本的n个系数指数序列和行程指数微分编码分布而压缩n个系数序列的数据处理系统,每个序列对(run,index derivative)限定相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个(run,index derivative)对都限定了表示特定值的多个连续指数的行程值(run value)、在特定值的连续指数的数量后的指数值所获得的基于指数的值,其中n个系数指数序列与量化表一起确定n个软决策量化系数序列,该数据处理系统包括:
(a)初始化装置,其选择第0th个量化表和第0th个行程指数微分编码分布,并将计数器t设定为0;
(b)计算装置,(i)使用第tth个量化表和行程指数微分编码分布来为第tth多个可能的序列对(run,index derivative)制订第tth个成本函数;(ii)将该第tth个成本函数提供给在第tth多个可能的序列对(run,index derivative)中每个可能的序列以确定第tth个关联成本;(iii)基于该第tth个关联成本从第tth多个可能的序列对(rur,index derivative)中选定第tth个确定成本的序列对(run,indexderivative);(iv)如果该第tth个确定成本的序列对(run,index derivative)与第tth个量化表和行程指数微分编码分布满足选择标准,则选定该第tth个确定成本的序列对(run,index derivative)作为n个系数指数确定成本的函数,而将第tth个量化表作为输出量化表,否则就从该第tth个确定成本的序列对(run,index derivative)通过将t加一而确定第(t+1)th个量化表和行程指数微分编码分布,同时返回到步骤(i);和(v)基于第tth个行程指数微分编码分布使用熵编码对相应选定的确定成本的序列对(run,index derivative)编码。
52、根据权利要求51的数据处理系统,其中初始化装置进一步用来使用第0th个量化表以硬决策的方式量化n个系数序列以确定(run,index derivative)对的开始序列,然后,选择(run、index derivative)对的开始序列的行程指数微分编码分布作为第0th个行程指数微分编码分布。
53、根据权利要求51的数据处理系统,其中计算装置用来为在多个可能的序列对(run,index derivative)中的每个可能的序列对(run,index derivative)执行步骤:
确定相应的n个系数指数序列;
使用第tth个量化表和相应n个系数指数序列确定相应的n个量化的系数序列;
确定在n个系数序列和相应的n个量化的系数序列间的失真;
确定从使用第tth个行程指数微分编码分布所得到总的压缩率以对序列对(run,index derivative)编码;和
确定关联成本作为失真和总的压缩率的函数。。
54、根据权利要求51的数据处理系统,计算装置进一步用来通过以下步骤而为在多个可能的序列中的每个序列确定关联成本:
以与n个系数序列一一对应的关系提供n个超级节点序列,其中每个超级节点包括至少一个节点,以便每个系数Ci具有相应的第ith个超级节点,其中i大于等于1且小于等于n;
提供前述的初始节点和跟随n个节点序列的末端节点;
在包括了初始节点、超级节点以及末端节点的节点对之间提供多个连接以表示可能的(run,index derivative)对;
通过为在多个连接中的每个连接确定关联增加成本而确定在多个可能的序列中每个序列的关联成本;
从多个连接确定最小连接成本序列,其中连接序列经由至少一个超级节点从初始节点延伸到末端节点;和
从最小成本的连接序列确定确定成本的序列对(run,index derivative)。
55、根据权利要求54的数据处理系统,其中计算装置进一步用来通过以下步骤为在多个连接中的每个连接确定关联增加成本:
(i)为表示关联(run,index derivative)对的每个连接,从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点限定增加率成本,作为所需要的位数以对关联的(run,index derivative)对的行程值和从关联的(run,indexderivative)对得到的基于指数的值进行编码;
(ii)为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定增加失真成本,作为当系数Ci被量化为与指数的值关联的值和从系数Ci-r-1到系数Ci-1出现的所有的r个系数都被量化为特定值时的失真;和
(iii)为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定关联增加成本,作为增加失真成本和增加率成本的函数。
56、权利要求54的数据处理系统,其中计算装置进一步用来使用动态编程来在多个连接中找出最小成本的连接序列,其中该最小成本的连接序列经由至少一个超级节点从初始节点延伸到末端节点。
57、根据权利要求51的数据处理系统,其中第(t+1)th量化表通过解出二次方程而从第tth个确定成本的序列对(run,index derivative)得到。
58、根据权利要求51的数据处理系统,其中第(t+1)th行程指数微分编码分布作为第tth个确定成本的序列对(run,index derivative)的经验行程指数微分编码分布。
59、根据权利要求54的数据处理系统,其中每个(run,index derivative)对是对(run,level),以便限定基于指数的值为水平值,该水平值被限定为在特定值的连续指数数量后的指数值。
60、根据权利要求59的数据处理系统,其中在包括了初始节点、超级节点和末端节点的多个节点间提供多个连接包括:
(i)为在至少包括在n个超级节点和初始节点中的该超级节点之前的任意超级节点和初始节点的前趋节点的最大行程数的n个超级节点序列中的每个节点,建立将该超级节点连接到该超级节点之前的最大行程数节点中的每个节点的最大连接水平数,其中在该连接的最大水平数中的每个连接相应于不同的水平值;
(ii)为比由初始节点超前的n个超级节点序列中的该超级节点之前的前趋节点的最大行程数量要少的n个超级节点的序列中的每个节点,建立将该超级节点连接到包括在该超级节点之前的原始节点的节点的最大连接水平数,其中在最大水平连接数中的每个连接相应于不同的水平值;和
(iii)为由初始节点超前的n个超级节点序列中的每个节点,建立到末端节点的单独连接。
61、根据权利要求59的数据处理系统,其中计算装置进一步用来单独对在相应确定成本的序列对(run,level)中每个对(run,level)的行程值和水平值编码。
62、根据权利要求61的数据处理系统,其中
n个系数序列包括第一组系数和与第一组系数不相交的第二组系数;
计算装置用来对在相应的确定成本的序列对(run,level)中的每个对(run,level)的行程值基于以下而编码
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数在第一组系数中,则指数的水平值和顺序位置在与n个系数序列中的行程关联的特定值的连续系数的数量之前,和
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数在第二组系数中,则该系数的顺序位置在与n个系数序列中的行程关联的特定值的连续系数的数量之前。
63、根据权利要求62的数据处理系统,其中
用于在第一组系数中的每个系数的关联超级节点包括两个关联的节点;
用于在第二组系数中的每个系数的关联超级节点包括单个关联的节点;和
在超级节点对间的多个连接包括表示多个对(run,level)的非关联节点对间的多个连接。
64、根据权利要求63的数据处理系统,其中在多个超级节点间提供多个连接进一步包括:
(i)为在n个超级节点序列中的每个超级节点,使用由给定量化表限定的硬决策量化器来确定输出水平,以量化在n个系数序列中相应的系数;
(ii)为至少具有由初始节点超前的n个超级节点序列中该超级节点之前初始节点的最多行程数量的前趋节点的n个超级节点序列中的每个超级节点,建立将该超级节点中的节点连接到在该超级节点之前的最大行程数节点(为初始节点或超级节点)中的每个节点的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;
(iii)为在具有由初始节点超前的少于在n个超级节点序列中该超级节点之前的最大行程数的前趋节点的n个超级节点序列中的每个超级节点,建立将该超级节点中的节点连接到所有节点的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;和
(iv)为在由初始节点超前的n个超级节点序列中的每个节点,建立到末端节点的单个连接。
65、一种通过联合确定输出量化表、输出行程指数微分分布而为在n个系数序列的序列中的n个系数序列的每个、由最终确定成本的序列对(run,indexderivative)表示的最终确定成本的系数指数序列而压缩n个系数序列的序列的数据处理系统,其中每个序列对(run,index derivative)限定相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个(run,index derivative)对都限定了表示特定值的多个连续指数的行程值(run value)、在特定值的连续指数的数量后的指数值所获得的基于指数的值,其中系数指数序列与量化表一起确定n个软决策量化的系数序列,该数据处理系统:
(a)初始化装置,其用于选择第0th个量化表和第0th个行程指数微分编码分布,并设置计数器t等于0;
(b)计算装置,其为在n个系数序列的序列中的n个系数的每个序列:
(i)使用第tth个量化表和行程指数微分编码分布来为关联的第tth多个可能的序列对(run,index derivative)制定第tth个成本函数;
(ii)将该成本函数提供给在关联的第tth多个可能的序列对(run,indexderivative)中的每个可能的序列以确定关联成本;
(iii)基于该关联成本从关联的第tth多个可能的序列对(run,indexderivative)中选择关联的第tth个确定成本的序列对(run,index derivative);
(iv)在步骤(i)至(iii)后,为在n个系数序列的序列中的n个系数序列的每个而将该总的成本函数提供给第tth个关联的确定成本的序列对(run,indexderivative),以确定第tth个总的成本;
(v)如果该第tth个总的成本满足选择标准,则选择第tth个量化表和行程指数微分编码分布作为输出量化表和输出行程指数微分编码分布,并为在n个系数序列的序列中的n个系数序列的每个而将由最终确定成本的序列对(run,indexderivative)表示的最终确定成本的系数指数序列作为关联的第tth个序列对(run,index derivative);否则,通过将t加一而从第tth个确定成本的序列对(run,indexderivative)的选定序列中确定第(t+1)th个量化表和行程指数微分编码分布,并返回到步骤(i);和
(vi)使用霍夫曼编码对相应选定的序列对(run,index derivative)编码。
66、根据权利要求65的数据处理系统,其中初始化装置用来,使用第0th个量化表以硬决策的方式量化n个系数序列以确定(run,index derivative)对的开始序列,然后,选择(run、index derivative)对的开始序列的行程指数微分编码分布作为第0th个行程指数微分编码分布。
67、根据权利要求65的数据处理系统,其中计算装置进一步用来,为在n个系数序列中的n个系数的每个序列,和为在关联的第tth多个可能的序列对(run,index derivative)中的每个可能的序列对(run,index derivative):
确定相应的n个系数指数序列;
使用第tth个量化表和相应n个系数指数序列确定相应的n个量化的系数序列;
确定在n个系数序列和相应的n个量化的系数序列间的失真;
确定从使用第tth个行程指数微分编码分布所得到总的压缩率以对序列对(run,index derivative)编码;和
确定关联成本作为失真和总的压缩率的函数。
68、根据权利要求65的数据处理系统,计算装置进一步用来,为在n个系数序列的序列中的n个系数的每个序列:
以与n个系数序列一一对应的关系提供n个超级节点序列,其中每个超级节点包括至少一个节点,以便每个系数Ci具有相应的第ith个超级节点,其中i大于等于1且小于等于n;
提供前述的初始节点和跟随n个节点序列的末端节点;
在包括了初始节点、超级节点以及末端节点的节点对之间提供多个连接以表示可能的(run,index derivative)对;
通过为在多个连接中的每个连接确定关联增加成本而确定在多个可能的序列中每个序列的关联成本;
从多个连接确定最小连接成本序列,其中连接序列经由至少一个超级节点从初始节点延伸到末端节点;和
从最小成本的连接序列确定确定成本的序列对(run,index derivative)。
69、根据权利要求68的数据处理系统,其中计算装置进一步用来,为在n个系数序列中的n个系数的每个序列,使用动态编程找出在多个连接中最低成本的连接序列,其中连接序列从初始节点经由至少一个超级节点延伸至末端节点。
70、根据权利要求68的数据处理系统,其中计算装置进一步用来,为在n个系数序列中的n个系数的每个序列执行步骤:
为表示从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的关联(run,index derivative)对的每个连接限定增加率成本,作为所需要的位数使用行程指数微分编码分布对关联的(run,index derivative)对的行程值和从关联的(run,index derivative)对得到的基于指数的值进行编码;
为从初始节点和第(i-r-1)th个超级节点之一到第i个超级节点的每个连接限定增加失真成本,作为当系数Ci被量化为与基于指数的值关联的值和从系数Ci-r到系数Ci-1出现的所有的r个系数都被量化为特定值时的失真;和
为从初始节点和(第i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定关联增加成本,作为增加失真成本和增加率成本的函数。
71、根据权利要求68的数据处理系统,其中每个(run,index derivative)对是对(run,level),以便限定基于指数的值为水平值,该水平值被限定为在特定值的连续指数数量后的指数值。
72、根据权利要求71的数据处理系统,其中在包括了初始节点、超级节点和末端节点的多个节点间提供多个连接,包括:
为在至少具有在n个超级节点和初始节点序列中的该超级节点之前的初始节点的前趋节点的最大行程数的n个超级节点序列中的每个节点,建立将该超级节点连接到在包括了在该超级节点之前的初始节点的节点的最大行程数中的每个节点的最大连接水平数,其中在该连接的最大水平数中的每个连接相应于不同的水平值;
为在具有比包括了在n个超级节点序列中的该超级节点之前的初始节点的前趋节点的最大行程数量要少的n个超级节点的序列中的每个节点,建立将该超级节点连接到包括在该超级节点之前的初始节点的所有节点的最大连接水平数,其中在最大水平连接数中的每个连接相应于不同的水平值;和
为在n个超级节点序列中的每个节点和初始节点,建立到末端节点的单独连接。
73、根据权利要求65的数据处理系统,其中计算装置用来通过解出二次方程而从第tth个确定成本的序列对(run,index derivative)的选定序列而得到第(t+1)th量化表。
74、根据权利要求65的数据处理系统,其中计算装置用来从在n个系数序列的序列中的n个系数的所有序列的所有第tth个确定成本的序列对(run,index derivative)得到第(t+1)th行程指数微分编码分布。
75、根据权利要求71的数据处理系统,其中计算装置用来对在相应确定成本的序列对(run,level)中每个对(run,level)的行程值和水平值单独编码。
76、根据权利要求75的数据处理系统,其中
n个系数序列包括第一组系数和与第一组系数不相交的第二组系数;
计算装置根据以下步骤对n个系数序列中的序列的n个系数的每个序列在相应的确定成本的序列对(run,level)中的每个对(run,level)的行程值编码:
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数是在第一组系数中,则指数的水平值和顺序位置与在n个系数序列中的行程关联的特定值的连续系数的数量之前,和
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数是在第二组系数中,则该系数的顺序位置与在n个系数序列中的行程关联的特定值的连续系数的数量之前。
77、根据权利要求76的数据处理系统,其中
为在n个系数序列的序列中的n个系数的每个序列:
用于在第一组系数中的每个系数的关联超级节点包括两个关联的节点;
用于在第二组系数中的每个系数的关联超级节点包括单个关联的节点;和
在超级节点对间的多个连接包括在表示多个对(run,level)的非关联节点对间的多个连接。
78、根据权利要求77的数据处理系统,其中,为在n个系数序列的序列中的n个系数的每个序列,在多个超级节点间提供多个连接进一步包括:
为在n个超级节点序列中的每个超级节点,使用由给定量化表限定的硬决策量化器来确定输出水平以量化在n个系数序列中相应的系数;
为在至少具有在由初始节点超前的n个超级节点序列中该超级节点之前的初始节点的最多行程数量的前趋节点的n个节点序列中的每个超级节点,建立将该超级节点中的节点连接到在该超级节点之前的最大行程数节点中的每个节点的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;
为在具有少于在由初始节点超前的n个超级节点序列中该超级节点之前的最大行程数的前趋节点的n个超级节点序列中的每个超级节点,建立将该超级节点中的节点连接到在该超级节点之前的所有节点,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;和
为在由原始节点超前的n个超级节点序列中的每个节点,建立到末端节点的单个连接。
79、一种计算机程序产品,其使用在计算机系统上来通过在给定量化表和行程指数微分编码分布下通过确定由确定成本的序列对(run,index derivative)表示确定成本的n个系数指数序列来压缩n个系数序列,其中每个序列对(run,index derivative)都限定了相应的系数指数序列以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个(run,index derivative)对都限定了表示特定值的多个连续指数的行程值(run value)、和在特定值的连续指数的数量后的指数值所获得的基于指数的值,该计算机程序产品包括记录介质,和记录在记录介质上用来指示计算机系统执行以下步骤的装置:
(a)使用给定的量化表和行程指数微分编码来为多个可能的序列对(run,index derivative)制订成本函数;
(b)将该成本函数提供给在多个可能的序列对(run,index derivative)中的每个序列以确定关联成本;和
(c)基于可能的序列对(run,index derivative)的关联成本函数从多个可能的序列对(run,index derivative)中选择确定成本的序列对(run,index derivative);并基于行程指数微分编码分布使用熵编码对相应选定的序列对(run,indexderivative)编码。
80、根据权利要求79的计算机程序产品,其中步骤(b)包括,在多个可能的序列对(run,index derivative)中为每个可能的序列对(run,index derivative):
(i)确定n个系数指数的相应序列;
(ii)使用给定量化表和相应n个系数指数序列确定相应的n个量化系数序列;
(iii)确定在n个系数序列和相应的n个量化系数序列间的失真;
(iv)确定从使用给定的行程尺寸分布所得到总的压缩率以对序列对(run,index derivative)编码;和
(v)确定关联成本作为失真和总的压缩率的函数。
81、根据权利要求79的计算机程序产品,其中步骤(c)包括:
(i)以与n个系数序列一一对应的关系提供n个超级节点序列,其中每个超级节点包括至少一个节点,以便每个系数Ci具有相应的第ith个超级节点,其中i大于等于1且小于等于n;
(ii)提供前述的初始节点和跟随n个节点序列的末端节点;
(iii)在包括了初始节点、超级节点以及末端节点的节点对之间提供多个连接以表示可能的(run,index derivative)对;
(iv)通过为在多个连接中的每个连接确定关联增加成本而确定在多个可能的序列中每个序列的关联成本;
(v)从多个连接确定最小连接成本序列,其中连接序列经由至少一个超级节点从初始节点延伸到末端节点:和
(vi)从最小成本的连接序列确定确定成本的序列对(run,indexderivative)。
82、根据权利要求81的计算机程序产品,其中步骤(c)(v)进一步包括使用动态编程来在多个连接中找出最小成本的连接序列,其中该最小成本的连接序列经由至少一个超级节点从初始节点延伸到末端节点。
83、根据权利要求81的计算机程序产品,其中步骤(c)(iv)还包括:
(i)为表示从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的关联(run,index derivative)对的每个连接限定增加率成本,作为所需要的位数以对关联的(run,index derivative)对的行程值和从关联的(run,indexderivative)对得到的基于指数的值进行编码;
(ii)为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定增加失真成本,作为当系数Ci被量化为从关联的(run,indexderivative)对得到的与基于指数的值关联的值和从系数Ci-r到系数Ci-1出现的所有的r个系数都被量化为特定值时的失真;和
(iii)为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定关联增加成本,作为增加失真成本和增加率成本的函数。
84、根据权利要求81的计算机程序产品,其中每个(run,indexderivative)对为对(run,level),以便基于指数的值被限定为水平值,该水平值被限定为在特定值的连续指数数量后的指数值。
85、根据权利要求84的计算机程序产品,其中在包括了初始节点、超级节点、和末端节点的多个节点间提供多个连接,包括:
(i)为在至少具有在n个超级节点和初始节点中的该超级节点之前的初始节点的前趋节点的最大行程数的n个超级节点序列中的每个节点,建立将该超级节点连接到包括了在该超级节点之前的初始节点的节点的最大行程数中的每个节点的最大连接水平数,其中在该连接的最大水平数中的每个连接相应于不同的水平值;
(ii)为在具有比包括了在n个超级节点序列中的该超级节点之前的初始节点的前趋节点的最大行程数量要少的n个超级节点的序列中的每个节点,建立将该超级节点连接到包括在该超级节点之前的初始节点的所有节点的最大连接水平数,其中在最大水平连接数中的每个连接相应于不同的水平值;和
(iii)为在n个超级节点序列中的每个节点和初始节点,建立到末端节点的单独连接。
86、根据权利要求85的计算机程序产品,其中在步骤(c)中,在相应确定成本的序列对(run,level)中每个对(run,level)的行程值和水平值都单独编码。
87、根据权利要求86的计算机程序产品,其中
n个系数序列包括第一组系数和与第一组系数不相交的第二组系数;
步骤(c)包括根据以下步骤对在相应的确定成本的序列对(run,level)中的每个对(run,level)的行程值编码:
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数是在第一组系数中,则指数的水平值和顺序位置在与n个系数序列中的行程关联的特定值的连续系数的数量之前,和
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数是在第二组系数中,则该系数的顺序位置在与n个系数序列中的行程关联的特定值的连续系数的数量之前。
88、根据权利要求87的计算机程序产品,其中
用于在第一组系数中的每个系数的关联超级节点包括两个关联的节点;
用于在第二组系数中的每个系数的关联超级节点包括单个关联的节点;和
在超级节点对间的多个连接包括在表示多个对(run,level)的非关联节点对间的多个连接。
89、根据权利要求88的计算机程序产品,其中在多个超级节点间提供多个连接,进一步包括:
(i)为在n个超级节点序列中的每个超级节点,使用由给定量化表限定的硬决策量化器来确定输出水平以量化在n个系数序列中相应的系数;
(ii)为在至少具有在n个超级节点序列中该超级节点之前最多行程数量的前趋节点的n个节点序列中的每个超级节点和初始节点,建立将该超级节点中的节点连接到在该超级节点之前的最大行程数节点(为初始节点或超级节点)中的每个节点的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;
(iii)为在具有少于在n个超级节点序列中该超级节点之前的最大行程数的前趋节点和初始节点的n个超级节点序列中的每个超级节点,建立将该超级节点中的节点连接到在该超级节点之前的所有节点(为初始节点或超级节点)的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;和
(iv)为在n个超级节点序列中的每个节点和初始节点,建立到末端节点的单个连接。
90、一种计算机程序产品,其使用在计算机上来通过确定输出量化表、由确定成本的序列对(run,index derivative)所表示的确定成本的n个系数指数序列、和行程指数微分编码分布来压缩n个系数指数的方法,其中每个序列对(run、index derivative)限定了相应的系数指数序列,以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了有特定值的多个值,和(iii)每个(run,index derivative)对限定了表示特定值的多个连续指数的行程值(run value)、和在特定值的连续指数的数量后的指数值所获得的基于指数的值,该计算机程序产品包括记录介质,和记录在记录介质上用来指示计算机系统执行以下步骤的装置:
(a)选择第0th个量化表;
(b)选择第0th个行程指数微分编码分布;
(c)将计数器t设定为0;
(d)使用第tth个量化表和行程指数微分代码分布来制定用于第tth多个可能的(run,index derivative)对的第tth个成本函数;
(e)将该第tth个成本函数提供给在第tth多个可能的序列对(run,indexderivative)中的每个可能的序列以确定第tth个关联成本;
(f)基于该第tth个关联成本从第tth多个可能的序列对(run,indexderivative)中选择第tth个确定成本的序列对(run,index derivative);
(g)如果该第t个th确定成本的序列对(run,index derivative)与第tth个量化表和行程指数微分分布一起满足选择标准,则选择该第tth个确定成本的序列对(run,index derivative)作为n个系数指数确定成本的序列而该第tth个量化表作为输出量化表,否则就从该第tth个确定成本的序列对(run,index derivative)通过将t加一而确定第(t+1)th个量化表和行程指数微分编码分布,同时返回到步骤(d);和
(h)基于第t个th行程指数微分编码分布对相应选定的确定成本的序列对(run,index derivative)编码。
91、根据权利要求90的计算机程序产品,其中步骤(b)包括使用第0th个量化表以硬决策的方式量化n个系数序列以确定(run,index derivative)对的开始序列,接着选择(run,index derivative)对的开始序列的行程指数微分编码分布作为第0th个行程指数微分编码分布。
92、根据权利要求90的计算机程序产品,其中步骤(e)还包括为在多个可能的序列对(run,index derivative)中的每个可能的序列对(run,indexderivative):
(i)确定相应的n个系数指数序列;
(ii)使用第tth个量化表和相应n个系数指数序列确定相应的n个量化系数序列;
(iii)确定在n个系数序列和相应的n个量化的系数序列间的失真;
(iv)确定从使用第tth个行程指数微分编码分布所得到总的压缩率以对序列对(run,index derivative)编码;和
(v)确定关联成本作为失真和总的压缩率的函数。
93、根据权利要求90的计算机程序产品,其中步骤(f)包括
(i)以与n个系数序列一一对应的关系提供n个超级节点序列,其中每个超级节点包括至少一个节点,以便每个系数Ci具有相应的第ith个超级节点,其中i大于等于1且小于等于n;
(ii)提供前述的初始节点和跟随n个节点序列的末端节点;
(iii)在包括了初始节点、超级节点以及末端节点的节点对之间提供多个连接以表示可能的(run,index derivative)对;
(iv)通过为在多个连接中的每个连接确定关联增加成本而确定在多个可能的序列中每个序列的关联成本;
(v)从多个连接确定最小连接成本序列,其中连接序列经由至少一个超级节点从初始节点延伸到末端节点;和
(vi)从最小成本的连接序列确定确定成本的序列对(run,indexderivative)。
94、根据权利要求93的计算机程序产品,其中步骤(f)(iv)进一步包括:
(i)为表示从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的关联(run,index derivative)对的每个连接限定增加率成本,作为所需要的位数以对关联的(run,index derivative)对和从关联的(run,index derivative)对得到的基于指数的值进行编码;
(ii)为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定增加失真成本,作为当系数Ci被量化为与基于指数的值关联的值和从系数Ci-r-1到系数Ci-1出现的所有的r个系数都被量化为指定值时的失真;和
(iii)为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定关联增加成本,作为增加失真成本和增加率成本的函数。
95、根据权利要求93的计算机程序产品,其中步骤(f)(v)进一步包括使用动态编程来在多个连接中找出最小成本的连接序列,其中该最小成本的连接序列经由至少一个超级节点从初始节点延伸到末端节点。
96、根据权利要求90的计算机程序产品,其中在步骤(g)中的第(t+1)th量化表通过解出二次方程二从第tth个确定成本的序列对(run,index derivative)得到。
97、根据权利要求90的计算机程序产品,其中选择在步骤(g)中的第(t+1)th行程指数微分编码分布作为第tth个确定成本的序列对(run,indexderivative)的经验行程指数微分编码分布。
98、根据权利要求93的计算机程序产品,其中每个(run,indexderivative)对是对(run,level),以便限定基于指数的值为水平值,该水平值被限定为在特定值的连续指数数量后的指数值。
99、根据权利要求98的计算机程序产品,其中在包括了初始节点、超级节点和末端节点的多个节点间提供多个连接包括:
(i)为在至少具有包括在n个超级节点和初始节点中的该超级节点之前的初始节点和任意超级节点的前趋节点的最大行程数的n个超级节点序列中的每个节点,建立将该超级节点连接到在该超级节点之前的最大行程数节点的每个节点的最大连接水平数,其中在该连接的最大水平数相应于不同的水平值;
(ii)为在具有比包括了在由初始节点超前的n个超级节点序列中的该超级节点之前的初始节点的前趋节点的最大行程数量要少的n个超级节点的序列中的每个节点,建立将该超级节点连接到包括在该超级节点之前的初始节点的所有节点的最大连接水平数,其中在最大水平连接数中的每个连接相应于不同的水平值;和
(iii)为在n个超级节点序列中的每个节点和初始节点,建立到末端节点的单独连接。
100、根据权利要求98的计算机程序产品,其中,在步骤(h)中,在相应确定成本的序列对(run,level)中每个对(run,level)的行程值和水平值都单独编码。
101、根据权利要求100的计算机程序产品,其中
n个系数序列包括第一组系数和与第一组系数不相交的第二组系数;
步骤(f)包括对在相应的确定成本的序列对(run,level)中的每个对(run,level)的行程值基于以下而编码
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数在第一组系数中,则指数的水平值和顺序位置在与n个系数序列中的行程关联的特定值的连续系数的数量之前,和
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数在第二组系数中,则该系数的顺序位置在与n个系数序列中的行程关联的特定值的连续系数的数量之前。
102、根据权利要求101的计算机程序产品,其中
用于在第一组系数中的每个系数的关联超级节点包括两个关联的节点;
用于在第二组系数中的每个系数的关联超级节点包括单个关联的节点;和
在超级节点对间的多个连接包括在表示多个对(run,level)的非关联节点对间的多个连接。
103、103、根据权利要求102的计算机程序产品,其中在多个超级节点间提供多个连接进一步包括:
(i)为在n个超级节点序列中的每个超级节点,使用由给定量化表限定的硬决策量化器来确定输出水平以量化在n个系数序列中相应的系数;
(ii)为在至少具有在n个超级节点序列中该超级节点之前最多行程数量的前趋节点的n个节点序列中的每个超级节点和初始节点,建立将该超级节点中的节点连接到在该超级节点之前的最大行程数节点(为初始节点或超级节点)中的每个节点的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;
(iii)为在具有少于在n个超级节点序列中前于该超级节点的最大行程数的前趋节点和初始节点的n个超级节点序列中的每个超级节点,建立将该超级节点中的节点连接到在该超级节点之前的最大行程数节点(为初始节点或超级节点)中的每个节点的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;和
(iv)为在n个超级节点序列中的每个节点和初始节点,建立到末端节点的单个连接。
104、一种计算机程序产品,其使用在计算机上来通过联合确定输出量化表、输出行程指数微分分布而为在n个系数序列的序列中的n个系数序列的每个、由最终确定成本的序列对(run,index derivatuve)表示的最终确定成本的系数指数序列而压缩n个系数序列的序列的方法,其中每个序列对(run,index derivative)限定相应的系数指数序列以便,(i)在相应的系数指数序列中的每个指数为数字数,(ii)相应的系数指数序列包括了包括有特定值的多个值,和(iii)每个(run,index derivative)对都限定了表示特定值的多个连续指数的行程值(run value)、在特定值的连续指数的数量后的指数值所获得的基于指数的值,其中系数指数序列与量化表一起确定n个软决策(soft-decision)量化系数序列,该计算机程序产品包括记录介质,和记录在记录介质上用来指示计算机系统执行以下步骤的装置:
(a)选择第0th个量化表;
(b)选择第0th个行程指数微分编码分布;
(c)设定计数器t为0;
(d)为在n个系数序列的序列中的每个n个系数序列,
(i)使用第tth个量化表和行程指数微分编码分布来为关联的第tth多个可能的序列对(run,index derivative)制定用第tth个成本函数;
(ii)将该成本函数提供给在关联的第tth多个可能的序列对(run,indexderivative)中的每个可能的序列以确定关联成本;
(iii)基于该关联成本从关联的第tth多个可能的序列对(run,indexderivative)中选择关联的第tth个确定成本的序列对(run,index derivative);
(e)在步骤(d)后,将该总成本函数提供给在多个可能的序列对(run,index derivative)中的每个可能的序列,以确定第tth个总的成本;
(f)如果该第tth个总的成本满足选择标准,则选择第tth个量化表和行程指数微分编码分布作为输出量化表和输出行程指数微分编码分布,并且为在n个系数序列的序列中的每个n个系数序列,将由最终的确定成本的序列对(run,index derivative)所表示的最终确定成本的系数指数序列作为关联的第tth个序列对(run,index derivative);否则就从该第tth个确定成本的序列对(run,index derivative)通过将t加一而确定第(t+1)th个量化表和行程指数微分编码分布,同时返回到步骤(d);和
(g)使用霍夫曼编码分布对相应选定的确定成本的序列对(run,indexderivative)编码。
105、根据权利要求104的计算机程序产品,其中步骤(b)包括使用第0th个量化表以硬决策的方式量化n个系数序列以确定(run,index derivative)对的开始序列,接着选择run、index derivative)对的开始序列的行程指数微分编码分布作为第0th个行程指数微分编码分布。
106、根据权利要求105的计算机程序产品,其中步骤(d)还包括,为在n个系数序列中的n个系数的每个序列,和为在关联的第tth多个可能的序列对(run,index derivative)中的每个可能的序列对(run,index derivative):
确定相应的n个系数指数序列;
使用第tth个量化表和相应n个系数指数序列确定相应的n个量化系数序列;
确定在n个系数序列和相应的n个量化系数序列间的失真;
确定从使用第tth个行程指数微分编码分布所得到总的压缩率以对序列对(run,index derivative)编码;和
确定关联成本作为失真和总的压缩率的函数。
107、根据权利要求104的计算机程序产品,其中步骤(d)包括为在n个系数序列的序列中的n个系数的每个序列:
以与n个系数序列一一对应的关系提供n个超级节点序列,其中每个超级节点包括至少一个节点,以便每个系数Ci具有相应的第ith个超级节点,其中i大于等于1且小于等于n;
提供前述的初始节点和跟随n个节点序列的末端节点;
在包括了初始节点、超级节点以及末端节点的节点对之间提供多个连接以表示可能的(run,index derivative)对;
通过为在多个连接中的每个连接确定关联增加成本而确定在多个可能的序列中每个序列的关联成本;
从多个连接确定最小连接成本序列,其中连接序列经由至少一个超级节点从初始节点延伸到末端节点;和
从最小成本的连接序列确定确定成本的序列对(run,index derivative)。
108、根据权利要求107的计算机程序产品,其中步骤(d)进一步包括,为在n个系数序列中的n个系数的每个序列,使用动态编程找出在多个连接中最低成本的连接序列,其中连接序列从初始节点经由至少一个超级节点延伸至末端节点。
109、根据权利要求107的计算机程序产品,其中步骤(d)进一步包括,为在n个系数序列中的n个系数的每个序列,
为表示从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的关联(run,index derivative)对的每个连接限定增加率成本,使用第tth个行程指数微分编码分布,作为所需要的位数以对关联的(run,index derivative)对的行程值和从关联的(run,index derivative)对得到的基于指数的值进行编码;
为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定增加失真成本,作为当系数Ci被量化为与基于指数的值关联的值和从系数Ci-r到系数Ci-1出现的所有的r个系数都被量化为特定值时的失真;和
为从初始节点和第(i-r-1)th个超级节点之一到第ith个超级节点的每个连接限定关联增加成本,作为增加失真成本和增加率成本的函数。
110、根据权利要求107的计算机程序产品,其中每个(run,indexderivative)对是对(run,level),以便限定基于指数的值为水平值,该水平值被限定为在特定值的连续指数数量后的指数值。
111、根据权利要求110的计算机程序产品,其中在包括了初始节点、超级节点和末端节点的多个节点间提供多个连接包括:
为在至少具有在n个超级节点中的该超级节点之前的初始节点的前趋节点的最大行程数的n个超级节点序列中的每个节点,建立将该超级节点连接到在包括了在该超级节点之前的初始节点的节点的最大行程数中的每个节点的最大连接水平数,其中在该连接的最大水平数相应于不同的水平值;
为在具有比包括了在n个超级节点序列中的该超级节点之前的初始节点的前趋节点的最大行程数量要少的n格超级节点的序列中的每个节点,建立将该超级节点连接到包括在该超级节点之前的初始节点的所有节点的最大连接水平数,其中在最大水平连接数中的每个连接相应于不同的水平值;和
为在n个超级节点序列中的每个节点和初始节点,建立到末端节点的单独连接。
112、根据权利要求104的计算机程序产品,其中在步骤(f)中的第(t+1)th量化表通过解出二次方程而从第tth个确定成本的序列对(run,index derivative)的选定序列而得到。
113、根据权利要求104的计算机程序产品,其中在步骤(f)中的第(t+1)th行程指数微分编码分布从用于在n个系数序列的序列中的n个系数的所有序列的所有第tth个确定成本的序列对(run,index derivative)而得到。
114、根据权利要求110的计算机程序产品,其中在步骤(g)中,在相应确定成本的序列对(run,level)中每个对(run,level)的行程值和水平值都单独编码。
115、根据权利要求114的计算机程序产品,其中
n个系数序列包括第一组系数和与第一组系数不相交的第二组系数;
步骤(g)包括对在相应的确定成本的序列对(run,level)中的每个对(run,level)的行程值基于以下而编码
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数在第一组系数中,则指数的水平值和顺序位置前于与在n个系数序列中的行程关联的特定值的连续系数的数量,和
如果相应于在与行程关联的特定值的连续指数的数量之前的指数的系数在第二组系数中,则该系数的顺序位置前于与在n个系数序列中的行程关联的特定值的连续系数的数量。
116、根据权利要求115的计算机程序产品,其中
为在n个系数序列的序列中的n个系数的每个序列,
用于在第一组系数中的每个系数的关联超级节点包括两个关联的节点;
用于在第二组系数中的每个系数的关联超级节点包括单个关联的节点;和
在超级节点对间的多个连接包括在表示多个对(run,level)的非关联节点对间的多个连接。
117、根据权利要求116的计算机程序产品,其中为在n个系数序列的序列中的n个系数的每个序列,在多个超级节点间提供多个连接进一步包括:
为在n个超级节点序列中的每个超级节点,使用由给定量化表限定的硬决策量化器来确定输出水平以量化在n个系数序列中相应的系数;
为在至少具有在n个超级节点序列中该超级节点之前最多行程数量的前趋节点的n个节点序列中的每个超级节点和初始节点,建立将该超级节点中的节点连接到在该超级节点之前的最大行程数节点(为初始节点或超级节点)中的每个节点的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;
为在具有少于在n个超级节点序列中前于该超级节点的最大行程数的前趋节点和初始节点的n个超级节点序列中的每个超级节点,建立将该超级节点中的节点连接到在该超级节点之前的最大行程数节点(为初始节点或超级节点)中的每个节点的缩减数量的连接,其中在缩减数量的连接中的每个连接都相应于在为该超级节点所确定的输出水平的选定差别中的不同水平值;和
为在n个超级节点序列中的每个节点和初始节点,建立到末端节点的单个连接。
CN200580030761.0A 2004-07-14 2005-07-13 用于数据压缩优化的方法和系统 Active CN101044687B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US58755504P 2004-07-14 2004-07-14
US60/587,555 2004-07-14
US58838004P 2004-07-16 2004-07-16
US60/588,380 2004-07-16
PCT/CA2005/001084 WO2006005182A1 (en) 2004-07-14 2005-07-13 Method, system and computer program product for optimization of data compression

Publications (2)

Publication Number Publication Date
CN101044687A true CN101044687A (zh) 2007-09-26
CN101044687B CN101044687B (zh) 2012-09-19

Family

ID=38716327

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200480043979.5A Expired - Lifetime CN101032081B (zh) 2004-07-14 2004-08-25 用于数据压缩优化的方法和系统
CN200580030761.0A Active CN101044687B (zh) 2004-07-14 2005-07-13 用于数据压缩优化的方法和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN200480043979.5A Expired - Lifetime CN101032081B (zh) 2004-07-14 2004-08-25 用于数据压缩优化的方法和系统

Country Status (1)

Country Link
CN (2) CN101032081B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110572682A (zh) * 2019-07-31 2019-12-13 杭州电子科技大学 一种嵌入式零树小波图像编码压缩方法
CN111181568A (zh) * 2020-01-10 2020-05-19 深圳花果公社商业服务有限公司 数据压缩装置及方法、数据解压装置及方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8902972B2 (en) * 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
US7804428B2 (en) * 2008-11-10 2010-09-28 Apple Inc. System and method for compressing a stream of integer-valued data
CN102255617B (zh) * 2010-05-19 2014-02-19 鸿富锦精密工业(深圳)有限公司 哈夫曼树的存储方法及利用数组进行数据解码的方法
CN102521298A (zh) * 2011-11-30 2012-06-27 北京地拓科技发展有限公司 一种时空栅格数据存储管理方法和系统
WO2018139947A1 (en) * 2017-01-24 2018-08-02 Huawei Technologies Co., Ltd. Apparatus and method for data compression
US10853709B1 (en) 2019-12-18 2020-12-01 Ricoh Company, Ltd. Image filtering for improved lossless compression
CN116723251B (zh) * 2023-08-09 2023-10-17 江苏太湖锅炉股份有限公司 基于传感器网络的智能锅炉自动监测系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0155784B1 (ko) * 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
US5926222A (en) * 1995-09-28 1999-07-20 Intel Corporation Bitrate estimator for selecting quantization levels for image encoding
US5682152A (en) * 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
TW391129B (en) * 1998-04-30 2000-05-21 Hyundai Electronics Ind Apparatus and method for compressing image data outputted from image semsor having bayer pattern
KR100947399B1 (ko) * 2001-11-22 2010-03-12 파나소닉 주식회사 부호화 방법
ES2219589T3 (es) * 2002-02-05 2004-12-01 Siemens Aktiengesellschaft Compresion de datos.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110572682A (zh) * 2019-07-31 2019-12-13 杭州电子科技大学 一种嵌入式零树小波图像编码压缩方法
CN111181568A (zh) * 2020-01-10 2020-05-19 深圳花果公社商业服务有限公司 数据压缩装置及方法、数据解压装置及方法

Also Published As

Publication number Publication date
CN101032081A (zh) 2007-09-05
CN101032081B (zh) 2010-05-26
CN101044687B (zh) 2012-09-19

Similar Documents

Publication Publication Date Title
CN101044687A (zh) 用于数据压缩优化的方法、系统和计算机程序产品
CN101065779A (zh) 彩色图像编码的方法、系统和软件产品
CN1222153C (zh) 数字图象压缩方法
CN1703912A (zh) 具有高压缩率和最小必需资源的快速codec
CN101795412B (zh) 用于数据压缩优化的方法和系统
Yang et al. Joint optimization of run-length coding, Huffman coding, and quantization table with complete baseline JPEG decoder compatibility
CN1232127C (zh) 使用可逆子波变换和嵌入代码流进行压缩的方法和装置
CN1767395A (zh) 整数数据的无损自适应编码与解码
CN1272740C (zh) 基于类小波变换和稀疏数据编码的多分辨率图像数据管理系统和方法
CN1187716C (zh) 用于编码和解码关键字数据的装置和方法
CN1685369A (zh) 视频编码的低复杂性和统一标准的变换
CN1659785A (zh) 信号多速率点阵矢量量化的方法和系统
CN1860795A (zh) 用于将基于第一变换核的输入视频代码转换为基于第二变换核的输出视频的方法和装置
CN1515078A (zh) 可变长度编码方法,可变长度译码方法,存储介质,可变长度编码设备,可变长度译码设备,和位流
CN101039422A (zh) 图像编码装置、图像解码装置及它们的控制方法
CN1783144A (zh) 使用后向自适应规则进行整数数据的无损自适应Golomb/Rice编码和解码
CN1806447A (zh) 图像编码装置、图像解码装置、图像编码方法、图像解码方法、图像编码程序、图像解码程序、记录图像编码程序的记录媒体、记录图像解码程序的记录媒体
CN1656817A (zh) 上下文自适应的vlc视频变换系数编码/解码方法与设备
CN1968417A (zh) 解码装置、逆量化方法及计算机可读介质
CN1943243A (zh) 二维信号编码/解码方法和设备
CN1835548A (zh) 解码装置、解码方法及其程序产品
CN1838724A (zh) 解码设备、逆量化方法、分布确定方法及其程序
CN1076933C (zh) 图像编码装置及方法
CN1307782A (zh) 图象编码/解码方法以及记录该程序的记录媒体
CN1662069A (zh) 图像、视频信号的编码/解码方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211201

Address after: Ontario, Canada

Patentee after: BlackBerry Ltd.

Address before: Ontario, Canada

Patentee before: Jet Data Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240523

Address after: Ai Erlandubailin

Patentee after: Maliki Innovation Co.,Ltd.

Country or region after: Ireland

Address before: Ontario, Canada

Patentee before: BlackBerry Ltd.

Country or region before: Canada