加快算术编码处理速度的系统及其方法

文档序号:7625196阅读:160来源:国知局

专利名称::加快算术编码处理速度的系统及其方法
技术领域
:本发明涉及一种加快算术编码处理速度的系统及其方法,特别是涉及一种应用在二元图像联合专家组(JointBi-levelImageExpertsGroup,JBIG)用于压缩二元图像数据的系统及其方法。
背景技术
:在现今信息流通普遍的社会中,图像的需求量越来越大,图像的数字化是必然的趋势。然而在数字化后的图像所占的数据量却又相当庞大,占用存储器过多,使数据在传输上、处理上都相当的费时,在传输与处理上显得极为不便,将数据压缩是最好的解决之道。图像数据压缩技术的应用前景是十分广阔的,可以说所有的数字式图像产品均涉及到图像数据压缩技术,电子产品的数字化已是大势所趋。例如,数字式高清晰度电视机取代模拟电视机,视频电话取代传统语音电话,数码相机取代胶片相机等等。而传真技术的发明和广泛使用促进了二元图像压缩算法的飞速发展。CCITT(国际电报电话咨询委员会,国际电信联盟ITU下属的一个机构)针对传真类应用建立了一系列图像压缩标准,专用于压缩和传递二元图像。这些标准大致包括20世纪70年代后期的CCITTGroup1和Group2,1980年的CCITTGroup3,以及1984年的CCITTGroup4。1993年,CCITT和ISO(国际标准化组织)共同成立的二元图像联合专家组将二元图像的压缩进一步发展为不失真的黑白图档压缩方式,使其成为更加通用的JBIG标准。大约在1968年,P.Elias发展了Shannon和Fano的编码方法,构造出从数学角度看来更为完美的Shannon-Fano-Elias编码。沿着这一编码方法的想法,1976年,J.Rissanen提出了一种可以成功地逼近信息熵(informationentropy)极限的编码方法—算术编码(Arithmeticcoding)。1982年,Rissanen和G.G.Langdon一起改进了算术编码。之后,人们又将算术编码与J.G.Cleary和I.H.Witten于1984年提出的部分匹配预测模型(PPM)相结合。而算术编码便是在JBIG编码压缩方式中扮演一个极重要的角色,算术编码的输出是一个介于0与1之间的实数,利用这个实数,译码端可以唯一地译码回原来的信息。而要编码之前,信息内每个符号的出现机率必须先求出。对于无失真压缩而言,部分匹配预测模型与算术编码相结合,已经可以最大程度地逼近信息熵的极限。不幸的是,算术编码虽然可以获得最短的编码长度,但其本身的复杂性,以及存在较多浮点运算,不利于硬件实现,也使得算术编码在运行时都十分缓慢。即使在中央处理器(CPU)速度日新月异的今天,算术编码程序的运行速度也很难满足日常应用的需求。
发明内容本发明的目的在于提供一种加快算术编码处理速度的系统及其方法,在当输入数据为连续两相等像素值与背景值时,通过本发明所提供的方法,在一时间脉冲运算时间内计算出两相邻相同像素值所对应的实数值,使得原先必须经过两次压缩编码计算的步骤,减少为只需进行一次压缩数据的计算处理即可得到相同的运算结果。为了实现上述目的,本发明公开了一种加快算术编码(Arithmeticcoding)处理速度的系统,至少必须包含输入模块,用于读入两笔相邻的像素数据及其背景值(CX,contextvalue)并判断是否相同;存储器,用于储存一机率估计表及一计算加速表,其中机率估计表为储存先验机率(priorprobability)值LSZ(出现机率较小符号的区间大小,LPS’sintervalSize,其中LPS为LessProbableSymbol的缩写),而计算加速表则是储存计算A,C值所需使用到的(LSZ1+LSZ2)及(LSZ1-LSZ2)的可能值;选择器,用于根据相同的相邻像素的背景值,利用内部增加的一组运算电路(包括加法器、减法器及比较器),并依据机率估计表来判断决定一运算路径;及输出模块,用于根据该运算路径借助查询机率估计表及计算加速表来算出A,C值。为了实现上述目的,本发明公开了一种加快算术编码处理速度的方法,包含下列步骤首先,一次读入两笔像素值数据及其背景值,接着,判断两笔像素值是否为相同?若是不相同,则以公知的算术编码方式来进行压缩编码计算,若相同,则再由选择器根据相同的相邻像素的背景值,利用内部增加的加法器、减法器及比较器,依据机率估计表来判断决定一运算路径;最后,根据该运算路径借助查询机率估计表及计算加速表来算出A,C值。下面配合附图和具体实施例对本发明的特征作详细说明,但不作为对本发明的限定。图1为本发明的系统架构图;图2a为公知处理两笔像素数据算术编码的方法流程图;图2b为本发明一次读取两笔像素数据进行算术编码的方法流程图;图3a、3b为一算术编码实施例在公知与本发明方法上的实施比较示意图;图4a、4b、4c及4d为本发明一次读取两笔出现机率较大符号像素数据进行算术编码所可能出现改变A,C值的四种运算路径示意图;图5a、5b、5c及5d为本发明一次读取两笔出现机率较小符号像素数据进行算术编码所可能出现改变A,C值的四种运算路径示意图;图6为本发明的机率估计表;图7为本发明的计算加速表;图8a、8b为算术编码在公知与本发明实施时的时序图比较示意图;图9a、9b为算术编码在公知与本发明实施时的时序图及硬件需求的比较示意图;图10为本发明的方法流程图;及图11为本发明在多种实施条件情况下的比较数据表。其中,附图标记110输入模块120选择器130计算模块140输出模块150机率估计表160计算加速表170存储器180两笔像素数据190A,C值步骤210读入两笔像素值数据及背景值步骤220判断两笔像素值是否为相同?步骤230以公知的算数编码计算步骤240由选择器根据背景值决定运算路径步骤250确认运算路径后,根据机率估计表及计算加速表来计算A,C值具体实施方式请参考图1,为本发明的系统架构图。与过去的处理方式不同点在于,过去在利用算术编码处理图像压缩时,皆是以循序的方式,一次只能读取一笔像素数据,如图2a所示,当像素1读入时,首先判断所读入的像素PIX是否为出现机率较大符号(MPS,MoreProbableSymbol)?若是,则呼叫出现机率较大符号函式码(CODEMPS)来进行运算处理;反之,则呼叫出现机率较小符号函式码(CODELPS)来进行运算处理,之后便可得一组A,C值190。举一实施例作说明,请参考图3a,此为公知的循序处理像素数据算术编码的示意图,假设“0”所出现的机率为2/3,而“1”所出现的机率为1/3,也就是LSZ=1/3,因此在进行第一次计算时,基值C为从0开始计算,而整体区间大小A为1,假设所要编的数字图像码为“000”,首先读入第一码“0”,在第一时间脉冲运算时间内呼叫出现机率较大符号函式码计算后,可得到C=0而A=1,LSZ=1/3;再读入第二码“0”,在第二时间脉冲运算时间内呼叫出现机率较大符号函式码计算后,可得到C=1/3而A=2/3,LSZ=2/9;再读入第三码“0”,在第三时间脉冲运算时间内呼叫出现机率较大符号函式码计算后,可得到C=5/9而A=4/9,LSZ=4/27;由此可知当编码所得的实数值为介于19/27至1的间的实数值皆为000的三码像素数据。本发明的输入模块110一次可读取两笔像素数据180,当这两笔像素数据180不同时,则采取先前所提的公知做法,一次一笔循序作处理,因此,输入模块110还包含一缓存器(图中未画出)以暂时存放第二笔像素数据,等第一笔像素数据处理完后再继续处理,也可再读入一笔像素数据判断是否相等,若两笔像素数据180相等时,则可如图2b所示,判断所读入的像素PIX是否为出现机率较大符号MPS?若是,则呼叫出现机率较大符号函式码来进行运算处理;反之,则呼叫出现机率较小符号函式码来进行运算处理,如此一来,便可在一时间脉冲运算时间内得到两笔像素数据180的一组算术编码A,C值190。如图3b所示,输入模块110一次读取两笔像素数据“00”,在第一时间脉冲运算时间内计算后,可得到C=0而A=1,LSZ=4/9;在第二时间脉冲运算时间内呼叫出现机率较大符号函式码计算后,即可得到C=5/9而A=4/9,LSZ=4/27。而要达成在一时间脉冲运算时间内,获得两笔像素数据180的算术编码所得的A,C值190,则必须分析连续执行出现机率较大符号函式码及出现机率较小符号函式码所可能改变A,C值190的情况。请参考图4a,图4b,图4c及图4d,此为一次读取两笔出现机率较大符号像素数据进行算术编码所可能出现改变A,C值190的四种运算路径示意图,在图4a所示的第一种运算路径,最后输出的A值为A-(LSZ1[ST[CX]]+LSZ2[ST[CX]]),而C值不变,其中CX为该输入像素的背景值;ST[CX]表示借由10个位元素组成的CX当前的STATE值,每一个ST[CX]的起始值都是0,下一个ST[CX]的值由几率估计表决定(NMPS或NLPS);LSZ[ST[CX]]表示的意义为ST[CX]从几率估计表所查到的对应的LSZ值;图4b所示的第二种运算路径,最后输出的A值为LSZ2[ST[CX]],而C值为C+2*A;图4c所示的第三种运算路径,最后输出的A值为(LSZ1[ST[CX]]-LSZ2[ST[CX]]),而C值为C+A;图4d所示的第四种运算路径,最后输出的A值为LSZ2[ST[CX]],而C值为C+A;同样的,请参考图5a,图5b,图5c及图5d,此为一次读取两笔出现机率较小符号像素数据进行算术编码所可能出现改变A,C值190的四种运算路径示意图,图5a所示的第一种运算路径,最后输出的A值为A-(LSZ1[ST[CX]]+LSZ2[ST[CX]]),而C值不变;图5b所示的第二种运算路径,最后输出的A值为LSZ2[ST[CX]],而C值为C+2*A;图5c所示的第三种运算路径,最后输出的A值为(LSZ1[ST[CX]]-LSZ2[ST[CX]]),而C值为C+A;图5d所示的第四种运算路径,最后输出的A值为LSZ2[ST[CX]],而C值为C+A。而运算中所需使用到的各个计算值,请参考图6,此为存放于存储器170中的机率估计表(PEtable,ProbabilityEstimationtable)150,表中存放了各个运算路径中所需使用到的LSZ、NLPS(NextLPSprobability-estimationState下一个出现机率较小符号的概率估算值)、NMPS(NextMPSprobability-estimationState,下一个出现机率较大符号的概率估算值)及SWTCH(是否交换的指标函数,若SWTCH[CX]=1,会将MPS交换,即0换为1或者1换为0)各个计算值,其中若遇到SWTCH=1,此时若MPS为像素1,将会SWTCH成为像素0,在公知的方式中,每次在进行一笔像素数据算术编码时,可通过查询机率估计表150得到一像素数据压缩的A,C值190;然而,若要使本发明可在一时间脉冲运算时间内处理两笔像素数据180,请参照图7,则还需在存储器170中增加一计算加速表160,表中所存放的计算值即为处理第一种运算路径与第三种运算路径,计算A值需使用到(LSZ1+LSZ2)及(LSZ1-LSZ2)两组计算值,将这些值预先计算好并存放在存储器170中,则可使选择器120在进行运算路径判断时,直接由查询计算加速表160即可迅速得到对应值,再加上增加的加法器、减法器及比较器,便可在四种运算路径中,选出所读取的两笔像素数据180应套入哪一运算路径中计算。公知的计算方式时序图,如图8a所示,每一时间脉冲运算时间只能处理一笔像素数据,因此,假设所要处理的6码像素数据为“001100”,使用公知方式便需要6个时间脉冲运算时间来作处理,而通过本发明的方法,请参考图8b,计算模块130可根据选择器120决定的一运算路径,在一时间脉冲运算时间内处理两笔像素数据180的算术编码,总共只需要3个时间脉冲运算处理时间。更进一步来说明,请参考图9a及图9b,图9a为公知的方式,需使用6个时间脉冲运算时间,且处理出现机率较大符号像素数据需1个加法器、1个减法器及2个比较器,而处理出现机率较小符号像素数据需1个加法器、2个减法器及2个比较器;图9b为本发明处理像素数据为“001100”的示意图,处理出现机率较大符号像素数据需4个加法器、8个减法器及12个比较器,而处理出现机率较小符号像素数据需4个加法器、11个减法器及16个比较器,并参考图10,此为本发明的方法流程图,首先,由输入模块110一次读入两笔像素值数据及其背景值(步骤210),再判断两笔像素值是否为相同?(步骤220)若是不相同,则以公知的算术编码方式来进行压缩编码计算(步骤230),若相同,则再根据相同的相邻像素的背景值,判断出属于四条运算路径的哪一情况,由选择器120选出运算路径(步骤240),并由计算模块130查找机率估计表150及计算加速表160,便可在3个时间脉冲运算时间以算术编码方式计算出此6码二元图像数据的A,C值190,并由输出模块140输出(步骤250)。由于一个时间脉冲运算时间可以处理相同的两笔像素数据180,节省了原本一半的处理时间。因此,请参考图11,可以清楚的了解,使用公知算术编码压缩方式,假设处理速度为1倍,则只需2个加法器,3个减法器及4个比较器,也只需要使用到大小为128个字符的机率估计表150;而发明人经过多次实验得到,一次读取相同的两笔像素数据180进行处理,虽然这种情况出现的机率约50%,在最佳情况下可以达到2倍的加速效果,平均下来可以达到加快30%的效果,虽然在硬件上的需求增加,需要使用到8个加法器,19个减法器及28个比较器,且除原先需使用大小为128个字符的机率估计表150外,还需要在存储器170增加大小为1000字节的计算加速表160,但是与一次读取相同的三笔以上像素数据进行处理相比,依所增加的硬件资源与平均增加的效果来比较而言显然本发明是较符合经济效益的。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。权利要求1.一种加快算术编码处理速度的系统,其特征在于,包括一输入模块,用于读入两笔以上相同的相邻像素数据;一计算加速表,用于记录事先根据一机率估计表的数笔机率值,算出可能的相加及相减的数笔计算值;一选择器,用于在复数条可改变一组A,C值的运算路径中,根据该相同的相邻像素数据决定一运算路径;及一计算模块,用于根据该运算路径,查找该机率估计表及该计算加速表计算出该组A,C值。2.根据权利要求1所述的加快算术编码处理速度的系统,其特征在于,该像素数据为一二元数据。3.根据权利要求1所述的加快算术编码处理速度的系统,其特征在于,该机率估计表包含数笔LSZ、NLPS、NMPS及SWTCH的计算值。4.根据权利要求1所述的加快算术编码处理速度的系统,其特征在于,该计算加速表至少包含(LSZ1+LSZ2)及(LSZ1-LSZ2)两组计算值。5.根据权利要求1所述的加快算术编码处理速度的系统,其特征在于,该系统读入两笔相同的相邻像素数据进行处理时,需使用8个加法器,19个减法器及28个比较器。6.根据权利要求5所述的加快算术编码处理速度的系统,其特征在于,该系统最佳情况下可达2倍的处理速度。7.一种加快算术编码处理速度的方法,其特征在于,包含下列步骤读入两笔以上相同的相邻像素数据;在数条可改变一组A,C值的运算路径中,根据该相同的相邻像素数据决定一运算路径;及根据该运算路径,查找一机率估计表及一计算加速表计算出该组A,C值。8.根据权利要求7所述的加快算术编码处理速度的系统,其特征在于,该像素数据为一二元数据。9.根据权利要求7所述的加快算术编码处理速度的系统,其特征在于,该计算加速表至少包含(LSZ1+LSZ2)及(LSZ1-LSZ2)两组计算值。10.根据权利要求7所述的加快算术编码处理速度的系统,其特征在于,该系统读入两笔相同的相邻像素数据进行处理时,需使用8个加法器,19个减法器及28个比较器。全文摘要本发明公开了一种加快算术编码处理速度的系统及其方法,应用在当输入数据为连续两相等像素值与背景值时,借由增加一组运算电路与一组计算加速表,判断输出区间大小A(intervalsize)及基值C(base)的计算方式,使得原本需两个时间脉冲运算时间才能获得的A,C值,可以在一个时间脉冲运算时间内计算出来,进而达到加快算数编码处理速度的目的。文档编号H04N7/26GK1953548SQ20051010914公开日2007年4月25日申请日期2005年10月18日优先权日2005年10月18日发明者毛清龙,陈丕崇申请人:致伸科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1