具体实施方式
以下在实施方式中详细叙述本发明的详细特征以及优点,其内容足以使本领域技术人员了解本发明的技术内容并据以实施,且根据本说明书所揭露的内容、权利要求书及图式,本领域技术人员可轻易地理解本发明相关的目的及优点。以下的实施例进一步详细说明本发明的观点,但并非以任何观点限制本发明的范畴。
请参照图1以对无损联合图像专家小组格式进行说明,图1为根据本发明一对照实施例中所绘示的像素处理顺序示意图。图1是对应于本发明所揭露的图像压缩方法的一对照实施例。如图1所示,来源图像I的每一行具有16个像素(pixel),例如来源图像I的第一行具有像素P1~P16,来源图像I的第二行具有像素P17~P32。其中,来源图像I为当前正依据无损联合图像专家小组格式进行图像压缩的一帧图像。而为了叙述简明,仅以像素P1~P32为例进行说明,然来源图像I实可具有任意多个像素,且来源图像I的长宽比例也并不受限制,来源图像I的尺寸比例也可例如是1280×768。
在图1中的像素P1~P32之间还绘示有多个箭头以标示在此对照实施例中以无损联合图像专家小组格式进行图像压缩时的像素处理顺序。如图所示,在已知技术的处理顺序中,由来源图像I的左往右、且由来源图像I的上往下,对像素P1、P2以至像素P32依序地进行相关的图像压缩处理。前述的处理顺序仅为举例示范,其他的可能的实施态样应为本技术领域技术人员所知,在此不予赘述。后续定义正进行处理的像素为当前像素以方便说明。
请接着参照图2以对无损联合图像专家小组格式进行更具体的说明,图2为根据本发明一对照实施例中所绘示的流程示意图。当无损联合图像专家小组格式的处理程序开始后,于步骤S201中,先判断图像扫描是否结束。所谓图像扫描是依照前述的顺序依序定义各像素为当前像素,并对当前像素进行处理。判断图像扫描的条件例如为判断是否已完成图像压缩,或是图像压缩过程中发生错误,或是其他硬件实作上的实际考量。若是,即结束处理程序。若否,则接着进行步骤S203。
请接着参照图3以说明图2中的后续步骤,图3为本发明一对照实施例中所绘示的当前像素与相关参数的示意图在图3中绘示有当前像素值x与周围像素值a~d,当前像素值x指的是当前像素的像素值,而周围像素值a、c、b、d为当前像素左边、左上、上面与右上所邻接的像素的像素值。举例来说,当像素P20为当前像素时,周围像素值a即为像素P19的像素值,周围像素值b即为像素P4的像素值,周围像素值c即为像素P3的像素值,周围像素值d即为像素P5的像素值。
于步骤S203中,对当前像素进行去相关(decorrelation)程序。所谓的去相关程序在此是以一固定运算子取得当前像素的像素值x的预测像素值xp。于一实施例中,固定运算子及其相关运算如式(1)所示:
其中,a、b、c即为前述的周围像素值a、b、c,而预测像素值xp为像素值x的预测值。换句话说,当周围像素值c不小于周围像素值a、b中的较大者时,预测像素值xp被设定为像素值a、b中的较小者。而当周围像素值c不大于周围像素值a、b中的较小者时,预测像素值xp被设定为周围像素值a、b中的较大者。而当周围像素值c小于周围像素值a、b中的较大者也大于周围像素值a、b中的较小者时,预测像素值xp被设定为周围像素值a加上周围像素值b减去周围像素值c。
于步骤S205中,对当前像素进行前文建模程序。在前文建模程序会先依据周围像素值a、b、c、d算出关联于当前像素值x的一梯度(gradient)向量g。梯度向量g具有元素g0、g1、g2(element)。梯度向量g与元素g0、g1、g2可依据周围像素值a、b、c、d而分别被表达如式(2)~式(5)。
g=(g2,g1,g0) 式(2)
g0=d-b 式(3)
g1=b-c 式(4)
g2=c-a 式(5)
接着,同样于前文建模程序中,对梯度向量g进行量化(quantize)以取得量化梯度向量q。量化梯度向量q可表达如式(6)。
q=(q2,q1,q0) 式(6)
在一实施例中,元素g0、g1、g2分别以8位(bit)表示,元素q0、q1、q2分别以元素g0、g1、g2的三个最高有效位(most significant bit,MSB)来表示。上述仅为举例示范,实际上并不以此为限。
然后,依据梯度向量q取得补偿值索引ri。其中,梯度向量q具有元素q0、q1、q2,补偿值索引ri为元素q0、q1、q2的乘积。于一实施例中,补偿值索引ri可表达如式(7)。
ri=q2×q1×q0 式(7)
再依据补偿值索引ri而自补偿值对照表RA中取得前文(context)作为补偿值R。补偿值R可表达如式(8)。
R=RA[ri] 式(8)
于另一实施例中,以三维的方式建立补偿值对照表RA,并以元素q0、q1、q2作为补偿值索引,以自补偿值对照表RA取得R。如何以量化梯度向量q取得补偿值索引ri,以及如何以补偿值索引ri取得补偿值R,为本技术领域技术人员经详阅本说明书后所能类推设计,在此并不加以限制。理论上,预测值xp加上补偿值R后会很接近当前像素的像素值x。但实际上,预测值xp与补偿值R的和值与像素值x并不会完全相同,而存在有一差值。在前文建模程序中,还依据预测值xp与补偿值R的和值与像素值x产生一残余值s,并依据残余值s更新补偿值对照表RA内的元素。所述的残余值s即为像素值x被压缩后的值。
当结束步骤S205之后,执行步骤S207,将i值加1,也就是前进到次一个像素,而后再次回到步骤S201,并重复上述的流程,以依序地获得所有像素的压缩值。
相仿于无损联合图像专家小组格式的压缩过程,在无损联合图像专家小组格式的解压缩过程中,按照如压缩时的同样顺序再次执行去相关程序与前文建模程序,而一个一个地取得解压缩像素值相关细节为本技术领域技术人员所知悉,于此不再赘述。
在上述的压缩或解压缩过程中,对每一个像素而言都需要进行去相关程序与前文建模程序。由于在前文建模程序中必须依据每一次去相关程序的结果来更新补偿值对照表RA中的元素。并且,在依据此次的结果更新补偿值对照表RA之后,才能进行下一个像素的去相关程序与前文建模程序。因此,不管在对照实施例的压缩还是解压缩过程中,上述的作法使得连续的像素间具有相依性(dependency),因而必须一个一个地对像素进行前文建模程序,进而增加了时间延迟。同时,由于在单位时间内只能对一个像素进行处理,也白费了硬件的平行运算能力。在以无损联合图像专家小组格式进行压缩或解压缩的过程中,都必须进行前文建模程序,因此无论是压缩或解压缩,都同样有时间延迟过长以及浪费硬件效能的问题。
请参照图4,图4根据本发明一实施例中基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法所绘示的流程示意图。如图所示,在步骤S401中,将来源图像中的M×N个像素分割为k个群组。其中,M为来源图像的像素行数(amount of rows),N为来源图像的像素列数(amount of columns),M、N与k均为大于1的正整数,每一群组对应于M×N个像素中的多个像素。在步骤S403中,对k个群组中的第i群组的多个像素的每一像素,执行去相关程序(decorrelation)与前文建模程序(context modeling)。而在步骤S405中,当第i群组中的像素未完成去相关程序与前文建模程序,不更新关于前文建模程序的补偿值对照表。然后在步骤S407中,当第i群组中的像素完成去相关程序与前文建模程序,更新补偿值对照表。
请一并参照图5以进行更具体的说明,图5为根据本发明一实施例中基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法的处理程序所绘示的像素处理顺序示意图。如图5所示,来源图像I具有M行N列像素,M行中的每一行像素被分割为k个群组。在此实施例中,N为16,k为4,也就是说来源图像I的每一行具有16个像素,且每一行被分为4组,每一组具有4个像素。且如图5所示地,群组G1~G8依据各箭头所指的方向,一个群组一个群组地循序进行图4所揭示的步骤。在此为求叙述简明,举k个群组中的群组G1~G8来进行说明。于实务上,k为大于1的正整数而不以此示范例为限。在另一实施例中,每一群组中的像素数量大于4。在另一实施例中,每一群组所具有的像素个数为2的幂次方。而于再一实施例中,每一行的每一群组所具有的像素个数为N的正因数,也就是说每一行被分为整数个群组。于又一实施例中,k大于N,因此每一群组包含来源图像I中不同行的像素。上述仅为举例示范,实际上并不以此为限。
请同时参照图4与图5。在一开始,先对群组G1中的各像素进行去相关程序与前文建模程序,且在同一群组的像素进行前文建模程序时,并不更新补偿值对照表RA。直到取得群组G1中的各像素的残余值后,才依据群组G1中所有像素的残余值更新补偿值对照表RA。而在依据群组G1中所有像素的残余值更新补偿值对照表RA后,才继续对群组G2中的各像素进行去相关程序与前文建模程序。其中,依据像素的残余值更新补偿值对照表RA的方式为本技术领域技术人员所能自由设计,在此并不加以限制。
其中的道理在于,相邻像素的像素值有可能非常接近,即使不更新补偿值对照表RA的内容,也足以就同样的补偿值对照表RA预测出足够精确的预测值,使得误差位于可以容忍的范围之内。借着这样的作法,不但缩短了更新补偿值对照表RA的时间,也降低了同一群组中的各像素在压缩或解压缩过程中的相依程度,而使得同一群组中的像素可以同时平行地进行去相关程序与前文建模程序。
请再参照图6以进行说明,图6为根据本发明一实施例中基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法进行平行处理所绘示的方法流程图。如图5所示,群组G1~G8分别具有4个像素。以群组G1来说,于本发明所揭露的基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法中,当对像素P2进行处理时并不需要先依据像素P1的相关信息更新补偿值对照表RA,因此于步骤S6100的确认后,可以同时对像素P1、P2进行处理。更具体来说,于步骤S6200中,像素P1~P4可同时进行去相关程序(步骤S6211、步骤S6221、步骤S6231与步骤S6241)以及前文建模程序(步骤S6213、步骤S6223、步骤S6233与步骤S6243)。然后待结束群组G1中的像素P1~P4的相关程序,即进行步骤S6300,更新补偿值对照表RA,之后执行步骤S6400,将i值加1,也就是以更新后的补偿值对照表RA进行群组G2的相关程序。换句话说,相较于前述的对照实施例,于此实施例中,单位时间内可同时对4个像素进行压缩程序,而在对照实施例中,单位时间内仅可对1个像素进行压缩程序。平行处理除了得以进一步降低时间延迟之外,还能善用闲置的硬件资源。前述仅为举例示范,在此并不限制平行处理中的像素个数。
一般来说,会以分块模式(block mode)来对来源图像I进行压缩或解压缩处理。在分块模式中,来源图像I会被分成多个区块,并对各区块中的像素依序进行如前述的去相关程序与前文建模程序。这样的做法虽然可以降低处理延迟,但是切分区块的大小影响了前文建模程序的可依赖性而造成了程度不一的压缩损失(compression loss)。请参照下表1以与本发明所揭露的基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法进行比较。
表1
|
16×16 |
32×16 |
32×32 |
1个像素 |
0.488133 |
0.385411 |
0.333877 |
16个像素 |
0.503995 |
0.396596 |
0.339926 |
32个像素 |
0.510768 |
0.401019 |
0.34302 |
64个像素 |
0.537227 |
0.406356 |
0.346753 |
表1记录了以多种不同格式的来源影像于不同分块模式下进行本发明所揭露的基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法所取得的压缩率。其中,表1的每一行代表单位时间平行处理的像素个数,也就是本发明所揭露的基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法每一个群组所包含的像素个数。而表1的每一列代表分块模式所采取的区块大小。16×16指的是区块中的每一列与每一行分别有16个像素。其中,每一群组可以是区块中的一行或多行。
由表1的第二行可以看出,在分块模式下,即使不使用本发明所揭露的基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法,压缩率也有大小不等的损耗。基本上,分块模式采取的区块越大,前文建模程序的可信赖度越高,压缩率越低。而由第三行至第五行可以看出,在不同的分块模式下使用了本发明所揭露的基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法也不会使压缩率有明显的上升,但是单位时间所能处理的像素个数却能显著的提升。举第二列来说,原本分块模式就已经导致了接近于0.49的压缩率。但在采取本发明所揭露的基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法后,即使在单位时间内同时处理64个像素,也只让压缩率再上升近5个百分点,而在最佳的状况下能让处理延迟降为将近原本的2%。具体来说,若硬件能够同时对64个像素进行压缩的处理(去相关程序与前文建模程序),则依据本发明所揭露的方法所需的时间缩短为一般的无损联合图像专家小组格式压缩方法的1/64(1.56%)。而由第五行来看,在采取本发明所揭露的基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法后,压缩率还上升不到2个百分点。换句话说,本发明所揭露的基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法能在微幅增加压缩率的情况下,可观地增加平行处理的像素数量以降低处理延迟。
另一方面,在解压缩程序中的去相关程序与前文建模程序需要周围像素值a~d才能产生预测像素值xp、补偿值R与残余值s来产生解压缩值但是在解压缩过程中所使用的预测像素值xp是由当前像素的前几个像素解压缩出来的解压缩像素值,因此不管是使用以往的压缩程序或使用本发明所揭露的基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法进行压缩,在解压缩过程中的当前像素还是会跟其他的像素产生相依性,而必须依照如图1所示的顺序进行解压缩程序,因而让无损联合图像专家小组格式(JPEG-LS)的解压缩程序同样存在有处理延迟过长以及无法运用硬件效能的问题。
有鉴于此,本发明提出了另一种的压缩方法,以使对应的解压缩程序的处理延迟也能对应地降低,并使解压缩程序也能适用于平行处理。请接着参照图7与图8以进行说明,图7根据本发明另一实施例中基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法所绘示的流程示意图。图8为根据本发明另一实施例中基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法进行平行处理所绘示的像素处理顺序示意图。
如图7所示,在步骤S701中先将来源图像中的M×N个像素分割为k个群组,并将来源图像的M行像素的每一行均分为x个子群组,x为M的正因数,其中,M、N、k与x均为大于一的正整数。每一群组对应于M×N个像素中的多个像素,第i个群组包含M行像素中的第y行像素的第z个子群组,且i加1等于y与z的和,i为大于等于1的正整数,y为小于等于M的正整数,z为小于等于x的正整数。而在步骤S703中,对k个群组中的第i群组的多个像素的每一像素,执行去相关程序(decorrelation)与前文建模程序(context modeling)。而在步骤S705中,当第i群组中的像素未完成去相关程序与前文建模程序时,不更新关于前文建模程序的补偿值对照表。然后在步骤S707中,当第i群组中的像素完成去相关程序与前文建模程序时,更新补偿值对照表。
与图4所述的实施例不同的是,图7所述的实施例是以图8所示的序进行压缩与解压缩。图8绘示的来源图像I’的长宽比为16×16,如前述地,来源图像I’的尺寸亦不以此为限制。如图8所示,像素P1~P4被定义为群组G1。像素P5~P8与像素P17~P20分别被定义为群组G2的子群组G21、G22。像素P9~P12、像素P21~P24与像素P33~P36分别被定义为群组G3的子群组G31、G32、G33。同一群组中的子群组略呈阶梯状的分布。后续的像素与群组的相对定义以此类推,于此不再赘述。
如图8所示,在此实施例中,先对群组G1进行去相关程序与前文建模程序。由于群组G2的子群组G21、G22围绕群组G1而略呈阶梯状分布,因此在结束对群组G1的相关处理程序后,即能获得群组G2中的像素P5及像素P17对应的周围像素值,从而能平行地对群组G21、G22中的像素进行去相关程序与前文建模程序。同样地,当完成群组G2中每个像素的去相关程序与前文建模程序后,即能获得对子群组G31~G33中的各像素进行去相关程序与前文建模程序所需的信息,从而能平行地对子群组G31~G33中的像素进行去相关程序与前文建模程序。
当要进行解压缩时,举例来说,于第一时间区间内,依序处理(还原、解压缩)群组G1中的像素P1到像素P4,接着在第二时间区间内,同时依续处理子群组G21中的像素P17到像素P20以及子群组G22中的像素P5到像素P8。可以看出,当在第二时间区间的一开始要同时处理像素P17与像素P5时,像素P17所需要的参考像素,也就是侧边框、像素P1与像素P2的信息已经准备好了。而此时,像素P5所需要的参考像素,也就是上边框与像素P4的信息已经准备好了。依序一直到第四时间区间一开始,同时要处理像素P49、像素P37、像素P25与像素P13。同样的,这四个像素所需要的参考像素的信息也在第三时间区间中都被还原而准备好了。
因此,在图7与图8所示的实施例中,无论是压缩或是解压缩,都能对同一群组中的子群组进行平行处理。在前述的方法中除了能在单位时间中对多个子群组内的像素进行处理之外,配合硬件上的调校,还能在单位时间内完成同一群组的多个像素的去相关程序与前文建模程序,从而更进一步地降低了时间延迟。
综合以上所述,本发明提供了一种基于无损联合图像专家小组格式(JPEG-LS)的图像压缩方法,以克服以往无损联合图像专家小组格式的问题。在本发明所提供的图像压缩方法中,来源影像中的像素被分割成多个群组,且来源影像中的像素是一个群组一个群组地进行压缩或解压缩。在当前进行处理程序中的群组完成去相关程序与前文建模程序后,才更新补偿值对照表。而在当前进行处理程序中的群组尚未完成去相关程序与前文建模程序时,则不更新补偿值对照表。借此,得以在近乎无损压缩率的情况下,对同一群组内的像素进行平行处理,以降低时间延迟。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。