CN1066834C - 快速90度旋转双态图象的系统 - Google Patents
快速90度旋转双态图象的系统 Download PDFInfo
- 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
Links
- 239000011159 matrix material Substances 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 37
- 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
-
- 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
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位寄存器里。第一和第二寄存器按相反的方向各移动一位并且来自第四寄存器的相隔位动态地覆盖到第一寄存器里,同时来自第三寄存器的相隔位动态地覆盖到第四寄存器里。可以重复这些步骤以旋转具有大于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字节值覆盖到所述寄存器中的一个上的装置。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1329870C (zh) * | 2002-09-18 | 2007-08-01 | 皇家飞利浦电子股份有限公司 | 任意形状图像的基于块的旋转 |
Families Citing this family (6)
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)
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 |
-
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
Patent Citations (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 |
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)
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 |