CN1121224A - 快速90度旋转双态图象的系统 - Google Patents

快速90度旋转双态图象的系统 Download PDF

Info

Publication number
CN1121224A
CN1121224A CN95103578A CN95103578A CN1121224A CN 1121224 A CN1121224 A CN 1121224A CN 95103578 A CN95103578 A CN 95103578A CN 95103578 A CN95103578 A CN 95103578A CN 1121224 A CN1121224 A CN 1121224A
Authority
CN
China
Prior art keywords
register
row
bit
intermediary matrix
piece
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
CN95103578A
Other languages
English (en)
Other versions
CN1066834C (zh
Inventor
阿尔伯特·Z·赵
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1121224A publication Critical patent/CN1121224A/zh
Application granted granted Critical
Publication of CN1066834C publication Critical patent/CN1066834C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/602Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

正负90°旋转双态图象数据的方法。选出8×8象素块进行旋转,利用查找表动态地生成一个中间矩阵并且存储到处理机的两个32位寄存器里。中间矩阵的生成达到部分的旋转,奇数行存储到第一和第三32位寄存器里,偶数行存储到第二和第四32位寄存器里。第一和第二寄存器沿相反方向移位一位,分别与第四和第三寄存器进行逻辑“或”运算这样偶数位放在一个寄存器里而奇数位放在另一个寄存器里。对所有剩余的图像数据块重复这些步骤。

Description

快速90度旋转双态图象的系统
本发明涉及数字图象处理方法,并且更具体地涉及快速旋转双态图象的方法。
因为双态位图每象素只包含单个二进制位,双态图象(亦称为单色图象)是只具有两种明暗等级(通常为黑和白或者黑和绿)的图象。一个分辨率为1024×1024象素屏幕的全部位图是220位,或者约为128,000字节。
随着在办公室和在家庭办公室日益激增象工作站和个人计算机的小存储器计算机,用计算机存储办公室文件、报告、表格、信件甚至照片正盛行为一种减少物理存储要求和提高共同的办公室文件可访问性的手段。
通常资料是用光学字符阅读机(OCR)扫描、传真或者联机数据传输接收到计算机系统里的。提出的挑战在于要例如通过OCR把资料图象输入到一个系统里并且能够迅速有效地操纵它,使得它能够容易地被最终用户看到。
把双态图象相对于它的输入方位旋转90°、180°和270°是资料图象处理中最常使用的操作。传统的解决方法是一次旋转图象的一个象素,但是这种操作非常消耗时间。
因此,在现有技术中已经提出几种加快旋转图象的方法,特别是加快正或负90°的旋转,因为它们要比180°旋转复杂得多。这是由于图象象素组的内部压缩数据表示法所造成的,在表示法中每个字节包括八个图象象素。旋转后的图象必须占据包含旋转前原有图象的存储器。这样,对于这类型的旋转,因为每个垂直列的各个位由旋转压缩成字节而且输出图象的一个行不能以一个字节的一部分终止,行数必须是8的倍数。从而,必须把位置标志数据值加到不是8的倍数列上。
IBM公司的美国专利号4,627,020公开一种90°旋转图象的方法,由于它同时旋转高达64个象素(8×8的块),而不只是一个象素,因此,这种方法比传统的方法快得多。一个图象块要被移进临时存储器里(称为查找表)并且划分成可转动尺寸的更小的字节组。然后旋转所有位不具有相同值的各个组。该方法利用了这个事实:大部分图象的大区域是背景色彩的(例如白色),而且只含有一种色彩的图象块或图象图形不需要被转动。这是一种提高,现在被广泛地附加到旋转方法里。但是,如将看到的,因为其对各个旋转字节采用了附加的存储器访问和地址操作,专利4,627,020的方法不如本发明提出的方法那样有效。
同样由IBM公司提出的美国专利号4,658,430针对于旋转编码数据图象的方法,编码数据图象例如是转动90°的倍数后通过电话线发送的。编码数据方位问题,和本发明要对待的数据类型旋转问题是不相同的。
IBM公司的美国专利4,837,845专门处理从原始方位正或负90°旋转二进制图象数据的问题。图象数据首先以部分转置形式存储到包含在8个32位寄存器中的矩阵里。该矩阵被划分成可旋转尺寸的位组(等尺寸的子矩阵),并且在各组里第一预选位位置和第二预选位位置转置。然后组内的行位和组内的第二行的位交换。
作为现有技术,这些IBM专利的每一个专利讨论一些与和解决图象转动有关的早得多的刊物和文献,这些IBM专利的每一篇的内容,特别它们描述现有技术的章节在本文中引用为对比文件。
除上面所述之外,International Computers Limited公司的美国专利号4,916,746公开利用一种硬件旋转电路,顺时针或逆时针90度旋转图象。该旋转电路由FIFO和移位寄存器组成,在其中每次从FIFO读出一个字的数据,位移一位后写回到FIFO,造成一种螺线数据路径。然后利用位移寄存器装配输出的旋转后的图象数据。
佳能株式会社的美国专利号4,985,849公开一种图象处理系统,用于形成原始图象的倾斜变换图象或者转动变形图象。计算原始数据点和输出数据点的地址位置间的关系,并且把这些计算出的值预先存储到查找表里。然后利用查找表的输出地址信息,转换或复制原始地址位置的图象数据。
Cornell Research Foundation公司的美国专利号5,067,167公开通过采用一种数据处理机对三维图象的原始空间坐标值进行修正,将三维图象旋转90°。
Pitney Bowes公司的美国专利号5,233,168公开抗图象扭斜,包括扫描图象以通过象素映象图象俘获象图,确定映象图象的大小及扭斜,进行一系列区域受限的垂直象素偏移,以及进行一系列区域受限的水平象素偏移。
其它用于快速图象旋转的方法是特殊的硬件解决办法,如IBM公司的美国专利号4,947,344里公开的称为旋转缓冲器的专用硬件装置或Yamaha公司的美国专利4,992,960里公开的专用电路。但是,这些类型的硬件解决办法需要和修改现有硬件相联系的相当大的费用,与其相反用软件实现的解决办法最大地利用现有硬件的存储能力。
类似于以前公开的IBM专利(′020、′430和′845),本发明仍旧同时处理图象数据的64象素块,以加速从输入方位向90°或270°方位的图象旋转。但是,因为本发明的方法所需对存储器的访问比现有技术的方法要少,已经发现在基于Intel(英特尔公司)的带有32位寄存器的IBM个人计算机上本发明要快15%至30%,这种个人计算机是本发明主要针对的环境。
从而,本发明在32位操作系统下提供一种90°旋转带有8行乘8列象素数据位的双态图象数据块的方法。本方法包括这些计算机实现的步骤:产生一个8行×8列象素数据位的中间矩阵,其中来自该数据块的各行被一分为二并且平移到一对四位列内,在中间矩阵成对的四位列里块内相隔的行被横置排列并且块内的较低阶行被排列到相邻较高阶行的上面。并且把中间矩阵的行顺序地保存到第一和第二32位寄存器里。然后把第一32位寄存器复制到第三32位寄存器里和把第二32位寄存器复制到第四32位寄存器里。第一和第二寄存器按相反的方向各移动一位并且来自第四寄存器的相隔位动态地覆盖到第一寄存器里,同时来自第三寄存器的相隔位动态地覆盖到第四寄存器里。
本发明目的还在于一种带有完成本计算机实现方法的装置的系统。
现在将结合附图详细说明本发明的实施方式,附图是:
图1是实施本发明的典型操作系统的示意图;
图2和图3表示个人计算机或工作站的显示屏幕,表示方位相差90°的资料;以及
图4是一个流程图,表示顺时针或逆时针方向90°旋转图象的计算机实现步骤。
本发明运行在32位编程操作系统环境下,如IBM的OS/2系统,Posix的Unix系统或Microsoft的系统NT。
在图1中示意表示这种类型的操作系统的部件,并且一般包括带有32位存储寄存器的主处理机12,图象存储器14,显示终端16,接收图象的数据装置如OCR图象扫描仪18以及打印机20。其它把图象数据接收到操作系统里的手段可以包括数据传输和传真。显示终端16、图象扫描仪18和打印机20各具有不同的读出或者表示资料或图象的要求。因此,将要求处理机12连同图象存储器14处理图象数据以满足外围设备16、18和20各自的表示要求。
例如,一张照相图象可经过扫描仪18扫描到该系统里,并且如图2中所示,最终作为计算机显示器24上的水平显示图象22。为了使最终用户能以任何有意义的方式使用这个显示图象,这个图象的方位必须顺时针地旋转90°以达到图3所示的计算机显示器24上的位置22a。
本发明方法的步骤表示在图4的流程图里。如前面所讨论的那样地本发明按8×8象素块段旋转图象数据。这样,从整个图象的已存储数据中选出的8×8象素块段(图4中的方块50)可由下表A中所示的64位矩阵所表示。
                      表A
    行1  A7  A6  A5 A4  A3  A2  A1  A0
    行2  B7  B6  B5  B4  B3  B2  B1  B0
    行3  C7  C6  C5  C4  C3  C2  C1  C0
    行4  D7  D6  D5  D4  D3  D2  D1  D0
    行5  E7  E6  E5  E4  E3  E2  E1  E0
    行6  E7  F6  F5  F4  F3  F2  F1  F0
    行7  G7  G6  G5  G4  G3  G2  G1  G0
    行8  H7  H6  H5  H4  H3  H2  H1  H0
其中A0、A1……、H6、H7分别代表构成该矩阵的双态象素。
顺时针90°旋转表A的矩阵使该矩阵沿其边转动,使行1变成8位的右边列,并且象素A0在底处。逆时针90°旋转该矩阵使行1变成8位的左边列,并且A0象素在顶处。由此而产生的这两个数据表示法显示在本说明书里的表D和表F里。
根据本发明为了达到顺时针方向和逆时针方向两种旋转应用了相同的一般原理和相同的函数。但是,如下面详细讨论的那样,在许多情况下为了达到逆时针方向的旋转,而不是顺时针方向的旋转,函数是相反的。
变换图象数据的工作区是处理机里的32位寄存器,变换后的数据从工作区移回到存储器里以供显示或打印。64位的矩阵可被存储在两个32位寄存器里。
本发明是在四个主要步骤里执行的。首先,生成一个中间矩阵以建立一个把该矩阵划分成两个各为4字节的寄存器尺寸的行组。中间矩阵存储到两个目标32位寄存器里,然后再复制到另外一对32位寄存器里。接着处理这四个寄存器里的数据,并且最终把四个寄存器分拆回到原始的两个寄存器里,使这两个寄存器含有旋转后的的数据图象。
自始至终,只需要对每个字节进行三次存储器访问(或者每块24次),第一次为在把该字节读入处理机寄存器时,接着为了产生中间矩阵利用该值去访问一个查找表时,而最后的存储器访问是把旋转好的数据保存回到存储器里。
这一点意味着比起现有技术中第二快的旋转方法(其需要对每字节四次存储器访问或者对整个块32次存储器访问)本方法减少25%的存储器访问,也就是本发明提高速度的原因。
根据本发明的最佳实施方式,选出的图象数据的8×8象素矩阵或图象数据块被变换到一个中间矩阵里去(方块52),中间矩阵是以一种方式重新布置的,从而开始重新排列象素的过程,使得象素位置更接近完成旋转时的位置。在预期顺时针方向90°旋转的情况下,中间矩阵是按表B布置的
                     表B
    行1  G7  G3  E7  E3  C7  C3  A7  A3
    行2  G6  G2  E6  E2  C6  C2  A6  A2
    行3  G5  G1  E5  E1  C5  C1  A5  A1
    行4  G4  G0  E4  E0  C4  C0  A4  A0
    行5  H7  H3  F7  F3  D7  D3  B7  B3
    行6  H6  H2  F6  F2  D6  D2  B6  B2
    行7  H5  H1  F5  F1  D5  D1  B5  B1
    行8  H4  H0  E4  F0  D4  D0  B4  B0
用于旋转的部分重新布置实际上把每行划分成并且移动成一对四位列。中间矩阵的前四行包含从原始数据块中横向排列的奇数行(即,行A、C、E和G)移动得到的成对的4位列。在顺时针方向旋转的情况下,横置排列是从右向左的,并且各个半行的较高阶位布置在较低阶位的上面。对于逆时针方向的旋转,从表E中可以看出,横置排列是从左向右的,并且各个半行的较低阶位布置在较高阶位的上面。中间矩阵的下面四行包含按上面四行类似排列的原始数据块的偶数行(即行B、D、F和H)。
在本发明的最佳实施方式中,中间矩阵是利用四个查找表生成的,这四个查找表放在构成本公开的一部分的附录部分中。
四个查找表的每个表负责变换8×8象素矩阵中的两行。对于顺时针旋转,附录中的表1用于变换行1和行2,表2用于行3和行4,表3用于行5和行6,并且表4用于行7和行8,且行是相隔地变换的(即,行1、3、5和7,然后行2、4、6和8)。对于逆时针旋转,查找表是按相反的次序使用的,表1用于变换行8和行7,表2用于行G和行5,表3用于行4和行3,并且表4用于行2和行1。
在最佳实施方式里,通过用刚刚保存在两个32位处理机寄存器的结果进行动态覆盖来生成中间矩阵。
通过下面的例子,从表C中用二进制记数法表示的双态8×8象素矩阵开始,可说明使用查找表进行90°的旋转。
                      表C
    行1  0  0  0  0  1  1 1  1
    行2  0  0  0  0  0  0  1  1
    行3  0  0  0  1  0  1  0  0
    行4  0  0  0  1  0  1  0  1
    行5  0  0  1  1  0  0  0  0
    行6  0  1  0  1 1  1  0  0
    行7  0  0  1  0  1  1  1  0
    行8  0  0  1  0  0  0  1  0
首先,对行1,利用查找表1的表目15:****查找表1:行    从二进位表示         到二进位表示15    00001111    0000 0001 00000001 00000001 00000001在寄存器R1里保存的32位值为:
 字节3    字节2    字节1       字节0R1 00000001 00000001 00000001    00000001接着,对于行3,利用查找表2的表目20:行    从二进位表示      到二进位表示20    00010100    00000000 00000100 00000000 00001000该值和行1的4字节值进行逻辑“或”运算,或者动态地进行覆盖,在其中二个4字节行中的任何“1”值替代“0”值。第一32位寄存器的修正结果是:
  字节3    字节2   字节1    字节0R1 00000001 00000101 00000001 00001001接着,对于行5,利用查找表3 的表目48:****查找表3行 从二进位表示   到二进位表示48 00110000 00000000 00000100 00100000 00100000当该4字节值和R1的内容逻辑“或”时,产生下述寄存器值:
 字节3    字节2     字节1   字节0R1 00000001 00000101 00100001 00101001最后,对行7,利用查找表4的表目46:****查找表4行 从二进位表示  到二进位表示46 00101110 01000000 0100000 11000000 00000000和在该值逻辑“或”之后,寄存器R1含有:
 字节3    字节2    字节1    字节0R1 01000001 01000101 11100001 00101001对行2、4、6和8,分别利用查找表1、2、3和4重复相同的过程,在R2里保存的结果为:
  字节3  字节2    字节1    字节0R1 00010000 00110100 11000001 00101101
这样完成中间矩阵的生成处理。为了阐明这些结果,R1和R2的内容可以以一种矩阵型的格式把高位字节放在低位字节之上显示如下:R1字节3    01000001R1字节2    01000101R1字节1    11100001R1字节0    00101001R2字节3    00010000R2字节2    00110100R2字节1    11000001R2字节0    00101101
这样,回到原始的一般性例子,中间矩阵的前四行(或前四字节行)保存到图4的第一位32位寄存器R1里(方块54),而中间矩阵的另外四行(或后四字节行)保存到第二32位寄存器R2里(方块56)。这样,在一种32位的环境下,中间矩阵以下面的表示法保持在两个32位寄存器R1里和R2里:
 R1:G7 G3 E7 E3 C7 C3 A7 A3  G6 G2 E6 E2 C6 C2 A6 A2  G5 G1 E5 E1 C5 C1 A5 A1  G4 G0 E4 E0 C4 C0 A4 A0
 R2:H7 H3 F7 F3 D7 D3 B7 B3  H6 H2 F6 F2 D6 D2 B6 B2  H5 H1 F5 F1 D5 D1 B5 B1  H4 H0 F4 F0 D4 D0 B4 B0
寄存器R1和R2的内容然后分别复制到另外两个32位寄存器R3和R4里(方块58)以达到下列表示法:
 R1:G7 G3 E7 E3 C7 C3 A7 A3R2:B7 H3 F7 F3 D7 D3 B7 B3  G6 G2 E6 E2 C6 C2 A6 A2H6 H2 F6 F2 D6 D2 B6 B2  G5 G1 E5 E1 C5 C1 A5 A1H5 H1 F5 F1 D5 D1 B5 B1  G4 G0 E4 E0 C4 C0 A4 A0H4 H0 F4 F0 D4 D0 B4 B0
 R3:G7 G3 E7 E3 C7 C3 A7 A3R4:H7 H3 F7 F3 D7 D3 B7 B3  G6 G2 E6 E2 C6 C2 A6 A2H6 H2 F6 F2 D6 D2 B6 B2  G5 G1 E5 E1 C5 C1 A5 A1H5 H1 F5 F1 D5 D1 B5 B1  G1 G0 E4 E0 C4 C0 A4 A0H4 H0 F4 F0 D4 D0 B4 B0
当旋转为顺时针90°旋转时(方块60),把R1和R4的偶数位置为零(方块62)和把R2和R3的奇数位置为零(方块64),以造成寄存器里的下述改变:
 R1:G7 00 E7 00 C7 00 A7 00R2:00 H3 00 F3 00 D3 00 B3  G6 00 E6 00 C6 00 A6 0000 H2 00 F2 00 D2 00 B2  G5 00 E5 00 C5 00 A5 0000 H1 00 F1 00 D1 00 B1  G4 00 E4 00 C4 00 A4 0000 H0 00 F0 00 D0 00 B0
 R3:00 C3 00 E3 00 C3 00 A3R7:H7 00 F7 00 D7 00 B7 00  00 G2 00 E2 00 C2 00 A2H6 00 F6 00 D6 00 B6 00  00 G1 00 E1 00 C1 00 A1H5 00 F5 00 D5 00 B5 00  00 G0 00 E0 00 C0 00 A0H4 00 F4 00 D4 00 B4 00
接着把R1的内容向右移一位和把R2的内容向左移一位(方块66),这样四个寄存器的内容如下所示:
 R1:00 G7 00 E7 00 C7 00 A7R2:H3 00 F3 00 D3 00 B3 00  00 G6 00 E6 00 C6 00 A6H2 00 F2 00 D2 00 B2 00  00 G5 00 E5 00 C5 00 A5H1 00 F1 00 D1 00 B1 00  00 G4 00 E4 00 C4 00 A4H0 00 F0 00 D0 00 B0 00
 R3:00 G3 00 E3 00 C3 00 A3R4:H7 00 F7 00 D7 00 B7 00  00 G2 00 E2 00 C2 00 A2H6 00 E6 00 D6 00 B6 00  00 G1 00 E1 00 C1 00 A1H5 00 F5 00 D5 00 B5 00  00 G0 00 E0 00 C0 00 A0H4 00 F4 00 D4 00 B4 00
然后R1和R4进行逻辑“或”运算(方块74)并且R2和R3进行逻辑“或”运算(方块76)以获得寄存器R1和R2的下述内容:
 R1:H7 G7 F7 E7 D7 C7 B7 A7  H6 G6 F6 E6 D6 C6 B6 A6  H5 G5 F5 E5 D5 C5 B5 A5 H4 G4 F4 E4 D4 C4 B4 A4
R2:H3 G3 F3 E3 D3 C3 B3 A3 H2 G2 F2 E2 D3 C2 B2 A2 H1 G1 F1 E1 D1 C1 B1 A1 H0 G0 F0 E0 D0 C0 B0 A0
现在,在矩阵格式下,R1和R2包含旋转后的8×8象素矩阵:
                   表DR1:
 H7  G7  F7  E7  D7  C7  B7  A7
 H6  G6  F6  E6  D6  C6  B6  A6
 H5  G5  F5  E5  D5  C5  B5  A5
 H4  G4  F4  E4  D4  C4  B4  A4
R2:
 H3  G3  F3  E3  D3  C3  B3  A3
 H2  G2  F2  E2  D2  C2  B2  A2
 H1  G1  F1  E1  D1  C1  B1  A1
 H0  G0  F0  E0  D0  C0  B0  A0
遵循类似的方法可获得逆时针方向90°旋转。如上面所述,在最佳实施方式里以相反的次序利用查找表进行中间矩阵的生成,从而从表A产生如下的中间矩阵:
                    表E
    行1  A4 A0  C4  C0  E4  E0  G4  G0
    行2  A5  A1  C5  C1  E5  E1  G5  G1
    行3  A6  A2  C6  C2  E6  E2  G6  G2
    行4  A7  A3  C7  C3  E7  E3  G7  G3
    行5  B4  B0  D4  D0  F4  F0  H4  H0
    行6  B5  B1  D5  D1  F5  F1  H5  H1
    行7  B6  B2  D6  D2  F6  F2  H6  H2
    行8  B7  B3  D7  D3  F7  F3  H7  H3
在32位的环境下,上述中间矩阵可用下述表示法保持在两个32位寄存器R1和R2里(方块54和56):
 R1:A7 A3 C7 C3 E7 E3 G7 G3  A6 A2 C6 C2 E6 E2 G6 G2  A5 A1 C5 C1 E5 E1 G5 G1  A4 A0 C4 C0 E4 E0 G4 G0
 R2:B7 B3 D7 D3 F7 F3 H7 H3  B6 B2 D6 D2 F6 F2 H6 H2  B5 B1 D5 D1 F5 F1 H5 H1  B4 B0 D4 D0 F4 F0 H4 H0
接着把R1和R2的内容分别复制到另外两个32位寄存器R3和R4里(方块58):
 R1:A7 A3 C7 C3 E7 E3 G7 G1R2:B7 B3 D7 D3 F7 F3 H7 H3  A6 A2 C6 C2 E6 E2 G6 G2B6 B2 D6 D2 F6 F2 H6 H2  A5 A1 C5 C1 E5 E1 C5 G1B5 B1 D5 D1 F5 F1 H5 H1  A4 A0 C4 C0 E4 E0 G4 G0B4 B0 D4 D0 F4 F0 H4 H0
 R3:A7 A3 C7 C3 E7 E3 G7 G1R4:B7 B3 D7 D3 F7 F3 H7 H3  B6 B2 D6 D2 F6 F2 H6 H2B6 B2 D6 D2 F6 F2 H6 H2  B5 B1 D5 D1 F5 F1 H5 H1B5 B1 D5 D1 F5 F1 H5 H1  B4 B0 D4 D0 F4 F0 H4 H0B4 B0 D4 D0 F4 F0 H4 H0
对于逆时针方向的旋转(方块60),把R1和R4的奇数位置为零(方块68)并把R2和R3的偶数位置为零(方块70)。这样把四个寄存器的内容改变为:
 R1:00 A3 00 C3 00 E3 00 G3R2:B7 00 D7 00 F7 00 H7 00  00 A2 00 C2 00 E2 00 G2B6 00 D6 00 F6 00 H6 00  00 A1 00 C1 00 E1 00 G1B5 00 D5 00 F5 00 H5 00 00 A0 00 C0 00 E0 00 G0B4 00 D4 00 F4 00 H4 00
 R3:A7 00 C7 00 E7 00 G7 00R4:00 B3 00 D3 00 F3 00 H3  A6 00 C6 00 E6 00 G5 0000 B2 00 D2 00 F2 00 H2  A5 00 C5 00 E5 00 G5 0000 B1 00 D1 00 F1 00 H1 A4 00 C4 00 E4 00 G4 0000 B0 00 D0 00 F0 00 H0
把R1的内容向左移一位和把R2的内容向右移一位(方块72),这样现在4个寄存器显示为:
 R1:A3 00 C3 00 E3 00 G3 00R2:00 B7 00 D7 00 F7 00 H7 A2 00 C2 00 E2 00 G2 0000 B6 00 D6 00 F6 00 H6 A1 00 C1 00 E1 00 G1 0000 B5 00 D5 00 F5 00 H5 A0 00 C0 00 E0 00 G0 0000 B4 00 D4 00 F4 00 H4
 R3:07 00 C7 00 E7 00 G7 00R4:00 B3 00 D3 00 F3 00 H3 A6 00 C6 00 E6 00 G6 0000 B2 00 D2 00 F2 00 H2 A5 00 C5 00 E5 00 G5 0000 B1 00 D1 00 F1 00 H1 A4 00 C4 00 E4 00 G4 0000 B0 00 D0 00 F0 00 H0
R1和R4进行逻辑“或”运算(方块74),并且R2和R3进行逻辑“或”运算(方块76)。然后,前二个寄存器具有如下的表示:
 R1:A1 B1 C3 D1 E1 F1 G1 H1 A2 B2 C2 D2 E2 F2 G2 H2 A1 B1 C1 D1 E1 F1 G1 H1 A0 B0 C0 D0 E0 F0 G0 H0
 R2:A7 B7 C7 D7 E7 F7 G7 H7 A6 B6 C6 D6 E6 F6 G6 H6 A5 B5 C5 D5 E5 F5 G5 H5 A4 B4 C4 D4 E4 F4 G4 H4
现在R1和R2包含着从原始方位逆时针方向旋转90°后的8×8象素矩阵。若按矩阵格式表示,数据显示如下:
                  表FR1:
A0  B0  C0  D0  E0  F0  G0  H0
 A1  B1  C1  D1  E1  F1  G1  H1
 A2  B2  C2  D2  E2  F2 G2 H2
A3  B3  C3  D3  E3  F3  G3  H3
R2:
 A4  B4  C4  D4  E4  F4  G4  H4
 A5  B5  C5  D5  E5  F5  G5  H5
 A6  B6  C6  D6  E6  F6  G6  H6
 A7  B7  C7  D7  E7  F7  G7  H7
在IBM32位计算机上实现的最佳实施方式里,本发明的方法运行快得多,并且在32位的平台上本方法的开销要比所知以前的方法要少。
测试结果表明在基于Intel的IBM PC计算机上本方法要快30%,如果使用超高速缓冲存储器这个结果还会更好。
在附属权利要求书的范围内熟练的技术人员可对这里所说明的最佳实施方式进行明显的修改。
查找表1:表目    从二进制表示                 到二进制表示0    00000000          00000000 00000000 00000000 000000001    00000001          00000000 00000000 00000000 000000012    00000010          00000000 00000000 00000001 000000003    00000011          00000000 00000000 00000001 000000014    00000100          00000000 00000001 00000000 000000005    00000101          00000000 00000001 00000000 000000016    00000110          00000000 00000001 00000001 000000007    00000111          00000000 00000001 00000001 000000018    00001000          00000001 00000000 00000000 000000009    00001001          00000001 00000000 00000000 0000000110    00001010          00000001 00000000 00000001 0000000011    00001011          00000001 00000000 00000001 0000000112    00001100          00000001 00000001 00000000 0000000013    00001101          00000001 00000001 00000000 0000000114    00001110          00000001 00000001 00000001 0000000015    00001111          00000001 00000000 00000001 0000000116    00010000          00000000 00000000 00000000 0000001017    00010001          00000000 00000000 00000000 0000001118    00010010          00000000 00000000 00000001 0000001019    00010011          00000000 00000000 00000001 0000001120    00010100          00000000 00000001 00000000 0000001021    00010101          00000000 00000001 00000000 0000001122    00010110          00000000 00000001 00000001 0000001023    00010111          00000000 00000001 00000001 0000001124    00011000          00000001 00000000 00000000 0000001025    00011001          00000001 00000000 00000000 0000001126    00011010          00000001 00000000 00000001 0000001027    00011011          00000001 00000000 00000001 0000001128    00011100          00000001 00000001 00000000 0000001029    00011101          00000001 00000001 00000000 0000001130    00011110          00000001 00000001 00000001 0000001031    00011111          00000001 00000001 00000001 0000001132    00100000          00000000 00000000 00000010 0000000033    00100001          00000000 00000000 00000010 0000000134    00100010          00000000 00000000 00000011 0000000035    00100011          00000000 00000000 00000011 0000000136    00100100          00000000 00000001 00000010 0000000037    00100101          00000000 00000001 00000010 0000000138    00100110          00000000 00000001 00000011 0000000039    00100111          00000000 00000001 00000011 00000001  40    00101000    00000001 00000000 00000010 0000000041    00101001    00000001 00000000 00000010 0000000142    00101010    00000001 00000000 00000011 0000000043    00101011    00000001 00000000 00000011 0000000144    00101100    00000001 00000001 00000010 0000000045    00101101    00000001 00000001 00000010 0000000146    00101110    00000001 00000001 00000011 0000000047    00101111    00000001 00000001 00000011 0000000148    00110000    00000000 00000000 00000010 0000001049    00110001    00000000 00000000 00000010 0000001150    00110010    00000000 00000000 00000011 0000001051    00110011    00000000 00000000 00000011 0000001152    00110100    00000000 00000001 00000010 0000001053    00110101    00000000 00000001 00000010 0000001154    00110110    00000000 00000001 00000011 0000001055    00110111    00000000 00000001 00000011 0000001156    00111000    00000001 00000000 00000010 0000001057    00111001    00000001 00000000 00000010 0000001158    00111010    00000001 00000000 00000011 0000001059    00111011    00000001 00000000 00000011 0000001160    00111100    00000001 00000001 00000010 0000001061    00111101    00000001 00000001 00000010 0000001162    00111110    00000001 00000001 00000011 0000001063    00111111    00000001 00000001 00000011 0000001164    01000000    00000000 00000010 00000000 0000000065    01000001    00000000 00000010 00000000 0000000166    01000010    00000000 00000010 00000001 0000000067    01000011    00000000 00000010 00000001 0000000168    01000100    00000000 00000011 00000000 0000000069    01000101    00000000 00000011 00000000 0000000170    01000110    00000000 00000011 00000001 0000000071    01000111    00000000 00000011 00000001 0000000172    01001000    00000001 00000010 00000000 0000000073    01001001    00000001 00000010 00000000 0000000174    01001010    00000001 00000010 00000001 0000000075    01001011    00000001 00000010 00000001 0000000176    01001100    00000001 00000011 00000000 0000000077    01001101    00000001 00000011 00000000 0000000178    01001110    00000001 00000011 00000001 0000000079    01001111    00000001 00000011 00000001 0000000180    01010000    00000000 00000010 00000000 0000001081    01010001    00000000 00000010 00000000 0000001182    01010010    00000000 00000010 00000001 0000001083    01010011    00000000 00000010 00000001 0000001184    01010100    00000000 00000011 00000000 0000001085    01010101    00000000 00000011 00000000 0000001186    01010110    00000000 00000011 00000001 0000001087    01010111    00000000 00000011 00000001 00000011  88    01011000    00000001 00000010 00000000 0000001089    01011001    00000001 00000010 00000000 0000001190    01011010    00000001 00000010 00000001 0000001091    01011011    00000001 00000010 00000001 0000001192    01011100    00000001 00000011 00000000 0000001093    01011101    00000001 00000011 00000000 0000001194    01011110    00000001 00000011 00000001 0000001095    01011111    00000001 00000011 00000001 0000001196    01100000    00000000 00000010 00000010 0000000097    01100001    00000000 00000010 00000010 0000000188    01100010    00000000 00000010 00000011 0000000099    01100011    00000000 00000010 00000011 00000001100    01100100    00000000 00000011 00000010 00000000101    01100101    00000000 00000011 00000010 00000001102    01100110    00000000 00000011 00000011 00000000103    01100111    00000000 00000011 00000011 00000001104    01101000    00000001 00000010 00000010 00000000105    01101001    00000001 00000010 00000010 00000001106    01101010    00000001 00000010 00000011 00000000107    01101011    00000001 00000010 00000011 00000001108    01101100    00000001 00000011 00000010 00000000109    01101101    00000001 00000011 00000010 00000001110    01101110    00000001 00000011 00000011 00000000111    01101111    00000001 00000011 00000011 00000001112    01110000    00000000 00000010 00000010 00000010113    01110001    00000000 00000010 00000010 00000011114    01110010    00000000 00000010 00000011 00000010115    01110011    00000000 00000010 00000011 00000011116    01110100    00000000 00000011 00000010 00000010117    01110101    00000000 00000011 00000010 00000011118    01110110    00000000 00000011 00000011 00000010119    01110111    00000000 00000011 00000011 00000011120    01111000    00000001 00000010 00000010 00000010121    01111001    00000001 00000010 00000010 00000011122    01111010    00000001 00000010 00000011 00000010123    01111011    00000001 00000010 00000011 00000011124    01111100    00000001 00000011 00000010 00000010125    01111101    00000001 00000011 00000010 00000011126    01111110    00000001 00000011 00000011 00000010127    01111111    00000001 00000011 00000011 00000011128    10000000    00000010 00000000 00000000 00000000129    10000001    00000010 00000000 00000000 00000001130    10000010    00000010 00000000 00000001 00000000131    10000011    00000010 00000000 00000001 00000001132    10000100    00000010 00000001 00000000 00000000133    10000101    00000010 00000001 00000000 00000001134    10000110    00000010 00000001 00000001 00000000135    10000111    00000010 00000001 00000001 00000001 136    10001000    00000011 00000000 00000000 00000000137    10001001    00000011 00000000 00000000 00000001138    10001010    00000011 00000000 00000001 00000000139    10001011    00000011 00000000 00000001 00000001140    10001100    00000011 00000001 00000000 00000000141    10001101    00000011 00000001 00000000 00000001142    10001110    00000011 00000001 00000001 00000000143    10001111    00000011 00000001 00000001 00000001144    10010000    00000010 00000000 00000000 00000010145    10010001    00000010 00000000 00000000 00000011146    10010010    00000010 00000000 00000001 00000010147    10010011    00000010 00000000 00000001 00000011148    10010100    00000010 00000001 00000000 00000010149    10010101    00000010 00000001 00000000 00000011150    10010110    00000010 00000001 00000001 00000010151    10010111    00000010 00000001 00000001 00000011152    10011000    00000011 00000000 00000000 00000010153    10011001    00000011 00000000 00000000 00000011154    10011010    00000011 00000000 00000001 00000010155    10011011    00000011 00000000 00000001 00000011156    10011100    00000011 00000001 00000000 00000010157    10011101    00000011 00000001 00000000 00000011158    10011110    00000011 00000001 00000001 00000010159    10011111    00000011 00000001 00000001 00000011160    10100000    00000010 00000000 00000010 00000000161    10100001    00000010 00000000 00000010 00000001162    10100010    00000010 00000000 00000011 00000000163    10100011    00000010 00000000 00000011 00000001164    10100100    00000010 00000001 00000010 00000000166    10100110    00000010 00000001 00000011 00000000167    10100111    00000010 00000001 00000011 00000001168    10101000    00000011 00000000 00000010 00000000169    10101001    00000011 00000000 00000010 00000001170    10101010    00000011 00000000 00000011 00000000171    10101011    00000011 00000000 00000011 00000001172    10101100    00000011 00000001 00000010 00000000173    10101101    00000011 00000001 00000010 00000001174    10101110    00000011 00000001 00000011 00000000175    10101111    00000011 00000001 00000011 00000001176    10110000    00000010 00000000 00000010 00000010177    10110001    00000010 00000000 00000010 00000011178    10110010    00000010 00000000 00000011 00000010179    10110011    00000010 00000000 00000011 00000011180    10110100    00000010 00000001 00000010 00000010181    10110101    00000010 00000001 00000010 00000011182    10110110    00000010 00000001 00000011 00000010183    10110111    00000010 00000001 00000011 00000011 184    10111000    00000011 00000000 00000010 00000010185    10111001    00000011 00000000 00000010 00000011186    10111010    00000011 00000000 00000011 00000010187    10111011    00000011 00000000 00000011 00000011188    10111100    00000011 00000001 00000010 00000010189    10111101    00000011 00000001 00000010 00000011190    10111110    00000011 00000001 00000011 00000010191    10111111    00000011 00000001 00000011 00000011192    11000000    00000010 00000010 00000000 00000000193    11000001    00000010 00000010 00000000 00000001194    11000010    00000010 00000010 00000001 00000000195    11000011    00000010 00000010 00000001 00000001196    11000100    00000010 00000011 00000000 00000000197    11000101    00000010 00000011 00000000 00000001198    11000110    00000010 00000011 00000001 00000000199    11000111    00000010 00000011 00000001 00000001200    11001000    00000011 00000010 00000000 00000000201    11001001    00000011 00000010 00000000 00000001202    11001010    00000011 00000010 00000001 00000000203    11001011    00000011 00000010 00000001 00000001204    11001100    00000011 00000011 00000000 00000000205    11001101    00000011 00000011 00000000 00000001206    11001110    00000011 00000011 00000001 00000000207    11001111    00000011 00000011 00000001 00000001208    11010000    00000010 00000010 00000000 00000010209    11010001    00000010 00000010 00000000 00000011210    11010010    00000010 00000010 00000001 00000010211    11010011    00000010 00000010 00000001 00000011212    11010100    00000010 00000011 00000000 00000010213    11010101    00000010 00000011 00000000 00000011214    11010110    00000010 00000011 00000001 00000010215    11010111    00000010 00000011 00000001 00000011216    11011000    00000011 00000010 00000000 00000010217    11011001    00000011 00000010 00000000 00000011218    11011010    00000011 00000010 00000001 00000010219    11011011    00000011 00000010 00000001 00000011220    11011100    00000011 00000011 00000000 00000010221    11011101    00000011 00000011 00000000 00000011222    11011110    00000011 00000011 00000001 00000010223    11011111    00000011 00000011 00000001 00000011224    11100000    00000010 00000010 00000010 00000000225    11100001    00000010 00000010 00000010 00000001226    11100010    00000010 00000010 00000011 00000000227    11100011    00000010 00000010 00000011 00000001228    11100100    00000010 00000011 00000010 00000000229    11100101    00000010 00000011 00000010 00000001230    11100110    00000010 00000011 00000011 00000000231    11100111    00000010 00000011 00000011 00000001 232    11101000    00000011 00000010 00000010 00000000233    11101001    00000011 00000010 00000010 00000001234    11101010    00000011 00000010 00000011 00000000235    11101011    00000011 00000010 00000011 00000001236    11101100    00000011 00000011 00000010 00000000237    11101101    00000011 00000011 00000010 00000001238    11101110    00000011 00000011 00000011 00000000239    11101111    00000011 00000011 00000011 00000001240    11110000    00000010 00000010 00000010 00000010241    11110001    00000010 00000010 00000010 00000011242    11110010    00000010 00000010 00000011 00000010243    11110011    00000010 00000010 00000011 00000011244    11110100    00000010 00000011 00000010 00000010245    11110101    00000010 00000011 00000010 00000011246    11110110    00000010 00000011 00000011 00000010247    11110111    00000010 00000011 00000011 00000011248    11111000    00000011 00000010 00000010 00000010249    11111001    00000011 00000010 00000010 00000011250    11111010    00000011 00000010 00000011 00000010251    11111011    00000011 00000010 00000011 00000011252    11111100    00000011 00000011 00000010 00000010253    11111101    00000011 00000011 00000010 00000011254    11111110    00000011 00000011 00000011 00000010255    11111111    00000011 00000011 00000011 00000011
查找表2:表目     从二进制表示                   到二进制表示0      00000000          00000000 00000000 00000000 000000001      00000001          00000000 00000000 00000000 000001002      00000010          00000000 00000000 00000100 000000003      00000011          00000000 00000000 00000100 000001004      00000100          00000000 00000100 00000000 000000005      00000101          00000000 00000100 00000000 000001006      00000110          00000000 00000100 00000100 000000007      00000111          00000000 00000100 00000100 000001008      00001000          00000100 00000000 00000000 000000009      00001001          00000100 00000000 00000000 0000010010      00001010          00000100 00000000 00000100 0000000011      00001011          00000100 00000000 00000100 0000010012      00001100          00000100 00000100 00000000 0000000013      00001101          00000100 00000100 00000000 0000010014      00001110          00000100 00000100 00000100 0000000015      00001111          00000100 00000100 00000100 0000010016      00010000          00000000 00000000 00000000 0000100017      00010001          00000000 00000000 00000000 0000110018      00010010          00000000 00000000 00000100 0000100019      00010011          00000000 00000000 00000100 0000110020      00010100          00000000 00000100 00000000 0000100021      00010101          00000000 00000100 00000000 0000110022      00010110          00000000 00000100 00000100 0000100023      00010111          00000000 00000100 00000100 0000110024      00011000          00000100 00000000 00000000 0000100025      00011001          00000100 00000000 00000000 0000110026      00011010          00000100 00000000 00000100 0000100027      00011011          00000100 00000000 00000100 0000110028      00011100          00000100 00000100 00000000 0000100029      00011101          00000100 00000100 00000000 0000110030      00011110          00000100 00000100 00000100 0000100031      00011111          00000100 00000100 00000100 0000110032      00100000          00000000 00000000 00001000 0000000033      00100001          00000000 00000000 00001000 0000010034      00100010          00000000 00000000 00001100 0000000035      00100011          00000000 00000000 00001100 0000010036      00100100          00000000 00000100 00001000 0000000037      00100101          00000000 00000100 00001000 0000010038      00100110          00000000 00000100 00001100 0000000039      00100111          00000000 00000100 00001100 00000100 40    00101000    00000100 00000000 00001000 0000000041    00101001    00000100 00000000 00601000 0000010042    00101010    00000100 00000000 00001100 0000000043    00101011    00000100 00000000 00001100 0000010044    00101100    00000100 00000100 00001000 0000000045    00101101    00000100 00000100 00001000 0000010046    00101110    00000100 00000100 00001100 0000000047    00101111    00000100 00000100 00001100 0000010048    00110000    00000000 00000000 00001000 0000100049    00110001    00000000 00000000 00001000 0000110050    00110010    00000000 00000000 00001100 0000100051    00110011    00000000 00000000 00001100 0000110052    00110100    00000000 00000100 00001000 0000100053    00110101    00000000 00000100 00001000 0000110054    00110110    00000000 00000100 00001100 0000100055    00110111    00000000 00000100 00001100 0000110056    00111000    00000100 00000000 00001000 0000100057    00111001    00000100 00000000 00001000 0000110058    00111010    00000100 00000000 00001100 0000100059    00111011    00000100 00000000 00001100 0000110060    00111100    00000100 00000100 00001000 0000100061    00111101    00000100 00000100 00001000 0000110062    00111110    00000100 00000100 00001100 0000100063    00111111    00000100 00000100 00001100 0000110064    01000000    00000000 00001000 00000000 0000000065    01000001    00000000 00001000 00000000 0000010066    01000010    00000000 00001000 00000100 0000000067    01000011    00000000 00001000 00000100 0000010068    01000100    00000000 00001100 00000000 0000000069    01000101    00000000 00001100 00000000 0000010070    01000110    00000000 00001100 00000100 0000000071    01000111    00000000 00001100 00000100 0000010072    01001000    00000100 00001000 00000000 0000000073    01001001    00000100 00001000 00000000 0000010074    01001010    00000100 00001000 00000100 0000000075    01001011    00000100 00001000 00000100 0000010076    01001100    00000100 00001100 00000000 0000000077    01001101    00000100 00001100 00000000 0000010078    01001110    00000100 00001100 00000100 0000000079    01001111    00000100 00001100 00000100 0000010080    01010000    00000000 00001000 00000000 0000100081    01010001    00000000 00001000 00000000 0000110082    01010010    00000000 00001000 00000100 0000100083    01010011    00000000 00001000 00000100 0000110084    01010100    00000000 00001100 00000000 0000100085    01010101    00000000 00001100 00000000 0000110086    01010110    00000000 00001100 00000100 0000100087    01010111    00000000 00001100 00000100 00001100  88    01011000    00000100 00001000 00000000 0000100089    01011001    00000100 00001000 00000000 0000110090    01011010    00000100 00001000 00000100 0000100091    01011011    00000100 00001000 00000100 0000110092    01011100    00000100 00001100 00000000 0000100093    01011101    00000100 00001100 00000000 0000110094    01011110    00000100 00001100 00000100 0000100095    01011111    00000100 00001100 00000100 0000110096    01100000    00000000 00001000 00001000 0000000097    01100001    00000000 00001000 00001000 0000010098    01100001    00000000 00001000 00001100 0000000099    01100011    00000000 00001000 00001100 00000100100    01100100    00000000 00001100 00001000 00000000101    01100101    00000000 00001100 00001000 00000100102    01100110    00000000 00001100 00001100 00000000103    01100111    00000000 00001100 00001100 00000100104    01101000    00000100 00001000 00001000 00000000105    01101001    00000100 00001000 00001000 00000100106    01101010    00000100 00001000 00001100 00000000107    01101011    00000100 00001000 00001100 00000100108    01101100    00000100 00001100 00001000 00000000109    01101101    00000100 00001100 00001000 00000100110    01101110    00000100 00001100 00001100 00000000111    01101111    00000100 00001100 00001100 00000100112    01110000    00000000 00001000 00001000 00001000113    01110001    00000000 00001000 00001000 00001100114    01110010    00000000 00001000 00001100 00001000115    01110011    00000000 00001000 00001100 00001100116    01110100    00000000 00001100 00001000 00001000117    01110101    00000000 00001100 00001000 00001100118    01110110    00000000 00001100 00001100 00001000119    01110111    00000000 00001100 00001100 00001100120    01111000    00000100 00001000 00001000 00001000121    01111001    00000100 00001000 00001000 00001100122    01111010    00000100 00001000 00001100 00001000123    01111011    00000100 00001000 00001100 00001100124    01111100    00000100 00001100 00001000 00001000125    01111101    00000100 00001100 00001000 00001100126    01111110    00000100 00001100 00001100 00001000127    01111111    00000100 00001100 00001100 00001100128    10000000    00001000 00000000 00000000 00000000129    10000001    00001000 00000000 00000000 00000100130    10000010    00001000 00000000 00000100 00000000131    10000011    00001000 00000000 00000100 00000100132    10000100    00001000 00000100 00000000 00000000133    10000101    00001000 00000100 00000000 00000100134    10000110    00001000 00000100 00000100 00000000135    10000111    00001000 00000100 00000100 00000100 136    10001000    00001100 00000000 00000000 00000000137    10001001    00001100 00000000 00000000 00000100138    10001010    00001100 00000000 00000100 00000000139    10001011    00001100 00000000 00000100 00000100140    10001100    00001100 00000100 00000000 00000000141    10001101    00001100 00000100 00000000 00000100142    10001110    00001100 00000100 00000100 00000000143    10001111    00001100 00000100 00000100 00000100144    10010000    00001000 00000000 00000000 00001000145    10010001    00001000 00000000 00000000 00001100146    10010010    00001000 00000000 00000100 00001000147    10010011    00001000 00000000 00000100 00001100148    10010100    00001000 00000100 00000000 00001000149    10010101    00001000 00000100 00000000 00001100150    10010110    00001000 00000100 00000100 00001000151    10010111    00001000 00000100 00000100 00001100152    10011000    00001100 00000000 00000000 00001000153    10011001    00001100 00000000 00000000 00001100154    10011010    00001100 00000000 00000100 00001000155    10011011    00001100 00000000 00000100 00001100156    10011100    00001100 00000100 00000000 00001000157    10011101    00001100 00000100 00000000 00001100158    10011110    00001100 00000100 00000100 00001000159    10011111    00001100 00000100 00000100 00001100160    10100000    00001000 00000000 00001000 00000000161    10100001    00001000 00000000 00001000 00000100162    10100010    00001000 00000000 00001100 00000000163    10100011    00001000 00000000 00001100 00000100164    10100100    00001000 00000100 00001000 00000000165    10100101    00001000 00000100 00001000 00000100166    10100110    00001000 00000100 00001100 00000000167    10100111    00001000 00000100 00001100 00000100168    10101000    00001100 00000000 00001000 00000000169    10101001    00001100 00000000 00001000 00000100170    10101010    00001100 00000000 00001100 00000000171    10101011    00001100 00000000 00001100 00000100172    10101100    00001100 00000100 00001000 00000000173    10101101    00001100 00000100 00001000 00000100174    10101110    00001100 00000100 00001100 00000000175    10101111    00001100 00000100 00001100 00000100176    10110000    00001000 00000000 00001000 00001000177    10110001    00001000 00000000 00001000 00001100178    10110010    00001000 00000000 00001100 00001000179    10110011    00001000 00000000 00001100 00001100180    10110100    00001000 00000100 00001000 00001000181    10110101    00001000 00000100 00001000 00001100182    10110110    00001000 00000100 00001100 00001000183    10110111    00001000 00000100 00001100 00001100 184    10111000    00001100 00000000 00001000 00001900185    10111001    00001100 00000000 00001000 00001100186    10111010    00001100 00000000 00001100 00001000187    10111011    00001100 00000000 00001100 00001100188    10111100    00001100 00000100 00001000 00001000189    10111101    00001100 00000100 00001000 00001100190    10111110    00001100 00000100 00001100 00001000191    10111111    00001100 00000100 00001100 00001100192    11000000    00001000 00001000 00000000 00000000193    11000001    00001000 00001000 00000000 00000100194    11000010    00001000 00001000 00000100 00000000195    11000011    00001000 00001000 00000100 00000100196    11000100    00001000 00001100 00000000 00000000197    11000101    00001000 00001100 00000000 00000100198    11000110    00001000 00001100 00000100 00000000199    11000111    00001000 00001100 00000100 00000100200    11001000    00001100 00001000 00000000 00000000201    11001001    00001100 00001000 00000000 00000100202    11001010    00001100 00001000 00000100 00000000203    13001011    00001100 00001000 00000100 00000100204    11001100    00001100 00001100 00000000 00000000205    11001101    00001100 00001100 00000000 00000100206    11001110    00001100 00001100 00000100 00000000207    11001111    00001100 00001100 00000100 00000100208    11010000    00001000 00001000 00000000 00001000209    11010001    00001000 00001000 00000000 00001100210    11010010    00001000 00001000 00000100 00001000211    11010011    00001000 00001000 00000100 00001100212    11010100    00001000 00001100 00000000 00001000213    11010101    00001000 00001100 00000000 00001100214    11010110    00001000 00001100 00000100 00001000215    11010111    00001000 00001100 00000100 00001100216    11011000    00001100 00001000 00000000 00001000217    11011001    00001100 00001000 00000000 00001100218    11011010    00001100 00001000 00000100 00001000219    11011011    00001100 00001000 00000100 00001100220    11011100    00001100 00001100 00000000 00001000221    11011101    00001100 00001100 00000000 00001100222    11011110    00001100 00001100 00000100 00001000223    11011111    00001100 00001100 00000100 00001100224    11100000    00001000 00001000 00001000 00000000225    11100001    00001000 00001000 00001000 00000100226    11100010    00001000 00001000 00001100 00000000227    11100011    00001000 00001000 00001100 00000100228    11100100    00001000 00001100 00001000 00000000229    11100101    00001000 00001100 00001000 00000100230    11100110    00001000 00001100 00001100 00000000231    11100111    00001000 00001100 00001100 00000100 232    11101000    00001100 00001000 00001000 00000000233    11101001    00001100 00001000 00001000 00000100234    11101010    00001100 00001000 00001100 00000000235    11101011    00001100 00001000 00001100 00000100236    11101100    00001100 00001100 00001000 00000000237    11101101    00001100 00001100 00001000 00000100238    11101110    00001100 00001100 00001100 00000000239    11101111    00001100 00001100 00001100 00000100240    11110000    00001000 00001000 00001000 00001000211    11110001    00001000 00001000 00001000 00001100242    11110010    00001000 00001000 00001100 00001000243    11110011    00001000 00001000 00001100 00001100244    11110100    00001000 00001100 00001000 00001000245    11110101    00001000 00001100 00001000 00001100246    11110110    00001000 00001100 00001100 00001000247    11110111    00001000 00001100 00001100 00001100248    11111000    00001100 00001000 00001000 00001000249    11111001    00001100 00001000 00001000 00001100250    11111010    00001100 00001000 00001100 00001000251    11111011    00001100 00001000 00001100 00001100252    11111100    00001100 00001100 00001000 00001000253    11111101    00001100 00001100 00001000 00001100254    11111110    00001100 00001100 00001100 00001000255    11111111    00001100 00001100 00001100 00001100
查找表3:表目    从二进制表示            到二进制表示0    00000000    00000000 00000000 00000000 000000001    00000001    00000000 00000000 00000000 000100002    00000010    00000000 00000000 00010000 000000003    00000011    00000000 00000000 00010000 000100004    00000100    00000000 00010000 00000000 000000005    00000101    00000000 00010000 00000000 000100006    00000110    00000000 00010000 00010000 000000007    00000111    00000000 00010000 00010000 000100008    00001000    00010000 00000000 00000000 000000009    00001001    00010000 00000000 00000000 0001000010    00001010    00010000 00000000 00010000 0000000011    00001011    00010000 00000000 00010000 0001000012    00001100    00010000 00010000 00000000 0000000013    00001101    00010000 00010000 00000000 0001000015    00001111    00010000 00010000 00010000 0001000016    00010000    00000000 00000000 00000000 0010000017    00010001    00000000 00000000 00000000 0011000018    00010010    00000000 00000000 00010000 0010000019    00010011    00000000 00000000 00010000 0011000020    00010100    00000000 00010000 00000000 0010000021    00010101    00000000 00010000 00000000 0011000022    00010110    00000000 00010000 00010000 0010000023    00010111    00000000 00010000 00010000 0011000024    00011000    00010000 00000000 00000000 0010000025    00011001    00010000 00000000 00000000 0011000026    00011010    00010000 00000000 00010000 0010000027    00011011    00010000 00000000 00010000 0011000028    00011100    00010000 00010000 00000000 0010000029    00011101    00010000 00010000 00000000 0011000030    00011110    00010000 00010000 00010000 0010000031    00011111    00010000 00010000 00010000 0011000032    00100000    00000000 00000000 00100000 0000000033    00100001    00000000 00000000 00100000 0001000034    00100010    00000000 00000000 00110000 0000000035    00100011    00000000 00000000 00110000 0001000036    00100100    00000000 00010000 00100000 0000000037    00100101    00000000 00010000 00100000 0001000038    00100110    00000000 00010000 00110000 0000000039    00100111    00000000 00010000 00110000 00010000  40    00101000    00010000 00000000 00100000 0000000041    00101001    00010000 00000000 00100000 0001000042    00101010    00010000 00000000 00110000 0000000043    00101011    00010000 00000000 00110000 0001000044    00101100    00010000 00010000 00100000 0000000045    00101101    00010000 00010000 00100000 0001000046    00101110    00010000 00010000 00110000 0000000047    00101111    00010000 00010000 00110000 0001000048    00110000    00000000 00000000 00100000 0010000049    00110001    00000000 00000000 00100000 0011000050    00110010    00000000 00000000 00110000 0010000051    00110011    00000000 00000000 00110000 0011000052    00110100    00000000 00010000 00100000 0010000053    00110101    00000000 00010000 00100000 0011000054    00110110    00000000 00010000 00110000 0010000055    00110111    00000000 00010000 00110000 0011000056    00111000    00010000 00000000 00100000 0010000057    00111001    00010000 00000000 00100000 0011000058    00111010    00010000 00000000 00110000 0010000059    00111011    00010000 00000000 00110000 0011000060    00111100    00010000 00010000 00100000 0010000061    00111101    00010000 00010000 00100000 0011000062    00111110    00010000 00010000 00110000 0010000063    00111111    00010000 00010000 00110000 0011000064    01000000    00000000 00100000 00000000 0000000065    01000001    00000000 00100000 00000000 0001000066    01000010    00000000 00100000 00010000 0000000067    01000011    00000000 00100000 00010000 0001000068    01000100    00000000 00110000 00000000 0000000069    01000101    00000000 00110000 00000000 0001000070    01000110    00000000 00110000 00010000 0000000071    01000111    00000000 00110000 00010000 0001000072    01001000    00010000 00100000 00000000 0000000073    01001001    00010000 00100000 00000000 0001000074    01001010    00010000 00100000 00010000 0000000075    01001011    00010000 00100000 00010000 0001000076    01001100    00010000 00110000 00000000 0000000077    01001101    00010000 00110000 00000000 0001000078    01001110    00010000 00110000 00010000 0000000079    01001111    00010000 00110000 00010000 0001000080    01010000    00000000 00100000 00000000 0010000081    01010001    00000000 00100000 00000000 0011000082    01010010    00000000 00100000 00010000 0010000083    01010011    00000000 00100000 00010000 0011000084    01010100    00000000 00110000 00000000 0010000085    01010101    00000000 00110000 00000000 0011000086    01010110    00000000 00110000 00010000 0010000087    01010111    00000000 00110000 00010000 00110000  88    01011000    00010000 00100000 00000000 0010000089    01011001    00010000 00100000 00000000 0011000090    01011010    00010000 00100000 00010000 0010000091    01011011    00010000 00100000 00010000 0011000092    01011100    00010000 00110000 00000000 0010000093    01011101    00010000 00110000 00000000 0011000094    01011110    00010000 00110000 00010000 0010000095    01011111    00010000 00110000 00010000 0011000096    01100000    00000000 00100000 00100000 0000000097    01100001    00000000 00100000 00100000 0001000098    01100010    00000000 00100000 00110000 0000000099    01100011    00000000 00100000 00110000 00010000100    01100100    00000000 00110000 00100000 00000000101    01100101    00000000 00110000 00100000 00010000102    01100110    00000000 00110000 00110000 00000000103    01100111    00000000 00110000 00110000 00010000104    01101000    00010000 00100000 00100000 00000000105    01101001    00010000 00100000 00100000 00010000106    01101010    00010000 00100000 00110000 00000000107    01101011    00010000 00100000 00110000 00010000108    01101100    00010000 00110000 00100000 00000000109    01101101    00010000 00110000 00100000 00010000110    01101110    00010000 00110000 00110000 00000000111    01101111    00010000 00110000 00110000 00010000112    01110000    00000000 00100000 00100000 00100000113    01110001    00000000 00100000 00100000 00110000114    01110010    00000000 00100000 00110000 00100000115    01110011    00000000 00100000 00110000 00110000116    01110100    00000000 00110000 00100000 00100000117    01110101    00000000 00110000 00100000 00110000118    01110110    00000000 00110000 00110000 00100000119    01110111    00000000 00110000 00110000 00110000120    01111000    00010000 00100000 00100000 00100000121    01111001    00010000 00100000 00100000 00110000122    01111010    00010000 00100000 00110000 00100000123    01111011    00010000 00100000 00110000 00110000124    01111100    00010000 00110000 00100000 00100000125    01111101    00010000 00110000 00100000 00110000126    01111110    00010000 00110000 00110000 00100000127    01111111    00010000 00110000 00110000 00110000128    10000000    00100000 00000000 00000000 00000000129    10000001    00100000 00000000 00000000 00010000130    10000010    00100000 00000000 00010000 00000000131    10000011    00100000 00000000 00010000 00010000132    10000100    00100000 00010000 00000000 00000000133    10000101    00100000 00010000 00000000 00010000134    10000110    00100000 00010000 00010000 00000000135    10000111    00100000 00010000 00010000 00010000 136    10001000    00110000 00000000 00000000 00000000137    10001001    00110000 00000000 00000000 00000000138    10001010    00110000 00000000 00010000 00000000139    10001011    00110000 00000000 00010000 00010000140    10001100    00110000 00010000 00000000 00000000141    10001101    00110000 00010000 00000000 00010000142    10001110    00110000 00010000 00010000 00000000113    10001111    00110000 00010000 00010000 00010000144    10010000    00100000 00000000 00000000 00100000115    10010001    00100000 00000000 00000000 00110000146    10010010    00100000 00000000 00010000 00100000147    10010011    00100000 00000000 00010000 00110000148    10010100    00100000 00010000 00000000 00100000149    10010101    00100000 00010000 00000000 00110000150    10010110    00100000 00010000 00010000 00100000151    10010111    00100000 00010000 00010000 00110000152    10011000    00110000 00000000 00000000 00100000153    10011001    00110000 00000000 00000000 00110000154    10011010    00110000 00000000 00010000 00100000155    10011011    00110000 00000000 00010000 00110000156    10011100    00110000 00010000 00000000 00100000157    10011101    00110000 00010000 00000000 00110000158    10011110    00110000 00010000 00010000 00100000159    10011111    00110000 00010000 00010000 00110000160    10100000    00100000 00000000 00100000 00000000161    10100001    00100000 00000000 00100000 00010000162    10100010    00100000 00000000 00110000 00000000163    10100011    00100000 00000000 00110000 00010000164    10100100    00100000 00010000 00100000 00000000165    10100101    00100000 00010000 00100000 00010000166    10100110    00100000 00010000 00110000 00000000167    10100111    00100000 00010000 00110000 00010000168    10101000    00110000 00000000 00100000 00000000169    10101001    00110000 00000000 00100000 00010000170    10101010    00110000 00000000 00110000 00000000171    10101011    00110000 00000000 00110000 00010000172    10101100    00110000 00010000 00100000 00000000173    10101101    00110000 00010000 00100000 00010000174    10101110    00110000 00010000 00110000 00000000175    10101111    00110000 00010000 00110000 00010000176    10110000    00100000 00000000 00100000 00100000177    10110001    00100000 00000000 00100000 00110000178    10110010    00100000 00000000 00110000 00100000179    10110011    00100000 00000000 00110000 00110000180    10110100    00100000 00010000 00100000 00100000181    10110101    00100000 00010000 00100000 00110000182    10110110    00100000 00010000 00110000 00100000183    10110111    00100000 00010000 00110000 00110000 184    10111000    00110000 00000000 00100000 00100000185    10111001    00110000 00000000 00100000 00110000186    10111010    00110000 00000000 00110000 00100000187    10111011    00110000 00000000 00110000 00110000188    10111100    00110000 00010000 00100000 00100000189    10111101    00110000 00010000 00100000 00110000190    10111110    00110000 00010000 00110000 00100000191    10111111    00110000 00010000 00110000 00110000192    11000000    00100000 00100000 00000000 00000000103    11000001    00100000 00100000 00000000 00010000194    11000010    00100000 00100000 00010000 00000000195    11000011    00100000 00100000 00010000 00010000196    11000100    00100000 00110000 00000000 00000000197    11000101    00100000 00110000 00000000 00010000198    11000110    00100000 00110000 00010000 00000000199    11000111    00100000 00110000 00010000 00010000200    11001000    00110000 00100000 00000000 00000000201    11001001    00110000 00100000 00000000 00010000202    11001010    00110000 00100000 00010000 00000000203    11001011    00110000 00100000 00010000 00010000204    11001100    00110000 00110000 00000000 00000000205    11001101    00110000 00110000 00000000 0001000011001110    00110000 00110000 00010000 0000000011001111    00110000 00110000 00010000 0001000011010000    00100000 00100000 00000000 0010000011010001    00100000 00100000 00000000 0011000011010010    00100000 00100000 00010000 0010000011010011    00100000 00100000 00010000 0011000011010100    00100000 00110000 00000000 0010000011010101    00100000 00110000 00000000 0011000011010110    00100000 00110000 00010000 0010000011010111    00100000 00110000 00010000 0011000011011000    00110000 00100000 00000000 0010000011011001    00110000 00100000 00000000 0011000011011010    00110000 00100000 00010000 0010000011011011    00110000 00100000 00010000 0011000011011100    00110000 00110000 00000000 0010000011011101    00110000 00110000 00000000 0011000011011110    00110000 00110000 00010000 0010000011011111    00110000 00110000 00010000 0011000011100000    00100000 00100000 00100000 0000000011100001    00100000 00100000 00100000 0001000011100010    00100000 00100000 00110000 0000000011100011    00100000 00100000 00110000 0001000011100100    00100000 00110000 00100000 0000000011100101    00100000 00110000 00100000 0001000011100110    00100000 00110000 00110000 0000000011100111    00100000 00110000 00110000 00010000 232    11101000    00110000 00100000 00100000 00000000233    11101001    00110000 00100000 00100000 00010000234    11101010    00110000 00100000 00110000 00000000235    11101011    00110000 00100000 00110000 00010000236    11101100    00110000 00110000 00100000 00000000237    11101101    00110000 00110000 00100000 00010000238    11101110    00110000 00110000 00110000 00000000239    11101111    00110000 00110000 00110000 00010000240    11110000    00100000 00100000 00100000 00100000241    11110001    00100000 00100000 00100000 00110000242    11110010    00100000 00100000 00110000 00100000243    11110011    00100000 00100000 00110000 00110000244    11110100    00100000 00110000 00100000 00100000245    11110101    00100000 00110000 00100000 00110000246    11110110    00100000 00110000 00110000 00100000247    11110111    00100000 00110000 00110000 00110000248    11111000    00110000 00100000 00100000 00100000249    11111001    00110000 00100000 00100000 00110000250    11111010    00110000 00100000 00110000 00100000251    11111011    00110000 00100000 00110000 00110000252    11111100    00110000 00110000 00100000 00100000253    11111101    00110000 00110000 00100000 00110000254    11111110    00110000 00110000 00110000 00100000255    11111111    00110000 00110000 00110000 00110000256
查找表4 .表目    从二进制表示            到二进制表示0       00000000    00000000 00000000 00000000 000000001       00000001    00000000 00000000 00000000 010000002       00000010    00000000 00000000 01000000 000000003       00000011    00000000 00000000 01000000 010000004       00000100    00000000 01000000 00000000 000000005       00000101    00000000 01000000 00000000 010000006       00000110    00000000 01000000 01000000 000000007       00000111    00000000 01000000 01000000 010000008       00001000    01000000 00000000 00000000 000000009       00001001    01000000 00000000 00000000 0100000010       00001010    01000000 00000000 01000000 0000000011       00001011    01000000 00000000 01000000 0100000012       00001100    01000000 01000000 00000000 0000000013       00001101    01000000 01000000 00000000 0100000014       00001110    01000000 01000000 01000000 0000000015       00001111    01000000 01000000 01000000 0100000016       00010000    00000000 00000000 00000000 1000000017       00010001    00000000 00000000 00000000 1100000018       00010010    00000000 00000000 01000000 1000000019       00010011    00000000 00000000 01000000 1100000020       00010100    00000000 01000000 00000000 1000000021       00010101    00000000 01000000 00000000 1100000022       00010110    00000000 01000000 01000000 1000000023       00010111    00000000 01000000 01000000 1100000024       00011000    01000000 00000000 00000000 1000000025       00011001    01000000 00000000 00000000 1100000026       00011010    01000000 00000000 01000000 1000000027       00011011    01000000 00000000 01000000 1100000028       00011100    01000000 01000000 00000000 1000000029       00011101    01000000 01000000 00000000 1100000030       00011110    01000000 01000000 01000000 1000000031       00011111    01000000 01000000 01000000 1100000032       00100000    00000000 00000000 10000000 0000000033       00100001    00000000 00000000 10000000 0100000034       00100010    00000000 00000000 11000000 0000000035       00100011    00000000 00000000 11000000 0100000036       00100100    00000000 01000000 10000000 0000000037       00100101    00000000 01000000 10000000 0100000038       00100110    00000000 01000000 11000000 0000000039       00100111    00000000 01000000 11000000 01000000  40    00101000    01000000 00000000 10000000 0000000041    00101001    01000000 00000000 10000000 0100000042    00101010    01000000 00000000 11000000 0000000043    00101011    01000000 00000000 11000000 0100000044    00101100    01000000 01000000 10000000 0000000045    00101101    01000000 01000000 10000000 0100000046    00101110    01000000 01000000 11000000 0000000047    00101111    01000000 01000000 11000000 0100000048    00110000    00000000 00000000 10000000 1000000049    00110001    00000000 00000000 10000000 1100000050    00110010    00000000 00000000 11000000 1000000051    00110011    00000000 00000000 11000000 1100000052    00110100    00000000 01000000 10000000 1000000053    00110101    00000000 01000000 10000000 1100000054    00110110    00000000 01000000 11000000 1000000055    00110111    00000000 01000000 11000000 1100000056    00111000    01000000 00000000 10000000 1000000057    00111001    01000000 00000000 10000000 1100000058    00111010    01000000 00000000 11000000 1000000059    00111011    01000000 00000000 11000000 1100000060    00111100    01000000 01000000 10000000 1000000061    00111101    01000000 01000000 10000000 1100000062    00111110    01000000 01000000 11000000 1000000063    00111111    01000000 01000000 11000000 1100000064    01000000    00000000 10000000 00000000 0000000065    01000001    00000000 10000000 00000000 0100000066    01000010    00000000 10000000 01000000 0000000067    01000011    00000000 10000000 01000000 0100000068    01000100    00000000 11000000 00000000 0000000069    01000101    00000000 11000000 00000000 0100000070    01000110    00000000 11000000 01000000 0000000071    01000111    00000000 11000000 01000000 0100000072    01001000    01000000 10000000 00000000 0000000073    01001001    01000000 10000000 00000000 0100000074    01001010    01000000 10000000 01000000 0000000075    01001011    01000000 10000000 01000000 0100000076    01001100    01000000 11000000 00000000 0000000077    01001101    01000000 11000000 00000000 0100000078    01001110    01000000 11000000 01000000 0000000079    01001111    01000000 11000000 01000000 0100000080    01010000    00000000 10000000 00000000 1000000081    01010001    00000000 10000000 00000000 1100000082    01010010    00000000 10000000 01000000 1000000083    01010011    00000000 10000000 01000000 1100000084    01010100    00000000 11000000 00000000 1000000085    01010101    00000000 11000000 00000000 1100000086    01010110    00000000 11000000 01000000 1000000087    01010111    00000000 11000000 01000000 11000000  88    01011000    01000000 10000000 00000000 1000000089    01011001    01000000 10000000 00000000 1100000090    01011010    01000000 10000000 01000000 1000000091    01011011    01000000 10000000 01000000 1100000092    01011100    01000000 11000000 00000000 1000000093    01011101    01000000 11000000 00000000 1100000094    01011110    01000000 11000000 01000000 1000000095    01011111    01000000 11000000 01000000 1100000096    01100000    00000000 10000000 10000000 0000000097    01100001    00000000 10000000 10000000 0100000098    01100010    00000000 10000000 11000000 0000000099    01100011    00000000 10000000 11000000 01000000100    01100100    00000000 11000000 10000000 00000000101    01100101    00000000 11000000 10000000 01000000102    01100110    00000000 11000000 11000000 00000000103    01100111    00000000 11000000 11000000 01000000104    01101000    01000000 10000000 10000000 00000000105    01101001    01000000 10000000 10000000 01000000106    01101010    01000000 10000000 11000000 00000000107    01101011    01000000 10000000 11000000 01000000108    01101100    01000000 11000000 10000000 00000000109    01101101    01000000 11000000 10000000 01000000110    01101110    01000000 11000000 11000000 00000000111    01101111    01000000 11000000 11000000 01000000112    01110000    00000000 10000000 10000000 10000000113    01110001    00000000 10000000 10000000 11000000114    01110010    00000000 10000000 11000000 10000000115    01110011    00000000 10000000 11000000 11000000116    01110100    00000000 11000000 10000000 10000000117    01110101    00000000 11000000 10000000 11000000118    01110110    00000000 11000000 11000000 10000000119    01110111    00000000 11000000 11000000 11000000120    01111000    01000000 10000000 10000000 10000000121    01111001    01000000 10000000 10000000 11000000122    01111010    01000000 10000000 11000000 10000000123    01111011    01000000 10000000 11000000 11000000124    01111100    01000000 11000000 10000000 10000000125    01111101    01000000 11000000 10000000 11000000126    01111110    01000000 11000000 11000000 10000000127    01111111    01000000 11000000 11000000 11000000128    10000000    10000000 00000000 00000000 00000000129    10000001    10000000 00000000 00000000 01000000130    10000010    10000000 00000000 01000000 00000000131    10000011    10000000 00000000 01000000 01000000132    10000100    10000000 01000000 00000000 00000000133    10000101    10000000 01000000 00000000 01000000134    10000110    10000000 01000000 01000000 00000000135    10000111    10000000 01000000 01000000 01000000 136    10001000    11000000 00000000 00000000 00000000137    10001001    11000000 00000000 00000000 01000000138    10001010    11000000 00000000 01000000 00000000139    10001011    11000000 00000000 01000000 01000000140    10001100    11000000 01000000 00000000 00000000141    10001101    11000000 01000000 00000000 01000000142    10001110    11000000 01000000 01000000 00000000143    10001111    11000000 01000000 01000000 01000000144    10010000    10000000 00000000 00000000 10000000145    10010001    10000000 00000000 00000000 11000000146    10010010    10000000 00000000 01000000 10000000147    10010011    10000000 00000000 01000000 11000000148    10010100    10000000 01000000 00000000 10000000149    10010101    10000000 01000000 00000000 11000000150    10010110    10000000 01000000 01000000 10000000151    10010111    10000000 01000000 01000000 11000000152    10011000    11000000 00000000 00000000 10000000153    10011001    11000000 00000000 00000000 11000000154    10011010    11000000 00000000 01000000 10000000155    10011011    11000000 00000000 01000000 11000000156    10011100    11000000 01000000 00000000 10000000157    10011101    11000000 01000000 00000000 11000000158    10011110    11000000 01000000 01000000 10000000159    10011111    11000000 01000000 01000000 11000000160    10100000    10000000 00000000 10000000 00000000161    10100001    10000000 00000000 10000000 01000000162    10100010    10000000 00000000 11000000 00000000163    10100011    10000000 00000000 11000000 01000000164    10100100    10000000 01000000 10000000 00000000165    10100101    10000000 01000000 10000000 01000000166    10100110    10000000 01000000 11000000 00000000167    10100111    10000000 01000000 11000000 01000000168    10101000    11000000 00000000 10000000 00000000169    10101001    11000000 00000000 10000000 01000000170    10101010    11000000 00000000 11000000 00000000171    10101011    11000000 00000000 11000000 01000000172    10101100    11000000 01000000 10000000 00000000173    10101101    11000000 01000000 10000000 01000000174    10101110    11000000 01000000 11000000 00000000175    10101111    11000000 01000000 11000000 01000000176    10110000    10000000 00000000 10000000 10000000177    10110001    10000000 00000000 10000000 11000000178    10110010    10000000 00000000 11000000 10000000179    10110011    10000000 00000000 11000000 11000000180    10110100    10000000 01000000 10000000 10000000181    10110101    10000000 01000000 10000000 11000000182    10110110    10000000 01000000 11000000 10000000183    10110111    10000000 01000000 11000000 11000000 184    10111000    11000000 00000000 10000000 10000000185    10111001    11000000 00000000 10000000 11000000186    10111010    11000000 00000000 11000000 10000000187    10111011    11000000 00000000 11000000 11000000188    10111100    11000000 01000000 10000000 10000000189    10111101    11000000 01000000 10000000 11000000100    10111110    11000000 01000000 11000000 10000000191    10111111    11000000 01000000 11000000 11000000192    11000000    10000000 10000000 00000000 00000000193    11000001    10000000 10000000 00000000 01000000194    11000010    10000000 10000000 01000000 00000000195    11000011    10000000 10000000 01000000 01000000196    11000100    10000000 11000000 00000000 00000000197    11000101    10000000 11000000 00000000 01000000198    11000110    10000000 11000000 01000000 00000000199    11000111    10000000 11000000 01000000 01000000200    11001000    11000000 10000000 00000000 00000000201    11001001    11000000 10000000 00000000 01000000202    11001010    11000000 10000000 01000000 00000000203    11001011    11000000 10000000 01000000 01000000201    11001100    11000000 11000000 00000000 00000000205    11001101    11000000 11000000 00000000 01000000206    11001110    11000000 11000000 01000000 00000000207    11001111    11000000 11000000 01000000 01000000208    11010000    10000000 10000000 00000000 10000000209    11010001    10000000 10000000 00000000 11000000210    11010010    10000000 10000000 01000000 10000000211    11010011    10000000 10000000 01000000 11000000212    11010100    10000000 11000000 00000000 10000000213    11010101    10000000 11000000 00000000 11000000214    11010110    10000000 11000000 01000000 10000000215    11010111    10000000 11000000 01000000 11000000216    11011000    11000000 10000000 00000000 10000000217    11011001    11000000 10000000 00000000 11000000218    11011010    11000000 10000000 01000000 10000000219    11011011    11000000 10000000 01000000 11000000220    11011100    11000000 11000000 00000000 10000000221    11011101    11000000 11000000 00000000 11000000222    11011110    11000000 11000000 01000000 10000000223    11011111    11000000 11000000 01000000 11000000224    11100000    10000000 10000000 10000000 00000000225    11100001    10000000 10000000 10000000 01000000226    11100010    10000000 10000000 11000000 00000000227    11100011    10000000 10000000 11000000 01000000228    11100100    10000000 11000000 10000000 00000000229    11100101    10000000 11000000 10000000 01000000230    11100110    10000000 11000000 11000000 00000000231    11100111    10000000 11000000 11000000 01000000 232    11101000    11000000 10000000 10000000 00000000233    11101001    11000000 10000000 10000000 01000000234    11101010    11000000 10000000 11000000 00000000235    11101011    11000000 10000000 11000000 01000000236    11101100    11000000 11000000 10000000 00000000237    11101101    11000000 11000000 10000000 01000000238    11101110    11000000 11000000 11000000 00000000239    11101111    11000000 11000000 11000000 01000000210    11110000    10000000 10000000 10000000 10000000241    11110001    10000000 10000000 10000000 11000000242    11110010    10000000 10000000 11000000 10000000243    11110011    10000000 10000000 11000000 11000000244    11110100    10000000 11000000 10000000 10000000245    11110101    10000000 11000000 10000000 11000000246    11110110    10000000 11000000 11000000 10000000247    11110111    10000000 11000000 11000000 11000000248    11111000    11000000 10000000 10000000 10000000249    11111001    11000000 10000000 10000000 11000000250    11111010    11000000 10000000 11000000 10000000251    11111011    11000000 10000000 11000000 11000000252    11111100    11000000 11000000 10000000 10000000253    11111101    11000000 11000000 10000000 11000000254    11111110    11000000 11000000 11000000 10000000255    11111111    11000000 11000000 11000000 11000000

Claims (13)

1.在32位操作系统下,一种90°旋转含有8行×8列象素数据位的双态图象数据块的方法,包括下述计算机实现步骤:
生成一个含有8行×8列象素数据位的中间矩阵,其中该块的各行被分割和平移成一对四位列,横置地排列该块的相隔行,并且在该中间矩阵的该对四位列里该块的较低阶行被置于较高阶行之上;
把该中间矩阵的各行顺序地保存到第一和第二32位处理机寄存器里;
把该第一32位寄存器复制到第三32位处理机寄存器里和把该第二32位寄存器复制到第四32位处理机寄存器里;
沿相反方向把该第一和第二寄存器各移位一位;以及
把该第四寄存器的相隔位覆盖到该第一寄存器上和把该第三寄存器的相隔位覆盖到该第二寄存器上。
2.根据权利要求1的方法,其特征在于生成中间矩阵的步骤包括生成一个中间矩阵,在其中相隔的行从右至左横置排列,并且各个被分割行的较高阶位放置在较低阶位的上面。
3.根据权利要求2的方法,其特征在于把该第一和第二寄存器接相反方向各移位一位的步骤包括把该第一寄存器向左移一位和把该第二寄存器向右移一位。
4.根据权利要求3的方法,其特征在于覆盖间隔位的步骤进而包括这些步骤:把该第一和第四寄存器的所有奇数位置为零以及把该第二和该第三寄存器的所有偶数位置为零,并且对该第一和该第四寄存器进行逻辑“或”运算以及对该第二和该第三寄存器进行逻辑“或”运算。
5.根据权利要求1的方法,其特征在于生成一个中间矩阵的步骤包括生成一个中间矩阵,其中自左向右横置排列相隔的行,并且各个被分割行的较低阶位放在较高阶位的上面。
6.根据权利要求5的方法,其特征在于把该第一和第二寄存器按相反方向各移位一位的步骤包括把该第一寄存器向右移一位和把该第二寄存器向左移一位。
7.根据权利要求6的方法,其特征在于覆盖间隔位的步骤进一步包括这些步骤:把该第一和该第四寄存器的所有偶数位以及把该第二和该第三寄存器的所有奇数位置为零,并且对该第一寄存器和该第四寄存器进行逻辑“或”运算以及对该第二寄存器和该第三寄存器进行逻辑“或”运算。
8.根据权利要求1的方法,其特征在于生成一个中间矩阵的步骤包括:
为该块的各个奇数行从至少一个查找表里获得第一组4字节值并且动态地把所述第一组4字节值覆盖到该第一32位寄存器上;并且
为该块的各个偶数行从所述至少一个查找表里获得第二组4字节值并且动态地把所述第二组4字节值覆盖到该第二32位寄存器上。
9.在32位操作系统下,一种90°旋转双态图象的方法,包括下述计算机实现步骤;
a)从该图象数据中选择未旋转的8×8象素矩阵;
b)生成一个含有8行×8列象素数据位的中间矩阵,其中该块的各行被分割和平移成一对四位列,横置地排列该块的间隔行,并且在该中间矩阵的该对4位列里较低阶行被置于较高阶行的上面;
c)把该中间矩阵的各行顺序地保存到第一和第二32位寄存器里;
d)把该第一32位寄存器复制到第三32位寄存器里和把该第二32位寄存器复制到第四32位寄存器里;
e)把该第一和该第二寄存器沿相反的方向各移一位;
f)把该第四寄存器的间隔位覆盖到该第一寄存器上和把该第三寄存器的间隔位覆盖到该第二寄存器上;以及
g)重复a)至f)的步骤,直至完成该图象的旋转。
10.一种用来旋转含有8行×8列象素数据位的双态图象数据块的32位操作系统,包括:
用于从该块生成一个含有8行×8列象素数据位的中间矩阵的装置,其中该块的各行被分割和平移成一对四位列,横置地排列该块的相隔行,并且在该中间矩阵的该对四位列里该块的较低阶行置于较高阶行之上;
至少第一、第二、第三和第四32位处理机寄存器,该第一和该第三寄存器用于重复地保存该中间矩阵的前四行而该第二和该第四寄存器用于重复地保存该中间矩阵的另外四行;
把该第一和该第二寄存器沿相反的方向各移一位的装置;以及
把该第四寄存器的间隔位覆盖到该第一寄存器上和把该第三寄存器的间隔位覆盖到该第二寄存器上的装置。
11.根据权利要求10的系统,其特征在于该生成一个中间矩阵的装置包括至少一个查找表。
12.根据权利要求11的系统,其特征在于所述至少一个查找表包括多个查找表,每个查找表适用于为该块的至少一行生成一个4字节值。
13.根据权利要求10的系统,其特征在于用来生成一个中间矩阵的装置包括:
四个查找表,每个查找表适用于为该块的至少两个行生成4字节值;以及
用于动态地把该块的间隔行的4字节值覆盖到所述寄存器中的一个上的装置。
CN95103578A 1994-04-15 1995-03-24 快速90度旋转双态图象的系统 Expired - Fee Related CN1066834C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002121402A CA2121402C (en) 1994-04-15 1994-04-15 System for fast 90-degree rotation of bi-level images
CA2121402 1994-04-15

