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

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

Info

Publication number
CN1066834C
CN1066834C CN95103578A CN95103578A CN1066834C CN 1066834 C CN1066834 C CN 1066834C CN 95103578 A CN95103578 A CN 95103578A CN 95103578 A CN95103578 A CN 95103578A CN 1066834 C CN1066834 C CN 1066834C
Authority
CN
China
Prior art keywords
register
row
intermediary matrix
bit
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.)
Expired - Fee Related
Application number
CN95103578A
Other languages
English (en)
Other versions
CN1121224A (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
    • 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

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位寄存器里。第一和第二寄存器按相反的方向各移动一位并且来自第四寄存器的相隔位动态地覆盖到第一寄存器里,同时来自第三寄存器的相隔位动态地覆盖到第四寄存器里。可以重复这些步骤以旋转具有大于8行乘8列象素数据位的图象数据。
本发明目的还在于带有完成本计算机实现方法的装置的系统。
现在将结合附图详细说明本发明的实施方式,附图是:
图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    F7  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    F4   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用于行6和行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    字节0R2 00010000 00110100 11000001 00101101
这样完成中间矩阵的生成处理。为了阐明这些结果,R1和R2的内容可以以一种矩阵型的格式把高位字节放在低位字节之上显示如
下:
R1字节3    01000001
R1字节2    01000101
R1字节1    11100001
R1字节0    00101001
R2字节3    00010000
R2字节2    00110100
R2字节1    11000001
R2字节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 E6 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 R2  H5 H1 F5 F1 D5 D1 B5 B1  H0 H0 F4 F0 D4 D0 B4 B0
寄存器R1和R2的内容然后分别复制到另外两个32位寄存器R3和R4里(方块58)以达到下列表示法:
R1:G7 G3 E7 E3 C7 C3 A7 A3R2:H7 H3 F7 F3 D7 D3 B7 B3  G6 G2 E6 E2 C6 C2 A6 A2H6 H2 F6 E2 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  G4 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 G3 00 E3 00 C3 00 A3R4: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 C6 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 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和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的数据,置零步骤可设置于移位步骤之后并位于求或步骤之前。在移位步骤之后执行置零步骤,只需对本发明的方法略做修改,这对于本领域的技术人员是显而易见的。
现在,在矩阵格式下,R1和R2包含旋转后的8×8象素矩阵:
表D
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  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 C3 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 02 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 E6 E2 H6 H2  A5 A1 C5 C1 E5 E1 G5 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 G2R6 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 C7 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 G0 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:D7 00 C7 00 E7 00 G7 00R4:00 B3 00 D3 00 F3 00 H3  A6 00 C6 00 E5 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:A3 B3 C3 D3 E3 F3 G3 H3 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象素矩阵。若按矩阵格式表示,数据显示如下:
表F
R1:
   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 00000000
 1       00000001     00000000 00000000 00000000 00000001
 2       00000010     00000000 00000000 00000001 00000000
 3       00000011     00000000 00000000 00000001 00000001
 4       00000100     00000000 00000001 00000000 00000000
 5       00000101     00000000 00000001 00000000 00000001
 6       00000110     00000000 00000001 00000001 00000000
 7       00000111     00000000 00000001 00000001 00000001
 8       00001000     00000001 00000000 00000000 00000000
 9       00001001     00000001 00000000 00000000 00000001
10       00001010     00000001 00000000 00000001 00000000
11       00001011     00000001 00000000 00000001 00000001
12       00001100     00000001 00000001 00000000 00000000
11       00001101     00000001 00000001 00000000 00000001
14       00001110     00000001 00000001 00000001 00000000
15       00001111     00000001 00000001 00000001 00000001
16       00010000     00000000 00000000 00000000 00000010
17       00010001     00000000 00000000 00000000 00000011
18       00010010     00000000 00000000 00000001 00000010
19       00010011     00000000 00000000 00000001 00000011
20       00010100     00000000 00000001 00000000 00000010
21       00010101     00000000 00000001 00000000 00000011
22       00010110     00000000 00000001 00000001 00000010
23       00010111     00000000 00000001 00000001 00000011
24       00011000     00000001 00000000 00000000 00000010
25       00011001     00000001 00000000 00000000 00000011
26       00011010     00000001 00000000 00000001 00000010
27       00011011     00000001 00000000 00000001 00000011
28       00011100     00000001 00000001 00000000 00000010
29       00011101     00000001 00000001 00000000 00000011
30       00011110     00000001 00000001 00000001 00000010
31       00011111     00000001 00000001 00000001 00000011
32       00100000     00000000 00000000 00000010 00000000
33       00100001     00000000 00000000 00000010 00000001
34       00100010     00000000 00000000 00000011 00000000
35       00100011     00000000 00000000 00000011 00000001
36       00100100     00000000 00000001 00000010 00000000
37       00100101     00000000 00000001 00000010 00000001
38       00100110     00000000 00000001 00000011 00000000
39       00100111     00000000 00000001 00000011 00000001
40    00101000    00000001 00000000 00000010 00000000
41    00101001    00000001 00000000 00000010 00000001
42    00101010    00000001 00000000 00000011 00000000
43    00101011    00000001 00000000 00000011 00000001
44    00101100    00000001 00000001 00000010 00000000
45    00101101    00000001 00000001 00000010 00000001
46    00101110    00000001 00000001 00000011 00000000
47    00101111    00000001 00000001 00000011 00000001
48    00110000    00000000 00000000 00000010 00000010
49    00110001    00000000 00000000 00000010 00000011
50    00110010    00000000 00000000 00000011 00000010
51    00110011    00000000 00000000 00000011 00000011
52    00110100    00000000 00000001 00000010 00000010
53    00110101    00000000 00000001 00000010 00000011
54    00110110    00000000 00000001 00000011 00000010
55    00110111    00000000 00000001 00000011 00000011
56    00111000    00000001 00000000 00000010 00000010
57    00111001    00000001 00000000 00000010 00000011
58    00111010    00000001 00000000 00000011 00000010
59    00111011    00000001 00000000 00000011 00000011
60    00111100    00000001 00000001 00000010 00000010
61    00111101    00000001 00000001 00000010 00000011
62    00111110    00000001 00000001 00000011 00000010
63    00111111    00000001 00000001 00000011 00000011
64    01000000    00000000 00000010 00000000 00000000
65    01000001    00000000 00000010 00000000 00000001
66    01000010    00000000 00000010 00000001 00000000
67    01000011    00000000 00000010 00000001 00000001
68    01000100    00000000 00000011 00000000 00000000
69    01000101    00000000 00000011 00000000 00000001
70    01000110    00000000 00000011 00000001 00000000
71    01000111    00000000 00000011 00000001 00000001
72    01001000    00000001 00000010 00000000 00000000
73    01001001    00000001 00000010 00000000 00000001
74    01001010    00000001 00000010 00000001 00000000
75    01001011    00000001 00000010 00000001 00000001
76    01001100    00000001 00000011 00000000 00000000
77    01001101    00000001 00000011 00000000 00000001
78    01001110    00000001 00000011 00000001 00000000
79    01001111    00000001 00000011 00000001 00000001
80    01010000    00000000 00000010 00000000 00000010
81    01010001    00000000 00000010 00000000 00000011
82    01010010    00000000 00000010 00000001 00000010
83    01010011    00000000 00000010 00000001 00000011
84    01010100    00000000 00000011 00000000 00000010
85    01010101    00000000 00000011 00000000 00000011
86    01010110    00000000 00000011 00000001 00000010
87    01010111    00000000 00000011 00000001 00000011
 88    01011000    00000001 00000010 00000000 00000010
 89    01011001    00000001 00000010 00000000 00000011
 90    01011010    00000001 00000010 00000001 00000010
 91    01011011    00000001 00000010 00000001 00000011
 92    01011100    00000001 00000011 00000000 00000010
 93    01011101    00000001 00000011 00000000 00000011
 94    01011110    00000001 00000011 00000001 00000010
 95    01011111    00000001 00000011 00000001 00000011
 96    01100000    00000000 00000010 00000010 00000000
 97    01100001    00000000 00000010 00000010 00000001
 90    01100010    00000000 00000010 00000011 00000000
 99    01100011    00000000 00000010 00000011 00000001
100    01100100    00000000 00000011 00000010 00000000
101    01100101    00000000 00000011 00000010 00000001
102    01100110    00000000 00000011 00000011 00000000
103    01100111    00000000 00000011 00000011 00000001
104    01101000    00000001 00000010 00000010 00000000
105    01101001    00000001 00000010 00000010 00000001
106    01101010    00000001 00000010 00000011 00000000
107    01101011    00000001 00000010 00000011 00000001
108    01101100    00000001 00000011 00000010 00000000
109    01101101    00000001 00000011 00000010 00000001
110    01101110    00000001 00000011 00000011 00000000
111    01101111    00000001 00000011 00000011 00000001
112    01110000    00000000 00000010 00000010 00000010
113    01110001    00000000 00000010 00000010 00000011
114    01110010    00000000 00000010 00000011 00000010
115    01110011    00000000 00000010 00000011 00000011
116    01110100    00000000 00000011 00000010 00000010
117    01110101    00000000 00000011 00000010 00000011
118    01110110    00000000 00000011 00000011 00000010
119    01110111    00000000 00000011 00000011 00000011
120    01111000    00000001 00000010 00000010 00000010
121    01111001    00000001 00000010 00000010 00000011
122    01111010    00000001 00000010 00000011 00000010
123    01111011    00000001 00000010 00000011 00000011
124    01111100    00000001 00000011 00000010 00000010
125    01111101    00000001 00000011 00000010 00000011
126    01111110    00000001 00000011 00000011 00000010
127    01111111    00000001 00000011 00000011 00000011
128    10000000    00000010 00000000 00000000 00000000
129    10000001    00000010 00000000 00000000 00000001
130    10000010    00000010 00000000 00000001 00000000
131    10000011    00000010 00000000 00000001 00000001
132    10000100    00000010 00000001 00000000 00000000
133    10000101    00000010 00000001 00000000 00000001
134    10000110    00000010 00000001 00000001 00000000
135    10000111    00000010 00000001 00000001 00000001
136    10001000    00000011 00000000 00000000 0000∞00
137    10001001    00000011 00000000 00000000 00000001
138    10001010    00000011 00000000 00000001 00000000
139    10001011    00000011 00000000 00000001 00000001
140    10001100    00000011 00000001 00000000 00000000
141    10001101    00000011 00000001 00000000 00000001
142    10001110    00000011 00000001 00000001 00000000
143    10001111    00000011 00000001 00000001 00000001
144    10010000    00000010 00000000 00000000 00000010
145    10010001    00000010 00000000 00000000 00000011
146    10010010    00000010 00000000 00000001 00000010
147    10010011    00000010 00000000 00000001 00000011
148    10010100    00000010 00000001 00000000 00000010
149    10010101    00000010 00000001 00000000 00000011
150    10010110    00000010 00000001 00000001 00000010
151    10010111    00000010 00000001 00000001 00000011
152    10011000    00000011 00000000 00000000 00000010
153    10011001    00000011 00000000 00000000 00000011
154    10011010    00000011 00000000 00000001 00000010
155    10011011    00000011 00000000 00000001 00000011
156    10011100    00000011 00000001 00000000 00000010
157    10011101    00000011 00000001 00000000 00000011
158    10011110    00000011 00000001 00000001 00000010
159    10011111    00000011 00000001 00000001 00000011
160    10100000    00000010 00000000 00000010 00000000
161    10100001    00000010 00000000 00000010 00000001
162    10100010    00000010 00000000 00000011 00000000
163    10100011    00000010 00000000 00000011 00000001
164    10100100    00000010 00000001 00000010 00000000
165    10100101    00000010 00000001 00000010 00000001
166    10100110    00000010 00000001 00000011 00000000
167    10100111    00000010 00000001 00000011 00000001
168    10101000    00000011 00000000 00000010 00000000
169    10101001    00000011 00000000 00000010 00000001
170    10101010    00000011 00000000 00000011 00000000
171    10101011    00000011 00000000 00000011 00000001
172    10101100    00000011 00000001 00000010 00000000
173    10101101    00000011 00000001 00000010 00000001
174    10101110    00000011 00000001 00000011 00000000
175    10101111    00000011 00000001 00000011 00000001
176    10110000    00000010 00000000 00000010 00000010
177    10110001    00000010 00000000 00000010 00000011
178    10110010    00000010 00000000 00000011 00000010
179    10110011    00000010 00000000 00000011 00000011
180    10110100    00000010 00000001 00000010 00000010
181    10110101    00000010 00000001 00000010 00000011
182    10110110    00000010 00000001 00000011 00000010
183    10110111    00000010 00000001 00000011 00000011
184    10111000    00000011 00000000 00000010 00000010
185    10111001    00000011 00000000 00000010 00000011
186    10111010    00000011 00000000 00000011 00000010
187    10111011    00000011 00000000 00000011 00000011
188    10111100    00000011 00000001 00000010 00000010
189    10111101    00000011 00000001 00000010 00000011
190    10111110    00000011 00000001 00000011 00000010
191    10111111    00000011 00000001 00000011 00000011
192    11000000    00000010 00000010 00000000 00000000
193    11000001    00000010 00000010 00000000 00000001
194    11000010    00000010 00000010 00000001 00000000
195    11000011    00000010 00000010 00000001 00000001
196    11000100    00000010 00000011 00000000 00000000
197    11000101    00000010 00000011 00000000 00000001
198    11000110    00000010 00000011 00000001 00000000
199    11000111    00000010 00000011 00000001 00000001
200    11001000    00000011 00000010 00000000 00000000
201    11001001    00000011 00000010 00000000 00000001
202    11001010    00000011 00000010 00000001 00000000
203    11001011    00000011 00000010 00000001 00000001
204    11001100    00000011 00000011 00000000 00000000
205    11001101    00000011 00000011 00000000 00000001
206    11001110    00000011 00000011 00000001 00000000
207    11001111    00000011 00000011 00000001 00000001
208    11010000    00000010 00000010 00000000 00000010
209    11010001    00000010 00000010 00000000 00000011
210    11010010    00000010 00000010 00000001 00000010
211    11010011    00000010 00000010 00000001 00000011
212    11010100    00000010 00000011 00000000 00000010
213    11010101    00000010 00000011 10000000 00000011
214    11010110    00000010 00000011 00000001 00000010
215    11010111    00000010 00000011 00000001 00000011
216    11011000    00000011 00000010 00000000 00000010
217    11011001    00000011 00000010 00000000 00000011
218    11011010    00000011 00000010 00000001 00000010
219    11011011    00000011 00000010 00000001 00000011
220    11011100    00000011 00000011 00000000 00000010
221    11011101    00000011 00000011 00000000 00000011
222    11011110    00000011 00000011 00000001 00000010
223    11011111    00000011 00000011 00000001 00000011
224    11100000    00000010 00000010 00000010 00000000
225    11100001    00000010 00000010 00000010 00000001
226    11100010    00000010 00000010 00000011 00000000
227    11100011    00000010 00000010 00000011 00000001
228    11100100    00000010 00000011 00000010 00000000
229    11100101    00000010 00000011 00000010 00000001
230    11100110    00000010 00000011 00000011 00000000
231    11100111    00000010 00000011 00000011 00000001
232    11101000    00000011 00000010 00000010 00000000
233    11101001    00000011 00000010 00000010 00000001
234    11101010    00000011 00000010 00000011 00000000
235    11101011    00000011 00000010 00000011 00000001
236    11101100    00000011 00000011 00000010 00000000
237    11101101    00000011 00000011 00000010 00000001
238    11101110    00000011 00000011 00000011 00000000
239    11101111    00000011 00000011 00000011 00000001
240    11110000    00000010 00000010 00000010 00000010
241    11110001    00000010 00000010 00000010 00000011
242    11110010    00000010 00000010 00000011 00000010
243    11110011    00000010 00000010 00000011 00000011
244    11110100    00000010 00000011 00000010 00000010
245    11110101    00000010 00000011 00000010 00000011
246    11110110    00000010 00000011 00000011 00000010
247    11110111    00000010 00000011 00000011 00000011
248    11111000    00000011 00000010 00000010 00000010
249    11111001    00000011 00000010 00000010 00000011
250    11111010    00000011 00000010 00000011 00000010
251    11111011    00000011 00000010 00000011 00000011
252    11111100    00000011 00000011 00000010 00000010
253    11111101    00000011 00000011 00000010 00000011
254    11111110    00000011 00000011 00000011 00000010
255    11111111    00000011 00000011 00000011 00000011
查找表2:
表目    从二进制表示             到二进制表示
 0       00000000     00000000 00000000 00000000 00000000
 1       00000001     00000000 00000000 00000000 00000100
 2       00000010     00000000 00000000 00000100 00000000
 3       00000011     00000000 00000000 00000100 00000100
 4       00000100     00000000 00000100 00000000 00000000
 5       00000101     00000000 00000100 00000000 00000100
 6       00000110     00000000 00000100 00000100 00000000
 7       00000111     00000000 00000100 00000100 00000100
 8       00001000     00000100 00000000 00000000 00000000
 9       00001001     00000100 00000000 00000000 00000100
10       00001010     00000100 00000000 00000100 00000000
11       00001011     00000100 00000000 00000100 00000100
12       00001100     00000100 00000100 00000000 00000000
13       00001101     00000100 00000100 00000000 00000100
14       00001110     00000100 00000100 00000100 00000000
15       00001111     00000100 00000100 00000100 00000100
16       00010000     00000000 00000000 00000000 00001000
17       00010001     00000000 00000000 00000000 00001100
18       00010010     00000000 00000000 00000100 00001000
19       00010011     00000000 00000000 00000100 00001100
20       00010100     00000000 00000100 00000000 00001000
21       00010101     00000000 00000100 00000000 00001100
22       00010110     00000000 00000100 00000100 00001000
23       00010111     00000000 00000100 00000100 00001100
24       00011000     00000100 00000000 00000000 00001000
25       00011001     00000100 00000000 00000000 00001100
26       00011010     00000100 00000000 00000100 00001000
27       00011011     00000100 00000000 00000100 00001100
28       00011100     00000100 00000100 00000000 00001000
29       00011101     00000100 00000100 00000000 00001100
30       00011110     00000100 00000100 00000100 00001000
31       00011111     00000100 00000100 00000100 00001100
32       00100000     00000000 00000000 00001000 00000000
33       00100001     00000000 00000000 00001000 00000100
34       00100010     00000000 00000000 00001100 00000000
35       00100011     00000000 00000000 00001100 00000100
36       00100100     00000000 00000100 00001000 00000000
37       00100101     00000000 00000100 00001000 00000100
38       00100110     00000000 00000100 00001100 00000000
39       00100111     00000000 00000100 00001100 00000100
40    00101000    00000100 00000000 00001000 00000000
41    00101001    00000100 00000000 00001000 00000100
42    00101010    00000100 00000000 00001100 00000000
43    00101011    00000100 00000000 00001100 00000100
44    00101100    00000100 00000100 00001000 00000000
45    00101101    00000100 00000100 00001000 00000100
46    00101110    00000100 00000100 00001100 00000000
47    00101111    00000100 00000100 00001100 00000100
48    00110000    00000000 00000000 00001000 00001000
49    00110001    00000000 00000000 00001000 00001100
50    00110010    00000000 00000000 00001100 00001000
51    00110011    00000000 00000000 00001100 00001100
52    00110100    00000000 00000100 00001000 00001000
53    00110101    00000000 00000100 00001000 00001100
54    00110110    00000000 00000100 00001100 00001000
55    00110111    00000000 00000100 00001100 00001100
56    00111000    00000100 00000000 00001000 00001000
57    00111001    00000100 00000000 00001000 00001100
58    00111010    00000100 00000000 00001100 00001000
59    00111011    00000100 00000000 00001100 00001100
60    00111100    00000100 00000100 00001000 00001000
61    00111101    00000100 00000100 00001000 00001100
62    00111110    00000100 00000100 00001100 00001000
63    00111111    00000100 00000100 00001100 00001100
64    01000000    00000000 00001000 00000000 00000000
65    01000001    00000000 00001000 00000000 00000100
66    01000010    00000000 00001000 00000100 00000000
67    01000011    00000000 00001000 00000100 00000100
68    01000100    00000000 00001100 00000000 00000000
69    01000101    00000000 00001100 00000000 00000100
70    01000110    00000000 00001100 00000100 00000000
71    01000111    00000000 00001100 00000100 00000100
72    01001000    00000100 00001000 00000000 00000000
73    01001001    00000100 00001000 00000000 00000100
74    01001010    00000100 00001000 00000100 00000000
75    01001011    00000100 00001000 00000100 00000100
76    01001100    00000100 00001100 00000000 00000000
77    01001101    00000100 00001100 00000000 00000100
78    01001110    00000100 00001100 00000100 00000000
79    01001111    00000100 00001100 00000100 00000100
80    01010000    00000000 00001000 00000000 00001000
81    01010001    00000000 00001000 00000000 00001100
82    01010010    00000000 00001000 00000100 00001000
83    01010011    00000000 00001000 00000100 00001100
84    01010100    00000000 00001100 00000000 00001000
85    01010101    00000000 00001100 00000000 00001100
86    01010110    00000000 00001100 00000100 00001000
87    01010111    00000000 00001100 00000100 00001100
 88    01011000    00000100 00001000 00000000 00001000
 89    01011001    00000100 00001000 00000000 00001100
 90    01011010    00000100 00001000 00000100 00001000
 91    01011011    00000100 00001000 00000100 00001100
 92    01011100    00000100 00001100 00000000 00001000
 93    01011101    00000100 00001100 00000000 00001100
 94    01011110    00000100 00001100 00000100 00001000
 95    01011111    00000100 00001100 00000100 00001100
 96    01100000    00000000 00001000 00001000 00000000
 97    01100001    00000000 00001000 00001000 00000100
 98    01100010    00000000 00001000 00001100 00000000
 99    01100011    00000000 00001000 00001100 00000100
100    01100100    00000000 00001100 00001000 00000000
101    01100101    00000000 00001100 00001000 00000100
102    01100110    00000000 00001100 00001100 00000000
103    01100111    00000000 00001100 00001100 00000100
104    01101000    00000100 00001000 00001000 00000000
105    01101001    00000100 00001000 00001000 00000100
106    01101010    00000100 00001000 00001100 00000000
107    01101011    00000100 00001000 00001100 00000100
108    01101100    00000100 00001100 00001000 00000000
109    01101101    00000100 00001100 00001000 00000100
110    01101110    00000100 00001100 00001100 00000000
111    01101111    00000100 00001100 00001100 00000100
112    01110000    00000000 00001000 00001000 00001000
113    01110001    00000000 00001000 00001000 00001100
114    01110010    00000000 00001000 00001100 00001000
115    01110011    00000000 00001000 00001100 00001100
116    01110100    00000000 00001100 00001000 00001000
117    01110101    00000000 00001100 00001000 00001100
118    01110110    00000000 00001100 00001100 00001000
119    01110111    00000000 00001100 00001100 00001100
120    01111000    00000100 00001000 00001000 00001000
121    01111001    00000100 00001000 00001000 00001100
122    01111010    00000100 00001000 00001100 00001000
123    01111011    00000100 00001000 00001100 00001100
124    01111100    00000100 00001100 00001000 00001000
125    01111101    00000100 00001100 00001000 00001100
126    01111110    00000100 00001100 00001100 00001000
127    01111111    00000100 00001100 00001100 00001100
128    10000000    00001000 00000000 00000000 00000000
129    10000001    00001000 00000000 00000000 00000100
130    10000010    00001000 00000000 00000100 00000000
131    10000011    00001000 00000000 00000100 00000100
132    10000100    00001000 00000100 00000000 00000000
133    10000101    00001000 00000100 00000000 00000100
134    10000110    00001000 00000100 00000100 00000000
135    10000111    00001000 00000100 00000100 00000100
136    10001000    00001100 00000000 00000000 00000000
137    10001001    00001100 00000000 00000000 00000100
138    10001010    00001100 00000000 00000100 00000000
139    10001011    00001100 00000000 00000100 00000100
140    10001100    00001100 00000100 00000000 00000000
141    10001101    00001100 00000100 00000000 00000100
142    10001110    00001100 00000100 00000100 00000000
143    10001111    00001100 00000100 00000100 00000100
144    10010000    00001000 00000000 00000000 00001000
145    10010001    00001000 00000000 00000000 00001100
146    10010010    00001000 00000000 00000100 00001000
147    10010011    00001000 00000000 00000100 00001100
148    10010100    00001000 00000100 00000000 00001000
149    10010101    00001000 00000100 00000000 00001100
150    10010110    00001000 00000100 00000100 00001000
151    10010111    00001000 00000100 00000100 00001100
152    10011000    00001100 00000000 00000000 00001000
153    10011001    00001100 00000000 00000000 00001100
154    10011010    00001100 00000000 00000100 00001000
155    10011011    00001100 00000000 00000100 00001100
156    10011100    00001100 00000100 00000000 00001000
157    10011101    00001100 00000100 00000000 00001100
158    10011110    00001100 00000100 00000100 00001000
159    10011111    00001100 00000100 00000100 00001100
160    10100000    00001000 00000000 00001000 00000000
161    10100001    00001000 00000000 00001000 00000100
162    10100010    00001000 00000000 00001100 00000000
163    10100011    00001000 00000000 00001100 00000100
164    10100100    00001000 00000100 00001000 00000000
165    10100101    00001000 00000100 00001000 00000100
166    10100110    00001000 00000100 00001100 00000000
167    10100111    00001000 00000100 00001100 00000100
168    10101000    00001100 00000000 00001000 00000000
169    10101001    00001100 00000000 00001000 00000100
170    10101010    00001100 00000000 00001100 00000000
171    10101011    00001100 00000000 00001100 00000100
172    10101100    00001100 00000100 00001000 00000000
173    10101101    00001100 00000100 00001000 00000100
174    10101110    00001100 00000100 00001100 00000000
175    10101111    00001100 00000100 00001100 00000100
176    10110000    00001000 00000000 00001000 00001000
177    10110001    00001000 00000000 00001000 00001100
178    10110010    00001000 00000000 00001100 00001000
179    10110011    00001000 00000000 00001100 00001100
180    10110100    00001000 00000100 00001000 00001000
181    10110101    00001000 00000100 00001000 00001100
182    10110110    00001000 00000100 00001100 00001000
183    10110111    00001000 00000100 00001100 00001100
184    10111000    00001100 00000000 00001000 00001000
185    10111001    00001100 00000000 00001000 00001100
186    10111010    00001100 00000000 00001100 00001000
187    10111011    00001100 00000000 00001100 00001100
188    10111100    00001100 00000100 00001000 00001000
189    10111101    00001100 00000100 00001000 00001100
190    10111110    00001100 00000100 00001100 00001000
191    10111111    00001100 00000100 00001100 00001100
192    11000000    00001000 00001000 00000000 00000000
193    11000001    00001000 00001000 00000000 00000100
194    11000010    00001000 00001000 00000100 00000000
195    11000011    00001000 00001000 00000100 00000100
196    11000100    00001000 00001100 00000000 00000000
197    11000101    00001000 00001100 00000000 00000100
198    11000110    00001000 00001100 00000100 00000000
199    11000111    00001000 00001100 00000100 00000100
200    11001000    00001100 00001000 00000000 00000000
201    11001001    00001100 00001000 00000000 00000100
202    11001010    00001100 00001000 00000100 00000000
203    11001011    00001100 00001000 00000100 00000100
204    11001100    00001100 00001100 00000000 00000000
205    11001101    00001100 00001100 00000000 00000100
206    11001110    00001100 00001100 00000100 00000000
207    11001111    00001100 00001100 00000100 00000100
208    11010000    00001000 00001000 00000000 00001000
209    11010001    00001000 00001000 00000000 00001100
210    11010010    00001000 00001000 00000100 00001000
211    11010011    00001000 00001000 00000100 00001100
212    11010100    00001000 00001100 00000000 00001000
213    11010101    00001000 00001100 00000000 00001100
214    11010110    00001000 00001100 00000100 00001000
215    11010111    00001000 00001100 00000100 00001100
216    11011000    00001100 00001100 00000000 00001000
217    11011001    00001100 00001000 00000000 00001100
218    11011010    00001100 00001000 00000100 00001000
219    11011011    00001100 00001000 00000100 00001100
219    11011100    00001100 00001100 00000000 00001000
220    11011101    00001100 00001100 00000000 00001100
222    11011110    00001100 00001100 00000100 00001000
223    11011111    00001100 00001100 00000100 00001100
224    11100000    00001000 00001000 00001000 00000000
225    11100001    00001000 00001000 00001000 00000100
226    11100010    00001000 00001000 00001100 00000000
227    11100011    00001000 00001000 00001100 00000100
228    11100100    00001000 00001100 00001000 00000000
229    11100101    00001000 00001100 00001000 00000100
230    11100110    00001000 00001100 00001100 00000000
231    11100111    00001000 00001100 00001100 00000100
232    11101000    00001100 00001000 00001000 00000000
233    11101001    00001100 00001000 00001000 00000100
234    11101010    00001100 00001000 00001100 00000000
235    11101011    00001100 00001000 00001100 00000100
236    11101100    00001100 00001100 00001000 00000000
237    11101101    00001100 00001100 00001000 00000100
238    11101110    00001100 00001100 00001100 00000000
239    11101111    00001100 00001100 00001100 00000100
240    11110000    00001000 00001000 00001000 00001000
241    11110001    00001000 00001000 00001000 00001100
242    11110010    00001000 00001000 00001100 00001000
243    11110011    00001000 00001000 00001100 00001100
244    11110100    00001000 00001100 00001000 00001000
245    11110101    00001000 00001100 00001000 00001100
246    11110110    00001000 00001100 00001100 00001000
247    11110111    00001000 00001100 00001100 00001100
248    11111000    00001100 00001000 00001000 00001000
249    11111001    00001100 00001000 00001000 00001100
250    11111010    00001100 00001000 00001100 00001000
251    11111011    00001100 00001000 00001100 00001100
252    11111100    00001100 00001100 00001000 00001000
253    11111101    00001100 00001100 00001000 00001100
254    11111110    00001100 00001100 00001100 00001000
255    11111111    00001100 00001100 00001100 00001100
查找表3:
表目     从二进制表示    到二进制表示
 0       00000000    00000000 00000000 00000000 00000000
 1       00000001    00000000 00000000 00000000 00010000
 2       00000010    00000000 00000000 00010000 00000000
 3       00000011    00000000 00000000 00010000 00010000
 4       00000100    00000000 00010000 00000000 00000000
 5       00000101    00000000 00010000 00000000 00010000
 6       00000110    00000000 00010000 00010000 00000000
 7       00000111    00000000 00010000 00010000 00010000
 8       00001000    00010000 00000000 00000000 00000000
 9       00001001    00010000 00000000 00000000 00010000
10       00001010    00010000 00000000 00010000 00000000
11       00001011    00010000 00000000 00010000 00010000
12       00001100    00010000 00010000 00000000 00000000
13       00001101    00010000 00010000 00000000 00010000
14       00001110    00010000 00010000 00010000 00000000
15       00001111    00010000 00010000 00010000 00010000
16       00010000    00000000 00000000 00000000 00100000
17       00010001    00000000 00000000 00000000 00110000
18       00010010    00000000 00000000 00010000 00100000
19       00010011    00000000 00000000 00010000 00110000
20       00010100    00000000 00010000 00000000 00100000
21       00010101    00000000 00010000 00000000 00110000
22       00010110    00000000 00010000 00010000 00100000
23       00010111    00000000 00010000 00010000 00110000
24       00011000    00010000 00000000 00000000 00100000
25       00011001    00010000 00000000 00000000 00110000
26       00011010    00010000 00000000 00010000 00100000
27       00011011    00010000 00000000 00010000 00110000
28       00011100    00010000 00010000 00000000 00100000
29       00011101    00010000 00010000 00000000 00110000
30       00011110    00010000 00010000 00010000 00100000
31       00011111    00010000 00010000 00010000 00110000
32       00100000    00000000 00000000 00100000 00000000
33       00100001    00000000 00000000 00100000 00010000
34       00100010    00000000 00000000 00110000 00000000
35       00100011    00000000 00000000 00110000 00010000
36       00100100    00000000 00010000 00100000 00000000
37       00100101    00000000 00010000 00100000 00010000
38       00100110    00000000 00010000 00110000 00000000
39       00100111    00000000 00010000 00110000 00010000
 40    00101000    00010000 00000000 00100000 00000000
 41    00101001    00010000 00000000 00100000 00010000
 42    00101010    00010000 00000000 00110000 00000000
 43    00101011    00010000 00000000 00110000 00010000
 44    00101100    00010000 00010000 00100000 00000000
 45    00101101    00010000 00010000 00100000 00010000
 46    00101110    00010000 00010000 00110000 00000000
 47    00101111    00010000 00010000 00110000 00010000
 48    00110000    00000000 00000000 00100000 00100000
 49    00110001    00000000 00000000 00100000 00110000
 50    00110001    00000000 00000000 00110000 00100000
 51    00110011    00000000 00000000 00110000 00110000
 52    00110100    00000000 00010000 00100000 00100000
 53    00110101    00000000 00010000 00100000 00110000
 54    00110110    00000000 00010000 00110000 00100000
 55    00110111    00000000 00010000 00110000 00110000
 56    00111000    00010000 00000000 00100000 00100000
 57    00111001    00010000 00000000 00100000 00110000
 58    00111010    00010000 00000000 00110000 00100000
 59    00111011    00010000 00000000 00110000 00110000
 60    00111100    00010000 00010000 00100000 00100000
 61    00111101    00010000 00010000 00100000 00110000
 62    00111110    00010000 00010000 00110000 00100000
 63    00111111    00010000 00010000 00110000 00110000
 64    01000000    00000000 00100000 00000000 00000000
 65    01000001    00000000 00100000 00000000 00010000
 66    01000010    00000000 00100000 00010000 00000000
 67    01000011    00000000 00100000 00010000 00010000
 68    01000100    00000000 00110000 00000000 00000000
 69    01000101    00000000 00110000 00000000 00010000
 70    01000110    00000000 00110000 00010000 00000000
 71    01000111    00000000 00110000 00010000 00010000
 72    01001000    00010000 00100000 00000000 00000000
 73    01001001    00010000 00100000 00000000 00010000
 74    01001010    00010000 00100000 00010000 00000000
 75    01001011    00010000 00100000 00010000 00010000
 76    01001100    00010000 00110000 00000000 00000000
 77    01001101    00010000 00110000 00000000 00010000
 78    01001110    00010000 00110000 00010000 00000000
 79    01001111    00010000 00110000 00010000 00010000
 80    01010000    00000000 00100000 00000000 00100000
 81    01010001    00000000 00100000 00000000 00110000
 82    01010010    00000000 00100000 00010000 00100000
 83    01010011    00000000 00100000 00010000 00110000
 84    01010100    00000000 00110000 00000000 00100000
 85    01010101    00000000 00110000 00000000 00110000
 86    01010110    00000000 00110000 00010000 00100000
 87    01010111    00000000 00110000 00010000 00110000
 88    01011000    00010000 00100000 00000000 00100000
 89    01011001    00010000 00100000 00000000 00110000
 90    01011010    00010000 00100000 00010000 00100000
 91    01011011    00010000 00100000 00010000 00110000
 92    01011100    00010000 00110000 00000000 00100000
 93    01011101    00010000 00110000 00000000 00110000
 94    01011110    00010000 00110000 00010000 00100000
 95    01011111    00010000 00110000 00010000 00110000
 96    01100000    00000000 00100000 00100000 00000000
 97    01100001    00000000 00100000 00100000 00010000
 98    01100010    00000000 00100000 00110000 00000000
 99    01100011    00000000 00100000 00110000 00010000
100    01100100    00000000 00110000 00100000 00000000
101    01100101    00000000 00110000 00100000 00010000
102    01100110    00000000 00110000 00110000 00000000
103    01100111    00000000 00110000 00110000 00010000
104    01101000    00010000 00100000 00100000 00000000
105    01101001    00010000 00100000 00100000 00010000
106    01101010    00010000 00100000 00110000 00000000
107    01101011    00010000 00100000 00110000 00010000
108    01101100    00010000 00110000 00100000 00000000
109    01101101    00010000 00110000 00100000 00010000
110    01101110    00010000 00110000 00110000 00000000
111    01101111    00010000 00110000 00110000 00010000
112    01110000    00000000 00100000 00100000 00100000
113    01110001    00000000 00100000 00100000 00110000
114    01110010    00000000 00100000 00110000 00100000
115    01110011    00000000 00100000 00110000 00110000
116    01110100    00000000 00110000 00100000 00100000
117    01110101    00000000 00110000 00100000 00110000
118    01110110    00000000 00110000 00110000 00100000
119    01110111    00000000 00110000 00110000 00110000
120    01111000    00010000 00100000 00100000 00100000
121    01111001    00010000 00100000 00100000 00110000
122    01111010    00010000 00100000 00110000 00100000
123    01111011    00010000 00100000 00110000 00110000
124    01111100    00010000 00110000 00100000 00100000
125    01111101    00010000 00110000 00100000 00110000
126    01111110    00010000 00110000 00110000 00100000
127    01111111    00010000 00110000 00110000 00110000
128    10000000    00100000 00000000 00000000 00000000
129    10000001    00100000 00000000 00000000 00010000
130    10000010    00100000 00000000 00010000 00000000
131    10000011    00100000 00000000 00010000 00010000
132    10000100    00100000 00010000 00000000 00000000
133    10000101    00100000 00010000 00000000 00010000
134    10000110    00100000 00010000 00010000 00000000
135    10000111    00100000 00010000 00010000 00010000
136    10001000    00110000 00000000 00000000 00000000
137    10001001    00110000 00000000 00000000 00010000
138    10001010    00110000 00000000 00010000 00000000
139    10001011    00110000 00000000 00010000 00010000
140    10001100    00110000 00010000 00000000 00000000
141    10001101    00110000 00010000 00000000 00010000
142    10001110    00110000 00010000 00010000 00000000
143    10001111    00110000 00010000 00010000 00010000
144    10010000    00100000 00000000 00000000 00100000
145    10010001    00100000 00000000 00000000 00110000
146    10010010    00100000 00000000 00010000 00100000
147    10010011    00100000 00000000 00010000 00110000
148    10010100    00100000 00010000 00000000 00100000
149    10010101    00100000 00010000 00000000 00110000
150    10010110    00100000 00010000 00010000 00100000
151    10010111    00100000 00010000 00010000 00110000
152    10011000    00110000 00000000 00000000 00100000
153    10011001    00110000 00000000 00000000 00110000
154    10011010    00110000 00000000 00010000 00100000
155    10011011    00110000 00000000 00010000 00110000
156    10011100    00110000 00010000 00000000 00100000
157    10011101    00110000 00010000 00000000 00110000
158    10011110    00110000 00010000 00010000 00100000
159    10011111    00110000 00010000 00010000 00110000
160    10100000    00100000 00000000 00100000 00000000
161    10100001    00100000 00000000 00100000 00010000
162    10100010    00100000 00000000 00110000 00000000
163    10100011    00100000 00000000 00110000 00010000
164    10100100    00100000 00010000 00100000 00000000
165    10100101    00100000 00010000 00100000 00010000
166    10100110    00100000 00010000 00110000 00000000
167    10100111    00100000 00010000 00110000 00010000
168    10101000    00110000 00000000 00100000 00000000
169    10101001    00110000 00000000 00100000 00010000
170    10101010    00110000 00000000 00110000 00000000
171    10101011    00110000 00000000 00110000 00010000
172    10101100    00110000 00010000 00100000 00000000
172    10101101    00110000 00010000 00100000 00010000
173    10101110    00110000 00010000 00110000 00000000
174    10101111    00110000 00010000 00110000 00010000
175
176    10110000    00100000 00000000 00100000 00100000
177    10110001    00100000 00000000 00100000 00110000
178    10110010    00100000 00000000 00110000 00100000
179    10110011    00100000 00000000 00110000 00110000
180    10110100    00100000 00010000 00100000 00100000
181    10110101    00100000 00010000 00100000 00110000
182    10110110    00100000 00010000 00110000 00100000
183    10110111    00100000 00010000 00110000 00110000
184    10111000       00110000 00000000 00100000 00100000
185    10111001       00110000 00000000 00100000 00110000
186    10111010       00110000 00000000 00110000 00100000
187    10111011       00110000 00000000 00110000 00110000
188    10111100       00110000 00010000 00100000 00100000
189    10111101       00110000 00010000 00100000 00110000
190    10111110       00110000 00010000 00110000 00100000
191    10111111       00110000 00010000 00110000 00110000
192    11000000       00100000 00100000 00000000 00000000
193    11000001       00100000 00100000 00000000 00010000
194    11000010       00100000 00100000 00010000 00000000
195    11000011       00100000 00100000 00010000 00010000
196    11000100       00100000 00110000 00000000 00000000
197    11000101       00100000 00110000 00000000 00010000
198    11000110       00100000 00110000 00010000 00000000
199    11000111       00100000 00110000 00010000 00010000
200    11001000       00110000 00100000 00000000 00000000
201    11001001       00110000 00100000 00000000 00010000
202    11001010       00110000 00100000 00010000 00000000
203    11001011       00110000 00100000 00010000 00010000
204    11001100       00110000 00110000 00000000 00000000
205    11001101       00110000 00110000 00000000 00010000
206    11001110       00110000 00110000 00010000 00000000
207    11001111       00110000 00110000 00010000 00010000
208    11010000       00100000 00100000 00000000 00100000
209    11010001       00100000 00100000 00000000 00110000
210    11010010       00100000 00100000 00010000 00100000
211    11010011       00100000 00100000 00010000 00110000
212    11010100       00100000 00110000 00000000 00100000
213    11010101       00100000 00110000 00000000 00110000
214    11010110       00100000 00110000 00010000 00100000
215    11010111       00100000 00110000 00010000 00110000
216    11011000       00110000 00100000 00000000 00100000
217    11011001       00110000 00100000 00000000 00110000
218    110n010        00110000 00100000 00010000 00100000
219    11011011       00110000 00100000 00010000 00110000
220    11011100       00110000 00110000 00000000 00100000
221    11011101       00110000 00110000 00000000 00110000
222    11011110       00110000 00110000 00010000 00100000
223    11011111       00110000 00110000 00010000 00110000
224    11100000       00100000 00100000 00100000 00000000
225    11100001       00100000 00100000 00100000 00010000
226    11100010       00100000 00100000 00110000 00000000
227    11100011       00100000 00100000 00110000 00010000
228    11100100       00100000 00110000 00100000 00000000
229    11100101       00100000 00110000 00100000 00010000
230    11100110       00100000 00110000 00110000 00000000
231    11100111       00100000 00110000 00110000 00010000
232    11101000    00110000 00100000 00100000 00000000
233    11101001    00110000 00100000 00100000 00010000
234    11101010    00110000 00100000 00110000 00000000
235    11101011    00110000 00100000 00110000 00010000
236    11101100    00110000 00110000 00100000 00000000
237    11101101    00110000 00110000 00100000 00010000
238    11101110    00110000 00110000 00110000 00000000
239    11101111    00110000 00110000 00110000 00010000
240    11110000    00100000 00100000 00100000 00100000
241    11110001    00100000 00100000 00100000 00110000
242    11110010    00100000 00100000 00110000 00100000
243    11110011    00100000 00100000 00110000 00110000
244    11110100    00100000 00110000 00100000 00100000
245    11110101    00100000 00110000 00100000 00110000
246    11110110    00100000 00110000 00110000 00100000
247    11110111    00100000 00110000 00110000 00110000
248    11111000    00110000 00100000 00100000 00100000
249    11111001    00110000 00100000 00100000 00110000
250    11111010    00110000 00100000 00110000 00100000
       11111011    00110000 00100000 00110000 00110000
       11111100    00110000 00110000 00100000 00100000
       11111101    00110000 00110000 00100000 00110000
       11111110    00110000 00110000 00110000 00100000
256    11111111    00110000 00110000 00110000 00110000
查找表4,
表目   从二进制表示              到二进制表示
 0       00000000    00000000 00000000 00000000 00000000
 1       00000001    00000000 00000000 00000000 01000000
 2       00000010    00000000 00000000 01000000 00000000
 3       00000011    00000000 00000000 01000000 01000000
 4       00000100    00000000 01000000 00000000 00000000
 5       00000101    00000000 01000000 00000000 01000000
 6       00000110    00000000 01000000 01000000 00000000
 7       00000111    00000000 01000000 01000000 01000000
 8       00001000    01000000 00000000 00000000 00000000
 9       00001001    01000000 00000000 00000000 01000000
10       00001010    01000000 00000000 01000000 00000000
11       00001011    01000000 00000000 01000000 01000000
12       00001100    01000000 01000000 00000000 00000000
13       00001101    01000000 01000000 00000000 01000000
14       00001110    01000000 01000000 01000000 00000000
15       00001111    01000000 01000000 01000000 01000000
16       00010000    00000000 00000000 00000000 10000000
17       00010001    00000000 00000000 00000000 11000000
18       00010010    00000000 00000000 01000000 10000000
19       00010011    00000000 00000000 01000000 11000000
20       00010100    00000000 01000000 00000000 10000000
21       00010101    00000000 01000000 00000000 11000000
22       00010110    00000000 01000000 01000000 10000000
23       00010111    00000000 01000000 01000000 11000000
24       00011000    01000000 00000000 00000000 10000000
25       00011001    01000000 00000000 00000000 11000000
26       00011010    01000000 00000000 01000000 10000000
27       00011011    01000000 00000000 01000000 11000000
28       00011100    01000000 01000000 00000000 10000000
29       00011101    01000000 01000000 00000000 11000000
30       00011110    01000000 01000000 01000000 10000000
31       00011111    01000000 01000000 01000000 11000000
32       00100000    00000000 00000000 10000000 00000000
33       00100001    00000000 00000000 10000000 01000000
34       00100010    00000000 00000000 11000000 00000000
35       00100011    00000000 00000000 11000000 01000000
36       00100100    00000000 01000000 10000000 00000000
37       00100101    00000000 01000000 10000000 01000000
38       00100110    00000000 01000000 11000000 00000000
39       00100111    00000000 01000000 11000000 01000000
40    00101000    01000000 00000000 10000000 00000000
41    00101001    01000000 00000000 10000000 01000000
42    00101010    01000000 00000000 11000000 00000000
43    00101011    01000000 00000000 11000000 01000000
44    00101100    01000000 01000000 10000000 00000000
45    00101101    01000000 01000000 10000000 01000000
46    00101110    01000000 01000000 11000000 00000000
47    00101111    01000000 01000000 11000000 01000000
48    00110000    00000000 00000000 10000000 10000000
49    00110001    00000000 00000000 10000000 11000000
50    00110010    00000000 00000000 11000000 10000000
51    00110011    00000000 00000000 11000000 11000000
52    00110100    00000000 01000000 10000000 10000000
53    00110101    00000000 01000000 10000000 11000000
54    00110110    00000000 01000000 11000000 10000000
55    00110111    00000000 01000000 11000000 11000000
56    00111000    01000000 00000000 10000000 10000000
57    00111001    01000000 00000000 10000000 11000000
58    00111010    01000000 00000000 11000000 10000000
59    00111011    01000000 00000000 11000000 11000000
60    00111100    01000000 01000000 10000000 10000000
61    00111101    01000000 01000000 10000000 11000000
62    00111110    01000000 01000000 11000000 10000000
63    00111111    01000000 01000000 11000000 11000000
64    01000000    00000000 10000000 00000000 00000000
65    01000001    00000000 10000000 00000000 01000000
66    01000010    00000000 10000000 01000000 00000000
67    01000011    00000000 10000000 01000000 01000000
68    01000100    00000000 11000000 00000000 00000000
69    01000101    00000000 11000000 00000000 01000000
70    01000110    00000000 11000000 01000000 00000000
71    01000111    00000000 11000000 01000000 01000000
72    01001000    01000000 10000000 00000000 00000000
73    01001001    01000000 10000000 00000000 01000000
74    01001010    01000000 10000000 01000000 00000000
75    01001011    01000000 10000000 01000000 01000000
76    01001100    01000000 11000000 00000000 00000000
77    01001101    01000000 11000000 00000000 01000000
78    01001110    01000000 11000000 01000000 00000000
79    01001111    01000000 11000000 01000000 01000000
80    01010000    00000000 10000000 00000000 10000000
81    01010001    00000000 10000000 00000000 11000000
82    01010010    00000000 10000000 10000000 10000000
83    01010011    00000000 10000000 01000000 11000000
84    01010100    00000000 11000000 00000000 10000000
85    01010101    00000000 11000000 00000000 11000000
86    01010110    00000000 11000000 01000000 10000000
87    01010111    00000000 11000000 01000000 11000000
  88   01011000    01000000 10000000 00000000 10000000
  89   01011001    01000000 10000000 00000000 11000000
  90   01011010    01000000 10000000 01000000 10000000
  91   01011011    01000000 10000000 01000000 11000000
  92   01011100    01000000 11000000 00000000 10000000
  93   01011101    01000000 11000000 00000000 11000000
  94   01011110    01000000 11000000 01000000 10000000
  95   01011111    01000000 11000000 01000000 11000000
  96   01100000    00000000 10000000 10000000 00000000
  97   01100001    00000000 10000000 10000000 01000000
  98   01100010    00000000 10000000 11000000 00000000
  99   01100011    00000000 10000000 11000000 01000000
 100   01100100    00000000 11000000 10000000 00000000
 101   01100101    00000000 11000000 10000000 01000000
 102   01100110    00000000 11000000 11000000 00000000
 103   01100111    00000000 11000000 11000000 01000000
 104   01101000    01000000 10000000 10000000 00000000
 105   01101001    01000000 10000000 10000000 01000000
 106   01101010    01000000 10000000 11000000 00000000
 107   01101011    01000000 10000000 11000000 01000000
 108   01101100    01000000 11000000 10000000 00000000
 109   01101101    01000000 11000000 10000000 01000000
 110   01101110    01000000 11000000 11000000 00000000
 111   01101111    01000000 11000000 11000000 01000000
 112   01110000    00000000 10000000 10000000 10000000
 113   01110001    00000000 10000000 10000000 11000000
 114   01110010    00000000 10000000 11000000 10000000
 115   01110011    00000000 10000000 11000000 11000000
 116   01110100    00000000 11000000 10000000 10000000
 117   01110101    00000000 11000000 10000000 11000000
 118   01110110     00000000 11000000 11000000 10000000
 119   01110111    00000000 11000000 11000000 11000000
 120   01111000    01000000 10000000 10000000 10000000
 121   01111001    01000000 10000000 10000000 11000000
 122   01111010    01000000 10000000 11000000 10000000
 123   01111011    01000000 10000000 11000000 11000000
 124   01111100    01000000 11000000 10000000 10000000
 125   01111101    01000000 11000000 10000000 11000000
 126   01111110    01000000 11000000 11000000 10000000
 127   01111111    01000000 11000000 11000000 11000000
 128   10000000    10000000 00000000 00000000 00000000
 129   10000001    10000000 00000000 00000000 01000000
 130   10000010    10000000 00000000 01000000 00000000
 131   10000011    10000000 00000000 01000000 01000000
 132   10000100    10000000 01000000 00000000 00000000
 133   10000101    10000000 01000000 00000000 01000000
 134   10000110    10000000 01000000 01000000 00000000
 135   10000111    10000000 01000000 01000000 01000000
136    10001000    11000000 00000000 00000000 00000000
137    10001001    11000000 00000000 00000000 01000000
138    10001010    11000000 00000000 01000000 00000000
139    10001011    11000000 00000000 01000000 01000000
140    10001100    11000000 01000000 00000000 00000000
141    10001101    11000000 01000000 00000000 01000000
142    10001110    11000000 01000000 01000000 00000000
143    10001111    11000000 01000000 01000000 01000000
144    10010000    10000000 00000000 00000000 10000000
145    10010001    10000000 00000000 00000000 11000000
146    10010010    10000000 00000000 01000000 10000000
147    10010011    10000000 00000000 01000000 11000000
148    10010100    10000000 01000000 00000000 10000000
149    10010101    10000000 01000000 00000000 11000000
150    10010110    10000000 01000000 01000000 10000000
151    10010111    10000000 01000000 01000000 11000000
152    10011000    11000000 00000000 00000000 10000000
153    10011001    11000000 00000000 00000000 11000000
154    10011010    11000000 00000000 01000000 10000000
155    10011011    11000000 00000000 01000000 11000000
156    10011100    11000000 01000000 00000000 10000000
157    10011101    11000000 01000000 00000000 11000000
158    10011110    11000000 01000000 01000000 10000000
159    10011111    11000000 01000000 01000000 11000000
160    10100000    10000000 00000000 10000000 00000000
161    10100001    10000000 00000000 10000000 01000000
162    10100010    10000000 00000000 11000000 00000000
163    10100011    10000000 00000000 11000000 01000000
164    10100100    10000000 01000000 10000000 00000000
165    10100101    10000000 01000000 10000000 01000000
166    10100110    10000000 01000000 11000000 00000000
167    10100111    10000000 01000000 11000000 01000000
168    10101000    11000000 00000000 10000000 00000000
169    10101001    11000000 00000000 10000000 01000000
170    10101010    11000000 00000000 11000000 00000000
171    10101011    11000000 00000000 11000000 01000000
172    10101100    11000000 01000000 10000000 00000000
173    10101101    11000000 01000000 10000000 01000000
174    10101110    11000000 01000000 11000000 00000000
175    10101111    11000000 01000000 11000000 01000000
176    10110000    10000000 00000000 10000000 10000000
177    10110001    10000000 00000000 10000000 11000000
178    10110010    10000000 00000000 11000000 10000000
179    10110011    10000000 00000000 11000000 11000000
180    10110100    10000000 01000000 10000000 10000000
181    10110101    10000000 01000000 10000000 11000000
182    10110110    10000000 01000000 11000000 10000000
183    10110111    10000000 01000000 11000000 11000000
 184    10111000    11000000 00000000 10000000 10000000
 185    10111001    11000000 00000000 10000000 11000000
 186    10111010    11000000 00000000 11000000 10000000
 187    10111011    11000000 00000000 11000000 11000000
 188    10111100    11000000 01000000 10000000 10000000
 189    10111101    11000000 01000000 10000000 11000000
 190    10111110    11000000 01000000 11000000 10000000
 191    10111111    11000000 01000000 11000000 11000000
 192    11000000    10000000 10000000 00000000 00000000
 193    11000001    10000000 10000000 00000000 01000000
 194    11000010    10000000 10000000 01000000 00000000
 195    11000011    10000000 10000000 01000000 01000000
 196    11000100    10000000 11000000 00000000 00000000
 197    11000101    10000000 11000000 00000000 01000000
 198    11000110    10000000 11000000 01000000 00000000
 199    11000111    10000000 11000000 01000000 01000000
 200    11001000    11000000 10000000 00000000 00000000
 201    11001001    11000000 10000000 00000000 01000000
 202    11001010    11000000 10000000 01000000 00000000
 203    11001011    11000000 10000000 01000000 01000000
 204    11001100    11000000 11000000 00000000 00000000
 205    11001101    11000000 11000000 00000000 01000000
 206    11001110    11000000 11000000 01000000 00000000
 207    11001111    11000000 11000000 01000000 01000000
 208    11010000    10000000 10000000 00000000 10000000
 209    11010001    10000000 10000000 00000000 11000000
 210    11010010    10000000 10000000 01000000 10000000
 211    11010011    10000000 10000000 01000000 11000000
 212    11010100    10000000 11000000 00000000 10000000
 213    11010101    10000000 11000000 00000000 11000000
 214    11010110    10000000 11000000 01000000 10000000
 215    11010111    10000000 11000000 01000000 11000000
 216    11011000    11000000 10000000 00000000 10000000
 217    11011001    11000000 10000000 00000000 11000000
 218    11011010    11000000 10000000 01000000 10000000
 219    11011011    11000000 10000000 01000000 11000000
 220    11011100    11000000 11000000 00000000 10000000
 221    11011101    11000000 11000000 00000000 11000000
 222    11011110    11000000 11000000 01000000 10000000
 223    11011111    11000000 11000000 01000000 11000000
 224    11100000    10000000 10000000 10000000 00000000
 225    11100001    10000000 10000000 10000000 01000000
 226    11100010    10000000 10000000 11000000 00000000
 227    11100011    10000000 10000000 11000000 01000000
 228    11100100    10000000 11000000 10000000 00000000
 229    11100101    10000000 11000000 10000000 01000000
 230    11100110    10000000 11000000 11000000 00000000
 231    11100111    10000000 11000000 11000000 01000000
 232    11101000    11000060 10000000 10000000 00000000
 233    11101001    11000000 10000000 10000000 01000000
 234    11101010    11000000 10000000 11000000 00000000
 235    11101011    11000000 10000000 11000000 01000000
 236    11101100    11000000 11000000 10000000 00000000
 237    11101101    11000000 11000000 10000000 01000000
 238    11101110    11000000 11000000 11000000 00000000
 239    11101111    11000000 11000000 11000000 01000000
 240    11110000    10000000 10000000 10000000 10000000
 241    11110001    10000000 10000000 10000000 11000000
 242    11110010    10000000 10000000 11000000 10000000
 243    11110011    10000000 10000000 11000000 11000000
 244    11110100    10000000 11000000 10000000 10000000
 245    11110101    10000000 11000000 10000000 11000000
 246    11110110    10000000 11000000 11000000 10000000
 247    11110111    10000000 11000000 11000000 11000000
 248    11111000    11000000 10000000 10000000 10000000
 249    11111001    11000000 10000000 10000000 11000000
 250    11111010    11000000 10000000 11000000 10000000
 251    11111011    11000000 10000000 11000000 11000000
 252    11111100    11000000 11000000 10000000 10000000
 253    11111101    11000000 11000000 10000000 11000000
 254    11111110    11000000 11000000 11000000 10000000
 255    11111111    11000000 11000000 11000000 11000000

Claims (12)

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.一种用来旋转含有8行×8列象素数据位的双态图象数据块的32位操作系统,包括:
用于从该块生成一个含有8行×8列象素数据位的中间矩阵的装置,其中该块的各行被分割和平移成一对四位列,横置地排列该块的相隔行,并且在该中间矩阵的该对四位列里该块的较低阶行置于较高阶行之上;
至少第一、第二、第三和第四32位处理机寄存器,该第一和该第三寄存器用于重复地保存该中间矩阵的前四行而该第二和该第四寄存器用于重复地保存该中间矩阵的另外四行;
把该第一和该第二寄存器沿相反的方向各移一位的装置;以及
把该第四寄存器的间隔位覆盖到该第一寄存器上和把该第三寄存器的间隔位覆盖到该第二寄存器上的装置。
10.根据权利要求9的系统,其特征在于该生成一个中间矩阵的装置包括至少一个查找表。
11.根据权利要求10的系统,其特征在于所述至少一个查找表包括多个查找表,每个查找表适用于为该块的至少一行生成一个4字节值。
12.根据权利要求9的系统,其特征在于用来生成一个中间矩阵的装置包括:
四个查找表,每个查找表适用于为该块的至少两个行生成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
CA2121402 1994-04-15
CA002121402A CA2121402C (en) 1994-04-15 1994-04-15 System for fast 90-degree rotation of bi-level images

Publications (2)

Publication Number Publication Date
CN1121224A CN1121224A (zh) 1996-04-24
CN1066834C true 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1329870C (zh) * 2002-09-18 2007-08-01 皇家飞利浦电子股份有限公司 任意形状图像的基于块的旋转

Families Citing this family (6)

* 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
JP4015890B2 (ja) * 2002-06-28 2007-11-28 松下電器産業株式会社 画素ブロックデータ生成装置および画素ブロックデータ生成方法
CN111754409B (zh) * 2019-03-27 2024-07-19 北京沃东天骏信息技术有限公司 图像处理方法、装置、设备和存储介质

Citations (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
US4837845A (en) * 1985-10-31 1989-06-06 International Business Machines Corporation Method for rotating a binary image
US5479525A (en) * 1993-07-19 1995-12-26 Matsushita Electric Industrial Co., Ltd. Method and apparatus for rotating a multivalued picture image 90 degrees

Patent Citations (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
US4837845A (en) * 1985-10-31 1989-06-06 International Business Machines Corporation Method for rotating a binary image
US5479525A (en) * 1993-07-19 1995-12-26 Matsushita Electric Industrial Co., Ltd. Method and apparatus for rotating a multivalued picture image 90 degrees

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1329870C (zh) * 2002-09-18 2007-08-01 皇家飞利浦电子股份有限公司 任意形状图像的基于块的旋转

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1293518C (zh) 具有割截与支援框线模式的三角形描绘方法与装置
CN1149421C (zh) 光学扫描器及所用的扫描透镜
CN1399243A (zh) 显示装置、显示方法及记录有显示控制程序的记录媒体
CN1136516C (zh) 图案抽取装置和方法
CN1167265C (zh) 图像通信系统及其方法
CN1162010C (zh) 图象译码设备和图象存储器
CN1271505C (zh) 用于进行图像检索的图像处理装置及方法
CN1645241A (zh) 摄影装置、图像处理装置、摄影装置的图像处理方法
CN1922630A (zh) 图象处理装置、图象处理系统、图象处理方法、图象处理程序及集成电路装置
CN1178461C (zh) 图像编码装置、图像译码装置、传真装置
CN1200571C (zh) 正交变换、逆正交变换方法及装置、编码、解码方法及装置
CN1577333A (zh) 图像处理装置、图像处理方法、其记录介质和程序
CN101040306A (zh) 伪随机数生成装置
CN1207896C (zh) 图象数据的压缩和恢复方法
CN1384385A (zh) 图象读取成象光学系统和使用它的图象读取装置
CN1083954A (zh) 文字数据、词符-插图数据的输入输出装置及其方法
CN1584930A (zh) 图像要素的布局装置、布局程序及布局方法
CN1066834C (zh) 快速90度旋转双态图象的系统
CN1253013C (zh) 预测装置、编码装置、逆预测装置、解码装置
CN1304617A (zh) 插值处理装置及记录插值处理程序的记录媒体
CN1437180A (zh) 显示方法及装置、滤波单元及处理方法、图像处理方法
CN1295310A (zh) 正交变换图像的分辨率变换装置和方法
CN1188912A (zh) 图像存储器存取方法、图像形成、保存装置及地址生成方法及装置
CN1302395C (zh) 图像处理方法以及图像处理装置
CN1440011A (zh) 图像显示方法、图像显示装置及显示装置

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