CN1121224A - 快速90度旋转双态图象的系统 - Google Patents
快速90度旋转双态图象的系统 Download PDFInfo
- 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
Links
- 239000011159 matrix material Substances 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000012015 optical character recognition Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000009987 spinning Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
- G06T3/602—Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation 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
本发明涉及数字图象处理方法,并且更具体地涉及快速旋转双态图象的方法。
因为双态位图每象素只包含单个二进制位,双态图象(亦称为单色图象)是只具有两种明暗等级(通常为黑和白或者黑和绿)的图象。一个分辨率为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
其中A0、A1……、H6、H7分别代表构成该矩阵的双态象素。
行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 |
顺时针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和R2包含旋转后的8×8象素矩阵:
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 |
表DR1:
R2:
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 |
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:
R2:
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 |
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字节值覆盖到所述寄存器中的一个上的装置。
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)
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)
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)
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度回転方法及び装置 |
-
1994
- 1994-04-15 CA CA002121402A patent/CA2121402C/en not_active Expired - Fee Related
-
1995
- 1995-02-14 JP JP7025556A patent/JP2817771B2/ja not_active Expired - Lifetime
- 1995-03-09 EP EP95301554A patent/EP0677822A2/en not_active Withdrawn
- 1995-03-20 AU AU14903/95A patent/AU1490395A/en not_active Abandoned
- 1995-03-24 CN CN95103578A patent/CN1066834C/zh not_active Expired - Fee Related
- 1995-04-10 BR BR9501523A patent/BR9501523A/pt not_active Application Discontinuation
- 1995-04-14 KR KR1019950008770A patent/KR950029990A/ko not_active Application Discontinuation
Cited By (2)
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 |