影像译码装置及方法转让专利

申请号 : CN200810042861.0

文献号 : CN101673392B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 叶小炜

申请人 : 慧国(上海)软件科技有限公司慧荣科技股份有限公司

摘要 :

一种影像译码装置包括:一剖析器与一交流译码器。该剖析器剖析一比特流以取得一第一单元。该第一单元包括一直流码与复数的交流码,分别对应于该影像的一第一区块的一直流系数与交流系数。该交流译码器对该第一单元的该等交流码进行译码,用以产生该第一区块的复数的第一交流系数,并判断该等第一交流系数的个数是否超过一既定参数。若超过,该交流译码器对该第一单元执行一交流系数略过程序,用以取得该比特流的一第二单元,系对应于一第二区块。每一交流码包括一霍夫曼码与一可变长度整数码。

权利要求 :

1.一种影像译码装置,包括:

一剖析器,用以剖析一比特流而取得一第一单元,其中,该第一单元包括一直流码与复数的交流码,分别对应于该影像的一第一区块的一直流系数与交流系数;以及一交流译码器,对该第一单元的该等交流码进行译码,用以产生该第一区块的复数的第一交流系数,以及判断该等第一交流系数的个数是否超过一既定参数,若超过,则对该第一单元执行一交流系数略过步骤,用以取得该比特流的一第二单元,系对应于一第二区块,其中,每一交流码包括一霍夫曼码与一可变长度整数码;

其中,该既定参数由一方程式决定:

其中,64表示该第一区块的该直流系数与交流系数的总数,以及n为一原始分辨率与一显示分辨率的缩放比率,系取决于该影像的一水平分辨率或一垂直分辨率。

2.根据权利要求1所述的影像译码装置,其特征在于,更包括:

一直流译码器,耦接于该剖析器与该交流译码器之间,用以依据该第一单元的直流码,取得该第一区块的该直流系数。

3.根据权利要求1所述的影像译码装置,其特征在于,当该等第一交流系数的个数超过该既定参数时,该交流译码器将该第一区块的剩余交流系数设定为0。

4.根据权利要求1所述的影像译码装置,其特征在于,该交流译码器包括:一霍夫曼译码单元,用以依据每一交流码的霍夫曼码产生具有一零值长度与一非零值长度的长度信息;

一可变长度整数译码单元,用以接受该非零值长度,并依据每一交流码的可变长度整数码与该非零值长度,用以产生一既定交流系数;

一计数器,用以累加该霍夫曼译码单元所产生的交流系数的个数;以及一决策单元,依据该计数器累加的数值、该既定参数及该长度信息,用以判断是否对该第一单元执行该交流系数略过步骤。

5.根据权利要求4所述的影像译码装置,其特征在于,该决策单元通过操作该霍夫曼译码单元以产生一目前交流码的零值长度与非零值长度,并从该计数器接收一第一数值,是为该目前交流码的该等第一交流系数的个数与零值长度所累加的结果,用以执行该交流系数略过步骤,其中,依据该霍夫曼码的位长度所计算的一略过位与对应于该目前交流码的可变长度整数码,用以取得该目前交流码后面的一下一个交流码,以及其中,依据该第一数值,该决策单元判断该霍夫曼译码单元是否对该下一个交流码的霍夫曼码进行译码。

6.根据权利要求5所述的影像译码装置,其特征在于,于该目前交流码中,当该可变长度整数码的位长度与该零值长度均为0时,该目前交流码为该第一单元的最后交流码。

7.根据权利要求4所述的影像译码装置,其特征在于,该决策单元执行该交流系数略过步骤,通过操作该霍夫曼译码单元,使其对该比特流的该第一单元的N位数据进行译码,用以产生总略过位、总交流系数计数值与一旗标,该旗标具有一第一状态与一第二状态,分别表示是否找到该第一区块的第一单元的结束位置;自该计数器取得一第二数值,系由该总交流系数计数值与交流系数的累加个数相加而得;以及,判断该第二数值是否超过该第一区块的交流系数总数;若超过,则操作该霍夫曼译码单元,每次译码一交流码,直到于该比特流中取得该第二区块所对应的第二单元。

8.根据权利要求7所述的影像译码装置,其特征在于,当该第二数值小于该第一区块的交流系数总数时,丢弃该第一单元的总略过位,用以取得该N位数据后面的一下一个N位数据。

9.根据权利要求7所述的影像译码装置,其特征在于,当该旗标具有该第一状态时,该决策单元判断该第二数值是否等于该第一区块的交流系数总数,并操作该霍夫曼译码单元,依据该总略过位与对应于上述判断结果的一既定略过位,用以于该比特流中,取得该第二区块所对应的该第二单元,其中,该既定略过位为一常数,与该旗标的位长度相关。

10.根据权利要求4所述的影像译码装置,其特征在于,该决策单元执行该交流系数略过步骤,通过一N位预先译码表来搜寻该比特流的第一单元中,一N位数据的一译码结果;

取得总略过位、总交流系数计数值与与一旗标,该旗标具有一第一状态与一第二状态,分别表示是否找到该第一区块的第一单元的结束位置;当该旗标具有该第二状态时,自该计数器取得一第二数值,系由该总交流系数计数值与该交流系数的累加个数相加而得;以及判断该第二数值是否超过该第一区块的交流系数总数;若超过,则操作该霍夫曼译码单元,每次译码一交流码,直到于该比特流中,取得该第二区块所对应的第二单元。

11.根据权利要求1所述的影像译码装置,其特征在于,当该缩放比率n≥8时,则该既定参数为0。

12.根据权利要求1所述的影像译码装置,其特征在于,当该缩放比率n<1时,则该既定参数为63。

13.一种影像译码方法,系包括:

取得一比特流的一第一单元,其中,该第一单元包括一直流码与复数的交流码,分别对应于该影像的一第一区块的一直流系数与交流系数;

对该第一单元执行一影像译码步骤的一第一阶段,并且依据该等交流码,产生该第一区块的复数的第一交流系数;

判断该等第一交流系数的个数是否超过一既定参数;以及

当该等第一交流系数的个数超过该既定参数时,则对该第一单元执行该影像译码步骤的一第二阶段,用以取得该比特流的一第二单元,系对应于一第二区块;

其中,每一交流码包括一霍夫曼码与一可变长度整数码;

其中,该既定参数由一方程式决定:

其中,64表示该第一区块的该直流系数与交流系数的总数,以及n为一原始分辨率与一显示分辨率的缩放比率,系取决于该影像的一水平分辨率或一垂直分辨率。

14.根据权利要求13所述的该影像译码方法,其特征在于,更包括:于取得该第一单元后,依据该直流码,用以产生该第一区块的该直流系数。

15.根据权利要求13所述的该影像译码方法,其特征在于,更包括:当该等第一交流系数的个数超过该既定参数,将该第一区块的剩余交流系数设定为0。

16.根据权利要求13所述的该影像译码方法,其特征在于,该影像译码步骤的该第一阶段包括:对每一交流码的该霍夫曼码执行一霍夫曼译码方法,用以产生一零值长度与一非零值长度;以及对每一交流码的可变长度整数码执行一可变长度整数译码方法,用以依据该非零值长度,产生一既定交流系数。

17.根据权利要求13所述的该影像译码方法,其特征在于,该影像译码步骤的该第二阶段为一单一步骤略过方法,包括:对一目前交流码的霍夫曼码执行一霍夫曼译码方法,用以取得该目前交流码的一零值长度与一非零值长度;

依据对应该目前交流码的该霍夫曼码与该可变长度整数码,用以计算略过位;

依据该略过位,用以取得该目前交流码后面的一下一个交流码;

利用该零值长度决定一第一数值,用以累加所得到的交流系数总数;以及依据该第一数值,判断是否对该下一个交流码的该霍夫曼码执行该霍夫曼译码方法。

18.根据权利要求17所述的该影像译码方法,其特征在于,于该目前交流码中,当该可变长度整数码的位长度与该零值长度均为0时,该目前交流码为该第一单元的最后交流码。

19.根据权利要求13所述的该影像译码方法,其特征在于,该影像译码步骤的该第二阶段为一多重步骤略过方法,包括:自该比特流的该第一单元,取得一N位数据;

对该N位数据进行译码,用以取得总略过位、总交流系数计数值与一旗标,该旗标具有一第一状态与一第二状态,分别表示是否找到该第一区块的第一单元的结束位置;以及判断一第二数值是否超过该第一区块的交流系数总数,其中,该总交流系数计数值与该交流系数的累加个数相加而产生该第二数值,若超过,对该N位数据执行该单一步骤略过方法,用以于该比特流中,取得该第二区块所对应的该第二单元。

20.根据权利要求19所述的该影像译码方法,其特征在于,若该第二数值小于该第一区块的交流系数总数,包括:判断该旗标是否为该第二状态,

若是,丢弃该第一单元的总略过位,用以取得该N位数据后面的一下一个N位数据。

21.根据权利要求20所述的该影像译码方法,其特征在于,若该旗标被判断为一第一状态,包括:判断该第二数值是否等于该第一区块的交流系数总数;以及

依据该总略过位与对应于上述判断结果的一既定略过位,用以于该比特流中,取得该第二区块所对应的该第二单元,其中,该既定略过位为一常数,与该旗标的位长度相关。

22.根据权利要求19所述的该影像译码方法,其特征在于,该霍夫曼译码方法用以对该N位数据进行译码。

23.根据权利要求19所述的该影像译码方法,其特征在于,通过一N位预先译码表对该N位数据进行译码,以查表方式取得指定给该N位数据的该总略过位、该总交流系数计数值与该旗标。

24.根据权利要求14所述的该影像译码方法,其特征在于,当该缩放比率为n≥8时,则该既定参数为0。

25.根据权利要求14所述的该影像译码方法,其特征在于,当该缩放比率为n<1时,则该既定参数为63。

说明书 :

影像译码装置及方法

【技术领域】

[0001] 本发明有关于影像译码,特别是有关于一种影像译码器及其译码方法,用以于低显示分辨率时进行高速处理。【背景技术】
[0002] 联合照相专家群(joint photographic expert group,JPEG)格式为一种常用的影像压缩格式。联合照相专家群格式有助于处理多媒体通讯,像是具有大量像素的影像,在使用联合照相专家群格式压缩后,即可兼容于数字相机、移动电话或计算机。虽然联合照相专家群格式的好处在于能够减少影像储存设备的需求,但于译码及编码时,特别是对高通量(high throughput demands)而言,往往需要大量的计算与时间。
[0003] 对联合照相专家群的压缩比特流进行解压缩时,通常译码程序包括:标头剖析(header parsing)、霍夫曼解码(Huffman decoding)、反量化(de-quantization)、反离散余弦变换(inverse discrete cosine transform,IDCT)、缩小(downscal ing)与颜色空间转换(color space converting)。一般而言,数字相机所撷取与预存影像的分辨率会远大于显示装置的分辨率,例如电视或打印机。当由高分辨率转换或译码至低解度时,将略过该原始影像所不需要的详细信息。举例而言,于美国专利H1684、6,067,384与7,050,656中,是揭露一些技术,用以改善反离散余弦变换与缩小过程的解码效率。
[0004] 除此之外,于霍夫曼解码过程中,亦有各种技术被提出,像是美国专利RE039,925、6,798,365与5,825,312,用以改善解码的效率。然而,于一原始影像的一单位区块中,全部的编码数据,例如:一个8x8区块的离散余弦变换(discretecosine transform,DCT)系数,于霍夫曼译码程序进行时,仍然需要完全地导出或解出。
[0005] 图1显示一现有霍夫曼译码程序10流程图,用以说明一个8x8区块的解码操作。于一原始影像中,每一个8x8区块通常会被变换为64个频率系数,称为离散余弦变换系数,包括一直流系数(DC coefficient)与随后的63个交流系数(ACcoefficients)。于一比特流中,当取得对应于该区块的一特定单元时,首先对该特定单元执行一直流译码程序,以得到该区块的一直流系数(步骤S102)。接着,执行一交流译码程序,对该特定单元的剩余部份执行译码,用以产生该区块的交流参数(步骤S104)。同时,提供一判断程序,用以判断是否已解出该区块的全部交流系数(步骤S106)。也就是说,只有在该区块的63个交流系数产生时,该已知霍夫曼译码程序10才全部完成。对于低显示分辨率的使用情况而言,冗长且耗时的交流解码操作变得相当不切实际,其中,因为仅需要有限数目的交流系数,对该特定单元进行部份译码,即可产生足够交流系数,用以维持可接受的传真度(fidelity)。
[0006] 因此,需要一种改进的译码方法及装置,于霍夫曼译码程序中,能够实时略过一区块所不需要的交流系数,从而改善整体的解码效率。【发明内容】
[0007] 因此,本发明提供一影像译码装置及方法,于低显示分辨率时,不需额外的处理成本,通过有效地略过不需要的交流系数来改善区块的解码效能。
[0008] 一方面,本发明揭露一种影像译码装置,用以于霍夫曼译码程序中,能够快速地略过一区块所不需要的交流系数。该影像译码装置包括:一剖析器与一交流译码器。该剖析器剖析一比特流,用以取得一第一单元。该第一单元包括:一直流码与复数的交流码,分别对应于该影像的一第一区块的一直流系数与交流系数。该交流译码器对该第一单元的该等交流码进行译码,用以产生该第一区块的复数的第一交流系数,并判断该等第一交流系数的个数是否超过一既定参数。若超过,该交流译码器对该第一单元执行一交流系数略过程序,用以取得该比特流的一第二单元,对应于一第二区块,其中,每一交流码包括一霍夫曼码与一可变长度整数码。
[0009] 另一方面,本发明提供一影像译码方法,用以于霍夫曼译码程序中,略过一区块所不需要的交流系数。该影像译码方法首先取得一比特流的一第一单元。该第一单元包括:一直流码与复数的交流码,分别对应于该影像的一第一区块的一直流系数与交流系数。然后,对该第一单元执行一影像译码程序的一第一阶段,依据该等交流码,产生该第一区块的复数的第一交流系数。接着,判断该等第一交流系数的个数是否超过一既定参数。若超过,对该第一单元执行该影像译码程序的一第二阶段,用以取得该比特流的一第二单元,对应于一第二区块。该交流码包括:一霍夫曼码与一可变长度整数码。
[0010] 为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附图示,详细说明如下。【附图说明】
[0011] 图1显示一现有霍夫曼译码程序流程图,用以说明一区块的解码操作;
[0012] 图2显示依据本发明实施例的一译码程序流程图,用以说明一区块的解码操作;
[0013] 图3显示依据本发明实施例的一影像译码装置方块图;
[0014] 图4是依本发明实施例的一交流系数略过程序示意图,用以说明将一比特流的一编码单元数据译码为离散余弦系数;
[0015] 图5是依第3及4图实施例的一单一步骤略过程序流程图;
[0016] 图6是依本发明另一实施例的一交流系数略过程序示意图,用说明将一比特流的一编码单元数据译码为离散余弦变换系数;
[0017] 图7显示依据图6实施例的一多重步骤略过程序流程图;
[0018] 图8是依图6及7实施例的一程序示范流程图,用以说明于一比特流的一编码单元数据中,对一N位数据进行译码;以及
[0019] 图9是依本发明另一实施例的一程序,用以说明建立一N位预先译码表的示范流程图。【具体实施方式】
[0020] 下文说明本发明的较佳实施方式,用以更容易了解本发明,并非用以限制本发明。本发明的保护范围当视后附的申请专利范围所界定者为准。
[0021] 图2显示依据本发明实施例的一译码程序20流程图,用以说明一个8x8区块(例如:一第一区块)的解码操作。该译码程序20大体上类似于图1的现有霍夫曼译码程序10。具体地,图2与图1最大不同的处在于一交流系数略过程序。
[0022] 于一实施例中,取得一比特流的一第一单元,作为译码使用。如前所述,该第一单元包括:一直流码(DC code)与复数的交流码(AC codes),分别对应于一影像的该第一区块的一直流码(DC coefficient)与交流码(AC coefficients)。
[0023] 参考图2,利用一直流译码程序(步骤S202)产生该第一区块的一直流系数。依据该等交流码,执行一交流译码程序,用以产生该第一区块的复数的第一交流系数(步骤S204)。再者,利用一既定参数AClimit判断是否执行该交流系数略过程序(步骤S208)。该既定参数AClimit相关于一显示分辨率及对该第一区块执行该交流译码程序所产生的交流系数。
[0024] 于本发明的一实施例中,该既定参数AClimit的一范例方程式,但非限定,定义如下:
[0025]
[0026] 其中,64表示一个8x8区块的所有离散余弦变换系数的个数总和,意即,1个直流系数与63个交流系数,而n表示一原始分辨率与一显示分辨率的缩放比率,取决于该影像的一水平分辨率或一垂直分辨率。
[0027] 举例来说,若该影像具有一原始分辨率为2560x1920,而该影像的一显示分辨率为1280x960。由于 或 该原始分辨率与该显示分辨率的缩放比
率为2,。因此,该既定参数
[0028] 于此实施例中,针对该第一区块,当已产生至少15个交流系数时,由于已到达该既定参数AClimit,接着便决定执行该交流系数略过程序(步骤S210)。
[0029] 于本发明的一实施例中,于该交流系数略过程序中,对于该第一区块而言,将剩余交流系数直接设定为0,而不需进一步解码,从而减少交流系数的解码时间。继续执行该交流系数略过程序,直到该第一区块所有63个直流系数均被解出或设为零值(步骤S206)。于该交流系数略过程序完成后,取得该比特流的一第二单元,对应于该第一区块后面的一第二区块。依据本发明的该交流系数略过程序将参考第4与5图说明如下。
[0030] 值得注意的是,当该影像的该显示分辨率(例如:1280x960)大于该原始分辨率(例如:2560x1920)时,也就是,当缩放比率n<1时,则定义该既定参数AClimit为该区块的交流系数的总数(意即,AClimit=63),用以表示该区块的所有交流系数均需要被解出。
[0031] 另外,值得注意的是,若该原始分辨率显著地大于该显示分辨率,例如,当缩放比率为n≥8时,则设定该既定参数AClimit的值为0,用以略过该区块所有交流系数。就此而言,针对该显示分辨率,仅该直流系数为必须的。
[0032] 图3显示依据本发明实施例的一影像译码装置30方块图。参考图3,该影像译码装置30包括:一剖析器310、一直流(DC)译码器314与一交流译码器312。该剖析器310剖析一比特流302,用以取得欲进行译码的一编码单元数据304,例如,一第一单元。该第一单元包括:一直流码与复数的交流码,且对应于该影像的一第一区块的一直流系数与交流系数。举例来说,该第一区块为一个8x8区块,且包括一个直流系数与随后的63个交流系数。该比特流302为一霍夫曼编码比特流。该直流译码器314耦接于该剖析器310,用以接收该第一单元的直流码,且重新产生该第一区块的一直流系数330。该交流译码器312耦接于该直流译码器314。该交流译码器312对该第一单元的该等交流码进行译码,以产生该第一区块的复数的第一交流系数332与334。产生该第一区块的该等第一交流系数332与334的程序将于底下做详细说明。更进一步,该直流译码器312判断该等第一交流系数332与334的个数是否超过一既定参数AClimit。若超过,该交流译码器312对该第一单元执行一交流系数略过程序,以便取得下一个编码单元数据304,像是该比特流302的一第二单元,对应于该第一区块后面的一第二区块。值得注意的是,于该编码单元数据304中,每一交流码包括:一霍夫曼码(Huffman code)与一可变长度整数码(VLI code)。
[0033] 更具体地,该交流译码器312进一步包括:一霍夫曼译码单元340、一可变长度整数(VLI)译码单元342、一计数器344与一决策单元346。该霍夫曼译码单元340依据每一交流码的霍夫曼码,用以撷取出具有一零值长度与一非零值长度的长度信息306。因此,依据该零值长度,该等第一交流系数332会被设定为0。然后,该可变长度整数译码单元342接收该非零值长度,且依据每一交流码的该可变长度整数码与霍夫曼译码单元340的该非零值长度,用以产生一既定交流系数334。该计数器344累加该霍夫曼译码单元340所产生交流系数的个数。如此一来,该决策单元346,则依据该既定参数AClimit、该长度信息306与该计算器344累加的数目,用以判断是否对该第一单元执行该交流系数略过程序。值得注意的是,该交流系数略过程序,用以略过该第一区块内不需要的交流系数,将配合第4与5图详细说明如下。
[0034] 图4是依本发明实施例的一交流系数略过程序示意图,用以说明将一比特流的一编码单元数据译码为离散余弦系数404。于此实施例中,该编码单元数据为一比特流302,如图3所示的一第一单元402。除此之外,该交流系数略过程序为一单一步骤略过程序428。
[0035] 参考图4,该第一单元402包括:DC_code406及复数的交流码,例如:AC_code1,...,AC_codei-1,...,AC_codei、AC_codei+1、AC_codei+2等。对于一影像的一第一区块而言,DC_code406与该等交流码分别对应于离散余弦变换系数404的DC_coefficient408与交流系数,由AC_coefficient1至AC_coefficient63。
[0036] 于操作上,每一交流码,例如:AC_code1410,包括Huffman_codei412与VLI_codei414。如上所述,将该交流码410传送至图3的该交流译码器312,用以产生一些对应的交流系数,如图4所示,例如:包括ri个零值的系数416与一既定交流系数AC_coefficientj418。更具体地,该霍夫曼译码单元340对Huffman_codei412执行一霍夫曼译码方法424,用以撷取出一零值长度与一非零值长度,例如:Run_Lengthi420与VLI_lengthi422。再者,该已产生的既定交流系数418利用VLI_codei414与VLI_lengthi422。也就是说,图3的该可变长度整数译码单元342通过对VLI_codei414与VLI_lengthi422执行一可变长度整数译码方法426,用以决定该既定交流系数418。
[0037] 于此实施例中,假设该零值长度的值为ri,则表示该既定交流系数418前面为0值的个数。因此,自AC_codei410所得到的交流系数的全部个数为(ri+1)。此外,同样通过该霍夫曼译码单元340,以取得Huffman_codei412与VLI_codei414的位长度。参考图4,根据该霍夫曼码412(如hi位)与可变长度整数码414(如si位)的位长度,该位长度等于(hi+si)位。
[0038] 当VLI_codei414的位长度为0(也就是,si等于0)时,则
[0039] 用连续零值长度(ZRL)及区块终点(EOB)两个标记来处理,分别用来表示16个零值的交流系数、以及该第一区块结束前所剩余的交流系数全为零值。
[0040] 上述译码该第一单元402的程序,用以产生图4的该离散余弦变换系数404,以下将配合第3与4图详述该单一步骤略过程序428。
[0041] 如前所述,图3的该决策单元346判断是否对图4的该第一单元402执行该单一步骤略过程序428。需注意在此假设该影像的原始分辨率为2560x1920而显示分辨率为1280x960。因此,该缩放比率n等于2,进而决定该既定参数AClimit=15。所以,针对上述显示分辨率,大体上15个交流系数即足够,而不用解出该第一区块的63个交流系数。
[0042] 如图4所示,对一交流码进行译码后,如AC_codei410,假设已达到该既定系数AClimit。紧接着,图3的该决策单元346决定执行图4的该单一步骤略过程序428。
[0043] 于此实施例中,如图4所示,该霍夫曼译码单元340译码一目前交流码,例如:AC_codei+1430,具有Huffman_codei+1432及VLI_codei+1434。随后,重新产生Huffman_codei+1432的一零值长度与一非零值长度。此外,Huffman_codei+1432的位长度(例如:hi+1位)与VLI_codei+1434的位长度(例如:si+1位)为(hi+1+si+1)位。然后,丢弃该数据的(hi+1+si+1)位,以从该第一单元402取得一下一个交流码,例如:AC_codei+2436。该计数器344利用该零值长度决定一第一数值,用以累加所得到的交流系数总数。举例而言,若Huffman_codei+1432的零值长度为3,则该第一数值为15(AC_codei410的交流系数)+3+1(AC_codei+1430的一既定交流系数)=19。由于该第一数值小于该第一区块的交流系数总数,该霍夫曼译码单元340继续对AC_codei+1430后面的AC_codei+2436的Huffman_codei+2438进行译码,更进一步,如图4所示,撷取出AC_codei+2436的Huffman_codei+2438与VLI_codei+2440的位长度。除此之外,不管VLI_codei+1434的内容,将AC_codei+1430的4个交流系数全部设为0。
[0044] 特别地是,当该第一数值大于63时,或当零值长度与该非零值长度均为0(例如:区块终点标记)时,则表示目前为一区块的结束位置,而必须开始执行一新区块的译码程序。因此,AC_codei+1430为该第一单元402的最后交流码,且完成该第一区块的该单一步骤略过程序428。
[0045] 图5是依第3及4图实施例的一单一步骤略过程序50流程图。
[0046] 参考第3、4及5图,依据本发明的一实施例,当该决策单元346决定执行一单一步骤略过程序50时,接着对一目前交流码(例如:AC_codei+1430)的霍夫曼码执行一霍夫曼译码方法,用以撷取出一零值长度(像是AC_codei+1430的ri+1)与该目前交流码的一非零值长度。亦取得该目前交流码的霍夫曼码与该可变长度整数码的位长度,例如,各自为AC_codei+1430的hi+1位及AC_codei+1430的si+1位(步骤S502)。
[0047] 接着,如图4所示,计算用以略过该目前交流码的略过位,例如:对应于AC_codei+1430的(hi+1+si+1)位。也就是,该略过位为(hi+1+si+1)位,且将(hi+1+si+1)位丢弃,用以取得该目前交流码后面的一下一个交流码,如图4所示的AC_codei+2436(步骤S504)。
[0048] 然后,判断该目前交流码的该可变长度整数码的位长度与该零值长度是否均为0(步骤S506)。若均为0,以ri+1=si+1=0为例,AC_codei+1430则为目前所处理区块的区块终点标记(步骤S508)。若不全为0,则依据该目前交流码所取得的零值长度,于该目前交流码中,决定要略过的零值交流系数总数(步骤S510)。最后,于目前所处理区块中,累加所有已产生的交流系数个数。上述累加值用以判断是否执行该霍夫曼译码方法,以继续对下一个交流码进行译码。通过此单一步骤略过程序50,较先前技术大幅改善了译码速度与通量。
[0049] 图6是依本发明另一实施例的一交流系数略过程序示意图,用说明将一比特流的一编码单元数据译码为离散余弦变换系数604。于此实施例中,该编码单位数据为一比特流302(图3)的一第一单元602,对应于一影像的一第一区块。进一步,该交流系数略过程序为一多重步骤略过程序628。
[0050] 同样地,如前所述,对一交流码进行译码后,如AC_codei610,假设已达到一既定参数AClimit。则将该第一区块的剩余交流系数设为零值。
[0051] 接着,图3的该决策单元346决定执行图6的该多重步骤略过程序628。图3的该霍夫曼译码单元340对该第一单元602的一N位数据642进行译码,以重新产生总略过位(L)、总交流系数计数值(R)与一旗标,其中,该总交流系数计数值表示由该N位数据642解出的交流系数。值得注意的是,该N位数据642包括复数的交流码,例如:AC_codei+1630、AC_codei+2636等等。译码该N位数据642的程序将考图8详细说明如下。
[0052] 于此实施例中,该旗标为一区块终点标记,包括一第一状态与一第二状态,分别表示是否已找到该第一区块的该第一单元602的结束位置。同样地,该旗标的判断将参考图8详细说明如下。
[0053] 于图3中,该决策单元346自该计数器344取得一第二数值,是通过将该总交流系数计数值(R)及交流系数的累加个数相加而得,其中,后者的交流系数是由图6的该第一单元602所产生。
[0054] 更进一步,该决策单元346判断该第二数值是否超过该第一区块的63个交流系数。若超过,则决定该旗标的状态(例如:一区块终点标记)。当该旗标为该第二状态时,将略过个数为该总交流系数计数值的交流系数,并将对应的交流系数全设为0。于图6中,丢弃该第一单元602的该总略过位(L),用以取得该N位数据642后面的一下一个N位数据644。图3的该霍夫曼译码单元340继续对该下一个N位数据644进行译码,其中,该下一个N位数据644包括:AC_codej638、AC_codej+1640等等。同时,当该旗标为该第一状态时,该决策单元346检查该第二数值是否等于63。根据上述的判断结果、该总略过位与该既定略过位,执行略过的操作,用以取得该比特流的一第二单元,对应于一第二区块,其中,该既定略过位为一常数,并与该旗标的位长度相关,例如:该区块终点标记的位长度。如此一来,便完成了该第一区块的第一单元的译码。
[0055] 若该第二数值大于该第二单元602的63个交流系数,接着,略过该第一区块的该总略过位(未图标)。换句话说,利用该单一步骤略过程序取代该多重步骤略过程序,每次对一交流码进行译码,直到取得该第一单元602后面的一第二单元。更详细地来说,该霍夫曼译码单元340依序继续译码每一交流码(例如:AC_codei630、AC_codei+1636等),直到取得对应于一第二区块的该第二单元。
[0056] 图7显示依据图6实施例的一多重步骤略过程序流程图。
[0057] 参考图3、6与7,依据本发明的一实施例,当该决策单元346决定执行一多重步骤略过程序时,由一比特流的该第一单元602所取得的一N位数据642将利用一霍夫曼译码方马进行译码。因此,重新产生总略过位(L)、总交流系数计数值(R)与一旗标(步骤S702),其中,该总交流系数计数值(R)表示自该N位数据642译码的交流系数。如上所述,该旗标为一区块终点标记,且具有一第一状态与一第二状态,分别表示是否已找到该第一单元602的结束位置。再者,该旗标的判断与该N位数据642的译码程序将配合图8详述如下。
[0058] 其次,于略过个数为该总交流系数计数值(R)的交流系数后,判断是否超过该第一区块的结束位置(步骤S704)。更明确地,如图6所示,通过比较一第二数值与该第一区块的63个交流系数来完成上述判断,其中,该第二数值为该总交流系数计数值(R)与交流系数所累加个数的和,而后者的交流系数由AC_codei630前面的交流码所产生。略过该第二数值后,若超过该第一区块的结束位置,则以一单一步骤略过方法取代该多重步骤略过方法,以便取得该第一单元602后面的一第二单元(步骤S720)。若没有超过,则进一步判断及确认该旗标的状态,例如:一区块终点标记EOB是否被设定(步骤S710)。
[0059] 当确认该旗标为该第二状态时,该N位数据642所对应的交流系数将被设为零值,且利用总交流系数计数值(R)来略过交流系数的个数(步骤S706)。也就是说,将63个交流系数减去总交流系数计数值(R),以决定需要进一步处理的交流系数的个数。另外,丢弃该第一单元602的总略过位(L),以便取得该N位数据后面的下一个N位数据(步骤S708),像是图6中的一N位数据644。
[0060] 当确认该旗标为该第一状态时,进一步判断,在略过个数为总交流系数计数值(R)的交流系数后,是否到达该第一区块的结束位置(步骤S712)。具体而言,即判断该第二数值是否等于该第一区块的63个交流系数。
[0061] 若是,则该旗标并非表示该第一单元602的结束位置,且需要额外略过该第一单元602,以取得与一第二区块相关的该第二单元(步骤S716)。于一实施例中,该额外略过取决于该总略过位(L)与一既定略过位LE,意即,(L+LE)位,其中,该既定略过位LE为一常数,相关于该旗标的位长度,像是该区块终点标记的位长度。
[0062] 若否,则丢弃该总略过位(L),以取得该第二单元(步骤S714)。
[0063] 因此,如上所述,在丢弃(L)或(L+LE)位后,该多重步骤略过程序70完成该第一区块的略过程序(步骤S718)。
[0064] 图8是依第6及7图实施例的一程序80示范流程图,用以说明于一比特流的一编码单元数据中,对一N位数据进行译码。
[0065] 首先,一N位数据,标示为DN-bit,从对应于一第一区块的一第一单元取得。分别初始化变量L(总略过位)、R(总交流系数计数值)与一旗标的状态。于此实施例中,该旗标为一区块终点标记EOB,用以表示对应于该第一区块的该第一单元的结束位置是否已经被找到(步骤S802)。
[0066] 类似于图4所示的实施例,对该N位数据DN-bit执行一霍夫曼译码方法424,以撷取出一零值长度(r)。依据一译码结果,亦可取得该霍夫曼码(h位)与该非零值长度(s位)的位长度(步骤S804)。
[0067] 进一步,进行译码时,判断该N位数据DN-bit的位长度是否太短(步骤S806)。若是,直接输出该变量L、R与该旗标状态,该程序80完成(步骤S820)。
[0068] 另一方面,若该N位数据DN-bit的位长度足够用于译码,则接着判断该非零值长度(s位)与该零值长度(r)的值是否均为0(步骤S808)。
[0069] 若是,则该旗标为该第一状态,表示找到一区块终点标记EOB,于此实施例中,设定区块终点标记EOB=1。再者,该(h)位被用以更新该总略过位(L)(步骤S810),然后再输出该变量L、R与该区块终点标记(步骤S820)。
[0070] 若(s)或(r)的值不等于0,则该零值长度(r)被加至该总交流系数计数值R中,用以更新R值。然后,判断该更新的R值是否等于63或大于63(步骤S812)。若是,如上所述,该程序80继续更新且输出该变量L、R与该旗标的状态(步骤S810与S820)。
[0071] 进一步,若该更新的R值小于63,则该程序80将L与R值更新如下(步骤S814):
[0072] L=L+h+s,以及
[0073] R=R+r+1。
[0074] 的后,判断该总略过位(L)是否到达N位(步骤S816)。若判断结果为是,则输出该变量L、R与该旗标状态以完成该程序80(步骤S820)。否则,于该N位数据DN-bit中,通过丢弃该(h+s)位来进行更新(步骤S818)。然后,该程序80回到执行该霍夫曼译码方法的步骤,以便针对更新的N位数据DN-bit重复前述的程序。
[0075] 依据前述,由于冗长的判断程序,使得该N位数据DN-bit的译码程序80变得非常耗时而无法顺利进行,进而降低译码效能。进一步,参考图3,上述情况可借着事先建立一N位预先译码表350来改善,用以纪录该N位数据DN-bit所有可能的译码结果。
[0076] 图9是依本发明另一实施例的一程序90,用以说明建立一N位预先译码表350的示范流程图。首先,取得一内存并加以初始化,用以建立该表350(步骤S902)。接着,设定一输入数据D的初始值为0(步骤S904)。该程序90译码该输入数据D,用以产生总略过位(L)、总交流系数计数值(R)与一旗标状态(例如:一区块终点标记)(步骤S906)。举例来说,利用上述图8的该程序80来对该输入数据(D)进行译码。值得注意的是,该总略过位(L)、该总交流系数计数值(R)与该旗标状态已详述于第6与7图及其相关实施例中,于此不加赘述。
[0077] 其次,该总略过位(L)、该总交流系数计数值(R)与该旗标状态均被储存于该表350的一对应地址中(步骤S910)。例如:若N为16位且该输入数据D为0x0000,则译码该输入数据D所产生的上述变量将储存于一对应地址920中。
[0078] 进一步,判断该输入数据D是否等于(2N-1)(步骤S914)。若相等,则表示该程序N完成,建立具有2 个元素的N位预先译码表350。否则,将该输入数据D加上1,意即,D=D+1,且该程序90返回,对新的输入数据(D+1)进行译码,例如:D为0x0001(步骤S908)。
[0079] 使用图3的N位预先译码表350,依据该N位数据,该决策单元346能够通过一对应地址,对所预存的译码结果进行查表,,以直接执行一多重步骤略过程序。举例而言,若N16 16
为16位且该N位数据642为(2 -2),依据(2 -2)所指定的一对应地址,直接从该表350中
16
读出(2 -2)的解码结果。因此,能够执行一高效率的译码程序。
[0080] 如上所述,相较于现有技术,本发明所揭露的影像译码装置及方法,能够于低显示分辨率时,略过区块中不需要的交流系数,进而减少解码时间,并利用一种简单且可实行的方法,毋需大量牺牲影像传真度,而能大幅提升整体的解码效能。
[0081] 虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟悉此项技艺者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。