专利名称:用于高速解码二进制图像的方法
技术领域:
本发明的各方面涉及一种高速解码二进制图像的方法,尤其涉及一种在
联合二值图像专家组(JBIG)的像素解码处理期间高速解码二进制图像的方 法。
背景技术:
JBIG是一种来自联合二值图像专家组的二进制图像压缩算法的国际标 准。JBIG算法基于一种算术编码处理。特别地,上下文数据在相应图像的每 个像素中以外围模式的形式出现,并且用来搜索指示哪些像素是白色或黑色 的纟充计预测。
JBIG解码处理使用以包括已经被解码的邻近像素信息的10位定义的上 下文值。JBIG解码处理计算较小可能符号大小(LSZ)值和较大可能符号 (MPS)值,用该LSZ和MPS值评估当前像素,并且解码该评估结果。在 这种情况下,该LSZ值指示由上述上下文值计算的状态信息,并且该MPS 值指示由上述上下文值计算的另一个值。
然而,传统系统以像素为单元(例如,1像素或1时钟单元)具有序列 结构,使得传统系统的速度根据图像是固定的。例如,如果图像全部都是白 色的,图像的水平尺寸是10000像素,并且图像的垂直尺寸是10000像素, 那么尽管编码尺寸相对小,但是图傳_数据在与(10000 x 10000 )时钟对应的 时间段上被压缩。
因此,由于传统系统以各像素为单元执行计算,所以执行速度慢,花费 时间处理重叠部分(如空白),并且降低了解码速度。
发明内容
本发明的各方面提供了 一种高速解码二进制图像的方法,其中该方法在 块单元中解码具有相同像素值的序列块,从而提高了解码速度。
本发明另外方面和/或本发明的优点将部分地在随后的描述中阐述,并将部分地^Mv所述描述中显而易见,或通过本发明的实践而得知。
根据本发明的一个方面,提供了一种高速解码二进制图像的方法,该方
法包括确定二进制图像中包括要被解码的目标像素的预定数目的序列像素, 是否只于应于white一run、 black_run和combined—run的《壬一;以及:i口果该予贞定 数目的序列像素对应于white run、 black run和combined run的^f壬一 ,则每 时钟单元解码一块中的预定数目的序列像素,其中当预定数目的序列像素全 为白色时,包括目标像素的预定数目的序列像素对应于white—run,当预定数 目的序列像素全为黑色时,对应于black一run,而当预定数目的序列像素为白 色和黑色混合时,对应于combined—run 。
white—run和black—run在要被解码的目标像素的外围像素中可以具有相 同的上下文值,并且在该目标像素的外围块中具有相同的像素值。
如果要被解码的目标像素的外围像素的上下文值的所有像素为0,并且 包含在该块中的所有像素值为0,则可以确定white—run。
如果要被解码的目标像素的较大可能符号(MPS)值为0,则可以确定 white—run 。
如果要被解码的目标像素的外围像素的上下文值的所有像素为1,并且 该块的所有像素值为1,则可以确定black—run。
如果要被解码的目标像素的较大可能符号(MPS)值为1,则可以确定 black一run。
如果若干模板每 一 行的所有的像素值都彼此相等,则可以确定 combin6d一run。
如果要被解码的目标像素的较大可能符号(MPS)值与该模板第一行的 像素值相等,则可以确定combined—run。
根据本发明的另 一个方面,提供了 一种包括用该方法编码并由计算机实 现的计算4几可读记录介质。
根据本发明的另一个方面,提供了一种高速解码二进制图像的装置,该 装置包括确定单元,用于确定二进制图像中包括要被解码的目标像素的预 定凄t目的序列4象素,是否对应于white—run、 black—run和combined—run的4壬 一 ;以及解码单元,如果该预定数目的序列像素对应于white—run、 black_run 和combined—run的任一,则每时钟单元解码一块中的预定数目的序列像素, 其中当预定数目的序列像素全为白色时,包括目标像素的预定数目的序列像素对应于white—run,当预定数目的序列像素全为黑色时,对应于black_run, 而当预定数目的序列像素为白色和黑色混合时,对应于combined—run。
本发明另外方面和/或本发明的优点将部分地在随后的描述中阐述,并将 部分地从所述描述中显而易见,或通过本发明的实践而得知。
结合附图,从下面对实施例的详细描述中,本发明的上述和/或其它方面 和优点将变得更加明显和更易于理解,附图中
图1是图示一般JBIG解码器的I/O操作的框图2是图示图1的JBIG解码器的概念图3是图示图1的JBIG解码器的解码方法的流程图4是图示根据本发明实施例的、由JBIG解码器支持的2行模板的结
构图5是图示根据本发明实施例的、由JBIG解码器支持的3行模板的结
构图6是图示根据本发明实施例的2行模板的white—run的结构图; 图7是图示根据本发明实施例的2行模板的black—run的结构图; 图8是图示根据本发明实施例的2行模板的combined—run的结构图; 图9是图示根据本发明另 一实施例的2行模板的combined—run的结构图; 图IO是图示根据本发明实施例的解码二进制图像的方法的流程图;以及 图11是图示根据本发明另一实施例的解码二进制图像的方法的流程图。
具体实施例方式
现在将详细地参照本发明的实施例、附图中图示的示例,其中相同的参 考标号始终指相同的元件。为了解释本发明,下面通过参照附图描述各实施 例。
图1是图示一般JBIG解码器输入/输出(I/O)操作的框图。参照图1, 该JBIG解码器接收编码的数据CD和上下文CX。该JBIG解码器使用该编 码的数据CD和上下文CX来解码数据,并且输出像素PIX。
图2是图示图1的JBIG解码器的概念图。参照图2,变量A表示时段 大小寄存器,并且变量C表示代码寄存器。变量A包括在0x8000-0x10000(例如,0.75-1.5)时段中标准化的当前解码时段的大小。供参考,如果该 JBIG解码器#1初始化,则A值被_设为0x10000 ( A=0xl0000 ),并且该C值 为0(Ci)。该JBIG解码器将当前时段分成两部分。较大可能符号(MPS) 位于两部分中的较低部分,而较小可能符号(LPS)位于两部分的较高部分。 该MPS表示较大可能的像素,而该LPS表示较小可能的像素。较小可能符 号大小(LSZ)表示该LPS的几率幅。
图3是图示图1的JBIG解码器的解码方法的流程图。参照图3,该JBIG 解码器通过计算目标像素的外围像素的上下文(CX),并且从表(LSZ [ST[CX]])中读取对应于该上下文(CX)的LSZ值来解码该目标像素。
相应地,在操作S301中,该LSZ值从旧的周期大小寄存器A,中被减去 以计算新的周期大小寄存器A ( A=A, - LSZ )。然后在操作S302中,该JBIG 解码器确定该新A值是否大于CHIGH值,该CHIGH值表示C值的第16位。
如果A值大于CHIGH值(操作S302 ),则该JBIG解码器在操作S303 中比较A值和0x8000值。如果A值小于0x8000值(操作S303 ),贝'J JBIG 解码器在操作S304中执行MPS—EXCHANGEx函数和RENORMDx函数。相 反,如果A值大于或等于0x8000值(操作S303 ),则该JBIG解码器在操作 S305中从MPS[CX]值中提取像素PIX,并且解码该MPS[CX]值。同时,如 果该A值小于或等于该CHIGH值(操作S302 ),则该JBIG解码器在操作S306 中执行LPS—EXCHANGEx函数和RENORMDx函数。
如上所述,该JBIG解码是在像素单元中计算的,使得该解码速度变得 更慢。因此,需要一种能够以块为单元同时解码重叠部分(例如,空白部分) 的改进方法,代替以像素为单元解码相同部分。
重叠部分被分成白色区域、黑色区域和混合区域。白色区域包括连续排 列的白色像素,并被称为white一run。黑色区域包括连续排列的黑色像素,并 被称为black一run。混合区域混合白色区域和黑色区域,并被称为 combined—run 。
参照图4和图5 ,该JBIG解码器支持3行模板(CX3 )和2行模板(CX2 )。 例如,对应于8个像素的所有上下文可以被检查,使得需要块区域(块2和 块3)。相应地,在2行模板的情况下(图5),要被解码的目标像素"?,,的 邻近的位置0到9的像素对应于上下文(CX2 ),并且其中1到8值连续排列 的像素对应于该块(块2)。
9上述操作可以根据三种方法使用,其详细描述将在下文具体描述。
图6是图示根据本发明实施例的2行模板的white_run的结构图。参照图 6 ,包括连续的白色像素的white—run可以根据以下关系由上下文、块和MPS 确定
2行模板White—run = ( Cx2= =0 ) & ( Block2= =0 ) & ( MPS= =0 ) 3行模板White_mn = ( CX3= =0 ) & (Block3= =0 ) & (MPS= =0 ) 即,在2行模板的情况下,是白色的上下文CX2和块(BLOCK2)的所 有像素由对应于白色的0表示。在这种情况下,如果MPS值是O,则确定为 white—mn。在3行模板的情况下,是白色的上下文CX3和块(BL0CK3 )的 所有像素由对应于白色的0表示。在这种情况下,如果该MPS值是O,则确 定为white—run 。
图7是图示根据本发明实施例的2行模板的black—run的结构图。参照图 7,包括连续的黑色像素的black—run可以根据以下关系由上下文、块和MPS 确定
2行模板Black_run = ( Cx2= =0x3ff) & ( Block2=0xff) & ( MPS= =1 ) 3行模板Black —run = ( CX3= =0x3ff) & ( Block3= =0xffff) & ( MPS=
=1)
即,在2行才莫板的情况下,是黑色的上下文CX2和块(BLOCK2)的所 有像素由对应于黑色的1表示。在这种情况下,如果该MPS值是O,确定为 black—run。在3行模板的情况下,是黑色的上下文CX3和块(BLOCK3 )的 所有像素由对应于黑色的l表示。在这种情况下,如果该MPS值是1,则确 定为black—run。
图8是图示根据本发明实施例的2行模板的combined—run的结构图。图 9是图示根据本发明另 一实施例的2行模板的combined—run的结构图。参照 图8和图9,在combined—run的2行模板的情况下,combined—run第一行的 所有像素都彼此相等,并且combinectrun第二行的所有像素都彼此相等。在 这种情况下,如果该MPS值等于第一行像素(MPS==第一行),则确定为 combined—run。在combined_run的3行模板(未示出)情况下,combined—run 第一行的所有像素都彼此相等,combined_run第二行的所有像素都彼此相等, 并且combined—run第三行的所有像素都彼此相等。在这种情况下,如果MPS 值等于第一行像素(MPS-二第一行),则确定为combined—run。^口果white—run、 black—run禾口 combined—run的4壬一净皮满足,贝'J确定当前 像素在平面区域中存在。
图10是图示根据本发明实施例的解码二进制图像的方法的流程图。为了 便于描述和更好地理解本发明的各方面,在图4中示出的2行模板的块单元 包括8位,并且其详细描述将在下文具体描述。
参照图10,在操作S1001中根据本发明的各方面的解码器读取要被解码 的8个序列像素附近的像素的上下文(CX)。解码器从表(LSZ [ST[CX]]) 中读取对应于该读取的上下文(CX)的LSZ值。然后,在操作S1002中, 解码器从旧的时段大小寄存器A中减去LSZ值以计算该块单元(8位)的新 的时段大小寄存器BA ( BA=A - 8*LSZ[ST[CX]])。
此后,在操作S1003中,该解码器确定该序列像素表示white—run、 blackj^in或combined_run。如果上下文(CX2 )和块(BLOCK2 )的所有像 素是0 ,并且MPS值也是0 ,则序列像素被确定为white_ run。如果上下文(CX2 ) 和块(BLOCK2)的所有像素是1,并且MPS值是O,则序列像素被确定为 black—run。同时,如果第一行的所有像素都彼此相等,第二行的所有像素都 彼此相等,并且MPS值等于第一行像素(MPS:-第一行),则序列像素被确 定为combined一run。
如果序列j象素^皮确定为white—run 、 black—run和combined—run的4壬一(#: 作S1003 ),则在操作S1004中,解码器比较CHIGH值和BA值以确定BA 值是否大于CHIGH值。如果BA值大于CHIGH值(操作S1004),则解码器 在操作S1005中比较BA值和0x8000值,以确定BA值是否大于或等于0x8000 值。如果BA值大于或等于0x8000值(操作S1005 ),则解码器在操作S1006 中从MPS[CX]中提取序列像素(PIX),并且以8像素为单元解码提取的像素。 即,解码器每时钟解码8像素。
同时,如果BA值小于0x8000值(操作S1005 ),则解码器在操作S1007 中从MPS[CX]中提取序列像素(PIX),并且以像素为单元解码提取的像素。 即,解码器每时钟解码单个像素。
尽管上述实施例描述了在8位块单元中的解码,应当理解的是本发明的 各方面不仅限于此示例,而且可以应用到其它示例(如16位块单元,32位 块单元等等)。
此外,尽管上述实施例仅公开了在8位块单元中解码的部分,但是应当理解的是本发明的各方面不仅限于此示例,而且可以应用到能够进一步提高
解码速度的其它示例(参见图11 )。如从图11中可见,在16位块单元中解码 的另外的解码部分可以进一步地并行连接到图10,使得本发明的范围可以进 一步扩展。
如从上述描述显而易见,本发明的各方面以块为单元解码具有相同像素 的块,从而提高了解码速度。此外,本发明的各方面可以以并行连接方式互 连8位解码部分、16位解码部分、和32位解码部分,从而提高了解码速度。
本发明的各方面也可以实现为在计算机可读记录介质上的计算机可读代 码。同样,完成本发明的代码和代码段可以由属于本发明的领域的编程人员 容易地理解。该计算机可读记录介质是可以存储能随后被计算机系统或计算 机代码处理装置读取的数据的任意数据存储设备。计算机可读记录介质的示 例包括只读存储器(ROM)、随机存取存储器(RAM)、 CD-ROM、磁带、软 盘、和光数据存储设备。该计算机可读记录介质同样可以在连网的计算机系 统上分布,使得计算机可读代码以分布式方式被存储和执行。
尽管本发明的一些实施例已经被显示和描述,但是本领域技术人员将理 解,可以对这些实施例进行各种改变而不背离本发明的原则和精神,本发明 的范围由权利要求及其等价限定。
权利要求
1.一种高速解码二进制图像的方法,该方法包括确定二进制图像中包括要被解码的目标像素的预定数目的序列像素是否对应于white_run、black_run和combined_run的任一;以及如果该预定数目的序列像素对应于white_run、black_run和combined_run的任一,则每时钟单元解码一块中的预定数目的序列像素,其中包括该目标像素的该预定数目的序列像素对应于white_run,当预定数目的序列像素全为白色时,black_run,当预定数目的序列像素全为黑色时,以及combined_run,当预定数目的序列像素为白色和黑色的混合时。
2. 如权利要求l所述的方法,其中当预定数目的序列像素对应于white—run或black—run时,该预定数目的 序列像素在目标像素的外围像素中具有相同的上下文值,以及当预定数目的序列像素对应于white—run或black—run时,该预定数目的 序列像素在该目标像素的外围块中具有相同的像素值。
3. 如权利要求2所述的方法,其中确定该预定数目的序列像素是否对应 于white一mn、 black—run和combined—run的任一 包括如果具有相同上下文值的所有外围像素由值0表示,并且在外围块中的 相同像素值为0,则确定该预定数目的序列像素对应于white—run。
4. 如权利要求2所述的方法,其中确定该预定数目的序列像素是否对应 于white—run、 black—run和combined—run的任一 包括如果具有相同上下文值的所有外围像素由值0表示,在外围块中的相同 像素值为0,并且要解码的目标像素的较大可能符号(MPS)值为0,则确定 该预定凄t目的序列4象素对应于white—run。
5. 如权利要求2所述的方法,其中确定该预定数目的序列像素是否对应 于white一run、 black—run和combined—run的任一包括如果具有相同上下文值的所有外围像素由值l表示,并且在外围块中的 相同像素值为1,则确定该预定数目的序列像素对应于black一run。
6. 如权利要求2所述的方法,其中确定该预定数目的序列像素是否对应 于white—run、 black—run和combined—run的任一包括如果具有相同上下文值的所有外围像素由值1表示,在外围块中的相同像素值为1,并且要解码的目标像素的MPS值为1,则确定该预定数目的序 列像素对应于black—mn。
7. 如权利要求1所述的方法,其中确定该预定数目的序列像素是否对应 于white一run、 black—run和combined—run的任一 包括如果对于模板的每一行,该行所有像素值都相等,则确定combined一run。
8. 如权利要求l所述的方法,其中确定该预定数目的序列像素是否对应 于white一mn、 black—run和combined—run的任一 包括如果对于模板的每一行,相应行的所有像素值都相等并且要解码的目标 像素的MPS值等于该模板第一行的像素值,则确定combined—run。
9. 如权利要求1所述的方法,还包括如果该预定数目的序列像素不对应于white—run、 black—run和 combined—run的任一,则每时钟单元解码该预定数目序列像素的一个像素。
10. 如权利要求l所述的方法,还包括如果第二预定数目的序列像素对应于white—mn、 black—run和 combined一run的任一,则与该预定数目的序列像素并行地、在该第二个块中 每时钟单元解码第二预定数目的序列像素,其中该第二块与该块大小不同。
11. 如权利要求IO所述的方法,其中该块是8位块、16位块、和32位 块的任一,而该第二块是8位块、16位块和32位块的不同的一个
12. 如权利要求l所述的方法,其中该块是8位块、16位块、和32位块 的任一。
13. 如权利要求1所述的方法,其中该预定数目的序列像素的解码是 JBIG解码。
14. 一种用权利要求1的方法编码并由计算机实现的计算机可读记录介质。
15. —种高速解码二进制图像的装置,该装置包括确定单元,用于确定二进制图像中包括要被解码的目标像素的预定数目 的序列 <象素是否》于应于white—run 、 black—run和combined—run的4壬 一 ;以及解码单元,用于如果该预定数目的序列像素对应于white_mn、 black—run 和combined—run的任一,则每时钟单元解码一块中的预定数目的序列像素,其中包括该目标像素的该预定数目的序列像素对应于 white—mn,当预定数目的序列像素全为白色时, black—run,当预定数目的序列像素全为黑色时,以及conbined—run,当预定数目的序列像素为白色和黑色的混合时。
16. 如权利要求15所述的装置,其中当预定数目的序列像素对应于white—run或black—run时,该预定数目的 序列像素在目标像素的外围像素中具有相同的上下文值,以及当预定数目的序列像素对应于white—run或black—run时,该预定数目的 序列像素在该目标像素的外围块中具有相同的像素值。
17. 如权利要求16所述的装置,其中如果具有相同上下文值的所有外围 像素由值0表示,并且在外围块中的相同像素值为0,则该确定单元确定该 预定数目的序列像素对应于white_mn。
18. 如权利要求16所述的装置,其中如果具有相同上下文值的所有外围 像素由值0表示,在外围块中的相同像素值为0,并且要被解码的目标像素 的较大可能符号(MPS)值为0,则该确定单元确定该预定数目的序列像素 对应于white—run。
19. 如权利要求16所述的装置,其中如果具有相同上下文值的所有外围 像素由值l表示,并且在外围块中的相同像素值为1,则该确定单元确定该 预定数目的序列像素对应于black—run。
20. 如权利要求16所述的装置,其中如果具有相同上下文值的所有外围 像素由值l表示,在外围块中的相同像素值为1,并且要被解码的目标像素 的MPS值为1,则该确定单元确定该预定数目的序列像素对应于black—run。
21. 如权利要求15所述的装置,其中如果对于模板每一行,该行的所有 像素值都相等,则该确定单元确定combined—run。
22. 如权利要求15所述的装置,其中如果对于模板每一行,相应行的所 有像素值都相等,并且要被解码的目标像素的MPS值等于该模板的第一行的 像素值,则该确定单元确定combined一run。
23. 如权利要求15所述的装置,其中如果该预定数目的序列像素不对应 于white—run、 black—run和combined—run的任一,则该解码单元每时钟单元 解码该预定数目序列像素的一个像素。
24. 如权利要求15所述的装置,其中如果第二预定数目的序列像素对应于white—run、 black—run禾口 combined—run的4壬一,则该解石马单元与该子贞定凄t 目的序列像素并行地、在该第二个块中每时钟单元解码第二预定数目的序列 像素,其中该第二块与该块大小不同。
25. 如权利要求24所述的装置,其中该块是8位块、16位块、和32位 块的任一,并且该第二块是8位块、16位块和32位块的不同的一个。
26. 如权利要求15所述的装置,其中该块是8位块、16位块、和32位 块的任一。
27. 如权利要求15所述的装置,其中该解码单元是JBIG解码器。
全文摘要
一种用于高速解码二进制图像的方法,其中具有相同像素值的块在时钟单元中被解码,使得解码速度提高。该方法包括确定预定数目的序列像素是否对应于white_run、black_run和combined_run的任一;以及如果该预定数目的序列像素对应于white_run、black_run和combined_run的任一,则每时钟单元解码一个块中的序列像素。
文档编号H04N1/41GK101296298SQ20081012588
公开日2008年10月29日 申请日期2008年2月14日 优先权日2007年2月16日
发明者权钟民 申请人:三星电子株式会社