Publications (2)

Publication Number Publication Date
CN1121224A true CN1121224A (zh) 1996-04-24
CN1066834C CN1066834C (zh) 2001-06-06

Family

ID=4153391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN95103578A Expired - Fee Related CN1066834C (zh) 1994-04-15 1995-03-24 快速90度旋转双态图象的系统

Country Status (7)

Country Link
EP (1) EP0677822A2 (zh)
JP (1) JP2817771B2 (zh)
KR (1) KR950029990A (zh)
CN (1) CN1066834C (zh)
AU (1) AU1490395A (zh)
BR (1) BR9501523A (zh)
CA (1) CA2121402C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1306412C (zh) * 2002-06-28 2007-03-21 松下电器产业株式会社 像素数据块生成装置及像素数据块生成方法
CN111754409A (zh) * 2019-03-27 2020-10-09 北京沃东天骏信息技术有限公司 图像处理方法、装置、设备和存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100444899B1 (ko) * 1997-05-07 2004-12-08 삼성전자주식회사 화상의회전변환방법
WO2000030036A1 (en) * 1998-11-13 2000-05-25 Microsoft Corporation Rotating image data
US6400851B1 (en) 1999-01-28 2002-06-04 Microsoft Corporation Rotating image data
US6496192B1 (en) * 1999-08-05 2002-12-17 Matsushita Electric Industrial Co., Ltd. Modular architecture for image transposition memory using synchronous DRAM
US7376286B2 (en) * 2002-09-18 2008-05-20 Nxp B.V. Block-based rotation of arbitrary-shaped images

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4627020A (en) * 1983-12-30 1986-12-02 International Business Machines Corporation Method for rotating a binary image
CA1252902A (en) * 1985-10-31 1989-04-18 David R. Pruett Method for rotating a binary image
JP2973784B2 (ja) * 1993-07-19 1999-11-08 松下電器産業株式会社 多値画像90度回転方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1306412C (zh) * 2002-06-28 2007-03-21 松下电器产业株式会社 像素数据块生成装置及像素数据块生成方法
CN111754409A (zh) * 2019-03-27 2020-10-09 北京沃东天骏信息技术有限公司 图像处理方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CA2121402A1 (en) 1995-10-16
EP0677822A2 (en) 1995-10-18
AU1490395A (en) 1995-10-26
CA2121402C (en) 1999-02-09
CN1066834C (zh) 2001-06-06
KR950029990A (ko) 1995-11-24
JP2817771B2 (ja) 1998-10-30
JPH07296157A (ja) 1995-11-10
BR9501523A (pt) 1995-11-14

Similar Documents

Publication Publication Date Title
CA1049167A (en) Apparatus for image manipulation
CN1120447C (zh) 用于旋转面向肖象显示的图象的硬件
US6064407A (en) Method and apparatus for tiling a block of image data
US5689343A (en) Area mapping employing reference clusters for high quality noninteger resolution conversion with enhancement
US4780711A (en) Anti-aliasing of raster images using assumed boundary lines
US5598181A (en) Method and apparatus for rotating a digital image ninety degrees using a small auxiliary buffer
JP2569307B2 (ja) 画像回転方法
EP0433645A2 (en) Method to rotate a bitmap image 90 degrees
US5670982A (en) System for fast 90-degree rotation of bi-level images
EP0149119A2 (en) Method for rotating a binary image
CN86102722A (zh) 彩色图像显示系统
US6782142B2 (en) Method and apparatus for using rotatable templates within look-up tables to enhance image reproduction
JPH05250466A (ja) 画像の回転、拡大・縮小およびディジタルハーフトーン・スクリーニングをまとめて行うためのタイル方式の処理方法
US5889893A (en) Method and apparatus for the fast rotation of an image
KR100428599B1 (ko) 화상인코딩방법과화상인코딩및디코딩방법
CN1121224A (zh) 快速90度旋转双态图象的系统
US20070263234A1 (en) Systems, methods and devices for rotating images
CN1105966C (zh) 生成图象的方法和装置
JP3510662B2 (ja) ファクシミリ画像の平滑化スケーリング方法
US6038039A (en) Character smoothing in scanners/printers
US6744533B1 (en) Efficient buffer rendering
CN1748229A (zh) 低成本超级采样光栅化
JP3151788B2 (ja) 矩形原画像の回転方法
JPH10210251A (ja) 画像メモリアクセス方法、画像形成装置、画像形成記憶装置、アドレス発生方法、及びアドレス発生装置
KR900002631B1 (ko) 화상데이터의 처리방법 및 장치

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee