JPS61156483A - 画像回転方法 - Google Patents
画像回転方法Info
- Publication number
- JPS61156483A JPS61156483A JP60263960A JP26396085A JPS61156483A JP S61156483 A JPS61156483 A JP S61156483A JP 60263960 A JP60263960 A JP 60263960A JP 26396085 A JP26396085 A JP 26396085A JP S61156483 A JPS61156483 A JP S61156483A
- Authority
- JP
- Japan
- Prior art keywords
- image
- run
- block
- output
- data
- 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
- 238000000034 method Methods 0.000 claims description 48
- 239000000872 buffer Substances 0.000 description 51
- 238000006243 chemical reaction Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 14
- 238000012360 testing method Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 5
- 239000012536 storage buffer Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- LXEPVHXXBMDAQC-UHFFFAOYSA-N OOOOOOOOOOOOOOOOOOOOOOOOOOO Chemical compound OOOOOOOOOOOOOOOOOOOOOOOOOOO LXEPVHXXBMDAQC-UHFFFAOYSA-N 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000000280 densification Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 235000020281 long black Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
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
- G06T3/606—Rotation of whole images or parts thereof by memory addressing or mapping
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
- Digital Computer Display Output (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
この発明はデジタル画像処理方法に関し、とくにコード
化画像を操作して回転させようとするものである。
化画像を操作して回転させようとするものである。
B、従来技術
]−ド化システム忙入力する際に、元画像を元の方位に
関して回転させるコード化画像データ処理方法について
は非常に多くの従来技術がある。
関して回転させるコード化画像データ処理方法について
は非常に多くの従来技術がある。
たとえばr BM Technical Discl
osureBulletin、Vol、13、A11、
P3267(1971年4月)に記載がある。
osureBulletin、Vol、13、A11、
P3267(1971年4月)に記載がある。
出力画像をラスク状に表示するようなアプリケーション
において、ラスク状の読み出しに適した処理対象画像デ
ータがストレージ中に直接保持されていないこともある
。すなわち2値ビツトの各々が元画像の画素すなわちベ
ル(Pel;Pixureelement)を表わして
いないことがある。たとえば画像データはラン・エンド
(runend)またはラン・レングス(run 1
eng1th ) の形態で記憶されているかもしれ
ない。すなわち2進コーデイングは元画像の黒および白
の間の遷移点を表わしている。ラン・レングス・コーデ
ィングにおいては、2進数が画像中の線分の黒セグメン
トおよび白セグメントの各々の広がシを表わしている。
において、ラスク状の読み出しに適した処理対象画像デ
ータがストレージ中に直接保持されていないこともある
。すなわち2値ビツトの各々が元画像の画素すなわちベ
ル(Pel;Pixureelement)を表わして
いないことがある。たとえば画像データはラン・エンド
(runend)またはラン・レングス(run 1
eng1th ) の形態で記憶されているかもしれ
ない。すなわち2進コーデイングは元画像の黒および白
の間の遷移点を表わしている。ラン・レングス・コーデ
ィングにおいては、2進数が画像中の線分の黒セグメン
トおよび白セグメントの各々の広がシを表わしている。
他方ラン・エンドゆコーディングにおいては2進数が線
分に沿う継続する遷移点を累積的に表わす。このような
表記はCCITT圧縮標準のような手順によシ高密度化
されるかもしれない。
分に沿う継続する遷移点を累積的に表わす。このような
表記はCCITT圧縮標準のような手順によシ高密度化
されるかもしれない。
このような高密度化手法の1つは米国特許出願第571
239号(特願昭59−263158号)に記載されて
いる。この方法にはエンコーダおよびデコーダの双方が
含まれる。このデコーダはコード化画像の個々の線のラ
ン・エンド表示を行うのに用いられる。
239号(特願昭59−263158号)に記載されて
いる。この方法にはエンコーダおよびデコーダの双方が
含まれる。このデコーダはコード化画像の個々の線のラ
ン・エンド表示を行うのに用いられる。
ラン表示形態にコード化された画像を回転させる手法の
1つにはつぎのようなものがあると考えられる。すなわ
ち、まずコード化画像をラン表示形態に変換する。この
変換には米国特許出願第567292号(特願昭59−
192756号)を用いる。このうち米国特許出願56
7214号(特願昭59−192755号)または米国
特許出願567293号(特願昭59−252113号
)の手順を用いてその場で画像を回転させる。
1つにはつぎのようなものがあると考えられる。すなわ
ち、まずコード化画像をラン表示形態に変換する。この
変換には米国特許出願第567292号(特願昭59−
192756号)を用いる。このうち米国特許出願56
7214号(特願昭59−192755号)または米国
特許出願567293号(特願昭59−252113号
)の手順を用いてその場で画像を回転させる。
これらの手法はそれ自体では有意義なものであるけれど
も、それらを組み合わせると非常な量のデータ移動が必
要となる。これらの多くは本来不要となるものかもしれ
ない。他の問題点はつぎのような事実から招来される。
も、それらを組み合わせると非常な量のデータ移動が必
要となる。これらの多くは本来不要となるものかもしれ
ない。他の問題点はつぎのような事実から招来される。
すなわち組み合わせて構成される手順は、全画像を含む
ほど大きくないブロックにストレージを割シ付けるシス
テムで使用するのに不適切にちがいないということであ
る。
ほど大きくないブロックにストレージを割シ付けるシス
テムで使用するのに不適切にちがいないということであ
る。
このようなシステムでは、画像をいくつかのブロックに
分けて配置しなければならず、その場で90° 回転さ
せるのに必要な再配置は極めて複雑なものとなる。この
結果、典型的な画像に関しては、画像をラスク形態に変
換するステップと画像のサブ・ユニット(たとえば8×
8ベル・ブロック)を再配置するステップとを組み合わ
せるほうがよυ効果的かもしれない。
分けて配置しなければならず、その場で90° 回転さ
せるのに必要な再配置は極めて複雑なものとなる。この
結果、典型的な画像に関しては、画像をラスク形態に変
換するステップと画像のサブ・ユニット(たとえば8×
8ベル・ブロック)を再配置するステップとを組み合わ
せるほうがよυ効果的かもしれない。
C0発明が解決しようとする問題点
この発明は、ラン・エンド・データまたはラン・レング
ス・データの変換および再配置を組み合わせ、こののち
データを順序換えし、またサブ・ユニットを回転させ、
これによシ元の画像方位に比して時計方向または反時計
方向に90° 回転させられたラスク形態の出力画像ま
たは1800 回転させられた出力画像を最終的に生成
するようなシステムを提供することを目的としている。
ス・データの変換および再配置を組み合わせ、こののち
データを順序換えし、またサブ・ユニットを回転させ、
これによシ元の画像方位に比して時計方向または反時計
方向に90° 回転させられたラスク形態の出力画像ま
たは1800 回転させられた出力画像を最終的に生成
するようなシステムを提供することを目的としている。
D1問題点を解決するだめの手段
この発明はラン表示の画像を取り出して、元の画像の方
位から90° の倍の角度だけ回転したラスク画像を生
成するという課題を解決する。この発明は、とくに、ラ
ン・エンドまたはラン・レングス形態で表示されている
元の画像データを変換して画像データを不連続なブロッ
クに分割してストアできるようにしている。たとえば、
時計方向に90° 回転させる際には、元の画像データ
中の行数をパディング処理(不要のものを付加する処理
)により80倍数とし、行の総数が8N(Nは整数)で
表わせるようにする。データの入力行または入力ライン
にもまたパディング処理を施こしてベルまたはビット数
が8で割れるようKする。
位から90° の倍の角度だけ回転したラスク画像を生
成するという課題を解決する。この発明は、とくに、ラ
ン・エンドまたはラン・レングス形態で表示されている
元の画像データを変換して画像データを不連続なブロッ
クに分割してストアできるようにしている。たとえば、
時計方向に90° 回転させる際には、元の画像データ
中の行数をパディング処理(不要のものを付加する処理
)により80倍数とし、行の総数が8N(Nは整数)で
表わせるようにする。データの入力行または入力ライン
にもまたパディング処理を施こしてベルまたはビット数
が8で割れるようKする。
つぎにこの画像データを、選定された幅Mの垂直条片に
概念上分割する。ここでMは、4NM(条片中ツバイト
数)がストレージ舎ブロックごとに利用可能なバイト数
と等しいかそれよシ小さくなるようなものである。通常
、画像の幅はちょうどMで割れることにはならないので
、最後の垂直条片の幅M”はM以下となる、つぎに元の
画像の垂直条片の各々を用意して独立に回転させ出力画
像の水平条片を生成する0回転処理を実行するには、ま
ずラン表示データをラスク形態に変換する。好ましくは
上述の米国特許出願第567292号の手法を用いるO
ただし、画像データの継続したバイトを連続したロケー
ションにストアするのでなく、各バイトをストレージ会
バッファ中に先行バイトから8Nのオフセットをもたせ
てストアする。
概念上分割する。ここでMは、4NM(条片中ツバイト
数)がストレージ舎ブロックごとに利用可能なバイト数
と等しいかそれよシ小さくなるようなものである。通常
、画像の幅はちょうどMで割れることにはならないので
、最後の垂直条片の幅M”はM以下となる、つぎに元の
画像の垂直条片の各々を用意して独立に回転させ出力画
像の水平条片を生成する0回転処理を実行するには、ま
ずラン表示データをラスク形態に変換する。好ましくは
上述の米国特許出願第567292号の手法を用いるO
ただし、画像データの継続したバイトを連続したロケー
ションにストアするのでなく、各バイトをストレージ会
バッファ中に先行バイトから8Nのオフセットをもたせ
てストアする。
所定の条片の第1行の第1バイトをストレージ・バッフ
ァの最初から8N−1のオフセット位fKストアする。
ァの最初から8N−1のオフセット位fKストアする。
第2行の第1バイトを8N−2のオフセット位置たスト
アする。同様にその条片の継続する行の各々につき第1
バイトのストア位置を1バイトずつ戻していく。得られ
た配列によれば、ストレージ・バッファの8個の連続し
たバイトに、回転させて配置すべき8×8ビツト・ブロ
ックを構成する8個のバイトが配置される。ストレージ
拳バッファはビット・ブロックの下位から上位へと読み
出していく。入力バイトの入れ換わった順序を補償する
適宜の修正を加えて、上述米国特許出願第567214
号の手法で用いたテーブル索引および加算手順を採用す
ることによリデータを簡易に取り出して回転させること
ができる。また得られた8バイトを出力バッファ中の適
切な場所に分配することができる。この方法による垂直
条片の回転を行うには画像条片と同一サイズのスクラッ
チ・バッファが必要である。
アする。同様にその条片の継続する行の各々につき第1
バイトのストア位置を1バイトずつ戻していく。得られ
た配列によれば、ストレージ・バッファの8個の連続し
たバイトに、回転させて配置すべき8×8ビツト・ブロ
ックを構成する8個のバイトが配置される。ストレージ
拳バッファはビット・ブロックの下位から上位へと読み
出していく。入力バイトの入れ換わった順序を補償する
適宜の修正を加えて、上述米国特許出願第567214
号の手法で用いたテーブル索引および加算手順を採用す
ることによリデータを簡易に取り出して回転させること
ができる。また得られた8バイトを出力バッファ中の適
切な場所に分配することができる。この方法による垂直
条片の回転を行うには画像条片と同一サイズのスクラッ
チ・バッファが必要である。
全画像を回転させるには、各ピット行をラン表示形態か
らラスタ形態へと変換する。そして得られたバイトを複
数のバッファへ分配する。バッファの各々は元の画像の
1つ垂直条片からのデータを含む。すべての行を変換し
たのち上述と同様にしてバッファの各々からのデータを
回転させてラスク読み出し用の出力画像の水平条片を生
成する。
らラスタ形態へと変換する。そして得られたバイトを複
数のバッファへ分配する。バッファの各々は元の画像の
1つ垂直条片からのデータを含む。すべての行を変換し
たのち上述と同様にしてバッファの各々からのデータを
回転させてラスク読み出し用の出力画像の水平条片を生
成する。
画像の各条片を独立に、かつ時を異にして処理するので
、1つの補助バッファを利用可能とするだけでよい。な
ぜならば第1バツフアからのデータを回転させて補助バ
ッファに入力させたのちには、第」バッファはもはや必
要でなく、そのため第2バツフアからのデータを回転さ
せて第1バツフアに入力させることができるからである
。第3バツフアからのデータは回転させられたのち第2
バツフアに入力される。以下同様である。
、1つの補助バッファを利用可能とするだけでよい。な
ぜならば第1バツフアからのデータを回転させて補助バ
ッファに入力させたのちには、第」バッファはもはや必
要でなく、そのため第2バツフアからのデータを回転さ
せて第1バツフアに入力させることができるからである
。第3バツフアからのデータは回転させられたのち第2
バツフアに入力される。以下同様である。
上述の手法は元の画像すなわち入力画像を900時計方
向に回転させてストレージに入れることができ、その回
転角度で印刷したり表示したシするようにもできる。反
時計方向の回転の機構は時計方向の回転に較べ細部で異
なるけれども、概念上相違はない。
向に回転させてストレージに入れることができ、その回
転角度で印刷したり表示したシするようにもできる。反
時計方向の回転の機構は時計方向の回転に較べ細部で異
なるけれども、概念上相違はない。
同様の180° 回転手法では、ラン表示の元の画像を
一時に1行読み出してラスタ形態に変換し、逆順でスト
レージに配置する。各行のビットの順序も逆にする。
一時に1行読み出してラスタ形態に変換し、逆順でスト
レージに配置する。各行のビットの順序も逆にする。
E、実施例
はじめに
この発明で処理される種類の画像のソースは、典型的に
は黒および白で表わされたテキストまたは画像あるいは
黒および白に変換可能な態様で表わされたテキストまだ
は画像を含む、書類その他の資料である。これら画像ソ
ースをたとえばラスタの態様で走査し、こののち必要に
応じてしきい値処理を施こし、2値画像を生成する。こ
の2値画像にはたとえば周知のCCITT標準に応じた
適宜のコード化が行われる。こののちコード化画像は記
憶される。または伝送され、デコードされ、たとえば電
話会議システムにおいて表示される。
は黒および白で表わされたテキストまたは画像あるいは
黒および白に変換可能な態様で表わされたテキストまだ
は画像を含む、書類その他の資料である。これら画像ソ
ースをたとえばラスタの態様で走査し、こののち必要に
応じてしきい値処理を施こし、2値画像を生成する。こ
の2値画像にはたとえば周知のCCITT標準に応じた
適宜のコード化が行われる。こののちコード化画像は記
憶される。または伝送され、デコードされ、たとえば電
話会議システムにおいて表示される。
この場合伝送手段は電話回線である。受信データにはラ
ン・エンドまたはラン会レングスでのデコードが可能で
ある。2値ラン・エンド・データをラスタ形態に変換す
るには、ビットを生成し、1本の線のデータ中のビット
の各々が出方画像中の継続する白または黒のベルを表わ
すようにする必要がある。
ン・エンドまたはラン会レングスでのデコードが可能で
ある。2値ラン・エンド・データをラスタ形態に変換す
るには、ビットを生成し、1本の線のデータ中のビット
の各々が出方画像中の継続する白または黒のベルを表わ
すようにする必要がある。
ラン拳エンドの画像からラスタ画像を生成するのに適し
たシステムは先に触れたように米国特許出願56729
2号(特願昭59−192756号)に記載されている
。この出願のシステムはラスタ画像を生成し、このうち
米国特許出願567214号(特願昭59−19275
5号)および567295号(%願昭59−25211
5号)の回転アルゴリズムを用いてその場所でまたは他
の場所でラスタ画像を回転させることができる。
たシステムは先に触れたように米国特許出願56729
2号(特願昭59−192756号)に記載されている
。この出願のシステムはラスタ画像を生成し、このうち
米国特許出願567214号(特願昭59−19275
5号)および567295号(%願昭59−25211
5号)の回転アルゴリズムを用いてその場所でまたは他
の場所でラスタ画像を回転させることができる。
この発明はこれらの手順をっぎの点で改良したものであ
る。第1に、この発明は膨大な量のデータ再配置を除去
するという点である。第2に、単一の大容量のメモリ・
ブロックを占有するのでなく、多数の小容量メモリ・ブ
ロックを占有するような画像を生成するのに用いること
ができるという点である。ストレージを小さなメモリ片
に割シ付け、そのため全画像に対し回転機能の1つを適
用するのに十分な大きさの連続ストレージをなすブロッ
クを得るのが実際的でないようなプロセッサ上で上述の
手順を実現するときには、上述第2の考慮が重要となる
。この発明は、画像が当初はラスク状でないということ
を利用し、回転処理に必要な再配置の一部を、ラスク画
像生成プロセスで行えるようにするものである。
る。第1に、この発明は膨大な量のデータ再配置を除去
するという点である。第2に、単一の大容量のメモリ・
ブロックを占有するのでなく、多数の小容量メモリ・ブ
ロックを占有するような画像を生成するのに用いること
ができるという点である。ストレージを小さなメモリ片
に割シ付け、そのため全画像に対し回転機能の1つを適
用するのに十分な大きさの連続ストレージをなすブロッ
クを得るのが実際的でないようなプロセッサ上で上述の
手順を実現するときには、上述第2の考慮が重要となる
。この発明は、画像が当初はラスク状でないということ
を利用し、回転処理に必要な再配置の一部を、ラスク画
像生成プロセスで行えるようにするものである。
なお、回転させられた画像が大きな領域の連続したスト
レージを占め、上述した手順を組み合わせて用いること
ができたとしても、この発明を適用して2つのステップ
を同時に実行する方が多くの場合一層効率的であろう。
レージを占め、上述した手順を組み合わせて用いること
ができたとしても、この発明を適用して2つのステップ
を同時に実行する方が多くの場合一層効率的であろう。
180° の市松の場合、全画像を内包するのに十分な
大きさの1つのブロックを出力ブロックのリストが有す
ると規定することにより、このことが実行できる。この
ようなアプローチは90° の回転の場合にも良好な結
果を与えることとなる。しかし1つの特殊ブロックが必
要であり、かつすべてブロックが同一サイズと仮定され
ているので、このアプローチでは画像の2つのコピーを
行うのに十分なストレージが必要であろう。ストレージ
上の要請を削減するには、回転させられた画像用に割り
付けられたストレージ領域を多数の小ブロックに分割す
るとよい。これらブロックの各々は回転させられた画像
のちょうど8K(Kは整数)本の線を含むに十分な大き
さを有する。また最終ブロックでは残余スペースが生じ
るかもしれないけれども、他のブロックでは残余スペー
スは、皆無である。所望の補助ブロックはより小さなも
のとなるであろう。
大きさの1つのブロックを出力ブロックのリストが有す
ると規定することにより、このことが実行できる。この
ようなアプローチは90° の回転の場合にも良好な結
果を与えることとなる。しかし1つの特殊ブロックが必
要であり、かつすべてブロックが同一サイズと仮定され
ているので、このアプローチでは画像の2つのコピーを
行うのに十分なストレージが必要であろう。ストレージ
上の要請を削減するには、回転させられた画像用に割り
付けられたストレージ領域を多数の小ブロックに分割す
るとよい。これらブロックの各々は回転させられた画像
のちょうど8K(Kは整数)本の線を含むに十分な大き
さを有する。また最終ブロックでは残余スペースが生じ
るかもしれないけれども、他のブロックでは残余スペー
スは、皆無である。所望の補助ブロックはより小さなも
のとなるであろう。
この発明の良好な実施例では、元の(入力)画像のラン
表示形態は一連のバッファに含まれるものとしている。
表示形態は一連のバッファに含まれるものとしている。
バック71個は画像データの1本の線すなわち行に対応
する。説明の便宜上、各バッファが一連の半ワードを有
するものとする。半ワードはラン・エンド・データを有
する。当業者にとっては日常的な設計変更でラン・レン
グス表示を用いるようにできることは明らかであろう。
する。説明の便宜上、各バッファが一連の半ワードを有
するものとする。半ワードはラン・エンド・データを有
する。当業者にとっては日常的な設計変更でラン・レン
グス表示を用いるようにできることは明らかであろう。
ラン・エンド・データ半ワード中の16ビツトは32K
tでの幅を有する画像を正の変位として表示するのに適
切である。各ライン・バッファ中の第1半ワードはラン
・エンド・データのバイト数に計数値(バッファ中のデ
ータの総バイト数)用の2バイトを足しだ数を表わす。
tでの幅を有する画像を正の変位として表示するのに適
切である。各ライン・バッファ中の第1半ワードはラン
・エンド・データのバイト数に計数値(バッファ中のデ
ータの総バイト数)用の2バイトを足しだ数を表わす。
これに続いて3個のゼロのラン・エンド、任意の数の対
をなす白φ黒ラン・エンドおよび最終黒ラン・エンドの
2個の付加的なコピーが配される。画像行が黒ランで始
まれば、最初の白ラン・エンドはゼロとして記述される
。画像行が白ランで終ると、最終の黒ラン・エンドは最
終の白ラン・エンドと同一とされる。このため最終の実
際のラン・エンドについて5つのコピーが存在すること
になる。たとえばの半ワード・エントリをラン拳エンド
バッファが有していると、これはつぎのようなドツト画
像に対応する。
をなす白φ黒ラン・エンドおよび最終黒ラン・エンドの
2個の付加的なコピーが配される。画像行が黒ランで始
まれば、最初の白ラン・エンドはゼロとして記述される
。画像行が白ランで終ると、最終の黒ラン・エンドは最
終の白ラン・エンドと同一とされる。このため最終の実
際のラン・エンドについて5つのコピーが存在すること
になる。たとえばの半ワード・エントリをラン拳エンド
バッファが有していると、これはつぎのようなドツト画
像に対応する。
oooooooo oooooooo ooooooo
o ooooooo。
o ooooooo。
1010[10001000111111111111
11110001上述のようなラン・エンド・データは
種々のソースから得ることができる。たとえば米国特許
出願第571239号のデコーダはラン・エンドの
゛形態で画像ラインの表示を行う。米国特許出願第56
7218号のラスタeデータからラン表示形態への変換
方法も同様である。データは1時に1本のラインずつこ
の発明の装置に供給できる。この発明では、回転すべき
画像の多重ライン(ラン表示形態のライン)を同時に利
用可能にしておく必要がない。この発明でラン表示デー
タをラスク形態に変換する際には、ラン表示データの生
成を変換と交鎖させて行うことができる。
11110001上述のようなラン・エンド・データは
種々のソースから得ることができる。たとえば米国特許
出願第571239号のデコーダはラン・エンドの
゛形態で画像ラインの表示を行う。米国特許出願第56
7218号のラスタeデータからラン表示形態への変換
方法も同様である。データは1時に1本のラインずつこ
の発明の装置に供給できる。この発明では、回転すべき
画像の多重ライン(ラン表示形態のライン)を同時に利
用可能にしておく必要がない。この発明でラン表示デー
タをラスク形態に変換する際には、ラン表示データの生
成を変換と交鎖させて行うことができる。
最も単純な回転は180° の回転である。変換手順を
適宜に修正し、処理手順を変更すれば、画像をラスタ形
態に変換するのに必要な処理量とほぼ等価な処理量で1
80° の回転操作を実行できる。ラン表現の画像をラ
スタ形態に変換する際には、通常、回転されられた(出
力)画像用に割り付けられたストレージの最初にポイン
タが付される。入力画像の第1のラインを得ると、ラン
・エンド・バッファが左から右へ読み出され、このとき
出力画像中に左から右にランが埋め込まれていく。つぎ
にポインタが出力画像の第2ラインの最初をアドレスし
て、つぎのラインが変換される。
適宜に修正し、処理手順を変更すれば、画像をラスタ形
態に変換するのに必要な処理量とほぼ等価な処理量で1
80° の回転操作を実行できる。ラン表現の画像をラ
スタ形態に変換する際には、通常、回転されられた(出
力)画像用に割り付けられたストレージの最初にポイン
タが付される。入力画像の第1のラインを得ると、ラン
・エンド・バッファが左から右へ読み出され、このとき
出力画像中に左から右にランが埋め込まれていく。つぎ
にポインタが出力画像の第2ラインの最初をアドレスし
て、つぎのラインが変換される。
以降入力画像および出力画像の双方につき、上から下へ
と処理が続けられる。
と処理が続けられる。
ラスタへの変換と同時に180° の回転を行うために
は、上述のプロセスの一部を反転させる。
は、上述のプロセスの一部を反転させる。
ポインタはまず出力画像用に割り付けられたストレージ
の終端に配される。入力画像の最初のラインが得られる
。ラン・エンド・バッファは左から右へと読み出される
けれども、ランは出力画像中に右から左へと埋め込まれ
る。これによりラン・エンド・バッファによシ規定され
たラインのビット・パターンが反転させられる。つぎに
出力ポインタが最後から2番目の出力ラインの終端に配
され、第2の入力ラインが得られ、同様にしてラスタ形
態に変換される。このプロセスが同様に継続される。こ
の際処理は出力画像の最上部に向かって行われ、同時に
入力画像の底部に向かって行われる。画像を変換および
回転させて多重ブロックのストレージに入れる場合には
、出力ポインタがブロックの最初にくるたび出力ポイン
タを再配置しなければならない。
の終端に配される。入力画像の最初のラインが得られる
。ラン・エンド・バッファは左から右へと読み出される
けれども、ランは出力画像中に右から左へと埋め込まれ
る。これによりラン・エンド・バッファによシ規定され
たラインのビット・パターンが反転させられる。つぎに
出力ポインタが最後から2番目の出力ラインの終端に配
され、第2の入力ラインが得られ、同様にしてラスタ形
態に変換される。このプロセスが同様に継続される。こ
の際処理は出力画像の最上部に向かって行われ、同時に
入力画像の底部に向かって行われる。画像を変換および
回転させて多重ブロックのストレージに入れる場合には
、出力ポインタがブロックの最初にくるたび出力ポイン
タを再配置しなければならない。
つぎに1800 の回転を行うだめの良好な実施例を第
1図および第2図を参照して説明しよう。
1図および第2図を参照して説明しよう。
この実施例では、出力画像がストレージ中の1またはそ
れ以上のブロックを占め、各ブロックがいくつかの完結
した画像ラインを含み、部分的な画像ラインを含まない
ものとする。個々のブロック中に配されるべき画像デー
タのバイト数を関数NB (Number of
Bytes :バイト数)によシ与える。この手順で用
いられる変数はっぎのようなものである。
れ以上のブロックを占め、各ブロックがいくつかの完結
した画像ラインを含み、部分的な画像ラインを含まない
ものとする。個々のブロック中に配されるべき画像デー
タのバイト数を関数NB (Number of
Bytes :バイト数)によシ与える。この手順で用
いられる変数はっぎのようなものである。
BLKPTRブロック・アドレスのリストへのポインタ
BLKPT BLKPTRによりアドレスされた
ポインタ。これはプロ ツクをポイントする。
ポインタ。これはプロ ツクをポイントする。
LAST 現在作られている出力バイトへのポ
インタ RPTR現在変換されている白黒ラン 拳エンド対へのポインタ WHITEEND RPTRによりアドレスされた白
ラン・エンド BLACKEND RPTRにょシアドレスされた黒
ラン舎エンド REND 変換されているランのラン・エンド CUM 作られている出力バイトB ITS
値が決定済みであるけれどいまだストアされ
ていない画像 ベル(ピット)の数 LASTBYTE LASTによりアドレスされた出
力バイト IC1ラインごとのピット数(8 の倍数に仮定されている) T 一時的な値 2つのテーブル5BLACKSおよびEBLACKSが
変換のために用いられる。これらテーブルの各々は8つ
のエントリを有し、これらエントリにO〜7までのイン
デックスを付している。16進法ではエントリはつぎの
とおりである。
インタ RPTR現在変換されている白黒ラン 拳エンド対へのポインタ WHITEEND RPTRによりアドレスされた白
ラン・エンド BLACKEND RPTRにょシアドレスされた黒
ラン舎エンド REND 変換されているランのラン・エンド CUM 作られている出力バイトB ITS
値が決定済みであるけれどいまだストアされ
ていない画像 ベル(ピット)の数 LASTBYTE LASTによりアドレスされた出
力バイト IC1ラインごとのピット数(8 の倍数に仮定されている) T 一時的な値 2つのテーブル5BLACKSおよびEBLACKSが
変換のために用いられる。これらテーブルの各々は8つ
のエントリを有し、これらエントリにO〜7までのイン
デックスを付している。16進法ではエントリはつぎの
とおりである。
5BLACKS:FF FE FCF8 FOE
OCo 80 EBLACKS:00 01 03 07 0F I
F 6F 7F SBLACKを用いていくつかの白ベルののちの黒ラン
を開始させる(この白ベルは出力バイトの下位ピットに
配されている。なぜならばラスタ・データは左から右へ
と作られるからである)。
OCo 80 EBLACKS:00 01 03 07 0F I
F 6F 7F SBLACKを用いていくつかの白ベルののちの黒ラン
を開始させる(この白ベルは出力バイトの下位ピットに
配されている。なぜならばラスタ・データは左から右へ
と作られるからである)。
また、この5BLACKを用いて第1(下位)ピットを
のぞくすべてのビットの変換を行う。インデックスは変
化すべきでないビットの数を表わす、BBLACKを用
いて黒ランの終端を作る。この場合も、ラン中のベルは
出力バイトの下位ビットを占める。
のぞくすべてのビットの変換を行う。インデックスは変
化すべきでないビットの数を表わす、BBLACKを用
いて黒ランの終端を作る。この場合も、ラン中のベルは
出力バイトの下位ビットを占める。
第1図は180° の回転用の制御コードを示す。
ブロック・リストの最終部分、すなわち出力画像の最終
ラインを含むブロックのアドレスが、アドレスされ、こ
ののちLASTが配されて出力データを含む領域の最終
バイトをポイントする。長い黒ランが変換されたときに
は出力領域がゼロとされて出力領域がゼロ・バイトをス
トアする必要がない。
ラインを含むブロックのアドレスが、アドレスされ、こ
ののちLASTが配されて出力データを含む領域の最終
バイトをポイントする。長い黒ランが変換されたときに
は出力領域がゼロとされて出力領域がゼロ・バイトをス
トアする必要がない。
こののちラインを変換するループに入る。新しいラン・
エンド・バッファが得られる。この時点で、ラン・エン
ド・バッファを調べて、ラン・エンド・バッファが正し
い個数のビットを含むラインを記述しているかどうかを
確かめることが望ましい。つぎにRPTRがセットされ
て最初の白黒ラン・エンド対をアドレスする。RPTR
は8バイトのオフセットでバッファに入力される。ライ
ンはラスク形態に変換され、バイトの各々がストアされ
るたびにポインタLASTが減分される。
エンド・バッファが得られる。この時点で、ラン・エン
ド・バッファを調べて、ラン・エンド・バッファが正し
い個数のビットを含むラインを記述しているかどうかを
確かめることが望ましい。つぎにRPTRがセットされ
て最初の白黒ラン・エンド対をアドレスする。RPTR
は8バイトのオフセットでバッファに入力される。ライ
ンはラスク形態に変換され、バイトの各々がストアされ
るたびにポインタLASTが減分される。
ライン変換が完了したのち、LASTは現行ブロックの
開始アドレスに比較される。LASTのほうが大きけれ
ば、現行ブロックにさらにラインを変換する余地がある
。このため以上のループが繰シ返される。そうでない場
合は他のブロックを得てLASTをリセットする必要が
ある。やがて出力ブロックのすべてが画像データで満た
されたかどうかをテストする。満たされていれば処理を
完了させる。そうでなければBLKPTRを変更して先
行出力ブロックをアドレスし、LASTをリセットして
そのブロックのデータ領域の最後のバイトをポイントす
る。そしてこのブロック中のデータ領域をクリアしてラ
イン変換のループを再度開始する。
開始アドレスに比較される。LASTのほうが大きけれ
ば、現行ブロックにさらにラインを変換する余地がある
。このため以上のループが繰シ返される。そうでない場
合は他のブロックを得てLASTをリセットする必要が
ある。やがて出力ブロックのすべてが画像データで満た
されたかどうかをテストする。満たされていれば処理を
完了させる。そうでなければBLKPTRを変更して先
行出力ブロックをアドレスし、LASTをリセットして
そのブロックのデータ領域の最後のバイトをポイントす
る。そしてこのブロック中のデータ領域をクリアしてラ
イン変換のループを再度開始する。
第2図は1本のラン・エンド拳データを反転ラスク形態
に変換するのに用いる処理を示す。始めに、先行ラン・
エンド、現行出力バイトおよびビット・カウントがすべ
てゼロとされる。白ランを変換するために、BITSを
白ランの長さくWRITEENDとそのまえの黒ラン・
エンドRENDと差)だけ増分し、白ラン・エンドをR
END中に配置する。総ビット・カウントが8に満たな
ければ、未決定ビットが黒ビットとされて制御が黒ラン
変換用のコード部分に移管される。総ピット・カウント
が8以上であれば、現行の出力バイトがストアされ、L
ASTが元に戻されて先行出力バイトをアドレスする。
に変換するのに用いる処理を示す。始めに、先行ラン・
エンド、現行出力バイトおよびビット・カウントがすべ
てゼロとされる。白ランを変換するために、BITSを
白ランの長さくWRITEENDとそのまえの黒ラン・
エンドRENDと差)だけ増分し、白ラン・エンドをR
END中に配置する。総ビット・カウントが8に満たな
ければ、未決定ビットが黒ビットとされて制御が黒ラン
変換用のコード部分に移管される。総ピット・カウント
が8以上であれば、現行の出力バイトがストアされ、L
ASTが元に戻されて先行出力バイトをアドレスする。
バイトがストアされるたびにビット・カウントは8だけ
減分される。ビット・カウントが依然8未満でないのな
らば、出力ランは1以上の白(ゼロ)バイトを含むにち
がいない。ライン変換に先だって出力領域がクリアされ
るので、ゼロのバイトをストアする必要はない。適宜な
程度だけLASTを戻してゼロのバイトを飛び越し、か
つ飛び越したビット数だけビット・カウントを減少させ
ることだけが必要である。
減分される。ビット・カウントが依然8未満でないのな
らば、出力ランは1以上の白(ゼロ)バイトを含むにち
がいない。ライン変換に先だって出力領域がクリアされ
るので、ゼロのバイトをストアする必要はない。適宜な
程度だけLASTを戻してゼロのバイトを飛び越し、か
つ飛び越したビット数だけビット・カウントを減少させ
ることだけが必要である。
ツキに現行出力バイトがセットされ、ビット・カウント
により定められる数の先行(すなわち下位)のゼロを含
むことになる。なお残シは黒のビットである。
により定められる数の先行(すなわち下位)のゼロを含
むことになる。なお残シは黒のビットである。
黒ランを変換するには、BITSが黒ラン(BLACK
ENDとRENDにストアされている。
ENDとRENDにストアされている。
BLACKEND以前の白ランとの差)の長さだけ増分
する。黒ラン・エンドがRENDに配されたのチ、ラン
・エンド曝バッファ会ポインタRPTRが増分されてつ
ぎの白黒ラン・エンド対に対してポイントを行う。ビッ
ト・カウントが8未満であれば、RENDをテストして
ラインの終端へ達したかどうかを調べる。ラインの終端
に達していれば、ビット・カウントはゼロであり(ライ
ンの幅は80倍数と仮定されているから)、シたがって
ストアするデータはそれ以上なく、ライン変換が終了す
る。ラインの終端に達していなければ、未決定の出力ビ
ットが反転されてこれらがゼロ(白)になる。そしてこ
ののち制御が白ラン変換コードに移管される。
する。黒ラン・エンドがRENDに配されたのチ、ラン
・エンド曝バッファ会ポインタRPTRが増分されてつ
ぎの白黒ラン・エンド対に対してポイントを行う。ビッ
ト・カウントが8未満であれば、RENDをテストして
ラインの終端へ達したかどうかを調べる。ラインの終端
に達していれば、ビット・カウントはゼロであり(ライ
ンの幅は80倍数と仮定されているから)、シたがって
ストアするデータはそれ以上なく、ライン変換が終了す
る。ラインの終端に達していなければ、未決定の出力ビ
ットが反転されてこれらがゼロ(白)になる。そしてこ
ののち制御が白ラン変換コードに移管される。
黒ラン長を付加するとビット・カウントが8まだはそれ
以上になる場合には、CUM中の完結した出力バイトを
ストアし、LASTを戻してつぎのバイトをアドレスし
、さらに8ピントをストアするたびにBITSを8だけ
減分する。BITSが依然8″またはそれ以上であれば
、数個の黒(X′FF’)バイトを出力画像中に配さな
くてはならない。1個の黒バイトをストアし、LAST
を戻し、さらにBITSを減分する。BITSが8未満
になるまでこのサイクルを繰り返す。つぎに黒ラン・エ
ンド値をテストしてラインの終端に達したかどうかを決
定する。もしラインの終端に達しだならば処理が終了す
る。そうでなければ新しい出力バイトCUMの先行ビッ
トを黒にし、こののち制御をつぎの白ラン・エンドの変
換コードに移管する。
以上になる場合には、CUM中の完結した出力バイトを
ストアし、LASTを戻してつぎのバイトをアドレスし
、さらに8ピントをストアするたびにBITSを8だけ
減分する。BITSが依然8″またはそれ以上であれば
、数個の黒(X′FF’)バイトを出力画像中に配さな
くてはならない。1個の黒バイトをストアし、LAST
を戻し、さらにBITSを減分する。BITSが8未満
になるまでこのサイクルを繰り返す。つぎに黒ラン・エ
ンド値をテストしてラインの終端に達したかどうかを決
定する。もしラインの終端に達しだならば処理が終了す
る。そうでなければ新しい出力バイトCUMの先行ビッ
トを黒にし、こののち制御をつぎの白ラン・エンドの変
換コードに移管する。
90° の回転は180° の回転に較べいくぶん複雑
である。なぜならば、操作されるべき基本ユニットが、
バイト(−次元)でなく、8X8のビット・ブロック(
2次元)であるからである。また、出力画像がいくつか
のブロックに分割されるならば、入力ラインの各々から
のデータを出力プロツクのすべてにわたって分割しなけ
ればならないからである。90° の回転を行うに際し
2つのステップを利用すれば便利である。第1のステッ
プではラン・エンド−データを中間的なラスタ・フォー
マットに変換し、出力ブロックの各々のラスタeデータ
をユニットとしてストアする。第2のステップでは8×
8ピツトからなるブロックを回転させて出力画像を構成
する。以下説明されるブロックでは出力ブロックはすべ
て同一サイズとし、1個の特殊ブロックが一時ストレー
ジ用に設けられるものとする。
である。なぜならば、操作されるべき基本ユニットが、
バイト(−次元)でなく、8X8のビット・ブロック(
2次元)であるからである。また、出力画像がいくつか
のブロックに分割されるならば、入力ラインの各々から
のデータを出力プロツクのすべてにわたって分割しなけ
ればならないからである。90° の回転を行うに際し
2つのステップを利用すれば便利である。第1のステッ
プではラン・エンド−データを中間的なラスタ・フォー
マットに変換し、出力ブロックの各々のラスタeデータ
をユニットとしてストアする。第2のステップでは8×
8ピツトからなるブロックを回転させて出力画像を構成
する。以下説明されるブロックでは出力ブロックはすべ
て同一サイズとし、1個の特殊ブロックが一時ストレー
ジ用に設けられるものとする。
第3図は元の画像を時計方向に回転操作して、不連続な
ブロックに分割された出力画像を生成する場合を示す。
ブロックに分割された出力画像を生成する場合を示す。
元の画像の行数はパディング処理(不要なものをつめ込
む処理)により8の倍数とされる。これにより行の総数
は8N(Nは整数)で表わされる。各入力ラインには8
で割れる数のベルが含まれていると仮定する。画像は概
念上所定の幅Mの垂直条片(図でA、B、CおよびDに
表わされる)に分割される。ここでMは8NM(条片中
のバイト数)が出力ブロックの各々につき利用可能なバ
イト数と等しいか少ないようなバイト数である。一般に
画像の幅はMで等間隔に分割できないので、最後の垂直
条片はMに等しいか小さい幅M′を有する。元の画像の
垂直条片の各々は独立に回転させられて出力画像の水平
条片を生成する。
む処理)により8の倍数とされる。これにより行の総数
は8N(Nは整数)で表わされる。各入力ラインには8
で割れる数のベルが含まれていると仮定する。画像は概
念上所定の幅Mの垂直条片(図でA、B、CおよびDに
表わされる)に分割される。ここでMは8NM(条片中
のバイト数)が出力ブロックの各々につき利用可能なバ
イト数と等しいか少ないようなバイト数である。一般に
画像の幅はMで等間隔に分割できないので、最後の垂直
条片はMに等しいか小さい幅M′を有する。元の画像の
垂直条片の各々は独立に回転させられて出力画像の水平
条片を生成する。
第4図は元の画像の1本の垂直条片を(時計方向に)回
転させる場合を示す。入力画像条片を左がわに示す。小
さな四角の各々は8×8の画像サブ・ユニットを示す。
転させる場合を示す。入力画像条片を左がわに示す。小
さな四角の各々は8×8の画像サブ・ユニットを示す。
この画像はラスタ・データでなくラン表示形態であるこ
とを想い出して欲しい。元の画像はラスタ形態に変換さ
れ、ラスタ形態では2番目の矩形で示されるストレージ
にバイトが配置される。上述の米国特許出願56729
2号のようにあるいは他の便利な手法で画像を変換する
こともできる。ただし、継続するバイトを連続したロケ
ーションにストアするのでなく、各バイトを先行バイト
に対゛して8Nのオフセットでストアする。最初の行の
最初のバイトはバッファの始めから8N−1のオフセッ
トでストアする。
とを想い出して欲しい。元の画像はラスタ形態に変換さ
れ、ラスタ形態では2番目の矩形で示されるストレージ
にバイトが配置される。上述の米国特許出願56729
2号のようにあるいは他の便利な手法で画像を変換する
こともできる。ただし、継続するバイトを連続したロケ
ーションにストアするのでなく、各バイトを先行バイト
に対゛して8Nのオフセットでストアする。最初の行の
最初のバイトはバッファの始めから8N−1のオフセッ
トでストアする。
第2行の畢初のバイトは8N−2のオフセットでストア
する。以降の行の各々ごとに第1バイトをストアする位
置は1バイトずつ戻っていく。この結果、回転させられ
るべき8×8ビツトのブロックを構成する8バイトはバ
ッファの8つの連続したバイトにストアされ、ブロック
の下から上へと読み出されていく。このデータは上述の
米国特許出願第567214号のテーブル検索−付加平
頭または他の適宜な手法を用いて簡単に取り出すことが
できる。そして得られた8バイトは出力画像バッファ中
の適切な場所に分配することができる。
する。以降の行の各々ごとに第1バイトをストアする位
置は1バイトずつ戻っていく。この結果、回転させられ
るべき8×8ビツトのブロックを構成する8バイトはバ
ッファの8つの連続したバイトにストアされ、ブロック
の下から上へと読み出されていく。このデータは上述の
米国特許出願第567214号のテーブル検索−付加平
頭または他の適宜な手法を用いて簡単に取り出すことが
できる。そして得られた8バイトは出力画像バッファ中
の適切な場所に分配することができる。
画像の垂直条片をこの手法で回転させるには画像条片と
同サイズのスクラッチ・バッファが必要である。
同サイズのスクラッチ・バッファが必要である。
全画像を回転させるには、各ラインをラスタ形態に変換
する。そして得られたバイトをいくつかのバッファに分
配する。バッファの各々は元の画像の垂直条片の1つか
ら得たデータを含む。すべてのラインを変換したのち、
各バッファからのデ−タは上述のようにして回転させら
れ出力画像の水平条片を形成する。画像の条片の各々は
独立に(かつ時を異にして)処理されるので、たった1
つの補助バッファを利用可能であればよい。1つのバッ
ファからのデータを回転させて補助バッファに入力した
のちは、第1のバッファはもはや必要でなく、シたがっ
て他のバッファからのデータを回転させて第1のバッフ
ァに入力することができる。
する。そして得られたバイトをいくつかのバッファに分
配する。バッファの各々は元の画像の垂直条片の1つか
ら得たデータを含む。すべてのラインを変換したのち、
各バッファからのデ−タは上述のようにして回転させら
れ出力画像の水平条片を形成する。画像の条片の各々は
独立に(かつ時を異にして)処理されるので、たった1
つの補助バッファを利用可能であればよい。1つのバッ
ファからのデータを回転させて補助バッファに入力した
のちは、第1のバッファはもはや必要でなく、シたがっ
て他のバッファからのデータを回転させて第1のバッフ
ァに入力することができる。
つぎに時計方向の回転手順を第5図〜第9図を参照して
詳細に説明する。使用される変数はつぎのとおりである
。
詳細に説明する。使用される変数はつぎのとおりである
。
BLKPTRブロック・アドレスのリストへのポイ/り
BLKPT BLKPTRによりアドレスされた
ポインタ:これはプロ ツクをポイントする。
ポインタ:これはプロ ツクをポイントする。
0FFSET 変換されているラインの最初のバイ
トをストアすべきプロ ツクの、開始点からのオフセ ット RPTR現在変換されている白黒ラン ・エンド対へのポインタ WHITEEND RPTRによりアドレスされた白
ラン・エンド BLACKEND RPTRによシアドレスされた黒
ラン・エンド LCOL 現行ブロックにストアされるベキ最
終ビットの、開始点か らのビット・オフセット LAST 現在作られている出力バイトへのポ
インタ REND 変換されているランのラン・エンド CUM 作られている出力バイトBITS
値が決定済みであるけれど、いまだストアされ
ていない画 像ベル(ビット)の数 NLINES 出力ブロックあたりの出力ライン数
。80倍数に仮定され ている。
トをストアすべきプロ ツクの、開始点からのオフセ ット RPTR現在変換されている白黒ラン ・エンド対へのポインタ WHITEEND RPTRによりアドレスされた白
ラン・エンド BLACKEND RPTRによシアドレスされた黒
ラン・エンド LCOL 現行ブロックにストアされるベキ最
終ビットの、開始点か らのビット・オフセット LAST 現在作られている出力バイトへのポ
インタ REND 変換されているランのラン・エンド CUM 作られている出力バイトBITS
値が決定済みであるけれど、いまだストアされ
ていない画 像ベル(ビット)の数 NLINES 出力ブロックあたりの出力ライン数
。80倍数に仮定され ている。
LASTBYTE LASTによシアドレスされた出
力バイト IR入力画像のライン数 IC入力画像ラインあたりのピッ ト数 OC出力画像ラインあたりのビッ ト数 I PTR回転させられるべき中間ラスタ・データへの
ポインタ 0PTR出力画像バッファへのポイン タ LIM 回転ステップ中の8ラインからなる
1グループに対する入 カデータの終端へのポインタ MAX 回転ステップ中のブロックのデータ
の終端へのポインタ T 一時点な値 テーブル5BLAC,KSおよびEBLACKSは18
0° の回転で用いたものと逆のものになっている。画
像ラインのラスタ・データは反転すべきでないからであ
る。
力バイト IR入力画像のライン数 IC入力画像ラインあたりのピッ ト数 OC出力画像ラインあたりのビッ ト数 I PTR回転させられるべき中間ラスタ・データへの
ポインタ 0PTR出力画像バッファへのポイン タ LIM 回転ステップ中の8ラインからなる
1グループに対する入 カデータの終端へのポインタ MAX 回転ステップ中のブロックのデータ
の終端へのポインタ T 一時点な値 テーブル5BLAC,KSおよびEBLACKSは18
0° の回転で用いたものと逆のものになっている。画
像ラインのラスタ・データは反転すべきでないからであ
る。
5BLACKS:FF 7F 3F IF O
F 07 03 01 EBLACKS:00 80 COEOFOF8
FCFE 第5図は時計方向に90° 回転させる制御コードを示
す。0FFSETは行数より1だけ小さい値に初期化さ
れる。この結果0FFSETを1行あたシラバイトだけ
戻すことができ、この0FFSETで行IRからの第1
バイトをオフセットゼロでブロックに配置することがで
きる。第1の出力ブロックをのぞいてすべての出力ブロ
ックがゼロとされ、この結果長い白ラン用にデータを転
送したりストアしたシする必要がなくなる。この時点で
第1ブロツクをゼロとする必要はない。第1ブロツクは
「補助」バッファとして反転させられるからである。す
なわちラン・エンド変換プロセスによって第1ブロツク
にラスタ・データをストアすべきではない。さて元の画
像をラスタ形態に変換するループを開始する。1本の画
像ラインのラン・エンド表示を得る。この時点で、予定
されている幅のラインをこのデータが記述していること
を確かめておくことが望ましい。RPTRをセットして
最初の白黒ラン・エンド対をポイントする。RPTRは
ラン・エンド・バッファの最初から8のオフセットの位
置にある。BLKPTRを初期化して第2出カブロツク
のアドレスをポイントする。RPTHの画像ラインを変
換しく BLKPTRが出力バッファのすべてを巡回す
るようにする)、そしてQFFSETを1だけ減分して
つぎのライン用に適合させる。0FFSETがゼロ未満
でなければ、さらに変換すべきラインが存在するので、
以上のループがつぎのラインを変換する。
F 07 03 01 EBLACKS:00 80 COEOFOF8
FCFE 第5図は時計方向に90° 回転させる制御コードを示
す。0FFSETは行数より1だけ小さい値に初期化さ
れる。この結果0FFSETを1行あたシラバイトだけ
戻すことができ、この0FFSETで行IRからの第1
バイトをオフセットゼロでブロックに配置することがで
きる。第1の出力ブロックをのぞいてすべての出力ブロ
ックがゼロとされ、この結果長い白ラン用にデータを転
送したりストアしたシする必要がなくなる。この時点で
第1ブロツクをゼロとする必要はない。第1ブロツクは
「補助」バッファとして反転させられるからである。す
なわちラン・エンド変換プロセスによって第1ブロツク
にラスタ・データをストアすべきではない。さて元の画
像をラスタ形態に変換するループを開始する。1本の画
像ラインのラン・エンド表示を得る。この時点で、予定
されている幅のラインをこのデータが記述していること
を確かめておくことが望ましい。RPTRをセットして
最初の白黒ラン・エンド対をポイントする。RPTRは
ラン・エンド・バッファの最初から8のオフセットの位
置にある。BLKPTRを初期化して第2出カブロツク
のアドレスをポイントする。RPTHの画像ラインを変
換しく BLKPTRが出力バッファのすべてを巡回す
るようにする)、そしてQFFSETを1だけ減分して
つぎのライン用に適合させる。0FFSETがゼロ未満
でなければ、さらに変換すべきラインが存在するので、
以上のループがつぎのラインを変換する。
全画像をラスタ形態に変換したのち、BLKPTRをセ
ットしてブロック・リストの最初のブロックのアドレス
をポイントさせる(このリストはいまだ何に対しても使
用されていない)。こののちブロックの各々の中間ラス
タ・データを回転させて他のブロックに入力するループ
を開始する。
ットしてブロック・リストの最初のブロックのアドレス
をポイントさせる(このリストはいまだ何に対しても使
用されていない)。こののちブロックの各々の中間ラス
タ・データを回転させて他のブロックに入力するループ
を開始する。
出力ブロックをクリアしすべて白の8×8ビツト・ブロ
ックについては何ら処理が必要とされないようにする。
ックについては何ら処理が必要とされないようにする。
つぎに入力ブロックからのデータを回転させて出力ブロ
ックに入力する。そしてBLKPTRを変更し、これに
よりつぎの操り返し処理を行うために入力ブロックを出
力ブロックとし、また新たな入力ブロックを得る。回転
させるべきブロックがないならば、つぎのブロックを回
転させるループを繰シ返す。
ックに入力する。そしてBLKPTRを変更し、これに
よりつぎの操り返し処理を行うために入力ブロックを出
力ブロックとし、また新たな入力ブロックを得る。回転
させるべきブロックがないならば、つぎのブロックを回
転させるループを繰シ返す。
第6図はラン・エンド・データをラスタ形態に変換し、
種々の出力ブロックに分配する手順を示す。この手順は
180° の回転で利用した変換手順と類似している。
種々の出力ブロックに分配する手順を示す。この手順は
180° の回転で利用した変換手順と類似している。
ただし各ラインごとに出力ブロックのすべて(第1出カ
ブロツクをのぞく)を巡回する必要があるのでその分複
雑になっている。
ブロツクをのぞく)を巡回する必要があるのでその分複
雑になっている。
この手順では処理TESTRENDを用いてどの時点で
出力データについて新しいブロックを得るかを決定する
。このTESTREND処理では現行のラン・エンドR
ENDを現行ブロックLCOLの最大ラン書エンドと比
較する。RENDが■C0LK満たなければ、処理WN
またはBNを利用してブロック境界を交差する。WNま
たはBHのどちらを利用するかはテスト実用時に処理さ
れているランの色が何かによって決定する。処理WNお
よびBNからの実現可能な復帰点は”1″′、2″、”
3 ”およびII 4 IIとラベル付けされる。
出力データについて新しいブロックを得るかを決定する
。このTESTREND処理では現行のラン・エンドR
ENDを現行ブロックLCOLの最大ラン書エンドと比
較する。RENDが■C0LK満たなければ、処理WN
またはBNを利用してブロック境界を交差する。WNま
たはBHのどちらを利用するかはテスト実用時に処理さ
れているランの色が何かによって決定する。処理WNお
よびBNからの実現可能な復帰点は”1″′、2″、”
3 ”およびII 4 IIとラベル付けされる。
IC0LをNI、INESよシ小さな値にセットしくブ
ロックの出力ラインあたり1ペルとする)、かつI C
OLを入力ラインで利用可能なベル数より小さい値にセ
ットすることによりライン変換を開始する。LASTを
初期化して中間バッファの所望のオフセットをポイント
する。最初の白ラン・エンドを読み出してRENDに入
力し、さらにBITSにコピーする。最初の白ラン中の
ビット数が8より少ないならば、CUMを先行白ビット
の所望の数にセットする。そして制御を黒ランを変換す
る手順に移管する。ブロック境界を交差したかどうかを
テストする必要はない。この交差は出力バイトが完結さ
れているときのみ起こるからである(すなわちビット・
カウンタが8になったとき)。白ビットが8以上であれ
ば、CUMをゼロにセットして白ランがブロック境界を
超えて伸びているかどうかをテストする。ブロック境界
を超えていれば、制御をWN手順へ移管する。そうでな
ければ、ラン中のゼロのバイトの数を計数する。BIT
Sをビットの適宜な数だけ減分し、LASTを白バイト
ごとにOCずつ増分する。CUMを先行臼ピントの適宜
な数にセットし、処理を黒ラン変換コードに継続させる
。
ロックの出力ラインあたり1ペルとする)、かつI C
OLを入力ラインで利用可能なベル数より小さい値にセ
ットすることによりライン変換を開始する。LASTを
初期化して中間バッファの所望のオフセットをポイント
する。最初の白ラン・エンドを読み出してRENDに入
力し、さらにBITSにコピーする。最初の白ラン中の
ビット数が8より少ないならば、CUMを先行白ビット
の所望の数にセットする。そして制御を黒ランを変換す
る手順に移管する。ブロック境界を交差したかどうかを
テストする必要はない。この交差は出力バイトが完結さ
れているときのみ起こるからである(すなわちビット・
カウンタが8になったとき)。白ビットが8以上であれ
ば、CUMをゼロにセットして白ランがブロック境界を
超えて伸びているかどうかをテストする。ブロック境界
を超えていれば、制御をWN手順へ移管する。そうでな
ければ、ラン中のゼロのバイトの数を計数する。BIT
Sをビットの適宜な数だけ減分し、LASTを白バイト
ごとにOCずつ増分する。CUMを先行臼ピントの適宜
な数にセットし、処理を黒ラン変換コードに継続させる
。
ラン長をBITSに加えることにより黒ランの変換を開
始する。ラン長は黒ラン・エンドと前の白ラン・エンド
(これはRENDにストアされている)との間の差であ
る。黒ラン・エンド1をRgNDに読み出したのち、R
PTRを増分してっぎの白黒ラン・エンド対をアドレス
するようにする。
始する。ラン長は黒ラン・エンドと前の白ラン・エンド
(これはRENDにストアされている)との間の差であ
る。黒ラン・エンド1をRgNDに読み出したのち、R
PTRを増分してっぎの白黒ラン・エンド対をアドレス
するようにする。
つぎにビット・カウンタをテストする。ビット・カウン
タの値が8未満であれば、未決定ビットを反転(白に)
して制御を白ラン・エンド変換コードに移管する。BI
TSが8未満でなければ完結した出力バイトをストアし
、LASTを増分してつぎの出力バイト用のスペースを
ポイントする。
タの値が8未満であれば、未決定ビットを反転(白に)
して制御を白ラン・エンド変換コードに移管する。BI
TSが8未満でなければ完結した出力バイトをストアし
、LASTを増分してつぎの出力バイト用のスペースを
ポイントする。
さらにストアしたバイトの分だけビット・カウントを、
減分し、つぎにRENDをテストする。黒ラン・エンド
に先だってブロック境界を交差していれば、制御をBN
に移管する。そうでなければ、黒バイトをストアするル
ープを開始し、LASTを増分し、ビット・カウンタを
減分する。セット・アップすべきビットが8未満になる
まで、これを続ける。こののちCUMをセットして先行
黒ビットの適宜な個数を有するようにし、白ランを変換
するコードを開始する。
減分し、つぎにRENDをテストする。黒ラン・エンド
に先だってブロック境界を交差していれば、制御をBN
に移管する。そうでなければ、黒バイトをストアするル
ープを開始し、LASTを増分し、ビット・カウンタを
減分する。セット・アップすべきビットが8未満になる
まで、これを続ける。こののちCUMをセットして先行
黒ビットの適宜な個数を有するようにし、白ランを変換
するコードを開始する。
白ランを変換するには、ラン長をBITSに加える。B
ITSが8未満であれば、未決定のCUM後縁ビット
を反転(黒に)して制御を黒ラン変換コードに移管する
。BITSが8未満でなければ、ブロック境界が交差さ
れたかどうかのテストが必要となる。交差していれば、
制御をWNに移管する。交差していなければ完結したバ
イトをストアし、LASTを増分し、ストアしたバイト
の分だけBITSを減分する。BITSが依然8未満で
あれば、制御を長い白ランを処理するコードの部分に移
管する。そうでなければCUMを前縁白ビットの適宜な
数でセットして処理をブラック・ランの変換処理に継続
させる。
ITSが8未満であれば、未決定のCUM後縁ビット
を反転(黒に)して制御を黒ラン変換コードに移管する
。BITSが8未満でなければ、ブロック境界が交差さ
れたかどうかのテストが必要となる。交差していれば、
制御をWNに移管する。交差していなければ完結したバ
イトをストアし、LASTを増分し、ストアしたバイト
の分だけBITSを減分する。BITSが依然8未満で
あれば、制御を長い白ランを処理するコードの部分に移
管する。そうでなければCUMを前縁白ビットの適宜な
数でセットして処理をブラック・ランの変換処理に継続
させる。
第7図は白ランを処理しているときにブロック境界を交
差した場合の手順WNを示す。完結した出力バイトを最
初にストアする。つぎに白ランが入力ラインの終端へと
伸びるかどうかをテストする。終端へと伸びれば、ライ
ンの変換を完了する。
差した場合の手順WNを示す。完結した出力バイトを最
初にストアする。つぎに白ランが入力ラインの終端へと
伸びるかどうかをテストする。終端へと伸びれば、ライ
ンの変換を完了する。
変換すべきランがさらに存在するならば、現行白ランが
終了するブロックを探索するループを開始する。BLK
PTRはつぎの入力ブロック・アドレスをアドレスし、
BITSは前のブロックの終端を超えて位置する白いラ
ン中のビットの個数にセットされる。LCOLはブロッ
ク中で許容される入力ピット列の数だけ増分される。R
ENDが依然LCOLよシも小さいならば、処理を繰り
返す。正しいブロックが見つかるまでこれを続ける。
終了するブロックを探索するループを開始する。BLK
PTRはつぎの入力ブロック・アドレスをアドレスし、
BITSは前のブロックの終端を超えて位置する白いラ
ン中のビットの個数にセットされる。LCOLはブロッ
ク中で許容される入力ピット列の数だけ増分される。R
ENDが依然LCOLよシも小さいならば、処理を繰り
返す。正しいブロックが見つかるまでこれを続ける。
つぎにLASTを初期化して適切なオフセットのバイト
をポイントしてブロックに入力する。LCOLが入力ラ
インから利用可能なベルの数よシ大きければ、LCOL
をリセットする。ピットΦカウントが8未満であれば、
CUMを前縁白ピットの所望の個数にセットする。そし
て黒ラン処理が開始される位置において制御が主ループ
に移管される。ビット・カウントが8未満でなければ長
い白ランを操作するコードへ制御を移管する。
をポイントしてブロックに入力する。LCOLが入力ラ
インから利用可能なベルの数よシ大きければ、LCOL
をリセットする。ピットΦカウントが8未満であれば、
CUMを前縁白ピットの所望の個数にセットする。そし
て黒ラン処理が開始される位置において制御が主ループ
に移管される。ビット・カウントが8未満でなければ長
い白ランを操作するコードへ制御を移管する。
第8図は、黒ラン処理中にブロック境界を交差した場合
の手順BNを示す。ここでは正しい新ブロックを探索す
ることに加え、飛び越された領域にX’FF’バイトを
埋め込む必要がある。現行ブロックに埋め込むべきバイ
トの数を得るは、現行ブロックを越えるビットの数(R
END−LCOL)からビット・カウントを減算し、さ
らに8で除算を行ってビットからバイトへの変換を行え
ばよい(この手順はバイト境界で始まり、またLCOL
は8の倍数であるので、除算操作の剰余はつねにゼロで
あることに留意されたい)。1回のループが1つの黒バ
イトを埋め込み、LASTを増バイトをポイントしてブ
ロックに入力する。LCOLが入力ラインから利用可能
なベルの数より大きければ、LCOLをリセットする。
の手順BNを示す。ここでは正しい新ブロックを探索す
ることに加え、飛び越された領域にX’FF’バイトを
埋め込む必要がある。現行ブロックに埋め込むべきバイ
トの数を得るは、現行ブロックを越えるビットの数(R
END−LCOL)からビット・カウントを減算し、さ
らに8で除算を行ってビットからバイトへの変換を行え
ばよい(この手順はバイト境界で始まり、またLCOL
は8の倍数であるので、除算操作の剰余はつねにゼロで
あることに留意されたい)。1回のループが1つの黒バ
イトを埋め込み、LASTを増バイトをポイントしてブ
ロックに入力する。LCOLが入力ラインから利用可能
なベルの数より大きければ、LCOLをリセットする。
ピットeカウントが8未満であれば、CUMを前縁白ビ
ットの所望の個数にセットする。そして黒ラン処理が開
始される位置において制御が主ループに移管される。ビ
ット・カウントが8未漕でなければ長い白ランを操作す
るコードへ制御を移管する。
ットの所望の個数にセットする。そして黒ラン処理が開
始される位置において制御が主ループに移管される。ビ
ット・カウントが8未漕でなければ長い白ランを操作す
るコードへ制御を移管する。
第8図は、黒ラン処理中にブロック堺界を交差した場合
の手順BNを示す。ここでは正しい新ブロックを探索す
ることに加え、飛び越された領域にX’FF’バイトを
埋め込む必要がある。現行ブロックに埋め込むべきバイ
トの数を得るは、現行ブロックを越えるビットの数(R
END−LCOL)からビットΦカウントを減算し、さ
らVceで除算を行ってビットからバイトへの変換を行
えばよい(この手順はバイト境界で始まり、またLCO
Lは8の倍数であるので、除算操作の剰余はつねにゼロ
であることに留意されたい)。1回のループが1つの黒
バイトを埋め込み、LASTを増管される。
の手順BNを示す。ここでは正しい新ブロックを探索す
ることに加え、飛び越された領域にX’FF’バイトを
埋め込む必要がある。現行ブロックに埋め込むべきバイ
トの数を得るは、現行ブロックを越えるビットの数(R
END−LCOL)からビットΦカウントを減算し、さ
らVceで除算を行ってビットからバイトへの変換を行
えばよい(この手順はバイト境界で始まり、またLCO
Lは8の倍数であるので、除算操作の剰余はつねにゼロ
であることに留意されたい)。1回のループが1つの黒
バイトを埋め込み、LASTを増管される。
第9図は1個のバッファからの中間ラスタ・データを回
転させて他のバッファに入力する際の手順を示す。ここ
では、出力ポインタおよび入力ポインタをセットして出
力ブロックおよび入力ブロックのそれぞれの開始位置を
アドレスする。入力ポインタは一時に8個の入力バイト
をステップする。8個の継続したバイトの各々が8×8
ビツトブロツクを表わしているからである。出力ポイン
タは出カバソファを一時に1バイトずつステップする。
転させて他のバッファに入力する際の手順を示す。ここ
では、出力ポインタおよび入力ポインタをセットして出
力ブロックおよび入力ブロックのそれぞれの開始位置を
アドレスする。入力ポインタは一時に8個の入力バイト
をステップする。8個の継続したバイトの各々が8×8
ビツトブロツクを表わしているからである。出力ポイン
タは出カバソファを一時に1バイトずつステップする。
出力バッファは0PTR+(OC米に/8)の位置に出
力バイトをストアしている。ただしに=0.1.2、・
・・・、7である。8×8ビツト・ブoツクの完結した
各行ののちに出力ポインタをOC来778だけ増分して
つぎの行が始まる場所をポイントしなくてはならない。
力バイトをストアしている。ただしに=0.1.2、・
・・・、7である。8×8ビツト・ブoツクの完結した
各行ののちに出力ポインタをOC来778だけ増分して
つぎの行が始まる場所をポイントしなくてはならない。
第1の限界LIMは8X8ビツト・ブロックの完結した
行(掃引)がいつ終了したかを表わす。第2の限界MA
Xをセットして、回転させられるべきブロック中の入力
データの終端をポイントする。入力バッファ中に表わさ
れている最後の8×8ビツト・ブロックの最初のバイト
を保管してノン・ゼロのバイトで置き換える。これによ
り、走査命令を利用してデータの終端を越えることなく
白バイトの長いフィールドを検出できる。
行(掃引)がいつ終了したかを表わす。第2の限界MA
Xをセットして、回転させられるべきブロック中の入力
データの終端をポイントする。入力バッファ中に表わさ
れている最後の8×8ビツト・ブロックの最初のバイト
を保管してノン・ゼロのバイトで置き換える。これによ
り、走査命令を利用してデータの終端を越えることなく
白バイトの長いフィールドを検出できる。
回転操作の主ループを開始するには、つぎ08個の入力
バイトすべてがゼロかどうかをテストすればよい。すべ
てゼロであれば、入力データを走査して白の8バイト・
ユニットの個数を求める。
バイトすべてがゼロかどうかをテストすればよい。すべ
てゼロであれば、入力データを走査して白の8バイト・
ユニットの個数を求める。
入力ポインタを増分してノン・ゼロのデータを含む最初
のユニットをポイントし、さらに出力ポインタを飛び越
したブロック数だけ増分する。つぎにI PTRをテス
トして元の掃引の終端に達したかどうかを調べる。入力
ポインタがLIMを交差していれば、内部ループを終了
させて出力ポインタをリセットできるようにする。そう
でなければ制御を内部ループに復帰させる。ここではI
PTRによってアドレスされた8バイト・ユニットを回
転させる。この回転にはたとえば上述米国特許出願第5
67214号に記載されているのと類似のテーブル索引
手順を用いる。得られたブロックは出力バッファにスト
アされる。こののち入力ポインタおよび出力ポインタを
増分してつぎの8×8ビツト入カニニツト、および出カ
ニニットの最初のバイトが行くべきスペースをアドレス
する。
のユニットをポイントし、さらに出力ポインタを飛び越
したブロック数だけ増分する。つぎにI PTRをテス
トして元の掃引の終端に達したかどうかを調べる。入力
ポインタがLIMを交差していれば、内部ループを終了
させて出力ポインタをリセットできるようにする。そう
でなければ制御を内部ループに復帰させる。ここではI
PTRによってアドレスされた8バイト・ユニットを回
転させる。この回転にはたとえば上述米国特許出願第5
67214号に記載されているのと類似のテーブル索引
手順を用いる。得られたブロックは出力バッファにスト
アされる。こののち入力ポインタおよび出力ポインタを
増分してつぎの8×8ビツト入カニニツト、および出カ
ニニットの最初のバイトが行くべきスペースをアドレス
する。
入力ポインタをテストして掃引が終了したかどうかを調
べる。終了していなければループを繰り返す。
べる。終了していなければループを繰り返す。
内部ループが終了すると、IPTRをMAXに比較して
ブロックの終端になったかどうかを決定する。I PT
HのほうがMAXよシ小さければ最後の入カニニット中
の保管バイトを取シ戻し、入力ポインタおよび出力ポイ
ンタを戻し、最後の8×8ビツト・ユニットを回転させ
て出力バッファにストアする。これでブロックの回転操
作が終了する。
ブロックの終端になったかどうかを決定する。I PT
HのほうがMAXよシ小さければ最後の入カニニット中
の保管バイトを取シ戻し、入力ポインタおよび出力ポイ
ンタを戻し、最後の8×8ビツト・ユニットを回転させ
て出力バッファにストアする。これでブロックの回転操
作が終了する。
ブロックの終端に到達していないならば、0PTRをO
C*7/8だけ増分してつぎの掃引の開始位置から適宜
オフセットしている位置をアドレスする。rPTRが新
たなLIMより小さくなければ掃引はすべてゼロ・デー
タからなシ、ループがつぎの掃引を繰り返す。正しい掃
引が見つかると内部ループを再度開始してデータの回転
を続ける。
C*7/8だけ増分してつぎの掃引の開始位置から適宜
オフセットしている位置をアドレスする。rPTRが新
たなLIMより小さくなければ掃引はすべてゼロ・デー
タからなシ、ループがつぎの掃引を繰り返す。正しい掃
引が見つかると内部ループを再度開始してデータの回転
を続ける。
反時計方向の回転の機構は詳細において時計方向のそれ
に対し相違点を有するけれども、概念上は異なるところ
はない。変換ステップにおいて、ブロックを反対の順序
でアドレスし、0FFSETを第1人カラインに対して
ゼロで開始させて■R−1まで計数させる。さらにLA
STは一時ブロックの最後の掃引で始まシ、ブロックの
開始位置へと戻っていく。回転ステップの制御構造は不
変である。ただし8人カバイトからなるユニット中ツバ
イトは8×8ビツト・ブロックの上位から下位に進んで
いく。時計方向では下位から上位へと進んでいたのであ
る。
に対し相違点を有するけれども、概念上は異なるところ
はない。変換ステップにおいて、ブロックを反対の順序
でアドレスし、0FFSETを第1人カラインに対して
ゼロで開始させて■R−1まで計数させる。さらにLA
STは一時ブロックの最後の掃引で始まシ、ブロックの
開始位置へと戻っていく。回転ステップの制御構造は不
変である。ただし8人カバイトからなるユニット中ツバ
イトは8×8ビツト・ブロックの上位から下位に進んで
いく。時計方向では下位から上位へと進んでいたのであ
る。
F1発明の詳細
な説明したように、この発明によればラン表示形態の画
像データをラスタ形態の画像データに変換する際にビッ
トの並びが逆となる態様でストレージに入力するように
しているので簡単に180° の回転を行える。また、
回転操作を変換と同時に1本の行ごとに行えるのでメモ
リ上の要請が少なくなる。
像データをラスタ形態の画像データに変換する際にビッ
トの並びが逆となる態様でストレージに入力するように
しているので簡単に180° の回転を行える。また、
回転操作を変換と同時に1本の行ごとに行えるのでメモ
リ上の要請が少なくなる。
第1図はこの発明の一実施例を説明するフローチャート
、第2図は第1図実施例の要部を示すフローチャート、
第3図は画像を時計方向に90゜回転させる場合の原理
を説明する図、第4図は第3図の90° の回転を行う
際のブロック配列を示す図、第5図は第3図の90°
回転を行う制御の流れを示すフローチャート、第6図は
第5図の制御の要部を示すフローチャート、第7図、第
8図および第9図は第5図の制御の細部を示すフローチ
ャートである。 出願人インク+7ゴ六ルeビジネスeマシーンズ・コー
ポレーション復代理人 弁理士 澤 1) 俊
夫18060回転の←j旬 第1図
、第2図は第1図実施例の要部を示すフローチャート、
第3図は画像を時計方向に90゜回転させる場合の原理
を説明する図、第4図は第3図の90° の回転を行う
際のブロック配列を示す図、第5図は第3図の90°
回転を行う制御の流れを示すフローチャート、第6図は
第5図の制御の要部を示すフローチャート、第7図、第
8図および第9図は第5図の制御の細部を示すフローチ
ャートである。 出願人インク+7ゴ六ルeビジネスeマシーンズ・コー
ポレーション復代理人 弁理士 澤 1) 俊
夫18060回転の←j旬 第1図
Claims (1)
- 元の画像を表わすラン表示形態の画像データからラスタ
形態の画像データを得、上記元の画像をその場所で18
0°角度回転させた画像を表わす画像データを、上記ラ
スタ形態の画像データから得る画像回転方法において、
上記ラン表示形態の画像データを一本の行ごとに変換し
て対応する一本の行の上記ラスタ形態の画像データを得
、上記ラスタ形態の画像データの一本の行をなすビツト
の並びが逆になる態様で上記ラスタ形態の画像データを
一本の行ごとにストアしていくことを特徴とする画像回
転方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US686788 | 1984-12-27 | ||
US06/686,788 US4658430A (en) | 1984-12-27 | 1984-12-27 | System for rotating binary images |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61156483A true JPS61156483A (ja) | 1986-07-16 |
JP2569307B2 JP2569307B2 (ja) | 1997-01-08 |
Family
ID=24757761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60263960A Expired - Fee Related JP2569307B2 (ja) | 1984-12-27 | 1985-11-26 | 画像回転方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US4658430A (ja) |
EP (1) | EP0188678B1 (ja) |
JP (1) | JP2569307B2 (ja) |
CA (1) | CA1238726A (ja) |
DE (1) | DE3587107T2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63208362A (ja) * | 1987-02-20 | 1988-08-29 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 画像データ変換方法 |
JP2010258903A (ja) * | 2009-04-27 | 2010-11-11 | Kyocera Mita Corp | 画像処理装置 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6172327A (ja) * | 1984-09-17 | 1986-04-14 | Casio Comput Co Ltd | 画像メモリのアドレス分配方式 |
EP0235456B1 (en) * | 1985-12-13 | 1999-03-24 | Canon Kabushiki Kaisha | Image processing apparatus and method with blocks of compressed data |
JPS62135257U (ja) * | 1986-02-19 | 1987-08-26 | ||
US4805117A (en) * | 1986-09-26 | 1989-02-14 | International Business Machines Corporation | Method for controlling concatenation of transformation matrices in a graphics display system |
US4841453A (en) * | 1986-11-10 | 1989-06-20 | Ibm Corporation | Multidirectional scan and print capability |
US4893257A (en) * | 1986-11-10 | 1990-01-09 | International Business Machines Corporation | Multidirectional scan and print capability |
US4896275A (en) * | 1987-07-10 | 1990-01-23 | Bull Hn Information Systems Inc. | Full page graphics image display data reduction |
JP2670273B2 (ja) * | 1987-09-30 | 1997-10-29 | 株式会社東芝 | 画像処理装置 |
FR2634297A1 (fr) * | 1988-07-12 | 1990-01-19 | Trt Telecom Radio Electr | Dispositif pour determiner des objets contrastes dans une image |
JPH05502318A (ja) * | 1990-08-20 | 1993-04-22 | イーストマン コダック カンパニー | オフセット型dmaシステム |
US5239388A (en) * | 1990-12-14 | 1993-08-24 | Fuji Xerox Co., Ltd. | Image processing system |
US5365601A (en) * | 1991-12-23 | 1994-11-15 | Xerox Corporation | N-bit wide parallel rotation algorithm |
US5594814A (en) * | 1992-10-19 | 1997-01-14 | Fast; Bruce B. | OCR image preprocessing method for image enhancement of scanned documents |
US5450604A (en) * | 1992-12-18 | 1995-09-12 | Xerox Corporation | Data rotation using parallel to serial units that receive data from memory units and rotation buffer that provides rotated data to memory units |
NL9300981A (nl) * | 1993-06-08 | 1995-01-02 | Oce Nederland Bv | Beeldvormingswerkwijze en beeldregistratie-inrichting voor het uitvoeren van deze werkwijze. |
JPH10501901A (ja) * | 1995-04-07 | 1998-02-17 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 画像の回転のための方法および装置 |
US5991450A (en) * | 1995-09-06 | 1999-11-23 | Canon Kabushiki Kaisha | Image encoding and decoding apparatus |
US5946222A (en) * | 1996-12-20 | 1999-08-31 | Oak Technology, Inc. | Method and apparatus for performing a masked byte addition operation |
US5870581A (en) * | 1996-12-20 | 1999-02-09 | Oak Technology, Inc. | Method and apparatus for performing concurrent write operations to a single-write-input register file and an accumulator register |
US6223181B1 (en) | 1997-07-31 | 2001-04-24 | Oak Technology, Inc. | Memory conserving and compression technique-compatible image rotation system |
US5986672A (en) * | 1997-10-14 | 1999-11-16 | Minnesota, Mining And Manufacturing 3M Center | Method and system for forming a rotated image on an imaging element using limited system resources |
US6298166B1 (en) * | 1998-03-30 | 2001-10-02 | Seiko Epson Corporation | Image transformations in the compressed domain |
US7146053B1 (en) | 2000-05-10 | 2006-12-05 | International Business Machines Corporation | Reordering of compressed data |
US6941019B1 (en) | 2000-05-10 | 2005-09-06 | International Business Machines Corporation | Reentry into compressed data |
JP3614358B2 (ja) * | 2000-09-28 | 2005-01-26 | シャープ株式会社 | 画像符号化装置 |
JP4507189B2 (ja) * | 2004-02-18 | 2010-07-21 | 株式会社リコー | 画像処理方法、装置、プログラムおよび記録媒体 |
EP1638049A3 (en) * | 2004-08-26 | 2006-11-02 | Océ-Technologies B.V. | Method, apparatus and computer program product for processing image data stored on a memory for rendering an image on a device |
JP2006067577A (ja) * | 2004-08-26 | 2006-03-09 | Oce Technologies Bv | 装置で画像をレンダリングするために、メモリに記憶される画像データを処理する方法、機器、およびコンピュータプログラム製品 |
JP4219887B2 (ja) * | 2004-12-28 | 2009-02-04 | 富士通マイクロエレクトロニクス株式会社 | 画像処理装置及び画像処理方法 |
US8036493B1 (en) * | 2006-03-27 | 2011-10-11 | Neustel Michael S | Method for correcting orientation of patent figures |
FR2932337A1 (fr) * | 2008-06-05 | 2009-12-11 | Sagem Comm | Procede de production d'un flux jpeg |
CN101697116B (zh) * | 2009-10-27 | 2011-11-09 | 飞天诚信科技股份有限公司 | 数据变换方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5789171A (en) * | 1980-11-25 | 1982-06-03 | Mitsubishi Electric Corp | Picture processor |
JPS58159184A (ja) * | 1982-03-17 | 1983-09-21 | Nec Corp | 画像回転装置 |
JPS58207170A (ja) * | 1982-05-28 | 1983-12-02 | Fujitsu Ltd | 画像処理システム |
JPS6016767A (ja) * | 1983-07-08 | 1985-01-28 | Matsushita Graphic Commun Syst Inc | 画像回転処理方式 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4052699A (en) * | 1976-06-30 | 1977-10-04 | International Business Machines Corporation | High speed real time image transformation |
GB1547119A (en) * | 1977-12-09 | 1979-06-06 | Ibm | Image rotation apparatus |
JPS54120522A (en) * | 1978-03-10 | 1979-09-19 | Pacific Kogyo Kk | Code converter |
US4271476A (en) * | 1979-07-17 | 1981-06-02 | International Business Machines Corporation | Method and apparatus for rotating the scan format of digital images |
JPS57191773A (en) * | 1981-05-21 | 1982-11-25 | Fujitsu Ltd | Image data rotating system |
JPS6073671A (ja) * | 1983-09-30 | 1985-04-25 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | パタ−ン処理装置 |
US4627020A (en) * | 1983-12-30 | 1986-12-02 | International Business Machines Corporation | Method for rotating a binary image |
-
1984
- 1984-12-27 US US06/686,788 patent/US4658430A/en not_active Expired - Lifetime
-
1985
- 1985-05-21 CA CA000481992A patent/CA1238726A/en not_active Expired
- 1985-11-05 EP EP85114054A patent/EP0188678B1/en not_active Expired - Lifetime
- 1985-11-05 DE DE8585114054T patent/DE3587107T2/de not_active Expired - Lifetime
- 1985-11-26 JP JP60263960A patent/JP2569307B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5789171A (en) * | 1980-11-25 | 1982-06-03 | Mitsubishi Electric Corp | Picture processor |
JPS58159184A (ja) * | 1982-03-17 | 1983-09-21 | Nec Corp | 画像回転装置 |
JPS58207170A (ja) * | 1982-05-28 | 1983-12-02 | Fujitsu Ltd | 画像処理システム |
JPS6016767A (ja) * | 1983-07-08 | 1985-01-28 | Matsushita Graphic Commun Syst Inc | 画像回転処理方式 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63208362A (ja) * | 1987-02-20 | 1988-08-29 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 画像データ変換方法 |
JP2010258903A (ja) * | 2009-04-27 | 2010-11-11 | Kyocera Mita Corp | 画像処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US4658430A (en) | 1987-04-14 |
EP0188678B1 (en) | 1993-02-17 |
DE3587107D1 (de) | 1993-03-25 |
EP0188678A3 (en) | 1989-03-08 |
CA1238726A (en) | 1988-06-28 |
EP0188678A2 (en) | 1986-07-30 |
JP2569307B2 (ja) | 1997-01-08 |
DE3587107T2 (de) | 1993-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS61156483A (ja) | 画像回転方法 | |
JPH0771185B2 (ja) | 画像データ変換方法 | |
US4627020A (en) | Method for rotating a binary image | |
US4712140A (en) | Image reduction method | |
EP0216501A2 (en) | Digital image rotation | |
CA1219057A (en) | Image data compression system | |
US6011566A (en) | System and method to display raster images with negligible delay time and reduced memory requirements | |
JPS60147884A (ja) | イメージ回転方法 | |
US5670982A (en) | System for fast 90-degree rotation of bi-level images | |
JPH0485685A (ja) | 画像データ処理方法 | |
US5353397A (en) | Registration/search system for registering and searching image data using vector data attributes | |
JPH0439780A (ja) | 画像合成装置 | |
JPS646469B2 (ja) | ||
US5623556A (en) | System and method of extracting binary image data | |
JPS60154776A (ja) | コード化及び解号方式 | |
JPS59182380A (ja) | 超音波エコ−信号の変換方法および装置 | |
EP0677822A2 (en) | Digital image rotation | |
JP2974596B2 (ja) | カラー画像処理装置 | |
JP2000322566A (ja) | 画像表示装置及びその制御方法 | |
JP2744231B2 (ja) | 画像処理装置 | |
JPH081556B2 (ja) | 画像メモリ装置 | |
JP2744229B2 (ja) | 画像処理装置 | |
JPH02179072A (ja) | 二値画像データの圧縮方法 | |
JPS62140549A (ja) | 画像編集処理装置 | |
JPS6188375A (ja) | 画像デ−タ変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |